@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,500&display=swap');

:root { --ink:#10231f; --cream:#f4f0e7; --paper:#fbfaf6; --mint:#a9efcf; --green:#1c614d; --line:rgba(16,35,31,.15); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; }
a { color:inherit; text-decoration:none; }
.shell { width:min(1180px, calc(100% - 48px)); margin-inline:auto; }
.nav { height:94px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; font-family:'Manrope',sans-serif; font-weight:700; letter-spacing:-.03em; }
.brand-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--ink); color:var(--mint); font-family:'Playfair Display',serif; font-style:italic; font-size:21px; }
.nav-links { display:flex; align-items:center; gap:34px; font-size:14px; font-weight:500; }
.nav-links > a:not(.nav-cta):hover { color:var(--green); }
.nav-cta { padding:13px 19px; border:1px solid var(--ink); border-radius:999px; transition:.2s; }
.nav-cta:hover { background:var(--ink); color:white; }
.hero { position:relative; isolation:isolate; min-height:680px; display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:70px; padding-block:75px 90px; }
.hero::before { content:""; position:absolute; z-index:-1; inset:0 calc((100vw - 100%) / -2); background:radial-gradient(circle at 82% 46%,rgba(169,239,207,.38) 0,rgba(169,239,207,.16) 24%,transparent 48%),linear-gradient(115deg,#f3ede2 0%,#faf8f2 58%,#eef8f3 100%); }
.eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 25px; text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:700; }
.eyebrow > span { width:30px; height:1px; background:currentColor; }
h1,h2,h3,p { margin-top:0; }
h1 { max-width:690px; margin-bottom:28px; font:600 clamp(58px,6.2vw,93px)/.98 'Manrope',sans-serif; letter-spacing:-.07em; }
h1 em,h2 em { font-family:'Playfair Display',serif; font-weight:500; color:var(--green); }
.hero-lede { max-width:620px; color:#475852; font-size:19px; line-height:1.65; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:40px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:35px; border:0; border-radius:3px; padding:17px 20px; font:600 14px 'DM Sans',sans-serif; cursor:pointer; }
.button-primary { background:var(--ink); color:white; }
.button-primary:hover { background:var(--green); }
.button span { color:var(--mint); font-size:18px; }
.text-link { padding:8px 0; border-bottom:1px solid var(--ink); font-size:14px; font-weight:600; }
.text-link span { margin-left:8px; }
.hero-visual { position:relative; width:100%; aspect-ratio:1; max-width:480px; justify-self:end; border-radius:50%; background:linear-gradient(145deg,#c7ebda,#9edcbe); overflow:hidden; box-shadow:0 30px 80px rgba(16,35,31,.14),inset 0 0 0 1px rgba(255,255,255,.5); }
.orbit { position:absolute; border:1px solid rgba(16,35,31,.17); border-radius:50%; }
.orbit-one { inset:14%; }.orbit-two { inset:32%; }
.signal { position:absolute; left:50%; top:50%; width:72%; height:1px; background:rgba(16,35,31,.21); transform-origin:left center; }
.signal-one { transform:rotate(0deg); }.signal-two { transform:rotate(120deg); }.signal-three { transform:rotate(240deg); }
.visual-center { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:88px; height:88px; border-radius:50%; background:var(--ink); color:var(--mint); font:italic 50px 'Playfair Display',serif; box-shadow:0 0 0 11px rgba(255,255,255,.45); }
.visual-label { position:absolute; display:flex; flex-direction:column; gap:2px; padding:12px 15px; background:rgba(251,250,246,.92); border:1px solid rgba(16,35,31,.1); border-radius:4px; box-shadow:0 10px 25px rgba(16,35,31,.08); }
.visual-label b { font:600 13px 'Manrope',sans-serif; }.visual-label span { color:#66746f; font-size:10px; }
.label-one { left:7%; top:20%; }.label-two { right:6%; top:29%; }.label-three { right:20%; bottom:10%; }
.marquee { overflow:hidden; padding:14px 0; background:var(--mint); white-space:nowrap; color:var(--ink); font:600 12px 'Manrope',sans-serif; letter-spacing:.1em; }
.marquee div { width:max-content; min-width:100%; text-align:center; }.marquee span { padding:0 22px; }
.section { padding-block:120px 130px; }
.section-heading { display:grid; grid-template-columns:1fr 1.2fr .8fr; gap:55px; align-items:start; margin-bottom:65px; }
h2 { margin-bottom:0; font:600 clamp(39px,4vw,59px)/1.08 'Manrope',sans-serif; letter-spacing:-.055em; }
.section-heading > p:last-child { color:#52615c; font-size:15px; line-height:1.75; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { min-height:340px; padding:26px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:.25s; }
.service-card:hover { background:var(--cream); transform:translateY(-5px); }
.service-number { color:#76827e; font-size:11px; }
.service-icon { display:grid; place-items:center; width:45px; height:45px; margin:52px 0 28px; border-radius:50%; background:var(--mint); font-size:20px; }
.service-card h3 { margin-bottom:16px; font:600 20px 'Manrope',sans-serif; letter-spacing:-.03em; }
.service-card p { color:#586660; font-size:13px; line-height:1.75; }
.approach { padding:120px 0; background:var(--ink); color:white; }
.approach-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; }
.light { color:var(--mint); }
.approach h2 em { color:var(--mint); }
.approach-lede { color:#c5d0cc; font-size:18px; line-height:1.75; }
.outcomes { margin-top:50px; border-top:1px solid rgba(255,255,255,.17); }
.outcome { display:grid; grid-template-columns:45px 1fr; gap:10px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.17); }
.outcome > span { color:var(--mint); font-size:11px; }.outcome h3 { margin-bottom:7px; font:600 17px 'Manrope',sans-serif; }.outcome p { margin:0; color:#aebbb6; font-size:13px; }
.contact { display:grid; grid-template-columns:.85fr 1.15fr; gap:120px; padding-block:120px; }
.contact-intro > p:not(.eyebrow):not(.privacy-note) { max-width:470px; margin-top:32px; color:#596660; font-size:16px; line-height:1.75; }
.privacy-note { display:flex; gap:10px; margin-top:40px; padding-top:20px; border-top:1px solid var(--line); color:#6a7772; font-size:12px; line-height:1.6; }
.privacy-note span { color:var(--green); font-size:8px; padding-top:4px; }
.contact-form { display:grid; gap:23px; padding:36px; background:var(--cream); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
label { display:grid; gap:9px; font-size:12px; font-weight:600; } label > span { color:#71807a; font-weight:400; }
input,textarea { width:100%; border:0; border-bottom:1px solid #b8beb8; border-radius:0; padding:11px 0; outline:0; background:transparent; color:var(--ink); font:15px 'DM Sans',sans-serif; resize:vertical; }
input:focus,textarea:focus { border-color:var(--green); box-shadow:0 1px 0 var(--green); } input::placeholder,textarea::placeholder { color:#929a96; }
.contact-form .button { justify-self:start; margin-top:8px; min-width:180px; }.honey { position:absolute; left:-9999px; }
.form-status { margin:0; color:var(--green); font-size:13px; line-height:1.6; }
footer { padding:34px 0; background:#0b1916; color:white; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; }.footer-inner p { margin:0; color:#91a19a; font-size:11px; }.footer-brand { font-size:14px; }
@media (max-width:900px) { .hero { grid-template-columns:1fr; gap:40px; }.hero-visual { width:min(100%,430px); justify-self:center; }.section-heading { grid-template-columns:1fr; gap:20px; }.service-grid { grid-template-columns:1fr 1fr; }.approach-grid,.contact { grid-template-columns:1fr; gap:65px; } }
@media (max-width:620px) { .shell { width:min(100% - 30px,1180px); }.nav { height:75px; }.nav-links > a:not(.nav-cta) { display:none; }.nav-cta { padding:10px 13px; font-size:11px; }.brand > span:last-child { font-size:13px; }.hero { min-height:auto; padding-block:70px; }.hero-actions { align-items:flex-start; flex-direction:column; }.hero-visual { width:96%; }.section { padding-block:85px; }.service-grid { grid-template-columns:1fr; }.service-card { min-height:280px; }.approach,.contact { padding-block:85px; }.field-row { grid-template-columns:1fr; }.contact-form { padding:26px 20px; }.footer-inner { flex-direction:column; align-items:flex-start; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
