
/* ===========================
   Reset & base
   =========================== */
* {
  box-sizing: border-box;
}
html,
body {
  height: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: Arial, sans-serif;
  color: var(--text);

  /* background pattern based on your asset */
  background-color: var(--bg);
  background-image: url("/File-assets/images/nwl-pattern-grey.png");
  background-repeat: repeat;
  background-position: center top;
}

*:focus {
  outline: none;
}

/* Ensure page content doesn’t hide behind fixed room nav by default.
   Room pages add extra space via their own layout if needed. */
main {
  width: 100%;
  padding-block: 0 var(--space-lg);
}

.brand-lounge .container{
	max-width:100%!important; padding:0!important;
}
 
.brand-lounge .container .grid{
margin-right: 0 !important; margin-left: 0 !important;
}
 
.brand-lounge .container .grid .col-lg-12{
	padding:0!important;
}

/* ===========================
   Wrapper
   =========================== */
.wrapper {
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
    /* NEW: make the whole page at least as tall as the viewport */
  min-height: 100dvh;
}

/* ===========================
   Header
   =========================== */
header {
  width: 100%;
  padding-block-start: var(--space-md);
  padding-inline: var(--side-pad);

    &:before {
    content: "Header";
    display:none;
    }
}

.header-bar {
  width: 100%;
  padding-block-start: var(--space-md);
  padding-inline: var(--side-pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.logo {
  display: block;
  width: 102px;
  height: 49px;
  object-fit: contain;
}

/* Home counter */
.home-counter {
  position: relative;
  display: inline-block;
  width: 28px;
  height: 24px;
}

.home-counter__icon {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.home-counter__badge {
  position: absolute;
  right: -6px;
  top: -6px;
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  border-radius: 999px;
  background: #F89849;
  color: #fff;
  font: 700 12px/20px Arial, sans-serif;
  text-align: center;
}

/* ===========================
   Main layout
   =========================== */
main {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
  text-align: center;
}

/* ===========================
   Hero
   =========================== */
.hero {
  width: 100%;
  margin: 0;
  overflow: hidden; /* crop any sub-pixel overflow */
  position: relative;
}
/* Desktop / wider screens: constrain hero width and center it */
@media (min-width: 601px) {
  .hero {
    width: 100%;
    margin: 0 auto;      /* center horizontally */
  }
}

.hero img,
.hero video {
  display: block;
  width: 100%;
  height: auto;
}

/* Anti-gap nudge for home hero video */
.hero video.home-loop {
  width: calc(100% + 2px);
  margin-right: -2px;
  background-color: #fff;
}

/* Main page video: cover hero area */
.hero video.main-loop {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background-color: #fff;
}


/* ===========================
   Content block
   =========================== */
.content {
  width: 100%;
  padding-inline: var(--side-pad);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
}

/* PNG override block when needed */
.content .page-section {
  width: 100%;
  max-width: min(var(--measure-max), calc(100% - (2 * var(--side-pad))));
  margin-inline: auto;
}

.content .page-section img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  border: none;
  box-shadow: none;
}
.content .welcome-title {margin-top:3vh;
  @media (max-width: 600px) {
    margin-top:1vh;
  }

}

/* ===========================
   Typography
   =========================== */
h1 {
  margin: 0;
  font-weight: bold;
  font-size: 44px; /* index/main */
  line-height: 47px;
  text-align: center;
  color: var(--text);
  @media (max-width: 600px) {
    font-size: 32px; line-height: 36px;
  }
}

/* Sub copy */
.sub {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 20px;
}

/* Room page title override */
.room-title,
#room-title {
  font-size: 50px;
  line-height: 20px;
  font-weight: bold;
  margin-top: var(--space-md);
  margin-bottom: var(--space-md);
  @media (max-width: 500px) {
    margin: 0;
  }
}

/* Product copy */
.product-copy {
  text-align: center;
  padding: 0 24px;
   @media (max-width: 600px) {
    margin-top: -2vh;
  }
}

.product-copy__body {
  margin: 0 0 24px;
  font-size: 14px;
  line-height: 20px;
  color: #5E5E5E;
  }

.product-copy__question {
  margin: 0 0 24px;
  font-size: 18px;
  line-height: 21px;
  font-weight: 700;
  color: #2D2D2D;
}

/* =======================================================
   PRODUCT PAGE – fixed bottom CTA bar (mobile only)
   ======================================================= */
@media (max-width: 600px) {

  .product-page {
    min-height: 100vh;
    position: relative;
  }

  .product-actions {
    /* position: fixed; */
    left: 0;
    right: 0;
    bottom: 0;

    width: 100%;
    max-width: 600px;
    margin: 0 auto;

    padding: 12px var(--side-pad) calc(12px + env(safe-area-inset-bottom));
    z-index: 50;

    display: flex;
    justify-content: center;
    gap: 12px;
  }

.product-status {
  margin-top: 8px;
  font-size: 13px;
  color: #666666;
  text-align: center;
  display: none;
}

.product-status--visible {
  display: block;
}

  /* Push page content above fixed CTA bar */
  .product-page main {
    padding-bottom: 96px;
  }
}



/* Small screens */
@media (max-width: 360px) {
  h1 {
    font-size: 38px;
    line-height: 42px;
  }

  .content .page-section img {
    width: 100%;
    height: auto;
  }
}

/* ===========================
   Form / Input
   =========================== */
.form {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 0;
  max-width: 300px;
}

.input {
  width: 100%;
  background: rgba(199, 212, 218, 0.35);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 3px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  color: #2b2b2b;
  text-align: center;
  text-transform: capitalize;
  padding: 10px 12px;
  height: 40px;
  margin-bottom: var(--space-between-input-button);
  outline: none;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.input:focus {
  border-color: var(--brand-blue);
  box-shadow: 0 0 0 3px rgba(47, 155, 214, 0.15);
}

/* ===========================
   CTA
   =========================== */
.cta {
  width: 180px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.15);

  background: radial-gradient(
    circle at 50% 50%,
    #228EC2 0%,
    #278FC3 45%,
    #2B97C9 80%,
    #39A2D3 100%
  );

  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);

  font-size: 16px;
  font-weight: 700;
  color: #ffffff;
  text-align: center;
  text-decoration: none;

  cursor: pointer;
  padding: 0 18px;
  border: none;

  transition: transform 0.08s ease, filter 0.2s ease, box-shadow 0.2s ease;
}

