/* Guest room cards and single room template */
.ph-rooms__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:36px}
.ph-rooms__heading h2{margin:10px 0 12px}
.ph-rooms__heading>div>p:last-child,.ph-room-archive>.ph-container>p:not(.ph-eyebrow){color:var(--ph-muted);font-size:14px}
.ph-rooms__all{white-space:nowrap;text-decoration:none;color:var(--ph-primary);font-size:13px;font-weight:700;border-bottom:1px solid var(--ph-primary);padding-bottom:7px}
.ph-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.5vw,30px)}
.ph-room-card{min-width:0;background:#fff;border:1px solid #e3eae1}
.ph-room-card__media{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#dceadc,#194325)}
.ph-room-card__media>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.ph-room-card__media:hover>img{transform:scale(1.035)}
.ph-room-card__fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff9;letter-spacing:.2em;font-size:13px}
.ph-room-card__building{position:absolute;left:15px;bottom:15px;color:#fff;background:#0d230dcc;padding:4px 11px;font-size:11px;letter-spacing:.06em}
.ph-room-card__content{padding:23px 22px 26px}
.ph-room-card__content h3{font-size:clamp(18px,1.55vw,23px);line-height:1.5;margin:0 0 15px}
.ph-room-card__content h3 a{text-decoration:none}
.ph-room-card__facts{display:flex;flex-wrap:wrap;gap:8px 15px;color:var(--ph-muted);font-size:13px;padding:0 0 14px;border-bottom:1px solid #e6ece6}
.ph-room-card__facts strong{color:var(--ph-primary);font-size:18px}
.ph-room-card__more{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;color:var(--ph-primary);margin-top:18px;text-decoration:none}
.ph-rooms__empty{min-height:225px;background:var(--ph-pale);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;text-align:center;padding:35px}
.ph-rooms__empty-mark{letter-spacing:.3em;color:#69866b;font-size:13px}
.ph-room-archive h1{font-size:clamp(29px,4vw,49px);margin:10px 0}
.ph-room-archive .ph-room-grid{margin-top:40px}
.ph-room-detail__hero{position:relative;isolation:isolate;background:linear-gradient(140deg,#35613d,#081808);color:#fff;min-height:370px;display:flex;align-items:flex-end}
.ph-room-detail__hero-media,.ph-room-detail__hero-media img,.ph-room-detail__hero-shade{position:absolute;inset:0;width:100%;height:100%}
.ph-room-detail__hero-media{z-index:-2}
.ph-room-detail__hero-media img{object-fit:cover}
.ph-room-detail__hero-shade{z-index:-1;background:linear-gradient(0deg,#081808ce,#08180820)}
.ph-room-detail__hero-text{padding-block:80px 48px}
.ph-room-detail__hero-text .ph-eyebrow{color:#dcebdc}
.ph-room-detail__hero-text h1{font-size:clamp(32px,4.5vw,60px);line-height:1.4;margin:8px 0}
.ph-room-detail__content{padding-block:clamp(65px,8vw,100px)}
.ph-room-detail__intro{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.7fr);gap:clamp(30px,5vw,90px)}
.ph-room-detail__intro h2,.ph-room-detail__gallery h2,.ph-room-detail__lists h2{font-size:clamp(23px,2.4vw,34px);line-height:1.5;margin:10px 0 20px}
.ph-room-detail__description{max-width:690px;line-height:2.15;color:var(--ph-muted)}
.ph-room-detail__specs{background:var(--ph-pale);padding:25px 28px;align-self:start}
.ph-room-detail__specs>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid #d9e2d9}
.ph-room-detail__specs span{font-size:12px;color:var(--ph-muted)}
.ph-room-detail__specs strong{font-size:22px;color:var(--ph-primary)}
.ph-room-detail__specs small{font-size:12px}
.ph-room-detail__bed{font-size:13px;color:var(--ph-muted)}
.ph-room-detail__gallery{padding-top:85px}
.ph-room-detail__gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.ph-room-detail__gallery-grid a{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--ph-pale)}
.ph-room-detail__gallery-grid img{width:100%;height:100%;object-fit:cover;display:block}
.ph-room-detail__lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px;margin-top:90px}
.ph-room-detail__lists ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;list-style:none;padding:0;margin:0}
.ph-room-detail__lists li{border-bottom:1px solid #e4eae4;padding:8px 0;font-size:13px}
.ph-room-detail__lists li:before{content:'✓';margin-right:10px;color:var(--ph-mid)}
.ph-room-detail__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:90px}
@media(max-width:1199px){.ph-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.ph-rooms__heading{display:block}.ph-rooms__all{display:inline-block;margin-top:12px}.ph-room-grid{grid-template-columns:minmax(0,1fr)}.ph-room-detail__hero{min-height:330px}.ph-room-detail__hero-text{padding-block:70px 32px}.ph-room-detail__intro,.ph-room-detail__lists{grid-template-columns:minmax(0,1fr);gap:30px}.ph-room-detail__gallery{padding-top:60px}.ph-room-detail__gallery-grid{grid-template-columns:minmax(0,1fr)}.ph-room-detail__lists{margin-top:60px}.ph-room-detail__actions{margin-top:60px}}
@media(prefers-reduced-motion:reduce){.ph-room-card__media img{transition:none!important}}

/* Room v2: strong green individual-room specifications. */
.ph-room-card__facts{align-items:baseline}
.ph-room-card__facts strong{color:#0d230d;font-weight:700}

/* Room Management v2 — type-first navigation, responsive side-by-side room comparisons. */
.ph-room-type-grid{align-items:stretch}
.ph-room-type-card{background:#fff;border:1px solid #e2e9df;min-width:0}
.ph-room-type-card__media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#dceadc,#194325)}
.ph-room-type-card__media picture,.ph-room-type-card__media img{display:block;width:100%;height:100%;object-fit:cover}
.ph-room-type-card__media img{transition:transform .4s}
.ph-room-type-card__media:hover img{transform:scale(1.035)}
.ph-room-type-card__body{padding:clamp(20px,2.5vw,30px)}
.ph-room-type-card__body h3{font-family:var(--ph-font-serif);font-size:clamp(19px,1.8vw,26px);line-height:1.6;margin:10px 0}
.ph-room-type-card__body h3 a{text-decoration:none}
.ph-room-type-card__body>p:not(.ph-eyebrow){font-size:13px;color:var(--ph-muted);line-height:2}
.ph-room-type-nav{display:flex;gap:10px;flex-wrap:wrap;margin:40px 0 15px}
.ph-room-type-nav a{text-decoration:none;border:1px solid #c7d6c6;padding:10px 18px;color:var(--ph-primary);font-size:13px;font-weight:700}
.ph-room-type-nav a:hover,.ph-room-type-nav a:focus-visible{background:var(--ph-primary);color:#fff}
.ph-room-type-section{padding-top:clamp(45px,6vw,75px);margin-top:25px;border-top:1px solid #dbe7da;scroll-margin-top:110px}
.ph-room-type-section__heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}
.ph-room-type-section__heading h2{font-size:clamp(24px,3vw,40px);font-family:var(--ph-font-serif);line-height:1.55;margin:9px 0}
.ph-room-type-section__heading p:not(.ph-eyebrow){color:var(--ph-muted);font-size:13px;line-height:1.8;max-width:750px}
.ph-room-type-section__actions{display:flex;align-items:center;gap:9px;flex-shrink:0}
.ph-room-type-section__actions>a{font-size:13px;font-weight:700;white-space:nowrap;text-decoration:none;margin-right:8px;color:var(--ph-primary)}
.ph-rooms-scroll-button{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #b6c8b6;border-radius:50%;background:#fff;color:var(--ph-primary);font-size:24px;cursor:pointer}
.ph-room-type-section .ph-room-grid{margin-top:0}
.ph-room-type-section__grid .ph-room-card{height:100%;display:flex;flex-direction:column}
.ph-room-type-section__grid .ph-room-card__content{display:flex;flex-direction:column;flex:1}
.ph-room-type-section__grid .ph-room-card__more{margin-top:auto;padding-top:22px}
.ph-room-type-hero{min-height:350px;position:relative;background:#173820;display:flex;align-items:end;color:#fff}
.ph-room-type-hero>picture,.ph-room-type-hero picture img,.ph-room-type-hero__shade{position:absolute;inset:0;width:100%;height:100%}
.ph-room-type-hero img{object-fit:cover}
.ph-room-type-hero__shade{background:linear-gradient(to top,#071d0ddd,transparent)}
.ph-room-type-hero__heading{z-index:1;position:relative;padding-block:55px}
.ph-room-type-hero__heading .ph-eyebrow{color:#e3ede1}
.ph-room-type-hero__heading h1{font-family:var(--ph-font-serif);font-size:clamp(30px,4vw,55px);line-height:1.5}
.ph-room-type-intro{max-width:850px;font-size:15px;line-height:2;color:var(--ph-muted)}
.ph-room-type-count{font-size:13px;color:var(--ph-primary)}
.ph-room-type-back{padding-top:50px}
.ph-room-type-back a,.ph-room-detail__related a{color:var(--ph-primary);font-weight:700}
.ph-room-detail__related{margin-top:45px}
@media(max-width:1199px){
 .ph-room-type-section__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
 .ph-room-type-grid{grid-template-columns:1fr}
 .ph-room-type-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:10px}
 .ph-room-type-nav a{white-space:nowrap}
 .ph-room-type-section__heading{align-items:start}
 .ph-room-type-section__actions{align-self:end}
 .ph-rooms-scroll-button{display:inline-flex}
 .ph-room-type-section__grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:0 6vw 18px 0}
 .ph-room-type-section__grid .ph-room-card{scroll-snap-align:start;flex:0 0 min(84vw,330px)}
 .ph-room-type-hero{min-height:330px}
 .ph-room-type-hero__heading{padding-block:45px}
}
@media(max-width:420px){
 .ph-room-type-section__heading{display:block}
 .ph-room-type-section__actions{justify-content:end}
}
@media(prefers-reduced-motion:reduce){.ph-room-type-card__media img{transition:none!important}}


/* Room type index (/rooms/) — distinct from per-room comparison cards. */
.ph-room-type-index__hero{
 background:radial-gradient(ellipse at 80% 5%,rgba(106,144,106,.28),transparent 48%),
            linear-gradient(135deg,#0d230d,#1b3a26 75%,#24462f);
 color:#fff;
}
.ph-room-type-index__hero-inner{
 padding-block:clamp(65px,8vw,120px) clamp(70px,8vw,115px);
}
.ph-room-type-index__hero .ph-eyebrow{
 color:#c7ddc8;letter-spacing:.19em;font-size:12px;
}
.ph-room-type-index__hero h1{
 font-family:var(--ph-font-serif),"Yu Mincho",serif;
 font-weight:400;font-size:clamp(31px,4vw,54px);
 line-height:1.55;margin:14px 0 19px;
 letter-spacing:.07em;
}
.ph-room-type-index__hero-inner>p:last-child{
 max-width:720px;font-size:clamp(13px,1.2vw,16px);
 line-height:2.15;color:#e5eee4;letter-spacing:.035em;margin:0;
}
.ph-room-type-index__content{
 padding-block:clamp(36px,4vw,58px) clamp(75px,9vw,135px);
}
.ph-room-type-index__nav{
 display:flex;gap:12px;align-items:stretch;
 flex-wrap:wrap;
 padding-bottom:clamp(40px,5vw,65px);
 border-bottom:1px solid #dce7da;
}
.ph-room-type-index__nav a{
 color:#0d230d;background:#fff;border:1px solid #bfcfbd;
 text-decoration:none;display:flex;justify-content:space-between;
 align-items:center;gap:24px;
 padding:16px 24px;min-width:185px;
 transition:background .2s,color .2s,border-color .2s;
}
.ph-room-type-index__nav a span{font-size:15px;font-weight:700}
.ph-room-type-index__nav a small{
 color:#627a65;letter-spacing:.09em;font-size:10px;
}
.ph-room-type-index__nav a:hover,
.ph-room-type-index__nav a:focus-visible{
 color:#fff;background:#0d230d;border-color:#0d230d;
}
.ph-room-type-index__nav a:hover small,
.ph-room-type-index__nav a:focus-visible small{color:#d6e9d7}
.ph-room-type-index__section{
 padding-top:clamp(44px,5vw,80px);
 scroll-margin-top:105px;
}
.ph-room-type-index__section+.ph-room-type-index__section{
 margin-top:clamp(45px,6vw,95px);
 border-top:1px solid #dce7da;
}
.ph-room-type-index__section-header{margin-bottom:clamp(24px,3vw,38px)}
.ph-room-type-index__section-header .ph-eyebrow{
 color:#3d6950;font-weight:700;letter-spacing:.19em;
}
.ph-room-type-index__section-header h2{
 display:flex;align-items:baseline;flex-wrap:wrap;
 gap:12px 23px;font-weight:400;
 font-family:var(--ph-font-serif),"Yu Mincho",serif;
 font-size:clamp(26px,3vw,41px);line-height:1.5;
 color:#0d230d;margin:8px 0 10px;
}
.ph-room-type-index__section-count{
 font-family:var(--ph-font-sans),sans-serif;
 font-size:12px;color:#527159;font-weight:700;letter-spacing:.04em;
}
.ph-room-type-index__section-header p:not(.ph-eyebrow){
 color:var(--ph-muted);max-width:750px;
 font-size:14px;line-height:2;margin:0;
}
.ph-room-type-index__grid{gap:clamp(17px,2.1vw,31px);align-items:stretch}
.ph-room-type-card--index{
 display:flex;flex-direction:column;
 border:1px solid #dce7db;box-shadow:0 9px 25px rgba(13,35,13,.035);
 transition:box-shadow .25s;
}
.ph-room-type-card--index:hover{box-shadow:0 14px 34px rgba(13,35,13,.10)}
.ph-room-type-card--index .ph-room-type-card__media{aspect-ratio:16/11}
.ph-room-type-card--index .ph-room-type-card__body{
 flex:1;display:flex;flex-direction:column;
 padding:clamp(21px,2vw,31px);
}
.ph-room-type-card--index .ph-room-type-card__body .ph-eyebrow{
 font-size:11px;color:#4c7758;letter-spacing:.15em;
}
.ph-room-type-card--index h3{margin:8px 0 12px}
.ph-room-type-card__description{
 display:-webkit-box;-webkit-box-orient:vertical;
 -webkit-line-clamp:3;overflow:hidden;
 line-height:1.95;margin:0 0 18px;
 overflow-wrap:anywhere;
}
.ph-room-type-card__facts{
 display:flex;flex-wrap:wrap;gap:12px 22px;
 border-top:1px solid #e1e9df;
 padding:17px 0 0;margin:10px 0 0;
}
.ph-room-type-card__facts div{min-width:110px}
.ph-room-type-card__facts dt{font-size:11px;color:#63746a;margin-bottom:5px}
.ph-room-type-card__facts dd{
 font-size:clamp(15px,1.45vw,18px);font-weight:700;
 line-height:1.55;color:#0d230d;margin:0;
}
.ph-room-type-card--index .ph-room-card__more{
 margin-top:auto;padding-top:23px;
 border-top:0;
}
.ph-room-type-index__empty{
 text-align:center;background:var(--ph-pale);
 padding:clamp(60px,7vw,100px) 25px;
}
.ph-room-type-index__empty h2{
 font-size:clamp(22px,2.5vw,29px);
 font-family:var(--ph-font-serif);font-weight:400;
 color:#0d230d;
}
.ph-room-type-index__empty>p:last-child{
 font-size:14px;color:var(--ph-muted);
}
@media(max-width:1199px){
 .ph-room-type-index__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
 .ph-room-type-index__hero-inner{padding-block:60px 72px}
 .ph-room-type-index__hero h1{letter-spacing:.025em}
 .ph-room-type-index__content{padding-top:26px}
 .ph-room-type-index__nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:27px}
 .ph-room-type-index__nav a{min-width:180px;flex:0 0 auto;padding:14px 17px;gap:13px}
 .ph-room-type-index__section{padding-top:35px}
 .ph-room-type-index__grid{grid-template-columns:minmax(0,1fr)}
 .ph-room-type-card--index .ph-room-type-card__media{aspect-ratio:4/3}
 .ph-room-type-card--index .ph-room-type-card__body{padding:22px}
 .ph-room-type-index__section-count{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
 .ph-room-type-index__nav a,.ph-room-type-card--index{transition:none!important}
}

/* Stable deep links from the front-page room type cards to /rooms/. */
.ph-room-type-index__grid .ph-room-type-card[id]{scroll-margin-top:clamp(90px,11vh,150px)}
.ph-room-type-card[id]:target{outline:2px solid #0d230d;outline-offset:5px}
@media(prefers-reduced-motion:reduce){.ph-room-type-card[id]{scroll-behavior:auto}}


/* ===== v0.13.5: Room cards, 75svh cinematic hero and gallery viewer ===== */

/* Type archive and room comparison both use two columns on desktop/tablet. */
.ph-room-grid,
.ph-room-type-index__grid,
.ph-room-type-section__grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(18px,2.7vw,35px);
}
.ph-room-type-section__grid { overflow:visible;scroll-snap-type:none;padding:0; }
.ph-room-type-section__grid .ph-room-card { width:100%;min-width:0;scroll-snap-align:none; }
.ph-rooms-scroll-button {display:none!important}
.ph-room-card {min-width:0;display:flex;flex-direction:column;}
.ph-room-card__content {flex:1;display:flex;flex-direction:column}
.ph-room-card__more {margin-top:auto;padding-top:22px}
.ph-room-card__media {aspect-ratio:16/10;position:relative;isolation:isolate;overflow:hidden}
.ph-room-card__slide {position:absolute;inset:0;display:block;width:100%;height:100%;background:var(--ph-primary)}
.ph-room-card__slide img {width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.ph-room-card__media:hover .ph-room-card__slide.is-active img {transform:scale(1.025)}
.ph-room-media__slide {opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility 0s linear .55s}
.ph-room-media__slide.is-active {opacity:1;visibility:visible;pointer-events:auto;transition:opacity .55s ease,visibility 0s}
.ph-room-card__building {z-index:2}
.ph-room-media__arrow {
  display:inline-flex;justify-content:center;align-items:center;
  border:1px solid rgba(255,255,255,.55);width:45px;height:45px;
  background:rgba(255,255,255,.97);color:var(--ph-primary);
  font-size:23px;line-height:1;box-shadow:0 3px 12px #0002;
  cursor:pointer;transition:background .2s,color .2s;
}
.ph-room-media__arrow:hover,.ph-room-media__arrow:focus-visible {background:var(--ph-primary);color:#fff}
.ph-room-card__controls {
  position:absolute;z-index:4;display:flex;gap:8px;
  right:15px;bottom:15px;opacity:0;transform:translateY(6px);
  transition:opacity .2s ease,transform .2s ease;
}
.ph-room-card__media:hover .ph-room-card__controls,
.ph-room-card__media:focus-within .ph-room-card__controls {
  opacity:1;transform:translateY(0);
}
.ph-room-card__dots {
  position:absolute;z-index:4;left:50%;bottom:14px;
  transform:translateX(-50%);display:flex;gap:8px;
  background:rgba(9,30,14,.40);padding:8px 11px;border-radius:18px;
}
.ph-room-card__dots button,.ph-room-detail__hero-dots button {
  border:0;padding:0;width:8px;height:8px;min-width:8px;border-radius:50%;
  background:#eaf4eaaa;cursor:pointer;
}
.ph-room-card__dots button.is-active,
.ph-room-detail__hero-dots button.is-active {
  background:#fff;box-shadow:0 0 0 2px #0d230d55;
}
.ph-room-card__facts strong {color:#0d230d;font-weight:700}

/* Hero is exactly 75% of the dynamic viewport, independent of image ratio. 
   Landscape framing: 16:9 crop, portrait framing: 9:16 crop via cover. */
.ph-room-detail__hero {
  height:75vh;height:75svh;min-height:0;max-height:none;
  display:flex;align-items:flex-end;overflow:hidden;
  background:linear-gradient(130deg,#0d230d,#355c3b);
}
.ph-room-detail__hero-media {position:absolute;inset:0;overflow:hidden}
.ph-room-detail__hero-image {
  position:absolute;inset:0;width:100%;height:100%;
  display:block;object-fit:cover;object-position:center center;
}
.ph-room-detail__hero-shade {
  pointer-events:none;background:linear-gradient(0deg,rgba(4,17,6,.76),rgba(4,17,6,.12) 54%,rgba(4,17,6,.04));
}
.ph-room-detail__hero-text {position:relative;z-index:2;padding-block:55px 52px}
.ph-room-detail__hero-text h1 {
  max-width:1000px;text-wrap:balance;
  font-size:clamp(29px,4.2vw,61px);line-height:1.45;
  text-shadow:0 2px 14px #0006;
}
.ph-room-detail__hero-dots {
  position:absolute;z-index:3;right:clamp(22px,4vw,80px);bottom:32px;
  display:flex;gap:11px;align-items:center;padding:13px 17px;
  border-radius:25px;background:#0d230d55;
}
.ph-room-detail__hero-dots button {width:10px;height:10px;min-width:10px}

/* One large preview, optional prev/next and a single horizontal thumbnail row. */
.ph-room-detail__gallery {padding-top:clamp(55px,7vw,98px)}
.ph-room-gallery {margin-top:28px}
.ph-room-gallery__viewer {
  position:relative;isolation:isolate;width:100%;aspect-ratio:16/9;
  overflow:hidden;background:#edf1e9;outline-offset:4px;
}
.ph-room-gallery__image {
  position:absolute;inset:0;display:block;width:100%;height:100%;
  object-fit:contain;background:#102012;
}
.ph-room-gallery__prev,.ph-room-gallery__next {
  position:absolute;z-index:4;top:50%;transform:translateY(-50%);
}
.ph-room-gallery__prev {left:clamp(10px,2vw,24px)}
.ph-room-gallery__next {right:clamp(10px,2vw,24px)}
.ph-room-gallery__counter {
  position:absolute;z-index:4;bottom:13px;right:16px;
  padding:5px 11px;background:#0d230dce;color:#fff;
  font-size:12px;letter-spacing:.09em;pointer-events:none;
}
.ph-room-gallery__thumbs {
  display:flex;flex-wrap:nowrap;gap:12px;overflow-x:auto;
  overscroll-behavior-x:contain;scrollbar-width:thin;
  padding:15px 2px 16px;
}
.ph-room-gallery__thumb {
  display:block;flex:0 0 clamp(80px,10vw,125px);
  width:clamp(80px,10vw,125px);height:clamp(63px,7.5vw,90px);
  border:2px solid transparent;background:#e1e9df;
  padding:0;overflow:hidden;opacity:.7;cursor:pointer;
  transition:border-color .2s,opacity .2s;
}
.ph-room-gallery__thumb img {
  width:100%;height:100%;display:block;object-fit:cover;
}
.ph-room-gallery__thumb.is-active,.ph-room-gallery__thumb:hover,
.ph-room-gallery__thumb:focus-visible {opacity:1;border-color:var(--ph-primary)}
.ph-room-detail__lists {margin-top:clamp(55px,7vw,90px)}
@media(hover:none),(pointer:coarse){
  .ph-room-card__controls {opacity:1;transform:none}
}
@media(max-width:767px){
  .ph-room-grid,.ph-room-type-index__grid,.ph-room-type-section__grid {
    display:grid;grid-template-columns:minmax(0,1fr);
    overflow:visible;scroll-snap-type:none;padding:0;gap:22px;
  }
  .ph-room-type-section__grid .ph-room-card {flex:initial;width:100%;max-width:none}
  .ph-room-card__media {aspect-ratio:4/3}
  .ph-room-detail__hero {height:75svh;min-height:0}
  .ph-room-detail__hero-text {padding-block:30px 60px}
  .ph-room-detail__hero-text h1 {font-size:clamp(26px,6vw,41px)}
  .ph-room-detail__hero-dots {bottom:24px;right:18px}
  .ph-room-gallery__viewer {aspect-ratio:9/10}
  .ph-room-gallery__thumb {flex-basis:82px;width:82px;height:68px}
  .ph-room-media__arrow {width:42px;height:42px}
}
@media(min-width:768px) and (max-width:1199px) and (orientation:portrait){
  .ph-room-detail__hero-image {object-position:center center}
  .ph-room-detail__hero {height:75svh}
}
@media(prefers-reduced-motion:reduce){
  .ph-room-media__slide,.ph-room-card__controls,
  .ph-room-card__slide img,.ph-room-gallery__thumb {transition:none!important}
}


/* === v0.14.0 — direct TOP access and cross-room browsing === */
.ph-rooms__heading .ph-rooms__all{
  display:inline-flex;align-items:center;justify-content:center;
  gap:18px;flex:0 0 auto;
  white-space:normal;
  background:var(--ph-primary,#0d230d);
  color:#fff;border:1px solid var(--ph-primary,#0d230d);
  border-radius:2px;padding:14px 22px;
  min-height:48px;font-size:13px;
  text-decoration:none;
  box-shadow:0 6px 18px #0d230d18;
  transition:background-color .2s,transform .2s,box-shadow .2s;
}
.ph-rooms__heading .ph-rooms__all:hover,
.ph-rooms__heading .ph-rooms__all:focus-visible{
  background:#285a32;color:#fff;box-shadow:0 9px 22px #0d230d24;
  transform:translateY(-1px);
}
.ph-rooms__heading .ph-rooms__all span{font-size:17px;font-weight:400}

/* Reusable small navigational cards: type/facility links near each content end. */
.ph-room-browse{
  padding:clamp(26px,3.4vw,44px);
  background:#f7f9f6;border:1px solid #dce6da;
  margin-block:clamp(34px,5vw,60px);
  scroll-margin-top:calc(var(--ph-header,80px) + 22px);
}
.ph-room-browse__heading{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:15px 30px;margin-bottom:clamp(20px,2.5vw,28px);
}
.ph-room-browse__heading .ph-eyebrow{margin:0 0 7px;color:#3c6648;font-size:10px}
.ph-room-browse__heading h2{
  font-family:var(--ph-font-serif);
  font-size:clamp(21px,2.2vw,29px);
  font-weight:700;line-height:1.5;
  color:var(--ph-primary);margin:0 0 6px;
}
.ph-room-browse__heading>div>p:last-child{
  color:var(--ph-muted);font-size:12px;margin:0;line-height:1.85;
}
.ph-room-browse__all{
  display:inline-flex;align-items:center;gap:10px;
  font-size:12px;font-weight:700;color:var(--ph-primary);
  border-bottom:1px solid currentColor;
  text-decoration:none;white-space:nowrap;padding-bottom:5px;
}
.ph-room-browse__facility + .ph-room-browse__facility{margin-top:25px}
.ph-room-browse__facility h3{
  color:var(--ph-primary);font-size:15px;font-weight:700;
  display:flex;align-items:center;gap:12px;
  margin:0 0 12px;
}
.ph-room-browse__facility-en{
  color:#51765c;font-size:10px;letter-spacing:.16em;font-weight:700;
}
.ph-room-browse__cards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px;
}
.ph-room-browse__card{
  display:flex;align-items:center;gap:12px;
  min-width:0;min-height:96px;
  background:#fff;border:1px solid #dfe7dd;
  padding:9px;color:var(--ph-primary);
  text-decoration:none;
  transition:border-color .2s,background-color .2s,box-shadow .2s;
}
.ph-room-browse__card:hover,
.ph-room-browse__card:focus-visible{
  background:#f1f6ef;border-color:#568465;
  box-shadow:0 6px 16px #0d230d13;
}
.ph-room-browse__card--current{border-color:#a0b9a4}
.ph-room-browse__media{
  display:block;position:relative;flex:0 0 82px;
  width:82px;height:75px;background:#dce6dc;
  overflow:hidden;
}
.ph-room-browse__media img{display:block;width:100%;height:100%;object-fit:cover}
.ph-room-browse__fallback{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;text-align:center;
  font-size:8px;letter-spacing:.08em;color:#617a64;
}
.ph-room-browse__detail{min-width:0;display:flex;flex-direction:column;gap:7px}
.ph-room-browse__name{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;overflow-wrap:anywhere;
  font-size:13px;font-weight:700;line-height:1.5;
}
.ph-room-browse__meta{
  font-size:11px;color:#47624d;line-height:1.4;
  display:flex;align-items:center;gap:7px;
}
.ph-room-browse__meta span{font-size:13px}
.ph-room-browse--bottom{margin-top:clamp(44px,6vw,75px);margin-bottom:0}
.ph-room-browse--single{margin-top:clamp(42px,6vw,80px);margin-bottom:clamp(28px,4vw,55px)}

@media(min-width:768px) and (max-width:1199px){
  .ph-room-browse__cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ph-room-browse__media{flex-basis:78px;width:78px;height:72px}
}
@media(max-width:767px){
  .ph-rooms__heading .ph-rooms__all{margin-top:18px;padding:13px 18px}
  .ph-room-browse{padding:23px 15px;margin-block:35px}
  .ph-room-browse__heading{display:block}
  .ph-room-browse__heading h2{font-size:23px}
  .ph-room-browse__all{margin-top:13px}
  .ph-room-browse__facility + .ph-room-browse__facility{margin-top:27px}
  .ph-room-browse__cards{
    display:grid;grid-auto-flow:column;grid-auto-columns:minmax(225px,83%);
    grid-template-columns:none;overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x proximity;
    padding:2px 1px 12px;
    scrollbar-width:thin;
  }
  .ph-room-browse__card{scroll-snap-align:start}
}
@media(prefers-reduced-motion:reduce){
  .ph-rooms__heading .ph-rooms__all,.ph-room-browse__card{transition:none}
  .ph-rooms__heading .ph-rooms__all:hover{transform:none}
}
