/* Hotel Rivel — accommodation / room templates.
 * Complete replacement for accommodation.css.
 * Uses the same typography and palette as homepage.css + global.css.
 * Every rule is scoped to the existing .rivel-room-template wrapper.
 * Requires the existing accommodation.js for scroll reveal.
 * Fonts use your theme's existing font loading; no external imports.
 */
.rivel-room-template {
  --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;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}

.rivel-room-template *,.rivel-room-template *::before,.rivel-room-template *::after {
  box-sizing:border-box;
}

.rivel-room-template h1,.rivel-room-template h2,.rivel-room-template h3 {
  font-style:normal;
}

.rivel-room-template img {
  display:block;
  max-width:100%;
  height:auto;
}

.rivel-room-template ul {
  list-style:none;
  margin:0;
  padding:0;
}

.rivel-room-template a {
  text-decoration:none;
  color:inherit;
}

.rivel-room-template figure {
  margin:0;
}

.rivel-room-template .editorial-italic {
  font-family:var(--rr-serif);
  font-style:italic;
  font-weight:500;
}


/* type */
.rivel-room-template .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-room-template .rr-eyebrow--light {
  color:var(--rr-ivory);
}

.rivel-room-template .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-room-template .rr-h2--light {
  color:var(--rr-ivory);
}

.rivel-room-template .rr-h3 {
  font-family:var(--rr-serif);
  font-weight:500;
  font-size:clamp(1.5rem,2.1vw,2rem);
  line-height:1.15;
  letter-spacing:-.005em;
  text-transform:none;
  color:var(--rr-green);
  margin:0 0 1.25rem;
}

.rivel-room-template .rr-h3--lg {
  font-size:clamp(1.75rem,3vw,2.5rem);
  font-weight:500;
}

.rivel-room-template .rr-section-head {
  text-align:center;
  max-width:780px;
  margin:0 auto clamp(2.5rem,5vw,4rem);
  padding:0 1.5rem;
}

.rivel-room-template .rr-section-head p {
  color:var(--rr-text-secondary);
  line-height:1.6;
  font-size:clamp(1rem,1.5vw,1.125rem);
  margin:0;
}

.rivel-room-template p {
  font-family:var(--rr-font);
  line-height:1.6;
  margin:0 0 1.25rem;
}


/* buttons */
.rivel-room-template .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-room-template .rr-btn--primary {
  background:var(--rr-ivory);
  color:var(--rr-green);
  box-shadow:0 4px 12px rgba(0,0,0,.1);
}

.rivel-room-template .rr-btn--primary:hover {
  background:#fff;
  color:var(--rr-green);
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(0,0,0,.15);
}

.rivel-room-template .rr-btn--ghost {
  background:transparent;
  border-color:rgba(245,242,233,.4);
  color:var(--rr-ivory);
}

.rivel-room-template .rr-btn--ghost:hover {
  background:rgba(245,242,233,.1);
  border-color:var(--rr-ivory);
  color:var(--rr-ivory);
  transform:translateY(-2px);
}

.rivel-room-template .rr-btn:focus-visible,.rivel-room-template .rr-card:focus-visible {
  outline:2px solid var(--rr-terra);
  outline-offset:3px;
}


/* 1 hero */
.rivel-room-template .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-room-template .rr-hero-bg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
}

.rivel-room-template .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-room-template .rr-hero-inner {
  max-width:1280px;
  width:100%;
  margin:0 auto;
}

.rivel-room-template .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-room-template .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-room-template .rr-hero-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem;
}


/* 2 facts */
.rivel-room-template .rr-facts {
  max-width:1280px;
  margin:0 auto;
  padding: 1.8rem 1.5rem 1.8rem !important;
  text-align:center;
}

.rivel-room-template .rr-facts-row {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:1.75rem 1rem;
}

.rivel-room-template .rr-fact {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.4rem;
}

.rivel-room-template .rr-fact-value {
  font-family:var(--rr-font);
  font-weight:700;
  font-size:.9375rem;
  line-height:1.4;
  color:var(--rr-green);
}

