/* Self-hosted web fonts (Inter + Cormorant Garamond, SIL OFL). Served from this domain so the
   first paint never waits on a connection to Google Fonts. Latin-ext carries the ₹ sign.
   Inter (all body/UI text) is preloaded and uses font-display:optional — if it isn't ready for the
   first paint the system font is kept for that page view instead of re-flowing the text (layout shift). */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:optional;src:url(/fonts/inter-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:optional;src:url(/fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/cormorant-garamond-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/cormorant-garamond-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* =========================================================
   REJUVRA — Luxury Mattress D2C (India)  |  Shared stylesheet
   Brand: deep navy + gold, ivory base, serif display
========================================================= */

/* ─── Highlight the two Signature mattresses in the Products dropdown.
   Royal navy fill + gold text — stands out as the premium tier at a glance. ─── */
.dd-section a[href="signature.html"],
.dd-section a[href="signature-black.html"]{
  background:linear-gradient(135deg,#0f1a2e,#1a2a4a);
  color:#e3c777 !important;
  border-radius:8px;
  padding:9px 12px !important;
  margin:3px 0;
  border:1px solid rgba(227,199,119,.3);
  position:relative;
  transition:.2s;
}
.dd-section a[href="signature.html"]:hover,
.dd-section a[href="signature-black.html"]:hover{
  background:linear-gradient(135deg,#1a2a4a,#2a3f68);
  color:#fff !important;
  padding-left:16px !important;
  border-color:#e3c777;
}
.dd-section a[href="signature.html"] .dd-sub,
.dd-section a[href="signature-black.html"] .dd-sub{
  color:#c9a24b !important;
  opacity:.85;
}

/* "Conceptualised in Germany" chip inside the dropdown mega-menu footer */
.rj-dd-origin{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 16px;margin-top:10px;border-top:1px solid rgba(201,162,75,.2);font-size:11px;letter-spacing:2px;color:#7a5e1f;text-transform:uppercase;font-weight:700;font-family:Inter,system-ui,sans-serif;grid-column:1/-1}
.rj-dd-origin .rj-dd-flag{display:inline-flex;width:20px;height:14px;border-radius:2px;overflow:hidden;background:linear-gradient(to bottom,#000 33%,#dd0000 33%,#dd0000 67%,#ffce00 67%);box-shadow:0 1px 3px rgba(0,0,0,.25)}
@media(max-width:980px){
  .rj-dd-origin{padding:12px 10px;font-size:10.5px}
}

/* ─── CRITICAL mobile overrides — must sit BEFORE other rules so later
   non-media-query selectors can be re-overridden by their own media queries. ─── */
@media(max-width:980px){
  /* The dd-menu rule at .has-dropdown.open .dd-menu applied
     transform:translateX(-50%) at all widths, pushing the mobile dropdown
     half its width off the LEFT edge. Force to none on mobile. */
  .has-dropdown.open .dd-menu,
  .has-dropdown:hover .dd-menu,
  .has-dropdown:focus-within .dd-menu{
    transform:none !important;
    left:auto !important;
    right:auto !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    padding:4px 0 12px 10px !important;
  }
  .dd-menu .dd-section{min-width:0;max-width:100%;overflow-wrap:break-word}
}

/* ─── Floating button stacking — give each FAB a clear slot so they
   never pile up. Spec:
     Bottom-left (bottom → top):   WhatsApp FAB → Sign In pill
     Bottom-right (bottom → top):  Chat FAB    → History FAB   → Diagnostic
   When the install banner is visible, body gets .rj-has-install-prompt
   and every slot shifts up by 86px.  --rj-fab-shift is the extra lift. */
body{--rj-fab-shift:0px}
body.rj-has-install-prompt{--rj-fab-shift:86px}
/* Mobile PDP sticky Buy Now bar is ~72px tall at the bottom edge — lift all FABs the same way */
body.rj-has-sticky-buy{--rj-fab-shift:88px}
/* If BOTH the sticky buy bar AND the install banner show on the same screen, stack their heights */
body.rj-has-sticky-buy.rj-has-install-prompt{--rj-fab-shift:170px}

/* Bottom-right stack (bottom → top): Cart FAB → Chat FAB → Diagnostic / History.
   Each slot is 74px tall (60px button + 14px gap). */
.rj-fab{position:fixed !important;right:14px !important;bottom:calc(14px + var(--rj-fab-shift)) !important;z-index:221 !important}
#rj-ai-fab{position:fixed !important;right:14px !important;bottom:calc(88px + var(--rj-fab-shift)) !important;z-index:220}
#rj-history-fab,.rj-history-fab,[data-role="history-fab"]{position:fixed !important;right:14px !important;bottom:calc(162px + var(--rj-fab-shift)) !important;z-index:219}
#rj-diag-fab,.rj-diag-fab,[data-role="diag-fab"]{position:fixed !important;right:14px !important;bottom:calc(162px + var(--rj-fab-shift)) !important;z-index:219}
/* Desktop: keep the side Diagnostic ribbon clear of the bottom-right stack on shorter screens */
@media(min-width:721px){
  .rj-diag-tab{top:auto !important;bottom:240px !important;transform:none !important;animation:none !important}
}

/* Mobile: the diagnostic "tab" (cart.js .rj-diag-tab) collapses into a round FAB and must sit ABOVE the AI chat FAB,
   not overlap it. On desktop it stays as the vertical side ribbon (top:45%) with no bottom offset applied. */
@media(max-width:720px){
  .rj-diag-tab{right:14px !important;bottom:calc(162px + var(--rj-fab-shift)) !important;top:auto !important;z-index:219 !important}
}

/* Bottom-left stack */
#rj-wa-btn{position:fixed !important;left:14px !important;bottom:calc(14px + var(--rj-fab-shift)) !important;z-index:220}
#rj-wa-bubble{bottom:calc(90px + var(--rj-fab-shift)) !important;left:14px !important}
@media(max-width:720px){
  #rj-auth-pill{bottom:calc(84px + var(--rj-fab-shift)) !important;left:14px !important;right:auto !important;top:auto !important}
}
/* Lift the FABs in one step when --rj-fab-shift changes — animating `bottom` frame-by-frame
   is reported as a stream of layout shifts (CLS). Hover / fade effects still animate. */
.rj-fab,#rj-ai-fab,#rj-history-fab,.rj-history-fab,#rj-diag-fab,.rj-diag-fab,#rj-wa-btn,#rj-wa-bubble,#rj-auth-pill{transition-property:opacity,transform,box-shadow,background-color,color !important}


:root{
  --navy:#0f1a2e; --navy-2:#16243f; --ink:#1d2433;
  --gold:#c9a24b; --gold-2:#e3c777; --gold-soft:#f3e8c9;
  --ivory:#faf6ef; --cream:#f5efe3; --white:#fff;
  --grey:#6b7280; --line:#e7e1d6; --green:#1f9d6b;
  --shadow:0 18px 50px rgba(15,26,46,.10);
  --shadow-sm:0 8px 24px rgba(15,26,46,.08);
  --radius:18px; --maxw:1200px;
  --sans:'Inter','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  --serif:'Cormorant Garamond','Playfair Display',Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--ivory);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.serif{font-family:var(--serif)}
.gold{color:var(--gold)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:15px;border:none;cursor:pointer;padding:14px 26px;border-radius:999px;transition:.25s;letter-spacing:.2px;font-family:var(--sans)}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#1a1407;box-shadow:0 10px 24px rgba(201,162,75,.35)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(201,162,75,.45)}
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:var(--navy-2)}
.btn-outline{background:transparent;border:1.5px solid var(--gold);color:var(--navy)}
.btn-outline:hover{background:var(--gold);color:#1a1407}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold)}
.btn-block{width:100%}

/* Announcement bar */
.topbar{background:var(--navy);color:var(--gold-soft);font-size:13px;text-align:center;padding:9px 12px;letter-spacing:.4px}
.topbar b{color:var(--gold-2)}

/* Header */
.header{position:sticky;top:0;z-index:50;background:rgba(250,246,239,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px}
.brand .logo{width:46px;height:46px}
.brand .name{font-family:var(--serif);font-size:28px;font-weight:700;letter-spacing:3px;color:var(--navy)}
.nav-links{display:flex;gap:30px;align-items:center}
.nav-links a{font-size:15px;font-weight:500;color:var(--ink);position:relative;padding:6px 0}
.nav-links a:hover{color:var(--gold)}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--gold);transition:.25s}
.nav-links a:hover::after{width:100%}
.nav-actions{display:flex;gap:12px;align-items:center}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.hamburger span{width:24px;height:2px;background:var(--navy);border-radius:2px}

/* Hero */
.hero{position:relative;background:radial-gradient(1200px 500px at 80% -10%,rgba(201,162,75,.18),transparent),linear-gradient(160deg,var(--navy),#0a1322 70%);color:#fff;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center;padding:70px 0 80px}
.hero .eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--gold-2);font-size:13px;letter-spacing:3px;text-transform:uppercase;margin-bottom:18px}
.hero h1{font-family:var(--serif);font-size:60px;line-height:1.04;font-weight:700;margin-bottom:18px}
.hero h1 em{font-style:normal;color:var(--gold-2)}
.hero p.lead{font-size:18px;color:#cfd6e2;max-width:520px;margin-bottom:28px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-stats{display:flex;gap:34px;margin-top:38px}
.hero-stats .num{font-family:var(--serif);font-size:34px;color:var(--gold-2);font-weight:700;line-height:1}
.hero-stats .lbl{font-size:13px;color:#aab4c5;margin-top:4px}
.hero-visual{position:relative;display:flex;justify-content:center;align-items:center;min-height:340px}

/* Trust strip */
/* position+z-index gives the trust strip a higher stacking order than the fixed FABs (z-index:220),
   so anytime a FAB happens to sit over the strip the strip wins visually. */
.trust{background:var(--navy-2);color:#e9eef6;position:relative;z-index:500}
/* Footer gets the same treatment so FABs can never cover the "Conceptualised in Germany" row
   or the copyright line that follows it. */
.footer{position:relative;z-index:500}
.trust-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:22px 0}
.trust-item{display:flex;gap:12px;align-items:center;justify-content:center;text-align:left}
.trust-item .ti-ico{width:34px;height:34px;flex:0 0 auto;color:var(--gold-2)}
.trust-item b{display:block;font-size:15px}
.trust-item span{font-size:12.5px;color:#aeb9cb}

/* Sections */
section{padding:72px 0}
.section-head{text-align:center;max-width:680px;margin:0 auto 46px}
.section-head .kicker{color:var(--gold);font-size:13px;letter-spacing:3px;text-transform:uppercase;font-weight:600}
.section-head h2{font-family:var(--serif);font-size:44px;color:var(--navy);margin:10px 0 12px;line-height:1.1}
.section-head p{color:var(--grey);font-size:16.5px}
.bg-cream{background:var(--cream)}
.bg-navy{background:var(--navy);color:#fff}

/* Product cards */
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.3s;box-shadow:var(--shadow-sm)}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold-soft)}
.card-media{position:relative;height:200px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(160deg,#fff,var(--cream));padding:20px}
.card-badge{position:absolute;top:14px;left:14px;background:var(--gold);color:#1a1407;font-size:11px;font-weight:700;letter-spacing:.6px;padding:6px 12px;border-radius:999px;text-transform:uppercase;z-index:2}
.card-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.card .firm{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);font-weight:600}
.card h3{font-family:var(--serif);font-size:27px;color:var(--navy);margin:6px 0 8px}
.card .desc{font-size:14.5px;color:var(--grey);margin-bottom:14px;flex:1}
.stars{color:var(--gold);font-size:14px;letter-spacing:1px}
.stars span{color:var(--grey);margin-left:6px;font-size:13px}
.price-row{display:flex;align-items:baseline;gap:10px;margin:14px 0 4px}
.gst-note{font-size:11px;color:var(--grey);letter-spacing:.3px;margin:0 0 10px;opacity:.8}
.pdp .gst-note{font-size:12px;margin:-8px 0 14px}

/* Sitewide image lightbox (used on PDPs) */
.rj-lb{position:fixed;inset:0;background:rgba(10,16,30,.94);z-index:9999;display:none;align-items:center;justify-content:center}
.rj-lb.open{display:flex}
.rj-lb-img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);user-select:none}
.rj-lb-btn{position:absolute;background:rgba(255,255,255,.08);border:1px solid rgba(201,162,75,.4);color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}
.rj-lb-btn:hover{background:rgba(201,162,75,.25);border-color:#c9a24b}
.rj-lb-close{top:20px;right:20px}
.rj-lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.rj-lb-next{right:20px;top:50%;transform:translateY(-50%)}
.rj-lb-count{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#c9a24b;font-size:13px;letter-spacing:.4px}
.pdp-hero-img,.pdp-thumb{cursor:zoom-in}

/* PDP: pair firmness picker and diagnostic CTA side-by-side as two equal, mirrored cards.
   Each section → container → card is a flex chain so both cards fill the full row height. */
.firm-diag-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:stretch;padding:30px 0 10px;margin-left:auto;margin-right:auto}
.firm-diag-row > section{padding:0 !important;margin:0;min-width:0;display:flex;flex-direction:column}
.firm-diag-row > section > .container{padding:0 !important;margin:0;max-width:none;width:100%;flex:1;display:flex;flex-direction:column}
.firm-diag-row .firm-pick-wrap,.firm-diag-row .diag-cta{flex:1;width:100%;max-width:none;height:auto;min-height:340px;margin:0;box-sizing:border-box;border-radius:18px;padding:28px 26px 24px}
.firm-diag-row .firm-pick-wrap{display:flex;flex-direction:column;justify-content:center}
.firm-diag-row .firm-pick-wrap .ph h3{font-size:24px}
.firm-diag-row .firm-pick-wrap .ph p{font-size:12.5px}
.firm-diag-row .firm-pick{padding:48px 8px 56px}
.firm-diag-row .diag-cta{flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:14px}
.firm-diag-row .diag-cta .body{flex:0 0 auto}
.firm-diag-row .diag-cta .body b{font-size:24px;line-height:1.25;margin-top:2px}
.firm-diag-row .diag-cta .body span{font-size:14px;line-height:1.55;max-width:420px;margin:8px auto 0}
.firm-diag-row .diag-cta .go{margin-top:6px}
@media(max-width:900px){
  .firm-diag-row{grid-template-columns:1fr;gap:16px}
  .firm-diag-row .firm-pick-wrap,.firm-diag-row .diag-cta{min-height:0;padding:22px 18px 20px}
  .firm-diag-row .diag-cta .go{width:100%}
}
@media(max-width:640px){.rj-lb-prev{left:10px}.rj-lb-next{right:10px}.rj-lb-btn{width:40px;height:40px;font-size:18px}}
.price-now{font-family:var(--serif);font-size:28px;color:var(--navy);font-weight:700}
.price-was{font-size:15px;color:#9aa1ad;text-decoration:line-through}
.price-off{font-size:12.5px;font-weight:700;color:var(--green);background:#e7f6ef;padding:3px 9px;border-radius:6px}
.card-actions{display:flex;gap:10px;margin-top:16px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.chip{font-size:11.5px;background:var(--gold-soft);color:#7a5e1f;padding:4px 10px;border-radius:999px;font-weight:600}

/* Mattress CSS art */
.mattress{width:260px;max-width:100%}
.mlayer{border-radius:6px;margin:3px 0;box-shadow:inset 0 -3px 6px rgba(0,0,0,.06)}
.card-media .mlayer{height:18px}

/* Reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.review{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-sm)}
.review .stars{margin-bottom:12px}
.review p{font-size:15px;color:#3a4253;margin-bottom:16px}
.review .who{display:flex;align-items:center;gap:12px}
.review .av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-2));display:flex;align-items:center;justify-content:center;font-weight:700;color:#1a1407}
.review .who b{font-size:14.5px;color:var(--navy)}
.review .who span{font-size:12.5px;color:var(--grey);display:block}

/* Comparison */
.compare-wrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;border:1px solid var(--line)}
table.compare{width:100%;border-collapse:collapse;min-width:760px}
table.compare th,table.compare td{padding:16px 18px;text-align:center;border-bottom:1px solid var(--line);font-size:14.5px}
table.compare thead th{background:var(--navy);color:#fff;font-family:var(--serif);font-size:19px;font-weight:600}
table.compare thead th:first-child{background:var(--navy-2)}
table.compare tbody td:first-child{text-align:left;font-weight:600;color:var(--navy);background:var(--cream)}
table.compare tbody tr:hover td{background:#fcf9f2}
table.compare .yes{color:var(--green);font-weight:700}
table.compare .tag-best{display:inline-block;margin-top:6px;background:var(--gold);color:#1a1407;font-size:10.5px;padding:3px 9px;border-radius:999px;font-weight:700}

/* FAQ */
.faq{max-width:820px;margin:0 auto}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:20px 22px;font-size:16.5px;font-weight:600;color:var(--navy);display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:var(--sans)}
.faq-q .ico{flex:0 0 auto;transition:.3s;color:var(--gold);font-size:22px;line-height:1}
.faq-item.open .faq-q .ico{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 22px}
.faq-item.open .faq-a{max-height:340px;padding-bottom:20px}
.faq-a p{color:var(--grey);font-size:15px}

/* CTA band */
.cta-band{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;border-radius:24px;padding:54px;text-align:center;position:relative;overflow:hidden}
.cta-band h2{font-family:var(--serif);font-size:40px;margin-bottom:12px}
.cta-band p{color:#cfd6e2;max-width:560px;margin:0 auto 26px}

/* Footer */
.footer{background:var(--navy);color:#c3ccda;padding:60px 0 26px;font-size:14.5px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px;margin-bottom:38px}
.footer h4{color:#fff;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:16px}
.footer ul{list-style:none}
.footer li{margin-bottom:10px}
.footer a:hover{color:var(--gold-2)}
.footer .brand .name{color:#fff;font-size:24px}
.footer .tagline{margin:14px 0 18px;color:#9aa6b8;max-width:280px}
.foot-social{display:flex;gap:10px}
.foot-social a{width:38px;height:38px;border:1px solid #2a3956;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.25s}
.foot-social a:hover{background:var(--gold);border-color:var(--gold);color:#1a1407}
.footer-bottom{border-top:1px solid #22314e;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:#8895aa;font-size:13px}

/* Product detail page */
.breadcrumb{font-size:13px;color:var(--grey);padding:18px 0}
.breadcrumb a:hover{color:var(--gold)}
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:46px;padding:14px 0 30px;align-items:start}
.pdp-visual{position:sticky;top:96px;background:linear-gradient(160deg,#fff,var(--cream));border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow-sm)}
.pdp-visual.pdp-visual-photo{background:#fff;padding:22px}
.pdp-visual.pdp-visual-photo .pdp-gallery{max-width:100%;margin:0}
.pdp-visual.pdp-visual-photo .pdp-hero-img{width:100%;aspect-ratio:1/1;object-fit:contain;border-radius:14px;display:block;background:#f6f3eb}
.pdp-visual.pdp-visual-photo .pdp-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.pdp-visual.pdp-visual-photo .pdp-thumb{width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;border-radius:12px;cursor:pointer;border:2px solid transparent;opacity:.6;transition:.2s;background:#f6f3eb}
.pdp-visual.pdp-visual-photo .pdp-thumb.active,.pdp-visual.pdp-visual-photo .pdp-thumb:hover{opacity:1;border-color:var(--gold)}
.pdp-visual.pdp-visual-photo .pdp-eyebrow{text-align:center;margin:18px 0 4px;color:#7a5e1f;font-family:'Cormorant Garamond',serif;letter-spacing:3px;font-size:16px}
.pdp h1{font-family:var(--serif);font-size:42px;color:var(--navy);line-height:1.08;margin:6px 0 10px}
.pdp .firm{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);font-weight:700}
.pdp .summary{font-size:16px;color:#3a4253;margin:14px 0 20px}
.pdp .price-row{margin:18px 0}
.pdp .price-now{font-size:36px}
.selector-label{font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--navy);margin:18px 0 10px}
.size-opts{display:flex;flex-wrap:wrap;gap:10px}
.size-opt{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:10px 16px;cursor:pointer;font-size:14px;transition:.2s;text-align:center;min-width:96px}
.size-opt small{display:block;color:var(--grey);font-size:11.5px;margin-top:2px}
.size-opt:hover{border-color:var(--gold)}
.size-opt.active{border-color:var(--gold);background:var(--gold-soft);color:#7a5e1f;font-weight:700}
.size-opt.active small{color:#7a5e1f}
.pdp-cta{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.feature-list{margin-top:26px;display:grid;gap:14px}
.feature-list .fl{display:flex;gap:14px;align-items:flex-start}
.feature-list .fl .n{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--gold-soft);color:#7a5e1f;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.feature-list .fl b{color:var(--navy);font-size:15.5px}
.feature-list .fl p{font-size:14px;color:var(--grey);margin-top:2px}
.spec-table{width:100%;border-collapse:collapse;margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.spec-table td{padding:14px 18px;border-bottom:1px solid var(--line);font-size:14.5px}
.spec-table td:first-child{font-weight:600;color:var(--navy);width:42%;background:var(--cream)}
.spec-table tr:last-child td{border-bottom:none}
.pdp-mattress{display:flex;flex-direction:column;align-items:center}
.pdp-mattress .mlayer{height:32px;width:100%;border-radius:8px;margin:4px 0;display:flex;align-items:center;padding-left:16px;color:#1a1407;font-weight:600;font-size:13px;box-shadow:inset 0 -4px 8px rgba(0,0,0,.07)}

/* helpers */
.center{text-align:center}
.mt-32{margin-top:32px}

@media(max-width:980px){
  .hero h1{font-size:46px}
  .hero-grid{grid-template-columns:1fr;gap:10px;padding:54px 0}
  .hero-visual{order:-1;min-height:230px}
  .products,.reviews{grid-template-columns:1fr 1fr}
  .trust-row{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .pdp{grid-template-columns:1fr;gap:30px}
  .pdp-visual{position:static}
  .section-head h2,.cta-band h2{font-size:34px}
}
@media(max-width:640px){
  .nav-links{position:fixed;inset:74px 0 auto 0;background:var(--ivory);flex-direction:column;gap:0;padding:10px 22px 20px;border-bottom:1px solid var(--line);transform:translateY(-150%);transition:.3s;box-shadow:var(--shadow)}
  .nav-links:not(.open){visibility:hidden;pointer-events:none;transition:transform .3s,visibility 0s .3s}
  .nav-links.open{transform:translateY(0);visibility:visible}
  .nav-links a{padding:14px 0;border-bottom:1px solid var(--line);width:100%}
  .nav-links a::after{display:none}
  .hamburger{display:flex}
  .nav-actions .btn:not(.btn-gold){display:none}
  .products,.reviews,.footer-grid,.trust-row{grid-template-columns:1fr}
  .hero h1{font-size:38px}
  .cta-band{padding:36px 22px}
  .section-head h2{font-size:30px}
  section{padding:54px 0}
}

/* ====== Configurator (mattress PDP) ====== */
.cfg{margin-top:18px}
.cfg-step{margin-bottom:18px}
.cfg-step .step-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cfg-step .step-num{width:24px;height:24px;border-radius:50%;background:var(--gold-soft);color:#7a5e1f;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
.cfg-step .step-label{font-size:12.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--navy)}
.cfg-opts{display:flex;flex-wrap:wrap;gap:10px}
.cfg-opt{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:10px 18px;cursor:pointer;font-size:14px;transition:.18s;text-align:center;min-width:92px;font-family:inherit}
.cfg-opt small{display:block;color:var(--grey);font-size:11.5px;margin-top:3px;font-weight:400}
.cfg-opt:hover{border-color:var(--gold)}
.cfg-opt.active{border-color:var(--gold);background:var(--gold-soft);color:#7a5e1f;font-weight:700}
.cfg-opt.active small{color:#7a5e1f}
.cfg-tabs{display:inline-flex;background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px;margin-bottom:12px}
.cfg-tab{border:none;background:transparent;padding:8px 18px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:600;color:var(--grey);font-family:inherit}
.cfg-tab.active{background:var(--navy);color:#fff}
.cfg-custom{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.cfg-custom .fld{flex:1;min-width:120px}
.cfg-custom .fld label{font-size:12px;color:var(--grey);display:block;margin-bottom:4px}
.cfg-custom input{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;font-family:inherit;font-size:14px}
.cfg-custom .unit{font-size:14px;color:var(--grey);padding-bottom:12px}
.cfg-note{font-size:12.5px;color:var(--grey);margin-top:8px}
.cfg-summary{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin:16px 0 4px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:14px}
.cfg-summary b{color:var(--navy)}
.sold-out{color:#b54b4b;font-size:12.5px;margin-top:6px}

/* ====== Photo gallery (PDP) ====== */
.gallery{display:flex;flex-direction:column;gap:12px}
.gallery .hero{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.gallery .hero img{width:100%;height:100%;object-fit:contain;display:block;cursor:zoom-in;background:#f6f3eb}
.gallery .hero .caption{position:absolute;left:16px;bottom:14px;background:rgba(15,26,46,.72);color:#fff;font-family:'Cormorant Garamond',serif;font-size:14px;letter-spacing:2px;padding:6px 14px;border-radius:999px}
.gallery .thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gallery .thumb{background:var(--cream);border:1.5px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:1/1;transition:.2s;padding:0}
.gallery .thumb img{width:100%;height:100%;object-fit:contain;display:block;background:#f6f3eb}
.gallery .thumb:hover{border-color:var(--gold)}
.gallery .thumb.active{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-soft)}
.gallery .thumb.add{display:flex;align-items:center;justify-content:center;color:var(--grey);font-size:12.5px;text-align:center;padding:10px;background:#fff;border-style:dashed;cursor:default}
.lightbox{position:fixed;inset:0;background:rgba(15,26,46,.9);z-index:300;display:none;align-items:center;justify-content:center;padding:28px}
.lightbox.open{display:flex}
.lightbox img{max-width:94vw;max-height:92vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.lightbox .close{position:absolute;top:18px;right:22px;background:none;border:none;color:#fff;font-size:34px;cursor:pointer;line-height:1}

@media(max-width:980px){.gallery .thumbs{grid-template-columns:repeat(4,1fr)}}
@media(max-width:640px){.gallery .thumbs{grid-template-columns:repeat(3,1fr)}}

/* ====== Hero banner carousel (homepage) ====== */
.hero-carousel{position:relative;background:#0a1322;overflow:hidden}
.hero-carousel .slides{position:relative;width:100%;aspect-ratio:2.1/1;max-height:720px;min-height:300px}
.hero-carousel .slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none}
.hero-carousel .slide.active{opacity:1;pointer-events:auto}
.hero-carousel .slide img{width:100%;height:100%;object-fit:cover;display:block}
.hero-carousel .shop-cta{position:absolute;left:2.7%;right:auto;bottom:6%;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:10px;max-width:44%;padding:0;pointer-events:none}
/* First-screen pitch. Desktop: sits under the banner's own headline + icons, left-aligned with them. */
.hero-carousel .hero-h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0}
.hero-carousel .hero-offer{margin:0;color:#e9dcc0;font-size:15px;letter-spacing:.3px;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.hero-carousel .hero-offer b{color:var(--gold-2);font-weight:700}
.hero-carousel .hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.hero-carousel .hero-quiz{color:#fff;border-color:#c9a24b;background:rgba(15,26,46,.45);backdrop-filter:blur(6px);pointer-events:auto}
.hero-carousel .hero-quiz:hover{background:rgba(201,162,75,.18);color:#fff}
.hero-carousel .hero-proof{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;color:rgba(255,255,255,.82);font-size:12.5px;letter-spacing:.2px}
.hero-carousel .hero-proof li::before{content:"✓";color:var(--gold-2);font-weight:700;margin-right:5px}
@media(max-width:1279px) and (min-width:821px){.hero-carousel .hero-proof{display:none}}
@media(max-width:999px) and (min-width:821px){.hero-carousel .hero-offer{display:none}}
.hero-carousel .shop-cta .btn{pointer-events:auto;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.hero-carousel .dots{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:6;display:flex;gap:8px}
.hero-carousel .dots button{width:10px;height:10px;border-radius:50%;border:none;background:rgba(255,255,255,.4);cursor:pointer;padding:0;transition:.25s}
.hero-carousel .dots button.active{background:var(--gold-2);width:32px;border-radius:5px}
.hero-carousel .nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border:none;border-radius:50%;background:rgba(15,26,46,.55);color:#fff;font-size:18px;cursor:pointer;z-index:6;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);transition:.2s}
.hero-carousel .nav-arrow:hover{background:rgba(15,26,46,.85)}
.hero-carousel .nav-arrow.prev{left:18px}
.hero-carousel .nav-arrow.next{right:18px}
@media(max-width:820px){
  .hero-carousel .nav-arrow{display:none}
  /* Fixed-size banner box: the height is known before any image downloads, so the page
     never jumps when the banner loads or when the carousel switches to a banner with a
     different shape. Show the WHOLE banner (contain, no cropping) anchored to the top. */
  .hero-carousel .slides{aspect-ratio:2.1/1;min-height:0;max-height:72vh}
  .hero-carousel .slide picture{display:block;width:100%;height:100%}
  .hero-carousel .slide img{object-fit:contain;object-position:center top;background:#0a1322}
  /* Overlay the CTAs below the image using a dark gradient strip so copy is legible regardless of image content */
  .hero-carousel .shop-cta{position:static;max-width:none;align-items:center;text-align:center;padding:16px 16px 20px;background:linear-gradient(180deg,#0a1322 0%,#0f1a2e 100%);gap:10px}
  /* Phones: name the product category in a gold kicker line above the price — the banner art never says "mattress" */
  .hero-carousel .hero-h1{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font-family:Inter,system-ui,sans-serif;font-size:11px !important;line-height:1.4;letter-spacing:1.6px;text-transform:uppercase;font-weight:600;color:#c9a24b}
  .hero-carousel .hero-offer{font-size:14.5px;text-shadow:none}
  .hero-carousel .hero-btns{justify-content:center;width:100%}
  .hero-carousel .hero-proof{justify-content:center;font-size:12px;gap:4px 12px}
  .hero-carousel .shop-cta .btn{box-shadow:none}
  .hero-carousel .dots{bottom:auto;top:12px}
}
/* Phones get the square mobile banner artwork (see <picture> sources in index.html) */
@media(max-width:720px){
  .hero-carousel .slides{aspect-ratio:1/1}
}
@media(max-width:480px){
  .hero-carousel .slides{max-height:62vh}
  .hero-carousel .shop-cta{padding:14px 14px 16px;gap:8px}
  .hero-carousel .hero-btns{flex-direction:column;align-items:center;gap:8px}
  .hero-carousel .shop-cta .btn{width:100%;max-width:320px;padding:12px 18px;font-size:14px;text-align:center}
}

/* ====== Sleep Diagnostic in-page CTA ====== */
.diag-cta{display:flex;align-items:center;gap:18px;background:linear-gradient(100deg,#0f1a2e 0%,#16243f 60%,#1d3155 100%);color:#fff;border-radius:16px;padding:18px 22px;text-decoration:none;position:relative;overflow:hidden;border:1px solid rgba(201,162,75,.28);box-shadow:0 10px 30px rgba(15,26,46,.14);transition:.25s}
.diag-cta:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(15,26,46,.22);border-color:rgba(201,162,75,.55)}
.diag-cta::before{content:"";position:absolute;right:-50px;top:-60px;width:260px;height:260px;background:radial-gradient(circle,rgba(201,162,75,.22),transparent 65%);pointer-events:none}
.diag-cta .ico{flex:0 0 auto;width:52px;height:52px;border-radius:50%;background:rgba(201,162,75,.15);display:flex;align-items:center;justify-content:center;color:var(--gold-2);position:relative;z-index:1}
.diag-cta .ico svg{width:26px;height:26px}
.diag-cta .body{flex:1;position:relative;z-index:1}
.diag-cta .body .eyebrow{color:var(--gold-2);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;font-weight:700;margin-bottom:4px}
.diag-cta .body b{display:block;font-family:var(--serif);font-size:20px;color:#fff;font-weight:700;line-height:1.2}
.diag-cta .body span{display:block;font-size:13.5px;color:#cfd6e2;margin-top:3px;max-width:580px}
.diag-cta .go{flex:0 0 auto;background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#1a1407;font-weight:700;font-size:13.5px;padding:11px 20px;border-radius:999px;white-space:nowrap;box-shadow:0 6px 18px rgba(201,162,75,.35);position:relative;z-index:1}
@media(max-width:720px){
  .diag-cta{flex-direction:column;text-align:center;padding:22px}
  .diag-cta .body span{max-width:none}
  .diag-cta .go{width:100%}
}

/* ====== Why Rejuvra materials strip (reusable) ====== */
.why-materials{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:28px 0 22px}
.mat-chip{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 18px;text-align:center;transition:.25s;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.mat-chip:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:var(--shadow)}
.mat-chip .mat-chip-ico{width:48px;height:48px;margin:0 auto 10px;border-radius:50%;background:var(--gold-soft);color:#7a5e1f;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}
.mat-chip .mat-chip-ico svg{width:22px;height:22px}
.mat-chip b{display:block;font-family:var(--serif);font-size:19px;color:var(--navy);font-weight:700;margin-bottom:6px;line-height:1.15}
.mat-chip span{display:block;font-size:13px;color:var(--grey);line-height:1.4}
.mat-chip .mat-chip-tag{position:absolute;top:10px;right:10px;background:var(--navy);color:var(--gold-2);font-size:9.5px;font-weight:700;letter-spacing:1px;padding:3px 7px;border-radius:999px;text-transform:uppercase}
.why-strip-cta{text-align:center;margin-top:14px}
.why-strip-cta .btn{padding:12px 28px}
@media(max-width:900px){.why-materials{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.why-materials{grid-template-columns:1fr}}

/* Compact variant for PDPs */
.why-materials.compact{margin:12px 0}
.why-materials.compact .mat-chip{padding:16px 14px}
.why-materials.compact .mat-chip-ico{width:38px;height:38px;font-size:18px}
.why-materials.compact .mat-chip-ico svg{width:18px;height:18px}
.why-materials.compact b{font-size:15.5px}
.why-materials.compact span{font-size:12.5px}

/* Dark variant for diagnostic page */
.why-cta-band{background:linear-gradient(135deg,#0b1222,#152442);color:#fff;border-radius:20px;padding:40px 36px;position:relative;overflow:hidden;display:grid;grid-template-columns:1.3fr .7fr;gap:30px;align-items:center}
.why-cta-band::before{content:"";position:absolute;right:-80px;top:-80px;width:360px;height:360px;background:radial-gradient(circle,rgba(201,162,75,.22),transparent 65%);pointer-events:none}
.why-cta-band > *{position:relative;z-index:1}
.why-cta-band .kicker{color:var(--gold-2);font-size:12px;letter-spacing:3px;text-transform:uppercase;font-weight:700}
.why-cta-band h2{font-family:var(--serif);font-size:34px;color:#fff;margin:8px 0 10px;line-height:1.15}
.why-cta-band p{color:#cfd6e2;font-size:15px;margin-bottom:16px;max-width:560px}
.why-cta-band .mini-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:16px}
.why-cta-band .mini-stat{text-align:center}
.why-cta-band .mini-stat .n{font-family:var(--serif);font-size:22px;color:var(--gold-2);font-weight:700;line-height:1}
.why-cta-band .mini-stat .l{font-size:11.5px;color:#aab4c5;letter-spacing:.4px;margin-top:4px;text-transform:uppercase}
@media(max-width:820px){
  .why-cta-band{grid-template-columns:1fr;padding:30px 24px;text-align:center}
  .why-cta-band h2{font-size:26px}
  .why-cta-band p{margin-left:auto;margin-right:auto}
}

/* ====== Firmness scale infographic (PDP) ====== */
.firm-scale-wrap{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 30px 24px;box-shadow:var(--shadow-sm);max-width:860px;margin:0 auto}
.firm-scale-wrap .scale-head{text-align:center;margin-bottom:14px}
.firm-scale-wrap .scale-head .k{color:var(--gold);font-size:11.5px;letter-spacing:3px;text-transform:uppercase;font-weight:700}
.firm-scale-wrap .scale-head b{font-family:var(--serif);font-size:26px;color:var(--navy);display:block;margin:6px 0 2px;line-height:1.1}
.firm-scale-wrap .scale-head small{font-size:13px;color:var(--grey)}
.firm-scale{position:relative;padding:46px 10px 56px;margin-top:8px}
.firm-scale .track{position:relative;height:12px;background:linear-gradient(90deg,#5a8fc9 0%,#4fd1a5 28%,#e3c777 52%,#f0b56a 75%,#e38a7a 100%);border-radius:7px;box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}
.firm-scale .labels{position:absolute;top:calc(100% - 44px);left:0;right:0;display:flex;justify-content:space-between;font-size:11px;color:var(--grey);letter-spacing:.6px;font-weight:600;text-transform:uppercase;padding:0 10px}
.firm-scale .labels span{text-align:center;flex:1}
.firm-scale .pt{position:absolute;top:-6px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;cursor:default}
.firm-scale .pt .dot{width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.9);border:2px solid #8ea0bd;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:.2s}
.firm-scale .pt .lbl{position:absolute;top:-28px;left:50%;transform:translateX(-50%);background:rgba(15,26,46,.9);color:#fff;font-size:11px;padding:3px 8px;border-radius:5px;white-space:nowrap;opacity:0;transition:.2s;pointer-events:none}
.firm-scale .pt .lbl::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:rgba(15,26,46,.9)}
.firm-scale .pt:hover .lbl{opacity:1}
.firm-scale .pt.current{z-index:5}
.firm-scale .pt.current .dot{width:22px;height:22px;background:var(--gold);border-color:var(--navy);box-shadow:0 4px 14px rgba(201,162,75,.6);margin-top:-4px}
.firm-scale .pt.current .lbl{opacity:1;background:var(--navy);color:var(--gold-2);font-weight:700;font-size:12px;top:-34px}
.firm-scale .pt.current .lbl::after{border-top-color:var(--navy)}
.firm-scale .pt .pin{position:absolute;top:16px;left:50%;transform:translateX(-50%);font-size:10.5px;color:var(--grey);font-weight:600;white-space:nowrap;opacity:0;transition:.2s}
.firm-scale .pt.current .pin{opacity:1;color:var(--navy)}
.firm-scale-wrap .scale-note{font-size:13px;color:var(--grey);text-align:center;margin-top:14px;line-height:1.5}
.firm-scale-wrap .scale-note a{color:var(--gold);font-weight:600}
@media(max-width:640px){
  .firm-scale-wrap{padding:22px 18px}
  .firm-scale{padding:40px 4px 46px}
  .firm-scale .labels{font-size:10px}
  .firm-scale .pt .pin{display:none}
}

/* ====== Interactive Firmness Picker (PDP) ====== */
.firm-pick-wrap{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 30px 26px;box-shadow:var(--shadow-sm);max-width:900px;margin:0 auto}
.firm-pick-wrap .ph{text-align:center;margin-bottom:18px}
.firm-pick-wrap .ph .k{color:var(--gold);font-size:11.5px;letter-spacing:3px;text-transform:uppercase;font-weight:700}
.firm-pick-wrap .ph h3{font-family:var(--serif);font-size:28px;color:var(--navy);margin:6px 0 4px;line-height:1.1}
.firm-pick-wrap .ph p{font-size:13.5px;color:var(--grey);margin:0}
.firm-pick{position:relative;padding:52px 12px 62px;margin-top:10px}
.firm-pick .track{position:relative;height:14px;background:linear-gradient(90deg,#5a8fc9 0%,#4fd1a5 28%,#e3c777 52%,#f0b56a 75%,#e38a7a 100%);border-radius:8px;box-shadow:inset 0 1px 3px rgba(0,0,0,.12)}
.firm-pick .labels{position:absolute;top:calc(100% - 48px);left:0;right:0;display:flex;justify-content:space-between;font-size:11px;color:var(--grey);letter-spacing:.6px;font-weight:600;text-transform:uppercase;padding:0 12px}
.firm-pick .labels span{text-align:center;flex:1}
.firm-pick .opt{position:absolute;top:-10px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;cursor:pointer;z-index:3;background:none;border:0;padding:0;font:inherit}
.firm-pick .opt .dot{width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--gold);box-shadow:0 3px 10px rgba(0,0,0,.15);transition:transform .18s,box-shadow .18s}
.firm-pick .opt .cap{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:600;color:var(--navy);white-space:nowrap;background:#f6f3eb;padding:3px 8px;border-radius:5px;border:1px solid var(--line)}
.firm-pick .opt:hover .dot{transform:scale(1.15)}
.firm-pick .opt.selected{z-index:6}
.firm-pick .opt.selected .dot{background:var(--gold);border-color:var(--navy);box-shadow:0 0 0 6px rgba(201,162,75,.22),0 4px 14px rgba(201,162,75,.5);transform:scale(1.2)}
.firm-pick .opt.selected .cap{background:var(--navy);color:var(--gold-2);border-color:var(--navy)}
.firm-pick-wrap .pick-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding-top:16px;border-top:1px dashed var(--line)}
.firm-pick-wrap .pick-foot .sel-txt{font-size:14px;color:var(--grey)}
.firm-pick-wrap .pick-foot .sel-txt b{color:var(--navy);font-size:15px}
.firm-pick-wrap .pick-foot .sel-txt .val{color:var(--gold);font-weight:700}
.firm-pick-wrap .pick-foot .note{font-size:12.5px;color:var(--grey)}
.firm-pick-wrap .pick-foot .note a{color:var(--gold);font-weight:600}
@media(max-width:640px){
  .firm-pick-wrap{padding:22px 16px 20px}
  .firm-pick{padding:46px 4px 56px}
  .firm-pick .labels{font-size:9.5px;padding:0 4px}
  .firm-pick .opt .cap{font-size:10px;padding:2px 6px;bottom:-28px}
  .firm-pick .opt .dot{width:18px;height:18px;border-width:2.5px}
}

/* =========================================================
   PWA install banner
   ========================================================= */
.pwa-install-banner{position:fixed;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:9999;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#0f1a2e,#16243f);color:#fff;border:1px solid rgba(201,162,75,.5);border-radius:14px;padding:12px 14px;box-shadow:0 14px 36px rgba(11,18,34,.45);font-family:inherit;max-width:520px;margin:0 auto}
.pwa-install-ico{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#c9a24b,#e3c777);color:#1a1407;display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}
.pwa-install-body{flex:1;min-width:0}
.pwa-install-body b{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;line-height:1.1;color:#fff}
.pwa-install-body span{display:block;font-size:12.5px;color:#cfd6e2;margin-top:2px}
.pwa-install-btn{flex:0 0 auto;background:linear-gradient(135deg,#c9a24b,#e3c777);color:#1a1407;border:0;border-radius:999px;font-weight:700;padding:9px 16px;cursor:pointer;font-size:13.5px}
.pwa-install-x{flex:0 0 auto;background:rgba(255,255,255,.08);border:0;color:#8ea0bd;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1}
.pwa-install-x:hover{background:rgba(255,255,255,.18);color:#fff}

/* Running as installed PWA — hide the header's Buy Now overflow + add a safe-area pad */
@media (display-mode:standalone){
  body{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
  .topbar{display:none}
}

/* =========================================================
   Comprehensive mobile customisation (<= 820px / 640px / 480px)
   ========================================================= */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{-webkit-tap-highlight-color:rgba(201,162,75,.15)}
img{max-width:100%;height:auto}
button,a,.btn,[role=button]{touch-action:manipulation}

@media(max-width:820px){
  .container{padding-left:18px;padding-right:18px}
  section{padding:48px 0}
  .hero h1,section h2{font-size:34px !important;line-height:1.15}
  .section-head p,.lead{font-size:15px}
  .btn{padding:12px 20px;min-height:46px;font-size:14.5px}
  .topbar{font-size:11.5px;padding:7px 10px;text-align:center}
  .header .nav{min-height:62px}
  .brand .name{font-size:20px;letter-spacing:3px}
  .brand .logo{width:36px;height:36px}
  .nav-actions .btn-ghost{display:none}
  .nav-actions .btn-gold{padding:9px 14px;font-size:13px}
  .products{grid-template-columns:1fr !important;gap:18px}
  .card .card-media{height:200px}
  .card .card-body{padding:20px}
  .card h3{font-size:22px}
  .reviews{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px}
  .cta-band{padding:34px 22px;text-align:center}
  .cta-band h2{font-size:26px !important}
  .pdp{grid-template-columns:1fr !important;gap:22px}
  .pdp-visual.pdp-visual-photo{padding:16px}
  .pdp-visual.pdp-visual-photo .pdp-thumbs{grid-template-columns:repeat(4,1fr)}
  .pdp-cta{flex-direction:column;gap:10px}
  .pdp-cta .btn{width:100%}
  .compare-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -18px;padding:0 18px}
  .compare{min-width:720px}
  .hero-stats{gap:28px !important;flex-direction:row;flex-wrap:wrap;justify-content:space-around}
  .hero-stats .num{font-size:28px}
  .hero-stats .lbl{font-size:11.5px}
  .why-materials{grid-template-columns:1fr 1fr;gap:12px}
  .mat-chip{padding:16px 14px}
  .mat-chip b{font-size:14px}
  .mat-chip span{font-size:12.5px}
  .diag-cta{flex-direction:column;text-align:center;padding:20px 18px;gap:12px}
  .diag-cta .body b{font-size:19px}
  .diag-cta .body span{font-size:13px}
  .diag-cta .go{width:100%}
  .faq-q{font-size:15px;padding:16px 0}
  .faq-a{font-size:14px}
}

@media(max-width:640px){
  section{padding:38px 0}
  .hero h1,section h2{font-size:28px !important}
  .footer-grid{grid-template-columns:1fr;gap:24px}
  .why-materials{grid-template-columns:1fr}
  .hero-stats{gap:18px !important}
  .hero-stats .num{font-size:24px}
  .hero-stats > div{min-width:40%}
  .card .card-media{height:180px}
  .section-head{margin-bottom:24px}
  .section-head h2{font-size:26px !important}
  .nav-links{inset:62px 0 auto 0;padding:12px 20px 24px}
  .nav-links a{padding:16px 0;font-size:16px}
  .firm,.firm-chip{font-size:11.5px}
  h1{font-size:28px !important;line-height:1.2}
  .summary{font-size:15px}
  .price-now{font-size:28px}
  .price-was{font-size:16px}
  .pdp-visual.pdp-visual-photo{padding:12px}
  .pdp-visual.pdp-visual-photo .pdp-eyebrow{font-size:13px;letter-spacing:2px}
  .breadcrumb{font-size:11.5px;padding-top:14px;padding-bottom:14px}
  .firm-pick-wrap .ph h3{font-size:22px}
  .firm-pick-wrap .ph p{font-size:12.5px}
  .firm-pick-wrap .pick-foot{flex-direction:column;align-items:flex-start;text-align:left}
}

@media(max-width:480px){
  .container{padding-left:14px;padding-right:14px}
  section{padding:32px 0}
  .nav-actions .btn-gold{padding:8px 12px;font-size:12px}
  .brand .name{font-size:18px;letter-spacing:2px}
  .brand .logo{width:32px;height:32px}
  .btn{padding:11px 16px;font-size:14px}
  .card-badge{font-size:10px;padding:4px 9px}
  .chips .chip{font-size:11px;padding:4px 9px}
  .cta-band h2{font-size:22px !important}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center;font-size:12px}
}

/* =========================================================
   Sleep Diagnostic — mobile
   ========================================================= */
@media(max-width:820px){
  .diag-shell,.diag-wrap,.diagnostic-wrap{padding:18px !important}
  .diag-step h2,.step-head h2,.diag-q{font-size:22px !important;line-height:1.2}
  .diag-step p,.step-head p{font-size:14px}
  .diag-opts,.opt-grid,.options,.choice-grid,.choices{grid-template-columns:1fr 1fr !important;gap:10px !important}
  .choices.three,.choices.four,.choices.pill{grid-template-columns:repeat(3,1fr) !important}
  .choices.pill .choice.compact,.choices.four .choice.compact{min-height:48px;padding:10px 8px !important;font-size:13px !important}
  .diag-opt,.opt,.choice,.q-opt{padding:14px 12px !important;font-size:14px !important;min-height:60px;border-radius:12px}
  .diag-opt b,.opt b,.choice b{font-size:14.5px}
  .diag-opt span,.opt span,.choice span{font-size:12px}
  .diag-nav,.step-nav,.q-nav{flex-direction:row;gap:10px;position:sticky;bottom:0;background:#fff;padding:12px 0;border-top:1px solid #ececea;z-index:5}
  .diag-nav .btn,.step-nav .btn,.q-nav .btn{flex:1;padding:14px;font-size:15px}
  .progress,.diag-progress{gap:4px}
  .progress span,.diag-progress span{height:3px}
  .result-card,.rx-card,.diag-result{padding:22px 18px !important}
  .result-card h2,.rx-card h2{font-size:24px !important}
  .diag-vis,.body-vis,.avatar-vis,.slider-vis{max-width:100% !important;height:auto !important}
  .diag-vis svg,.body-vis svg{width:100%;height:auto}
  input[type=range]{width:100%;height:36px}
  input[type=number],input[type=text],select{font-size:16px;padding:12px 14px;border-radius:10px;width:100%}
  .diag-pain-map{max-width:100%}
}

@media(max-width:480px){
  .diag-opts,.opt-grid,.options,.choice-grid,.choices{grid-template-columns:1fr !important}
  .choices.three,.choices.four,.choices.pill{grid-template-columns:repeat(2,1fr) !important}
  .diag-opt,.opt,.choice{text-align:left;min-height:56px}
  .diag-step h2,.step-head h2,.diag-q{font-size:20px !important}
}

/* Hide hover-only reveals on touch devices */
@media(hover:none){
  .firm-scale .pt .lbl{opacity:1 !important}
  .nav-links a::after{display:none}
}

/* ====== Products Dropdown ====== */
.has-dropdown{position:relative;display:inline-block}
.dd-trigger{background:none;border:0;font:inherit;font-size:15px;font-weight:500;color:var(--ink);cursor:pointer;padding:6px 0;display:inline-flex;align-items:center;gap:5px;transition:.2s}
.dd-trigger:hover{color:var(--gold)}
.dd-arrow{font-size:10px;opacity:.55;transition:.25s;display:inline-block}
.has-dropdown:hover .dd-arrow,.has-dropdown.open .dd-arrow{transform:rotate(180deg);opacity:1;color:var(--gold)}
.dd-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(6px);background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;box-shadow:0 20px 50px rgba(15,26,46,.15);min-width:600px;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:22px 22px;opacity:0;visibility:hidden;transition:opacity .22s,transform .22s,visibility .22s;z-index:250}
.dd-cta{grid-column:1/-1;display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#0f1a2e,#16243f);color:#fff;padding:14px 18px;border-radius:10px;text-decoration:none;font-size:13.5px;font-weight:600;border:1px solid rgba(201,162,75,.4);margin-top:4px;transition:.2s}
.dd-cta:hover{background:linear-gradient(135deg,#16243f,#1d3155);border-color:var(--gold);padding-left:22px}
.dd-cta b{color:var(--gold-2,#e3c777);font-weight:700}
.footer-bottom .admin-link{color:#8ea0bd;text-decoration:none;opacity:.75;transition:.2s;font-size:12px}
.footer-bottom .admin-link:hover{color:var(--gold);opacity:1;text-decoration:underline}

/* ====== Homepage product card hover-swap gallery (1:1 images) ====== */
.card-media.card-media-img{position:relative;aspect-ratio:1/1;height:auto;overflow:hidden;background:#f6f3eb;padding:0}
.card-media-img .card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .45s ease;display:block}
.card-media-img .card-img-2{opacity:0}
.card-media-img:hover .card-img-1,.card-media-img.swap .card-img-1{opacity:0}
.card-media-img:hover .card-img-2,.card-media-img.swap .card-img-2{opacity:1}
.card-media-img .card-badge{position:absolute;top:12px;left:12px;z-index:3}
.card-media-img .card-views{position:absolute;bottom:10px;right:10px;background:rgba(15,26,46,.78);color:#fff;font-size:10.5px;padding:4px 9px;border-radius:999px;letter-spacing:.5px;opacity:0;transition:.3s;pointer-events:none;z-index:2;font-weight:600}
.card-media-img:hover .card-views{opacity:0}
.card:hover .card-media-img .card-views{opacity:0}
@media(hover:none){
  .card-media-img .card-views{opacity:.95}
  .card-media-img.swap .card-views{opacity:0}
}
@keyframes cardViewPulse{0%,100%{transform:scale(1);opacity:.95}50%{transform:scale(1.08);opacity:1}}
@media(hover:none){
  .card-media-img .card-views{animation:cardViewPulse 2.4s ease-in-out 2 .5s}
}

/* ====== Brand image logo (replaces SVG+wordmark when rejuvra-logo.png is present) ====== */
.brand-img{height:48px;width:auto;aspect-ratio:352/211;display:block;object-fit:contain;border-radius:4px}
@media(max-width:820px){ .brand-img{height:40px} }
@media(max-width:480px){ .brand-img{height:34px} }
.footer .brand-img{height:52px}
.dd-cta span{margin-left:auto;color:var(--gold);font-size:16px}
.has-dropdown:hover .dd-menu,.has-dropdown:focus-within .dd-menu,.has-dropdown.open .dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.has-dropdown::before{content:"";position:absolute;top:100%;left:0;right:0;height:20px}
.dd-section .dd-head{font-size:11px;color:var(--gold);letter-spacing:2px;text-transform:uppercase;font-weight:700;margin:0 0 10px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.dd-section a{display:block;padding:7px 0;font-size:14px;color:var(--navy);text-decoration:none;transition:color .18s,padding .18s;font-weight:500}
.dd-section a:hover{color:var(--gold);padding-left:5px}
.dd-section a::after{display:none !important}
.dd-section a .dd-sub{display:block;font-size:11.5px;color:var(--grey);font-weight:400;margin-top:1px}
@media(max-width:980px){
  .has-dropdown{width:100%;display:block}
  .dd-trigger{padding:14px 0;width:100%;justify-content:space-between;border-bottom:1px solid var(--line);font-size:16px;color:var(--ink)}
  .dd-menu{position:static;transform:none;opacity:1;visibility:hidden;min-width:0;grid-template-columns:1fr;box-shadow:none;border:0;padding:0;background:none;max-height:0;overflow:hidden;transition:max-height .3s,visibility .3s;gap:0}
  .has-dropdown.open .dd-menu{visibility:visible;max-height:900px;padding:4px 0 12px 10px}
  .dd-section .dd-head{margin-top:12px;border-bottom:0;padding-bottom:4px}
  .dd-section a{font-size:15px;padding:9px 0;border-bottom:0}
  .has-dropdown::before{display:none}
}

/* =========================================================
   PDP Trust Strip (trade-in + white-glove) + production counter
   ========================================================= */
#rj-trust-strip{margin-top:18px;padding:18px;background:linear-gradient(135deg,#f6f3eb,#fff);border:1px solid #ececea;border-radius:14px}
#rj-trust-strip .rj-ts-row{display:grid;gap:10px;margin-bottom:14px}
.rj-ts-opt{display:flex;align-items:center;gap:12px;padding:14px;background:#fff;border:1.5px solid #ececea;border-radius:12px;cursor:pointer;transition:.2s;position:relative}
.rj-ts-opt:hover{border-color:#c9a24b}
.rj-ts-opt.rj-selected{border-color:#c9a24b;background:linear-gradient(135deg,#fff,#f6f3eb);box-shadow:0 2px 8px rgba(201,162,75,.14)}
.rj-ts-opt input{width:20px;height:20px;accent-color:#c9a24b;cursor:pointer;flex:0 0 auto;margin:0}
.rj-ts-opt > div{flex:1}
.rj-ts-opt b{display:block;color:#0f1a2e;font-size:14.5px;line-height:1.2}
.rj-ts-opt span{display:block;color:#3a4253;font-size:12.5px;margin-top:3px;line-height:1.4}
.rj-ts-pill{background:#0f1a2e;color:#e3c777;font-size:11px;font-weight:700;letter-spacing:.5px;padding:5px 10px;border-radius:999px;flex:0 0 auto;align-self:center}
#rj-trust-strip .rj-ts-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-top:14px;border-top:1px dashed #ececea}
.rj-ts-badge{text-align:center;padding:8px 4px}
.rj-ts-ico{font-size:20px;margin-bottom:4px}
.rj-ts-badge b{display:block;font-size:12px;color:#0f1a2e;font-weight:700;line-height:1.2}
.rj-ts-badge span{display:block;font-size:11px;color:#7a5e1f;margin-top:2px}
@media(max-width:640px){
  #rj-trust-strip .rj-ts-badges{grid-template-columns:1fr 1fr}
  .rj-ts-opt b{font-size:13.5px}
  .rj-ts-opt span{font-size:11.5px}
}

#rj-prod-counter{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:6px 12px;background:#f6f3eb;color:#7a5e1f;border-radius:999px;border:1px solid #e3c777;font-size:12px;font-weight:600}
.rj-pc-dot{width:7px;height:7px;background:#4fd1a5;border-radius:50%;box-shadow:0 0 0 0 rgba(79,209,165,.5);animation:rjPulse 2.4s infinite;flex:0 0 auto}
@keyframes rjPulse{0%{box-shadow:0 0 0 0 rgba(79,209,165,.6)}70%{box-shadow:0 0 0 7px rgba(79,209,165,0)}100%{box-shadow:0 0 0 0 rgba(79,209,165,0)}}
#rj-prod-counter b{color:#0f1a2e}
.rj-pc-date{color:#c9a24b !important}

/* =========================================================
   Homepage live order ticker
   ========================================================= */
#rj-ticker{position:fixed;left:14px;bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:9400;background:#fff;border:1px solid #ececea;border-left:4px solid #4fd1a5;border-radius:12px;padding:12px 36px 12px 14px;box-shadow:0 10px 28px rgba(15,26,46,.12);font-size:13px;color:#3a4253;max-width:320px;opacity:0;transform:translateX(-30px);transition:.4s}
#rj-ticker.show{opacity:1;transform:translateX(0)}
#rj-ticker .rj-tk-dot{display:inline-block;width:8px;height:8px;background:#4fd1a5;border-radius:50%;margin-right:8px;vertical-align:middle;animation:rjPulse 2s infinite}
#rj-ticker b{color:#0f1a2e;font-weight:700}
#rj-ticker .rj-tk-ago{color:#7a5e1f;font-size:11px;display:block;margin-top:2px}
#rj-ticker .rj-tk-x{position:absolute;top:6px;right:8px;background:none;border:0;color:#8ea0bd;cursor:pointer;font-size:16px;line-height:1}
#rj-ticker .rj-tk-x:hover{color:#0f1a2e}
@media(max-width:720px){#rj-ticker{left:80px;bottom:14px;max-width:calc(100vw - 160px);font-size:12px;padding:10px 32px 10px 12px}}

/* ===== Razorpay / Payment Trust badges ===== */
.rj-pay-trust{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 18px;padding:14px 10px;background:#fff;border:1px solid var(--line);border-radius:14px;margin:14px auto;max-width:720px}
.rj-pay-trust .rj-pt-lead{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--navy);letter-spacing:.2px}
.rj-pay-trust .rj-pt-lead svg{flex:0 0 auto}
.rj-pay-trust .rj-pt-methods{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.rj-pay-trust .rj-pt-m{background:#faf6ef;border:1px solid #efe7d0;border-radius:6px;padding:6px 10px;font-size:11px;font-weight:700;letter-spacing:.3px;color:#3a4253;line-height:1;display:inline-flex;align-items:center;min-height:28px;font-family:Arial,sans-serif}
.rj-pay-trust .rj-pt-m.upi{color:#0e7a5c;background:#eafaf3;border-color:#c7ecd9}
.rj-pay-trust .rj-pt-m.visa{color:#1a1f71;letter-spacing:1px}
.rj-pay-trust .rj-pt-m.mc{color:#eb001b}
.rj-pay-trust .rj-pt-m.rupay{color:#00704a;letter-spacing:.5px}
.rj-pay-trust .rj-pt-m.nb{color:#4b5563}
.rj-pay-trust .rj-pt-m.emi{color:#7a5e1f;background:#fff;border-color:#e3c777}
.rj-pay-trust .rj-pt-m.wallet{color:#4b5563}
@media(max-width:640px){.rj-pay-trust{gap:10px;padding:12px 8px;margin:10px}
  .rj-pay-trust .rj-pt-m{font-size:10.5px;padding:5px 8px}}

/* Smaller inline Razorpay reassurance under Add-to-Cart / Buy Now */
.rj-secured-line{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:var(--grey);margin-top:10px;letter-spacing:.2px}
.rj-secured-line svg{flex:0 0 auto}
.rj-secured-line b{color:var(--navy);font-weight:600}

/* Prominent Razorpay trust block under PDP Buy Now */
.rj-secured-block{margin:14px 0 4px;padding:14px 16px;background:linear-gradient(180deg,#fbfaf5,#f5f1e6);border:1px solid #e6dfc8;border-radius:14px;font-family:Inter,system-ui,sans-serif}
.rj-sb-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px dashed #d4b876}
.rj-sb-rp{display:flex;align-items:center;gap:10px;background:#0f1a2e;color:#fff;padding:9px 14px;border-radius:10px;flex:1}
.rj-sb-rp-dot{width:10px;height:10px;background:#19c37d;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 3px rgba(25,195,125,.22);animation:rjSbPulse 1.8s ease-in-out infinite}
@keyframes rjSbPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}
.rj-sb-rp-txt small{display:block;font-size:9.5px;letter-spacing:2px;color:#cfd6e2;text-transform:uppercase;line-height:1.3;font-weight:700}
.rj-sb-rp-txt b{display:block;font-family:'Cormorant Garamond',serif;font-size:17px;color:#e3c777;letter-spacing:.3px;line-height:1.1;font-weight:700}
.rj-sb-cert{display:flex;align-items:center;gap:7px;color:#0e7a5c;font-size:10.5px;font-weight:800;letter-spacing:.5px;line-height:1.2;text-align:left;text-transform:uppercase}
.rj-sb-cert svg{flex:0 0 auto}
.rj-sb-methods{display:flex;flex-wrap:wrap;gap:5px;padding:12px 0;justify-content:center}
.rj-sb-m{display:inline-flex;align-items:center;padding:5px 9px;border-radius:6px;font-size:10.5px;font-weight:800;letter-spacing:.5px;background:#fff;border:1px solid #ececea}
.rj-sb-m.upi{background:#eafaf3;color:#0e7a5c;border-color:#c7ecd9}
.rj-sb-m.visa{color:#1a1f71;font-style:italic;font-size:12px}
.rj-sb-m.mc{color:#eb001b}
.rj-sb-m.rupay{color:#00704a}
.rj-sb-m.amex{background:#016fd0;color:#fff;border-color:#016fd0}
.rj-sb-m.emi{background:#faf6ef;color:#7a5e1f;border-color:#e3c777}
.rj-sb-m.nb{color:#4b5563}
.rj-sb-m.wallet{color:#b91c1c}
.rj-sb-m.cod{background:#fff4e5;color:#7a5e1f;border-color:#f5a623}
.rj-sb-perks{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;padding-top:10px;border-top:1px dashed #d4b876;font-size:11.5px;color:#0f1a2e;font-weight:600}
.rj-sb-perks span{display:inline-flex;align-items:center;gap:2px}
@media(max-width:560px){.rj-sb-top{flex-direction:column;align-items:stretch;gap:10px}.rj-sb-cert{justify-content:center}.rj-sb-perks{grid-template-columns:1fr;font-size:12px}}

/* Trust strip injected into empty space of sticky PDP image column */
.rj-pdp-trust{margin-top:16px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:14px;font-family:Inter,system-ui,sans-serif}
.rj-pdp-trust .rj-pt-eyebrow{font-size:10px;letter-spacing:2.5px;color:#8a7640;font-weight:800;text-transform:uppercase;margin-bottom:10px;text-align:center}
.rj-pdp-trust .rj-pt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rj-pdp-trust .rj-pt-item{display:flex;gap:10px;align-items:flex-start;padding:10px;background:var(--cream);border-radius:10px}
.rj-pdp-trust .rj-pt-item .rj-pt-ico{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:15px}
.rj-pdp-trust .rj-pt-item b{display:block;font-size:12.5px;color:var(--navy);font-weight:700;line-height:1.2}
.rj-pdp-trust .rj-pt-item span{display:block;font-size:10.5px;color:var(--grey);line-height:1.4;margin-top:2px}
.rj-pdp-trust .rj-pt-foot{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--grey)}
.rj-pdp-trust .rj-pt-foot b{color:var(--navy);font-size:12px}
.rj-pdp-trust .rj-pt-foot a{color:var(--gold);text-decoration:none;font-weight:600}
@media(max-width:720px){.rj-pdp-trust{display:none}}

/* ===== SITEWIDE MOBILE FIXES ===== */
/* Prevent horizontal page scroll — any element overflowing the viewport is clipped, not pushing the body */
html,body{overflow-x:hidden;max-width:100%}
*{min-width:0}

/* Form controls — ensure full width, 16px (prevents iOS auto-zoom + input shift to right), proper box-sizing */
input,select,textarea,button{box-sizing:border-box;max-width:100%;font-family:inherit}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=url],input[type=search],input[type=password],input[type=date],textarea,select{width:100%;font-size:16px;-webkit-appearance:none;appearance:none}
select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%237a5e1f' d='M6 8L0 0h12z'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px !important}
label{display:block}

/* Products mega-menu on mobile — keep it inside the open mobile nav drawer, never off-screen */
@media(max-width:720px){
  .nav-links{width:100vw;max-width:100vw;left:0;right:0;box-sizing:border-box;overflow-y:auto;max-height:calc(100vh - 74px);-webkit-overflow-scrolling:touch}
  .has-dropdown{width:100%}
  .has-dropdown.open .dd-menu{width:100%;max-width:100%;box-sizing:border-box;padding-right:0}
  .dd-section{width:100%;max-width:100%}
  .dd-section a{white-space:normal;word-wrap:break-word}
  .dd-section a .dd-sub{display:inline-block;margin-left:0;color:var(--grey)}
  .dd-cta{display:flex;flex-wrap:wrap;align-items:flex-start;padding:12px 14px;font-size:13px;line-height:1.4;word-wrap:break-word;max-width:100%;box-sizing:border-box;margin-right:0}
  .dd-cta b{display:block;width:100%;margin-bottom:4px}
  .dd-cta span{margin-left:0}
}

/* Diagnostic page — un-sticky the visualization panel on mobile so it stacks naturally and the quiz is fully usable */
@media(max-width:980px){
  .viz-panel{position:relative !important;top:auto !important;margin-bottom:18px}
  .viz-stage{height:220px}
}
@media(max-width:640px){
  .diag-hero{padding:24px 14px 10px}
  .diag-hero h1{font-size:30px}
  .diag-wrap{padding:10px 0 40px;gap:16px}
  .quiz{padding:18px 16px;border-radius:14px}
  .quiz .q{font-size:19px}
  .choices.two,.choices.three,.choices.four{grid-template-columns:1fr}
  .choices.pill{grid-template-columns:repeat(2,1fr)}
  .bodytypes{grid-template-columns:repeat(2,1fr)}
  .quiz-nav{flex-wrap:wrap;gap:8px}
  .quiz-nav .btn{flex:1 1 auto;min-width:120px;text-align:center}
  .viz-stage{height:180px}
  .metrics{grid-template-columns:repeat(3,1fr);padding:10px 0}
  .metric .val{font-size:22px}
}

/* Generic forms (swatch-kit, contact, etc.) — make all form rows full-width on mobile */
@media(max-width:640px){
  form label{width:100%}
  form input,form select,form textarea{width:100% !important;max-width:100%}
}



/* ─── Fixed firmness display (PDPs) — each model has one set firmness ─── */
.firm-fixed .opt{cursor:default;pointer-events:none}
.firm-fixed .opt.cap-top .cap{bottom:auto;top:-34px}
.firm-fixed-wrap .ph h3{color:var(--gold)}
body.sig-dark .firm-pick-wrap{background:rgba(255,255,255,.04);border:1px solid rgba(227,199,119,.18);color:#e8ebf3}
body.sig-dark .firm-pick-wrap p{color:#b8c1d4}
body.sig-dark .firm-pick .opt .dot{background:#162540;border-color:#e3c777}
body.sig-dark .firm-pick .opt.selected .dot{background:#e3c777}
body.sig-dark .firm-pick .labels span{color:#9aa7bd}
body.sig-dark .sel-txt{color:#cfd6e2}
body.sig-dark .sel-txt b{color:#e3c777}
body.sig-dark .firm-fixed-wrap .ph h3{color:#e3c777}

/* ─── Flat-Pack Promise — never rolled, never compressed ─── */
.flatpack{background:radial-gradient(900px 420px at 85% -10%,rgba(201,162,75,.18),transparent 60%),radial-gradient(700px 380px at 0% 110%,rgba(79,209,165,.06),transparent 60%),linear-gradient(160deg,#0b1424 0%,#0f1a2e 55%,#16243f 100%);color:#e8ebf3;position:relative;overflow:hidden}
.fp-head{text-align:center;max-width:780px;margin:0 auto 42px}
.fp-kicker{display:inline-block;color:#e3c777;font-size:11px;letter-spacing:3.2px;text-transform:uppercase;font-weight:700;border:1px solid rgba(227,199,119,.35);border-radius:999px;padding:6px 14px}
.fp-head h2{font-family:var(--serif);font-size:48px;line-height:1.06;color:#fff;margin:18px 0 14px;font-weight:600}
.fp-head h2 em{font-style:italic;color:#e3c777}
.fp-head p{color:#b8c1d4;font-size:16.5px;line-height:1.65;margin:0}
.fp-head p b{color:#fff;font-weight:600}
.fp-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:stretch;max-width:1040px;margin:0 auto}
.fp-card{border-radius:20px;padding:26px 28px 26px}
.fp-them{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09)}
.fp-us{background:linear-gradient(160deg,rgba(227,199,119,.15),rgba(227,199,119,.04));border:1px solid rgba(227,199,119,.5);box-shadow:0 24px 60px rgba(0,0,0,.38)}
.fp-ill{height:150px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;border-radius:14px;background:rgba(0,0,0,.18)}
.fp-ill svg{width:100%;max-width:250px;height:auto;overflow:visible}
.fp-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:#9aa7bd}
.fp-us .fp-label{color:#e3c777}
.fp-card h3{font-family:var(--serif);font-size:27px;color:#fff;margin:6px 0 16px;font-weight:600;line-height:1.15}
.fp-them h3{color:#cfd6e2}
.fp-list{list-style:none;padding:0;margin:0;display:grid;gap:11px}
.fp-list li{position:relative;padding-left:30px;font-size:14.5px;line-height:1.5;color:#cfd6e2}
.fp-list li::before{position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800}
.fp-them .fp-list li{color:#9aa7bd}
.fp-them .fp-list li::before{content:'✕';color:#e38a7a;background:rgba(227,138,122,.14)}
.fp-us .fp-list li::before{content:'✓';color:#0f1a2e;background:#e3c777}
.fp-vs{align-self:center;width:54px;height:54px;border-radius:50%;border:1px solid rgba(227,199,119,.45);display:flex;align-items:center;justify-content:center;font-family:var(--serif);color:#e3c777;font-size:19px;font-style:italic;background:#0f1a2e}
.fp-stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:1040px;margin:44px auto 0;border-top:1px solid rgba(227,199,119,.22);border-bottom:1px solid rgba(227,199,119,.22)}
.fp-stats div{text-align:center;padding:24px 12px;border-left:1px solid rgba(227,199,119,.14)}
.fp-stats div:first-child{border-left:0}
.fp-stats b{display:block;font-family:var(--serif);font-size:40px;color:#e3c777;font-weight:600;line-height:1}
.fp-stats span{display:block;margin-top:9px;font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;color:#9aa7bd;line-height:1.45}
.fp-foot{text-align:center;margin:28px 0 0;color:#b8c1d4;font-size:15.5px;font-family:var(--serif);font-style:italic}
.fp-foot b{color:#fff;font-style:normal;font-family:var(--sans,inherit);font-weight:600}
/* illustrations */
.fp-svg-roll .body{fill:rgba(255,255,255,.07);stroke:#9aa7bd;stroke-width:1.6}
.fp-svg-roll .end{fill:#1b2944;stroke:#9aa7bd;stroke-width:1.6}
.fp-svg-roll .spiral{fill:none;stroke:#9aa7bd;stroke-width:1.3;opacity:.8}
.fp-svg-roll .strap{stroke:#e38a7a;stroke-width:3;opacity:.75}
.fp-svg-roll .press{fill:none;stroke:#e38a7a;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.fp-svg-roll .press-top{animation:fpPressDown 2.4s ease-in-out infinite}
.fp-svg-roll .press-bot{animation:fpPressUp 2.4s ease-in-out infinite}
.fp-svg-flat .top{fill:rgba(227,199,119,.22);stroke:#e3c777;stroke-width:1.6;stroke-linejoin:round}
.fp-svg-flat .side{fill:rgba(227,199,119,.1);stroke:#e3c777;stroke-width:1.6;stroke-linejoin:round}
.fp-svg-flat .layer{fill:none;stroke:#e3c777;stroke-width:1;opacity:.55}
.fp-svg-flat .badge{fill:#e3c777}
.fp-svg-flat .tick{fill:none;stroke:#0f1a2e;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.fp-svg-flat .lift{animation:fpFloat 4s ease-in-out infinite}
@keyframes fpPressDown{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes fpPressUp{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes fpFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.fp-svg-roll .press-top,.fp-svg-roll .press-bot,.fp-svg-flat .lift{animation:none}}
@media(max-width:860px){
  .fp-head h2{font-size:34px}
  .fp-head p{font-size:15px}
  .fp-compare{grid-template-columns:1fr;gap:14px}
  .fp-vs{justify-self:center;width:46px;height:46px;font-size:16px}
  .fp-card{padding:22px 20px}
  .fp-stats{grid-template-columns:repeat(2,1fr)}
  .fp-stats div:nth-child(odd){border-left:0}
  .fp-stats div:nth-child(n+3){border-top:1px solid rgba(227,199,119,.14)}
  .fp-stats b{font-size:32px}
}
/* compact PDP band */
.fp-band{display:flex;align-items:center;gap:22px;background:linear-gradient(100deg,#0b1424 0%,#0f1a2e 55%,#1a2a4a 100%);border:1px solid rgba(227,199,119,.35);border-radius:16px;padding:18px 24px;color:#e8ebf3;text-decoration:none;box-shadow:var(--shadow-sm)}
.fp-band-ill{flex:0 0 110px}
.fp-band-ill svg{width:110px;height:auto;display:block}
.fp-band-body{flex:1;display:flex;flex-direction:column;gap:5px}
.fp-band-body .fp-kicker{align-self:flex-start;padding:4px 11px;font-size:10px}
.fp-band-body b{font-family:var(--serif);font-size:23px;color:#fff;font-weight:600;line-height:1.15}
.fp-band-body span.t{font-size:13.5px;color:#b8c1d4;line-height:1.55}
.fp-band-go{flex:0 0 auto;color:#e3c777;font-weight:700;font-size:13.5px;white-space:nowrap;border:1px solid rgba(227,199,119,.45);border-radius:999px;padding:9px 16px;transition:.2s}
.fp-band:hover .fp-band-go{background:#e3c777;color:#0f1a2e}
@media(max-width:720px){
  .fp-band{flex-direction:column;text-align:center;padding:20px 18px;gap:12px}
  .fp-band-body .fp-kicker{align-self:center}
  .fp-band-body b{font-size:20px}
}
@media(max-width:720px){.fp-band-ill{flex:none}}

/* Homepage cards — image and product name link to the product page */
.card-media-img .card-media-link{position:absolute;inset:0;z-index:2;cursor:pointer}
.card h3 .card-title-link{color:inherit;text-decoration:none}
.card h3 .card-title-link:hover{color:var(--gold)}

/* PDP — 15-year warranty badge above the mattress name */
.warranty-badge{display:flex;align-items:center;gap:6px;margin:10px 0 2px;background:#0f1a2e;color:#e3c777;font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:6px 12px;border-radius:999px;width:max-content}

/* ─── PDP: trial / returns explainer under the Buy buttons ─── */
.rj-trial-box{margin:16px 0 4px;border:1px solid var(--line);border-radius:14px;background:var(--ivory);padding:16px 18px;font-size:13.5px;color:#3a4253}
.rj-trial-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:8px}
.rj-trial-head b{font-size:15px;color:var(--navy)}
.rj-trial-head span{font-size:12px;color:var(--grey)}
.rj-trial-steps{margin:0;padding-left:20px;display:grid;gap:5px}
.rj-trial-steps li::marker{color:var(--gold);font-weight:700}
.rj-trial-steps b{color:var(--navy)}
.rj-trial-foot{margin-top:10px;padding-top:9px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--grey)}
.rj-trial-foot a{color:var(--gold);font-weight:600}
body.sig-dark .rj-trial-box{background:rgba(255,255,255,.04);border-color:rgba(227,199,119,.2);color:#cfd6e2}
body.sig-dark .rj-trial-head b,body.sig-dark .rj-trial-steps b{color:#f3e8c9}
body.sig-dark .rj-trial-head span,body.sig-dark .rj-trial-foot{color:#9aa4b8;border-color:rgba(227,199,119,.2)}

/* ─── PDP: rating → reviews link + "Write a review" ─── */
.stars-link{color:inherit;text-decoration:underline;text-underline-offset:3px}
.rj-review-cta{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 20px;text-align:center}
.rj-review-cta p{margin:0;max-width:560px;font-size:14px;color:var(--grey)}
.rj-review-cta b{color:var(--navy)}
.rj-review-form{max-width:640px;margin:18px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}
.rj-review-form[hidden]{display:none}
.rj-review-form label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--navy)}
.rj-review-form input,.rj-review-form select,.rj-review-form textarea{font:inherit;font-weight:400;font-size:14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#1a1f2b}
.rj-review-form .rj-rf-wide,.rj-review-form .rj-review-msg{grid-column:1/-1}
.rj-review-form button{justify-self:start}
.rj-review-msg{margin:0;font-size:13px;color:#0e7a5c}
.rj-review-msg:empty{display:none}
@media(max-width:560px){.rj-review-form{grid-template-columns:1fr}}
body.sig-dark .rj-review-cta p{color:#9aa4b8}
body.sig-dark .rj-review-cta b{color:#f3e8c9}
body.sig-dark .rj-review-form{background:rgba(255,255,255,.04);border-color:rgba(227,199,119,.2)}
body.sig-dark .rj-review-form label{color:#f3e8c9}

/* ===== PDP: Rejuvra vs typical brands comparison ===== */
.vs-wrap{max-width:860px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
table.vs-table{width:100%;border-collapse:collapse;table-layout:fixed}
.vs-table th,.vs-table td{padding:14px 16px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5;text-align:left;vertical-align:top}
.vs-table tr:last-child td{border-bottom:none}
.vs-table thead th{background:var(--navy);color:#fff;font-family:var(--serif);font-size:18px;font-weight:600}
.vs-table thead th:first-child{width:24%}
.vs-table thead th.vs-us{background:linear-gradient(135deg,#c9a24b,#e3c777);color:#1a1407}
.vs-table tbody td:first-child{font-weight:700;color:var(--navy);background:var(--cream);font-size:13px}
.vs-table td.vs-us{background:#fcf8ef;color:var(--navy)}
.vs-table td.vs-us b{color:var(--navy)}
.vs-table td.vs-us::before{content:"✓";color:var(--green);font-weight:800;margin-right:7px}
.vs-table td.vs-them{color:#6b7280}
.vs-table td.vs-them::before{content:"✕";color:#b91c1c;font-weight:800;margin-right:7px}
.vs-note{max-width:860px;margin:10px auto 0;font-size:11.5px;color:#6b7280;text-align:center}
@media(max-width:640px){
  .vs-table th,.vs-table td{padding:11px 10px;font-size:12.5px}
  .vs-table thead th{font-size:15px}
  .vs-table thead th:first-child{width:27%}
  .vs-table tbody td:first-child{font-size:11.5px}
  .vs-table td.vs-us::before,.vs-table td.vs-them::before{display:block;margin:0 0 2px}
}
/* Dark PDPs (Signature, Signature Black) */
body.sig-dark .vs-wrap{background:rgba(255,255,255,.03);border-color:rgba(227,199,119,.18);box-shadow:none}
body.sig-dark .vs-table th,body.sig-dark .vs-table td{border-color:rgba(227,199,119,.12)}
body.sig-dark .vs-table thead th{background:#0f1a2e;color:#e8ebf3}
body.sig-dark .vs-table thead th.vs-us{background:linear-gradient(135deg,#c9a24b,#e3c777);color:#0a1120}
body.sig-dark .vs-table tbody td:first-child{background:rgba(227,199,119,.05);color:#e3c777}
body.sig-dark .vs-table td.vs-us{background:rgba(227,199,119,.08);color:#e8ebf3}
body.sig-dark .vs-table td.vs-us b{color:#fff}
body.sig-dark .vs-table td.vs-them{color:#9aa7bd}
body.sig-dark .vs-table td.vs-us::before{color:#4ade80}
body.sig-dark .vs-table td.vs-them::before{color:#f87171}
body.sig-dark .vs-note{color:#6a7490}
