/* ============================================================
   VANESSA — Version explorations (V2 Cinematic · V3 Editorial)
   Builds on base.css + site.css. Adds video heroes + richer
   Speaking / Strategic Advisory / Studio Essence / Closing.
   ============================================================ */

/* ====================================================================
   SHARED — nav over a dark hero (cinematic): light wordmark at top
   ==================================================================== */
.cinematic .nav:not(.is-stuck) .wordmark { color: var(--parchment); }
.cinematic .nav:not(.is-stuck) .brand .spark path { fill: var(--stone); }
.nav .nav-roles { display: inline-flex; align-items: center; gap: 0.45rem 0.75rem; margin: 0;
  font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--ink); transition: color .4s ease; }
.nav .nav-roles .dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: 0.6; display: inline-block; }
.cinematic .nav:not(.is-stuck) .nav-roles { color: var(--parchment); }
@media (max-width: 640px) { .nav .nav-roles { display: none; } }

/* hero title — bigger, bolder, true center */
.cinematic .h-cine { justify-content: center; padding-top: 15vh; padding-bottom: 0; }
.cinematic .h-cine .h-title { font-size: clamp(3.4rem, 8.3vw, 7.8rem); font-weight: 400; }
.cinematic .h-cine .h-name { display: block; color: var(--stone); margin-top: 0; margin-bottom: 1.2rem; }

/* ====================================================================
   V2 — CINEMATIC full-bleed video hero (leans on GBY)
   ==================================================================== */
.h-cine { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 9rem var(--gutter) clamp(5rem,9vw,7rem); overflow: hidden; isolation: isolate; background: var(--forest); }
.h-cine .h-bg { position: absolute; inset: 0; z-index: -2; background: var(--forest); }
.h-cine .h-bg video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(1.22) contrast(1.05) brightness(1.05); }
.h-cine .h-tint { position: absolute; inset: 0; z-index: -1; background:
    radial-gradient(125% 110% at 50% 38%, rgba(64,52,40,0.22) 0%, rgba(42,33,26,0) 50%, rgba(18,14,10,0.55) 100%); }
.h-cine .h-grain { position: absolute; inset: 0; z-index: -1; opacity: 0.5; pointer-events: none;
  background: linear-gradient(0deg, rgba(18,14,10,0.5), transparent 30%); }
