:root{
  --color-bg:#faf6ee;
  --color-bg-alt:#f1e9d8;
  --color-surface:#fffdf9;
  --color-ink:#2a2420;
  --color-ink-soft:#5c5348;
  --color-ink-faint:#8a8074;
  --color-primary:#2f4a3c;
  --color-primary-dark:#1c2f26;
  --color-primary-light:#3f6350;
  --color-secondary:#b0603f;
  --color-accent:#c79a44;
  --color-line:#e4d9c4;
  --color-line-dark:#3a4d43;

  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:28px;
  --radius-xl:40px;
  --radius-full:999px;

  --space-3xs:0.25rem;
  --space-2xs:0.5rem;
  --space-xs:0.75rem;
  --space-sm:1.25rem;
  --space-md:2rem;
  --space-lg:3.25rem;
  --space-xl:5rem;
  --space-2xl:7.5rem;

  --shadow-1:0 1px 2px rgba(42,36,32,0.06), 0 2px 6px rgba(42,36,32,0.05);
  --shadow-2:0 6px 16px rgba(42,36,32,0.08), 0 2px 6px rgba(42,36,32,0.06);
  --shadow-3:0 20px 50px -12px rgba(28,47,38,0.28), 0 8px 20px rgba(42,36,32,0.08);
  --shadow-colored:0 24px 60px -16px rgba(47,74,60,0.35);

  --ease:cubic-bezier(0.22,1,0.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-ink);
  font-family:'Figtree',sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
.container{max-width:1200px;margin-inline:auto;padding-inline:var(--space-md);}

h1,h2,h3,h4{font-family:'Literata',serif;font-weight:700;color:var(--color-primary-dark);margin:0 0 var(--space-sm);line-height:1.15;}

.text-display{font-size:clamp(2.6rem,6vw,5.4rem);font-weight:700;color:#fff;margin:0 0 var(--space-md);letter-spacing:-0.01em;}
.text-display--md{font-size:clamp(2.2rem,4.5vw,3.6rem);}
.text-heading{font-size:clamp(1.7rem,3vw,2.6rem);margin-bottom:var(--space-sm);}
.text-heading--sm{font-size:clamp(1.3rem,2vw,1.7rem);}
.text-heading--light{color:#fff;}
.text-body{font-size:1rem;color:var(--color-ink-soft);margin:0 0 var(--space-sm);}
.text-body-lg{font-size:1.15rem;color:var(--color-ink-soft);max-width:60ch;}
.text-body--light{color:rgba(255,255,255,0.82);}
.text-caption{font-size:0.85rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--color-secondary);font-weight:600;margin:0 0 var(--space-xs);display:block;}

.space-section{padding-block:var(--space-2xl);}


.cookie-consent-bar{
  max-height:400px;
  overflow:hidden;
  background:var(--color-primary-dark);
  color:#fff;
  transition:max-height 0.5s var(--ease), padding 0.5s var(--ease), opacity 0.4s ease;
}
.cookie-consent-bar.is-hidden{max-height:0;opacity:0;}
.cookie-consent-inner{
  max-width:1200px;margin-inline:auto;padding:var(--space-xs) var(--space-md);
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;
}
.cookie-consent-inner p{margin:0;font-size:0.85rem;color:rgba(255,255,255,0.85);max-width:70ch;}
.cookie-consent-inner a{color:var(--color-accent);text-decoration:underline;}
.cookie-consent-actions{display:flex;gap:var(--space-2xs);flex-shrink:0;}


.action-primary,.action-ghost{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
  padding:0.9rem 1.8rem;border-radius:var(--radius-full);
  font-weight:600;font-size:0.95rem;min-height:44px;
  transition:transform 0.3s var(--ease), box-shadow 0.3s var(--ease), background 0.3s var(--ease), color 0.3s var(--ease);
}
.action-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-colored);}
.action-primary:hover{transform:translateY(-3px);box-shadow:0 30px 60px -14px rgba(47,74,60,0.45);background:var(--color-primary-light);}
.action-primary--light{background:var(--color-accent);color:var(--color-primary-dark);box-shadow:0 20px 50px -14px rgba(199,154,68,0.5);}
.action-primary--light:hover{background:#d8ac54;}
.action-ghost{background:var(--color-primary);color:#fff;border:1.5px solid var(--color-line-dark);}
.action-ghost:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-2px);}
.action-ghost--light{border-color:rgba(255,255,255,0.5);color:#fff;}
.action-ghost--light:hover{background:#fff;color:var(--color-primary-dark);}
.action-sm{padding:0.5rem 1.1rem;font-size:0.8rem;min-height:36px;}
.action-block{width:100%;}


.site-header{position:sticky;top:0;z-index:50;}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem var(--space-md);
  transition:background 0.4s ease, box-shadow 0.4s ease;
  position:relative;z-index:60;
}
.nav--on-dark{background:transparent;}
.nav--on-dark .nav-link{color:var(--color-ink);}
.nav--on-dark .nav-brand{color:#fff;}
.nav--on-dark .nav-toggle span,.nav--on-dark .nav-toggle::before,.nav--on-dark .nav-toggle::after{background:#fff;}
.nav--on-light{background:rgba(250,246,238,0.9);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--color-line);}
.nav--on-light .nav-link{color:var(--color-ink);}
.nav--on-light .nav-brand{color:var(--color-ink);}
.nav--on-light .nav-toggle span,.nav--on-light .nav-toggle::before,.nav--on-light .nav-toggle::after{background:var(--color-ink);}

.nav-brand{display:flex;align-items:center;gap:0.6rem;font-family:'Literata',serif;font-weight:700;font-size:1.3rem;transition:color 0.4s ease;}
.nav-logo{width:34px;height:34px;}
.nav-links{display:flex;gap:var(--space-md);}
.nav-link{position:relative;font-weight:500;font-size:0.95rem;padding-bottom:6px;transition:color 0.3s ease;}
.nav-link::after{content:'';position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--color-accent);border-radius:var(--radius-full);transition:width 0.35s var(--ease);}
.nav-link:hover::after{width:100%;}
.nav-link--active::after{width:100%;background:var(--color-secondary);}

.nav-toggle{display:none;position:relative;width:44px;height:44px;align-items:center;justify-content:center;}
.nav-toggle span,.nav-toggle::before,.nav-toggle::after{
  content:'';position:absolute;width:22px;height:2px;border-radius:2px;transition:transform 0.3s ease, opacity 0.3s ease, background 0.4s ease;
}
.nav-toggle::before{transform:translateY(-7px);}
.nav-toggle::after{transform:translateY(7px);}
.nav-toggle.is-active span{opacity:0;}
.nav-toggle.is-active::before{transform:rotate(45deg);}
.nav-toggle.is-active::after{transform:rotate(-45deg);}


.mobile-menu{
  position:fixed;inset:0;z-index:55;
  background:var(--color-primary-dark);
  clip-path:circle(0% at var(--origin-x,92%) var(--origin-y,40px));
  transition:clip-path 0.65s var(--ease);
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
}
.mobile-menu.is-open{clip-path:circle(150% at var(--origin-x,92%) var(--origin-y,40px));pointer-events:auto;}
.mobile-menu-links{display:flex;flex-direction:column;gap:var(--space-md);text-align:center;}
.mobile-menu-links li a{font-family:'Literata',serif;font-size:2rem;color:#fff;opacity:0;transform:translateY(16px);transition:opacity 0.5s ease, transform 0.5s ease;}
.mobile-menu.is-open .mobile-menu-links li a{opacity:1;transform:translateY(0);}
.mobile-menu.is-open .mobile-menu-links li:nth-child(1) a{transition-delay:0.15s;}
.mobile-menu.is-open .mobile-menu-links li:nth-child(2) a{transition-delay:0.25s;}
.mobile-menu.is-open .mobile-menu-links li:nth-child(3) a{transition-delay:0.35s;}
.mobile-menu.is-open .mobile-menu-links li:nth-child(4) a{transition-delay:0.45s;}
.mobile-menu.is-open .mobile-menu-links li:nth-child(5) a{transition-delay:0.55s;}
body.menu-open{overflow:hidden;}


.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-bottom:calc(var(--space-2xl) + 60px);}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg, rgba(28,47,38,0.55) 0%, rgba(28,47,38,0.72) 55%, rgba(20,32,26,0.92) 100%);z-index:1;}
.hero-content{position:relative;z-index:2;padding:var(--space-xl) var(--space-md) var(--space-lg);max-width:1200px;margin-inline:auto;width:100%;}
.hero-eyebrow{color:var(--color-accent);}
.hero-sub{color:rgba(255,255,255,0.85);font-size:1.15rem;max-width:52ch;margin-bottom:var(--space-md);}
.hero-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;}

