/* ============================================================
   MMOF, Field (2C), shared theme

   Pinot Red lead on Off-White, Noir contrast, Archivo throughout.
   Interactions come from assets/motion.css and assets/motion.js.

   Type: body is 18px. The concept previously ran 12px to 15px through
   most of its content, which read small on a desktop and worse on a
   phone. The whole scale moved up with it.

   Shape language, kept from the live mmof.com: full pill buttons,
   generous corner radii on cards, condensed uppercase display type.
   ============================================================ */

:root{
  /* palette */
  --pinot:#8C2344;
  --pinot-deep:#6E1B36;
  --noir:#000000;
  --cream:#F7F0EC;
  --white:#ffffff;
  --tang:#D67C46;
  /* Tangerine on Pinot measures 2.8:1, so it is never used for text on
     Pinot. On Noir it clears 6.8:1 and is safe. */
  --tang-on-noir:#E2915C;

  --ink:#000000;
  --ink-2:#454b52;        /* body copy, 8.0:1 on cream */
  --ink-3:#656c73;        /* meta and captions, 4.8:1 on cream */
  --line:#e6e4dd;
  --line-soft:#ece9e2;
  --on-pinot:rgba(247,240,236,.86);
  --on-noir:rgba(247,240,236,.72);

  /* type scale, 18px base */
  --fs-body:18px;
  --fs-lead:20px;
  --fs-small:15px;
  --fs-micro:13px;
  --fs-eyebrow:12px;

  --h1:clamp(38px,5.6vw,66px);
  --h2:clamp(28px,3.6vw,44px);
  --h3:clamp(20px,1.9vw,23px);

  /* rhythm */
  --pad-x:clamp(22px,4.6vw,60px);
  --pad-y:clamp(52px,5.6vw,74px);
  --gap:clamp(16px,1.5vw,20px);
  --ease:cubic-bezier(.2,.7,.2,1);

  /* motion layer palette, see assets/motion.css */
  --m-menu-bg:#8C2344;
  --m-menu-fg:#F7F0EC;
  --m-menu-accent:#F0B489;
  --m-accent:#8C2344;
}

*{box-sizing:border-box}
html,body{margin:0}
html{scroll-behavior:smooth}
body{
  font-family:'Archivo',system-ui,sans-serif;
  font-size:var(--fs-body);
  line-height:1.65;
  color:var(--ink-2);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
}
#page{font-variant-numeric:tabular-nums}
img{max-width:100%;display:block}
#page img{filter:saturate(1.06) contrast(1.03) sepia(.08) hue-rotate(-6deg) brightness(1.01)}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--pinot);outline-offset:3px;border-radius:3px}

/* ---- layout helpers ---- */
/* jump links must clear the sticky nav, not slide under it */
[id]{scroll-margin-top:84px}
.wrap{max-width:1180px;margin:0 auto;padding:0}
.section{padding:var(--pad-y) var(--pad-x)}
.section-tight{padding:clamp(30px,3.4vw,44px) var(--pad-x)}

h1,h2,h3,h4{margin:0;color:var(--ink);text-wrap:balance}
.display{
  font-family:'Archivo Condensed','Archivo Narrow','Arial Narrow','Archivo',sans-serif;
  font-weight:900;text-transform:uppercase;letter-spacing:.01em;line-height:.98;
}
h1.display{font-size:var(--h1);margin:0 0 22px}
.h2{font:900 var(--h2)/1.04 'Archivo',sans-serif;letter-spacing:-.02em;color:var(--ink);margin:0}
h3{font:700 var(--h3)/1.18 'Archivo',sans-serif;letter-spacing:-.01em}
.accent{color:var(--pinot)}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}

.eyebrow{
  font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--pinot);margin:0 0 20px;
}
.lead{font-size:var(--fs-lead);line-height:1.65;color:var(--ink-2);max-width:56ch}
.meta{font-size:var(--fs-micro);font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}

.sec-head{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:24px;flex-wrap:wrap;margin-bottom:clamp(26px,3vw,40px);
}
.sec-head .h2{max-width:20ch}
.sec-head .eyebrow{margin:0}

