/* Presentation refinements: touch, focus, rhythm and image delivery. */
:root{--header-height:94px}
html{scrollbar-gutter:stable;scroll-padding-top:calc(var(--header-height) + 18px)}
h1,h2,h3{font-kerning:normal}
p{ text-wrap:pretty }
h1,h2{ text-wrap:balance }
#page h1,#page h2,[tabindex="-1"]{scroll-margin-top:calc(var(--header-height) + 22px)}
.site-header .desktop-nav a{min-height:44px;display:flex;align-items:center}
.mobile-book-label{display:none}
.header-book{white-space:nowrap}
.mobile-menu-toggle[aria-expanded="true"]{background:var(--paper)}
.header-favorites{position:relative}
.favorites-counter{font-variant-numeric:tabular-nums}
.frame-card-label>span:first-child{font-size:14px;line-height:1.5}
.frame-card-label>span:last-child{font-size:12px;line-height:1.5}
.frame-card-label{padding-top:15px;gap:3px}
.frame-card .product-visual{aspect-ratio:1.03}
img.product-photo{position:relative;display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:none;mix-blend-mode:multiply}
.product-visual{isolation:isolate}
.signature-stage .product-visual{background:transparent}
.signature-caption{font-size:13px}
.signature-caption>a,.city-link,.local-row,.other-stores a{transition:color 180ms,background 180ms}
.signature-stage .tiny,.selection-disclaimer{font-size:11px;line-height:1.8}
.section-index{font-size:10px}
.eyebrow{line-height:1.85}
.hero-note{font-size:11px;line-height:1.7}
.hero-actions .button,.button{font-size:13px}
.hero-actions .text-link,.category-link,.text-link{font-size:13px}
.hero-image img{image-rendering:auto}
.image-note{font-size:9px;letter-spacing:.01em}
.style-tabs button{font-size:13px}
.style-tabs button>span{font-size:10px}
.style-tabs button.active{font-weight:500}
.style-tabs button.active>.icon{transform:translateX(0)}
.city-link{font-size:13px}
.local-row-action{font-size:12px}
.local-row-action .icon{transition:transform 180ms}
.faq-list summary{gap:22px}
.faq-list summary>.icon{flex:0 0 20px}
.faq-list summary:focus-visible{outline-offset:3px}
.faq-list details[open]{padding-bottom:4px}
.faq-list details>p{max-width:560px}
.footer-columns a{min-height:38px;display:inline-flex;align-items:center;font-size:13px}
.footer-columns>div{gap:4px}
.footer-columns .eyebrow{font-size:10px}
.footer-bottom,.footer-bottom .text-button{font-size:11px}
.footer-bottom .text-button{min-height:48px}
.toast{display:flex;gap:18px;align-items:center;padding:8px 12px 8px 20px;font-size:13px;line-height:1.65}
.toast>span{padding:8px 0}
.toast.visible{pointer-events:auto}
.toast button{min-width:66px;min-height:44px;border:0;border-left:1px solid #ffffff50;background:none;color:#d8eeff;padding:9px 13px;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.toast button:focus-visible{outline-color:#a7d7ff;outline-offset:-3px}
.about-dialog>p{font-size:15px}
.menu-dialog nav a{padding:24px 0}
.menu-dialog .tiny{font-size:11px}
.city-art{transition:background 180ms}
.store-card-title h2{line-height:1.18}
.store-card>p{max-width:34ch}
.store-hero-copy>p{max-width:37ch}
.breadcrumbs{font-size:11px;line-height:1.6}
.breadcrumbs a{min-height:36px}
.service-list .icon-button,.other-stores .icon{flex-shrink:0}
@media(hover:hover){
 .favorite-button:hover{background:#fff}
 .frame-card-image:hover .product-photo{transform:scale(1.045)}
 .city-link:hover,.local-row:hover,.other-stores a:hover{color:var(--focus)}
 .local-row:hover .icon{transform:translate(2px,-2px)}
 .signature-caption>a:hover{background:#fff}
 .footer-columns a:hover{color:var(--focus)}
 .style-tabs button:hover{color:var(--ink)}
}
@media(max-width:1100px){.city-link{font-size:12px}.hero-note{font-size:10px}.hero-actions{gap:20px}}
@media(max-width:800px){:root{--header-height:77px}.city-link{font-size:11px}.style-tabs button{font-size:11px}}
@media(max-width:600px){
 :root{--header-height:70px}
 .site-header{padding:0 18px;gap:10px}
 .brand-logo{width:113px}
 .header-actions{gap:7px}
 .header-book{display:inline-flex;min-height:44px;min-width:65px;justify-content:center;padding:10px 11px;font-size:11px}
 .header-book .icon,.desktop-book-label{display:none}
 .mobile-book-label{display:inline}
 .header-favorites{min-width:40px;gap:3px}
 .header-favorites .icon{width:20px}
 .mobile-menu-toggle{width:36px;min-height:44px}
 .preview-bar{font-size:10px}
 .hero-actions .button,.hero-actions .text-link{font-size:12px}
 .hero-actions{gap:22px}
 .city-link{font-size:13px;min-height:52px}
 .signature-caption{font-size:13px}
 .signature-stage .tiny{font-size:10px}
 .signature-heading>.eyebrow{font-size:10px;max-width:205px}
 .section-index{font-size:9px}
 .style-tabs button{font-size:10px;line-height:1.6;gap:5px;padding-top:13px;min-height:66px}
 .style-tabs button>span{font-size:9px}
 .category-link{font-size:12px}
 .category-panel .eyebrow{font-size:10px}
 .frame-card .product-visual{aspect-ratio:1}
 .frame-card-label>span:first-child{font-size:13px}
 .frame-card-label>span:last-child{font-size:11px}
 .frame-card-label{padding-top:12px;min-height:67px}
 .favorite-button{background:#ffffff65}
 .favorite-button[aria-pressed="true"]{background:#ffffff90}
 .selection-disclaimer{font-size:11px}
 .editorial-visual>.eyebrow{font-size:9px}
 .editorial-copy>.eyebrow,.section-title-row .eyebrow,.care-band .eyebrow,.faq-section>div:first-child>.eyebrow,.page-intro>.eyebrow,.care-hero .eyebrow,.store-hero-copy>.eyebrow{font-size:10px}
 .local-row-action{font-size:0}
 .footer-columns a{font-size:13px;min-height:44px}
 .footer-columns{gap:28px 20px}
 .footer-columns .eyebrow{font-size:10px}
 .footer-bottom,.footer-bottom .text-button{font-size:10px}
 .toast{gap:10px;padding-left:15px;font-size:12px;bottom:max(14px,env(safe-area-inset-bottom));max-width:calc(100% - 24px)}
 .about-dialog>.eyebrow{font-size:10px}
 .about-dialog>p{font-size:15px;line-height:1.8}
 .breadcrumbs{font-size:10px}
 .service-section .section-title-row>.eyebrow,.other-stores>.eyebrow{font-size:10px}
}
@media(max-width:359px){
 .site-header{padding:0 15px;gap:5px}
 .brand-logo{width:97px}
 .header-actions{gap:4px}
 .header-favorites{min-width:38px}
 .header-book{min-width:60px;padding:9px 10px}
 .mobile-menu-toggle{width:32px}
 .hero-actions{gap:18px}
 .hero-actions .button{padding:13px 12px;font-size:11px;gap:10px}
 .hero-actions .text-link{font-size:11px;gap:9px}
 .signature-heading>.eyebrow{font-size:9px}
 .style-tabs button{font-size:9px}
 .frame-card-label>span:first-child{font-size:12px}
 .frame-card-label>span:last-child{font-size:10px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.product-photo{background-image:none}

/* The image must fit the viewport, rather than remain square inside a short crop. */
.product-visual > img.product-photo{position:absolute;inset:0;display:block;width:100%;height:100%;padding:4%;aspect-ratio:auto;object-fit:contain;object-position:center;background:none;transform:none}
.signature-stage .product-visual,.category-panel .product-visual{aspect-ratio:3/2}
.signature-stage .product-photo,.category-panel:hover .product-photo,.frame-card-image:hover .product-photo{transform:none}
.detail-main-image.is-detail-crop>div,.detail-main-image.is-detail-crop>picture{transform:scale(1.08)}
.detail-thumb-crop .product-visual{transform:scale(1.08)}
.lens-window{aspect-ratio:3/2;border-radius:2px}
.lens-window img{display:block;object-fit:contain;object-position:center}
.store-card-address{font-style:normal;font-size:13px;line-height:1.8;color:var(--muted);margin:18px 0 8px}
.store-card-contacts{display:flex;gap:8px 22px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.store-card-contacts a{min-height:44px;display:inline-flex;align-items:center;font-size:13px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.category-panel .product-visual{aspect-ratio:3/2}.lens-window{width:100%}.editorial-visual{padding-left:24px;padding-right:24px}}