.h-cine .h-inner { width: 100%; max-width: 1100px; }
.h-cine .spark { width: 24px; margin: 0 auto clamp(1.6rem,3.4vw,2.4rem); display: block; }
.h-cine .spark path { fill: var(--stone); }
.h-cine .eyebrow { display: block; color: var(--brass); margin-bottom: clamp(1.5rem,3vw,2.2rem); }
.h-cine .h-title { font-family: var(--serif); font-weight: 300; line-height: 0.91; letter-spacing: -0.012em; font-size: clamp(2.6rem,6.4vw,6rem); color: #ECE4D6; max-width: 16ch; margin: 0 auto; text-wrap: balance; }
.h-cine .h-title .soft { font-style: italic; color: #C9A86A; }
.h-cine .h-sub { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem 0.9rem; margin: clamp(1.7rem,3vw,2.5rem) auto 0; font-family: var(--sans); font-weight: 300; font-size: clamp(1.05rem,1.3vw,1.3rem); letter-spacing: 0.04em; color: #E6E1D6; }
.h-cine .h-sub .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--sage-soft); display: inline-block; }
.h-cine .scroll-hint { color: rgba(236,228,214,0.7); }
.h-cine .scroll-hint .ln { background: rgba(236,228,214,0.6); }

/* ====================================================================
   V3 — EDITORIAL split hero (light, framed video panel right)
   ==================================================================== */
.h-edit { position: relative; min-height: 100svh; display: flex; align-items: center; padding: clamp(8rem,12vw,10rem) var(--gutter) clamp(4rem,8vw,6rem); overflow: hidden; }
.h-edit .h-grid { width: 100%; max-width: 1460px; margin: 0 auto; display: grid; grid-template-columns: 1.18fr 0.82fr; gap: clamp(2.5rem,5vw,5rem); align-items: center; }
.h-edit .h-num { font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ink-3); display: flex; align-items: center; gap: 0.8rem; margin-bottom: clamp(1.6rem,3vw,2.4rem); }
.h-edit .h-num::before { content: ""; width: 34px; height: 1px; background: var(--stone); display: inline-block; }
.h-edit .h-title { font-family: var(--serif); font-weight: 300; line-height: 1.06; letter-spacing: -0.012em; font-size: clamp(2.4rem,4.4vw,4.3rem); color: var(--ink); max-width: 100%; }
.h-edit .h-title .soft { font-style: italic; color: var(--sage); }
.h-edit .h-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 0.55rem 0.95rem; margin-top: clamp(1.8rem,3vw,2.5rem); font-family: var(--sans); font-weight: 300; font-size: clamp(1.05rem,1.3vw,1.3rem); color: var(--ink-2); }
.h-edit .h-sub .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--sage); display: inline-block; }
.h-edit .h-eyebrow { font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--sage); margin-top: clamp(1.6rem,2.6vw,2rem); display: block; }
.h-edit .v-panel { position: relative; }
.h-edit .v-frame { position: relative; aspect-ratio: 3/4; border-radius: 6px; overflow: hidden; background: #181511; box-shadow: 0 50px 90px -55px rgba(30,26,20,0.55); }
.h-edit .v-frame video { width: 100%; height: 100%; object-fit: cover; display: block; }
.h-edit .v-frame .v-grad { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(24,21,17,0.5)); pointer-events: none; }
.h-edit .v-badge { position: absolute; left: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--sans); font-size: 0.64rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: #F0EDE6; }
.h-edit .v-badge .pulse { width: 7px; height: 7px; border-radius: 50%; background: var(--sage-soft); box-shadow: 0 0 0 0 rgba(138,154,128,0.6); animation: vpulse 2.4s ease-out infinite; }
@keyframes vpulse { 0%{ box-shadow: 0 0 0 0 rgba(138,154,128,0.55) } 70%{ box-shadow: 0 0 0 9px rgba(138,154,128,0) } 100%{ box-shadow: 0 0 0 0 rgba(138,154,128,0) } }
@media (prefers-reduced-motion: reduce) { .h-edit .v-badge .pulse { animation: none; } }
@media (max-width: 880px) {
  .h-edit { min-height: auto; padding-top: clamp(7rem,18vw,9rem); }
  .h-edit .h-grid { grid-template-columns: 1fr; gap: clamp(2.5rem,8vw,3.5rem); }
  .h-edit .v-panel { order: -1; max-width: 380px; }
}

/* ====================================================================
   SPEAKING — V2 split (intro left, 2×2 cards right)
   ==================================================================== */
.s-speak2 .sp-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2.5rem,5vw,5rem); align-items: start; }
.s-speak2 .sp-intro { position: sticky; top: clamp(6rem,10vw,8rem); }
.s-speak2 .sp-intro .eyebrow { display: block; margin-bottom: 1.3rem; }
.s-speak2 .sp-intro h2 { font-family: var(--serif); font-weight: 300; line-height: 1.12; font-size: clamp(2rem,3.6vw,3.2rem); color: var(--ink); max-width: 16ch; }
.s-speak2 .sp-intro .sub { margin-top: clamp(1.7rem,2.6vw,2.2rem); font-family: var(--sans); font-weight: 300; font-size: clamp(1.02rem,1.15vw,1.2rem); line-height: 1.6; color: var(--ink-2); max-width: 38ch; }
.s-speak2 .sp-cards { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(0.9rem,1.4vw,1.2rem); }
@media (max-width: 900px) { .s-speak2 .sp-grid { grid-template-columns: 1fr; gap: clamp(2rem,7vw,3rem); } .s-speak2 .sp-intro { position: static; } }
@media (max-width: 480px) { .s-speak2 .sp-cards { grid-template-columns: 1fr; } }

