/* A warm Christmas storefront. Colors, type scale, cards and grid come from owner settings. */
:root { --forest:#23472b; --forest-deep:#23472b; --brass:#a76e2c; --ivory:#faf7ef; --ink:#203b29; --muted:#696e61; --line:#e0ddcf; --font-scale:1; --corner-radius:12px; --desktop-columns:6; --tablet-columns:3; --mobile-columns:2; --product-ratio:1 / 1; --hero-shade:.35; }
html { scroll-padding-top:24px; }
body { font-size:calc(14px * var(--font-scale)); background:var(--ivory); }
.section-wrap { width:94%; max-width:1440px; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--brass); outline-offset:4px; }
.announcement { height:auto; min-height:32px; padding:5px 20px; gap:26px; font-size:calc(11px * var(--font-scale)); letter-spacing:0; text-align:center; background:var(--forest); }
.announcement > span:first-child,.announcement > span:last-child { color:#ddc596; }
.site-header { display:grid; grid-template-columns:1fr auto 1fr; gap:24px; height:auto; min-height:94px; width:94%; max-width:1440px; padding:15px 0; background:var(--ivory); }
.brand { grid-column:2; grid-row:1; justify-content:center; gap:10px; }
.brand-mark { width:33px; height:45px; flex:none; }
.brand strong { font-family:var(--display); font-size:calc(25px * var(--font-scale)); font-weight:700; max-width:290px; white-space:normal; text-align:right; line-height:1.3; }
.brand small { font-family:var(--body); font-size:calc(10px * var(--font-scale)); letter-spacing:0; text-align:right; color:#86704b; margin-top:3px; }
.main-nav { grid-column:1; grid-row:1; font-size:calc(13px * var(--font-scale)); gap:23px; white-space:nowrap; }
.main-nav a,.main-nav button { min-height:44px; display:inline-flex; align-items:center; padding:6px 0; }
.main-nav .active:after { background:var(--forest); width:100%; right:0; bottom:5px; height:1px; }
.header-actions { grid-column:3; grid-row:1; gap:16px; min-width:0; }
.header-search { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:42px; min-width:0; width:215px; border:1px solid #d7cfbe; background:#fffdf7; border-radius:24px; padding:8px 13px; font-size:calc(10px * var(--font-scale)); color:#888174; }
.header-search svg { width:18px; height:18px; flex:none; stroke:var(--ink); stroke-width:1.5; }
.icon-button { min-width:44px; min-height:44px; }
.icon-button svg { stroke-width:1.5; }
.cart-count { background:var(--brass); left:2px; top:1px; width:19px; height:19px; line-height:19px; font-size:11px; }
.button { border-radius:calc(var(--corner-radius) + 16px); min-height:48px; font-size:calc(14px * var(--font-scale)); font-weight:600; padding:9px 26px; gap:22px; }
.button-primary { background:var(--forest); box-shadow:inset 0 0 0 1px #ffffff12; }
.button-primary:hover:not(:disabled),.card-add:hover:not(:disabled) { background:var(--forest); filter:brightness(1.13); }
.button-outline { border-radius:var(--corner-radius); }
.hero { display:flex; align-items:center; min-height:450px; max-width:none; width:100%; margin:0; background:#e9dfcb; isolation:isolate; }
.hero-photo { position:absolute; inset:0; min-height:0; width:100%; height:100%; background:url('/assets/christmas-editorial-hero-2026.jpg') left center / cover no-repeat; }
.hero-photo:after { background:linear-gradient(to left,rgba(250,246,236,calc(.72 + var(--hero-shade) * .28)) 0%,rgba(250,246,236,calc(.5 + var(--hero-shade) * .3)) 27%,rgba(250,246,236,.14) 54%,transparent 70%); }
.hero-copy { padding:48px 4% 44px; width:48%; max-width:750px; background:none; margin-inline-start:0; z-index:1; }
.hero-copy:before { display:none; }
.hero .eyebrow { font-size:calc(16px * var(--font-scale)); margin-bottom:13px; color:#806132; font-weight:500; letter-spacing:0; }
.hero h1 { font-family:var(--display); font-size:clamp(calc(40px * var(--font-scale)),calc(3.6vw * var(--font-scale)),calc(64px * var(--font-scale))); font-weight:700; letter-spacing:0; line-height:1.25; margin:0 0 15px; white-space:pre-line; }
.hero p { font-size:calc(15px * var(--font-scale)); line-height:1.9; color:#475142; max-width:510px; margin:0 0 24px; white-space:pre-line; }
.hero .button { min-height:51px; font-size:calc(16px * var(--font-scale)); padding-inline:31px; }
.hero .button > span[aria-hidden] { font-size:23px; }
.hero-assurances { display:flex; flex-wrap:wrap; align-items:center; gap:17px 24px; margin-top:25px; font-size:calc(11px * var(--font-scale)); color:#34462e; }
.hero-assurances span { display:flex; align-items:center; gap:7px; }
.hero-assurances svg { width:21px; height:21px; stroke:currentColor; stroke-width:1.4; }
.hero[data-position="center"] { justify-content:center; }
.hero[data-position="center"] .hero-copy { width:65%; text-align:center; margin:0; }
.hero[data-position="center"] .hero .eyebrow,.hero[data-position="center"] .hero-assurances { justify-content:center; }
.hero[data-position="center"] .eyebrow { justify-content:center; }
.hero[data-position="center"] p { margin-inline:auto; }
.hero[data-position="center"] .hero-photo:after { background:rgba(250,246,236,calc(.5 + var(--hero-shade) * .5)); }
.preview-notice { font-size:13px; padding:10px 20px; background:#f3dfae; border-color:#ceaf61; color:#5f481c; }
.category-showcase { padding:31px 0 30px; display:flex; align-items:center; gap:32px; }
.category-intro { flex:0 0 132px; }
.category-intro > span { font-size:calc(10px * var(--font-scale)); color:#8d764c; }
.category-intro h2 { font-size:calc(25px * var(--font-scale)); font-weight:700; line-height:1.45; margin-top:4px; }
.category-tiles { flex:1; min-width:0; display:flex; align-items:start; gap:21px; overflow-x:auto; scrollbar-width:thin; scrollbar-color:#c1b69d transparent; padding:6px 3px 12px; }
.category-tile { min-width:112px; flex:1 0 112px; max-width:150px; padding:0; display:flex; align-items:center; flex-direction:column; text-align:center; }
.category-tile-image { display:grid; place-items:center; width:104px; height:104px; background:#eee7d9; border-radius:50%; overflow:hidden; border:1px solid #e7ddc8; transition:transform .2s,border-color .2s; }
.category-tile:hover .category-tile-image { transform:translateY(-3px); border-color:var(--brass); }
.category-tile img { width:100%; height:100%; object-fit:cover; }
.category-tile svg { width:68px; height:68px; stroke:#6b7858; stroke-width:1; }
.category-tile strong { font-size:calc(13px * var(--font-scale)); font-weight:600; margin-top:10px; line-height:1.65; overflow-wrap:anywhere; }
.category-tile small { font-size:calc(10px * var(--font-scale)); color:#7d806e; margin-top:2px; }
.editorial-heading { position:relative; display:flex; align-items:center; justify-content:center; gap:17px; margin-bottom:22px; min-height:36px; }
.editorial-heading h2 { font-family:var(--display); font-size:calc(29px * var(--font-scale)); line-height:1.35; font-weight:700; }
.editorial-heading h2 > span { color:var(--forest); font-size:24px; padding-inline-start:6px; }
.heading-rule { width:36px; height:1px; background:#bf945d; }
.view-all { position:absolute; inset-inline-end:0; font-size:calc(12px * var(--font-scale)); min-height:44px; display:flex; align-items:center; gap:10px; }
.featured-section { padding-bottom:36px; }
.product-grid { grid-template-columns:repeat(var(--desktop-columns),minmax(0,1fr)); gap:24px 18px; }
.product-card { min-width:0; display:flex; flex-direction:column; border-radius:var(--corner-radius); overflow:hidden; }
.product-image-wrap { width:100%; aspect-ratio:var(--product-ratio); background:#eee7dc; border-radius:var(--corner-radius); overflow:hidden; position:relative; }
.product-image-button { width:100%; height:100%; aspect-ratio:auto; background:#eee7dc; border-radius:var(--corner-radius); }
.product-image-button img { object-fit:cover; width:100%; height:100%; }
.product-card:hover .product-image-button img { transform:scale(1.035); }
.unavailable-card { opacity:1; }
.product-meta { flex:1; padding:12px 4px 0; display:flex; flex-direction:column; gap:5px; text-align:center; }
.product-name { text-align:center; font-size:calc(15px * var(--font-scale)); line-height:1.7; font-weight:600; overflow-wrap:anywhere; width:100%; padding:0; }
.product-price { font-family:var(--body); font-size:calc(18px * var(--font-scale)); line-height:1.7; font-weight:700; color:#86551f; white-space:normal; margin:0; }
.product-taxonomy { display:block; font-size:calc(11px * var(--font-scale)); line-height:1.7; color:#6a705f; overflow-wrap:anywhere; }
.product-taxonomy > span:first-child { color:#8a816b; font-size:calc(10px * var(--font-scale)); }
.product-taxonomy bdi { unicode-bidi:isolate; }
.taxonomy-separator { color:#9e8964; padding-inline:2px; }
.product-variant { font-size:calc(11px * var(--font-scale)); line-height:1.7; }
.product-badge { top:9px; right:9px; max-width:calc(100% - 18px); border-radius:5px; padding:4px 8px; font-size:calc(10px * var(--font-scale)); line-height:1.7; background:#fff9eddc; }
.product-badge.out { background:#f6eddfeb; color:#715a40; border:1px solid #d8c5a5; }
.card-add { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; border-radius:calc(var(--corner-radius) * .7); background:var(--forest); color:#fffdf5; min-height:40px; padding:8px 6px; font-size:calc(11px * var(--font-scale)); line-height:1.6; margin-top:auto; transform:translateY(0); }
.card-add svg { width:17px; height:17px; stroke:currentColor; stroke-width:1.5; flex:none; }
.card-add:disabled { color:#7c725e; background:#e9e3d6; opacity:1; }
.card-add:disabled svg { display:block; }
.card-add .unavailable-cart-mark { stroke-width:2; stroke-linecap:round; }
.product-field:last-of-type { margin-bottom:7px; }
.catalog-section { padding-top:22px; padding-bottom:48px; min-height:0; scroll-margin-top:25px; }
.section-heading { margin-bottom:24px; align-items:center; }
.section-heading .eyebrow { font-size:calc(12px * var(--font-scale)); letter-spacing:0; margin-bottom:5px; }
.section-heading h2 { font-size:calc(37px * var(--font-scale)); font-weight:700; line-height:1.4; }
.catalog-count { font-size:calc(12px * var(--font-scale)); white-space:normal; border:1px solid #d8dac9; padding:6px 13px; border-radius:20px; color:#5d6e54; background:#f2f1e6; flex:none; }
.catalog-tools { align-items:flex-end; border:0; background:#f0ece1; border-radius:var(--corner-radius) var(--corner-radius) 0 0; padding:20px 20px 12px; gap:24px; }
.filter-group { flex:1; min-width:0; }
.filter-label,.sort-wrap > label { display:block; font-size:calc(12px * var(--font-scale)); color:#806b44; font-weight:600; margin-bottom:8px; }
.category-filters { display:flex; flex-wrap:wrap; max-width:none; gap:8px; overflow:visible; }
.category-filter { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; border:1px solid #d6d5c7; border-radius:calc(var(--corner-radius) * .65); padding:8px 14px; background:#fdfbf6; font-size:calc(15px * var(--font-scale)); color:var(--forest); white-space:normal; text-align:center; overflow-wrap:anywhere; line-height:1.65; }
.category-filter.active { color:#fffdf6; background:var(--forest); border-color:var(--forest); }
.category-filter.active:after { display:none; }
.category-filter:hover:not(.active),.collection-filter:hover:not(.active) { border-color:#9eab8b; background:#e7eadd; }
.filter-count { border-inline-start:1px solid currentColor; padding-inline-start:7px; opacity:.75; font-size:calc(11px * var(--font-scale)); }
.sort-wrap { flex:0 0 190px; }
.sort-wrap select { min-height:44px; border:1px solid #d0d2c3; border-radius:calc(var(--corner-radius) * .65); background:#fffdf7; padding:9px 12px 9px 28px; font-size:calc(12px * var(--font-scale)); }
.sort-wrap svg { top:auto; bottom:17px; left:10px; }
.catalog-secondary { padding:2px 20px 20px; background:#f0ece1; border-radius:0 0 var(--corner-radius) var(--corner-radius); margin-bottom:26px; align-items:flex-end; gap:20px; }
.collection-filters { display:flex; flex-wrap:wrap; gap:8px; overflow:visible; }
.collection-filter { min-height:42px; border:1px solid #d1c7b3; border-radius:calc(var(--corner-radius) * .65); padding:7px 13px; font-size:calc(14px * var(--font-scale)); color:#786142; background:#fbf7ee; white-space:normal; overflow-wrap:anywhere; }
.collection-filter.active { background:#e3d3b9; border-color:#b59868; color:#543f1f; }
.catalog-search { width:280px; max-width:280px; min-width:210px; min-height:44px; border:1px solid #d0d2c3; border-radius:calc(var(--corner-radius) * .65); padding:8px 12px; background:#fffdf7; }
.catalog-search input { font-size:calc(13px * var(--font-scale)); min-width:0; padding:2px 0; }
.catalog-search svg { width:18px; height:18px; flex:none; }
.catalog-search button { min-height:26px; min-width:26px; font-size:25px; }
.empty-state p,.connection-status { font-size:calc(13px * var(--font-scale)); }
.empty-state { padding:44px 20px; }
.season-stories { display:grid; grid-template-columns:1fr 1fr; gap:22px; padding:10px 0 35px; }
.story-tile { min-height:235px; border-radius:var(--corner-radius); overflow:hidden; position:relative; isolation:isolate; background:#e7d6ba; display:flex; align-items:center; }
.story-photo { position:absolute; inset:0; background:url('/assets/christmas-editorial-story-2026.jpg') center / cover no-repeat; z-index:-2; }
.story-tile:first-child:before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(to left,#f2e7d2f5,#f2e7d2cf 38%,#f2e7d200 88%); }
.story-copy { width:65%; padding:25px 27px; }
.story-ornament { font-size:28px; color:var(--forest); line-height:1; }
.story-copy h2 { font-size:calc(29px * var(--font-scale)); font-weight:700; line-height:1.35; margin:8px 0 10px; white-space:pre-line; }
.story-copy p { font-size:calc(12px * var(--font-scale)); color:#62654f; line-height:1.9; margin-bottom:16px; white-space:pre-line; }
.story-copy .button { min-height:42px; padding:7px 21px; font-size:calc(12px * var(--font-scale)); }
.delivery-story { background:radial-gradient(ellipse at left bottom,#b4c2a982,transparent 70%),#ece9dc; border:1px solid #dfdccb; }
.delivery-story .story-copy { width:78%; }
.story-service-icon { width:33px; height:33px; stroke:#60724b; stroke-width:1.1; }
.story-tree { position:absolute; font:180px/1 var(--display); bottom:8px; left:-4px; color:#b49e6c55; z-index:-1; }
.text-link { min-height:42px; font-size:calc(13px * var(--font-scale)); gap:18px; align-items:center; }
.service-section { padding:10px 0 32px; }
.shopping-notes { padding:10px 0 15px; gap:35px; }
.shopping-notes > div { padding-inline-start:49px; border-left:1px solid var(--line); }
.note-icon { top:0; right:0; font:italic 27px/1.4 Georgia,serif; color:#ad8752; }
.shopping-notes h3 { font:700 calc(25px * var(--font-scale))/1.5 var(--display); margin-bottom:6px; }
.shopping-notes p { font-size:calc(12px * var(--font-scale)); line-height:1.9; max-width:none; }
.site-footer { background:var(--forest); color:#f3efdb; }
.footer-top { display:grid; grid-template-columns:1.5fr 1fr 1fr .8fr; gap:45px; align-items:start; padding:40px 0 35px; }
.footer-brand { justify-content:flex-start; }
.footer-brand strong { color:#fff8df; font-size:calc(26px * var(--font-scale)); }
.footer-brand .brand-mark { color:#ded8b6; }
.footer-brand small { color:#d4d3b8; font-size:calc(10px * var(--font-scale)); }
.footer-top p { font-size:calc(12px * var(--font-scale)); color:#d0d1b8; line-height:1.9; max-width:330px; margin-top:12px; }
.footer-links { display:flex; flex-direction:column; gap:9px; align-items:flex-start; font-size:calc(12px * var(--font-scale)); }
.footer-links h3 { font-size:calc(14px * var(--font-scale)); color:#f7efd6; font-weight:600; margin-bottom:5px; }
.footer-links a,.footer-links button { min-height:32px; display:inline-flex; align-items:center; color:#d0d1b8; }
.footer-links a:hover,.footer-links button:hover { color:white; }
.footer-links > span { color:#d0d1b8; }
.footer-social { display:flex; gap:14px; flex-wrap:wrap; margin-top:17px; font-size:calc(11px * var(--font-scale)); color:#eee5c9; }
.footer-social a { min-height:32px; display:inline-flex; align-items:center; gap:5px; }
.footer-signoff { text-align:center; align-self:center; }
.footer-signoff > span { font-size:40px; line-height:1; color:#c6ae75; }
.footer-signoff p { font:500 calc(25px * var(--font-scale))/1.6 var(--display); color:#eee5c9; }
.footer-bottom { border-color:#ffffff22; padding:16px 0; font-size:calc(10px * var(--font-scale)); color:#d0d1b8; align-items:center; }
.admin-entry { min-height:32px; display:inline-flex; align-items:center; padding:4px 0; text-decoration:underline; text-underline-offset:4px; }
/* Purchase and tracking dialogs retain their full existing behavior. */
dialog { border-radius:var(--corner-radius); }
.drawer-dialog { border-radius:0; }
.drawer-header h2 { font-size:calc(30px * var(--font-scale)); }
.drawer-header .eyebrow { font-size:calc(11px * var(--font-scale)); }
.product-detail-copy .product-field { text-align:right; }
.product-detail-copy h2 { font-size:calc(33px * var(--font-scale)); margin:0 0 8px; }
.product-detail-copy .detail-price { font-size:calc(22px * var(--font-scale)); color:#86551f; margin:3px 0 9px; font-weight:600; }
.product-detail-copy .product-taxonomy { font-size:calc(14px * var(--font-scale)); margin-bottom:7px; }
.product-detail-copy .product-taxonomy > span:first-child { font-size:calc(12px * var(--font-scale)); }
.product-description,.detail-attributes,.availability { font-size:calc(13px * var(--font-scale)); line-height:1.9; }
.product-description { margin-top:12px; }
.variant-option { min-height:44px; font-size:calc(13px * var(--font-scale)); border-radius:5px; }
.detail-purchase { flex-wrap:wrap; }
.detail-purchase .button { font-size:calc(14px * var(--font-scale)); }
.quantity-picker { border-radius:6px; overflow:hidden; }
.quantity-picker button { min-width:36px; }
.cart-line h3 { font-size:calc(14px * var(--font-scale)); }
.cart-line-variant,.cart-footer>p,.cart-stock-note,.tracking-note { font-size:calc(12px * var(--font-scale)); }
.cart-line-controls strong { font-size:14px; }
.field,.payment-option strong,.form-section-title,.info-paragraph,.delivery-info-row,.tracking-empty p { font-size:calc(14px * var(--font-scale)); }
.field input,.field textarea,.field select { font-size:16px; border-radius:5px; }
.field input::placeholder,.field textarea::placeholder { font-size:12px; }
.payment-option small,.checkout-note,.summary-line,.checkout-summary .total-line,.order-status-bar small,.quote-approval p,.cancel-order-confirmation p { font-size:calc(12px * var(--font-scale)); }
.payment-option { border-radius:8px; }
.summary-line small { font-size:11px; }
.checkout-summary { border-radius:8px; }
.tracking-actions .button,.button-cancel,.quote-approval .button { font-size:calc(13px * var(--font-scale)); }
.toast { font-size:calc(13px * var(--font-scale)); border-radius:8px; }
@media(max-width:1250px) {
  .site-header { grid-template-columns:1fr auto; gap:10px 26px; }
  .brand { grid-column:1; justify-content:flex-start; }
  .main-nav { grid-column:1; grid-row:2; gap:25px; }
  .header-actions { grid-column:2; grid-row:1 / span 2; }
  .site-header .brand strong { max-width:none; font-size:calc(27px * var(--font-scale)); }
  .main-nav a,.main-nav button { min-height:32px; }
  .hero { min-height:425px; }
  .hero-copy { width:50%; }
  .hero h1 { font-size:calc(50px * var(--font-scale)); }
  .product-grid { gap:24px 14px; }
  .product-name { font-size:calc(14px * var(--font-scale)); }
  .product-price { font-size:calc(16px * var(--font-scale)); }
  .card-add { font-size:calc(10px * var(--font-scale)); gap:5px; }
  .category-intro { display:none; }
  .category-tiles { justify-content:flex-start; gap:17px; }
  .footer-top { gap:25px; }
}
@media(max-width:950px) {
  .hero { min-height:405px; }
  .hero-copy { width:53%; padding:36px 4%; }
  .hero h1 { font-size:calc(44px * var(--font-scale)); }
  .hero p { font-size:calc(13px * var(--font-scale)); }
  .hero .eyebrow { font-size:calc(13px * var(--font-scale)); }
  .hero-assurances { gap:10px; font-size:calc(10px * var(--font-scale)); }
  .product-grid { grid-template-columns:repeat(var(--tablet-columns),minmax(0,1fr)); }
  .featured-section .product-grid { grid-template-columns:repeat(var(--tablet-columns),minmax(0,1fr)); }
  .product-name { font-size:calc(16px * var(--font-scale)); }
  .product-price { font-size:calc(18px * var(--font-scale)); }
  .card-add { font-size:calc(12px * var(--font-scale)); min-height:43px; }
  .catalog-tools { flex-wrap:wrap; gap:16px; }
  .catalog-tools > .filter-group { flex-basis:100%; }
  .sort-wrap { margin-inline-start:auto; }
  .catalog-secondary { flex-wrap:wrap; align-items:flex-start; }
  .catalog-search { max-width:none; width:100%; }
  .story-copy { width:79%; padding:23px; }
  .story-copy h2 { font-size:calc(26px * var(--font-scale)); }
  .delivery-story .story-copy { width:95%; }
  .shopping-notes { gap:22px; }
  .shopping-notes > div { padding-inline-start:36px; }
  .shopping-notes h3 { font-size:calc(22px * var(--font-scale)); }
  .footer-top { grid-template-columns:1.4fr 1fr 1fr; }
  .footer-signoff { display:none; }
}
@media(max-width:600px) {
  .section-wrap { width:92%; }
  .announcement { font-size:calc(10px * var(--font-scale)); min-height:30px; padding:5px 12px; gap:8px; line-height:1.8; }
  .announcement > span:first-child,.announcement > span:last-child { display:none; }
  .site-header { display:flex; width:92%; min-height:85px; padding:14px 0; gap:12px; }
  .brand { justify-content:flex-start; flex:1; min-width:0; gap:8px; }
  .brand-mark { width:27px; height:39px; }
  .site-header .brand strong { font-size:calc(23px * var(--font-scale)); max-width:230px; }
  .brand small { font-size:calc(9px * var(--font-scale)); }
  .main-nav { display:none; }
  .header-actions { gap:2px; }
  .header-search { padding:11px; border:0; background:none; width:40px; min-height:44px; }
  .header-search span { display:none; }
  .header-search svg { width:21px; height:21px; }
  .icon-button { width:40px; min-width:40px; }
  .mobile-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 4%; background:#eeeade; border-block:1px solid #e1ddce; }
  .mobile-nav a,.mobile-nav button { font-size:calc(11px * var(--font-scale)); min-height:49px; gap:7px; }
  .hero { display:block; padding-top:255px; min-height:0; background:#f1e8d8; }
  .hero-photo { height:300px; min-height:0; background-position:24% center; }
  .hero-photo:after { background:linear-gradient(to top,#f1e8d8 0%,#f1e8d800 36%); }
  .hero-copy { width:100%; max-width:none; padding:8px 6% 29px; margin:0; background:#f1e8d8; }
  .hero-copy:before { display:none; }
  .hero .eyebrow { font-size:calc(13px * var(--font-scale)); margin-bottom:10px; }
  .hero h1 { font-size:calc(42px * var(--font-scale)); line-height:1.2; margin-bottom:13px; }
  .hero p { font-size:calc(14px * var(--font-scale)); max-width:100%; line-height:1.9; margin-bottom:20px; }
  .hero .button { min-height:50px; font-size:calc(16px * var(--font-scale)); padding:10px 25px; gap:25px; width:auto; }
  .hero-assurances { font-size:calc(10px * var(--font-scale)); gap:14px; margin-top:19px; }
  .hero-assurances svg { width:19px; height:19px; }
  .hero[data-position="center"] .hero-copy { width:100%; }
  .hero[data-position="center"] .hero-photo:after { background:linear-gradient(to top,#f1e8d8 0%,#f1e8d800 36%); }
  .category-showcase { padding:24px 0 19px; }
  .category-tiles { gap:15px; padding:5px 2px 12px; }
  .category-tile { min-width:91px; flex-basis:91px; max-width:108px; }
  .category-tile-image { width:85px; height:85px; }
  .category-tile svg { width:55px; height:55px; }
  .category-tile strong { font-size:calc(12px * var(--font-scale)); margin-top:8px; }
  .category-tile small { font-size:calc(10px * var(--font-scale)); }
  .editorial-heading { justify-content:flex-start; gap:9px; margin-bottom:18px; }
  .editorial-heading h2 { font-size:calc(25px * var(--font-scale)); }
  .editorial-heading h2 > span { display:none; }
  .heading-rule { width:20px; }
  .editorial-heading .heading-rule:nth-of-type(2) { display:none; }
  .view-all { font-size:calc(11px * var(--font-scale)); gap:5px; }
  .featured-section { padding-bottom:31px; }
  .product-grid,.featured-section .product-grid { grid-template-columns:repeat(var(--mobile-columns),minmax(0,1fr)); gap:24px 13px; }
  .product-meta { padding:10px 1px 0; gap:4px; }
  .product-name { font-size:calc(14px * var(--font-scale)); line-height:1.8; }
  .product-price { font-size:calc(17px * var(--font-scale)); }
  .product-taxonomy { font-size:calc(11px * var(--font-scale)); }
  .product-taxonomy > span:first-child { font-size:calc(10px * var(--font-scale)); }
  .card-add { min-height:42px; font-size:calc(11px * var(--font-scale)); gap:7px; }
  .card-add svg { width:15px; height:15px; }
  .product-badge { top:7px; right:7px; font-size:calc(9px * var(--font-scale)); max-width:calc(100% - 14px); padding:3px 6px; }
  .catalog-section { padding-top:16px; padding-bottom:33px; }
  .section-heading { flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:20px; }
  .section-heading h2 { font-size:calc(33px * var(--font-scale)); max-width:none; }
  .section-heading .eyebrow { font-size:calc(11px * var(--font-scale)); }
  .catalog-count { font-size:calc(11px * var(--font-scale)); padding:4px 12px; }
  .catalog-tools { padding:16px 12px 11px; gap:14px; }
  .category-filter { min-height:44px; font-size:calc(14px * var(--font-scale)); padding:8px 11px; }
  .filter-count { font-size:calc(10px * var(--font-scale)); padding-inline-start:6px; }
  .category-filters { gap:7px; }
  .sort-wrap { flex-basis:100%; min-width:0; }
  .sort-wrap select { font-size:calc(13px * var(--font-scale)); }
  .catalog-secondary { padding:0 12px 16px; gap:14px; margin-bottom:23px; }
  .collection-group { order:0; width:100%; flex-basis:100%; }
  .collection-filter { min-height:43px; font-size:calc(13px * var(--font-scale)); padding:7px 11px; }
  .catalog-search { min-width:0; width:100%; order:1; padding:8px 10px; min-height:46px; }
  .catalog-search input { font-size:16px; }
  .catalog-search input::placeholder { font-size:12px; }
  .season-stories { grid-template-columns:1fr; gap:16px; padding:2px 0 28px; }
  .story-tile { min-height:215px; }
  .story-copy { width:72%; padding:23px; }
  .story-copy h2 { font-size:calc(28px * var(--font-scale)); }
  .story-copy p { font-size:calc(12px * var(--font-scale)); }
  .story-copy .button { font-size:calc(12px * var(--font-scale)); }
  .delivery-story .story-copy { width:88%; }
  .delivery-story { min-height:225px; }
  .service-section { padding:8px 0 25px; }
  .service-section .editorial-heading { justify-content:center; }
  .shopping-notes { grid-template-columns:1fr; gap:0; padding:0; }
  .shopping-notes > div { border-left:0; border-bottom:1px solid var(--line); padding:17px 44px 17px 0; }
  .shopping-notes > div:last-child { border-bottom:0; }
  .shopping-notes h3 { font-size:calc(24px * var(--font-scale)); }
  .shopping-notes p { font-size:calc(12px * var(--font-scale)); }
  .note-icon { top:19px; }
  .footer-top { grid-template-columns:1fr 1fr; gap:25px 21px; padding:31px 0 25px; }
  .footer-about { grid-column:1 / -1; }
  .footer-brand strong { max-width:290px; font-size:calc(25px * var(--font-scale)); }
  .footer-brand small { font-size:calc(10px * var(--font-scale)); }
  .footer-top p { font-size:calc(12px * var(--font-scale)); margin-top:10px; }
  .footer-links { order:0; width:auto; padding:0; gap:9px; font-size:calc(12px * var(--font-scale)); }
  .footer-links h3 { font-size:calc(13px * var(--font-scale)); }
  .footer-social { margin-top:13px; }
  .footer-bottom { font-size:calc(9px * var(--font-scale)); gap:10px; padding:12px 0; flex-wrap:wrap; }
  .product-detail-copy { padding:22px; }
  .product-detail-copy h2 { font-size:calc(30px * var(--font-scale)); }
  .product-detail-image { height:290px; min-height:290px; }
  .product-detail-image img { object-fit:contain; }
  .product-dialog { max-height:92dvh; }
  .checkout-dialog { border-radius:0; }
  .checkout-actions { flex-wrap:wrap; gap:12px; padding:16px 22px; }
  .checkout-actions .button { width:100%; font-size:calc(14px * var(--font-scale)); }
  .checkout-actions .text-link { font-size:calc(13px * var(--font-scale)); }
  .toast { font-size:calc(12px * var(--font-scale)); bottom:15px; }
}
@media(max-width:360px) {
  .site-header .brand strong { font-size:calc(20px * var(--font-scale)); }
  .brand-mark { width:23px; }
  .header-search { width:34px; padding:8px; }
  .icon-button { min-width:35px; width:35px; }
  .hero h1 { font-size:calc(38px * var(--font-scale)); }
  .hero-assurances { gap:8px; font-size:9px; }
  .editorial-heading h2 { font-size:calc(23px * var(--font-scale)); }
  .product-grid,.featured-section .product-grid { gap:20px 10px; }
  .product-name { font-size:calc(13px * var(--font-scale)); }
  .product-price { font-size:calc(15px * var(--font-scale)); }
  .card-add { font-size:calc(10px * var(--font-scale)); }
  .story-copy { width:84%; padding:20px; }
}
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important; transition:none!important; } html { scroll-behavior:auto; } }

/* Shared CMS controls also apply to repeated editorial blocks and live collection grids. */
:root { --image-radius:12px; }
html[data-font-family="naskh"] { --body:'Noto Naskh Arabic',Georgia,serif; --display:'Noto Naskh Arabic',Georgia,serif; }
html[data-font-family="sans"] { --body:'Noto Sans Arabic',Tahoma,Arial,sans-serif; --display:'Noto Sans Arabic',Tahoma,Arial,sans-serif; }
[data-copy],.custom-copy h2,.custom-body { white-space:pre-line; overflow-wrap:anywhere; }
.product-image-wrap,.product-detail-image,.story-tile,.custom-image { border-radius:var(--image-radius); overflow:hidden; }
.product-card,.product-meta,.product-name,.product-taxonomy,.product-price { min-width:0; overflow-wrap:anywhere; }
.custom-section { padding-block:22px 38px; }
.custom-editorial { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); direction:ltr; align-items:center; gap:clamp(24px,5vw,80px); }
.custom-image { aspect-ratio:6/5; background:#eee7db; min-width:0; }
.custom-image img { width:100%; height:100%; object-fit:cover; }
.custom-image-button { display:block; padding:0; width:100%; height:100%; }
.custom-product .custom-image img { object-fit:contain; }
.custom-copy { direction:rtl; text-align:right; padding:30px 0; min-width:0; }
.custom-copy h2 { font:700 clamp(28px,3.2vw,46px)/1.4 var(--display); margin-bottom:16px; }
.custom-copy .eyebrow { font-size:calc(13px * var(--font-scale)); color:var(--brass); margin-bottom:12px; }
.custom-body { font-size:calc(15px * var(--font-scale)); line-height:2; color:var(--muted); margin:0 0 20px; }
.custom-action { margin-top:14px; max-width:100%; white-space:normal; }
.custom-product-price { font:700 calc(28px * var(--font-scale))/1.7 var(--body); color:var(--brass); }
.custom-product-name { font-size:calc(17px * var(--font-scale)); font-weight:600; margin-bottom:14px; }
.custom-collection-intro { margin-bottom:26px; }
.custom-copy .availability { font-size:calc(13px * var(--font-scale)); margin-block:8px; }
.custom-section[data-image-side="right"] .custom-image { grid-column:2; grid-row:1; }
.custom-section[data-image-side="right"] .custom-copy { grid-column:1; grid-row:1; }
.custom-editorial.no-image { display:block; max-width:900px; margin-inline:auto; }
.custom-editorial.no-image .custom-copy { padding:35px; background:#eee7d966; border:1px solid var(--line); border-radius:var(--corner-radius); }
.custom-section-heading { position:relative; margin-bottom:24px; }
.custom-section-heading h2 { font:700 calc(32px * var(--font-scale))/1.5 var(--display); }
.custom-section-heading .eyebrow { color:var(--brass); font-size:calc(12px * var(--font-scale)); }
.custom-section-heading .custom-body { max-width:850px; margin-top:8px; }
.footer-social .contact-link { display:inline-flex; align-items:center; gap:7px; min-height:44px; }
.contact-link svg { width:24px; height:24px; flex:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.contact-whatsapp svg,.contact-facebook svg,.contact-messenger svg { stroke:none; }
.floating-contact { position:fixed; z-index:25; right:18px; left:auto; bottom:max(20px,env(safe-area-inset-bottom)); display:flex; flex-direction:column; align-items:center; gap:9px; }
.floating-contact[data-position="left"] { left:18px; right:auto; }
.floating-contact-links { display:flex; flex-direction:column; gap:9px; }
.floating-contact .contact-link { display:grid; place-items:center; width:48px; height:48px; padding:10px; border-radius:50%; background:var(--forest); color:#fffdf7; box-shadow:0 3px 14px #16301e30; border:1px solid #ffffff50; }
.floating-contact .contact-link span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.floating-contact .contact-whatsapp { background:#206a3c; }
body.modal-open .floating-contact { visibility:hidden; pointer-events:none; }
@media(max-width:700px) {
  .custom-section { padding-block:12px 26px; }
  .custom-editorial { grid-template-columns:minmax(0,1fr); gap:0; }
  .custom-section[data-image-side] .custom-image { grid-row:1; grid-column:1; aspect-ratio:5/4; }
  .custom-section[data-image-side] .custom-copy { grid-row:2; grid-column:1; padding:21px 5px 6px; }
  .custom-copy h2 { font-size:calc(30px * var(--font-scale)); }
  .custom-body { font-size:calc(14px * var(--font-scale)); }
  .custom-editorial.no-image .custom-copy { padding:24px; }
  .custom-section-heading h2 { font-size:calc(27px * var(--font-scale)); }
  .floating-contact { right:12px; bottom:max(14px,env(safe-area-inset-bottom)); align-items:flex-end; }
  .floating-contact[data-position="left"] { left:12px; right:auto; align-items:flex-start; }
  .floating-contact .contact-link { width:44px; height:44px; padding:9px; }
}
@media(max-width:600px) {
  html[data-mobile-columns="3"] .product-grid,html[data-mobile-columns="4"] .product-grid { gap:20px 8px; grid-template-columns:repeat(var(--mobile-columns),minmax(0,1fr)); }
  html[data-mobile-columns="3"] .product-meta,html[data-mobile-columns="4"] .product-meta { padding:8px 0 0; gap:5px; }
  html[data-mobile-columns="3"] .product-name,html[data-mobile-columns="4"] .product-name { font-size:calc(12px * var(--font-scale)); line-height:1.65; white-space:normal; }
  html[data-mobile-columns="3"] .product-price,html[data-mobile-columns="4"] .product-price { font-size:calc(13px * var(--font-scale)); line-height:1.65; }
  html[data-mobile-columns="3"] .product-taxonomy,html[data-mobile-columns="4"] .product-taxonomy { font-size:calc(10px * var(--font-scale)); line-height:1.7; }
  html[data-mobile-columns="3"] .product-taxonomy bdi,html[data-mobile-columns="4"] .product-taxonomy bdi { overflow-wrap:anywhere; }
  html[data-mobile-columns="3"] .product-badge,html[data-mobile-columns="4"] .product-badge { position:static; display:block; font-size:10px; line-height:1.5; max-width:100%; padding:4px; border-radius:0; }
  html[data-mobile-columns="3"] .card-add,html[data-mobile-columns="4"] .card-add { min-height:44px; min-width:44px; width:100%; padding:8px; }
  html[data-mobile-columns="3"] .card-add-label,html[data-mobile-columns="4"] .card-add-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
  html[data-mobile-columns="3"] .card-add svg,html[data-mobile-columns="4"] .card-add svg { width:21px; height:21px; }
}

/* Payment and customer updates stay separate from the editable merchandising layout. */
.payment-options .payment-option { margin-block:10px; align-items:flex-start; }
.payment-option[hidden],.notification-consent[hidden] { display:none!important; }
.payment-option input,.notification-consent input { flex:0 0 auto; width:20px; height:20px; margin-top:5px; accent-color:var(--forest); }
.payment-option span:not(.payment-icon) { min-width:0; }
.payment-option small { display:block; line-height:1.8; margin-top:5px; }
.payment-test-notice { color:#8a571a; font-weight:700; }
.notification-consent { display:flex; align-items:flex-start; gap:12px; padding:15px; border:1px solid var(--line,#ded9cd); border-radius:12px; margin-block:18px; cursor:pointer; }
.notification-consent span { min-width:0; }
.notification-consent strong,.notification-consent small { display:block; }
.notification-consent small { margin-top:5px; line-height:1.9; color:var(--muted,#677469); font-size:13px; }
.order-payment-panel { margin-block:22px; padding:20px; border:1px solid #c8d2bd; border-radius:14px; background:#f1f4eb; }
.payment-panel-heading { display:flex; align-items:start; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.payment-panel-heading h4 { margin:0; font-size:18px; }
.payment-status-label { font-size:13px; padding:5px 9px; background:#fff9; border-radius:6px; }
.order-payment-panel p { font-size:14px; line-height:1.9; margin:12px 0; }
.order-payment-panel .button { margin-top:10px; white-space:normal; text-align:center; line-height:1.7; min-height:46px; }
.order-payment-panel small { display:block; line-height:1.8; margin-top:8px; color:var(--muted,#677469); }
.order-updates { margin-block:20px; }
.order-updates h4 { margin-bottom:6px; }
.order-updates-note { font-size:13px; line-height:1.9; color:var(--muted,#677469); }
.order-updates ol { padding-inline-start:22px; max-height:260px; overflow:auto; }
.order-updates li { padding:9px 3px; border-bottom:1px solid var(--line,#ded9cd); }
.order-updates li strong { font-size:14px; }
.order-updates li p { font-size:13px; line-height:1.8; margin:5px 0; }
.order-updates time { font-size:12px; color:var(--muted,#677469); }
@media(max-width:480px) { .order-payment-panel { padding:14px; } .notification-consent { padding:12px; gap:9px; } }

/* Card spacing is independent of column count, font size and field visibility. */
html[data-card-spacing] {
  --card-image-gap:6px;
  --card-field-gap:2px;
  --card-action-gap:4px;
  --card-row-gap:18px;
  --card-name-leading:1.45;
  --card-price-leading:1.4;
  --card-detail-leading:1.45;
}
html[data-card-spacing="balanced"] {
  --card-image-gap:10px;
  --card-field-gap:5px;
  --card-action-gap:6px;
  --card-row-gap:24px;
  --card-name-leading:1.6;
  --card-price-leading:1.6;
  --card-detail-leading:1.6;
}
html[data-card-spacing="relaxed"] {
  --card-image-gap:14px;
  --card-field-gap:8px;
  --card-action-gap:8px;
  --card-row-gap:30px;
  --card-name-leading:1.7;
  --card-price-leading:1.7;
  --card-detail-leading:1.7;
}
html[data-card-spacing] .product-grid { align-items:start; row-gap:var(--card-row-gap); }
html[data-card-spacing] .product-card .product-meta { flex:0 0 auto; padding-top:var(--card-image-gap); gap:var(--card-field-gap); }
html[data-card-spacing] .product-card .product-field { margin-block:0; }
html[data-card-spacing] .product-card .product-name { line-height:var(--card-name-leading); }
html[data-card-spacing] .product-card .product-price { line-height:var(--card-price-leading); }
html[data-card-spacing] .product-card .product-taxonomy,
html[data-card-spacing] .product-card .product-variant { line-height:var(--card-detail-leading); }
html[data-card-spacing] .product-card .review-summary { margin-block:0; }
html[data-card-spacing] .product-card .card-add { flex:none; min-height:44px; margin-top:var(--card-action-gap); margin-bottom:0; }
