/* Shared presentation for the storefront, collections and customer pages.
   Loaded after the existing styles so every screen uses the same type scale. */
:root {
  --page-width: 1440px;
  --page-gutter: clamp(20px, 3vw, 48px);
  --header-height: 126px;
  --line: #e2ddd5;
  --muted: #71675d;
}

html { scroll-padding-top: calc(var(--header-height) + 18px); }
body { font-size: 14px; line-height: 1.65; -webkit-text-size-adjust: 100%; }
h1, h2, h3 { text-wrap: balance; }
button, input, select, textarea { font-family: var(--sans); }
.button { min-height: 48px; padding: 14px 24px; font-size: 11px; letter-spacing: .08em; line-height: 1.5; }
.text-link { min-height: 44px; align-items: center; font-size: 11px; letter-spacing: .06em; }
.eyebrow, .home-preferred .eyebrow { font-size: 10px; line-height: 1.6; letter-spacing: .16em; }

/* A compact header keeps the wordmark and language choice easy to find. */
.utility-bar { gap: 20px; padding-inline: var(--page-gutter); min-height: 40px; }
.utility-bar .announcement { font-size: 10px; letter-spacing: .08em; min-height: 40px; padding: 8px 0; }
.language-picker { min-height: 40px; gap: 6px; }
.language-picker select { min-height: 40px; font-size: 12px; padding-inline: 4px; }
.masthead { height: 82px; padding-inline: var(--page-gutter); }
.masthead .brand { font-size: 34px; letter-spacing: .045em; }
.masthead .brand > .brand-tagline { font-size: 8px; letter-spacing: .24em; margin-top: 8px; }
.brand > .brand-tagline, .preferred-label > small, .menu-signature { text-transform: uppercase; }
.header-left, .header-actions { gap: 10px; }
.header-left .icon-button, .header-actions .icon-button { min-width: 44px; min-height: 44px; }
.desktop-label { font-size: 10px; }
.navigation { height: 44px; gap: clamp(18px, 2.3vw, 34px); padding-inline: 20px; }
.navigation a { font-size: 10px; letter-spacing: .08em; min-height: 44px; }
.count-badge { font-size: 9px; }

