/* ==========================================================================
   DataCore — main.css
   Loads after variables.css. Organized by section; see inline comments.
   ========================================================================== */

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body{
  margin: 0;
  background: var(--dc-paper);
  color: var(--dc-text);
  font-family: var(--dc-font-body);
  font-size: var(--dc-fs-base);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img{ max-width: 100%; height: auto; display: block; }
a{ color: inherit; text-decoration: none; }
ul{ margin: 0; padding: 0; list-style: none; }
button, input, select, textarea{ font: inherit; color: inherit; }
table{ border-collapse: collapse; width: 100%; }
h1,h2,h3,h4{ font-family: var(--dc-font-display); font-weight: 600; line-height: 1.2; margin: 0 0 var(--dc-sp-3); }
p{ margin: 0 0 var(--dc-sp-4); }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* Visible keyboard focus everywhere */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible{
  outline: 2px solid var(--dc-signal);
  outline-offset: 2px;
  border-radius: var(--dc-radius-sm);
}

.screen-reader-text{
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px,1px,1px,1px); white-space: nowrap; border: 0; padding: 0; margin: -1px;
}
.skip-link{
  position: absolute; left: 8px; top: -48px; z-index: 999;
  background: var(--dc-ink); color: var(--dc-text-on-ink);
  padding: 10px 16px; border-radius: var(--dc-radius-sm);
  transition: top .15s ease;
}
.skip-link:focus{ top: 8px; }

/* ---------- Layout helpers ---------- */
.dc-container{ max-width: var(--dc-container); margin-inline: auto; padding-inline: var(--dc-sp-5); }
.dc-container--narrow{ max-width: var(--dc-container-narrow); }
.dc-section{ padding-block: var(--dc-sp-7); }
.dc-section--tight{ padding-block: var(--dc-sp-6); }
.dc-section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap: var(--dc-sp-4); margin-bottom: var(--dc-sp-5); }
.dc-section-head h2{ font-size: var(--dc-fs-xl); }
.dc-section-head .dc-eyebrow{ display:block; font-family: var(--dc-font-mono); font-size: var(--dc-fs-xs); letter-spacing:.08em; text-transform:uppercase; color: var(--dc-signal-dim); margin-bottom: 4px; }
.dc-see-all{ font-size: var(--dc-fs-sm); font-weight:600; color: var(--dc-signal-dim); white-space:nowrap; }
.dc-see-all:hover{ text-decoration: underline; }

.dc-grid{ display:grid; gap: var(--dc-sp-5); }
.dc-grid--4{ grid-template-columns: repeat(4, 1fr); }
.dc-grid--3{ grid-template-columns: repeat(3, 1fr); }
.dc-grid--2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 1024px){ .dc-grid--4{ grid-template-columns: repeat(2,1fr);} .dc-grid--3{ grid-template-columns: repeat(2,1fr);} }
@media (max-width: 620px){ .dc-grid--4, .dc-grid--3, .dc-grid--2{ grid-template-columns: 1fr; } }

/* ---------- Header ---------- */
.dc-header{
  position: sticky; top:0; z-index: 100;
  background: var(--dc-ink); color: var(--dc-text-on-ink);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.dc-header-inner{ position:relative; display:flex; align-items:center; gap: var(--dc-sp-5); min-height: var(--dc-header-h); }
.dc-logo{ display:flex; align-items:center; gap:8px; font-family: var(--dc-font-display); font-weight:700; font-size: var(--dc-fs-md); color: var(--dc-text-on-ink); flex-shrink:0; }
.dc-logo img{ max-height: 32px; width:auto; }
.dc-logo .dc-logo-mark{ width:10px; height:10px; background: var(--dc-signal); border-radius:2px; display:inline-block; }

/* Desktop primary navigation + accessible hover/focus submenus. */
.dc-primary-nav{ display:flex; align-items:center; flex:1; min-width:0; }
.dc-primary-nav > ul{ display:flex; align-items:center; gap: var(--dc-sp-5); }
.dc-primary-nav li{ position:relative; }
.dc-primary-nav a{ display:block; font-size: var(--dc-fs-sm); font-weight:500; color: rgba(243,245,247,.82); padding: 8px 0; border-bottom: 2px solid transparent; }
.dc-primary-nav > ul > li > a:hover,
.dc-primary-nav > ul > li:focus-within > a,
.dc-primary-nav .current-menu-item > a,
.dc-primary-nav .current-menu-ancestor > a{ color: var(--dc-text-on-ink); border-color: var(--dc-signal); }
.dc-primary-nav .menu-item-has-children > a::after{
  content:""; display:inline-block; width:6px; height:6px; margin-left:7px; vertical-align:3px;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg);
}
.dc-primary-nav .sub-menu{
  position:absolute; top:calc(100% + 8px); left:-14px; z-index:120;
  min-width:220px; padding:8px; display:block;
  background:var(--dc-ink-soft); border:1px solid rgba(255,255,255,.10); border-radius:var(--dc-radius-md);
  box-shadow:0 12px 30px rgba(0,0,0,.22);
  opacity:0; visibility:hidden; transform:translateY(-6px); pointer-events:none;
  transition:opacity .14s ease, transform .14s ease, visibility .14s ease;
}
.dc-primary-nav .sub-menu::before{ content:""; position:absolute; left:0; right:0; top:-10px; height:10px; }
.dc-primary-nav li:hover > .sub-menu,
.dc-primary-nav li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
.dc-primary-nav .sub-menu li + li{ margin-top:2px; }
.dc-primary-nav .sub-menu a{
  padding:9px 10px; border:0; border-radius:var(--dc-radius-sm); color:rgba(243,245,247,.78); white-space:nowrap;
}
.dc-primary-nav .sub-menu a:hover,
.dc-primary-nav .sub-menu a:focus-visible,
.dc-primary-nav .sub-menu .current-menu-item > a{ background:rgba(255,255,255,.07); color:var(--dc-text-on-ink); }
.dc-primary-nav .sub-menu .menu-item-has-children > a::after{ display:none; }

.dc-header-search{ flex-shrink:0; }
.dc-search-form{ position:relative; display:flex; align-items:center; }
.dc-search-form input[type="search"]{
  width: 260px; max-width: 40vw; background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14); color: var(--dc-text-on-ink);
  border-radius: var(--dc-radius-md); padding: 9px 36px 9px 36px; font-size: var(--dc-fs-sm);
}
.dc-search-form input[type="search"]::placeholder{ color: rgba(243,245,247,.5); }
.dc-search-form .dc-search-icon{ position:absolute; left:11px; width:16px; height:16px; opacity:.6; pointer-events:none; }
.dc-search-form button{ position:absolute; right:4px; background:none; border:none; padding:6px; cursor:pointer; color: rgba(243,245,247,.7); }

