@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/barlow-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/barlow-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-600.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --navy:#16284f; --navy-2:#1d3260; --green:#94e78c; --green-hover:#b4f0ad; --green-link-hover:#c4f3be;
  --green-deep:#1f6b25; --paper:#f4f6f8; --white:#fff; --line-light:#e1e6ee;
  --ink-on-dark:#f4f6f8; --muted-on-dark:#c9d1de; --faint-on-dark:#9aa8c2; --legal:#7d8db0;
  --muted-on-light:#4a5a78;
  --line-dark:rgba(255,255,255,.12); --line-dark-2:rgba(255,255,255,.14);
  --serif:'Instrument Serif',Georgia,serif; --sans:Barlow,system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--navy);color:var(--ink-on-dark);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--green);text-decoration:none}
a:hover{color:var(--green-link-hover)}
a:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:4px}
img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
.page{min-height:100vh;display:flex;flex-direction:column}
.wrap{max-width:1240px;width:100%;margin:0 auto;padding-left:32px;padding-right:32px}

.header{padding-top:28px;padding-bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.header-rule{height:1px;width:100%;background:var(--line-dark)}
.logo img{height:44px;width:auto}
.nav{display:flex;gap:32px;flex-wrap:wrap;font:500 15px var(--sans)}
.nav a{color:var(--muted-on-dark)}
.nav a:hover{color:#fff}

.eyebrow{font:500 13px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.eyebrow-dark{color:var(--green-deep)}

.hero{padding-top:96px;padding-bottom:112px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:56px;align-items:start}
.hero-copy{display:flex;flex-direction:column;gap:28px}
h1{font:400 clamp(56px,7.6vw,108px)/1 var(--serif);letter-spacing:-.015em;text-wrap:balance}
h1 em{font-style:italic;color:var(--green)}
.lede{max-width:520px;font:400 20px/1.55 var(--sans);color:var(--muted-on-dark);text-wrap:pretty}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.btn{display:inline-block;padding:15px 26px;border-radius:999px;font:600 16px var(--sans)}
.btn-primary{background:var(--green);color:var(--navy)}
.btn-primary:hover{background:var(--green-hover);color:var(--navy)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.28);color:#fff;font-weight:500}
.btn-ghost:hover{border-color:#fff;color:#fff}
.hero-media{display:flex;justify-content:center}
.hero-photo{position:relative;width:100%;max-width:520px;aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:var(--navy-2)}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-fade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,40,79,0) 45%,rgba(22,40,79,.85) 100%)}

.services{background:var(--paper);color:var(--navy)}
.services-inner{padding-top:104px;padding-bottom:104px;display:flex;flex-direction:column;gap:48px}
.services-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.services-head>div{display:flex;flex-direction:column;gap:16px}
h2{font:400 clamp(44px,5.4vw,68px)/1.02 var(--serif);letter-spacing:-.01em;text-wrap:balance}
.services-head p{max-width:420px;font:400 17px/1.55 var(--sans);color:var(--muted-on-light);text-wrap:pretty}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:24px}
.card{display:flex;flex-direction:column;gap:20px;padding:36px;border-radius:20px;background:var(--white);color:var(--navy);border:1px solid var(--line-light);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -24px rgba(22,40,79,.35);color:var(--navy)}
.card:focus-visible{outline:3px solid var(--green-deep);outline-offset:3px;border-radius:20px}
.card-head{display:flex;align-items:center;gap:20px}
.icon{width:52px;height:52px;border-radius:14px;background:var(--navy);display:flex;align-items:center;justify-content:center;flex:none}
.icon img{width:26px;height:26px}
h3{font:400 40px/1.05 var(--serif);letter-spacing:-.005em;text-wrap:balance}
.card-body{flex:1;font:400 17px/1.55 var(--sans);color:var(--muted-on-light);text-wrap:pretty}
.status{color:var(--green-deep);font-weight:500}
.card-foot{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding-top:20px;border-top:1px solid var(--line-light);font:600 16px var(--sans)}
.cta{display:flex;align-items:center;gap:12px}
.arrow{width:40px;height:40px;border-radius:50%;background:var(--navy);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:18px}

