:root {
  --forest-900: #103c2f;
  --forest-950: #092a22;
  --forest-700: #235f46;
  --emerald-600: #2f8f5b;
  --sage-400: #a8c7a1;
  --sage-200: #dce8d8;
  --sage-warm: #e7e7da;
  --ivory-50: #f7f7f2;
  --warm-white: #fcfbf7;
  --charcoal-900: #1d1d1d;
  --charcoal-700: #4c4c48;
  --stone-500: #78786f;
  --line-light: rgba(16, 60, 47, 0.14);
  --white: #fff;
  --danger-soft: #7c4d44;
  --font-display: "Manrope", "Avenir Next", Arial, sans-serif;
  --font-body: "Inter", Arial, sans-serif;
  --shadow-soft: 0 20px 60px rgba(16, 60, 47, 0.08);
  --radius-sm: .35rem;
  --radius-md: .85rem;
  --radius-lg: 1.5rem;
  --shell: 1280px;
  --reading: 720px;
  --ease-calm: cubic-bezier(.22, 1, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { position: relative; margin: 0; color: var(--charcoal-900); background: var(--warm-white); font: 400 1rem/1.75 var(--font-body); -webkit-font-smoothing: antialiased; }
.page-transition { animation: page-enter .35s var(--ease-calm) both; transition: opacity .15s var(--ease-calm); }
.page-transition.page-leaving { opacity: 0; }
body::before { position: fixed; inset: 0; z-index: 100; pointer-events: none; opacity: .022; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)' opacity='.65'/%3E%3C/svg%3E"); content: ""; mix-blend-mode: multiply; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .2em; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--emerald-600); outline-offset: 4px; }
h1, h2, h3, h4 { margin: 0; color: var(--forest-900); font-family: var(--font-display); line-height: 1.08; letter-spacing: -.04em; text-wrap: balance; }
h1 { font-size: clamp(2.75rem, 6.4vw, 6.75rem); font-weight: 500; }
h2 { font-size: clamp(2.2rem, 4.2vw, 4.8rem); font-weight: 500; }
h3 { font-size: clamp(1.35rem, 2vw, 2rem); font-weight: 500; letter-spacing: -.025em; }
p { margin: 0; }
.shell { width: min(calc(100% - 48px), var(--shell)); margin-inline: auto; }
.reading { width: min(calc(100% - 48px), var(--reading)); margin-inline: auto; }
.section { padding-block: clamp(6rem, 11vw, 10rem); }
.section-compact { padding-block: clamp(3.5rem, 7vw, 6rem); }
.section-sage { background: var(--sage-200); }
.section-forest { color: var(--warm-white); background: var(--forest-900); }
.section-forest h2, .section-forest h3 { color: var(--warm-white); }
.eyebrow { display: inline-flex; align-items: center; gap: .8rem; margin-bottom: 1.5rem; color: var(--forest-700); font-size: .75rem; font-weight: 600; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.eyebrow::before { width: 2rem; height: 1px; background: currentColor; content: ""; transform-origin: left; transition: transform .7s var(--ease-calm); }
[data-reveal]:not(.visible) .eyebrow::before { transform: scaleX(.2); }
.section-forest .eyebrow { color: var(--sage-400); }
.lede { max-width: 62ch; margin-top: 1.6rem; color: var(--charcoal-700); font-size: clamp(1.08rem, 1.7vw, 1.35rem); line-height: 1.65; }
.section-forest .lede { color: rgba(252, 251, 247, .76); }
.muted { color: var(--stone-500); }
.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; }
.skip-link { position: fixed; top: 1rem; left: 1rem; z-index: 100; padding: .7rem 1rem; color: white; background: var(--forest-900); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

.site-header { position: sticky; top: 0; z-index: 40; border-bottom: 1px solid transparent; background: rgba(252, 251, 247, .94); backdrop-filter: blur(12px); transition: border-color .35s var(--ease-calm), background-color .35s var(--ease-calm), backdrop-filter .35s var(--ease-calm), box-shadow .35s var(--ease-calm); }
.site-header.scrolled { border-color: var(--line-light); background: rgba(252,251,247,.86); box-shadow: 0 10px 34px rgba(16,60,47,.045); backdrop-filter: blur(18px); }
.header-inner { display: flex; min-height: 82px; align-items: center; gap: 1.5rem; transition: min-height .35s var(--ease-calm); }
.site-header.scrolled .header-inner { min-height: 70px; }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; text-decoration: none; }
.brand-logo { position: relative; width: 205px; height: 64px; flex: 0 0 205px; overflow: hidden; }
.brand-logo img { position: absolute; top: -79px; left: -76px; width: 350px; max-width: none; height: auto; transition: filter .35s var(--ease-calm); }
.brand:hover .brand-logo img { filter: brightness(1.08); }
.brand-name { color: var(--forest-900); font-family: var(--font-display); font-size: 1.15rem; font-weight: 700; letter-spacing: .08em; line-height: 1.1; text-transform: uppercase; }
.brand-role { margin-top: .3rem; color: var(--stone-500); font-size: .63rem; font-weight: 600; letter-spacing: .11em; line-height: 1; text-transform: uppercase; }
.desktop-nav { display: flex; align-items: center; gap: clamp(.8rem, 1.7vw, 1.6rem); margin-left: auto; }
.desktop-nav a { position: relative; color: var(--charcoal-700); font-size: .8rem; font-weight: 500; text-decoration: none; transition: color .25s ease, opacity .25s ease; }
.desktop-nav:hover a:not(:hover):not(.active) { opacity: .56; }
.desktop-nav a::after { position: absolute; right: 0; bottom: -.55rem; left: 0; height: 1px; background: var(--forest-900); content: ""; transform: scaleX(0); transform-origin: right; transition: transform .25s var(--ease-calm); }
.desktop-nav a:hover::after, .desktop-nav a.active::after { transform: scaleX(1); transform-origin: left; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: .8rem 1.35rem; border: 1px solid var(--forest-900); border-radius: 999px; color: var(--warm-white); background: var(--forest-900); box-shadow: 0 8px 24px rgba(16,60,47,.08); font-size: .88rem; font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; transition: transform .25s var(--ease-calm), box-shadow .25s ease, background-color .25s ease, color .25s ease; }
.button:hover { background: var(--forest-700); box-shadow: 0 14px 30px rgba(16,60,47,.16); transform: translateY(-2px); }
.button-secondary { color: var(--forest-900); background: transparent; }
.button-secondary:hover { color: var(--warm-white); }
.button-light { border-color: var(--warm-white); color: var(--forest-900); background: var(--warm-white); }
.button-ghost-light { border-color: rgba(255,255,255,.45); color: var(--warm-white); background: transparent; }
.button-small { min-height: 42px; padding-inline: 1.1rem; font-size: .78rem; }
.button-row { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.menu-toggle, .mobile-menu { display: none; }

.hero { min-height: calc(100svh - 82px); display: grid; align-items: center; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.14fr) minmax(360px, .86fr); align-items: center; gap: clamp(3rem, 8vw, 8rem); padding-block: clamp(4rem, 8vw, 7.5rem); }
.hero-copy { position: relative; z-index: 1; }
.hero h1 em { color: var(--emerald-600); font-style: normal; }
.hero-note { display: flex; align-items: center; gap: 1rem; margin-top: 2.4rem; color: var(--stone-500); font-size: .78rem; }
.hero-note::before { width: 2.7rem; height: 1px; background: var(--sage-400); content: ""; }
.portrait-frame { position: relative; min-height: 600px; margin-right: clamp(-2.5rem, -3vw, -1rem); background: var(--sage-200); overflow: hidden; }
.portrait-frame::before { position: absolute; top: 1.5rem; right: 1.5rem; width: 5rem; height: 5rem; border-top: 1px solid rgba(16,60,47,.3); border-right: 1px solid rgba(16,60,47,.3); content: ""; z-index: 1; }
.hero-grid.hero-alt { grid-template-columns: minmax(360px, .86fr) minmax(0, 1.14fr); }
.hero-alt .portrait-frame { margin-right: 0; margin-left: clamp(-2.5rem, -3vw, -1rem); }
.hero-alt .portrait-frame::before { right: auto; left: 1.5rem; }
.portrait-frame img { width: 100%; height: 100%; min-height: 600px; object-fit: contain; object-position: center; filter: contrast(.94) brightness(1.035) saturate(.9); }
.portrait-caption { position: absolute; right: 1.5rem; bottom: 1.5rem; left: 1.5rem; display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; color: var(--warm-white); background: rgba(16,60,47,.88); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; backdrop-filter: blur(12px); }

.intro-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 10vw, 10rem); align-items: start; }
.intro-statement { max-width: 21ch; font-family: var(--font-display); font-size: clamp(1.6rem, 3vw, 2.85rem); line-height: 1.35; letter-spacing: -.035em; }
.signature { margin-top: 2rem; color: var(--forest-700); font-family: var(--font-display); font-size: .95rem; font-weight: 600; }
.service-list { border-top: 1px solid var(--line-light); }
.service-row { display: grid; grid-template-columns: 3rem 1fr auto; align-items: center; gap: 1rem; padding-block: 1.65rem; border-bottom: 1px solid var(--line-light); text-decoration: none; }
.service-row span:first-child { color: var(--emerald-600); font-size: .75rem; }
.service-row strong { color: var(--forest-900); font-family: var(--font-display); font-size: clamp(1.1rem, 2vw, 1.55rem); font-weight: 500; letter-spacing: -.025em; }
.service-row .arrow { font-size: 1.4rem; transition: transform .25s var(--ease-calm); }
.service-row:hover .arrow { transform: translateX(.35rem); }

