:root{
  --ink:#111820;
  --ink-2:#26313b;
  --paper:#f2efe6;
  --paper-2:#e5e0d4;
  --line:#1c2731;
  --orange:#ef5b2a;
  --yellow:#e9f34b;
  --sky:#b9def0;
  --green:#58c793;
  --white:#fffdf7;
  --muted:#6b716f;
  --shadow:0 16px 40px rgba(17,24,32,.14);
  --max:1240px;
  --display:"Arial Black",Impact,sans-serif;
  --mono:"Courier New",monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.055;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 4px)}
a{color:inherit}
img{max-width:100%;display:block}
button,input{font:inherit}
.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}
.utility{background:var(--ink);color:var(--white);font:700 12px/1.2 "Courier New",monospace;letter-spacing:.08em;text-transform:uppercase}
.utility .container{display:flex;gap:18px;justify-content:space-between;align-items:center;padding:8px 0}
.utility-links{display:flex;gap:18px;flex-wrap:wrap}
.utility a{text-decoration:none;border-bottom:1px solid transparent}.utility a:hover{border-color:var(--yellow)}
.site-header{position:sticky;top:0;z-index:100;background:rgba(242,239,230,.96);backdrop-filter:blur(10px);border-bottom:2px solid var(--ink)}
.nav-wrap{display:flex;align-items:center;min-height:78px;gap:28px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:max-content}
.brand-mark{width:47px;height:47px;border:2px solid var(--ink);display:grid;place-items:center;background:var(--yellow);transform:rotate(-2deg)}
.brand-mark svg{width:34px;height:34px}
.brand-text{font:900 27px/1 var(--display);letter-spacing:.055em}
.brand-text small{display:block;font:700 9px/1.35 "Courier New",monospace;letter-spacing:.12em;margin-top:5px}
.main-nav{margin-left:auto;display:flex;align-items:center;gap:24px}
.main-nav a{text-decoration:none;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.04em;padding:28px 0 24px;border-bottom:4px solid transparent}
.main-nav a:hover,.main-nav a[aria-current="page"]{border-color:var(--orange)}
.nav-cta{background:var(--ink)!important;color:var(--white)!important;padding:12px 16px!important;border:2px solid var(--ink)!important}.nav-cta:hover{background:var(--orange)!important;border-color:var(--orange)!important}
.menu-btn{display:none;margin-left:auto;background:none;border:2px solid var(--ink);padding:9px 12px;font-weight:900;text-transform:uppercase}
.hero{border-bottom:2px solid var(--ink);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);min-height:650px}
.hero-copy{padding:88px max(34px,calc((100vw - var(--max))/2)) 72px max(20px,calc((100vw - var(--max))/2));display:flex;flex-direction:column;justify-content:center;position:relative;background:var(--paper)}
.hero-copy::after{content:"";position:absolute;right:-34px;top:0;bottom:0;width:70px;background:var(--paper);clip-path:polygon(0 0,50% 0,100% 8%,42% 20%,92% 35%,40% 49%,100% 66%,44% 82%,90% 100%,0 100%);z-index:2}
.hero h1{font:900 clamp(56px,8vw,126px)/.82 var(--display);letter-spacing:-.06em;margin:0 0 28px;text-transform:uppercase;max-width:760px}
.hero h1 > span{display:block;color:var(--orange)}
.hero p{font-size:20px;max-width:720px;margin:0 0 34px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;border:2px solid var(--ink);padding:13px 18px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;background:var(--ink);color:var(--white);transition:.18s ease;cursor:pointer;border-radius:0}
.btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--orange)}
.btn.alt{background:transparent;color:var(--ink)}.btn.alt:hover{background:var(--yellow)}
.btn.orange{background:var(--orange);border-color:var(--orange)}
.hero-media{min-height:650px;position:relative;background:#86cbe6;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.02)}
.hero-media .fallback{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(155deg,var(--sky),#77b9d3 65%,#4f8da4);z-index:-1}
.flight-note{position:absolute;right:22px;bottom:22px;background:var(--yellow);border:2px solid var(--ink);padding:12px 14px;font:700 12px/1.4 "Courier New",monospace;text-transform:uppercase;box-shadow:6px 6px 0 rgba(17,24,32,.25)}
.spec-strip{background:var(--ink);color:var(--white);overflow:hidden;border-bottom:2px solid var(--ink)}
.spec-track{display:flex;width:max-content;animation:marquee 32s linear infinite}.spec-track span{padding:14px 28px;border-right:1px solid #55606a;font:700 13px/1 "Courier New",monospace;text-transform:uppercase;letter-spacing:.07em}.spec-track b{color:var(--yellow)}
@keyframes marquee{to{transform:translateX(-50%)}}
.section{padding:92px 0;border-bottom:2px solid var(--ink)}
.section.tight{padding:64px 0}
.section.dark{background:var(--ink);color:var(--white)}
.section.yellow{background:var(--yellow)}
.section.sky{background:var(--sky)}
.section-head{display:grid;grid-template-columns:minmax(0,.82fr) minmax(300px,.55fr);gap:50px;align-items:end;margin-bottom:46px}
.section-head h2,.page-hero h1{font:900 clamp(42px,6vw,82px)/.92 var(--display);letter-spacing:-.045em;text-transform:uppercase;margin:0}
.section-head p{font-size:18px;margin:0;max-width:580px}
.rule{border:0;border-top:2px solid currentColor;margin:24px 0}
.path-grid{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid var(--ink)}
.path{padding:32px;min-height:330px;display:flex;flex-direction:column;border-right:2px solid var(--ink);background:var(--white);position:relative;overflow:hidden}
.path:last-child{border-right:0}.path:nth-child(2){background:var(--yellow)}.path:nth-child(3){background:var(--sky)}
.path h3{font:900 31px/1 Arial Black,Impact,sans-serif;text-transform:uppercase;margin:0 0 16px}.path p{font-size:17px;margin:0 0 25px}.path .btn{margin-top:auto;align-self:flex-start}
.path svg{width:150px;height:80px;margin:auto 0 20px;opacity:.92}
.aircraft-feature{display:grid;grid-template-columns:1.07fr .93fr;border:2px solid var(--ink);background:var(--white)}
.aircraft-image{min-height:620px;position:relative;background:var(--sky)}
.aircraft-image img{width:100%;height:100%;object-fit:cover}
.aircraft-copy{padding:50px;display:flex;flex-direction:column}
.aircraft-copy h3{font:900 clamp(40px,5vw,72px)/.9 Arial Black,Impact,sans-serif;text-transform:uppercase;letter-spacing:-.04em;margin:0 0 22px}.aircraft-copy p{font-size:18px}
.data-table{width:100%;border-collapse:collapse;margin:18px 0 28px;font-size:15px}.data-table th,.data-table td{border-bottom:1px solid var(--ink);text-align:left;padding:11px 7px}.data-table th{font:700 11px/1.2 "Courier New",monospace;text-transform:uppercase;letter-spacing:.06em}.data-table td:last-child,.data-table th:last-child{text-align:right}.dark .data-table th,.dark .data-table td{border-color:#56616b}
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}.work-copy h3{font:900 44px/1 Arial Black,Impact,sans-serif;text-transform:uppercase;margin:0 0 18px}.work-copy p{font-size:18px}.assembly-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px}.assembly-strip figure{margin:0;border:2px solid var(--ink);background:var(--paper-2);min-height:170px;position:relative;overflow:hidden}.assembly-strip img{width:100%;height:100%;object-fit:cover;min-height:170px}.assembly-strip figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--white);padding:7px 9px;font:700 10px/1.2 "Courier New",monospace;text-transform:uppercase}
.checklist{list-style:none;padding:0;margin:26px 0}.checklist li{padding:12px 0 12px 30px;border-bottom:1px solid currentColor;position:relative}.checklist li::before{content:"✦";position:absolute;left:3px;color:var(--orange);font-weight:900}
.shop-band{display:grid;grid-template-columns:1fr 1fr;gap:0;border:2px solid var(--ink);background:var(--white)}
.shop-band>div{padding:42px}.shop-band>div:first-child{border-right:2px solid var(--ink)}.shop-band h3{font:900 40px/1 Arial Black,Impact,sans-serif;margin:0 0 18px;text-transform:uppercase}.shop-links{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);border-left:2px solid var(--ink);margin-top:24px}.shop-links a{padding:14px;text-decoration:none;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);font-weight:800;background:var(--paper)}.shop-links a:hover{background:var(--yellow)}
.quote{border-left:10px solid var(--orange);padding:8px 0 8px 26px;font:700 clamp(25px,3vw,42px)/1.22 Georgia,serif;margin:0}
.contact-band{display:grid;grid-template-columns:1.1fr .9fr;border:2px solid var(--ink);background:var(--white)}
.contact-band>div{padding:44px}.contact-band>div:last-child{background:var(--orange);color:var(--white)}.contact-band h3{font:900 42px/1 Arial Black,Impact,sans-serif;text-transform:uppercase;margin:0 0 20px}.contact-list{list-style:none;padding:0;margin:20px 0 0}.contact-list li{padding:9px 0;border-bottom:1px solid currentColor}.contact-list a{text-decoration:none;font-weight:800}
.footer{background:#080c10;color:#d7d8d5;padding:46px 0 30px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}.footer h4{margin:0 0 14px;color:var(--yellow);text-transform:uppercase;font:700 12px/1 "Courier New",monospace;letter-spacing:.08em}.footer a{display:block;color:inherit;text-decoration:none;margin:7px 0}.footer a:hover{color:var(--yellow)}.footer small{display:block;margin-top:35px;border-top:1px solid #303840;padding-top:18px;color:#8f999f}
.page-hero{padding:72px 0 50px;border-bottom:2px solid var(--ink);background:var(--yellow)}.page-hero.sky{background:var(--sky)}.page-hero.orange{background:var(--orange);color:var(--white)}.page-hero p{font-size:20px;max-width:760px;margin:22px 0 0}.crumbs{font:700 12px/1.3 "Courier New",monospace;text-transform:uppercase;letter-spacing:.07em;margin-bottom:26px}.crumbs a{text-decoration:none}
.tabs{display:flex;gap:0;flex-wrap:wrap;border:2px solid var(--ink);margin-bottom:38px}.tab-btn{border:0;border-right:2px solid var(--ink);border-bottom:0;background:var(--paper);padding:13px 18px;font-weight:900;text-transform:uppercase;cursor:pointer;border-radius:0}.tab-btn.active,.tab-btn:hover{background:var(--ink);color:var(--white)}.tab-panel{display:none}.tab-panel.active{display:block;animation:fadeUp .25s ease}@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.copy h2{font:900 46px/1 Arial Black,Impact,sans-serif;text-transform:uppercase;margin:0 0 18px}.copy h3{font:900 27px/1.05 Arial Black,Impact,sans-serif;text-transform:uppercase;margin:32px 0 14px}.copy p,.copy li{font-size:17px}.copy ul{padding-left:20px}
.price-table{width:100%;border-collapse:collapse;border:2px solid var(--ink);background:var(--white)}.price-table th,.price-table td{padding:13px 14px;border-bottom:1px solid var(--ink);vertical-align:top}.price-table th{background:var(--ink);color:var(--white);text-align:left;text-transform:uppercase;font:700 12px/1.2 "Courier New",monospace;letter-spacing:.06em}.price-table td:last-child{font-weight:900;white-space:nowrap}.price-table tr:last-child td{border-bottom:0}.price-table tr:hover td{background:#fbf7df}
.notice{border:2px solid var(--ink);padding:20px;background:var(--yellow);font-weight:700;margin:28px 0}.notice.orange{background:var(--orange);color:var(--white)}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.gallery-grid figure{margin:0;border:2px solid var(--ink);background:var(--paper-2);min-height:190px;overflow:hidden}.gallery-grid img{width:100%;height:190px;object-fit:cover}.gallery-grid figcaption{padding:9px 10px;font:700 10px/1.2 "Courier New",monospace;text-transform:uppercase}
.color-list{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.swatch{border:2px solid var(--ink);padding:10px 12px;background:var(--white);font-weight:800;box-shadow:3px 3px 0 rgba(17,24,32,.13)}
.faq-list{border-top:2px solid var(--ink)}.faq-item{border-bottom:2px solid var(--ink)}.faq-q{width:100%;background:none;border:0;text-align:left;padding:20px 42px 20px 0;font-weight:900;font-size:19px;cursor:pointer;position:relative}.faq-q::after{content:"+";position:absolute;right:4px;font:900 26px/1 Arial Black}.faq-q[aria-expanded="true"]::after{content:"−"}.faq-a{display:none;padding:0 0 22px;max-width:900px;font-size:16px}.faq-a.open{display:block}
.catalog-search{display:flex;gap:10px;margin:0 0 30px}.catalog-search input{flex:1;border:2px solid var(--ink);background:var(--white);padding:14px 16px;border-radius:0}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink);border-left:2px solid var(--ink)}.catalog-item{padding:24px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);background:var(--white);display:flex;flex-direction:column;min-height:245px}.catalog-item h3{font:900 24px/1.05 Arial Black,Impact,sans-serif;text-transform:uppercase;margin:0 0 12px}.catalog-item p{margin:0 0 20px}.catalog-item .price{font:900 21px/1 "Courier New",monospace;margin-top:auto;margin-bottom:16px}.catalog-item .btn{align-self:flex-start}.catalog-item.hidden{display:none}
.archive-links{columns:2;column-gap:30px;border-top:2px solid var(--ink);padding-top:16px}.archive-links a{display:block;padding:9px 0;border-bottom:1px solid var(--ink);text-decoration:none;font-weight:800;break-inside:avoid}.archive-links a:hover{color:var(--orange)}
.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.spec-box{border:2px solid var(--ink);background:var(--white);padding:26px}.spec-box h3{font:900 27px/1 var(--display);text-transform:uppercase;margin:0 0 16px}.spec-box dl{display:grid;grid-template-columns:1fr auto;gap:0;margin:0}.spec-box dt,.spec-box dd{padding:8px 0;border-bottom:1px solid #b3b0aa}.spec-box dd{text-align:right;font-weight:800;margin:0}
.timeline{border-left:4px solid var(--ink);padding-left:28px}.timeline article{padding:0 0 34px;position:relative}.timeline article::before{content:"";width:14px;height:14px;background:var(--orange);border:2px solid var(--ink);position:absolute;left:-38px;top:3px}.timeline h3{margin:0 0 8px;font:900 24px/1 Arial Black,Impact,sans-serif;text-transform:uppercase}.timeline p{margin:0}
.remote-note{font:700 11px/1.4 "Courier New",monospace;color:var(--muted);margin-top:12px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media (max-width:960px){.main-nav{display:none;position:absolute;left:0;right:0;top:78px;background:var(--paper);border-bottom:2px solid var(--ink);padding:8px 20px 20px;flex-direction:column;align-items:stretch;gap:0}.main-nav.open{display:flex}.main-nav a{padding:14px 0;border-bottom:1px solid var(--ink)}.menu-btn{display:block}.hero-grid{grid-template-columns:1fr}.hero-copy{padding:68px 24px}.hero-copy::after{display:none}.hero-media{min-height:420px}.section-head{grid-template-columns:1fr;gap:16px}.path-grid{grid-template-columns:1fr}.path{border-right:0;border-bottom:2px solid var(--ink);min-height:260px}.path:last-child{border-bottom:0}.aircraft-feature,.work-grid,.shop-band,.contact-band,.two-col{grid-template-columns:1fr}.aircraft-image{min-height:420px}.shop-band>div:first-child{border-right:0;border-bottom:2px solid var(--ink)}.three-col{grid-template-columns:1fr}.catalog-grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.spec-grid{grid-template-columns:1fr}}
@media (max-width:640px){.container{width:min(calc(100% - 24px),var(--max))}.utility .container{align-items:flex-start;flex-direction:column;gap:5px}.utility-links{gap:10px}.brand-text{font-size:22px}.brand-mark{width:42px;height:42px}.hero h1{font-size:58px}.hero p{font-size:18px}.section{padding:64px 0}.section-head h2,.page-hero h1{font-size:47px}.aircraft-copy{padding:28px}.gallery-grid,.catalog-grid,.footer-grid{grid-template-columns:1fr}.catalog-item{min-height:auto}.archive-links{columns:1}.tabs{display:grid;grid-template-columns:1fr 1fr}.tab-btn{border-bottom:1px solid var(--ink)}.shop-links{grid-template-columns:1fr}.spec-track span{padding-inline:20px}.hero-media{min-height:340px}.contact-band>div,.shop-band>div{padding:28px}.section-head{margin-bottom:30px}}


/* Direct PayPal checkout */
.checkout-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 22px}
.checkout-note{border:2px solid var(--ink);background:#fff;padding:14px 16px;margin:0 0 18px;font-size:.94rem;line-height:1.55}
.order-group{border-top:2px solid var(--ink);background:#fff}
.order-group:last-child{border-bottom:2px solid var(--ink)}
.order-group summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:20px 4px;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.order-group summary::-webkit-details-marker{display:none}
.order-group summary span:last-child{font-family:var(--mono);font-size:.78rem;font-weight:700;opacity:.65;white-space:nowrap}
.order-group[open] summary{border-bottom:1px solid rgba(20,28,34,.25)}
.buy-list{display:grid}
.buy-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 210px;gap:18px;align-items:center;padding:16px 4px;border-bottom:1px solid rgba(20,28,34,.18)}
.buy-row:last-child{border-bottom:0}
.buy-row strong{display:block;font-size:1rem;margin-bottom:4px}
.buy-row span{display:block;font-size:.9rem;line-height:1.45;opacity:.72}
.buy-price{font-family:var(--display);font-size:1.08rem;font-weight:900;text-align:right}
.paypal-btn{width:100%;text-align:center;background:#ffc439;border-color:var(--ink);color:var(--ink)}
.paypal-btn:hover{background:#ffb800}
.quote-box{padding:18px 4px 22px;max-width:850px}
.quote-box p{line-height:1.65;margin-top:0}
@media(max-width:760px){.buy-row{grid-template-columns:1fr;gap:10px;padding:18px 2px}.buy-price{text-align:left}.buy-row .btn{width:100%}.order-group summary{align-items:flex-start}.order-group summary span:last-child{white-space:normal;text-align:right}}

/* QA polish */
.skip-link{position:fixed;left:12px;top:12px;z-index:10000;background:var(--yellow);border:2px solid var(--ink);padding:10px 14px;font-weight:900;transform:translateY(-160%)}
.skip-link:focus{transform:none}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.section-head h2,.page-hero h1,.copy h2,.copy h3,.catalog-item h3,.aircraft-copy h3{text-wrap:balance}
.section-head p,.page-hero p{text-wrap:pretty}
.btn{min-height:48px;text-align:center}
.price-table th:last-child,.price-table td:last-child{text-align:right}
.price-table td:first-child{overflow-wrap:anywhere}
.order-group summary{align-items:center}
.order-group summary span:first-child{text-align:left}
.order-group summary span:last-child{text-align:right}
.spec-box h3,.contact-band h3{text-wrap:balance}
@media(max-width:640px){.price-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.price-table th,.price-table td{min-width:120px}.page-hero{text-align:left}.hero-actions .btn{flex:1 1 220px}.order-group summary{gap:12px}}

/* Keep actions aligned across repeated equal-height card rows. */
.three-col > .spec-box{
  display:flex;
  flex-direction:column;
  height:100%;
}
.three-col > .spec-box > .btn,
.three-col > .spec-box > .hero-actions{
  margin-top:auto;
  align-self:flex-start;
}
.path-grid > .path,
.catalog-grid > .catalog-item{
  height:100%;
}
@media (min-width:961px){
  .three-col > .spec-box > .btn{
    font-size:14px;
    padding-inline:14px;
    white-space:nowrap;
  }
}

/* Unified parts storefront */
.store-actions{display:flex;gap:12px;flex-wrap:wrap;margin:-8px 0 28px}
.store-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px) auto;gap:12px;align-items:end;padding:20px;border:2px solid var(--ink);background:var(--white)}
.store-search,.store-category{display:grid;gap:7px}
.store-control-label{font:700 11px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.store-controls input,.store-controls select{width:100%;min-height:54px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:0;padding:12px 14px;font-size:16px}
.store-controls select{cursor:pointer}
.store-reset{min-height:54px;white-space:nowrap}
.store-status{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;padding:14px 2px 22px;border-bottom:2px solid var(--ink);font-size:14px}
.store-status p{margin:0;max-width:650px}
.store-status p:first-child{font-weight:900}
.store-results{display:grid;gap:32px;padding-top:32px}
.product-group{scroll-margin-top:110px;background:var(--white);border:2px solid var(--ink)}
.product-group-head{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 26px;background:var(--yellow);border-bottom:2px solid var(--ink)}
.product-group-head h3{font:900 clamp(26px,3vw,38px)/.96 var(--display);letter-spacing:-.025em;text-transform:uppercase;margin:0 0 8px;text-wrap:balance}
.product-group-head p{margin:0;max-width:760px;font-size:16px;line-height:1.48}
.product-group-meta{flex:0 0 auto;border:2px solid var(--ink);background:var(--white);min-height:38px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;font:700 12px/1.15 var(--mono);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.product-group .buy-list{padding:0 24px}
.product-group .buy-row{padding:18px 0}
.product-group .buy-row:hover{background:#fbf7df}
.product-group .buy-row:hover>div:first-child{transform:translateX(3px)}
.product-group .buy-row>div:first-child{transition:transform .16s ease}
.product-group .quote-box{max-width:none;padding:24px 26px 28px}
.product-group .quote-box .price-table{margin:18px 0}
.store-empty{border:2px solid var(--ink);background:var(--white);padding:36px;text-align:center}
.store-empty h3{font:900 30px/1 var(--display);text-transform:uppercase;margin:0 0 10px}
.store-empty p{margin:0 0 20px}
.product-group[hidden],.buy-row[hidden],.store-empty[hidden],.store-reset[hidden]{display:none!important}

@media(max-width:900px){
  .store-controls{grid-template-columns:1fr 1fr}
  .store-reset{grid-column:1/-1;width:max-content}
  .store-status{display:grid;gap:8px}
}
@media(max-width:640px){
  .store-actions{display:grid;grid-template-columns:1fr}
  .store-actions .btn{width:100%}
  .store-controls{grid-template-columns:1fr;padding:16px}
  .store-reset{grid-column:auto;width:100%}
  .product-group-head{align-items:flex-start;flex-direction:column;padding:20px}
  .product-group-meta{white-space:normal}
  .product-group .buy-list{padding:0 18px}
  .product-group .quote-box{padding:20px}
  .store-results{gap:22px;padding-top:22px}
}

/* Compact category browsing: one click reveals the actual products. */
details.product-group{overflow:clip}
details.product-group > summary{list-style:none;cursor:pointer;position:relative;padding-right:78px}
details.product-group > summary::-webkit-details-marker{display:none}
details.product-group > summary::after{content:"+";position:absolute;right:26px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:2px solid var(--ink);background:var(--white);display:grid;place-items:center;font:900 24px/1 var(--display)}
details.product-group[open] > summary::after{content:"−"}
details.product-group > summary:hover{background:#f1fb53}
details.product-group:not([open]) .buy-list,details.product-group:not([open]) .quote-box{display:none}
@media(max-width:640px){details.product-group > summary{padding-right:64px}details.product-group > summary::after{right:18px;top:20px;transform:none;width:34px;height:34px}.product-group-head{padding-right:64px}}
.product-group-copy{display:block;min-width:0}
.product-group-title{display:block;font:900 clamp(26px,3vw,38px)/.96 var(--display);letter-spacing:-.025em;text-transform:uppercase;margin:0 0 8px;text-wrap:balance}
.product-group-desc{display:block;max-width:760px;font-size:16px;line-height:1.48;font-weight:400;text-transform:none;letter-spacing:0}
.store-status{display:block}
.store-status p+p{margin-top:6px}


/* Shop hierarchy + specialty shortcuts */
.shop-page-hero{padding:52px 0 42px}
.shop-page-hero .crumbs{margin-bottom:18px}
.page-hero-actions{margin-top:26px}
.shop-hero-jumps .btn{min-width:190px}
.section[id]{scroll-margin-top:110px}
#store.section.tight{padding-top:46px}
.store-section-head{margin-bottom:24px}
.store-section-head h2{font-size:clamp(38px,5vw,64px)}
.store-actions{margin:0 0 22px}
/* Light price tables must remain readable inside dark sections. */
.price-table td{color:var(--ink);background:var(--white)}
.price-table tr:hover td{background:#fbf7df}
@media(max-width:640px){
  .shop-page-hero{padding:40px 0 34px}
  #store.section.tight{padding-top:36px}
  .shop-hero-jumps{display:grid;grid-template-columns:1fr}
  .shop-hero-jumps .btn{width:100%;min-width:0}
}

/* ------------------------------------------------------------
   Hangar motion + finishing pass
   Mechanical, drafting-table motion with a light aviation cue.
   ------------------------------------------------------------ */

/* Keep yellow notices readable everywhere, including dark sections. */
.notice{color:var(--ink)}
.notice a{color:inherit}
.notice.orange{color:var(--white)}

/* A page hero should feel like a technical drawing, not a flat color slab. */
.page-hero{position:relative;isolation:isolate;overflow:hidden}
.page-hero>.container{position:relative;z-index:2}
.page-hero::before{
  content:"";
  position:absolute;
  inset:-18px;
  z-index:0;
  pointer-events:none;
  opacity:.13;
  background-image:
    linear-gradient(rgba(17,24,32,.22) 1px,transparent 1px),
    linear-gradient(90deg,rgba(17,24,32,.22) 1px,transparent 1px),
    linear-gradient(rgba(17,24,32,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(17,24,32,.10) 1px,transparent 1px);
  background-size:48px 48px,48px 48px,12px 12px,12px 12px;
  animation:draftingDrift 22s linear infinite;
}
.page-hero::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;height:14px;
  z-index:1;
  pointer-events:none;
  opacity:.34;
  background:
    repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 24px),
    repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 120px);
  background-size:auto 5px,auto 10px;
  background-position:left bottom,left bottom;
  background-repeat:repeat-x;
}
@keyframes draftingDrift{to{transform:translate3d(48px,48px,0)}}

/* Section headings get a short drafting line that builds with the content. */
.section-head h2,.copy h2,.copy h3{position:relative}
.section-head h2::after{
  content:"";
  display:block;
  width:min(150px,34%);
  height:5px;
  margin-top:16px;
  background:repeating-linear-gradient(90deg,currentColor 0 18px,transparent 18px 25px);
  transform-origin:left center;
  transform:scaleX(.18);
  opacity:.34;
  transition:transform .65s cubic-bezier(.2,.8,.2,1),opacity .65s ease;
}
.motion-in.section-head h2::after,.section-head.motion-in h2::after{transform:scaleX(1);opacity:.7}

/* Homepage: a single animated flight trace over the main aircraft image. */
.hero-media{isolation:isolate}
.hero-media>img,.hero-media>.fallback{position:relative;z-index:0}
.hero-flight-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:visible}
.hero-flight-overlay .flight-route{
  fill:none;
  stroke:rgba(255,253,247,.78);
  stroke-width:3;
  stroke-dasharray:10 12;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 1px 0 rgba(17,24,32,.35));
  animation:routeDraw 1.35s ease-out both;
}
.hero-flight-overlay .flight-plane-chip{filter:drop-shadow(2px 3px 0 rgba(17,24,32,.18))}
@keyframes routeDraw{from{stroke-dashoffset:160;opacity:0}to{stroke-dashoffset:0;opacity:1}}
.flight-note{z-index:3}

/* Motion system: JS only adds the hidden state when motion is supported. */
html.motion-ready .motion-item{
  opacity:0;
  transform:translateY(20px);
  transition:
    opacity .55s cubic-bezier(.2,.8,.2,1),
    transform .55s cubic-bezier(.2,.8,.2,1),
    box-shadow .18s ease;
  transition-delay:var(--motion-delay,0ms);
}
html.motion-ready .motion-item.motion-in{opacity:1;transform:none}

/* Tactile shop / builder UI. */
.spec-box,.path,.catalog-item,.product-group{transition:transform .18s ease,box-shadow .18s ease}
@media (hover:hover){
  .spec-box:hover,.path:hover,.catalog-item:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(17,24,32,.18)}
  .brand:hover .brand-mark{animation:hangarNudge .52s cubic-bezier(.2,.8,.2,1)}
}
@keyframes hangarNudge{0%,100%{transform:rotate(-2deg) translateY(0)}35%{transform:rotate(1deg) translateY(-3px)}65%{transform:rotate(-3deg) translateY(1px)}}

.btn{position:relative;overflow:hidden}
.btn::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.24) 42%,transparent 63%);
  transform:translateX(-140%);
  transition:transform .45s ease;
}
.btn:hover::after{transform:translateX(140%)}
.btn:active{transform:translate(1px,1px);box-shadow:none}