.dc-user-menu{ flex-shrink:0; }
.dc-menu-toggle{ display:none; align-items:center; justify-content:center; background:none; border:none; color: var(--dc-text-on-ink); cursor:pointer; padding:8px; border-radius:var(--dc-radius-sm); }
.dc-submenu-toggle{ display:none; }

@media (max-width: 1080px){
  .dc-header-inner{ gap:var(--dc-sp-4); }
  .dc-primary-nav > ul{ gap:var(--dc-sp-4); }
  .dc-search-form input[type="search"]{ width:200px; }
}

@media (max-width: 900px){
  body.dc-nav-open{ overflow:hidden; }
  .dc-header-inner{ gap:var(--dc-sp-3); }
  .dc-menu-toggle{ display:inline-flex; order:-1; }
  .dc-primary-nav{
    display:none; position:fixed; top:var(--dc-header-h); left:0; right:0; bottom:0; z-index:110;
    overflow-y:auto; overscroll-behavior:contain; padding:var(--dc-sp-4) max(var(--dc-sp-5), calc((100vw - var(--dc-container)) / 2 + var(--dc-sp-5))) var(--dc-sp-7);
    background:var(--dc-ink); border-top:1px solid rgba(255,255,255,.08);
  }
  .dc-primary-nav.is-open{ display:block; }
  .dc-primary-nav > ul{ display:block; }
  .dc-primary-nav > ul > li{ border-bottom:1px solid rgba(255,255,255,.08); }
  .dc-primary-nav > ul > li > a{ padding:14px 44px 14px 2px; border:0; font-size:var(--dc-fs-base); }
  .dc-primary-nav > ul > li > a:hover,
  .dc-primary-nav > ul > li:focus-within > a,
  .dc-primary-nav .current-menu-item > a,
  .dc-primary-nav .current-menu-ancestor > a{ border:0; color:var(--dc-text-on-ink); }
  .dc-primary-nav .menu-item-has-children > a::after{ display:none; }
  .dc-submenu-toggle{
    display:inline-flex; position:absolute; top:7px; right:0; align-items:center; justify-content:center;
    width:40px; height:40px; padding:0; border:0; border-radius:var(--dc-radius-sm);
    background:transparent; color:rgba(243,245,247,.78); cursor:pointer;
  }
  .dc-submenu-toggle::before{
    content:""; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
    transform:rotate(45deg) translate(-2px,-2px); transition:transform .14s ease;
  }
  .menu-item-has-children.is-submenu-open > .dc-submenu-toggle::before{ transform:rotate(225deg) translate(-1px,-1px); }
  .dc-primary-nav .sub-menu{
    position:static; min-width:0; padding:0 0 10px 14px; margin:0; display:none;
    background:transparent; border:0; border-radius:0; box-shadow:none;
    opacity:1; visibility:visible; transform:none; pointer-events:auto; transition:none;
  }
  .dc-primary-nav .menu-item-has-children.is-submenu-open > .sub-menu{ display:block; }
  .dc-primary-nav .sub-menu li{ border-left:1px solid rgba(255,255,255,.10); }
  .dc-primary-nav .sub-menu li + li{ margin-top:0; }
  .dc-primary-nav .sub-menu a{ padding:10px 12px; border-radius:0; white-space:normal; font-size:var(--dc-fs-sm); }
  .dc-search-form input[type="search"]{ width:150px; max-width:34vw; }
}

@media (max-width: 620px){
  .dc-container{ padding-inline:var(--dc-sp-4); }
  .dc-header-inner{ gap:var(--dc-sp-2); }
  .dc-logo{ font-size:var(--dc-fs-base); }
  .dc-logo img{ max-width:140px; }
  .dc-user-menu{ display:none; }
  .dc-header-search{ margin-left:auto; }
  .dc-search-form input[type="search"]{ width:132px; max-width:36vw; }
}

@media (max-width: 420px){
  .dc-search-form input[type="search"]{ width:112px; max-width:31vw; padding-left:32px; }
}

/* ---------- Breadcrumbs ---------- */
.dc-breadcrumbs{ font-size: var(--dc-fs-xs); color: var(--dc-text-faint); margin-bottom: var(--dc-sp-4); font-family: var(--dc-font-mono); }
.dc-breadcrumbs a{ color: var(--dc-text-soft); }
.dc-breadcrumbs a:hover{ color: var(--dc-signal-dim); }
.dc-breadcrumbs .sep{ margin: 0 6px; opacity:.5; }

