
/* base reset — the single-page host used to supply this */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
:root{padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}
img{max-width:100%}
[hidden]{display:none!important}

/* ─────────────────────────────────────────────
   TOKENS — light (base)
   Palette drawn from the materials in the work:
   walnut, mahogany, oak, painted trim, brass,
   and the verdigris of weathered copper flashing.
   ───────────────────────────────────────────── */
:root{
  --ground:      #F4F2EC;
  --surface:     #FBFAF7;
  --surface-alt: #EAE7DE;
  --ink:         #2A2320;
  --ink-soft:    #5A544C;
  --ink-faint:   #8A857A;
  --rule:        #D8D4C8;
  --rule-soft:   #E4E1D7;

  --patina:      #3A6657;
  --patina-deep: #2B4C41;
  --patina-tint: #E2EAE5;
  --brass:       #A87F3D;
  --walnut:      #6B4A33;

  --shadow-sm: 0 1px 2px rgba(42,35,32,.06), 0 2px 8px rgba(42,35,32,.05);
  --shadow-md: 0 2px 6px rgba(42,35,32,.07), 0 12px 32px rgba(42,35,32,.09);
  --shadow-lg: 0 4px 12px rgba(42,35,32,.10), 0 28px 64px rgba(42,35,32,.16);

  --f-display: "Newsreader", Georgia, "Times New Roman", serif;
  --f-body: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  --measure: 64ch;
  --gutter: clamp(20px, 5vw, 64px);
  --maxw: 1240px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:      #171512;
    --surface:     #1F1C18;
    --surface-alt: #262219;
    --ink:         #EEE9DF;
    --ink-soft:    #B5AE9F;
    --ink-faint:   #8B8578;
    --rule:        #3A342B;
    --rule-soft:   #2C2721;

    --patina:      #6FA894;
    --patina-deep: #8FC1AE;
    --patina-tint: #23332D;
    --brass:       #C9A05F;
    --walnut:      #A97A56;

    --shadow-sm: 0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3);
    --shadow-md: 0 2px 6px rgba(0,0,0,.45), 0 12px 32px rgba(0,0,0,.4);
    --shadow-lg: 0 4px 12px rgba(0,0,0,.5), 0 28px 64px rgba(0,0,0,.55);
  }
}
:root[data-theme="dark"]{
  --ground:      #171512;
  --surface:     #1F1C18;
  --surface-alt: #262219;
  --ink:         #EEE9DF;
  --ink-soft:    #B5AE9F;
  --ink-faint:   #8B8578;
  --rule:        #3A342B;
  --rule-soft:   #2C2721;

  --patina:      #6FA894;
  --patina-deep: #8FC1AE;
  --patina-tint: #23332D;
  --brass:       #C9A05F;
  --walnut:      #A97A56;

  --shadow-sm: 0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3);
  --shadow-md: 0 2px 6px rgba(0,0,0,.45), 0 12px 32px rgba(0,0,0,.4);
  --shadow-lg: 0 4px 12px rgba(0,0,0,.5), 0 28px 64px rgba(0,0,0,.55);
}

/* ───────── base ───────── */
*,*::before,*::after{ box-sizing:border-box; }

body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ display:block; max-width:100%; }

a{ color:inherit; }

:focus-visible{
  outline:2px solid var(--patina);
  outline-offset:3px;
  border-radius:2px;
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* ───────── type scale ───────── */
.h-hero{
  font-family:var(--f-display);
  font-weight:300;
  font-size:clamp(2.4rem, 6.2vw, 4.6rem);
  line-height:1.02;
  letter-spacing:-.022em;
  text-wrap:balance;
  margin:0;
}
.h-1{
  font-family:var(--f-display);
  font-weight:300;
  font-size:clamp(2rem, 4.4vw, 3.3rem);
  line-height:1.08;
  letter-spacing:-.018em;
  text-wrap:balance;
  margin:0;
}
.h-2{
  font-family:var(--f-display);
  font-weight:400;
  font-size:clamp(1.45rem, 2.6vw, 1.95rem);
  line-height:1.18;
  letter-spacing:-.012em;
  text-wrap:balance;
  margin:0;
}
.h-3{
  font-family:var(--f-body);
  font-weight:600;
  font-size:1.02rem;
  line-height:1.35;
  letter-spacing:-.004em;
  margin:0;
}
.eyebrow{
  font-family:var(--f-body);
  font-size:.695rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--patina);
  margin:0;
}
.lede{
  font-size:clamp(1.05rem, 1.6vw, 1.22rem);
  line-height:1.58;
  color:var(--ink-soft);
  max-width:56ch;
  margin:0;
}
p{ margin:0; max-width:var(--measure); }
.prose > * + *{ margin-top:1.05em; }

