/* ===========================================================================
   FRONTIER EXCHANGE — style.css
   A Rochester, NY company. Institutional "annual-report" system:
   alternating deep-navy cover pages and cream document pages, a company
   structure tree as the signature, and a register of its two brands.
   Brand Kit v1.0 (shared with Fire Your Template + High Falls Media).
   =========================================================================== */

:root{
  /* ── Surface ── */
  --navy:      #0d1f33;   /* Deep ROC — institutional anchor */
  --navy-dk:   #07101d;   /* deepest — cover pages */
  --navy-lt:   #14304d;   /* raised navy — dossier panels */
  --navy-hair: #21405f;   /* hairlines on navy */
  --cream:     #f5f0e8;   /* Vinyl Cream — document pages */
  --cream-lt:  #fbf7ee;
  --cream-dk:  #efe9dd;
  --paper:     #e8e1d3;

  /* ── Ink ── */
  --ink:       #2c2c2a;   /* body on cream */
  --muted:     #6e6a62;   /* secondary on cream (4.75:1) */
  --on-navy:   #f5f0e8;   /* body on navy */
  --on-navy-mut:#c4beb1;  /* secondary on navy (~8:1) */

  /* ── Accents (live + AA-on-light + AA-on-navy variants) ── */
  --genesee:    #378add;  --genesee-dk:#185fa5;
  --teal:       #1d9e75;  --teal-dk:   #0f6e56;
  --amber:      #ba7517;  --amber-dk:  #854f0b;  --amber-lt:#d4963c;

  /* default accent + AA-safe filled-button bg (overridden per holding) */
  --accent:    var(--genesee);
  --btn-bg:    var(--genesee-dk);

  /* ── Type ── */
  --display:'Oswald','Barlow Condensed',sans-serif;
  --body:'Barlow','Inter',system-ui,sans-serif;
  --serif:'Cormorant Garamond','Playfair Display',serif;

  /* ── Metrics ── */
  --gutter: clamp(1.25rem, 5vw, 4rem);
  --maxw: 1240px;
  --radius: 6px;
  --rule: 1px;
  --section-y: clamp(3.5rem, 8vw, 7rem);
}

/* ── Reset / base ─────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;}
html{background:var(--navy-dk);-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;min-height:100svh;display:flex;flex-direction:column;
  font-family:var(--body);
  font-size:clamp(0.98rem,1.4vw,1.08rem);
  line-height:1.62;color:var(--ink);background:var(--cream);
  overflow-x:hidden;
}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd,blockquote{margin:0;}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.05;color:var(--navy);}
img,svg{display:block;max-width:100%;}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;}
a{color:var(--genesee-dk);text-decoration-thickness:1px;text-underline-offset:3px;}
ul{list-style:none;padding:0;}

/* ── A11y utilities ───────────────────────────────────────────────────── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.skip-link{
  position:absolute;left:50%;top:-64px;transform:translateX(-50%);z-index:300;
  background:var(--teal-dk);color:#fff;font-family:var(--display);font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;text-decoration:none;
  padding:.7rem 1.2rem;border-radius:0 0 var(--radius) var(--radius);transition:top .18s ease;
}
.skip-link:focus{top:0;}
:focus-visible{outline:3px solid var(--genesee);outline-offset:3px;border-radius:2px;}

/* ── Layout helpers ───────────────────────────────────────────────────── */
.fx-wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
.fx-eyebrow{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--body);font-weight:700;font-size:clamp(.7rem,1.2vw,.82rem);
  letter-spacing:.28em;text-transform:uppercase;color:var(--amber-dk);
}
.fx-eyebrow::before{content:"";width:clamp(20px,4vw,38px);height:2px;background:var(--amber);}
.fx-eyebrow--onnavy{color:var(--amber-lt);}

/* section frames */
.fx-section{padding-block:var(--section-y);position:relative;}
.fx-section--navy{background:var(--navy);color:var(--on-navy);}
.fx-section--navy h1,.fx-section--navy h2,.fx-section--navy h3{color:var(--on-navy);}
.fx-section--cream{background:var(--cream);color:var(--ink);}
.fx-section__head{max-width:46ch;margin-bottom:clamp(2rem,4vw,3rem);}
.fx-section__title{font-size:clamp(1.9rem,4vw,3rem);letter-spacing:-.01em;margin-top:.7rem;}
.fx-section__intro{margin-top:1rem;font-size:clamp(1.02rem,1.6vw,1.18rem);color:var(--muted);}
.fx-section--navy .fx-section__intro{color:var(--on-navy-mut);}