/* ---- nav (injected by field.js) ----
   The bar squeezes once you scroll past 30px, the same way the live
   mmof.com header does. Padding and mark size carry the change. */
.nav{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px var(--pad-x);
  background:rgba(247,240,236,.82);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(0,0,0,.05);
  transition:padding .42s var(--ease),box-shadow .42s ease,background .42s ease;
}
.nav.small-nav{
  padding-top:11px;padding-bottom:11px;
  box-shadow:0 8px 30px -16px rgba(0,0,0,.22);
  background:rgba(247,240,236,.95);
}
.nav a{text-decoration:none}
.nav-brand{display:flex;align-items:center;gap:12px;flex:none}
.nav-brand .mmof-mark{transition:width .42s var(--ease),height .42s var(--ease)}
.nav.small-nav .nav-brand .mmof-mark{width:22px;height:22px}
.wordmark{
  font:500 18px 'Archivo',sans-serif;letter-spacing:.05em;color:var(--ink);
  transition:font-size .42s var(--ease);
}
.nav.small-nav .wordmark{font-size:16px}
.nav-links{display:flex;align-items:center;gap:clamp(16px,2vw,30px);font-size:var(--fs-small);font-weight:500;color:#3c4148}
.nav-links a{transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--pinot)}
.nav-links a.active{font-weight:600}
.nav-cta{display:flex;align-items:center;gap:clamp(10px,1.4vw,20px)}
.nav-login{font-size:var(--fs-small);font-weight:500;color:var(--ink-3);white-space:nowrap}
.mmof-mark{display:block;flex:none}
/* the burger only takes over once the inline links get tight */
.nav .m-burger{display:none}
@media(max-width:1080px){
  .nav-links{display:none}
  .nav .m-burger{display:block}
  .nav-login{display:none}
}
@media(max-width:560px){
  .nav-cta .btn{display:none}
}

/* ---- buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;
  font-size:16px;font-weight:600;text-decoration:none;white-space:nowrap;
  padding:15px 28px;border-radius:999px;border:1px solid transparent;
  transition:transform .25s var(--ease),filter .25s ease,background .25s ease,color .25s ease;
}
.btn:hover{transform:translateY(-2px);filter:brightness(1.07)}
.btn-primary{background:var(--pinot);color:var(--cream)}
.btn-ghost{border-color:#c9ccc6;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);filter:none}
.btn-light{background:var(--cream);color:var(--pinot)}
.btn-sm{padding:11px 20px;font-size:var(--fs-small)}

.link-arrow{
  display:inline-flex;align-items:center;gap:7px;
  font-size:var(--fs-small);font-weight:600;color:var(--pinot);text-decoration:none;
  border-bottom:2px solid var(--pinot);padding-bottom:2px;
}
.link-arrow .a{transition:transform .28s var(--ease)}
.link-arrow:hover .a{transform:translateX(4px)}

/* ---- surfaces ---- */
.card{
  background:var(--white);border:1px solid var(--line-soft);border-radius:14px;
  padding:clamp(22px,2.3vw,28px);box-shadow:0 16px 34px -24px rgba(0,0,0,.4);
}
.card-pinot{background:var(--pinot);color:var(--on-pinot);border-color:transparent}
.card-noir{background:var(--noir);color:var(--on-noir);border-color:transparent}
/* Every dark surface in one place. A heading defaults to Noir, so a dark
   card added outside this list would render its title invisible. */
.card-pinot h2,.card-pinot h3,.card-pinot h4,.card-pinot .h2,
.card-noir h2,.card-noir h3,.card-noir h4,.card-noir .h2,
.band h2,.band h3,.band h4,.band .h2,
.co-feature h2,.co-feature h3{color:var(--cream)}
.card-pinot .eyebrow{color:var(--cream)}
.card-noir .eyebrow,.band .eyebrow,.co-feature .eyebrow{color:var(--tang-on-noir)}
/* A link defaults to Pinot, which reads at 2.5:1 on Noir. Every dark surface
   has to be listed here, or its links come out unreadable. */