.cta-arrow {
  width: 19px;
  height: 12px;
  display: inline-block;
}

.cta-compass {
  width: 21px;
  height: 21px;
  display: inline-block;
}

/* Disabled CTA must always win */
button.cta:disabled,
.cta[disabled] {
  opacity: 0.8 !important;
  cursor: not-allowed !important;
  filter: grayscale(0.3) !important;
  pointer-events: none !important;
  transform: none !important;
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}

/* ===========================
   A11y helpers
   =========================== */
.visually-hidden {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0 !important;
  border: 0 !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden;
  white-space: nowrap;
}

/* ===========================
   Room page layout & nav
   =========================== */
.room-page .page-stage {
  width: 100%;
}

/* Fixed bottom nav container (full width is handled in HTML;
   inner track is clamped to 600px here) */
.room-nav__inner {
  max-width: 600px;
  margin: 0 auto;
  padding: 0 var(--side-pad) env(safe-area-inset-bottom);
  height: calc(48px + env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
}

@media (min-width: 601px) {
  .room-nav {
    width: 70%;
    margin: 0 auto;      /* center horizontally */
  }
}

 
/* DESKTOP (>600px) – centered and static */
@media (min-width: 601px) {
  .room-nav {
    position: static;
    width: 90%;
    margin: 3vh auto 0; /* center horizontally */
  }
}

.room-nav__inner {
  max-width: 600px;
  margin: 0 auto;
  padding: 0 var(--side-pad);
  height: 48px;
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) 48px;
  align-items: center;
  gap: 12px;
}

.room-container{
      margin-top: 3vh;
    gap: 2;
}
/* ===========================
   Backyard: last-room tooltip
   =========================== */

.room-page--backyard .room-nav__inner {
  position: relative; /* anchor tooltip */
}

.room-page--backyard .tooltip--last-room {
  /* position bubble above the nav, aligned to the right side */
     line-height: 20px;
    right: 24px;
    bottom: 60px;

  width: 150px;
  text-align: center;

  /* allow link to be clickable (base .tooltip blocks pointer events) */
  pointer-events: auto;

  /* slightly stronger shadow than the inline hint so it reads as “help” */
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.14);

  opacity: 1 !important;
  pointer-events: auto;     /* link must be clickable */
  animation: none !important;
  transition: none !important;
}