.rivel-room-template .rr-fact-label {
  font-family:var(--rr-font);
  font-size:.6875rem;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--rr-text-secondary);
}

.rivel-room-template .rr-icon {
  flex:none;
}

.rivel-room-template .rr-i-disc {
  fill:var(--rr-sand);
}

.rivel-room-template .rr-i-line {
  stroke:var(--rr-terra);
  fill:none;
}

.rivel-room-template .rr-i-fill {
  fill:var(--rr-sage);
  fill-opacity:.65;
}

.rivel-room-template .rr-i-accent {
  stroke:var(--rr-green);
}

.rivel-room-template .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-room-template .rr-people svg .rr-i-line,.rivel-room-template .rr-card-meta .rr-i-line {
  stroke:var(--rr-terra);
}

.rivel-room-template .rr-bed-note {
  margin:1.5rem 0 0;
  font-size:.9375rem;
  color:var(--rr-text-secondary);
}

.rivel-room-template .rr-badges {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.6rem;
  margin-top:2rem;
}

.rivel-room-template .rr-badges li {
  font-family:var(--rr-font);
  font-size:.6875rem;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.1em;
  text-transform:uppercase;
  border:1px solid rgba(184,111,69,.3);
  background:rgba(184,111,69,.04);
  color:var(--rr-terra);
  padding:.5rem 1rem;
  border-radius:50px;
}


/* 3 photos */
.rivel-room-template .rr-photos {
  max-width:1180px;
  margin:0 auto;
  padding:2.5rem 1.5rem clamp(3rem,6vw,5rem);
}

.rivel-room-template .rr-photo-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:.9rem;
  height:clamp(320px,52vw,560px);
}

.rivel-room-template .rr-photo {
  margin:0;
  border-radius:14px;
  overflow:hidden;
  background:var(--rr-sand);
}

.rivel-room-template .rr-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s;
}

.rivel-room-template .rr-photo:hover img {
  transform:scale(1.04);
}

.rivel-room-template .rr-photo--main {
  grid-row:1/3;
}


/* 4 character */
.rivel-room-template .rr-character {
  max-width:1180px;
  margin:0 auto;
  padding:0 1.5rem clamp(4rem,7vw,6rem);
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(2rem,6vw,5rem);
  align-items:start;
}

.rivel-room-template .rr-character-text p {
  color:var(--rr-text-secondary);
  font-size:clamp(1rem,1.5vw,1.125rem);
  line-height:1.6;
}

.rivel-room-template .rr-character-features {
  background:linear-gradient(180deg,#FDFBF6 0%,#F8F4EA 100%);
  border:1px solid rgba(24,58,43,.1);
  border-top:2px solid var(--rr-gold);
  border-radius:16px;
  padding:2rem;
  box-shadow:0 10px 30px rgba(16,42,32,.06);
}

.rivel-room-template .rr-character-features li {
  display:flex;
  gap:1rem;
  align-items:center;
  padding:.9rem 0;
  border-bottom:1px solid rgba(24,58,43,.1);
}

.rivel-room-template .rr-character-features li:last-child {
  border:0;
}

.rivel-room-template .rr-character-features strong {
  display:block;
  font-family:var(--rr-font);
  font-weight:600;
  font-size:.9375rem;
  line-height:1.5;
  color:var(--rr-text);
}

.rivel-room-template .rr-character-features span {
  font-family:var(--rr-font);
  font-size:.875rem;
  color:var(--rr-text-secondary);
  line-height:1.5;
}


/* 5 could include */
.rivel-room-template .rr-include {
  background:var(--rr-green-dk);
  color:var(--rr-ivory);
  padding:clamp(4rem,8vw,7rem) 1.5rem;
}

.rivel-room-template .rr-include-inner {
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(2rem,6vw,5rem);
  align-items:center;
}

.rivel-room-template .rr-include-img {
  margin:0;
  border-radius:16px;
  overflow:hidden;
  aspect-ratio:4/5;
}

.rivel-room-template .rr-include-img img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.rivel-room-template .rr-include-lede {
  color:rgba(245,242,233,.85);
  font-size:clamp(1rem,1.5vw,1.125rem);
  line-height:1.6;
}

.rivel-room-template .rr-include-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.7rem 1.5rem;
  margin:1.5rem 0;
}

