/* Hotel Rivel -- Rooms listing page (rooms.css).
 * Standalone: built from the lodge stylesheet but contains ONLY the rules this page uses
 * (hero, section heading, room cards). Scoped to .rivel-rooms-page. Loaded by functions.php
 * ('rooms' entry), independent of accommodation.css. */
.rivel-rooms-page{--rr-green:var(--clr-primary-green,#183A2B); --rr-green-dk:var(--clr-deep-green,#102A20); --rr-ivory:var(--clr-warm-ivory,#F5F2E9); --rr-terra:var(--clr-terracotta,#B86F45); --rr-sage:var(--clr-soft-sage,#C8D6C4); --rr-sand:var(--clr-soft-cream,#EDE8DC); --rr-text:var(--clr-text-primary,#20241F); --rr-text-secondary:var(--clr-text-secondary,#62675F); --rr-text-muted:var(--clr-text-muted,#858A82); --rr-gold:#C9B379; --rr-font:var(--font-primary,"Manrope","Inter",system-ui,sans-serif); --rr-serif:var(--font-editorial,"Cormorant Garamond",Georgia,serif); --rr-transition-fast:var(--transition-fast,.2s cubic-bezier(.4,0,.2,1)); --rr-transition-base:var(--transition-base,.3s cubic-bezier(.4,0,.2,1)); width:100%;margin:0;background:var(--rr-ivory);color:var(--rr-text); font-family:var(--rr-font);font-size:1rem;line-height:1.6;overflow-x:hidden;overflow-x:clip; -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.rivel-rooms-page *,
.rivel-rooms-page *::before,
.rivel-rooms-page *::after{box-sizing:border-box;}
.rivel-rooms-page h1,
.rivel-rooms-page h2,
.rivel-rooms-page h3{font-style:normal;}
.rivel-rooms-page img{display:block; max-width:100%; height:auto;}
.rivel-rooms-page ul{list-style:none; margin:0; padding:0;}
.rivel-rooms-page a{text-decoration:none; color:inherit;}
.rivel-rooms-page figure{margin:0;}
.rivel-rooms-page .editorial-italic{font-family:var(--rr-serif); font-style:italic; font-weight:500;}
.rivel-rooms-page .rr-eyebrow{display:block; font-family:var(--rr-font); font-size:.75rem; font-weight:700; line-height:1.5; letter-spacing:.15em; text-transform:uppercase; color:var(--rr-terra); margin:0 0 1rem;}
.rivel-rooms-page .rr-eyebrow--light{color:var(--rr-ivory);}
.rivel-rooms-page .rr-h2{font-family:var(--rr-serif); font-weight:500; font-size:clamp(2.5rem,5vw,4rem); line-height:1.1; letter-spacing:-.02em; text-transform:none; color:var(--rr-green); margin:0 0 1.25rem;}
.rivel-rooms-page .rr-section-head{text-align:center; max-width:780px; margin:0 auto clamp(2.5rem,5vw,4rem); padding:0 1.5rem;}
.rivel-rooms-page .rr-section-head p{color:var(--rr-text-secondary); line-height:1.6; font-size:clamp(1rem,1.5vw,1.125rem); margin:0;}
.rivel-rooms-page p{font-family:var(--rr-font); line-height:1.6; margin:0 0 1.25rem;}
.rivel-rooms-page .rr-btn{display:inline-flex; align-items:center; justify-content:center; gap:.75rem; max-width:100%; min-height:48px; padding:.875rem 1.5rem; border:1px solid transparent; border-radius:50px; font-family:var(--rr-font); font-size:.8125rem; font-weight:700; line-height:1.4; letter-spacing:.05em; text-align:center; text-transform:uppercase; text-decoration:none; transition:transform var(--rr-transition-fast),background-color var(--rr-transition-fast),border-color var(--rr-transition-fast),box-shadow var(--rr-transition-fast),color var(--rr-transition-fast);}
.rivel-rooms-page .rr-btn--primary{background:var(--rr-ivory); color:var(--rr-green); box-shadow:0 4px 12px rgba(0,0,0,.1);}
.rivel-rooms-page .rr-btn--primary:hover{background:#fff; color:var(--rr-green); transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.15);}
.rivel-rooms-page .rr-btn--ghost{background:transparent; border-color:rgba(245,242,233,.4); color:var(--rr-ivory);}
.rivel-rooms-page .rr-btn--ghost:hover{background:rgba(245,242,233,.1); border-color:var(--rr-ivory); color:var(--rr-ivory); transform:translateY(-2px);}
.rivel-rooms-page .rr-btn:focus-visible,
.rivel-rooms-page .rr-card:focus-visible{outline:2px solid var(--rr-terra); outline-offset:3px;}
.rivel-rooms-page .rr-hero{position:relative; min-height:80vh; min-height:80dvh; display:flex; align-items:flex-end; margin:0; padding:8rem 2rem 4rem; color:var(--rr-ivory); isolation:isolate; overflow:hidden;}
.rivel-rooms-page .rr-hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;}
.rivel-rooms-page .rr-hero-overlay{position:absolute; inset:0; z-index:-1; background:linear-gradient(210deg,rgba(16,42,32,.10) 0%,rgba(16,42,32,.75) 60%,rgba(10,26,20,.95) 100%);}
.rivel-rooms-page .rr-hero-inner{max-width:1280px; width:100%; margin:0 auto;}
.rivel-rooms-page .rr-hero-title{font-family:var(--rr-font); font-weight:700; font-size:clamp(1.8rem,4vw,3.5rem); text-transform:uppercase; line-height:.98; letter-spacing:-.035em; color:var(--rr-ivory); margin:0 0 1.25rem;}
.rivel-rooms-page .rr-hero-tagline{font-family:var(--rr-font); max-width:600px; font-size:clamp(.9rem,1.2vw,1rem); line-height:1.6; color:rgba(245,242,233,.85); margin:0 0 2.25rem;}
.rivel-rooms-page .rr-hero-actions{display:flex; flex-wrap:wrap; align-items:center; gap:1rem;}
.rivel-rooms-page .rr-icon{flex:none;}
.rivel-rooms-page .rr-i-disc{fill:var(--rr-sand);}
.rivel-rooms-page .rr-i-line{stroke:var(--rr-terra); fill:none;}
.rivel-rooms-page .rr-i-fill{fill:var(--rr-sage); fill-opacity:.65;}
.rivel-rooms-page .rr-i-accent{stroke:var(--rr-green);}
.rivel-rooms-page .rr-people{display:flex; flex-wrap:wrap; justify-content:center; gap:2px; max-width:112px; min-height:56px; align-items:center; align-content:center; background:var(--rr-sand); border-radius:28px; padding:.5rem .75rem;}
.rivel-rooms-page .rr-people svg .rr-i-line,
.rivel-rooms-page .rr-card-meta .rr-i-line{stroke:var(--rr-terra);}
.rivel-rooms-page .rr-collection{padding:clamp(4rem,8vw,7rem) 1.5rem;}
.rivel-rooms-page .rr-collection-grid{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.5rem;}
.rivel-rooms-page .rr-card{background:linear-gradient(180deg,#FDFBF6 0%,#F8F4EA 100%); color:var(--rr-text); border:1px solid rgba(24,58,43,.1); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 8px 24px rgba(16,42,32,.06); transition:transform var(--rr-transition-base),box-shadow var(--rr-transition-base),border-color var(--rr-transition-base);}
.rivel-rooms-page .rr-card:hover{color:var(--rr-text); transform:translateY(-5px); border-color:rgba(201,179,121,.65); box-shadow:0 16px 36px rgba(16,42,32,.12);}
.rivel-rooms-page .rr-card-img{aspect-ratio:10/7; overflow:hidden;}
.rivel-rooms-page .rr-card-img img{width:100%; height:100%; object-fit:cover; transition:transform .6s;}
.rivel-rooms-page .rr-card:hover .rr-card-img img{transform:scale(1.05);}
.rivel-rooms-page .rr-card-body{padding:1.4rem; border-top:2px solid var(--rr-gold); display:flex; flex-direction:column; gap:1rem; flex:1;}
.rivel-rooms-page .rr-card-body h3{font-family:var(--rr-serif); font-weight:500; font-size:clamp(1.4rem,2.1vw,1.75rem); line-height:1.15; letter-spacing:-.005em; text-transform:none; color:var(--rr-green); margin:0;}
.rivel-rooms-page .rr-card-body p{font-family:var(--rr-font); font-size:.9375rem; line-height:1.6; color:var(--rr-text-secondary); margin:0;}
.rivel-rooms-page .rr-card-meta{display:grid; grid-template-columns:repeat(auto-fit,minmax(80px,1fr)); align-items:center; gap:.6rem; padding:1rem 0; border-top:1px solid rgba(24,58,43,.12); border-bottom:1px solid rgba(24,58,43,.12); font-family:var(--rr-font); font-size:.75rem; font-weight:500; line-height:1.5; letter-spacing:0; color:var(--rr-text-secondary); margin:0;}
.rivel-rooms-page .rr-card-meta .rr-people{background:none; padding:0; min-height:0; max-width:none; justify-content:flex-start;}
.rivel-rooms-page .rr-card-link{align-self:stretch; display:flex; align-items:center; justify-content:center; width:100%; min-height:44px; margin-top:auto; padding:.8rem 1.25rem; border-radius:6px; background:var(--rr-green); color:var(--rr-ivory); font-family:var(--rr-font); font-size:.875rem; font-weight:600; line-height:1.4; letter-spacing:0; text-transform:none; transition:background-color var(--rr-transition-fast),transform var(--rr-transition-fast);}
.rivel-rooms-page .rr-reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease,transform .8s ease;}
.rivel-rooms-page .rr-reveal.is-in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .rivel-rooms-page .rr-reveal{opacity:1; transform:none; transition:none;}
  .rivel-rooms-page *,
.rivel-rooms-page *::before,
.rivel-rooms-page *::after{transition:none!important; animation:none!important; scroll-behavior:auto!important;}
}
.no-js .rivel-rooms-page .rr-reveal{opacity:1; transform:none;}
@media (max-width:640px){
  .rivel-rooms-page .rr-hero{padding:7rem 1.25rem 3rem;}
}
.rivel-rooms-page .rr-hero .rr-btn--primary{padding:.375rem .375rem .375rem 1.5rem;}
.rivel-rooms-page .rr-btn--primary > svg{flex:none;width:36px;height:36px;padding:9px;border-radius:50%; border:1px solid rgba(24,58,43,.15);background:rgba(24,58,43,.1); transition:transform var(--rr-transition-fast);}
.rivel-rooms-page .rr-btn--primary:hover > svg{transform:translateX(2px);}
.rivel-rooms-page .rr-btn--primary:focus-visible,
.rivel-rooms-page .rr-btn--primary:active{color:var(--rr-green);}
.rivel-rooms-page .rr-btn--ghost:focus-visible,
.rivel-rooms-page .rr-btn--ghost:active{color:var(--rr-ivory);}
.rivel-rooms-page .rr-btn:active{transform:translateY(0);}
.rivel-rooms-page .rr-card:hover .rr-card-link,
.rivel-rooms-page .rr-card:focus-visible .rr-card-link{background:var(--rr-green-dk);}
.rivel-rooms-page .rr-card:focus-visible{color:var(--rr-text);}
.rivel-rooms-page .rr-btn:focus-visible,
.rivel-rooms-page .rr-card:focus-visible{outline:2px solid var(--rr-terra); outline-offset:4px;}
.rivel-rooms-page .rr-collection-grid > *{min-width:0;}
.rivel-rooms-page .rr-card-body h3,
.rivel-rooms-page .rr-h2{overflow-wrap:break-word;}
@media (min-width:1440px){
  .rivel-rooms-page .rr-hero{padding:10rem 4rem 5rem;}
}
@media (max-width:767px){
  .rivel-rooms-page .rr-hero{min-height:100svh; padding:7rem 1.5rem 3rem;}
  .rivel-rooms-page .rr-hero-title{font-size:clamp(1.7rem,8vw,2.5rem);}
  .rivel-rooms-page .rr-hero-tagline{font-size:.9375rem;}
  .rivel-rooms-page .rr-h2{font-size:clamp(2rem,8vw,2.75rem);}
  .rivel-rooms-page .rr-collection-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));}
}
@media (max-width:380px){
  .rivel-rooms-page .rr-btn{font-size:.75rem; letter-spacing:.04em;}
  .rivel-rooms-page .rr-hero .rr-btn--primary{padding-left:1rem; gap:.5rem;}
}
.rivel-rooms-page .rr-card-metric{display:flex; align-items:center; gap:.4rem; min-width:0;}
.rivel-rooms-page .rr-card-metric .rr-icon{width:20px; height:20px;}
.rivel-rooms-page .rr-card-metric .rr-i-disc{fill:none;}
.rivel-rooms-page .rr-card-metric .rr-i-fill{fill:none;}
.rivel-rooms-page .rr-card-features{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem .75rem; margin:0 0 .25rem; padding:0; font-family:var(--rr-font); font-size:.8125rem; line-height:1.5; color:var(--rr-text-secondary);}
.rivel-rooms-page .rr-card-features li{position:relative; min-width:0; padding-left:.9rem;}
.rivel-rooms-page .rr-card-features li::before{content:""; position:absolute; left:0; top:.5em; width:6px; height:6px; border-radius:50%; background:var(--rr-terra);}
@media (max-width:380px){
  .rivel-rooms-page .rr-card-body{padding:1.1rem;}
  .rivel-rooms-page .rr-card-features{font-size:.75rem; gap:.45rem .5rem;}
}
.rivel-rooms-page .rr-hero,
.rivel-rooms-page .rr-collection{width:100%; max-width:none; margin:0; padding:8rem max(1.5rem,calc((100% - 1280px)/2));}
.rivel-rooms-page .rr-hero-inner,
.rivel-rooms-page .rr-collection-grid{width:100%; max-width:none; margin-left:0; margin-right:0;}
.rivel-rooms-page .rr-hero-inner{padding:0;}
.rivel-rooms-page .rr-section-head{padding-left:0;padding-right:0;}
.rivel-rooms-page .rr-collection-grid{grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem;}
@media (max-width:1024px){
  .rivel-rooms-page .rr-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .rivel-rooms-page .rr-collection-grid{grid-template-columns:minmax(0,1fr);}
}