.feature-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 620px; }
.feature-image { min-height: 500px; overflow: hidden; background: var(--sage-200); }
.feature-image img { width: 100%; height: 100%; object-fit: contain; filter: contrast(.94) brightness(1.04) saturate(.88); }
.feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 8vw, 7.5rem); background: var(--forest-900); color: var(--warm-white); }
.feature-copy h2 { color: var(--warm-white); }
.feature-copy p { margin-top: 1.4rem; color: rgba(252,251,247,.75); }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.section-heading h2 { max-width: 16ch; }
.text-link { display: inline-flex; align-items: center; gap: .6rem; color: var(--forest-900); background-image: linear-gradient(currentColor,currentColor); background-position: 0 100%; background-repeat: no-repeat; background-size: 0 1px; font-size: .85rem; font-weight: 600; text-decoration: none; transition: color .25s var(--ease-calm), background-size .35s var(--ease-calm); }
.text-link:hover { background-size: 100% 1px; }
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 3rem); }
.article-card { text-decoration: none; }
.article-card figure { margin: 0 0 1.3rem; overflow: hidden; background: var(--sage-200); aspect-ratio: 4/3; }
.article-card img { width: 100%; height: 100%; object-fit: contain; filter: contrast(.95) brightness(1.035) saturate(.9); transition: transform .7s var(--ease-calm), filter .7s var(--ease-calm); }
.article-card:hover img { filter: contrast(.98) brightness(1.02) saturate(.96); transform: scale(1.018); }
.article-meta { display: flex; flex-wrap: wrap; gap: .6rem 1rem; color: var(--stone-500); font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.article-card h3 { margin-top: .75rem; }
.article-card p { margin-top: .7rem; color: var(--charcoal-700); font-size: .92rem; }
.media-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line-light); border: 1px solid var(--line-light); }
.media-photo-card { position: relative; overflow: hidden; background: var(--forest-900); }
.media-photo-card img { display: block; width: 100%; height: auto; filter: contrast(.94) brightness(1.03) saturate(.92); }
.media-photo-caption { position: absolute; right: 0; bottom: 0; left: 0; padding: clamp(1.5rem, 3vw, 2.2rem); color: var(--warm-white); background: linear-gradient(rgba(16,60,47,0), rgba(16,60,47,.85) 55%, rgba(16,60,47,.94)); }
.media-photo-caption .kicker { color: var(--sage-400); font-size: .7rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.media-photo-caption h3 { margin-top: .6rem; font-size: clamp(1.15rem, 1.8vw, 1.5rem); color: var(--warm-white); }
.media-photo-caption p { margin-top: .5rem; font-size: .85rem; color: rgba(252,251,247,.8); }

.cta-band { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2rem; padding: clamp(3rem, 8vw, 7rem); background: var(--sage-200); }
.cta-band h2 { max-width: 17ch; }
.cta-band p { max-width: 55ch; margin-top: 1rem; color: var(--charcoal-700); }
.page-hero { padding-block: clamp(5.5rem, 11vw, 10rem); }
.page-hero h1 { max-width: 12ch; font-size: clamp(3rem, 7vw, 7rem); }
.page-hero .lede { max-width: 65ch; }
.page-hero-compact h1 { font-size: clamp(2.7rem, 6vw, 5.8rem); }

.content-grid { display: grid; grid-template-columns: minmax(180px, .38fr) minmax(0, 1fr); gap: clamp(3rem, 10vw, 9rem); }
.side-label { position: sticky; top: 120px; align-self: start; color: var(--stone-500); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; }
.prose { max-width: var(--reading); }
.prose > * + * { margin-top: 1.4rem; }
.prose h2 { margin-top: 3.5rem; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.prose h3 { margin-top: 2.5rem; }
.prose p, .prose li { color: var(--charcoal-700); }
.prose blockquote { margin: 3rem 0; padding: 2rem 0 2rem 2rem; border-left: 2px solid var(--sage-400); color: var(--forest-900); font-family: var(--font-display); font-size: 1.35rem; }
.values-grid, .service-grid, .collab-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line-light); border: 1px solid var(--line-light); }
.value, .service-card, .collab-card { padding: clamp(2rem, 4vw, 3.5rem); background: var(--warm-white); }
.value, .service-card, .collab-card { transition: transform .25s var(--ease-calm), box-shadow .25s var(--ease-calm); }
.value:hover, .service-card:hover, .collab-card:hover { box-shadow: 0 12px 30px rgba(16,60,47,.055); transform: translateY(-2px); }
.value span, .service-card span, .collab-card span { color: var(--emerald-600); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.value h3, .service-card h3, .collab-card h3 { margin-top: 2.8rem; }
.value p, .service-card p, .collab-card p { margin-top: 1rem; color: var(--charcoal-700); }
.service-card ul { margin: 1.25rem 0 0; padding-left: 1.15rem; color: var(--charcoal-700); }
.service-card .text-link { margin-top: 1.5rem; }
.services-section { padding-top: 2rem; background: linear-gradient(180deg, var(--sage-200) 0%, var(--warm-white) 18%, var(--warm-white) 100%); }
.service-editorial { border-top: 1px solid var(--line-light); }
.service-story { display: grid; grid-template-columns: minmax(54px, .18fr) minmax(0, 1fr) minmax(220px, .42fr); gap: clamp(2rem, 6vw, 7rem); align-items: start; padding-block: clamp(4rem, 8vw, 7rem); border-bottom: 1px solid var(--line-light); scroll-margin-top: 110px; }
.service-story:nth-child(even) .service-narrative { transform: translateX(clamp(0px, 3vw, 2.5rem)); }
.service-number { color: var(--sage-400); font-family: var(--font-display); font-size: clamp(2rem, 4vw, 4.4rem); font-weight: 500; line-height: 1; letter-spacing: -.06em; }
.service-narrative { max-width: 700px; }
.service-narrative h2 { max-width: 13ch; font-size: clamp(2.2rem, 4.4vw, 5rem); }
.service-narrative > p:not(.eyebrow) { max-width: 56ch; margin-top: 1.5rem; color: var(--charcoal-700); font-size: 1.05rem; }
.service-narrative .text-link { margin-top: 2rem; }
.service-story ul { margin: clamp(3.5rem, 7vw, 6rem) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line-light); color: var(--charcoal-700); }
.service-story li { padding-block: .85rem; border-bottom: 1px solid var(--line-light); font-size: .88rem; }
.placeholder-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 2rem; }
.placeholder { padding: 1rem; border: 1px dashed rgba(16,60,47,.3); color: var(--stone-500); font-size: .85rem; }

