/* assets/css/index.css
   Home page specific
*/

.hero{
  position:relative;
  padding:74px 0 40px;
}

.hero-bg{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
}
.blob{
  position:absolute;
  border-radius:999px;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.25), rgba(255,255,255,0) 45%),
              radial-gradient(circle at 35% 30%, rgba(255,75,110,.22), rgba(255,75,110,0) 52%),
              radial-gradient(circle at 70% 70%, rgba(255,45,45,.22), rgba(255,45,45,0) 55%);
  filter: blur(2px);
  opacity:.9;
}

/* Light: blobs should not wash the UI */
:root[data-theme="light"] .blob{
  opacity:.35;
  filter: blur(6px);
}

.b1{ width:420px; height:420px; left:-120px; top:-130px; }
.b2{ width:520px; height:520px; right:-220px; top:-200px; opacity:.75; }
.b3{ width:460px; height:460px; right:-120px; bottom:-210px; opacity:.8; }
.b4{ width:380px; height:380px; left:10%; bottom:-220px; opacity:.7; }

.hero-inner{
  display:grid;
  grid-template-columns: 1.35fr .65fr;
  gap:18px;
  align-items:start;
}

.hero-card{
  padding:26px 24px 20px;
  box-shadow: var(--shadow);
}

.hero-top{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

.hero-title{
  margin:0 0 10px;
  font-family: var(--font-display);
  letter-spacing:.05em;
  text-transform:uppercase;
  font-size:44px;
  line-height:1.02;
}

/* Light: first line must be readable */
:root[data-theme="light"] .hero-title{
  color: rgba(18,19,26,.96);
}

.hero-title .accent{
  background: linear-gradient(90deg, var(--accent), var(--accent2));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
:root[data-theme="light"] .hero-title .accent{
  background: linear-gradient(90deg, rgba(255,45,45,1), rgba(255,75,110,.92));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.hero-sub{
  margin:0 0 16px;
  color: rgba(232,232,238,.86);
  font-size:14px;
  line-height:1.65;
  max-width: 62ch;
}
:root[data-theme="light"] .hero-sub{
  color: rgba(18,19,26,.78);
}

.hero-cta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin: 10px 0 16px;
}

.hero-meta{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  padding-top:12px;
  border-top: 1px solid rgba(255,255,255,.12);
}
:root[data-theme="light"] .hero-meta{
  border-top-color: rgba(0,0,0,.10);
}

.meta-item{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.meta-k{
  color: rgba(232,232,238,.6);
  font-size:12px;
  letter-spacing:.03em;
  text-transform:uppercase;
}
:root[data-theme="light"] .meta-k{
  color: rgba(18,19,26,.56);
}

.meta-v a{
  color: rgba(232,232,238,.9);
  text-decoration:none;
}
.meta-v a:hover{
  color: #fff;
  text-decoration:underline;
}
:root[data-theme="light"] .meta-v a{
  color: rgba(18,19,26,.88);
}
:root[data-theme="light"] .meta-v a:hover{
  color: rgba(18,19,26,1);
}

.hero-side{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.stat-card{
  padding:18px 18px 16px;
  box-shadow: var(--shadow-soft);
}
.stat-title{
  color: rgba(232,232,238,.6);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:0 0 8px;
}
:root[data-theme="light"] .stat-title{
  color: rgba(18,19,26,.56);
}

.stat-value{
  font-weight:900;
  letter-spacing:.02em;
  margin:0 0 6px;
}
:root[data-theme="light"] .stat-value{
  color: rgba(18,19,26,.95);
}

.stat-desc{
  margin:0;
  color: rgba(232,232,238,.78);
  font-size:13px;
  line-height:1.55;
}
:root[data-theme="light"] .stat-desc{
  color: rgba(18,19,26,.72);
}

/* Latest builds cards */
.build-card{
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:12px;
  box-shadow: var(--shadow-soft);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.build-card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,45,45,.22);
}
:root[data-theme="light"] .build-card:hover{
  border-color: rgba(255,45,45,.28);
}

.thumb{
  height:150px;
  border-radius:18px;
  border: 1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(280px 160px at 20% 30%, rgba(255,45,45,.14), transparent 55%),
    linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
}

/* Light: thumb frame and placeholder */
:root[data-theme="light"] .thumb{
  border-color: rgba(0,0,0,.10);
  background:
    radial-gradient(280px 160px at 20% 30%, rgba(255,45,45,.10), transparent 55%),
    linear-gradient(135deg, rgba(255,255,255,.55), rgba(255,255,255,.35));
}

/* IMPORTANT: ensure BG thumbs ALWAYS cover (fix "shows real size / partial") */
.thumb.has-img{
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:cover !important;
}

.build-title{
  font-weight:800;
  letter-spacing:.02em;
}
:root[data-theme="light"] .build-title{
  color: rgba(18,19,26,.95);
}

.build-meta{
  color: var(--muted);
  font-size:13px;
  margin-top:4px;
}

/* Split section */
.section-split{
  padding-top:22px;
}
.split{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:18px;
}
.split-card{
  padding:22px;
  box-shadow: var(--shadow-soft);
}
.split-title{
  margin:0 0 10px;
  font-family: var(--font-display);
  letter-spacing:.05em;
  text-transform:uppercase;
  font-size:14px;
}
:root[data-theme="light"] .split-title{
  color: rgba(18,19,26,.92);
}

.split-text{
  margin:0 0 14px;
  color: rgba(232,232,238,.82);
  font-size:13px;
  line-height:1.6;
}
:root[data-theme="light"] .split-text{
  color: rgba(18,19,26,.72);
}

/* Responsive */
@media (max-width: 980px){
  .hero-inner{ grid-template-columns: 1fr; }
  .hero-title{ font-size:36px; }
  .hero-meta{ grid-template-columns: 1fr; }
  .split{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
  .hero{ padding-top:54px; }
  .hero-card{ padding:22px 18px 18px; }
  .hero-title{ font-size:30px; }
  .thumb{ height:130px; }
}

/* --- Home: dynamic sections --- */
.hero-stats{
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.stat-chip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 26px rgba(0,0,0,.35);
  font-size:13px;
}
.stat-chip .k{ color: rgba(232,232,238,.78); }
.stat-chip .v{
  font-weight:900;
  letter-spacing:.02em;
}

/* Light: chips readable */
:root[data-theme="light"] .stat-chip{
  border-color: rgba(0,0,0,.12);
  background: rgba(255,255,255,.82);
  box-shadow: 0 12px 26px rgba(0,0,0,.10);
}
:root[data-theme="light"] .stat-chip .k{
  color: rgba(18,19,26,.62);
}
:root[data-theme="light"] .stat-chip .v{
  color: rgba(18,19,26,.92);
}

.cards-3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.section-actions{
  margin-top:16px;
  display:flex;
  justify-content:center;
}

.thumb.has-img{
  background-size: cover;
  background-position: center;
  position:relative;
  overflow:hidden;
}
.thumb.has-img::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.00), rgba(0,0,0,.20) 55%, rgba(0,0,0,.45));
}
:root[data-theme="light"] .thumb.has-img::after{
  background:
    linear-gradient(180deg, rgba(0,0,0,.00), rgba(0,0,0,.14) 55%, rgba(0,0,0,.32));
}

.decal-card{
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:12px;
  box-shadow: var(--shadow-soft);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.decal-card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,45,45,.22);
}
:root[data-theme="light"] .decal-card:hover{
  border-color: rgba(255,45,45,.28);
}

