:root{--token-surface-base:#f4f3ec;--token-surface-raised:#ffffff;--token-content-default:#22221a;--token-action-primary:#5a5a2e;--token-action-accent:#a3492e;--token-action-on-primary:#ffffff;--token-content-quiet:#7a796a;--token-divider:#dedcce;--font-head:Inter,system-ui,sans-serif;--font-body:Inter,system-ui,sans-serif;--space-xs:.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:3rem;--space-xl:5rem;--max-w:1200px;--radius:0;--space-2xl:8rem}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--token-surface-base);color:var(--token-content-default);font-family:var(--font-body);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--token-action-primary);text-decoration:underline;text-underline-offset:.15em}
a:hover,a:focus-visible{color:var(--token-action-accent)}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.2;color:var(--token-content-default)}
h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:700}
h2{font-size:clamp(1.4rem,3vw,2.2rem);font-weight:700}
h3{font-size:clamp(1.1rem,2vw,1.4rem);font-weight:700}
h4{font-size:1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
p{max-width:68ch}
p+p{margin-top:var(--space-sm)}
ul,ol{padding-left:1.4em}
li{margin-bottom:.4em}
strong{font-weight:700}
details{margin:.5em 0}
summary{cursor:pointer;font-weight:600;list-style:none;padding:.6em 0}
summary::-webkit-details-marker{display:none}
summary::after{content:" ▾";font-size:.8em;color:var(--token-content-quiet)}
details[open] summary::after{content:" ▴"}
.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--space-md)}

/* NAV */
.nav{position:sticky;top:0;z-index:100;background:var(--token-surface-base);border-bottom:1px solid var(--token-divider)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);height:56px}
.nav__brand{font-weight:700;font-size:1rem;color:var(--token-content-default);text-decoration:none;letter-spacing:.01em}
.nav__links{display:flex;align-items:center;gap:1.5rem;list-style:none;padding:0}
.nav__links a{text-decoration:none;font-size:.9rem;color:var(--token-content-default);font-weight:500;transition:color .15s}
.nav__links a:hover,.nav__links a[aria-current="page"]{color:var(--token-action-primary)}
.nav__cta{background:var(--token-action-primary);color:var(--token-action-on-primary);border:none;padding:.55em 1.2em;font-size:.9rem;font-weight:600;font-family:var(--font-body);cursor:pointer;text-decoration:none;border-radius:var(--radius);white-space:nowrap;transition:background .15s}
.nav__cta:hover{background:var(--token-action-accent);color:var(--token-action-on-primary)}
.nav__hamburger{display:none;background:none;border:none;cursor:pointer;padding:.4em;color:var(--token-content-default)}
@media(max-width:768px){.nav__links{display:none;flex-direction:column;gap:0;position:absolute;top:56px;left:0;right:0;background:var(--token-surface-base);border-bottom:1px solid var(--token-divider);padding:var(--space-sm) var(--space-md)}.nav__links.is-open{display:flex}.nav__hamburger{display:block}}

/* HERO */
.hero{min-height:60vh;display:flex;align-items:center;padding:var(--space-lg) 0;background:var(--token-surface-base)}
.hero__inner{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--space-md);text-align:center}
.hero__kicker{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--token-action-primary);margin-bottom:var(--space-sm)}
.hero__title{font-size:clamp(2.2rem,6vw,4rem);font-weight:700;max-width:22ch;margin-inline:auto;line-height:1.15}
.hero__sub{font-size:clamp(1rem,2.5vw,1.2rem);color:var(--token-content-quiet);max-width:52ch;margin:var(--space-sm) auto var(--space-md)}
.hero__cta{display:inline-block;background:var(--token-action-primary);color:var(--token-action-on-primary);text-decoration:none;padding:.75em 2em;font-weight:600;font-size:1rem;border-radius:var(--radius);transition:background .15s}
.hero__cta:hover{background:var(--token-action-accent);color:var(--token-action-on-primary)}
.hero__icons{display:flex;justify-content:center;gap:var(--space-lg);margin-top:var(--space-lg);flex-wrap:wrap}
.hero__icon-item{display:flex;flex-direction:column;align-items:center;gap:.4em}
.hero__icon-item svg{width:40px;height:40px;color:var(--token-action-primary)}
.hero__icon-item span{font-size:.8rem;color:var(--token-content-quiet);font-weight:500;text-align:center;max-width:9ch}