/* ═══════════════════════════ MASTHEAD ═══════════════════════════ */
.fx-mast{
  position:sticky;top:0;z-index:120;background:rgba(7,16,29,.92);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:var(--rule) solid var(--navy-hair);
}
.fx-mast__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:clamp(.7rem,1.4vw,1rem);}
.fx-logo{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--on-navy);}
.fx-logo__mark{flex:none;width:clamp(30px,4vw,38px);height:clamp(30px,4vw,38px);}
.fx-logo__mark svg{width:100%;height:100%;}
.fx-logo__type{display:flex;flex-direction:column;line-height:1;}
.fx-logo__name{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(1rem,1.9vw,1.22rem);}
.fx-logo__sub{font-family:var(--body);font-weight:600;text-transform:uppercase;letter-spacing:.22em;font-size:clamp(.52rem,1vw,.62rem);color:var(--on-navy-mut);margin-top:.28rem;}

.fx-nav{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.1rem);}
.fx-nav__link{
  font-family:var(--body);font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  font-size:.82rem;color:var(--on-navy-mut);text-decoration:none;padding:.4rem 0;position:relative;
}
.fx-nav__link::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--genesee);transition:right .25s ease;}
.fx-nav__link:hover,.fx-nav__link:focus-visible,.fx-nav__link[aria-current="true"]{color:var(--on-navy);}
.fx-nav__link:hover::after,.fx-nav__link:focus-visible::after,.fx-nav__link[aria-current="true"]::after{right:0;}

.fx-mast__toggle{display:none;width:44px;height:44px;border-radius:var(--radius);border:1px solid var(--navy-hair);flex-direction:column;align-items:center;justify-content:center;gap:5px;}
.fx-mast__toggle span{display:block;width:20px;height:2px;background:var(--on-navy);transition:transform .22s ease,opacity .22s ease;}
.fx-mast__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.fx-mast__toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.fx-mast__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ═══════════════════════════ HERO (cover page) ═══════════════════════════ */
.fx-hero{background:var(--navy-dk);color:var(--on-navy);position:relative;overflow:hidden;border-bottom:var(--rule) solid var(--navy-hair);}
.fx-hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(245,240,232,.05) 1px,transparent 1px);background-size:5px 5px;}
.fx-hero__inner{position:relative;padding-block:clamp(3rem,7vw,6rem) clamp(3.5rem,8vw,7rem);}
.fx-hero__top{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:baseline;justify-content:space-between;}
.fx-hero__regnote{font-family:var(--body);font-weight:600;letter-spacing:.2em;text-transform:uppercase;font-size:clamp(.6rem,1.1vw,.72rem);color:var(--on-navy-mut);}
.fx-hero__title{
  font-size:clamp(2.6rem,9vw,6.4rem);font-weight:700;letter-spacing:-.012em;line-height:.96;
  text-transform:uppercase;margin-top:clamp(1.4rem,3vw,2.4rem);
}
.fx-hero__title .frontier{display:block;color:var(--on-navy);}
.fx-hero__title .exchange{display:block;color:var(--on-navy);}
.fx-hero__title .exchange::after{content:"";display:inline-block;width:.42em;height:.42em;margin-left:.16em;background:var(--genesee);border-radius:2px;vertical-align:.04em;}
.fx-hero__lede{max-width:34ch;margin-top:clamp(1.4rem,3vw,2rem);font-size:clamp(1.1rem,2vw,1.4rem);color:var(--on-navy-mut);line-height:1.5;}
.fx-hero__lede strong{color:var(--on-navy);font-weight:600;}

/* data row */
.fx-hero__data{display:flex;flex-wrap:wrap;gap:0;margin-top:clamp(2rem,4vw,3rem);border-top:var(--rule) solid var(--navy-hair);}
.fx-hero__datum{flex:1 1 0;min-width:140px;padding:1rem clamp(.8rem,2vw,1.4rem) 0 0;border-right:var(--rule) solid var(--navy-hair);}
.fx-hero__datum:last-child{border-right:0;}
.fx-hero__dlabel{font-family:var(--body);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.62rem;color:var(--on-navy-mut);}
.fx-hero__dval{font-family:var(--display);font-weight:600;font-size:clamp(1.05rem,2vw,1.45rem);margin-top:.3rem;font-variant-numeric:tabular-nums;}

