/* ============================================================
   SECTIONS — masthead, hero, regions, discovery, editorial
   ============================================================ */

/* ---- Masthead --------------------------------------------- */
.masthead{
  position:fixed; top:0; left:0; right:0; z-index:var(--z-header);
  color:var(--ink-on-dark);
  transition:transform .6s var(--ease), background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.masthead__inner{
  height:var(--header-h);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.masthead.is-solid{
  background:rgba(251,248,241,.86);
  backdrop-filter:blur(16px) saturate(1.2);
  color:var(--ink);
  border-bottom-color:var(--line);
}
.masthead.is-hidden{ transform:translateY(-100%); }
body.is-locked .masthead{ transform:translateY(-100%); }

.brand{ display:flex; align-items:center; gap:13px; flex:none; }
.brand__mark{
  width:30px; height:30px; flex:none;
  border:1px solid currentColor;
  display:grid; place-items:center;
  font:300 15px/1 var(--serif);
  letter-spacing:.02em;
  transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.brand:hover .brand__mark{ background:currentColor; }
.brand:hover .brand__mark span{ mix-blend-mode:difference; }
.brand__type strong{
  display:block; font-size:11.5px; letter-spacing:.28em; font-weight:500; text-transform:uppercase;
}
.brand__type small{
  display:block; font-size:8.5px; letter-spacing:.24em; text-transform:uppercase;
  opacity:.6; margin-top:4px;
}

.masthead__nav{ display:flex; gap:clamp(18px,2.4vw,38px); }
.masthead__nav a{
  font-size:var(--t-micro); letter-spacing:var(--track-label);
  text-transform:uppercase; font-weight:500;
  position:relative; padding:6px 0;
}
.masthead__nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:0 50%;
  transition:transform .5s var(--ease-inout);
}
.masthead__nav a:hover::after,.masthead__nav a.is-current::after{ transform:none; }

.masthead__actions{ display:flex; align-items:center; gap:10px; flex:none; }
.masthead__count{
  position:absolute; top:-4px; right:-4px;
  min-width:17px; height:17px; padding:0 4px;
  border-radius:9px; background:var(--clay); color:var(--paper);
  font-size:9px; font-weight:600; display:grid; place-items:center;
  transform:scale(0); transition:transform .4s var(--ease);
}
.masthead__count.is-on{ transform:scale(1); }
.saved-btn{ position:relative; }
.menu-btn{ display:none; }

/* ---- Menu overlay ----------------------------------------- */
.menu{
  position:fixed; inset:0; z-index:var(--z-panel);
  background:var(--forest); color:var(--ink-on-dark);
  clip-path:inset(0 0 100% 0);
  transition:clip-path .8s var(--ease-inout);
  overflow:auto;
}
.menu.is-open{ clip-path:inset(0 0 0 0); }
.menu__inner{
  min-height:100%;
  display:flex; flex-direction:column; justify-content:space-between;
  padding-block:clamp(90px,12vh,140px) clamp(32px,6vh,56px);
  gap:48px;
}
.menu__list li{ overflow:hidden; padding:.1em 0; margin:-.1em 0; }
.menu__list a{
  display:block; padding:clamp(6px,1.2vh,12px) 0;
  font:300 clamp(2.4rem,7vw,5.4rem)/1.04 var(--serif);
  letter-spacing:var(--track-display);
  transform:translateY(125%);
  transition:transform .8s var(--ease), opacity .5s;
}
.menu.is-open .menu__list a{ transform:none; }
.menu.is-open .menu__list li:nth-child(2) a{ transition-delay:.05s; }
.menu.is-open .menu__list li:nth-child(3) a{ transition-delay:.1s; }
.menu.is-open .menu__list li:nth-child(4) a{ transition-delay:.15s; }
.menu.is-open .menu__list li:nth-child(5) a{ transition-delay:.2s; }
.menu.is-open .menu__list li:nth-child(6) a{ transition-delay:.25s; }
.menu__list a:hover{ opacity:.55; }
.menu__foot{ display:flex; flex-wrap:wrap; gap:16px 48px; justify-content:space-between; align-items:flex-end; }
.menu__regions{ display:flex; flex-wrap:wrap; gap:8px 18px; max-width:640px; }
.menu__regions button{
  font-size:var(--t-micro); letter-spacing:var(--track-label); text-transform:uppercase;
  color:var(--ink-on-dark-65); transition:color var(--dur-fast);
}
.menu__regions button:hover{ color:var(--ink-on-dark); }

/* ---- Hero ------------------------------------------------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:flex-end;
  color:var(--ink-on-dark);
  overflow:hidden;
  background:var(--forest);
}
.hero__stage{ position:absolute; inset:0; z-index:0; }
.hero__layer{
  position:absolute; inset:-6%;
  opacity:0;
  transition:opacity 1.5s var(--ease-soft);
  will-change:transform;
}
.hero__layer.is-on{ opacity:1; }
.hero__layer img{
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.82) contrast(1.06) brightness(.92);
  transform:scale(1.08);
  animation:hero-drift 22s var(--ease-soft) infinite alternate;
}
@keyframes hero-drift{ to{ transform:scale(1.16); } }
.hero__scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  /* The hero photograph rotates, so the scrim has to hold legible contrast
     over a bright aerial as well as a dark dusk shot. The lower half carries
     all the copy and is weighted accordingly. */
  background:
    linear-gradient(180deg,
      rgba(9,26,20,.58) 0%,
      rgba(9,26,20,.14) 24%,
      rgba(9,26,20,.34) 50%,
      rgba(9,26,20,.72) 74%,
      rgba(9,26,20,.90) 100%),
    linear-gradient(90deg, rgba(9,26,20,.46) 0%, rgba(9,26,20,.12) 46%, transparent 68%);
}
.hero__content{
  position:relative; z-index:2;
  padding-bottom:clamp(28px,5vh,54px);
  width:100%;
}
.hero__title{
  font-family:var(--serif); font-weight:300;
  font-size:var(--t-mega); line-height:.86;
  letter-spacing:-.045em;
  margin-bottom:clamp(18px,2.6vh,30px);
  text-transform:uppercase;
}
.hero__title .split-line > i{ transition-duration:1.35s; }
.hero__deck{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(24px,5vw,80px); align-items:flex-end;
  padding-top:clamp(20px,3vh,34px);
  border-top:1px solid var(--line-dark);
}
.hero__sub{
  font:300 clamp(1.05rem,1.55vw,1.5rem)/1.42 var(--serif);
  max-width:30ch;
  color:var(--ink-on-dark);
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.hero__eyebrow{
  display:flex; flex-wrap:wrap; gap:12px 26px; align-items:center;
  margin-bottom:clamp(16px,3vh,34px);
}
.hero__scroll{
  position:absolute; right:var(--gutter); bottom:clamp(28px,5vh,54px); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  font-size:9px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--ink-on-dark-65);
  writing-mode:vertical-rl;
}
.hero__scroll::after{
  content:""; width:1px; height:52px; background:var(--line-dark-2);
  position:relative; overflow:hidden;
}
.hero__ticker{
  position:relative; z-index:2;
  border-top:1px solid var(--line-dark);
  overflow:hidden; padding-block:13px;
}
.hero__ticker-track{
  display:flex; gap:0; width:max-content;
  animation:ticker 46s linear infinite;
}
.hero__ticker-track span{
  font-size:var(--t-micro); letter-spacing:var(--track-label); text-transform:uppercase;
  color:var(--ink-on-dark-40); padding-inline:22px;
  display:inline-flex; align-items:center; gap:22px; white-space:nowrap;
}
.hero__ticker-track span::after{ content:"—"; opacity:.4; }
@keyframes ticker{ to{ transform:translateX(-50%); } }

/* ---- Statement -------------------------------------------- */
.statement{ background:var(--paper); }
.statement__grid{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(32px,6vw,110px); align-items:start;
}
.statement__body{ display:grid; gap:clamp(20px,2.4vw,32px); }
.statement__cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(22px,3vw,46px); }
.statement__cols p{ font-size:var(--t-small); line-height:1.78; color:var(--ink-70); }
.statement__marks{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:24px; margin-top:clamp(28px,4vw,48px);
  padding-top:clamp(24px,3vw,36px); border-top:1px solid var(--line);
}

