.rooms-page{background:var(--ivory);color:var(--ink)}

.rooms-hero{position:relative;min-height:82svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--forest-950);color:#fff}
.rooms-hero-media{position:absolute;inset:0;overflow:hidden}
.rooms-hero-media img{object-fit:cover;object-position:center 48%;transform:scale(1.025);animation:roomsHeroImage 1.15s cubic-bezier(.2,.7,.2,1) both}
.rooms-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,24,18,.92) 0%,rgba(4,24,18,.64) 45%,rgba(4,24,18,.16) 80%),linear-gradient(0deg,rgba(3,18,13,.84),transparent 50%)}
.rooms-hero-content{position:relative;z-index:2;padding:150px 0 96px;animation:roomsHeroCopy .8s .08s cubic-bezier(.2,.7,.2,1) both}
.rooms-hero h1{max-width:1040px;margin:17px 0 0;font-family:var(--serif);font-size:clamp(4rem,7.6vw,7.8rem);font-weight:500;letter-spacing:-.068em;line-height:.86}
.rooms-hero-copy{max-width:700px;margin:27px 0 0;color:rgba(255,255,255,.82);font-size:clamp(1rem,1.35vw,1.18rem);line-height:1.72}
.rooms-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}

.catalog-section{padding:clamp(92px,10vw,150px) 0;background:var(--ivory)}
.catalog-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(290px,.55fr);gap:clamp(45px,7vw,105px);align-items:end}
.catalog-heading>p{max-width:560px;margin:0 0 4px;color:var(--muted);font-size:.9rem;line-height:1.75}
.room-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:58px;border:1px solid var(--line);background:var(--line)}
.room-catalog-card{position:relative;min-height:390px;display:flex;flex-direction:column;padding:28px;background:var(--paper);overflow:hidden;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.room-catalog-card::after{content:"";position:absolute;right:-50px;bottom:-70px;width:180px;height:180px;border:1px solid rgba(182,138,73,.15);border-radius:50%;transition:transform .35s ease,border-color .35s ease}
.room-catalog-card:hover{z-index:2;transform:translateY(-3px);background:#fff;box-shadow:0 24px 60px rgba(7,39,28,.11)}
.room-catalog-card:hover::after{transform:scale(1.18);border-color:rgba(182,138,73,.30)}
.room-catalog-card-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:18px}
.room-catalog-index{color:#987443;font-size:.63rem;font-weight:850;letter-spacing:.14em}
.room-catalog-meta{color:var(--muted);font-size:.68rem;font-weight:760}
.room-catalog-card h2{position:relative;z-index:1;max-width:360px;margin:50px 0 12px;font-family:var(--serif);font-size:clamp(1.75rem,2.5vw,2.45rem);font-weight:500;letter-spacing:-.04em;line-height:1.02}
.room-catalog-card>p{position:relative;z-index:1;max-width:390px;margin:0;color:var(--muted);font-size:.79rem;line-height:1.65}
.room-catalog-price{position:relative;z-index:1;margin:auto 0 18px;padding-top:42px}
.room-catalog-price span{display:block;color:#8d744e;font-size:.58rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.room-catalog-price strong{display:block;margin-top:5px;font-family:var(--serif);font-size:1.22rem;font-weight:500}
.room-catalog-card .text-link{position:relative;z-index:1;font-size:.72rem}
.catalog-truth{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:22px;border:1px solid var(--line);background:var(--line)}
.catalog-truth>div{padding:25px 28px;background:#fff}
.catalog-truth strong{font-family:var(--serif);font-size:1.2rem;font-weight:500}
.catalog-truth p{margin:8px 0 0;color:var(--muted);font-size:.75rem;line-height:1.65}
.catalog-booking{position:relative;z-index:4;margin-top:-42px;margin-bottom:clamp(86px,9vw,130px)}
.catalog-booking .booking-shell{box-shadow:0 28px 80px rgba(7,39,28,.14)}
.rooms-footer{padding:38px 0;background:#04130f;color:rgba(255,255,255,.65)}
.rooms-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.rooms-footer strong{color:#fff;font-family:var(--serif);font-size:1.08rem;font-weight:500}
.rooms-footer a{font-size:.74rem;font-weight:800}
.rooms-footer a:hover{color:#fff}

.room-detail-hero{position:relative;min-height:76svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--forest-950);color:#fff}
.room-detail-hero-media{position:absolute;inset:0;overflow:hidden}
.room-detail-hero-media img{object-fit:cover;object-position:center 50%;transform:scale(1.03)}
.room-detail-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,24,18,.94) 0%,rgba(4,24,18,.67) 47%,rgba(4,24,18,.20) 82%),linear-gradient(0deg,rgba(3,18,13,.83),transparent 55%)}
.room-detail-hero-content{position:relative;z-index:2;padding:140px 0 78px}
.room-detail-back{width:fit-content;display:inline-flex;margin-bottom:34px;padding-bottom:5px;border-bottom:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.76);font-size:.7rem;font-weight:800;transition:color .18s ease,border-color .18s ease}
.room-detail-back:hover{color:#fff;border-color:#fff}
.room-detail-hero h1{max-width:1000px;margin:16px 0 0;font-family:var(--serif);font-size:clamp(4rem,7.6vw,7.6rem);font-weight:500;letter-spacing:-.065em;line-height:.87}
.room-detail-kicker{display:flex;flex-wrap:wrap;gap:0;margin-top:38px;border-top:1px solid rgba(255,255,255,.24)}
.room-detail-kicker span{min-width:170px;padding:15px 30px 0 0;color:rgba(255,255,255,.72);font-size:.69rem;font-weight:760}
.room-detail-main{padding:clamp(88px,10vw,145px) 0 72px;background:var(--ivory)}
.room-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.42fr);gap:clamp(54px,8vw,120px);align-items:start}
.room-detail-copy{min-width:0}
.room-detail-copy .lead{max-width:720px;color:#536259}
.room-detail-facts{display:grid;grid-template-columns:1fr 1fr;max-width:720px;margin-top:46px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.room-detail-facts>div{min-height:135px;display:flex;flex-direction:column;justify-content:space-between;padding:22px 24px 20px 0;border-right:1px solid var(--line)}
.room-detail-facts>div+div{padding-left:24px;border-right:0}
.room-detail-facts span{color:var(--muted);font-size:.62rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.room-detail-facts strong{font-family:var(--serif);font-size:clamp(1.7rem,2.7vw,2.45rem);font-weight:500;letter-spacing:-.04em}
.room-detail-safety{max-width:720px;margin-top:30px;padding:24px 26px;border-left:3px solid var(--sand);background:#f2ead8}
.room-detail-safety strong{font-family:var(--serif);font-size:1.25rem;font-weight:500}
.room-detail-safety p{margin:8px 0 0;color:#606c64;font-size:.77rem;line-height:1.68}
.room-rate-card{position:sticky;top:110px;padding:28px;background:var(--forest-900);color:#fff;box-shadow:0 28px 72px rgba(6,30,22,.17)}
.room-rate-card>p:first-child{margin:0 0 24px;color:var(--sand-light);font-size:.61rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.room-rate-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;padding:18px 0;border-top:1px solid rgba(255,255,255,.15)}
.room-rate-row span{color:rgba(255,255,255,.65);font-size:.7rem;line-height:1.3}
.room-rate-row strong{font-family:var(--serif);font-size:1.28rem;font-weight:500;white-space:nowrap}
.room-rate-note{margin:22px 0 0;color:rgba(255,255,255,.58);font-size:.68rem;line-height:1.6}
.room-rate-cta{width:100%;margin-top:24px}
.room-detail-booking{margin-bottom:clamp(90px,10vw,145px)}
.room-detail-booking .booking-shell{box-shadow:0 28px 80px rgba(7,39,28,.13)}

@keyframes roomsHeroImage{from{opacity:.58;transform:scale(1.08)}to{opacity:1;transform:scale(1.025)}}
@keyframes roomsHeroCopy{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:none}}

@media(max-width:1080px){
  .room-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .room-detail-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.48fr);gap:48px}
}

@media(max-width:820px){
  .catalog-heading{grid-template-columns:1fr;gap:30px}
  .rooms-hero{min-height:76svh}
  .rooms-hero-content{padding:132px 0 78px}
  .room-detail-hero{min-height:70svh}
  .room-detail-hero-content{padding:126px 0 68px}
  .room-detail-layout{grid-template-columns:1fr;gap:42px}
  .room-rate-card{position:relative;top:auto}
  .catalog-booking{margin-top:-22px}
}

@media(max-width:620px){
  .rooms-hero{min-height:72svh}
  .rooms-hero-content{padding:116px 0 62px}
  .rooms-hero h1{font-size:clamp(3.55rem,17vw,5.1rem)}
  .rooms-hero-copy{margin-top:20px;font-size:.92rem;line-height:1.6}
  .rooms-hero-actions{align-items:stretch;flex-direction:column;margin-top:26px}
  .rooms-hero-actions .button{width:100%}
  .catalog-section{padding:76px 0}
  .room-catalog-grid{display:flex;overflow-x:auto;margin-inline:-14px;padding:0 14px 10px;border:0;background:transparent;scroll-snap-type:x mandatory;scrollbar-width:thin}
  .room-catalog-card{flex:0 0 86vw;min-height:380px;border:1px solid var(--line);scroll-snap-align:start}
  .catalog-truth{grid-template-columns:1fr}
  .catalog-booking{width:calc(100% - 20px);margin-top:-14px;margin-bottom:82px}
  .rooms-footer-inner{align-items:flex-start;flex-direction:column}
  .room-detail-hero{min-height:67svh}
  .room-detail-hero-content{padding:112px 0 56px}
  .room-detail-back{margin-bottom:28px}
  .room-detail-hero h1{font-size:clamp(3.45rem,16.5vw,5rem)}
  .room-detail-kicker{display:grid;grid-template-columns:1fr 1fr;margin-top:30px}
  .room-detail-kicker span{min-width:0;padding-right:10px}
  .room-detail-kicker span:last-child{grid-column:1/-1}
  .room-detail-main{padding:74px 0 54px}
  .room-detail-facts{grid-template-columns:1fr 1fr}
  .room-detail-facts>div{min-height:115px;padding:18px 14px 16px 0}
  .room-detail-facts>div+div{padding-left:14px}
  .room-detail-safety{padding:21px}
  .room-rate-card{padding:24px}
  .room-rate-row{grid-template-columns:1fr;gap:5px}
  .room-detail-booking{width:calc(100% - 20px);margin-bottom:86px}
}

@media(prefers-reduced-motion:reduce){
  .rooms-hero-media img,.rooms-hero-content{animation:none}
  .room-catalog-card{transition:none}
}