/* SECTION common */
.section{padding:var(--space-lg) 0}
.section--raised{background:var(--token-surface-raised)}
.section__head{margin-bottom:var(--space-md);max-width:60ch}
.section__head h2{margin-bottom:.5em}
.section__head p{color:var(--token-content-quiet)}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-md)}
.service-card{position:relative;overflow:hidden;background:var(--token-content-default);border-radius:var(--radius);min-height:320px}
.service-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.service-card:hover .service-card__img{transform:scale(1.04)}
.service-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(45,35,23,.88) 40%,rgba(45,35,23,.35) 100%)}
.service-card__body{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;padding:var(--space-md)}
.service-card__title{color:#fff;font-size:1.15rem;font-weight:700;margin-bottom:.4em}
.service-card__desc{color:rgba(255,255,255,.85);font-size:.9rem;line-height:1.5;margin-bottom:var(--space-sm);max-width:100%}
.service-card__link{display:inline-flex;align-items:center;gap:.4em;color:#fff;font-size:.9rem;font-weight:600;text-decoration:none;background:var(--token-action-primary);padding:.5em 1.1em;border-radius:var(--radius);transition:background .15s}
.service-card__link:hover{background:var(--token-action-accent);color:#fff}

/* STATS STRIP */
.stats{background:var(--token-action-primary);color:var(--token-action-on-primary);padding:var(--space-md) 0}
.stats__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-lg)}
.stats__item{text-align:center}
.stats__number{font-size:clamp(2rem,5vw,3rem);font-weight:700;display:block;line-height:1}
.stats__label{font-size:.8rem;opacity:.85;margin-top:.3em;display:block}

/* PROCESS */
.process-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-md);counter-reset:steps}
.process-step{background:var(--token-surface-raised);padding:var(--space-md);position:relative}
.process-step::before{content:counter(steps);counter-increment:steps;display:block;font-size:2.5rem;font-weight:700;color:var(--token-action-primary);opacity:.35;line-height:1;margin-bottom:.5em}
.process-step h3{font-size:1rem;margin-bottom:.4em}
.process-step p{font-size:.9rem;color:var(--token-content-quiet);max-width:100%}

/* ABOUT STRIP */
.about-strip{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);align-items:start}
.about-strip__img{position:relative;overflow:hidden}
.about-strip__img img{width:100%;height:100%;object-fit:cover;max-height:480px}
.about-strip__body{padding:var(--space-md) 0}
.about-strip__body h2{margin-bottom:var(--space-sm)}
.about-strip__body p{color:var(--token-content-quiet)}
.about-strip__body p+p{margin-top:.8em}
@media(max-width:768px){.about-strip{grid-template-columns:1fr}}

/* TESTIMONIALS */
.testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-md)}
.testimonial-card{background:var(--token-surface-raised);padding:var(--space-md);border-left:3px solid var(--token-action-primary)}
.testimonial-card__quote{font-size:1rem;font-style:italic;color:var(--token-content-default);margin-bottom:var(--space-sm);max-width:100%}
.testimonial-card__cite{font-size:.85rem;color:var(--token-content-quiet);font-style:normal}

/* FAQ */
.faq-list{max-width:72ch}
.faq-list details{border-bottom:1px solid var(--token-divider);padding:.5em 0}
.faq-list details:first-child{border-top:1px solid var(--token-divider)}
.faq-list summary{font-size:1rem;font-weight:600;padding:.7em 0}
.faq-list .faq-answer{padding:.5em 0 1em;color:var(--token-content-quiet);font-size:.95rem}
.faq-list .faq-answer p{max-width:100%}