/* tail pointing down toward the disabled next button */
.room-page--backyard .tooltip--last-room::after {
  bottom: -6px;
  right: 18px;
  border-width: 6px 6px 0 6px;
  border-color: #ffffff transparent transparent transparent;
}

/* style the link inside the tooltip */
.room-page--backyard .tooltip--last-room a {
  color: var(--brand-blue);
  font-weight: 700;
  text-decoration: none;
}

.room-page--backyard .tooltip--last-room a:hover,
.room-page--backyard .tooltip--last-room a:focus {
  text-decoration: underline;
}

/* Nav buttons */
.nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.nav-btn img {
  display: block;
  object-fit: contain;
}

/* Sizes from spec */
.nav-btn--left img {
   width: 48px;
  height: 48px;
}

.nav-btn--left.primary img {
  width: 48px;
  height: 48px;
}

.nav-btn--right img {
  width: 48px;
  height: 48px;
}

/* Progress steps */
.room-steps {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.room-steps li {
  width: 40px;
  height: 4px;
  border-radius: 4px;
  background: #d6d9de;
}

.room-steps li.is-current {
  background: #2f9bd6;
}

/* ===========================
   Product page visuals
   =========================== */
 
/* Roof chevron */
.roof-banner {
  margin: 0;
  width: 100%;
}

@media (min-width: 601px) {
  .roof-banner {
    width: 100%;
    margin: 0 auto;
  }
}
.roof-banner img {
  display: block;
  width: 100%;
  height: auto;
}

/* Product hero */
.product-hero {
  /* margin: 0 0 16px; */
   margin: 0;
  width: 100%;
  display: flex;
  justify-content: center;
}

.product-hero img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Brand logo */
.product-brand {
  margin: 0 0 16px;
  display: flex;
  justify-content: center;
}

.product-brand__logo {
  display: block;
  max-width: 220px;
  width: 70%;
  height: auto;
}

/* ===========================
   Product actions (single row)
   =========================== */
.product-actions {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 12px;
  padding: 0 24px 24px;
  flex-wrap: nowrap;
  width: 100%;
  box-sizing: border-box;
}

.product-btn {
  border-radius: 999px;
  padding: 0 18px;
  height: 44px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  font-family: Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;

  cursor: pointer;
  border: 1px solid transparent;
  white-space: nowrap;
}

.product-btn__icon {
  font-size: 16px;
  line-height: 1;
}

/* Secondary */
.product-btn--secondary {
  background: #ffffff;
  color: #555555;
  border-color: #dadada;
}

/* Primary */
.product-btn--primary {
  background: radial-gradient(circle at 50% 40%, #298fc2 0%, #228ec2 80%);
  color: #ffffff;
  border-color: rgba(0, 0, 0, 0.15);
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* Product layout tweaks on very small screens */
@media (max-width: 400px) {
  .product-copy {
    padding: 0 16px;
  }

  .product-actions {
    padding: 0 16px 24px;
  }
}

/* ===========================
   Product page — image buttons
   =========================== */

.product-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  padding-bottom: 32px;
}

.product-action-btn {
  display: block;
}
a.product-action-btn.noshadow {
  margin-top: -8px;
}

.product-action-img {
  display: block;
  width: 100%;
}

.product-action-img.noshadow {
  margin-top: -8px;
}

/* Dim the Add to collection button after it’s used once */
.product-action-btn--disabled {
  pointer-events: none;
  transform: none;
}

/* --------------------------------
   HOTSPOT (24px, CTA gradient,)
   -------------------------------- */
.hotspot {
  position: absolute;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  padding: 0;
  border: 0;
  cursor: pointer;
  pointer-events: auto;

  /* CTA gradient at 80% opacity */
  background: radial-gradient(
    circle at 50% 50%,
    rgba(34, 142, 194, 0.65) 0%,
    rgba(39, 143, 195, 0.65) 45%,
    rgba(43, 151, 201, 0.65) 80%,
    rgba(57, 162, 211, 0.65) 100%
  );

  /* UPDATED → 3px white ring @ 50% opacity */
  box-shadow:
    0 0 0 3px rgba(255, 255, 255, 0.50),   /* ring */
    0 4px 10px rgba(0, 0, 0, 0.35);         /* depth shadow */

  transform-origin: center;
  animation: hotspotPulse 3.2s ease-in-out infinite;
}

.hotspot:focus-visible {
  box-shadow:
    0 0 0 3px #ffffff,
    0 0 0 6px rgba(47, 155, 214, 0.7);
}

/* Optional hover pop (desktop only) */
@media (hover: hover) {
  .hotspot:hover {
    transform: scale(1.05);
  }
}

/* Base label for all hotspots (uses the data-label text) */
.hotspot::after {
  content: attr(data-label);
  position: absolute;
  top: 50%;
  left: 50%;
  /* transform: translate(0, -50%);  */
  
  padding: 4px 8px;
  border-radius: 999px;
  /* background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.16); */

  font-size: 12px;
  font-weight: 600;
  color: #ffffff;
  white-space: nowrap;
  pointer-events: none;

  /* NEW: shadow on text only */
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}

/* ---------- Living Room (1) ---------- */
.room-page--living .hotspot--1 { top: 70%; left: 7%; }

.room-page--living .hotspot--1::after {
  transform: translate(-30%, 100%);   
}
.room-page--living .hotspot--2 {     top: 71%;
    left: 45%; }
.room-page--living .hotspot--2::after {
      transform: translate(-50%, 66%);
}

.room-page--living .hotspot--3 { top: 57%;left: 68%;}
.room-page--living .hotspot--3::after {transform: translate(20%, -59%);}
.room-page--living .hotspot--4 { top: 36%; left: 72%; }
.room-page--living .hotspot--4::after {
transform: translate(-50%, 85%);
}

/* ---------- Kitchen (2) ---------- */
.room-page--kitchen .hotspot--1 { top: 56%; left: 4%; }
.room-page--kitchen .hotspot--1::after {
  transform: translate(-30%, 100%);   
}
.room-page--kitchen .hotspot--2 { top: 44%; left: 57%; }
.room-page--kitchen .hotspot--2::after {
  transform: translate(-47%, 100%);   
}
.room-page--kitchen .hotspot--3 { top: 33%; left: 69%; }
.room-page--kitchen .hotspot--3::after {
  transform: translate(-47%, 100%);   
}
.room-page--kitchen .hotspot--4 { top: 66%; left: 27%; }
.room-page--kitchen .hotspot--4::after {
  transform: translate(-47%, 100%);   
}

/* ---------- Home Office (3) ---------- */
.room-page--home-office .hotspot--1 { top: 55%; left: 24%; }
.room-page--home-office .hotspot--1::after {
  transform: translate(-47%, 100%);   
}
.room-page--home-office .hotspot--2 { top: 63%; left: 66%; }
.room-page--home-office .hotspot--2::after {
  transform: translate(-47%, 100%);   
}
.room-page--home-office .hotspot--3 { top: 57%; left: 83%; }
.room-page--home-office .hotspot--3::after {
  transform: translate(-47%, 100%);   
}
.room-page--home-office .hotspot--4 { top: 35%; left: 55%; }
.room-page--home-office .hotspot--4::after {
  transform: translate(-47%, 100%);   
}


/* ---------- Kids Room (4) ---------- */
.room-page--kids-room .hotspot--1 {     top: 54%;
    left: 46%; }
.room-page--kids-room .hotspot--1::after {
  transform: translate(-127%, -42%);  text-transform: uppercase;
}
.room-page--kids-room .hotspot--2 {   top: 44%;
    left: 68%; }
.room-page--kids-room .hotspot--2::after {
  transform: translate(18%, -42%);   text-transform: uppercase;
}
.room-page--kids-room .hotspot--3 { top: 54%; left: 67%; }
.room-page--kids-room .hotspot--3::after {
  transform: translate(22%, -40%);   text-transform: uppercase;
}
.room-page--kids-room .hotspot--4 { top: 65%; left: 70%; }
.room-page--kids-room .hotspot--4::after {
  transform: translate(-47%, 100%);   text-transform: uppercase;
}
.room-page--kids-room .hotspot--5 { top: 64%; left: 56%;display:none }

/* ---------- Backyard (5) ---------- */
.room-page--backyard .hotspot--1 { top: 29%; left: 34%; }
.room-page--backyard .hotspot--1::after {
  transform: translate(-51%, 100%);  text-transform: uppercase;
}
.room-page--backyard .hotspot--2 { top: 38%; left: 81%; }
.room-page--backyard .hotspot--2::after {
  transform: translate(-51%, 100%);  text-transform: uppercase;
}
.room-page--backyard .hotspot--3 { top: 42%; left: 10%; }
/* .room-page--backyard .hotspot--3::after {
  transform: translate(-51%, 100%);  text-transform: uppercase;
} */

.room-page--backyard .hotspot--3::after {
  transform: translate(-51%, 61%);  text-transform: uppercase;
    content: "Coleman Cooler";
  white-space: pre-line;        /* enables \A line break */
  text-align: center;
  line-height: 1.2;
}

.room-page--backyard .hotspot--4 { top: 64%; left: 53%; }
.room-page--backyard .hotspot--4::after {
  transform: translate(14%, -39%);  text-transform: uppercase;
}
.room-page--backyard .hotspot--5 { top: 67%; left: 13%; }


.room-page--backyard .hotspot--5::after {
  transform: translate(-47%, 63%);  text-transform: uppercase;
    content: "RUBBERMAID\A COMMERCIAL";
  white-space: pre-line;        /* enables \A line break */
  text-align: center;
  line-height: 1.2;
}


.page-title {
  font-size: 34px;
  line-height: 37px;

  font-weight: 700;
  text-align: center;
  margin: 0 0 24px;
    @media (max-width: 400px) {
      font-size: 32px;
    line-height: 34px;
  }
}

/* ===========================
   Collection pills
   =========================== */

/* ===========================
   Collection pills (logo version)
   =========================== */

.collection-list {
  width: 100%;
  padding-inline: var(--side-pad);
}

@media (min-width: 601px) {
  .collection-list {
    width: 100%;
    padding-inline: 0;
  }
}

.collection-pills {
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  flex-wrap: wrap;
  gap: 12px 12px;
  justify-content: flex-start;
}

/* Pill container (new shape) */
.collection-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 44px;
  padding: 10px 38px 10px 14px; /* room for the X on the right */
  border-radius: 8px;

  background: #e6ecf1;
  border: 1px solid rgba(0, 0, 0, 0.12);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16); /* keep the subtle glow feel */
}

