/* UA HEADING METRICS FOR THE H-4 LOWERED HEADINGS, mountainpasssafes build 1, 2026-09-05.
   A lowered heading changes TAG, and the browser's own heading rules are keyed on the tag. These
   restore the original tag's UA font-size and margin at specificity zero, ahead of everything, so
   any author rule still wins. Chromium's measured values. */
:where(:is(h1,h2,h3,h4,h5,h6).was-h3){font-size:1.17em;margin-block-start:1em;margin-block-end:1em}
:where(:is(h1,h2,h3,h4,h5,h6).was-h4){font-size:1em;margin-block-start:1.33em;margin-block-end:1.33em}


@font-face{font-family:'Archivo Black';font-style:normal;font-weight:400;font-display:swap;src:url(https://media.beargrassai.com/mountainpasssafes/fonts/HTxqL289NzCGg4MzN6KJ7eW6CYyF_g.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(https://media.beargrassai.com/mountainpasssafes/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(https://media.beargrassai.com/mountainpasssafes/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2')}
@font-face{font-family:'Yeseva One';font-style:normal;font-weight:400;font-display:swap;src:url(https://media.beargrassai.com/mountainpasssafes/fonts/OpNJno4ck8vc-xYpwWWxli1VWw.woff2) format('woff2')}
:root{--maroon:#800000;--ink:#161616;--band-dark:#1e1e1e;--band-gray:#333333;--paper:#fff;--text:#5E5E5E;--display:'Archivo Black',arial,sans-serif;--serif:'Yeseva One',Georgia,serif;--body:'Montserrat',arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;font:16px/1.7 var(--body);color:var(--text);background:var(--paper)}
img{max-width:100%;height:auto}
a{color:var(--maroon)}
h1:where(:not([class*="was-h"])),h2:where(:not([class*="was-h"])),h3:where(:not([class*="was-h"])),:is(h1,h2,h3,h4,h5,h6):where(.was-h3){line-height:1.25}

/* header: one dark row on every page (source pattern) — left nav,
   centered serif logotype, right nav with the MORE dropdown (CSS-only) */
header.site{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 48px;background:var(--band-gray);position:sticky;top:0;z-index:90}
header.site nav.nl{display:flex;gap:42px;justify-content:flex-start}
header.site nav.nr{display:flex;gap:42px;justify-content:flex-end;align-items:center}
header.site nav a,header.site .more-l{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#c5c5c5;text-decoration:none;white-space:nowrap}
header.site nav a:hover,header.site .more-l:hover{color:#fff}
header.site .cur::before{content:'\2013\00a0'}
header.site [aria-current="page"]::before{content:'\2013\00a0'}
header.site a.brand{font-family:var(--serif);font-size:25px;letter-spacing:.05em;text-transform:uppercase;color:#d6d6d6;text-decoration:none;text-align:center;padding:0 28px;white-space:nowrap}
.more{position:relative;display:inline-block}
button.more-l,span.more-l{background:none;border:0;padding:0;cursor:pointer;font-family:inherit;line-height:inherit}
.more-l::after{content:'';display:inline-block;width:6px;height:6px;border-right:1px solid #c5c5c5;border-bottom:1px solid #c5c5c5;transform:rotate(45deg) translateY(-2px);margin-left:8px}
.more .menu{position:absolute;right:0;top:calc(100% + 14px);min-width:178px;background:#fff;box-shadow:0 8px 26px rgba(0,0,0,.3);padding:8px 0;opacity:0;visibility:hidden;transition:opacity .15s;z-index:99}
.more .menu a{display:block;padding:10px 22px;color:#3a3a3a;font-size:12px;letter-spacing:.14em}
.more .menu a:hover{background:#f3f3f3;color:var(--maroon)}
/* Bridge the 14px drop gap so pointer travel keeps the panel open */
.more .menu::before{content:'';position:absolute;left:0;right:0;bottom:100%;height:14px}
.more.is-open .menu,.more:hover .menu,.more:focus-within .menu{opacity:1;visibility:visible}
.mtoggle{display:none}
@media(max-width:1170px){
header.site{grid-template-columns:48px 1fr 48px;height:auto;padding:20px 14px}
header.site nav.nl,header.site nav.nr{display:none}
header.site a.brand{white-space:normal;font-size:30px;line-height:1.2;padding:0 4px}
.mtoggle{display:block;position:static}
.mtoggle summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:6px;width:26px;padding:6px 0}
.mtoggle summary::-webkit-details-marker{display:none}
.mtoggle summary i{display:block;height:2px;background:#c5c5c5}
.mtoggle nav{position:absolute;left:0;right:0;top:100%;background:#262626;display:flex;flex-direction:column;padding:8px 0;z-index:99}
.mtoggle nav a{padding:13px 26px;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#d6d6d6;text-decoration:none;border-bottom:1px solid #333}
}

/* inner (light) pages */
main.page{max-width:1040px;margin:0 auto;padding:40px 24px}
main.page h1:where(:not([class*="was-h"])){font-family:var(--display);font-size:2.2rem;letter-spacing:.06em;text-transform:uppercase;color:var(--maroon);text-align:center;margin:0 0 1.6rem}
main.page h2:where(:not([class*="was-h"])),main.page h3:where(:not([class*="was-h"])),main.page :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-family:var(--serif);color:var(--maroon);text-align:center;font-weight:400}
main.page h2:where(:not([class*="was-h"])){font-size:1.6rem;margin:2.2rem 0 .8rem}
main.page h3:where(:not([class*="was-h"])),
main.page :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-size:1.25rem}
main.page p,main.page li{font-size:1.02rem}
.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;color:#767676;text-align:center;margin:0 0 .4rem}
.hero-img{width:100%;max-height:440px;object-fit:cover;object-position:50% 18%;display:block;margin:0 0 1.6rem}

/* record detail: image beside details, features as serif-headed sections */
.detail{display:grid;grid-template-columns:minmax(280px,56%) 1fr;gap:48px;align-items:start;margin-bottom:1.4rem}
.detail .lead-img img{width:100%;height:auto;display:block}
.detail .lead-img img[src*='.png']{aspect-ratio:4/5;object-fit:contain}
.lead-solo{display:block;max-width:480px;margin:0 auto 1.6rem}
.story-flow{max-width:820px;margin:0 auto}
.story-flow h2:where(:not([class*="was-h"])),.story-flow h3:where(:not([class*="was-h"])),.story-flow :is(h1,h2,h3,h4,h5,h6):where(.was-h3){margin-top:2rem}
@media(max-width:760px){.detail{grid-template-columns:1fr}}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:1.4rem 0}
.gallery img{width:100%;height:140px;object-fit:cover;display:block}
@media(max-width:760px){.gallery{grid-template-columns:repeat(4,1fr);gap:6px}.gallery img{height:88px}}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 40px;margin:1.6rem 0;text-align:center}
.features ul{text-align:left;margin:.3rem 0;padding-left:1.3em}
.features li{font-size:.92rem;margin:.15rem 0}
@media(max-width:760px){.features{grid-template-columns:1fr}}
.features h3:where(:not([class*="was-h"])),
.features :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-family:var(--serif);color:var(--maroon);font-weight:400;font-size:1.25rem;margin:.6rem 0 .35rem}
.features p{font-size:.95rem;text-align:left;margin:.3rem 0}
.inquire{display:inline-block;background:var(--maroon);color:#fff;padding:13px 26px;text-decoration:none;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;margin:1rem 0}
.price{font-family:var(--serif);font-size:1.4rem;color:var(--maroon)}

/* record story composition (P1b-3 flag-resolution round): the source's
   repeating shapes — model card grids, 3-col text feature grids, image-beside-
   text rows, dark/red closing bands — measured against the original captures */
.mcards{display:grid;gap:44px 40px;margin:2.4rem 0;text-align:center}
.mcards.c2{grid-template-columns:repeat(2,1fr)}
.mcards.c3{grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.mcards.c2,.mcards.c3{grid-template-columns:1fr}}
.mcard h2:where(:not([class*="was-h"])),.mcard h3:where(:not([class*="was-h"])),.mcard :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-size:1.45rem;margin:.2rem 0 .9rem}
.mcard img{width:100%;max-width:420px;height:auto;display:block;margin:0 auto 18px}
.mcards.c2 .mcard img{max-width:none}
.mcards.sm .mcard img{max-width:200px}
.mcards.sm{gap:30px 40px}
.mcards.sm .mcard h2:where(:not([class*="was-h"])),.mcards.sm .mcard h3:where(:not([class*="was-h"])),.mcards.sm .mcard :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-size:1.2rem}
@media(min-width:761px){.mcards.big{gap:72px 56px}.mcards.big .mcard .lm{margin-top:22px}}
.mcards.big .mcard h2:where(:not([class*="was-h"])),.mcards.big .mcard h3:where(:not([class*="was-h"])),.mcards.big .mcard :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-size:1.65rem}
.mcards.big .mcard img{aspect-ratio:3/4;object-fit:contain}
@media(max-width:760px){.mcards.sm .mcard img{max-width:none}.mcards.msm .mcard img{max-width:260px}.mcards.big .mcard img{aspect-ratio:4/5}}
.mcard p{font-size:.95rem;margin:.35rem 0}
.mcard h4:where(:not([class*="was-h"])),
.mcard :is(h1,h2,h3,h4,h5,h6):where(.was-h4){font-family:var(--body);font-weight:700;color:#3a3a3a;font-size:.98rem;margin:1rem 0 .2rem}
.mcard ul{text-align:left;display:inline-block;margin:.4rem 0;padding-left:1.2em}
.mcard .lm{display:inline-block;border:1px solid var(--maroon);color:var(--maroon);padding:11px 22px;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;margin-top:14px}
.mcard .lm::before{content:'\2014\00a0\00a0'}
.mcard .lm::after{content:'\00a0\00a0\2014'}
.mcard details{margin:.4rem 0}
.mcard summary{color:var(--maroon);cursor:pointer;list-style:none;font-size:.9rem;font-weight:700}
.mcard summary::-webkit-details-marker{display:none}
.irow{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin:2.6rem 0;text-align:left}
.irow img{width:100%;height:auto;display:block;max-height:540px;object-fit:contain}
@media(max-width:760px){.irow img{max-height:none}}
.irow h2:where(:not([class*="was-h"])),.irow h3:where(:not([class*="was-h"])),.irow :is(h1,h2,h3,h4,h5,h6):where(.was-h3){text-align:left;margin-top:0}
.irow p{margin:.5rem 0}
.irow ul{padding-left:1.2em}
@media(max-width:760px){.irow{grid-template-columns:1fr;gap:18px}.features li,.features p,.mcard p{font-size:1rem}}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:2.2rem 0}
.trio.g2{grid-template-columns:1fr 1fr;gap:34px}
.trio img{width:100%;height:auto;display:block}
.features.g2{grid-template-columns:repeat(2,1fr)}
.features.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:760px){.trio,.trio.g2{grid-template-columns:1fr}.trio.mrow{grid-template-columns:repeat(3,1fr);gap:10px}.features.g2,.features.g4{grid-template-columns:1fr}}
.rband{padding:84px 24px}
.rband h2:where(:not([class*="was-h"])){font-family:var(--body);font-weight:400;text-transform:uppercase;letter-spacing:.3em;color:#ececec;font-size:1.35rem;margin:0 0 2.4rem}
.rband .rimgs{display:flex;flex-wrap:wrap;justify-content:center;gap:60px;margin:0 auto}
.rband .rimgs>div{width:min(320px,100%)}
.rband img.wide-photo{max-width:540px}
.rband .rimgs img{width:min(480px,90%);height:auto;display:block}
.band > img.wide-photo{max-width:780px;margin:30px auto 0;display:block}
.rband p{color:#cfc7c7;font-size:.9rem;margin:1.6rem auto 0;max-width:640px}
.hband{width:100%;max-height:240px;object-fit:cover;display:block;margin-bottom:1.2rem}
/* visn circles: the source's round feature photos */
.fcirc img{width:230px;height:230px;object-fit:cover;border-radius:50%;display:block;margin:0 auto 18px}
@media(max-width:760px){.fcirc img{width:270px;height:270px}}
.visnband{padding:40px 24px}
.visnband img{width:min(420px,90%);display:block;margin:0 auto 8px}
/* tight/airy page tones: per-route vertical rhythm matched to the source */
@media(min-width:761px){
[data-page="catalog/outdoor-field/trail-cameras"] main h2:where(:not([class*="was-h"])),
[data-page="catalog/smart-safes/smart-station-models/ds2i-smart-station"] main h2:where(:not([class*="was-h"])),
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main h2:where(:not([class*="was-h"])){font-size:1.3rem;margin:1.1rem 0 .4rem}
[data-page="catalog/outdoor-field/trail-cameras"] main .features,
[data-page="catalog/smart-safes/smart-station-models/ds2i-smart-station"] main .features,
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .features{margin:.9rem 0;gap:6px 32px}
[data-page="catalog/outdoor-field/trail-cameras"] main .features h3:where(:not([class*="was-h"])),
[data-page="catalog/smart-safes/smart-station-models/ds2i-smart-station"] main .features h3:where(:not([class*="was-h"])),
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .features h3:where(:not([class*="was-h"])),
[data-page="catalog/outdoor-field/trail-cameras"] main .features :is(h1,h2,h3,h4,h5,h6):where(.was-h3),
[data-page="catalog/smart-safes/smart-station-models/ds2i-smart-station"] main .features :is(h1,h2,h3,h4,h5,h6):where(.was-h3),
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .features :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-size:1.1rem;margin:.4rem 0 .25rem}
[data-page="catalog/outdoor-field/trail-cameras"] main .irow,
[data-page="catalog/smart-safes/smart-station-models/ds2i-smart-station"] main .irow,
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .irow{margin:1.4rem 0}
[data-page="catalog/outdoor-field/trail-cameras"] main .trio,
[data-page="catalog/smart-safes/smart-station-models/ds2i-smart-station"] main .trio,
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .trio{margin:1.4rem 0}
[data-page="catalog/outdoor-field/trail-cameras"] main .lead-solo,
[data-page="catalog/smart-safes/smart-station-models/ds2i-smart-station"] main .lead-solo,
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .lead-solo{max-width:380px}
/* dense: text-heavy flow pages where the source packs paragraphs close */
[data-page="__no-such-route__"] main p{margin:.55rem 0}
[data-page="__no-such-route__"] main ul{margin:.5rem 0}
/* vdense: the Vaultek marketing pages — the source sets its spec/marketing
   copy a step smaller and tighter than our base body scale */
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main p,[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main li{font-size:.95rem;line-height:1.55}
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main p{margin:.5rem 0}
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main h2:where(:not([class*="was-h"])){margin:1.4rem 0 .5rem}
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .features p{font-size:.88rem}
[data-page="__no-such-route__"] main .story-flow h2:where(:not([class*="was-h"])),[data-page="__no-such-route__"] main .story-flow h3:where(:not([class*="was-h"])),[data-page="__no-such-route__"] main .story-flow :is(h1,h2,h3,h4,h5,h6):where(.was-h3){margin-top:1.2rem}
/* dsm: the source runs this page's media smaller on desktop */
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .fcirc img{width:160px;height:160px}
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .visnband{padding:24px 24px}
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .visnband img{width:min(320px,90%)}
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .lead-solo{max-width:300px}
[data-page="catalog/smart-safes/smart-station-models/ds5i-smart-station"] main .irow{margin:1rem 0}
}
[data-page="__no-such-route__"] main .features{gap:16px 44px;margin:2.2rem 0}
[data-page="__no-such-route__"] main .features li{margin:.3rem 0}
[data-page="__no-such-route__"] main .irow{margin:3.2rem 0}
/* events: the source's compact list rows — date | event | venue */
.evrow{display:grid;grid-template-columns:200px 1fr 300px;gap:30px;border-top:1px solid #e4e4e4;padding:28px 0;text-align:left}
.evrow:last-of-type{border-bottom:1px solid #e4e4e4}
.evrow h2:where(:not([class*="was-h"])){font-family:var(--body);font-weight:700;color:#3a3a3a;font-size:1.05rem;text-align:left;margin:0}
.evrow h3:where(:not([class*="was-h"])),
.evrow :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-family:var(--body);font-weight:700;color:var(--ink);font-size:1rem;text-align:left;margin:0 0 .4rem}
.evrow p{font-size:.92rem;margin:.2rem 0}
.evrow .evd{color:var(--maroon);font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:760px){.evrow{grid-template-columns:1fr;gap:6px;padding:18px 0}.evrow .evdesc{display:none}.evrow h2:where(:not([class*="was-h"])){font-size:1.5rem}}
.ev-empty{color:var(--text);font-style:italic;text-align:center;padding:2.2rem 0;max-width:540px;margin:0 auto}
/* contact page: full-bleed hero, dark info band, map, connect band */
.cpage-hero{width:100%;height:auto;display:block}
.map-full img{width:100%;height:640px;object-fit:cover;display:block}
@media(max-width:860px){.map-full img{height:430px}}
.contact-band .social-row{justify-content:flex-start}
.contact-band .social-row a{border-color:#fff;color:#fff}
.contact-info h1:where(:not([class*="was-h"])){font-family:var(--body);font-weight:400;text-transform:uppercase;letter-spacing:.3em;color:#ececec;text-align:left;font-size:26px;margin:0 0 1.6rem}
/* about reviews: quotes in source's 3-up columns */
.quotes-wrap{max-width:920px;margin:0 auto}
.qgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;text-align:center;margin-top:1.6rem}
@media(max-width:760px){.qgrid{grid-template-columns:1fr}}
/* /safes/ page tiles: source runs them three across */
.tiles.ptiles{gap:28px}
.ptiles .tile{width:295px;height:412px}
@media(max-width:760px){.ptiles .tile{width:100%;height:140px}}
.cta-band img.wide-photo{max-width:560px;margin:30px auto 0;display:block}
.spec-cols ul{columns:2;column-gap:56px;text-align:left;max-width:880px;margin:0 auto;padding-left:1.3em}
.spec-cols li{font-size:.95rem;margin:.2rem 0}

/* FD-2: mobile size/variant table scroll — width:100% prevents the table from exceeding its
   container even with white-space:nowrap cells; max-content lets it be as wide as it needs
   and the overflow-x:auto wrapper does the rest */
@media(max-width:760px){
table.sizes thead{display:none}
table.sizes tbody tr{display:block;border:1px solid #ddd;margin-bottom:.75rem}
table.sizes td{display:block;border:none;border-bottom:1px solid #eee;padding:6px 10px;white-space:normal}
table.sizes td::before{content:attr(data-label);display:block;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--maroon);margin-bottom:2px}
}

/* FD-3: contact form — dark-band context (band-gray #333) */
.cf{margin-top:1.4rem;max-width:460px}
.cf p{margin:.65rem 0}
.cf label{display:block;font-size:.85rem;color:#bdbdbd;margin-bottom:3px}
.cf input,.cf textarea{width:100%;background:#1a1a1a;border:1px solid #888;color:#e0e0e0;padding:9px 12px;font-family:var(--body);font-size:.95rem;display:block;border-radius:2px;box-sizing:border-box}
.cf input:focus,.cf textarea:focus{outline:3px solid #c0584f;outline-offset:2px;border-color:#c0584f}
.cf textarea{resize:vertical;min-height:96px}
.cf-status{font-size:.85rem;margin-top:.5rem;min-height:1.2em}
.cf-status.cf-ok{color:#7ecb8f}
.cf-status.cf-err{color:#e07070}

/* catalog cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:26px;padding:0;list-style:none;margin-bottom:2.5rem}
.card a{text-decoration:none;display:block;color:inherit}
/* FD-2: portrait safes were corner-cropped by object-fit:cover + fixed height.
   contain on a 3/4 frame shows the whole safe, consistent size across the row.
   (blur is asset-side — MPS re-pulls full-res per model.) */
.card img{width:100%;aspect-ratio:3/4;object-fit:contain;display:block}
/* card--tile: square cover for category parents with landscape/mixed-content child images
   (precious-metals → coins, self-defense → byrna, home-office). Targeted via TILE_PARENTS. */
.card--tile img{aspect-ratio:1/1;object-fit:cover;object-position:center;display:block}
.card h2:where(:not([class*="was-h"])),.card h3:where(:not([class*="was-h"])),.card :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-family:var(--display);font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;color:var(--maroon);text-align:left;margin:.7rem 0 .3rem}
/* FD-3: model second line was margin:0, no leading — wrapped lines crowded. */
.card p{font-size:.9rem;margin:.15rem 0 0;color:var(--text);line-height:1.5}
/* FD-1: per-model Available Sizes table (renders only when a record carries sizes:) */
.sizes-wrap{overflow-x:auto;margin:1rem 0 1.6rem}
table.sizes{border-collapse:collapse;width:100%;font-size:.9rem}
table.sizes caption{text-align:left;font-family:var(--display);color:var(--maroon);letter-spacing:.06em;text-transform:uppercase;font-size:.9rem;margin-bottom:.5rem}
table.sizes th,table.sizes td{border:1px solid #ddd;padding:8px 12px;text-align:left;white-space:nowrap}
table.sizes thead th{background:var(--maroon);color:#fff;font-family:var(--body);font-weight:700}
table.sizes tbody tr:nth-child(even){background:#f6f4f2}

/* home: the dark cinematic composition */
body.home{background:var(--band-gray);color:#d9d9d9}
.hero-banner{width:100%;display:block;height:596px;object-fit:cover;object-position:50% 52%}
@media(max-width:760px){.hero-banner{height:auto;object-fit:contain;object-position:center}}
.band{padding:56px 24px;text-align:center}
.band .inner{max-width:1100px;margin:0 auto}
.band h2:where(:not([class*="was-h"])){font-family:var(--body);font-weight:400;text-transform:uppercase;letter-spacing:.3em;color:#ececec;font-size:1.7rem;margin:0 0 .8rem}
.band h2:where(:not([class*="was-h"])).disp{font-family:var(--display);letter-spacing:.04em;color:#fff;font-size:2rem}
.band p{color:#e6dede;max-width:840px;margin:.4rem auto}
.band a{color:#fff}
.band-red{background:var(--maroon)}
.band-dark{background:var(--band-dark)}
.band-gray{background:var(--band-gray)}
.moves-strip{background:var(--maroon);padding:16px 24px;text-align:center;border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}
.moves-strip a{display:block;color:#fff;text-decoration:none}
.moves-strip .ms-title{font-family:var(--display);font-size:1.15rem;letter-spacing:.08em;text-transform:uppercase}
.moves-strip .ms-sub{display:block;font-family:var(--body);font-size:.88rem;letter-spacing:.04em;color:#f3d5d5;margin-top:6px;text-transform:none}
@media(max-width:760px){.moves-strip{padding:14px 16px}.moves-strip .ms-title{font-size:1rem}}
/* lead band under the hero: design-layer display line, truth H1 as the sub-line */
.lead{padding:50px 24px 46px}
.lead h1:where(:not([class*="was-h"])){font-family:var(--body);font-weight:400;font-size:19px;line-height:1.5;color:#fff;letter-spacing:.01em;max-width:860px;margin:0 auto .5rem;text-transform:none}
.lead p{font-size:15px;color:#ecd3d3;max-width:760px}
.lead p.lead-big{font-family:var(--display);font-size:42px;line-height:1.2;text-transform:uppercase;letter-spacing:.015em;color:#fff;max-width:780px;margin:0 auto 22px}
/* bordered chip button (CONTACT US TODAY / PRODUCTS — source pattern) */
.chip{display:inline-block;border:1px solid rgba(255,255,255,.85);color:#fff;padding:13px 26px;font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;text-decoration:none}
.chip::before{content:'\2014\00a0\00a0'}
.chip::after{content:'\00a0\00a0\2014'}
.chip:hover{background:rgba(255,255,255,.12)}
.band-photo{background-size:cover;background-position:center;position:relative}
.band-photo .inner{position:relative}
.band-photo::before{content:'';position:absolute;inset:0;background:rgba(10,8,8,.55)}
.trusted{min-height:544px;display:flex;align-items:center;justify-content:center}
.trusted h2:where(:not([class*="was-h"])).disp{font-size:40px;line-height:1.25;max-width:800px;margin:0 auto 34px}
/* jagged mountain divider (source: red band -> dark band) */
.mdiv{display:block;height:170px;background:var(--maroon)}
.mdiv svg{display:block;width:100%;height:100%}
.mdiv [class^="icon--"]{display:block;width:100%;height:100%}
.mdiv-sm{height:110px}
.tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:70px;margin-top:30px}
.tiles-band{padding:86px 24px 64px}
.tiles-band .tiles{margin-top:0}
.tile{width:320px;height:448px;text-decoration:none;background-size:cover;background-position:center;position:relative;display:flex;align-items:center;justify-content:center}
.tile span{display:block;width:100%;color:#fff;font-family:var(--display);font-size:32px;line-height:1.2;letter-spacing:.02em;text-transform:uppercase;padding:0 10px;text-shadow:0 2px 12px rgba(0,0,0,.95),0 0 4px rgba(0,0,0,1),0 0 18px rgba(0,0,0,.75)}
.tile em{display:block;font-style:normal;font-family:var(--body);font-size:12px;line-height:1.4;letter-spacing:.08em;color:#eee;margin-top:8px;text-transform:none;text-shadow:0 1px 6px rgba(0,0,0,.9)}
/* 2026-09-28: a tile whose picture is a Photo piece draws it as an <img> child, so the owner can swap it in the
   editor. The img fills the tile under the words; tiles still carrying a u- class keep their background. */
.tile>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.tile>span{position:relative}
.cols3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:34px;margin-top:44px;text-align:center}
.cols3 img{width:230px;height:230px;object-fit:cover;border-radius:50%;display:block;margin:0 auto 24px}
.cols3 h3:where(:not([class*="was-h"])),
.cols3 :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-family:var(--body);color:#fff;font-weight:700;font-size:15px;margin:.2rem 0 .6rem}
.cols3 p{font-size:14px;color:#cfc7c7;max-width:340px;margin-left:auto;margin-right:auto}
/* champion video slot: poster band until the Phase 2 re-host (named delta) */
.video-band{display:block;background:var(--band-gray);padding:6px 24px 100px;text-align:center}
.video-band iframe{width:min(1100px,100%);aspect-ratio:16/9;border:0;display:block;margin:0 auto}
@media(max-width:760px){.video-band{padding-bottom:48px}}
/* contact: info column left, map right (source pattern); map is a
   capture-derived static linked to Google Maps (named delta) */
.contact-band{background:var(--band-gray);padding:56px 0 0;text-align:left}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;align-items:start}
.contact-info{padding:0 48px 56px;max-width:560px}
.contact-info h2:where(:not([class*="was-h"])){font-family:var(--body);font-weight:400;text-transform:uppercase;letter-spacing:.3em;color:#ececec;text-align:left;font-size:22px;margin:0 0 1.6rem}
.contact-info h3:where(:not([class*="was-h"])),
.contact-info :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-family:var(--body);font-weight:700;color:#fff;font-size:15px;text-align:left;margin:1.5rem 0 .4rem}
.contact-info p{font-size:16px;color:#cfcfcf;text-align:left;margin:.3rem 0;max-width:440px}
.contact-info a{color:#e08070}
.map-wrap{display:block;line-height:0}
.map-wrap img{width:100%;height:820px;object-fit:cover;display:block}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}.map-wrap img{height:430px}}
/* step inside: small letterspaced heading, wide storefront photo, caption */
.step-band{background:var(--band-gray);text-align:center;padding:44px 0 0}
.step-band h2:where(:not([class*="was-h"])){font-size:14px;letter-spacing:.24em;margin-bottom:34px}
.step-band .wide-photo{width:87%;margin:0 auto}
.step-band .caption{font-size:13px;color:#bdbdbd;padding:16px 24px 8px;margin:0 auto}
.split{display:grid;grid-template-columns:minmax(260px,1fr) 1fr;gap:40px;align-items:center;text-align:left;margin-top:10px}
@media(max-width:760px){.split{grid-template-columns:1fr}}
.split img{width:100%;display:block}
.split h2:where(:not([class*="was-h"])){text-align:left}
.split p{margin:.4rem 0;max-width:none}
.split .split-c{text-align:center}
.split .split-c h2:where(:not([class*="was-h"])){text-align:center}
.premier{padding:84px 24px}
.premier h2:where(:not([class*="was-h"])).disp{font-size:30px;max-width:430px;margin-left:auto;margin-right:auto}
.wide-photo{width:100%;display:block}
.ptiles{margin:1.6rem 0}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:2.4rem 0}
@media(max-width:700px){.duo{grid-template-columns:1fr}}
.duo img{width:100%;height:250px;object-fit:cover;display:block;margin-bottom:14px}
.duo img[src*="IMG_5395"]{object-position:50% 15%}
.duo h2:where(:not([class*="was-h"])){margin-top:0}
.rating{font-family:var(--serif);font-size:2.4rem;color:#fff;margin:.4rem 0}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px;margin-top:26px;text-align:left}
.quotes p{font-size:.92rem}
.social-row{display:flex;justify-content:center;gap:16px;margin:1.4rem 0}
.social-row a{display:inline-block;padding:10px 20px;border:1px solid var(--maroon);text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.brands{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:38px;margin-top:26px}
.brands img{height:54px;width:auto;background:#fff;padding:6px 10px}
.cta-band{padding-bottom:0}
.cta-band img{margin-top:34px}

/* mobile: the source runs LARGER body type on phones, full-width category
   strips (~200px), big installation circles (~300px) — measured against the
   original mobile capture (P1b-3 mobile pass) */
@media(max-width:760px){
body{font-size:17px}
.lead{padding:60px 24px 56px}
.lead p.lead-big{font-size:32px}
.lead h1:where(:not([class*="was-h"])){font-size:16px}
.band h2:where(:not([class*="was-h"])){font-size:1.2rem;letter-spacing:.2em}
.band h2:where(:not([class*="was-h"])).disp{font-size:1.5rem}
.trusted h2:where(:not([class*="was-h"])).disp{font-size:26px}
.trusted{min-height:480px}
.premier h2:where(:not([class*="was-h"])).disp{font-size:24px}
.tiles{gap:24px}
.tiles-band{padding:40px 16px 36px}
.tile{width:100%;height:200px}
.tile span{font-size:24px}
.tile em{font-size:11px;margin-top:4px}
.cols3 img{width:300px;height:300px}
.contact-info h2:where(:not([class*="was-h"])){font-size:18px}
.step-band{padding-top:64px}
.step-band .wide-photo{width:100%}
.band{padding:48px 20px}
.rband{padding:64px 20px}
.duo img{height:180px}
.duo{gap:24px}
.rating{font-size:1.8rem}
.brands{gap:18px}
.brands img{height:40px}
.qgrid{gap:20px}
.rband .rimgs>div{width:min(220px,100%)}
[data-page="__no-such-route__"] main .mcards .mcard img{max-width:205px}
[data-page="__no-such-route__"] main .rimgs>div{width:min(180px,100%)}
[data-page="__no-such-route__"] main .gallery img{height:64px}
[data-page="__no-such-route__"] main .detail .lead-img img[src*='.png']{aspect-ratio:auto}
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main .features li{font-size:1.05rem;margin:.3rem 0}
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main p,[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main .features p{font-size:1.05rem}
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main .features h3:where(:not([class*="was-h"])),
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main .features :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-size:1.4rem}
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main .irow{margin:2.4rem 0}
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main h3:where(:not([class*="was-h"])),
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-size:1.35rem}
/* mfull: the source bleeds this page's product imagery edge-to-edge on phones
   (P1b-3 settled-instrument round: mobile SHORT flags were source imagery scale) */
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main .trio,[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main .lead-solo{margin-left:-24px;margin-right:-24px;max-width:none}
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main .irow img{width:calc(100% + 48px);max-width:none;margin-left:-24px;margin-right:-24px}
/* mwide: card imagery between the msm cap and full width (source scale) */
[data-page="catalog/gun-safes/stealth-series"] main .mcards .mcard img{max-width:310px}
/* mxtight: extra-tight mobile rhythm (vault-doors source packs its specs) */
[data-page="__no-such-route__"] main .mcards{gap:24px}
[data-page="__no-such-route__"] main .rband{padding:44px 20px}
[data-page="__no-such-route__"] main .rband h2:where(:not([class*="was-h"])){margin-bottom:1.2rem}
[data-page="__no-such-route__"] main>h2:where(:not([class*="was-h"])){margin:1.6rem 0 .6rem}
[data-page="__no-such-route__"] main .detail{gap:20px}
[data-page="__no-such-route__"] main .spec-cols li{margin:0}
[data-page="__no-such-route__"] main p{margin:.5rem 0}
/* mroomy: looser mobile section rhythm (source spreads its short sections) */
[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main h2:where(:not([class*="was-h"])),[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main h3:where(:not([class*="was-h"])),[data-page="catalog/smart-safes/smart-station-models/essential-ds2e"] main :is(h1,h2,h3,h4,h5,h6):where(.was-h3){margin-top:2.4rem}
/* mhead: the source's oversized mobile headlines */
[data-page="__no-such-route__"] main h2:where(:not([class*="was-h"])){font-size:2rem}
[data-page="__no-such-route__"] main h3:where(:not([class*="was-h"])),
[data-page="__no-such-route__"] main :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-size:1.5rem}
}

/* footer: black, centered (source pattern) */
footer{background:var(--band-gray);color:#bbb;margin-top:0;padding:64px 24px;text-align:center;font-size:.9rem}
footer .brand{font-family:var(--display);letter-spacing:.16em;text-transform:uppercase;color:#fff;font-size:.95rem;display:block;margin-bottom:12px}
footer a{color:#fff}
footer p{max-width:720px;margin:.35rem auto}
body:not(.home) footer{margin-top:56px}

/* two-tier catalog: breadcrumbs, why layer, CTA block, PM cross-sell (FD 2026-07-01, per MPS spec) */
.breadcrumb{font-size:.82rem;color:#5a5a5a;margin-bottom:1rem}
.breadcrumb a{color:#5a5a5a}
.breadcrumb a:hover{color:var(--maroon)}
.why-block{margin:2.4rem 0}
.cat-hero{margin:0 auto 1.4rem;max-width:640px}
.cat-hero img{width:100%;height:auto;display:block}
.cta-block{text-align:center;margin:2.4rem 0;padding:2rem;background:#f9f6f3}
.cta-btn{display:inline-block;background:var(--maroon);color:#fff;padding:.75rem 2rem;font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;font-size:1rem}
.cta-btn:hover{background:#600}
.cta-meta{margin:.6rem 0 0;font-size:.88rem;color:#666}
.pm-crosssell{border-left:3px solid var(--maroon);padding:1rem 1.4rem;margin:2rem 0;background:#faf8f5}
.pm-crosssell h3:where(:not([class*="was-h"])),
.pm-crosssell :is(h1,h2,h3,h4,h5,h6):where(.was-h3){font-family:var(--serif);color:var(--maroon);margin:0 0 .5rem;font-size:1.1rem;text-align:left}
.pm-crosssell p{margin:0 0 .5rem;font-size:.95rem}

/* catalog root (Type A): image-forward category gallery — image is the hero of
   each tile, name + blurb overlaid (MPS tile-overlay language: display font,
   white text, deep shadow over a dark scrim). Structure adapted from the PAP
   image-forward catalog tiles; colors are MPS tokens. */
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin:1.8rem 0}
.cat-tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;text-decoration:none;background:var(--band-dark)}
.cat-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.cat-tile:hover img{transform:scale(1.05)}
.cat-tile__cap{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.32) 46%,rgba(0,0,0,0) 76%)}
.cat-tile__name{font-family:var(--display);color:#fff;font-size:1.3rem;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,.92),0 0 4px rgba(0,0,0,.9)}
.cat-tile__blurb{font-family:var(--body);color:#ececec;font-size:.85rem;line-height:1.45;margin-top:.45rem;text-shadow:0 1px 6px rgba(0,0,0,.9)}
@media(max-width:760px){.catgrid{grid-template-columns:1fr 1fr;gap:12px}.cat-tile{aspect-ratio:3/4}.cat-tile__name{font-size:1.05rem}.cat-tile__blurb{display:none}}
.skip-link{position:absolute;left:-9999px;top:1rem;padding:10px 18px;background:var(--maroon);color:#fff;font-weight:700;font-size:.9rem;text-decoration:none;z-index:9999}
.skip-link:focus{left:1rem}
:focus-visible{outline:3px solid var(--maroon);outline-offset:3px}
.band :focus-visible,.band-dark :focus-visible,.band-red :focus-visible{outline-color:#fff}
main.page .rband-full{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);width:100vw;box-sizing:border-box}
@media(prefers-reduced-motion:reduce){.cat-tile img{transition:none}.cat-tile:hover img{transform:none}}

/* ══ ADDITIONS, mountainpasssafes build 1, 2026-09-05 ═════════════════════════════════════════════════════
   Written by mkcss.py. Every rule restores something v1 drew with markup the closed v2 vocabulary cannot
   carry. Nothing here is new design and nothing here is a client preference. */


/* ── INHERITED v1 DEFECT, FIXED. Contrast. mountainpasssafes build 1, 2026-09-05. ──────────────────────
   v1 writes its dark-band heading colour as `.band h2{…color:#ececec}` and `.rband h2{…color:#ececec}`,
   both (0,1,1), and its per-page heading colour as `main.page h2,main.page h3{…color:var(--maroon)}`,
   which is (0,1,2). So on every route whose <main> carries `page` -- 68 of 70 -- the band rule LOSES and
   the heading is drawn #800000 on #333333 or on #1e1e1e. Measured 2026-09-05 with contrast.mjs over all
   70 routes: three elements on the whole site fall under WCAG 4.5:1, and these are the three ---
   /about "Reviews" and "Our Selected Brands" at 1.15:1, and
   /catalog/home-office/estate-safes "Safes Designed to Protect What Matters" at 1.52:1. A heading at
   1.15:1 is not low-contrast, it is invisible. `main.page .band h2` selects EXACTLY those three and
   nothing else (measured: the selector matches 3 elements site-wide, all three of them defective), and
   the value is v1s own #ececec, taken from v1s own rule -- nothing here is chosen.
   AFTER, measured on the built page: 10.69:1 on /about and 14.11:1 on estate-safes. Applied identically to v2 and to the v1-plus-fixes instrument copy. */
main.page .band h2,main.page .band h3,main.page .rband h2,main.page .rband h3{color:#ececec}

/* THE SECOND CURRENT-PAGE MARKER, WHICH IS NOT ON A LINK. v1 marks the current page TWICE in the desktop
   bar: once on the nav <a> whose href equals the path, and -- when that page lives inside the "More"
   dropdown -- once on the TRIGGER itself, `<button class="more-l cur">`. The core's script marks
   `nav a[href]` and cannot reach a <button>/<span> that is not a link, so it is written here instead, per
   route, on the same `data-page` attribute mkcss.py already uses. Measured 2026-09-05 on /about: without it
   v1's trigger is 80.39px wide and v2's is 65.80px, the two `1fr` header tracks stop being equal
   (414.36/501.77 against 428.95/487.17) and the whole right nav sits 15px off -- 5,030 differing pixels on a
   route whose bands are all identical. The eight routes are v1's own eight (`grep -l 'more-l cur'`):
   /about, /catalog, /contact-us-1, /catalog/events, /catalog/home-office, /catalog/outdoor-field,
   /catalog/smart-safes, /catalog/vault-doors -- exactly the eight links that dropdown holds. */
body[data-page="about"] header.site .more-l::before,
body[data-page="catalog"] header.site .more-l::before,
body[data-page="contact-us-1"] header.site .more-l::before,
body[data-page="catalog/events"] header.site .more-l::before,
body[data-page="catalog/home-office"] header.site .more-l::before,
body[data-page="catalog/outdoor-field"] header.site .more-l::before,
body[data-page="catalog/smart-safes"] header.site .more-l::before,
body[data-page="catalog/vault-doors"] header.site .more-l::before { content:'\2013\00a0' }

/* THE MASK. extract-v1.py hashes each inline <svg> into a `--glyph` custom property (icons.css) and the
   generator draws <i class="icon--<hash>">, because an <svg> is markup and decoration is stylesheet. This is
   the one rule that turns that property into a picture. */
[class^="icon--"] {
  display:inline-block;
  -webkit-mask:var(--glyph) center / contain no-repeat;
          mask:var(--glyph) center / contain no-repeat;
}

/* THE TWO MOUNTAIN DIVIDERS. v1's <svg> carries preserveAspectRatio="none" and is stretched by
   `.mdiv svg{width:100%;height:100%}` to fill a 170px (110px for .mdiv-sm) band at ANY viewport width. A
   mask defaults to `contain`, which PRESERVES the ratio: at 390 the 1280x170 artwork would have drawn
   390x51.8 centred in a 170px box instead of filling it. `100% 100%` is v1's own preserveAspectRatio="none",
   spelled the way a mask spells it. The polygon's own fill="#333333" is an SVG ATTRIBUTE, which a mask
   discards, so v1's own colour is restated as the element's background -- the value is v1's, read out of
   v1's markup, not chosen. */
.mdiv [class^="icon--"] {
  -webkit-mask-size:100% 100%; mask-size:100% 100%;
  background-color:#333333;
}

/* INHERITED v1 DEFECT, FIXED -- the desktop header overflow, part (b). See transformation 8 above for the
   measurements and for part (a), which is one value inside v1's own stylesheet. Bounded at BOTH ends: above
   1291 nothing changes, and at 1156 and below v1's own phone header takes over, so this rule cannot reach
   into it. */
@media(max-width:1306px) and (min-width:1171px){
  header.site{padding:0 14px}
  header.site nav.nl,header.site nav.nr{gap:20px}
  header.site a.brand{padding:0 10px}
}

/* THE VIMEO MOUNT'S SERVER-RENDERED FALLBACK. The 2026-09-03 ruling that approved player.vimeo.com also
   requires a script mount to carry fallback content -- "a bare relaxation would have permitted a page that is
   blank without script, which is the actual harm" -- and build 1 shipped 725px of empty grey (Validator F5).
   The slot is now v1's own box holding the video's OWN poster frame, linked to the video. These are v1's own
   `.video-band iframe` declarations, declaration for declaration, so the band's height and everything below
   it are unchanged; the play triangle is drawn HERE because decoration is stylesheet and not content, and
   because it is the one thing that tells a visitor the picture opens a video. */
.video-band a.video-slot { width:min(1100px,100%); aspect-ratio:16/9; border:0; display:block; margin:0 auto;
                           position:relative; overflow:hidden; background:#000 }
.video-band a.video-slot img.video-poster { width:100%; height:100%; object-fit:cover; display:block }
.video-band a.video-slot::after {
  content:''; position:absolute; left:50%; top:50%; width:76px; height:76px; margin:-38px 0 0 -38px;
  border-radius:50%; background:rgba(0,0,0,.62); box-shadow:0 0 0 2px rgba(255,255,255,.9) inset;
}
.video-band a.video-slot::before {
  content:''; position:absolute; left:50%; top:50%; z-index:1; width:0; height:0; margin:-14px 0 0 -8px;
  border-left:24px solid #fff; border-top:14px solid transparent; border-bottom:14px solid transparent;
}
.video-band a.video-slot:hover::after { background:rgba(0,0,0,.78) }

/* THE BOX THE VIMEO EMBED OCCUPIES. [MARK] approved https://player.vimeo.com on 2026-09-03 and
   scripts/safe-html.mjs EMBED_ORIGINS is still [] (read 2026-09-05), so the <iframe> cannot be emitted
   today. These are v1's own `.video-band iframe` declarations, declaration for declaration, on the empty
   element that stands in its place, so the band's height and everything below it do not move. The VIDEO is a
   MAJOR circle and a written STOP; the geometry is not left to drift as well. */
.video-band .video-slot { width:min(1100px,100%); aspect-ratio:16/9; border:0; display:block; margin:0 auto }

/* the 404 body's own style="" attributes, hashed by make-template.py (H-13) */
.u-01d2a0{max-width:720px !important;text-align:center !important;padding:72px 0 !important}
.u-eedb26{color:#fff !important}
.u-8d4a8f{margin:1rem 0 1.6rem !important}
.u-39eadb{margin-top:1.4rem !important}
.u-a79b3b{margin-top:1.6rem !important}

/* GLYPHS, generated by extract-v1.py 2026-09-05. Every inline SVG v1 carried, keyed by content hash and
   drawn as a mask so the element that carries it holds no markup. Decoration is stylesheet, not content. */
.icon--22b10322{--glyph:url("data:image/svg+xml,%3Csvg viewBox=%220 0 1280 170%22 preserveAspectRatio=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpolygon fill=%22%23333333%22 points=%220,167 128,91 256,103 480,72 640,103 800,82 1024,130 1152,113 1280,168 1280,170 0,170%22/%3E%3C/svg%3E")}

/* INLINE STYLES, generated by extract-v1.py 2026-09-05. v1 wrote these as style="" attributes; H-13 forbids the
   attribute, so each distinct declaration list is one utility class, named by hash, carried by the same element. */
.u-6b4e26{background-image:url('https://media.beargrassai.com/mountainpasssafes/backgrounds/blob-5def3e2.png') !important}
.u-19d5f2{background-image:url('https://media.beargrassai.com/mountainpasssafes/backgrounds/ByrnaLifestyle.jpg') !important;background-size:cover !important;background-position:50% 45% !important}
.u-58835f{background-image:url('https://media.beargrassai.com/mountainpasssafes/backgrounds/MantisTraining.jpg') !important;background-size:auto 140% !important;background-position:50% 30% !important}
.u-9f9eb2{background-image:url('https://media.beargrassai.com/mountainpasssafes/backgrounds/ZleoTrailCameras.jpg') !important;background-size:auto 128% !important;background-position:50% 42% !important}
.u-513635{padding:80px 24px 110px !important}
.u-03389c{padding-bottom:18px !important}
.u-a79b3b{margin-top:1.6rem !important}
.u-0b24f0{padding:64px 0 56px !important}
.u-7d3155{padding-bottom:0 !important;margin:0 auto !important;max-width:720px !important}
.u-1da0b5{margin:1rem 0 .3rem !important}
.u-a404cc{font-size:1.15rem !important;font-weight:700 !important;color:#fff !important}
.u-66b9f5{margin:0 0 1.2rem !important}
.u-cc6c10{margin-top:2rem !important}
.u-baf9fa{font-family:var(--body) !important;font-weight:700 !important;color:#fff !important;font-size:15px !important;margin:0 0 .4rem !important}
.u-905008{text-align:center !important}

/* Moves page: Steve's job photos in full. Never crop. Never use .hero-img here. 2026-09-15 */
[data-page="moves-and-deliveries"] main.page{max-width:1120px}
[data-page="moves-and-deliveries"] .moves-lead{max-width:740px;margin:0 auto 1.6rem;text-align:center}
[data-page="moves-and-deliveries"] .moves-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:1.8rem 0 2.2rem;align-items:start}
[data-page="moves-and-deliveries"] .moves-pair figure,
[data-page="moves-and-deliveries"] .moves-full figure{margin:0}
[data-page="moves-and-deliveries"] .moves-pair img,
[data-page="moves-and-deliveries"] .moves-full img{width:100%;height:auto;max-height:none;object-fit:unset;display:block;background:#f3f3f3}
[data-page="moves-and-deliveries"] .moves-full{margin:1.8rem 0 2.2rem;max-width:720px;margin-left:auto;margin-right:auto}
@media(max-width:760px){[data-page="moves-and-deliveries"] .moves-pair{grid-template-columns:1fr;gap:14px}}
