/* V5: measured header geometry, bounded reading surfaces, native interaction. */
body.tb-v2-open { overflow-x:clip; overflow-y:visible; }
body.tb-v2-open .tb-quick-nav { z-index:3; background:#fff; }
body.tb-storefront .tb-mega { top:var(--tb-mega-top,0px); max-height:calc(100dvh - var(--tb-mega-top,0px)); display:flex; flex-direction:column; }
body.tb-storefront .tb-mega[hidden] { display:none; }
body.tb-storefront .tb-mega > .tb-sheet-heading { flex:none; width:100%; }
body.tb-storefront .tb-mega > .tb-mega-body { width:100%; min-height:0; height:min(590px,calc(100dvh - var(--tb-mega-top,0px) - var(--tb-mega-heading,64px))); }
@media(max-width:767px){body.tb-storefront .tb-mega{top:0;max-height:100dvh}.tb-mega-body{flex:1}}
.tb-v5-sticky-stack { position:sticky; top:calc(var(--tb-v5-top,0px) + var(--tb-v5-bar-height,0px)); z-index:990; background:#fff; margin:28px 0 0; border-bottom:1px solid #e8edf5; }
.tb-v5-buybar { position:absolute; bottom:100%; left:0; width:100%; background:#fff; }
.tb-v5-buybar:not([hidden]) { display:flex; align-items:center; gap:16px; min-height:70px; padding:10px 0; border-bottom:1px solid #edf0f5; animation-duration:220ms; }
.tb-v5-buybar img { object-fit:contain; flex:none; }
.tb-v5-buybar strong { flex:1; min-width:0; max-width:60%; font-size:14px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.tb-v5-buybar>span { white-space:nowrap; font-size:20px; font-weight:700; }
body.tb-storefront .tb-v5-nav { display:flex; flex-wrap:nowrap; gap:22px; overflow-x:auto; margin:0; padding:0; border:0; border-radius:0; background:#fff; scrollbar-width:thin; }
.tb-v5-nav button { border:0; background:none; padding:17px 0 14px; border-bottom:3px solid transparent; color:#667085; font-size:14px; font-weight:600; white-space:nowrap; transition:color 160ms,border-color 160ms; }
.tb-v5-nav button[aria-current] { color:#0757ff; border-bottom-color:#0757ff; }
.tb-v5-nav button span { display:inline-block; margin-left:4px; font-size:12px; color:#7a8597; }
.tb-v5-container { container:product-details / inline-size; }
.tb-v5-content { display:block; padding-top:28px; }
.tb-v5-main { min-width:0; }
body.tb-storefront .tb-v5-main .tb-product-detail-section { padding:28px 0 36px; margin:0; border:0; border-bottom:1px solid #e8edf5; border-radius:0; background:#fff; }
body.tb-storefront .tb-v5-content h2,body.tb-storefront .tb-v5-pickup h2 { margin:0 0 24px; font-size:clamp(22px,2.3vw,30px); line-height:1.25; letter-spacing:-.025em; }
.tb-v5-content--rail { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:48px; align-items:start; }
.tb-v5-spec-group { margin-bottom:24px; }
body.tb-storefront .tb-v5-spec-group h3 { font-size:16px; font-weight:650; margin:0 0 16px; }
.tb-v5-spec-group dl { margin:0; }
.tb-v5-spec-group dl>div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; padding:10px 0; border-bottom:1px dotted #dbe1ea; }
.tb-v5-spec-group dl>div[hidden],.tb-v5-spec-group[hidden] { display:none; }
.tb-v5-spec-group dt { font-weight:400; color:#687487; }
.tb-v5-spec-group dd { margin:0; color:#202837; }
.tb-v5-spec-group :is(dt,dd) { font-size:14px; line-height:1.6; overflow-wrap:break-word; word-break:normal; }
body.tb-storefront .tb-v5-link { display:inline-block; background:none; border:0; padding:8px 0; color:#0757ff; font-size:14px; font-weight:600; text-align:left; }
.tb-v5-link[hidden] { display:none!important; }
.tb-v5-description,.tb-v5-dialog-body { display:block; -webkit-line-clamp:unset; overflow:visible; }
.tb-v5-description { position:relative; line-height:1.75; color:#465267; }
.tb-v5-description.is-preview { max-height:240px; overflow:hidden; }
.tb-v5-description.has-overflow::after { content:""; position:absolute; inset:auto 0 0; height:64px; background:linear-gradient(transparent,#fff); pointer-events:none; }
.tb-v5-recommendations { min-width:0; padding-top:28px; }
.tb-v5-recommendation-section { margin-bottom:36px; }
body.tb-storefront .tb-v5-recommendations h2 { font-size:22px; }
.tb-v5-recommendation-rail { display:grid; gap:12px; max-height:none; overflow:visible; padding:2px 5px 8px 2px; scrollbar-width:thin; }
.tb-v5-card { display:grid; grid-template-columns:112px minmax(0,1fr); gap:18px; padding:20px 16px; background:#f8faff; border:1px solid #e9eef7; border-radius:16px; transition:border-color var(--tb-motion-fast),background var(--tb-motion-fast); }
.tb-v5-card:hover { border-color:#c6d7fa; background:#f3f7ff; }
.tb-v5-card-image { align-self:center; background:white; border-radius:12px; padding:8px; }
.tb-v5-card img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.tb-v5-card small { display:block; font-size:12px; color:#69778d; }
body.tb-storefront .tb-v5-card h3 { font-size:14px; line-height:1.5; margin:6px 0 12px; overflow-wrap:break-word; }
.tb-v5-card h3 a { color:#202837; }
.tb-v5-card strong { display:block; font-size:18px; margin:0 0 12px; }
.tb-v5-card .btn { min-height:40px; padding:8px 16px; font-size:13px; }
.tb-v5-pickup { display:grid; grid-template-columns:1fr 1fr; gap:40px; background:#f5f8ff; border:0; border-radius:20px; padding:36px; margin:44px 0; }
.tb-v5-eyebrow { display:block; color:#0757ff; font-size:11px; font-weight:700; letter-spacing:.12em; margin-bottom:18px; }
.tb-v5-pickup p { font-size:14px; line-height:1.65; color:#65728a; }
.tb-v5-pickup h3 { font-size:18px; }
.tb-v5-map { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:340px; background:#eaf0fc; border-radius:16px; overflow:hidden; text-align:center; }
.tb-v5-map>.fa { font-size:40px; color:#0757ff; }
.tb-v5-map small { font-size:11px; color:#69778d; }
.tb-v5-map iframe { width:100%; height:100%; min-height:340px; border:0; }
.tb-v5-dialog { width:min(800px,calc(100vw - 48px)); max-height:calc(100dvh - 64px); padding:0; border:0; border-radius:20px; box-shadow:0 24px 90px #15223b33; overflow:auto; overscroll-behavior:contain; animation-duration:260ms!important; }
.tb-v5-dialog::backdrop { background:#13213b66; }
body.tb-storefront .tb-v5-dialog.tb-motion-enter { animation:tb-v5-dialog-in 260ms var(--tb-ease-enter) both; }
body.tb-storefront .tb-v5-dialog.tb-motion-exit { animation:tb-v5-dialog-out 240ms var(--tb-ease-exit) both; }
body.tb-storefront .tb-v5-buybar.tb-motion-enter { animation:tb-v5-dialog-in 220ms var(--tb-ease-enter) both; }
@keyframes tb-v5-dialog-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes tb-v5-dialog-out { to { opacity:0; transform:translateY(6px); } }
.tb-v5-dialog-heading { position:sticky; top:0; z-index:1; display:flex; gap:24px; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid #edf0f5; padding:22px 32px; }
.tb-v5-dialog-heading h2 { font-size:24px; margin:0; }
.tb-v5-dialog-heading button { width:44px; height:44px; flex:none; border:0; border-radius:50%; background:#f2f5fa; font-size:28px; }
.tb-v5-dialog-body { padding:28px 32px 40px; font-size:16px; line-height:1.8; overflow-wrap:break-word; }
.tb-v5-dialog-body table,.tb-v5-description table { width:100%; table-layout:fixed; }
[data-tb-product-page] :is(button,a):focus-visible { outline:2px solid #0757ff; outline-offset:3px; }
[data-tb-product-page] :is(section,#tb-product-about) { scroll-margin-top:var(--tb-v5-offset,180px); }
@container product-details (max-width:900px) {
 .tb-v5-content--rail { display:flex; flex-direction:column; gap:20px; }
 .tb-v5-main,.tb-v5-recommendations { width:100%; }
 .tb-v5-content--rail .tb-v5-main { display:contents; }
 .tb-v5-content--rail .tb-product-detail-section { width:100%; }
 .tb-v5-content--rail .tb-v5-recommendations { order:3; }
 .tb-v5-content--rail #tb-product-reviews { order:4; }
 .tb-v5-recommendation-rail { display:flex; overflow-x:auto; max-height:none; scroll-snap-type:x proximity; }
 .tb-v5-card { flex:0 0 min(340px,85cqw); scroll-snap-align:start; grid-template-columns:90px minmax(0,1fr); }
}
@media(max-width:767px) {
 .tb-v5-buybar { display:none!important; }
 body.tb-storefront .tb-v5-nav { gap:20px; }
 .tb-v5-sticky-stack { margin-top:20px; }
 .tb-v5-pickup { grid-template-columns:1fr; padding:24px 18px; gap:24px; }
 .tb-v5-map,.tb-v5-map iframe { min-height:280px; }
 .tb-v5-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border-radius:0; }
 .tb-v5-dialog-heading { padding:16px 20px; }
 .tb-v5-dialog-heading h2 { font-size:20px; }
 .tb-v5-dialog-body { padding:24px 20px; }
 .tb-v5-spec-group dl>div { gap:16px; }
}
@media(prefers-reduced-motion:reduce) {
 .tb-v5-nav button,.tb-v5-card,.tb-v5-dialog,.tb-v5-buybar { transition:none!important; animation:none!important; }
}