/* ---- Region explorer -------------------------------------- */
.regions{
  background:var(--forest); color:var(--ink-on-dark);
  position:relative; overflow:hidden;
}
.regions__head{
  display:flex; flex-wrap:wrap; justify-content:space-between;
  align-items:flex-end; gap:24px;
  margin-bottom:clamp(36px,5vw,68px);
}
.regions__head p{ max-width:44ch; }
.regions__layout{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(28px,4vw,72px); align-items:stretch;
}
.regions__list{ border-top:1px solid var(--line-dark); }
.region-row{
  position:relative;
  display:grid; grid-template-columns:44px minmax(0,1fr) auto;
  gap:18px; align-items:center;
  width:100%; text-align:left;
  padding:clamp(14px,1.9vh,22px) 0;
  border-bottom:1px solid var(--line-dark);
  color:var(--ink-on-dark);
  transition:padding-left var(--dur) var(--ease), color var(--dur) var(--ease);
}
.region-row__idx{
  font-size:9px; letter-spacing:.16em; color:var(--ink-on-dark-40);
  transition:color var(--dur) var(--ease);
}
.region-row__name{
  font:300 clamp(1.7rem,3.4vw,3.1rem)/1 var(--serif);
  letter-spacing:-.03em;
  transition:transform var(--dur) var(--ease), font-style var(--dur);
  display:block;
}
.region-row__meta{
  font-size:9px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-on-dark-40);
  transition:color var(--dur) var(--ease), transform var(--dur) var(--ease);
  white-space:nowrap;
}
.region-row:hover,.region-row.is-active{ padding-left:16px; }
.region-row:hover .region-row__name,.region-row.is-active .region-row__name{ font-style:italic; }
.region-row:hover .region-row__meta,.region-row.is-active .region-row__meta{ color:var(--ink-on-dark); }
.region-row::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--sand-2);
  transform:scaleY(0); transform-origin:50% 100%;
  transition:transform var(--dur) var(--ease);
}
.region-row:hover::before,.region-row.is-active::before{ transform:scaleY(1); transform-origin:50% 0; }