.rivel-room-template .rr-include-list li {
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  font-family:var(--rr-font);
  font-size:.9375rem;
  color:rgba(245,242,233,.9);
  line-height:1.6;
}

.rivel-room-template .rr-include-list svg {
  flex:none;
  margin-top:2px;
  color:var(--rr-terra);
}

.rivel-room-template .rr-include-note {
  font-size:.875rem;
  font-style:italic;
  color:rgba(245,242,233,.75);
  margin:0 0 1.75rem;
}


/* 6 collection */
.rivel-room-template .rr-collection {
  padding:clamp(4rem,8vw,7rem) 1.5rem;
}

.rivel-room-template .rr-collection-grid {
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:1.5rem;
}

.rivel-room-template .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-room-template .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-room-template .rr-card-img {
  aspect-ratio:10/7;
  overflow:hidden;
}

.rivel-room-template .rr-card-img img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s;
}

.rivel-room-template .rr-card:hover .rr-card-img img {
  transform:scale(1.05);
}

.rivel-room-template .rr-card-body {
  padding:1.4rem;
  border-top:2px solid var(--rr-gold);
  display:flex;
  flex-direction:column;
  gap:1rem;
  flex:1;
}

.rivel-room-template .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-room-template .rr-card-body p {
  font-family:var(--rr-font);
  font-size:.9375rem;
  line-height:1.6;
  color:var(--rr-text-secondary);
  margin:0;
}

.rivel-room-template .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-room-template .rr-card-meta .rr-people {
  background:none;
  padding:0;
  min-height:0;
  max-width:none;
  justify-content:flex-start;
}

.rivel-room-template .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);
}


/* 7 editorial */
.rivel-room-template .rr-editorial {
  background:var(--rr-sand);
  padding:clamp(4rem,8vw,7rem) 1.5rem;
}

.rivel-room-template .rr-editorial-row {
  max-width:1180px;
  margin:0 auto 3.5rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}

.rivel-room-template .rr-editorial-row:last-child {
  margin-bottom:0;
}

.rivel-room-template .rr-editorial-row img {
  border-radius:16px;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}

.rivel-room-template .rr-editorial-row p {
  color:var(--rr-text-secondary);
  font-size:clamp(1rem,1.5vw,1.125rem);
  line-height:1.6;
}

.rivel-room-template .rr-editorial-row--flip img {
  order:2;
}


.rivel-room-template .rr-connect {
  background:var(--rr-sand);
  padding:clamp(4rem,8vw,7rem) 1.5rem;
}

.rivel-room-template .rr-connect-grid {
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1.5rem;
}

.rivel-room-template .rr-connect-card img {
  display:block;
  width:100%;
  height:100%;
  border-radius:0;
  aspect-ratio:16/10;
  object-fit:cover;
  margin:0;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}

.rivel-room-template .rr-connect-card h3 {
  font-family:var(--rr-font);
  font-size:1.125rem;
  font-weight:600;
  line-height:1.4;
  letter-spacing:0;
  text-transform:none;
  color:var(--rr-green);
  margin:0 0 .5rem;
}

.rivel-room-template .rr-connect-card p {
  font-family:var(--rr-font);
  font-size:.875rem;
  line-height:1.6;
  color:var(--rr-text-secondary);
  margin:0 0 1.5rem;
  flex-grow:1;
}


/* 8 final CTA */
.rivel-room-template .rr-final {
  position:relative;
  isolation:isolate;
  text-align:center;
  color:var(--rr-ivory);
  padding:clamp(5rem,10vw,8rem) 1.5rem;
  overflow:hidden;
}

.rivel-room-template .rr-final-bg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
}

.rivel-room-template .rr-final-overlay {
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(10,26,20,.72);
}

.rivel-room-template .rr-final-inner {
  max-width:640px;
  margin:0 auto;
}