/* Logo inside pill */
.collection-pill__logo {
  display: block;
  max-height: 26px;
  max-width: 140px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* Text fallback (hidden unless logo missing) */
.collection-pill__label {
  display: none;
  white-space: nowrap;
  font-size: 14px;
  line-height: 18px;
  color: #333;
}

/* If logo fails, show text instead */
.collection-pill--no-logo .collection-pill__logo {
  display: none;
}
.collection-pill--no-logo .collection-pill__label {
  display: inline;
}

/* Remove X */
.collection-pill__remove {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);

  border: none;
  background: transparent;
  padding: 0;
  margin: 0;

  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  color: #7a8a96;
}

.collection-pill__remove:hover {
  color: #000;
}


/* ===========================
   Success page
   =========================== */

.success-content {
  align-items: center;
  margin-top: 13vh;
}

.success-badge {
  margin: 0 0 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.success-badge__wrap {
  position: relative;
  display: inline-block;
}

.success-badge__image {
  display: block;
  
  max-width: 100%;
  height: auto;
}

/* Big number inside the wreath */
.success-badge__count {
  position: absolute;
  left: 48%;
  top: 44%;
  transform: translate(-50%, -44%);
  font-size: 100px;
  line-height: 1;
  font-weight: 700;
  color: #2f9bd6;
}

.success-badge__label {
  margin-top: 12px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #6b6e72;
}

.success-copy {
  margin: 8px 0 18px;
  font-size: 20px;
  line-height: 24px;
  color: #2d2d2d;
  text-align: center;
}

/* Bottom button sections reuse .product-actions */
.collection-actions,
.success-actions {
  margin-top: 0px;
}
/* ===========================
   Success confetti canvas
   =========================== */

.confetti-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 999; /* above content, below any future overlays */
}