.section-decals{
  padding-top:10px;
}

@media (max-width: 980px){
  .cards-3{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Spectra pilot: high-visibility home components */
:root[data-theme="spectra"] .blob{
  background:
    radial-gradient(circle at 30% 30%, rgba(214,237,245,.20), rgba(214,237,245,0) 45%),
    radial-gradient(circle at 35% 30%, var(--media-cyan), transparent 52%),
    radial-gradient(circle at 70% 70%, var(--media-red), transparent 55%);
}

:root[data-theme="spectra"] .hero-sub,
:root[data-theme="spectra"] .stat-desc,
:root[data-theme="spectra"] .split-text{
  color:var(--content-soft);
}

:root[data-theme="spectra"] .meta-k,
:root[data-theme="spectra"] .stat-title,
:root[data-theme="spectra"] .stat-chip .k{
  color:var(--content-muted);
}

:root[data-theme="spectra"] .hero-meta{
  border-top-color:var(--panel-border);
}

:root[data-theme="spectra"] .build-card:hover,
:root[data-theme="spectra"] .decal-card:hover{
  border-color:var(--panel-border-hover);
}

:root[data-theme="spectra"] .thumb{
  border-color:var(--panel-border);
  background:
    radial-gradient(280px 160px at 20% 30%, var(--media-red), transparent 55%),
    radial-gradient(260px 160px at 90% 36%, var(--media-cyan), transparent 58%),
    linear-gradient(135deg, rgba(214,237,245,.07), rgba(214,237,245,.02));
}

:root[data-theme="spectra"] .stat-chip{
  border-color:var(--panel-border);
  background:var(--panel-bg);
  box-shadow:var(--shadow-soft);
}

/* Midnight Atelier: homepage redesign pilot */
.hero{
  padding:clamp(62px, 7.5vw, 88px) 0 52px;
}

.hero-inner{
  grid-template-columns:minmax(0, 1.38fr) minmax(268px, .62fr);
  gap:20px;
}

.hero-card{
  padding:clamp(25px, 3vw, 34px) clamp(20px, 3vw, 32px) 25px;
  border-color:var(--panel-border);
  box-shadow:var(--shadow);
}

.hero-top{
  margin-bottom:18px;
}

.hero-top::before{
  content:"";
  flex:0 0 74px;
  width:74px;
  height:2px;
  margin-right:calc(100% - 74px);
  margin-bottom:5px;
  border-radius:999px;
  background:var(--paint-line);
  box-shadow:0 0 18px var(--paint-line-glow);
}

.hero .pill{
  min-height:30px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  border:1px solid var(--label-border);
  background:var(--label-bg);
  color:var(--label-text);
  font-size:11px;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.hero .pill:first-of-type{
  border-color:var(--accent-border);
  background:var(--accent-wash);
  color:var(--text);
}

.hero-title{
  margin-bottom:15px;
  font-size:clamp(42px, 5.2vw, 62px);
  line-height:.96;
  letter-spacing:.065em;
}

.hero-title .accent{
  filter:drop-shadow(0 10px 24px var(--accent-glow));
}

.hero-sub{
  margin-bottom:22px;
  max-width:57ch;
  color:var(--content-soft);
  font-size:15px;
  line-height:1.72;
}

.hero-cta{
  gap:10px;
  margin:0 0 25px;
}

.hero-cta .btn{
  min-height:48px;
  padding-inline:21px;
}

.hero-cta .btn-primary{
  box-shadow:var(--cta-shadow);
}

.hero-cta .btn-ghost{
  border-color:var(--panel-border);
  background:var(--panel-bg);
}

.hero-cta .btn:focus-visible,
.section-actions .btn:focus-visible,
.split-card .btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px var(--focus-ring);
}

.hero-meta{
  gap:15px;
  padding-top:18px;
  border-top-color:var(--panel-border);
}

.meta-k{
  color:var(--label-text);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
}

.meta-v a{
  color:var(--content-soft);
  font-size:13px;
  font-weight:600;
}

.hero-stats{
  gap:8px;
  margin-top:21px;
}

.stat-chip{
  gap:9px;
  padding:8px 11px;
  border-color:var(--label-border);
  background:var(--label-bg);
  box-shadow:none;
  font-size:12px;
}

.stat-chip .k{
  color:var(--label-text);
  font-size:10px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.stat-chip .v{
  color:var(--text);
  font-family:var(--font-display);
  font-size:12px;
}

.hero-side{
  gap:12px;
}

.stat-card{
  padding:20px 18px 18px;
  border-color:var(--panel-border);
  background:var(--panel-bg);
  box-shadow:var(--card-shadow);
}

.stat-card:first-child{
  border-color:var(--accent-border);
}

.stat-title{
  color:var(--label-text);
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
}

.stat-value{
  font-family:var(--font-display);
  font-size:14px;
  letter-spacing:.05em;
  line-height:1.4;
  text-transform:uppercase;
}

.stat-desc{
  color:var(--content-soft);
  line-height:1.62;
}

.hero + .section{
  padding-top:35px;
}

.section{
  padding:clamp(48px, 6vw, 68px) 0;
}

.section-head{
  margin-bottom:24px;
}

.section-title{
  font-size:19px;
}

.section-title::after{
  content:"";
  display:block;
  width:54px;
  height:2px;
  margin-top:11px;
  border-radius:999px;
  background:var(--paint-line);
}

.section-sub{
  max-width:560px;
  color:var(--content-muted);
  line-height:1.7;
}

.build-card,
.decal-card{
  padding:12px 12px 15px;
  gap:14px;
  border-color:var(--panel-border);
  background:var(--panel-bg);
  box-shadow:var(--card-shadow);
}

.build-card:hover,
.decal-card:hover{
  transform:translateY(-3px);
  border-color:var(--panel-border-hover);
  background:var(--panel-bg-raised);
  box-shadow:var(--card-shadow-hover);
}

.build-card:focus-visible,
.decal-card:focus-visible{
  outline:none;
  border-color:var(--panel-border-hover);
  box-shadow:0 0 0 3px var(--focus-ring), var(--card-shadow-hover);
}

.thumb{
  height:162px;
  border-color:var(--media-border);
  background:
    radial-gradient(290px 170px at 18% 28%, var(--media-warm), transparent 56%),
    radial-gradient(280px 170px at 90% 42%, var(--media-cool), transparent 58%),
    var(--media-bg);
}

.thumb.has-img::after{
  background:
    linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.10) 52%, rgba(0,0,0,.32));
}

.build-info{
  padding:0 4px 2px;
}

.build-title{
  font-size:15px;
  line-height:1.35;
}

.build-meta{
  color:var(--label-text);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1.55;
  text-transform:uppercase;
}

.section-actions{
  margin-top:25px;
}

.section-actions .btn{
  border-color:var(--panel-border);
  background:var(--panel-bg);
}

.section-decals{
  padding-top:15px;
}

.section-split{
  padding-top:24px;
  padding-bottom:78px;
}

.split-card{
  padding:24px;
  border-color:var(--panel-border);
  background:var(--panel-bg);
  box-shadow:var(--card-shadow);
}

.split-title{
  margin-bottom:13px;
  font-size:13px;
  letter-spacing:.09em;
}

.split-title::before{
  content:"";
  display:block;
  width:38px;
  height:2px;
  margin-bottom:14px;
  border-radius:999px;
  background:var(--paint-line);
}

.split-text{
  min-height:62px;
  color:var(--content-soft);
  line-height:1.7;
}

@media (max-width: 980px){
  .hero-inner{
    grid-template-columns:1fr;
  }

  .hero-title{
    font-size:clamp(36px, 7vw, 48px);
  }

  .hero-side{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 700px){
  .hero-side{
    grid-template-columns:1fr;
  }

  .section-head{
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }

  .split-text{
    min-height:0;
  }
}

@media (max-width: 560px){
  .hero{
    padding-top:48px;
    padding-bottom:38px;
  }

  .hero-card{
    padding:22px 17px 19px;
  }

  .hero-title{
    font-size:clamp(29px, 10.5vw, 36px);
  }

  .hero-sub{
    font-size:14px;
  }

  .hero-cta .btn{
    width:100%;
  }

  .hero-meta{
    grid-template-columns:1fr;
  }

  .stat-chip{
    width:100%;
    justify-content:space-between;
  }

  .thumb{
    height:142px;
  }

  .cards-3{
    grid-template-columns:1fr;
  }

  .section-split{
    padding-bottom:60px;
  }
}


/* Latest 3D parts mini catalogue */
.section-parts-mini{
  padding-top:15px;
}

.parts-mini-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:14px;
}

.part-mini-card{
  padding:9px;
  display:flex;
  flex-direction:column;
  gap:9px;
  border-color:var(--panel-border);
  background:var(--panel-bg);
  box-shadow:var(--card-shadow);
  transition:transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.part-mini-card:hover{
  transform:translateY(-3px);
  border-color:var(--panel-border-hover);
  background:var(--panel-bg-raised);
  box-shadow:var(--card-shadow-hover);
}

.part-mini-card:focus-visible{
  outline:none;
  border-color:var(--panel-border-hover);
  box-shadow:0 0 0 3px var(--focus-ring), var(--card-shadow-hover);
}

.part-mini-thumb{
  aspect-ratio:16 / 9;
  width:100%;
  border-radius:15px;
  border:1px solid var(--media-border);
  background:
    radial-gradient(170px 120px at 18% 28%, var(--media-warm), transparent 58%),
    radial-gradient(160px 120px at 88% 40%, var(--media-cool), transparent 60%),
    var(--media-bg);
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  position:relative;
  overflow:hidden;
}

.part-mini-thumb.has-img::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.08) 55%, rgba(0,0,0,.28));
}