.gallery-grid figure,.assembly-strip figure,.aircraft-image{overflow:hidden}
.gallery-grid img,.assembly-strip img,.aircraft-image img,.hero-media>img{transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .45s ease}
@media (hover:hover){
  .gallery-grid figure:hover img,.assembly-strip figure:hover img,.aircraft-image:hover img{transform:scale(1.025);filter:saturate(1.08) contrast(1.035)}
}

/* Product groups open like a labeled shop drawer. */
details.product-group[open]>.buy-list,
details.product-group[open]>.quote-box{animation:drawerOpen .28s cubic-bezier(.2,.8,.2,1) both}
details.product-group>summary::after{transition:transform .2s ease,background .2s ease}
details.product-group[open]>summary::after{animation:togglePop .24s ease}
@keyframes drawerOpen{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@keyframes togglePop{0%{transform:translateY(-50%) scale(.82)}70%{transform:translateY(-50%) scale(1.08)}100%{transform:translateY(-50%) scale(1)}}

/* Give tables and list rows a precise instrument-panel response. */
.price-table td,.data-table td{transition:background-color .16s ease,color .16s ease}
.price-table tbody tr:hover td,.data-table tbody tr:hover td{background:#fbf7df}
.dark .data-table tbody tr:hover td{background:rgba(233,243,75,.09)}
.buy-row{position:relative}
.buy-row::before{
  content:"";
  position:absolute;
  left:-24px;top:8px;bottom:8px;width:4px;
  background:var(--orange);
  transform:scaleY(0);
  transform-origin:center;
  transition:transform .18s ease;
}
.product-group .buy-row:hover::before{transform:scaleY(1)}

/* Search controls get a focused, instrument-like active state. */
.store-controls{transition:box-shadow .18s ease,transform .18s ease}
.store-controls:focus-within{box-shadow:6px 6px 0 rgba(17,24,32,.14);transform:translate(-1px,-1px)}
.store-controls input:focus,.store-controls select:focus{background:#fffef5}

@media(max-width:640px){
  .page-hero::before{opacity:.09}
  .page-hero::after{height:10px}
  .buy-row::before{left:-18px}
}

@media (prefers-reduced-motion:reduce){
  .page-hero::before,.hero-flight-overlay .flight-route{animation:none!important}
  html.motion-ready .motion-item{opacity:1!important;transform:none!important}
  .btn::after{display:none}
}

/* Progressive line should still look complete if JavaScript is unavailable. */
.section-head h2::after{transform:scaleX(1);opacity:.7}
html.motion-ready .section-head h2::after{transform:scaleX(.18);opacity:.34}
html.motion-ready .section-head.motion-in h2::after{transform:scaleX(1);opacity:.7}
.dark .notice:not(.orange){color:var(--ink)}


/* ------------------------------------------------------------
   Split-flap + heading approach motion
   A small nod to old airport boards without turning the site into a theme park.
   ------------------------------------------------------------ */
.split-flap-text{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.12em .24em;
  width:max-content;
  max-width:100%;
  line-height:1;
  letter-spacing:0!important;
}
.split-flap-word{display:inline-flex;gap:.035em;white-space:nowrap}
.split-flap-space{display:none}
.split-flap-char{
  position:relative;
  display:inline-grid;
  place-items:center;
  min-width:.62em;
  height:.96em;
  padding:.01em .04em 0;
  overflow:hidden;
  background:var(--flap-bg,var(--ink));
  color:var(--flap-fg,var(--yellow));
  border:1px solid var(--flap-border,rgba(255,255,255,.18));
  box-shadow:
    inset 0 .06em 0 rgba(255,255,255,.08),
    inset 0 -.08em 0 rgba(0,0,0,.26),
    .035em .045em 0 rgba(17,24,32,.2);
  perspective:260px;
  transform:translateZ(0);
}
.split-flap-char::after{
  content:"";
  position:absolute;
  left:0;right:0;top:50%;
  height:1px;
  background:rgba(0,0,0,.62);
  box-shadow:0 1px 0 rgba(255,255,255,.10);
  z-index:2;
  pointer-events:none;
}
.split-flap-glyph{
  display:block;
  line-height:1;
  transform-origin:center center;
  backface-visibility:hidden;
  will-change:transform,opacity;
}
.split-flap-char.flap-tick .split-flap-glyph{animation:splitFlapTick .105s linear}
.split-flap-dark{--flap-bg:var(--ink);--flap-fg:var(--yellow);--flap-border:rgba(255,255,255,.2)}
.split-flap-paper{--flap-bg:var(--paper);--flap-fg:var(--ink);--flap-border:rgba(17,24,32,.45)}
.split-flap-orange{--flap-bg:var(--ink);--flap-fg:var(--orange);--flap-border:rgba(255,255,255,.2)}
@keyframes splitFlapTick{
  0%{transform:rotateX(0deg);opacity:1}
  46%{transform:rotateX(-82deg);opacity:.42}
  52%{transform:rotateX(76deg);opacity:.5}
  100%{transform:rotateX(0deg);opacity:1}
}

/* Preserve the homepage two-line composition while giving FLY IT the board treatment. */
.hero h1>.split-flap-text{display:flex;flex-wrap:nowrap;align-items:center;gap:.12em .24em;margin-top:.10em;font-size:.88em}
.hero h1>.split-flap-text .split-flap-char{box-shadow:inset 0 .06em 0 rgba(255,255,255,.07),inset 0 -.08em 0 rgba(0,0,0,.28),.04em .045em 0 rgba(17,24,32,.18)}
.page-hero h1.split-flap-text{font-size:clamp(38px,5.2vw,72px)}
.page-hero.orange h1.split-flap-text{--flap-bg:var(--paper);--flap-fg:var(--ink)}

/* Words arrive like a shallow final approach: quick, staggered, and readable. */
.flight-word{display:inline-block;will-change:transform,opacity,filter,clip-path}
html.motion-ready .section-head h2 .flight-word,
html.motion-ready .page-hero h1 .flight-word{
  opacity:0;
  transform:translate3d(-26px,12px,0) skewX(-4deg);
  filter:blur(4px);
  clip-path:inset(0 100% 0 0);
  transition:
    opacity .42s ease,
    transform .58s cubic-bezier(.16,.78,.24,1),
    filter .5s ease,
    clip-path .62s cubic-bezier(.16,.78,.24,1);
  transition-delay:calc(var(--motion-delay,0ms) + (var(--word-index,0) * 58ms));
}
html.motion-ready .section-head.motion-in h2 .flight-word,
html.motion-ready .page-hero .motion-in h1 .flight-word,
html.motion-ready .page-hero h1.motion-in .flight-word{
  opacity:1;
  transform:none;
  filter:none;
  clip-path:inset(0 0 0 0);
}

@media(max-width:640px){
  .split-flap-text{gap:.10em .18em}
  .split-flap-char{min-width:.60em}
  .hero h1>.split-flap-text{font-size:.82em}
  .page-hero h1.split-flap-text{font-size:clamp(34px,10.5vw,48px)}
}

@media (prefers-reduced-motion:reduce){
  .split-flap-char.flap-tick .split-flap-glyph{animation:none!important}
  .flight-word{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}
}

/* Site-owned cart in the primary navigation and slide-out order manifest. */
.nav-cart{position:relative;display:inline-flex!important;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:10px 11px!important;border:2px solid var(--ink)!important;background:var(--paper);color:var(--ink)!important;text-decoration:none!important;line-height:1}
.nav-cart:hover{background:var(--yellow);border-color:var(--ink)!important}
.nav-cart-icon{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:square;stroke-linejoin:miter;flex:0 0 auto}
.nav-cart-label{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.nav-cart-count{display:inline-grid;place-items:center;min-width:25px;height:25px;padding:0 6px;background:var(--orange);border:2px solid var(--ink);font-family:var(--mono);font-size:11px;font-weight:900;line-height:1;color:var(--ink)}
.nav-cart.has-items .nav-cart-count{animation:cart-counter-pop .22s steps(2,end)}
@keyframes cart-counter-pop{0%{transform:scale(1)}45%{transform:scale(1.18)}100%{transform:scale(1)}}
body.cart-open{overflow:hidden}
.cart-backdrop{position:fixed;inset:0;z-index:120;background:rgba(10,16,20,.48);opacity:0;transition:opacity .2s ease}
.cart-backdrop.open{opacity:1}
.site-cart-panel{position:fixed;z-index:121;top:0;right:0;width:min(560px,100vw);height:100dvh;background:var(--paper);border-left:3px solid var(--ink);display:grid;grid-template-rows:auto minmax(0,1fr) auto;transform:translateX(102%);transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:-18px 0 50px rgba(10,16,20,.16)}
.site-cart-panel.open{transform:translateX(0)}
.site-cart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:26px 28px 22px;background:var(--yellow);border-bottom:3px solid var(--ink)}
.site-cart-head h2{margin:0;font:900 clamp(34px,5vw,54px)/.9 var(--display);letter-spacing:-.035em;text-transform:uppercase}
.site-cart-head p{margin:9px 0 0;font:700 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.04em}
.cart-close{appearance:none;border:2px solid var(--ink);background:var(--paper);min-height:40px;padding:0 13px;font:900 12px/1 var(--mono);text-transform:uppercase;cursor:pointer}
.cart-close:hover{background:var(--orange)}
.site-cart-body{overflow:auto;padding:0 28px}
.cart-empty{padding:48px 0;text-align:left}
.cart-empty[hidden],.site-cart-foot[hidden]{display:none!important}
.cart-empty strong{display:block;font:900 28px/1 var(--display);text-transform:uppercase;margin-bottom:8px}
.cart-empty p{max-width:420px;margin:0 0 22px;line-height:1.55}
.cart-lines{display:grid}
.cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"info qty total" "info remove total";gap:8px 18px;align-items:center;padding:22px 0;border-bottom:1px solid rgba(20,28,34,.22)}
.cart-line-info{grid-area:info;min-width:0}.cart-line-info strong{display:block;font-size:15px;line-height:1.25}.cart-line-info span{display:block;margin-top:5px;font:700 12px/1.3 var(--mono);opacity:.66}
.cart-qty{grid-area:qty;display:grid;grid-template-columns:34px 36px 34px;align-items:center;border:2px solid var(--ink);background:var(--white)}
.cart-qty button{width:34px;height:34px;border:0;background:transparent;font:900 20px/1 var(--display);cursor:pointer}.cart-qty button:hover{background:var(--yellow)}
.cart-qty span{display:grid;place-items:center;height:34px;border-left:1px solid var(--ink);border-right:1px solid var(--ink);font:800 12px/1 var(--mono)}
.cart-line-total{grid-area:total;min-width:82px;text-align:right;font:900 15px/1 var(--mono)}
.cart-remove{grid-area:remove;justify-self:start;border:0;background:transparent;padding:0;color:inherit;font:800 11px/1.2 var(--mono);text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cart-remove:hover{color:#b74216}
.site-cart-foot{padding:20px 28px 24px;border-top:3px solid var(--ink);background:#fff}
.cart-total-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:4px 0;font:800 13px/1.35 var(--mono);text-transform:uppercase}.cart-subtotal-row{padding-top:10px;font-size:16px}.cart-subtotal-row strong{font-size:20px}
.cart-checkout-note{margin:14px 0 16px;font-size:12px;line-height:1.45;opacity:.68}
.cart-checkout{width:100%;min-height:50px}.cart-clear{display:block;margin:13px auto 0;border:0;background:transparent;font:800 11px/1 var(--mono);text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.cart-clear:hover{color:#b74216}
.cart-paypal-status{min-height:1.3em;margin:12px 0 0;font-size:12px;line-height:1.4;text-align:center}
.cart-toast{position:fixed;z-index:130;left:24px;bottom:24px;max-width:min(430px,calc(100vw - 48px));display:flex;align-items:center;gap:18px;padding:14px 16px;background:var(--ink);border:2px solid var(--orange);color:#fff;box-shadow:8px 8px 0 rgba(242,106,33,.25);transform:translateY(18px);opacity:0;transition:transform .18s ease,opacity .18s ease}
.cart-toast.show{transform:translateY(0);opacity:1}.cart-toast span{font-size:13px;line-height:1.35;font-weight:700}.cart-toast button{margin-left:auto;border:0;background:var(--yellow);color:var(--ink);padding:8px 10px;font:900 11px/1 var(--mono);text-transform:uppercase;cursor:pointer;white-space:nowrap}
.paypal-btn.added-to-cart{background:var(--ink);border-color:var(--ink);color:#fff}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media (max-width:1180px) and (min-width:961px){.main-nav{gap:14px}.main-nav a{font-size:12px}.nav-cart-label{display:none}.nav-cart{padding:9px!important}.nav-cart-count{min-width:22px;height:22px;font-size:10px}}
@media (max-width:960px){.nav-cart{margin-top:10px;justify-content:flex-start;padding:12px 14px!important;border:2px solid var(--ink)!important}.nav-cart-label{display:inline}.nav-cart-count{margin-left:auto}.main-nav .nav-cart{border-bottom:2px solid var(--ink)!important}}
@media (max-width:600px){.site-cart-head{padding:20px 18px 17px}.site-cart-body{padding:0 18px}.site-cart-foot{padding:18px}.cart-line{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"info total" "qty qty" "remove remove";gap:11px 12px}.cart-line-total{align-self:start}.cart-toast{left:14px;right:14px;bottom:14px;max-width:none}.cart-toast span{font-size:12px}}
@media (prefers-reduced-motion:reduce){.nav-cart.has-items .nav-cart-count{animation:none}.site-cart-panel,.cart-backdrop,.cart-toast{transition:none}}


/* Mobile dense-table treatment: show every field without sideways scrolling. */
@media (max-width:640px){
  .price-table.stack-mobile-table{
    display:block;
    width:100%;
    overflow:visible;
    border:0;
    background:transparent;
  }
  .price-table.stack-mobile-table tbody{
    display:block;
    width:100%;
  }
  .price-table.stack-mobile-table tr:first-child{
    display:none;
  }
  .price-table.stack-mobile-table tr:not(:first-child){
    display:block;
    width:100%;
    margin:0 0 14px;
    border:2px solid var(--ink);
    background:var(--white);
    box-shadow:3px 3px 0 rgba(17,24,32,.08);
  }
  .price-table.stack-mobile-table td{
    display:block;
    width:100%;
    min-width:0;
    padding:10px 12px 11px;
    border-bottom:1px solid rgba(17,24,32,.2);
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }
  .price-table.stack-mobile-table td:last-child{
    border-bottom:0;
    font-size:1.08rem;
  }
  .price-table.stack-mobile-table td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:4px;
    font:700 10px/1.2 "Courier New",monospace;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:rgba(17,24,32,.62);
  }
  .price-table.stack-mobile-table td:first-child{
    font-weight:900;
    font-size:1rem;
    background:#fffdf0;
  }
  .price-table.stack-mobile-table td:first-child::before{
    color:var(--orange);
  }
}

/* Mobile table hard reset: no sideways pan, no clipped columns. */
@media (max-width:640px){
  html,body{max-width:100%;overflow-x:clip}

  /* Two-column price/spec tables should wrap in place instead of becoming scroll regions. */
  .price-table:not(.stack-mobile-table){
    display:table!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
    overflow:visible!important;
    -webkit-overflow-scrolling:auto!important;
  }
  .price-table:not(.stack-mobile-table) th,
  .price-table:not(.stack-mobile-table) td{
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  .price-table:not(.stack-mobile-table) th:first-child,
  .price-table:not(.stack-mobile-table) td:first-child{width:68%}
  .price-table:not(.stack-mobile-table) th:last-child,
  .price-table:not(.stack-mobile-table) td:last-child{width:32%;text-align:right}

  /* Three-column/dense tables become true full-width record cards. */
  .price-table.stack-mobile-table{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow:visible!important;
    -webkit-overflow-scrolling:auto!important;
    table-layout:auto!important;
  }
  .price-table.stack-mobile-table > tbody{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .price-table.stack-mobile-table tr:not(:first-child){
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow:hidden!important;
    box-shadow:none!important;
  }
  .price-table.stack-mobile-table td{
    display:block!important;
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    white-space:normal!important;
    overflow:visible!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
}

/* Final phone guard: table content must never become an inner sideways scroller. */
@media (max-width:640px){
  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    overflow-x:clip;
  }
  .container,.section,.two-col,.copy,.quote-box{
    min-width:0;
    max-width:100%;
  }
  .price-table{
    touch-action:pan-y!important;
    overscroll-behavior-x:none;
  }
  .price-table.stack-mobile-table,
  .price-table.stack-mobile-table > tbody,
  .price-table.stack-mobile-table tr,
  .price-table.stack-mobile-table td{
    box-sizing:border-box!important;
    max-inline-size:100%!important;
    min-inline-size:0!important;
  }
}


/* Challenger Upgrade Bench: use real layout blocks, never a scrollable table. */
.upgrade-bench{
  width:100%;
  max-width:100%;
  border:2px solid var(--ink);
  background:var(--white);
  overflow:hidden;
}
.upgrade-bench-head,
.upgrade-bench-row{
  display:grid;
  grid-template-columns:minmax(190px,.9fr) minmax(0,1.65fr) minmax(120px,.55fr);
  width:100%;
  min-width:0;
}
.upgrade-bench-head{
  background:var(--ink);
  color:var(--white);
  font:700 12px/1.2 var(--mono);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.upgrade-bench-head span,
.upgrade-bench-row>div{
  min-width:0;
  padding:13px 14px;
}
.upgrade-bench-head span:last-child,
.upgrade-bench-row .upgrade-price{text-align:right}
.upgrade-bench-row{
  border-bottom:1px solid var(--ink);
  transition:background-color .16s ease;
}
.upgrade-bench-row:last-child{border-bottom:0}
.upgrade-bench-row:hover{background:#fbf7df}
.upgrade-bench-row .upgrade-name{font-weight:800}
.upgrade-bench-row .upgrade-detail{overflow-wrap:anywhere}
.upgrade-bench-row .upgrade-price{
  font-weight:900;
  white-space:normal;
  overflow-wrap:anywhere;
}
.upgrade-bench-row>div::before{display:none}

@media(max-width:700px){
  #upgrades .container{
    width:min(100% - 28px,1180px);
    max-width:100%;
    min-width:0;
  }
  #upgrades .section-head{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .upgrade-bench{
    display:grid;
    gap:12px;
    width:100%;
    max-width:100%;
    min-width:0;
    border:0;
    background:transparent;
    overflow:visible;
    touch-action:pan-y;
    overscroll-behavior-x:none;
  }
  .upgrade-bench-head{display:none}
  .upgrade-bench-row{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0;
    border:2px solid var(--ink);
    background:var(--white);
    overflow:hidden;
  }
  .upgrade-bench-row>div{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    padding:10px 12px 11px;
    border-bottom:1px solid rgba(17,24,32,.2);
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  .upgrade-bench-row>div:last-child{border-bottom:0}
  .upgrade-bench-row>div::before{
    content:attr(data-label);
    display:block;
    margin-bottom:4px;
    color:rgba(17,24,32,.62);
    font:700 10px/1.2 var(--mono);
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .upgrade-bench-row .upgrade-name{
    background:#fffdf0;
    font-size:1rem;
    font-weight:900;
  }
  .upgrade-bench-row .upgrade-name::before{color:var(--orange)}
  .upgrade-bench-row .upgrade-price{font-size:1.08rem}
}

/* Challenger Upgrade Bench — purpose-built desktop table + mobile cards. */
.challenger-bench{width:100%;max-width:100%;min-width:0}
.bench-desktop{
  width:100%;
  border:2px solid var(--ink);
  background:var(--white);
  box-shadow:6px 6px 0 rgba(17,24,32,.12);
}
.bench-head,.bench-row{
  display:grid;
  grid-template-columns:minmax(190px,.9fr) minmax(0,1.65fr) minmax(120px,.55fr);
  width:100%;
  min-width:0;
}
.bench-head{
  background:var(--ink);
  color:var(--white);
  font:800 12px/1.2 var(--mono);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.bench-head>div,.bench-row>div{min-width:0;padding:14px 16px}
.bench-head>div:last-child,.bench-price{text-align:right}
.bench-row{border-bottom:1px solid rgba(17,24,32,.28)}
.bench-row:last-child{border-bottom:0}
.bench-row:nth-child(odd){background:#fffdf4}
.bench-row:hover{background:#fff3b7}
.bench-name{font-weight:900}
.bench-detail{overflow-wrap:anywhere}
.bench-price{
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  font-weight:950;
  font-family:var(--mono);
  background:rgba(247,176,0,.09);
  white-space:normal;
  overflow-wrap:anywhere;
}
.bench-mobile{display:none}

@media(max-width:700px){
  #upgrades .container{width:min(100% - 28px,1180px);max-width:100%;min-width:0}
  .bench-desktop{display:none!important}
  .bench-mobile{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    width:100%;
    max-width:100%;
    min-width:0;
    overflow:visible;
    touch-action:pan-y;
  }
  .bench-card{
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0;
    padding:0;
    border:2px solid var(--ink);
    background:var(--white);
    box-shadow:4px 4px 0 rgba(17,24,32,.13);
    overflow:hidden;
  }
  .bench-card-top{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:start;
    width:100%;
    min-width:0;
    padding:12px 12px 11px;
    background:#fff6c9;
    border-bottom:1px solid rgba(17,24,32,.28);
  }
  .bench-card h3{
    min-width:0;
    margin:0;
    font-size:1rem;
    line-height:1.18;
    overflow-wrap:anywhere;
  }
  .bench-card strong{
    display:block;
    max-width:124px;
    padding:5px 7px;
    border:1px solid var(--ink);
    background:var(--orange);
    color:var(--ink);
    font:900 .82rem/1.15 var(--mono);
    text-align:right;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .bench-card p{
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0;
    padding:12px;
    line-height:1.48;
    overflow-wrap:anywhere;
  }
}




/* ============================================================
   FINAL MOBILE NAV REPAIR
   One source of truth for phones/tablets:
   - sticky header remains in document flow (never covers hero)
   - fully opaque background (content cannot show through)
   - utility strip removed from mobile flow
   - menu becomes viewport panel beneath header
   ============================================================ */
@media (max-width:960px){
  :root{--mobile-nav-h:74px}

  html{
    scroll-padding-top:calc(var(--mobile-nav-h) + 12px)!important;
    background:var(--paper)!important;
    overflow-x:clip!important;
  }

  body{
    margin:0!important;
    padding-top:0!important;
    background:var(--paper)!important;
    overflow-x:clip!important;
  }

  .utility{display:none!important}

  .site-header{
    position:-webkit-sticky!important;
    position:sticky!important;
    top:0!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    inset:auto!important;
    width:100%!important;
    height:var(--mobile-nav-h)!important;
    min-height:var(--mobile-nav-h)!important;
    margin:0!important;
    padding:0!important;
    z-index:1000!important;
    background:#f2efe6!important;
    background-color:#f2efe6!important;
    border-bottom:2px solid var(--ink)!important;
    box-shadow:none!important;
    opacity:1!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    transform:none!important;
    translate:none!important;
    isolation:isolate;
  }

  .site-header .nav-wrap{
    height:100%!important;
    min-height:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    align-items:center!important;
  }

  .main-nav{
    display:none;
    position:fixed!important;
    top:var(--mobile-nav-h)!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100%!important;
    height:calc(100dvh - var(--mobile-nav-h))!important;
    max-height:none!important;
    margin:0!important;
    padding:10px 20px 24px!important;
    background:#f2efe6!important;
    background-color:#f2efe6!important;
    opacity:1!important;
    z-index:999!important;
    overflow-y:auto!important;
    overflow-x:clip!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }
  .main-nav.open{display:flex!important}

  /* While the menu is open the page-lock script fixes the body. Pin the
     header independently so it remains at the visual viewport top. */
  html.menu-open .site-header{
    position:fixed!important;
    top:0!important;
    right:0!important;
    left:0!important;
    width:100%!important;
  }

  html.menu-open .main-nav.open{
    top:var(--mobile-nav-h)!important;
    height:calc(100dvh - var(--mobile-nav-h))!important;
  }

  .section[id],
  [id]{scroll-margin-top:calc(var(--mobile-nav-h) + 12px)!important}
}


/* ============================================================
   MOBILE NAV — ALWAYS AVAILABLE
   A dedicated spacer keeps the hero in normal flow while the
   navbar itself stays pinned to the viewport. This avoids the
   overlap/gap problems caused by body padding or sticky ancestors.
   ============================================================ */
.mobile-nav-spacer{display:none}
@media (max-width:960px){
  :root{--mobile-nav-h:74px}

  html,body{
    max-width:100%;
    overflow-x:clip!important;
  }

  .utility{display:none!important}

  .site-header{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    bottom:auto!important;
    width:100%!important;
    height:var(--mobile-nav-h)!important;
    min-height:var(--mobile-nav-h)!important;
    margin:0!important;
    padding:0!important;
    z-index:5000!important;
    background:#f2efe6!important;
    background-color:#f2efe6!important;
    border-bottom:2px solid var(--ink)!important;
    box-shadow:none!important;
    opacity:1!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    transform:translateZ(0)!important;
    isolation:isolate!important;
  }

  .site-header .nav-wrap{
    height:var(--mobile-nav-h)!important;
    min-height:var(--mobile-nav-h)!important;
    padding-top:0!important;
    padding-bottom:0!important;
    align-items:center!important;
  }

  .mobile-nav-spacer{
    display:block!important;
    width:100%;
    height:var(--mobile-nav-h)!important;
    min-height:var(--mobile-nav-h)!important;
    background:transparent;
    pointer-events:none;
  }

  .main-nav{
    position:fixed!important;
    top:var(--mobile-nav-h)!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100%!important;
    height:calc(100dvh - var(--mobile-nav-h))!important;
    max-height:none!important;
    margin:0!important;
    padding:10px 20px 24px!important;
    z-index:4999!important;
    background:#f2efe6!important;
    background-color:#f2efe6!important;
    overflow-y:auto!important;
    overflow-x:clip!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
  }

  html.menu-open,
  body.menu-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }

  body.menu-open{
    position:fixed!important;
    left:0!important;
    right:0!important;
    width:100%!important;
  }

  html{
    scroll-padding-top:calc(var(--mobile-nav-h) + 12px)!important;
  }
  .section[id],[id]{
    scroll-margin-top:calc(var(--mobile-nav-h) + 12px)!important;
  }
}
