/* ==========================================================================
   Ambriel Property Management
   Single stylesheet. No framework, no build step.
   Vocabulary: crest (header) · gate (menu) · tier (section) · plate (photo)
               wash (scrim) · act (button) · rise (entry motion) · ascend (FAB)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root{
  /* surface */
  --navy:        #0B1F3A;
  --navy-deep:   #071528;
  --navy-well:   #0E2647;
  --slate:       #2F4E73;
  --slate-soft:  #24405f;
  --paper:       #F6F7F9;
  --paper-warm:  #FBFAF7;

  /* ink */
  --silver:      #C9CED6;
  --silver-dim:  #9AA6B6;
  --ink:         #101826;
  --ink-soft:    #46536B;

  /* accent */
  --gold:        #C5A253;
  --gold-bright: #D8BC74;
  --gold-deep:   #9C7C36;
  --emerald:     #1F4F46;
  --amber:       #A9762A;
  --rust:        #8E3B2E;

  /* type */
  --font-display: 'Cinzel', 'Trajan Pro', Georgia, 'Times New Roman', serif;
  --font-body:    'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

  --t-h1:    clamp(1.95rem, 1.28rem + 2.9vw, 3.5rem);
  --t-h2:    clamp(1.5rem,  1.14rem + 1.6vw, 2.35rem);
  --t-h3:    clamp(1.12rem, 1.03rem + .42vw, 1.38rem);
  --t-h4:    clamp(1rem,    .97rem + .16vw,  1.1rem);
  --t-lead:  clamp(1.05rem, 1rem + .34vw,    1.22rem);
  --t-body:  1.0625rem;
  --t-small: .9375rem;
  --t-fine:  .8125rem;

  /* rhythm */
  --shell:       1180px;
  --shell-tight: 920px;
  --prose:       68ch;
  --tier-pad:    clamp(4rem, 7.5vw, 7.5rem);
  --tier-pad-sm: clamp(2.75rem, 5vw, 4.5rem);
  --gap:         clamp(1.5rem, 3vw, 2.5rem);
  --edge:        clamp(1.25rem, 4vw, 3rem);

  /* chrome */
  --crest-rest: 112px;
  --crest-slim: 68px;
  --crest-h:    var(--crest-rest);

  --radius:   3px;
  --radius-lg: 5px;
  --ease:     cubic-bezier(.2,.7,.3,1);
  --shadow-card: 0 18px 40px -28px rgba(3,10,20,.85);
  --shadow-lift: 0 26px 55px -26px rgba(3,10,20,.9);
}

@media (max-width: 900px){
  :root{ --crest-rest: 84px; --crest-slim: 60px; }
}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--crest-slim) + 24px);
}

body{
  margin:0;
  background:var(--navy);
  color:var(--silver);
  font-family:var(--font-body);
  font-size:var(--t-body);
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

body.gate-open{ overflow:hidden; }
html:has(body.gate-open){ overflow:hidden; }

img,svg,video{ max-width:100%; height:auto; display:block; }

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  font-weight:600;
  color:#EEF1F5;
  margin:0 0 .65em;
  line-height:1.16;
  letter-spacing:.012em;
  /* Even line lengths instead of a one-word last line. Ignored where unsupported. */
  text-wrap:balance;
}

h1{ font-size:var(--t-h1); line-height:1.1; }
h2{ font-size:var(--t-h2); }
h3{ font-size:var(--t-h3); line-height:1.28; }
h4{ font-size:var(--t-h4); line-height:1.35; letter-spacing:.04em; }

p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }

a{ color:var(--gold-bright); text-decoration:none; }
a:hover{ color:var(--gold); }

ul,ol{ margin:0 0 1.15em; padding-left:1.2em; }
li{ margin-bottom:.5em; }
li:last-child{ margin-bottom:0; }