.regions__stage{
  position:relative;
  min-height:clamp(380px,58vh,660px);
  overflow:hidden;
  background:var(--forest-2);
}
.regions__frame{ position:absolute; inset:0; }
.regions__frame img{
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.85) contrast(1.04);
  opacity:0;
  transform:scale(1.08);
  transition:opacity 1s var(--ease-soft), transform 1.6s var(--ease-soft);
}
.regions__frame.is-on img{ opacity:1; transform:scale(1); }
.regions__caption{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:clamp(20px,2.6vw,34px);
  background:linear-gradient(0deg,rgba(9,26,20,.94) 0%,rgba(9,26,20,.82) 45%,rgba(9,26,20,.25) 78%,transparent 100%);
  display:grid; gap:12px;
}
.regions__caption h3{ font:300 clamp(1.7rem,2.6vw,2.5rem)/1 var(--serif); letter-spacing:-.03em; }
.regions__caption p{ font-size:var(--t-small); line-height:1.6; color:var(--ink-on-dark-65); max-width:46ch; }
.regions__caption-stats{ display:flex; flex-wrap:wrap; gap:8px 22px; }
.regions__caption-stats span{ font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-on-dark-40); }
.regions__cta{ margin-top:6px; }

/* Mobile region carousel */
.regions__scroller{ display:none; }

