/* Shared reading scale. Loaded after component styles on every public page. */
:root {
  --muted: #4e6179;
  --reading-secondary: #4e6179;
}

/* Actions keep their existing hierarchy, colour and shape. */
body .primary,
body .form-button,
body .purchase-button,
body .cart-checkout,
body .cart-continue,
body #cart-empty .primary,
body .catalog-empty .primary,
body .collector-empty .primary,
body .collector-catalog-dialog .primary,
body .collector-manage-dialog .primary,
body .detail-copy[data-store-product]:not([data-store-product=""]) .purchase-button,
#dra-ett-kort .draw-cta,
#dra-ett-kort .draw-result .purchase-button {
  font-size: 16px;
  line-height: 1.5;
  min-height: 48px;
  height: auto;
}
body .primary { max-width: 100%; }
body .primary svg,
body .form-button svg,
body .purchase-button svg { flex-shrink: 0; }

/* Hero and featured products. */
.hero-copy .hero-buyback-title { font-size: 16px; line-height: 1.5; }
.hero-copy .hero-buyback-value { font-size: 14px; line-height: 1.6; color: var(--reading-secondary); }
.hero-showcase[data-mixed-products] .featured-note {
  font-size: 14px;
  line-height: 1.5;
  color: var(--reading-secondary);
}
.hero-showcase[data-mixed-products] .featured-price { margin-top: 8px; }
.hero-showcase .featured-caption { min-width: 0; }
.hero-showcase .featured-title,
.hero-showcase .featured-note { overflow-wrap: break-word; }
.intro-strip { row-gap: 12px; }
.intro-strip > span:not(.strip-dot) { font-size: 12px; letter-spacing: .14em; }
body .index { font-size: 12px; line-height: 1.5; }
#filosofin .index { font-size: 12px; }

/* Card information is grouped tightly; the price has its own breathing room. */
body .tile-info p:not(.card-price):not(.price-pending),
body .collection-page .tile-info p:not(.card-price):not(.price-pending) {
  font-size: 15px;
  line-height: 1.6;
  color: var(--reading-secondary);
  margin-top: 5px;
}
body .tile-info p.card-condition:not(.card-price):not(.price-pending),
body .collection-page .tile-info p.card-condition:not(.card-price):not(.price-pending) { color: var(--ink); }
body .tile-info .card-condition span { color: var(--reading-secondary); }
body .tile-price-row { margin-top: 12px; }
body .tile-info .tile-price-row .card-price { margin: 0; }
body .tile-board-action,
body .tile-board-action .board-action-label { font-size: 14px; line-height: 1.5; color: var(--reading-secondary); }
body .tile-board-action { min-height: 44px; height: auto; }
body .tile-number { font-size: 12px; line-height: 1.4; letter-spacing: .03em; }

/* Reveal: preserve the title, price and motion, improve the supporting copy. */
#dra-ett-kort .draw-result p:not(.draw-price),
#dra-ett-kort .draw-prompt p { font-size: 16px; line-height: 1.6; color: var(--reading-secondary); }
#dra-ett-kort .draw-actions a { font-size: 16px; line-height: 1.5; }
#dra-ett-kort .reveal-description { font-size: 17px; line-height: 1.6; }
#dra-ett-kort .reveal-tabs button { font-size: 16px; line-height: 1.5; }

/* Selling and about: the existing about introduction sets the reading rhythm. */
body .buyback-copy > p { font-size: 18px; line-height: 1.6; max-width: 42ch; }
body .sell-journey .buyback-steps p { font-size: 16px; line-height: 1.65; color: var(--reading-secondary); max-width: 34ch; margin-top: 6px; }
#filosofin .collectors-intro { color: var(--reading-secondary); }
#filosofin .collectors-more { font-size: 17px; line-height: 1.65; max-width: 55ch; color: var(--reading-secondary); }
#filosofin .collectors-value p { font-size: 16px; line-height: 1.65; color: var(--reading-secondary); max-width: 34ch; }

/* Forms: labels, instructions and disclosure rows remain readable at all sizes. */
#sell-form .field label,
#collector-form .field label { font-size: 14px; line-height: 1.5; margin-bottom: 8px; }
body .enquiry-upload .enquiry-upload-copy strong { font-size: 16px; line-height: 1.5; }
body .enquiry-upload-copy > span,
body .field-help,
body .field-error,
body .enquiry-file-list { font-size: 14px; line-height: 1.6; }
body .enquiry-upload-copy > span,
body .field-help { color: var(--reading-secondary); }
body .photo-tips summary,
body .sell-message summary { font-size: 16px; line-height: 1.5; min-height: 44px; }
body .photo-tips ul { font-size: 15px; line-height: 1.65; color: var(--reading-secondary); }
body .form-success,
body .form-error { font-size: 16px; line-height: 1.6; }
#kontakt .contact-copy > p { font-size: 17px; line-height: 1.6; }
#kontakt .contact-faq h3 { font-size: 16px; line-height: 1.5; }
#kontakt .contact-faq-item summary { font-size: 16px; line-height: 1.5; }
#kontakt .contact-faq-answer p { font-size: 16px; line-height: 1.65; max-width: 58ch; }
#kontakt .contact-faq-answer a,
#kontakt .contact-faq-more { font-size: 15px; line-height: 1.6; }