strong,b{ font-weight:700; color:#E7EBF0; }
em{ font-style:italic; }

hr{ border:0; height:1px; background:rgba(201,206,214,.16); margin:2.5rem 0; }

small{ font-size:var(--t-fine); }

::selection{ background:rgba(197,162,83,.3); color:#fff; }

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

[hidden]{ display:none !important; }

/* Skip link */
.jump-main{
  position:absolute; top:-100px; left:var(--edge);
  z-index:120;
  padding:.7rem 1.1rem;
  background:var(--gold);
  color:var(--navy-deep);
  font-weight:700;
  font-size:var(--t-small);
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:var(--radius);
  transition:top .18s var(--ease);
}
.jump-main:focus{ top:12px; color:var(--navy-deep); }

/* --------------------------------------------------------------------------
   3. Layout primitives
   -------------------------------------------------------------------------- */
.tier{
  position:relative;
  padding:var(--tier-pad) 0;
  isolation:isolate;
}
.tier--snug{ padding:var(--tier-pad-sm) 0; }
.tier--flush-top{ padding-top:0; }

.tier__inner{
  position:relative;
  z-index:10;
  width:100%;
  max-width:var(--shell);
  margin:0 auto;
  padding:0 var(--edge);
}
.tier__inner--tight{ max-width:var(--shell-tight); }

/* Surfaces */
.tier--navy{ background:var(--navy); }
.tier--deep{ background:var(--navy-deep); }

/* Tools — viewport-fixed skyline (hero pin feel, no Ken Burns / no JS parallax).
   background-attachment:fixed keeps the photo still; only the section “window”
   reveals it, so Areas can cover the join cleanly. */
.tier--photo[data-tools-photo]{
  position:relative;
  /* isolation/overflow on ancestors make fixed attachment scroll in Chromium */
  isolation:auto;
  overflow:visible;
  background:var(--navy-deep);
}
.tier--photo[data-tools-photo] .tier__photo{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-color:var(--navy-deep);
  background-image:image-set(
    url("../images/tools-skyline.webp") type("image/webp"),
    url("../images/tools-skyline.jpg") type("image/jpeg")
  );
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.tier--photo[data-tools-photo] .tier__photo-wash{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(4,11,21,.55) 0%, rgba(7,21,40,.38) 42%, rgba(4,11,21,.64) 100%),
    linear-gradient(115deg, rgba(11,31,58,.42) 0%, rgba(4,11,21,.18) 55%, rgba(7,21,40,.4) 100%);
}
.tier--photo[data-tools-photo] .tier__inner{
  position:relative;
  z-index:2;
}
@media (max-width: 880px){
  /* iOS / small screens: fixed attachment is unreliable */
  .tier--photo[data-tools-photo] .tier__photo{ background-attachment:scroll; }
}
@media (prefers-reduced-motion: reduce){
  .tier--photo[data-tools-photo] .tier__photo{ background-attachment:scroll; }
}

/* Generic fixed photoband (e.g. Association Management premise).
   Same viewport-fixed window as Tools; assign --tier-photo on .tier__photo.
   isolation:auto required — .tier’s isolate breaks fixed attachment in Chromium. */
.tier--photo[data-fixed-photo]{
  position:relative;
  isolation:auto;
  overflow:visible;
  background:var(--navy-deep);
}
.tier--photo[data-fixed-photo] .tier__photo{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-color:var(--navy-deep);
  background-image:var(--tier-photo);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.tier--photo[data-fixed-photo] .tier__photo-wash{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  /* Navy veil — photo subtle under copy */
  background:
    linear-gradient(180deg, rgba(4,11,21,.78) 0%, rgba(7,21,40,.70) 44%, rgba(4,11,21,.86) 100%),
    linear-gradient(115deg, rgba(11,31,58,.52) 0%, rgba(4,11,21,.28) 55%, rgba(7,21,40,.48) 100%);
}
.tier--photo[data-fixed-photo] .tier__inner{
  position:relative;
  z-index:2;
}
@media (max-width: 880px){
  .tier--photo[data-fixed-photo] .tier__photo{ background-attachment:scroll; }
}
@media (prefers-reduced-motion: reduce){
  .tier--photo[data-fixed-photo] .tier__photo{ background-attachment:scroll; }
}

/* A+C seam seal — Areas covers Tools’ fixed skyline; plate does not parallax.
   Tools photo/wash left untouched (see _revert/tools-fixed-skyline-2026-10-14/). */
.tier--cover-prev[data-tier="areas"]{
  position:relative;
  z-index:4;
  /* 1px overlap kills subpixel gaps against the fixed Tools window */
  margin-top:-1px;
  padding-top:calc(var(--tier-pad) + 1px);
  overflow:hidden;
  background:var(--navy);
}
.tier--cover-prev[data-tier="areas"] .tier__plate{
  transform:none !important;
  --pxy:0px;
}
/* Opaque top lid so the fixed skyline cannot show through wash alpha */
.tier--cover-prev[data-tier="areas"] .tier__wash--deep{
  background:
    linear-gradient(180deg, #0B1F3A 0%, rgba(4,11,21,.92) 28%, rgba(4,11,21,.84) 100%);
}

.tier--well{
  background:
    radial-gradient(140% 100% at 50% 0%, rgba(47,78,115,.42), transparent 62%),
    var(--navy-deep);
}
.tier--paper{ background:var(--paper); }
.tier--paper-warm{ background:var(--paper-warm); }

/* Light-surface ink inversion */
.tier--paper,.tier--paper-warm{ color:var(--ink-soft); }
.tier--paper h1,.tier--paper h2,.tier--paper h3,.tier--paper h4,
.tier--paper-warm h1,.tier--paper-warm h2,.tier--paper-warm h3,.tier--paper-warm h4{ color:var(--ink); }
.tier--paper strong,.tier--paper-warm strong{ color:var(--ink); }
/* Prose links only. Buttons carry their own colour and must not inherit this. */
.tier--paper a:not(.act),.tier--paper-warm a:not(.act){ color:var(--gold-deep); }
.tier--paper a:not(.act):hover,.tier--paper-warm a:not(.act):hover{ color:#7d6127; }

/* Hairline band separators */
.tier--edge-top{ border-top:1px solid rgba(201,206,214,.1); }
.tier--edge-bottom{ border-bottom:1px solid rgba(201,206,214,.1); }
.tier--paper.tier--edge-top,.tier--paper-warm.tier--edge-top{ border-top-color:rgba(16,24,38,.09); }

/* Centered block */
.mid{ text-align:center; }
.mid > *{ margin-left:auto; margin-right:auto; }
.mid .lead,.mid p{ max-width:min(var(--prose), 100%); }

.lead{
  font-size:var(--t-lead);
  line-height:1.66;
  color:#D6DCE4;
  max-width:var(--prose);
  text-wrap:pretty;
}
.tier--paper .lead,.tier--paper-warm .lead{ color:var(--ink-soft); }

.fine{
  font-size:var(--t-fine);
  line-height:1.6;
  color:var(--silver-dim);
  letter-spacing:.01em;
}
.tier--paper .fine,.tier--paper-warm .fine{ color:#6a7690; }

/* Section heading group */
.head{ margin-bottom:clamp(2rem, 4vw, 3.25rem); }
.head h2{ margin-bottom:.5rem; }
.head .lead{ margin-top:1rem; }
.head.mid .lead{ margin-top:1.15rem; }

/* --------------------------------------------------------------------------
   4. Engraved rule (used instead of overline labels)
   -------------------------------------------------------------------------- */
.rule{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  margin:1.4rem auto 0;
  width:min(300px, 58%);
}
.rule span{
  flex:1 1 auto;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--gold-deep) 40%, var(--gold));
  transform:scaleX(0);
  transform-origin:right center;
  transition:transform .62s var(--ease);
}
/* The diamond sits between the two spans, so this must match by position
   rather than adjacency, otherwise both halves taper the same way. */
.rule span:last-of-type{
  background:linear-gradient(90deg, var(--gold), var(--gold-deep) 60%, transparent);
  transform-origin:left center;
}
.rule i{
  flex:0 0 auto;
  width:6px; height:6px;
  background:var(--gold);
  transform:rotate(45deg) scale(0);
  transition:transform .4s var(--ease) .18s;
}
.rule.is-in span{ transform:scaleX(1); }
.rule.is-in i{ transform:rotate(45deg) scale(1); }
.rule--left{ margin-left:0; justify-content:flex-start; width:min(220px,52%); }
.tier--paper .rule span,.tier--paper-warm .rule span{
  background:linear-gradient(90deg, transparent, rgba(156,124,54,.55) 40%, var(--gold-deep));
}
.tier--paper .rule span:last-of-type,.tier--paper-warm .rule span:last-of-type{
  background:linear-gradient(90deg, var(--gold-deep), rgba(156,124,54,.55) 60%, transparent);
}
.tier--paper .rule i,.tier--paper-warm .rule i{ background:var(--gold-deep); }

/* Standalone hairline */
.hair{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(197,162,83,.5), transparent);
  border:0;
  margin:clamp(2rem,4vw,3rem) 0;
}

/* --------------------------------------------------------------------------
   5. Buttons
   -------------------------------------------------------------------------- */
.act{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-height:48px;
  padding:.85rem 1.6rem;
  border:1px solid transparent;
  border-radius:var(--radius);
  font-family:var(--font-body);
  font-size:var(--t-small);
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
  text-align:center;
  cursor:pointer;
  transition:background-color .2s var(--ease), color .2s var(--ease),
             border-color .2s var(--ease), transform .2s var(--ease),
             box-shadow .2s var(--ease);
}
.act:active{ transform:translateY(1px); }

.act--fill{
  background:linear-gradient(180deg, var(--gold-bright), var(--gold) 62%, var(--gold-deep));
  color:#12233C;
  box-shadow:0 10px 24px -16px rgba(197,162,83,.9);
}
.act--fill:hover{
  background:linear-gradient(180deg, #E6CE93, var(--gold-bright) 62%, var(--gold));
  color:#0e1d33;
  box-shadow:0 14px 30px -16px rgba(197,162,83,1);
}

.act--rule{
  background:transparent;
  border-color:rgba(201,206,214,.4);
  color:#E4E8EE;
}
.act--rule:hover{
  border-color:var(--gold);
  color:var(--gold-bright);
  background:rgba(197,162,83,.07);
}
.tier--paper .act--rule,.tier--paper-warm .act--rule{
  border-color:rgba(16,24,38,.24);
  color:var(--ink);
}
.tier--paper .act--rule:hover,.tier--paper-warm .act--rule:hover{
  border-color:var(--gold-deep);
  color:var(--gold-deep);
  background:rgba(197,162,83,.09);
}

.act--quiet{
  background:transparent;
  color:var(--gold-bright);
  padding:.5rem 0;
  min-height:0;
  border-bottom:1px solid rgba(197,162,83,.34);
  border-radius:0;
  letter-spacing:.08em;
}
.act--quiet:hover{ color:var(--gold); border-bottom-color:var(--gold); }
.tier--paper .act--quiet,.tier--paper-warm .act--quiet{ color:var(--gold-deep); }

.act--sm{ min-height:42px; padding:.6rem 1.1rem; font-size:var(--t-fine); }
.act--wide{ width:100%; }

.acts{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem 1rem;
  margin-top:clamp(1.5rem,3vw,2.25rem);
}
.acts--mid{ justify-content:center; }

/* Outbound glyph */
.act .out{
  width:12px; height:12px;
  flex:0 0 auto;
  opacity:.72;
}

/* --------------------------------------------------------------------------
   6. Crest (masthead)
   -------------------------------------------------------------------------- */
.crest{
  position:fixed;
  inset:0 0 auto 0;
  z-index:80;
  height:var(--crest-h);
  display:flex;
  align-items:center;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:height .24s var(--ease), background-color .24s var(--ease),
             border-color .24s var(--ease), box-shadow .24s var(--ease);
}
.crest__inner{
  width:100%;
  max-width:1560px;
  margin:0 auto;
  padding:0 var(--edge);
  display:flex;
  align-items:center;
  gap:clamp(.75rem,2vw,1.5rem);
}
.crest__left{ display:flex; align-items:center; gap:clamp(.75rem,1.6vw,1.25rem); min-width:0; }
.crest__right{ display:flex; align-items:center; gap:clamp(.5rem,1.4vw,1rem); margin-left:auto; }

.crest.is-condensed{
  height:var(--crest-slim);
  background:rgba(7,21,40,.93);
  border-bottom-color:rgba(197,162,83,.42);
  box-shadow:0 14px 34px -28px rgba(0,0,0,.95);
}
@supports (backdrop-filter: blur(10px)){
  .crest.is-condensed{
    background:rgba(7,21,40,.82);
    backdrop-filter:blur(10px) saturate(1.15);
  }
}
/* Pages without a photographic hero get the solid bar immediately */
.crest.is-anchored{
  background:rgba(7,21,40,.93);
  border-bottom-color:rgba(197,162,83,.24);
}

/* Brand lockup: inline icon + HTML wordmark so real webfonts render crisp */
.crest__brand{
  display:flex;
  align-items:center;
  gap:.7rem;
  min-width:0;
}
.crest__mark{
  width:auto;
  height:clamp(40px, 3.4vw, 54px);
  transition:height .24s var(--ease);
  flex:0 0 auto;
}
.crest.is-condensed .crest__mark{ height:clamp(34px, 2.6vw, 40px); }

.crest__word{
  display:block;
  min-width:0;
  opacity:1;
  max-width:340px;
  transform:translateX(0);
  transition:opacity .22s var(--ease), max-width .26s var(--ease), transform .26s var(--ease);
}
.crest.is-condensed .crest__word{
  opacity:0;
  max-width:0;
  transform:translateX(-8px);
  pointer-events:none;
}
.crest__name{
  display:block;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.02rem, .82rem + .7vw, 1.5rem);
  letter-spacing:.16em;
  color:#E9EDF2;
  line-height:1;
  white-space:nowrap;
}
.crest__word .wordrule{
  display:block;
  height:1px;
  margin:.4rem 0 .34rem;
  background:linear-gradient(90deg, var(--gold), rgba(197,162,83,.15));
}
.crest__kind{
  display:block;
  font-size:clamp(.5rem, .42rem + .18vw, .625rem);
  font-weight:400;
  letter-spacing:.34em;
  color:var(--silver-dim);
  line-height:1;
  white-space:nowrap;
  text-transform:uppercase;
}

/* Phone beside the brand, gold hairline divider */
.crest__phone{
  display:flex;
  align-items:center;
  gap:.5rem;
  padding-left:clamp(.75rem,1.6vw,1.25rem);
  border-left:1px solid rgba(197,162,83,.36);
  color:#E4E8EE;
  font-weight:700;
  font-size:var(--t-small);
  letter-spacing:.04em;
  white-space:nowrap;
  min-height:44px;
}
.crest__phone:hover{ color:var(--gold-bright); }
.crest__phone svg{ width:15px; height:15px; flex:0 0 auto; opacity:.8; }
.crest__phone .num{ display:inline; }

.crest__consult{ white-space:nowrap; }
.crest__consult .short{ display:none; }

/* Hamburger */
.gate-btn{
  width:46px; height:46px;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0;
  background:transparent;
  border:1px solid rgba(201,206,214,.26);
  border-radius:var(--radius);
  cursor:pointer;
  flex:0 0 auto;
  transition:border-color .2s var(--ease), background-color .2s var(--ease);
}
.gate-btn:hover{ border-color:var(--gold); background:rgba(197,162,83,.08); }
.gate-btn i{
  display:block;
  width:20px; height:1.5px;
  background:#E4E8EE;
  transition:transform .26s var(--ease), opacity .18s var(--ease), background-color .2s;
}
.gate-btn:hover i{ background:var(--gold-bright); }
.gate-btn[aria-expanded="true"] i:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.gate-btn[aria-expanded="true"] i:nth-child(2){ opacity:0; }
.gate-btn[aria-expanded="true"] i:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* --------------------------------------------------------------------------
   7. Gate (slide-out menu)
   -------------------------------------------------------------------------- */
.gate__scrim{
  position:fixed;
  inset:0;
  z-index:90;
  background:rgba(4,11,21,.74);
  opacity:0;
  visibility:hidden;
  transition:opacity .28s var(--ease), visibility .28s;
}
@supports (backdrop-filter: blur(3px)){
  .gate__scrim{ backdrop-filter:blur(3px); }
}
body.gate-open .gate__scrim{ opacity:1; visibility:visible; }

.gate{
  position:fixed;
  top:0; right:0; bottom:0;
  z-index:100;
  width:min(420px, 88vw);
  background:var(--navy-deep);
  border-left:1px solid rgba(197,162,83,.5);
  transform:translateX(100%);
  transition:transform .3s var(--ease), visibility .3s;
  visibility:hidden;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
body.gate-open .gate{ transform:translateX(0); visibility:visible; }

.gate__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.1rem var(--edge);
  border-bottom:1px solid rgba(201,206,214,.12);
}
.gate__top .crest__name{ font-size:1.05rem; }
.gate__close{
  width:44px; height:44px;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent;
  border:1px solid rgba(201,206,214,.26);
  border-radius:var(--radius);
  color:#E4E8EE;
  cursor:pointer;
  font-size:1.35rem;
  line-height:1;
  transition:border-color .2s var(--ease), color .2s var(--ease);
}
.gate__close:hover{ border-color:var(--gold); color:var(--gold-bright); }

.gate__body{ padding:1.5rem var(--edge) 2.5rem; }

.gate__list{ list-style:none; margin:0 0 1.75rem; padding:0; }
.gate__list li{
  margin:0;
  opacity:0;
  transform:translateX(14px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
body.gate-open .gate__list li{ opacity:1; transform:translateX(0); }
.gate__list a{
  display:block;
  padding:.72rem 0;
  border-bottom:1px solid rgba(201,206,214,.09);
  color:#E4E8EE;
  font-family:var(--font-display);
  font-size:1.02rem;
  font-weight:600;
  letter-spacing:.055em;
  transition:color .18s var(--ease), padding-left .18s var(--ease);
}
.gate__list a:hover,.gate__list a[aria-current="page"]{ color:var(--gold-bright); padding-left:.4rem; }
.gate__list a[aria-current="page"]{ border-bottom-color:rgba(197,162,83,.4); }

.gate__group{
  margin:0 0 1.75rem;
  padding:1.15rem 1.15rem 1.25rem;
  background:rgba(47,78,115,.2);
  border:1px solid rgba(197,162,83,.24);
  border-radius:var(--radius-lg);
}
.gate__group h4{
  color:var(--gold);
  font-family:var(--font-body);
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin:0 0 .85rem;
}
.gate__group h4 a{
  color:inherit;
  text-decoration:none;
}
.gate__group h4 a:hover{
  color:var(--gold-bright);
}
.gate__group .act{ width:100%; }
.gate__group .act + .act{ margin-top:.6rem; }

.gate__tools{ list-style:none; margin:0; padding:0; columns:2; column-gap:1rem; }
.gate__tools a{
  display:block;
  padding:.34rem 0;
  color:var(--silver);
  font-size:var(--t-fine);
  letter-spacing:.01em;
}
.gate__tools a:hover{ color:var(--gold-bright); }

.gate__reach{
  margin-top:1.75rem;
  padding-top:1.5rem;
  border-top:1px solid rgba(201,206,214,.12);
}
.gate__reach a{
  display:block;
  color:#E4E8EE;
  font-size:var(--t-small);
  padding:.3rem 0;
  letter-spacing:.02em;
}
.gate__reach a:hover{ color:var(--gold-bright); }
.gate__reach .num{ font-family:var(--font-display); font-size:1.22rem; letter-spacing:.05em; }

.gate__social{ display:flex; gap:.6rem; margin-top:1.25rem; }
.gate__social a{
  width:42px; height:42px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(201,206,214,.22);
  border-radius:var(--radius);
  color:var(--silver);
  transition:border-color .2s var(--ease), color .2s var(--ease);
}
.gate__social a:hover{ border-color:var(--gold); color:var(--gold-bright); }
.gate__social svg{ width:17px; height:17px; }

/* --------------------------------------------------------------------------
   8. Ascend (back-to-top FAB) — viewport chrome, never inside main
   Navy fill ~.12 alpha · gold border · gold arrow + “top” label (BACK-TOP-FLYNN-01)
   -------------------------------------------------------------------------- */
.ascend{
  position:fixed;
  right:clamp(60px, 5vw + 48px, 100px);
  bottom:calc(10px + env(safe-area-inset-bottom, 0px));
  z-index:60;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity .24s var(--ease), transform .24s var(--ease), visibility .24s;
}
.ascend.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}
body.gate-open .ascend{ opacity:0; visibility:hidden; pointer-events:none; }
.ascend a{
  min-width:56px;
  padding:9px 11px 8px;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  /* Fill stays light (~.12); border/arrow stay solid gold so the FAB reads on dark bands */
  background:rgba(11,31,58,.12);
  border:1.5px solid var(--gold);
  border-radius:var(--radius);
  color:var(--gold);
  text-decoration:none;
  box-shadow:0 8px 22px -14px rgba(0,0,0,.55);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  transition:background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.ascend a:hover{
  background:rgba(11,31,58,.32);
  border-color:var(--gold-bright);
  color:var(--gold-bright);
}
.ascend a:focus-visible{
  outline:2px solid var(--gold-bright);
  outline-offset:3px;
}
.ascend__arrow{
  display:block;
  width:22px;
  height:10px;
  color:inherit;
}
.ascend__label{
  display:block;
  font-family:var(--font-display);
  font-size:10px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1;
  color:inherit;
}

@media (max-width: 680px){
  .ascend{ right:16px; bottom:calc(16px + env(safe-area-inset-bottom, 0px)); }
}

/* --------------------------------------------------------------------------
   9. Plate (photo layer) + wash (scrim)
   Designed placeholders until real photography lands. Nothing 404s.
   -------------------------------------------------------------------------- */
.tier__plate{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  background:
    radial-gradient(118% 88% at 50% -10%, rgba(47,78,115,.55), transparent 62%),
    radial-gradient(84% 70% at 50% 112%, rgba(197,162,83,.16), transparent 64%),
    linear-gradient(162deg, #22415f 0%, var(--navy) 48%, var(--navy-deep) 100%);
}
/* Measured grid: coarse rhythm over a fine one, faded toward the edges */
.tier__plate::before{
  content:"";
  position:absolute;
  inset:-2px;
  background-image:
    linear-gradient(to right, rgba(201,206,214,.2) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(201,206,214,.2) 1px, transparent 1px),
    linear-gradient(to right, rgba(201,206,214,.085) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(201,206,214,.085) 1px, transparent 1px);
  background-size:120px 120px, 120px 120px, 24px 24px, 24px 24px;
  -webkit-mask-image:radial-gradient(100% 92% at 50% 44%, #000 22%, transparent 82%);
          mask-image:radial-gradient(100% 92% at 50% 44%, #000 22%, transparent 82%);
}
/* Architectural elevation, centred */
.tier__plate::after{
  content:"";
  position:absolute;
  inset:0;
  background:url("../images/plate-blueprint.svg") center 62% / min(1080px, 76%) auto no-repeat;
  opacity:.5;
}
/* Keep the elevation clear of left-aligned copy on split heroes */
.tier__plate--right::after{ background-position:96% 74%; background-size:min(820px, 58%) auto; }
@media (max-width: 880px){
  .tier__plate--right::after{ background-position:center 88%; background-size:min(680px, 104%) auto; opacity:.4; }
}
/* Elevation settles along the base so centred copy reads clean above it */
.tier__plate--low::after{ background-position:center 104%; background-size:min(1280px, 92%) auto; opacity:.42; }

/* When the operator assigns a photo: --plate-img on the element */
.tier__plate[style*="--plate-img"]{
  background-image:var(--plate-img);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.tier__plate[style*="--plate-img"]::before,
.tier__plate[style*="--plate-img"]::after{ display:none; }
@media (min-width: 769px){
  .tier__plate[style*="--plate-img"]{ background-attachment:fixed; }
}

/* Scrim: always a separate sibling layer above the photo */
.tier__wash{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(7,21,40,.68) 0%, rgba(7,21,40,.52) 46%, rgba(7,21,40,.82) 100%);
}
.tier__wash--soft{ background:rgba(7,21,40,.52); }
.tier__wash--deep{ background:rgba(4,11,21,.78); }

/* Until a photo is assigned the wash lightens so the placeholder is legible as
   a deliberate treatment. Dropping in --plate-img restores full text cover. */
.tier__plate:not([style*="--plate-img"]) + .tier__wash{
  background:linear-gradient(180deg, rgba(7,21,40,.3) 0%, rgba(7,21,40,.1) 44%, rgba(7,21,40,.58) 100%);
}
/* Bands that carry copy over the plate need the heavier cover even while the
   placeholder is showing, so the elevation stays texture and not competition. */
.tier__plate:not([style*="--plate-img"]) + .tier__wash--deep{
  background:linear-gradient(180deg, rgba(4,11,21,.76) 0%, rgba(4,11,21,.7) 44%, rgba(4,11,21,.84) 100%);
}

/* Card-scale placeholder */
.plate--card{
  position:relative;
  aspect-ratio:16 / 10;
  overflow:hidden;
  background:
    radial-gradient(112% 86% at 50% -12%, rgba(47,78,115,.6), transparent 64%),
    radial-gradient(80% 66% at 50% 114%, rgba(197,162,83,.14), transparent 62%),
    linear-gradient(154deg, #22415f 0%, var(--navy) 56%, var(--navy-deep) 100%);
  border-bottom:1px solid rgba(197,162,83,.24);
}
.plate--card::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(to right, rgba(201,206,214,.1) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(201,206,214,.1) 1px, transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(96% 92% at 50% 46%, #000 18%, transparent 84%);
          mask-image:radial-gradient(96% 92% at 50% 46%, #000 18%, transparent 84%);
}
.plate--card::after{
  content:"";
  position:absolute;
  inset:0;
  background:url("../images/logo-icon.svg") center / auto 42% no-repeat;
  opacity:.11;
}
.plate--card[style*="--plate-img"]{
  /* Paths inside --plate-img must be relative to this CSS file (../images/...), not the HTML page */
  background-image:var(--plate-img);
  background-size:cover;
  background-position:center;
}
.plate--card[style*="--plate-img"]::before,
.plate--card[style*="--plate-img"]::after{ display:none; }
/* Named photo plates — urls resolved from css/ so they actually load */
.plate--photo-palm{
  background-image:image-set(
    url("../images/services-palm-grove.webp") type("image/webp"),
    url("../images/services-palm-grove.jpg") type("image/jpeg")
  );
  background-size:cover;
  background-position:center;
  transition:transform .7s var(--ease);
}
.plate--photo-palm::before,
.plate--photo-palm::after{ display:none; }
/* Shadow on the media host (so overflow:hidden on the plate doesn't clip it) */
.split__media:has(> .plate--photo-palm){
  border-radius:var(--radius-lg);
  transition:box-shadow .7s var(--ease);
}
.split__media:has(> .plate--photo-palm):hover{
  box-shadow:0 28px 56px -22px rgba(4,11,21,.55);
}
.split__media:has(> .plate--photo-palm):hover .plate--photo-palm{
  transform:scale(1.06);
}
@media (prefers-reduced-motion: reduce){
  .plate--photo-palm,
  .split__media:has(> .plate--photo-palm){ transition:none; }
  .split__media:has(> .plate--photo-palm):hover .plate--photo-palm{ transform:none; }
}
.plate--wide{ aspect-ratio:21 / 9; }
.plate--tall{ aspect-ratio:4 / 5; }
.plate--square{ aspect-ratio:1 / 1; }

/* --------------------------------------------------------------------------
   10. Hero
   -------------------------------------------------------------------------- */
.hero{
  position:relative;
  display:flex;
  align-items:flex-end;
  min-height:min(92vh, 860px);
  padding-top:calc(var(--crest-rest) + clamp(3rem, 7vw, 6.5rem));
  padding-bottom:clamp(3.5rem, 7vw, 6.5rem);
  isolation:isolate;
  overflow:hidden;
}
.hero__inner{
  position:relative;
  z-index:10;
  width:100%;
  max-width:var(--shell);
  margin:0 auto;
  padding:0 var(--edge);
}
.hero__copy{ max-width:min(58ch, 100%); }
.hero h1{ margin-bottom:1.1rem; }
.hero .lead{ max-width:56ch; }
.hero .acts{ margin-top:clamp(1.75rem, 3.5vw, 2.5rem); }

.hero__ledger{
  margin-top:clamp(2.5rem, 5vw, 4rem);
  padding-top:1.5rem;
  border-top:1px solid rgba(197,162,83,.3);
  display:flex;
  flex-wrap:wrap;
  gap:.6rem clamp(1.5rem, 4vw, 3rem);
}
.hero__ledger span{
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#BFC8D4;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
}
.hero__ledger span::before{
  content:"";
  width:4px; height:4px;
  background:var(--gold);
  transform:rotate(45deg);
  flex:0 0 auto;
}

/* Compact hero for inner pages */
.hero--page{
  min-height:auto;
  align-items:center;
  padding-top:calc(var(--crest-rest) + clamp(2.5rem, 5vw, 4.5rem));
  padding-bottom:clamp(2.75rem, 5vw, 4.5rem);
  text-align:center;
}
.hero--page .hero__copy{ max-width:min(64ch,100%); margin:0 auto; }
.hero--page .lead{ max-width:60ch; margin-left:auto; margin-right:auto; }
.hero--page .acts{ justify-content:center; }
/* Page heroes with Florida rotator: keep compact height; images crop via object-fit:cover */
.hero.hero--page[data-hero-florida]{
  min-height:auto;
  align-items:center;
  text-align:center;
}
.hero.hero--page[data-hero-florida] .hero__inner{
  display:flex;
  justify-content:center;
  width:100%;
}
.hero.hero--page[data-hero-florida] .hero__copy{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.hero.hero--page[data-hero-florida] .acts{
  justify-content:center;
}
.hero.hero--page[data-hero-florida] .crumbs ol{
  justify-content:center;
}

/* Tools index hero — meeting photo + Ken Burns; scroll attachment so scale works */
.hero.hero--page[data-tools-hero]{
  overflow:hidden;
}
.hero.hero--page[data-tools-hero] .hero__plate{
  background-position:center 42%;
  background-attachment:scroll !important;
}

/* Breadcrumb */
.crumbs{
  margin-bottom:1.25rem;
  font-size:var(--t-fine);
  letter-spacing:.05em;
  color:var(--silver-dim);
}
.crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:.4rem .6rem; margin:0; padding:0; justify-content:inherit; }
.crumbs li{ margin:0; display:inline-flex; align-items:center; gap:.6rem; }
.crumbs li + li::before{ content:"/"; color:rgba(197,162,83,.6); }
.crumbs a{ color:var(--silver-dim); }
.crumbs a:hover{ color:var(--gold-bright); }
.hero--page .crumbs ol{ justify-content:center; }

/* --------------------------------------------------------------------------
   11. Standards strip
   -------------------------------------------------------------------------- */
.stand{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:1px;
  background:rgba(197,162,83,.24);
  border:1px solid rgba(197,162,83,.24);
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.stand li{
  margin:0;
  padding:clamp(1.5rem,3vw,2.15rem) clamp(1rem,2vw,1.5rem);
  background:var(--navy-deep);
  text-align:center;
}
.stand b{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(1.28rem, 1.1rem + .7vw, 1.85rem);
  font-weight:600;
  color:var(--gold-bright);
  letter-spacing:.03em;
  line-height:1.15;
  margin-bottom:.5rem;
}
.stand span{
  display:block;
  font-size:var(--t-fine);
  line-height:1.55;
  color:var(--silver-dim);
  letter-spacing:.02em;
}
@media (max-width: 860px){
  .stand{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 460px){
  .stand{ grid-template-columns:1fr; }
}

/* --------------------------------------------------------------------------
   12. Cards
   -------------------------------------------------------------------------- */
.grid{
  display:grid;
  gap:var(--gap);
  grid-template-columns:repeat(auto-fit, minmax(min(280px,100%), 1fr));
}
.grid--2{ grid-template-columns:repeat(auto-fit, minmax(min(340px,100%), 1fr)); }
/* Exactly 3: one row on desktop, stack on small — never 2+1 wrap */
.grid--3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
@media (max-width: 880px){
  .grid--3{ grid-template-columns:1fr; }
}
.grid--4{ grid-template-columns:repeat(auto-fit, minmax(min(230px,100%), 1fr)); }

/* Corner ticks: architectural detail instead of a full border.
   Never put .tick on a .plate--card or .tier__plate -- those elements use their
   own ::before/::after for the placeholder art. Put .tick on the wrapper. */
.tick{ position:relative; }
.tick::before,.tick::after{
  content:"";
  position:absolute;
  width:15px; height:15px;
  pointer-events:none;
  border-color:var(--gold);
  border-style:solid;
  border-width:0;
  opacity:.72;
  transition:opacity .18s var(--ease), width .22s var(--ease), height .22s var(--ease);
}
.tick::before{ top:-1px; left:-1px; border-top-width:1px; border-left-width:1px; }
.tick::after{ bottom:-1px; right:-1px; border-bottom-width:1px; border-right-width:1px; }
.tick:hover::before,.tick:hover::after{ opacity:1; width:24px; height:24px; }

.card{
  position:relative;
  display:flex;
  flex-direction:column;
  background:linear-gradient(178deg, rgba(47,78,115,.2), rgba(7,21,40,.34));
  border:1px solid rgba(201,206,214,.14);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:transform .18s var(--ease), border-color .18s var(--ease), box-shadow .18s var(--ease);
}
/* Association Management ops band — solid navy cards over fixed photo */
.tier--photo[data-fixed-photo][data-tier="operations"] .card{
  background:linear-gradient(178deg, rgba(14,38,71,.96), rgba(7,21,40,.98));
}
.card:hover{
  transform:translateY(-2px);
  border-color:rgba(197,162,83,.5);
  box-shadow:var(--shadow-lift);
}
.card__body{
  padding:clamp(1.4rem,2.6vw,2rem);
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  gap:.75rem;
}
.card__body > *{ margin:0; }
.card__body .act--quiet{ margin-top:auto; align-self:flex-start; }
.card h3{ margin:0; }
.card p{ color:#C4CCD8; }

/* Stretch the primary title link across the whole card */
.card--hit{
  cursor:pointer;
}
.card--hit .card__stretch::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
}
.card--hit:hover{
  transform:translateY(-2px);
  border-color:rgba(197,162,83,.5);
  box-shadow:var(--shadow-lift);
}
.card--hit .act--quiet{
  position:relative;
  z-index:0;
  pointer-events:none;
}

/* Blog article figures + simple tables */
.article__figure{
  margin:1.75rem 0;
}
.article__figure img{
  display:block;
  width:100%;
  height:auto;
  border-radius:var(--radius-lg);
}
.article__figure figcaption{
  margin-top:.55rem;
  font-size:var(--t-fine);
  color:var(--silver-dim);
}
.article__table{
  width:100%;
  border-collapse:collapse;
  margin:1.25rem 0;
  font-size:var(--t-body);
}
.article__table th,
.article__table td{
  border:1px solid rgba(201,206,214,.2);
  padding:.65rem .8rem;
  text-align:left;
}
.article__table th{ color:var(--gold); font-weight:700; }

.card--mid{ text-align:center; }
.card--mid .card__body{ align-items:center; }
.card--mid .card__body .act--quiet{ align-self:center; }

.tier--paper .card,.tier--paper-warm .card{
  background:#fff;
  border-color:rgba(16,24,38,.1);
  box-shadow:0 14px 34px -30px rgba(16,24,38,.55);
}
.tier--paper .card:hover,.tier--paper-warm .card:hover{
  border-color:rgba(156,124,54,.5);
  box-shadow:0 22px 44px -28px rgba(16,24,38,.4);
}
.tier--paper .card p,.tier--paper-warm .card p{ color:var(--ink-soft); }

/* Icon plate on cards */
.card__sigil{
  width:64px; height:64px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(197,162,83,.45);
  border-radius:var(--radius);
  color:var(--gold-bright);
  flex:0 0 auto;
}
.card__sigil svg{ width:21px; height:21px; }
.card__sigil img{
  width:40px;
  height:40px;
  display:block;
  object-fit:contain;
}
.tier--paper .card__sigil,.tier--paper-warm .card__sigil{ color:var(--gold-deep); border-color:rgba(156,124,54,.4); }

/* Numbered plates (process) */
.steps{ list-style:none; margin:0; padding:0; display:grid; gap:var(--gap); }
.steps--row{ grid-template-columns:repeat(auto-fit, minmax(min(240px,100%),1fr)); }
/* Exactly 4 steps: never 3+1 wrap — 4 across → 2×2 → stack */
.steps--4{
  grid-template-columns:repeat(4, minmax(0,1fr));
}
@media (max-width: 1000px){
  .steps--4{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px){
  .steps--4{ grid-template-columns:1fr; }
}
.steps li{ margin:0; }
.steps .n{
  display:block;
  font-family:var(--font-display);
  font-size:1.5rem;
  font-weight:600;
  color:var(--gold);
  letter-spacing:.06em;
  padding-bottom:.6rem;
  margin-bottom:.9rem;
  border-bottom:1px solid rgba(197,162,83,.34);
}
.steps h3{ font-size:var(--t-h4); letter-spacing:.05em; margin-bottom:.55rem; }
.steps p{ font-size:var(--t-small); color:#C4CCD8; }
.tier--paper .steps p,.tier--paper-warm .steps p{ color:var(--ink-soft); }
.tier--paper .steps .n,.tier--paper-warm .steps .n{ color:var(--gold-deep); }

/* Split layout: copy beside a media plate (asymmetric) */
.split{
  display:grid;
  gap:clamp(2rem, 5vw, 4rem);
  align-items:center;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, .95fr);
}
.split--flip .split__media{ order:-1; }
.split--lean{ grid-template-columns:minmax(0, 1.3fr) minmax(0, .7fr); }
.split__media{ position:relative; }
.split__media .plate--card{ border-radius:var(--radius-lg); border-bottom:0; }
.split__media .tick::before,.split__media .tick::after{ width:26px; height:26px; }
@media (max-width: 880px){
  .split{ grid-template-columns:1fr; }
  .split--flip .split__media{ order:0; }
}

/* Checklist */
.ledger{ list-style:none; margin:0; padding:0; display:grid; gap:.85rem; }
.ledger--2{ grid-template-columns:repeat(auto-fit, minmax(min(260px,100%),1fr)); gap:.85rem clamp(1.5rem,3vw,2.5rem); }
.ledger li{
  position:relative;
  margin:0;
  padding-left:1.9rem;
  font-size:var(--t-small);
  line-height:1.62;
}
.ledger li::before{
  content:"";
  position:absolute;
  left:.3rem; top:.62em;
  width:6px; height:6px;
  background:var(--gold);
  transform:rotate(45deg);
}
.ledger li b{ display:block; color:#E7EBF0; letter-spacing:.02em; }
.tier--paper .ledger li b,.tier--paper-warm .ledger li b{ color:var(--ink); }

/* Centred lists drop the left marker so nothing floats away from the text */
.mid .ledger li,.ledger--mid li{ padding-left:0; }
.mid .ledger li::before,.ledger--mid li::before{ content:none; }

/* Geography column: gold-ruled heading over a clean centred list */
.geo{ text-align:center; }
.geo h4{
  color:var(--gold);
  padding-bottom:.75rem;
  margin-bottom:1rem;
  border-bottom:1px solid rgba(197,162,83,.36);
}
.geo ul{ list-style:none; margin:0; padding:0; }
.geo li{ margin:0; padding:.28rem 0; font-size:var(--t-small); color:#D2D9E2; }
.geo a{ color:inherit; }
.geo a:hover{ color:var(--gold-bright); }
.tier--paper .geo h4,.tier--paper-warm .geo h4{ color:var(--gold-deep); border-bottom-color:rgba(156,124,54,.4); }
.tier--paper .geo li,.tier--paper-warm .geo li{ color:var(--ink-soft); }
.tier--paper .geo a:hover,.tier--paper-warm .geo a:hover{ color:var(--gold-deep); }

/* Pull quote with gold spine */
.quote{
  margin:0;
  padding:clamp(1.25rem,2.6vw,2rem) 0 clamp(1.25rem,2.6vw,2rem) clamp(1.35rem,3vw,2.25rem);
  border-left:2px solid var(--gold);
}
.quote p{
  font-family:var(--font-display);
  font-size:clamp(1.12rem, 1rem + .55vw, 1.45rem);
  line-height:1.5;
  color:#E9EDF2;
  font-weight:500;
}
.quote footer{
  margin-top:1rem;
  font-size:var(--t-fine);
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--silver-dim);
}
.tier--paper .quote p,.tier--paper-warm .quote p{ color:var(--ink); }
.tier--paper .quote footer,.tier--paper-warm .quote footer{ color:#6a7690; }

/* Panel / well */
.panel{
  background:linear-gradient(170deg, rgba(47,78,115,.26), rgba(7,21,40,.5));
  border:1px solid rgba(197,162,83,.3);
  border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3.5vw,2.75rem);
}
.tier--paper .panel,.tier--paper-warm .panel{
  background:#fff;
  border-color:rgba(156,124,54,.34);
  box-shadow:0 18px 44px -34px rgba(16,24,38,.5);
}
.panel--mid{ text-align:center; }
.panel--mid > *{ margin-left:auto; margin-right:auto; }

/* Table */
.slab{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.slab table{ width:100%; min-width:520px; border-collapse:collapse; font-size:var(--t-small); }
.slab th,.slab td{ padding:.85rem 1rem; text-align:left; border-bottom:1px solid rgba(201,206,214,.13); }
.slab th{
  font-family:var(--font-body);
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--gold);
  border-bottom-color:rgba(197,162,83,.42);
}
.slab tbody tr:last-child td{ border-bottom:0; }
.tier--paper .slab th,.tier--paper-warm .slab th{ color:var(--gold-deep); }
.tier--paper .slab td,.tier--paper-warm .slab td{ border-bottom-color:rgba(16,24,38,.1); }

/* Disclosure (FAQ) */
.ask{
  border-top:1px solid rgba(201,206,214,.14);
}
.ask:last-of-type{ border-bottom:1px solid rgba(201,206,214,.14); }
.ask summary{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.15rem .25rem;
  cursor:pointer;
  list-style:none;
  font-family:var(--font-display);
  font-size:var(--t-h4);
  font-weight:600;
  color:#E9EDF2;
  letter-spacing:.03em;
  transition:color .18s var(--ease);
}
.ask summary::-webkit-details-marker{ display:none; }
.ask summary:hover{ color:var(--gold-bright); }
.ask summary::after{
  content:"";
  margin-left:auto;
  flex:0 0 auto;
  width:9px; height:9px;
  margin-top:.5em;
  border-right:1.5px solid var(--gold);
  border-bottom:1.5px solid var(--gold);
  transform:rotate(45deg);
  transition:transform .22s var(--ease);
}
.ask[open] summary::after{ transform:rotate(-135deg); }
.ask__body{ padding:0 .25rem 1.35rem; font-size:var(--t-small); }
.ask__body p{ margin-bottom:.9em; }
.tier--paper .ask,.tier--paper-warm .ask{ border-top-color:rgba(16,24,38,.12); }
.tier--paper .ask:last-of-type,.tier--paper-warm .ask:last-of-type{ border-bottom-color:rgba(16,24,38,.12); }
.tier--paper .ask summary,.tier--paper-warm .ask summary{ color:var(--ink); }

/* --------------------------------------------------------------------------
   13. Forms
   -------------------------------------------------------------------------- */
.field{ display:block; margin-bottom:1.15rem; text-align:left; }
.field > span:not(.field__hint){
  display:block;
  margin-bottom:.45rem;
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--gold);
}
.tier--paper .field > span:not(.field__hint),
.tier--paper-warm .field > span:not(.field__hint){ color:var(--gold-deep); }
.field .req{ color:var(--gold-bright); letter-spacing:0; }
.field__hint{
  display:block;
  margin-top:.4rem;
  font-size:var(--t-fine);
  line-height:1.5;
  color:var(--silver-dim);
  letter-spacing:0;
  text-transform:none;
  font-weight:400;
}

input[type=text],input[type=email],input[type=tel],input[type=number],
input[type=url],input[type=search],select,textarea{
  width:100%;
  min-height:48px;
  padding:.7rem .9rem;
  background:rgba(4,11,21,.55);
  border:1px solid rgba(201,206,214,.24);
  border-radius:var(--radius);
  color:#EEF1F5;
  font-family:var(--font-body);
  font-size:var(--t-body);
  line-height:1.5;
  transition:border-color .18s var(--ease), background-color .18s var(--ease), box-shadow .18s var(--ease);
  appearance:none;
}
textarea{ min-height:150px; resize:vertical; }
select{
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 20px) 52%, calc(100% - 14px) 52%;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right:2.5rem;
}
input::placeholder,textarea::placeholder{ color:rgba(154,166,182,.72); }
input:focus,select:focus,textarea:focus{
  border-color:var(--gold);
  background:rgba(4,11,21,.75);
  box-shadow:0 0 0 3px rgba(197,162,83,.16);
  outline:none;
}
.tier--paper input,.tier--paper select,.tier--paper textarea,
.tier--paper-warm input,.tier--paper-warm select,.tier--paper-warm textarea{
  background:#fff;
  border-color:rgba(16,24,38,.2);
  color:var(--ink);
}
.tier--paper input:focus,.tier--paper select:focus,.tier--paper textarea:focus,
.tier--paper-warm input:focus,.tier--paper-warm select:focus,.tier--paper-warm textarea:focus{
  background:#fff;
  border-color:var(--gold-deep);
}
.tier--paper input::placeholder,.tier--paper-warm input::placeholder{ color:#8c96a8; }

.field-row{
  display:grid;
  gap:0 clamp(1rem,2.5vw,1.5rem);
  grid-template-columns:repeat(auto-fit, minmax(min(220px,100%),1fr));
}

.consent{
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  font-size:var(--t-fine);
  line-height:1.6;
  color:var(--silver-dim);
  margin-bottom:1.25rem;
  text-align:left;
}
.consent input[type=checkbox]{
  width:20px; height:20px;
  min-height:0;
  margin:.15rem 0 0;
  flex:0 0 auto;
  accent-color:var(--gold);
}
.tier--paper .consent,.tier--paper-warm .consent{ color:#6a7690; }

/* Honeypot */
.trap{
  position:absolute !important;
  left:-9999px !important;
  width:1px; height:1px;
  overflow:hidden;
}

.form-note{
  margin-top:1.15rem;
  padding:.9rem 1.1rem;
  border-radius:var(--radius);
  font-size:var(--t-small);
  border:1px solid transparent;
  display:none;
}
.form-note.is-on{ display:block; }
.form-note.is-good{ background:rgba(31,79,70,.24); border-color:rgba(31,79,70,.7); color:#CFE6DF; }
.form-note.is-bad{ background:rgba(142,59,46,.2); border-color:rgba(142,59,46,.7); color:#F0D4CE; }
.tier--paper .form-note.is-good,.tier--paper-warm .form-note.is-good{ background:rgba(31,79,70,.1); color:#1b4a41; }
.tier--paper .form-note.is-bad,.tier--paper-warm .form-note.is-bad{ background:rgba(142,59,46,.09); color:#7c3327; }

/* --------------------------------------------------------------------------
   14. Calculator shell
   -------------------------------------------------------------------------- */
.calc{
  display:grid;
  gap:clamp(1.5rem, 3.5vw, 2.75rem);
  grid-template-columns:minmax(0, .92fr) minmax(0, 1.08fr);
  align-items:start;
}
@media (max-width: 940px){ .calc{ grid-template-columns:1fr; } }

.calc__panel{
  background:linear-gradient(170deg, rgba(47,78,115,.3), rgba(4,11,21,.55));
  border:1px solid rgba(201,206,214,.18);
  border-radius:var(--radius-lg);
  padding:clamp(1.35rem,2.8vw,2rem);
}
.calc__panel h2,.calc__panel h3{ font-size:var(--t-h4); letter-spacing:.09em; text-transform:uppercase; font-family:var(--font-body); color:var(--gold); margin-bottom:1.35rem; }
.calc__panel .field:last-of-type{ margin-bottom:0; }
/* Numeric inputs need far less room than a name or email field, so paired rows
   inside the panel are allowed to sit tighter than the site-wide form default. */
.calc__panel .field-row{ grid-template-columns:repeat(auto-fit, minmax(min(168px,100%),1fr)); }
.calc__panel .field-row .field__hint{ min-height:1.2em; }
.calc__acts{ display:flex; gap:.6rem; margin-top:1.5rem; }

/* Sits under the input panel so the left column carries its own weight on wide
   screens, and explains the arithmetic rather than asking for trust. */
.calc__method{
  margin-top:1.5rem;
  padding:1.25rem 1.4rem;
  border-left:2px solid rgba(197,162,83,.42);
  background:rgba(4,11,21,.3);
  border-radius:0 var(--radius) var(--radius) 0;
}
.calc__method h3{
  font-family:var(--font-body);
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:.85rem;
}
.calc__method p{
  font-size:var(--t-small);
  line-height:1.75;
  color:var(--silver-dim);
}
.calc__method p + p{ margin-top:.8rem; }
.calc__method b{ color:var(--paper); font-weight:700; }

.calc__out{
  position:sticky;
  top:calc(var(--crest-slim) + 20px);
  background:linear-gradient(170deg, rgba(47,78,115,.2), rgba(7,21,40,.6));
  border:1px solid rgba(197,162,83,.44);
  border-radius:var(--radius-lg);
  padding:clamp(1.35rem,2.8vw,2rem);
}
@media (max-width: 940px){ .calc__out{ position:static; } }

.calc__head{
  display:block;
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  padding-bottom:.85rem;
  margin-bottom:1.35rem;
  border-bottom:1px solid rgba(197,162,83,.34);
}

.calc__hero{ text-align:center; margin-bottom:1.5rem; }
.calc__hero .v{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(2.1rem, 1.5rem + 2.6vw, 3.3rem);
  font-weight:600;
  line-height:1.05;
  color:#F1F4F8;
  letter-spacing:.01em;
  font-variant-numeric:tabular-nums;
}
.calc__hero .k{
  display:block;
  margin-top:.6rem;
  font-size:var(--t-fine);
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--silver-dim);
}

.calc__rows{ list-style:none; margin:0; padding:0; }
.calc__rows li{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1rem;
  margin:0;
  padding:.72rem 0;
  border-bottom:1px solid rgba(201,206,214,.11);
  font-size:var(--t-small);
}
.calc__rows li:last-child{ border-bottom:0; }
.calc__rows .k{ color:var(--silver-dim); }
.calc__rows .v{
  font-family:var(--font-display);
  font-size:1.1rem;
  color:#EEF1F5;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.calc__read{
  margin-top:1.35rem;
  padding:1rem 1.15rem;
  border-left:2px solid var(--gold);
  background:rgba(197,162,83,.08);
  font-size:var(--t-small);
  line-height:1.62;
  color:#DDE3EB;
}
.calc__read.is-good{ border-left-color:#3E9A85; background:rgba(31,79,70,.2); }
.calc__read.is-watch{ border-left-color:var(--amber); background:rgba(169,118,42,.16); }
.calc__read.is-risk{ border-left-color:#C4614E; background:rgba(142,59,46,.18); }

.calc__foot{
  margin-top:1.5rem;
  padding-top:1.35rem;
  border-top:1px solid rgba(201,206,214,.13);
}
.calc__foot .act{ width:100%; }
.calc__foot .fine{ margin-top:1rem; }

/* Capped at three columns rather than auto-fit: the hub runs five of these and
   four across leaves a single orphan on the second row. */
.calc__peers{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.75rem;
  grid-template-columns:1fr;
}
@media (min-width: 620px){ .calc__peers{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width: 980px){ .calc__peers{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.calc__peers li{ margin:0; }
.calc__peers a{
  display:block;
  padding:1rem 1.15rem;
  border:1px solid rgba(201,206,214,.16);
  border-radius:var(--radius);
  color:#E4E8EE;
  font-size:var(--t-small);
  transition:border-color .18s var(--ease), color .18s var(--ease), background-color .18s var(--ease);
}
.calc__peers a:hover{ border-color:var(--gold); color:var(--gold-bright); background:rgba(197,162,83,.07); }
.calc__peers b{ display:block; font-family:var(--font-display); letter-spacing:.04em; margin-bottom:.2rem; }
.calc__peers a:hover b{ color:var(--gold-bright); }

/* The peers list also runs on light bands, where the dark-band colours invert */
.tier--paper .calc__peers a,.tier--paper-warm .calc__peers a{
  color:#59637a;
  background:#fff;
  border-color:rgba(16,24,38,.13);
}
.tier--paper .calc__peers b,.tier--paper-warm .calc__peers b{ color:var(--navy); }
.tier--paper .calc__peers a:hover,.tier--paper-warm .calc__peers a:hover{
  color:var(--ink);
  border-color:var(--gold-deep);
  background:#fff;
}
.tier--paper .calc__peers a:hover b,.tier--paper-warm .calc__peers a:hover b{ color:var(--gold-deep); }

/* --------------------------------------------------------------------------
   15. Blog
   -------------------------------------------------------------------------- */
.reading{
  display:grid;
  gap:clamp(2rem, 4.5vw, 3.5rem);
  grid-template-columns:minmax(0, 1fr) minmax(0, 320px);
  align-items:start;
}
@media (max-width: 1000px){ .reading{ grid-template-columns:1fr; } }

.post-list{ display:grid; gap:clamp(1.25rem,2.5vw,1.85rem); }

.post{
  display:grid;
  grid-template-columns:minmax(0,220px) minmax(0,1fr);
  gap:clamp(1rem,2.4vw,1.75rem);
  align-items:stretch;
  background:linear-gradient(178deg, rgba(47,78,115,.18), rgba(7,21,40,.32));
  border:1px solid rgba(201,206,214,.14);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:border-color .18s var(--ease), transform .18s var(--ease), box-shadow .18s var(--ease);
}
.post:hover{ border-color:rgba(197,162,83,.5); transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.post .plate--card{ aspect-ratio:auto; height:100%; min-height:170px; border-bottom:0; }
.post__body{ padding:clamp(1.15rem,2.2vw,1.6rem) clamp(1.15rem,2.2vw,1.6rem) clamp(1.15rem,2.2vw,1.6rem) 0; }
.post h2,.post h3{ font-size:var(--t-h3); margin-bottom:.55rem; }
.post h2 a,.post h3 a{ color:#EEF1F5; }
.post h2 a:hover,.post h3 a:hover{ color:var(--gold-bright); }
.post__meta{
  font-size:var(--t-fine);
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--silver-dim);
  margin-bottom:.7rem;
}
.post p{ font-size:var(--t-small); color:#C4CCD8; margin-bottom:.9rem; }
@media (max-width: 620px){
  .post{ grid-template-columns:1fr; }
  .post .plate--card{ aspect-ratio:16/9; min-height:0; }
  .post__body{ padding:clamp(1.15rem,2.2vw,1.6rem); }
}

.rail{ display:grid; gap:1.5rem; }
.rail__card{
  background:rgba(7,21,40,.5);
  border:1px solid rgba(201,206,214,.14);
  border-radius:var(--radius-lg);
  padding:1.35rem;
}
.rail__card h2,.rail__card h3{
  font-family:var(--font-body);
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1rem;
}
.rail__card ul{ list-style:none; margin:0; padding:0; }
.rail__card li{ margin:0; padding:.55rem 0; border-bottom:1px solid rgba(201,206,214,.1); font-size:var(--t-small); }
.rail__card li:last-child{ border-bottom:0; }
.rail__card a{ color:#E4E8EE; }
.rail__card a:hover{ color:var(--gold-bright); }

.rail__find{ display:flex; gap:.5rem; }
.rail__find input{ min-height:44px; }
.rail__find button{ min-height:44px; padding:.6rem 1rem; flex:0 0 auto; }

.rail__social iframe{ border:0; width:100%; display:block; }
.rail__fallback{ text-align:center; padding:.5rem 0 .25rem; }
.rail__fallback img{ width:54px; margin:0 auto 1rem; }
.rail__fallback p{ font-size:var(--t-small); margin-bottom:1.1rem; }

.article{ max-width:var(--prose); }
.article > * + *{ margin-top:1.15em; }
.article h2{ font-size:var(--t-h2); margin-top:2.25em; }
.article h3{ font-size:var(--t-h3); margin-top:1.9em; }
.article > h2:first-child,.article > h3:first-child{ margin-top:0; }
.article ul,.article ol{ padding-left:1.35em; }
.article .quote{ margin:2em 0; }
.article__meta{
  margin-bottom:1.75rem;
  padding-bottom:1.25rem;
  border-bottom:1px solid rgba(201,206,214,.14);
  font-size:var(--t-fine);
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--silver-dim);
}

/* --------------------------------------------------------------------------
   15b. Sitewide alignment (MASTER 2026-10-20)
   Default: center section titles + prose (no justify).
   Keep left: home hero, FAQ questions, ledgers/bullets, blog cards, blog
   article body, contact “Send us the details”, tool calculator UI.
   -------------------------------------------------------------------------- */

/* Center section content by default (shell already centers the column) */
.tier .tier__inner{
  text-align:center;
}
.tier .tier__inner .lead,
.tier .tier__inner .head .lead,
.tier .tier__inner > p,
.tier .head p{
  margin-left:auto;
  margin-right:auto;
}
.tier .acts{
  justify-content:center;
}
/* Engraved rules centre with the title (overrides .rule--left in centred bands) */
.tier .rule--left{
  margin-left:auto;
  margin-right:auto;
  justify-content:center;
  width:min(300px, 58%);
}

/* Prose: centre everywhere (justify removed — looked uneven in spots) */
.tier .tier__inner p,
.tier .tier__inner .lead,
.tier .card__body > p,
.tier .steps p,
.tier .ask__body p{
  text-align:center;
}

/* Split: centre title + prose in the copy column; bullets stay left & full-width */
.split > :not(.split__media){
  text-align:center;
}
.split > :not(.split__media) .lead,
.split > :not(.split__media) > p,
.split > :not(.split__media) > h2,
.split > :not(.split__media) > h3{
  margin-left:auto;
  margin-right:auto;
}
.split .acts{ justify-content:center; }
.split .ledger{
  text-align:left;
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}

/* Cards / boxes: headings + body centred; ledgers left inside */
.card,
.card__body{
  text-align:center;
}
.card__body{ align-items:center; }
.card__body .act--quiet{ align-self:center; }
.card .ledger{
  text-align:left;
  width:100%;
  align-self:stretch;
}

/* Steps: numbers left; headings + paragraphs centre */
.steps li{ text-align:center; }
.steps .n{ text-align:left; }
.steps h3{ text-align:center; }

/* FAQ: questions stay left; answers centre */
.ask{ text-align:left; }
.ask summary{ text-align:left; }
.ask__body{ text-align:center; }
.ask__body p{ text-align:center; }

/* Ledgers / bullets — always left, full column width */
.ledger,
.ledger li{
  text-align:left;
}
.mid .ledger,
.ledger--mid{
  text-align:left;
}
/* Keep diamond markers even inside centred sections */
.mid .ledger li,
.ledger--mid li{
  padding-left:1.9rem;
}
.mid .ledger li::before,
.ledger--mid li::before{
  content:"";
  position:absolute;
  left:.3rem; top:.62em;
  width:6px; height:6px;
  background:var(--gold);
  transform:rotate(45deg);
}

/* Homepage hero stays left (inner page heroes already .hero--page centre) */
.hero:not(.hero--page){
  text-align:left;
}
.hero:not(.hero--page) .hero__copy,
.hero:not(.hero--page) .lead,
.hero:not(.hero--page) .acts{
  margin-left:0;
  margin-right:0;
  text-align:left;
  justify-content:flex-start;
}

/* Blog index cards — left on purpose */
.post,
.post__body{
  text-align:left !important;
}
.post__body p{
  text-align:left !important;
}

/* Blog article + sidebar reading column — left */
.reading,
.article,
.article p,
.article h2,
.article h3,
.rail{
  text-align:left;
}
.article p{
  text-align:left !important;
}

/* Contact “Send us the details” column — left */
[data-tier="reach"] .split > :first-child,
[data-tier="reach"] .split > :first-child h2,
[data-tier="reach"] .split > :first-child h3,
[data-tier="reach"] .split > :first-child .lead,
[data-tier="reach"] .split > :first-child p{
  text-align:left !important;
  margin-left:0;
  margin-right:0;
}
[data-tier="reach"] .split > :first-child .rule--left{
  margin-left:0;
  justify-content:flex-start;
  width:min(220px,52%);
}
[data-tier="reach"] .split > :first-child .acts{
  justify-content:flex-start;
}

/* Tool calculator UI — left (marketing bands on tool pages still centre) */
[data-tier="calculator"],
[data-tier="calculator"] .tier__inner,
.rig,
.calc,
[data-tool]{
  text-align:left !important;
}
[data-tier="calculator"] p,
[data-tier="calculator"] .lead,
.rig p,
.calc p{
  text-align:left !important;
  margin-left:0;
  margin-right:0;
}
[data-tier="calculator"] .acts,
.rig .acts,
.calc .acts{
  justify-content:flex-start;
}

/* Quotes keep left spine */
.quote{ text-align:left; }

/* Tables stay left */
.slab th,.slab td{ text-align:left; }

/* --------------------------------------------------------------------------
   16. Footer
   -------------------------------------------------------------------------- */
.foot{
  background:var(--navy-deep);
  border-top:1px solid rgba(197,162,83,.24);
  padding:clamp(3rem,6vw,4.75rem) 0 1.75rem;
}
.foot__inner{ max-width:var(--shell); margin:0 auto; padding:0 var(--edge); }
.foot__cols{
  display:grid;
  gap:clamp(1.75rem,4vw,3rem);
  grid-template-columns:minmax(0,1.25fr) repeat(3, minmax(0,1fr));
}
/* Desktop 4-col: brand left · mid cols centre · reach right */
.foot__cols > :nth-child(1){ text-align:left; }
.foot__cols > :nth-child(2),
.foot__cols > :nth-child(3){ text-align:center; }
.foot__cols > :nth-child(4){ text-align:right; }
@media (max-width: 940px){
  .foot__cols{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  /* 2-col: 1+3 left · 2+4 right */
  .foot__cols > :nth-child(1),
  .foot__cols > :nth-child(3){ text-align:left; }
  .foot__cols > :nth-child(2),
  .foot__cols > :nth-child(4){ text-align:right; }
}
@media (max-width: 520px){
  .foot__cols{ grid-template-columns:1fr; }
  .foot__cols > *{ text-align:center; }
  .foot__brand .foot__lockup{ margin-left:auto; margin-right:auto; }
}

.foot h2{
  font-family:var(--font-body);
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.15rem;
}
.foot ul{ list-style:none; margin:0; padding:0; }
.foot li{ margin:0; }
.foot li a{
  display:block;
  padding:.34rem 0;
  color:var(--silver);
  font-size:var(--t-small);
}
.foot li a:hover{ color:var(--gold-bright); }

.foot__brand img{ width:clamp(46px,5vw,58px); margin-bottom:1.15rem; }
.foot__brand .crest__name{ font-size:1.12rem; margin-bottom:.4rem; }
.foot__brand .tag{
  font-family:var(--font-display);
  font-size:var(--t-small);
  color:var(--gold);
  letter-spacing:.06em;
  margin:.75rem 0 1.15rem;
}
.foot__brand p{ font-size:var(--t-fine); color:var(--silver-dim); line-height:1.65; }
.foot__reach a{ display:block; padding:.3rem 0; color:#E4E8EE; font-size:var(--t-small); }
.foot__reach a:hover{ color:var(--gold-bright); }
.foot__reach .num{ font-family:var(--font-display); font-size:1.24rem; letter-spacing:.05em; }

.foot__legal{
  margin-top:clamp(2.25rem,4.5vw,3.25rem);
  padding-top:1.5rem;
  border-top:1px solid rgba(197,162,83,.26);
  text-align:center;
}
.foot__legal p{
  margin:0 0 .5rem;
  font-size:var(--t-fine);
  color:var(--silver-dim);
  letter-spacing:.02em;
}
.foot__legal a{ color:var(--silver-dim); text-decoration:underline; text-underline-offset:3px; }
.foot__legal a:hover{ color:var(--gold-bright); }
.foot__legal .maker{ color:#7c879a; }
/* Maker credit — same color as surrounding text; no underline/decoration */
.foot__legal .maker__link,
.foot__legal .maker__link:hover,
.foot__legal .maker__link:focus{
  color:inherit;
  text-decoration:none;
  border:0;
  box-shadow:none;
}

/* --------------------------------------------------------------------------
   17. Motion
   -------------------------------------------------------------------------- */
[data-rise]{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .52s var(--ease), transform .52s var(--ease);
  will-change:opacity, transform;
}
[data-rise].is-in{ opacity:1; transform:none; will-change:auto; }

.count{ font-variant-numeric:tabular-nums; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  [data-rise]{ opacity:1 !important; transform:none !important; }
  .rule span{ transform:scaleX(1) !important; }
  .rule i{ transform:rotate(45deg) scale(1) !important; }
  .card:hover,.post:hover{ transform:none; }
  .tier__plate[style*="--plate-img"]{ background-attachment:scroll; }
}

/* --------------------------------------------------------------------------
   18. Narrow-viewport chrome adjustments
   -------------------------------------------------------------------------- */
@media (max-width: 1080px){
  .crest__word{ max-width:210px; }
  .crest__kind{ letter-spacing:.26em; }
}

@media (max-width: 780px){
  .crest__kind{ display:none; }
  .crest__word .wordrule{ margin:.3rem 0 0; }
  .crest__phone .num{ display:none; }
  .crest__phone{
    width:44px;
    justify-content:center;
    padding-left:0;
    border-left:0;
    border:1px solid rgba(197,162,83,.36);
    border-radius:var(--radius);
  }
  .crest__phone svg{ width:17px; height:17px; opacity:1; }
  .crest__consult .full{ display:none; }
  .crest__consult .short{ display:inline; }
  .crest__consult{ padding:.7rem 1rem; min-height:46px; font-size:var(--t-fine); }
}

@media (max-width: 460px){
  .crest__word{ display:none; }
  .crest__inner{ gap:.5rem; }
  .crest__left{ gap:.5rem; }
  .crest__right{ gap:.4rem; }
  .crest__consult{ padding:.7rem .85rem; letter-spacing:.05em; }
}

@media (max-width: 620px){
  .hero{ min-height:auto; }
  .acts .act{ width:100%; }
  .acts--mid .act{ width:100%; }
  .gate__tools{ columns:1; }
}

/* --------------------------------------------------------------------------
   19. Print
   -------------------------------------------------------------------------- */
@media print{
  :root{ --crest-h:0; }
  body{ background:#fff; color:#000; font-size:11pt; line-height:1.45; }
  .crest,.gate,.gate__scrim,.ascend,.jump-main,.foot__cols,.acts,.calc__foot .act{ display:none !important; }
  .tier,.hero{ padding:.5rem 0 !important; min-height:0 !important; background:#fff !important; }
  .tier__plate,.tier__wash,.plate--card{ display:none !important; }
  h1,h2,h3,h4{ color:#000 !important; page-break-after:avoid; }
  .calc{ grid-template-columns:1fr !important; }
  .calc__out,.calc__panel,.panel,.card{ border-color:#999 !important; background:#fff !important; box-shadow:none !important; break-inside:avoid; }
  .calc__hero .v,.calc__rows .v{ color:#000 !important; }
  .calc__read{ background:#f4f4f4 !important; color:#000 !important; }
  a{ color:#000 !important; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:9pt; color:#555; }
}


/* ==========================================================================
   20. Brand assets, depth and motion  (added in the visual-polish pass)
   The real Ambriel lockup is a raster with a transparent ground: silver/gold
   artwork for navy surfaces, a navy-ink cut for paper surfaces.
   ========================================================================== */

/* --- Logo sizing ---------------------------------------------------------- */
.crest__mark{
  max-width:none;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.45));
  transform-origin:left center;
  transition:height .28s var(--ease), transform .28s var(--ease), filter .28s var(--ease);
}
.crest__brand:hover .crest__mark{ filter:drop-shadow(0 3px 14px rgba(197,162,83,.4)); }

.foot__brand .foot__lockup{
  display:block;
  width:clamp(190px, 17vw, 246px);
  height:auto;
  margin-bottom:1.15rem;
}

/* Navy-ink mark wherever the ground is light */
.tier--paper .brandmark,
.tier--paper-warm .brandmark,
.rail__fallback img,
.inkmark{ }
.rail__fallback img{ width:132px; height:auto; }

/* --- Scroll progress hairline under the masthead -------------------------- */
.progress{
  position:fixed;
  top:0; left:0;
  z-index:120;
  height:2px;
  width:100%;
  transform:scaleX(0);
  transform-origin:left center;
  background:linear-gradient(90deg, var(--gold-deep), var(--gold-bright) 55%, var(--gold));
  box-shadow:0 0 12px rgba(197,162,83,.5);
  pointer-events:none;
  will-change:transform;
}

/* --- Ken Burns + parallax ------------------------------------------------- */
@property --kbs{ syntax:'<number>';  inherits:false; initial-value:1; }
@property --kbx{ syntax:'<length>';  inherits:false; initial-value:0px; }

@keyframes kenburns{
  from{ --kbs:1.03; --kbx:-14px; }
  to  { --kbs:1.14; --kbx:16px;  }
}

.hero__plate{
  --pxy:0px;
  transform:translate3d(var(--kbx), var(--pxy), 0) scale(var(--kbs));
  animation:kenburns 38s var(--ease) infinite alternate;
  will-change:transform;
}
/* A fixed background cannot be transformed; the hero owns its own motion. */
.hero__plate[style*="--plate-img"]{ background-attachment:scroll; }

.tier__plate{ --pxy:0px; }
.tier--parallax .tier__plate{
  transform:translate3d(0, var(--pxy), 0) scale(1.08);
  will-change:transform;
}
.tier--parallax .tier__plate[style*="--plate-img"]{ background-attachment:scroll; }

/* Hero gets a deeper, more cinematic cover and a lit horizon */
.hero .tier__wash{
  background:
    radial-gradient(120% 90% at 18% 30%, rgba(4,11,21,.42) 0%, rgba(4,11,21,.8) 62%, rgba(4,11,21,.94) 100%),
    linear-gradient(180deg, rgba(4,11,21,.72) 0%, rgba(4,11,21,.42) 42%, rgba(7,21,40,.92) 100%);
}
.hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(197,162,83,.6) 30%, rgba(197,162,83,.6) 70%, transparent);
  z-index:11;
}

/* --- Hero scroll cue ------------------------------------------------------ */
.cue{
  position:absolute;
  left:50%; bottom:clamp(1.25rem, 3vh, 2.25rem);
  z-index:12;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.55rem;
  transform:translateX(-50%);
  color:var(--silver-dim);
  font-size:.6875rem;
  font-weight:700;
  letter-spacing:.26em;
  text-transform:uppercase;
  text-decoration:none;
  opacity:0;
  animation:cuein .9s var(--ease) 1.1s forwards;
}
.cue:hover{ color:var(--gold-bright); }
.cue i{
  display:block;
  width:1px; height:46px;
  background:linear-gradient(180deg, rgba(197,162,83,0), var(--gold) 70%, rgba(197,162,83,0));
  position:relative;
  overflow:hidden;
}
.cue i::after{
  content:"";
  position:absolute;
  left:-1px; top:0;
  width:3px; height:3px;
  border-radius:50%;
  background:var(--gold-bright);
  box-shadow:0 0 8px var(--gold-bright);
  animation:cuedrop 2.6s var(--ease) infinite;
}
@keyframes cuein{ to{ opacity:1; } }
@keyframes cuedrop{
  0%{ transform:translateY(-4px); opacity:0; }
  30%{ opacity:1; }
  100%{ transform:translateY(46px); opacity:0; }
}

/* --- Rise: richer entrance vocabulary ------------------------------------- */
[data-rise]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .72s var(--ease), transform .72s var(--ease);
}
[data-rise].is-in{ opacity:1; transform:none; }
[data-rise="left"]{ transform:translateX(-26px); }
[data-rise="right"]{ transform:translateX(26px); }
[data-rise="lift"]{ transform:translateY(34px) scale(.985); }
[data-rise="fade"]{ transform:none; }
[data-rise].is-in{ transform:none; }

/* Media panels settle with a slow reveal of the frame */
.split__media[data-rise]{ transform:translateY(28px) scale(.98); }

/* --- Gold sheen sweep on the primary action ------------------------------- */
.act--fill{ position:relative; overflow:hidden; isolation:isolate; }
.act--fill::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(105deg, transparent 32%, rgba(255,255,255,.55) 48%, transparent 64%);
  transform:translateX(-120%);
  transition:transform .62s var(--ease);
}
.act--fill:hover::after{ transform:translateX(120%); }

/* --- Cards: a touch more depth and a warmer hover ------------------------- */
.card{ transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease); }
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lift); }
.card .plate--card{ overflow:hidden; }
.card .plate--card[style*="--plate-img"]{ transition:transform .7s var(--ease); }
.card:hover .plate--card[style*="--plate-img"]{ transform:scale(1.045); }

/* Standards strip: gold seam lights up on hover */
.stand li{ transition:background-color .3s var(--ease); }
.stand li:hover{ background:rgba(197,162,83,.06); }

/* --- Masthead: glass and a gold underline once condensed ------------------ */
.crest{ backdrop-filter:saturate(140%) blur(10px); -webkit-backdrop-filter:saturate(140%) blur(10px); }
.crest.is-condensed{ box-shadow:0 14px 34px -26px rgba(2,8,16,.95); }

/* --- Section seams -------------------------------------------------------- */
.tier--edge-top{ position:relative; }
.tier--edge-top::before{
  content:"";
  position:absolute;
  top:0; left:50%;
  transform:translateX(-50%);
  width:min(560px, 76%);
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(197,162,83,.45), transparent);
}

@media (prefers-reduced-motion: reduce){
  .hero__plate{ animation:none; transform:none; }
  .tier--parallax .tier__plate{ transform:none; }
  .cue{ animation:none; opacity:1; }
  .cue i::after{ animation:none; }
  [data-rise]{ opacity:1; transform:none; transition:none; }
  .act--fill::after{ display:none; }
  .progress{ display:none; }
}

/* --- Hero placeholder: previews the golden-hour aerial it is waiting for --- */
.hero__plate:not([style*="--plate-img"]){
  background-image:
    radial-gradient(64% 46% at 26% 96%, rgba(197,162,83,.30) 0%, rgba(197,162,83,.10) 42%, transparent 72%),
    radial-gradient(70% 58% at 84% 6%,  rgba(66,104,150,.42) 0%, transparent 70%),
    linear-gradient(176deg, #0A1B31 0%, #10274a 46%, #0B1F3A 100%);
}
/* Clearance so the scroll cue never crowds the ledger line */
.hero .hero__inner{ padding-bottom:clamp(4.5rem, 9vh, 7rem); }
.cue{ bottom:clamp(1rem, 2.2vh, 1.75rem); }
@media (max-width: 720px){ .cue{ display:none; } }

/* Footer lockup reads against the deep band */
.foot__brand .foot__lockup{ filter:drop-shadow(0 4px 18px rgba(0,0,0,.5)); }

/* ==========================================================================
   21. Tool rig  (sliders, chart, verdict, pinned comparison, email capture)
   ========================================================================== */
.rig{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);
  gap:clamp(1.5rem, 3.5vw, 2.75rem);
  align-items:start;
}
@media (max-width: 960px){ .rig{ grid-template-columns:minmax(0,1fr); } }

.rig__form{ display:grid; gap:clamp(1.25rem,2.5vw,2rem); min-width:0; }
.rig__group{
  margin:0;
  padding:clamp(1.15rem,2.4vw,1.85rem);
  border:1px solid rgba(201,206,214,.16);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg, rgba(14,38,71,.62), rgba(7,21,40,.5));
}
.rig__legend{
  padding:0 .55rem;
  margin-left:-.55rem;
  font-family:var(--font-display);
  font-size:.8125rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold-bright);
}
.rig__note{ margin:.15rem 0 1rem; font-size:var(--t-fine); color:var(--silver-dim); }
.rig__fields{ display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:clamp(1rem,2vw,1.5rem); }

.fld{ display:grid; gap:.5rem; min-width:0; }
.fld--hide{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.fld__head{ display:grid; gap:.45rem; }
.fld__k{
  font-size:var(--t-fine);
  font-weight:700;
  letter-spacing:.04em;
  color:#DCE2EA;
  line-height:1.35;
}
.fld__box{
  display:flex;
  align-items:center;
  width:100%;
  gap:.15rem;
  padding:.4rem .6rem;
  border:1px solid rgba(201,206,214,.24);
  border-radius:var(--radius);
  background:rgba(4,11,21,.55);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.fld__box:focus-within{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(197,162,83,.16); }
.fld__pre,.fld__suf{ font-size:.8125rem; color:var(--silver-dim); flex:0 0 auto; }
.fld__num{
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  color:#F2F5F8;
  font-family:var(--font-body);
  font-size:1.0625rem;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  text-align:right;
  padding:0;
  min-height:32px;
}
.fld__num:focus{ outline:none; }
.fld__sel{
  width:100%;
  padding:.6rem .7rem;
  border:1px solid rgba(201,206,214,.24);
  border-radius:var(--radius);
  background:rgba(4,11,21,.55);
  color:#F2F5F8;
  font-family:var(--font-body);
  font-size:var(--t-small);
  min-height:44px;
}
.fld__sel:focus{ outline:none; border-color:var(--gold); }
.fld__hint{ margin:0; font-size:.75rem; line-height:1.45; color:var(--silver-dim); }

/* slider */
.fld__rng{ -webkit-appearance:none; appearance:none; width:100%; height:22px; background:transparent; cursor:pointer; }
.fld__rng::-webkit-slider-runnable-track{
  height:3px; border-radius:2px;
  background:linear-gradient(90deg, rgba(197,162,83,.85), rgba(201,206,214,.18));
}
.fld__rng::-moz-range-track{
  height:3px; border-radius:2px;
  background:linear-gradient(90deg, rgba(197,162,83,.85), rgba(201,206,214,.18));
}
.fld__rng::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:16px; height:16px; margin-top:-7px;
  border-radius:50%;
  background:linear-gradient(180deg, var(--gold-bright), var(--gold-deep));
  border:1px solid rgba(4,11,21,.6);
  box-shadow:0 2px 8px rgba(3,10,20,.7);
  transition:transform .16s var(--ease), box-shadow .16s var(--ease);
}
.fld__rng::-moz-range-thumb{
  width:16px; height:16px; border-radius:50%;
  background:linear-gradient(180deg, var(--gold-bright), var(--gold-deep));
  border:1px solid rgba(4,11,21,.6);
}
.fld__rng:hover::-webkit-slider-thumb{ transform:scale(1.12); }
.fld__rng:active::-webkit-slider-thumb{ box-shadow:0 0 0 6px rgba(197,162,83,.18); }

.rig__acts{ display:flex; flex-wrap:wrap; align-items:center; gap:.85rem; }

/* ---- result column ------------------------------------------------------ */
.rig__out{
  position:sticky;
  top:calc(var(--crest-slim) + 1rem);
  display:grid;
  gap:1.15rem;
  padding:clamp(1.25rem,2.6vw,1.9rem);
  border:1px solid rgba(197,162,83,.3);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg, rgba(11,31,58,.95), rgba(7,21,40,.95));
  box-shadow:var(--shadow-card);
  min-width:0;
}
@media (max-width: 960px){ .rig__out{ position:static; } }

.rig__hero{ display:grid; gap:.3rem; padding-bottom:1.1rem; border-bottom:1px solid rgba(201,206,214,.16); }
.rig__v{
  font-family:var(--font-display);
  font-size:clamp(2rem, 1.3rem + 2.4vw, 3rem);
  font-weight:700;
  line-height:1;
  letter-spacing:-.01em;
  color:#F4F7FA;
  font-variant-numeric:tabular-nums;
}
.rig__hero.is-good .rig__v{ color:#9ED8B4; }
.rig__hero.is-watch .rig__v{ color:var(--gold-bright); }
.rig__hero.is-risk .rig__v{ color:#E8A08F; }
.rig__k{ font-size:var(--t-fine); font-weight:700; letter-spacing:.06em; color:var(--silver-dim); }

.rig__bands{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(104px,1fr)); gap:.6rem; }
.rig__bands li{
  margin:0; padding:.6rem .7rem;
  border:1px solid rgba(201,206,214,.14);
  border-radius:var(--radius);
  background:rgba(4,11,21,.4);
  text-align:center;
}
.rig__bands b{ display:block; font-family:var(--font-display); font-size:1.0625rem; color:#EDF1F6; font-variant-numeric:tabular-nums; }
.rig__bands span{ display:block; margin-top:.2rem; font-size:.6875rem; letter-spacing:.08em; text-transform:uppercase; color:var(--silver-dim); }
.rig__bands li.is-risk b{ color:#E8A08F; }
.rig__bands li.is-good b{ color:#9ED8B4; }

/* chart */
.rig__chart{ margin:0; }
.rig__chart figcaption{
  font-size:.6875rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-bright); margin-bottom:.7rem;
}
.bars{ display:grid; gap:.55rem; }
.bar{ display:grid; grid-template-columns:1fr auto; gap:.15rem .6rem; align-items:center; }
.bar__k{ font-size:.75rem; color:#C4CCD8; grid-column:1; }
.bar__v{ font-size:.8125rem; font-weight:700; color:#EDF1F6; font-variant-numeric:tabular-nums; grid-column:2; grid-row:1 / span 2; align-self:center; }
.bar__track{ grid-column:1; height:6px; border-radius:3px; background:rgba(201,206,214,.12); overflow:hidden; }
.bar__track i{
  display:block; height:100%; border-radius:3px;
  background:linear-gradient(90deg, var(--gold-deep), var(--gold-bright));
  transition:width .45s var(--ease);
}
.bar.is-good .bar__track i{ background:linear-gradient(90deg,#2F6B4F,#78C79B); }
.bar.is-risk .bar__track i{ background:linear-gradient(90deg,#7A3326,#DE9180); }
.bar.is-quiet .bar__track i{ background:linear-gradient(90deg,#26456B,#6E8DB4); }

/* meter (percent funded and similar 0-140 scales) */
.meter{ position:relative; height:12px; border-radius:6px; background:rgba(201,206,214,.12); overflow:visible; }
.meter__fill{
  position:absolute; inset:0 auto 0 0;
  border-radius:6px;
  background:linear-gradient(90deg,#7A3326,#A9762A 42%,#2F6B4F 78%);
  transition:width .5s var(--ease);
}
.meter__mark{ position:absolute; top:-5px; transform:translateX(-50%); }
.meter__mark i{ display:block; width:1px; height:22px; background:rgba(244,247,250,.55); margin:0 auto; }
.meter__mark b{
  display:block; margin-top:.3rem; font-size:.625rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--silver-dim); white-space:nowrap;
}
.meter__scale{ display:flex; justify-content:space-between; margin:2.1rem 0 0; font-size:.625rem; letter-spacing:.1em; color:var(--silver-dim); }

/* verdict */
.rig__verdict{
  padding:1rem 1.1rem;
  border-left:2px solid var(--gold);
  border-radius:0 var(--radius) var(--radius) 0;
  background:rgba(197,162,83,.09);
}
.rig__verdict.is-good{ border-left-color:#78C79B; background:rgba(120,199,155,.09); }
.rig__verdict.is-risk{ border-left-color:#DE9180; background:rgba(222,145,128,.09); }
.rig__verdict h3{ margin:0 0 .4rem; font-size:1rem; color:#F2F5F8; }
.rig__verdict p{ margin:0; font-size:var(--t-small); line-height:1.6; color:#CFD7E1; }
.rig__next{ margin-top:.6rem !important; }
.rig__next b{ color:var(--gold-bright); }

/* option cards (ways to close a gap) */
.rig__options{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.7rem; }
.rig__opt{
  padding:.8rem .85rem;
  border:1px solid rgba(201,206,214,.16);
  border-radius:var(--radius);
  background:rgba(4,11,21,.4);
}
.rig__opt.is-pick{ border-color:rgba(197,162,83,.55); background:rgba(197,162,83,.08); }
.rig__opt-k{ display:block; font-size:.625rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-bright); }
.rig__opt strong{ display:block; margin:.3rem 0 .25rem; font-family:var(--font-display); font-size:1.15rem; color:#F2F5F8; font-variant-numeric:tabular-nums; }
.rig__opt p{ margin:0; font-size:.75rem; line-height:1.5; color:var(--silver-dim); }

/* rows */
.rig__rows{ list-style:none; margin:0; padding:0; display:grid; }
.rig__rows li{
  display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  margin:0; padding:.55rem 0;
  border-bottom:1px solid rgba(201,206,214,.1);
  font-size:var(--t-small);
}
.rig__rows li:last-child{ border-bottom:0; }
.rig__rows .k{ color:var(--silver-dim); }
.rig__rows .v{ color:#EDF1F6; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.rig__rows li.is-em{ border-top:1px solid rgba(197,162,83,.35); margin-top:.3rem; padding-top:.7rem; }
.rig__rows li.is-em .k{ color:#DCE2EA; font-weight:700; }
.rig__rows li.is-em .v{ color:var(--gold-bright); }

/* pinned comparison */
.rig__cmp h3{ margin:0 0 .6rem; font-size:.6875rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-bright); }
.cmp{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; }
.cmp__col{ padding:.6rem .5rem; border:1px solid rgba(201,206,214,.14); border-radius:var(--radius); text-align:center; }
.cmp__col span{ display:block; font-size:.625rem; letter-spacing:.1em; text-transform:uppercase; color:var(--silver-dim); }
.cmp__col strong{ display:block; margin-top:.25rem; font-size:.9375rem; color:#EDF1F6; font-variant-numeric:tabular-nums; }
.cmp__col.is-now{ border-color:rgba(197,162,83,.45); background:rgba(197,162,83,.07); }
.cmp__col.is-delta strong{ color:var(--gold-bright); }

/* email capture */
.rig__mail{ padding-top:1.1rem; border-top:1px solid rgba(201,206,214,.16); display:grid; gap:.7rem; }
.rig__mail h3{ margin:0; font-size:1rem; color:#F2F5F8; }
.rig__mail .fine{ margin:0; }
.rig__mailrow{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:.7rem; }
.rig__mail .fld__num{
  max-width:none; text-align:left;
  padding:.55rem .65rem;
  border:1px solid rgba(201,206,214,.24);
  border-radius:var(--radius);
  background:rgba(4,11,21,.55);
  font-size:var(--t-small); font-weight:400;
  min-height:44px;
}
.rig__mail .fld__num:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(197,162,83,.16); }

.rig__foot{ display:grid; gap:.6rem; padding-top:1rem; border-top:1px solid rgba(201,206,214,.16); }

@media print{
  .crest,.gate,.gate__scrim,.ascend,.progress,.rig__form,.rig__mail,.rig__foot .act,.foot,.cue{ display:none !important; }
  .rig{ grid-template-columns:1fr; }
  .rig__out{ position:static; border-color:#999; background:#fff; box-shadow:none; }
  .rig__v,.rig__k,.rig__rows .v,.rig__rows .k,.rig__verdict p,.rig__verdict h3{ color:#111 !important; }
}

.fld{ align-content:start; }
.fld__rng{ margin-top:-.2rem; }
.fld__hint{ margin-top:-.1rem; }

/* ==========================================================================
   22. Peer boxes: centred copy, and rows that divide evenly
   The column count follows the number of boxes (site.js stamps data-n), so a
   four-box list reads two and two instead of three with an orphan.
   ========================================================================== */
.calc__peers{ text-align:center; }
.calc__peers a{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  height:100%;
  text-wrap:pretty;
}
.calc__peers b{ margin-bottom:.35rem; }

@media (min-width: 620px){
  /* Two-column band: centre the odd box out rather than leaving it hanging */
  .calc__peers[data-n="3"] > li:last-child,
  .calc__peers[data-n="5"] > li:last-child{
    grid-column:1 / -1;
    justify-self:center;
    width:calc(50% - (var(--gap) / 2));
  }
}
@media (min-width: 980px){
  .calc__peers[data-n="2"],
  .calc__peers[data-n="4"]{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .calc__peers[data-n="8"]{ grid-template-columns:repeat(4, minmax(0,1fr)); }
  /* Back to a full row at three columns, so reset the two-column centring */
  .calc__peers[data-n="3"] > li:last-child{ grid-column:auto; width:auto; }
  .calc__peers[data-n="5"] > li:last-child{
    grid-column:1 / -1;
    width:calc(33.333% - (var(--gap) * 2 / 3));
  }
}

/* The same treatment for the option cards inside a calculator result */
.rig__opt{ text-align:center; }

/* --------------------------------------------------------------------------
   Hero — Florida photo fade (2026-10-14)
   Nicepage-style fixed background: slides stay pinned to the viewport.
   Ken Burns + crossfade keep playing; hero copy / next sections scroll over.
   Revert: copy from site/_revert/hero-florida-2026-10-14/
   -------------------------------------------------------------------------- */
.hero[data-hero-florida]{
  /* Let the pin escape the normal hero clip/stack so it can lock to viewport */
  overflow:visible;
  isolation:auto;
}
.hero[data-hero-florida] .hero__slides,
.hero[data-hero-florida] .tier__wash{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:var(--hero-pin-h, 100vh);
  pointer-events:none;
  transform:none;
}
.hero[data-hero-florida] .hero__slides{
  z-index:0;
  overflow:hidden;
  background:#0B1F3A;
}
.hero[data-hero-florida] .tier__wash{
  z-index:1;
  background:
    linear-gradient(108deg, rgba(3,9,18,.88) 0%, rgba(4,11,21,.62) 38%, rgba(4,11,21,.72) 100%),
    linear-gradient(180deg, rgba(4,11,21,.78) 0%, rgba(4,11,21,.48) 36%, rgba(2,8,16,.92) 100%);
}
.hero[data-hero-florida].is-pin-off .hero__slides,
.hero[data-hero-florida].is-pin-off .tier__wash{
  visibility:hidden;
}
/* Content + rest of page stack above the pinned plates */
.hero[data-hero-florida] .hero__inner,
.hero[data-hero-florida] .cue{
  position:relative;
  z-index:3;
}
#main > .tier,
#main > .band,
.foot{
  position:relative;
  z-index:3;
}
/* .ascend + .progress stay position:fixed (viewport chrome) — do not pull them into this stack */

.hero[data-hero-florida] .hero__slide{
  position:absolute;
  inset:0;
  background-color:#0B1F3A;
  opacity:0;
  /* Longer ease-in-out crossfade — safe now that plates are viewport-pinned */
  transition:opacity 3.9s ease-in-out;
  pointer-events:none;
  overflow:hidden;
}
.hero[data-hero-florida] .hero__slide.is-on{
  opacity:1;
  z-index:1;
}
.hero[data-hero-florida] .hero__slide picture,
.hero[data-hero-florida] .hero__slide img{
  position:absolute;
  inset:-4%;
  width:108%;
  height:108%;
  display:block;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
}
.hero[data-hero-florida] .hero__slide img{
  will-change:transform;
  transform:translate3d(var(--kbx), 0, 0) scale(var(--kbs));
  /* Always attached so fade-out doesn't snap back to the start frame */
  animation:kenburns 38s var(--ease) infinite alternate;
  animation-play-state:paused;
}
.hero[data-hero-florida] .hero__slide.is-on img{
  animation-play-state:running;
}

@media (prefers-reduced-motion: reduce){
  .hero[data-hero-florida] .hero__slide{ transition:none; }
  .hero[data-hero-florida] .hero__slide img{
    animation:none !important;
    transform:none;
  }
  .hero[data-hero-florida] .hero__slide.is-on{ opacity:1; }
  .hero[data-hero-florida] .hero__slide:not(.is-on){ opacity:0; }
}