/* ---- Discovery -------------------------------------------- */
.discovery{ background:var(--paper); }
.discovery__head{
  display:flex; flex-wrap:wrap; justify-content:space-between;
  align-items:flex-end; gap:24px;
  padding-bottom:clamp(26px,3.4vw,44px);
}
.discovery__head p{ max-width:42ch; }

.filters{
  position:sticky; top:var(--header-h); z-index:calc(var(--z-header) - 20);
  background:rgba(251,248,241,.9);
  backdrop-filter:blur(16px) saturate(1.2);
  border-top:1px solid var(--line-2);
  border-bottom:1px solid var(--line-2);
  margin-inline:calc(var(--gutter) * -1);
  padding-inline:var(--gutter);
}
.filters__row{
  display:flex; align-items:center; gap:clamp(14px,2vw,34px);
  padding-block:13px;
  overflow-x:auto;
}
.filters__row--types{ border-top:1px solid var(--line); }
.filters__group{ display:flex; align-items:center; gap:10px; flex:none; }
.filters__group > .label{ flex:none; }
.filters__divider{ width:1px; align-self:stretch; background:var(--line); flex:none; }
.filters__selects{
  display:flex; align-items:center; gap:clamp(14px,2vw,28px);
  flex:none; margin-left:auto;
}
.filters__select{
  display:flex; align-items:center; gap:9px;
}
.filters__select label{
  font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-38);
}
.filters__select select{
  border:0; border-bottom:1px solid var(--line-2); background:transparent;
  padding:6px 20px 6px 0; font-size:var(--t-small); font-weight:500;
  appearance:none; cursor:pointer; border-radius:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' fill='none' stroke='%2314211C' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 2px center;
}
.filters__select select:focus{ outline:none; border-bottom-color:var(--forest); }

.results-bar{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center;
  gap:16px; padding-block:clamp(22px,3vw,36px);
}
.results-bar__count{ font:300 clamp(1.3rem,2vw,2rem)/1 var(--serif); letter-spacing:-.02em; }
.results-bar__count em{ font-style:italic; }
.results-bar__right{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.active-filters{ display:flex; flex-wrap:wrap; gap:8px; }
.active-filters button{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 10px; border:1px solid var(--line-2);
  font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  transition:all var(--dur-fast) var(--ease);
}
.active-filters button:hover{ background:var(--forest); color:var(--paper); border-color:var(--forest); }

.grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(20px,2.4vw,40px) clamp(16px,1.8vw,28px);
}
.grid .card{ grid-column:span 4; }
.grid .card:nth-child(9n+1){ grid-column:span 6; }
.grid .card:nth-child(9n+1) .card__media{ aspect-ratio:16/11; }
.grid .card:nth-child(9n+2){ grid-column:span 6; }
.grid .card:nth-child(9n+2) .card__media{ aspect-ratio:16/11; }

.empty{
  grid-column:1/-1;
  border:1px solid var(--line);
  padding:clamp(48px,8vw,96px) clamp(24px,4vw,48px);
  text-align:center; display:grid; gap:18px; justify-items:center;
}

.discovery__more{ display:flex; justify-content:center; padding-top:clamp(34px,4vw,56px); }

/* ---- Horizontal rail -------------------------------------- */
.rail-section{ background:var(--paper-2); overflow:hidden; }
.rail__head{
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end;
  gap:24px; margin-bottom:clamp(28px,3.4vw,48px);
}
.rail{
  display:flex; gap:clamp(16px,1.8vw,28px);
  overflow-x:auto; scroll-snap-type:x proximity;
  /* Full-bleed rail whose first card still lines up with the shell grid.
     scroll-padding must match, or the snapport starts at the border box and
     the browser snaps straight past the padding on load. */
  padding-inline:max(var(--gutter), calc((100% - var(--shell)) / 2 + var(--gutter)));
  scroll-padding-inline:max(var(--gutter), calc((100% - var(--shell)) / 2 + var(--gutter)));
  padding-bottom:8px;
  cursor:grab;
}
.rail.is-dragging{ cursor:grabbing; scroll-snap-type:none; user-select:none; }
.rail > *{ flex:0 0 clamp(280px,26vw,420px); scroll-snap-align:start; }
.rail__hint{ display:flex; align-items:center; gap:12px; }
.rail__progress{ width:clamp(90px,12vw,170px); height:1px; background:var(--line-2); position:relative; }
.rail__progress i{ position:absolute; inset:0; background:var(--forest); transform-origin:0 50%; transform:scaleX(.2); transition:transform .2s linear; }

