/* FIF SIGNATURE v1 (WS1, 10 Nov 2026). Spec: docs/FIF_SIGNATURE_v1.md. Loaded last, so it sets the house look over the
   inherited Divi copy (fifcopy.css). Film-production language: scene slates on every heading, frame lines on media,
   timecode figures, grain on black, the yellow as a signal only. Archivo widened for display (the wordmark is wide),
   IBM Plex Mono for anything a camera report would print. */
@font-face{font-family:"FIF Display";src:url(/assets/fonts/archivo-var.woff2) format("woff2-variations"),url(/assets/fonts/archivo-var.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
:root{
  --fif-black:#0a0a0b;--fif-white:#fff;--fif-y:#ffe600;--fif-ink-2:#4b4b4b;--fif-line:#d3d3d3;--fif-line-dark:#2c2c2c;
  --ease:cubic-bezier(.2,.7,.2,1);--t-fast:160ms;--t-med:320ms;
  --sec-pad:clamp(2.5rem,6vw,4.5rem);--measure:46rem;
  --fs-display:clamp(42px,1.9rem + 5vw,104px);--fs-h2:clamp(28px,1.25rem + 2.3vw,54px);--fs-h3:clamp(19px,1rem + .4vw,23px);--fs-body:17px;--fs-lead:clamp(18px,1rem + .5vw,23px);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E");
}

/* ---- type: wide display, plain body, mono data ---- */
h1,.hero-h,.phead-h,.st-hero-h,.st-fhead h1{font-family:"FIF Display","Archivo",Helvetica,Arial,sans-serif;font-stretch:118%!important;font-weight:800;letter-spacing:-.035em;line-height:.95}
h2,.st-line,.st-pband-t,.st-door-t,.st-pq blockquote p{font-family:"FIF Display","Archivo",Helvetica,Arial,sans-serif;font-stretch:112%!important;font-weight:800;letter-spacing:-.03em}
h1,.hero-h,.phead-h,.st-hero-h{font-size:var(--fs-display)}
h2{font-size:var(--fs-h2);line-height:1.02}
.kicker,.fif-mk{font:600 12px/1.4 Archivo,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.st-fl,.st-tc,.st-num strong,.st-tl-y{font-variant-numeric:tabular-nums}

/* ---- C1-C3: one column at reading width, one rhythm, no banding ---- */
.sec-in{grid-template-columns:minmax(0,1fr)!important;gap:1.1rem}
.sec-h h2{max-width:24ch}
.sec-b{max-width:var(--measure)}
.sec-b:has(.tbl,table,form,.tiles,.st-vgrid){max-width:none}
.sec-alt,.sec-alt+.wide{background:transparent}
.flow-sec>.sec{padding:var(--sec-pad) 0}
.flow-sec>.sec+.sec,.flow-sec>.sec-solo+.wide{padding-top:0}
.flow-sec>.sec-solo{padding-bottom:1.4rem}
.wide{padding:0 0 var(--sec-pad)}
.wide:has(>.wrap>.st){padding-block:var(--sec-pad)}
.wide+.wide:has(>.wrap>.st),.sec+.wide:has(>.wrap>.st){padding-top:0}
.st-full+.sec,.wide-band+.sec{padding-top:var(--sec-pad)}

/* ---- the slate: every section heading carries its scene number, like a clapperboard ---- */
.flow-sec{counter-reset:sc}
.sec-h h2::before,.st-films>h2::before,.st-gallery>h2::before,.st-doors>h2::before,.st-car-top h2::before,.st-fr-head h2::before,.st-timeline .wrap>h2::before,.st-facts-h::before,.st-split-tx>h2::before,.st-fs-side-tx>h2::before,.st-ctapair h2::before,.st-pillarrail h2::before{
  counter-increment:sc;content:"SC " counter(sc,decimal-leading-zero);content:"SC " counter(sc,decimal-leading-zero) / "";
  display:table;margin:0 0 .9rem;padding:.22rem .55rem .22rem 2.1rem;font:600 11px/1.3 Archivo,sans-serif;letter-spacing:.16em;font-stretch:100%;
  border:1.5px solid currentColor;background:repeating-linear-gradient(-45deg,currentColor 0 3px,transparent 3px 7px) left center/1.55rem 100% no-repeat}
.st-filmrow h2::before,.st-carousel h2::before,.st-timeline h2::before,.st-fs-side-tx>h2::before,.st-ctapair h2::before{color:var(--fif-y)}

/* ---- frame lines: viewfinder corners on heroes, corner marks on featured media ---- */
.st-hero::before,.st-fhead::before{content:"";position:absolute;inset:clamp(10px,2vw,22px);z-index:1;pointer-events:none;opacity:.75;
  background:linear-gradient(#fff,#fff) 0 0/26px 2px,linear-gradient(#fff,#fff) 0 0/2px 26px,linear-gradient(#fff,#fff) 100% 0/26px 2px,linear-gradient(#fff,#fff) 100% 0/2px 26px,
  linear-gradient(#fff,#fff) 0 100%/26px 2px,linear-gradient(#fff,#fff) 0 100%/2px 26px,linear-gradient(#fff,#fff) 100% 100%/26px 2px,linear-gradient(#fff,#fff) 100% 100%/2px 26px;background-repeat:no-repeat}
.st-fhead{position:relative}.st-fhead-in{position:relative;z-index:2}
.st-split-m::before,.st-split-m::after,.st-one-media::before,.st-one-media::after{content:"";position:absolute;width:22px;height:22px;pointer-events:none;z-index:2;border:2px solid var(--fif-y)}
.st-split-m::before,.st-one-media::before{top:-8px;left:-8px;border-right:0;border-bottom:0}
.st-split-m::after,.st-one-media::after{bottom:-8px;right:-8px;border-left:0;border-top:0}
.st-one-media{position:relative}

/* ---- grain on black bands only ---- */
.st-carousel,.st-filmrow,.st-timeline,.st-ctapair,.st-fhead,.phead,.st-fs-side{background-color:var(--fif-black);background-image:var(--grain)}
.st-fs-side{background-color:var(--fif-black)}

/* ---- buttons and links: square, ruled, no Divi radius ---- */
.b,.fh-cta,.fh-watch,.fh-menu{border-radius:0}
.b{font-weight:700;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.st-play,.st-hp-ico,.st-tl-play{transition:background var(--t-fast) var(--ease)}

/* ---- C9: grids fit their count ---- */
.tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.tiles-four{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
@media (min-width:600px){
 .tiles:has(>:nth-child(4):last-child),.tiles:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
 .st-doors-g:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1100px){
 .tiles:has(>:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
 .st-doors-g:has(>:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
 .tiles:has(>:nth-child(5):last-child),.st-doors-g:has(>:nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}
 .tiles:has(>:nth-child(5):last-child)>*,.st-doors-g:has(>:nth-child(5):last-child)>*{grid-column:span 2}
 .tiles:has(>:nth-child(5):last-child)>:nth-child(-n+2),.st-doors-g:has(>:nth-child(5):last-child)>:nth-child(-n+2){grid-column:span 3}
 .tiles:has(>:nth-child(7):last-child),.st-doors-g:has(>:nth-child(7):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
 .tiles:has(>:nth-child(7):last-child)>:first-child,.st-doors-g:has(>:nth-child(7):last-child)>:first-child{grid-column:span 2}
 .st-doors-g:has(>:nth-child(5):last-child)>:nth-child(-n+2){aspect-ratio:16/10}
 .st-doors-g:has(>:nth-child(7):last-child)>:first-child{aspect-ratio:auto}
}
.help-list,.sp-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr))}
.pth-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,15.5rem),1fr))}
.tile,.st-step{height:100%}

/* ---- C8: tables stack on phones ---- */
@media (max-width:600px){
 .tbl{overflow:visible}
 .tbl table,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%;min-width:0!important}
 .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .tbl tr{border-top:1px solid var(--fif-line);padding:.7rem 0}
 .tbl td{border:0!important;padding:.15rem 0!important}
 .tbl .tbl-kv td:first-child{font:600 11px/1.4 Archivo,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fif-ink-2)}
 .tbl .tbl-cards td[data-label]::before{content:attr(data-label);display:block;font:600 11px/1.4 Archivo,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fif-ink-2);margin-top:.35rem}
}

/* ---- motion: one easing, nothing moves for reduced-motion users ---- */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important}}
.flow-sec>.wide:not(.wide-band)+.sec{padding-top:0}
.flow-sec>.sec+.wide{padding-top:0}