/* ---- Full-bleed guard: keep the page from being boxed in by theme/Blocksy rules ---- */
html body.rivel-rooms-template{background:var(--clr-warm-ivory,#F5F2E9)}
body.rivel-rooms-template main.rivel-rooms-page{display:block;float:none;width:100%!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;position:relative}


/* =====================================================================
 * HERO VISIBILITY FIX (v4)
 * - dark base colour so the hero is never ivory-on-ivory if the photo fails
 * - explicit stacking: image 0 < overlay 1 < content 2
 * - text colours forced with !important to beat theme / Elementor / Blocksy rules
 * ===================================================================== */
.rivel-rooms-page .rr-hero{
  background-color:#102A20 !important;
  background-image:linear-gradient(210deg,#183A2B 0%,#102A20 60%,#0A1A14 100%);
  z-index:0;
}
.rivel-rooms-page .rr-hero-bg{z-index:0; background:transparent;}
.rivel-rooms-page .rr-hero-bg.is-broken{display:none;}   /* hide broken-image icon */
.rivel-rooms-page .rr-hero-overlay{
  z-index:1; pointer-events:none;
  background:linear-gradient(210deg,rgba(16,42,32,.35) 0%,rgba(16,42,32,.75) 60%,rgba(10,26,20,.95) 100%);
}
.rivel-rooms-page .rr-hero-inner{
  position:relative; z-index:2;
  display:block !important; visibility:visible !important; opacity:1 !important;
}
.rivel-rooms-page .rr-hero .rr-eyebrow,
.rivel-rooms-page .rr-hero .rr-hero-title,
.rivel-rooms-page .rr-hero .rr-hero-tagline{
  display:block !important; visibility:visible !important; opacity:1 !important;
  transform:none !important; height:auto !important; clip:auto !important;
  text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.rivel-rooms-page .rr-hero .rr-eyebrow,
.rivel-rooms-page .rr-hero .rr-eyebrow--light{
  color:#F5F2E9 !important; -webkit-text-fill-color:#F5F2E9 !important;
}
.rivel-rooms-page .rr-hero h1.rr-hero-title{
  color:#F5F2E9 !important; -webkit-text-fill-color:#F5F2E9 !important;
  background:none !important;
}
.rivel-rooms-page .rr-hero p.rr-hero-tagline{
  color:rgba(245,242,233,.92) !important; -webkit-text-fill-color:rgba(245,242,233,.92) !important;
}
.rivel-rooms-page .rr-hero .rr-btn--primary{color:#183A2B !important;}
.rivel-rooms-page .rr-hero .rr-btn--ghost{color:#F5F2E9 !important;}