.card-pinot .link-arrow{color:var(--cream);border-bottom-color:var(--cream)}
.card-noir .link-arrow,.band .link-arrow,.co-feature .link-arrow{
  color:var(--tang-on-noir);border-bottom-color:var(--tang-on-noir);
}

.band{background:var(--noir);color:var(--on-noir)}
.band-pinot{background:var(--pinot);color:var(--on-pinot)}
.band-pinot .eyebrow{color:var(--cream)}

.lift{transition:transform .32s var(--ease),box-shadow .32s var(--ease)}
.lift:hover{transform:translateY(-5px);box-shadow:0 28px 52px -28px rgba(0,0,0,.45)}

.grid{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:960px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* Two column splits. The ratio arrives as --cols so the mobile rule below
   still wins: an inline grid-template-columns would outrank any media query. */
.split{display:grid;gap:clamp(30px,4.4vw,54px);align-items:center;grid-template-columns:var(--cols,1fr 1fr)}
.split-top{align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr}}

/* ---- hero collage ---- */
.hero-collage{position:relative;height:460px;max-width:100%}
.hero-collage .shot-a{
  position:absolute;right:0;top:0;width:74%;height:340px;
  border-radius:16px;overflow:hidden;box-shadow:0 40px 70px -30px rgba(0,0,0,.4);
}
.hero-collage .shot-b{
  position:absolute;left:0;bottom:0;width:52%;height:230px;
  border-radius:16px;overflow:hidden;border:6px solid var(--cream);
  box-shadow:0 30px 55px -26px rgba(0,0,0,.45);
}
.hero-collage img{width:100%;height:100%;object-fit:cover}
.hero-badge{
  position:absolute;right:-6px;bottom:36px;z-index:2;
  background:var(--pinot);color:var(--cream);padding:18px 22px;border-radius:14px;
  box-shadow:0 22px 44px -16px rgba(140,35,68,.6);
}
.hero-badge .n{font:900 34px 'Archivo',sans-serif;line-height:1;letter-spacing:-.02em}
.hero-badge .l{font-size:var(--fs-micro);line-height:1.4;margin-top:5px;color:var(--on-pinot)}

/* The collage stacks below the split breakpoint. Absolute positioning at a
   fixed 460px would otherwise overflow a phone and scroll the page sideways. */
@media(max-width:900px){
  .hero-collage{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}
  .hero-collage .shot-a,.hero-collage .shot-b{position:static;width:auto;height:220px;border:0}
  .hero-badge{position:static;grid-column:1 / -1;justify-self:start;box-shadow:none}
}
@media(max-width:520px){
  .hero-collage{grid-template-columns:1fr}
  .hero-collage .shot-b{display:none}
  .hero-collage .shot-a{height:230px}
}

/* ---- chips ---- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  display:inline-flex;align-items:center;
  font-size:var(--fs-micro);font-weight:600;letter-spacing:.02em;white-space:nowrap;
  padding:5px 12px;border-radius:999px;
  background:#F3E1E7;color:var(--pinot);border:1px solid rgba(140,35,68,.14);
}
.chip-plain{background:rgba(0,0,0,.05);color:var(--ink-2);border-color:rgba(0,0,0,.08)}
.chip-deal{background:var(--pinot);color:var(--cream);border-color:transparent}
.card-noir .chip,.band .chip,.co-feature .chip{
  background:rgba(247,240,236,.13);color:var(--cream);border-color:rgba(247,240,236,.2);
}

/* ---- stats ---- */
.statrow{display:grid;gap:var(--gap);grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.statrow{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.statrow{grid-template-columns:1fr}}
.stat .n{font:900 clamp(30px,3.4vw,42px)/1 'Archivo',sans-serif;letter-spacing:-.02em;color:var(--pinot)}
.stat .l{font-size:var(--fs-small);line-height:1.5;color:var(--ink-2);margin-top:10px}
.band .stat .n,.card-noir .stat .n{color:var(--tang-on-noir)}
.band .stat .l,.card-noir .stat .l{color:var(--on-noir)}

/* ---- definition rows ---- */
.deftable{border-top:1px solid var(--line)}
.deftable .row{
  display:grid;grid-template-columns:200px 1fr;gap:20px;
  padding:22px 0;border-bottom:1px solid var(--line);
}
.deftable .k{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--pinot);margin:0}
.deftable .v{font-size:16px;line-height:1.65;color:var(--ink-2);margin:0}
.deftable.compact .row{grid-template-columns:120px 1fr;gap:14px;padding:14px 0}
.band .deftable,.band .deftable .row{border-color:rgba(247,240,236,.18)}
.band .deftable .k{color:var(--tang-on-noir)}
.band .deftable .v{color:var(--on-noir)}
@media(max-width:680px){
  .deftable .row,.deftable.compact .row{grid-template-columns:1fr;gap:6px}
}

