/* Climax Doll Index. Shared routing and storefront components live in site.css. */
:root {
  --bg:#fcfbf8;
  --surface:#fff;
  --surface-2:#eff1ef;
  --text:#17293b;
  --muted:#536171;
  --line:#d6dedf;
  --radius:4px;
  --max:1360px;
  --ink:#132437;
  --ink-raised:#1e354b;
  --index-heading-font:Georgia,"Yu Mincho","Noto Serif CJK JP",serif;
}
html[data-color="blue"] { --accent:#1d596b; --accent-hover:#154757; --accent-soft:#e8f1f1; }
.site-header { color:#f8fbfd; background:var(--ink); border-color:var(--ink); }
.header-inner {
  max-width:calc(var(--max) + var(--gutter)*2);
  min-height:68px;
  padding-block:10px;
  gap:24px;
}
.site-header .brand { color:#fff; font-family:var(--index-heading-font); letter-spacing:-.025em; font-size:28px; }
.site-header .brand-symbol > .icon { color:#b8dedc; }
.header-search {
  max-width:none;
  background:#f9fbfc;
  color:var(--text);
  border:1px solid #8a9ca9;
  border-radius:4px;
  box-shadow:none;
}
.header-search input { height:42px; }
.header-search:focus-within { outline:2px solid #b8dedc; outline-offset:2px; }
.header-search>button { background:#e2ecee; color:var(--ink); border-left:1px solid #bfced4; }
.header-search>button:hover { background:#cee3e7; }
.header-tools .icon-button:hover { background:var(--ink-raised); }
.header-tools summary:hover { color:#c6e4e4; }
.header-tools .dropdown-panel { color:var(--text); }
.header-tools .button.header-contact { background:#d7eae9; color:var(--ink); border-color:#d7eae9; }
.header-tools .button.header-contact:hover { background:#b9dbdb; color:var(--ink); border-color:#b9dbdb; }
.header-nav-row { min-height:44px; border-top:1px solid #354b5d; gap:18px; }
.desktop-nav { gap:5px; }
.desktop-nav a { padding:8px 14px; min-height:43px; font-weight:500; }
.desktop-nav a:hover,.desktop-nav a.active { color:#e7f5f3; background:var(--ink-raised); }
.desktop-nav a.active::after { height:2px; background:#acd9d6; }
.nav-caption { color:#c0cbd5; }
.site-header :focus-visible { outline-color:#b8dedc; }
.site-header .dropdown-panel :focus-visible,.header-search :focus-visible { outline-color:var(--accent); }
.mobile-nav.open { background:var(--ink-raised); border-color:#354b5d; }
.mobile-nav .mobile-currency-form { color:var(--text); }

.edition-masthead {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(235px,310px);
  align-items:end;
  gap:26px;
  padding-block:24px 19px;
  border-bottom:2px solid var(--ink);
}
.edition-kicker {
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--accent);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.075em;
  line-height:1.45;
}
.edition-rule { width:20px; height:2px; background:currentColor; }
.edition-masthead h1 { font:700 clamp(32px,4vw,54px)/1.04 var(--index-heading-font); margin-block:7px 9px; }
.edition-intro p { max-width:760px; color:var(--muted); }
.edition-contents { min-width:0; border-top:1px solid var(--line); }
.edition-contents a {
  min-height:36px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:10px;
  border-bottom:1px solid var(--line);
  padding-block:6px;
  font-size:14px;
}
.edition-contents a:hover,.catalogue-categories a:hover { color:var(--accent); text-decoration:underline; }
.edition-contents strong { font-variant-numeric:tabular-nums; color:var(--accent); }
.edition-contents .icon,.catalogue-categories .icon { width:15px; height:15px; }

.catalogue-index {
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  align-items:start;
  gap:19px;
  padding-top:16px;
  scroll-margin-top:20px;
}
.catalogue-rail { min-width:0; }
.catalogue-categories {
  border:1px solid var(--line);
  background:var(--surface);
}
.catalogue-categories h2 {
  font-size:14px;
  background:var(--ink-raised);
  color:#f8fbfd;
  letter-spacing:0;
  padding:10px 12px;
}
.catalogue-categories a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  min-height:42px;
  padding:7px 11px;
  border-top:1px solid var(--line);
  font-size:14px;
  line-height:1.35;
}
.catalogue-categories .index-all { color:var(--accent); background:var(--accent-soft); font-weight:600; }
.catalogue-offer { margin-top:15px; padding:13px; border:1px solid var(--line); border-top:3px solid var(--accent); background:var(--surface); }
.catalogue-offer h2 { font:700 20px/1.2 var(--index-heading-font); margin-block:7px; }
.catalogue-offer p { color:var(--muted); font-size:14px; line-height:1.55; }
.catalogue-offer .button { width:100%; margin-top:11px; font-size:14px; padding-inline:9px; }
.catalogue-offer .button .icon { width:15px; height:15px; }

.home-products { min-width:0; }
.index-heading { margin-bottom:12px; padding-bottom:9px; border-bottom:1px solid var(--line); }
.index-heading h2,.page-intro h1,.product-information h1 { font-family:var(--index-heading-font); }
.index-heading h2 { font-size:25px; }
.index-heading .edition-kicker { margin-bottom:3px; }
.section { padding-top:27px; }
.product-grid { gap:12px; }
.product-card { background:var(--surface); border:1px solid var(--line); }
.product-image {
  aspect-ratio:4/5;
  border:0;
  border-radius:0;
  background:#e9eceb;
}
.product-image img { object-fit:contain; }
.product-badge {
  left:0;
  right:auto;
  top:0;
  background:var(--ink);
  color:#fff;
  border:0;
  border-radius:0;
  font-size:11px;
  letter-spacing:.03em;
  padding:4px 7px;
}
.product-card-body { padding:8px 9px 5px; border-top:1px solid var(--line); }
.product-category { font-size:13px; color:var(--accent); line-height:1.35; }
.product-card h3 { font-size:15px; line-height:1.32; }
.product-card p { font-size:13px; line-height:1.45; margin-top:5px; }
.product-card-bottom { padding-top:6px; align-items:start; gap:0 6px; }
.product-card-bottom a { min-height:32px; }
.product-card-bottom>span { font-size:13px; }
.card-offer-link { width:100%; min-height:40px; border-top:1px solid var(--line); border-radius:0; font-weight:600; }
.card-offer-link .icon { flex:none; width:14px; height:14px; }
.theme-discover .home-products .product-grid.small-collection { max-width:none; }
.theme-discover .related-section .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }

.home-stories { scroll-margin-top:20px; }
.home-stories .article-grid,.listing-page .article-grid { column-gap:17px; row-gap:15px; }
.article-card {
  background:var(--surface);
  border:1px solid var(--line);
  border-top:2px solid var(--ink);
}
.article-image { aspect-ratio:2; border-radius:0; background:#edf0ee; }
.article-image img { object-fit:contain; }
.article-image>span { left:0; bottom:0; border-radius:0; padding:3px 6px; background:var(--ink); color:#fff; font-size:12px; }
.article-card-body { padding:10px 12px 12px; }
.article-meta { font-size:12px; gap:3px 8px; }
.article-meta span+span::before { margin-right:7px; }
.article-card h3 { font:700 18px/1.24 var(--index-heading-font); }
.article-card p { font-size:14px; line-height:1.5; margin-top:5px; -webkit-line-clamp:2; }
.article-card .text-link { margin-top:7px; min-height:36px; }
.coupon-card,.contact-form-card { border-radius:3px; }
.review-note { margin-top:20px; border-radius:0; border-top:1px solid var(--line); }
.review-note h2 { font-family:var(--index-heading-font); }

.listing-page { padding-top:24px; }
.page-intro {
  border-bottom:2px solid var(--ink);
  padding-bottom:14px;
  margin-bottom:14px;
}
.page-intro .eyebrow { color:var(--accent); }
.page-intro h1 { font-size:clamp(29px,3vw,42px); }
.listing-filters { background:var(--surface-2); border-radius:3px; padding:10px; margin-top:0; }
.listing-summary { margin-block:14px; }
.article-lead-frame {
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  align-items:center;
  gap:24px;
  border-block:2px solid var(--ink);
  padding:18px 0;
  margin-bottom:23px;
}
.article-lead-frame.no-cover { grid-template-columns:1fr; }
.article-lead-frame .article-heading { margin:0; }
.article-lead-frame h1 { font:700 clamp(29px,3.5vw,49px)/1.08 var(--index-heading-font); }
.article-lead-frame .article-cover {
  max-height:350px;
  aspect-ratio:16/10;
  object-fit:contain;
  border:1px solid var(--line);
  border-radius:0;
  margin:0;
}
.article-prose { color:var(--text); }
.article-prose h2,.article-prose h3 { font-family:var(--index-heading-font); }
.product-detail { gap:28px; }
.main-product-image { border-radius:0; background:#e9eceb; }
.product-information { padding:14px 16px; border:1px solid var(--line); border-top:3px solid var(--ink); background:var(--surface); }
.product-description { border-top:1px solid var(--line); }
.site-footer { background:#e9eeed; }
.footer-top h3 { font-family:var(--index-heading-font); }

@media (min-width:1380px) {
  .theme-discover .home-products .product-grid,.theme-discover .listing-page .product-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
}
@media (min-width:1100px) and (max-width:1379px) {
  .theme-discover .home-products .product-grid,.theme-discover .listing-page .product-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
@media (min-width:900px) {
  .theme-discover .home-stories .article-grid,.theme-discover .listing-page .article-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .home-stories .article-card:nth-child(-n+2) {
    grid-column:span 2;
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  }
  .home-stories .article-card:nth-child(-n+2) .article-image { aspect-ratio:auto; min-height:150px; }
  .home-stories .article-card:nth-child(-n+2) .article-card-body { align-self:center; padding:13px 16px; }
  .home-stories .article-card:nth-child(-n+2) h3 { font-size:23px; }
}
@media (max-width:999px) {
  .header-inner { padding-block:9px; gap:10px; }
}
@media (max-width:899px) {
  .catalogue-index { grid-template-columns:1fr; gap:13px; }
  .catalogue-categories { display:flex; flex-wrap:wrap; align-items:center; gap:5px; padding:6px; }
  .catalogue-categories h2 { font-size:13px; background:transparent; color:var(--text); padding:5px 7px; }
  .catalogue-categories a { border:1px solid var(--line); padding:5px 8px; min-height:36px; }
  .catalogue-offer { display:none; }
}
@media (max-width:699px) {
  .site-header .brand { font-size:23px; }
  .edition-masthead { grid-template-columns:1fr; gap:12px; padding-block:15px 11px; }
  .edition-masthead h1 { font-size:34px; }
  .edition-intro p { font-size:15px; }
  .edition-contents { display:flex; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; gap:6px; padding:3px; border:0; }
  .edition-contents a { flex:none; background:var(--surface); border:1px solid var(--line); padding:6px 8px; gap:6px; min-height:42px; white-space:nowrap; }
  .catalogue-index { padding-top:11px; }
  .catalogue-categories { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; padding:6px; }
  .catalogue-categories h2,.catalogue-categories a { flex:none; white-space:nowrap; }
  .catalogue-categories a { min-height:42px; }
  .theme-discover .home-products .product-grid,.theme-discover .listing-page .product-grid:not(.mixed-grid),
  .theme-discover .related-section .product-grid,
  .theme-discover .home-stories .article-grid,.theme-discover .listing-page .article-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;
  }
  .index-heading h2 { font-size:22px; }
  .article-card h3 { font-size:16px; }
  .article-card-body { padding:8px 9px; }
  .article-lead-frame { grid-template-columns:1fr; gap:12px; padding:13px 0; }
  .article-lead-frame .article-cover { max-height:290px; }
  .article-lead-frame .article-heading>p { font-size:16px; margin-top:10px; }
  .product-detail { gap:16px; }
  .product-information h1 { font-size:28px; }
}
