@font-face {
  font-family: "Sun Bengali";
  src: url('./assets/noto-sans-bengali.woff2') format('woff2');
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0-1CF7,U+200C-200D,U+20B9,U+25CC;
}
:root {
  --ink: #14232d;
  --ink-deep: #0b1620;
  --navy: #13232e;
  --amber: #e8b66f;
  --brand-gold: #ffbd2e;
  --cream: #f6f4ee;
  --paper: #fffefa;
  --muted: #6a747a;
  --line: #e1e2dc;
  --sans: "Sun Bengali", system-ui, -apple-system, "Segoe UI", sans-serif;
  --serif: var(--sans);
  --gutter: max(32px, calc((100% - 1280px) / 2));
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--cream); color: var(--ink); font: 15px/1.7 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a, input, select, summary { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
img { max-width: 100%; }
button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid #b77a2c; outline-offset: 4px; }
.arrow-icon { width: 14px; height: 14px; flex: none; }
.skip-link { position: absolute; z-index: 70; left: 12px; top: -80px; padding: 12px 18px; background: var(--paper); color: var(--ink); }
.skip-link:focus { top: 12px; }
.store-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 7px var(--gutter); background: #070f15; color: #a7b0b4; font-size: 10px; border-bottom: 1px solid #ffffff09; }
.store-bar > span { display: flex; align-items: center; gap: 9px; }
.store-bar-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--brand-gold); }
.store-bar > a { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #c8cbc5; }
.store-bar .arrow-icon { width: 11px; height: 11px; color: var(--amber); }
.site-header { position: sticky; top: 0; z-index: 30; padding-top: env(safe-area-inset-top, 0px); height: calc(87px + env(safe-area-inset-top, 0px)); background: #0b1620f7; color: #f6f4ee; border-bottom: 1px solid #ffffff12; backdrop-filter: blur(18px); }
.nav-wrap { max-width: 1280px; width: calc(100% - 64px); height: 100%; display: flex; align-items: center; gap: 26px; margin: auto; }
.brand, .footer-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand img, .footer-brand img { flex: none; border-radius: 0; object-fit: contain; }
.brand-name, .footer-brand > span { display: block; font-weight: 500; line-height: 1.15; }
.brand-sun { display: block; font-family: Arial, Helvetica, sans-serif; font-size: 31px; letter-spacing: -1.1px; line-height: .95; font-weight: 750; color: #fffdf6; }
.brand-name i, .footer-brand i { font-style: normal; font-weight: 500; display: block; font-size: 7px; letter-spacing: 1.5px; color: #dcb476; margin-top: 6px; }
.brand-name small, .footer-brand small { display: block; font-size: 7px; letter-spacing: 0; font-weight: 450; color: #8598a3; margin-top: 4px; }
.main-nav { display: flex; align-items: center; gap: 32px; margin-left: auto; order: 1; }
.main-nav > a { text-decoration: none; font-size: 12px; font-weight: 550; color: #d0d5d7; transition: color .18s; }
.main-nav > a:hover { color: var(--amber); }
.main-nav .nav-call { display: flex; align-items: center; gap: 16px; margin-left: 10px; color: var(--amber); }
.header-cart { display: flex; align-items: center; justify-content: center; gap: 10px; order: 2; border: 1px solid #ffffff26; background: #ffffff04; color: var(--paper); min-height: 44px; padding: 0 15px; border-radius: 7px; font-size: 11px; }
.header-cart:hover { border-color: var(--amber); }
.header-cart svg { width: 19px; height: 19px; }
.header-cart b { font-weight: 650; background: var(--brand-gold); color: var(--ink-deep); padding: 1px 5px; border-radius: 3px; margin-left: 4px; }
.menu-toggle { display: none; order: 3; }
/* A room, a feeling, then a direct route to the real catalog. */
.hero { position: relative; isolation: isolate; display: grid; grid-template-columns: 1fr 1.22fr; padding: 0 0 0 var(--gutter); overflow: hidden; min-height: 690px; background: var(--ink-deep); color: var(--paper); --scene-glow: #e8b66f; }
.hero-atmosphere { position: absolute; z-index: -1; inset: 0; background: radial-gradient(ellipse at 45% 60%, #ac733e15, transparent 52%), linear-gradient(100deg, #0b1620 3%, #12212c 80%); }
.hero-copy { position: relative; z-index: 3; align-self: center; padding: 53px 0 74px; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: #718087; font-size: 9px; font-weight: 700; letter-spacing: .15em; margin: 0 0 15px; line-height: 1.7; }
.eyebrow-dot { display: inline-block; flex: none; width: 6px; height: 6px; border-radius: 50%; background: #b88b4c; }
.hero-eyebrow { color: #caa57c; font-size: 9px; letter-spacing: .18em; margin-bottom: 28px; }
.eyebrow-line { display: inline-block; width: 30px; height: 1px; background: var(--amber); flex: none; }
.hero h1 { font-size: clamp(42px, 4.6vw, 68px); font-weight: 650; letter-spacing: -2px; line-height: 1.48; margin: 0 0 22px; }
.hero h1 span { color: var(--amber); }
.hero-lede { color: #b0bac0; font-size: 13px; line-height: 2; margin: 0 0 30px; }
.hero-actions { display: flex; align-items: center; gap: 26px; }
.button { min-height: 47px; border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 23px; padding: 11px 20px; border-radius: 5px; font-size: 12px; font-weight: 650; text-decoration: none; transition: background .2s, transform .2s, border-color .2s; }
.button:hover { transform: translateY(-2px); }
.button-dark { background: var(--ink); color: var(--paper); }
.button-dark:hover { background: #233b4c; }
.button-dark span { color: var(--amber); }
.button-gold, .button-light { background: var(--amber); color: #14212a; border-color: var(--amber); }
.button-gold:hover, .button-light:hover { background: #f2cb91; }
.hero-actions .button { min-height: 52px; padding: 12px 22px; }
.hero-actions .button .arrow-icon { width: 16px; height: 16px; }
.hero-phone { display: inline-flex; align-items: center; gap: 10px; font-size: 10px; text-decoration: none; color: #d5dce0; line-height: 1.7; }
.hero-phone > svg { width: 20px; height: 20px; color: var(--amber); }
.hero-phone small { display: block; font-size: 11px; font-weight: 500; color: #98a6af; letter-spacing: .05em; }
.hero-search { display: flex; align-items: center; max-width: 445px; height: 53px; padding: 0 6px 0 16px; gap: 11px; margin-top: 33px; background: #ffffff06; border: 1px solid #ffffff29; border-radius: 5px; }
.hero-search > svg { width: 18px; height: 18px; color: #9eabb3; flex: none; }
.hero-search input { width: 100%; min-width: 0; padding: 9px 0; border: 0; background: transparent; color: var(--paper); font-size: 11px; outline-offset: 1px; }
.hero-search input::placeholder { color: #91a0a9; opacity: 1; }
.hero-search button { width: 39px; height: 39px; flex: none; display: grid; place-items: center; background: #ffffff0e; border: 1px solid #ffffff09; border-radius: 3px; color: var(--amber); }
.hero-search button:hover { background: #ffffff1a; }
.hero-search button svg { width: 20px; height: 20px; }
.hero-quick-links { display: flex; align-items: center; gap: 6px; margin-top: 12px; color: #81909a; font-size: 9px; }
.hero-quick-links > span { margin-right: 5px; }
.hero-quick-links button { min-height: 31px; color: #c2ccd1; padding: 2px 11px; border: 1px solid #ffffff15; background: transparent; border-radius: 30px; font-size: 9px; }
.hero-quick-links button:hover { border-color: #e8b66f88; color: var(--amber); }
.hero-showcase { position: relative; min-width: 0; min-height: 625px; margin-right: 0; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 65% 28%, #855431, #263035 48%, #111d26 85%); }
.hero-light-photo { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 58% 50%; filter: saturate(.85); transition: filter .8s ease; animation: scene-arrive 1.1s ease-out both; }
.hero-showcase::before { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg, #0b1620 0%, #0b162060 17%, transparent 40%), linear-gradient(0deg, #0b1620c9, transparent 45%, #0b16202b); }
.scene-tint { position: absolute; z-index: 1; inset: 0; opacity: .13; background: linear-gradient(120deg, transparent 25%, #eeba715c 70%); mix-blend-mode: color; pointer-events: none; transition: opacity .8s, background .8s; }
.hero[data-light-mode="cool"] { --scene-glow: #b7d8ea; }
.hero[data-light-mode="cool"] .hero-light-photo { filter: saturate(.65) hue-rotate(165deg) brightness(1.08); }
.hero[data-light-mode="cool"] .scene-tint { opacity: .3; background: linear-gradient(120deg, transparent 15%, #87b8d5); }
.scene-label { position: absolute; z-index: 2; top: 40px; right: 45px; display: flex; align-items: center; gap: 12px; font-size: 9px; font-weight: 450; letter-spacing: .16em; line-height: 1.9; color: #e8e3d9; }
.scene-label b { font-weight: 650; }
.scene-label-line { height: 32px; width: 1px; background: #e8b66f99; }
.scene-coordinate { position: absolute; z-index: 2; right: 25px; top: 45%; writing-mode: vertical-rl; font-size: 8px; letter-spacing: .18em; color: #eee4d3a6; }
.light-preview { position: absolute; z-index: 3; bottom: 91px; right: 44px; width: 292px; padding: 15px 17px 12px; border: 1px solid #e9e3d328; border-radius: 8px; background: #0e1a24cf; backdrop-filter: blur(18px); box-shadow: 0 10px 60px #00000021; }
.light-preview-heading { display: flex; align-items: center; gap: 7px; margin-bottom: 13px; font-size: 10px; color: #e8e8e1; }
.preview-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--scene-glow); box-shadow: 0 0 9px var(--scene-glow); transition: background .6s; }
.preview-label { font-size: 7px; letter-spacing: .16em; color: #94a4ad; margin-left: auto; }
.light-mode-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.light-mode-buttons button { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 7px; min-height: 43px; border-radius: 4px; padding: 8px; background: #ffffff04; border: 1px solid #ffffff1a; color: #a5b3bd; font-size: 9px; }
.light-mode-buttons button[aria-pressed="true"] { border-color: #e8b66faa; color: #f4e8d4; background: #e8b66f12; }
.hero[data-light-mode="cool"] .light-mode-buttons button[aria-pressed="true"] { border-color: #b7d8eaaa; background: #b7d8ea12; color: #dceaf2; }
.light-mode-buttons small { font-size: 7px; letter-spacing: .06em; color: #8e9ca3; }
.light-swatch { width: 11px; height: 11px; border-radius: 50%; box-shadow: 0 0 13px #e8b66f33; flex: none; }
.warm-swatch { background: #eec283; }
.cool-swatch { background: #c6e5f6; }
.light-preview p { margin: 10px 0 0; font-size: 8px; color: #a1afb8; }
.hero-bottom { position: absolute; z-index: 4; left: var(--gutter); right: var(--gutter); bottom: 0; min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid #ffffff17; font-size: 8px; color: #80919e; letter-spacing: .15em; }
.hero-catalog-index { display: flex; align-items: center; gap: 17px; }
#catalog-overview-count { padding-right: 17px; border-right: 1px solid #ffffff25; color: #b9c5cd; font-size: 10px; letter-spacing: 0; }
.hero-bottom a { display: inline-flex; align-items: center; gap: 20px; font-size: 9px; letter-spacing: 0; text-decoration: none; color: #c8d1d6; }
.hero-bottom a span { color: var(--amber); font-size: 17px; }
@keyframes scene-arrive { from { opacity: .2; transform: scale(1.03); } to { opacity: 1; transform: scale(1); } }
.text-link { display: inline-flex; align-items: center; gap: 15px; font-size: 11px; font-weight: 600; text-decoration: none; }
.text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.text-link span { color: #a7793c; }
.section-pad { padding: 65px var(--gutter); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 29px; }
.section-heading .eyebrow { margin-bottom: 9px; }
.section-heading h2, .guide-intro h2, .visit-left h2, .shopping-help h2 { font-size: clamp(31px, 3.1vw, 44px); font-weight: 650; line-height: 1.5; letter-spacing: -1.4px; margin: 0; }
.section-heading > p { max-width: 337px; color: var(--muted); font-size: 11px; line-height: 1.95; margin: 0 0 6px; }
.section-heading > .text-link { margin-bottom: 9px; white-space: nowrap; }
/* Quiet, tactile category objects keep the scene connected to shopping. */
.department-section { padding-top: 53px; padding-bottom: 40px; }
.department-section .section-heading h2 { font-size: 33px; }
.browse-families { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.browse-families button { display: flex; align-items: center; position: relative; min-width: 0; min-height: 165px; padding: 0; border: 1px solid #dddcd3; background: #eae7df; border-radius: 7px; overflow: hidden; text-align: left; color: var(--ink); transition: transform .25s, box-shadow .25s, border-color .25s; }
.browse-families button:nth-child(2) { background: #e4e8e7; border-color: #d7dfdd; }
.browse-families button:nth-child(3) { background: #e9e2d7; border-color: #e0d8cc; }
.browse-families button:nth-child(4) { background: #e5e8df; border-color: #dce0d3; }
.browse-families button:hover { transform: translateY(-4px); border-color: #bfa98b; box-shadow: 0 12px 27px #172a3610; }
.family-photo { position: absolute; right: -21px; top: 11px; width: 160px; height: 160px; display: grid; place-items: center; }
.family-photo::before { content: ""; position: absolute; width: 126px; height: 126px; border: 1px solid #ffffff77; border-radius: 50%; background: #ffffff28; }
.family-photo img { position: relative; width: 157px; height: 157px; object-fit: contain; filter: drop-shadow(0 9px 5px #27313715); transition: transform .3s; }
.browse-families button:hover img { transform: rotate(-4deg) scale(1.04); }
.family-copy { position: relative; z-index: 1; align-self: stretch; padding: 18px 16px; pointer-events: none; width: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.family-copy small { font-size: 8px; font-weight: 650; color: #5d6b6b; letter-spacing: .14em; }
.family-copy b { font-size: 19px; font-weight: 650; line-height: 1.6; margin-top: auto; padding-top: 32px; text-shadow: 0 1px 12px #eae7df; }
.family-copy em { display: block; font-size: 9px; font-style: normal; color: #626d67; margin-top: 2px; }
.browse-families i { position: absolute; right: 13px; bottom: 17px; display: grid; place-items: center; border-radius: 50%; width: 26px; height: 26px; background: #fffefa99; color: #59707b; }
.browse-families i .arrow-icon { width: 12px; height: 12px; }
.department-note { margin: 14px 0 0; font-size: 9px; color: #7d8588; }
/* Catalog: generous image stages, compact readable Bengali information. */
.product-section { background: var(--paper); padding-top: 53px; border-top: 1px solid #dfdfd5; }
.shop-tools { display: grid; grid-template-columns: minmax(250px, 2fr) repeat(3, minmax(125px, 1fr)); gap: 15px; padding: 20px; border: 1px solid var(--line); background: #f2f3ef; border-radius: 7px; align-items: start; }
.shop-search-label { display: block; color: #52616a; font-size: 10px; font-weight: 600; margin-bottom: 6px; }
.shop-tools input, .shop-tools select, .shop-dialog input, .shop-dialog select, .shop-dialog textarea { width: 100%; min-height: 45px; padding: 10px 11px; border: 1px solid #d6dcd8; border-radius: 4px; background: var(--paper); color: var(--ink); font: inherit; font-size: 11px; }
.shop-tools select { padding-right: 24px; }
.catalog-search-wrap { position: relative; min-width: 0; }
.search-field { position: relative; display: flex; align-items: center; }
.search-field > svg { position: absolute; left: 13px; width: 18px; height: 18px; color: #809198; pointer-events: none; }
.shop-tools .search-field input { min-width: 0; padding-left: 40px; padding-right: 38px; }
.search-field button { position: absolute; right: 4px; top: 4px; width: 36px; height: 37px; border: 0; background: transparent; color: #73828c; font-size: 23px; }
.search-suggestions { position: absolute; z-index: 25; left: 0; right: 0; top: 100%; max-height: 320px; overflow: auto; border: 1px solid #ccd5d9; border-radius: 0 0 7px 7px; background: var(--paper); box-shadow: 0 12px 30px #15253116; }
.search-suggestions [role="option"] { padding: 13px 12px; border-bottom: 1px solid var(--line); font-size: 12px; cursor: pointer; line-height: 1.7; }
.search-suggestions [role="option"]:hover, .search-suggestions [aria-selected="true"] { background: #f6eddd; }
.catalog-toolbar { display: flex; align-items: center; gap: 22px; padding: 15px 0; margin-bottom: 17px; border-bottom: 1px solid var(--line); }
.stock-toggle { display: flex; align-items: center; gap: 8px; font-size: 10px; color: #566a75; cursor: pointer; min-height: 36px; }
.stock-toggle input { width: 17px; height: 17px; margin: 0; accent-color: var(--ink); }
.reset-filters { padding: 9px 0; border: 0; background: transparent; color: #68787e; font-size: 10px; text-decoration: underline; text-underline-offset: 4px; }
.catalog-toolbar .cart-open { margin-left: auto; min-height: 36px; padding: 6px 13px; font-size: 10px; gap: 10px; }
.cart-open span { background: #ffffff14; color: var(--amber); padding: 1px 6px; border-radius: 3px; }
.category-shortcuts { display: flex; gap: 7px; overflow: auto; padding: 3px 2px 10px; margin-bottom: 9px; scrollbar-width: thin; scrollbar-color: #cbd3d2 transparent; }
.category-shortcuts button { white-space: nowrap; padding: 7px 14px; border: 1px solid #d6dedc; border-radius: 30px; background: var(--paper); color: #697d88; font-size: 10px; min-height: 34px; }
.category-shortcuts button[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.catalog-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 8px 0 19px; }
.catalog-results-heading h3 { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 650; margin: 0; white-space: nowrap; }
.catalog-live-dot { width: 5px; height: 5px; border-radius: 50%; background: #b1915f; }
.shop-status { font-size: 12px; color: var(--muted); margin: 12px 0 18px; }
.catalog-results-heading .shop-status { margin: 0; text-align: right; font-size: 10px; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.product-grid:empty { display: none; }
.product-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 13px; border: 1px solid #e3e5df; border-radius: 7px; background: var(--paper); transition: border-color .22s, box-shadow .22s, transform .22s; }
.product-card:hover { transform: translateY(-3px); border-color: #c5c9bf; box-shadow: 0 9px 28px #142b3b0b; }
.card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; min-height: 24px; font-size: 8px; color: #65757e; line-height: 1.6; }
.card-top span:first-child { color: #6e6555; }
.card-top span:last-child { text-align: right; }
.product-picture-link { background: #f3f3ed; display: block; margin-top: 6px; position: relative; border-radius: 5px; overflow: hidden; text-decoration: none; }
.catalog-photo, .product-drawing { display: block; width: 100%; height: 202px; object-fit: contain; border-radius: 5px; background: #f3f3ed; }
.catalog-photo { padding: 13px; background: transparent; mix-blend-mode: multiply; }
.product-card .catalog-photo { transition: transform .35s; }
.product-card:hover .catalog-photo { transform: scale(1.035); }
.product-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 13px; position: relative; color: #acb5b6; background: radial-gradient(ellipse at 50% 40%, #fafaf5, #eeefea); }
.product-placeholder svg { width: 76px; height: 76px; color: #9eacb0; }
.product-placeholder span { margin: 0; font-size: 8px; font-weight: 450; color: #6d7d86; }
.placeholder-bulb { background: radial-gradient(ellipse at 50% 40%, #fffaf0, #f0eee5); }
.placeholder-switch { background: radial-gradient(ellipse at 50% 40%, #f6f7f4, #e8edeb); }
.placeholder-cable { background: radial-gradient(ellipse at 50% 40%, #f9faf4, #e9ede4); }
.catalog-photo-pending { position: absolute; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.product-card h3 { margin: 14px 0 6px; font-size: 14px; font-weight: 650; line-height: 1.8; overflow-wrap: anywhere; }
.product-card h3 a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-decoration: none; }
.product-card h3 a:hover { color: #8c6d40; }
.product-name-en { margin: 0 0 7px; font-size: 9px; line-height: 1.65; color: #68777f; overflow-wrap: anywhere; }
.product-card .product-name-en { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.product-description { overflow-wrap: anywhere; color: #61737d; line-height: 1.9; }
.product-card .product-description { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 9px; font-size: 9px; }
.product-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-top: 1px solid #e9eae3; padding: 12px 0; margin-top: auto; font-size: 9px; color: #677981; }
.product-meta .product-price { order: -1; width: 100%; color: var(--ink); font-size: 21px; line-height: 1.5; }
.product-card.is-unpriced .product-price { font-size: 11px; line-height: 1.8; font-weight: 650; color: #5a656b; }
.stock-label { color: #537065; font-size: 9px; margin-left: auto; }
.stock-out { color: #856849; }
.stock-label::before { content: ""; display: inline-block; width: 4px; height: 4px; margin-right: 5px; vertical-align: 2px; border-radius: 50%; background: currentColor; }
.add-to-cart { width: 100%; min-height: 40px; padding: 8px 9px; gap: 8px; font-size: 10px; }
.add-to-cart:disabled { display: none; }
.add-to-cart:disabled:hover { transform: none; }
.product-enquiry { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 34px; margin-top: 7px; font-size: 10px; font-weight: 600; color: #526e7b; text-decoration: none; }
.product-enquiry .arrow-icon { width: 10px; height: 10px; color: #a78855; }
.product-card.is-unpriced .product-enquiry, .product-card.is-unavailable .product-enquiry { min-height: 41px; border: 1px solid #d1dcd7; border-radius: 4px; background: #edf2ef; color: #3a5d68; }
.product-card.is-unpriced .product-enquiry:hover, .product-card.is-unavailable .product-enquiry:hover { border-color: #afc4bf; background: #e5eeea; }
.product-enquiry:hover { color: #986b30; text-decoration: underline; text-underline-offset: 4px; }
.load-more { display: flex; min-width: 190px; margin: 31px auto 0; }
.accessory-note { margin: 26px 0 0; font-size: 11px; color: #677981; text-align: center; }
.accessory-note > span { color: #a88958; font-size: 19px; padding-right: 5px; vertical-align: -1px; }
.accessory-note a { color: var(--ink); text-underline-offset: 4px; }
.catalog-empty { text-align: center; padding: 46px 18px; border: 1px dashed #ccd6d5; border-radius: 7px; background: #f4f5ef; }
.catalog-empty > span { font-size: 40px; color: #8b9da4; }
.catalog-empty h3 { margin: 7px 0; font-size: 22px; }
.catalog-empty p { margin: 0 0 20px; font-size: 12px; color: var(--muted); }
/* The buying guide and real-world shop carry the same visual language. */
.guide-section { position: relative; display: grid; grid-template-columns: .95fr 1.05fr; gap: 0 10%; padding: 75px var(--gutter) 46px; background: var(--ink-deep); color: var(--paper); overflow: hidden; }
.guide-section::before { content: ""; position: absolute; pointer-events: none; width: 360px; height: 360px; border-radius: 50%; border: 1px solid #e8b66f16; top: 100px; left: -150px; box-shadow: 0 0 0 65px #e8b66f04, 0 0 0 130px #e8b66f03; }
.guide-intro { position: relative; }
.eyebrow-light { color: #b2a084; font-size: 8px; }
.guide-intro h2 { font-size: 42px; }
.guide-intro h2 span { color: var(--amber); }
.guide-intro > p:not(.eyebrow) { max-width: 337px; margin: 20px 0 26px; color: #a7b4bb; font-size: 12px; line-height: 2; }
.guide-list article { display: grid; grid-template-columns: 36px 1fr 20px; gap: 17px; padding: 21px 0; border-top: 1px solid #ffffff20; }
.guide-list article:last-child { border-bottom: 1px solid #ffffff20; }
.guide-number { color: #b68e5e; font-size: 13px; letter-spacing: .05em; }
.guide-list h3 { margin: 0 0 6px; font-size: 13px; font-weight: 600; }
.guide-list p { margin: 0; color: #9caeb9; font-size: 11px; line-height: 1.95; }
.guide-arrow { color: #b79973; }
.safety-note { grid-column: 2; margin: 18px 0 0; font-size: 9px; color: #80949f; }
.shopping-help { display: grid; grid-template-columns: 1fr 1.1fr; gap: 10%; background: #eeeee6; }
.shopping-help h2 { font-size: 36px; }
.shopping-help > div > p:not(.eyebrow) { color: var(--muted); font-size: 12px; }
.shopping-help a { text-underline-offset: 4px; }
.shopping-faq details { padding: 20px 0; border-bottom: 1px solid #d3dbd6; }
.shopping-faq details:first-child { border-top: 1px solid #d3dbd6; }
.shopping-faq summary { position: relative; padding-right: 28px; list-style: none; font-size: 13px; font-weight: 600; cursor: pointer; }
.shopping-faq summary::-webkit-details-marker { display: none; }
.shopping-faq summary::after { content: "+"; position: absolute; right: 0; top: -3px; font-size: 20px; font-weight: 400; color: #8d9488; }
.shopping-faq details[open] summary::after { content: "−"; }
.shopping-faq details p { margin: 14px 0 0; color: var(--muted); font-size: 12px; line-height: 2; }
.visit-section { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: center; }
.visit-left h2 { font-size: 47px; }
.visit-left h2 span { color: #a4804f; }
.visit-left > p:not(.eyebrow) { max-width: 336px; margin: 20px 0 26px; font-size: 13px; color: var(--muted); line-height: 2; }
.visit-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; }
.phone-link { display: flex; align-items: center; gap: 10px; text-decoration: none; font-size: 11px; font-weight: 600; }
.phone-link small { display: block; font-size: 12px; color: var(--muted); font-weight: 450; }
.phone-icon { width: 37px; height: 37px; display: grid; place-items: center; border: 1px solid #cbd5d7; border-radius: 50%; }
.phone-icon svg { width: 17px; height: 17px; }
.address-card { overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.map-art { position: relative; overflow: hidden; height: 190px; background: #eae8df; }
.map-art svg { width: 100%; height: 100%; }
.map-tag { position: absolute; left: 18px; top: 18px; padding: 5px 12px; font-size: 10px; background: var(--paper); border-radius: 4px; }
.address-copy { padding: 25px 28px; }
.address-label { color: var(--muted); font-size: 10px; }
.address-copy address { font-size: 17px; font-style: normal; line-height: 2; margin: 8px 0 13px; }
.address-copy > a { font-size: 11px; font-weight: 600; text-decoration: none; border-bottom: 1px solid #ced5d3; padding-bottom: 5px; }
.address-copy > a span { margin-left: 11px; color: #aa864d; }
.site-footer { padding: 43px var(--gutter) 24px; background: var(--ink-deep); color: var(--paper); }
.footer-brand .brand-sun { font-size: 33px; }
.footer-brand i { font-size: 8px; letter-spacing: 1.4px; }
.footer-brand small { color: #8b9ea9; }
.site-footer > p { margin: 15px 0 27px; color: #9aabb5; font-size: 11px; }
.footer-bottom { display: flex; align-items: center; gap: 25px; padding-top: 18px; border-top: 1px solid #ffffff16; color: #758995; font-size: 9px; }
.footer-bottom a { text-decoration: none; color: #9aabb5; margin-left: auto; }
.footer-bottom a + a { margin-left: 0; }
.footer-bottom a span { margin-left: 8px; color: #a88a5f; }
/* Accessible commerce dialogs retain the existing checkout contract. */
.shop-overlay { position: fixed; z-index: 50; inset: 0; padding: 18px; background: #06131ed4; backdrop-filter: blur(7px); display: flex; align-items: center; justify-content: center; overflow: auto; }
.shop-dialog { width: min(620px, 100%); max-height: min(92vh, 900px); max-height: min(92dvh, 900px); overflow: auto; overscroll-behavior: contain; background: var(--paper); padding: 27px; border: 1px solid #dce3dc; border-radius: 10px; box-shadow: 0 20px 70px #00000050; outline: none; }
.dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.dialog-heading .eyebrow { margin-bottom: 5px; }
.dialog-heading h2, .order-received h2 { margin: 0 0 12px; font-size: 28px; line-height: 1.5; font-weight: 650; }
.icon-button { flex: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--ink); font-size: 28px; line-height: 1; cursor: pointer; }
.cart-line { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.cart-line-description strong, .cart-line-description span { display: block; }
.cart-line-description strong { font-size: 12px; overflow-wrap: anywhere; }
.cart-line-description span { font-size: 10px; color: #7b888e; }
.cart-line-total { white-space: nowrap; font-size: 12px; }
.quantity-control { display: flex; align-items: center; gap: 7px; }
.quantity-control button { min-width: 35px; min-height: 35px; border: 1px solid #d3dcd7; border-radius: 3px; background: var(--paper); color: var(--ink); font-size: 18px; }
.quantity-control button:disabled { opacity: .5; }
.quantity-control span { min-width: 20px; text-align: center; font-size: 13px; }
.quantity-input { width: 78px; min-height: 36px; border: 1px solid #d3dcd7; border-radius: 3px; padding: 4px 6px; text-align: center; color: var(--ink); font: inherit; font-size: 13px; }
.quantity-control .remove-line { font-size: 10px; padding: 0 5px; }
.empty-cart { padding: 16px 0; color: #778790; }
.shop-dialog fieldset { min-width: 0; margin: 19px 0 0; padding: 15px; border: 1px solid var(--line); border-radius: 5px; }
.shop-dialog legend { padding: 0 8px; font-size: 13px; font-weight: 650; }
.shop-dialog fieldset > label { display: block; margin: 11px 0; font-size: 12px; font-weight: 600; }
.shop-dialog fieldset > label input, .shop-dialog fieldset > label textarea, .shop-dialog fieldset > label select { display: block; margin-top: 5px; font-weight: 400; }
.shop-dialog textarea { resize: vertical; }
.payment-choice { display: block; margin: 9px 0; font-size: 13px; }
.payment-choice input { width: 18px; height: 18px; min-height: 0; vertical-align: middle; accent-color: var(--ink); }
.payment-note, .confirmation-note { color: #7c878d; font-size: 10px; line-height: 1.9; margin: 9px 0; }
.checkout-total { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; margin: 17px 0; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 13px; }
.checkout-total b { text-align: right; }
.form-error { min-height: 1.4em; margin: 10px 0; color: #a84435; font-size: 12px; }
.checkout-submit { width: 100%; justify-content: center; }
.confirmation-note { text-align: center; }
.order-received { max-width: 740px; margin: 31px auto; padding: 29px; border: 1px solid var(--line); border-radius: 7px; background: #f4f5ef; }
.order-received p { color: #687b83; font-size: 13px; }
body.shop-modal-open { overflow: hidden; }
.product-overlay { z-index: 52; }
.product-dialog { width: min(750px, 100%); padding: 25px; }
.product-dialog-top { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-bottom: 15px; margin-bottom: 20px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; }
#product-detail-title { margin: 0 0 10px; font-size: 26px; line-height: 1.65; font-weight: 650; overflow-wrap: anywhere; }
#product-detail-content { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.product-detail-gallery { background: #f0f2ed; border-radius: 7px; min-width: 0; align-self: start; overflow: hidden; }
.product-detail-info { min-width: 0; }
#product-detail-content .catalog-photo, #product-detail-content .product-drawing { height: 320px; width: 100%; background: transparent; }
.product-dialog.is-unpriced .product-detail-info > .product-price { font-size: 16px; line-height: 1.9; }
#product-detail-content .catalog-photo { padding: 20px; }
#product-detail-content .product-meta { margin: 14px 0; padding: 12px 0; font-size: 12px; }
#product-detail-content .product-description { font-size: 13px; white-space: pre-line; }
.product-detail-info > .product-price { font-size: 24px; display: block; }
.product-detail-info > .stock-label { margin: 12px 0; }
.product-detail-info > button { margin: 8px 8px 0 0; }
.product-detail-info > button:disabled { background: #edf0e8; color: #7b877f; border-color: #e0e5dc; }
#share-product { background: transparent; color: var(--ink); border-color: #ccd7d7; }
.product-enquiry-detail { margin: 8px 8px 0 0; background: #e9f0ed; color: #3c626c; border-color: #bfd1cc; }
.share-status { min-height: 20px; font-size: 11px; color: #6a848e; overflow-wrap: anywhere; }
.shop-toast { position: fixed; z-index: 65; left: 50%; bottom: 24px; transform: translateX(-50%); width: max-content; max-width: min(460px, calc(100vw - 32px)); border-radius: 7px; padding: 13px 20px; background: var(--ink); color: var(--paper); font-size: 12px; box-shadow: 0 8px 30px #15283825; pointer-events: none; }
.mobile-shop-nav { display: none; }
@media (min-width: 1700px) {
  .hero-showcase { margin-right: 0; }
  .hero { min-height: 720px; }
}
@media (max-width: 1100px) {
  .main-nav { gap: 20px; }
  .nav-wrap { gap: 19px; }
  .brand-name { font-size: 19px; }
  .hero { min-height: 620px; grid-template-columns: 1fr 1.02fr; }
  .hero-copy { padding-top: 40px; padding-bottom: 75px; }
  .hero h1 { font-size: 49px; letter-spacing: -1.5px; }
  .hero-eyebrow { font-size: 7px; letter-spacing: .12em; }
  .hero-actions { gap: 18px; }
  .hero-actions .button { font-size: 10px; padding: 12px 17px; gap: 16px; }
  .hero-showcase { min-height: 570px; }
  .light-preview { right: 28px; width: 266px; }
  .scene-label { right: 29px; font-size: 8px; }
  .shop-tools { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalog-search-wrap { grid-column: 1 / -1; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .family-photo { right: -27px; top: 13px; width: 135px; height: 135px; }
  .family-photo img { width: 133px; height: 133px; }
  .family-photo::before { width: 105px; height: 105px; }
  .family-copy { padding: 16px 13px; }
  .family-copy b { font-size: 16px; }
  .family-copy em { font-size: 8px; }
  .browse-families button { min-height: 151px; }
  .browse-families i { display: none; }
  .guide-intro h2 { font-size: 37px; }
}
@media (max-width: 820px) {
  :root { --gutter: 24px; }
  .nav-wrap { width: calc(100% - 48px); gap: 13px; }
  .main-nav { gap: 18px; }
  .main-nav > a { font-size: 10px; }
  .main-nav .nav-call { display: none; }
  .brand-name { font-size: 17px; }
  .brand-name i { font-size: 7px; }
  .header-cart { padding: 0 11px; font-size: 10px; }
  .hero { min-height: 565px; grid-template-columns: 1fr 1fr; }
  .hero h1 { font-size: 39px; letter-spacing: -1.3px; }
  .hero-eyebrow { font-size: 6px; gap: 7px; margin-bottom: 22px; }
  .eyebrow-line { width: 22px; }
  .hero-lede { font-size: 11px; line-height: 2; margin-bottom: 24px; }
  .hero-actions { flex-wrap: wrap; gap: 15px; }
  .hero-actions .button { min-height: 45px; padding: 10px 14px; font-size: 10px; }
  .hero-phone { font-size: 8px; gap: 7px; }
  .hero-phone small { font-size: 9px; }
  .hero-phone > svg { width: 16px; height: 16px; }
  .hero-search { margin-top: 26px; height: 49px; padding-left: 12px; gap: 9px; }
  .hero-search input { font-size: 10px; }
  .hero-quick-links { flex-wrap: wrap; font-size: 8px; gap: 5px; }
  .hero-quick-links button { font-size: 8px; padding: 2px 9px; }
  .hero-showcase { min-height: 520px; }
  .hero-light-photo { object-position: 62% center; }
  .light-preview { right: 24px; bottom: 88px; width: 244px; padding: 13px; }
  .light-mode-buttons button { font-size: 8px; padding: 7px; gap: 5px; }
  .light-mode-buttons small { font-size: 6px; }
  .light-preview p { font-size: 7px; }
  .scene-coordinate { right: 12px; }
  .section-pad { padding-top: 52px; padding-bottom: 52px; }
  .section-heading h2 { font-size: 32px; }
  .section-heading > p { max-width: 270px; font-size: 10px; }
  .department-section .section-heading h2 { font-size: 29px; }
  .browse-families { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
  .browse-families button { min-height: 150px; }
  .family-photo { right: 9px; width: 160px; height: 160px; top: -4px; }
  .family-photo img { width: 155px; height: 155px; }
  .family-copy { padding: 17px; }
  .family-copy b { font-size: 20px; }
  .family-copy em { font-size: 9px; }
  .browse-families i { display: grid; right: 18px; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
  .product-card .catalog-photo, .product-card .product-drawing { height: 225px; }
  .guide-section { padding-top: 54px; gap: 0 6%; }
  .guide-intro h2 { font-size: 32px; }
  .guide-intro > p:not(.eyebrow) { font-size: 11px; }
  .guide-list article { grid-template-columns: 26px 1fr 14px; gap: 10px; }
  .guide-list h3 { font-size: 12px; }
  .guide-list p { font-size: 10px; }
  .visit-section { gap: 6%; }
  .visit-left h2 { font-size: 39px; }
  .visit-actions { flex-direction: column; align-items: flex-start; gap: 18px; }
  .shopping-help { gap: 6%; }
  .shopping-help h2 { font-size: 31px; }
}
@media (max-width: 640px) {
  :root { --gutter: 20px; }
  html { scroll-padding-top: 88px; }
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); font-size: 14px; }
  .store-bar { justify-content: center; min-height: 29px; padding: 6px 15px; font-size: 8px; }
  .store-bar > a { display: none; }
  .site-header { height: calc(73px + env(safe-area-inset-top, 0px)); }
  .nav-wrap { width: calc(100% - 36px); gap: 8px; }
  .brand { gap: 9px; }
  .brand img { width: 36px; height: 36px; border-radius: 0; }
  .brand-sun { font-size: 26px; letter-spacing: -.8px; }
  .brand-name i { font-size: 6px; letter-spacing: 1.15px; margin-top: 5px; }
  .brand-name small { font-size: 6px; margin-top: 4px; }
  .header-cart { margin-left: auto; width: 40px; min-height: 40px; padding: 0; border-radius: 5px; position: relative; }
  .header-cart > span { display: block; font-size: 0; }
  .header-cart > svg { width: 18px; height: 18px; }
  .header-cart b { position: absolute; right: -5px; top: -5px; min-width: 15px; padding: 0 3px; font-size: 8px; line-height: 15px; border-radius: 20px; border: 1px solid var(--ink-deep); }
  .header-cart { gap: 0; }
  .menu-toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 40px; height: 40px; border: 1px solid #ffffff26; border-radius: 5px; background: transparent; color: var(--paper); }
  .menu-toggle span { width: 16px; border-top: 1.5px solid currentColor; transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.75px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }
  .main-nav { display: none; position: absolute; top: calc(72px + env(safe-area-inset-top, 0px)); left: 0; right: 0; margin: 0; padding: 12px 22px 20px; background: #0d1b27; border-bottom: 1px solid #e8b66f35; box-shadow: 0 16px 24px #07121c33; gap: 0; flex-direction: column; align-items: stretch; }
  .main-nav.is-open { display: flex; }
  .main-nav > a { min-height: 48px; padding: 12px 3px; border-bottom: 1px solid #ffffff16; font-size: 13px; }
  .main-nav .nav-call { display: flex; justify-content: space-between; margin: 12px 0 0; padding: 12px 14px; border: 1px solid #e8b66f55; border-radius: 4px; background: #e8b66f0b; }
  .hero { display: flex; flex-direction: column; min-height: 0; padding: 0; }
  .hero-copy { align-self: stretch; padding: 28px 24px 24px; }
  .hero-eyebrow { font-size: 7px; letter-spacing: .1em; margin-bottom: 18px; }
  .hero h1 { font-size: clamp(34px, 10.4vw, 52px); font-weight: 650; line-height: 1.5; letter-spacing: -1.4px; margin-bottom: 14px; }
  .hero-lede { font-size: 11px; line-height: 1.95; margin-bottom: 20px; }
  .hero-actions { gap: 22px; flex-wrap: nowrap; }
  .hero-actions .button { min-height: 46px; padding: 10px 16px; gap: 20px; font-size: 11px; }
  .hero-phone { font-size: 8px; gap: 8px; }
  .hero-phone small { font-size: 9px; margin-top: 2px; }
  .hero-search { max-width: none; height: 48px; margin-top: 21px; gap: 10px; }
  .hero-search input { font-size: 16px; }
  .hero-search button { height: 36px; width: 36px; }
  .hero-quick-links { margin-top: 10px; gap: 6px; font-size: 8px; }
  .hero-quick-links button { font-size: 8px; min-height: 28px; padding: 2px 10px; }
  .hero-showcase { width: 100%; height: 328px; min-height: 0; margin: 0; }
  .hero-light-photo { object-position: 58% 54%; }
  .hero-showcase::before { background: linear-gradient(180deg, #0b1620, #0b162010 25%, transparent 55%, #0b1620b3), linear-gradient(90deg, #0b162033, transparent 35%); }
  .scene-label { left: 25px; top: 28px; right: auto; font-size: 7px; gap: 9px; }
  .scene-label-line { height: 26px; }
  .scene-coordinate { right: 17px; top: 38%; font-size: 7px; }
  .light-preview { right: 20px; bottom: 95px; width: 248px; padding: 12px 13px 9px; border-radius: 7px; }
  .light-preview-heading { font-size: 9px; margin-bottom: 9px; }
  .preview-label { font-size: 6px; }
  .light-mode-buttons button { min-height: 39px; font-size: 8px; gap: 6px; padding: 7px; }
  .light-mode-buttons small { font-size: 6px; }
  .light-preview p { font-size: 7px; margin-top: 8px; }
  .hero-bottom { position: relative; left: auto; right: auto; margin: 0 24px; min-height: 47px; font-size: 6px; letter-spacing: .09em; gap: 15px; }
  .hero-catalog-index { gap: 9px; }
  #catalog-overview-count { padding-right: 9px; font-size: 8px; }
  .hero-bottom a { font-size: 7px; gap: 9px; }
  .hero-bottom a span { font-size: 14px; }
  .section-pad { padding: 43px var(--gutter); }
  .section-heading { gap: 15px; margin-bottom: 23px; }
  .section-heading .eyebrow { font-size: 7px; margin-bottom: 8px; }
  .section-heading h2 { font-size: 28px; letter-spacing: -.8px; }
  .section-heading > .text-link { font-size: 9px; gap: 7px; margin-bottom: 7px; }
  .section-heading > .text-link .arrow-icon { width: 11px; height: 11px; }
  .department-section { padding-top: 34px; padding-bottom: 30px; }
  .department-section .section-heading h2 { font-size: 27px; }
  .browse-families { gap: 10px; }
  .browse-families button { min-height: 171px; border-radius: 6px; align-items: flex-end; }
  .family-photo { width: 129px; height: 129px; right: -7px; top: -5px; }
  .family-photo img { width: 126px; height: 126px; }
  .family-photo::before { width: 91px; height: 91px; }
  .family-copy { padding: 12px; }
  .family-copy small { font-size: 6px; }
  .family-copy b { font-size: 16px; padding-top: 71px; line-height: 1.6; }
  .family-copy em { font-size: 8px; margin-top: 1px; }
  .browse-families i { right: 10px; bottom: 17px; width: 21px; height: 21px; background: #fffefa70; }
  .browse-families i .arrow-icon { width: 10px; height: 10px; }
  .department-note { font-size: 8px; line-height: 1.9; margin-top: 12px; }
  .product-section { padding-top: 38px; }
  .product-section .section-heading { display: block; margin-bottom: 21px; }
  .product-section .section-heading > p { max-width: none; margin-top: 12px; font-size: 10px; line-height: 1.95; }
  .shop-tools { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 13px; gap: 11px 8px; border-radius: 6px; }
  .shop-tools .catalog-search-wrap { grid-column: 1 / -1; }
  .shop-tools .catalog-filter:last-child { grid-column: auto; }
  .shop-tools .catalog-filter { min-width: 0; }
  .shop-tools select { padding-left: 8px; padding-right: 19px; }
  .shop-search-label { font-size: 9px; margin-bottom: 5px; }
  .shop-tools input, .shop-tools select { font-size: 16px; min-height: 44px; }
  .catalog-toolbar { gap: 13px; padding: 12px 0; margin-bottom: 11px; }
  .stock-toggle { font-size: 9px; gap: 6px; }
  .stock-toggle input { width: 16px; height: 16px; }
  .reset-filters { font-size: 8px; }
  .catalog-toolbar .cart-open { min-height: 35px; padding: 6px 9px; font-size: 8px; gap: 7px; }
  .category-shortcuts { gap: 6px; margin-bottom: 7px; }
  .category-shortcuts button { font-size: 9px; padding: 7px 12px; min-height: 33px; }
  .catalog-results-heading { margin-bottom: 16px; gap: 10px; }
  .catalog-results-heading h3 { font-size: 11px; gap: 6px; }
  .catalog-results-heading .shop-status { font-size: 9px; }
  .product-grid { gap: 11px; }
  .product-card { padding: 9px; border-radius: 6px; }
  .card-top { min-height: 23px; font-size: 7px; gap: 6px; }
  .product-picture-link { margin-top: 4px; }
  .product-card .catalog-photo, .product-card .product-drawing { height: 151px; }
  .product-card .catalog-photo { padding: 9px; }
  .product-placeholder { gap: 10px; }
  .product-placeholder svg { width: 58px; height: 58px; }
  .product-placeholder span { font-size: 7px; }
  .product-card h3 { margin: 11px 0 5px; font-size: 12px; line-height: 1.85; }
  .product-name-en { font-size: 9px; line-height: 1.7; margin-bottom: 5px; }
  .product-card .product-description { font-size: 9px; margin-bottom: 8px; }
  .product-meta { padding: 10px 0; gap: 5px; font-size: 9px; }
  .product-meta .product-price { font-size: 18px; }
  .product-card.is-unpriced .product-price { font-size: 10px; line-height: 1.9; }
  .stock-label { font-size: 9px; margin-left: auto; }
  .stock-label::before { width: 3px; height: 3px; margin-right: 3px; }
  .add-to-cart { min-height: 37px; font-size: 8px; padding: 7px 5px; border-radius: 4px; }
  .product-enquiry { min-height: 30px; font-size: 9px; margin-top: 5px; gap: 5px; }
  .product-enquiry .arrow-icon { width: 9px; height: 9px; }
  .product-card.is-unpriced .product-enquiry, .product-card.is-unavailable .product-enquiry { min-height: 38px; font-size: 11px; }
  .load-more { margin-top: 25px; font-size: 11px; }
  .accessory-note { font-size: 9px; line-height: 2; margin-top: 22px; }
  .catalog-empty { padding: 35px 14px; }
  .catalog-empty h3 { font-size: 19px; }
  .catalog-empty p { font-size: 11px; }
  .guide-section { display: block; padding: 45px 24px 29px; }
  .guide-intro h2 { font-size: 32px; }
  .guide-intro > p:not(.eyebrow) { max-width: 320px; font-size: 11px; margin: 16px 0 23px; }
  .guide-intro .button { font-size: 10px; }
  .guide-list { margin-top: 34px; }
  .guide-list article { grid-template-columns: 27px 1fr 13px; padding: 18px 0; gap: 11px; }
  .guide-list h3 { font-size: 12px; }
  .guide-list p { font-size: 10px; line-height: 2; }
  .guide-number { font-size: 12px; }
  .safety-note { font-size: 8px; line-height: 1.9; }
  .shopping-help { display: block; }
  .shopping-help h2 { font-size: 29px; }
  .shopping-help > div > p:not(.eyebrow) { font-size: 10px; }
  .shopping-faq { margin-top: 28px; }
  .shopping-faq details { padding: 18px 0; }
  .shopping-faq summary { font-size: 12px; }
  .shopping-faq details p { font-size: 11px; }
  .visit-section { display: block; }
  .visit-left h2 { font-size: 35px; }
  .visit-left > p:not(.eyebrow) { max-width: 310px; font-size: 11px; margin: 16px 0 23px; }
  .visit-actions { flex-direction: row; align-items: center; gap: 20px; }
  .visit-actions .button { font-size: 10px; padding: 10px 14px; gap: 15px; }
  .phone-link { font-size: 9px; gap: 8px; }
  .phone-link small { font-size: 10px; }
  .address-card { margin-top: 28px; }
  .map-art { height: 161px; }
  .address-copy { padding: 21px; }
  .address-copy address { font-size: 16px; }
  .site-footer { padding: 34px 22px 23px; }
  .footer-brand .brand-sun { font-size: 29px; }
  .footer-brand i { font-size: 7px; letter-spacing: 1.25px; }
  .footer-brand small { font-size: 6px; }
  .site-footer > p { font-size: 10px; margin: 14px 0 24px; }
  .footer-bottom { display: grid; grid-template-columns: 1fr 1fr; font-size: 8px; gap: 12px; }
  .footer-bottom a { margin: 0; }
  .footer-bottom > a:last-child { grid-column: 1 / -1; }
  .shop-overlay { padding: 9px; }
  .shop-dialog { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); padding: 18px; border-radius: 9px; }
  .dialog-heading h2 { font-size: 23px; }
  .shop-dialog fieldset { padding: 11px; }
  .shop-dialog input, .shop-dialog select, .shop-dialog textarea { font-size: 16px; }
  .payment-choice { font-size: 12px; }
  .cart-line { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .cart-line-total { grid-column: 1 / -1; text-align: right; }
  .quantity-control { gap: 5px; }
  .product-dialog { padding: 18px; }
  #product-detail-content { display: block; }
  #product-detail-title { font-size: 21px; margin-top: 18px; }
  #product-detail-content .catalog-photo, #product-detail-content .product-drawing { height: 228px; }
  #product-detail-content .product-description { font-size: 12px; }
  .product-detail-info > .product-price { font-size: 20px; }
  .product-detail-info > button, .product-enquiry-detail { font-size: 10px; min-height: 43px; padding: 10px 12px; gap: 9px; }
  .shop-toast { bottom: calc(87px + env(safe-area-inset-bottom, 0px)); font-size: 11px; padding: 12px 16px; }
  .mobile-shop-nav { position: fixed; z-index: 40; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: 1fr 1.5fr 1fr; gap: 8px; min-height: 72px; padding: 9px 12px calc(9px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #d9ded6; background: #fffefaed; backdrop-filter: blur(18px); box-shadow: 0 -5px 25px #1b34480c; }
  .mobile-shop-nav > a, .mobile-shop-nav > button { display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; background: transparent; border-radius: 5px; color: #60717b; font-size: 10px; font-weight: 600; text-decoration: none; cursor: pointer; min-height: 45px; }
  .mobile-shop-nav svg { width: 19px; height: 19px; flex: none; }
  .mobile-shop-nav > button { background: var(--ink); color: var(--paper); }
  .mobile-shop-nav b { display: inline-block; min-width: 17px; padding: 0 3px; border-radius: 3px; background: #ffffff14; color: var(--amber); font-size: 9px; }
  .mobile-shop-nav small { display: block; font-size: 9px; color: #9fadb5; font-weight: 450; }
  .shop-modal-open .mobile-shop-nav { visibility: hidden; }
}
@media (max-width: 360px) {
  :root { --gutter: 15px; }
  .nav-wrap { width: calc(100% - 28px); gap: 7px; }
  .brand { gap: 7px; }
  .brand img { width: 33px; height: 33px; }
  .brand-sun { font-size: 24px; }
  .brand-name i { font-size: 5.5px; letter-spacing: 1.05px; }
  .brand-name small { font-size: 5.5px; }
  .header-cart, .menu-toggle { width: 35px; min-height: 37px; height: 37px; }
  .hero-copy { padding: 29px 19px 25px; }
  .hero h1 { font-size: 34px; letter-spacing: -1.2px; }
  .hero-eyebrow { font-size: 6px; }
  .hero-lede { font-size: 10px; }
  .hero-actions { gap: 15px; }
  .hero-actions .button { font-size: 10px; padding: 10px 13px; gap: 14px; }
  .hero-phone { font-size: 7px; gap: 6px; }
  .hero-phone small { font-size: 8px; }
  .hero-search input { font-size: 16px; }
  .hero-quick-links { gap: 4px; font-size: 7px; }
  .hero-quick-links button { font-size: 7px; padding: 2px 9px; }
  .hero-showcase { height: 297px; }
  .hero-bottom { margin: 0 19px; font-size: 5px; gap: 12px; }
  #catalog-overview-count { font-size: 7px; padding-right: 7px; }
  .hero-catalog-index { gap: 7px; }
  .hero-bottom a { font-size: 6px; gap: 7px; }
  .light-preview { width: 235px; right: 17px; }
  .section-heading h2 { font-size: 26px; }
  .department-section .section-heading h2 { font-size: 25px; }
  .section-heading > .text-link { font-size: 8px; gap: 5px; }
  .family-photo { right: -11px; width: 118px; height: 118px; }
  .family-photo img { width: 116px; height: 116px; }
  .browse-families button { min-height: 159px; }
  .family-copy { padding: 11px; }
  .family-copy b { font-size: 15px; padding-top: 62px; }
  .family-copy em { font-size: 7px; }
  .browse-families i { display: none; }
  .catalog-toolbar { gap: 9px; }
  .stock-toggle { font-size: 8px; gap: 5px; }
  .reset-filters { font-size: 7px; }
  .catalog-toolbar .cart-open { font-size: 7px; padding: 6px 7px; gap: 5px; }
  .product-card { padding: 8px; }
  .product-grid { gap: 9px; }
  .product-card .catalog-photo, .product-card .product-drawing { height: 128px; }
  .product-card h3 { font-size: 11px; }
  .product-card.is-unpriced .product-price { font-size: 10px; }
  .product-meta { font-size: 8px; }
  .stock-label { font-size: 8px; }
  .shop-dialog { padding: 15px; }
  .quantity-control button { min-width: 31px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .button:hover, .product-card:hover, .browse-families button:hover, .product-card:hover .catalog-photo, .browse-families button:hover img { transform: none; }
}