/* SPEAKING — V3 centered head + full-width row + featured quote bar */
.s-speak3 .sp-head { text-align: center; max-width: 30ch; margin: 0 auto clamp(2.4rem,5vw,3.6rem); }
.s-speak3 .sp-head .eyebrow { display: block; margin-bottom: 1.3rem; }
.s-speak3 .sp-head h2 { font-family: var(--serif); font-weight: 300; line-height: 1.12; font-size: clamp(2rem,4vw,3.4rem); color: var(--ink); }
.s-speak3 .sp-head .sub { margin: clamp(1.9rem,3vw,2.6rem) auto 0; font-family: var(--sans); font-weight: 300; font-size: clamp(1.05rem,1.2vw,1.25rem); line-height: 1.6; color: var(--ink-2); max-width: 46ch; }
.s-speak3 .sp-quote { max-width: 1340px; margin: 0 auto clamp(2.6rem,5vw,4rem); display: flex; align-items: center; gap: clamp(1.2rem,3vw,2.4rem); padding: clamp(1.8rem,3vw,2.6rem) clamp(1.8rem,3.5vw,3rem); background: var(--forest); border-radius: 14px; color: var(--parchment); }
.s-speak3 .sp-quote .q-mark { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(3rem,6vw,5rem); line-height: 0.6; color: var(--sage-soft); flex: none; }
.s-speak3 .sp-quote p { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(1.3rem,2.2vw,2rem); line-height: 1.34; color: #ECE4D6; max-width: 44ch; }
.s-speak3 .sp-quote cite { display: block; margin-top: 0.9rem; font-family: var(--sans); font-style: normal; font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--sage-soft); }
@media (max-width: 700px) { .s-speak3 .sp-quote { flex-direction: column; align-items: flex-start; gap: 0.4rem; } }

/* ====================================================================
   STRATEGIC ADVISORY — V2 two-column (copy + GBY mark & disciplines)
   ==================================================================== */
.s-gby2 .gby2-grid { position: relative; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(2.5rem,6vw,6rem); align-items: center; }
.s-gby2 .gby2-copy .spark-lead { width: 24px; margin-bottom: clamp(1.5rem,3vw,2rem); display: block; }
.s-gby2 .gby2-copy .spark-lead path { fill: var(--stone); }
.s-gby2 .gby2-copy .eyebrow { display: block; margin-bottom: 1.3rem; }
.s-gby2 .gby2-copy h2 { font-family: var(--serif); font-weight: 300; line-height: 1.1; font-size: clamp(2.1rem,4.2vw,3.5rem); color: var(--parchment); max-width: 16ch; }
.s-gby2 .gby2-copy .body { margin-top: clamp(1.4rem,2.6vw,2rem); color: var(--ink-on-2); max-width: 46ch; }
.s-gby2 .gby2-copy .gby-cta { margin-top: clamp(1.9rem,3.2vw,2.6rem); }
.s-gby2 .gby2-copy .tlink { color: var(--parchment); border-color: var(--sage-soft); }
.s-gby2 .gby2-copy .tlink:hover { color: var(--stone); border-color: var(--stone); }