.rivel-room-template .rr-final-inner p {
  font-size:clamp(1rem,1.5vw,1.125rem);
  line-height:1.6;
  color:rgba(245,242,233,.85);
  margin:0 0 2rem;
}


/* reveal */
.rivel-room-template .rr-reveal {
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s ease,transform .8s ease;
}

.rivel-room-template .rr-reveal.is-in {
  opacity:1;
  transform:none;
}

@media (prefers-reduced-motion:reduce) {
  .rivel-room-template .rr-reveal {
    opacity:1;
    transform:none;
    transition:none;
  }
  .rivel-room-template *, .rivel-room-template *::before, .rivel-room-template *::after {
    transition:none!important;
    animation:none!important;
    scroll-behavior:auto!important;
  }
}

.no-js .rivel-room-template .rr-reveal {
  opacity:1;
  transform:none;
}


/* responsive */
@media (max-width:900px) {
  .rivel-room-template .rr-character,.rivel-room-template .rr-include-inner,.rivel-room-template .rr-editorial-row {
    grid-template-columns:1fr;
  }
  .rivel-room-template .rr-editorial-row--flip img {
    order:0;
  }
  .rivel-room-template .rr-include-img {
    aspect-ratio:16/10;
  }
}

@media (max-width:640px) {
  .rivel-room-template .rr-hero {
    padding:7rem 1.25rem 3rem;
  }
  .rivel-room-template .rr-photo-grid {
    grid-template-columns:1fr 1fr;
    grid-template-rows:2fr 1fr 1fr;
    height:auto;
  }
  .rivel-room-template .rr-photo--main {
    grid-column:1/3;
    grid-row:1;
    aspect-ratio:4/3;
  }
  .rivel-room-template .rr-photo {
    aspect-ratio:1;
  }
  .rivel-room-template .rr-include-list {
    grid-template-columns:1fr;
  }
}


/* Homepage-style CTA arrow disc and clear, stable interaction colors. */
.rivel-room-template .rr-hero .rr-btn--primary,
.rivel-room-template .rr-final .rr-btn--primary {
  padding:.375rem .375rem .375rem 1.5rem;
}

.rivel-room-template .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-room-template .rr-btn--primary:hover > svg {
  transform:translateX(2px);
}

.rivel-room-template .rr-btn--primary:focus-visible,
.rivel-room-template .rr-btn--primary:active {
  color:var(--rr-green);
}

.rivel-room-template .rr-btn--ghost:focus-visible,
.rivel-room-template .rr-btn--ghost:active {
  color:var(--rr-ivory);
}

.rivel-room-template .rr-btn:active {
  transform:translateY(0);
}

.rivel-room-template .rr-card:hover .rr-card-link,
.rivel-room-template .rr-card:focus-visible .rr-card-link {
  background:var(--rr-green-dk);
}

.rivel-room-template .rr-card:focus-visible {
  color:var(--rr-text);
}

.rivel-room-template .rr-btn:focus-visible,
.rivel-room-template .rr-card:focus-visible {
  outline:2px solid var(--rr-terra);
  outline-offset:4px;
}

.rivel-room-template .rr-character > *,
.rivel-room-template .rr-include-inner > *,
.rivel-room-template .rr-editorial-row > *,
.rivel-room-template .rr-collection-grid > *,
.rivel-room-template .rr-connect-grid > * {
  min-width:0;
}

.rivel-room-template .rr-character-features li > div {
  min-width:0;
}

.rivel-room-template .rr-card-body h3,
.rivel-room-template .rr-h2,
.rivel-room-template .rr-h3 {
  overflow-wrap:break-word;
}


@media (min-width:1440px) {
  .rivel-room-template .rr-hero {
    padding:10rem 4rem 5rem;
  }
}

