/* Shared final layer: one responsive contract for every public page. */
:root { --content-width:1240px; }
html,body { max-width:100%; }
body { min-height:100%; }
.shell,.wrap,.header-inner,.footer-inner { width:min(var(--content-width),calc(100% - 48px)); margin-inline:auto; }
main > [data-builder-block] { max-width:100%; }
.site-header { background:rgba(255,255,255,.94); border-bottom:1px solid rgba(210,218,234,.8); backdrop-filter:blur(20px) saturate(160%); }
.header-inner { min-width:0; }
.nav { min-width:0; }
.nav a,.header-search,.pill { font-size:13px; }
.hero-sub,.section-side p,.company-copy,.page-head p:not(.eyebrow),.editorial-card p:not(.eyebrow),.catalog-note p { font-size:15px; }
.product-detail { font-size:14px; line-height:1.55; }
.product-meta,.pro-price,.product-badge { font-size:12px; }
.card-actions a,.card-actions button { min-height:44px; font-size:12px; }
.product-visual.has-image::before { display:none; }
.product-visual img { width:100%; height:100%; object-fit:contain; padding:18px; }
.product-card { cursor:pointer; }
.product-card:focus-visible { outline:3px solid color-mix(in srgb,var(--accent) 38%,transparent); outline-offset:3px; }
.product-placeholder { max-width:72%; color:#71809d; font-size:18px; font-weight:800; letter-spacing:.08em; text-align:center; text-transform:uppercase; }
.product-more { margin-top:8px; color:var(--accent); font-size:11px; font-weight:750; }
.catalog-result-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 14px; color:#626762; font-size:13px; }
.catalog-load-more { display:flex; justify-content:center; padding:24px 0 8px; }
.catalog-load-more button { min-width:210px; }
.catalog-empty { grid-column:1/-1; padding:48px 24px; text-align:center; border:1px solid var(--line); border-radius:22px; background:#fff; color:#666; }
body.modal-open { overflow:hidden; }
.product-modal[hidden] { display:none; }
.product-modal { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:24px; background:rgba(11,17,28,.68); backdrop-filter:blur(9px); }
.product-modal-dialog { position:relative; display:grid; grid-template-columns:minmax(300px,.85fr) minmax(420px,1.15fr); width:min(1060px,100%); max-height:min(820px,calc(100vh - 48px)); overflow:hidden; border:1px solid rgba(255,255,255,.7); border-radius:30px; background:#fff; box-shadow:0 30px 100px rgba(0,0,0,.32); }
.product-modal-close { position:absolute; top:16px; right:16px; z-index:2; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:rgba(255,255,255,.92); color:#111; font-size:28px; line-height:1; cursor:pointer; }
.product-modal-visual { min-height:560px; display:grid; place-items:center; padding:42px; background:linear-gradient(145deg,#e8eef9,#f8f9fc); }
.product-modal-visual img { width:100%; height:100%; max-height:560px; object-fit:contain; }
.product-modal-placeholder { display:grid; gap:10px; place-items:center; text-align:center; color:#75809a; }
.product-modal-placeholder strong { font-size:clamp(22px,3vw,38px); letter-spacing:.08em; text-transform:uppercase; }
.product-modal-placeholder span { max-width:240px; font-size:13px; line-height:1.5; }
.product-modal-content { overflow:auto; padding:48px 48px 38px; }
.product-modal-brand { display:inline-flex; padding:7px 10px; border-radius:999px; background:#eef3fd; color:var(--accent); font-size:11px; font-weight:800; text-transform:uppercase; }
.product-modal-content h2 { margin:15px 42px 7px 0; font-size:clamp(28px,3.2vw,45px); line-height:1.02; letter-spacing:-.045em; }
.product-modal-meta { margin:0; color:#7b7f87; font-size:12px; text-transform:uppercase; letter-spacing:.045em; }
.product-modal-lead { margin:26px 0; color:#3f434a; font-size:16px; line-height:1.65; }
.product-modal-price-row { display:flex; align-items:end; justify-content:space-between; gap:18px; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.product-modal-price-row div { display:grid; gap:4px; }
.product-modal-price-row strong { font-size:26px; }
.product-modal-price-row span { color:var(--accent); font-size:11px; font-weight:800; text-transform:uppercase; }
.product-modal-price-row a { color:#60656e; font-size:11px; text-decoration:underline; }
.product-modal-details { display:grid; gap:0; }
.product-info-section { padding:20px 0; border-bottom:1px solid var(--line); }
.product-info-section h3 { margin:0 0 8px; font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.product-info-section p { margin:0; color:#555b64; font-size:14px; line-height:1.65; white-space:pre-line; }
.product-modal-actions { position:sticky; bottom:-38px; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:28px -8px -38px; padding:16px 8px 20px; background:linear-gradient(transparent,#fff 18%); }
.product-modal-actions .pill { min-height:46px; padding-inline:14px; border:1px solid var(--line); justify-content:center; text-align:center; }

@media (max-width:820px) {
  .product-modal { padding:12px; }
  .product-modal-dialog { grid-template-columns:1fr; max-height:calc(100vh - 24px); overflow:auto; border-radius:24px; }
  .product-modal-visual { min-height:310px; max-height:38vh; padding:28px; }
  .product-modal-content { overflow:visible; padding:30px 26px 24px; }
  .product-modal-actions { bottom:-24px; margin-bottom:-24px; }
}

@media (max-width:820px) {
  .shell,.wrap,.header-inner,.footer-inner,.account-page { width:min(var(--content-width),calc(100% - 28px)); }
  .hero-sub,.section-side p,.company-copy,.page-head p:not(.eyebrow),.editorial-card p:not(.eyebrow),.catalog-note p { font-size:14px; }
  .catalog-result-bar { align-items:flex-start; flex-direction:column; }
}

@media (max-width:560px) {
  .hero h1 { font-size:clamp(36px,11vw,46px); }
  .page-head h1,.sub-hero h1 { font-size:clamp(34px,10vw,44px); }
  .catalog-controls { position:static; }
  .product-modal-visual { min-height:250px; }
  .product-modal-content h2 { font-size:30px; }
  .product-modal-price-row { align-items:flex-start; flex-direction:column; }
  .product-modal-actions { grid-template-columns:1fr; }
}