.s-gby2 .gby2-aside { position: relative; border: 1px solid rgba(236,228,214,0.16); border-radius: 18px; padding: clamp(2rem,3.4vw,3rem); background: rgba(236,228,214,0.02); }
.s-gby2 .gby-mark { width: clamp(64px,8vw,92px); height: auto; margin: 0 auto clamp(1.8rem,3vw,2.4rem); display: block; filter: brightness(0) invert(1); opacity: 0.92; }
.s-gby2 .disc { list-style: none; margin: 0; padding: 0; }
.s-gby2 .disc li { display: flex; align-items: baseline; gap: 1rem; padding: clamp(0.9rem,1.6vw,1.2rem) 0; border-top: 1px solid rgba(236,228,214,0.12); }
.s-gby2 .disc li:first-child { border-top: 0; }
.s-gby2 .disc .dn { font-family: var(--serif); font-style: italic; font-size: 0.95rem; color: var(--sage-soft); flex: none; }
.s-gby2 .disc .dt { font-family: var(--serif); font-weight: 400; font-size: clamp(1.15rem,1.6vw,1.5rem); line-height: 1.15; color: #ECE4D6; }
@media (max-width: 880px) { .s-gby2 .gby2-grid { grid-template-columns: 1fr; gap: clamp(2.5rem,8vw,3.5rem); } }

/* STRATEGIC ADVISORY — V3 full-bleed, spark watermark + bottom index */
.s-gby3 { position: relative; overflow: hidden; }
.s-gby3 .gw { position: absolute; right: -4%; top: 50%; transform: translateY(-50%); width: clamp(280px,40vw,640px); opacity: 0.05; pointer-events: none; }
.s-gby3 .gw path { fill: var(--parchment); }
.s-gby3 .gby3-inner { position: relative; max-width: 760px; }
.s-gby3 .spark-lead { width: 24px; margin-bottom: clamp(1.5rem,3vw,2rem); display: block; }
.s-gby3 .spark-lead path { fill: var(--stone); }
.s-gby3 .eyebrow { display: block; margin-bottom: 1.3rem; }
.s-gby3 .gby3-inner h2 { font-family: var(--serif); font-weight: 300; line-height: 1.1; font-size: clamp(2.1rem,4.4vw,3.7rem); color: var(--parchment); max-width: 18ch; }
.s-gby3 .gby3-inner .body { margin-top: clamp(1.9rem,3vw,2.6rem); color: var(--ink-on-2); max-width: 50ch; }
.s-gby3 .gby3-inner .gby-cta { margin-top: clamp(1.9rem,3.2vw,2.6rem); }
.s-gby3 .gby3-inner .tlink { color: var(--parchment); border-color: var(--sage-soft); }
.s-gby3 .gby3-inner .tlink:hover { color: var(--stone); border-color: var(--stone); }
.s-gby3 .disc-row { position: relative; display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(1.2rem,2.5vw,2.4rem); margin-top: clamp(3rem,6vw,5rem); padding-top: clamp(2rem,3.5vw,2.8rem); border-top: 1px solid rgba(236,228,214,0.16); max-width: 1000px; }
.s-gby3 .disc-row .d { }
.s-gby3 .disc-row .dn { font-family: var(--serif); font-style: italic; font-size: 0.95rem; color: var(--sage-soft); }
.s-gby3 .disc-row .dt { font-family: var(--serif); font-weight: 400; font-size: clamp(1.2rem,1.8vw,1.6rem); line-height: 1.15; color: #ECE4D6; margin-top: 0.5rem; }
.s-gby3 .disc-row .dd { font-family: var(--sans); font-size: 0.92rem; line-height: 1.55; color: var(--ink-on-2); margin-top: 0.6rem; max-width: 26ch; }
@media (max-width: 760px) { .s-gby3 .disc-row { grid-template-columns: 1fr; gap: 1.4rem; } }

/* ====================================================================
   STUDIO ESSENCE — V2 two-column (copy + identity sample panel)
   ==================================================================== */
.s-ess2 .ess2-card { position: relative; overflow: hidden; background: var(--warm-grey); border: 1px solid var(--line); border-radius: 18px; }
.s-ess2 .ess2-grid { display: grid; grid-template-columns: 1.02fr 0.98fr; align-items: stretch; }
.s-ess2 .ess2-copy { padding: clamp(2.5rem,5vw,4.5rem); display: flex; flex-direction: column; justify-content: center; }
.s-ess2 .ess2-copy .eyebrow { display: block; margin-bottom: 1.3rem; }
.s-ess2 .ess2-copy h2 { font-family: var(--serif); font-weight: 300; line-height: 1.1; font-size: clamp(2rem,3.8vw,3.2rem); color: var(--ink); max-width: 18ch; }
.s-ess2 .ess2-copy .body { margin-top: clamp(1.4rem,2.4vw,2rem); max-width: 40ch; }
.s-ess2 .ess2-copy .essence-cta { margin-top: clamp(1.9rem,3.2vw,2.6rem); }
/* the sample panel — a brand identity placeholder built from system primitives */
.s-ess2 .ess2-visual { position: relative; background:
    repeating-linear-gradient(135deg, rgba(94,110,82,0.06) 0 2px, transparent 2px 13px),
    linear-gradient(160deg, #E9E2D4, #DED6C5); display: flex; flex-direction: column; justify-content: center; gap: clamp(1.6rem,3vw,2.4rem); padding: clamp(2.5rem,5vw,4.5rem); border-left: 1px solid var(--line); }
.s-ess2 .ess-spec { font-family: var(--serif); font-weight: 300; font-size: clamp(4rem,9vw,7rem); line-height: 0.9; color: var(--ink); }
.s-ess2 .ess-spec .amp { font-style: italic; color: var(--sage); }
.s-ess2 .ess-palette { display: flex; gap: 0.6rem; }
.s-ess2 .ess-palette span { width: clamp(34px,4vw,46px); height: clamp(34px,4vw,46px); border-radius: 50%; border: 1px solid rgba(30,26,20,0.1); }
.s-ess2 .ess-meta { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
@media (max-width: 860px) { .s-ess2 .ess2-grid { grid-template-columns: 1fr; } .s-ess2 .ess2-visual { border-left: 0; border-top: 1px solid var(--line); } }

/* STUDIO ESSENCE — V3 sand band + 3 specimen tiles */
.s-ess3 .ess3-head { max-width: 24ch; margin-bottom: clamp(2.4rem,4.5vw,3.6rem); }
.s-ess3 .ess3-head .eyebrow { display: block; margin-bottom: 1.3rem; }
.s-ess3 .ess3-head h2 { font-family: var(--serif); font-weight: 300; line-height: 1.1; font-size: clamp(2rem,4vw,3.4rem); color: var(--ink); }
.s-ess3 .ess3-head .body { margin-top: clamp(1.7rem,2.8vw,2.3rem); max-width: 46ch; }
.s-ess3 .ess3-head .essence-cta { margin-top: clamp(1.7rem,2.8vw,2.2rem); }
.s-ess3 .specimens { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(1rem,1.8vw,1.5rem); }
.s-ess3 .spec-tile { position: relative; aspect-ratio: 5/4; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.1rem; background: var(--ivory); transition: transform .5s cubic-bezier(.2,.7,.3,1), box-shadow .5s ease; }
.s-ess3 .spec-tile:hover { transform: translateY(-5px); box-shadow: 0 34px 60px -44px rgba(30,26,20,0.4); }
.s-ess3 .spec-tile .st-label { position: absolute; left: 1rem; top: 1rem; font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
.s-ess3 .st-type { font-family: var(--serif); font-weight: 300; font-size: clamp(3.5rem,7vw,5.5rem); line-height: 0.9; color: var(--ink); }
.s-ess3 .st-type .it { font-style: italic; color: var(--sage); }
.s-ess3 .st-palette { display: flex; gap: 0.55rem; }
.s-ess3 .st-palette span { width: clamp(30px,3.6vw,42px); height: clamp(30px,3.6vw,42px); border-radius: 50%; border: 1px solid rgba(30,26,20,0.1); }
.s-ess3 .st-mark { width: 46px; height: auto; }
.s-ess3 .st-mark path { fill: var(--sage); }
@media (max-width: 760px) { .s-ess3 .specimens { grid-template-columns: 1fr; } .s-ess3 .spec-tile { aspect-ratio: 16/9; } }

/* ====================================================================
   CLOSING — refined (flanking rules) + richer footers
   ==================================================================== */
.s-close2 { text-align: center; padding-top: clamp(6.5rem,14vw,12rem); padding-bottom: clamp(5rem,10vw,8rem); }
.s-close2 .cl-rule { display: flex; align-items: center; justify-content: center; gap: 1.4rem; max-width: 560px; margin: 0 auto clamp(2.4rem,4.5vw,3.4rem); }
.s-close2 .cl-rule .ln { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--stone), transparent); }
.s-close2 .cl-rule .spark { width: 18px; flex: none; }
.s-close2 .cl-rule .spark path { fill: var(--sage); }
.s-close2 .cl-stmt { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: clamp(1.8rem,3.6vw,3.3rem); line-height: 1.32; letter-spacing: -0.008em; color: var(--ink); max-width: 42ch; margin: 0 auto; text-wrap: balance; }
.s-close2 .cl-attr { margin-top: clamp(2rem,4vw,3rem); font-family: var(--sans); font-size: 0.72rem; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--ink-3); }

/* footer — three-column refined */
.foot2 { border-top: 1px solid var(--line); padding: clamp(3.5rem,6vw,5.5rem) var(--gutter) clamp(3rem,5vw,4rem); }
.foot2 .f-grid { max-width: 1340px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: clamp(2rem,4vw,3rem); align-items: start; }
.foot2 .f-brand .spark { width: 13px; flex: none; }
.foot2 .f-brand .spark path { fill: var(--sage); }
.foot2 .f-name { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--ink); }
.foot2 .f-tag { font-family: var(--serif); font-style: italic; font-size: clamp(1.1rem,1.5vw,1.35rem); color: var(--ink-2); margin-top: 0.9rem; max-width: 30ch; }
.foot2 .f-col h4 { font-family: var(--sans); font-size: 0.66rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 1rem; }
.foot2 .f-col a, .foot2 .f-col span { display: block; font-family: var(--sans); font-size: 0.9rem; letter-spacing: 0.02em; color: var(--ink-2); padding: 0.3rem 0; }
.foot2 .f-col a { transition: color .3s ease; }
.foot2 .f-col a:hover { color: var(--ink); }
.foot2 .f-base { max-width: 1340px; margin: clamp(2.5rem,4vw,3.5rem) auto 0; padding-top: 1.4rem; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 0.6rem 1.5rem; }
.foot2 .f-base > :first-child { justify-self: start; }
.foot2 .f-base .f-legal { justify-self: center; }
.foot2 .f-base > :last-child { justify-self: end; }
@media (max-width:640px){ .foot2 .f-base { grid-template-columns: 1fr; justify-items: center; } }
.foot2 .f-base span { font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.04em; color: var(--ink-3); }
.foot2 .f-base .f-legal { display: flex; gap: 1.4rem; }
.foot2 .f-base .f-legal a { font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.04em; color: var(--ink-3); transition: color .3s ease; }
.foot2 .f-base .f-legal a:hover { color: var(--brass); }
@media (max-width: 720px) { .foot2 .f-grid { grid-template-columns: 1fr 1fr; } .foot2 .f-brand { grid-column: 1 / -1; } }

/* footer — V3: editorial left/right baseline */
.foot3 { border-top: 1px solid var(--line); padding: clamp(3rem,5vw,4.5rem) var(--gutter); }
.foot3 .f-inner { max-width: 1340px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.6rem 2rem; }
.foot3 .f-left .spark { width: 15px; }
.foot3 .f-left .spark path { fill: var(--sage); }
.foot3 .f-name { font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--ink); margin-top: 0.8rem; }
.foot3 .f-loc { font-family: var(--serif); font-style: italic; font-size: 1.05rem; color: var(--ink-3); margin-top: 0.4rem; }
.foot3 .f-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.6rem; }
.foot3 .f-links a, .foot3 .f-links span { font-family: var(--sans); font-size: 0.84rem; letter-spacing: 0.04em; color: var(--ink-2); transition: color .3s ease; }
.foot3 .f-links a:hover { color: var(--ink); }

