/* ОТРАДА: спокойные голубые элементы выбора. */
.shop-icon-button { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:42px; height:42px; padding:10px; border:1px solid #9fbacb; border-radius:50%; background:rgba(248,253,255,.94); color:#274760; cursor:pointer; }
.shop-icon-button svg,.shop-save-variant svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.shop-icon-button[aria-pressed="true"] svg,.shop-save-variant[aria-pressed="true"] svg { fill:#d4e5f1; }
.shop-icon-button:hover { background:#e8f3fa; }
.shop-icon-button:focus-visible,.shop-save-variant:focus-visible,.shop-text-button:focus-visible,.shop-preview summary:focus-visible,.shop-care summary:focus-visible { outline:3px solid #2c658d; outline-offset:3px; }
.shop-favorites-nav { position:relative; }
.shop-favorites-count { position:absolute; right:-4px; top:-4px; min-width:19px; height:19px; display:grid; place-items:center; padding:0 4px; border-radius:20px; background:#274760; color:white; font-size:10px; font-weight:700; }
.shop-favorites-count[hidden] { display:none; }
.shop-footer-favorites { border:0; padding:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.shop-favorites-dialog { box-sizing:border-box; width:min(660px,calc(100% - 28px)); max-height:85dvh; max-height:min(85dvh,900px); padding:24px; border:1px solid #b8d0df; border-radius:28px; color:#274760; background:#f5faff; box-shadow:0 20px 80px #1d3b6040; overflow:auto; overscroll-behavior:contain; }
.shop-favorites-dialog::backdrop { background:rgba(28,50,76,.48); }
body.shop-dialog-open { overflow:hidden; }
.shop-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.shop-dialog-heading h2 { margin:0; font-size:28px; }
.shop-dialog-close { font:28px/1 sans-serif; }
.shop-muted { font-size:13px; line-height:1.5; color:#536b7b; }
.shop-favorite-row { display:grid; grid-template-columns:104px minmax(0,1fr); gap:16px; padding:18px 0; border-bottom:1px solid #d2e0e9; }
.shop-favorite-row img { width:104px; height:104px; object-fit:contain; border-radius:16px; background:#e8f4fc; }
.shop-favorite-title { display:block; font-weight:600; text-decoration:none; font-size:17px; line-height:1.4; }
.shop-favorite-details { margin:8px 0; color:#536b7b; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.shop-favorite-price { display:block; margin:8px 0 0; }
.shop-favorite-content { min-width:0; }
.shop-text-button { border:0; background:transparent; padding:10px 0; color:#365974; text-decoration:underline; text-underline-offset:3px; font:inherit; cursor:pointer; }
.shop-favorites-empty { padding:18px 0; line-height:1.6; }
.shop-variant-summary { padding:20px; margin:22px 0 18px; border:1px solid #aac6d8; border-radius:22px; background:rgba(240,249,255,.88); }
.shop-variant-summary h2 { margin:0 0 14px; font-size:20px; font-weight:600; line-height:1.3; }
.shop-variant-list { margin:0; display:grid; gap:9px; }
.shop-variant-list > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:10px; font-size:13px; line-height:1.5; }
.shop-variant-list dt { color:#506c7f; }
.shop-variant-list dd { margin:0; color:#213e54; text-align:right; overflow-wrap:anywhere; font-weight:500; }
.shop-variant-total { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; padding-top:14px; border-top:1px solid #bfd5e2; font-size:13px; }
.shop-variant-total strong { font-size:22px; text-align:right; white-space:nowrap; }
.shop-variant-error { margin:12px 0 0; color:#943d3d; font-size:13px; }
.shop-save-variant { display:flex; justify-content:center; align-items:center; gap:9px; width:100%; min-height:44px; margin:12px 0 0; padding:10px 12px; border:1px solid #b6ccd9; border-radius:16px; background:rgba(250,253,255,.65); color:#35566d; font:inherit; font-size:13px; cursor:pointer; }
.shop-save-variant:disabled { opacity:.6; cursor:default; }
.shop-saved-notice { padding:12px; border-radius:14px; background:#e3f1f7; color:#345971; font-size:13px; line-height:1.5; }
.shop-preview,.shop-care { border:1px solid #bfd1dd; border-radius:16px; margin-top:16px; padding:0 14px; background:rgba(250,253,255,.6); }
.shop-preview summary,.shop-care summary { cursor:pointer; padding:14px 0; font-size:14px; color:#34566e; }
.shop-preview-samples { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; }
.shop-preview-sample { min-width:0; }
.shop-preview-visual { display:flex; align-items:center; justify-content:center; min-height:100px; padding:16px 12px; border-radius:16px; background:var(--preview-base); color:var(--preview-ink); border:1px solid #6b83944d; }
.shop-preview-text { font-weight:650; font-size:20px; line-height:1.3; text-align:center; overflow-wrap:anywhere; text-shadow:0 0 1px #26445c33; }
.shop-preview-sample p { margin:6px 0; font-size:12px; color:#506b7e; }
.shop-care ul { margin:0 0 14px; padding-left:19px; font-size:13px; line-height:1.7; color:#506b7e; }
.shop-specifications dl { margin-bottom:16px; }
.shop-specifications .shop-variant-list > div { grid-template-columns:minmax(0,1fr); gap:3px; }
.shop-specifications dd { text-align:left; }
.shop-mobile-buy { display:none; }
@media (max-width:700px) {
  .shop-favorites-dialog { padding:18px; border-radius:22px; }
  .shop-dialog-heading h2 { font-size:23px; }
  .shop-favorite-row { grid-template-columns:78px minmax(0,1fr); gap:12px; }
  .shop-favorite-row img { width:78px; height:78px; }
  .shop-favorite-title { font-size:15px; }
  .shop-variant-summary { padding:16px; border-radius:18px; }
  .shop-variant-total strong { font-size:20px; }
  .shop-mobile-buy { box-sizing:border-box; position:fixed; z-index:80; left:0; right:0; bottom:0; display:flex; gap:14px; justify-content:space-between; align-items:center; padding:12px 18px calc(12px + env(safe-area-inset-bottom)); background:rgba(244,250,255,.98); border-top:1px solid #acc8db; box-shadow:0 -4px 20px #2c507218; transform:translateY(120%); visibility:hidden; pointer-events:none; }
  .shop-mobile-buy.is-visible { transform:translateY(0); visibility:visible; pointer-events:auto; }
  .shop-mobile-price { display:grid; gap:3px; min-width:0; }
  .shop-mobile-price span { color:#567083; font-size:11px; }
  .shop-mobile-price strong { color:#23465e; font-size:19px; line-height:1.25; }
  .shop-mobile-buy .button { min-height:44px; padding:12px 20px; font-size:14px; flex-shrink:0; }
  body.shop-has-mobile-buy { padding-bottom:calc(90px + env(safe-area-inset-bottom)); }
  .shop-preview-text { font-size:18px; }
}
@media (max-width:360px) {
  .shop-mobile-buy { padding-left:12px; padding-right:12px; gap:8px; }
  .shop-mobile-buy .button { padding-left:12px; padding-right:12px; }
  .shop-variant-list > div { font-size:12px; }
}
@media (prefers-reduced-motion:no-preference) {
  .shop-mobile-buy { transition:transform .15s ease,visibility .15s; }
}

/* Shared header controls occupy real space: search, favourites, then cart. */
.site-header .nav-shell > .nav-actions { display:flex; align-items:center; gap:16px; }
.site-header .shop-header-tools { display:flex; align-items:center; flex:0 0 auto; gap:10px; }
.site-header .shop-header-tools > .shop-header-button {
  position:relative; display:grid; place-items:center; box-sizing:border-box;
  flex:0 0 46px; width:46px; min-width:46px; height:46px; padding:0; margin:0;
  border:2px solid #26324a !important; border-radius:50% !important;
  background:rgba(255,255,255,.84) !important; color:#26324a;
  box-shadow:inset 0 1px 0 white,0 8px 18px rgba(38,50,74,.12) !important;
  translate:none !important; transform:none !important; cursor:pointer;
}
.site-header .shop-header-tools > .shop-header-button::before,
.site-header .shop-header-tools > .shop-header-button::after { display:none !important; }
.site-header .shop-header-tools > .shop-header-button svg {
  display:block; flex:none; width:21px; height:21px; margin:0; padding:0;
  fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
  transform:none;
}
.site-header .shop-header-tools > .shop-header-button:focus-visible {
  outline:3px solid rgba(81,103,199,.5); outline-offset:3px;
}
.site-header .shop-favorites-count { right:-2px; top:-4px; }
@media (min-width:1240px) {
  .site-header .nav-shell { grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr); }
}
@media (max-width:700px) {
  .site-header .nav-shell,.page-home .site-header .nav-shell {
    grid-template-columns:minmax(0,1fr) 44px 44px 44px 52px; column-gap:4px;
  }
  .site-header .nav-shell > .nav-actions,.site-header .shop-header-tools { display:contents; }
  .site-header .shop-header-tools > .shop-header-button {
    grid-row:1; width:44px; min-width:44px; height:44px; flex-basis:44px;
    background:rgba(255,255,255,.9) !important;
  }
  .site-header .shop-header-tools > .search-trigger { grid-column:3; }
  .site-header .shop-header-tools > .shop-favorites-nav { grid-column:4; }
  .site-header .nav-actions > .cart-link { grid-column:5; grid-row:1; }
  .site-header .shop-header-tools > .shop-header-button svg { width:20px; height:20px; }
  .site-header .nav-shell > .brand,.page-home .site-header .nav-shell > .brand { margin-left:0; max-width:100%; }
}

/* Match the gallery arrows: transparent surface, blue outline, compact glyph. */
.product-media .shop-card-favorite,
.product-media .shop-card-favorite:hover,
.product-media .shop-card-favorite:focus-visible {
  position:absolute; z-index:6; top:12px; right:12px; box-sizing:border-box;
  display:grid; place-items:center; width:43px; height:43px; padding:0;
  border:1px solid #102d78; border-radius:50%; background:transparent;
  color:#102d78; box-shadow:none; backdrop-filter:none;
}
.product-media .shop-card-favorite svg {
  width:16px; height:16px; stroke:#102d78; stroke-width:2.6;
  filter:drop-shadow(0 1px 2px rgba(255,255,255,.9));
}
.product-media .shop-card-favorite[aria-pressed="true"] svg { fill:#102d78; }
.product-media .shop-card-favorite:focus-visible { outline:2px solid #102d78; outline-offset:3px; }
@media (max-width:700px) {
  .product-media .shop-card-favorite,
  .product-media .shop-card-favorite:hover,
  .product-media .shop-card-favorite:focus-visible {
    top:8px; right:8px; width:44px; height:44px;
  }
}
@media (max-width:620px) {
  .product-media .shop-card-favorite,
  .product-media .shop-card-favorite:hover,
  .product-media .shop-card-favorite:focus-visible { border:0; }
  .product-media .shop-card-favorite svg { filter:drop-shadow(0 1px 1px white); }
}

/* Large overlays share one layer above the storefront header. */
body .search-drawer,body .custom-order-modal,body .delivery-modal { z-index:3000; }
body.shop-overlay-open { overflow:hidden; }
body.shop-overlay-open .site-header {
  visibility:hidden; pointer-events:none;
}
body.shop-overlay-open .shop-mobile-buy { visibility:hidden !important; pointer-events:none !important; }
.search-drawer { height:var(--shop-viewport-height,100dvh); top:var(--shop-viewport-top,0px); bottom:auto; }
.search-panel { max-height:100%; overscroll-behavior:contain; }
.global-search-results { min-width:0; }
.site-header [data-menu] { overscroll-behavior:contain; }

/* Natural content height prevents illustrations and text from competing for space. */
body .custom-order-modal,body .delivery-modal {
  padding:20px; place-items:center; overflow:hidden;
}
body .custom-order-dialog-wrap,body .delivery-dialog-wrap.custom-order-dialog-wrap {
  position:relative; width:min(1080px,100%); height:auto; min-height:0;
  max-height:calc(100dvh - 40px); margin:auto;
}
body .custom-order-dialog-v2,body .custom-order-dialog-v2.cloud-surface,
body .delivery-dialog.custom-order-dialog-v2 {
  width:100%; height:auto; min-height:0; max-height:inherit; padding:0;
  overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain;
  border:1px solid rgba(255,255,255,.96);
  border-radius:46px 58px 50px 62px / 54px 44px 60px 48px;
  background:linear-gradient(145deg,#f5fbff,#e2f3fc);
  box-shadow:0 24px 60px rgba(25,41,69,.22);
  transform:none; transition:none;
}
body .custom-order-dialog-v2::before,body .delivery-dialog.custom-order-dialog-v2::before { display:none !important; }
body .custom-order-story-content,body .delivery-dialog-content.custom-order-story-content {
  display:flex; flex-direction:column; width:100%; height:auto; min-height:0;
  padding:52px clamp(20px,4vw,48px) 28px; gap:20px; overflow:visible;
}
body .custom-order-story-header,body .delivery-dialog-header.custom-order-story-header {
  display:grid; grid-template-columns:minmax(0,1fr) 64px; gap:8px 18px;
  width:100%; margin:0; text-align:left;
}
body .custom-order-story-header > .eyebrow { display:block; grid-column:1 / -1; margin:0; }
body .custom-order-story-header > div { min-width:0; }
body .custom-order-story-header h2 { font-size:clamp(26px,3.2vw,38px); line-height:1.2; overflow-wrap:anywhere; }
body .custom-order-story-header p:last-child { display:block; max-width:none; font-size:14px; line-height:1.45; }
body .custom-order-story-daisy { display:block; width:64px; height:64px; max-width:100%; margin:0; object-fit:contain; }
body .custom-order-story-steps,body .delivery-options.custom-order-story-steps {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:none;
  width:100%; min-height:0; margin:0; padding:0; gap:16px; overflow:visible;
}
body .custom-order-story-steps > li,body .delivery-options.custom-order-story-steps > li {
  display:flex; flex-direction:column; align-items:stretch; height:auto; min-height:0;
  padding:10px 10px 16px; gap:12px; overflow:visible;
}
body .custom-order-story-steps > li::after { display:none; }
body .custom-order-story-visual {
  position:relative; flex:none; width:100%; height:auto; min-height:0; max-height:none;
  aspect-ratio:4 / 3; overflow:hidden;
}
body .custom-order-story-visual > img.custom-order-story-illustration,
body .delivery-options .custom-order-story-visual > img {
  position:absolute; inset:0; display:block; width:100%; height:100%; max-height:none;
  margin:0; object-fit:contain !important; object-position:center !important; transform:none;
}
body .custom-order-story-copy { padding:0 2px; text-align:center; }
body .custom-order-story-copy h3 { margin:0 0 6px; font-size:17px; line-height:1.3; overflow-wrap:anywhere; }
body .custom-order-story-copy p { max-width:none; margin:0; font-size:13px; line-height:1.45; }
body .custom-order-story-tags { display:flex; flex-wrap:wrap; width:100%; margin:0; gap:8px; }
body .custom-order-story-tags li { flex:1 1 170px; }
body .custom-order-story-contact,body .delivery-payment-note.custom-order-story-contact {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  width:100%; min-height:0; margin:0; padding:14px; gap:14px; overflow:visible;
}
body .custom-order-story-contact > p { flex:1 1 220px; min-width:0; }
body .custom-order-story-contact p span,body .custom-order-story-contact p strong,
body .delivery-payment-note.custom-order-story-contact p > strong { font-size:14px; line-height:1.4; }
body .custom-order-story-contact .custom-order-messengers { display:flex; flex-wrap:wrap; gap:8px; max-width:100%; }
body .custom-order-story-contact .custom-order-messenger { min-width:0; min-height:44px; padding:10px 14px; font-size:13px; }
body .custom-order-dialog-wrap > .custom-order-close {
  top:10px; right:12px; z-index:5; width:40px; min-width:40px; height:40px; padding:8px;
}
body .product-question-dialog { max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain; }
body .product-question-content { min-width:0; }

/* One price node, beside the final purchase controls. */
.detail-panel .shop-variant-total [data-config-price] { margin:0; padding:0; font-size:22px; line-height:1.3; white-space:nowrap; }
.shop-favorite-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin-top:12px; }
.shop-favorite-actions .shop-favorite-add {
  display:inline-flex; align-items:center; justify-content:center; width:auto; min-width:0; min-height:44px;
  padding:10px 16px; border:1px solid #274760; border-radius:14px; background:#274760; color:#fff;
  font:inherit; font-size:14px; line-height:1.3; text-align:center; text-decoration:none; cursor:pointer;
}
.shop-favorite-actions .shop-favorite-add:focus-visible { outline:3px solid #2c658d; outline-offset:3px; }
.shop-favorite-status { margin:8px 0 0; color:#34566e; font-size:13px; line-height:1.4; }
.shop-favorite-status:empty { display:none; }

@media (hover:hover) and (pointer:fine) and (min-width:701px) {
  .product-media .shop-card-favorite,.product-media .shop-card-favorite:hover,.product-media .shop-card-favorite:focus-visible {
    top:18px; right:18px; width:38px; height:38px; opacity:0; pointer-events:none;
  }
  .product-media .shop-card-favorite svg { width:14px; height:14px; }
  .product-media:hover .shop-card-favorite,.product-media:focus-within .shop-card-favorite,
  .product-media .shop-card-favorite:focus-visible { opacity:1; pointer-events:auto; }
}

@media (max-width:700px) {
  body .search-panel {
    inset:8px; width:auto; height:calc(100% - 16px); max-height:calc(100% - 16px);
    min-height:0; padding:calc(54px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));
    overflow-x:hidden; overflow-y:auto; transform:none; transition:none;
  }
  body .search-drawer.is-open .search-panel { transform:none; }
  body .global-search-results { flex:1 1 auto; min-height:120px; overflow:visible; }
  body .search-close { top:calc(12px + env(safe-area-inset-top)); min-height:40px; }
  .site-header [data-menu].is-open { max-height:calc(100dvh - 120px); overflow-y:auto; }
  body .custom-order-modal,body .delivery-modal { padding:8px; }
  body .custom-order-dialog-wrap,body .delivery-dialog-wrap.custom-order-dialog-wrap {
    width:100%; height:auto; max-height:calc(100dvh - 16px); min-height:0;
  }
  body .custom-order-dialog-v2,body .custom-order-dialog-v2.cloud-surface,
  body .delivery-dialog.custom-order-dialog-v2 { border-radius:26px; max-height:inherit; }
  body .custom-order-story-content,body .delivery-dialog-content.custom-order-story-content {
    padding:calc(54px + env(safe-area-inset-top)) 14px calc(20px + env(safe-area-inset-bottom)); gap:16px;
  }
  body .custom-order-story-header,body .delivery-dialog-header.custom-order-story-header { display:block; text-align:center; }
  body .custom-order-story-header > .eyebrow,body .custom-order-story-daisy,body .custom-order-story-tags { display:none; }
  body .custom-order-story-header h2 { font-size:24px; }
  body .custom-order-story-steps,body .delivery-options.custom-order-story-steps { grid-template-columns:minmax(0,1fr); gap:12px; }
  body .custom-order-story-steps > li,body .delivery-options.custom-order-story-steps > li {
    display:grid; grid-template-columns:80px minmax(0,1fr); grid-template-rows:auto;
    align-items:center; padding:10px; gap:12px;
  }
  body .custom-order-story-visual { width:80px; height:80px; aspect-ratio:1; min-height:0; max-height:none; }
  body .custom-order-story-copy { text-align:left; }
  body .custom-order-story-copy h3 { font-size:16px; }
  body .custom-order-story-contact .custom-order-messengers { width:100%; }
  body .custom-order-story-contact .custom-order-messenger { flex:1 1 110px; }
  body .custom-order-dialog-wrap > .custom-order-close { top:calc(8px + env(safe-area-inset-top)); }

  body .shop-mobile-buy {
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); align-items:center;
    width:100%; gap:12px; padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    transition:none; transform:none;
  }
  body .shop-mobile-buy .shop-mobile-price { width:auto; min-width:0; overflow:hidden; gap:3px; }
  body .shop-mobile-buy .shop-mobile-price span { white-space:nowrap; font-size:11px; line-height:1.3; }
  body .shop-mobile-buy .shop-mobile-price strong { white-space:nowrap; overflow-wrap:normal; word-break:normal; font-size:clamp(16px,4.6vw,20px); line-height:1.3; }
  body .shop-mobile-buy .button {
    width:100%; min-width:0; max-width:100%; min-height:48px; height:auto; padding:10px 12px;
    font-size:14px; line-height:1.3; white-space:normal; transform:none !important; transition:none;
  }
  body .shop-mobile-buy .button::before,body .shop-mobile-buy .button::after { display:none !important; }
  .detail-panel,.detail-panel .order-options,.detail-panel .visual-color-picker,.detail-panel .frame-color-page { min-width:0; max-width:100%; }
  .detail-panel .visual-color-picker { width:100%; }
  .detail-panel .visual-color-picker legend {
    display:block; width:100%; min-width:0; max-width:100%; margin:0 0 14px; padding:0 8px;
    white-space:normal; text-align:center; overflow-wrap:anywhere; line-height:1.3;
  }
  .detail-panel .visual-color-picker legend > span { display:block; font-size:clamp(18px,5vw,22px); line-height:1.3; }
  .detail-panel .visual-color-picker legend > small { display:block; margin-top:5px; letter-spacing:.12em; line-height:1.4; }
  .detail-panel .visual-color-picker .color-options { width:100%; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 4px; padding:4px 0; }
  .detail-panel .visual-color-picker .color-option {
    display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
    min-width:0; height:auto; min-height:82px; padding:4px 2px; gap:8px;
    font-size:13px; line-height:1.3;
  }
  .detail-panel .visual-color-picker .color-swatch { flex:none; width:30px; height:30px; }
  .detail-panel .visual-color-picker .color-option > span:last-child {
    display:block; min-width:0; width:100%; min-height:2.6em; white-space:normal;
    text-align:center; word-break:normal; overflow-wrap:anywhere; line-height:1.3;
  }
  .detail-panel .frame-color-navigation { max-width:100%; gap:12px; }
  .detail-panel .shop-variant-list > div { grid-template-columns:minmax(0,1fr); gap:3px; }
  .detail-panel .shop-variant-list dd { text-align:left; }
  .detail-panel .detail-actions .button { min-width:0; height:auto; white-space:normal; }
  .site-footer .footer-documents { margin-top:18px; padding-top:18px; border-top:1px solid rgba(81,103,199,.16); }
}

/* Visible palette captions live inside the panel; the legend names the group. */
.detail-panel .shop-color-picker > legend.visually-hidden {
  position:absolute !important; width:1px !important; height:1px !important;
  padding:0 !important; margin:-1px !important; border:0 !important;
  overflow:hidden !important; white-space:nowrap !important;
  clip:rect(0,0,0,0); clip-path:inset(50%);
}
.shop-color-picker > .shop-color-heading {
  display:block; width:100%; min-width:0; margin:0 0 14px; padding:2px 30px 0;
  text-align:center; color:var(--brand-blue); overflow-wrap:anywhere;
}
.shop-color-heading > span { display:block; font:400 22px/1.25 var(--font-display); }
.shop-color-heading > small { display:block; margin-top:5px; font-size:10px; font-weight:700; line-height:1.4; letter-spacing:.12em; text-transform:uppercase; }
.shop-mobile-category,.shop-dialog-close .shop-dialog-close-glyph { display:none; }

@media (max-width:700px) {
  .site-footer .shop-footer-favorites { display:none; }
  .shop-favorites-dialog .shop-dialog-close {
    display:grid; place-items:center; flex:0 0 42px; box-sizing:border-box;
    width:42px; min-width:42px; height:42px; padding:0; line-height:1;
  }
  .shop-dialog-close .shop-dialog-close-text { display:none; }
  .shop-dialog-close .shop-dialog-close-glyph {
    display:block; width:20px; height:20px; margin:0; padding:0; fill:none;
    stroke:currentColor; stroke-width:1.8; stroke-linecap:round;
  }
  .detail-panel .shop-color-heading { padding-inline:22px; }
  .detail-panel .shop-color-heading > span { font-size:clamp(18px,5vw,22px); }
  .detail-panel .shop-color-picker > .color-picker-daisy { top:18px; width:20px; height:20px; }
  .detail-panel .shop-color-picker > .color-picker-daisy-left { left:8px; }
  .detail-panel .shop-color-picker > .color-picker-daisy-right { right:8px; }

  .catalog-page .catalog-controls.shop-has-category-select { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
  .shop-has-category-select > .filter-buttons { display:none; }
  .shop-has-category-select > .shop-mobile-category {
    display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center;
    width:100%; min-width:0; margin:0; padding:0; gap:12px;
    color:#354975; font:14px/1.3 var(--font-body);
  }
  .shop-mobile-category > span { white-space:nowrap; }
  .shop-mobile-category select {
    display:block; box-sizing:border-box; width:100%; min-width:0; min-height:48px;
    appearance:none; -webkit-appearance:none; border:1px solid #b8cce2; border-radius:14px;
    padding:11px 34px 11px 12px; color:#354975; font:16px/1.3 var(--font-body);
    background:#f1f6fc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%23354975' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 10px center / 18px 18px no-repeat;
  }
  .shop-mobile-category select:focus-visible { outline:2px solid var(--brand-blue); outline-offset:3px; }
  .shop-has-category-select > .catalog-search { width:100%; min-width:0; }

  .page-individual .individual-hero > p:not(.eyebrow) {
    color:var(--brand-blue);
    font:400 clamp(17px,4.8vw,21px)/1.4 var(--font-display) !important;
    text-shadow:0 2px 0 rgba(255,255,255,.8),0 8px 20px rgba(61,89,170,.12);
  }

  /* Restore the previous phone illustrations: 16:9, with no blue square. */
  body .custom-order-story-steps > li,body .delivery-options.custom-order-story-steps > li {
    grid-template-columns:clamp(124px,39vw,164px) minmax(0,1fr); padding:8px; gap:11px;
  }
  body .custom-order-story-visual {
    width:100%; height:auto; min-height:0; max-height:none;
    aspect-ratio:16 / 9; border:0; border-radius:15px; background:transparent;
  }
  body .custom-order-story-visual > img.custom-order-story-illustration,
  body .delivery-options .custom-order-story-visual > img {
    width:100%; height:100%; object-fit:cover !important; object-position:center !important;
    border-radius:inherit; background:transparent;
  }
  body .custom-order-story-copy h3 { font-size:15px; }
  body .custom-order-story-copy p { font-size:12px; line-height:1.28; }
}
@media (max-width:360px) {
  body .custom-order-story-steps > li,body .delivery-options.custom-order-story-steps > li {
    grid-template-columns:112px minmax(0,1fr); gap:8px;
  }
  .shop-has-category-select > .shop-mobile-category { gap:8px; }
}

/* Keep modal footers in normal flow, independent of legacy flex rules. */
body .custom-order-story-contact,
body .delivery-payment-note.custom-order-story-contact {
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  align-items:center; align-content:start; justify-content:normal;
  box-sizing:border-box; width:100%; min-width:0; height:auto; min-height:0;
}
body .custom-order-story-contact > p {
  flex:none; min-width:0; height:auto; min-height:0; margin:0;
  overflow-wrap:anywhere;
}
body .custom-order-story-contact .custom-order-messengers {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch; min-width:0; margin:0; gap:8px;
}
body .custom-order-story-contact .custom-order-messenger {
  box-sizing:border-box; width:100%; min-width:0; min-height:44px;
  white-space:normal; line-height:1.3; text-align:center;
}
body .custom-order-story-contact .custom-order-messenger svg { flex-shrink:0; }
body .delivery-payment-note .delivery-payment-extra {
  box-sizing:border-box; width:auto; min-width:0; max-width:280px;
  height:auto; min-height:44px; white-space:normal; line-height:1.4;
}

@media (max-width:700px) {
  .page-individual .individual-hero > p:not(.eyebrow) {
    box-sizing:border-box; padding:20px 18px;
    border:1px solid rgba(255,255,255,.96); border-radius:24px;
    background:linear-gradient(145deg,rgba(245,251,255,.97),rgba(224,239,253,.95));
    box-shadow:inset 0 1px 0 #fff,0 10px 24px rgba(61,89,170,.1);
  }
  .shop-mobile-category > span {
    color:var(--brand-blue); font:400 clamp(22px,6vw,26px)/1.2 var(--font-display);
    text-shadow:0 2px 0 rgba(255,255,255,.8),0 8px 20px rgba(61,89,170,.12);
  }
  .catalog-page .shop-has-category-select > .catalog-search {
    box-sizing:border-box; justify-self:center; width:min(100%,300px);
    min-width:0; height:42px; min-height:42px; margin:0; padding:8px 12px;
    border-radius:13px; font:16px/1.3 var(--font-body);
  }
  body .custom-order-story-contact,
  body .delivery-payment-note.custom-order-story-contact {
    grid-template-columns:minmax(0,1fr); gap:12px; padding:14px;
    text-align:center;
  }
  body .custom-order-story-contact .custom-order-messengers { width:100%; }
  body .custom-order-story-contact .custom-order-messenger { padding:10px 8px; }
  body .delivery-payment-note .delivery-payment-extra {
    width:100%; max-width:none; padding:10px 12px; font-size:12px;
  }
  .shop-favorites-dialog .shop-dialog-close,
  .shop-favorites-dialog .shop-dialog-close:hover {
    border:0; background:transparent; box-shadow:none;
  }
  .shop-favorites-dialog .shop-dialog-close:focus:not(:focus-visible) { outline:none; }
}

/* v23: original floral colours; readable category states. */
.category-tab.is-active::after,
.category-tab:hover::after,
.category-tab:focus-visible::after {
  opacity: .22 !important;
  filter: brightness(.58) saturate(1.05) !important;
}
.category-tab.is-active,
.category-tab:hover,
.category-tab:focus-visible {
  color: #fff;
  background: linear-gradient(112deg, #1e376b, #315ca5 62%, #286978);
}
.main-image > .gallery-slide.live-product-photo {
  object-fit: contain !important;
  object-position: center !important;
}
.custom-live-example { max-width: 700px; margin: 28px auto; padding: 24px; }
.custom-live-example img { display: block; width: min(100%, 380px); height: auto; margin: 16px auto; border-radius: 20px; }
@media (max-width: 700px) {
  .page-home .category-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .page-home .category-tab,
  .page-home .category-tab:last-child {
    grid-column: auto;
    min-width: 0;
    min-height: 58px;
    padding: 12px 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    transform: none;
  }
  .page-home .category-tab-copy {
    width: 100%;
    min-width: 0;
    padding: 0;
    margin: 0;
    text-align: center;
  }
  .page-home .category-tab-copy strong {
    display: block;
    padding: 0;
    margin: 0;
    font-size: clamp(12px, 3.2vw, 15px);
    line-height: 1.2;
    letter-spacing: 0;
    word-spacing: 0;
    white-space: normal;
    text-align: center;
    text-wrap: balance;
  }
  
}

/* v23: preserve the full portrait in the mobile portfolio collage. */
@media (max-width: 620px) {
  .page-home .portfolio-grid.is-mobile-collage > [data-portfolio-hand-vase],
  .page-home .portfolio-grid.is-mobile-collage > [data-portfolio-vase-neighbour],
  .page-home .portfolio-grid:not(.is-laid-out) > [data-portfolio-hand-vase],
  .page-home .portfolio-grid:not(.is-laid-out) > [data-portfolio-vase-neighbour] {
    aspect-ratio: 3 / 4;
    height: auto;
    align-self: stretch;
  }
  .page-home [data-portfolio-hand-vase] > .portfolio-shot-main {
    object-fit: contain;
    object-position: center;
  }
}
