:root {
--blue: #001f52;
--green: #7b8f32;
--cream: #f8f7f1;
--text: #061b3d;
--muted: #6f7683;
--border: #e9e6dc;
--white: #ffffff;
--shadow: 0 20px 50px rgba(0,31,82,.10);
}
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html { scroll-behavior: smooth; }
body {
font-family: "Inter", sans-serif;
background: var(--cream);
color: var(--text);
line-height: 1.6;
}
a {
color: inherit;
text-decoration: none;
}
img {
display: block;
max-width: 100%;
}
.wrap {
width: min(1160px, 92%);
margin-inline: auto;
}
.skip-link {
position: absolute;
left: -9999px;
top: 4px;
background: var(--blue);
color: #fff;
padding: 8px 14px;
border-radius: 6px;
font-size: 13px;
font-weight: 700;
z-index: 9999;
}
.skip-link:focus {
left: 4px;
}
.top-bar {
background: var(--blue);
color: rgba(255,255,255,.75);
font-size: 11px;
font-weight: 600;
letter-spacing: .6px;
padding: 8px 0;
}
.top-bar .wrap {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.top-bar a {
color: rgba(255,255,255,.75);
transition: color .2s;
}
.top-bar a:hover { color: #fff; }
.top-pill {
background: var(--green);
color: #fff !important;
padding: 3px 10px;
border-radius: 20px;
}
.top-actions {
display: flex;
gap: 18px;
align-items: center;
flex-wrap: wrap;
}
.site-header {
background: var(--white);
border-bottom: 1px solid var(--border);
box-shadow: 0 4px 20px rgba(0,0,0,.05);
position: sticky;
top: 0;
z-index: 100;
}
.site-header .wrap {
height: 72px;
display: flex;
align-items: center;
justify-content: space-between;
}
.brand {
display: flex;
align-items: center;
gap: 14px;
color: var(--blue);
}
.brand-icon {
width: 44px;
height: 44px;
border: 2px solid var(--blue);
border-radius: 50%;
display: grid;
place-items: center;
font-family: "Playfair Display", serif;
font-weight: 700;
font-size: 17px;
flex-shrink: 0;
object-fit: cover;
}
.brand-title {
display: block;
font-size: 20px;
font-weight: 800;
letter-spacing: .4px;
line-height: 1;
}
.brand-sub {
display: block;
font-size: 9px;
font-weight: 700;
letter-spacing: 2px;
color: var(--muted);
margin-top: 3px;
}
.main-nav {
display: flex;
position: static;
top: auto;
left: auto;
width: auto;
background: transparent;
box-shadow: none;
padding: 0;
align-items: center;
gap: 20px;
}
.main-nav a {
font-size: 11.5px;
font-weight: 700;
color: var(--blue);
letter-spacing: .3px;
transition: color .2s;
}
.main-nav a:hover { color: var(--green); }
.nav-cta {
background: var(--blue);
color: var(--white) !important;
padding: 9px 16px;
border-radius: 7px;
font-size: 11.5px !important;
}
.nav-cta:hover {
background: var(--green) !important;
color: #fff !important;
}
.menu-btn {
display: none;
background: var(--blue);
color: #fff;
border: none;
border-radius: 6px;
padding: 8px 13px;
font-size: 18px;
cursor: pointer;
}
.breadcrumb-shell {
background: var(--white);
border-bottom: 1px solid var(--border);
}
.breadcrumb {
padding: 14px 0;
font-size: 12px;
color: var(--muted);
}
.breadcrumb a { color: var(--muted); }
.breadcrumb a:hover { color: var(--green); }
.breadcrumb span {
color: var(--green);
font-weight: 600;
}
.hero,
section.hero {
display: block;
min-height: 0;
grid-template-columns: none;
background: var(--white);
padding: 58px 0 64px;
border-bottom: 1px solid var(--border);
}
.hero-grid {
display: grid;
grid-template-columns: 1fr .88fr;
gap: 56px;
align-items: start;
}
.eyebrow {
display: inline-block;
font-size: 10.5px;
font-weight: 800;
letter-spacing: 3px;
color: var(--green);
margin-bottom: 16px;
text-transform: uppercase;
}
.hero h1 {
font-family: "Playfair Display", serif;
color: var(--blue);
font-size: clamp(36px, 5vw, 56px);
line-height: 1.05;
font-weight: 600;
margin-bottom: 20px;
}
.hero h1 em {
color: var(--green);
font-style: normal;
}
.hero-lead {
font-size: 16px;
color: var(--muted);
line-height: 1.75;
max-width: 560px;
margin-bottom: 32px;
}
.features {
display: grid;
grid-template-columns: repeat(4,1fr);
gap: 14px;
margin-bottom: 34px;
}
.feat {
text-align: center;
padding: 16px 8px;
border: 1px solid var(--border);
border-radius: 12px;
background: var(--cream);
}
.feat-icon {
width: 44px;
height: 44px;
background: #eef1df;
border-radius: 50%;
display: grid;
place-items: center;
margin: 0 auto 10px;
}
.feat-icon svg {
width: 20px;
height: 20px;
color: var(--green);
}
.feat h4 {
font-size: 10px;
font-weight: 800;
color: var(--blue);
letter-spacing: .8px;
margin-bottom: 4px;
text-transform: uppercase;
}
.feat p {
font-size: 10.5px;
color: var(--muted);
}
.hero-photo {
border-radius: 14px;
overflow: hidden;
box-shadow: var(--shadow);
margin-top: 4px;
}
.hero-photo img {
width: 100%;
height: 300px;
object-fit: cover;
}
.service-card {
background: var(--white);
border: 1px solid var(--border);
border-radius: 18px;
padding: 36px;
box-shadow: var(--shadow);
position: sticky;
top: 88px;
}
.card-home-icon {
width: 50px;
height: 50px;
background: #eef1df;
border-radius: 50%;
display: grid;
place-items: center;
margin-bottom: 22px;
}
.card-home-icon svg {
width: 24px;
height: 24px;
color: var(--green);
}
.service-card h2 {
font-family: "Playfair Display", serif;
color: var(--blue);
font-size: 23px;
line-height: 1.25;
margin-bottom: 22px;
font-weight: 600;
}
.svc-list {
list-style: none;
display: grid;
gap: 14px;
margin-bottom: 26px;
}
.svc-list li {
display: grid;
grid-template-columns: 28px 1fr;
gap: 12px;
align-items: center;
font-size: 14px;
color: var(--text);
line-height: 1.5;
padding-left: 0;
position: static;
}
.svc-list li::before {
content: none !important;
display: none !important;
}
.svc-num {
width: 28px;
height: 28px;
border: 1.5px solid var(--green);
color: var(--green);
border-radius: 50%;
display: grid;
place-items: center;
font-size: 12px;
font-weight: 800;
flex-shrink: 0;
}
.card-divider {
border: none;
border-top: 1px solid var(--border);
margin: 22px 0;
}
.contact-block {
margin-bottom: 22px;
}
.contact-block p {
font-size: 12.5px;
color: var(--text);
line-height: 2;
}
.contact-block strong { color: var(--blue); }
.contact-block a {
color: var(--green);
font-weight: 600;
}
.contact-block a:hover { text-decoration: underline; }
.card-actions {
display: flex;
flex-direction: column;
gap: 10px;
position: relative;
z-index: 10;
}
.card-actions .btn { pointer-events: auto; }
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
font-size: 13px;
font-weight: 700;
padding: 13px 20px;
border-radius: 8px;
text-align: center;
transition: opacity .2s, background .2s, border-color .2s;
cursor: pointer;
}
.btn:hover { opacity: .88; }
.btn-primary {
background: var(--blue);
color: #fff;
}
.btn-green {
background: var(--green);
color: #fff;
}
.btn-secondary {
background: var(--white);
color: var(--blue);
border: 1.5px solid var(--border);
}
.btn-secondary:hover { border-color: var(--blue); }
.section {
padding: 72px 0;
}
.section-soft {
background: var(--white);
}
.section-dark {
background: var(--blue);
color: #fff;
}
.section-head {
margin-bottom: 48px;
}
.section-head .eyebrow {
display: block;
margin-bottom: 12px;
}
.section-head h2 {
font-family: "Playfair Display", serif;
font-size: clamp(28px, 3.5vw, 42px);
color: var(--blue);
font-weight: 600;
line-height: 1.1;
}
.section-head p {
font-size: 15px;
color: var(--muted);
margin-top: 12px;
max-width: 600px;
}
.who-grid {
display: grid;
grid-template-columns: repeat(3,1fr);
gap: 22px;
}
.who-card {
border: 1px solid var(--border);
border-radius: 14px;
padding: 28px;
background: var(--cream);
}
.who-card .card-icon {
width: 46px;
height: 46px;
background: #eef1df;
border-radius: 50%;
display: grid;
place-items: center;
margin-bottom: 18px;
}
.who-card .card-icon svg {
width: 22px;
height: 22px;
color: var(--green);
}
.who-card h3 {
font-size: 15px;
font-weight: 700;
color: var(--blue);
margin-bottom: 8px;
}
.who-card p {
font-size: 13px;
color: var(--muted);
line-height: 1.65;
}
.steps-grid {
display: grid;
grid-template-columns: repeat(4,1fr);
gap: 20px;
}
.step {
background: var(--cream);
border: 1px solid var(--border);
border-radius: 14px;
padding: 28px 22px;
}
.step-num {
width: 38px;
height: 38px;
background: var(--green);
color: #fff;
border-radius: 50%;
display: grid;
place-items: center;
font-size: 15px;
font-weight: 800;
margin-bottom: 16px;
}
.step h3 {
font-size: 14px;
font-weight: 700;
color: var(--blue);
margin-bottom: 8px;
}
.step p {
font-size: 13px;
color: var(--muted);
line-height: 1.6;
}
.docs-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
}
.doc-item {
background: var(--white);
border: 1px solid var(--border);
border-radius: 12px;
padding: 18px;
display: grid;
grid-template-columns: 24px 1fr;
gap: 12px;
align-items: start;
font-size: 13.5px;
color: var(--text);
line-height: 1.55;
}
.doc-item svg {
width: 20px;
height: 20px;
color: var(--green);
margin-top: 2px;
}
.notice-box {
margin-top: 22px;
background: #eef1df;
border-left: 4px solid var(--green);
border-radius: 12px;
padding: 18px 22px;
font-size: 14px;
color: var(--blue);
font-weight: 600;
line-height: 1.65;
}
.faq-list {
display: grid;
gap: 12px;
}
.faq-item {
border: 1px solid var(--border);
border-radius: 12px;
background: var(--white);
overflow: hidden;
}
.faq-q {
list-style: none;
padding: 20px 24px;
font-size: 15px;
font-weight: 700;
color: var(--blue);
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
user-select: none;
}
.faq-q::-webkit-details-marker {
display: none;
}
.faq-q::after {
content: "+";
font-size: 20px;
font-weight: 400;
color: var(--green);
flex-shrink: 0;
transition: transform .25s;
}
.faq-item[open] .faq-q::after {
transform: rotate(45deg);
}
.faq-a {
padding: 0 24px 20px;
font-size: 14px;
color: var(--muted);
line-height: 1.75;
}
.faq-a a {
color: var(--green);
font-weight: 600;
}
.faq-a a:hover {
text-decoration: underline;
}
.cta-panel {
background: var(--blue);
border-radius: 20px;
padding: 56px;
text-align: center;
}
.cta-panel .eyebrow {
color: #c6cb61;
margin-bottom: 14px;
}
.cta-panel h2 {
font-family: "Playfair Display", serif;
color: #fff;
font-size: clamp(26px,3vw,38px);
font-weight: 600;
line-height: 1.15;
margin-bottom: 16px;
}
.cta-panel p {
color: rgba(255,255,255,.72);
font-size: 15px;
max-width: 580px;
margin: 0 auto 34px;
}
.cta-actions {
display: flex;
gap: 14px;
justify-content: center;
flex-wrap: wrap;
}
.also-grid {
display: grid;
grid-template-columns: repeat(4,1fr);
gap: 14px;
margin-top: 36px;
}
.also-link {
border: 1.5px solid var(--border);
border-radius: 10px;
padding: 18px 16px;
font-size: 13px;
font-weight: 700;
color: var(--blue);
text-align: center;
transition: border-color .2s, color .2s;
}
.also-link:hover {
border-color: var(--green);
color: var(--green);
}
.site-footer {
background: var(--blue);
color: rgba(255,255,255,.65);
padding: 56px 0 32px;
font-size: 13px;
}
.footer-grid {
display: grid;
grid-template-columns: 1.4fr 1fr 1fr 1fr;
gap: 40px;
margin-bottom: 40px;
}
.footer-brand {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 16px;
}
.footer-brand-icon {
width: 38px;
height: 38px;
border: 1.5px solid rgba(255,255,255,.3);
border-radius: 50%;
display: grid;
place-items: center;
object-fit: cover;
font-family: "Playfair Display", serif;
font-size: 14px;
font-weight: 700;
color: #fff;
}
.footer-brand-title {
font-size: 15px;
font-weight: 800;
color: #fff;
letter-spacing: .4px;
}
.footer-brand-sub {
font-size: 9px;
letter-spacing: 1.8px;
font-weight: 700;
}
.site-footer p {
line-height: 1.75;
margin-bottom: 8px;
}
.site-footer a {
color: rgba(255,255,255,.65);
transition: color .2s;
}
.site-footer a:hover {
color: #fff;
}
.footer-col h3 {
font-size: 11px;
font-weight: 800;
letter-spacing: 1.5px;
text-transform: uppercase;
color: #fff;
margin-bottom: 16px;
}
.footer-divider {
border: none;
border-top: 1px solid rgba(255,255,255,.1);
margin-bottom: 24px;
}
.footer-bottom {
display: flex;
justify-content: space-between;
font-size: 11px;
flex-wrap: wrap;
gap: 8px;
}
@media (max-width: 1020px) {
.hero-grid {
grid-template-columns: 1fr;
}
.service-card {
position: static;
}
.who-grid {
grid-template-columns: 1fr 1fr;
}
.steps-grid {
grid-template-columns: 1fr 1fr;
}
.docs-grid {
grid-template-columns: 1fr 1fr;
}
.also-grid {
grid-template-columns: 1fr 1fr;
}
.footer-grid {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 1020px) {
.main-nav {
display: none;
}
.main-nav.open {
display: flex;
flex-direction: column;
position: absolute;
top: 72px;
left: 0;
width: 100%;
background: var(--white);
padding: 24px;
border-bottom: 1px solid var(--border);
box-shadow: 0 12px 30px rgba(0,0,0,.08);
gap: 16px;
z-index: 99;
}
.menu-btn {
display: block;
}
.site-header {
position: relative;
}
.features {
grid-template-columns: 1fr 1fr;
}
.who-grid,
.steps-grid,
.docs-grid,
.footer-grid {
grid-template-columns: 1fr;
}
.also-grid {
grid-template-columns: 1fr 1fr;
}
.cta-panel {
padding: 36px 24px;
}
.top-bar .top-location {
display: none;
}
}
JAVA