@media (max-width:767px) {
  .rivel-room-template .rr-hero {
    min-height:100svh;
    padding:7rem 1.5rem 3rem;
  }
  .rivel-room-template .rr-hero-title {
    font-size:clamp(1.7rem,8vw,2.5rem);
  }
  .rivel-room-template .rr-hero-tagline {
    font-size:.9375rem;
  }
  .rivel-room-template .rr-h2 {
    font-size:clamp(2rem,8vw,2.75rem);
  }
  .rivel-room-template .rr-h3--lg {
    font-size:clamp(1.75rem,6vw,2.25rem);
  }
  .rivel-room-template .rr-collection-grid {
    grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));
  }
  .rivel-room-template .rr-character-features {
    padding:1.5rem;
  }
}

@media (max-width:380px) {
  .rivel-room-template .rr-facts-row {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .rivel-room-template .rr-btn {
    font-size:.75rem;
    letter-spacing:.04em;
  }
  .rivel-room-template .rr-hero .rr-btn--primary,
  .rivel-room-template .rr-final .rr-btn--primary {
    padding-left:1rem;
    gap:.5rem;
  }
}

/* Sky Lodge revision: custom fact icon image files. No color filters are
   applied, so your uploaded icons retain their original artwork. */
.rivel-room-template .rr-fact-icon {
  width:56px;
  height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:none;
}
.rivel-room-template .rr-fact-custom-icon {
  display:block;
  width:48px;
  height:48px;
  max-width:100%;
  object-fit:contain;
}

/* Informational highlights: positioned immediately after the gallery. */
.rivel-room-template .rr-photos .rr-badges {
  margin-top:1.5rem;
}

/* Galleries gracefully handle the two actual Sky Lodge photos included
   in the supplied theme, or any of the five preferred photos you upload. */
.rivel-room-template .rr-photo-grid[data-photo-count="0"] {
  display:none;
}
.rivel-room-template .rr-photo-grid[data-photo-count="1"] {
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
}
.rivel-room-template .rr-photo-grid[data-photo-count="1"] .rr-photo--main {
  grid-column:1;
  grid-row:1;
}
.rivel-room-template .rr-photo-grid[data-photo-count="2"] {
  grid-template-columns:minmax(0,2fr) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
}
.rivel-room-template .rr-photo-grid[data-photo-count="2"] .rr-photo {
  grid-row:1;
  grid-column:auto;
}
.rivel-room-template .rr-photo-grid[data-photo-count="3"] {
  grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
}
.rivel-room-template .rr-photo-grid[data-photo-count="3"] .rr-photo {
  grid-row:1;
  grid-column:auto;
}

/* Guest count, floor area and bed count; small icons and clear dividers. */
.rivel-room-template .rr-card-metric {
  display:flex;
  align-items:center;
  gap:.4rem;
  min-width:0;
}
.rivel-room-template .rr-card-metric .rr-icon {
  width:20px;
  height:20px;
}
.rivel-room-template .rr-card-metric .rr-i-disc {
  fill:none;
}
.rivel-room-template .rr-card-metric .rr-i-fill {
  fill:none;
}
.rivel-room-template .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-room-template .rr-card-features li {
  position:relative;
  min-width:0;
  padding-left:.9rem;
}
.rivel-room-template .rr-card-features li::before {
  content:"";
  position:absolute;
  left:0;
  top:.5em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--rr-terra);
}

/* Experiences: one accessible link per card, matching the reference. */
.rivel-room-template .rr-connect-card {
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:12px;
  background:var(--rr-ivory);
  color:var(--rr-text);
  text-decoration:none;
  box-shadow:0 4px 12px rgba(16,42,32,.04);
  transition:transform var(--rr-transition-base),box-shadow var(--rr-transition-base);
}
.rivel-room-template .rr-connect-card:hover {
  color:var(--rr-text);
  transform:translateY(-4px);
  box-shadow:0 12px 24px rgba(16,42,32,.08);
}
.rivel-room-template .rr-connect-card:focus-visible {
  color:var(--rr-text);
  outline:2px solid var(--rr-terra);
  outline-offset:4px;
}
.rivel-room-template .rr-connect-image {
  width:100%;
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--rr-sage);
}
.rivel-room-template .rr-connect-body {
  display:flex;
  flex-direction:column;
  flex-grow:1;
  padding:1.5rem;
}
.rivel-room-template .rr-connect-link {
  display:flex;
  align-items:center;
  gap:.5rem;
  margin-top:auto;
  color:var(--rr-terra);
  font-family:var(--rr-font);
  font-size:.875rem;
  font-weight:600;
  line-height:1.5;
  transition:gap var(--rr-transition-fast);
}
.rivel-room-template .rr-connect-card:hover .rr-connect-link {
  gap:.75rem;
}
.rivel-room-template .rr-connect-card:hover img {
  transform:scale(1.05);
}