.notice { padding: 1.4rem 1.5rem; border-left: 3px solid var(--sage-400); background: var(--ivory-50); color: var(--charcoal-700); font-size: .92rem; }
.emergency-notice { border-color: var(--danger-soft); }
.reflection-page-hero { padding-block: clamp(4.5rem, 8vw, 7rem); }
.reflection-page-hero h1 { max-width: 11ch; }
.reflection-privacy-lead { margin-top: 2rem; color: var(--forest-700); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.reflection-shell { max-width: 880px; margin-inline: auto; }
.reflection-intro { margin-bottom: 3rem; }
.reflection-card { scroll-margin-top: 100px; padding: clamp(2.5rem, 7vw, 5rem); border: 0; background: var(--warm-white); box-shadow: 0 28px 80px rgba(16,60,47,.07); }
.reflection-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2.5rem; }
.reflection-progress-text { color: var(--stone-500); font-size: .8rem; }
.progress-track { height: 3px; flex: 1; max-width: 280px; background: var(--sage-200); }
.progress-bar { height: 100%; width: 16.666%; background: var(--emerald-600); transition: width .5s var(--ease-calm); }
.reflection-question { font-size: clamp(1.5rem, 3.2vw, 2.5rem); }
.answer-list { display: grid; gap: .75rem; margin-top: 3rem; }
.answer { display: grid; grid-template-columns: 1.5rem 1fr auto; align-items: center; gap: .9rem; min-height: 64px; padding: 1rem 1.2rem; border: 1px solid var(--line-light); border-radius: var(--radius-sm); cursor: pointer; transition: border-color .25s ease, background .25s ease, transform .25s var(--ease-calm); }
.answer:hover { border-color: rgba(16,60,47,.28); background: var(--ivory-50); transform: translateX(2px); }
.answer:has(input:checked) { border-color: var(--forest-700); background: var(--sage-200); }
.answer input { width: 1.1rem; height: 1.1rem; accent-color: var(--forest-700); }
.answer-score { color: var(--stone-500); font-size: .78rem; }
.reflection-actions { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; }
.reflection-result { scroll-margin-top: 100px; text-align: left; }
.score-label { color: var(--stone-500); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.score { display: block; margin-block: .4rem 1.5rem; color: var(--forest-900); font-family: var(--font-display); font-size: clamp(4rem, 10vw, 7rem); line-height: 1; }
.privacy-inline { margin-top: 1.5rem; color: var(--stone-500); font-size: .8rem; }

.filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem 1rem; margin-bottom: clamp(3rem, 6vw, 5rem); padding-block: 1rem; border-block: 1px solid var(--line-light); }
.filter-button { min-height: 42px; padding: .55rem .3rem; border: 0; border-bottom: 1px solid transparent; border-radius: 0; color: var(--charcoal-700); background: transparent; cursor: pointer; }
.filter-button[aria-pressed="true"] { border-color: var(--forest-900); color: white; background: var(--forest-900); }
.filter-button[aria-pressed="true"] { padding-inline: 1rem; border-radius: 999px; }
.search-wrap { position: relative; min-width: min(100%, 280px); margin-left: auto; }
.search-wrap input { width: 100%; min-height: 44px; padding: .6rem 1rem; border: 1px solid var(--line-light); border-radius: 999px; background: var(--warm-white); }
.featured-article { display: grid; grid-template-columns: 1.18fr .82fr; min-height: 580px; margin-bottom: clamp(4rem, 8vw, 7rem); border: 0; background: var(--warm-white); text-decoration: none; }
.featured-article figure { margin: 0; overflow: hidden; }
.featured-article img { width: 100%; height: 100%; object-fit: contain; background: var(--sage-200); }
.featured-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 6vw, 6rem); }
.featured-copy h2 { margin-top: 1rem; font-size: clamp(2rem, 4vw, 4rem); }
.featured-copy p { margin-top: 1.2rem; color: var(--charcoal-700); }
.article-list { border-top: 1px solid var(--line-light); }
.article-row { display: grid; grid-template-columns: 140px 1fr auto; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; padding-block: clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--line-light); text-decoration: none; }
.article-row img { width: 140px; aspect-ratio: 4/3; object-fit: contain; background: var(--sage-200); }
.article-row p { margin-top: .5rem; color: var(--charcoal-700); }
.article-page { padding-block: clamp(4rem, 9vw, 8rem); }
.article-header { max-width: 960px; margin-inline: auto; text-align: center; }
.article-header h1 { margin-top: 1.5rem; font-size: clamp(2.7rem, 6vw, 6rem); }
.article-header .lede { margin-inline: auto; }
.article-byline { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 1.4rem; margin-top: 1.8rem; color: var(--stone-500); font-size: .8rem; }
.article-cover { width: min(calc(100% - 48px), 1180px); height: min(65vw, 680px); margin: 4rem auto; object-fit: contain; background: var(--sage-200); }
.article-body { width: min(calc(100% - 48px), var(--reading)); margin-inline: auto; }
.article-body > * + * { margin-top: 1.5rem; }
.article-body h2 { margin-top: 3.5rem; font-size: clamp(1.9rem, 3vw, 2.8rem); }
.article-body h3 { margin-top: 2.7rem; }
.article-body p, .article-body li { color: var(--charcoal-700); }
.article-body blockquote { margin: 3rem 0; padding: 2rem; border-block: 1px solid var(--line-light); color: var(--forest-900); font-family: var(--font-display); font-size: 1.35rem; }
.article-cta { margin-top: 4rem; padding: clamp(2rem, 5vw, 4rem); background: var(--sage-200); }