/* ============================================================
   COMPANY DIRECTORY
   Field takes the tighter card grid, where Meridian takes wide
   editorial rows. Same job, different reading.
   ============================================================ */
.filters{padding:0 0 clamp(18px,2vw,26px)}
.filters .line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.filters .line + .line{margin-top:12px}
.search{
  flex:1 1 260px;min-width:0;display:flex;align-items:center;gap:10px;
  background:var(--white);border:1px solid var(--line);border-radius:999px;padding:11px 18px;
  transition:border-color .25s ease,box-shadow .25s ease;
}
.search:focus-within{border-color:var(--pinot);box-shadow:0 0 0 3px rgba(140,35,68,.12)}
.search input{border:0;outline:0;background:transparent;flex:1;min-width:0;font-size:16px;color:var(--ink)}
.search input::placeholder{color:var(--ink-3)}
.search svg{flex:none;opacity:.5}

.fgroup{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fgroup .lbl{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.fbtn{
  border:1px solid var(--line);background:var(--white);cursor:pointer;
  font-size:var(--fs-micro);font-weight:600;color:var(--ink-2);
  padding:8px 15px;border-radius:999px;white-space:nowrap;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s var(--ease);
}
.fbtn:hover{transform:translateY(-1px);border-color:var(--pinot);color:var(--pinot)}
.fbtn[aria-pressed="true"]{background:var(--pinot);color:var(--cream);border-color:var(--pinot)}
.fbtn[aria-pressed="true"]:hover{color:var(--cream)}

.dir-status{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-height:24px;margin-bottom:14px}
.dir-status .count{font-size:var(--fs-small);font-weight:600;color:var(--ink-3);margin:0}
.dir-status .count b{color:var(--pinot)}
.linkbtn{
  border:0;background:transparent;cursor:pointer;padding:0;
  font-size:var(--fs-small);font-weight:600;color:var(--pinot);
  text-decoration:underline;text-underline-offset:3px;
}
.linkbtn[hidden]{display:none}

.co-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
@media(max-width:960px){.co-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.co-grid{grid-template-columns:1fr}}

.co{
  display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden;
  background:var(--white);border:1px solid var(--line-soft);border-radius:16px;
  box-shadow:0 16px 34px -24px rgba(0,0,0,.4);
  transition:transform .32s var(--ease),box-shadow .32s var(--ease),border-color .32s ease;
}
.co:hover{transform:translateY(-6px);box-shadow:0 30px 56px -28px rgba(0,0,0,.5);border-color:rgba(140,35,68,.3)}
.co[hidden]{display:none}
.co .shot{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--pinot)}
.co .shot img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.co:hover .shot img{transform:scale(1.06)}
.co .mono{
  position:absolute;left:14px;top:14px;z-index:2;
  width:42px;height:42px;border-radius:50%;
  background:var(--cream);color:var(--pinot);
  display:flex;align-items:center;justify-content:center;
  font:700 14px 'Archivo',sans-serif;
}
.co .deal{
  position:absolute;right:14px;top:14px;z-index:2;
  background:var(--pinot);color:var(--cream);
  font-size:var(--fs-micro);font-weight:600;padding:6px 12px;border-radius:999px;
}
.co .body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:11px;flex:1}
.co .co-name{font:700 21px 'Archivo',sans-serif;letter-spacing:-.01em;color:var(--ink);margin:0}
.co .where{margin:0}
.co .desc{font-size:var(--fs-small);line-height:1.6;color:var(--ink-2);margin:0;flex:1}
.co .go{margin-top:auto;padding-top:4px}