/* ---- Why / capability ------------------------------------- */
.why{ background:var(--charcoal); color:var(--ink-on-dark); }
.why__grid{
  display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(32px,5vw,96px); align-items:start;
}
.why__sticky{ position:sticky; top:calc(var(--header-h) + 40px); display:grid; gap:24px; }
.why__pledge{ display:grid; gap:14px; padding-top:26px; border-top:1px solid var(--line-dark); }
.why__pledge p{ font:300 clamp(1.15rem,1.7vw,1.6rem)/1.3 var(--serif); letter-spacing:-.02em; }
.cap{ border-top:1px solid var(--line-dark); }
.cap__item{ border-bottom:1px solid var(--line-dark); }
.cap__btn{
  width:100%; display:grid; grid-template-columns:44px minmax(0,1fr) 24px;
  gap:18px; align-items:center; text-align:left;
  padding:clamp(18px,2.4vh,26px) 0; color:inherit;
  transition:padding-left var(--dur) var(--ease);
}
.cap__btn:hover{ padding-left:12px; }
.cap__idx{ font-size:9px; letter-spacing:.16em; color:var(--ink-on-dark-40); }
.cap__title{ font:300 clamp(1.25rem,2.2vw,2rem)/1.1 var(--serif); letter-spacing:-.025em; }
.cap__sign{ position:relative; width:13px; height:13px; justify-self:end; }
.cap__sign::before,.cap__sign::after{
  content:""; position:absolute; inset:50% 0 auto 0; height:1px; background:currentColor;
  transition:transform var(--dur) var(--ease);
}
.cap__sign::after{ transform:rotate(90deg); }
.cap__item.is-open .cap__sign::after{ transform:rotate(0); }
.cap__panel{ overflow:hidden; height:0; transition:height var(--dur) var(--ease); }
.cap__panel-inner{
  padding:0 0 clamp(20px,2.6vh,30px) 62px;
  display:grid; gap:14px; max-width:62ch;
}
.cap__panel-inner p{ font-size:var(--t-small); line-height:1.75; color:var(--ink-on-dark-65); }
.cap__points{ display:flex; flex-wrap:wrap; gap:8px 20px; }
.cap__points span{ font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-on-dark-40); }

/* ---- Journal ---------------------------------------------- */
.journal{ background:var(--paper); }
.journal__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,48px); }
.note__media{ aspect-ratio:5/4; overflow:hidden; margin-bottom:20px; background:var(--paper-2); }
.note__media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); filter:saturate(.86); }
.note:hover .note__media img{ transform:scale(1.04); }
.note h3{ font:300 clamp(1.3rem,1.9vw,1.85rem)/1.14 var(--serif); letter-spacing:-.02em; margin:14px 0 12px; }
.note p{ font-size:var(--t-small); line-height:1.72; color:var(--ink-70); margin-bottom:18px; }