.timeline { border-top: 1px solid var(--line-light); }
.timeline-item { display: grid; grid-template-columns: .35fr 1fr; gap: 2rem; padding-block: 3rem; border-bottom: 1px solid var(--line-light); }
.timeline-item .type { color: var(--emerald-600); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.timeline-item p { max-width: 65ch; margin-top: .8rem; color: var(--charcoal-700); }
.media-portrait-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.media-portrait-grid img { width: 100%; height: 680px; object-fit: contain; background: var(--warm-white); }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.field { display: flex; flex-direction: column; gap: .5rem; }
.field-full { grid-column: 1 / -1; }
.field label, .field-label { color: var(--forest-900); font-size: .82rem; font-weight: 600; }
.field input, .field select, .field textarea { min-height: 48px; padding: .8rem 1rem; border: 1px solid rgba(16,60,47,.25); border-radius: var(--radius-sm); color: var(--charcoal-900); background: var(--warm-white); }
.field textarea { min-height: 150px; resize: vertical; }
.checkbox { display: grid; grid-template-columns: 1.2rem 1fr; gap: .7rem; align-items: start; color: var(--charcoal-700); font-size: .85rem; }
.checkbox input { width: 1rem; height: 1rem; margin-top: .25rem; accent-color: var(--forest-700); }
.honeypot { position: absolute; left: -10000px; }
.form-status { margin-top: 1rem; color: var(--forest-700); }
.form-status-error { color: var(--danger-soft); }
.booking-panel { display: grid; grid-template-columns: 1fr .85fr; gap: clamp(3rem, 8vw, 8rem); }
.booking-placeholder { min-height: 420px; display: grid; place-items: center; padding: 2rem; border: 1px dashed rgba(16,60,47,.3); background: var(--ivory-50); text-align: center; }
.detail-list { margin-top: 2rem; border-top: 1px solid var(--line-light); }
.detail-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding-block: 1rem; border-bottom: 1px solid var(--line-light); }
.detail-row span:first-child { color: var(--stone-500); }
.faq-list { border-top: 1px solid var(--line-light); }
.faq-item { border-bottom: 1px solid var(--line-light); }
.faq-question { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 1rem; min-height: 72px; align-items: center; padding: 1rem 0; border: 0; color: var(--forest-900); background: transparent; font-family: var(--font-display); font-size: 1.1rem; text-align: left; cursor: pointer; }
.faq-answer { display: grid; grid-template-rows: 0fr; padding: 0 3rem 0 0; color: var(--charcoal-700); opacity: 0; transition: grid-template-rows .3s var(--ease-calm), padding-bottom .3s var(--ease-calm), opacity .3s var(--ease-calm); }
.faq-answer > * { min-height: 0; margin: 0; overflow: hidden; }
.faq-answer.open { grid-template-rows: 1fr; padding-bottom: 1.5rem; opacity: 1; }
.faq-question span:last-child { font-size: 1.5rem; transition: transform .25s var(--ease-calm); }
.faq-question[aria-expanded="true"] span:last-child { transform: rotate(45deg); }
.legal-review { margin-bottom: 2rem; padding: 1rem 1.2rem; border: 1px solid #b89155; color: #5e421b; background: #fff7e8; font-size: .88rem; }

.site-footer { padding-top: clamp(5rem, 10vw, 9rem); color: rgba(252,251,247,.72); background: var(--forest-950); }
.footer-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 3rem; padding-bottom: clamp(5rem, 10vw, 9rem); border-bottom: 1px solid rgba(255,255,255,.15); }
.footer-cta h2 { max-width: 15ch; color: var(--warm-white); font-size: clamp(2.7rem, 6vw, 6.5rem); }
.footer-cta .eyebrow { color: var(--sage-400); }
.footer-cta .button { margin-bottom: .6rem; }
.footer-grid { display: grid; grid-template-columns: 1.7fr repeat(3, 1fr); gap: 3rem; }
.footer-grid { padding-top: clamp(4rem, 7vw, 6rem); }
.footer-logo { width: min(100%, 270px); height: auto; }
.footer-note { max-width: 32ch; margin-top: 1.5rem; }
.footer-label { margin-bottom: 1rem; color: var(--sage-400); font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; }
.footer-grid a { text-decoration: none; }
.footer-grid a:hover { color: white; text-decoration: underline; }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 4rem; padding-block: 1.2rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .72rem; }