.dir-empty{padding:50px 0;text-align:center;color:var(--ink-3)}
.dir-empty[hidden]{display:none}

/* the feature card that leads the story preview on the home page */
.co-feature{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:420px;border-radius:18px;overflow:hidden;text-decoration:none;
  color:var(--cream);background:var(--noir);
  transition:transform .32s var(--ease),box-shadow .32s var(--ease);
}
.co-feature:hover{transform:translateY(-6px);box-shadow:0 34px 64px -30px rgba(0,0,0,.6)}
.co-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.co-feature:hover img{transform:scale(1.05)}
.co-feature::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.6) 46%,rgba(0,0,0,.92) 100%);
}
.co-feature .inner{position:relative;z-index:2;padding:clamp(24px,3vw,34px);display:grid;gap:14px}
.co-feature .deal{
  position:absolute;top:clamp(18px,2vw,24px);left:clamp(18px,2vw,24px);z-index:2;
  background:var(--pinot);color:var(--cream);
  font-size:var(--fs-micro);font-weight:600;padding:7px 14px;border-radius:999px;
}
.co-feature h3{font-size:clamp(23px,2.6vw,30px);color:var(--cream)}
.co-feature .where{color:var(--tang-on-noir)}
.co-feature p{font-size:16px;line-height:1.6;color:rgba(247,240,236,.82);margin:0;max-width:46ch}

/* ---- fit checker ---- */
.fit{display:grid;gap:10px}
.fitbtn{
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;
  font-size:16px;font-weight:600;padding:15px 20px;border-radius:999px;
  border:1px solid rgba(247,240,236,.24);background:rgba(247,240,236,.06);color:var(--cream);
  transition:background .25s ease,border-color .25s ease,transform .25s var(--ease);
}
.fitbtn:hover{transform:translateX(3px);border-color:var(--tang-on-noir)}
.fitbtn .box{
  width:22px;height:22px;flex:none;border-radius:50%;
  border:1.5px solid rgba(247,240,236,.5);
  display:flex;align-items:center;justify-content:center;
  transition:background .25s ease,border-color .25s ease;
}
.fitbtn .box svg{opacity:0;transform:scale(.6);transition:opacity .2s ease,transform .25s var(--ease)}
.fitbtn[aria-pressed="true"]{background:rgba(226,145,92,.2);border-color:var(--tang-on-noir)}
.fitbtn[aria-pressed="true"] .box{background:var(--tang-on-noir);border-color:var(--tang-on-noir)}
.fitbtn[aria-pressed="true"] .box svg{opacity:1;transform:none}
.fitmeter{height:4px;border-radius:99px;background:rgba(247,240,236,.16);overflow:hidden;margin-top:8px}
.fitmeter i{display:block;height:100%;width:0;background:var(--tang-on-noir);transition:width .45s var(--ease)}
.fitfoot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:10px}
.fitfoot .msg{font-size:var(--fs-small);font-weight:500;color:var(--tang-on-noir)}