@media (min-width:768px) {
  .rivel-room-template .rr-connect-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:2rem;
  }
}
@media (min-width:1024px) {
  .rivel-room-template .rr-connect-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (min-width:1440px) {
  .rivel-room-template .rr-connect-grid {
    gap:2.5rem;
  }
}
@media (max-width:640px) {
  .rivel-room-template .rr-photo-grid[data-photo-count="1"],
  .rivel-room-template .rr-photo-grid[data-photo-count="2"],
  .rivel-room-template .rr-photo-grid[data-photo-count="3"] {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:auto;
    height:auto;
  }
  .rivel-room-template .rr-photo-grid[data-photo-count="1"] .rr-photo--main,
  .rivel-room-template .rr-photo-grid[data-photo-count="2"] .rr-photo--main,
  .rivel-room-template .rr-photo-grid[data-photo-count="3"] .rr-photo--main {
    grid-column:1/-1;
    grid-row:auto;
    aspect-ratio:4/3;
  }
  .rivel-room-template .rr-photo-grid[data-photo-count="2"] .rr-photo:not(.rr-photo--main) {
    grid-column:1/-1;
    grid-row:auto;
    aspect-ratio:16/10;
  }
  .rivel-room-template .rr-photo-grid[data-photo-count="3"] .rr-photo:not(.rr-photo--main) {
    grid-column:auto;
    grid-row:auto;
    aspect-ratio:1;
  }
}
@media (max-width:380px) {
  .rivel-room-template .rr-card-body {
    padding:1.1rem;
  }
  .rivel-room-template .rr-card-features {
    font-size:.75rem;
    gap:.45rem .5rem;
  }
}
@media (prefers-reduced-motion:reduce) {
  .rivel-room-template .rr-connect-card:hover,
  .rivel-room-template .rr-connect-card:hover img {
    transform:none;
  }
}


/* Sky Lodge visual tour: one large image, four thumbnails and three icon boxes. */
.rivel-room-template .rr-photos {
  max-width:none;
  padding:5rem max(1.5rem,calc((100% - 1200px)/2)) 3rem;
  background:#fff;
}
.rivel-room-template .rr-gallery-heading {
  text-align:center;
  margin:0 0 2.5rem;
}
.rivel-room-template .rr-gallery-title {
  margin:1rem 0 0;
  color:#4B5739;
  font-family:var(--rr-serif);
  font-size:clamp(2rem,3.4vw,2.75rem);
  font-weight:600;
  line-height:1.15;
}
.rivel-room-template .rr-photo-grid[data-photo-count="5"] {
  grid-template-columns:minmax(0,2.75fr) minmax(0,1fr) minmax(0,1fr);
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:20px;
  height:500px;
}
.rivel-room-template .rr-photo-grid[data-photo-count="5"] .rr-photo--main {
  grid-column:1;
  grid-row:1 / 3;
  margin-right:20px;
}
.rivel-room-template .rr-photo-grid[data-photo-count="5"] .rr-photo {
  border-radius:10px;
}
.rivel-room-template .rr-photos .rr-gallery-highlights {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2rem;
  margin:1.5rem 0 0;
  padding:0;
}
.rivel-room-template .rr-photos .rr-gallery-highlights li {
  display:flex;
  align-items:center;
  gap:1rem;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  color:var(--rr-text);
  font-family:var(--rr-font);
  font-size:.9375rem;
  font-weight:400;
  letter-spacing:normal;
  line-height:1.5;
  text-transform:none;
}
.rivel-room-template .rr-highlight-icon {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  border-radius:50%;
  background:#CB8465;
  color:#fff;
}
.rivel-room-template .rr-highlight-icon svg { display:block;flex:none; }
.rivel-room-template .rr-highlight-text { display:flex;flex-direction:column;gap:.25rem;min-width:0; }
.rivel-room-template .rr-highlight-text strong { font-weight:600;font-size:1rem;line-height:1.4; }
.rivel-room-template .rr-highlight-text > span { font-size:.875rem;line-height:1.5; }
@media (max-width:900px) {
  .rivel-room-template .rr-photo-grid[data-photo-count="5"] {
    grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));
    height:400px;
    gap:12px;
  }
  .rivel-room-template .rr-photo-grid[data-photo-count="5"] .rr-photo--main { margin-right:0; }
  .rivel-room-template .rr-photos .rr-gallery-highlights { gap:1rem; }
  .rivel-room-template .rr-photos .rr-gallery-highlights li { gap:.65rem; }
}
@media (max-width:640px) {
  .rivel-room-template .rr-photos { padding:3rem 1.5rem; }
  .rivel-room-template .rr-gallery-heading { margin-bottom:1.5rem; }
  .rivel-room-template .rr-photo-grid[data-photo-count="5"] {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:auto auto auto;
    height:auto;
  }
  .rivel-room-template .rr-photo-grid[data-photo-count="5"] .rr-photo--main {
    grid-column:1 / 3;
    grid-row:1;
    aspect-ratio:4 / 3;
  }
  .rivel-room-template .rr-photo-grid[data-photo-count="5"] .rr-photo:not(.rr-photo--main) { aspect-ratio:1; }
  .rivel-room-template .rr-photos .rr-gallery-highlights { grid-template-columns:1fr;gap:1.25rem; }
}