/* closing — V3: quiet-luxury invitation */
.s-close3 { background: var(--parchment, #EDE6DA); color: var(--ink); text-align: center; padding: clamp(6rem,10vw,9.5rem) var(--gutter); }
.s-close3 .wrap-narrow { max-width: 900px; }
.s-close3 .cl3-spark { width: 22px; display: block; margin: 0 auto 2rem; }
.s-close3 .cl3-spark path { fill: var(--brass); }
.s-close3 .cl3-eyebrow { display: block; color: var(--brass); margin-bottom: 2rem; }
.s-close3 .cl3-head { font-family: var(--serif); font-weight: 300; font-style: italic; font-size: clamp(3.2rem,6vw,6.2rem); line-height: 1.02; letter-spacing: -0.015em; color: var(--ink); max-width: 16ch; margin: 0 auto 3rem; text-wrap: pretty; }
.s-close3 .cl3-head .up { font-style: normal; }
.s-close3 .cl3-cta { display:inline-flex; align-items:center; gap:.7em; background:#4A3826; color:var(--parchment); font-family:var(--sans); font-weight:500; font-size:.92rem; letter-spacing:.01em; padding:1em 1.75em; border-radius:999px; box-shadow:0 20px 44px -18px rgba(42,33,26,.65); transition:gap .35s ease, background .35s ease; }
.s-close3 .cl3-cta:hover { gap:1em; background:var(--moss); }
.s-close3 .cl3-cta .arrow { transition:transform .35s cubic-bezier(.2,.7,.3,1); }
.s-close3 .cl3-cta:hover .arrow { transform:translateX(4px); }
.s-close3 .cl3-sub { font-family: var(--sans); font-size: 0.95rem; letter-spacing: 0.02em; color: var(--ink-3); margin-top: 2.4rem; }

/* footer baseline — legal grouped with the copyright, brand + domain link home */
.foot2 .f-base { grid-template-columns: 1fr auto; }
.foot2 .f-meta { display: flex; align-items: center; gap: 1.4rem; justify-self: end; }
.foot2 .f-base .f-legal { justify-self: auto; }
.foot2 .f-home { font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.04em; color: var(--ink-3); transition: color .3s ease; }
.foot2 .f-home:hover { color: var(--brass); }
.foot2.tone-forest .f-home { color: var(--sage-soft); }
.foot2.tone-forest .f-home:hover { color: var(--brass); }
.foot2 .f-name a { display: inline-flex; align-items: center; gap: 0.5rem; color: inherit; transition: color .3s ease; }
.foot2 .f-name a:hover { color: var(--brass); }
@media (max-width:640px){ .foot2 .f-base { grid-template-columns: 1fr; } .foot2 .f-meta { justify-self: center; flex-direction: column; gap: .6rem; } }