/* ── Ownership tree (signature) ── */
.fx-orgtree{margin-top:clamp(2.6rem,6vw,4.5rem);text-align:center;}
.fx-orgtree__cap{font-family:var(--body);font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:.64rem;color:var(--on-navy-mut);margin-bottom:1.4rem;}
.fx-orgtree__parent{display:flex;justify-content:center;}
.fx-conn{background:var(--navy-hair);}
.fx-orgtree__stem{width:2px;height:clamp(28px,5vw,46px);margin:0 auto;transform-origin:top;transition:transform .5s ease .15s;}
.fx-orgtree__children{display:flex;justify-content:center;gap:clamp(1.5rem,5vw,5rem);position:relative;}
.fx-orgtree__children::before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:var(--navy-hair);transform:scaleX(0);transform-origin:center;transition:transform .5s ease .4s;}
.fx-orgtree__child{position:relative;flex:1 1 0;max-width:300px;padding-top:clamp(28px,5vw,46px);}
.fx-orgtree__drop{position:absolute;top:0;left:50%;transform:translateX(-50%) scaleY(0);transform-origin:top;width:2px;height:clamp(28px,5vw,46px);transition:transform .45s ease .65s;}

.fx-node{
  display:flex;flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;
  border:1px solid var(--navy-hair);border-radius:var(--radius);
  padding:clamp(.8rem,2vw,1.15rem) clamp(.9rem,2.5vw,1.6rem);background:var(--navy-lt);
  opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease,border-color .2s ease,box-shadow .2s ease;
}
.fx-node--parent{background:var(--cream);border-color:var(--cream);box-shadow:0 6px 24px rgba(0,0,0,.35);transition-delay:0s;}
.fx-node--parent .fx-node__name{color:var(--navy);}
.fx-node--parent .fx-node__role{color:var(--muted);}
.fx-orgtree__child .fx-node{transition-delay:.8s;}
.fx-node__name{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(.95rem,2vw,1.18rem);color:var(--on-navy);}
.fx-node__role{font-family:var(--body);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.62rem;color:var(--on-navy-mut);}
.fx-node__dot{width:9px;height:9px;border-radius:50%;margin-bottom:.15rem;}
.fx-child--fyt .fx-node{border-top:3px solid var(--genesee);} .fx-child--fyt .fx-node__dot{background:var(--genesee);}
.fx-child--hfm .fx-node{border-top:3px solid var(--teal);}    .fx-child--hfm .fx-node__dot{background:var(--teal);}
a.fx-node:hover,a.fx-node:focus-visible{border-color:var(--genesee);box-shadow:0 8px 28px rgba(0,0,0,.4);transform:translateY(-2px);}

/* revealed state */
.fx-orgtree.is-revealed .fx-node{opacity:1;transform:translateY(0);}
.fx-orgtree.is-revealed .fx-orgtree__stem{transform:scaleY(1);}
.fx-orgtree.is-revealed .fx-orgtree__children::before{transform:scaleX(1);}
.fx-orgtree.is-revealed .fx-orgtree__drop{transform:translateX(-50%) scaleY(1);}

/* ═══════════════════════════ LETTER (document page) ═══════════════════════════ */
.fx-letter__grid{display:grid;grid-template-columns:minmax(0,18rem) minmax(0,1fr);gap:clamp(1.5rem,5vw,4.5rem);align-items:start;}
.fx-letter__aside{position:sticky;top:6rem;}
.fx-letter__kicker{font-family:var(--body);font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:.64rem;color:var(--amber-dk);}
.fx-letter__h{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(1.6rem,3.4vw,2.4rem);letter-spacing:-.01em;margin-top:.6rem;line-height:1.02;}
.fx-letter__seal{margin-top:1.4rem;width:64px;height:64px;}
.fx-letter__body > p{font-family:var(--body);font-weight:400;font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.7;color:var(--ink);margin-bottom:1.05rem;}
.fx-letter__body em{font-style:italic;}
.fx-letter__sign{margin-top:1.8rem;padding-top:1.2rem;border-top:var(--rule) solid var(--paper);clear:both;}
.fx-letter__signname{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:1.12rem;line-height:1.1;color:var(--navy);}
.fx-letter__signrole{font-family:var(--body);font-weight:500;letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;color:var(--muted);margin-top:.1rem;}