/* ===========================
   Tooltip bubbles (Living Room)
   =========================== */

.tooltip {
  position: absolute;
  max-width: 180px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #ffffff;

  /* Low-contrast look: very soft border + minimal shadow */
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);

  font-size: 12px;
  line-height: 1.3;
  color: #555555;
  z-index: 10;

  /* Fade-only, no scaling / movement */
  opacity: 0;
  pointer-events: none;

  /* One-shot fade-in / hold / fade-out */
  animation-name: tooltipFade;
  animation-duration: 10s;       /* total: lifecycle controlled via keyframes */
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;  /* stay hidden at end */
}

.tooltip__text {
  display: block;
}

/* Tail (speech-bubble pointer) – unchanged */
.tooltip::after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-style: solid;
}

/* Base tooltip styling */
.tooltip {
  opacity: 0;
  transition: opacity 120ms ease-out; /* fast perceived fade-in */
  pointer-events: none;
}

/* When tooltip is shown */
.tooltip.show {
  opacity: 1;
}

/* Optional fade-out class if you use a separate state */
.tooltip.hide {
  opacity: 0;
  transition: opacity 120ms ease-in; /* fast fade-out */
}

/* Updated: snappier stagger delays */
.tooltip.hotspot     { transition-delay: 0.2s; } /* first */
.tooltip.navigation  { transition-delay: 0.4s; } /* second */
.tooltip.collection  { transition-delay: 0.6s; } /* third */