/* ---- Buyer brief ------------------------------------------ */
.brief{ background:var(--forest); color:var(--ink-on-dark); }
.brief__grid{
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(36px,5vw,100px); align-items:start;
}
.brief__intro{ display:grid; gap:22px; }
.brief__intro h2 em{ color:var(--sand); }
.brief__contact{ display:grid; gap:16px; padding-top:26px; border-top:1px solid var(--line-dark); }
.brief__contact a{ display:flex; justify-content:space-between; gap:20px; padding:11px 0; border-bottom:1px solid var(--line-dark); font-size:var(--t-small); transition:padding-left var(--dur) var(--ease); }
.brief__contact a:hover{ padding-left:8px; }
.brief__form{ display:grid; gap:clamp(20px,2.4vw,30px); }
.brief__row{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.2vw,30px); }
.brief__row--3{ grid-template-columns:repeat(3,1fr); }
.brief .field > span{ color:var(--ink-on-dark-40); }
.brief .field input,.brief .field select,.brief .field textarea{ color:var(--ink-on-dark); border-bottom-color:var(--line-dark-2); }
.brief .field input:focus,.brief .field select:focus,.brief .field textarea:focus{ border-bottom-color:var(--sand); }
.brief .field input::placeholder,.brief .field textarea::placeholder{ color:var(--ink-on-dark-40); }
.brief .field select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' fill='none' stroke='%23F2EDE2' stroke-width='1'/%3E%3C/svg%3E"); }
.brief .field select option{ color:var(--ink); }
.brief .pill{ border-color:var(--line-dark-2); color:var(--ink-on-dark-65); }
.brief .pill:hover{ border-color:var(--sand); color:var(--ink-on-dark); }
.brief .pill.is-on{ background:var(--sand); border-color:var(--sand); color:var(--ink); }
.brief__submit{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; padding-top:8px; }
.brief__note{ font-size:10px; letter-spacing:.1em; color:var(--ink-on-dark-40); max-width:42ch; line-height:1.6; }
.brief__success{
  display:none; padding:clamp(28px,4vw,48px);
  border:1px solid var(--line-dark-2); gap:16px;
}
.brief__success.is-on{ display:grid; }
form.is-sent{ display:none; }

/* ---- Footer ----------------------------------------------- */
.footer{ background:var(--charcoal); color:var(--ink-on-dark); padding-block:clamp(56px,7vw,96px) 28px; }
.footer__grid{
  display:grid; grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,.8fr));
  gap:clamp(28px,3.4vw,56px);
  padding-bottom:clamp(40px,5vw,72px);
}
.footer__word{
  font:300 clamp(2rem,4.4vw,4rem)/1 var(--serif);
  letter-spacing:-.035em; text-transform:uppercase; margin-bottom:20px;
}
.footer p{ font-size:var(--t-small); line-height:1.7; color:var(--ink-on-dark-65); max-width:38ch; }
.footer__col strong{
  display:block; font-size:var(--t-micro); letter-spacing:var(--track-label);
  text-transform:uppercase; font-weight:500; color:var(--ink-on-dark-40); margin-bottom:18px;
}
.footer__col a,.footer__col button{
  display:block; padding:6px 0; font-size:var(--t-small);
  color:var(--ink-on-dark-65); text-align:left;
  transition:color var(--dur-fast) var(--ease), padding-left var(--dur-fast) var(--ease);
}
.footer__col a:hover,.footer__col button:hover{ color:var(--ink-on-dark); padding-left:5px; }
.footer__base{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 32px;
  padding-top:26px; border-top:1px solid var(--line-dark);
  font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-on-dark-40);
}

/* ---- Enquiry dock ----------------------------------------- */
.dock{
  position:fixed; right:var(--gutter); bottom:clamp(20px,3.4vh,34px);
  z-index:var(--z-dock);
  display:flex; align-items:center; gap:8px;
  transform:translateY(150%);
  transition:transform .7s var(--ease);
}
.dock.is-on{ transform:none; }
body.is-locked .dock{ transform:translateY(150%); }
.dock__group{
  display:flex; align-items:stretch;
  background:var(--charcoal); color:var(--paper);
  box-shadow:var(--shadow-lift);
}
.dock__group button{
  padding:15px 20px;
  font-size:9px; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
  transition:background-color var(--dur-fast) var(--ease);
  white-space:nowrap;
}
.dock__group button + button{ border-left:1px solid rgba(242,237,226,.16); }
.dock__group button:hover{ background:var(--forest-3); }
.dock__group button[data-dock-primary]{ background:var(--sand); color:var(--ink); }
.dock__group button[data-dock-primary]:hover{ background:var(--sand-2); }