.hero-cards{
  position:relative;z-index:3;
  max-width:1200px;margin:calc(var(--space-xl)) auto 0;
  padding:0 var(--space-md);
  display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm);
}
.hero-card{padding:var(--space-sm);text-align:left;}
.card-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:var(--radius-md);
  background:var(--color-bg-alt);color:var(--color-primary);font-size:1.2rem;margin-bottom:var(--space-xs);
}
.hero-card h3{font-size:1.1rem;margin-bottom:var(--space-2xs);}


.surface{background:var(--color-bg);}
.surface-inset{background:var(--color-bg-alt);}
.surface-raised{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-line);transition:transform 0.4s var(--ease), box-shadow 0.4s var(--ease);}
.surface-raised:hover{transform:translateY(-6px);}
.elevation-1{box-shadow:var(--shadow-1);}
.elevation-1:hover{box-shadow:var(--shadow-2);}
.elevation-2{box-shadow:var(--shadow-2);}
.elevation-2:hover{box-shadow:var(--shadow-3);}
.elevation-3{box-shadow:var(--shadow-3);}
.elevation-3:hover{box-shadow:0 30px 60px -14px rgba(28,47,38,0.35);}


.section-diagonal{clip-path:polygon(0 4%, 100% 0, 100% 96%, 0 100%);margin-block:-3rem;position:relative;z-index:1;}
.section-diagonal-alt{clip-path:polygon(0 0, 100% 4%, 100% 100%, 0 96%);margin-block:-3rem;position:relative;z-index:1;}