/* ---------- 1) Header: "View your collection" ---------- */
/* Bubble above/right of the home icon, tail pointing down */

.room-page--living .header-bar {
  position: relative; /* allows absolute tooltip inside */
}

.room-page--living .tooltip--collection {
      top: 21px;
    right: 57px;
    width: 80px;
}

.room-page--living .tooltip--collection::after {
  top: 50%;
  right: -6px;
  transform: translateY(-50%);
  
  /* right-pointing triangle */
  border-width: 6px 0 6px 6px;
  border-color: transparent transparent transparent #ffffff;
}

/* ---------- 2) Hero: "Click hotspots..." ---------- */
/* Bubble on the left over the rug area, tail pointing down-right */

.room-page--living .hero {
  position: relative; /* anchor for hotspot tooltip */
}

.room-page--living .tooltip--hotspots {
     left: 28%;
    top: 37%;
    transform: translateX(-50%);
    width: 100px;
}

.room-page--living .tooltip--hotspots::after {
  bottom: -6px;
  left: 26%;
  border-width: 6px 6px 0 6px;
  border-color: #ffffff transparent transparent transparent;
}

/* ---------- 3) Nav: "Navigate to next room" ---------- */
/* Bubble above the right arrow, tail pointing down to the button */

.room-page--living .room-nav__inner {
  position: relative; /* anchor for nav tooltip */
}

.room-page--living .tooltip--nav-next {
    right: 17px;
    bottom: 59px;
    text-align: center;
    width: 95px;
}

.room-page--living .tooltip--nav-next::after {
  bottom: -6px;
  right: 20px;
  border-width: 6px 6px 0 6px;
  border-color: #ffffff transparent transparent transparent;
}

/* ---------- 1) Header: "View your collection" ---------- */

.room-page--living .header-bar {
  position: relative;
}

.room-page--living .tooltip--collection {
  /* top: 8px;
  right: 56px; */
  animation-delay: 0.2s; /* first */
}

/* Tail points right → */
.room-page--living .tooltip--collection::after {
  top: 50%;
  right: -6px;
  transform: translateY(-50%);
  border-width: 6px 0 6px 6px;
  border-color: transparent transparent transparent #ffffff;
}

/* ---------- 2) Hero: "Click hotspots..." ---------- */

.room-page--living .hero {
  position: relative;
}

/* Lifted a bit so it doesn't sit on hotspots */
.room-page--living .tooltip--hotspots {
  /* left: 18%;
  top: 26%;
  transform: translateX(-50%); */
  animation-delay: 0.4s; /* second */
}

.room-page--living .tooltip--hotspots::after {
  bottom: -6px;
  left: 26%;
  border-width: 6px 6px 0 6px;
  border-color: #ffffff transparent transparent transparent;
}

/* ---------- 3) Nav: "Navigate to next room" ---------- */

.room-page--living .room-nav__inner {
  position: relative;
}