/* ---------- Buttons ---------- */
.dc-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding: 10px 18px; border-radius: var(--dc-radius-md); font-size: var(--dc-fs-sm); font-weight:600;
  border: 1px solid transparent; cursor:pointer; transition: background .12s ease, border-color .12s ease;
}
.dc-btn--primary{ background: var(--dc-ink); color: var(--dc-text-on-ink); }
.dc-btn--primary:hover{ background: var(--dc-ink-soft); }
.dc-btn--signal{ background: var(--dc-signal); color:#fff; }
.dc-btn--signal:hover{ background: var(--dc-signal-dim); }
.dc-btn--outline{ background: transparent; color: var(--dc-text); border-color: var(--dc-line); }
.dc-btn--outline:hover{ border-color: var(--dc-signal); color: var(--dc-signal-dim); }
.dc-btn--sm{ padding: 6px 12px; font-size: var(--dc-fs-xs); }
.dc-btn[data-dc-compare-add].is-added{ background:var(--dc-signal-tint); border-color:var(--dc-signal); color:var(--dc-signal-dim); }

/* ---------- Card: entity teaser (grid card) ---------- */
.dc-card{
  background: var(--dc-surface); border:1px solid var(--dc-line); border-radius: var(--dc-radius-lg);
  overflow:hidden; display:flex; flex-direction:column; transition: border-color .12s ease, box-shadow .12s ease;
}
.dc-card:hover{ border-color: var(--dc-signal); box-shadow: var(--dc-shadow-md); }
.dc-card-media{ position:relative; aspect-ratio: 4/3; background: var(--dc-line-soft); display:flex; align-items:center; justify-content:center; }
.dc-card-media img{ width:100%; height:100%; object-fit: contain; padding: var(--dc-sp-3); }
.dc-card-badge{
  position:absolute; top:10px; left:10px; background: var(--dc-ink); color:#fff;
  font-family: var(--dc-font-mono); font-size: 11px; padding: 3px 8px; border-radius: var(--dc-radius-sm); letter-spacing:.02em;
}
.dc-card-body{ padding: var(--dc-sp-4); display:flex; flex-direction:column; gap:6px; flex:1; }
.dc-card-eyebrow{ font-size: 11px; text-transform:uppercase; letter-spacing:.06em; color: var(--dc-text-faint); font-weight:600; }
.dc-card-title{ font-family: var(--dc-font-display); font-size: var(--dc-fs-md); font-weight:600; margin:0; }
.dc-card-title a::after{ content:""; position:absolute; inset:0; } /* full-card click target */
.dc-card{ position:relative; }
.dc-card-meta{ display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top: var(--dc-sp-2); font-size: var(--dc-fs-sm); }
.dc-card-price{ font-family: var(--dc-font-mono); font-weight:600; color: var(--dc-text); }

/* ---------- Rating ring (signature) ---------- */
.dc-rating-ring{
  --pct: 0%;
  position:relative; width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background: conic-gradient(var(--dc-signal) var(--pct), var(--dc-line) 0);
  display:flex; align-items:center; justify-content:center;
}
.dc-rating-ring::before{ content:""; position:absolute; inset:4px; background: var(--dc-surface); border-radius:50%; }
.dc-rating-ring span{ position:relative; font-family: var(--dc-font-mono); font-size:12px; font-weight:700; }
.dc-rating-ring--lg{ width:76px; height:76px; }
.dc-rating-ring--lg span{ font-size: var(--dc-fs-md); }

/* ---------- Entity hero ---------- */
.dc-entity-hero{ display:grid; grid-template-columns:minmax(240px,320px) minmax(0,1fr) auto; gap:var(--dc-sp-6); align-items:start; padding-block:var(--dc-sp-6); border-bottom:1px solid var(--dc-line); }
.dc-entity-hero > *{ min-width:0; }
.dc-entity-hero-media{ background:var(--dc-surface); border:1px solid var(--dc-line); border-radius:var(--dc-radius-lg); aspect-ratio:1; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.dc-entity-hero-media img{ width:100%; height:100%; max-height:none; object-fit:contain; padding:var(--dc-sp-4); }
.dc-entity-hero-main .dc-eyebrow{ font-family:var(--dc-font-mono); font-size:var(--dc-fs-xs); color:var(--dc-signal-dim); text-transform:uppercase; letter-spacing:.06em; }
.dc-entity-hero-main h1{ font-size:clamp(var(--dc-fs-xl),3vw,var(--dc-fs-2xl)); overflow-wrap:anywhere; margin:4px 0 var(--dc-sp-3); }

.dc-status-badge{
  display:inline-flex; align-items:center; width:max-content; max-width:100%;
  margin-top:2px; padding:5px 9px; border-radius:999px;
  background:var(--dc-line-soft); color:var(--dc-text-soft);
  font-family:var(--dc-font-mono); font-size:11px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase;
}
.dc-status-badge--announced,
.dc-status-badge--rumored{ background:#fff4d6; color:#805b00; }
.dc-status-badge--discontinued,
.dc-status-badge--out-of-stock,
.dc-status-badge--out_of_stock{ background:var(--dc-negative-tint); color:var(--dc-negative); }
.dc-status-badge--available{ background:var(--dc-positive-tint); color:var(--dc-positive); }

.dc-quick-facts{ display:flex; flex-wrap:wrap; gap:var(--dc-sp-3) var(--dc-sp-5); margin-top:var(--dc-sp-4); }
.dc-quick-fact{ display:flex; flex-direction:column; gap:2px; min-width:110px; }
.dc-quick-fact .label{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--dc-text-faint); }
.dc-quick-fact .value{ font-family:var(--dc-font-mono); font-weight:600; font-size:var(--dc-fs-sm); overflow-wrap:anywhere; }
.dc-entity-hero-side{ display:flex; flex-direction:column; align-items:flex-end; gap:var(--dc-sp-3); min-width:132px; }
.dc-entity-hero-side .dc-price{ font-family:var(--dc-font-mono); font-size:var(--dc-fs-lg); font-weight:700; text-align:right; }

@media (max-width: 1040px){
  .dc-entity-hero{ grid-template-columns:minmax(210px,260px) minmax(0,1fr); gap:var(--dc-sp-5); }
  .dc-entity-hero-side{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-start; }
  .dc-entity-hero-side .dc-price{ text-align:left; }
}

@media (max-width: 680px){
  .dc-entity-hero{ grid-template-columns:minmax(0,1fr); gap:var(--dc-sp-4); padding-block:var(--dc-sp-5); }
  .dc-entity-hero-media{ width:min(100%,320px); justify-self:center; }
  .dc-entity-hero-main{ text-align:left; }
  .dc-quick-facts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--dc-sp-3); }
  .dc-quick-fact{ min-width:0; padding:10px 12px; background:var(--dc-surface); border:1px solid var(--dc-line-soft); border-radius:var(--dc-radius-md); }
  .dc-entity-hero-side{ grid-column:auto; align-items:center; }
  .dc-entity-hero-side .dc-btn{ flex:1 1 150px; }
}

@media (max-width: 420px){
  .dc-quick-facts{ grid-template-columns:1fr; }
  .dc-entity-hero-side{ align-items:stretch; }
  .dc-entity-hero-side .dc-rating-ring{ align-self:flex-start; }
  .dc-entity-hero-side .dc-price{ width:100%; }
  .dc-entity-hero-side .dc-btn{ width:100%; }
}

/* ---------- Layout: entity page main + sidebar ---------- */
.dc-entity-layout{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:var(--dc-sp-7); align-items:start; padding-top:var(--dc-sp-6); }
.dc-entity-main{ min-width:0; }
@media (max-width: 960px){ .dc-entity-layout{ grid-template-columns:1fr; } }

/* Sticky local section navigation remains presentation-only. */
.dc-entity-nav{
  position:sticky; top:var(--dc-header-h); z-index:70; display:flex; gap:var(--dc-sp-5);
  min-height:var(--dc-entity-nav-h); margin-bottom:var(--dc-sp-6); overflow-x:auto; scrollbar-width:thin;
  background:rgba(250,250,250,.97); border-bottom:1px solid var(--dc-line); box-shadow:0 1px 0 rgba(16,19,26,.02);
  -webkit-overflow-scrolling:touch;
}
.dc-entity-nav a{ flex:0 0 auto; font-size:var(--dc-fs-sm); font-weight:600; color:var(--dc-text-soft); padding:12px 2px 10px; border-bottom:2px solid transparent; white-space:nowrap; }
.dc-entity-nav a:hover,
.dc-entity-nav a.is-active,
.dc-entity-nav a[aria-current="location"]{ color:var(--dc-text); border-color:var(--dc-signal); }

.dc-block{ margin-bottom:var(--dc-sp-7); scroll-margin-top:calc(var(--dc-header-h) + var(--dc-entity-nav-h) + 18px); }
.dc-block h2{ font-size:var(--dc-fs-lg); padding-bottom:var(--dc-sp-3); border-bottom:1px solid var(--dc-line); margin-bottom:var(--dc-sp-4); }