.part-mini-info{
  padding:0 2px 2px;
}

.part-mini-title{
  color:var(--text);
  font-size:12px;
  font-weight:850;
  line-height:1.25;
  letter-spacing:.01em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.45em;
}

.part-mini-meta{
  margin-top:4px;
  color:var(--label-text);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.45;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

@media (max-width:980px){
  .parts-mini-grid{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }
}

@media (max-width:560px){
  .parts-mini-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
  }

  .part-mini-card{
    padding:7px;
    gap:7px;
  }

  .part-mini-thumb{
    border-radius:12px;
  }

  .part-mini-title{
    font-size:11px;
  }

  .part-mini-meta{
    font-size:8px;
    letter-spacing:.055em;
  }
}

@media (max-width:380px){
  .parts-mini-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* BMD Neo-Metro 2026: editorial home composition */
.blob{ opacity:.18; filter:none; }
.hero-card,.stat-card,.build-card,.decal-card,.part-mini-card,.split-card{ border-radius:var(--radius-md); }
.hero-card{ border-left:4px solid var(--accent); background:var(--panel-bg-raised); }
.hero-top::before,.section-title::after,.split-title::before{ border-radius:0; box-shadow:none; background:var(--accent); }
.hero .pill,.stat-chip{ border-radius:var(--radius-xs); background:var(--label-bg); }
.hero-title .accent{ filter:none; }
.hero-stats{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  border:1px solid var(--panel-border);
}
.stat-chip{
  min-width:0;
  min-height:58px;
  padding:9px 11px;
  border:0;
  border-right:1px solid var(--panel-border);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}
.stat-chip:last-child{ border-right:0; }
.stat-chip .v{ font-size:16px; }
.stat-card{ box-shadow:none; border-left:3px solid var(--panel-border); }
.stat-card:first-child{ border-left-color:var(--accent); }
.build-card,.decal-card,.part-mini-card,.split-card{ box-shadow:none; background:var(--panel-bg); }
.build-card:hover,.decal-card:hover,.part-mini-card:hover{ transform:translateY(-2px); box-shadow:var(--card-shadow-hover); }
.thumb,.part-mini-thumb{ border-radius:var(--radius-sm); }
.split-card{ border-top:2px solid var(--panel-border); }
.split-card:last-child{ border-top-color:var(--accent); }

@media (min-width:981px){
  .cards-4 .build-card:first-child,
  .cards-4 .decal-card:first-child{ grid-column:span 2; }
  .cards-4 .build-card:first-child .thumb,
  .cards-4 .decal-card:first-child .thumb{ height:260px; }
}

@media (max-width:700px){
  .hero-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat-chip{ border-bottom:1px solid var(--panel-border); }
  .stat-chip:nth-child(2n){ border-right:0; }
  .stat-chip:last-child{ grid-column:1/-1; border-bottom:0; }
}

@media (max-width:390px){
  .hero-stats{ grid-template-columns:1fr; }
  .stat-chip,.stat-chip:nth-child(2n){ border-right:0; border-bottom:1px solid var(--panel-border); }
  .stat-chip:last-child{ grid-column:auto; border-bottom:0; }
}

/* Homepage catalogue CTA cards */
.home-cta-card{
  min-height:100%;
  padding:22px 20px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  gap:7px;
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-md);
  border-color:var(--panel-border);
  border-left:4px solid var(--accent);
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 52%),
    var(--panel-bg-raised);
  box-shadow:none;
  text-decoration:none;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.home-cta-card::before{
  content:"";
  width:54px;
  height:2px;
  margin-bottom:auto;
  background:var(--accent);
}