.about{padding-top:112px;padding-bottom:112px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:64px;align-items:center}
.about-photo{border-radius:24px;overflow:hidden;aspect-ratio:4/3;background:var(--navy-2)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-copy{display:flex;flex-direction:column;gap:24px;max-width:620px}
.about-lead{font:400 clamp(30px,3.4vw,44px)/1.15 var(--serif);text-wrap:pretty}
.about-body{font:400 18px/1.6 var(--sans);color:var(--muted-on-dark);text-wrap:pretty}
.contact{display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap;margin-top:12px;padding-top:24px;border-top:1px solid var(--line-dark-2);scroll-margin-top:120px}
.contact-email{font:500 18px var(--sans)}

.footer{margin-top:auto;border-top:1px solid var(--line-dark)}
.footer-inner{padding-top:28px;padding-bottom:28px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font:400 14px/1.6 var(--sans);color:var(--legal)}
.footer-legal{display:flex;align-items:center;gap:14px}
.footer-legal img{width:36px;height:36px;border-radius:8px;flex:none}
.footer-links{display:flex;gap:24px}
.footer-links a{color:var(--faint-on-dark)}
.footer-links a:hover{color:#fff}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}.card:hover{transform:none}}

/* Contact form */
.form{display:flex;flex-direction:column;gap:18px;width:100%}
.form-title{font:400 clamp(30px,3vw,38px)/1.1 var(--serif);letter-spacing:-.005em}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font:500 14px var(--sans);color:var(--muted-on-dark)}
.opt{color:var(--faint-on-dark);font-weight:400}
.field input,.field select,.field textarea{width:100%;padding:13px 16px;border-radius:12px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:var(--ink-on-dark);font:400 16px var(--sans)}
.field select option{color:var(--navy)}
.field textarea{resize:vertical;min-height:120px}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-color:var(--green)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#ff9b9b}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-actions{display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap}
button.btn{border:0;cursor:pointer}
button.btn:disabled{opacity:.6;cursor:wait}
.form-status{min-height:1.5em;font:500 16px/1.5 var(--sans)}
.form-status.ok{color:var(--green)}
.form-status.err{color:#ff9b9b}
.form-note{font:400 14px/1.5 var(--sans);color:var(--faint-on-dark)}
.form-note a{text-decoration:underline}

/* Secondary pages (404, privacy, terms) */
.doc{padding-top:80px;padding-bottom:112px;max-width:820px}
.doc h1{font-size:clamp(44px,6vw,72px);margin-bottom:32px}
.doc h2{font-size:clamp(28px,3vw,36px);margin:40px 0 12px}
.doc p,.doc li{font:400 18px/1.65 var(--sans);color:var(--muted-on-dark);margin-bottom:16px}
.doc ul{padding-left:22px}
.doc a{text-decoration:underline}
.doc .btn{text-decoration:none;margin-top:16px}
.todo{border:1.5px dashed rgba(255,255,255,.3);border-radius:12px;padding:16px 20px;color:var(--faint-on-dark)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--green);color:var(--navy);padding:10px 16px;border-radius:8px;z-index:10}

/* Contact band (white) */
.contact-band{background:var(--white);color:var(--navy);scroll-margin-top:0}
.contact-inner{padding-top:104px;padding-bottom:104px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:64px;align-items:start}
.contact-intro{display:flex;flex-direction:column;gap:20px;max-width:480px}
.contact-intro p{font:400 18px/1.6 var(--sans);color:var(--muted-on-light);text-wrap:pretty}
.contact-band a{color:var(--green-deep);text-decoration:underline}
.contact-band a:focus-visible{outline-color:var(--green-deep)}
.contact-band .btn-primary{background:var(--navy);color:var(--green);text-decoration:none}
.contact-band .btn-primary:hover{background:var(--navy-2);color:var(--green-hover)}
.contact-band .field label{color:var(--navy)}
.contact-band .opt{color:var(--muted-on-light)}
.contact-band .field input,.contact-band .field select,.contact-band .field textarea{background:var(--paper);border-color:#c5cedd;color:var(--navy)}
.contact-band .field input:focus-visible,.contact-band .field select:focus-visible,.contact-band .field textarea:focus-visible{outline-color:var(--green-deep);border-color:var(--green-deep)}
.contact-band .field input[aria-invalid="true"],.contact-band .field textarea[aria-invalid="true"]{border-color:#b3261e}
.contact-band .form-status.ok{color:var(--green-deep)}
.contact-band .form-status.err{color:#b3261e}
.contact-band .form-note{color:var(--muted-on-light)}

/* Two-column form to reduce height */
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:18px 20px}
.form>.field:nth-of-type(5),.form>.cf-turnstile,.form>.form-actions,.form>.form-status,.form>.form-note,.form>.hp{grid-column:1/-1}
.contact-inner{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
@media(min-width:1000px){.contact-inner{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.form-status:empty{display:none}
