﻿:root{--bg:#FAFBF7;--text:#2C3E2D;--accent:#7D9B76;--muted:#8A9A8C;--dark:#1A2A1B;--r:20px;--fh:"Lora",serif;--fb:"Nunito Sans",sans-serif;--sp:8px;--mw:980px;--shadow:0 12px 40px color-mix(in srgb,var(--dark) 12%,transparent);--glow:0 0 40px color-mix(in srgb,var(--accent) 35%,transparent)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fb),system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.65;font-size:16px;overflow-x:hidden}
body.layout-sidebar{padding-left:260px}
h1,h2,h3{font-family:var(--fh),serif;font-weight:600;line-height:1.15}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:var(--mw);margin:0 auto;padding:0 clamp(1rem,3vw,2rem)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.78em 1.55em;border-radius:var(--r);font-weight:600;cursor:pointer;border:none;font-family:inherit;text-decoration:none;transition:transform .25s,box-shadow .25s,background .2s,filter .2s}
.btn:hover{transform:translateY(-2px);filter:brightness(1.05)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 20px color-mix(in srgb,var(--accent) 30%,transparent)}
.btn-ghost{background:transparent;border:2px solid var(--accent);color:var(--accent)}
.btn-light{background:#fff;color:var(--dark)}
.section{padding:clamp(3rem,8vw,5.5rem) 0}
.section h2{font-size:clamp(1.75rem,3.5vw,2.6rem);margin-bottom:1.5rem}
.section-alt{background:color-mix(in srgb,var(--accent) 6%,var(--bg))}
.prose{max-width:68ch}
.prose p,.prose li{margin-bottom:1rem;color:var(--muted)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--accent);margin-bottom:1rem;display:block;font-weight:600}
.hero{padding:clamp(2rem,6vw,4rem) clamp(1rem,3vw,2rem);min-height:62vh;display:flex;align-items:center;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.2rem,5vw,3.8rem);margin-bottom:1rem}
.hero p{font-size:1.08rem;color:var(--muted);max-width:54ch;margin-bottom:1.5rem}
.hero--split .hero-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);max-width:var(--mw);margin:0 auto;width:100%;align-items:center}
.hero--stack{flex-direction:column;text-align:left;max-width:var(--mw);margin:0 auto;width:100%;gap:1.5rem}
.hero--gradient{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 35%,var(--dark)));color:#fff;text-align:center;justify-content:center}
.hero--gradient p{color:rgba(255,255,255,.92)}
.hero--bleed{padding:0;min-height:82vh;align-items:flex-end}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:relative;z-index:1;padding:clamp(2rem,6vw,4rem) clamp(1rem,3vw,2rem);background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;width:100%}
.hero--wide .hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;max-width:var(--mw);margin:0 auto;width:100%;align-items:center}
.hero--center{text-align:center;justify-content:center}
.hero--center .hero-inner{max-width:760px;margin:0 auto}
.page-hero{padding:clamp(3rem,8vw,5rem) 0 clamp(2rem,5vw,3rem);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.page-hero h1{font-size:clamp(2rem,4vw,2.8rem)}
.quote{text-align:center;padding:clamp(2.5rem,6vw,4rem) 0;background:color-mix(in srgb,var(--accent) 10%,transparent)}
.quote blockquote{font-size:clamp(1.2rem,2.5vw,1.55rem);font-family:var(--fh);font-style:italic;max-width:720px;margin:0 auto}
.quote cite{display:block;margin-top:1rem;font-style:normal;color:var(--muted)}
.cta-band{text-align:center;background:var(--dark);color:#fff;padding:clamp(2.5rem,6vw,4rem) clamp(1rem,3vw,2rem)}
.cta-band h2{color:#fff}
.faq details{border-bottom:1px solid color-mix(in srgb,var(--muted) 25%,transparent);padding:1rem 0}
.faq summary{cursor:pointer;font-weight:600;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin-top:.75rem;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.contact-list{list-style:none;margin-top:1.5rem}
.form{display:flex;flex-direction:column;gap:1rem}
.form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500}
.form input,.form textarea{padding:.85rem;border:1px solid color-mix(in srgb,var(--muted) 35%,transparent);border-radius:var(--r);font-family:inherit;font-size:1rem;background:var(--bg);color:var(--text)}
.footer{padding:clamp(2.5rem,5vw,4rem) 0 1.5rem;border-top:1px solid color-mix(in srgb,var(--muted) 20%,transparent);margin-top:2rem}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem}
.footer a{display:block;color:var(--muted);margin-bottom:.45rem;font-size:.9rem}
.footer a:hover{color:var(--accent)}
.copy{margin-top:2rem;font-size:.85rem;color:var(--muted);text-align:center}
.about-split,.two-col{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.magazine-feature{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;margin-bottom:3rem}
.magazine-feature:nth-child(even){grid-template-columns:.8fr 1.2fr}
.magazine-feature:nth-child(even) img{order:-1}
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--dark);color:#fff;padding:1.25rem clamp(1rem,3vw,2rem);z-index:999;box-shadow:0 -8px 30px rgba(0,0,0,.25)}
.cookie-banner__inner{max-width:var(--mw);margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
.cookie-banner__actions{display:flex;gap:.75rem;flex-wrap:wrap}
.cookie-modal{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}
.cookie-modal[hidden]{display:none!important}
.cookie-modal__box{background:var(--bg);color:var(--text);padding:2rem;border-radius:var(--r);max-width:480px;width:100%}
.site-popup{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:900;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .35s}
.site-popup.is-open{opacity:1;pointer-events:auto}
.site-popup__box{background:var(--bg);color:var(--text);padding:clamp(1.5rem,4vw,2.5rem);border-radius:var(--r);max-width:440px;width:100%;position:relative;box-shadow:var(--shadow);transform:translateY(20px);transition:transform .35s}
.site-popup.is-open .site-popup__box{transform:translateY(0)}
.site-popup__close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--muted);line-height:1}
.toast-popup{position:fixed;bottom:5rem;right:1.25rem;background:var(--dark);color:#fff;padding:1rem 1.25rem;border-radius:var(--r);z-index:850;max-width:320px;box-shadow:var(--shadow);transform:translateX(120%);transition:transform .4s ease}
.toast-popup.is-visible{transform:translateX(0)}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:950;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .3s}
.lightbox.is-open{opacity:1;pointer-events:auto}
.lightbox img{max-width:min(92vw,1100px);max-height:88vh;border-radius:var(--r)}
.lightbox__close{position:absolute;top:1rem;right:1rem;background:#fff;border:none;width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:1.4rem}
.marquee-wrap{overflow:hidden;background:var(--dark);color:#fff;padding:.85rem 0;border-block:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}
.marquee-track{display:flex;gap:3rem;animation:marquee 28s linear infinite;width:max-content}
.marquee-track span{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.sticky-cta-bar{position:fixed;bottom:0;left:0;right:0;background:var(--accent);color:#fff;padding:.85rem 1rem;z-index:800;display:flex;align-items:center;justify-content:center;gap:1rem;transform:translateY(100%);transition:transform .35s}
.sticky-cta-bar.is-visible{transform:translateY(0)}
.timeline-block{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2rem}
.timeline-block div{padding:1.25rem;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--bg))}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}
.header.is-scrolled{box-shadow:var(--shadow)}
.header--clean.is-scrolled,.header--glass.is-scrolled{background:color-mix(in srgb,var(--bg) 95%,transparent)}
.nav-toggle span{display:block;width:24px;height:2px;background:currentColor;transition:transform .3s}
.header{display:flex;align-items:center;justify-content:space-between;padding:1rem clamp(1rem,3vw,2rem);gap:1rem;z-index:300;position:relative}
.logo{font-family:var(--fh);font-size:1.35rem;font-weight:700}
.nav{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}
.nav a{font-size:.88rem;color:var(--muted);transition:color .2s,padding .2s}
.nav a:hover,.nav a.is-active,.nav a[aria-current=page]{color:var(--accent);font-weight:600}
.header-cta{font-size:.85rem;white-space:nowrap}
.cards,.cards-bento,.cards-glass,.cards-horizontal,.cards-bordered,.cards-float,.cards-soft,.cards-diagonal,.cards-minimal,.cards-asymmetric,.cards-solid,.cards-artisan,.cards-industrial,.cards-calm,.cards-barber,.cards-honey,.cards-stack,.cards-coastal,.cards-bakery,.cards-cinema,.cards-climb,.cards-clean,.cards-landscape,.cards-vet,.cards-roof,.cards-vinyl,.cards-ski,.cards-mill,.cards-books,.cards-photo,.cards-luxe{display:grid;gap:1.5rem}
.card,.cards>article,.cards-bento>article,.cards-glass>article,.cards-horizontal>article,.cards-bordered>article,.cards-float>article,.cards-soft>article,.cards-diagonal>article,.cards-minimal>article,.cards-asymmetric>article,.cards-solid>article,.cards-artisan>article,.cards-industrial>article,.cards-calm>article,.cards-barber>article,.cards-honey>article,.cards-stack>article,.cards-coastal>article,.cards-bakery>article,.cards-cinema>article,.cards-climb>article,.cards-clean>article,.cards-landscape>article,.cards-vet>article,.cards-roof>article,.cards-vinyl>article,.cards-ski>article,.cards-mill>article,.cards-books>article,.cards-photo>article,.cards-luxe>article{background:color-mix(in srgb,var(--bg) 60%,#fff);padding:1.5rem;border-radius:var(--r);transition:transform .3s,box-shadow .3s}
.card:hover,.cards>article:hover,.cards-bento>article:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.card img,.cards>article img,.cards-bento>article img{border-radius:var(--r);margin-bottom:1rem;width:100%}
.grid,.grid-mosaic,.grid-row,.grid-feature,.grid-clean,.grid-organic,.grid-carousel,.grid-dynamic,.grid-calm,.grid-nature,.grid-rugged,.grid-masonry,.grid-industrial,.grid-calm,.grid-barber,.grid-honey,.grid-stack,.grid-coastal,.grid-polaroid,.grid-cinema,.grid-climb,.grid-landscape,.grid-vet,.grid-roof,.grid-vinyl,.grid-ski,.grid-mill,.grid-books,.grid-photo,.grid-luxe{display:grid;gap:12px}
.grid figure,.grid-mosaic figure,.grid-masonry figure,.grid-polaroid figure,.grid-photo figure{overflow:hidden;border-radius:var(--r);aspect-ratio:4/3;margin:0}
.grid img,.grid-mosaic img,.grid-masonry img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.grid figure:hover img,.grid-mosaic figure:hover img{transform:scale(1.06)}
.stats-row,.stats-pills,.stats-bar,.stats-editorial,.stats-cards,.stats-leaf,.stats-soft,.stats-ring,.stats-zen,.stats-nature,.stats-timeline,.stats-art,.stats-industrial,.stats-calm,.stats-barber,.stats-honey,.stats-utility,.stats-coastal,.stats-bakery,.stats-cinema,.stats-climb,.stats-clean,.stats-landscape,.stats-vet,.stats-roof,.stats-music,.stats-ski,.stats-mill,.stats-books,.stats-photo,.stats-luxe{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;text-align:center}
.stat strong{display:block;font-size:2.2rem;font-family:var(--fh);color:var(--accent)}
.stat span{font-size:.88rem;color:var(--muted)}
@media(max-width:900px){body.layout-sidebar{padding-left:0}.nav-toggle{display:flex}.nav{position:fixed;top:0;right:-100%;width:min(320px,88vw);height:100dvh;background:var(--bg);flex-direction:column;align-items:flex-start;padding:5rem 1.5rem 2rem;transition:right .35s;box-shadow:-10px 0 40px rgba(0,0,0,.15);z-index:200}.nav.open{right:0}.header-cta{display:none}.hero--split .hero-split,.hero--wide .hero-grid,.about-split,.contact-grid,.two-col,.magazine-feature,.magazine-feature:nth-child(even){grid-template-columns:1fr}.stats-row,.stats-pills,.stats-bar,.timeline-block{grid-template-columns:1fr}}
.header--calm{position:sticky;top:0;background:color-mix(in srgb,var(--accent) 8%,var(--bg));border-radius:0 0 24px 24px;margin:0 1rem;width:calc(100% - 2rem)}
.cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid{grid-template-columns:repeat(2,1fr)}@media(max-width:900px){.grid{grid-template-columns:1fr}}