@media (max-width: 680px){
  .dc-entity-layout{ padding-top:var(--dc-sp-4); }
  .dc-entity-nav{ gap:var(--dc-sp-4); margin-inline:calc(var(--dc-sp-4) * -1); padding-inline:var(--dc-sp-4); margin-bottom:var(--dc-sp-5); }
}

/* ---------- Spec table + spec-bar (signature) ---------- */
.dc-spec-group{ margin-bottom: var(--dc-sp-5); }
.dc-spec-group h3{ font-size: var(--dc-fs-sm); text-transform:uppercase; letter-spacing:.05em; color: var(--dc-text-faint); font-family: var(--dc-font-body); font-weight:700; margin-bottom: var(--dc-sp-2); }
.dc-spec-table{ width:100%; font-size: var(--dc-fs-sm); }
.dc-spec-table tr{ border-bottom:1px solid var(--dc-line-soft); }
.dc-spec-table tr:last-child{ border-bottom:none; }
.dc-spec-table th{ text-align:left; font-weight:500; color: var(--dc-text-soft); padding: 10px 12px 10px 0; width: 38%; vertical-align:top; }
.dc-spec-table td{ padding: 10px 0; font-family: var(--dc-font-mono); vertical-align:top; }

.dc-spec-bar-row{ display:flex; align-items:center; gap: var(--dc-sp-3); padding: 8px 0; border-bottom:1px solid var(--dc-line-soft); }
.dc-spec-bar-row:last-child{ border-bottom:none; }
.dc-spec-bar-label{ width: 38%; font-size: var(--dc-fs-sm); color: var(--dc-text-soft); flex-shrink:0; }
.dc-spec-bar-track{ flex:1; height:8px; background: var(--dc-line-soft); border-radius:4px; overflow:hidden; }
.dc-spec-bar-fill{ height:100%; background: var(--dc-signal); border-radius:4px; }
.dc-spec-bar-value{ font-family: var(--dc-font-mono); font-size: var(--dc-fs-sm); font-weight:600; width:64px; text-align:right; flex-shrink:0; }

/* ---------- Pros & cons ---------- */
.dc-pros-cons{ display:grid; grid-template-columns:1fr 1fr; gap: var(--dc-sp-5); }
@media (max-width:640px){ .dc-pros-cons{ grid-template-columns:1fr; } }
.dc-pros-cons > div{ border-radius: var(--dc-radius-lg); padding: var(--dc-sp-4); }
.dc-pros{ background: var(--dc-positive-tint); }
.dc-cons{ background: var(--dc-negative-tint); }
.dc-pros h3{ color: var(--dc-positive); font-size: var(--dc-fs-sm); }
.dc-cons h3{ color: var(--dc-negative); font-size: var(--dc-fs-sm); }
.dc-pros li, .dc-cons li{ position:relative; padding-left: 20px; margin-bottom: 8px; font-size: var(--dc-fs-sm); }
.dc-pros li::before{ content:"+"; position:absolute; left:0; color: var(--dc-positive); font-weight:700; font-family: var(--dc-font-mono); }
.dc-cons li::before{ content:"–"; position:absolute; left:0; color: var(--dc-negative); font-weight:700; font-family: var(--dc-font-mono); }

/* ---------- Price section ---------- */
.dc-price-table{ width:100%; border:1px solid var(--dc-line); border-radius: var(--dc-radius-lg); overflow:hidden; }
.dc-price-row{ display:flex; align-items:center; justify-content:space-between; padding: var(--dc-sp-3) var(--dc-sp-4); border-bottom:1px solid var(--dc-line); font-size: var(--dc-fs-sm); }
.dc-price-row:last-child{ border-bottom:none; }
.dc-price-row .dc-price{ font-family: var(--dc-font-mono); font-weight:700; }
.dc-price,.dc-card-price{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.dc-price-row > :first-child{ min-width:0; }
@media (max-width:560px){
  .dc-price-row{ align-items:flex-start; flex-wrap:wrap; gap:var(--dc-sp-2) var(--dc-sp-3); }
  .dc-price-row .dc-price{ margin-left:auto; }
  .dc-price-row .dc-btn{ width:100%; justify-content:center; }
}

/* ---------- FAQ ---------- */
.dc-faq-item{ border-bottom:1px solid var(--dc-line); }
.dc-faq-item summary{ cursor:pointer; padding: var(--dc-sp-3) 0; font-weight:600; list-style:none; display:flex; justify-content:space-between; gap:12px; }
.dc-faq-item summary::-webkit-details-marker{ display:none; }
.dc-faq-item summary::after{ content:"+"; font-family: var(--dc-font-mono); color: var(--dc-signal-dim); flex-shrink:0; }
.dc-faq-item[open] summary::after{ content:"–"; }
.dc-faq-item p{ padding-bottom: var(--dc-sp-3); color: var(--dc-text-soft); }

/* ---------- Alternatives / related cards row ---------- */
.dc-related-list{ display:flex; flex-direction:column; gap: var(--dc-sp-3); }
.dc-related-item{ display:flex; gap: var(--dc-sp-3); align-items:center; padding: var(--dc-sp-2); border-radius: var(--dc-radius-md); border:1px solid var(--dc-line); }
.dc-related-item:hover{ border-color: var(--dc-signal); }
.dc-related-item img{ width:48px; height:48px; object-fit:contain; background: var(--dc-line-soft); border-radius: var(--dc-radius-sm); }
.dc-related-item .title{ font-size: var(--dc-fs-sm); font-weight:600; }
.dc-related-item .sub{ font-size: var(--dc-fs-xs); color: var(--dc-text-faint); font-family: var(--dc-font-mono); }

/* ---------- Sidebar widgets / ad slot ---------- */
.dc-sidebar > * + *{ margin-top: var(--dc-sp-6); }
.dc-widget h3{ font-size: var(--dc-fs-sm); text-transform:uppercase; letter-spacing:.05em; color: var(--dc-text-faint); margin-bottom: var(--dc-sp-3); }
.dc-ad-slot{ border:1px dashed var(--dc-line); border-radius: var(--dc-radius-md); padding: var(--dc-sp-5); text-align:center; color: var(--dc-text-faint); font-size: var(--dc-fs-xs); font-family: var(--dc-font-mono); }

/* ---------- Comparison page ---------- */
.dc-comparison-title{ padding-top:var(--dc-sp-5); }
.dc-comparison-title h1{ font-size:var(--dc-fs-2xl); margin-top:4px; }
.dc-vs-shell,
.dc-compare-scroll{ overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; -webkit-overflow-scrolling:touch; }
.dc-vs-shell:focus-visible,
.dc-compare-scroll:focus-visible{ outline:2px solid var(--dc-signal); outline-offset:3px; border-radius:var(--dc-radius-md); }
.dc-vs-header{ --dc-compare-count:2; display:grid; grid-template-columns:repeat(var(--dc-compare-count),minmax(170px,1fr)); gap:var(--dc-sp-4); min-width:calc(var(--dc-compare-count) * 180px); padding-block:var(--dc-sp-6); align-items:stretch; }
.dc-vs-entity{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--dc-sp-2); min-width:0; padding:var(--dc-sp-4); border:1px solid var(--dc-line); border-radius:var(--dc-radius-lg); background:var(--dc-paper); }
.dc-vs-image{ width:100%; min-height:124px; display:flex; align-items:center; justify-content:center; }
.dc-vs-entity img{ width:100%; max-width:150px; height:120px; object-fit:contain; }
.dc-vs-entity h2{ font-size:var(--dc-fs-sm); overflow-wrap:anywhere; }
.dc-comparison-intro{ margin-inline:auto; }
.dc-compare-group{ min-width:0; }
.dc-compare-table{ --dc-compare-count:2; width:100%; min-width:calc(180px + (var(--dc-compare-count) * 190px)); border:1px solid var(--dc-line); border-collapse:separate; border-spacing:0; border-radius:var(--dc-radius-lg); overflow:visible; background:var(--dc-paper); }
.dc-compare-table tr{ border-bottom:1px solid var(--dc-line-soft); }
.dc-compare-table th, .dc-compare-table td{ min-width:190px; padding:12px 16px; font-size:var(--dc-fs-sm); text-align:center; border-bottom:1px solid var(--dc-line-soft); }
.dc-compare-table th:first-child{ position:sticky; left:0; z-index:2; min-width:180px; width:180px; text-align:left; color:var(--dc-text-soft); background:var(--dc-paper); box-shadow:1px 0 0 var(--dc-line-soft); }
.dc-compare-table thead th{ position:sticky; top:var(--dc-header-h); z-index:3; background:var(--dc-surface); font-family:var(--dc-font-display); font-weight:700; }
.dc-compare-table thead th:first-child{ z-index:4; background:var(--dc-surface); }
.dc-compare-table tbody tr:last-child th,
.dc-compare-table tbody tr:last-child td{ border-bottom:none; }
.dc-compare-table td{ font-family:var(--dc-font-mono); }
.dc-compare-table td.is-winner{ background:var(--dc-signal-tint); color:var(--dc-signal-dim); font-weight:700; }
.dc-compare-verdict{ background:var(--dc-ink); color:var(--dc-text-on-ink); border-radius:var(--dc-radius-lg); padding:var(--dc-sp-5); margin-top:var(--dc-sp-6); }
.dc-compare-verdict h3{ color:var(--dc-signal); font-size:var(--dc-fs-sm); text-transform:uppercase; letter-spacing:.05em; }
@media (max-width:720px){
  .dc-vs-header{ grid-template-columns:repeat(var(--dc-compare-count),minmax(150px,1fr)); min-width:calc(var(--dc-compare-count) * 160px); gap:var(--dc-sp-3); }
  .dc-vs-entity{ padding:var(--dc-sp-3); }
  .dc-vs-entity img{ height:100px; }
  .dc-compare-table{ min-width:calc(138px + (var(--dc-compare-count) * 164px)); }
  .dc-compare-table th, .dc-compare-table td{ min-width:164px; padding:10px 12px; }
  .dc-compare-table th:first-child{ min-width:138px; width:138px; }
}