/* ---- coverage ---- */
.coverage{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
@media(max-width:900px){.coverage{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.coverage{grid-template-columns:1fr}}
.coverage .place{background:var(--white);border:1px solid var(--line-soft);border-radius:14px;padding:24px}
.coverage .dot{width:8px;height:8px;border-radius:50%;background:var(--pinot);margin-bottom:14px}
.coverage .n{font:700 20px 'Archivo',sans-serif;color:var(--ink)}
.coverage .c{font-size:var(--fs-small);color:var(--ink-2);margin-top:4px}
.coverage .r{font-size:var(--fs-micro);color:var(--ink-3);margin-top:10px}

/* ---- team ---- */
.person-mono{
  width:52px;height:52px;border-radius:50%;flex:none;
  background:var(--pinot);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  font:700 17px 'Archivo',sans-serif;letter-spacing:.02em;
}

/* ---- story pages ---- */
.story-badge{
  position:absolute;left:24px;bottom:-26px;
  background:var(--pinot);color:var(--cream);padding:18px 24px;border-radius:14px;
  box-shadow:0 22px 44px -16px rgba(140,35,68,.6);
}
.story-badge .n{font:900 32px 'Archivo',sans-serif;line-height:1;letter-spacing:-.02em}
.story-badge .l{font-size:var(--fs-micro);line-height:1.4;margin-top:5px;color:var(--on-pinot)}
@media(max-width:640px){
  .story-badge{position:static;margin-top:16px;display:inline-block;box-shadow:none}
}

/* ---- prose (story pages) ---- */
.prose{max-width:68ch}
.prose h2{font:900 clamp(24px,2.6vw,32px)/1.1 'Archivo',sans-serif;letter-spacing:-.02em;margin:clamp(32px,4vw,46px) 0 16px}
.prose h2:first-child{margin-top:0}
.prose p{font-size:var(--fs-body);line-height:1.75;color:var(--ink-2)}
.prose ul{margin:0 0 1em;padding-left:22px;color:var(--ink-2)}
.prose li{margin-bottom:10px;line-height:1.7}
.pullquote{
  border-left:3px solid var(--pinot);padding-left:24px;margin:clamp(28px,3.4vw,42px) 0;
  font:900 clamp(21px,2.3vw,27px)/1.3 'Archivo',sans-serif;letter-spacing:-.01em;color:var(--ink);
}
.pullquote .who{display:block;font:500 var(--fs-micro) 'Archivo',sans-serif;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);margin-top:14px}

/* ---- form ---- */
.fld{
  display:block;width:100%;font:400 16px 'Archivo',sans-serif;color:var(--ink);
  background:var(--white);border:1px solid #dcd8cf;border-radius:12px;padding:14px 16px;margin-top:6px;
  transition:border-color .22s ease,box-shadow .22s ease;
}
.fld:focus{outline:0;border-color:var(--pinot);box-shadow:0 0 0 3px rgba(140,35,68,.14)}
.fld::placeholder{color:var(--ink-3)}
.lbl{font:600 var(--fs-eyebrow) 'Archivo',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.frow{margin-bottom:18px}

/* ---- footer (injected by field.js) ---- */
.site-footer{background:var(--noir);color:var(--on-noir);padding:clamp(46px,5vw,64px) var(--pad-x) 30px}
.site-footer .cols{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.site-footer h4{font:600 var(--fs-eyebrow) 'Archivo',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--tang-on-noir);margin:0 0 16px}
.site-footer a{color:var(--on-noir);text-decoration:none;transition:color .2s}
.site-footer a:hover{color:var(--cream)}
.site-footer .fcol a{display:block;margin-bottom:10px;font-size:var(--fs-small)}
.site-footer .bottom{
  max-width:1180px;margin:38px auto 0;padding-top:22px;border-top:1px solid rgba(247,240,236,.14);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:var(--fs-micro);color:rgba(247,240,236,.6);
}
.site-footer .tag{font-size:var(--fs-small);line-height:1.65;color:var(--on-noir);margin:14px 0 0;max-width:32ch}
@media(max-width:860px){.site-footer .cols{grid-template-columns:1fr;gap:30px}}

/* ---- polish ---- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---- back-to-gallery (preview only) ---- */
.backhome{
  position:fixed;bottom:16px;left:16px;z-index:9999;display:inline-flex;align-items:center;gap:7px;
  padding:9px 15px;border-radius:999px;background:rgba(21,23,28,.86);color:#fff;
  font:600 var(--fs-micro) 'Archivo',sans-serif;text-decoration:none;
  backdrop-filter:blur(6px);box-shadow:0 4px 16px rgba(0,0,0,.18);
}
.backhome:hover{background:#15171c}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .btn:hover,.lift:hover,.co:hover,.fbtn:hover,.fitbtn:hover,.co-feature:hover{transform:none}
}