/* Room pages: keep nav at the bottom for all viewport sizes */
.wrapper.room-page {
  /* already flex column from .wrapper; this just clarifies intent */
  align-items: stretch;          /* nav + content take full width */
}

.room-page .page-stage {
  flex: 1;                       /* main content grows, pushes nav down */
}

/* Bottom nav: sits at bottom of page with ~3vh breathing room */
.room-page .room-nav {
  position: static;              /* override any earlier fixed rules */
  width: 100%;
  max-width: 600px;
  margin-top: auto;              /* pushes nav to bottom of flex column */
  margin-bottom: 3vh;            /* the 3vh gap you asked for */
}






/* Above the right arrow so it doesn't block it */
.room-page--living .tooltip--nav-next {
  /* right: 12px;
  bottom: 54px;
  text-align: left; */
  animation-delay: 0.6s; /* third */
}

.room-page--living .tooltip--nav-next::after {
  bottom: -6px;
  right: 20px;
  border-width: 6px 6px 0 6px;
  border-color: #ffffff transparent transparent transparent;
}

/* =========================================
   RESET MODAL – UPDATED STYLING
   ========================================= */

/* No dark backdrop — invisible container centered on screen */
.reset-modal {
  position: fixed;
  inset: 0;
  display: none; /* stays hidden until JS toggles it */
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

/* Only show when NOT hidden */
.reset-modal:not([hidden]) {
  display: flex;
}

/* Dialog box styling */
.reset-modal__dialog {
  background: #ffffff;
  padding: 24px 28px;
  border-radius: 14px;

  /* Mimic bottom button shadow (soft + slightly lifted) */
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);

  text-align: center;
  max-width: 320px;
  width: 90%;
}

/* Modal text */
.reset-modal__message {
  font-size: 16px;
  line-height: 22px;
  color: #2d2d2d;
  margin-bottom: 20px;
}

/* Button layout */
.reset-modal__actions {
  display: flex;
  justify-content: center;
  gap: 12px;
}

/* =========================================
   RESET MODAL – BUTTONS MATCH SITE CTA SYSTEM
   ========================================= */

/* Base button styling */
.reset-modal__btn {
  padding: 10px 22px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  /* Button elevation (same as bottom CTAs) */
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);

  transition: transform 0.08s ease, filter 0.2s ease, box-shadow 0.2s ease;
}

/* -----------------------------------------
   YES BUTTON = PRIMARY BUTTON STYLE
   ----------------------------------------- */
.reset-modal__btn--yes {
  border: none;

  /* Blue gradient taken directly from .cta buttons */
  background: radial-gradient(
    circle at 50% 50%,
    #228EC2 0%,
    #278FC3 45%,
    #2B97C9 80%,
    #39A2D3 100%
  );

  color: #ffffff;
}

/* Primary hover (optional if you want consistency) */
.reset-modal__btn--yes:hover {
  filter: brightness(1.05);
}