/* ═══════════════════════════ HOLDINGS (the ledger) ═══════════════════════════ */
.fx-register{display:flex;flex-wrap:wrap;gap:.4rem 0;margin-bottom:clamp(1.6rem,3vw,2.4rem);border-top:var(--rule) solid var(--navy-hair);border-bottom:var(--rule) solid var(--navy-hair);}
.fx-register__item{flex:1 1 auto;min-width:150px;padding:.95rem clamp(.9rem,2vw,1.4rem);border-right:var(--rule) solid var(--navy-hair);}
.fx-register__item:last-child{border-right:0;}
.fx-register__k{font-family:var(--body);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.6rem;color:var(--on-navy-mut);}
.fx-register__v{font-family:var(--display);font-weight:600;font-size:clamp(1.1rem,2.2vw,1.5rem);margin-top:.3rem;font-variant-numeric:tabular-nums;}

.fx-holdings{display:flex;flex-direction:column;gap:clamp(1.8rem,3.5vw,2.8rem);}
.fx-holding{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:0;
  background:var(--cream-lt);border:1px solid var(--cream-dk);border-radius:14px;overflow:hidden;
  position:relative;box-shadow:0 16px 44px rgba(7,16,29,.32);
}
.fx-holding::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--accent,var(--genesee));z-index:2;}
.fx-holding--fyt{--accent:var(--genesee);--accent-ink:var(--genesee-dk);--btn-bg:var(--genesee-dk);--media-bg:#eef4fb;}
.fx-holding--hfm{--accent:var(--teal);--accent-ink:var(--teal-dk);--btn-bg:var(--teal-dk);--media-bg:#e9f5ef;}
.fx-holding__body{padding:clamp(1.6rem,3vw,2.6rem) clamp(1.6rem,3vw,2.8rem);display:flex;flex-direction:column;color:var(--ink);}
.fx-holding__code{display:flex;align-items:center;gap:.7rem;font-family:var(--display);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.74rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.fx-holding__code b{color:var(--accent-ink);font-weight:700;}
.fx-holding__name{font-size:clamp(1.5rem,3.4vw,2.3rem);font-weight:700;text-transform:uppercase;letter-spacing:-.005em;margin-top:.65rem;color:var(--navy);}
.fx-section--navy .fx-holding__name{color:var(--navy);}
.fx-holding__tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.85rem;}
.fx-tag{font-family:var(--body);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;color:var(--muted);border:1px solid var(--paper);border-radius:100px;padding:.3rem .7rem;}
.fx-holding__desc{margin-top:1.05rem;color:var(--ink);max-width:48ch;line-height:1.65;}
.fx-holding__facts{display:flex;flex-wrap:wrap;gap:1.2rem 1.8rem;margin-top:1.3rem;padding-top:1.2rem;border-top:var(--rule) solid var(--cream-dk);}
.fx-fact__k{font-family:var(--body);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.58rem;color:var(--muted);}
.fx-fact__v{font-family:var(--display);font-weight:600;font-size:.98rem;color:var(--navy);margin-top:.25rem;}
.fx-holding__cta{margin-top:auto;padding-top:1.6rem;}
.fx-btn{
  display:inline-flex;align-items:center;gap:.55rem;font-family:var(--display);font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;font-size:.86rem;text-decoration:none;
  padding:.78rem 1.3rem;border-radius:var(--radius);transition:transform .15s ease,background .2s ease,box-shadow .2s ease;
}
.fx-btn svg{width:1em;height:1em;}
.fx-btn--accent{background:var(--btn-bg);color:#fff;}
.fx-btn--accent:hover,.fx-btn--accent:focus-visible{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.35);}
.fx-btn--ghost{border:1px solid currentColor;color:var(--genesee-dk);background:transparent;}
.fx-btn--onnavy{border:1px solid var(--navy-hair);color:var(--on-navy);}
.fx-btn--onnavy:hover,.fx-btn--onnavy:focus-visible{border-color:var(--genesee);background:rgba(55,138,221,.12);transform:translateY(-2px);}
.fx-btn--lg{padding:.95rem 1.7rem;font-size:.95rem;}

.fx-holding__media{position:relative;background:var(--media-bg,var(--cream));display:flex;align-items:center;justify-content:center;padding:clamp(1.4rem,3vw,2.4rem);box-shadow:inset 1px 0 0 var(--cream-dk);}
.fx-holding__media img{max-width:100%;max-height:300px;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 8px 22px rgba(7,16,29,.18);}

/* ═══════════════════════════ CONTACT (cover page) ═══════════════════════════ */
.fx-contact__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(1.8rem,5vw,4.5rem);align-items:start;}
.fx-contact__h{font-size:clamp(1.9rem,4.4vw,3.2rem);text-transform:uppercase;letter-spacing:-.01em;line-height:1.02;}
.fx-contact__note{margin-top:1.1rem;color:var(--on-navy-mut);max-width:38ch;}
.fx-routes{margin-top:1.8rem;display:flex;flex-direction:column;gap:.8rem;}
.fx-route{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1.1rem;border:1px solid var(--navy-hair);border-radius:var(--radius);text-decoration:none;color:var(--on-navy);transition:border-color .2s ease,background .2s ease;}
.fx-route:hover,.fx-route:focus-visible{border-color:var(--genesee);background:rgba(55,138,221,.1);}
.fx-route__l{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
.fx-route__s{font-size:.78rem;color:var(--on-navy-mut);}

.fx-form{display:flex;flex-direction:column;gap:1.1rem;background:var(--navy-lt);border:1px solid var(--navy-hair);border-radius:var(--radius);padding:clamp(1.4rem,3vw,2.2rem);}
.fx-field{display:flex;flex-direction:column;gap:.4rem;}
.fx-label{font-family:var(--body);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;color:var(--on-navy-mut);}
.fx-input,.fx-textarea,.fx-select{
  font:inherit;color:var(--on-navy);background:var(--navy-dk);
  border:1px solid var(--navy-hair);border-radius:var(--radius);padding:.78rem .9rem;width:100%;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.fx-input:focus,.fx-textarea:focus,.fx-select:focus{outline:none;border-color:var(--genesee);box-shadow:0 0 0 3px rgba(55,138,221,.25);}
.fx-textarea{min-height:130px;resize:vertical;}
.fx-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.fx-form__status{font-size:.9rem;font-weight:600;border-radius:var(--radius);padding:.7rem .9rem;}
.fx-form__status[data-state="pending"]{background:rgba(55,138,221,.16);color:#bcd9f3;border:1px solid var(--genesee-dk);}
.fx-form__status[data-state="ok"]{background:rgba(29,158,117,.18);color:#bde4d4;border:1px solid var(--teal-dk);}
.fx-form__status[data-state="err"]{background:rgba(163,45,45,.2);color:#f1c4c4;border:1px solid #a32d2d;}

/* ═══════════════════════════ FOOTER ═══════════════════════════ */
.fx-foot{background:var(--navy-dk);color:var(--on-navy-mut);border-top:var(--rule) solid var(--navy-hair);padding-block:clamp(2.6rem,5vw,4rem) 1.6rem;}
.fx-foot__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(1.6rem,4vw,3rem);}
.fx-foot__brandname{display:flex;align-items:center;gap:.6rem;font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--on-navy);font-size:1.1rem;}
.fx-foot__brandname svg{width:30px;height:30px;}
.fx-foot__brand p{margin-top:.8rem;max-width:34ch;font-size:.92rem;}
.fx-foot h2{font-family:var(--body);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.7rem;color:var(--on-navy-mut);margin-bottom:.9rem;}
.fx-foot__links li{margin-bottom:.55rem;}
.fx-foot__links a{color:var(--on-navy);text-decoration:none;font-size:.95rem;}
.fx-foot__links a:hover,.fx-foot__links a:focus-visible{color:var(--genesee);text-decoration:underline;}
.fx-foot__bar{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;justify-content:space-between;align-items:center;margin-top:clamp(2rem,4vw,3rem);padding-top:1.3rem;border-top:var(--rule) solid var(--navy-hair);font-size:.82rem;}
.fx-foot__bar a{color:var(--on-navy-mut);}
.fx-foot__bar a:hover{color:var(--genesee);}

/* ═══════════════════════════ 404 ═══════════════════════════ */
.fx-404{flex:1;display:flex;align-items:center;background:var(--navy-dk);color:var(--on-navy);}
.fx-404__inner{padding-block:clamp(3rem,10vw,7rem);text-align:center;margin-inline:auto;max-width:640px;}
.fx-404__code{font-family:var(--display);font-weight:700;font-size:clamp(4rem,16vw,9rem);line-height:1;color:var(--navy-lt);letter-spacing:.02em;}
.fx-404__h{font-size:clamp(1.6rem,4vw,2.4rem);text-transform:uppercase;margin-top:.4rem;}
.fx-404__p{color:var(--on-navy-mut);margin:1rem auto 2rem;max-width:46ch;}
.fx-404__actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;}

/* ═══════════════════════════ MOBILE NAV PANEL ═══════════════════════════ */
.fx-mobile{display:none;}

/* ───────────────────────── RESPONSIVE ───────────────────────── */
/* Tablet & below: collapse nav to toggle + panel */
@media (max-width:860px){
  .fx-nav{
    position:fixed;inset:0 0 0 auto;width:min(78vw,320px);transform:translateX(100%);
    flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;
    background:var(--navy);border-left:1px solid var(--navy-hair);padding:5.5rem 1.6rem 2rem;
    transition:transform .28s ease;z-index:115;overflow-y:auto;
  }
  .fx-nav[data-open="true"]{transform:translateX(0);}
  .fx-nav__link{width:100%;padding:1rem 0;border-bottom:1px solid var(--navy-hair);font-size:1rem;}
  .fx-nav__link::after{display:none;}
  .fx-mast__toggle{display:flex;z-index:130;}
  /* backdrop-filter on an ancestor traps position:fixed children; drop it on
     mobile so the .fx-nav drawer positions against the viewport, not the header */
  .fx-mast{background:var(--navy-dk);backdrop-filter:none;-webkit-backdrop-filter:none;}
  body.fx-nav-open{overflow:hidden;}
  .fx-scrim{position:fixed;inset:0;background:rgba(7,16,29,.6);z-index:110;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;}
  .fx-scrim[data-open="true"]{opacity:1;visibility:visible;}
}

/* Single-column collapses */
@media (max-width:780px){
  .fx-holding{grid-template-columns:1fr;}
  .fx-holding__media{order:-1;min-height:0;box-shadow:inset 0 -1px 0 var(--cream-dk);padding:clamp(1.6rem,6vw,2.4rem);}
  .fx-holding__media img{max-height:240px;}
  .fx-letter__grid,.fx-contact__grid{grid-template-columns:1fr;}
  .fx-letter__aside{position:static;}
  .fx-foot__cols{grid-template-columns:1fr;}
}

/* True mobile: full single column, tightened data rows */
@media (max-width:560px){
  .fx-hero__data{flex-direction:column;}
  .fx-hero__datum{flex:1 1 100%;border-right:0;border-bottom:var(--rule) solid var(--navy-hair);padding:.9rem 0;}
  .fx-hero__datum:last-child{border-bottom:0;}
  .fx-register{flex-direction:column;}
  .fx-register__item{flex:1 1 100%;border-right:0;border-bottom:var(--rule) solid var(--navy-hair);}
  .fx-register__item:last-child{border-bottom:0;}
  .fx-orgtree__children{flex-direction:column;align-items:center;gap:0;}
  .fx-orgtree__children::before{display:none;}
  .fx-orgtree__child{max-width:280px;width:100%;padding-top:clamp(22px,7vw,34px);}
  .fx-orgtree__child + .fx-orgtree__child{margin-top:0;}
  .fx-foot__bar{flex-direction:column;align-items:flex-start;}
}

/* ───────────── 4K tier — starts at 3440×1440 ─────────────
   vw-based metrics do not scale up naturally at this width, so the
   container, type ramp and the org-tree geometry are explicitly locked up. */
@media (min-width:3440px){
  :root{
    --maxw:2200px;
    --gutter:6rem;
    --section-y:11rem;
  }
  html{font-size:22px;}
  .fx-hero__title{font-size:9.5rem;}
  .fx-hero__lede{font-size:1.8rem;max-width:40ch;}
  .fx-section__title{font-size:4rem;}
  .fx-orgtree__children{gap:8rem;}
  .fx-orgtree__child{max-width:440px;}
  .fx-orgtree__stem,.fx-orgtree__drop{height:72px;}
  .fx-orgtree__child{padding-top:72px;}
  .fx-holding__name{font-size:3rem;}
  .fx-letter__body > p{font-size:1.5rem;}
  .fx-letter__grid{grid-template-columns:minmax(0,26rem) minmax(0,1fr);}
  .fx-foot__brand p,.fx-foot__links a{font-size:1.1rem;}
}

/* ───────────── Motion / print ───────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;}
  .fx-orgtree .fx-node{opacity:1!important;transform:none!important;}
  .fx-orgtree__stem,.fx-orgtree__children::before,.fx-orgtree__drop{transform:none!important;}
}
@media print{
  .fx-mast,.fx-mobile,.fx-scrim,.fx-form{display:none!important;}
  body{background:#fff;color:#000;}
}