.manifesto{max-width:820px;}


.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:var(--space-lg);}
.compare-col{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-md);border:1px solid var(--color-line);box-shadow:var(--shadow-1);}
.compare-col--check{border-color:var(--color-primary);box-shadow:var(--shadow-colored);}
.compare-col h3{font-size:1.2rem;display:flex;align-items:center;gap:0.6rem;font-family:'Figtree',sans-serif;font-weight:600;color:var(--color-primary-dark);}
.compare-col--check h3 i{color:var(--color-primary);}
.compare-list{display:flex;flex-direction:column;gap:var(--space-xs);}
.compare-list li{padding-left:1.4rem;position:relative;color:var(--color-ink-soft);}
.compare-list li::before{content:'';position:absolute;left:0;top:0.5em;width:6px;height:6px;border-radius:50%;background:var(--color-secondary);}


.section-head{max-width:720px;margin-bottom:var(--space-lg);}
.section-head--split{display:flex;justify-content:space-between;align-items:flex-end;max-width:none;flex-wrap:wrap;gap:var(--space-sm);}


.story-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--space-md);}
.story-card{overflow:hidden;display:flex;flex-direction:column;}
.story-card:has(img){padding:0;}
.story-media{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-lg) var(--radius-lg) 0 0;}
.story-media img{width:100%;height:100%;object-fit:cover;}
.story-body{padding:var(--space-sm);}
.story-card--wide{grid-row:span 1;}
.story-card--wide .story-media{aspect-ratio:16/9;}
.story-link{display:inline-flex;align-items:center;gap:0.5rem;color:var(--color-primary);font-weight:600;font-size:0.9rem;transition:gap 0.3s ease;}
.story-link:hover{gap:0.8rem;}


.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);}
.process-step{padding:var(--space-sm) 0;border-top:2px solid var(--color-line-dark);}
.process-num{font-family:'Literata',serif;font-size:1.8rem;color:var(--color-secondary);font-weight:700;}


.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);}
.contact-card{padding:var(--space-md);text-align:left;}
.contact-card .card-icon{background:rgba(47,74,60,0.08);}


.cta-band{background:var(--color-primary-dark);padding-block:var(--space-xl);position:relative;overflow:hidden;}
.cta-band::before{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(199,154,68,0.25),transparent 70%);top:-200px;right:-150px;}
.cta-inner{text-align:center;max-width:640px;margin-inline:auto;position:relative;z-index:1;}
.cta-inner .action-primary--light{margin-top:var(--space-sm);}


.site-footer{background:var(--color-primary-dark);color:rgba(255,255,255,0.8);padding-block:var(--space-xl) var(--space-md);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-md);padding-bottom:var(--space-lg);}
.footer-brand{display:flex;flex-direction:column;gap:var(--space-sm);}
.footer-logo{width:44px;height:44px;}
.footer-col h4{color:#fff;font-family:'Figtree',sans-serif;font-size:0.95rem;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:var(--space-sm);}
.footer-col ul{display:flex;flex-direction:column;gap:0.6rem;}
.footer-col a{color:rgba(255,255,255,0.72);transition:color 0.3s ease;}
.footer-col a:hover{color:var(--color-accent);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.12);padding-top:var(--space-md);font-size:0.85rem;text-align:center;}


.page-hero{position:relative;min-height:60vh;display:flex;align-items:flex-end;overflow:hidden;padding-bottom:var(--space-xl);}
.page-hero--sm{min-height:44vh;}
.page-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.page-hero-content{position:relative;z-index:2;max-width:1200px;margin-inline:auto;padding:0 var(--space-md);width:100%;}
.breadcrumb{color:rgba(255,255,255,0.75);font-size:0.85rem;margin-bottom:var(--space-sm);min-height:1.2em;}


