/* Otatva Products page — brand styles are inherited from styles.css. */
:root { --products-ink:#2e1738; --products-purple:#55206d; --products-gold:#bd8730; --products-cream:#fffaf2; }
.products-page { color:var(--products-ink); background:var(--products-cream); }
.products-container { width:min(1360px,calc(100% - 64px)); margin-inline:auto; }
.products-page a:focus-visible,.products-page button:focus-visible,.products-page input:focus-visible { outline:3px solid #c99b42; outline-offset:4px; }
.products-page [id] { scroll-margin-top:110px; }

/* Full-width product banner */
.product-hero { min-height:clamp(420px,38vw,560px); position:relative; isolation:isolate; display:flex; align-items:center; overflow:hidden; background:#f6eadd; }
.product-hero__image { position:absolute; z-index:-3; inset:0; width:100%; height:100%; object-fit:cover; object-position:65% center; }
.product-hero__wash { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(255,250,242,.99) 0%,rgba(255,250,242,.96) 27%,rgba(255,250,242,.84) 42%,rgba(255,250,242,.22) 65%,rgba(255,250,242,.02) 100%),linear-gradient(0deg,rgba(255,246,234,.27),transparent 30%); }
.product-hero__inner { position:relative; z-index:1; padding-top:118px; padding-bottom:56px; }
.product-hero__copy { width:min(700px,58%); }
.products-eyebrow,.product-kicker { margin:0 0 12px; color:#a66e1c; font-size:11px; line-height:1.5; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.products-eyebrow span { color:#64247a; margin-left:7px; }
.products-breadcrumb { display:flex; gap:10px; align-items:center; margin:0 0 15px; color:#716377; font-size:12px; }
.products-breadcrumb a { color:#55206d; text-decoration:underline; text-decoration-color:rgba(85,32,109,.25); text-underline-offset:3px; }
.product-hero h1 { max-width:710px; margin:0 0 15px; color:#2e1738; font:700 clamp(45px,5.2vw,76px)/.98 var(--serif); letter-spacing:-.035em; }
.product-hero h1 em { display:block; margin-top:7px; color:#b6802b; font-style:normal; font-weight:600; }
.product-hero__lead { max-width:580px; margin:0 0 23px; color:#51445b; font-size:clamp(15px,1.16vw,17px); line-height:1.75; }
.product-hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.product-hero__actions .button { min-height:47px; padding-inline:23px; font-size:13px; }
.product-hero__note { display:flex; align-items:center; gap:9px; margin:19px 0 0; color:#6c5b6c; font-size:12px; font-weight:600; }
.product-hero__note span { color:#b78330; font-size:19px; }
.product-hero__ornament { position:absolute; z-index:-1; left:-42px; bottom:-86px; color:rgba(104,144,70,.19); font:220px/1 var(--serif); transform:rotate(-25deg); pointer-events:none; }

/* Benefit ribbon */
.product-values { position:relative; z-index:1; background:rgba(255,252,245,.96); border-block:1px solid rgba(174,139,73,.16); box-shadow:0 6px 20px rgba(89,56,88,.035); }
.product-values__grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:center; min-height:88px; }
.product-values__grid > div { display:flex; justify-content:center; align-items:center; gap:12px; min-height:48px; padding:7px 12px; border-right:1px solid rgba(155,111,56,.17); }
.product-values__grid > div:last-child { border-right:0; }
.product-values__grid > div > span { color:#a87829; font:34px/1 var(--serif); }
.product-values__grid p { margin:0; }
.product-values__grid strong,.product-values__grid small { display:block; color:#4b3358; font-size:11px; line-height:1.4; font-weight:700; }
.product-values__grid small { margin-top:2px; color:#766879; font-size:10px; font-weight:400; }

/* Catalogue controls and responsive product-card grid */
.product-range { position:relative; overflow:hidden; padding:82px 0 94px; background:radial-gradient(ellipse at 50% 15%,#fffefb 0%,#fffaf2 62%,#f8efe8 100%); }
.product-range::before,.product-range::after { content:"✧"; position:absolute; z-index:0; color:rgba(187,142,62,.12); font:170px/1 var(--serif); pointer-events:none; }
.product-range::before { top:70px; left:2%; transform:rotate(-20deg); }
.product-range::after { right:2%; top:260px; transform:rotate(20deg); }
.product-range > .products-container { position:relative; z-index:1; }
.products-section-heading { max-width:820px; margin:0 auto 36px; text-align:center; }
.products-section-heading .product-kicker { margin-bottom:9px; }
.products-section-heading h2 { margin:0 0 12px; color:#32163f; font:700 clamp(37px,4vw,54px)/1.04 var(--serif); letter-spacing:-.02em; }
.products-section-heading h2 em { color:#b47d28; font-weight:500; }
.products-section-heading > p:last-child { max-width:690px; margin:0 auto; color:#6d6072; font-size:15px; line-height:1.7; }
.product-controls { display:flex; justify-content:space-between; align-items:center; gap:18px; margin:0 0 20px; }
.product-filters { display:flex; flex-wrap:wrap; gap:8px; }
.filter-chip { display:inline-flex; align-items:center; gap:8px; min-height:39px; padding:8px 14px; border:1px solid rgba(157,115,58,.28); border-radius:999px; color:#5b4663; background:rgba(255,255,255,.7); font-size:12px; font-weight:600; transition:background .2s,color .2s,border-color .2s,transform .2s; }
.filter-chip:hover { transform:translateY(-1px); border-color:#aa782b; }
.filter-chip.is-active { border-color:#5b1d70; color:#fffaf3; background:#55206d; }
.filter-chip span { display:inline-grid; min-width:21px; height:21px; place-items:center; padding-inline:4px; border-radius:50%; color:#5b1d70; background:#f3dfb1; font-size:10px; }
.product-search { display:flex; flex:0 0 min(300px,100%); align-items:center; gap:8px; min-height:43px; padding:0 12px; border:1px solid rgba(157,115,58,.3); border-radius:999px; background:rgba(255,255,255,.88); color:#916c39; }
.product-search > span:first-child { font-size:23px; line-height:1; }
.product-search input { flex:1; min-width:0; border:0; outline:0; color:#3f2b49; background:transparent; font-size:12px; }
.product-search input::placeholder { color:#95859a; }
.product-search kbd { padding:3px 5px; border:1px solid #e5d8c7; border-radius:4px; color:#887b8b; background:#fffaf2; font-size:9px; }
.product-result-line { display:flex; justify-content:space-between; align-items:center; margin:0 0 15px; color:#7b6e7c; font-size:12px; }
.product-result-line p { margin:0; }
.product-result-line a { color:#7a4a8d; text-decoration:underline; text-underline-offset:3px; }
.product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; align-items:stretch; }
.product-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid rgba(183,139,72,.22); border-radius:18px; background:rgba(255,253,248,.96); box-shadow:0 7px 21px rgba(66,40,68,.055); transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
.product-card:hover { transform:translateY(-5px); border-color:rgba(177,129,49,.5); box-shadow:0 15px 32px rgba(66,40,68,.11); }
.product-card[hidden] { display:none !important; }
.product-card__image { position:relative; overflow:hidden; aspect-ratio:1.55/1; background:linear-gradient(135deg,#f0e4d7,#e9ddeb); }
.product-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.product-card:hover .product-card__image img { transform:scale(1.045); }
.product-card__category { position:absolute; left:12px; bottom:11px; display:inline-flex; padding:5px 9px; border:1px solid rgba(255,255,255,.64); border-radius:999px; color:#4b2b57; background:rgba(255,249,239,.9); font-size:9px; line-height:1.3; font-weight:700; letter-spacing:.02em; backdrop-filter:blur(8px); }
.product-card__body { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:18px 17px 17px; }
.product-card__eyebrow { margin:0 0 5px; color:#a7792b; font-size:8px; line-height:1.4; letter-spacing:.13em; font-weight:700; }
.product-card h3 { margin:0 0 5px; color:#341640; font:700 25px/1.03 var(--serif); }
.product-card__tagline { margin:0 0 9px; color:#a66f23; font:italic 600 14px/1.4 var(--serif); }
.product-card__summary { margin:0 0 12px; color:#675c6d; font-size:12px; line-height:1.65; }
.product-card__highlights { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; margin-bottom:15px; }
.product-card__highlights span { display:inline-flex; padding:5px 8px; border-radius:7px; color:#654775; background:#f3eaf4; font-size:9px; line-height:1.35; }
.product-card__actions { display:flex; width:100%; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; padding-top:12px; border-top:1px solid rgba(165,128,76,.15); }
.product-button { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:39px; padding:9px 14px; border:1px solid #6b287e; border-radius:999px; color:#fffaf3; background:linear-gradient(120deg,#6a2581,#45115f); font-size:11px; font-weight:700; transition:transform .2s,box-shadow .2s; }
.product-button:hover { transform:translateY(-2px); box-shadow:0 7px 17px rgba(73,16,91,.2); }
.product-button span { font-size:15px; font-weight:400; }
.product-enquire { display:inline-flex; justify-content:center; align-items:center; min-height:38px; padding:8px 12px; border:1px solid #c3974c; border-radius:999px; color:#825a1c; background:#fffaf0; font-size:10px; font-weight:700; }
.product-enquire:hover { background:#f7e7c7; }
.product-empty { padding:50px 20px; border:1px dashed rgba(160,119,64,.35); border-radius:18px; text-align:center; background:rgba(255,255,255,.55); }
.product-empty > span { color:#b27d2b; font-size:35px; }
.product-empty h3 { margin:7px 0; color:#341640; font:700 30px var(--serif); }
.product-empty p { color:#716478; }

/* Custom-order callout and responsible-use note */
.product-custom { padding:38px 0 70px; background:linear-gradient(110deg,#fff5e8,#fffaf2 55%,#f6e8df); }
.product-custom__inner { display:grid; grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr); gap:clamp(28px,5vw,70px); align-items:center; padding:23px; border:1px solid rgba(184,137,60,.22); border-radius:22px; background:rgba(255,255,255,.62); box-shadow:0 9px 28px rgba(76,43,68,.06); }
.product-custom__image { overflow:hidden; border-radius:16px; }
.product-custom__image img { width:100%; height:245px; object-fit:cover; }
.product-custom__copy h2 { max-width:640px; margin:0 0 12px; color:#33163f; font:700 clamp(34px,3.3vw,47px)/1.05 var(--serif); }
.product-custom__copy h2 em { color:#b47d28; font-weight:500; }
.product-custom__copy > p:not(.product-kicker) { max-width:620px; margin:0 0 20px; color:#6c5d70; font-size:15px; line-height:1.75; }
.product-custom__copy .button { min-height:46px; font-size:12px; }
.product-disclaimer { padding:20px 0; background:#f3ebf3; }
.product-disclaimer .products-container { display:flex; align-items:flex-start; gap:13px; }
.product-disclaimer span { color:#815393; font-size:20px; }
.product-disclaimer p { margin:0; color:#6a5c70; font-size:11px; line-height:1.7; }

/* Closing banner */
.products-cta { position:relative; isolation:isolate; display:flex; align-items:center; min-height:270px; overflow:hidden; background:linear-gradient(120deg,#2b1037,#5b246e 55%,#341342); }
.products-cta__content { position:relative; z-index:1; padding-block:50px; color:#fffaf4; text-align:center; }
.products-cta__content .product-kicker { color:#f0d18a; }
.products-cta__content h2 { max-width:850px; margin:0 auto 12px; color:#fffaf4; font:700 clamp(34px,4vw,50px)/1.05 var(--serif); }
.products-cta__content > p:not(.product-kicker) { max-width:720px; margin:0 auto 22px; color:#eee1f0; font-size:15px; line-height:1.7; }
.button-gold { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:47px; padding:12px 25px; border:1px solid #eed18b; border-radius:999px; color:#351540; background:linear-gradient(110deg,#f1d78f,#dba83e); font-size:12px; font-weight:700; box-shadow:0 7px 20px rgba(0,0,0,.14); }
.button-gold:hover { transform:translateY(-2px); }
.products-cta__lotus { position:absolute; z-index:-1; color:rgba(238,207,139,.11); font:210px/1 var(--serif); }
.products-cta__lotus--left { left:5%; top:25px; }
.products-cta__lotus--right { right:5%; bottom:5px; }

/* Product detail dialogue */
.product-dialog { position:fixed; top:50%; left:50%; right:auto; bottom:auto; transform:translate(-50%,-50%); margin:0; width:min(900px,calc(100% - 28px)); max-width:900px; max-height:min(88vh,860px); overflow-y:auto; padding:26px; border:1px solid rgba(190,147,73,.38); border-radius:22px; color:#574a60; background:#fffaf2; box-shadow:0 22px 85px rgba(34,10,43,.3); }
.product-dialog::backdrop { background:rgba(29,10,37,.68); backdrop-filter:blur(4px); }
.product-dialog__dismiss { position:sticky; z-index:3; top:0; display:flex; justify-content:flex-end; height:0; margin:0; }
.product-dialog__close { display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(140,95,54,.2); border-radius:50%; color:#55206d; background:#fff; font-size:25px; line-height:1; box-shadow:0 3px 12px rgba(34,10,43,.12); cursor:pointer; }
.product-dialog__layout { display:grid; grid-template-columns:minmax(240px,.82fr) minmax(0,1.18fr); gap:clamp(22px,4vw,38px); align-items:start; }
.product-dialog__media { position:sticky; top:0; overflow:hidden; min-height:240px; aspect-ratio:1 / 1.12; border:1px solid rgba(190,147,73,.22); border-radius:16px; background:linear-gradient(145deg,#f7eadc,#efe3ed); }
.product-dialog__media img { display:block; width:100%; height:100%; min-height:240px; max-height:440px; object-fit:cover; }
.product-dialog__media img[src$=".svg"] { object-fit:contain; padding:22px; }
.product-dialog__media img[hidden] { display:none; }
.product-dialog__content { min-width:0; padding:8px 8px 8px 0; }
.product-dialog__eyebrow { margin:0 0 7px; color:#a66e1c; font-size:10px; letter-spacing:.15em; font-weight:700; text-transform:uppercase; }
.product-dialog h2 { margin:0 40px 8px 0; color:#32163f; font:700 clamp(32px,4vw,43px)/1.05 var(--serif); }
.product-dialog__tagline { margin:0 0 17px; color:#a66f23; font:italic 600 18px/1.4 var(--serif); }
.product-dialog__description { color:#665a6c; font-size:14px; line-height:1.8; }
.product-dialog h3 { margin:23px 0 9px; color:#44204f; font:700 25px var(--serif); }
.product-dialog ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 20px; margin:0 0 18px; padding:0; list-style:none; }
.product-dialog li { position:relative; padding-left:22px; color:#665a6c; font-size:13px; line-height:1.6; }
.product-dialog li::before { content:"✓"; position:absolute; left:0; top:0; color:#b37b26; font-weight:700; }
.product-dialog__note { margin:12px 0 20px; padding:12px 14px; border-left:3px solid #b78331; border-radius:0 9px 9px 0; color:#6b5c65; background:#f5eddc; font-size:12px; line-height:1.65; }
.product-dialog__content > .button { min-height:45px; font-size:12px; }

/* Tablet */
@media (max-width:1100px) {
 .products-container { width:min(100% - 48px,960px); }
 .product-hero__copy { width:min(650px,64%); }
 .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
 .product-controls { align-items:flex-start; flex-direction:column; }
 .product-search { flex-basis:auto; width:min(100%,420px); }
 .product-card h3 { font-size:24px; }
}
@media (max-width:760px) {
 .products-container { width:min(100% - 36px,620px); }
 .products-page [id] { scroll-margin-top:88px; }
 .product-hero { min-height:0; display:block; }
 .product-hero__image { object-position:63% center; }
 .product-hero__wash { background:linear-gradient(90deg,rgba(255,250,242,.98),rgba(255,250,242,.91) 57%,rgba(255,250,242,.55)),linear-gradient(0deg,rgba(255,250,242,.64),transparent 50%); }
 .product-hero__inner { padding-top:138px; padding-bottom:48px; }
 .product-hero__copy { width:100%; max-width:580px; }
 .products-eyebrow { font-size:9px; letter-spacing:.13em; }
 .products-breadcrumb { margin-bottom:11px; font-size:11px; }
 .product-hero h1 { max-width:550px; font-size:clamp(43px,11vw,60px); line-height:1; }
 .product-hero__lead { max-width:500px; font-size:15px; line-height:1.7; }
 .product-hero__actions { gap:9px; }
 .product-hero__actions .button { min-height:44px; padding:10px 15px; font-size:11px; }
 .product-hero__note { align-items:flex-start; font-size:11px; }
 .product-hero__ornament { left:-40px; bottom:-48px; font-size:130px; }
 .product-values__grid { grid-template-columns:repeat(2,minmax(0,1fr)); padding-block:10px; }
 .product-values__grid > div { justify-content:flex-start; min-height:62px; padding:9px 5px; border-right:0; border-bottom:1px solid rgba(155,111,56,.12); }
 .product-values__grid > div:nth-last-child(-n+1) { grid-column:1/-1; justify-content:center; border-bottom:0; }
 .product-values__grid > div > span { font-size:29px; }
 .product-values__grid strong { font-size:11px; }
 .product-values__grid small { font-size:10px; }
 .product-range { padding:58px 0 65px; }
 .products-section-heading { margin-bottom:25px; }
 .products-section-heading h2 { font-size:clamp(35px,9vw,45px); }
 .products-section-heading > p:last-child { font-size:14px; }
 .product-controls { gap:13px; margin-bottom:16px; }
 .product-filters { gap:7px; }
 .filter-chip { min-height:36px; padding:7px 11px; font-size:10px; }
 .product-search { width:100%; min-height:42px; }
 .product-result-line { margin-bottom:12px; font-size:11px; }
 .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .product-card { border-radius:14px; }
 .product-card__image { aspect-ratio:1.18/1; }
 .product-card__category { left:8px; bottom:8px; padding:4px 7px; font-size:8px; }
 .product-card__body { padding:13px 12px 13px; }
 .product-card__eyebrow { font-size:7px; }
 .product-card h3 { font-size:20px; line-height:1.06; }
 .product-card__tagline { font-size:12px; }
 .product-card__summary { font-size:11px; line-height:1.55; }
 .product-card__highlights { gap:5px; margin-bottom:10px; }
 .product-card__highlights span { padding:4px 6px; font-size:8px; }
 .product-card__actions { align-items:stretch; flex-direction:column; gap:6px; padding-top:9px; }
 .product-button,.product-enquire { width:100%; min-height:36px; font-size:10px; }
 .product-custom { padding:25px 0 48px; }
 .product-custom__inner { grid-template-columns:1fr; gap:20px; padding:14px; border-radius:17px; }
 .product-custom__image img { height:190px; }
 .product-custom__copy { padding:0 5px 6px; }
 .product-custom__copy h2 { font-size:clamp(34px,9vw,43px); }
 .product-custom__copy > p:not(.product-kicker) { font-size:14px; }
 .product-disclaimer .products-container { gap:9px; }
 .product-disclaimer p { font-size:10px; }
 .products-cta { min-height:0; }
 .products-cta__content { padding-block:47px; }
 .products-cta__content h2 { font-size:36px; }
 .products-cta__content > p:not(.product-kicker) { font-size:14px; }
 .products-cta__lotus { font-size:110px; }
 .product-dialog { width:min(620px,calc(100% - 22px)); max-height:90vh; padding:20px 17px 22px; border-radius:17px; }
 .product-dialog__layout { grid-template-columns:1fr; gap:16px; }
 .product-dialog__media { position:relative; min-height:0; max-height:260px; aspect-ratio:16 / 9; }
 .product-dialog__media img { min-height:0; max-height:260px; }
 .product-dialog__media img[src$=".svg"] { padding:12px; }
 .product-dialog__content { padding:0 2px 2px; }
 .product-dialog__content h2 { font-size:34px; }
 .product-dialog ul { grid-template-columns:1fr; gap:7px; }
}
@media (max-width:420px) {
 .products-container { width:calc(100% - 26px); }
 .product-hero__inner { padding-top:124px; }
 .product-hero h1 { font-size:41px; }
 .product-hero__actions { align-items:stretch; flex-direction:column; max-width:250px; }
 .product-hero__actions .button { width:100%; }
 .product-grid { gap:9px; }
 .product-card__body { padding:11px 10px 11px; }
 .product-card h3 { font-size:18px; }
 .product-card__summary { font-size:10px; }
 .product-card__highlights span { font-size:7px; }
}
@media (prefers-reduced-motion:reduce) { .product-card,.product-card__image img,.filter-chip,.product-button,.button-gold { transition:none !important; } }


/* -------------------------------------------------------------------------
   Readability refinement and floating Back to Top control
   These overrides intentionally follow the original responsive rules.
   ------------------------------------------------------------------------- */
.products-page {
  font-size: 16px;
}
.products-container {
  width: min(1400px, calc(100% - 72px));
}
.products-eyebrow,
.product-kicker {
  font-size: 12px;
}
.products-breadcrumb {
  font-size: 14px;
}
.product-hero__lead {
  font-size: clamp(16px, 1.25vw, 18px);
}
.product-hero__note {
  font-size: 14px;
}
.product-hero__actions .button {
  font-size: 14px;
}
.product-values__grid {
  min-height: 96px;
}
.product-values__grid strong {
  font-size: 14px;
}
.product-values__grid small {
  font-size: 13px;
}
.products-section-heading {
  max-width: none;
  margin: 0 0 36px;
  text-align: left;
}
.products-section-heading .product-kicker {
  margin-bottom: 12px;
  font-size: 13px;
}
.products-section-heading__row {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(340px, .96fr);
  align-items: center;
  gap: clamp(24px, 3vw, 52px);
}
.products-section-heading__row h2 {
  margin: 0;
  font-size: clamp(34px, 3vw, 43px);
  line-height: 1.08;
}
.products-section-heading__intro {
  max-width: 650px;
  margin: 0;
  color: #625568;
  font-size: 17px;
  line-height: 1.65;
}
.filter-chip {
  min-height: 43px;
  padding: 9px 15px;
  font-size: 14px;
}
.filter-chip span {
  min-width: 23px;
  height: 23px;
  font-size: 12px;
}
.product-search {
  min-height: 47px;
}
.product-search input {
  font-size: 15px;
}
.product-search kbd {
  font-size: 11px;
}
.product-result-line {
  font-size: 14px;
}
.product-card__category {
  font-size: 11px;
}
.product-card__body {
  padding: 19px 18px 18px;
}
.product-card__eyebrow {
  font-size: 10px;
}
.product-card h3 {
  font-size: 26px;
  line-height: 1.08;
}
.product-card__tagline {
  font-size: 16px;
}
.product-card__summary {
  font-size: 15px;
  line-height: 1.65;
}
.product-card__highlights span {
  padding: 6px 9px;
  font-size: 12px;
}
.product-button,
.product-enquire {
  min-height: 43px;
  padding: 10px 15px;
  font-size: 13px;
}
.product-custom__copy > p:not(.product-kicker) {
  font-size: 17px;
}
.product-custom__copy .button,
.button-gold {
  font-size: 14px;
}
.product-disclaimer p {
  font-size: 13px;
}
.products-cta__content > p:not(.product-kicker) {
  font-size: 17px;
}
.product-dialog__eyebrow {
  font-size: 12px;
}
.product-dialog__description {
  font-size: 16px;
  line-height: 1.75;
}
.product-dialog li {
  font-size: 15px;
  line-height: 1.65;
}
.product-dialog__note {
  font-size: 14px;
}
.product-dialog__content > .button {
  font-size: 14px;
}

/* Floating right-side control. It becomes visible after the visitor scrolls. */
.back-to-top {
  position: fixed;
  z-index: 1000;
  right: 26px;
  bottom: 26px;
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border: 1px solid rgba(255, 225, 164, .9);
  border-radius: 50%;
  color: #fffaf2;
  background: linear-gradient(145deg, #6a2a7d, #42124f);
  box-shadow: 0 8px 24px rgba(44, 15, 55, .28);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease, box-shadow .22s ease;
  cursor: pointer;
}
.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.back-to-top:hover {
  box-shadow: 0 11px 28px rgba(44, 15, 55, .36);
  transform: translateY(-3px);
}
.back-to-top svg {
  display: block;
  width: 25px;
  height: 25px;
}
.back-to-top:focus-visible {
  outline: 3px solid #c99b42;
  outline-offset: 4px;
}

@media (max-width: 1100px) {
  .products-container {
    width: min(100% - 48px, 960px);
  }
  .products-section-heading__row {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
    gap: 24px;
  }
  .products-section-heading__row h2 {
    font-size: clamp(32px, 3.7vw, 40px);
  }
  .product-card__summary {
    font-size: 14px;
  }
}

@media (max-width: 760px) {
  .products-container {
    width: min(100% - 36px, 620px);
  }
  .products-eyebrow,
  .product-kicker {
    font-size: 11px;
  }
  .products-breadcrumb {
    font-size: 13px;
  }
  .product-hero__lead {
    font-size: 16px;
  }
  .product-hero__actions .button {
    font-size: 13px;
  }
  .product-hero__note {
    font-size: 13px;
  }
  .product-values__grid strong {
    font-size: 13px;
  }
  .product-values__grid small {
    font-size: 12px;
  }
  .products-section-heading {
    margin-bottom: 26px;
    text-align: center;
  }
  .products-section-heading__row {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .products-section-heading__row h2 {
    font-size: clamp(32px, 7vw, 40px);
  }
  .products-section-heading__intro {
    margin-inline: auto;
    font-size: 16px;
    line-height: 1.6;
  }
  .filter-chip {
    min-height: 39px;
    padding: 8px 12px;
    font-size: 12px;
  }
  .filter-chip span {
    font-size: 11px;
  }
  .product-search input {
    font-size: 14px;
  }
  .product-result-line {
    font-size: 13px;
  }
  .product-card__category {
    font-size: 10px;
  }
  .product-card__body {
    padding: 13px 12px 14px;
  }
  .product-card__eyebrow {
    font-size: 9px;
  }
  .product-card h3 {
    font-size: 21px;
    line-height: 1.12;
  }
  .product-card__tagline {
    font-size: 14px;
    line-height: 1.4;
  }
  .product-card__summary {
    font-size: 13px;
    line-height: 1.6;
  }
  .product-card__highlights span {
    padding: 5px 7px;
    font-size: 11px;
  }
  .product-button,
  .product-enquire {
    min-height: 40px;
    font-size: 12px;
  }
  .product-custom__copy > p:not(.product-kicker) {
    font-size: 15px;
  }
  .product-custom__copy .button,
  .button-gold {
    font-size: 13px;
  }
  .product-disclaimer p {
    font-size: 12px;
  }
  .products-cta__content > p:not(.product-kicker) {
    font-size: 15px;
  }
  .product-dialog__description {
    font-size: 15px;
  }
  .product-dialog li {
    font-size: 14px;
  }
  .product-dialog__note {
    font-size: 13px;
  }
  .back-to-top {
    right: 17px;
    bottom: 18px;
    width: 49px;
    height: 49px;
  }
}

@media (max-width: 420px) {
  .products-container {
    width: calc(100% - 26px);
  }
  .products-section-heading__row h2 {
    font-size: 32px;
  }
  .products-section-heading__intro {
    font-size: 15px;
  }
  .product-card__category {
    font-size: 9px;
  }
  .product-card__eyebrow {
    font-size: 8px;
  }
  .product-card h3 {
    font-size: 19px;
  }
  .product-card__tagline {
    font-size: 13px;
  }
  .product-card__summary {
    font-size: 12px;
  }
  .product-card__highlights span {
    font-size: 10px;
  }
  .product-button,
  .product-enquire {
    font-size: 11px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .back-to-top {
    transition: none;
  }
}

/* Center the collection heading and place its supporting sentence directly below. */
.products-section-heading {
  max-width: none;
  margin: 0 auto 36px;
  text-align: center;
}
.products-section-heading__row {
  display: block;
  width: 100%;
  text-align: center;
}
.products-section-heading__row h2 {
  margin: 0 auto 14px;
  text-align: center;
}
.products-section-heading__intro {
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

@media (max-width: 760px) {
  .products-section-heading {
    margin-bottom: 26px;
    text-align: center;
  }
  .products-section-heading__row h2 {
    margin-bottom: 12px;
    text-align: center;
  }
  .products-section-heading__intro {
    margin-inline: auto;
    text-align: center;
  }
}

/* Desktop: keep the catalogue intro as one centered line, without clipping the final word. */
@media (min-width: 921px) {
  .products-section-heading__intro {
    width: 100%;
    max-width: none;
    white-space: nowrap;
    font-size: clamp(14px, 1.28vw, 17px);
    line-height: 1.5;
  }
}

/* Tablet and mobile: allow the sentence to wrap naturally instead of overflowing. */
@media (max-width: 920px) {
  .products-section-heading__intro {
    width: auto;
    max-width: 850px;
    white-space: normal;
  }
}


/* Floating WhatsApp contact: positioned above Back to Top with a fixed gap. */
.whatsapp-float {
  position: fixed;
  z-index: 999;
  right: 26px;
  bottom: calc(26px + 54px + 14px + env(safe-area-inset-bottom, 0px));
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  background: #25d366;
  box-shadow: 0 8px 24px rgba(21, 92, 49, .28);
  transition: transform .2s ease, box-shadow .2s ease;
}
.whatsapp-float svg {
  display: block;
  width: 30px;
  height: 30px;
}
.whatsapp-float:hover {
  transform: translateY(-3px);
  box-shadow: 0 11px 28px rgba(21, 92, 49, .36);
}
.whatsapp-float:focus-visible {
  outline: 3px solid #c99b42;
  outline-offset: 4px;
}

/* At tablet/mobile sizes Back to Top is 49px high at bottom:18px.
   WhatsApp sits 13px above it so the two controls never overlap. */
@media (max-width: 1100px) {
  .whatsapp-float {
    right: 17px;
    bottom: calc(18px + 49px + 13px + env(safe-area-inset-bottom, 0px));
    width: 49px;
    height: 49px;
  }
  .whatsapp-float svg {
    width: 27px;
    height: 27px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .whatsapp-float { transition: none; }
}

/* -------------------------------------------------------------------------
   Closing CTA: keep the title and supporting sentence on one line on desktop.
   At tablet and mobile widths, restore natural wrapping to prevent overflow.
   ------------------------------------------------------------------------- */
@media (min-width: 921px) {
  .products-cta__content h2 {
    width: 100%;
    max-width: none;
    white-space: nowrap;
    font-size: clamp(30px, 4vw, 50px);
  }

  .products-cta__content > p:not(.product-kicker) {
    width: 100%;
    max-width: none;
    white-space: nowrap;
    font-size: clamp(14px, 1.25vw, 17px);
  }
}

@media (max-width: 920px) {
  .products-cta__content h2,
  .products-cta__content > p:not(.product-kicker) {
    width: auto;
    max-width: 850px;
    white-space: normal;
  }
}


/* Custom Crystal Offerings filter category — cards use the same catalogue grid and card design. */
#product-range [data-filter="custom-crystal"] {
  white-space: nowrap;
}
#product-range .product-card[data-category="custom-crystal"] .product-card__image {
  aspect-ratio: 1.55 / 1;
}
#product-range .product-card[data-category="custom-crystal"] .product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 760px) {
  #product-range [data-filter="custom-crystal"] {
    white-space: normal;
  }
}


/* Emphasised product note shown inside the product detail dialogue. */
.product-dialog__emphasis {
  margin: 9px 0 15px;
  color: #43204f;
  font-size: 14px;
  line-height: 1.7;
}
.product-dialog__emphasis strong {
  font-weight: 700;
}
