/* Quiet movement and tactile details in the existing ivory / brown identity. */
html { scroll-padding-top: calc(var(--masthead-height, 140px) + 18px); }
/* Quiet, useful controls in the boutique's existing cream / chocolate palette. */
.filter-facets { display:grid; gap:20px; margin:24px 0; }
.facet-field { display:grid; gap:9px; font-size:11px; letter-spacing:.04em; }
.facet-field select { width:100%; min-width:0; max-width:100%; min-height:44px; padding:10px 28px 10px 10px; border:1px solid var(--line,#ded9d1); background:transparent; color:inherit; font:inherit; }
.active-facets { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-4px 0 24px; }
.active-facets a { display:inline-flex; align-items:center; gap:12px; min-height:38px; padding:8px 12px; font-size:11px; border:1px solid #d7cbbd; }
.active-facets a span { font-size:17px; }
.active-facets .clear-facets { border:0; text-decoration:underline; text-underline-offset:4px; }
.gallery-controls { display:none; }
.product-measurements { margin:22px 0; }
.product-measurements .fit-product { padding-top:16px; }
.mobile-purchase { display:none; }
.campaign-intro { display:grid; grid-template-columns:1fr 1fr; background:#eee8df; min-height:430px; }
.campaign-intro > div { align-self:center; padding:55px 12%; }
.campaign-intro h1 { font:clamp(38px,4.5vw,65px)/1.1 'Italiana',Georgia,serif; margin:22px 0; }
.campaign-intro p { max-width:420px; font-size:13px; line-height:1.8; margin-bottom:28px; }
.campaign-image { display:block; height:500px; overflow:hidden; }
.campaign-image img { width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.campaign-pieces .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:1120px; margin:auto; }
@media(max-width:700px) {
  .campaign-intro { grid-template-columns:1fr; }
  .campaign-intro > div { padding:32px 7%; }
  .campaign-intro h1 { margin:15px 0; }
  .campaign-image { height:330px; }
  .campaign-pieces .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .facet-field select { font-size:16px; }
  .filter-facets { grid-template-columns:1fr; }
  .gallery-controls { display:flex; gap:7px; margin:-12px 0 24px; flex-wrap:wrap; }
  .gallery-controls button { display:grid; place-items:center; width:36px; height:36px; border:1px solid #d7cbbd; background:transparent; color:inherit; font-size:11px; }
  .gallery-controls button[aria-pressed="true"] { background:#342f29; color:#fffaf3; border-color:#342f29; }
  .mobile-purchase:not([hidden]) { display:flex; position:fixed; z-index:36; left:0; right:0; bottom:0; align-items:center; gap:12px; padding:12px 5% calc(12px + env(safe-area-inset-bottom,0px)); background:#faf8f3; border-top:1px solid #d7cbbd; box-shadow:0 -5px 25px #2927220a; }
  .mobile-purchase > div { flex:1; display:grid; gap:4px; min-width:0; }
  .mobile-purchase strong { font-size:12px; letter-spacing:.08em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mobile-purchase span { font-size:11px; }
  .mobile-purchase .button { flex:0 1 auto; font-size:11px; max-width:64%; padding:12px 16px; }
  body:has(dialog[open]) .mobile-purchase { visibility:hidden; }
  .product-page { padding-bottom:110px; }
}
.hero-visual { grid-template-columns: minmax(0, 1fr); }
.hero-visual > a { position: relative; }
.hero-visual > a > img { position: absolute; inset: 0; }
main:focus { outline: none; }
[data-motion-frame] { overflow: hidden; }
[data-motion-frame] img[data-motion-image] {
  transform: translate3d(0, var(--image-drift, 0px), 0) scale(1.1);
  transition: none;
}
.editorial-image img { object-position: center 18%; }
.section-heading h2, .editorial h2, .brand-note h2 { text-wrap: balance; }
.hero-copy p, .editorial-copy p, .brand-note p { text-wrap: pretty; }
.text-link svg, .button svg, .tile-copy svg {
  transition: transform 240ms cubic-bezier(.2,.65,.3,1);
}
.desktop-nav a, .season-nav a {
  text-underline-offset: 6px;
  transition: border-color 200ms, color 200ms;
}
.button { transition: background 220ms, border-color 220ms; }
.button.outline:hover { background: #eee8df; border-color: #8a7664; }
.search-form:focus-within { border-bottom-color: var(--accent); }
.search-form input:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.search-form button { min-width: 44px; min-height: 44px; }
summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.load-more .button { min-width: 190px; }
.product-meta h3 { line-height: 1.6; }
.product-price { font-variant-numeric: tabular-nums; }
.footer-column a:hover, .footer-column button:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  .text-link:hover svg, .button:hover svg, .season-tile:hover .tile-copy svg { transform: translateX(4px); }
  .filters { top: calc(var(--masthead-height, 125px) + 20px); }
  .product-info { top: calc(var(--masthead-height, 125px) + 24px); }
}
@media (max-width: 700px) {
  .icon-button { min-width: 44px; min-height: 44px; }
  .header-actions, .header-left { gap: 0; }
  .search-form input { font-size: 16px; }
  .search-form input::placeholder { font-size: 13px; }
  .season-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 14px; width: min(420px, 100%); }
  .shop-heading-party .season-nav { gap: 4px 14px; padding: 8px 0; }
  .season-nav a { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
  .mobile-filter-button { min-height: 44px; }
  .shop-toolbar select { min-height: 44px; }
  .shop-toolbar { padding-top: 7px; padding-bottom: 7px; }
  .size-option { min-height: 44px; }
  .save-product::after { content: ''; position: absolute; inset: -7px; }
  .product-actions .save-product::after { inset: 0; }
  .color-dot { position: relative; }
  .color-dot::after { content: ''; position: absolute; inset: -7px; }
}
@media (hover: none) {
  .product-card:hover .second { opacity: 0; }
  .product-card:hover .product-image img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-motion-frame] img[data-motion-image],
  .hero-visual a:hover img, .season-tile:hover img, .product-card:hover .product-image img,
  .text-link:hover svg, .button:hover svg, .season-tile:hover .tile-copy svg { transform: none; }
}
.cart-item-stock { margin: 8px 0; padding: 8px 10px; border-left: 2px solid var(--accent); background: var(--cream); font-size: 11px; line-height: 1.5; }

/* Keep the full photo set when the tablet layout becomes a single column. */
@media (max-width: 1050px) {
  .gallery button:nth-child(n+4) { display: block; }
}

/* Match the existing mobile navigation targets without changing their styling. */
.quantity-controls button,
.gallery-controls button {
  min-width: 44px;
  min-height: 44px;
}

/* Product facts use only the selected reference's published catalogue fields. */
.product-back-link { display: inline-flex; align-items: center; min-height: 44px; margin: 0 0 8px; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.product-back-link::before { content: '←'; margin-right: 10px; }
.product-facts { margin: 22px 0 26px; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.product-facts dl { margin: 17px 0 12px; }
.product-facts dl > div { display: grid; grid-template-columns: 95px minmax(0,1fr); gap: 16px; padding: 5px 0; font-size: 12px; }
.product-facts dt { color: var(--muted); }
.product-facts dd { margin: 0; }
.product-selection-link { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 44px; margin-top: 10px; font-size: 12px; }
.product-selection-link svg { flex: 0 0 18px; }
.measurement-reference { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.measurement-reference h3 { font: 24px/1.2 var(--serif); }
.measurement-reference .fit-product { overflow-x: auto; }
.measurement-reference .fit-comparison { width: 100%; }
#info.photo-dialog { width: min(960px,94vw); max-width: 960px; padding: 22px; }
#info.photo-dialog .dialog-heading { margin-bottom: 14px; }
#info.photo-dialog .dialog-heading h2 { font-size: 25px; }
#info.photo-dialog .photo-zoom { display: grid; place-items: center; min-height: 200px; }
#info.photo-dialog img.zoomed { width: 100%; height: 63dvh; max-height: 63dvh; object-fit: contain; }
.photo-zoom-toolbar { display: flex; align-items: center; justify-content: center; gap: 28px; margin-top: 14px; }
.photo-zoom-toolbar button { min-width: 48px; min-height: 44px; border: 1px solid var(--line); font-size: 22px; }
.photo-zoom-toolbar button:disabled { opacity: .35; cursor: default; }
.photo-zoom-toolbar [role='status'] { min-width: 70px; text-align: center; font-size: 12px; font-variant-numeric: tabular-nums; }
@media (max-width: 700px) {
  .product-facts dl > div { grid-template-columns: 82px minmax(0,1fr); gap: 12px; }
  #info.photo-dialog { padding: 16px; }
  #info.photo-dialog .dialog-heading h2 { font-size: 21px; }
  #info.photo-dialog img.zoomed { height: 59dvh; max-height: 59dvh; }
}