/* ---------- Homepage sections ---------- */
.dc-hero{
  overflow:hidden;
  background:linear-gradient(115deg,var(--dc-ink) 0%,#111a2c 56%,#0a343a 100%);
  color:var(--dc-text-on-ink);
  padding-block:32px;
}
.dc-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(320px,1.04fr);
  align-items:center;
  gap:clamp(32px,5vw,72px);
  min-height:420px;
}
.dc-hero-copy{ min-width:0; position:relative; z-index:2; }
.dc-hero h1{
  max-width:12ch;
  margin-bottom:var(--dc-sp-4);
  font-size:clamp(2.5rem,4vw,var(--dc-fs-3xl));
  letter-spacing:-.025em;
}
.dc-hero p{
  max-width:52ch;
  margin-bottom:var(--dc-sp-5);
  color:rgba(243,245,247,.78);
  font-size:var(--dc-fs-md);
}
.dc-hero-search{ max-width:500px; }
.dc-hero .dc-search-form{ width:100%; }
.dc-hero .dc-search-form input[type="search"]{ width:100%; max-width:none; }
.dc-hero-actions{ display:flex; flex-wrap:wrap; gap:var(--dc-sp-3); margin-top:var(--dc-sp-4); }
.dc-hero .dc-btn--outline{
  color:var(--dc-text-on-ink);
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.04);
}
.dc-hero .dc-btn--outline:hover{
  color:#fff;
  border-color:rgba(255,255,255,.52);
  background:rgba(255,255,255,.08);
}
.dc-hero-media{
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:400px;
  pointer-events:none;
}
.dc-hero-media img{
  width:auto;
  max-width:100%;
  max-height:430px;
  object-fit:contain;
  filter:drop-shadow(0 24px 32px rgba(0,0,0,.28));
}
@media (max-width:900px){
  .dc-hero{ padding-block:42px 28px; }
  .dc-hero-grid{ grid-template-columns:1fr; gap:var(--dc-sp-5); min-height:0; }
  .dc-hero h1{ max-width:14ch; font-size:clamp(2.35rem,7vw,2.8rem); }
  .dc-hero p{ max-width:58ch; }
  .dc-hero-search{ max-width:560px; }
  .dc-hero-media{ min-height:0; margin-top:var(--dc-sp-2); }
  .dc-hero-media img{ max-height:310px; max-width:min(78vw,420px); }
}
@media (max-width:520px){
  .dc-hero{ padding-block:34px 22px; }
  .dc-hero h1{ font-size:2.35rem; }
  .dc-hero p{ font-size:var(--dc-fs-base); margin-bottom:var(--dc-sp-4); }
  .dc-hero-actions{ gap:var(--dc-sp-2); }
  .dc-hero-actions .dc-btn{ flex:1 1 0; min-width:0; padding-inline:12px; white-space:nowrap; }
  .dc-hero-media img{ max-height:270px; max-width:80vw; }
}
@media (max-width:360px){
  .dc-hero-actions{ display:grid; grid-template-columns:1fr; }
  .dc-hero-actions .dc-btn{ width:100%; }
}

.dc-category-pill{ display:inline-flex; align-items:center; gap:8px; padding: 8px 16px; border:1px solid var(--dc-line); border-radius: var(--dc-radius-md); font-size: var(--dc-fs-sm); font-weight:600; }
.dc-category-pill:hover{ border-color: var(--dc-signal); color: var(--dc-signal-dim); }
.dc-category-row{ display:flex; flex-wrap:wrap; gap: var(--dc-sp-3); }