/* ───────── layout ───────── */
.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.band{ padding-block:clamp(56px, 8vw, 116px); }
.band--tight{ padding-block:clamp(40px, 5.5vw, 76px); }
.band--alt{ background:var(--surface-alt); }
.band--ink{ background:var(--patina-deep); color:#F2EFE7; }
.band--ink .eyebrow{ color:#9FD3C0; }
.band--ink .lede{ color:#CBDDD5; }

.stack{ display:flex; flex-direction:column; }
.gap-xs{ gap:8px; } .gap-sm{ gap:14px; } .gap-md{ gap:24px; }
.gap-lg{ gap:40px; } .gap-xl{ gap:clamp(36px,5vw,64px); }

.rule{ height:1px; background:var(--rule-soft); border:0; margin:0; }

/* ───────── buttons ───────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--f-body); font-size:.905rem; font-weight:600;
  letter-spacing:.005em;
  padding:13px 24px;
  border-radius:2px;
  border:1px solid transparent;
  text-decoration:none;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.btn--primary{ background:var(--patina); color:#F7FBF9; }
.btn--primary:hover{ background:var(--patina-deep); }
:root[data-theme="dark"] .btn--primary,
.btn--primary{ color:#F7FBF9; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .btn--primary{ background:var(--patina); color:#10201B; }
  :root:not([data-theme="light"]) .btn--primary:hover{ background:var(--patina-deep); }
}
:root[data-theme="dark"] .btn--primary{ background:var(--patina); color:#10201B; }
:root[data-theme="dark"] .btn--primary:hover{ background:var(--patina-deep); }

.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--rule); }
.btn--ghost:hover{ border-color:var(--ink-soft); }
.btn--light{ background:#F2EFE7; color:#25443A; }
.btn--light:hover{ background:#fff; }
.btn--outline-light{ background:transparent; color:#F2EFE7; border-color:rgba(242,239,231,.38); }
.btn--outline-light:hover{ border-color:#F2EFE7; }

.textlink{
  display:inline-flex; align-items:center; gap:7px;
  font-weight:600; font-size:.9rem;
  color:var(--patina);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:border-color .18s ease;
}
.textlink:hover{ border-bottom-color:currentColor; }
.textlink .arw{ transition:transform .18s ease; }
.textlink:hover .arw{ transform:translateX(3px); }

/* ───────── header ───────── */
.masthead{
  position:sticky;
  top:env(safe-area-inset-top, 0px);
  z-index:60;
  background:color-mix(in srgb, var(--ground) 88%, transparent);
  backdrop-filter:saturate(1.6) blur(14px);
  border-bottom:1px solid var(--rule-soft);
}
.masthead__in{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  min-height:100px;
}
.brand{
  display:inline-flex; align-items:center;
  text-decoration:none;
  flex-shrink:0;
}
.brand img{
  display:block;
  height:76px; width:auto;
}
/* theme-switched logo: dark ink on light grounds, knockout on dark */
.brand .logo--knockout{ display:none; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .brand .logo--ink{ display:none; }
  :root:not([data-theme="light"]) .brand .logo--knockout{ display:block; }
}
:root[data-theme="dark"] .brand .logo--ink{ display:none; }
:root[data-theme="dark"] .brand .logo--knockout{ display:block; }
/* footer sits on --surface-alt, which is light in light mode */
.foot .brand img{ height:86px; }

.mainnav{ display:flex; align-items:center; gap:4px; }
.mainnav a{
  font-size:.875rem; font-weight:500;
  padding:8px 13px;
  text-decoration:none; color:var(--ink-soft);
  border-radius:2px;
  transition:color .16s ease, background .16s ease;
}
.mainnav a:hover{ color:var(--ink); background:var(--surface-alt); }
.mainnav a[aria-current="page"]{ color:var(--ink); font-weight:600; }

.head-cta{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.phonelink{
  display:inline-flex; align-items:center; gap:7px;
  font-size:.89rem; font-weight:600; text-decoration:none;
  color:var(--ink); white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.phonelink:hover{ color:var(--patina); }

.navtoggle{
  display:none;
  background:transparent; border:1px solid var(--rule);
  border-radius:2px; padding:9px 11px; cursor:pointer; color:var(--ink);
}
.drawer{ border-top:1px solid var(--rule-soft); background:var(--surface); }
.drawer nav{ display:flex; flex-direction:column; padding-block:10px; }
.drawer nav a{
  padding:12px 0; text-decoration:none; color:var(--ink);
  font-size:1rem; font-weight:500;
  border-bottom:1px solid var(--rule-soft);
}
.drawer nav a:last-child{ border-bottom:0; }

@media (max-width: 940px){
  .mainnav{ display:none; }
  .navtoggle{ display:inline-flex; }
  .head-cta .phonelink{ display:none; }
}
@media (max-width: 620px){
  .head-cta > .btn{ display:none; }
  .masthead__in{ min-height:74px; }
  .brand img{ height:58px; }
  .foot .brand img{ height:70px; }
}
@media (min-width: 941px){
  .drawer{ display:none !important; }
}

/* ───────── hero ───────── */
.hero{ position:relative; background:var(--surface-alt); }
.hero__media{
  position:relative;
  width:100%;
  aspect-ratio: 16 / 9;
  max-height:min(76vh, 660px);
  overflow:hidden;
}
.hero__media img{
  width:100%; height:100%; object-fit:cover;
  object-position:center 45%;
}
.hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,16,13,.52) 0%, rgba(20,16,13,.18) 42%, rgba(20,16,13,.72) 100%);
}
.hero__copy{
  position:absolute; inset:auto 0 0 0;
  padding-bottom:clamp(28px, 4.5vw, 56px);
  color:#F6F3EC;
}
.hero__copy .h-hero{ color:#FBF8F1; max-width:17ch; }
.hero__copy p{
  color:#DDD6C9; max-width:52ch;
  font-size:clamp(.98rem, 1.45vw, 1.14rem);
  line-height:1.55;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }

@media (max-width: 680px){
  .hero__media{ aspect-ratio: 4 / 5; max-height:none; }
}

/* ───────── credential strip ───────── */
.creds{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:10px clamp(16px, 3.4vw, 40px);
  padding-block:20px;
  border-bottom:1px solid var(--rule-soft);
}
.cred{
  display:flex; align-items:center; gap:9px;
  font-size:.815rem; font-weight:500; color:var(--ink-soft);
}
.cred b{
  color:var(--ink); font-weight:600;
  font-variant-numeric:tabular-nums;
}
.cred svg{ color:var(--patina); flex-shrink:0; }

/* ───────── section heading ───────── */
.shead{
  display:grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items:end; gap:20px 40px;
  margin-bottom:clamp(28px, 4vw, 46px);
}
.shead__text{ display:flex; flex-direction:column; gap:14px; }
@media (max-width: 720px){
  .shead{ grid-template-columns:1fr; align-items:start; }
}

/* ───────── service list ───────── */
.services{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(248px, 1fr));
  gap:1px;
  background:var(--rule-soft);
  border:1px solid var(--rule-soft);
}
.service{
  background:var(--surface);
  padding:26px 24px 28px;
  display:flex; flex-direction:column; gap:11px;
  min-height:100%;
  transition:background .2s ease;
}
.service:hover{ background:var(--ground); }
.service__n{
  font-size:.7rem; font-weight:600; letter-spacing:.14em;
  color:var(--brass); text-transform:uppercase;
}
.service p{ font-size:.905rem; color:var(--ink-soft); }

/* ───────── work grid ───────── */
.filters{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom:28px;
}
.chip{
  font-family:var(--f-body);
  font-size:.815rem; font-weight:500;
  padding:8px 15px;
  border:1px solid var(--rule);
  background:transparent; color:var(--ink-soft);
  border-radius:100px; cursor:pointer;
  transition:all .16s ease;
}
.chip:hover{ border-color:var(--ink-faint); color:var(--ink); }
.chip[aria-pressed="true"]{
  background:var(--patina); border-color:var(--patina); color:#F7FBF9; font-weight:600;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .chip[aria-pressed="true"]{ color:#10201B; }
}
:root[data-theme="dark"] .chip[aria-pressed="true"]{ color:#10201B; }

.grid-work{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(268px, 1fr));
  gap:clamp(12px, 1.6vw, 20px);
}
.shot{
  position:relative;
  display:block; width:100%;
  padding:0; border:0; margin:0;
  background:var(--surface-alt);
  cursor:zoom-in;
  overflow:hidden;
  font:inherit; color:inherit; text-align:left;
}
.shot img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.shot:hover img{ transform:scale(1.035); }
.shot--land{ aspect-ratio:4/3; }
.shot--port{ aspect-ratio:3/4; }
.shot__cap{
  position:absolute; inset:auto 0 0 0;
  padding:38px 16px 14px;
  background:linear-gradient(180deg, rgba(20,16,13,0) 0%, rgba(20,16,13,.82) 72%);
  color:#F1EDE4;
  font-size:.79rem; line-height:1.4;
  opacity:0; transform:translateY(6px);
  transition:opacity .25s ease, transform .25s ease;
}
.shot:hover .shot__cap, .shot:focus-visible .shot__cap{ opacity:1; transform:none; }
@media (hover:none){
  .shot__cap{ opacity:1; transform:none; }
}
.shot__tag{
  position:absolute; top:10px; left:10px;
  font-size:.62rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  padding:4px 8px; border-radius:2px;
  background:rgba(20,16,13,.6); color:#F1EDE4;
  backdrop-filter:blur(4px);
}

/* featured (home) */
.grid-feature{
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:clamp(12px, 1.6vw, 20px);
}
/* fixed row heights so tiles of unequal width still fill their row —
   aspect-ratio alone leaves dead space under the narrower tile */
.grid-feature > *{ aspect-ratio:auto; }
.grid-feature > *:nth-child(1){ grid-column:span 7; }
.grid-feature > *:nth-child(2){ grid-column:span 5; }
.grid-feature > *:nth-child(3){ grid-column:span 4; }
.grid-feature > *:nth-child(4){ grid-column:span 4; }
.grid-feature > *:nth-child(5){ grid-column:span 4; }
.grid-feature > *:nth-child(1),
.grid-feature > *:nth-child(2){ height:clamp(240px, 27vw, 400px); }
.grid-feature > *:nth-child(3),
.grid-feature > *:nth-child(4),
.grid-feature > *:nth-child(5){ height:clamp(190px, 18vw, 280px); }
@media (max-width: 860px){
  .grid-feature > *:nth-child(1),
  .grid-feature > *:nth-child(2){ grid-column:span 12; }
  .grid-feature > *:nth-child(3),
  .grid-feature > *:nth-child(4),
  .grid-feature > *:nth-child(5){ grid-column:span 6; }
}
@media (max-width: 560px){
  .grid-feature > *{ grid-column:span 12 !important; }
}

/* ───────── before / after ───────── */
.ba{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(10px,1.4vw,18px);
  max-width:760px;
}
.ba figure{ margin:0; display:flex; flex-direction:column; gap:10px; }
.ba .ba__img{ position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--surface-alt); }
.ba img{ width:100%; height:100%; object-fit:cover; }
.ba figcaption{
  font-size:.7rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-faint);
}
.ba figure:last-child figcaption{ color:var(--patina); }