/* CTA STRIP */
.cta-strip{background:var(--token-surface-raised);padding:var(--space-lg) 0;text-align:center}
.cta-strip__inner{max-width:56ch;margin-inline:auto}
.cta-strip h2{margin-bottom:.5em}
.cta-strip p{color:var(--token-content-quiet);margin-bottom:var(--space-md)}
.btn-primary{display:inline-block;background:var(--token-action-primary);color:var(--token-action-on-primary);text-decoration:none;padding:.75em 2em;font-weight:600;font-size:1rem;border-radius:var(--radius);border:none;cursor:pointer;font-family:var(--font-body);transition:background .15s}
.btn-primary:hover{background:var(--token-action-accent);color:var(--token-action-on-primary)}
.btn-secondary{display:inline-block;background:transparent;color:var(--token-action-primary);text-decoration:none;padding:.7em 1.8em;font-weight:600;font-size:1rem;border-radius:var(--radius);border:2px solid var(--token-action-primary);cursor:pointer;font-family:var(--font-body);transition:all .15s}
.btn-secondary:hover{background:var(--token-action-primary);color:var(--token-action-on-primary)}

/* FOOTER */
.footer{background:var(--token-content-default);color:var(--token-action-on-primary);padding:var(--space-lg) 0;text-align:center}
.footer__inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}
.footer__brand{font-weight:700;font-size:1.1rem;color:#fff}
.footer__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;list-style:none;padding:0}
.footer__nav a{color:rgba(255,255,255,.7);text-decoration:none;font-size:.875rem;transition:color .15s}
.footer__nav a:hover{color:#fff}
.footer__manage{color:rgba(255,255,255,.6);background:none;border:none;cursor:pointer;font-size:.875rem;font-family:var(--font-body);text-decoration:underline;padding:0}
.footer__manage:hover{color:#fff}
.footer__disclaimer{font-size:.78rem;color:rgba(255,255,255,.5);max-width:64ch;line-height:1.5}
.footer__copy{font-size:.78rem;color:rgba(255,255,255,.4)}

/* COOKIE BANNER */
[data-component="cookie-banner"]{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--token-content-default);color:#fff;padding:var(--space-sm) var(--space-md);z-index:200;border-top:3px solid var(--token-action-primary)}
[data-component="cookie-banner"].is-open{display:block}
[data-component="cookie-banner"] p{color:rgba(255,255,255,.85);font-size:.85rem;max-width:none;margin-bottom:.6em}
[data-component="cookie-actions"]{display:flex;flex-wrap:wrap;gap:.5em}
[data-component="cookie-actions"] button{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;padding:.45em 1em;cursor:pointer;font-size:.85rem;font-family:var(--font-body);border-radius:var(--radius);transition:background .15s}
[data-component="cookie-actions"] button:hover{background:rgba(255,255,255,.15)}
dialog[data-component="cookie-prefs-dialog"]{background:var(--token-surface-base);color:var(--token-content-default);border:2px solid var(--token-divider);border-radius:var(--radius);padding:var(--space-md);max-width:500px;width:calc(100% - 2rem)}
dialog[data-component="cookie-prefs-dialog"]::backdrop{background:rgba(0,0,0,.5)}
dialog[data-component="cookie-prefs-dialog"] h2{font-size:1.2rem;margin-bottom:.5em}
dialog[data-component="cookie-prefs-dialog"] fieldset{border:1px solid var(--token-divider);padding:.7em;margin:.5em 0}
dialog[data-component="cookie-prefs-dialog"] legend{font-weight:700;font-size:.9rem;padding:0 .4em}
dialog[data-component="cookie-prefs-dialog"] label{display:flex;align-items:center;gap:.4em;font-size:.9rem;margin-bottom:.3em}
dialog[data-component="cookie-prefs-dialog"] p{font-size:.8rem;color:var(--token-content-quiet);max-width:none}
[data-component="cookie-prefs-actions"]{display:flex;gap:.5em;margin-top:var(--space-sm)}
[data-component="cookie-prefs-actions"] button{padding:.55em 1.2em;cursor:pointer;font-size:.9rem;font-family:var(--font-body);border-radius:var(--radius)}
[data-component="cookie-prefs-actions"] [data-action="save"]{background:var(--token-action-primary);color:var(--token-action-on-primary);border:none}
[data-component="cookie-prefs-actions"] [data-action="cancel"]{background:none;border:1px solid var(--token-divider);color:var(--token-content-quiet)}

/* PAGE HERO (chi-sono + service pages) */
.page-hero{background:var(--token-surface-raised);padding:var(--space-lg) 0}
.page-hero h1{max-width:24ch}
.page-hero p{color:var(--token-content-quiet);font-size:1.1rem;max-width:56ch;margin-top:.8em}

/* BREADCRUMB */
.breadcrumb{font-size:.8rem;color:var(--token-content-quiet);margin-bottom:.8em}
.breadcrumb a{color:var(--token-content-quiet);text-decoration:none}
.breadcrumb a:hover{color:var(--token-action-primary)}
.breadcrumb span{margin:0 .3em}

/* PROSE CONTENT */
.prose{max-width:72ch}
.prose h2{font-size:1.5rem;margin:1.8em 0 .6em}
.prose h3{font-size:1.1rem;margin:1.4em 0 .4em}
.prose p{margin-bottom:1em;color:var(--token-content-default)}
.prose ul{margin-bottom:1em;color:var(--token-content-quiet)}
.prose li{margin-bottom:.5em}
.prose a{color:var(--token-action-primary)}

/* CONTACT FORM */
.contact-form{max-width:520px}
.form-field{margin-bottom:var(--space-sm)}
.form-field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.3em}
.form-field input,.form-field select,.form-field textarea{width:100%;padding:.6em .8em;border:1px solid var(--token-divider);background:var(--token-surface-base);color:var(--token-content-default);font-family:var(--font-body);font-size:1rem;border-radius:var(--radius)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--token-action-primary);outline-offset:1px}
.form-field textarea{min-height:120px;resize:vertical}
.form-note{font-size:.8rem;color:var(--token-content-quiet);margin-top:.3em}
.form-error{color:#c0392b;font-size:.85rem;margin-top:.3em;display:none}

/* CREDENTIALS */
.cred-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-sm)}
.cred-item{background:var(--token-surface-raised);padding:var(--space-sm);border-top:3px solid var(--token-action-accent)}
.cred-item__title{font-weight:700;font-size:.9rem;margin-bottom:.3em}
.cred-item__body{font-size:.85rem;color:var(--token-content-quiet)}