/* Keep the owner's favourite photograph to the right of the opening copy. */
.home-preferred .bridal-hero {
  height: clamp(520px, 65svh, 640px);
  background: linear-gradient(90deg, #f3ece4 0%, #ece2d6 48%, #b3a28e 100%);
}
.home-preferred .bridal-hero .hero-copy { width: 48%; padding: 48px clamp(28px, 5vw, 80px); }
.home-preferred .bridal-hero .eyebrow { font-size: 10px; letter-spacing: .16em; margin-bottom: 20px; }
.home-preferred .bridal-hero h1 { font-size: clamp(44px, 4.3vw, 62px); line-height: 1.08; letter-spacing: -.025em; }
.home-preferred .bridal-hero .hero-description { font-size: 14px; line-height: 1.75; margin: 22px 0 28px; max-width: 350px; }
.home-preferred .button { min-height: 48px; font-size: 11px; letter-spacing: .08em; }
.preferred-ticker { font-size: 10px; letter-spacing: .1em; padding: 15px 20px; }

/* Editorial sections share a quieter scale and consistent spacing. */
.section, .home-preferred .section { max-width: var(--page-width); padding: 64px var(--page-gutter); }
.section-heading, .home-preferred .section-heading { gap: 24px; align-items: flex-end; margin-bottom: 28px; }
.section h2, .home-preferred .section h2 { font-size: clamp(32px, 3vw, 42px); line-height: 1.12; letter-spacing: -.015em; }
.home-preferred .section-heading .eyebrow { margin-bottom: 10px; }
.home-preferred .text-link { font-size: 11px; letter-spacing: .06em; }
.bride-edit > p { max-width: 650px; font-size: 14px; line-height: 1.75; margin: -8px 0 28px; color: var(--muted); }
.preferred-categories { gap: 16px; }
.preferred-category-copy { left: 20px; right: 20px; bottom: 20px; align-items: center; }
.preferred-category-copy h3 { font-size: 24px; line-height: 1.15; }
.preferred-category-copy > span { font-size: 9px; letter-spacing: .04em; }
.launch-strip { padding: 28px var(--page-gutter); gap: 24px; }
.launch-strip > span { font-size: 28px; }
.launch-strip h2 { font-size: 28px; line-height: 1.2; }
.launch-strip p { font-size: 13px; line-height: 1.75; }
.preferred-editorial { min-height: 0; grid-template-columns: 1fr 1fr; }
.preferred-editorial-image.owner-photo-frame { height: 620px; }
.preferred-editorial-copy { padding: clamp(32px, 5vw, 80px); }
.preferred-editorial-copy h2, .preferred-story-copy h2 { font-size: clamp(36px, 4vw, 52px); line-height: 1.08; letter-spacing: -.015em; margin: 10px 0 22px; }
.preferred-editorial-copy > p:not(.eyebrow), .preferred-story-copy > p:not(.eyebrow) { font-size: 14px; line-height: 1.8; }
.preferred-story { max-width: var(--page-width); padding: 72px var(--page-gutter); gap: 64px; }
.preferred-label-card { min-height: 310px; padding: 40px; }
.preferred-label > small { font-size: 8px; letter-spacing: .24em; }
.preferred-lookbook { gap: 16px; }
.preferred-look { height: 460px; min-height: 0; }
.preferred-look > span { left: 20px; bottom: 20px; font-size: 10px; letter-spacing: .06em; }
.preferred-benefits > div { padding: 32px 20px; }
.preferred-benefits strong { font-size: 24px; line-height: 1.2; }
.preferred-benefits span { font-size: 12px; line-height: 1.6; letter-spacing: 0; color: var(--muted); }
.preferred-newsletter { padding: 64px 24px; }
.preferred-newsletter h2 { font-size: 38px; line-height: 1.15; max-width: 620px; margin: 12px auto 18px; }
.preferred-newsletter > p:not(.eyebrow) { font-size: 14px; line-height: 1.75; }
.preferred-newsletter .button-dark { background: #faf8f4; color: var(--ink); border-color: #faf8f4; }
.preferred-newsletter .button-dark:hover { background: transparent; color: #fff; }

/* Product names, garment types and prices have a clear hierarchy. */
.product-grid, .home-preferred .product-grid { gap: 32px 20px; }
.card-media, .home-preferred .card-media { aspect-ratio: 3 / 4; background: #f1ece5; }
.card-media img, .home-preferred .card-media img { background: #f1ece5; object-fit: contain; }
.preferred-product-info { padding: 14px 0 6px; }
.product-card-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.product-card-heading > h3 { min-width: 0; flex: 1; }
.preferred-product-info h3 { font-size: 14px; font-weight: 500; line-height: 1.5; min-height: 0; margin: 0; text-wrap: auto; overflow-wrap: anywhere; }
.card-price { color: var(--ink); font-size: 13px; font-weight: 400; white-space: nowrap; }
.card-description { font-size: 12px; line-height: 1.6; margin: 6px 0 10px; min-height: 3.2em; color: var(--muted); }
.card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.product-reference { font-size: 10px; letter-spacing: 0; margin: 0; color: var(--muted); }
.preferred-product-info .card-color { font-size: 10px; line-height: 1.5; margin: 0; gap: 6px; }
.card-color .swatch { width: 10px; height: 10px; min-width: 10px; }
.favorite-button, .home-preferred .favorite-button { top: 10px; right: 10px; min-width: 44px; min-height: 44px; width: 44px; height: 44px; background: rgba(255,255,255,.96); }
.favorite-button svg { width: 19px; height: 19px; }
.product-badge, .home-preferred .product-badge { left: 12px; top: 12px; padding: 7px 9px; font-size: 9px; letter-spacing: .02em; line-height: 1.5; max-width: calc(100% - 74px); border: 0; background: rgba(255,255,255,.96); }
.preferred-quick { left: 10px; right: 10px; bottom: 10px; min-height: 44px; font-size: 10px; line-height: 1.5; letter-spacing: .04em; padding: 12px 8px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.96); }
@media (hover: hover) and (pointer: fine) {
  .preferred-quick { transform: translateY(calc(100% + 12px)); }
  .product-card:hover .preferred-quick, .product-card:focus-within .preferred-quick { transform: translateY(0); }
}

/* Collections and product pages use the same column alignment. */
.breadcrumb { max-width: var(--page-width); margin: auto; padding: 18px var(--page-gutter); font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; }
.collection-page { max-width: var(--page-width); padding: 0 var(--page-gutter) 64px; }
.collection-heading { padding: 28px 10px 36px; }
.collection-heading h1 { font-size: 46px; line-height: 1.12; letter-spacing: -.02em; margin: 16px 0; }
.collection-heading > p:last-child { font-size: 14px; line-height: 1.75; max-width: 640px; }
.catalog-tools { gap: 20px; padding: 8px 0; margin-bottom: 28px; }
.filters { gap: 24px; }
.filter { min-height: 44px; display: inline-flex; align-items: center; font-size: 11px; letter-spacing: .04em; }
.catalog-sort { font-size: 11px; }
.catalog-sort select { min-height: 44px; padding: 8px 5px; font-size: 12px; }
.catalog-note, .search-summary { font-size: 12px; line-height: 1.7; }
.product-page { max-width: var(--page-width); grid-template-columns: minmax(0,1.2fr) minmax(320px,.9fr); gap: clamp(28px,4vw,64px); padding: 0 var(--page-gutter) 36px; }
.product-gallery { padding: 0; }
.product-panel { padding: 20px 0 0; top: calc(var(--header-height) + 18px); min-width: 0; }
.product-panel h1 { font-size: clamp(30px,3vw,40px); line-height: 1.15; letter-spacing: -.015em; margin: 12px 0 0; }
.product-title-row { gap: 14px; }
.product-title-row .eyebrow { font-size: 9px; letter-spacing: .1em; }
.product-panel .product-subtitle { font-size: 14px; line-height: 1.65; margin-top: 10px; }
.product-price { font-size: 17px; color: var(--ink); margin-top: 20px; }
.product-stock { font-size: 12px; margin: 14px 0 22px; }
.color-selection { margin-top: 28px; }
.color-selection > p { display: flex; align-items: baseline; gap: 10px; font-size: 12px; }
.color-selection strong { font-weight: 500; }
.variant-option { min-height: 44px; font-size: 12px; padding: 9px 14px; }
.size-heading { font-size: 12px; gap: 16px; align-items: center; margin-top: 24px; }
.size-guide-link { font-size: 11px; min-height: 44px; display: inline-flex; align-items: center; }
.size-option { min-width: 48px; min-height: 44px; height: 44px; font-size: 13px; }
.size-help, .opening-note { font-size: 12px; line-height: 1.75; }
.size-help { margin: 12px 0 20px; }
.opening-note { margin-bottom: 24px; }
.add-button { font-size: 11px; min-height: 50px; }
.photo-caption { font-size: 11px; line-height: 1.65; margin-top: 12px; color: var(--muted); }
.gallery-thumbnails { gap: 12px; margin-top: 16px; }
.gallery-thumbnail { flex-direction: column; align-items: stretch; flex: 0 0 auto; gap: 0; width: 64px; max-width: 64px; font-size: 10px; line-height: 1.4; }
.gallery-thumbnail img { flex-shrink: 0; width: 64px; height: 80px; object-fit: contain; }
.gallery-thumbnail span { display: block; width: 100%; margin-top: 7px; overflow-wrap: normal; word-break: normal; }
.gallery-pagination { font-size: 11px; }
.gallery-pagination .icon-button { min-width: 44px; min-height: 44px; }
.purchase-assurances { font-size: 12px; gap: 12px; padding-top: 20px; margin: 24px 0; }
.purchase-assurances a { min-height: 36px; display: flex; align-items: center; }
.product-details summary { font-size: 13px; min-height: 56px; padding: 18px 0; gap: 14px; }
.product-details details > div { font-size: 13px; line-height: 1.8; }
.product-details p { margin-bottom: 12px; }

/* Customer information, the Maison page and forms stay comfortable to read. */
.maison-intro h1 { font-size: 52px; line-height: 1.12; }
.maison-intro > p:last-child { font-size: 14px; line-height: 1.85; }
.maison-editorial h2 { font-size: 42px; line-height: 1.15; }
.maison-editorial p:not(.eyebrow) { font-size: 14px; line-height: 1.8; }
.maison-faq > h2 { font-size: 32px; }
.maison-faq > p { max-width: 600px; margin-inline: auto; font-size: 14px; line-height: 1.8; }
.content-heading h1 { font-size: 46px; line-height: 1.15; letter-spacing: -.015em; }
.content-section h2, .shop-form legend, .checkout-summary h2 { font-size: 28px; line-height: 1.25; }
.content-page { padding-top: 44px; }
.content-page p { font-size: 14px; line-height: 1.85; }
.content-heading { margin-bottom: 36px; }
.shop-form { gap: 20px; }
.shop-form label { font-size: 13px; gap: 8px; }
.shop-form input:not([type=checkbox]):not([type=radio]), .shop-form select, .shop-form textarea, .guide-select select,
.alert-options select, .alert-email input, .search-input-wrap input { font-size: 16px; min-height: 48px; }
.shop-form .button { min-height: 48px; min-width: 0; }
.faq-item summary { font-size: 14px; line-height: 1.65; gap: 16px; }
.shop-notice { font-size: 13px; padding: 18px 20px; }
.maison-help-links { justify-content: center; gap: 12px 24px; }
.empty-state h1, .empty-state h2, .cart-empty h3 { font-size: 30px; line-height: 1.2; }
.empty-state p { font-size: 14px; line-height: 1.75; }

/* Balanced footer columns and accessible drawers. */
.footer { padding: 52px var(--page-gutter) 24px; }
.footer-top { max-width: var(--page-width); grid-template-columns: 1.4fr 1fr 1.15fr 1fr; gap: 36px; }
.footer-intro .brand { font-size: 30px; letter-spacing: .045em; }
.footer-intro .brand > .brand-tagline { font-size: 8px; letter-spacing: .24em; }
.footer-intro p { font-size: 13px; line-height: 1.75; }
.footer-top h2 { font-size: 11px; letter-spacing: .08em; margin-bottom: 12px; }
.footer-top > div:not(.footer-intro) > a, .footer-top > div:not(.footer-intro) > button { display: flex; align-items: center; min-height: 36px; margin: 0; font-size: 12px; line-height: 1.6; }
.footer-bottom { margin-top: 32px; padding-top: 18px; font-size: 11px; line-height: 1.7; gap: 8px 24px; letter-spacing: 0; align-items: center; }
.footer-bottom > a { display: inline-flex; align-items: center; min-height: 36px; }
.footer-bottom > span { margin-right: auto; }
.menu-drawer { padding: 28px; width: min(390px,92vw); }
.menu-heading h2 { font-size: 28px; }
.menu-links > a { min-height: 48px; padding: 11px 0; font-size: 21px; line-height: 1.3; }
.menu-secondary > a, .menu-secondary > button { font-size: 13px; }
.menu-language-picker { font-size: 13px; }
.menu-language-picker select { font-size: 16px; }
.drawer:not(.menu-drawer) { padding: 24px; }
.dialog-heading h2, .info-dialog h2, .quick-dialog h2, .alert-product h2, .alert-success h2 { font-size: 30px; line-height: 1.2; }
.quick-dialog, .search-dialog, .info-dialog { max-height: calc(100dvh - 32px); overflow-y: auto; }
.alert-product p:not(.eyebrow), .alert-options label, .alert-email, .alert-consent { font-size: 13px; line-height: 1.65; }
.alert-privacy-note, .alert-receipt, .alert-success > p:not(.eyebrow) { font-size: 12px; line-height: 1.75; }
.cart-line { gap: 16px; }
.cart-line > a { flex-shrink: 0; }
.cart-line img { object-fit: contain; }
.cart-line > div { min-width: 0; }
.cart-line h3 { font-size: 20px; line-height: 1.3; }
.quantity-control { width: 128px; }
.quantity-control button { width: 44px; height: 44px; }
.cart-line .remove-line { min-height: 44px; margin: 0; }
.order-confirmation h2 { font-size: 32px; line-height: 1.2; }

@media (max-width: 1100px) {
  .footer-top { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
  .preferred-editorial-copy { padding: 36px; }
  .preferred-editorial-image.owner-photo-frame { height: 540px; }
  .preferred-story { gap: 36px; }
  .preferred-category-copy { flex-direction: column; align-items: flex-start; gap: 8px; }
}

@media (max-width: 900px) {
  :root { --header-height: 72px; }
  .masthead { height: 72px; padding-inline: 20px; }
  .navigation { display: none; }
  .masthead .brand { font-size: 30px; }
  .product-page { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 28px; }
  .product-panel h1 { font-size: 30px; }
  .home-preferred .bridal-hero .hero-copy { padding-inline: 28px; }
  .home-preferred .bridal-hero h1 { font-size: 40px; }
  .preferred-editorial { grid-template-columns: 1fr 1fr; }
  .preferred-editorial-copy h2, .preferred-story-copy h2 { font-size: 38px; }
  .preferred-story { grid-template-columns: 1fr 1fr; }
  .preferred-label-card { padding: 24px; min-height: 280px; }
  .preferred-label > span { font-size: 26px; }
  .preferred-look { height: 380px; }
}

@media (max-width: 760px) {
  :root { --page-gutter: 20px; --header-height: 72px; }
  .utility-bar { padding-inline: 16px; gap: 12px; }
  .utility-bar .announcement { font-size: 9px; letter-spacing: .04em; }
  .language-picker select { font-size: 12px; max-width: 130px; }
  .masthead { padding-inline: 12px; gap: 6px; }
  .masthead .brand { font-size: 26px; letter-spacing: .03em; }
  .masthead .brand > .brand-tagline { font-size: 7px; letter-spacing: .18em; margin-top: 6px; }
  .header-left, .header-actions { gap: 0; }
  .header-left .icon-button, .header-actions .icon-button { width: 44px; min-width: 44px; min-height: 44px; }
  .icon-button svg { width: 20px; height: 20px; }
  .eyebrow, .home-preferred .eyebrow { font-size: 9px; letter-spacing: .12em; }
  .home-preferred .bridal-hero { height: auto; min-height: 420px; align-items: center; }
  .bridal-hero .preferred-hero-image { width: 54%; object-fit: contain; }
  .home-preferred .bridal-hero .hero-copy { width: 54%; padding: 34px 12px 34px 20px; }
  .home-preferred .bridal-hero .eyebrow { font-size: 9px; line-height: 1.65; letter-spacing: .08em; margin-bottom: 16px; }
  .home-preferred .bridal-hero h1 { font-size: clamp(25px,7vw,30px); line-height: 1.14; letter-spacing: -.015em; }
  .home-preferred .bridal-hero .hero-description { font-size: 12px; line-height: 1.75; margin: 18px 0 22px; }
  .home-preferred .bridal-hero .hero-copy .button { min-width: 0; width: 100%; max-width: 210px; min-height: 46px; font-size: 10px; letter-spacing: .03em; padding: 12px 10px; }
  .preferred-ticker { padding: 13px 16px; font-size: 9px; letter-spacing: .05em; }
  .section, .home-preferred .section { padding: 44px var(--page-gutter); }
  .section-heading, .home-preferred .section-heading { gap: 16px; margin-bottom: 22px; }
  .section h2, .home-preferred .section h2 { font-size: 29px; line-height: 1.15; letter-spacing: -.015em; }
  .home-preferred .text-link, .section-heading .text-link, .related .section-heading .text-link { font-size: 10px; letter-spacing: .03em; white-space: normal; flex-shrink: 0; max-width: 88px; }
  .section-heading .text-link svg { width: 14px; height: 14px; flex-shrink: 0; }
  .bride-edit > p { font-size: 13px; margin: -6px 0 22px; }
  .preferred-categories { gap: 12px; }
  .preferred-category-copy { left: 12px; right: 12px; bottom: 14px; gap: 6px; }
  .preferred-category-copy h3 { font-size: 21px; line-height: 1.2; }
  .preferred-category-copy > span { font-size: 9px; }
  .product-grid, .home-preferred .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 12px; }
  .preferred-product-info { padding: 12px 0 2px; }
  .product-card-heading { display: block; }
  .preferred-product-info h3 { font-size: 13px; font-weight: 500; line-height: 1.45; min-height: 1.45em; margin-bottom: 4px; }
  .card-price { display: block; font-size: 12px; }
  .card-description { font-size: 11px; line-height: 1.6; margin: 7px 0 9px; min-height: 3.2em; }
  .card-meta { gap: 5px 9px; }
  .product-reference, .preferred-product-info .card-color { font-size: 10px; }
  .favorite-button, .home-preferred .favorite-button { right: 6px; top: 6px; width: 44px; height: 44px; min-width: 44px; min-height: 44px; }
  .product-badge, .home-preferred .product-badge { top: 10px; left: 8px; font-size: 9px; padding: 5px 6px; max-width: calc(100% - 64px); }
  .preferred-quick { left: 6px; right: 6px; bottom: 6px; min-height: 44px; padding: 9px 5px; font-size: 9px; letter-spacing: .01em; transform: none; }
  .launch-strip { padding: 24px var(--page-gutter); gap: 12px; flex-wrap: wrap; }
  .launch-strip h2 { font-size: 25px; }
  .launch-strip p { font-size: 13px; }
  .launch-strip > .text-link { margin-left: 0; }
  .preferred-editorial { grid-template-columns: 1fr; }
  .preferred-editorial-image.owner-photo-frame { height: min(120vw,520px); }
  .preferred-editorial-copy { padding: 36px var(--page-gutter) 40px; }
  .preferred-editorial-copy h2, .preferred-story-copy h2 { font-size: 32px; line-height: 1.12; margin: 10px 0 20px; }
  .preferred-editorial-copy > p:not(.eyebrow), .preferred-story-copy > p:not(.eyebrow) { font-size: 13px; line-height: 1.8; }
  .preferred-story { grid-template-columns: 1fr; padding: 44px var(--page-gutter); gap: 28px; }
  .preferred-label-card { padding: 24px; min-height: 220px; }
  .preferred-label { padding: 28px 16px 24px; }
  .preferred-label > span { font-size: 28px; }
  .preferred-label > small { font-size: 7px; letter-spacing: .18em; margin-top: 12px; }
  .preferred-lookbook { gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .preferred-look, .preferred-look:first-child { height: auto; min-height: 0; aspect-ratio: 3 / 4; }
  .preferred-look:first-child { grid-column: 1 / -1; aspect-ratio: 3 / 2; }
  .preferred-look > span { left: 10px; right: 10px; bottom: 12px; width: fit-content; max-width: calc(100% - 20px); font-size: 9px; letter-spacing: .03em; padding: 9px 10px; }
  .preferred-benefits strong { font-size: 23px; }
  .preferred-benefits > div { padding: 24px 20px; }
  .preferred-newsletter { padding: 44px var(--page-gutter); }
  .preferred-newsletter h2 { font-size: 29px; line-height: 1.18; }
  .preferred-newsletter > p:not(.eyebrow) { font-size: 13px; }
  .breadcrumb { padding: 12px var(--page-gutter); font-size: 10px; gap: 8px; min-height: 44px; }
  .collection-page { padding: 0 var(--page-gutter) 44px; }
  .collection-heading { padding: 20px 0 28px; }
  .collection-heading h1 { font-size: 30px; line-height: 1.18; margin: 14px 0; }
  .collection-heading > p:last-child { font-size: 13px; }
  .catalog-tools { gap: 8px; padding-block: 8px; margin-bottom: 20px; }
  .filters { gap: 22px; }
  .filter { font-size: 11px; }
  .catalog-sort { font-size: 11px; }
  .catalog-sort select { font-size: 12px; max-width: 180px; }
  .catalog-note, .search-summary { font-size: 11px; }
  .product-page { display: block; padding: 0 0 28px; }
  .product-gallery { padding: 0; }
  .gallery-main img { height: min(112vw,560px); width: 100%; min-height: 0; max-height: none; aspect-ratio: auto; object-fit: contain; }
  .gallery-thumbnails { margin: 16px var(--page-gutter) 8px; gap: 12px; }
  .gallery-thumbnail { width: 56px; max-width: 56px; font-size: 10px; }
  .gallery-thumbnail img { width: 56px; height: 70px; }
  .photo-caption { margin: 8px var(--page-gutter) 0; font-size: 11px; }
  .product-panel { padding: 24px var(--page-gutter) 0; position: static; }
  .product-panel h1 { font-size: 28px; line-height: 1.18; margin-top: 10px; }
  .product-panel .product-subtitle { font-size: 13px; }
  .product-price { font-size: 16px; margin-top: 16px; }
  .color-selection { margin-top: 22px; }
  .size-heading { margin-top: 20px; font-size: 12px; }
  .size-options { gap: 8px; }
  .size-help, .opening-note { font-size: 11px; }
  .product-details summary { font-size: 12px; }
  .product-details details > div { font-size: 13px; }
  .maison-intro { padding: 28px var(--page-gutter) 40px; }
  .maison-intro h1 { font-size: 32px; margin: 18px 0; }
  .maison-intro > p:last-child { font-size: 13px; }
  .maison-editorial > div { padding: 36px var(--page-gutter); }
  .maison-editorial h2 { font-size: 30px; }
  .maison-editorial p:not(.eyebrow), .maison-faq > p { font-size: 13px; }
  .maison-faq { padding: 40px var(--page-gutter); }
  .maison-faq > h2 { font-size: 28px; }
  .content-page { padding: 24px var(--page-gutter) 52px; }
  .content-heading { margin-bottom: 28px; }
  .content-heading h1 { font-size: 30px; line-height: 1.2; overflow-wrap: anywhere; }
  .content-section h2, .shop-form legend, .checkout-summary h2 { font-size: 25px; line-height: 1.25; }
  .content-section { margin: 26px 0; }
  .content-page p { font-size: 13px; line-height: 1.85; }
  .shop-form label { font-size: 12px; }
  .checkout-steps { flex-wrap: wrap; gap: 10px 20px; font-size: 11px; }
  .checkout-summary { padding: 22px 18px; }
  .withdrawal-model { padding: 24px 18px; }
  .empty-state h1, .empty-state h2, .cart-empty h3 { font-size: 26px; }
  .empty-state p { font-size: 13px; }
  .footer { padding: 40px var(--page-gutter) 20px; }
  .footer-top { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 24px; }
  .footer-intro, .footer-top > div:last-child { grid-column: 1 / -1; }
  .footer-intro .brand { font-size: 26px; }
  .footer-intro .brand > .brand-tagline { font-size: 7px; letter-spacing: .18em; }
  .footer-intro p { font-size: 12px; margin-top: 16px; }
  .footer-top h2 { font-size: 10px; letter-spacing: .08em; margin-bottom: 10px; }
  .footer-top > div:not(.footer-intro) > a, .footer-top > div:not(.footer-intro) > button { min-height: 44px; font-size: 12px; }
  .footer-bottom { flex-direction: row; align-items: center; gap: 0 20px; font-size: 10px; margin-top: 26px; }
  .footer-bottom > span { flex-basis: 100%; margin: 0 0 10px; }
  .footer-bottom > a { min-height: 44px; }
  .menu-drawer { padding: 24px; }
  .menu-heading h2 { font-size: 27px; }
  .menu-links > a { font-size: 20px; min-height: 48px; }
  .menu-links > a > span:not(.menu-link-label) { font-size: 18px; }
  .drawer:not(.menu-drawer) { padding: 24px 20px; }
  .dialog-heading h2, .info-dialog h2, .quick-dialog h2, .alert-product h2, .alert-success h2 { font-size: 27px; }
  .quick-dialog { padding: 32px 20px 24px; }
  .search-dialog { padding: 24px 20px; }
  .cart-line { flex-wrap: wrap; gap: 12px; }
  .cart-line > div { flex: 1; min-width: 130px; }
  .cart-line > strong { margin-left: 79px; font-size: 13px; }
  .cart-line h3 { font-size: 19px; }
  .cart-line p { font-size: 11px; }
  .order-confirmation h2 { font-size: 28px; }
  .toast { font-size: 12px; line-height: 1.6; max-width: calc(100% - 32px); padding: 12px 16px; text-align: center; }
}

@media (max-width: 540px) {
  .masthead { grid-template-columns: 88px minmax(0,1fr) 44px; }
  .header-actions { justify-content: flex-end; }
  #favorites-open { display: none; } /* Favourites remain in the menu. */
}

@media (max-width: 380px) {
  :root { --page-gutter: 18px; }
  .masthead { padding-inline: 10px; gap: 4px; }
  .masthead .brand { font-size: 24px; }
  .home-preferred .bridal-hero .hero-copy { padding-left: 18px; padding-right: 10px; }
  .home-preferred .bridal-hero h1 { font-size: 25px; }
  .section h2, .home-preferred .section h2 { font-size: 27px; }
  .preferred-product-info h3 { font-size: 12px; }
  .preferred-label > span { font-size: 25px; }
  .preferred-editorial-copy h2, .preferred-story-copy h2 { font-size: 30px; }
  .preferred-newsletter h2 { font-size: 27px; }
  .product-panel h1, .content-heading h1 { font-size: 28px; }
}
