/* The public catalogue uses the existing midnight / cobalt / lime system. */
.catalog-hero { padding-block: clamp(3rem, 7vw, 7rem); }
.catalog-hero h1 { max-width: 16ch; }
.eyebrow { font: 500 .78rem/1.5 var(--mono); text-transform: uppercase; letter-spacing: .1em; color: var(--lime); margin-bottom: 1.5rem; }
.catalog-hero .lede { margin-top: 1.5rem; max-width: 42rem; }
.hero-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.75rem; }
.route-panel { border: 1px solid var(--line-strong); border-radius: 22px; background: var(--bg-raised); overflow: hidden; }
.route-panel > p { padding: 1.2rem 1.5rem; border-bottom: 1px solid var(--line); }
.route-panel a { display: block; padding: 1.5rem; text-decoration: none; border-bottom: 1px solid var(--line); transition: background .2s; }
.route-panel a:last-child { border: 0; }
.route-panel a:hover { background: var(--bg-card); }
.route-panel strong { display: block; font: 700 1.65rem/1.2 var(--serif); margin-bottom: .5rem; }
.route-panel span { color: var(--fg-2); }
.section-head { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.section-head h2 { max-width: 20ch; }
.section-head p { max-width: 34rem; color: var(--fg-2); }
.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.5rem; }
.catalog-grid--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.product-card { padding: clamp(1.5rem,3vw,2.5rem); border: 1px solid var(--line-strong); border-radius: 22px; background: var(--bg-card); display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.product-card--featured { border-color: var(--cobalt); background: var(--bg-raised); }
.product-card h2 { font-size: var(--step-3); }
.product-card h3 { font-size: 1.6rem; }
.product-card p, .product-card li { color: var(--fg-2); }
.product-card ul { padding-left: 1.2rem; margin: 0; }
.product-card .actions { margin-top: auto; padding-top: 1rem; }
.product-card .eyebrow { margin: 0; color: var(--lime); }
.product-card .availability { font: 500 .78rem/1.4 var(--mono); color: var(--muted); }
.product-mark { height: 130px; display:flex; align-items:center; justify-content:center; background: var(--bg); border: 1px solid var(--line); border-radius: 12px; overflow:hidden; }
.product-mark svg { width:100%; height:100%; }
.product-mark line, .product-mark path { vector-effect:non-scaling-stroke; }
.offer-note { padding: 1.25rem 1.5rem; border-left: 3px solid var(--cobalt); background: var(--bg-raised); color: var(--fg-2); margin-top: 2rem; }
.offer-note strong { color: var(--fg); }
.catalog-section { padding-block: clamp(3rem,6vw,6rem); border-top: 1px solid var(--line); }
.catalog-section h2 + .lede { margin-top: 1.25rem; }
.comparison { overflow-x:auto; margin-top: 2rem; }
.comparison table { width:100%; min-width:570px; border-collapse:collapse; text-align:left; }
.comparison th,.comparison td { padding:1rem; border-bottom:1px solid var(--line); vertical-align:top; }
.comparison th { color:var(--fg); font-weight:600; }
.comparison td { color:var(--fg-2); }
.faq { margin-top:2rem; max-width:850px; }
.faq details { padding:1.25rem 0; border-bottom:1px solid var(--line); }
.faq summary { cursor:pointer; font-weight:600; font-size:1.1rem; }
.faq details p { padding-top:1rem; color:var(--fg-2); }
.steps { list-style:none; padding:0; counter-reset:step; margin:2rem 0; }
.steps li { counter-increment:step; display:grid; grid-template-columns:3rem 1fr; gap:1rem; padding:1.5rem 0; border-top:1px solid var(--line); }
.steps li::before { content:counter(step,decimal-leading-zero); font:500 1.2rem var(--mono); color:var(--lime); }
.steps p { margin-top:.6rem; color:var(--fg-2); max-width:65ch; }
.source-list { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; }
.source-list a { padding:1.5rem; border:1px solid var(--line); border-radius:14px; text-decoration:none; background:var(--bg-raised); }
.source-list strong { display:block; margin-bottom:.5rem; }
.source-list span { color:var(--fg-2); }
.news-item { padding:2rem 0; border-bottom:1px solid var(--line); max-width:850px; }
.news-item h2 { font-size:var(--step-3); margin:1rem 0; }
.news-item p { max-width:70ch; }
.news-item .meta { font:.8rem/1.6 var(--mono); color:var(--muted); }
.news-item .interpretation { border-left:2px solid var(--cobalt); padding-left:1rem; margin-top:1rem; }
.about-grid { display:grid; grid-template-columns:240px 1fr; gap:3rem; align-items:center; }
.about-grid img { border-radius:18px; width:240px; height:300px; object-fit:cover; }
.about-grid h2 { margin-bottom:1.5rem; }
.availability-strip { border-block:1px solid var(--line); padding:1rem 0; color:var(--muted); font-size:.9rem; }
.btn[aria-disabled=true] { cursor:default; opacity:.7; }
.no-js-nav { display:none; }
@media (max-width:1000px) {
 .brand { flex-direction:column; gap:.4rem; }
 .nav a { padding-inline:.6rem; font-size:.9rem; }
 .hero-grid { grid-template-columns:1fr; }
 .catalog-grid--three { grid-template-columns:1fr; }
 .section-head { display:block; }
 .section-head p { margin-top:1.25rem; }
}
@media (min-width:561px) and (max-width:760px) {
 .site-header__inner { flex-wrap:wrap; gap:.25rem; padding-block:.6rem; }
 .nav { flex-wrap:wrap; }
}
@media (max-width:600px) {
 .catalog-grid, .source-list, .about-grid { grid-template-columns:1fr; }
 .catalog-hero h1 { font-size:clamp(2.5rem,10vw,4rem); }
 .product-card { padding:1.5rem; }
 .about-grid { gap:1.5rem; }
 .actions .btn { width:100%; }
 .comparison th,.comparison td { padding:.75rem; }
}
html:not(.js) .no-js-nav { display:flex; flex-wrap:wrap; gap:1rem; padding:1rem; }