/* ───────── split (image + copy) ───────── */
.split{
  display:grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap:clamp(28px, 5vw, 72px);
  align-items:center;
}
.split--flip > .split__media{ order:2; }
.split__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.split__body{ display:flex; flex-direction:column; gap:18px; }
@media (max-width: 860px){
  .split{ grid-template-columns:1fr; }
  .split--flip > .split__media{ order:0; }
}

/* ───────── process ───────── */
.steps{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
  gap:clamp(20px, 3vw, 34px);
  counter-reset:step;
}
.step{ display:flex; flex-direction:column; gap:10px; padding-top:20px; border-top:2px solid var(--patina); }
.step__n{
  font-family:var(--f-display);
  font-size:.95rem; font-weight:400; color:var(--brass);
  font-variant-numeric:tabular-nums;
}
.step p{ font-size:.89rem; color:var(--ink-soft); }
.band--ink .step{ border-top-color:#7FBBA6; }
.band--ink .step p{ color:#C6D9D1; }
.band--ink .step__n{ color:#E0C48B; }

/* ───────── stats ───────── */
.stats{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr));
  gap:clamp(20px,3vw,40px);
}
.stat{ display:flex; flex-direction:column; gap:4px; }
.stat b{
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(2rem,4vw,2.9rem); line-height:1;
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.stat span{ font-size:.79rem; color:var(--ink-soft); letter-spacing:.01em; }
.band--ink .stat span{ color:#BBD1C8; }

/* ───────── values ───────── */
.values{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr));
  gap:clamp(22px,3vw,40px);
}
.value{ display:flex; flex-direction:column; gap:9px; }
.value p{ font-size:.895rem; color:var(--ink-soft); }
.value__ico{
  width:32px; height:32px; color:var(--patina);
  margin-bottom:2px;
}

/* three-up photo row with a fixed height, so mixed crops still align */
.grid-trio{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:clamp(12px, 1.6vw, 20px);
}
.grid-trio > *{ aspect-ratio:auto; height:clamp(190px, 18vw, 290px); }
@media (max-width: 700px){
  .grid-trio{ grid-template-columns:1fr; }
  .grid-trio > *{ height:clamp(200px, 50vw, 260px); }
}

/* compact checked list inside a split */
.ticks{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.ticks li{ display:flex; gap:11px; font-size:.895rem; color:var(--ink-soft); line-height:1.5; }
.ticks li b{ color:var(--ink); font-weight:600; }
.ticks svg{ flex-shrink:0; color:var(--patina); margin-top:5px; }

/* ───────── roles ───────── */
.role{
  border:1px solid var(--rule);
  background:var(--surface);
  padding:clamp(22px,3vw,34px);
  display:flex; flex-direction:column; gap:18px;
}
.role__meta{ display:flex; flex-wrap:wrap; gap:8px; }
.tag{
  font-size:.72rem; font-weight:600; letter-spacing:.03em;
  padding:5px 11px; border-radius:100px;
  background:var(--patina-tint); color:var(--patina-deep);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .tag{ color:var(--patina-deep); }
}
.role ul{ margin:0; padding-left:1.1em; display:flex; flex-direction:column; gap:7px; }
.role li{ font-size:.89rem; color:var(--ink-soft); }
.role li::marker{ color:var(--brass); }
.cols2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:26px 40px; }

/* ───────── area list ───────── */
.areas{ display:flex; flex-wrap:wrap; gap:8px; }
.area{
  font-size:.83rem; padding:7px 14px;
  border:1px solid var(--rule); border-radius:100px;
  color:var(--ink-soft);
}

/* ───────── reviews ───────── */
.reviewrow{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.review{
  background:var(--surface); border:1px solid var(--rule);
  padding:26px 24px; display:flex; flex-direction:column; gap:14px;
}
.stars{ color:var(--brass); letter-spacing:.14em; font-size:.9rem; }
.review__who{ font-size:.82rem; color:var(--ink-faint); }
.review blockquote{
  margin:0; font-family:var(--f-display); font-size:1.08rem;
  line-height:1.5; font-weight:300; color:var(--ink);
}
.placeholder{
  border:1px dashed var(--brass);
  background:transparent;
  padding:22px 24px;
  display:flex; flex-direction:column; gap:8px;
}
.placeholder .eyebrow{ color:var(--brass); }
.placeholder p{ font-size:.87rem; color:var(--ink-soft); }

/* ───────── contact ───────── */
.contactgrid{
  display:grid;
  grid-template-columns: minmax(0,1fr) minmax(0, 340px);
  gap:clamp(32px,5vw,72px);
  align-items:start;
}
@media (max-width: 860px){ .contactgrid{ grid-template-columns:1fr; } }

.form{ display:flex; flex-direction:column; gap:18px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{
  font-size:.74rem; font-weight:600; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ink-soft);
}
.field input, .field select, .field textarea{
  font-family:var(--f-body); font-size:.95rem; color:var(--ink);
  background:var(--surface);
  border:1px solid var(--rule);
  border-radius:2px;
  padding:12px 14px;
  width:100%;
  transition:border-color .16s ease;
}
.field input:hover, .field select:hover, .field textarea:hover{ border-color:var(--ink-faint); }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--patina); box-shadow:0 0 0 3px var(--patina-tint);
}
.field textarea{ resize:vertical; min-height:124px; }
.field .optional{
  font-size:.68rem; font-weight:500; letter-spacing:.06em;
  color:var(--ink-faint); text-transform:none;
  margin-left:5px;
}
.field .hint{
  font-size:.775rem; color:var(--ink-faint); line-height:1.45;
}
.fieldrow{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width: 560px){ .fieldrow{ grid-template-columns:1fr; } }
.formnote{ font-size:.78rem; color:var(--ink-faint); max-width:46ch; }

