/* v29: shared framing, typography and reliable mobile controls. */
:root { --order-height: 0px; }
body { padding-bottom: var(--order-height); }
html { scroll-padding-top: 90px; }
.hero-copy h1 { font-size: clamp(34px,4.2vw,60px) !important; line-height: 1.04 !important; max-width: 13ch !important; letter-spacing: -.04em !important; }
.hero-copy .lead { font-size: clamp(16px,1.5vw,19px) !important; line-height: 1.5 !important; max-width: 42ch; }
.hero-editorial { min-height: 0 !important; }
.hero-copy { padding: clamp(24px,4vw,52px) !important; }
.hero-showcase { min-height: 0 !important; background: #05090e; }
.hero-showcase > img { position: static !important; width: 100% !important; height: min(660px,70vw) !important; object-fit: contain !important; transform: none !important; }
.product-card { display: flex; flex-direction: column; }
.product-card > img { display:block; width:100% !important; height:auto !important; aspect-ratio:3 / 4 !important; max-height:none !important; object-fit:contain !important; object-position:center !important; background:#05090e; }
.product-body { display:flex; flex-direction:column; flex:1; gap:10px; }
.product-body > * { margin-top:0 !important; margin-bottom:0 !important; }
.product-body .card-actions { margin-top:auto !important; padding-top:8px; }
.product-body h3 { font-size:clamp(20px,2vw,26px) !important; line-height:1.15; }
.product-body .order-add { margin-top:6px !important; }
.product-hero .visual { background:#05090e !important; padding:0 !important; min-height:0 !important; display:flex; align-items:flex-start; }
.product-hero .visual img { width:100% !important; height:auto !important; max-height:760px !important; object-fit:contain !important; aspect-ratio:3 / 4; transform:none !important; }
.topbar-inner { display:flex; justify-content:space-between; align-items:center; gap:16px; width:min(1120px,calc(100% - 32px)); margin:auto; }
.topbar .nav-actions { display:flex; align-items:center; gap:8px; }
.topbar .nav-links { display:flex; align-items:center; gap:4px; }
.topbar .menu-button { display:none; }
.order-bar__detail { max-height: min(50vh,420px); overflow-y:auto; overscroll-behavior:contain; }
.order-line { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; gap:12px; align-items:center; }
.order-line__name { overflow-wrap:anywhere; }
.order-line__qty { display:flex; align-items:center; gap:8px; }
.order-line__qty button { min-width:36px; min-height:40px; background:#edf4f7; border:1px solid #cbd7de; border-radius:8px; text-decoration:none; color:#07172b; }
.order-line button:disabled { opacity:.45; cursor:not-allowed; }
.order-line > strong { white-space:nowrap; }
:root[data-order-items]:not([data-order-items="0"]) .mobile-buybar { display:none !important; }
.order-bar__inner { min-width:0; }
.order-bar__toggle { min-width:0; gap:8px; }
.order-bar__send { white-space:normal; text-align:center; max-width:45%; font-size:13px; padding:8px 12px; }
.load-status { margin:16px; padding:16px; color:#07172b; background:#fff3d2; border-radius:12px; }
.policy-links { display:flex; flex-wrap:wrap; gap:12px 24px; margin:20px 0; font-size:14px; }
.policy-links a { text-decoration:underline; text-underline-offset:3px; }
.policy-copy { max-width:760px; margin:0 auto; line-height:1.7; }
.policy-copy section { margin:28px 0; }
.component-table { width:100%; border-collapse:collapse; font-size:16px; }
.component-table td,.component-table th { padding:12px; border-bottom:1px solid #cad9df; text-align:left; }
.report-note { padding:16px; background:#eff5f7; color:#152b38; border-radius:12px; line-height:1.6; }
.quality-card[data-doc-state=reference] { border-color:#7397a5; }
.order-inquiry { margin:12px 0; }
@media(max-width:760px){
 .topbar .nav-links { display:none; }
 .topbar .menu-button { display:grid; }
 .hero-editorial { grid-template-columns:1fr !important; }
 .hero-copy h1 { max-width:16ch !important; font-size:clamp(34px,9vw,43px) !important; }
 .hero-copy { padding:26px 22px !important; }
 .hero-copy .lead { margin:16px 0 !important; }
 .hero-showcase > img { height:420px !important; }
 .hero-featured { position:static !important; margin:0 !important; border-radius:0 !important; }
 .product-card > img { max-height:460px !important; }
 .product-hero .visual img { max-height:530px !important; }
 .order-line { grid-template-columns:minmax(0,1fr) auto; }
 .order-line > strong { grid-column:1; margin-left:0; }
 .order-line > button { justify-self:end; min-height:40px; }
 .nav-links a,.lang button { min-height:42px; }
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto !important;}}

/* v29.1: legible type and shared four-section product layout. */
.product-page,.product-hero,.product-hero .content,.info-block,.product-body { min-width:0; }
.product-hero h1 { font-size:clamp(2rem,4vw,3.5rem) !important; line-height:1.1 !important; letter-spacing:-.025em !important; overflow-wrap:anywhere; }
.product-hero .definition,.info-block p,.info-block li { font-size:1rem !important; line-height:1.6 !important; }
.info-block h3 { font-size:1rem; line-height:1.4; margin:1rem 0 .5rem; }
.info-grid { align-items:start; }
.info-block { min-height:0; }
.info-block .doc-status { margin:0 0 1rem; }
.source-links { font-size:.875rem !important; overflow-wrap:anywhere; }
.source-links a { display:inline-flex; align-items:center; min-height:44px; }
.report-jump { display:inline-flex; align-items:center; min-height:44px; margin:8px 0; color:#135b87; text-decoration:underline; text-underline-offset:3px; font-size:.875rem; }
.product-hero .order-add { margin-top:12px; }
.product-hero .order-includes { margin-top:20px; }
.page-steps { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); }
.page-steps a { min-width:0; color:#fff !important; background:transparent !important; font-size:.875rem; }
.analysis-details { margin-top:12px; }
.analysis-details > summary { cursor:pointer; min-height:48px; padding:12px 0; font-size:1rem; font-weight:700; line-height:1.5; }
.analysis-details[open] > summary { margin-bottom:12px; }
.component-table { table-layout:fixed; }
.component-table caption { text-align:left; font-weight:700; padding:12px 0; }
.component-table th,.component-table td { overflow-wrap:anywhere; font-size:.875rem; padding:12px 8px; }
.component-table th:first-child { width:64%; }
.secondary-contact { font-size:.875rem; line-height:1.6; padding-bottom:16px; }
.secondary-contact a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; white-space:nowrap; }
.product-body > p { font-size:1rem !important; line-height:1.55 !important; }
.product-body .card-quality,.price-detail,.doc-status > span,.quality-card p { font-size:.875rem !important; line-height:1.5; }
.order-line__qty button,.lang button { min-width:44px; min-height:44px; }
.order-bar__send { font-size:.875rem; min-height:44px; }
.hero-kicker,.section-kicker,.catalog-area .section-kicker,.hero-featured .featured-label,.hero-proof span,.purity-orbit span { font-size:.75rem !important; line-height:1.4; }
.lab-grid p { color:rgba(255,255,255,.78); font-size:1rem; }
body.doc-page .doc-hero p { color:rgba(255,255,255,.8) !important; }
@media(max-width:760px){
 .product-page { width:calc(100% - 24px) !important; gap:16px !important; }
 .product-shell { padding-top:16px !important; }
 .product-hero .content { padding:22px 20px !important; }
 .product-hero h1 { font-size:clamp(1.875rem,7.5vw,2.5rem) !important; }
 .product-hero .visual { aspect-ratio:auto; }
 .product-hero .visual img { height:clamp(280px,88vw,390px) !important; max-height:none !important; min-height:0 !important; aspect-ratio:auto; }
 .hero-showcase,.hero-showcase > img { min-height:0 !important; }
 .hero-showcase > img { height:360px !important; }
 .page-steps { grid-template-columns:repeat(2,minmax(0,1fr)) !important; overflow:visible; gap:6px; }
 .page-steps a { min-width:0 !important; min-height:44px; white-space:normal; justify-content:center; padding:10px 6px; }
 .info-block { padding:20px !important; }
 .info-block h2 { font-size:1.375rem; line-height:1.25; }
 .product-hero .summary { grid-template-columns:1fr; }
 .product-hero .price { text-align:left; }
 .badge,.dose,.label,.presentation,.chip,.premium-strip span,.quality-status { font-size:.875rem !important; line-height:1.4; }
 .topbar-inner { gap:8px; }
 .topbar .nav-actions { gap:6px; }
 .topbar .lang button { min-width:44px !important; min-height:44px !important; padding:6px !important; }
 .topbar .menu-button { min-width:44px; min-height:44px; }
 .topbar .nav-links { max-height:calc(100dvh - 100px); overflow-y:auto; }
 body.doc-page .doc-hero > p { font-size:1rem !important; }
 .lookup-form input { font-size:1rem; min-width:0; }
 .doc-results li,.quality-metrics > * { min-width:0; overflow-wrap:anywhere; }
 .order-bar__detail { max-height:45dvh; }
}
@media(max-width:380px){
 .topbar .brand span:last-child { display:none !important; }
 .order-bar__inner { gap:8px; }
 .order-bar__send { padding:8px; }
 .product-hero .content,.info-block { padding:18px !important; }
}
@media(max-width:760px){
 body[data-product-sku] { padding-bottom:calc(104px + env(safe-area-inset-bottom)); }
 :root[data-order-items]:not([data-order-items="0"]) body[data-product-sku] { padding-bottom:var(--order-height); }
 .mobile-buybar { grid-template-columns:minmax(0,1fr) minmax(100px,auto); }
 .mobile-buybar strong { font-size:.875rem; white-space:normal; line-height:1.3; }
 .mobile-buybar span,.mobile-buybar a { font-size:.875rem; line-height:1.4; }
}
