@font-face { font-family: Prata; src: url('../fonts/prata-regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face {
  font-family: Cormorant;
  src: url('../fonts/cormorant-regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Cormorant;
  src: url('../fonts/cormorant-semibold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
:root {
  --paper: #f7f6f1;
  --ink: #273b49;
  --muted: #586c77;
  --line: #cdd8dc;
  --soft: #eaf2f5;
  --sky: #89acc0;
  --sand: #ded3c6;
  --display: Prata, Georgia, 'Times New Roman', serif;
  --body: Arial, Helvetica, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 14px/1.6 var(--body); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
input[type=hidden] { display: none !important; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { border: 0; background: none; cursor: pointer; }
button:disabled { cursor: default; opacity: .55; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
img { max-width: 100%; display: block; }
svg { display: block; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; line-height: 1.04; }
h1 { font-size: clamp(44px, 5.2vw, 70px); letter-spacing: -.035em; }
h2 { font-size: clamp(32px, 3.3vw, 46px); letter-spacing: -.025em; }
h3 { font-size: 28px; }
em, i { font-family: var(--display); font-weight: 400; font-style: italic; }
.container { width: min(1280px, calc(100% - 80px)); margin-inline: auto; }
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: 12px; opacity: 0; pointer-events: none; background: var(--ink); color: white; padding: 12px; z-index: 20; }
.skip-link:focus { opacity: 1; pointer-events: auto; }
.announcement { background: var(--soft); text-align: center; font-size: 9px; letter-spacing: .21em; padding: 7px 16px; }
.header { border-bottom: 1px solid var(--line); background: var(--paper); }
.header-inner { min-height: 98px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.wordmark { font: 600 56px/.8 var(--display); letter-spacing: -.06em; }
.wordmark span { display: block; font: 7px/1 var(--body); letter-spacing: .14em; margin-top: 13px; padding-left: 3px; }
.desktop-nav { display: flex; gap: 34px; align-items: center; }
.desktop-nav a { padding: 12px 0; border-bottom: 1px solid transparent; font-size: 12px; white-space: nowrap; flex-shrink: 0; }
.desktop-nav a:hover, .desktop-nav [aria-current] { border-color: var(--ink); }
.header-actions { display: flex; gap: 8px; align-items: center; }
.icon-link { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; position: relative; }
.icon-link svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.3; }
.icon-link:hover { color: #4c7289; }
.bag-count { position: absolute; right: 0; top: 0; font-size: 10px; min-width: 17px; height: 17px; text-align: center; background: var(--ink); color: white; border-radius: 50%; line-height: 17px; }
.mobile-nav, .mobile-label { display: none; }
.eyebrow { font: 400 10px/1.5 var(--body); letter-spacing: .17em; margin-bottom: 15px; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 24px; padding: 13px 22px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font-size: 12px; letter-spacing: .015em; transition: background .18s, color .18s; }
.button > span { white-space: nowrap; }
.button > span:last-child { margin-left: auto; }
.button:hover { background: #3d5868; border-color: #3d5868; }
.button-white { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.button-white:hover { background: var(--soft); border-color: var(--soft); }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 40px; border-bottom: 1px solid currentColor; padding: 0 0 2px; font-size: 12px; }
.text-link:hover { color: #4c7289; }
.home { padding-top: 24px; }
.hero { display: grid; grid-template-columns: 48% 52%; height: 520px; background: var(--soft); overflow: hidden; }
.hero-copy { padding: 38px 56px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.hero h1 { font-size: clamp(58px, 5.7vw, 80px); line-height: .93; margin-bottom: 20px; letter-spacing: -.035em; }
.hero h1 em { color: #4e7187; }
.hero-description { font-size: 13px; line-height: 1.65; margin-bottom: 23px; color: var(--muted); }
.hero-footnote { font-size: 8px; letter-spacing: .16em; margin-top: 25px; color: var(--muted); }
.hero-image { position: relative; min-width: 0; overflow: hidden; }
.hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: 50% 32%; }
.hero-image-caption { position: absolute; bottom: 22px; left: 28px; font-size: 8px; letter-spacing: .16em; background: #f7f6f1dc; padding: 7px 10px; }
.quick-categories { display: flex; align-items: center; gap: 30px; overflow-x: auto; padding-block: 17px; border-bottom: 1px solid var(--line); scrollbar-width: thin; }
.category-link { flex-shrink: 0; font-size: 12px; min-height: 30px; display: flex; align-items: center; gap: 18px; white-space: nowrap; }
.category-link:hover { color: #4c7289; }
.all-categories { padding-right: 30px; border-right: 1px solid var(--line); }
.section { padding-block: 40px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-bottom: 25px; }
.section-heading > div { flex: 1; min-width: 0; }
.section-heading > .text-link { white-space: nowrap; flex-shrink: 0; }
.section-heading .eyebrow { margin-bottom: 8px; }
.category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.discovery-card { min-width: 0; }
.discovery-image { position: relative; height: 255px; background: var(--soft); overflow: hidden; }
.discovery-image img, .discovery-image svg { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.discovery-image img { mix-blend-mode: multiply; }
.discovery-card:hover img { transform: scale(1.035); }
.discovery-card:first-child img { object-fit: contain; }
.round-arrow { width: 34px; height: 34px; display: grid; place-items: center; position: absolute; bottom: 12px; right: 12px; background: var(--paper); border-radius: 50%; font-size: 17px; }
.discovery-caption { padding-top: 13px; }
.discovery-caption h3 { font-size: 30px; margin-bottom: 6px; }
.discovery-caption p { font-size: 11px; color: var(--muted); }
.home-featured { padding-top: 12px; }
.nature-banner { position: relative; height: 285px; color: var(--paper); margin-block: 8px 0; overflow: hidden; }
.nature-banner > img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.nature-banner::after { content: ''; position: absolute; inset: 0; background: #152f3d26; }
.nature-copy { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 26px; z-index: 1; }
.nature-copy h2 { font-size: 49px; line-height: 1; margin-bottom: 18px; width: 100%; }
.nature-copy .eyebrow { font-size: 9px; }
.nature-copy > p:last-child { font-size: 12px; }
.style-story { display: grid; grid-template-columns: 44% 56%; align-items: stretch; padding-block: 42px; }
.style-image { height: 430px; overflow: hidden; background: var(--sand); }
.style-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 44%; }
.style-copy { align-self: center; padding: 24px 0 24px 64px; }
.style-copy h2 { font-size: clamp(40px, 4vw, 56px); margin-bottom: 23px; }
.style-copy > p:not(.eyebrow) { max-width: 445px; font-size: 13px; color: var(--muted); margin-bottom: 14px; line-height: 1.8; }
.style-copy .text-link { margin-top: 7px; }
.home-selections { display: flex; flex-wrap: wrap; gap: 10px 20px; padding-top: 18px; font-size: 11px; }
.home-selections a { min-height: 40px; display: flex; align-items: center; gap: 12px; }
.service-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-block: 30px 36px; border-top: 1px solid var(--line); gap: 40px; }
.service-strip > div { position: relative; padding-left: 38px; }
.service-index { position: absolute; left: 0; top: 3px; font-size: 10px; color: var(--muted); }
.service-strip h3 { font-size: 28px; margin-bottom: 10px; }
.service-strip p { font-size: 11px; color: var(--muted); max-width: 280px; line-height: 1.8; }
.footer-wrap { background: var(--soft); }
.footer { display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: 32px; align-items: center; padding-block: 32px; }
.footer-logo { font: 600 56px/.9 var(--display); letter-spacing: -.06em; }
.footer-brand p { margin-top: 12px; }
.footer p, .footer small { font-size: 11px; color: var(--muted); }
.footer nav { display: flex; gap: 20px; flex-wrap: wrap; font-size: 11px; }
.footer nav a { min-height: 40px; display: flex; align-items: center; }
.footer-note { text-align: right; }
.footer-note small { display: block; margin-top: 10px; }
.page { padding-top: 38px; padding-bottom: 64px; min-height: 65vh; }
.page-heading { margin-bottom: 28px; }
.page-heading h1 { margin-bottom: 16px; }
.page-heading > p:not(.eyebrow) { color: var(--muted); font-size: 13px; }
.intro { color: var(--muted); line-height: 1.8; max-width: 580px; }
.catalog-categories { display: flex; gap: 8px; padding-bottom: 24px; overflow-x: auto; scrollbar-width: thin; }
.catalog-categories a { flex-shrink: 0; min-height: 42px; display: flex; align-items: center; padding: 8px 20px; border: 1px solid var(--line); font-size: 12px; }
.catalog-categories [aria-current] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.catalog-categories a:hover:not([aria-current]) { background: var(--soft); }
.search-row { display: flex; gap: 10px; }
.search-field { position: relative; flex: 1; min-width: 0; }
.search-field svg { position: absolute; width: 18px; height: 18px; top: 16px; left: 16px; fill: none; stroke: var(--muted); stroke-width: 1.4; }
.search-field input { width: 100%; height: 50px; padding: 10px 16px 10px 46px; border: 1px solid var(--line); background: transparent; border-radius: 0; font-size: 13px; }
.filter-panel { border-top: 0; border-bottom: 1px solid var(--line); padding: 0; margin-top: 12px; }
.filter-panel summary { display: flex; justify-content: space-between; align-items: center; min-height: 52px; font-size: 12px; list-style: none; }
.filter-panel summary::-webkit-details-marker { display: none; }
.filter-mark { font-size: 20px; transition: transform .2s; }
.filter-panel[open] .filter-mark { transform: rotate(45deg); }
.catalog-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 18px 14px; padding-block: 8px 22px; }
.catalog-filters > label { display: flex; flex-direction: column; gap: 6px; font-size: 11px; min-width: 0; }
.catalog-filters select, .catalog-filters input[type=number] { width: 100%; height: 46px; border: 1px solid var(--line); padding: 10px 12px; background: var(--paper); border-radius: 0; font-size: 12px; }
.catalog-filters > .checkbox-label { flex-direction: row; align-items: center; min-height: 46px; gap: 9px; }
input[type=checkbox] { width: 18px; height: 18px; flex-shrink: 0; accent-color: var(--ink); }
.catalog-filters .button { min-height: 46px; grid-column: -2; }
.catalog-meta { display: flex; justify-content: space-between; align-items: center; padding: 16px 0 22px; font-size: 11px; color: var(--muted); gap: 20px; }
.catalog-meta > div { display: flex; gap: 24px; }
.catalog-meta .text-link { font-size: 11px; min-height: 36px; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 18px; }
.product-card { min-width: 0; }
.product-visual { display: block; position: relative; background: var(--soft); overflow: hidden; aspect-ratio: 300/340; color: var(--ink); }
.product-visual > svg, .product-visual > img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.product-visual:hover > svg, .product-visual:hover > img { transform: scale(1.025); }
.product-badge { position: absolute; top: 14px; left: 14px; font-size: 8px; letter-spacing: .1em; background: #f7f6f1eb; padding: 6px 8px; }
.product-open { position: absolute; right: 12px; bottom: 12px; width: 34px; height: 34px; display: grid; place-items: center; background: var(--paper); border-radius: 50%; font-size: 17px; }
.product-info { padding-top: 13px; }
.product-type { font-size: 9px; color: var(--muted); letter-spacing: .08em; }
.product-info h3 { margin: 7px 0 9px; font-size: 28px; }
.product-info p { font-size: 12px; }
.favorite-button { font-size: 11px; min-height: 44px; padding: 8px 0; color: var(--muted); }
.favorite-button[aria-pressed=true] { color: var(--ink); }
.pagination { display: flex; justify-content: center; align-items: center; gap: 26px; margin-top: 32px; font-size: 12px; }
.pagination a { min-height: 44px; padding: 12px; }
.empty { grid-column: 1/-1; padding: 48px 0; max-width: 580px; }
.empty h2 { margin-bottom: 16px; }
.empty p { color: var(--muted); margin-bottom: 24px; line-height: 1.8; font-size: 13px; }
.catalog-empty { background: var(--soft); max-width: none; text-align: center; padding: 40px 24px 48px; }
.catalog-empty p { max-width: 430px; margin-inline: auto; }
.empty-mark { display: block; font: 54px/.8 var(--display); letter-spacing: -.06em; color: #6e8ea2; margin-bottom: 25px; }
.collections-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.collection-cover { aspect-ratio: 1/1; background: var(--soft); position: relative; overflow: hidden; }
.collection-cover svg { width: 100%; height: 100%; transform: rotate(-16deg); color: var(--ink); }
.collection-cover img { width: 100%; height: 100%; object-fit: cover; }
.collection-number { position: absolute; left: 22px; top: 12px; font: 70px var(--display); color: #6e8ea2; z-index: 1; }
.collection-caption { display: flex; justify-content: space-between; align-items: center; margin: 18px 0 10px; }
.collection-card p { font-size: 12px; color: var(--muted); max-width: 360px; line-height: 1.8; }
.collection-invite { padding: 34px; background: var(--soft); }
.selection-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 20px; }
.selection-links > a { padding: 24px; background: var(--soft); }
.selection-links p { color: var(--muted); font-size: 12px; margin-top: 12px; }
.back-link { display: inline-flex; font-size: 12px; margin-bottom: 22px; padding: 8px 0; min-height: 40px; }
.product-detail { display: grid; grid-template-columns: 1.1fr 1fr; gap: 7%; align-items: start; }
.gallery { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.gallery-slide { flex: 0 0 100%; scroll-snap-align: start; background: var(--soft); aspect-ratio: 300/340; }
.gallery-slide > img { width: 100%; height: 100%; object-fit: cover; }
.gallery-controls { display: flex; align-items: center; justify-content: space-between; gap: 15px; font-size: 11px; padding-top: 10px; }
.gallery-controls button { width: 44px; height: 44px; font-size: 20px; border: 1px solid var(--line); }
.product-description { padding-top: 22px; }
.product-description h1 { font-size: clamp(42px, 4.5vw, 60px); margin-bottom: 22px; }
.product-description .intro { font-size: 13px; }
.detail-price { font-size: 18px; margin-bottom: 24px; }
.demo-callout { border-left: 2px solid var(--sky); padding-left: 12px; font-size: 11px; color: var(--muted); margin-bottom: 20px; }
.demo-note { color: var(--muted); font-size: 11px; margin-top: 20px; }
.add-to-cart { margin-top: 24px; }
.add-to-cart .button { width: 100%; }
.availability { font-size: 11px; color: var(--muted); margin: 12px 0 28px; }
details { border-top: 1px solid var(--line); padding: 17px 0; }
summary { font-size: 12px; cursor: pointer; min-height: 25px; }
details p { font-size: 12px; color: var(--muted); margin-top: 16px; line-height: 1.8; }
dl { display: grid; grid-template-columns: 1fr 1.7fr; font-size: 12px; gap: 12px; margin-bottom: 0; }
dt { color: var(--muted); }
dd { margin: 0; overflow-wrap: anywhere; }
.collection-chip { display: inline-block; padding: 12px 12px 0 0; font-size: 12px; min-height: 40px; }
.variant-picker { margin-top: 24px; }
.sibling-nav { display: flex; gap: 22px; align-items: center; margin-top: 25px; font-size: 11px; }
.checkout-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 7%; align-items: start; }
.order-summary { background: var(--soft); padding: 28px; position: sticky; top: 20px; }
.summary-total { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); padding-top: 20px; margin-top: 20px; }
.summary-total strong { font-weight: 400; font-size: 18px; }
.order-summary p:not(.eyebrow) { font-size: 12px; color: var(--muted); margin: 16px 0 24px; line-height: 1.8; }
.order-summary > .button { display: flex; width: 100%; margin-block: 20px 12px; }
.order-summary > .text-link { font-size: 12px; }
.cart-row { display: grid; grid-template-columns: 100px 1fr auto; gap: 20px; padding: 0 0 24px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.cart-image { height: 115px; }
.cart-row h2 { font-size: 30px; margin-bottom: 9px; }
.cart-row p { font-size: 12px; }
.quantity-form { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.quantity-form input { width: 65px; min-height: 44px; padding: 8px; border: 1px solid var(--line); border-radius: 0; background: var(--paper); }
.quantity-form button, .remove-button { font-size: 11px; text-decoration: underline; min-height: 44px; }
.remove-button { color: var(--muted); padding: 8px 0; }
.row-total { white-space: nowrap; }
.form-stack { max-width: 620px; }
.form-field { margin-bottom: 20px; }
.form-field > label { display: block; margin-bottom: 8px; font-size: 12px; }
.form-field input, .form-field textarea, .form-field select { width: 100%; border: 1px solid #a9bdc7; padding: 13px 12px; border-radius: 0; background: transparent; color: var(--ink); }
.form-field input, .form-field select { min-height: 48px; }
.form-field textarea { resize: vertical; }
.form-field input[aria-invalid=true] { border-width: 2px; }
.form-field .checkbox-label { display: flex; gap: 10px; align-items: center; }
.form-field input[type=checkbox] { width: 18px; height: 18px; min-height: 18px; }
.form-field[hidden] { display: none !important; }
.field-error, .form-errors { font-size: 12px; color: #773e37; background: #f0e7df; padding: 10px; margin-top: 8px; border-left: 2px solid #8e5c50; }
.field-error ul, .form-errors ul { padding-left: 16px; margin: 0; }
.help-text { font-size: 11px; color: var(--muted); margin-top: 8px; }
.help-text ul { padding-left: 16px; margin-block: 5px; }
.checkout-note { color: var(--muted); font-size: 12px; line-height: 1.8; margin: 24px 0; }
.summary-line { display: flex; justify-content: space-between; gap: 20px; font-size: 12px; padding-block: 10px; }
.summary-line > span:last-child { white-space: nowrap; }
.auth-page { max-width: 460px; padding-top: 48px; }
.auth-page h1 { margin: 10px 0 30px; }
.auth-page .button { width: 100%; margin-top: 5px; }
.auth-switch { margin: 22px 0 12px; font-size: 12px; }
.auth-switch a { text-decoration: underline; }
.profile-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.profile-heading h1 { margin-bottom: 12px; }
.profile-heading p { color: var(--muted); }
.account-links { display: flex; gap: 22px; flex-wrap: wrap; margin: 20px 0; }
.profile-order { display: grid; grid-template-columns: 1fr 1.5fr 1fr; gap: 20px; border-top: 1px solid var(--line); padding: 22px 0; font-size: 13px; align-items: center; }
.profile-order small { display: block; color: var(--muted); margin-top: 6px; font-size: 11px; }
.profile-order > span:last-child { text-align: right; }
.address-card { padding: 18px 0; border-bottom: 1px solid var(--line); }
.address-card p { margin-top: 6px; color: var(--muted); font-size: 12px; }
.success-heading { max-width: 640px; margin-bottom: 30px; }
.success-heading h1 { margin-bottom: 24px; }
.success-heading p:not(.eyebrow) { color: var(--muted); margin-bottom: 12px; }
.status-line { padding-top: 12px; font-size: 12px; }
.success-summary { max-width: 600px; margin-bottom: 30px; position: static; }
.payment-panel h2 { font-size: 36px; }
.payment-panel .button { width: 100%; font-size: 12px; gap: 10px; }
.payment-details { grid-template-columns: 1fr 1.8fr; overflow-wrap: anywhere; margin-top: 20px; }
.copy-row { display: flex; justify-content: space-between; align-items: center; gap: 15px; border-block: 1px solid var(--line); padding: 12px 0; margin-bottom: 18px; }
.copy-row strong { letter-spacing: .07em; }
.payment-panel .copy-status { font-size: 11px; }
.order-history { list-style: none; padding: 0; font-size: 12px; }
.order-history li { padding: 12px 0; border-bottom: 1px solid var(--line); }
.order-history small { color: var(--muted); }
.saved-addresses { margin-bottom: 25px; font-size: 12px; }
.swipe-page { max-width: 600px; }
.swipe-page h1 { font-size: 44px; }
.swipe-stage { touch-action: pan-y; }
.swipe-stage .product-visual { max-height: 55vh; aspect-ratio: 1/1; }
.swipe-stage .section-heading { padding-top: 22px; }
.swipe-stage .button { width: 100%; }
.messages { padding-top: 12px; }
.message { padding: 14px 16px; margin: 5px 0; background: var(--soft); border-left: 2px solid var(--sky); font-size: 12px; }
@media (max-width: 1000px) {
  .container { width: calc(100% - 48px); }
  .header-inner { min-height: 88px; gap: 22px; }
  .desktop-nav { gap: 22px; }
  .header-actions { gap: 0; }
  .hero { height: 470px; }
  .hero-copy { padding: 32px; }
  .hero h1 { font-size: 63px; }
  .hero-footnote { margin-top: 20px; }
  .quick-categories { gap: 24px; }
  .all-categories { padding-right: 24px; }
  .discovery-image { height: 200px; }
  .category-grid, .product-grid { gap: 24px 14px; }
  .style-copy { padding-left: 36px; }
  .style-copy h2 { font-size: 44px; }
  .style-image { height: 430px; }
  .service-strip { gap: 24px; }
  .service-strip > div { padding-left: 0; }
  .service-index { position: static; display: block; margin-bottom: 12px; }
  .footer { grid-template-columns: 1fr 1.5fr; }
  .footer-note { grid-column: 2; text-align: left; }
  .checkout-layout { gap: 30px; }
  .catalog-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .container { width: calc(100% - 32px); }
  .announcement { font-size: 8px; padding: 6px 8px; letter-spacing: .15em; }
  .header-inner { min-height: 76px; gap: 12px; }
  .wordmark { font-size: 44px; }
  .wordmark span { font-size: 5.6px; letter-spacing: .1em; margin-top: 9px; }
  .header-actions { gap: 0; }
  .icon-link { width: 40px; height: 44px; }
  .icon-link svg { width: 20px; height: 20px; }
  .search-link { display: none; }
  .desktop-nav { display: none; }
  .mobile-nav { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--line); padding-inline: 16px; gap: 16px; }
  .mobile-nav a { display: flex; align-items: center; justify-content: center; min-height: 44px; font-size: 11px; gap: 8px; border-bottom: 1px solid transparent; white-space: nowrap; flex-shrink: 0; }
  .mobile-nav [aria-current] { border-bottom-color: var(--ink); }
  .home { padding-top: 14px; }
  .hero { grid-template-columns: 51% 49%; height: 310px; }
  .hero-copy { padding: 22px 19px; }
  .hero h1 { font-size: clamp(35px, 9.5vw, 52px); line-height: .98; margin-bottom: 25px; }
  .hero-copy .eyebrow { font-size: 7px; letter-spacing: .13em; margin-bottom: 17px; }
  .hero-description, .hero-footnote, .hero-image-caption, .desktop-label { display: none; }
  .mobile-label { display: inline; }
  .hero .button { min-height: 44px; padding: 11px 14px; font-size: 11px; gap: 20px; }
  .hero-photo { object-position: 50% 30%; }
  .quick-categories { padding-block: 12px; gap: 22px; }
  .category-link { min-height: 32px; font-size: 11px; }
  .all-categories { padding-right: 22px; }
  .section { padding-block: 28px; }
  .section-heading { gap: 16px; align-items: start; margin-bottom: 20px; }
  .section-heading .eyebrow { font-size: 8px; letter-spacing: .13em; }
  .section-heading h2 { font-size: 34px; }
  .home-discovery .section-heading { display: block; }
  .home-discovery .section-heading .text-link { font-size: 11px; margin-top: 6px; min-height: 34px; }
  .category-grid { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; padding-bottom: 8px; }
  .discovery-card { flex: 0 0 45%; scroll-snap-align: start; }
  .discovery-image { height: 185px; }
  .discovery-caption h3 { font-size: 29px; }
  .discovery-caption p { font-size: 10px; }
  .round-arrow { width: 28px; height: 28px; bottom: 9px; right: 9px; font-size: 15px; }
  .home-featured { padding-top: 0; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px 12px; }
  .home-featured .product-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; }
  .home-featured .product-card { flex: 0 0 46%; scroll-snap-align: start; }
  .product-badge { font-size: 7px; top: 9px; left: 9px; padding: 4px 6px; }
  .product-open { width: 28px; height: 28px; bottom: 9px; right: 9px; }
  .product-info { padding-top: 10px; }
  .product-type { font-size: 8px; }
  .product-info h3 { font-size: 26px; margin: 6px 0 8px; }
  .product-info p { font-size: 12px; }
  .nature-banner { height: 250px; margin-top: 0; }
  .nature-copy { padding: 22px; }
  .nature-copy h2 { font-size: 38px; line-height: 1.04; }
  .nature-copy > p:last-child { font-size: 11px; max-width: 260px; }
  .nature-copy .eyebrow { font-size: 8px; }
  .style-story { grid-template-columns: 1fr; padding-block: 28px; }
  .style-image { height: 300px; }
  .style-copy { padding: 26px 2px 0; }
  .style-copy .eyebrow { font-size: 8px; }
  .style-copy h2 { font-size: 43px; margin-bottom: 20px; }
  .style-copy > p:not(.eyebrow) { font-size: 12px; }
  .service-strip { grid-template-columns: 1fr; padding-block: 24px 30px; gap: 24px; }
  .service-strip > div { padding-left: 36px; }
  .service-index { position: absolute; margin: 0; }
  .service-strip h3 { font-size: 28px; margin-bottom: 8px; }
  .service-strip p { max-width: 310px; }
  .footer { grid-template-columns: 1fr; gap: 20px; padding-block: 28px; }
  .footer-logo { font-size: 48px; }
  .footer nav { gap: 4px 22px; }
  .footer-note { grid-column: auto; }
  .footer-note p { display: none; }
  .footer-note small { margin: 0; }
  .page { padding-top: 28px; padding-bottom: 42px; }
  .page-heading { margin-bottom: 22px; }
  .page-heading .eyebrow { font-size: 8px; }
  .page-heading h1 { font-size: 46px; }
  .page-heading > p:not(.eyebrow) { font-size: 12px; }
  .catalog-categories { gap: 7px; padding-bottom: 20px; }
  .catalog-categories a { padding: 8px 16px; font-size: 11px; }
  .search-row { gap: 8px; }
  .search-row .button { padding: 12px 16px; gap: 12px; }
  .search-row .button > span { display: none; }
  .search-field input { font-size: 16px; padding-left: 37px; }
  .search-field svg { left: 12px; width: 16px; }
  .catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 10px; }
  .catalog-filters select, .catalog-filters input[type=number] { font-size: 16px; padding: 10px 8px; }
  .catalog-filters .button { grid-column: 1/-1; width: 100%; }
  .catalog-meta { align-items: start; gap: 12px; padding-bottom: 18px; }
  .catalog-meta > span { padding-top: 10px; white-space: nowrap; font-size: 10px; }
  .catalog-meta > div { gap: 6px 15px; flex-wrap: wrap; justify-content: end; }
  .catalog-meta .text-link { font-size: 10px; gap: 8px; }
  .catalog-empty { padding: 35px 22px 40px; }
  .catalog-empty h2 { font-size: 34px; }
  .catalog-empty p { font-size: 12px; }
  .collections-grid, .selection-links { grid-template-columns: 1fr; gap: 28px; }
  .collection-cover { aspect-ratio: 1.3; }
  .collection-caption h2 { font-size: 36px; }
  .product-detail { grid-template-columns: 1fr; gap: 18px; }
  .product-description { padding-top: 8px; }
  .product-description h1 { font-size: 48px; }
  .detail-price { font-size: 18px; margin-bottom: 18px; }
  .product-description .intro { font-size: 13px; }
  .checkout-layout { grid-template-columns: 1fr; gap: 28px; }
  .order-summary { position: static; padding: 24px; }
  .cart-row { grid-template-columns: 75px minmax(0, 1fr); gap: 14px; }
  .cart-image { height: 90px; }
  .cart-row h2 { font-size: 28px; }
  .row-total { grid-column: 2; }
  .auth-page { max-width: 420px; }
  .auth-page h1 { font-size: 48px; }
  .form-field input, .form-field textarea, .form-field select { font-size: 16px; }
  .profile-heading h1 { font-size: 38px; overflow-wrap: anywhere; }
  .profile-order { font-size: 11px; gap: 10px; grid-template-columns: 1fr 1.2fr 1fr; }
  .summary-line { font-size: 12px; }
  .success-heading h1 { font-size: 48px; }
  .payment-panel h2 { font-size: 34px; }
  .sibling-nav { gap: 12px; flex-wrap: wrap; }
  .swipe-page h1 { font-size: 40px; }
}
@media (max-width: 360px) {
  .container { width: calc(100% - 24px); }
  .hero-copy { padding-inline: 14px; }
  .hero h1 { font-size: 35px; }
  .hero .button { gap: 14px; padding-inline: 12px; }
  .icon-link { width: 36px; }
  .discovery-card { flex-basis: 48%; }
  .discovery-image { height: 165px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* A.Sole: coastal fashion, quiet space, exact product photography. */
:root { --paper: #f7f6f1; --ink: #273b49; --soft: #eaf2f5; --linen: #e7e0d6; }
h1, h2, h3 { line-height: 1.18; letter-spacing: -.025em; }
h1 { font-size: clamp(40px, 4.7vw, 62px); }
h2 { font-size: clamp(29px, 3vw, 40px); }
h3 { font-size: 24px; }
.announcement { font-size: 10px; letter-spacing: .12em; padding-block: 7px; }
.header-inner { min-height: 90px; }
.wordmark { font-family: Prata, Georgia, serif; font-weight: 400; font-size: 40px; line-height: 1; letter-spacing: -.07em; }
.wordmark span { font-size: 7px; margin-top: 10px; letter-spacing: .08em; padding: 0; }
.desktop-nav a { font-size: 13px; }
.button { font-size: 13px; flex-shrink: 0; }
.text-link { font-size: 13px; }
.home { padding-top: 20px; }
.coast-cover { position: relative; height: 440px; background: #617c8c; color: #fff; overflow: hidden; }
.coast-cover > img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.cover-shade { position: absolute; inset: 0; background: linear-gradient(90deg, #132a37b8 0%, #132a3759 44%, #132a3700 74%); }
.cover-copy { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); padding: 0 54px; }
.cover-copy .eyebrow { font-size: 10px; letter-spacing: .14em; margin-bottom: 21px; }
.cover-copy h1 { font-size: clamp(42px, 4.2vw, 60px); line-height: 1.2; letter-spacing: -.025em; max-width: 670px; margin-bottom: 20px; }
.cover-copy > p:not(.eyebrow) { font-size: 14px; line-height: 1.7; margin-bottom: 23px; }
.cover-copy .button { min-width: 218px; min-height: 48px; height: 48px; white-space: nowrap; }
.cover-caption { position: absolute; right: 24px; bottom: 17px; font-size: 8px; letter-spacing: .14em; color: #fff; }
.home-assortment { padding-top: 34px; padding-bottom: 28px; }
.assortment-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 22px; }
.assortment-heading > div { flex: 1; min-width: 0; }
.assortment-heading .eyebrow { margin-bottom: 10px; font-size: 9px; }
.home-search { flex: 0 1 350px; }
.home-search input { padding-right: 48px; }
.home-search button { position: absolute; top: 0; right: 0; height: 50px; width: 44px; font-size: 18px; }
.assortment-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.home-chips { display: flex; flex: 1; min-width: 0; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.home-chips a { white-space: nowrap; min-height: 40px; padding: 8px 17px; border: 1px solid var(--line); font-size: 12px; }
.home-chips a:first-child { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.home-chips a:hover:not(:first-child) { background: var(--soft); }
.rail-controls { display: flex; gap: 7px; flex-shrink: 0; }
.rail-controls button { width: 42px; height: 42px; border: 1px solid var(--line); font-size: 20px; display: grid; place-items: center; }
.rail-controls button:disabled { opacity: .3; }
.product-rail { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; padding-bottom: 8px; }
.product-rail .product-card { flex: 0 0 calc((100% - 40px) / 3); scroll-snap-align: start; }
.product-rail .product-visual { aspect-ratio: 1 / 1; }
.product-visual > img { object-fit: contain; }
.product-info h3 { font-size: 21px; line-height: 1.45; margin: 6px 0 9px; }
.product-type { font-size: 11px; letter-spacing: .03em; }
.product-info p { font-size: 14px; }
.product-badge { font-size: 9px; letter-spacing: .04em; padding: 6px 8px; background: #f7f6f1ed; }
.favorite-button { font-size: 12px; }
.assortment-bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 20px; }
.assortment-bottom p { font-size: 12px; color: var(--muted); }
.home-collections { padding-block: 28px 35px; }
.collection-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.collection-feature { display: grid; grid-template-columns: 48% 52%; background: var(--soft); min-height: 270px; }
.collection-feature-image { height: 270px; overflow: hidden; }
.collection-feature-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.collection-feature-copy { padding: 26px 24px; align-self: center; }
.collection-feature-copy .eyebrow { font-size: 9px; margin-bottom: 12px; }
.collection-feature-copy h3 { font-size: 32px; margin-bottom: 14px; }
.collection-feature-copy > p:not(.eyebrow) { font-size: 12px; color: var(--muted); line-height: 1.8; margin-bottom: 10px; }
.collection-feature .text-link { font-size: 12px; }
.brand-story { display: grid; grid-template-columns: 42% 58%; align-items: stretch; padding-top: 8px; padding-bottom: 34px; }
.brand-image { height: 350px; overflow: hidden; }
.brand-image img { width: 100%; height: 100%; object-fit: cover; object-position: 83% center; }
.brand-copy { padding: 26px 0 26px 58px; align-self: center; }
.brand-copy .eyebrow { font-size: 9px; }
.brand-copy h2 { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.35; margin-bottom: 22px; }
.brand-copy > p:not(.eyebrow) { font-size: 13px; color: var(--muted); line-height: 1.85; max-width: 510px; margin-bottom: 13px; }
.brand-copy .text-link { margin-top: 7px; }
.service-strip h3 { font-size: 21px; line-height: 1.35; }
.service-strip p { font-size: 12px; }
.footer-logo { font-family: Prata, Georgia, serif; font-size: 39px; font-weight: 400; }
.footer nav { font-size: 12px; }
.footer p, .footer small { font-size: 11px; }
.page-heading > p:not(.eyebrow), .empty p { font-size: 14px; }
.page-heading h1 { line-height: 1.2; }
.product-description h1 { font-size: clamp(36px, 4vw, 52px); line-height: 1.2; }
.product-description .intro { font-size: 14px; }
.product-description .eyebrow { font-size: 11px; letter-spacing: .06em; }
.product-description .eyebrow a { text-decoration: underline; text-underline-offset: 4px; }
.demo-callout, .test-notice { font-size: 12px; line-height: 1.8; }
.demo-callout { background: var(--soft); padding: 12px 14px; }
.form-field > label, summary { font-size: 13px; }
.order-summary p:not(.eyebrow), .summary-line { font-size: 13px; }
.form-field textarea, .form-field input, .form-field select { background: #ffffff42; }
.add-to-cart .button { display: flex; min-height: 50px; }
.gallery-slide > img { object-fit: contain; }
.gallery-thumbs { display: flex; gap: 10px; margin-top: 12px; }
.gallery-thumbs button { width: 70px; height: 70px; padding: 0; border: 1px solid var(--line); opacity: .7; }
.gallery-thumbs button[aria-pressed=true] { border: 2px solid var(--ink); opacity: 1; }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.photo-enlarge { margin-top: 8px; }
.photo-dialog { width: min(94vw, 1100px); max-width: 94vw; max-height: 94vh; padding: 16px; background: var(--paper); color: var(--ink); border: 0; }
.photo-dialog::backdrop { background: #152b39c9; }
.photo-dialog-bar { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-bottom: 12px; }
.photo-dialog-bar > button { min-height: 44px; font-size: 12px; }
.photo-dialog-stage { overflow: auto; max-height: 78vh; text-align: center; }
.photo-dialog-stage img { width: auto; max-width: 100%; max-height: 76vh; margin-inline: auto; object-fit: contain; }
.photo-dialog-stage.is-zoomed img { max-width: none; max-height: none; }
body.photo-open { overflow: hidden; }
.look-page { max-width: 900px; }
.look-products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.look-product { display: grid; grid-template-columns: 105px 1fr; gap: 20px; align-items: center; }
.look-product h2 { font-size: 23px; margin-bottom: 12px; }
.look-product .eyebrow { font-size: 9px; margin-bottom: 8px; }
.look-product p { font-size: 12px; }
.look-summary { margin-top: 30px; padding: 26px; background: var(--soft); }
.look-summary > p { margin-bottom: 16px; }
.look-summary form { max-width: 580px; }
.look-summary .help-text { margin-top: 16px; }
@media (max-width: 1000px) {
  .coast-cover { height: 420px; }
  .cover-copy { padding-inline: 36px; }
  .cover-copy h1 { font-size: 47px; max-width: 560px; }
  .home-search { flex-basis: 310px; }
  .assortment-heading h2 { font-size: 31px; }
  .collection-feature { grid-template-columns: 1fr; }
  .collection-feature-image { height: 200px; }
  .collection-feature-copy { padding: 24px; }
  .brand-copy { padding-left: 34px; }
  .brand-copy h2 { font-size: 29px; }
}
@media (max-width: 700px) {
  .announcement { font-size: 8px; letter-spacing: .05em; padding-block: 7px; }
  .header-inner { min-height: 73px; }
  .wordmark { font-size: 32px; }
  .wordmark span { font-size: 6px; margin-top: 8px; letter-spacing: .04em; }
  .mobile-nav a { font-size: 12px; }
  .home { padding-top: 12px; }
  .coast-cover { height: 340px; }
  .coast-cover > img { object-position: 65% top; }
  .cover-shade { background: linear-gradient(90deg, #132a37bf, #132a374f 68%, #132a3712); }
  .cover-copy { padding: 0 20px; }
  .cover-copy .eyebrow { font-size: 7px; letter-spacing: .09em; margin-bottom: 18px; }
  .cover-copy h1 { font-size: clamp(28px, 7.5vw, 40px); max-width: 85%; margin-bottom: 19px; line-height: 1.3; }
  .cover-copy > p:not(.eyebrow) { font-size: 12px; margin-bottom: 20px; }
  .cover-copy .button { font-size: 11px; min-width: 0; padding: 12px 16px; gap: 18px; }
  .cover-caption { display: none; }
  .home-assortment { padding-top: 25px; }
  .assortment-heading { display: block; margin-bottom: 16px; }
  .assortment-heading .eyebrow { font-size: 8px; }
  .assortment-heading h2 { font-size: 29px; }
  .home-search { display: block; margin-top: 18px; }
  .home-search input { font-size: 16px; }
  .assortment-toolbar { margin-bottom: 16px; gap: 10px; }
  .home-chips { gap: 6px; }
  .home-chips a { padding: 8px 13px; font-size: 11px; min-height: 40px; }
  .rail-controls { gap: 5px; }
  .rail-controls button { width: 35px; height: 40px; font-size: 18px; }
  .product-rail { display: flex; gap: 12px; }
  .product-rail .product-card { flex: 0 0 68%; }
  .product-rail .product-visual { aspect-ratio: 1 / 1; }
  .product-info h3 { font-size: 18px; line-height: 1.5; }
  .product-info p { font-size: 14px; }
  .product-type { font-size: 10px; }
  .product-badge { font-size: 8px; }
  .assortment-bottom { margin-top: 14px; gap: 12px; }
  .assortment-bottom p { font-size: 11px; max-width: 190px; }
  .assortment-bottom .text-link { font-size: 11px; white-space: nowrap; gap: 10px; }
  .home-collections { padding-block: 15px 26px; }
  .home-collections h2 { font-size: 31px; }
  .home-collections .text-link { font-size: 11px; }
  .collection-pair { grid-template-columns: 1fr; gap: 16px; }
  .collection-feature { grid-template-columns: 43% 57%; min-height: 225px; }
  .collection-feature-image { height: 100%; min-height: 225px; }
  .collection-feature-copy { padding: 22px 18px; }
  .collection-feature-copy h3 { font-size: 26px; margin-bottom: 12px; }
  .collection-feature-copy > p:not(.eyebrow) { font-size: 11px; }
  .brand-story { grid-template-columns: 1fr; padding-block: 0 26px; }
  .brand-image { height: 255px; }
  .brand-image img { object-position: 80% center; }
  .brand-copy { padding: 25px 0 0; }
  .brand-copy h2 { font-size: 27px; line-height: 1.4; margin-bottom: 18px; }
  .brand-copy > p:not(.eyebrow) { font-size: 13px; }
  .service-strip h3 { font-size: 21px; }
  .service-strip p { font-size: 12px; }
  .footer-logo { font-size: 33px; }
  .page-heading h1 { font-size: 38px; }
  .page-heading > p:not(.eyebrow) { font-size: 13px; }
  .product-description h1 { font-size: 36px; }
  .product-description .intro { font-size: 14px; }
  .gallery-thumbs button { width: 65px; height: 65px; }
  .cart-row h2 { font-size: 23px; line-height: 1.4; }
  .photo-dialog { padding: 12px; }
  .look-products { grid-template-columns: 1fr; }
  .look-product { grid-template-columns: 90px 1fr; gap: 16px; }
  .look-product h2 { font-size: 21px; }
  .look-summary { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .product-rail, .gallery { scroll-behavior: auto; }
}

.photo-dialog:not([open]) { display: none; }

/* Catalog launch: checkout, carrier selection and payment. */
[hidden] { display: none !important; }
.contact-check { padding: 0 0 18px; border-bottom: 1px solid var(--line, #d8dfdf); }
.contact-code-row { display:flex; align-items:end; gap:16px; margin-top:14px; }
.contact-code-row label { flex:1; }
.contact-code-row input { letter-spacing:.22em; max-width:200px; }
.point-search-controls { padding:18px; background:#eaf2f5; display:flex; flex-direction:column; align-items:start; gap:10px; }
.point-search-controls p { margin:0; }
.contact-profile { margin:30px 0; max-width:550px; }
.payment-panel { background:#eaf2f5; padding:32px; border:1px solid #cad6dc; }
.payment-brand { font-family:Prata,Georgia,serif; font-size:36px; margin-bottom:30px; }
.payment-brand span { display:block; font-family:Arial,sans-serif; font-size:9px; letter-spacing:.14em; margin-top:9px; }
.payment-reference { background:#f7f6f1; border:1px solid #c6d4dc; padding:18px; margin:24px 0; }
.payment-reference p { margin-top:0; }
.payment-reference strong { font-size:22px; letter-spacing:.06em; }
.payment-details dd button { display:block; margin-top:8px; }
.seller-note { border-top:1px solid #c6d4dc; margin-top:26px; padding-top:20px; font-size:13px; line-height:1.65; }
.payment-state { padding:16px; background:#f7f6f1; }
.payment-panel .button { min-height:48px; white-space:normal; }
@media (max-width:600px) { .payment-panel { padding:24px 20px; } .payment-reference .copy-row { align-items:start; flex-direction:column; gap:12px; } .contact-code-row { flex-direction:column; align-items:start; } }

.coast-cover > picture, .coast-cover > picture > img { display: block; width: 100%; height: 100%; }
.coast-cover > picture > img { object-fit: cover; object-position: center top; }
.product-card .product-visual { aspect-ratio: 4 / 5; }
.product-card .product-visual > img { object-fit: cover; }
.product-card[data-card-preview] .product-visual > img { transform: none; }
.product-visual > .card-alt { position: absolute; inset: 0; opacity: 0; transition: opacity .2s ease; pointer-events: none; }
.product-visual > .card-alt.is-visible { opacity: 1; }
.product-card .product-badge, .product-card .product-open { z-index: 1; }
.card-frames { display: none; gap: 5px; }
[data-preview-ready] .card-frames { display: flex; }
.card-frames button { position: relative; flex: 1; min-width: 0; min-height: 34px; }
.card-frames button::after { content: ""; position: absolute; inset: 13px 0 auto; height: 2px; background: var(--line); transition: background .2s; }
.card-frames button[aria-pressed=true]::after { background: var(--ink); }
.card-frames button:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.card-price, .detail-price { display: flex; align-items: baseline; gap: .65em; flex-wrap: wrap; }
.old-price { color: var(--muted); font-size: .84em; }
.assortment-bottom { justify-content: flex-end; }

.product-detail { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.product-media, .gallery-slide { min-width: 0; }
.gallery-slide { position: relative; overflow: hidden; aspect-ratio: 4 / 5; }
.gallery-slide > img, .gallery-slide > svg { display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-slide > img { cursor: zoom-in; }
.gallery-actions { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
.gallery-actions button { min-height: 44px; margin-top: 0; }
.gallery-thumbs { overflow-x: auto; padding-bottom: 4px; }
.gallery-thumbs button { flex-shrink: 0; }
.gallery-lens-control { display: none; }
.gallery-lens { position: absolute; width: 144px; height: 144px; pointer-events: none; z-index: 1; border: 1px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #152b3970, 0 2px 12px #152b3960; background-repeat: no-repeat; }
@media (hover: hover) and (pointer: fine) {
  .gallery-lens-control { display: inline-flex; }
  .gallery-lens-control[aria-pressed=true] { text-decoration: underline; text-underline-offset: 4px; }
}
.photo-dialog { margin: auto; }
.photo-dialog-stage.is-zoomed { text-align: left; }
.photo-dialog-stage.is-zoomed img { margin: 0; }

.consent-fields { min-width: 0; padding: 14px 16px; border: 1px solid var(--line); }
.consent-fields legend { padding: 0 4px; font-size: 13px; }
.consent-row label, .contact-profile .checkbox-label { display: flex; align-items: flex-start; gap: 10px; padding: 7px 0; font-size: 13px; line-height: 1.55; }
.consent-row input, .contact-profile .checkbox-label input { flex: none; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--ink); }
.consent-row a, .contact-profile .checkbox-label a { text-decoration: underline; text-underline-offset: 3px; }
.consent-fields > a { min-height: 38px; }
.legal-page { max-width: 850px; }
.legal-page h2 { font-size: 25px; margin-bottom: 10px; }
.legal-page section { margin-top: 27px; }
.legal-page p { line-height: 1.75; }
.footer { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.4fr); align-items: start; }
.footer-brand small { display: block; margin-top: 10px; }
.footer nav { display: grid; gap: 0; justify-items: start; }
.footer nav a { min-height: 32px; }
@media (max-width: 700px) {
  .coast-cover > picture > img { object-position: 65% top; }
  .card-frames button { min-height: 44px; }
  .card-frames button::after { inset-block-start: 20px; }
  .product-detail { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .footer { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .footer-brand { grid-column: 1 / -1; }
  .footer nav a { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .product-visual > .card-alt, .card-frames button::after { transition: none; }
}
.manual-pickup { padding: 0 12px; border: 1px solid var(--line); }
.manual-pickup summary { min-height: 44px; padding-block: 12px; }
.manual-pickup .form-field { margin-bottom: 12px; }
.gallery-controls button:disabled { opacity: .35; }