.whatsapp-float { position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 45; display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: #25d366; box-shadow: 0 12px 28px rgba(16,60,47,.28); transition: transform .25s var(--ease-calm), box-shadow .25s var(--ease-calm); }
.whatsapp-float svg { width: 1.9rem; height: 1.9rem; fill: white; }
.whatsapp-float:hover, .whatsapp-float:focus-visible { box-shadow: 0 16px 34px rgba(16,60,47,.36); transform: translateY(-2px) scale(1.04); }

@keyframes page-enter {
  from { opacity: 0; transform: translate3d(0, 8px, 0); }
  to { opacity: 1; transform: none; }
}

.motion-enabled .motion-item { opacity: 0; transform: translate3d(0, 12px, 0); will-change: opacity, transform; }
.motion-enabled .motion-label { transform: none; transition: opacity .4s var(--ease-calm); }
.motion-enabled .motion-heading { transition: opacity .55s var(--ease-calm) .08s, transform .55s var(--ease-calm) .08s; }
.motion-enabled .motion-copy { transition: opacity .55s var(--ease-calm) .16s, transform .55s var(--ease-calm) .16s; }
.motion-enabled .motion-cta { transform: translate3d(0, 8px, 0); transition: opacity .45s var(--ease-calm) .22s, transform .45s var(--ease-calm) .22s; }
.motion-enabled .motion-image { clip-path: inset(0 0 12% 0); opacity: 1; transform: scale(.98); transform-origin: center; transition: clip-path .65s var(--ease-calm) .28s, transform .65s var(--ease-calm) .28s; will-change: clip-path, transform; }
.motion-enabled .motion-section.motion-in .motion-item,
.motion-enabled .motion-unit.motion-in { opacity: 1; transform: translate3d(0,0,0); }
.motion-enabled .motion-section.motion-in .motion-image { clip-path: inset(0); transform: scale(1); }
.motion-enabled .motion-unit { opacity: 0; transform: translate3d(0,12px,0); transition: opacity .6s var(--ease-calm), transform .6s var(--ease-calm); will-change: opacity, transform; }
.reflection-card fieldset { opacity: 1; transform: translate3d(0,0,0); transition: opacity .3s var(--ease-calm), transform .3s var(--ease-calm); }
.reflection-card fieldset.question-leaving { opacity: 0; transform: translate3d(0,-12px,0); }
.reflection-card fieldset.question-entering { opacity: 0; transform: translate3d(0,12px,0); transition: none; }
.reflection-result { opacity: 1; transform: translate3d(0,0,0); transition: opacity .45s var(--ease-calm), transform .45s var(--ease-calm); }
.reflection-result.result-entering { opacity: 0; transform: translate3d(0,12px,0); transition: none; }

@media (max-width: 1100px) {
  .desktop-nav { display: none; }
  .desktop-book { margin-left: auto; }
  .menu-toggle { width: 44px; height: 44px; display: grid; flex: 0 0 44px; align-content: center; gap: 6px; padding: 10px; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle span:not(.sr-only) { width: 100%; height: 1px; background: var(--forest-900); transition: transform .25s ease; }
  .menu-toggle[aria-expanded="true"] span:nth-last-child(2) { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-menu { position: absolute; top: 100%; right: 0; left: 0; z-index: 46; display: block; width: 100%; height: calc(100dvh - 82px); min-height: calc(100svh - 82px); padding: 2rem 24px; overflow-y: auto; overscroll-behavior: contain; border-top: 1px solid var(--line-light); background: var(--warm-white); }
  .mobile-menu[hidden] { display: none; }
  .mobile-menu nav { display: flex; height: 100%; flex-direction: column; gap: 1rem; }
  .mobile-menu nav > a:not(.button) { padding-block: .5rem; color: var(--forest-900); font-family: var(--font-display); font-size: clamp(1.5rem, 6vw, 2.3rem); text-decoration: none; }
  .mobile-menu .button { margin-top: auto; }
  .hero-grid { grid-template-columns: 1fr 420px; gap: 2rem; }
  .hero-grid.hero-alt { grid-template-columns: 420px 1fr; }
  .portrait-frame { margin-right: 0; }
  .hero-alt .portrait-frame { margin-left: 0; }
  .values-grid, .service-grid, .collab-grid { grid-template-columns: repeat(2, 1fr); }
  .article-grid { gap: 1.5rem; }
}

@media (max-width: 800px) {
  .shell, .reading, .article-body, .article-cover { width: min(calc(100% - 40px), var(--shell)); }
  .header-inner { min-height: 72px; }
  .brand-logo { width: 175px; height: 58px; flex-basis: 175px; }
  .brand-logo img { top: -68px; left: -65px; width: 300px; }
  .menu-toggle { margin-left: auto; }
  .desktop-book { display: none; }
  .mobile-menu { height: calc(100dvh - 72px); min-height: calc(100svh - 72px); }
  .hero { min-height: auto; }
  .hero-grid { grid-template-columns: 1fr; padding-top: 4rem; }
  .hero-copy { padding-bottom: 1rem; }
  .portrait-frame, .portrait-frame img { min-height: 500px; }
  .hero-alt .portrait-frame { margin-left: 0; }
  .intro-grid, .content-grid, .feature-split, .featured-article, .booking-panel { grid-template-columns: 1fr; }
  .service-story { grid-template-columns: 52px 1fr; gap: 1.5rem 2rem; }
  .service-story:nth-child(even) .service-narrative { transform: none; }
  .service-story ul { grid-column: 2; margin-top: 1rem; }
  .side-label { position: static; }
  .feature-copy { min-height: 500px; }
  .article-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .article-card { display: grid; grid-template-columns: 140px 1fr; gap: 1.2rem; }
  .article-card figure { margin: 0; }
  .article-card h3 { font-size: 1.25rem; }
  .article-card p { display: none; }
  .cta-band { grid-template-columns: 1fr; align-items: start; }
  .section-heading { align-items: start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer-cta { grid-template-columns: 1fr; align-items: start; }
  .footer-grid > div:last-child { grid-column: 2 / -1; }
  .featured-article figure { min-height: 360px; }
  .article-row { grid-template-columns: 110px 1fr; gap: 1rem; }
  .article-row img { width: 110px; }
  .article-row .arrow { display: none; }
  .media-portrait-grid img { height: 560px; }
  .media-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  h1 { font-size: clamp(2.65rem, 14vw, 4.3rem); }
  .section { padding-block: 4.5rem; }
  .brand-role { font-size: .56rem; }
  .portrait-frame, .portrait-frame img { min-height: 430px; }
  .portrait-caption { font-size: .62rem; }
  .service-row { grid-template-columns: 2rem 1fr auto; }
  .feature-split { display: flex; flex-direction: column; }
  .feature-image { min-height: 420px; }
  .feature-copy { min-height: auto; padding: 4rem 20px; }
  .values-grid, .service-grid, .collab-grid, .form-grid, .placeholder-list { grid-template-columns: 1fr; }
  .field-full { grid-column: auto; }
  .article-card { grid-template-columns: 110px 1fr; gap: 1rem; }
  .article-meta { font-size: .62rem; }
  .media-grid { grid-template-columns: 1fr; }
  .cta-band { padding: 4rem 20px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem 1rem; }
  .footer-cta { gap: 2rem; }
  .footer-cta .button { width: 100%; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-grid > div:last-child { grid-column: auto; }
  .reflection-card { padding: 1.5rem 1rem; border-inline: 0; box-shadow: none; }
  .reflection-top { align-items: start; flex-direction: column; }
  .progress-track { width: 100%; max-width: none; }
  .answer { grid-template-columns: 1.5rem 1fr; }
  .answer-score { grid-column: 2; }
  .reflection-actions { flex-wrap: wrap; }
  .reflection-actions .button { flex: 1; }
  .featured-article figure { min-height: 280px; }
  .featured-copy { padding: 2rem 1.4rem; }
  .article-row { grid-template-columns: 90px 1fr; }
  .article-row img { width: 90px; }
  .article-row p { display: none; }
  .timeline-item { grid-template-columns: 1fr; gap: .8rem; }
  .media-portrait-grid { grid-template-columns: 1fr; }
  .media-portrait-grid img { height: 560px; }
  .detail-row { grid-template-columns: 1fr; gap: .3rem; }
  .service-story { grid-template-columns: 1fr; padding-block: 4rem; }
  .service-story .service-number { font-size: 2rem; }
  .service-story ul { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .page-transition { animation: none; transition: none; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .motion-enabled .motion-item,
  .motion-enabled .motion-image,
  .motion-enabled .motion-unit {
    opacity: 1;
    transform: none;
    clip-path: none;
    will-change: auto;
  }
}