.dc-article-card{ display:flex; flex-direction:column; gap:6px; }
.dc-article-card img{ border-radius: var(--dc-radius-md); aspect-ratio: 16/9; object-fit:cover; margin-bottom:8px; }
.dc-article-card .dc-eyebrow{ font-size:11px; text-transform:uppercase; color: var(--dc-text-faint); font-weight:700; }
.dc-article-card h3{ font-size: var(--dc-fs-md); }


/* Smartphone-specific homepage discovery surfaces. */
.dc-discovery-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--dc-sp-3); }
.dc-discovery-card{ min-width:0; display:flex; flex-direction:column; justify-content:center; gap:4px; min-height:76px; padding:var(--dc-sp-4); border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); background:var(--dc-paper); }
.dc-discovery-card:hover{ border-color:var(--dc-signal); transform:translateY(-1px); }
.dc-discovery-card--accent{ background:var(--dc-signal-tint); border-color:transparent; }
.dc-discovery-label{ font-family:var(--dc-font-display); font-weight:700; overflow-wrap:anywhere; }
.dc-discovery-meta,.dc-feature-meta{ color:var(--dc-text-faint); font-size:var(--dc-fs-xs); font-family:var(--dc-font-mono); }
.dc-feature-pill{ flex-direction:column; align-items:flex-start; gap:2px; }
@media (max-width:900px){ .dc-discovery-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .dc-discovery-grid{ grid-template-columns:1fr 1fr; gap:var(--dc-sp-2); } .dc-discovery-card{ padding:var(--dc-sp-3); min-height:68px; } }

/* Plugin-fed phone-page presentation slots. */
.dc-entity-slot--gallery{ margin-top:var(--dc-sp-5); }
.dc-phone-gallery{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--dc-sp-3); }
.dc-phone-gallery-item{ margin:0; border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); background:var(--dc-surface); overflow:hidden; }
.dc-phone-gallery-item.is-primary{ grid-column:span 2; grid-row:span 2; }
.dc-phone-gallery-item img{ width:100%; aspect-ratio:1; object-fit:contain; padding:var(--dc-sp-3); }
.dc-phone-gallery-item figcaption{ padding:0 var(--dc-sp-3) var(--dc-sp-3); color:var(--dc-text-faint); font-size:var(--dc-fs-xs); }
.dc-price-variants{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--dc-sp-3); margin-bottom:var(--dc-sp-4); }
.dc-price-variant{ display:flex; justify-content:space-between; align-items:center; gap:var(--dc-sp-3); padding:var(--dc-sp-4); border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); }
.dc-price-variant-meta{ display:block; margin-top:2px; color:var(--dc-text-faint); font-size:var(--dc-fs-xs); }
.dc-model-nav{ display:grid; grid-template-columns:1fr 1fr; gap:var(--dc-sp-4); margin-top:var(--dc-sp-6); padding-top:var(--dc-sp-5); border-top:1px solid var(--dc-line); }
.dc-model-nav-item{ display:flex; flex-direction:column; gap:4px; min-width:0; padding:var(--dc-sp-4); border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); }
.dc-model-nav-item--next{ text-align:right; }
.dc-link-card-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--dc-sp-3); }
.dc-link-card{ display:flex; flex-direction:column; gap:6px; padding:var(--dc-sp-4); border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); }
.dc-review-list{ display:grid; gap:var(--dc-sp-3); }
.dc-review-summary{ padding:var(--dc-sp-4); border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); }
.dc-review-summary-head{ display:flex; justify-content:space-between; gap:var(--dc-sp-3); }
.dc-review-score{ flex:0 0 auto; font-family:var(--dc-font-mono); font-weight:700; color:var(--dc-signal-dim); }
.dc-update-timeline{ list-style:none; padding:0; margin:0; display:grid; gap:0; }
.dc-update-timeline li{ display:grid; grid-template-columns:minmax(92px,auto) 1fr; gap:var(--dc-sp-4); padding:var(--dc-sp-4) 0; border-bottom:1px solid var(--dc-line-soft); }
.dc-update-timeline p{ margin:4px 0 0; color:var(--dc-text-soft); }
.dc-news-list{ display:grid; }
.dc-news-item{ display:flex; align-items:center; justify-content:space-between; gap:var(--dc-sp-4); padding:var(--dc-sp-4) 0; border-bottom:1px solid var(--dc-line-soft); }
.dc-news-item strong{ display:block; margin-top:3px; }
@media (max-width:720px){
  .dc-phone-gallery{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dc-phone-gallery-item.is-primary{ grid-column:span 2; grid-row:auto; }
  .dc-price-variants,.dc-link-card-grid,.dc-model-nav{ grid-template-columns:1fr; }
  .dc-model-nav-item--next{ text-align:left; }
  .dc-update-timeline li{ grid-template-columns:1fr; gap:6px; }
}

/* ---------- Archive / search filter bar ---------- */
.dc-archive-head{ padding-block: var(--dc-sp-6); border-bottom:1px solid var(--dc-line); }
.dc-archive-head h1{ font-size: var(--dc-fs-2xl); }
.dc-archive-layout{ display:grid; grid-template-columns: 260px 1fr; gap: var(--dc-sp-6); padding-top: var(--dc-sp-6); }
@media (max-width: 900px){ .dc-archive-layout{ grid-template-columns:1fr; } }
.dc-filters{ display:flex; flex-direction:column; gap: var(--dc-sp-5); }
.dc-filter-group h3{ font-size: var(--dc-fs-sm); margin-bottom: var(--dc-sp-2); }
.dc-filter-group label{ display:flex; align-items:center; gap:8px; font-size: var(--dc-fs-sm); padding: 4px 0; color: var(--dc-text-soft); }
.dc-toolbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom: var(--dc-sp-4); font-size: var(--dc-fs-sm); color: var(--dc-text-soft); }
.dc-sort select{ border:1px solid var(--dc-line); border-radius: var(--dc-radius-sm); padding:6px 10px; }