.infocard{
  background:var(--surface-alt);
  padding:clamp(22px,3vw,30px);
  display:flex; flex-direction:column; gap:22px;
}
.infoitem{ display:flex; flex-direction:column; gap:4px; }
.infoitem .k{
  font-size:.7rem; font-weight:600; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ink-faint);
}
.infoitem a, .infoitem .v{
  font-size:1.02rem; font-weight:500; color:var(--ink);
  text-decoration:none; font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.infoitem a:hover{ color:var(--patina); }

/* ───────── footer ───────── */
.foot{
  background:var(--surface-alt);
  border-top:1px solid var(--rule);
  padding-block:clamp(40px,5vw,64px) 30px;
}
.foot__grid{
  display:grid;
  grid-template-columns: minmax(0,1.4fr) repeat(3, minmax(0,1fr));
  gap:36px 30px;
}
@media (max-width: 860px){ .foot__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 460px){ .foot__grid{ grid-template-columns:1fr; } }
.foot h4{
  font-size:.7rem; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-faint); margin:0 0 14px;
}
.foot ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.foot a{ font-size:.875rem; color:var(--ink-soft); text-decoration:none; }
.foot a:hover{ color:var(--patina); }
.foot__base{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 30px;
  margin-top:clamp(32px,4vw,52px); padding-top:22px;
  border-top:1px solid var(--rule);
  font-size:.78rem; color:var(--ink-faint);
}