/* ==========================================================================
   LAYOUT SYSTEM (final override block; keep at the end of the file)
   1. Content width of every section is 1280px, centred. Below ~1328px the
      content shrinks to the viewport minus 1.5rem each side.
   2. Every section: 8rem top and bottom, 1.5rem left and right (as a minimum).
   3. Two consecutive sections with the same background colour: the second
      one gets no top padding, so the gap between them is a single 8rem.
   Background order on this template:
     hero (image) > facts (ivory) > photos (white) > character (ivory)
     > include (dark green) > collection (ivory) > editorial (sand)
     > connect (sand) > [final CTA (image), when used]
   Only editorial > connect share a background, so only connect loses its top
   padding. If sections are reordered or recoloured, update the rule below.
   ========================================================================== */
.rivel-room-template .rr-hero,
.rivel-room-template .rr-facts,
.rivel-room-template .rr-photos,
.rivel-room-template .rr-character,
.rivel-room-template .rr-include,
.rivel-room-template .rr-collection,
.rivel-room-template .rr-editorial,
.rivel-room-template .rr-connect,
.rivel-room-template .rr-final {
  width:100%;
  max-width:none;
  margin:0;
  padding:8rem max(1.5rem,calc((100% - 1280px)/2));
}

/* Inner wrappers fill the 1280px content box instead of adding their own limits. */
.rivel-room-template .rr-hero-inner,
.rivel-room-template .rr-include-inner,
.rivel-room-template .rr-collection-grid,
.rivel-room-template .rr-connect-grid,
.rivel-room-template .rr-editorial-row {
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}
.rivel-room-template .rr-hero-inner { padding:0; }

/* Centred section headings keep their readable measure, without extra side padding. */
.rivel-room-template .rr-section-head { padding-left:0;padding-right:0; }

/* Same background as the section above: no top padding. */
.rivel-room-template .rr-editorial + .rr-connect { padding-top:0; }

/* Explore More Sanctuaries: three cards per row (two on tablet, one on mobile). */
.rivel-room-template .rr-collection-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2rem;
}
@media (max-width:1024px) {
  .rivel-room-template .rr-collection-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px) {
  .rivel-room-template .rr-collection-grid {
    grid-template-columns:minmax(0,1fr);
  }
}