/* ---------- Pagination ---------- */
.dc-pagination{ display:flex; justify-content:center; gap:6px; margin-top: var(--dc-sp-7); }
.dc-pagination a, .dc-pagination span{ min-width:36px; height:36px; display:flex; align-items:center; justify-content:center; border:1px solid var(--dc-line); border-radius: var(--dc-radius-sm); font-size: var(--dc-fs-sm); font-family: var(--dc-font-mono); }
.dc-pagination .current{ background: var(--dc-ink); color:#fff; border-color: var(--dc-ink); }
.dc-pagination a:hover{ border-color: var(--dc-signal); }

/* ---------- Footer ---------- */
.dc-footer{ background: var(--dc-ink); color: rgba(243,245,247,.7); margin-top: var(--dc-sp-8); }
.dc-footer-grid{ display:grid; grid-template-columns: 2fr repeat(3, 1fr); gap: var(--dc-sp-6); padding-block: var(--dc-sp-7); }
@media (max-width: 780px){ .dc-footer-grid{ grid-template-columns: 1fr 1fr; } }
.dc-footer h4{ color: var(--dc-text-on-ink); font-size: var(--dc-fs-sm); margin-bottom: var(--dc-sp-3); }
.dc-footer a{ display:block; font-size: var(--dc-fs-sm); padding: 4px 0; color: rgba(243,245,247,.65); }
.dc-footer a:hover{ color: var(--dc-signal); }
.dc-footer-bottom{ border-top:1px solid rgba(255,255,255,.08); padding-block: var(--dc-sp-4); font-size: var(--dc-fs-xs); display:flex; justify-content:space-between; }

/* ---------- 404 / empty states ---------- */
.dc-empty-state{ text-align:center; padding-block: var(--dc-sp-9); }
.dc-empty-state .dc-code{ font-family: var(--dc-font-mono); font-size: var(--dc-fs-3xl); color: var(--dc-line); font-weight:700; }
.dc-empty-state h1{ font-size: var(--dc-fs-xl); }
.dc-empty-state p{ color: var(--dc-text-soft); max-width:48ch; margin-inline:auto; }

/* ---------- Utility ---------- */
.dc-mono{ font-family: var(--dc-font-mono); }
.dc-text-soft{ color: var(--dc-text-soft); }
.dc-text-faint{ color: var(--dc-text-faint); }
.dc-mt-0{ margin-top:0; }
.dc-lazy{ background: var(--dc-line-soft); }

/* Plugin-driven archive shell: no empty filter rail when Plugin 3 has no controls. */
.dc-archive-layout--no-filters {
	grid-template-columns: minmax(0, 1fr);
}


/* ========================================================================== 
   Phone Experience 2.0 RC1
   ========================================================================== */
.dc-phone-breadcrumbs{ padding-top:var(--dc-sp-4); }
.dc-phone-experience-hero{ grid-template-columns:minmax(270px,360px) minmax(0,1fr); gap:clamp(var(--dc-sp-5),4vw,var(--dc-sp-7)); padding:var(--dc-sp-6) 0; align-items:start; }
.dc-entity-hero-media-wrap{ min-width:0; }
.dc-phone-experience-hero .dc-entity-hero-media{ width:100%; aspect-ratio:1/1; background:linear-gradient(145deg,var(--dc-paper),var(--dc-surface)); box-shadow:0 14px 40px rgba(16,19,26,.06); }
.dc-phone-experience-hero .dc-entity-hero-media .dc-lazy{ width:100%;height:100%;border-radius:inherit; }
.dc-hero-thumbs{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:10px; }
.dc-hero-thumb{ appearance:none; border:1px solid var(--dc-line); border-radius:var(--dc-radius-sm); background:var(--dc-paper); padding:5px; cursor:pointer; min-width:0; transition:border-color .15s ease,box-shadow .15s ease; }
.dc-hero-thumb:hover,.dc-hero-thumb:focus-visible,.dc-hero-thumb.is-active{ border-color:var(--dc-signal); box-shadow:0 0 0 2px var(--dc-signal-tint); }
.dc-hero-thumb img{ width:100%; aspect-ratio:1; object-fit:contain; }
.dc-phone-identity h1{ margin:3px 0 var(--dc-sp-2); font-size:clamp(2rem,4vw,3.25rem); line-height:1.03; letter-spacing:-.035em; }
.dc-phone-meta{ display:flex; flex-wrap:wrap; gap:7px 14px; align-items:center; color:var(--dc-text-soft); font-size:var(--dc-fs-sm); }
.dc-phone-meta > span:not(.dc-status-badge){ position:relative; }
.dc-phone-meta > span:not(.dc-status-badge) + span:not(.dc-status-badge)::before{ content:'•'; margin-right:14px; color:var(--dc-text-faint); }
.dc-phone-meta .dc-status-badge{ margin:0; }
.dc-quick-facts--experience{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:var(--dc-sp-5); }
.dc-quick-facts--experience .dc-quick-fact{ min-width:0; min-height:96px; padding:13px 14px; border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); background:var(--dc-paper); box-shadow:0 3px 14px rgba(16,19,26,.025); }
.dc-quick-facts--experience .label{ font-size:10px; font-weight:700; color:var(--dc-text-faint); }
.dc-quick-facts--experience .value{ margin-top:4px; font-family:var(--dc-font-display); font-size:clamp(.95rem,1.2vw,1.08rem); line-height:1.25; color:var(--dc-text); }
.dc-quick-facts--experience .detail{ margin-top:4px; color:var(--dc-text-soft); font-size:11px; line-height:1.3; overflow-wrap:anywhere; }
.dc-hero-decision-row{ display:flex; flex-wrap:wrap; gap:12px; align-items:stretch; margin-top:var(--dc-sp-4); }
.dc-hero-score{ display:flex; align-items:center; gap:10px; padding:10px 13px 10px 10px; border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); background:var(--dc-surface); }
.dc-hero-score .dc-rating-ring--lg{ width:52px;height:52px; }
.dc-hero-score .dc-rating-ring--lg span{ font-size:var(--dc-fs-sm); }
.dc-hero-score > div:last-child{ display:flex;flex-direction:column;gap:1px; }
.dc-hero-score > div:last-child span,.dc-hero-price-card > span{ color:var(--dc-text-faint); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.dc-hero-score > div:last-child strong{ font-family:var(--dc-font-mono); }
.dc-hero-price-card{ display:flex; flex:1 1 220px; flex-direction:column; justify-content:center; min-width:0; padding:11px 14px; border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); background:var(--dc-signal-tint); }
.dc-hero-price-card:hover{ border-color:var(--dc-signal); }
.dc-hero-price-card .dc-price{ margin-top:2px; font-size:var(--dc-fs-lg); color:var(--dc-text); }
.dc-hero-price-card small{ margin-top:2px; color:var(--dc-text-soft); }
.dc-hero-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:var(--dc-sp-4); }
.dc-hero-actions .dc-btn{ min-height:42px; }

.dc-phone-experience > .dc-entity-nav{ margin-top:0; margin-bottom:0; }
.dc-phone-experience .dc-entity-layout{ padding-top:var(--dc-sp-5); }
.dc-block--overview .entry-content{ max-width:74ch; }