/* WHAT'S INCLUDED LIST */
.includes-list{list-style:none;padding:0}
.includes-list li{display:flex;gap:.7em;align-items:flex-start;padding:.5em 0;border-bottom:1px solid var(--token-divider)}
.includes-list li:last-child{border-bottom:none}
.includes-list li::before{content:"✓";color:var(--token-action-accent);font-weight:700;flex-shrink:0;margin-top:.1em}

/* THANK YOU / 404 */
.standalone-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-xl) var(--space-md)}
.standalone-page h1{margin-bottom:.5em}
.standalone-page p{color:var(--token-content-quiet);margin-bottom:var(--space-md)}

/* SKIP LINK */
.skip-link{position:absolute;top:-100%;left:var(--space-sm);background:var(--token-action-primary);color:var(--token-action-on-primary);padding:.5em 1em;text-decoration:none;font-weight:600;z-index:500}
.skip-link:focus{top:var(--space-sm)}

/* VISUALLY HIDDEN */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* RESPONSIVE */
@media(max-width:600px){.services-grid{grid-template-columns:1fr}.hero__icons{gap:var(--space-md)}.stats__grid{gap:var(--space-md)}.process-steps{grid-template-columns:1fr}}

/* BUTTON VARIANTS */
.btn{display:inline-block;padding:.65em 1.4em;border-radius:var(--radius);font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;border:2px solid transparent;transition:opacity .15s}
.btn--primary{background:var(--token-action-primary);color:var(--token-action-on-primary);border-color:var(--token-action-primary)}
.btn--primary:hover{opacity:.88}
.btn--ghost{background:transparent;color:var(--token-action-primary);border-color:var(--token-action-primary)}
.btn--ghost:hover{background:var(--token-action-primary);color:var(--token-action-on-primary)}
.btn--cta{font-size:1.05rem;padding:.75em 1.8em}