/* Shop controls and product details. */
body .collection-categories button,
body .collection-filter-panel summary { font-size: 15px; line-height: 1.5; }
body .collection-sort,
body .collection-filter-fields > label,
body .collection-status-row,
body .collection-status-row .text-button { font-size: 14px; line-height: 1.5; }
body .collection-sort { flex-wrap: wrap; gap: 8px 14px; }
body .collection-sort select,
body .collection-filter-fields select,
body .collection-price input,
body .collection-toolbar .search input,
body .header-search input { font-size: 16px; line-height: 1.5; }
body .collection-filter-fields select,
body .collection-price input { height: auto; min-height: 48px; }
body .collection-filter-fields > label { min-width: min(160px,100%); }
body .filter-apply { font-size: 16px; line-height: 1.5; height: auto; min-height: 48px; padding-block: 12px; }
body .detail-copy .facts dt,
body .detail-copy .price-label { font-size: 14px; line-height: 1.5; color: var(--reading-secondary); }
body .detail-copy .facts dd { font-size: 16px; line-height: 1.6; }
body .detail-copy .detail-description { font-size: 17px; line-height: 1.65; max-width: 58ch; }
body .product-information summary { font-size: 16px; line-height: 1.5; }
body .product-information p { font-size: 16px; line-height: 1.65; max-width: 58ch; color: var(--reading-secondary); }
body .product-information a,
body .detail-copy .back,
body .detail-copy .detail-favorite,
body .detail-copy[data-store-product]:not([data-store-product=""]) .detail-enquiry { font-size: 14px; line-height: 1.6; }
body .buying-info-sections p,
body .buying-info-intro > p { font-size: 17px; line-height: 1.65; max-width: 62ch; color: var(--reading-secondary); }
body .buying-info-sections a { font-size: 15px; line-height: 1.6; }

/* Information and footer links wrap instead of shrinking. */
body .cookie-panel { font-family: 'DM Sans',sans-serif; font-size: 16px; line-height: 1.6; }
body .cookie-panel button:not(.cookie-close) { font-family: inherit; font-size: 15px; line-height: 1.5; }
body .cookie-option p { font-size: 15px; line-height: 1.6; }
body .cookie-option span,
body .cookie-bottom a { font-size: 14px; line-height: 1.5; }
body .cookie-page .cookie-choice-note,
body .cookie-page-end p,
body .cookie-purpose .cookie-category { font-size: 15px; line-height: 1.6; }
body .cookie-info code { font-size: 14px; overflow-wrap: anywhere; }
body .footer .footer-bottom { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 18px 24px; }
body .footer-bottom .footer-copyright { grid-column: 1; grid-row: 1; font-size: 13px; }
body .footer-bottom .footer-tagline { grid-column: 2; grid-row: 1; white-space: normal; font-size: 12px; }
body .footer-bottom .footer-help { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; gap: 8px 24px; }
body .footer-bottom .footer-help a,
body .footer-bottom .cookie-open,
body .footer-top .back-to-top { font-size: 15px; line-height: 1.6; }
body .footer-bottom .footer-help a,
body .footer-bottom .cookie-open { white-space: normal; padding-block: 10px; }

@media (max-width: 700px) {
  body .buyback-copy > p { font-size: 17px; max-width: 42ch; }
  #filosofin .collectors-intro { font-size: 17px; line-height: 1.65; }
  body .collection-page .tile-info p:not(.card-price):not(.price-pending),
  body .tile-info p:not(.card-price):not(.price-pending) { font-size: 14px; line-height: 1.6; }
  body .collection-categories button { padding: 11px 14px; }
  body .footer-bottom .footer-help { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 20px; }
  body .footer-bottom .footer-tagline { text-align: left; }
}
@media (max-width: 400px) {
  body .footer .footer-bottom { grid-template-columns: minmax(0,1fr); }
  body .footer-bottom .footer-tagline { grid-column: 1; grid-row: 3; }
  body .photo-tips summary,
  body .sell-message summary { font-size: 15px; }
  body .intro-strip > span:not(.strip-dot) { font-size: 11px; letter-spacing: .1em; }
}