.home-cta-card:hover{
  transform:translateY(-2px);
  border-color:var(--panel-border-hover);
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--accent) 13%, transparent), transparent 58%),
    var(--panel-bg-raised);
  box-shadow:var(--card-shadow-hover);
}

.home-cta-card:focus-visible{
  outline:none;
  border-color:var(--panel-border-hover);
  box-shadow:0 0 0 3px var(--focus-ring), var(--card-shadow-hover);
}

.home-cta-label{
  color:var(--label-text);
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.home-cta-value{
  color:var(--text);
  font-family:var(--font-display);
  font-size:clamp(32px, 3vw, 46px);
  line-height:1;
  letter-spacing:.04em;
}

.home-cta-text{
  color:var(--content-soft);
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.home-cta-link{
  margin-top:11px;
  color:var(--text);
  font-size:12px;
  font-weight:800;
}

.home-cta-link span{
  display:inline-block;
  margin-left:5px;
  transition:transform .18s ease;
}

.home-cta-card:hover .home-cta-link span{
  transform:translateX(4px);
}

@media (max-width:980px){
  .home-cta-card{
    min-height:220px;
  }
}

@media (max-width:560px){
  .home-cta-card{
    min-height:190px;
    padding:20px 18px;
  }
}

/* Homepage 3D catalogue: one featured item + compact catalogue summary */
.parts-mini-grid{
  grid-auto-flow:dense;
  align-items:stretch;
}

.part-mini-card{
  min-width:0;
  min-height:0;
}

.part-mini-card.is-featured{
  grid-column:span 2;
  grid-row:span 2;
}

.part-mini-card.is-featured .part-mini-thumb{
  flex:1 1 auto;
  min-height:250px;
  aspect-ratio:auto;
}

.part-mini-card.is-featured .part-mini-info{
  padding:2px 4px 4px;
}

.part-mini-card.is-featured .part-mini-title{
  min-height:0;
  font-size:16px;
  line-height:1.3;
}

.part-mini-card.is-featured .part-mini-meta{
  margin-top:7px;
  font-size:10px;
}

.part-mini-summary{
  min-width:0;
  min-height:0;
  padding:13px 12px;
  gap:4px;
  justify-content:flex-end;
}

.part-mini-summary::before{
  width:28px;
  margin-bottom:auto;
}

.part-mini-summary .home-cta-label{
  font-size:8px;
  letter-spacing:.11em;
}

.part-mini-summary .home-cta-value{
  font-size:clamp(26px, 2.25vw, 34px);
}

.part-mini-summary .home-cta-text{
  font-size:8px;
  line-height:1.35;
}

.part-mini-summary .home-cta-link{
  margin-top:6px;
  font-size:9px;
  line-height:1.35;
}

@media (max-width:980px){
  .part-mini-card.is-featured .part-mini-thumb{
    min-height:210px;
  }

  .part-mini-summary{
    min-height:0;
  }
}

@media (max-width:560px){
  .part-mini-card.is-featured .part-mini-thumb{
    min-height:155px;
  }

  .part-mini-card.is-featured .part-mini-title{
    font-size:13px;
  }

  .part-mini-card.is-featured .part-mini-meta{
    font-size:8px;
  }

  .part-mini-summary{
    min-height:0;
    padding:10px 9px;
  }

  .part-mini-summary .home-cta-value{
    font-size:25px;
  }

  .part-mini-summary .home-cta-link{
    font-size:8px;
  }
}

@media (max-width:380px){
  .part-mini-card.is-featured{
    grid-row:span 1;
  }

  .part-mini-card.is-featured .part-mini-thumb{
    flex:0 0 auto;
    min-height:0;
    aspect-ratio:16 / 9;
  }
}