/* Market preference, not market restriction. */
.dc-market-pricing{ display:grid; gap:var(--dc-sp-4); }
.dc-market-price-primary{ display:flex; align-items:center; justify-content:space-between; gap:var(--dc-sp-4); padding:clamp(18px,3vw,26px); border:1px solid var(--dc-line); border-radius:var(--dc-radius-lg); background:linear-gradient(135deg,var(--dc-signal-tint),var(--dc-paper) 64%); }
.dc-market-price-primary.is-unverified{ background:var(--dc-surface); border-style:solid; }
.dc-market-price-copy{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; }
.dc-price-kicker{ color:var(--dc-signal-dim); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.dc-market-price-amount{ font-family:var(--dc-font-display); font-size:clamp(1.75rem,3.5vw,2.55rem); letter-spacing:-.025em; }
.dc-market-price-unavailable{ font-size:clamp(1.25rem,2.5vw,1.65rem); }
.dc-market-price-meta{ color:var(--dc-text-soft); font-size:var(--dc-fs-sm); }
.dc-market-price-verified{ margin-top:3px; color:var(--dc-positive); font-size:11px; font-weight:700; }
.dc-market-price-heading{ display:flex; align-items:end; justify-content:space-between; gap:var(--dc-sp-4); margin-bottom:10px; }
.dc-market-price-heading h3{ margin:2px 0 0; font-size:var(--dc-fs-md); }
.dc-market-price-heading > span{ color:var(--dc-text-faint); font-size:var(--dc-fs-xs); }
.dc-market-price-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.dc-market-price-card{ display:flex; flex-direction:column; gap:5px; min-width:0; padding:14px; border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); background:var(--dc-paper); }
.dc-market-price-card .dc-market-name{ color:var(--dc-text-soft); font-size:var(--dc-fs-xs); font-weight:700; }
.dc-market-price-card .dc-price{ font-size:var(--dc-fs-md); }
.dc-market-price-card small{ color:var(--dc-text-faint); overflow-wrap:anywhere; }
.dc-market-price-card a{ margin-top:auto; padding-top:4px; color:var(--dc-signal-dim); font-size:var(--dc-fs-xs); font-weight:700; }
.dc-price-empty-note{ margin:0; padding:14px 16px; border-radius:var(--dc-radius-md); background:var(--dc-surface); color:var(--dc-text-soft); }
.dc-all-market-prices{ border-top:1px solid var(--dc-line); padding-top:var(--dc-sp-3); }
.dc-all-market-prices summary{ cursor:pointer; width:max-content; max-width:100%; color:var(--dc-signal-dim); font-size:var(--dc-fs-sm); font-weight:700; }
.dc-all-market-price-table{ margin-top:12px; overflow-x:auto; border:1px solid var(--dc-line); border-radius:var(--dc-radius-md); }
.dc-all-market-price-table table{ width:100%; border-collapse:collapse; font-size:var(--dc-fs-sm); }
.dc-all-market-price-table th,.dc-all-market-price-table td{ padding:10px 12px; text-align:left; border-bottom:1px solid var(--dc-line-soft); white-space:nowrap; }
.dc-all-market-price-table th{ color:var(--dc-text-faint); font-size:10px; text-transform:uppercase; letter-spacing:.05em; }
.dc-selected-market-variants{ margin-top:var(--dc-sp-4); }
.dc-selected-market-variants > h3{ margin-bottom:10px; font-size:var(--dc-fs-sm); color:var(--dc-text-soft); }

/* Cleaner specification hierarchy: category cards + stable label/value rhythm. */
.dc-spec-sheet{ display:grid; gap:14px; }
.dc-spec-group{ margin:0; border:1px solid var(--dc-line); border-radius:var(--dc-radius-lg); background:var(--dc-paper); overflow:hidden; }
.dc-spec-group-head{ display:flex; align-items:center; gap:10px; padding:13px 16px; border-bottom:1px solid var(--dc-line); background:var(--dc-surface); }
.dc-spec-group-head > span{ width:8px; height:8px; border-radius:999px; background:var(--dc-signal); box-shadow:0 0 0 4px var(--dc-signal-tint); flex:0 0 auto; }
.dc-spec-group h3,.dc-spec-group-head h3{ margin:0; color:var(--dc-text); font-size:var(--dc-fs-sm); font-family:var(--dc-font-display); text-transform:none; letter-spacing:0; }
.dc-spec-table{ margin:0; }
.dc-spec-table tr:last-child{ border-bottom:0; }
.dc-spec-table th{ width:34%; padding:11px 16px; color:var(--dc-text-soft); font-weight:600; background:rgba(248,250,252,.42); }
.dc-spec-table td{ padding:11px 16px; font-family:var(--dc-font-body); color:var(--dc-text); overflow-wrap:anywhere; }

.dc-entity-slot--gallery{ margin-top:0; }
.dc-phone-gallery-item{ background:var(--dc-paper); }
.dc-phone-gallery-item img{ transition:transform .18s ease; }
.dc-phone-gallery-item:hover img{ transform:scale(1.025); }

@media (max-width:960px){
  .dc-phone-experience-hero{ grid-template-columns:minmax(230px,300px) minmax(0,1fr); gap:var(--dc-sp-5); }
  .dc-quick-facts--experience{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dc-market-price-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px){
  .dc-phone-breadcrumbs{ padding-top:var(--dc-sp-3); }
  .dc-phone-experience-hero{ grid-template-columns:1fr; gap:var(--dc-sp-4); padding:var(--dc-sp-4) 0 var(--dc-sp-5); }
  .dc-phone-experience-hero .dc-entity-hero-media-wrap{ width:min(100%,360px); justify-self:center; }
  .dc-phone-identity h1{ font-size:clamp(1.8rem,9vw,2.45rem); }
  .dc-phone-meta > span:not(.dc-status-badge) + span:not(.dc-status-badge)::before{ display:none; }
  .dc-quick-facts--experience{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:var(--dc-sp-4); }
  .dc-quick-facts--experience .dc-quick-fact{ min-height:88px; padding:11px 12px; }
  .dc-hero-decision-row{ flex-direction:column; }
  .dc-hero-price-card{ flex-basis:auto; }
  .dc-hero-actions .dc-btn{ flex:1 1 145px; }
  .dc-phone-experience > .dc-entity-nav{ margin-inline:calc(var(--dc-sp-4) * -1); padding-inline:var(--dc-sp-4); }
  .dc-market-price-primary{ align-items:flex-start; flex-direction:column; }
  .dc-market-price-primary .dc-btn{ width:100%; justify-content:center; }
  .dc-market-price-heading{ align-items:flex-start; flex-direction:column; gap:5px; }
  .dc-market-price-grid{ grid-template-columns:1fr 1fr; }
  .dc-spec-table th{ width:36%; padding:10px 10px 10px 12px; font-size:12px; }
  .dc-spec-table td{ padding:10px 12px 10px 10px; font-size:12px; }
}
@media (max-width:420px){
  .dc-quick-facts--experience{ grid-template-columns:1fr 1fr; }
  .dc-market-price-grid{ grid-template-columns:1fr; }
  .dc-hero-thumbs{ grid-template-columns:repeat(5,minmax(42px,1fr)); overflow-x:auto; padding-bottom:2px; }
  .dc-hero-thumb{ min-width:48px; }
}

.dc-market-price-basis{color:var(--dc-text-faint);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
