/* ============================================================
   Shared component layer — loaded globally after site.css.
   Reusable pieces for the section/landing/form/data pages added
   on top of the original design system. Uses site.css tokens.
   ============================================================ */

/* --- global page hero band (rendered by header when heroTitle is set) --- */
.page-hero-band{ position:relative; overflow:hidden; background:linear-gradient(135deg,#0a0a0c 0%,#1d1d1f 55%,#2c1414 100%); color:#fff; padding:50px 32px 54px; }
.page-hero-band::before{ content:''; position:absolute; inset:0; background:radial-gradient(ellipse at top right,rgba(200,16,46,.25) 0%,transparent 55%); pointer-events:none; }
.phb-grid{ position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px); background-size:54px 54px; -webkit-mask-image:radial-gradient(ellipse at center,#000 25%,transparent 80%); mask-image:radial-gradient(ellipse at center,#000 25%,transparent 80%); }
.phb-inner{ position:relative; z-index:2; max-width:var(--max-w,1280px); margin:0 auto; }
.phb-crumb{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12.5px; color:rgba(255,255,255,.55); margin-bottom:16px; }
.phb-crumb a{ color:rgba(255,255,255,.7); text-decoration:none; }
.phb-crumb a:hover{ color:#fff; }
.phb-crumb i{ font-size:13px; opacity:.5; }
.phb-crumb span{ color:rgba(255,255,255,.92); }
.phb-eyebrow{ text-transform:uppercase; letter-spacing:.13em; font-size:12px; font-weight:700; color:#ff6b82; margin:0 0 12px; }
.phb-title{ font-size:clamp(30px,4.2vw,46px); font-weight:700; letter-spacing:-.02em; line-height:1.08; margin:0; }
.phb-lead{ font-size:clamp(15px,1.4vw,18px); line-height:1.55; color:rgba(255,255,255,.74); max-width:640px; margin:14px 0 0; }
@media(max-width:680px){ .page-hero-band{ padding:38px 20px 42px; } }

/* --- section sub-nav (promoted global so support sub-pages share it) --- */
.support-subnav{ border-bottom:1px solid var(--line,#dedede); background:#fff; position:sticky; top:60px; z-index:500; }
.support-subnav-inner{ max-width:var(--max-w,1280px); margin:0 auto; display:flex; gap:2px; padding:0 32px; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; }
.support-subnav-inner::-webkit-scrollbar{ display:none; }
.support-subnav a{ flex:0 0 auto; font-size:13.5px; color:var(--ink-2,#444); padding:14px 13px; border-bottom:2px solid transparent; white-space:nowrap; text-decoration:none; transition:color .15s,border-color .15s; }
.support-subnav a:hover{ color:var(--ink,#1a1a1a); }
.support-subnav a.active{ color:var(--brand-red,#c8102e); border-bottom-color:var(--brand-red,#c8102e); font-weight:600; }
@media(max-width:640px){ .support-subnav-inner{ padding:0 16px; } }

/* --- CTA band + note (promoted to global so every page can use them) --- */
.pagecta{ margin-top:48px; padding:32px 34px; border-radius:18px; background:linear-gradient(120deg,#0a0a0c,#2c1414); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.pagecta h3{ font-size:21px; font-weight:650; margin:0 0 4px; color:#fff; }
.pagecta p{ font-size:14.5px; color:rgba(255,255,255,.72); margin:0; }
.pagecta .simple-btn,.pagecta .btn{ flex-shrink:0; }
.note{ display:flex; gap:13px; align-items:flex-start; padding:18px 20px; border-radius:14px; background:rgba(200,16,46,.05); border:1px solid rgba(200,16,46,.18); margin:22px 0; }
.note i{ color:var(--brand-red,#c8102e); font-size:22px; flex-shrink:0; }
.note p{ margin:0; font-size:14.5px; line-height:1.55; color:var(--ink,#1d1d1f); }
.note strong{ color:var(--brand-red,#c8102e); }

/* --- simple-body editorial extras --- */
.simple-lead-2{ font-size:19px; line-height:1.6; color:var(--ink-2,#444); margin:0 0 12px; }
.simple-body .simple-lead-2 strong{ color:var(--ink,#1d1d1f); }
.simple-steps{ counter-reset:step; list-style:none; padding:0; margin:24px 0; display:grid; gap:14px; }
.simple-steps li{ position:relative; padding:18px 22px 18px 64px; border:1px solid rgba(0,0,0,.1); border-radius:14px; background:#fbfbfd; font-size:16px; line-height:1.55; color:var(--ink-2,#444); }
.simple-steps li::before{ counter-increment:step; content:counter(step); position:absolute; left:18px; top:16px; width:32px; height:32px; border-radius:50%; background:var(--brand-red,#c8102e); color:#fff; font-weight:700; font-size:15px; display:flex; align-items:center; justify-content:center; }
.simple-steps li strong{ color:var(--ink,#1d1d1f); }
.simple-quote{ margin:40px 0; padding:24px 28px; border-left:4px solid var(--brand-red,#c8102e); background:#f7f7f9; border-radius:0 14px 14px 0; font-size:20px; line-height:1.5; font-weight:500; color:var(--ink,#1d1d1f); }
.simple-card h3 i{ color:var(--brand-red,#c8102e); margin-right:8px; }

/* --- shared forms (apply / contact / wholesale / join) --- */
.form-wrap{ max-width:760px; margin:0 auto; }
.apply-form{ display:grid; gap:18px; }
.apply-form .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.apply-form label{ display:block; font-size:13.5px; font-weight:600; color:var(--ink,#1d1d1f); margin-bottom:7px; }
.apply-form input, .apply-form textarea, .apply-form select{ width:100%; padding:13px 16px; border:1px solid rgba(0,0,0,.18); border-radius:11px; font-size:15.5px; font-family:inherit; background:#fff; box-sizing:border-box; transition:border-color .15s, box-shadow .15s; }
.apply-form input:focus, .apply-form textarea:focus, .apply-form select:focus{ outline:none; border-color:var(--brand-red,#c8102e); box-shadow:0 0 0 3px rgba(200,16,46,.12); }
.apply-form textarea{ resize:vertical; }
.form-actions{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:4px; }
.form-success{ text-align:center; padding:48px 28px; border:1px solid rgba(0,0,0,.08); border-radius:18px; background:#fbfbfd; }
.form-success i{ font-size:52px; color:#1aa06d; }
.form-success h2{ margin:12px 0 8px; font-size:26px; }
.form-success p{ margin:0 auto 22px; max-width:48ch; color:var(--ink-2,#444); font-size:16px; }
@media(max-width:640px){ .apply-form .form-row{ grid-template-columns:1fr; } }

/* --- Media section sub-nav + hub extras --- */
/* full-width sticky bar (direct child of the tall .media-page so sticky has range,
   mirroring the Support sub-nav). The inner nav stays centered with the content. */
.media-subnav{ position:sticky; top:60px; z-index:30; background:#fff; border-bottom:1px solid rgba(0,0,0,.08); }
.media-subnav-inner{ max-width:1280px; margin:0 auto; padding:12px 24px; display:flex; gap:6px; flex-wrap:wrap; }
.media-subnav-inner a{ padding:10px 16px; border-radius:100px; font-size:14px; font-weight:550; color:var(--ink-2,#444); text-decoration:none; white-space:nowrap; transition:background .15s,color .15s; }
.media-subnav-inner a:hover{ background:#f2f2f4; color:var(--ink,#1d1d1f); }
.media-subnav-inner a.on{ background:var(--brand-red,#c8102e); color:#fff; }
@media(max-width:640px){ .media-subnav-inner{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; } .media-subnav-inner::-webkit-scrollbar{ display:none; } }
.media-stats{ display:flex; gap:40px; justify-content:center; margin-top:34px; flex-wrap:wrap; }
.media-stats div{ text-align:center; }
.media-stats strong{ display:block; font-size:34px; font-weight:700; color:#fff; }
.media-stats span{ font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.6); }
.media-section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:38px 0 22px; }
.media-section-head h2{ font-size:26px; font-weight:680; margin:0; }
.media-seeall{ font-size:14.5px; font-weight:600; color:var(--brand-red,#c8102e); text-decoration:none; white-space:nowrap; }
.media-involve{ margin-top:56px; }
.media-involve h2{ font-size:26px; font-weight:680; margin:0 0 6px; }
.media-tag{ display:inline-block; margin-top:8px; font-size:12px; font-weight:600; color:var(--brand-red,#c8102e); background:rgba(200,16,46,.08); padding:3px 10px; border-radius:100px; }

/* --- Knowledge: DTC fault-code library --- */
.dtc-letters{ display:flex; gap:8px; flex-wrap:wrap; margin:0 0 30px; }
.dtc-letters a{ display:flex; align-items:center; gap:8px; padding:10px 16px; border:1px solid rgba(0,0,0,.12); border-radius:11px; font-size:14px; font-weight:600; color:var(--ink,#1d1d1f); text-decoration:none; background:#fff; transition:border-color .15s,background .15s,color .15s; }
.dtc-letters a:hover{ border-color:var(--brand-red,#c8102e); }
.dtc-letters a.on{ background:var(--brand-red,#c8102e); color:#fff; border-color:var(--brand-red,#c8102e); }
.dtc-letters a span{ font-size:12px; opacity:.65; font-weight:600; }
.dtc-letters a.on span{ opacity:.9; }
.dtc-codes{ display:grid; gap:10px; }
.dtc-code-row{ display:flex; align-items:center; gap:16px; padding:14px 18px; border:1px solid rgba(0,0,0,.1); border-radius:12px; text-decoration:none; background:#fff; transition:border-color .15s, transform .15s, box-shadow .15s; }
.dtc-code-row:hover{ border-color:var(--brand-red,#c8102e); transform:translateX(2px); box-shadow:0 10px 24px -18px rgba(0,0,0,.3); }
.dtc-code-badge{ flex-shrink:0; font-family:ui-monospace,Menlo,Consolas,monospace; font-weight:700; font-size:14px; color:#fff; background:var(--brand-red,#c8102e); padding:6px 10px; border-radius:8px; letter-spacing:.02em; }
.dtc-code-title{ flex:1; font-size:15px; color:var(--ink,#1d1d1f); line-height:1.4; }
.dtc-code-go{ color:#c7c7cc; }
.dtc-code-row:hover .dtc-code-go{ color:var(--brand-red,#c8102e); }

/* --- About: careers --- */
.careers-list{ display:grid; gap:12px; margin:18px 0 8px; }
.job-row{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 26px; border:1px solid rgba(0,0,0,.1); border-radius:16px; text-decoration:none; background:#fff; transition:border-color .15s, transform .15s, box-shadow .15s; }
.job-row:hover{ border-color:var(--brand-red,#c8102e); transform:translateY(-2px); box-shadow:0 18px 40px -28px rgba(0,0,0,.3); }
.job-main h3{ margin:0 0 4px; font-size:19px; color:var(--ink,#1d1d1f); }
.job-main p{ margin:0; font-size:14.5px; color:var(--ink-3,#86868b); }
.job-meta{ display:flex; align-items:center; gap:18px; flex-shrink:0; }
.job-tag{ font-size:12.5px; font-weight:600; color:var(--ink-2,#444); background:#f2f2f4; padding:6px 12px; border-radius:100px; white-space:nowrap; }
.job-go{ font-size:14px; font-weight:600; color:var(--brand-red,#c8102e); white-space:nowrap; }
.job-content{ font-size:16.5px; line-height:1.75; color:var(--ink-2,#444); }
.job-content h2{ font-size:24px; margin:32px 0 12px; color:var(--ink,#1d1d1f); }
.job-content h3{ font-size:18px; margin:24px 0 8px; color:var(--ink,#1d1d1f); }
.job-content ul{ padding-left:20px; } .job-content li{ margin-bottom:8px; }
@media(max-width:640px){ .job-row{ flex-direction:column; align-items:flex-start; gap:12px; } }

/* --- About: global network --- */
.network-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin:8px 0 44px; }
.network-stats div{ text-align:center; padding:26px 14px; border:1px solid rgba(0,0,0,.08); border-radius:16px; background:#fbfbfd; }
.network-stats strong{ display:block; font-size:32px; font-weight:700; color:var(--brand-red,#c8102e); }
.network-stats span{ font-size:13px; color:var(--ink-3,#86868b); }
.network-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px; margin:20px 0; }
.region-card{ padding:24px; border:1px solid rgba(0,0,0,.1); border-radius:16px; background:#fff; }
.region-card h3{ display:flex; align-items:center; gap:10px; margin:0 0 8px; font-size:18px; color:var(--ink,#1d1d1f); }
.region-card h3 i{ color:var(--brand-red,#c8102e); }
.region-card p{ margin:0; font-size:14.5px; line-height:1.55; color:var(--ink-2,#444); }
@media(max-width:760px){ .network-stats{ grid-template-columns:repeat(2,1fr); } }

/* --- About: press & news --- */
.news-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:22px; }
.news-card{ display:flex; flex-direction:column; border:1px solid rgba(0,0,0,.1); border-radius:16px; overflow:hidden; text-decoration:none; background:#fff; transition:transform .25s, box-shadow .25s; }
.news-card:hover{ transform:translateY(-4px); box-shadow:0 24px 50px -28px rgba(0,0,0,.26); }
.news-thumb{ aspect-ratio:16/9; overflow:hidden; background:#f2f2f4; }
.news-thumb img{ width:100%; height:100%; object-fit:cover; }
.news-body{ padding:22px; display:flex; flex-direction:column; flex:1; }
.news-tag{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--brand-red,#c8102e); margin-bottom:10px; }
.news-body h3{ font-size:17px; font-weight:650; line-height:1.34; margin:0 0 10px; color:var(--ink,#1d1d1f); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.news-body p{ font-size:14px; line-height:1.55; color:var(--ink-3,#86868b); margin:0 0 14px; flex:1; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.news-link{ font-size:14px; font-weight:600; color:var(--brand-red,#c8102e); }

/* --- About: contact --- */
.contact-layout{ display:grid; grid-template-columns:1fr 340px; gap:48px; align-items:start; }
.contact-info-col{ background:#fbfbfd; border:1px solid rgba(0,0,0,.08); border-radius:18px; padding:28px; }
.contact-info-col h3{ margin:0 0 16px; font-size:18px; }
.contact-list{ list-style:none; padding:0; margin:0 0 22px; display:grid; gap:16px; }
.contact-list li{ display:flex; gap:14px; align-items:flex-start; }
.contact-list i{ font-size:20px; color:var(--brand-red,#c8102e); margin-top:2px; }
.contact-list strong{ display:block; font-size:13px; color:var(--ink-3,#86868b); font-weight:600; }
.contact-list span{ font-size:15px; color:var(--ink,#1d1d1f); }
.contact-list a{ color:var(--brand-red,#c8102e); text-decoration:none; }
.contact-social{ display:flex; gap:10px; }
.contact-social a{ width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid rgba(0,0,0,.12); color:var(--ink,#1d1d1f); font-size:18px; text-decoration:none; transition:background .15s,color .15s; }
.contact-social a:hover{ background:var(--brand-red,#c8102e); color:#fff; border-color:var(--brand-red,#c8102e); }
@media(max-width:820px){ .contact-layout{ grid-template-columns:1fr; } }

/* ============================================================
   simple-* page system — promoted to GLOBAL so editorial pages
   work on any css bundle (about/media/etc.), not only css=simple.
   Light, clean, icarsoft.net-aligned.
   ============================================================ */
.simple-page{ --maxw:1080px; --ink:#1a1a1a; --ink-soft:#333; --ink-muted:#666; --line:#dedede; --line-soft:#eee; --surface-soft:#f8f8f8; }
.simple-wrap{ max-width:var(--maxw,1080px); margin:0 auto; padding:0 24px; }
.simple-hero{ position:relative; text-align:center; color:#1a1a1a; background:linear-gradient(180deg,#ffffff 0%,#f8f8f8 100%); border-bottom:1px solid #eee; padding:114px 0 60px; overflow:hidden; }
.simple-hero::before{ content:''; position:absolute; inset:0 0 auto 0; height:3px; background:linear-gradient(90deg,var(--brand-red,#c8102e),#df0024); }
.simple-hero::after{ content:''; position:absolute; top:-180px; left:50%; transform:translateX(-50%); width:680px; height:420px; border-radius:50%; background:radial-gradient(closest-side,rgba(200,16,46,.06),transparent 70%); pointer-events:none; }
.simple-eyebrow{ position:relative; text-transform:uppercase; letter-spacing:.13em; font-size:12.5px; font-weight:700; color:var(--brand-red,#c8102e); margin:0 0 16px; }
.simple-title{ position:relative; font-size:clamp(32px,4.6vw,52px); line-height:1.06; font-weight:700; margin:0 auto; max-width:16ch; color:#1a1a1a; letter-spacing:-.01em; }
.simple-lead{ position:relative; margin:20px auto 0; max-width:62ch; font-size:18px; line-height:1.55; color:#666; }
.simple-body{ padding:60px 0 88px; background:#fff; color:#1a1a1a; }
.simple-body > .simple-wrap > p:first-child{ margin-top:0; }
.simple-body h2{ font-size:clamp(23px,2.8vw,32px); font-weight:680; margin:50px 0 16px; color:#1a1a1a; letter-spacing:-.01em; }
.simple-body h3{ font-size:20px; font-weight:650; margin:30px 0 10px; color:#1a1a1a; }
.simple-body p, .simple-body li{ font-size:16.5px; line-height:1.65; color:#333; }
.simple-body ul, .simple-body ol{ padding-left:22px; }
.simple-body li{ margin-bottom:9px; }
.simple-body a{ color:var(--brand-red,#c8102e); text-decoration:none; }
.simple-body a:hover{ text-decoration:underline; }
.simple-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:18px; margin:30px 0; }
.simple-card{ border:1px solid #dedede; border-radius:16px; padding:24px; background:#fff; transition:transform .22s, box-shadow .22s, border-color .2s; text-decoration:none; display:block; color:inherit; }
a.simple-card:hover{ transform:translateY(-4px); box-shadow:0 22px 46px -28px rgba(0,0,0,.28); border-color:var(--brand-red,#c8102e); }
.simple-card h3{ margin:0 0 8px; font-size:18px; font-weight:650; color:#1a1a1a; display:flex; align-items:center; gap:9px; }
.simple-card h3 i{ color:var(--brand-red,#c8102e); font-size:21px; }
.simple-card p{ margin:0; font-size:14.5px; line-height:1.55; color:#666; }
.simple-form{ max-width:560px; margin:0 auto; display:grid; gap:16px; }
.simple-form label{ font-size:13.5px; font-weight:600; color:#1a1a1a; display:block; margin-bottom:6px; }
.simple-form input, .simple-form textarea, .simple-form select{ width:100%; padding:13px 16px; border:1px solid #dedede; border-radius:11px; font-size:15.5px; font-family:inherit; box-sizing:border-box; }
.simple-form input:focus, .simple-form textarea:focus, .simple-form select:focus{ outline:none; border-color:var(--brand-red,#c8102e); box-shadow:0 0 0 3px rgba(200,16,46,.1); }
.simple-btn{ display:inline-flex; align-items:center; gap:8px; background:var(--brand-red,#c8102e); color:#fff; border:none; border-radius:11px; padding:14px 28px; font-size:15.5px; font-weight:600; cursor:pointer; text-decoration:none; transition:background .15s; }
.simple-btn:hover{ background:var(--brand-red-dark,#8c0a1f); }
/* keep the button label white even inside .simple-body (whose `a` rules are more specific) */
.simple-body a.simple-btn,.simple-body a.simple-btn:hover,.simple-body a.btn,.simple-body a.btn:hover{ color:#fff; text-decoration:none; }
.simple-note{ font-size:13.5px; color:#666; text-align:center; }

/* MOBILE: never hide menu items behind a horizontal scroll — wrap onto extra rows.
   Also un-stick the strip so a multi-row nav doesn't eat half the viewport. */
@media (max-width: 833px) {
  .support-subnav { position: static !important; }
  .support-subnav-inner {
    flex-wrap: wrap !important;
    overflow-x: visible !important;
    row-gap: 0 !important;
    padding: 4px 12px !important;
    justify-content: flex-start;
  }
  .support-subnav a { padding: 9px 10px !important; font-size: 13px !important; }
}

/* MOBILE: media sub-nav wraps instead of scrolling (a later page stylesheet forces
   nowrap — hence the !important) */
@media (max-width: 833px) {
  .media-subnav-inner { flex-wrap: wrap !important; overflow-x: visible !important; }
}


/* support subnav: 12 items were clipped at the container edge (hidden horizontal scroll).
   Tighten spacing so they fit one row at 1280, and allow wrapping as a safety net. */
@media (min-width: 1025px){
  .support-subnav-inner{flex-wrap:wrap !important;overflow-x:visible !important;justify-content:center;}
  .support-subnav a{font-size:12.5px !important;padding:12px 10px !important;}
}