.region-grid,.post-grid,.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);}
.feature-grid{grid-template-columns:repeat(4,1fr);}
.region-card,.post-card{overflow:hidden;}
.region-media,.post-media{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius-lg) var(--radius-lg) 0 0;}
.region-media img,.post-media img{width:100%;height:100%;object-fit:cover;}
.region-body,.post-body{padding:var(--space-sm);}
.feature-card{padding:var(--space-md);}

.filter-row{display:flex;gap:var(--space-2xs);flex-wrap:wrap;margin-bottom:var(--space-lg);}
.filter-chip{padding:0.5rem 1.1rem;border-radius:var(--radius-full);border:1.5px solid var(--color-line);font-size:0.85rem;font-weight:600;color:var(--color-ink-soft);transition:all 0.3s ease;min-height:40px;}
.filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary);}
.filter-chip--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);}


.two-col-info{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);align-items:center;}
.rounded-media{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-3);}


.split-contact{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);align-items:stretch;}
.split-map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-2);min-height:420px;border:1px solid var(--color-line);}
.split-form{padding:var(--space-lg);}

.contact-form{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md);}
.form-group{display:flex;flex-direction:column;gap:0.4rem;}
.form-group label{font-size:0.85rem;font-weight:600;color:var(--color-ink);}
.form-group input[type="text"],.form-group input[type="email"],.form-group input[type="tel"],.form-group textarea{
  padding:0.85rem 1rem;border-radius:var(--radius-sm);border:1.5px solid var(--color-line);background:var(--color-bg);
  font-family:inherit;font-size:0.95rem;color:var(--color-ink);transition:border-color 0.3s ease, background 0.3s ease;
}
.form-group:has(:focus){border-color:transparent;}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);background:#fff;}
.form-group--checkbox{flex-direction:row;align-items:flex-start;gap:0.6rem;}
.form-group--checkbox input{margin-top:4px;width:18px;height:18px;flex-shrink:0;}
.form-group--checkbox label{font-weight:400;font-size:0.85rem;color:var(--color-ink-soft);}
.contact-form:has(input:invalid:not(:placeholder-shown)) .form-group input:invalid{border-color:var(--color-secondary);}


.legal-page{padding-top:var(--space-lg);}
.legal-container{max-width:760px;}
.legal-container h2{margin-top:var(--space-lg);}
.term{color:var(--color-secondary);}
.term-def{
  display:block;background:var(--color-bg-alt);border-left:3px solid var(--color-accent);
  border-radius:var(--radius-sm);padding:var(--space-sm);margin:var(--space-xs) 0 var(--space-sm);
  font-size:0.9rem;color:var(--color-ink-soft);
}
.term-def strong{color:var(--color-primary-dark);}


.thanks-section{min-height:60vh;display:flex;align-items:center;}
.thanks-inner{max-width:560px;margin-inline:auto;text-align:center;}
.thanks-icon{font-size:4.5rem;color:var(--color-primary);display:block;margin-bottom:var(--space-sm);}


section:has(.compare-col--check){position:relative;}
.story-grid:has(.story-card--wide) .story-card--wide{grid-column:span 1;}


@media (max-width:1080px){
  .hero-cards{grid-template-columns:repeat(2,1fr);}
  .story-grid{grid-template-columns:1fr 1fr;}
  .story-card--wide{grid-column:span 2;}
  .process-grid{grid-template-columns:repeat(2,1fr);}
  .feature-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:820px){
  .nav-links{display:none;}
  .nav-toggle{display:inline-flex;}
  .compare-grid{grid-template-columns:1fr;}
  .region-grid,.post-grid{grid-template-columns:1fr;}
  .two-col-info{grid-template-columns:1fr;}
  .split-contact{grid-template-columns:1fr;}
  .split-map{min-height:280px;}
  .contact-grid{grid-template-columns:1fr;}
  .section-head--split{flex-direction:column;align-items:flex-start;}
}

@media (max-width:600px){
  .hero-cards{grid-template-columns:1fr;margin-top:calc(-1 * var(--space-lg));}
  .story-card--wide{grid-column:span 1;}
  .process-grid{grid-template-columns:1fr;}
  .feature-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .cookie-consent-inner{flex-direction:column;align-items:flex-start;}
  .container{padding-inline:var(--space-sm);}
  .space-section{padding-block:var(--space-xl);}
  .hero{min-height:92vh;}
}