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

:root { --cream:#f7f2e8; --paper:#fffdf8; --ink:#18352d; --muted:#5f7068; --green:#164d3b; --leaf:#9acb67; --lime:#d8edb5; --line:#d9e2d4; --focus:#d66b32; --max:1160px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font:400 1rem/1.65 'DM Sans',sans-serif; position:relative; }
body::before { content:''; position:fixed; inset:0; pointer-events:none; opacity:.18; z-index:0; background-image:radial-gradient(rgba(24,53,45,.13) .55px,transparent .55px); background-size:7px 7px; mix-blend-mode:multiply; }
header,main,footer { position:relative; z-index:1; }
body.motion-ready { animation:page-in .65s ease both; }
a { color:inherit; }
img { max-width:100%; display:block; }
:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
.skip-link { position:absolute; left:1rem; top:-4rem; background:var(--green); color:#fff; padding:.6rem 1rem; z-index:20; }
.skip-link:focus { top:1rem; }
.container { width:min(var(--max),calc(100% - 2.5rem)); margin-inline:auto; }
.site-header { border-bottom:1px solid var(--line); background:rgba(247,242,232,.94); position:relative; z-index:5; }
.nav-wrap { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; font-weight:700; letter-spacing:-.02em; }
.brand:hover .avocado { transform:rotate(20deg) translateY(-2px) scale(1.04); }
.avocado { width:34px; height:42px; border-radius:55% 45% 58% 42%; background:var(--green); display:grid; place-items:end center; padding-bottom:3px; transform:rotate(25deg); position:relative; animation:avocado-breathe 6s ease-in-out infinite; transition:transform .35s cubic-bezier(.22,1,.36,1); }
.avocado::before { content:''; width:24px; height:31px; border-radius:55% 45% 58% 42%; background:var(--leaf); }
.avocado::after { content:''; position:absolute; width:9px; height:9px; border-radius:50%; background:#9b673f; bottom:6px; }
.nav-toggle { display:none; border:1px solid var(--green); background:transparent; color:var(--green); padding:.5rem .7rem; font:inherit; font-weight:700; }
.nav-list { display:flex; align-items:center; gap:1.5rem; list-style:none; padding:0; margin:0; }
.nav-list a { text-decoration:none; font-weight:600; color:var(--muted); position:relative; }
.nav-list a::after { content:''; position:absolute; left:0; right:100%; bottom:-.35rem; height:2px; background:var(--leaf); transition:right .3s cubic-bezier(.22,1,.36,1); }
.nav-list a:hover::after,.nav-list a[aria-current='page']::after { right:0; }
.nav-list a:hover,.nav-list a[aria-current='page'] { color:var(--green); }
.contact-links { display:flex; gap:.5rem; align-items:center; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border:1px solid var(--green); padding:.75rem 1.1rem; text-decoration:none; font-weight:700; border-radius:3px; transition:transform .25s cubic-bezier(.22,1,.36,1),background .25s,border-color .25s,box-shadow .25s; }
.button:hover { transform:translateY(-2px); box-shadow:0 8px 18px rgba(22,77,59,.12); }
.button:active { transform:translateY(0) scale(.98); }
.button-primary { color:#fff; background:var(--green); }
.button-secondary { color:var(--green); background:transparent; }
.button-light { background:var(--lime); color:var(--green); border-color:var(--lime); }
.hero { padding:7rem 0 5rem; background:linear-gradient(125deg,var(--cream) 60%,var(--lime)); }
.eyebrow { color:var(--green); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; }
h1,h2,h3 { font-family:'DM Sans',sans-serif; line-height:1.1; letter-spacing:-.025em; margin:0 0 1rem; text-wrap:balance; font-weight:700; }
h1 { font-size:clamp(2.8rem,7vw,5.8rem); max-width:850px; }
h2 { font-size:clamp(2rem,4vw,3.4rem); }
h3 { font-size:1.45rem; }
.lede { font-size:1.2rem; color:var(--muted); max-width:65ch; text-wrap:pretty; }
p,li { text-wrap:pretty; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.section { padding:5.5rem 0; }
.section-heading { display:flex; justify-content:space-between; gap:2rem; align-items:end; margin-bottom:2.5rem; }
.section-heading p { max-width:470px; color:var(--muted); margin:0; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.step,.service-card,.case-card,.blog-empty,.contact-panel { background:var(--paper); border:1px solid var(--line); padding:1.6rem; transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .35s,box-shadow .35s; }
.step:hover,.service-card:hover,.case-card:hover { transform:translateY(-5px); border-color:var(--leaf); box-shadow:0 14px 28px rgba(24,53,45,.08); }
.step-number { color:var(--focus); font-weight:700; }
.step p,.service-card p,.case-card p { color:var(--muted); }
.service-card { min-height:250px; display:flex; flex-direction:column; }
.service-card a,.text-link { margin-top:auto; color:var(--green); font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; transition:text-underline-offset .2s,color .2s; }
.service-card a:hover,.text-link:hover { color:var(--focus); text-underline-offset:6px; }
.band { background:var(--green); color:#fff; }
.band .lede,.band p { color:#dce9dc; }
.band .step { color:var(--ink); }
.band .step h3 { color:var(--ink); }
.band .step p { color:var(--muted); }
.book { display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center; }
.book-cover { min-height:290px; margin:0; display:flex; align-items:center; justify-content:center; position:relative; visibility:visible; }
.book-cover img { display:block; width:min(100%,280px); height:auto; max-height:360px; object-fit:contain; filter:drop-shadow(12px 14px 0 rgba(22,77,59,.14)); transition:transform .45s cubic-bezier(.22,1,.36,1); }
.book-cover:hover img { transform:translateY(-6px) rotate(1.5deg); }
.contact-panel { display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem; }
.contact-panel a { display:flex; flex-direction:column; gap:.3rem; padding:1rem; text-decoration:none; border:1px solid var(--line); }
.contact-panel a { transition:background .3s,transform .3s cubic-bezier(.22,1,.36,1); }
.contact-panel a:hover { background:var(--lime); transform:translateY(-3px); }
.contact-label { color:var(--muted); font-size:.85rem; }
.page-intro { padding:5.5rem 0 3rem; }
.page-intro h1 { max-width:800px; }
.service-detail { display:grid; grid-template-columns:.75fr 1.25fr; gap:3rem; padding:2.5rem 0; border-top:1px solid var(--line); }
.service-detail ul { margin:0; padding-left:1.2rem; }
.case-meta { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.2rem; }
.status { border:1px solid var(--green); border-radius:20px; padding:.25rem .65rem; font-size:.8rem; font-weight:700; color:var(--green); }
.case-card { display:flex; flex-direction:column; min-height:270px; }
.case-card .status { align-self:flex-start; }
.detail { max-width:780px; }
.detail .lead { font-size:1.25rem; color:var(--muted); }
.detail section { padding:2rem 0; border-top:1px solid var(--line); }
.blog-empty { text-align:center; padding:4rem 1.5rem; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1); }
.reveal.is-visible { opacity:1; transform:none; }
@keyframes page-in { from { opacity:0; } to { opacity:1; } }
@keyframes avocado-breathe { 0%,100% { transform:rotate(25deg) translateY(0); } 50% { transform:rotate(28deg) translateY(-3px); } }
footer { padding:3rem 0; background:#102f26; color:#e7f0e2; }
.footer-wrap { display:flex; justify-content:space-between; gap:2rem; align-items:start; }
footer a { color:#e7f0e2; text-decoration:none; }
.footer-links { display:flex; gap:1rem; flex-wrap:wrap; }
.small { font-size:.9rem; color:var(--muted); }
footer .small { color:#b8cbb8; }
@media (max-width:820px) { .nav-toggle { display:block; } .nav-list,.contact-links { display:none; } .nav-list.is-open,.contact-links.is-open { display:flex; } .nav-wrap { flex-wrap:wrap; } .nav-list { order:3; width:100%; flex-direction:column; align-items:flex-start; padding-bottom:1rem; } .contact-links { order:4; width:100%; padding-bottom:1rem; } .grid-3,.grid-2,.book,.contact-panel,.service-detail { grid-template-columns:1fr; } .hero { padding:4.5rem 0 3.5rem; } .section { padding:4rem 0; } .section-heading,.footer-wrap { display:block; } .section-heading p { margin-top:1rem; } .footer-links { margin-top:1rem; } }
@media (prefers-reduced-motion:reduce) { *,html { scroll-behavior:auto!important; transition:none!important; animation:none!important; } .reveal { opacity:1; transform:none; } }