/* SECTION VARIANTS */
.section--alt{background:var(--token-surface-raised)}
.section--cta{background:var(--token-action-primary);color:var(--token-action-on-primary);text-align:center}
.section--cta h2,.section--cta p{color:var(--token-action-on-primary)}
.section--hero{padding-top:var(--space-2xl)}
.section__header{margin-bottom:var(--space-md)}
.section__lead{font-size:1.15rem;color:var(--token-content-quiet);margin-bottom:var(--space-md);max-width:60ch}
.section__sub{color:var(--token-content-quiet);font-size:1rem;margin-top:.3em}

/* HERO EXTRAS (service pages) */
.hero__eyebrow{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--token-content-quiet);margin-bottom:.5em}
.hero__content{max-width:55ch}
.hero__lead{font-size:1.15rem;color:var(--token-content-quiet);margin:var(--space-sm) 0 var(--space-md)}
.hero__actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:var(--space-md)}
.hero__meta{font-size:.85rem;color:var(--token-content-quiet);margin-top:var(--space-sm)}

/* OUTCOME CARDS */
.outcomes__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-sm);margin-top:var(--space-md)}
.outcome-card{background:var(--token-surface-raised);padding:var(--space-sm);border-radius:var(--radius)}
.outcome-card__number{font-size:.8rem;font-weight:700;color:var(--token-action-accent);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.3em}

/* PROCESS TIMELINE */
.process-timeline{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}
.process-step__marker{width:2.2rem;height:2.2rem;border-radius:50%;background:var(--token-action-primary);color:var(--token-action-on-primary);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.process-step__content{flex:1;padding-top:.3em}

/* WHO-FOR GRID */
.who-for__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:var(--space-md)}
.who-for__col{padding:var(--space-sm);border-radius:var(--radius)}
.who-for__col--yes{background:var(--token-surface-raised);border-top:3px solid var(--token-action-accent)}
.who-for__col--no{background:var(--token-surface-raised);border-top:3px solid var(--token-divider)}

/* CHECK/CROSS LISTS */
.check-list,.cross-list{list-style:none;padding:0}
.check-list li,.cross-list li{display:flex;gap:.6em;align-items:flex-start;padding:.4em 0}
.check-list li::before{content:"✓";color:var(--token-action-accent);font-weight:700;flex-shrink:0}
.cross-list li::before{content:"✗";color:var(--token-content-quiet);flex-shrink:0}

/* CASE STUDY */
.case-study{border-left:3px solid var(--token-action-primary);padding:var(--space-sm) var(--space-md);background:var(--token-surface-raised);margin:var(--space-md) 0;border-radius:0 var(--radius) var(--radius) 0}
.case-study__label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--token-action-primary);margin-bottom:.4em}
.case-study__client{font-weight:600;margin-bottom:.5em}
.case-study__body{font-size:.95rem}

/* CONTACT LAYOUT */
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);align-items:start}
.contact-aside h3{font-size:1rem;font-weight:700;margin:var(--space-sm) 0 .3em}

/* FORM GROUP */
.form-group{margin-bottom:var(--space-sm)}
.form-group label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.3em}
.form-group input,.form-group textarea{width:100%;padding:.6em .8em;border:1px solid var(--token-divider);background:var(--token-surface-base);color:var(--token-content-default);font-family:var(--font-body);font-size:1rem;border-radius:var(--radius)}
.form-group input:focus,.form-group textarea:focus{outline:2px solid var(--token-action-primary);outline-offset:1px}
.form-group textarea{min-height:120px;resize:vertical}
.form-group--check label{display:flex;gap:.5em;align-items:flex-start;font-weight:400;font-size:.9rem}
.form-group--check input[type="checkbox"]{margin-top:.15em;flex-shrink:0}

/* FAQ ITEM */
.faq-item{border-bottom:1px solid var(--token-divider);padding:var(--space-sm) 0}

/* CTA STRIP NOTE */
.cta-strip__note{font-size:.8rem;color:rgba(255,255,255,.7);margin-top:.7em}

@media(max-width:700px){
  .who-for__grid,.contact-layout{grid-template-columns:1fr}
  .hero__actions{flex-direction:column}
  .outcomes__grid{grid-template-columns:1fr}
}
/* card boundaries on raised sections */
.process-step,.testimonial-card,.outcome-card,.who-for__col,.case-study,.cred-item{border:1px solid var(--token-divider);box-shadow:0 1px 3px rgba(0,0,0,.05)}