/* Tap/active feedback (matches CTA behavior) */
.reset-modal__btn--yes:active {
  transform: translateY(1px);
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

/* -----------------------------------------
   CANCEL BUTTON = SECONDARY BUTTON STYLE
   Mimics gray-bordered Reset-style button
   ----------------------------------------- */
.reset-modal__btn--cancel {
  background: #ffffff;
  color: #5e5e5e;

  /* EXACT BORDER COLOR YOU REQUESTED */
  border: 1px solid #C9CDC0;

  /* Shadow matching Newell secondary button visual weight */
  box-shadow:
    0 2px 6px rgba(0, 0, 0, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

/* Secondary hover */
.reset-modal__btn--cancel:hover {
  background: #f7f7f7;
}

/* Tap/active */
.reset-modal__btn--cancel:active {
  transform: translateY(1px);
  box-shadow:
    0 2px 6px rgba(0, 0, 0, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}


/* ===========================
   Already-added auto modal
   =========================== */

.already-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 999;

  background: rgba(0, 0, 0, 0.18);
  opacity: 0;
  pointer-events: none;

  transition: opacity 140ms ease-out;
}

.already-modal.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.already-modal__dialog {
  background: #ffffff;
  border-radius: 12px;
  padding: 20px 24px;
  max-width: 280px;
  text-align: center;

  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}

.already-modal__message {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: #2d2d2d;
}

 /* =======================================================
   PRODUCT PAGE – ALWAYS-visible bottom CTA (mobile)
   ======================================================= */
@media (max-width: 600px) {
  .product-page {
    min-height: 100vh;
    min-height: 100dvh;
  }

  .product-page .product-actions {
    /* position: fixed; */
    /* left: 50%; */
    transform: translateX(-50%);
    bottom: env(safe-area-inset-bottom);

    width: 100%;
    max-width: 440px; /* match .wrapper */
    padding: 12px var(--side-pad) calc(12px + env(safe-area-inset-bottom));
    z-index: 999;

    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;

    background: #fff;
  }

  /* Reserve vertical space so content doesn't sit under the fixed CTA */
  .product-page main {
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }
}

/* =======================================================
   PRODUCT PAGE – ensure two CTA buttons fit on mobile
   (must come AFTER the fixed-CTA block above)
   ======================================================= */
@media (max-width: 600px) {
  .product-page .product-actions {
    max-width: 100%;              /* override 440px clamp */
    padding-left: 12px;
    padding-right: 12px;
    justify-content: space-between;
    gap: 12px;
  }

  .product-page .product-action-btn {
    flex: 1 1 0;                  /* split available width */
    min-width: 0;
    max-width: 220px;             /* keeps proportions sane */
  }

  .product-page .product-action-img {
    width: 100%;
    height: auto;
    display: block;
  }
}


/* iOS Safari toolbar compensation (ONLY iOS) */
@supports (-webkit-touch-callout: none) {
  @media (max-width: 600px) {
    .product-page .product-actions {
      /* bottom: calc(env(safe-area-inset-bottom) + 52px); */
    }
    .product-page main {
      /* padding-bottom: calc(92px + env(safe-area-inset-bottom) + 52px); */
    }
  }
}

/* =========================
   Index v2 chevron + layout
   ========================= */

.page-intro {
  position: relative; /* so the chevron absolute positioning is scoped */
}

/* replaces inline styles from index-alt.html */
/* Chevron background image (base layout only — motion controls opacity) */
.page-intro__chevron {
  position: absolute;
  top: 4%;
  left: 0;
  width: 100%;
  z-index: 12;
  pointer-events: none;
}


/* ensure header/content render above chevron */
.page-intro__header,
.page-intro__main {
  position: relative;
  z-index: 2;
}

/* replaces inline main styles: margin-top: 7vh; gap: 0 !important; */
.page-intro__main {
  margin-top: 6vh;
  gap: 0;
    @media (max-width: 600px) {
      margin-top: 6vh;
    }
}

.chevron-opacity{opacity: 0.6;}

.product-container{margin-top: 13vh}

.collection-container{margin-top: 12vh}



/* share button adjustments (match other action buttons) */
.product-action-btn.js-share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
}

.product-action-btn .product-action-text {
  display: inline-block;
  font-weight: 600;
  color: #fff;
  padding: 10px 20px;
  border-radius: 28px;
  background: linear-gradient(180deg,#3aa0cf,#1f86b5);
  box-shadow: 0 6px 10px rgba(0,0,0,0.12);
}

/* share modal + toast (simple and light) */
.share-modal {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
  padding: 18px;
  z-index: 3000;
  width: min(92%, 420px);
  display: none;
}
.share-modal.is-open { display: block; }

.share-modal .share-title {
  margin: 0 0 8px 0;
  font-weight: 700;
}
.share-modal .share-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
}
.share-modal .share-actions a,
.share-modal .share-actions button {
  flex: 1 1 auto;
  padding: 10px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,0.06);
  background: #f6f8f9;
  cursor: pointer;
  text-decoration: none;
  color: #222;
  text-align:center;
  font-size: 14px;
}

/* Toast */
.share-toast {
  position: fixed;
  left:50%;
  transform: translateX(-50%);
  bottom: 18px;
  background: rgba(0,0,0,0.85);
  color: #fff;
  padding: 8px 12px;
  border-radius: 8px;
  z-index: 4000;
  display:none;
}
.share-toast.is-visible { display:block; }

.user{text-transform: capitalize;}
/* Share modal close button – full width */
.share-modal .share-close {
  width: 100%;
  margin-top: 16px;

  display: block;
  padding: 12px 16px;

  font-size: 16px;
  font-weight: 600;
  text-align: center;

  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  background: #ffffff;
  cursor: pointer;
}