/* ───────── lightbox ───────── */
.lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(14,11,9,.93);
  display:flex; align-items:center; justify-content:center;
  padding:clamp(14px,3vw,48px);
}
.lightbox__fig{ margin:0; display:flex; flex-direction:column; gap:14px; max-width:100%; max-height:100%; }
.lightbox__fig img{
  max-width:100%;
  max-height:calc(100vh - 170px);
  width:auto; height:auto;
  object-fit:contain;
  margin-inline:auto;
}
.lightbox__fig figcaption{
  color:#D9D2C6; font-size:.86rem; text-align:center; max-width:60ch;
  margin-inline:auto; line-height:1.5;
}
.lightbox__x{
  position:absolute; top:calc(env(safe-area-inset-top, 0px) + 14px); right:14px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22);
  color:#F1EDE4; border-radius:2px; cursor:pointer;
  padding:9px 12px; font:inherit; font-size:.84rem;
}
.lightbox__x:hover{ background:rgba(255,255,255,.2); }
.lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22);
  color:#F1EDE4; border-radius:2px; cursor:pointer;
  padding:14px 11px; font:inherit; line-height:0;
}
.lightbox__nav:hover{ background:rgba(255,255,255,.2); }
.lightbox__nav--prev{ left:10px; }
.lightbox__nav--next{ right:10px; }

/* ───────── misc ───────── */
.note-inline{
  background:var(--patina-tint);
  border-left:3px solid var(--patina);
  padding:16px 20px;
  font-size:.885rem;
  color:var(--ink-soft);
}
.note-inline strong{ color:var(--ink); }
.skip{
  position:absolute; left:-9999px;
  background:var(--patina); color:#fff; padding:10px 16px; z-index:300;
}
.skip:focus{ left:12px; top:12px; }