/* ==========================================================================
   KAS — COMPONENTS
   ========================================================================== */

/* ---------- shared content-page hero / layout ---------- */
.content-page-hero{
  padding:3rem 0 3rem;
  background:var(--black);
  color:var(--ivory);
}
.content-page-hero__inner{max-width:980px}
.content-page-hero h1{
  margin:.8rem 0 1rem;
  color:#fff;
  font-family:var(--serif);
  font-size:clamp(2.5rem,5vw,4.6rem);
  font-weight:400;
  line-height:1.02;
}
.content-page-hero p{
  max-width:720px;
  color:var(--tx-inv-2);
  font-size:1rem;
  line-height:1.75;
}
.content-page-section__inner{max-width:1100px}
.content-page-grid{display:grid;gap:18px}
.content-page-grid--two{grid-template-columns:repeat(2,1fr)}
.content-page-grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.content-page-action{margin-top:28px}
.content-page-cta{padding:28px;border-radius:var(--r)}
.content-page-cta--dark{background:var(--black);color:var(--ivory)}
.content-page-cta--dark h2{color:var(--ivory)}
.content-page-cta--dark p{color:var(--tx-inv-2)}
.content-page-cta--light{background:var(--ivory-2);border:1px solid var(--line)}
@media(max-width:700px){
  .content-page-hero{padding:2.5rem 0 2.5rem}
  .content-page-grid--two{grid-template-columns:1fr}
}

/* ---------- hero ---------- */
.hero{position:relative;display:flex;background:var(--black)}
/* NOTE: no overflow:hidden here — the search bar overhangs the hero by design.
   Clipping is done on .hero__bg instead, which is what actually needs it. */
.hero--sm{min-height:340px;align-items:center}
.hero__bg{position:absolute;inset:0;overflow:hidden;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;opacity:.62;animation:slowZoom 22s var(--ease) forwards}
@keyframes slowZoom{from{transform:scale(1.07)}to{transform:scale(1)}}
.hero__bg::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(14,13,11,.94) 0%,rgba(14,13,11,.72) 38%,rgba(14,13,11,.34) 70%,rgba(14,13,11,.55) 100%);
}
.hero--no-overlay .hero__bg img{opacity:1}
.hero--no-overlay .hero__bg::after{background:transparent}
.hero__in{position:relative;z-index:2;width:100%}
.hotel-search-wrap{position:relative;margin-top:2rem;z-index:8;overflow:visible}
.hero--sm .hero__in .searchbar,.hero .searchbar{
  display:grid;grid-template-columns:minmax(250px,1.45fr) minmax(150px,1fr) minmax(150px,1fr) minmax(190px,1.2fr) 128px;
  min-height:78px;background:rgba(250,247,240,.985);backdrop-filter:blur(18px);
  border:1px solid rgba(194,162,92,.55);border-radius:14px;overflow:visible;
  margin-top:0;transform:none;box-shadow:0 18px 42px rgba(31,25,17,.20);
}
.searchbar--solid{
  background:#f7f2e8;border-color:rgba(194,162,92,.34);transform:none;margin-top:2rem;box-shadow:var(--sh-3);
}
.sf{padding:14px 20px;border-right:1px solid rgba(194,162,92,.2);min-width:0;position:relative;display:flex;flex-direction:column;justify-content:center}
.searchbar--solid .sf{border-right-color:var(--line)}
.sf:last-of-type{border-right:none}
.sf__lb{
  display:block;font-size:.59rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dk);margin-bottom:7px;line-height:1;
}
.searchbar--solid .sf__lb{color:var(--tx-3)}
.sf__ctl{display:flex;align-items:center;gap:9px;min-width:0}
.sf__ctl svg{color:var(--gold);flex-shrink:0}
.searchbar--solid .sf__ctl svg{color:var(--gold-dk)}
.sf input,.sf select{
  width:100%;background:transparent;border:none;padding:0;color:var(--tx);
  font-size:.95rem;font-weight:500;cursor:pointer;min-width:0;height:24px;
}
.searchbar--solid .sf input,.searchbar--solid .sf select{color:var(--tx)}
.sf input:focus,.sf select:focus{outline:none}
.sf select option{background:var(--black);color:var(--ivory)}
.searchbar--solid .sf select option{background:#fff;color:var(--tx)}
.sf input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.72) sepia(.5) saturate(3) hue-rotate(2deg);cursor:pointer}
.searchbar--solid input[type=date]::-webkit-calendar-picker-indicator{filter:none;opacity:.5}
/* ---------- KAS date picker ---------- */
.sf--date{z-index:30}
.kas-date-value{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important}
.kas-date-trigger{width:100%;height:24px;padding:0;border:0;background:transparent;color:var(--tx);font:500 .95rem var(--sans);text-align:left;cursor:pointer;white-space:nowrap}
.kas-date-trigger:focus-visible{outline:2px solid rgba(194,162,92,.5);outline-offset:3px;border-radius:4px}
/* One shared calendar popup — never one picker per date field. */
.kas-date-picker{position:fixed;left:16px;top:120px;z-index:1000;width:min(640px,calc(100vw - 32px));max-height:min(72vh,540px);overflow:auto;padding:14px;background:#fffdf8;border:1px solid rgba(194,162,92,.34);border-radius:16px;box-shadow:0 26px 70px rgba(35,28,18,.28);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease}
.kas-date-picker--search-wrap{position:absolute;left:0;top:0;width:640px;max-width:calc(100vw - 32px);max-height:min(72vh,540px);z-index:30;transform:translateY(-6px)}
.kas-date-picker--search-wrap.open{transform:translateY(0)}
.kas-date-picker.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.kas-date-picker--shared{margin:0}
.kas-date-picker__head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;margin-bottom:10px}
.kas-date-nav{width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--tx);font:300 26px/1 var(--sans);cursor:pointer}
.kas-date-nav:hover{background:#f3eadc;color:var(--gold-dk)}
.kas-date-months{display:grid;grid-template-columns:1fr 1fr;text-align:center;gap:20px;color:var(--tx);font:600 .95rem var(--sans)}
.kas-date-calendars{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.kas-calendar{min-width:0}
.kas-calendar__weekdays,.kas-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.kas-calendar__weekdays{margin-bottom:5px;color:var(--tx-3);font-size:.64rem;font-weight:600}
.kas-date-cell{width:100%;aspect-ratio:1;border:0;border-radius:6px;background:transparent;color:var(--tx);font:500 .76rem var(--sans);cursor:pointer}
button.kas-date-cell:hover:not(:disabled){background:#f1e5d2;color:var(--gold-dk)}
button.kas-date-cell.is-selected{background:var(--gold);color:#211a12;font-weight:700}
button.kas-date-cell.is-range{background:#f3e9d8;border-radius:0}
button.kas-date-cell:disabled{color:#c9c3ba;cursor:not-allowed}
.kas-date-cell.is-empty{pointer-events:none}
.kas-date-picker__foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:9px;border-top:1px solid var(--line);color:var(--tx-3);font-size:.68rem}
.kas-date-today{border:0;background:transparent;color:var(--gold-dk);font:600 .72rem var(--sans);cursor:pointer}
.kas-date-today:hover{text-decoration:underline}
@media (max-width:767px){
  .kas-date-picker{position:fixed;left:50%!important;top:50%!important;width:min(420px,calc(100vw - 24px))!important;max-height:calc(100vh - 28px);overflow:auto;padding:15px;transform:translate(-50%,-46%)}
  .kas-date-picker.open{transform:translate(-50%,-50%)}
  .kas-date-picker--search-wrap{position:fixed;left:50%!important;top:50%!important;width:min(380px,calc(100vw - 24px))!important;max-height:calc(100vh - 28px);z-index:1000;transform:translate(-50%,-46%)!important}
  .kas-date-picker--search-wrap.open{transform:translate(-50%,-50%)!important}
  .kas-date-picker__head{grid-template-columns:36px 1fr 36px}
  .kas-date-months{grid-template-columns:1fr;gap:0}
  .kas-date-months strong:last-child{display:none}
  .kas-calendar--second{display:none}
  .kas-date-cell{font-size:.84rem}
  .kas-date-picker::before{content:'';position:fixed;inset:0;z-index:-1;background:rgba(18,15,11,.28);backdrop-filter:blur(2px)}
}
.searchbar__field-btn{
  width:100%;min-width:0;height:24px;padding:0 24px 0 0;border:0;background:transparent;color:var(--tx);
  font:inherit;font-size:.95rem;font-weight:500;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;
}
.searchbar__hotel-btn{padding-right:28px}
.searchbar__chevron{
  position:absolute;right:2px;top:50%;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:translateY(-65%) rotate(45deg);opacity:.7;
}
.searchbar__hotel-pop{
  position:absolute;left:12px;right:12px;top:calc(100% + 8px);z-index:70;display:none;max-height:360px;overflow:auto;
  padding:8px;background:#fffaf1;border:1px solid rgba(194,162,92,.42);border-radius:12px;box-shadow:0 18px 42px rgba(35,28,18,.18);
}
.searchbar__hotel-search{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;padding:7px 8px 9px;background:#fffaf1;border-bottom:1px solid var(--line)}
.searchbar__hotel-search span{color:var(--gold-dk);font-size:18px;line-height:1}
.searchbar__hotel-search input{width:100%;height:34px;border:1px solid var(--line-2);border-radius:7px;background:#fff;color:var(--tx);padding:0 10px;font:inherit;font-size:.84rem;outline:none}
.searchbar__hotel-search input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(194,162,92,.10)}
.searchbar__hotel-options{display:grid;gap:2px;padding-top:6px}
.searchbar__hotel-option[hidden]{display:none}
.searchbar__hotel-pop.open{display:block;animation:popIn .16s var(--ease)}
.searchbar__hotel-option{
  display:block;width:100%;padding:10px 11px;border:0;border-radius:7px;background:transparent;color:var(--tx);
  font:inherit;font-size:.88rem;text-align:left;cursor:pointer;
}
.searchbar__hotel-option:hover,.searchbar__hotel-option.is-active{background:rgba(194,162,92,.11);color:var(--gold-dk)}
.searchbar__submit{min-width:0;border-radius:0 11px 11px 0!important;padding-inline:24px!important;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;background:#b99658!important;color:#1d1811!important}
.searchbar__submit:hover{background:#c7a96d!important}
.searchbar--solid .searchbar__submit{border-radius:0 11px 11px 0!important}
/* ---------- KAS quick-search disclosure ---------- */
.kas-quick-search{
  position:relative;
  margin-top:10px;
  max-height:0;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  border:1px solid transparent;
  border-radius:16px;
  background:rgba(255,253,248,.985);
  box-shadow:0 22px 50px rgba(25,20,13,.16);
  backdrop-filter:blur(18px);
  transform:translateY(-6px);
  transition:max-height .28s ease,opacity .2s ease,transform .28s ease,border-color .28s ease;
}
.hotel-search-wrap.is-search-open .kas-quick-search{
  max-height:min(78vh,800px);
  opacity:1;
  pointer-events:auto;
  border-color:rgba(194,162,92,.30);
  transform:translateY(0);
}
.kas-quick-search__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.95fr);
  min-height:420px;
}
.kas-quick-search__hotels{
  padding:18px;
  border-left:1px solid rgba(120,96,55,.12);
  background:transparent;
  min-width:0;
}
.kas-quick-search__search{
  display:flex;
  align-items:center;
  gap:8px;
  height:42px;
  padding:0 11px;
  border:1px solid var(--line-2);
  border-radius:10px;
  background:#fffdf9;
  color:var(--gold-dk);
}
.kas-quick-search__search span{font-size:18px;line-height:1}
.kas-quick-search__search input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--tx);
  font:500 .84rem var(--sans);
}
.kas-quick-search__search:focus-within{
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(194,162,92,.10);
}
.kas-quick-hotel-list{
  display:grid;
  gap:3px;
  max-height:390px;
  overflow:auto;
  margin-top:10px;
  padding-right:3px;
}
.kas-quick-hotel{
  width:100%;
  display:flex;
  align-items:center;
  gap:11px;
  padding:9px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--tx);
  text-align:left;
  cursor:pointer;
}
.kas-quick-hotel:hover,.kas-quick-hotel.is-active{background:#f1e6d3}
.kas-quick-hotel__thumb{
  width:54px;
  height:44px;
  flex:0 0 54px;
  object-fit:cover;
  border-radius:7px;
  background:var(--beige);
}
.kas-quick-hotel__thumb--empty{display:block}
.kas-quick-hotel span:last-child{min-width:0}
.kas-quick-hotel strong,.kas-quick-hotel small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kas-quick-hotel strong{font-size:.79rem;font-weight:600}
.kas-quick-hotel small{margin-top:3px;font-size:.68rem;color:var(--tx-3)}
.kas-quick-hotel--all{padding-block:11px;margin-bottom:3px;background:#eee3d0}
.kas-quick-hotel__all-icon{display:grid;place-items:center;width:54px;height:44px;flex:0 0 54px;border-radius:7px;background:#e4d5b9;color:var(--gold-dk);font-size:18px}
.kas-quick-search__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px 0}
.kas-quick-search__title{color:var(--tx-2);font:700 .7rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.kas-quick-search__popular{margin:0 0 11px;color:var(--gold-dk);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase}
.kas-quick-search__content{padding:20px 24px 22px;min-width:0}
.kas-quick-search__head p{margin:5px 0 0;color:var(--tx-3);font-size:.73rem;line-height:1.45}
.kas-quick-search__close{width:32px;height:32px;border:0;background:transparent;color:var(--tx-2);font-size:24px;line-height:1;cursor:pointer}
.kas-quick-search__group + .kas-quick-search__group{margin-top:15px;padding-top:15px;border-top:1px solid rgba(120,96,55,.12)}
.kas-quick-search__group h4{margin:0 0 9px;font-size:.61rem;line-height:1;letter-spacing:.17em;text-transform:uppercase;font-weight:700;color:var(--gold-dk)}
.kas-quick-search__tags{display:flex;flex-wrap:wrap;gap:8px}
.kas-quick-tag{
  appearance:none;
  border:1px solid rgba(194,162,92,.24);
  border-radius:999px;
  background:#fffdf8;
  color:var(--tx);
  padding:8px 12px;
  font:500 .78rem/1.1 var(--sans);
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;
}
.kas-quick-tag:hover{border-color:rgba(194,162,92,.55);background:#f4ead7;color:var(--gold-dk);transform:translateY(-1px)}
.kas-quick-tag.is-active{background:var(--gold);border-color:var(--gold);color:#201a12;box-shadow:0 5px 14px rgba(194,162,92,.22)}

/* guests popover */
.gpop{
  position:absolute;top:calc(100% + 10px);right:0;z-index:60;width:280px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-4);padding:16px;display:none;
}
.gpop.open{display:block;animation:popIn .2s var(--ease)}
@keyframes popIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.gpop__row{display:flex;align-items:center;justify-content:space-between;padding:9px 0}
.gpop__row+.gpop__row{border-top:1px solid var(--line)}
.gpop__row b{display:block;font-size:.87rem;font-weight:600;color:var(--tx)}
.gpop__row span{font-size:.73rem;color:var(--tx-3)}

.stepper{display:flex;align-items:center;gap:12px}
.stepper button{
  width:29px;height:29px;border-radius:50%;border:1px solid var(--line-2);
  display:grid;place-items:center;color:var(--tx-2);transition:all var(--t);flex-shrink:0;
}
.stepper button:hover:not(:disabled){border-color:var(--gold);color:var(--gold-dk);background:rgba(194,162,92,.07)}
.stepper button:disabled{opacity:.32;cursor:not-allowed}
.stepper output{min-width:20px;text-align:center;font-weight:600;font-size:.92rem}

/* ---------- trust strip ---------- */
.trust{background:var(--surface);border-bottom:1px solid var(--line)}
.trust__in{display:flex;justify-content:space-between;gap:18px;padding-block:1.15rem;flex-wrap:wrap}
.trust__i{display:flex;align-items:center;gap:9px;font-size:.79rem;color:var(--tx-2);font-weight:500}
.trust__i svg{color:var(--gold-dk);flex-shrink:0}
.trust--pad{padding-block:2.6rem;border-top:1px solid var(--line);border-bottom:none;background:var(--surface-2)}
.trust--pad .trust__in{padding:0 12px;align-items:flex-start;box-sizing:border-box}
.trust--pad .trust__i{flex-direction:row;align-items:flex-start;gap:12px;flex:1;min-width:190px}
.trust--pad .trust__i b{display:block;font-size:.8rem;color:var(--tx);font-weight:600;margin-bottom:2px}
.trust--pad .trust__i span{font-size:.76rem;color:var(--tx-3);font-weight:400;line-height:1.5}

/* ---------- property rail (home) ---------- */
.rail{display:grid;grid-template-columns:repeat(8,1fr);gap:14px}

/* ---------- hotel card (listing) ---------- */
/* ---------- property summary bar ---------- */
.propbar{
  display:grid;
  grid-template-columns:88px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
}
.propbar__media{
  width:88px;
  height:88px;
  border-radius:var(--r-sm);
  overflow:hidden;
  flex-shrink:0;
  background:var(--char);
}
.propbar__media img{width:100%;height:100%;object-fit:cover}
.propbar__info{min-width:0}
.propbar__title{
  display:flex;
  align-items:center;
  gap:11px;
  flex-wrap:wrap;
}
.propbar__title h3{
  color:var(--ivory);
  font-size:1.5rem;
  line-height:1.12;
  margin:0;
  min-width:0;
}
.propbar__loc{
  display:flex;
  align-items:flex-start;
  gap:6px;
  color:var(--tx-inv-2);
  font-size:.83rem;
  line-height:1.45;
  margin-top:5px;
}
.propbar__loc svg{color:var(--gold);flex-shrink:0;margin-top:2px}
.propbar__amenities{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:11px;
}
.propbar__amenities .chip{
  background:rgba(255,255,255,.06);
  border-color:rgba(194,162,92,.28);
  color:var(--tx-inv-2);
}
.propbar__rating{
  min-width:170px;
  text-align:right;
}
.propbar__score{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.propbar__score-num{
  font-family:var(--serif);
  font-size:1.9rem;
  color:var(--ivory);
  line-height:1;
}
.propbar__score-num small{
  font-family:var(--sans);
  font-size:.72rem;
  color:var(--tx-inv-2);
}
.propbar__stars{color:var(--gold)}
.propbar__reviews{
  color:var(--tx-inv-2);
  font-size:.68rem;
  line-height:1.4;
  margin-top:4px;
}
.propbar__rating .btn{margin-top:12px}

.hcard{
  display:grid;
  grid-template-columns:minmax(220px, 32%) minmax(0, 1fr);
  min-height:280px;
  height:auto;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r);
  overflow:hidden;
  transition:box-shadow var(--t), border-color var(--t), transform var(--t);
}
.hcard:hover{box-shadow:var(--sh-3);border-color:var(--sand)}
.hcard__media{position:relative;background:var(--beige);overflow:hidden;contain:paint;min-width:0;min-height:0}
.hcard__media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .7s var(--ease)}
.hcard:hover .hcard__media img{transform:scale(1.05)}
.hcard__b{
  min-width:0;min-height:0;padding:20px 22px;
  display:flex;flex-direction:column;gap:10px;
  overflow:visible;
}
.hcard__hd{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;min-width:0}
.hcard__hd > div:first-child{flex:1;min-width:0}
.hcard__hd h3{overflow-wrap:anywhere}
.hcard__loc{min-width:0;line-height:1.45}
.hcard__desc{margin:0;overflow-wrap:anywhere}
.hcard__am{align-items:flex-start}
.hcard__ft > div:last-child{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.hcard__ft .btn{white-space:nowrap}
.hcard__hd h3{margin-bottom:5px}
.hcard__loc{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--tx-2)}
.hcard__loc svg{color:var(--gold-dk);flex-shrink:0}
.hcard__desc{font-size:.87rem;color:var(--tx-2);line-height:1.62}
.hcard__am{display:flex;flex-wrap:wrap;gap:7px}
.hcard__ft{
  display:flex;justify-content:space-between;align-items:flex-end;gap:18px;
  margin-top:auto;padding-top:16px;border-top:1px solid var(--line);flex-wrap:wrap;
}

/* rating block */
.rate{display:flex;align-items:center;gap:9px;flex-shrink:0}
.rate__n{
  background:var(--black);color:var(--gold-lt);font-weight:600;
  padding:7px 11px;border-radius:var(--r-sm);font-size:.95rem;line-height:1;
  font-family:var(--serif);
}
.rate__m small{display:block;font-size:.68rem;color:var(--tx-3);line-height:1.4}
.rate__m b{font-size:.76rem;font-weight:600;color:var(--tx)}
.stars{display:flex;gap:1.5px;color:var(--gold)}
.stars svg{width:12px;height:12px}

/* price block */
.price{text-align:right}
.price__lb{font-size:.66rem;color:var(--tx-3);letter-spacing:.1em;text-transform:uppercase}
.price__v{font-family:var(--serif);font-size:1.75rem;color:var(--tx);line-height:1.05;font-weight:500}
.price__v sup{font-size:.58rem;font-family:var(--sans);letter-spacing:.08em;color:var(--tx-2);margin-left:3px;vertical-align:super;font-weight:600}
.price__u{font-size:.72rem;color:var(--tx-3)}

/* ---------- chips / tags ---------- */
.chip{
  display:inline-flex;align-items:center;gap:5px;padding:4px 10px;
  background:var(--surface-2);border:1px solid var(--line);border-radius:100px;
  font-size:.71rem;color:var(--tx-2);white-space:nowrap;
}
.chip svg{color:var(--gold-dk);flex-shrink:0}
.chip--gold{background:rgba(194,162,92,.1);border-color:rgba(194,162,92,.32);color:var(--brown)}
.chip--ok{background:var(--ok-bg);border-color:#CFE0D0;color:var(--ok)}
.badge{
  position:absolute;top:14px;left:14px;z-index:3;padding:5px 12px;
  background:rgba(14,13,11,.86);backdrop-filter:blur(6px);color:var(--gold-lt);
  font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  border-radius:var(--r-sm);
}
.badge--gold{background:linear-gradient(160deg,var(--gold-lt),var(--gold));color:var(--black)}
.badge--sig{position:static;display:inline-block}

/* ---------- room card ---------- */
.rcard{
  display:grid;grid-template-columns:300px 1fr 226px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
}
.rcard:hover{box-shadow:var(--sh-3);border-color:var(--sand)}
.rcard__media{position:relative;background:var(--beige);overflow:hidden;contain:paint}
.rcard__b{padding:22px 24px;display:flex;flex-direction:column;gap:11px;min-width:0}
.rcard__b h3{font-size:1.32rem}
.rcard__specs{display:grid;grid-template-columns:1fr 1fr;gap:7px 16px}
.spec{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--tx-2)}
.spec svg{color:var(--gold-dk);flex-shrink:0}
.rcard__desc{font-size:.84rem;color:var(--tx-2);line-height:1.6}
.rcard__side{
  padding:22px 22px;background:var(--surface-2);border-left:1px solid var(--line);
  display:flex;flex-direction:column;gap:10px;
}
.rcard__perks{display:flex;flex-direction:column;gap:6px;margin-top:2px}
.perk{display:flex;align-items:center;gap:7px;font-size:.75rem;color:var(--tx-2)}
.perk svg{color:var(--ok);flex-shrink:0}
.perk--gold svg{color:var(--gold-dk)}

/* ---------- gallery ---------- */
.gal{display:flex;flex-direction:column;gap:11px}
.gal__main{
  position:relative;aspect-ratio:16/10;background:transparent;
  border-radius:var(--r);overflow:hidden;cursor:zoom-in;
}
.gal__main img{display:block;width:100%;height:100%;object-fit:cover}
.gal__nav{
  position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;
  border-radius:50%;background:rgba(251,249,245,.92);backdrop-filter:blur(6px);
  display:grid;place-items:center;color:var(--tx);transition:all var(--t);
  z-index:3;box-shadow:var(--sh-2);
}
.gal__nav:hover{background:var(--ivory);transform:translateY(-50%) scale(1.07)}
.gal__nav--prev{left:14px}
.gal__nav--next{right:14px}
.gal__count{
  position:absolute;right:14px;bottom:14px;z-index:3;padding:5px 11px;
  background:rgba(14,13,11,.74);color:var(--ivory);border-radius:100px;
  font-size:.71rem;letter-spacing:.05em;backdrop-filter:blur(6px);
}
.gal__thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}
.gal__t{
  aspect-ratio:4/3;border-radius:var(--r-sm);overflow:hidden;cursor:pointer;
  border:2px solid transparent;transition:all var(--t);background:var(--beige);position:relative;
}
.gal__t img{width:100%;height:100%;object-fit:cover;transition:opacity var(--t)}
.gal__t:hover img{opacity:.82}
.gal__t.is-active{border-color:var(--gold)}
.gal__more{
  position:absolute;inset:0;color:var(--ivory);
  display:grid;place-items:center;font-size:.76rem;text-align:center;line-height:1.3;
}

/* mini carousel inside cards */
.mini{position:absolute;inset:0}
.mini img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity .45s var(--ease)}
.mini img.is-on{opacity:1}
.mini__nav{
  position:absolute;top:50%;transform:translateY(-50%);width:30px;height:30px;
  border-radius:50%;background:rgba(251,249,245,.9);display:grid;place-items:center;
  color:var(--tx);opacity:0;transition:all var(--t);z-index:3;
}
.rcard:hover .mini__nav,.hcard:hover .mini__nav{opacity:1}
.mini__nav--prev{left:10px}
.mini__nav--next{right:10px}
.mini__dots{position:absolute;bottom:11px;left:50%;transform:translateX(-50%);display:flex;gap:5px;z-index:3}
.mini__dots i{width:5px;height:5px;border-radius:50%;background:rgba(251,249,245,.5);transition:all var(--t)}
.mini__dots i.is-on{background:var(--ivory);width:14px;border-radius:3px}

/* lightbox */
.lb{
  position:fixed;inset:0;z-index:1200;background:rgba(10,9,8,.95);
  display:none;place-items:center;padding:36px;
}
.lb.open{display:grid;animation:fade .25s var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.lb img{max-width:100%;max-height:84vh;object-fit:contain;border-radius:var(--r)}
.lb__x{position:absolute;top:22px;right:26px;color:var(--ivory);padding:10px;z-index:5}
.lb__nav{position:absolute;top:50%;transform:translateY(-50%);color:var(--ivory);padding:16px;transition:opacity var(--t)}
.lb__nav:hover{opacity:.65}
.lb__nav--prev{left:18px}
.lb__nav--next{right:18px}
.lb__cap{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:var(--tx-inv-2);font-size:.8rem}

/* ---------- stepper / progress ---------- */
.steps{background:var(--surface);border-bottom:1px solid var(--line)}
.steps__in{display:flex;align-items:center;padding-block:20px;gap:0}
.step{display:flex;align-items:center;gap:11px;flex-shrink:1;min-width:0}
/* long step captions (e.g. a room name) truncate instead of pushing the row off-screen */
.step__t{min-width:0}
.step__t b,.step__t span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.step__n{
  width:29px;height:29px;border-radius:50%;display:grid;place-items:center;
  font-size:.76rem;font-weight:600;flex-shrink:0;
  background:var(--surface-2);color:var(--tx-3);border:1px solid var(--line-2);
  transition:all var(--t);
}
.step__t b{display:block;font-size:.79rem;font-weight:600;color:var(--tx-3);line-height:1.3}
.step__t span{font-size:.69rem;color:var(--tx-3)}
.step.is-done .step__n{background:var(--gold);border-color:var(--gold);color:var(--black)}
.step.is-done .step__t b{color:var(--tx-2)}
.step.is-on .step__n{background:var(--black);border-color:var(--black);color:var(--gold-lt)}
.step.is-on .step__t b{color:var(--tx)}
.step.is-on .step__t span{color:var(--gold-dk)}
.step__line{flex:1;height:1px;background:var(--line);margin-inline:16px;min-width:20px}
.step__line.is-done{background:var(--gold)}

/* breadcrumb */
.crumb{display:flex;align-items:center;gap:8px;font-size:.77rem;color:var(--tx-3);padding-block:16px;flex-wrap:wrap}
.crumb a{transition:color var(--t)}
.crumb a:hover{color:var(--gold-dk)}
.crumb .sep{opacity:.5}
.crumb .cur{color:var(--gold-dk);font-weight:500}

/* ---------- layout: content + sidebar ---------- */
.split{display:grid;grid-template-columns:1fr 360px;gap:30px;align-items:start}
/* Grid items default to min-width:auto (= min-content), so an intrinsically
   wide child — the price range slider — can force a column wider than the
   viewport. Allowing the tracks to shrink is the fix; clipping the page is not. */
.split > *{min-width:0}
.split--filters{grid-template-columns:262px 1fr}
.sticky{position:sticky;top:calc(var(--nav-h) + 20px)}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.panel__hd{
  padding:14px 20px;background:var(--black);color:var(--ivory);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.panel__hd h4{
  color:var(--ivory);font-family:var(--sans);font-size:.72rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
}
.panel__hd--gold{background:linear-gradient(160deg,var(--gold-lt),var(--gold))}
.panel__hd--gold h4{color:var(--black)}
.panel__b{padding:20px}
.panel__b+.panel__b{border-top:1px solid var(--line)}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px 26px}
.card__hd{display:flex;align-items:center;gap:11px;margin-bottom:18px}
.card__hd svg{color:var(--gold-dk);flex-shrink:0}
.card__hd h4{
  font-family:var(--sans);font-size:.74rem;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--tx);
}
.card__hd .edit{margin-left:auto}

/* definition rows */
.dl{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 24px}
.dl--2{grid-template-columns:repeat(2,1fr)}
.dt{font-size:.7rem;color:var(--tx-3);letter-spacing:.08em;margin-bottom:3px}
.dd{font-size:.9rem;color:var(--tx);font-weight:500}
.dd small{display:block;font-size:.74rem;color:var(--tx-3);font-weight:400;margin-top:2px}

/* price summary rows */
.prow{display:flex;justify-content:space-between;gap:14px;font-size:.85rem;padding:7px 0;align-items:baseline}
.prow span:first-child{color:var(--tx-2)}
.prow span:last-child{font-weight:500;white-space:nowrap}
.prow small{display:block;font-size:.72rem;color:var(--tx-3)}
.prow--total{
  border-top:1px solid var(--line);margin-top:10px;padding-top:14px;align-items:baseline;
}
.prow--total span:first-child{font-family:var(--serif);font-size:1.22rem;color:var(--tx)}
.prow--total span:last-child{font-family:var(--serif);font-size:1.52rem;color:var(--tx);font-weight:500}
.prow--total sup{font-size:.56rem;font-family:var(--sans);letter-spacing:.08em;margin-left:3px;vertical-align:super;font-weight:600;color:var(--tx-2)}

/* ---------- filters ---------- */
.filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;min-width:0}
.range__v{min-width:0;gap:8px}
.range__v span{white-space:nowrap}
.fgrp{padding-block:16px;border-top:1px solid var(--line)}
.fgrp:first-of-type{border-top:none;padding-top:6px}
.fgrp h5{
  font-family:var(--sans);font-size:.63rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--tx);margin-bottom:11px;
}
.fgrp .opt{padding:5px 0;font-size:.83rem}
.range{display:flex;align-items:center;gap:10px;margin-bottom:8px;min-width:0}
.range input{flex:1;min-width:0;width:100%;accent-color:var(--gold);cursor:pointer}
.range__v{display:flex;justify-content:space-between;font-size:.74rem;color:var(--tx-2)}

/* ---------- payment method cards ---------- */
.pays{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pay{
  border:1px solid var(--line);border-radius:var(--r);padding:15px 17px;
  cursor:pointer;transition:all var(--t);background:var(--surface);
}
.pay:hover{border-color:var(--line-2);background:var(--surface-2)}
.pay.is-on{border-color:var(--gold);background:rgba(194,162,92,.055);box-shadow:0 0 0 1px var(--gold)}
.pay__hd{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.pay__hd b{font-size:.87rem;font-weight:600}
.pay__hd .cards{margin-left:auto;display:flex;gap:4px;align-items:center}
.pay p{font-size:.75rem;color:var(--tx-3);margin:0;padding-left:26px;line-height:1.5}

/* ---------- alerts ---------- */
.alert{display:flex;gap:12px;padding:15px 18px;border-radius:var(--r);font-size:.85rem;line-height:1.6}
.alert svg{flex-shrink:0;margin-top:1px}
.alert--ok{background:var(--ok-bg);border:1px solid #CFE0D0;color:#2F5636}
.alert--ok svg{color:var(--ok)}
.alert--info{background:var(--surface-2);border:1px solid var(--line)}
.alert--info svg{color:var(--gold-dk)}
.alert--err{background:var(--err-bg);border:1px solid #EFCEC6;color:#7E3323}
.alert--err svg{color:var(--err)}
.alert b{display:block;margin-bottom:3px}
.alert--demo{background:rgba(194,162,92,.08);border:1px solid rgba(194,162,92,.3);font-size:.78rem;color:var(--brown)}

/* ---------- toast ---------- */
.toasts{position:fixed;bottom:26px;left:26px;z-index:1400;display:flex;flex-direction:column;gap:10px}
.toast{
  display:flex;align-items:center;gap:11px;padding:14px 20px;background:var(--black);
  color:var(--ivory);border-radius:var(--r);box-shadow:var(--sh-4);font-size:.85rem;
  border-left:3px solid var(--gold);animation:slideIn .34s var(--ease);max-width:370px;
}
.toast svg{color:var(--gold-lt);flex-shrink:0}
.toast.out{animation:slideOut .3s var(--ease) forwards}
@keyframes slideIn{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}
@keyframes slideOut{to{opacity:0;transform:translateX(-26px)}}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:1300;display:none;place-items:center;padding:24px;background:rgba(14,13,11,.62);backdrop-filter:blur(3px)}
.modal.open{display:grid;animation:fade .22s var(--ease)}
.modal__box{
  background:var(--surface);border-radius:var(--r-lg);max-width:470px;width:100%;
  box-shadow:var(--sh-4);animation:zoomIn .28s var(--ease);overflow:hidden;
}
@keyframes zoomIn{from{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:none}}
.modal__b{padding:30px}
.modal__b h3{margin-bottom:10px}
.modal__ft{display:flex;gap:11px;padding:0 30px 30px}
.modal__ft .btn{flex:1}

/* ---------- chat bubble ---------- */
.chat{
  position:fixed;right:22px;bottom:22px;z-index:800;display:flex;align-items:center;gap:9px;
  padding:12px 21px;background:var(--black);color:var(--ivory);border-radius:100px;
  box-shadow:var(--sh-4);font-size:.8rem;font-weight:500;transition:all var(--t);
  border:1px solid rgba(194,162,92,.3);
}
.chat:hover{transform:translateY(-2px);background:var(--char);border-color:var(--gold)}
.chat svg{color:var(--gold-lt)}

/* back to top */
.totop{
  position:fixed;right:22px;bottom:82px;z-index:790;width:40px;height:40px;border-radius:50%;
  background:var(--surface);border:1px solid var(--line-2);color:var(--tx-2);
  display:grid;place-items:center;box-shadow:var(--sh-2);opacity:0;visibility:hidden;
  transition:all var(--t);
}
.totop.show{opacity:1;visibility:visible}
.totop:hover{background:var(--gold);border-color:var(--gold);color:var(--black)}

/* ---------- misc ---------- */
.fade-up{opacity:0;transform:translateY(22px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.fade-up.in{opacity:1;transform:none}
@keyframes shimmer{to{background-position:-200% 0}}

/* Branded placeholder — shown only when every candidate URL fails.
   Designed to read as intentional art direction, not a broken image. */
.imgfall{
  position:absolute;inset:0;width:100%;height:100%;
  display:grid;place-items:center;text-align:center;padding:18px;
  background:
    radial-gradient(120% 90% at 50% 0%,rgba(194,162,92,.14),transparent 62%),
    linear-gradient(155deg,#14120F 0%,#1F1B16 48%,#2A2621 100%);
  color:var(--gold-lt);overflow:hidden;
}
.imgfall::before{
  content:'';position:absolute;inset:0;opacity:.16;
  background-image:
    repeating-linear-gradient(45deg,transparent 0 13px,rgba(194,162,92,.5) 13px 14px),
    repeating-linear-gradient(-45deg,transparent 0 13px,rgba(194,162,92,.28) 13px 14px);
}
.imgfall > div{position:relative;z-index:1;max-width:220px}
.imgfall span{
  font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;
  opacity:.82;display:block;margin-top:9px;line-height:1.55;
}
/* ensure image containers can host the absolute placeholder.
   NOTE: .mini is intentionally EXCLUDED — it is position:absolute;inset:0
   and must stay that way, or it collapses to zero height. */
.hcard__media,.rcard__media,.gal__main,.gal__t{position:relative}

.divider{height:1px;background:var(--line);margin-block:22px}
.amgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px 18px}
.am{display:flex;align-items:center;gap:9px;font-size:.83rem;color:var(--tx-2)}
.am svg{color:var(--gold-dk);flex-shrink:0}

.revbar{display:grid;grid-template-columns:58px 1fr 40px;gap:10px;align-items:center;font-size:.76rem;color:var(--tx-2)}
.revbar__t{height:5px;background:var(--beige);border-radius:3px;overflow:hidden}
.revbar__f{height:100%;background:var(--gold);border-radius:3px}
.revcard{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;background:var(--surface-2)}
.revcard__hd{display:flex;align-items:center;gap:11px;margin-bottom:9px}
.avatar{
  width:33px;height:33px;border-radius:50%;background:var(--black);color:var(--gold-lt);
  display:grid;place-items:center;font-size:.75rem;font-weight:600;flex-shrink:0;
}
.empty{text-align:center;padding:64px 24px;color:var(--tx-2)}
.empty svg{color:var(--sand);margin-bottom:18px}
.mobile-cta{display:none}

/* V12.1: featured gallery must be seamless — no dark slivers between image tiles. */

/* room-detail + reviews responsive helpers */
@media (max-width:1100px){ .specstrip{grid-template-columns:repeat(3,1fr)!important} }
@media (max-width:980px){ .revgrid{grid-template-columns:1fr!important} }
@media (max-width:720px){ .revlist{grid-template-columns:1fr!important} }
@media (max-width:560px){ .specstrip{grid-template-columns:repeat(2,1fr)!important} }

/* guests trigger must inherit the same light treatment as the other fields
   on the dark hero variant (it is a <button>, not an <input>) */
.searchbar #sbGuests{color:var(--ivory)}
.searchbar--solid #sbGuests{color:var(--tx)}

/* "+N / View all" overlay must sit above a placeholder if one rendered */
.gal__more{z-index:2;background:rgba(14,13,11,.74);backdrop-filter:blur(2px);font-weight:500}

/* ==========================================================================
   CONTACT  (single source: KAS_DATA.config.contact via js/contact.js)
   ========================================================================== */
.ct-link{display:flex;align-items:center;gap:13px;font-size:.83rem;color:var(--tx-2);
  padding:7px 0;transition:color var(--t);line-height:1.35;min-height:32px}
.ct-link svg{color:var(--gold-dk);flex-shrink:0}
.ct-link:hover{color:var(--gold-dk)}
.ct-link--inv{color:var(--tx-inv-2)}
.ct-link--inv svg{color:var(--gold)}
.ct-link--inv:hover{color:var(--ivory)}
.ct-stack{display:flex;flex-direction:column;gap:5px}.ct-stack--footer{margin-top:8px}
.ct-btn{text-transform:none;letter-spacing:.01em;font-size:.76rem}

/* header phone */
.hdr__tel{display:inline-flex;align-items:center;gap:7px;color:var(--tx-inv-2);
  font-size:.8rem;font-weight:600;letter-spacing:.02em;padding:7px 11px;
  border:1px solid rgba(194,162,92,.3);border-radius:var(--r-sm);transition:all var(--t);white-space:nowrap}
.hdr__tel svg{color:var(--gold)}
.hdr__tel:hover{color:var(--ivory);border-color:var(--gold);background:rgba(194,162,92,.12)}

/* support block */
.ct-support{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;background:var(--surface-2)}
.ct-support--inv{background:rgba(255,255,255,.04);border-color:rgba(194,162,92,.24)}
.ct-support__hd{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px}
.ct-support__hd svg{color:var(--gold-dk);flex-shrink:0;margin-top:1px}
.ct-support__hd b{display:block;font-size:.88rem;line-height:1.35}
.ct-support__hd span{font-size:.76rem;color:var(--tx-3)}
.ct-support--inv .ct-support__hd svg{color:var(--gold)}
.ct-support--inv .ct-support__hd b{color:var(--ivory)}
.ct-support--inv .ct-support__hd span{color:var(--tx-inv-2)}
.ct-channels{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.ct-ch{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line);
  border-radius:var(--r-sm);background:var(--surface);transition:all var(--t);min-width:0}
.ct-ch svg{color:var(--gold-dk);flex-shrink:0}
.ct-ch b{display:block;font-size:.79rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-ch small{display:block;font-size:.68rem;color:var(--tx-3)}
.ct-ch:hover{border-color:var(--gold);background:rgba(194,162,92,.06);transform:translateY(-1px)}
.ct-ch--zalo:hover{border-color:#0068FF}
.ct-ch--zalo:hover svg{color:#0068FF}
.ct-ch--wa:hover{border-color:#25D366}
.ct-ch--wa:hover svg{color:#1EA952}
.ct-support--inv .ct-ch{background:rgba(255,255,255,.05);border-color:rgba(194,162,92,.2)}
.ct-support--inv .ct-ch b{color:var(--ivory)}
.ct-support--inv .ct-ch small{color:var(--tx-inv-2)}
.ct-support--inv .ct-ch svg{color:var(--gold)}

/* floating contact widget (replaces the old single chat bubble) */
.ct-fab{position:fixed;right:22px;bottom:22px;z-index:800;display:flex;flex-direction:column;
  align-items:flex-end;gap:10px}
.ct-fab__btn{display:flex;align-items:center;gap:9px;padding:12px 21px;background:var(--black);
  color:var(--ivory);border-radius:100px;box-shadow:var(--sh-4);font-size:.8rem;font-weight:500;
  border:1px solid rgba(194,162,92,.3);transition:all var(--t)}
.ct-fab__btn svg{color:var(--gold-lt)}
.ct-fab__btn:hover{background:var(--char);border-color:var(--gold);transform:translateY(-2px)}
.ct-fab.is-open .ct-fab__btn{background:var(--char);border-color:var(--gold)}
.ct-fab__menu{display:flex;flex-direction:column;gap:7px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-4);padding:8px;
  min-width:216px;animation:popIn .2s var(--ease)}
.ct-fab__item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);
  transition:background var(--t)}
.ct-fab__item svg{color:var(--gold-dk);flex-shrink:0}
.ct-fab__item b{display:block;font-size:.83rem;font-weight:600}
.ct-fab__item small{display:block;font-size:.7rem;color:var(--tx-3)}
.ct-fab__item:hover{background:var(--surface-2)}

/* two-tier gallery: the room's own photos vs other rooms at the property */
.gal__tier{position:absolute;left:14px;bottom:14px;z-index:3;padding:5px 11px;
  background:rgba(194,162,92,.92);color:var(--black);border-radius:100px;
  font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  backdrop-filter:blur(6px)}
.gal__tier--sib{background:rgba(14,13,11,.78);color:var(--champagne)}
.gal__t--sib{opacity:.82}
.gal__t--sib::after{content:'';position:absolute;inset:0;border:1px dashed rgba(194,162,92,.45);
  border-radius:var(--r-sm);pointer-events:none}
.gal__t--sib.is-active{opacity:1}

/* ---- room / hotel card refinements (STEP 6) ----
   Same design language; better ratio, cropping and hover. */
.rcard__media{aspect-ratio:4/3;min-height:0}
.hcard__media{min-height:280px;aspect-ratio:auto}
.mini img{object-position:center 55%}          /* rooms read better slightly low */
.rcard{transition:box-shadow var(--t),border-color var(--t),transform var(--t)}
.rcard:hover{transform:translateY(-2px)}
.hcard:hover{transform:translateY(-2px)}
.rcard__b h3{letter-spacing:-.012em;margin-bottom:2px}
.rcard__b > .rcard__specs{margin-top:2px}
.spec{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rcard__media .mini img,.hcard__media .mini img{transition:transform .8s var(--ease)}
.rcard:hover .mini img.is-on,.hcard:hover .mini img.is-on{transform:scale(1.045)}
/* photo-provenance chip on room cards */


/* V11.1 footer contact/travel-trade spacing */
.ftr__contact .ct-link{display:flex;align-items:center;gap:13px;padding:7px 0;line-height:1.35;min-height:32px}
.ftr__contact .ct-link svg{width:17px;height:17px;flex:0 0 17px}
.ftr__contact .ct-stack--footer{gap:5px;margin-top:8px}
.ftr__contact .tiny{line-height:1.65}

/* ---------- KAS member sign-in ---------- */
.kas-auth{position:fixed;inset:0;z-index:1000;background:rgba(10,9,7,.72);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}
.kas-auth.is-open{opacity:1;visibility:visible}
.kas-auth__box{width:min(440px,100%);max-height:min(720px,calc(100vh - 36px));overflow:auto;background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-4);border-radius:10px;padding:34px 34px 28px;position:relative}
.kas-auth__close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--ivory);color:var(--tx);cursor:pointer;font-size:20px;line-height:1}
.kas-auth__brand{display:flex;justify-content:center;margin:3px 0 19px}
.kas-auth__brand img{width:150px;height:auto}
.kas-auth__eyebrow{text-align:center;color:var(--gold-dk);font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.kas-auth h2{text-align:center;font-family:var(--serif);font-weight:400;font-size:2rem;margin:9px 0 6px}
.kas-auth__sub{text-align:center;color:var(--tx-2);font-size:.78rem;line-height:1.55;margin:0 0 24px}
.kas-auth__field{margin-bottom:14px}.kas-auth__field label{display:block;font-size:.7rem;font-weight:600;margin-bottom:6px;color:var(--tx)}
.kas-auth__field input,.kas-auth__field select{width:100%;height:46px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 13px;font:inherit;font-size:.82rem;outline:0}
.kas-auth__field input:focus,.kas-auth__field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(194,162,92,.12)}
.kas-auth__submit{width:100%;height:46px;border:0;border-radius:6px;background:var(--gold);color:#17130d;font-weight:700;letter-spacing:.06em;cursor:pointer;margin-top:5px}
.kas-auth__switch{text-align:center;color:var(--tx-2);font-size:.74rem;margin:18px 0 0}.kas-auth__switch button{border:0;background:none;color:var(--gold-dk);font-weight:700;cursor:pointer;font:inherit}
.kas-auth__message{min-height:18px;text-align:center;font-size:.72rem;margin:9px 0 0;color:var(--gold-dk)}
.kas-auth__message.is-success{color:#386b4b}.kas-auth__message.is-error{color:#a3402e}
/* Email verification step */
.kas-auth__email{display:block;margin-top:4px;color:var(--tx);font-weight:600;word-break:break-all}
.kas-auth__field--code{margin-bottom:18px}
.kas-auth__field--code label{text-align:center;color:var(--tx-2);font-weight:500;letter-spacing:.04em}
.kas-auth__field input.kas-auth__code{height:60px;text-align:center;font-family:var(--serif);font-size:1.9rem;letter-spacing:.5em;padding:0 0 0 .5em;color:var(--tx)}
.kas-auth__field input.kas-auth__code::placeholder{color:#cfc5b2;letter-spacing:.5em}
.kas-auth__hint{margin:8px 0 0;text-align:center;font-size:.68rem;color:var(--tx-2)}
.kas-auth__resend{margin:16px 0 0;text-align:center;font-size:.74rem;color:var(--tx-2)}
.kas-auth__resend button{border:0;background:none;padding:0;color:var(--gold-dk);font:600 .74rem var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.kas-auth__resend button:disabled{color:var(--tx-2);text-decoration:none;cursor:default}
.kas-auth__submit:disabled{opacity:.6;cursor:default}
.kas-auth__remember{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--tx-2);margin:8px 0 14px}.kas-auth__remember input{accent-color:var(--gold)}
.kas-auth__link{display:block;margin:-5px 0 14px auto;padding:0;border:0;background:none;color:var(--gold-dk);font:500 .72rem var(--sans);text-decoration:underline;cursor:pointer}
@media (max-width:560px){.kas-auth__box{padding:30px 22px 24px}}

/* ---------- KAS member avatar menu + frontend-only email verification ---------- */
.kas-user-menu{position:relative;display:flex;align-items:center;flex:0 0 auto}
.kas-avatar{width:42px;height:42px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;background:#c2a25c;color:#17130d;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 0 0 3px rgba(194,162,92,.12)}
.kas-user-menu__panel{position:absolute;right:0;top:calc(100% + 12px);z-index:1100;width:248px;padding:8px 0;background:#fff;color:#1d1b17;border:1px solid rgba(0,0,0,.08);border-radius:8px;box-shadow:0 12px 34px rgba(0,0,0,.2)}
.kas-user-menu__panel[hidden]{display:none}
.kas-user-menu__identity{display:flex;flex-direction:column;gap:4px;padding:13px 16px 15px;border-bottom:1px solid #eee;margin-bottom:5px;overflow:hidden}
.kas-user-menu__identity strong{font-size:.9rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kas-user-menu__identity span{font-size:.72rem;color:#777;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kas-user-menu__panel button,.kas-user-menu__panel a{width:100%;display:block;text-align:left;padding:11px 16px;border:0;background:transparent;color:inherit;text-decoration:none;font:inherit;font-size:.82rem;cursor:pointer}
.kas-user-menu__panel button:hover,.kas-user-menu__panel a:hover{background:#f4f1eb}
.kas-auth__demo-note{padding:10px 12px;background:#f7f2e7;border-radius:5px;font-size:.72rem;line-height:1.5;color:#5e4a25;margin:0 0 12px}
.kas-auth__verified{font-size:.75rem;color:#386b4b;background:#edf7ef;border-radius:5px;padding:10px 12px;margin-bottom:14px}
@media(max-width:767px){.kas-user-menu__panel{right:-4px;width:min(248px,calc(100vw - 32px))}.kas-avatar{width:38px;height:38px}}

/* Homepage — horizontal KAS discovery rail */

/* More cinematic homepage hero, with the booking search floating over the image. */
.hero__in{padding-block:clamp(6rem,12vw,8rem) 0}
.hero__ct h1{font-size:clamp(3.2rem,6vw,5.5rem);line-height:.93;letter-spacing:-.025em}
.hero__ct p{font-size:.95rem;line-height:1.75}

/* Homepage hero fills the full viewport on first load, matching the full-screen Vietnamese homepage treatment. */

/* Homepage KAS Collection — clean editorial carousel */

/* ---------- Homepage hero: fixed Vietnamese reference frame ---------- */
.hero{
  height:100svh;
  align-items:stretch;
}
.hero__in{
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:flex-start;
  padding-top:clamp(8rem,13.2vh,9.2rem);
  padding-bottom:0;
}
.hero__ct{
  width:100%;
  max-width:600px;
  min-height:390px;
  padding-bottom:0;
}
.hero__ct h1{max-width:600px}
.hero__ct p{max-width:460px}
.hero .searchbar{margin-top:0;transform:translateY(0)}

/* Desktop reference frame: EN and VI share exactly the same hero geometry.
   The language only changes text, never the vertical position of the search bar. */
@media (min-width:901px){
  .hero__in{position:relative;padding-top:0}
  .hero__ct{position:absolute;left:0;top:clamp(8rem,13.2vh,9.2rem);min-height:0;padding:0}
}

/* HOTELS PAGE — single editable search frame.
   The search bar stays in the hero and is re-rendered in the same host after
   a search, so there is never a second summary/edit bar to jump to. */
.hero.hero--sm{min-height:390px;height:auto;align-items:stretch;overflow:visible}
.hero.hero--sm .hero__in{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;padding-top:0;padding-bottom:34px}
.hero.hero--sm .hero__ct{position:static;width:100%;max-width:640px;min-height:0;padding:0;color:var(--tx-inv);margin-top:clamp(3rem,5vw,4rem)}
.hero.hero--sm .hero__ct h1{font-size:clamp(2.5rem,4vw,3.2rem);line-height:1;margin:.9rem 0 0}
.hero.hero--sm .hero__ct p{font-size:1rem;line-height:1.5;margin-top:.9rem}
.hero.hero--sm #hotelSearch{width:100%;margin-top:2rem}
.hero.hero--sm #hotelSearch .searchbar{margin-top:0;transform:none}

/* Footer alignment — match the approved compact editorial reference. */
.ftr--dark .ftr__main{grid-template-columns:1.45fr 1.1fr 1.1fr 1.1fr 1.25fr;grid-template-rows:auto auto;gap:24px 38px;padding-bottom:2.4rem}
.ftr--dark .ftr__brand{grid-column:1;grid-row:1}
.ftr--dark .ftr__main>.ftr__col:nth-child(2){grid-column:2;grid-row:1}
.ftr--dark .ftr__main>.ftr__col:nth-child(3){grid-column:3;grid-row:1}
.ftr--dark .ftr__main>.ftr__col:nth-child(4){grid-column:4;grid-row:1}
.ftr--dark .ftr__main>.ftr__col:nth-child(5){grid-column:5;grid-row:1}
.ftr--dark .ftr__contact{grid-column:1 / span 2;grid-row:2}
.ftr--dark .ftr__news{grid-column:4 / span 2;grid-row:2}
@media (max-width:1100px){.ftr--dark .ftr__main{grid-template-columns:1.35fr repeat(4,1fr);gap:22px 24px}.ftr--dark .ftr__contact{grid-column:1 / span 2}.ftr--dark .ftr__news{grid-column:4 / span 2}}
@media (max-width:767px){.ftr--dark .ftr__main{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}.ftr--dark .ftr__brand{grid-column:1/-1;grid-row:auto}.ftr--dark .ftr__main>.ftr__col:nth-child(2),.ftr--dark .ftr__main>.ftr__col:nth-child(3),.ftr--dark .ftr__main>.ftr__col:nth-child(4),.ftr--dark .ftr__main>.ftr__col:nth-child(5){grid-column:auto;grid-row:auto}.ftr--dark .ftr__contact,.ftr--dark .ftr__news{grid-column:1/-1;grid-row:auto}}

/* ================= HOME REDESIGN — HERO =================
   Single source of truth for the homepage hero.
   - Navigation overlays the hero at Y=0.
   - Desktop/tablet heights are fixed by breakpoint.
   - Mobile uses the dynamic viewport height.
   - Hero content has one positioning system.
   - Left fade is owned by the hero background only.
   ================================================================ */
.home-redesign #hdr .nav a,
.home-redesign #hdr .hdr__tel,
.home-redesign #hdr .lang-button{
  color:#f5efe3;
}


.home-redesign .home-page-grid__content .home-hero{
  position:relative;
  width:100vw;
  max-width:none;
  min-width:0;
  height:640px;
  min-height:640px;
  margin-left:calc(50% - 50vw);
  margin-right:0;
  overflow:hidden;
  background:#0e0d0b;
  display:flex;
  align-items:stretch;
  box-sizing:border-box;
}

.home-redesign .home-page-grid__content .home-hero__bg.site-image-pending .home-hero__slide{
  opacity:0 !important;
  visibility:hidden !important;
}

.home-redesign .home-page-grid__content .home-hero__bg{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  overflow:hidden;
}

.home-redesign .home-page-grid__content .home-hero__bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.86);
  transform:scale(1.01);
}

.home-redesign .home-page-grid__content .home-hero__bg::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(8,7,6,.88) 0%,
    rgba(8,7,6,.72) 14%,
    rgba(8,7,6,.48) 30%,
    rgba(8,7,6,.24) 46%,
    rgba(8,7,6,.08) 62%,
    rgba(8,7,6,0) 76%
  );
}

/* Destination slideshow */
.home-redesign .home-page-grid__content .home-hero__slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
  z-index:0;
}

.home-redesign .home-page-grid__content .home-hero__slide.is-active{
  opacity:1;
  visibility:visible;
  z-index:1;
}

.home-redesign .home-page-grid__content .home-hero__slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.045);
  transition:transform 4.5s cubic-bezier(.2,.65,.2,1),filter .3s ease;
  filter:saturate(.9) contrast(.98);
}

.home-redesign .home-page-grid__content .home-hero__slide.is-active img{
  transform:scale(1);
}

/* Hero content stays anchored inside the same content column. */
.home-redesign .home-page-grid__content .home-hero__inner{
  position:relative;
  z-index:4;
  width:100%;
  max-width:1440px;
  height:100%;
  margin:0 auto;
  padding:0;
  pointer-events:none;
  box-sizing:border-box;
}

.home-redesign .home-page-grid__content .home-hero__copy{
  --hero-content-x:clamp(32px,6vw,96px);
  position:absolute;
  top:calc(var(--nav-h) + 42px);
  left:var(--hero-content-x);
  width:min(560px,calc(100% - (var(--hero-content-x) * 2)));
  max-width:560px;
  pointer-events:auto;
  margin:0;
  color:var(--ivory);
  text-align:left;
}

.home-redesign .home-page-grid__content .home-hero__copy h1{
  max-width:560px;
  margin:.45rem 0 1.1rem;
  padding-bottom:22px;
  color:var(--ivory);
  font-size:clamp(3rem,3.8vw,4rem);
  line-height:1.17;
  background:linear-gradient(#c9a968,#c9a968) left bottom / 52px 2px no-repeat;
  letter-spacing:-.035em;
  text-shadow:0 3px 22px rgba(0,0,0,.72),0 1px 3px rgba(0,0,0,.92);
}

.home-redesign .home-page-grid__content .home-hero__copy p{
  max-width:470px;
  margin:0;
  color:#fffaf2;
  font-family:"Inter", "Helvetica Neue", Arial, sans-serif;
  font-size:.94rem;
  line-height:1.55;
  text-shadow:0 2px 12px rgba(0,0,0,.72),0 1px 3px rgba(0,0,0,.88);
}

.home-redesign .home-page-grid__content .home-hero__actions{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap:12px;
  margin-top:1.55rem;
}

.home-redesign .home-page-grid__content .home-hero__actions .btn{
  min-width:180px;
  text-shadow:none;
  box-shadow:0 6px 20px rgba(0,0,0,.22);
}

.home-redesign .home-page-grid__content .home-hero__actions .btn:first-child{
  background:rgba(20,18,15,.58);
  border-color:rgba(255,250,240,.78);
  color:#fffaf2;
  backdrop-filter:blur(5px);
}

.home-redesign .home-page-grid__content .home-hero__actions .btn:last-child{
  background:#c9a968;
  border-color:#e0c487;
  color:#201b15;
  font-weight:600;
}

.home-redesign .home-page-grid__content .home-hero__actions .btn:first-child:hover{
  background:rgba(20,18,15,.82);
}

/* Hero dots */
.home-redesign .home-page-grid__content .home-hero__dots{
  position:absolute;
  right:20px;
  bottom:20px;
  z-index:5;
  display:flex;
  gap:8px;
  align-items:center;
}

.home-redesign .home-page-grid__content .home-hero__dot{
  width:9px;
  height:9px;
  padding:0;
  border:1px solid rgba(255,255,255,.82);
  border-radius:50%;
  background:rgba(255,255,255,.35);
  cursor:pointer;
  transition:transform .3s ease,background .3s ease,border-color .3s ease,box-shadow .3s ease;
  box-shadow:0 1px 5px rgba(0,0,0,.18);
}

.home-redesign .home-page-grid__content .home-hero__dot:hover{
  transform:scale(1.18);
  background:rgba(255,255,255,.78);
}

.home-redesign .home-page-grid__content .home-hero__dot.is-active{
  width:11px;
  height:11px;
  background:#c9a968;
  border-color:#fff4d6;
  box-shadow:0 0 0 3px rgba(201,169,104,.28),0 1px 6px rgba(0,0,0,.24);
}

@media (max-width:1100px){
  .home-redesign .home-page-grid__content .home-hero{
    height:580px;
    min-height:580px;
  }

}

@media (max-width:700px){
  .home-redesign .home-page-grid__content .home-hero{
    width:100%;
    height:100dvh;
    min-height:100dvh;
    margin-left:0;
  }

  .home-redesign .home-page-grid__content .home-hero__copy{
    --hero-content-x:20px;
    top:calc(var(--nav-h) + 26px);
    left:var(--hero-content-x);
    width:calc(100% - (var(--hero-content-x) * 2));
    max-width:none;
  }

  .home-redesign .home-page-grid__content .home-hero__copy h1{
    max-width:100%;
    font-size:clamp(2.15rem,9vw,2.55rem);
    line-height:1.12;
  }

  .home-redesign .home-page-grid__content .home-hero__copy p{
    max-width:36rem;
    font-size:.84rem;
  }

  .home-redesign .home-page-grid__content .home-hero__actions{
    flex-wrap:wrap;
  }

  .home-redesign .home-page-grid__content .home-hero__dots{
    right:18px;
    bottom:18px;
  }
}

@media (max-width:560px){
  .home-redesign .home-page-grid__content .home-hero__copy h1{
    max-width:100%;
    font-size:clamp(2.1rem,9vw,2.5rem);
  }

  .home-redesign .home-page-grid__content .home-hero__dots{
    right:18px;
    bottom:18px;
    gap:7px;
  }

  .home-redesign .home-page-grid__content .home-hero__dot{
    width:8px;
    height:8px;
  }

  .home-redesign .home-page-grid__content .home-hero__dot.is-active{
    width:10px;
    height:10px;
  }
}

/* V22.2 — Find Your KAS editorial section */
.kas-find-home{background:var(--ivory-2);padding-block:clamp(5rem,8vw,7.5rem)}
.kas-find-home .container{max-width:1160px}
.kas-find-home__head{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:48px;align-items:end;padding-bottom:38px}
.kas-find-home__head h2{font-family:var(--serif);font-weight:400;font-size:clamp(3.4rem,6vw,5.2rem);line-height:.94;letter-spacing:-.045em;margin:.7rem 0 0;color:#24221f}
.kas-find-home__head p{max-width:390px;margin:0 0 4px;color:#777168;font-size:.78rem;line-height:1.75}
.kas-find-home__choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #d8d1c7;border-bottom:1px solid #d8d1c7}
.kas-find-home__choice{position:relative;display:flex;flex-direction:column;min-height:145px;padding:27px 20px 24px 0;margin-right:20px;border-right:1px solid #d8d1c7;color:#24221f;text-decoration:none;transition:background-color .3s ease,padding-left .3s ease}
.kas-find-home__choice:first-child{padding-left:0}.kas-find-home__choice:last-child{border-right:0;margin-right:0}
.kas-find-home__choice .eyebrow{font-size:.56rem;color:#a09588;letter-spacing:.2em}
.kas-find-home__choice strong{font-family:var(--serif);font-size:1.35rem;font-weight:400;margin:10px 0 5px}
.kas-find-home__choice p{margin:0;max-width:235px;color:#777168;font-size:.67rem;line-height:1.55}
.kas-find-home__choice:hover{background:rgba(139,118,88,.045);padding-left:8px}.kas-find-home__choice:hover strong{color:#8b7658}
.kas-find-home__arrow{position:absolute;right:18px;bottom:23px;font-size:.85rem;color:#8b7658;opacity:0;transform:translate(-4px,4px);transition:opacity .25s ease,transform .25s ease}.kas-find-home__choice:hover .kas-find-home__arrow{opacity:1;transform:none}
.kas-find-home__foot{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;padding-top:39px}.kas-find-home__foot p{max-width:580px;margin:0;color:#777168;font-size:.68rem;line-height:1.7}
.kas-find-home__cta{flex:0 0 auto;margin-top:3px;color:#24221f;text-decoration:none;text-transform:uppercase;letter-spacing:.17em;font-size:.62rem;border-bottom:1px solid #24221f;padding-bottom:9px;transition:letter-spacing .25s ease,color .25s ease}.kas-find-home__cta:hover{letter-spacing:.21em;color:#8b7658}
@media(max-width:900px){.kas-find-home__head{grid-template-columns:1fr;gap:20px}.kas-find-home__head p{max-width:560px}.kas-find-home__choices{grid-template-columns:repeat(2,minmax(0,1fr))}.kas-find-home__choice:nth-child(2){border-right:0;margin-right:0}.kas-find-home__choice:nth-child(-n+2){border-bottom:1px solid #d8d1c7}}
@media(max-width:560px){.kas-find-home{padding-block:4.5rem}.kas-find-home__head h2{font-size:3.15rem}.kas-find-home__choices{grid-template-columns:1fr}.kas-find-home__choice,.kas-find-home__choice:nth-child(2),.kas-find-home__choice:last-child{border-right:0;border-bottom:1px solid #d8d1c7;margin-right:0;padding:21px 28px 21px 0;min-height:126px}.kas-find-home__choice:last-child{border-bottom:0}.kas-find-home__choice:hover{padding-left:6px}.kas-find-home__foot{display:block;padding-top:28px}.kas-find-home__cta{display:inline-block;margin-top:22px}}

/* V20 — homepage booking search bar: directly below the hero */
.home-usp{background:var(--ivory);border-bottom:1px solid var(--line);padding-top:18px}.home-usp__in{display:grid;padding:9px 0}.home-usp__in>div{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--tx-2);font-size:.72rem}.home-usp__in svg{color:var(--gold-dk)}
.home-stay{background:#F3EEE4;padding-block:clamp(5rem,9vw,8rem)}.home-stay__grid{display:grid;grid-template-columns:1fr 1fr;min-height:590px}.home-stay__copy{display:flex;flex-direction:column;justify-content:center}.home-stay__copy h2,.home-city h2,.home-rooms h2,.home-cta h2{font-family:var(--serif);font-weight:400;letter-spacing:-.025em}.home-stay__copy h2{font-size:clamp(3rem,5vw,4.7rem);line-height:.92;margin:.8rem 0 1.3rem}.home-stay__copy .rule{margin:0 0 1.4rem}.home-stay__copy p{max-width:520px;color:var(--tx-2);line-height:1.8;font-size:.92rem;margin-bottom:1.9rem}.home-stay__visual{position:relative}.home-stay__image{height:100%;overflow:hidden}.home-stay__image img{width:100%;height:100%;object-fit:cover}.home-stay__caption{position:absolute;right:0;bottom:0;background:rgba(255,255,255,.96);padding:22px 28px;min-width:58%;font-family:var(--serif);font-size:1rem;color:#6b553a}
.home-collection{background:#EEE9DF;padding-block:clamp(5rem,8vw,7rem);overflow:hidden}.home-section-head{justify-content:space-between;margin-bottom:2.2rem}.home-section-head h2{font-family:var(--serif);font-weight:400;margin-top:.55rem}.home-section-head p{max-width:310px;color:var(--tx-2);line-height:1.6}.home-cards-wrap{position:relative}.home-cards{overflow-x:auto;scrollbar-width:none;padding:2px 1px 12px;scroll-snap-type:x mandatory}.home-cards::-webkit-scrollbar{display:none}.home-card{flex:0 0 calc((100% - 42px)/4);background:#F8F5EE;border:1px solid var(--line);scroll-snap-align:start;color:inherit}.home-card__img{overflow:hidden}.home-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.home-card:hover .home-card__img img{transform:scale(1.04)}.home-card__body{padding:15px 16px 18px}.home-card__body h3{font-family:var(--serif);font-size:1.2rem;font-weight:400;margin-bottom:5px}.home-card__body p{font-size:.68rem;color:var(--tx-3);min-height:2.8em;line-height:1.45}.home-card__body strong{display:block;color:var(--gold-dk);font-size:.7rem;margin-top:10px}.home-cards__arrow{position:absolute;top:45%;transform:translateY(-50%);z-index:3;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--ivory);box-shadow:0 6px 18px rgba(0,0,0,.12);font-size:1.7rem}.home-cards__arrow--prev{left:-20px}.home-cards__arrow--next{right:-20px}.home-collection__actions{text-align:center;margin-top:1.6rem}.home-collection__actions .btn{margin:0 4px}.home-city__copy{background:var(--black);color:var(--ivory);display:flex;flex-direction:column;justify-content:center}.home-city__copy h2{font-size:clamp(3rem,5vw,4.7rem);line-height:.9;margin:.9rem 0 1.5rem}.home-city__copy p{max-width:520px;color:#d2c9bb;line-height:1.75;font-size:.9rem;margin-bottom:1.8rem}.home-city__image img{width:100%;height:100%;object-fit:cover}
.home-experience{background:#F8F5EE;padding-block:clamp(5rem,8vw,7rem)}.home-experience h2{margin:.8rem 0 3.3rem}.home-feature-grid article>span{font-size:.66rem;color:var(--gold-dk)}.home-feature-grid h3{font-family:var(--serif);font-weight:400;font-size:1.05rem;margin:1.1rem 0 .45rem}.home-feature-grid p{font-size:.74rem;color:var(--tx-2);line-height:1.55}
.home-rooms{background:#EAE4D8;padding-block:clamp(5rem,9vw,8rem)}.home-rooms__grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center}.home-rooms__image{aspect-ratio:1.15/1;overflow:hidden}.home-rooms__image img{width:100%;height:100%;object-fit:cover}.home-rooms__copy h2{font-size:clamp(3rem,5vw,4.7rem);line-height:.9;margin:.9rem 0 1.5rem}.home-rooms__copy p{max-width:430px;color:var(--tx-2);line-height:1.75;font-size:.9rem;margin-bottom:1.8rem}
.home-cta{background:#5A5145;color:var(--ivory);text-align:center}.home-cta__in{display:flex;align-items:center;flex-direction:column}.home-cta h2{margin:1rem 0 1rem}.home-cta p{color:#cfc5b7;margin-bottom:1.8rem}.eyebrow--gold{color:var(--gold-lt)}
@media (max-width:900px){.home-usp__in{grid-template-columns:repeat(2,1fr)}.home-stay__grid,.home-city,.home-rooms__grid{grid-template-columns:1fr}.home-stay__copy{padding-right:0;padding-bottom:3rem}.home-stay__visual,.home-city__image{min-height:480px}.home-card{flex-basis:calc((100% - 14px)/2)}.home-section-head{align-items:start;flex-direction:column}.home-cards__arrow--prev{left:5px}.home-cards__arrow--next{right:5px}}
@media (max-width:560px){.home-usp__in{padding-inline:18px}.home-stay__grid{min-height:0}.home-stay__visual,.home-city__image{min-height:360px}.home-cards__arrow{display:none}.home-collection__actions .btn{display:block;margin:8px 0}}

/* V20.1 — homepage hero is full-screen; booking search is intentionally removed. */

/* V20.2 — strengthen headings on dark homepage sections */
.home-city__copy h2,
.home-cta h2{
  color:#fff !important;
}

/* V20.5 — zoom/viewport stability: homepage uses fixed desktop scales, not vw/vh sizing. */
.home-stay__copy{padding:2rem 4rem 2rem 0}
.home-cta{padding:8rem 0}

/* Keep desktop composition intact through ordinary browser zoom; reflow only at real layout widths. */
@media (max-width:1100px){
  .home-stay__copy h2,.home-city__copy h2,.home-rooms__copy h2{font-size:3.75rem}
  .home-city__copy{padding:4rem}
  .home-rooms__grid{gap:3.5rem}
  .home-cta h2{font-size:4.1rem}
}
@media (max-width:900px){
  .home-cta{padding:6rem 0}
}



/* V20.7 — grid-based homepage layout for stable resizing/zoom.
   The page is organized as full-width grid rows; internal content uses
   explicit minmax() tracks instead of viewport-sized scaling. */
.home-grid__hero{grid-row:auto;}
.home-grid__usp{grid-row:auto;}
.home-grid__section{grid-row:auto;}
.home-grid__split{grid-row:auto;}

/* 12-column editorial grid for the main content blocks. */

.home-section-head{
  align-items:end;
}
.home-section-head > *{min-width:0;}
.home-city__copy,.home-city__image{min-width:0;min-height:clamp(520px,55vw,760px);}
.home-city__copy h2,
.home-stay__copy h2,
.home-rooms__copy h2,
.home-experience h2,
.home-cta h2,
.home-section-head h2{
  font-size:clamp(3rem,4rem,5rem);
}

@media (max-width:1100px){
  .home-stay__copy{grid-column:1 / span 6;}
  .home-stay__visual{grid-column:7 / -1;}
  .home-rooms__image{grid-column:1 / span 6;}
  .home-rooms__copy{grid-column:7 / -1;}
}
@media (max-width:900px){
  .home-stay__grid,.home-rooms__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .home-stay__copy,.home-stay__visual,.home-rooms__image,.home-rooms__copy{grid-column:1 / -1;}
  .home-section-head{grid-template-columns:1fr;}
  .home-city{grid-template-columns:1fr;}
  .home-city__copy,.home-city__image{min-height:460px;}
  .home-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:560px){
  .home-grid .container{padding-inline:20px;}
  .home-stay__grid,.home-rooms__grid{grid-template-columns:1fr;}
  .home-city__copy,.home-city__image{min-height:360px;}
}


/* V22.7 — Equal four-card collection carousel
   Four equal editorial cards visible at once. Arrow controls advance one card. */
.home-redesign .home-page-grid__content .home-collection{
  background:#ece9e2;
  padding-block:3.2rem 2.8rem;
}
.home-redesign .home-page-grid__content .home-section-head{
  align-items:end;
  margin-bottom:1.55rem;
}
.home-redesign .home-page-grid__content .home-section-head h2{
  font-size:clamp(2.65rem,4vw,3.65rem);
  line-height:.96;
}
.home-redesign .home-page-grid__content .home-section-head p{
  margin:0 0 .15rem;
  max-width:340px;
}
.home-redesign .home-page-grid__content .home-cards-wrap--editorial{position:relative}
.home-redesign .home-page-grid__content .home-cards{
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:22px;
  align-items:stretch;
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 1px 3px;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  overscroll-behavior-x:contain;
}
.home-redesign .home-page-grid__content .home-cards::-webkit-scrollbar{display:none}
.home-redesign .home-page-grid__content .home-card,
.home-redesign .home-page-grid__content .home-card:nth-child(3n + 1){
  position:relative;
  flex:0 0 calc((100% - 66px)/4) !important;
  width:calc((100% - 66px)/4);
  height:320px !important;
  min-width:0;
  overflow:hidden;
  border:0;
  background:#aaa;
  color:#fff;
  scroll-snap-align:start;
  isolation:isolate;
}
.home-redesign .home-page-grid__content .home-card__img{
  position:absolute;
  inset:0;
  aspect-ratio:auto;
  overflow:hidden;
}
.home-redesign .home-page-grid__content .home-card__img:after{
  content:"";
  position:absolute;
  inset:38% 0 0;
  background:linear-gradient(to bottom,transparent 0%,rgba(12,12,10,.10) 20%,rgba(12,12,10,.82) 100%);
  pointer-events:none;
}
.home-redesign .home-page-grid__content .home-card__img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .7s ease;
}
.home-redesign .home-page-grid__content .home-card:hover .home-card__img img{transform:scale(1.045)}
.home-redesign .home-page-grid__content .home-card__overlay{
  position:absolute;
  z-index:2;
  left:18px;
  right:18px;
  bottom:18px;
  color:#fff;
}
.home-redesign .home-page-grid__content .home-card__overlay span{
  display:block;
  font-family:Inter,Arial,sans-serif;
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
  opacity:.9;
  margin-bottom:4px;
}
.home-redesign .home-page-grid__content .home-card__overlay h3{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.18rem,1.55vw,1.55rem);
  line-height:1;
  font-weight:700 !important;
  color:#fff !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
  letter-spacing:-.01em;
  text-shadow:0 2px 10px rgba(0,0,0,.42);
}
.home-redesign .home-page-grid__content .home-card__body{display:none}
.home-redesign .home-page-grid__content .home-cards__arrow{
  width:38px;
  height:38px;
  top:50%;
  border:1px solid rgba(32,32,29,.18);
  background:#fff;
  color:#20201d;
  box-shadow:0 5px 16px rgba(0,0,0,.10);
}
.home-redesign .home-page-grid__content .home-cards__arrow--prev{left:-19px}
.home-redesign .home-page-grid__content .home-cards__arrow--next{right:-19px}
.home-redesign .home-page-grid__content .home-collection__actions{margin-top:1.15rem}

@media (max-width:1100px){
  .home-redesign .home-page-grid__content .home-card,
  .home-redesign .home-page-grid__content .home-card:nth-child(3n + 1){
    flex-basis:calc((100% - 44px)/3) !important;
    width:calc((100% - 44px)/3);
    height:300px !important;
  }
}
@media (max-width:900px){
  .home-redesign .home-page-grid__content .home-collection{padding-block:2.8rem 2.5rem}
  .home-redesign .home-page-grid__content .home-card,
  .home-redesign .home-page-grid__content .home-card:nth-child(3n + 1){
    flex-basis:calc((100% - 22px)/2) !important;
    width:calc((100% - 22px)/2);
    height:300px !important;
  }
  .home-redesign .home-page-grid__content .home-cards__arrow--prev{left:5px}
  .home-redesign .home-page-grid__content .home-cards__arrow--next{right:5px}
}
@media (max-width:560px){
  .home-redesign .home-page-grid__content .home-collection{padding-block:2.4rem 2.2rem}
  .home-redesign .home-page-grid__content .home-section-head h2{font-size:2.6rem}
  .home-redesign .home-page-grid__content .home-section-head p{max-width:100%}
  .home-redesign .home-page-grid__content .home-card,
  .home-redesign .home-page-grid__content .home-card:nth-child(3n + 1){
    flex-basis:84vw !important;
    width:84vw;
    height:280px !important;
  }
  .home-redesign .home-page-grid__content .home-card__overlay{left:16px;right:16px;bottom:16px}
  .home-redesign .home-page-grid__content .home-card__overlay h3{font-size:1.28rem !important}
  .home-redesign .home-page-grid__content .home-cards__arrow{display:flex}
}


/* V22.9 — A Day in Saigon: compact editorial section
   Kept inside the homepage center column. Do not use 100vw here: the
   homepage intentionally uses a three-column frame with content only in
   the middle column. */
.home-day {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
  background: #F5F1E8 !important;
  padding: 28px 0;
}
.home-day__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: 410px;
}
.home-day__copy {
  background: #F5F1E8 !important;
  color: #332E27;
  padding: 38px clamp(40px, 7vw, 96px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.home-day__copy h2 {
  font-family: var(--serif);
  font-size: clamp(2.5rem, 4vw, 3.7rem);
  line-height: .92;
  font-weight: 400;
  letter-spacing: -.025em;
  margin: .65rem 0 1.1rem;
}
.home-day__copy > p {
  max-width: 520px;
  color: #766e64;
  line-height: 1.6;
  font-size: .82rem;
  margin: 0 0 1.1rem;
}
.home-day__image { min-width: 0; min-height: 410px; overflow: hidden; }
.home-day__image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.home-day__timeline { border-top: 1px solid rgba(65,58,50,.2); max-width: 520px; }
.home-day__timeline > div {
  display: grid; grid-template-columns: 54px 1fr; gap: 0;
  align-items: center; min-height: 32px;
  border-bottom: 1px solid rgba(65,58,50,.18);
}
.home-day__timeline span { font-size: .62rem; color: #b08b42; letter-spacing: .02em; }
.home-day__timeline p { margin: 0; font-size: .68rem; color: #5f5952; }

/* Homepage — Four neighbourhood stories */
.home-neighborhoods{background:#3A3934;color:#fff;margin-left:calc(-1 * var(--gutter, 0px));margin-right:calc(-1 * var(--gutter, 0px));}
.home-neighborhoods .container{max-width:1080px;padding-top:72px;padding-bottom:64px}
.home-neighborhoods__head{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:42px;align-items:end;margin-bottom:30px}
.home-neighborhoods__head h2{font-family:var(--serif);font-weight:400;font-size:clamp(3.2rem,5vw,5rem);line-height:.94;letter-spacing:-.035em;margin:12px 0 0;color:#fff}
.home-neighborhoods__head p{font-size:12px;line-height:1.65;color:rgba(255,255,255,.72);margin:0 0 3px;max-width:420px}
.home-neighborhoods__grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#3A3934}
.home-neighborhoods__card{position:relative;display:block;overflow:hidden;min-height:245px;color:#fff;background:#3A3934;isolation:isolate}
.home-neighborhoods__card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82) contrast(1.04);transition:transform .65s ease}
.home-neighborhoods__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 22%,rgba(0,0,0,.2) 48%,rgba(0,0,0,.84) 100%);z-index:1}
.home-neighborhoods__copy{position:absolute;z-index:2;left:18px;right:18px;bottom:17px}
.home-neighborhoods__copy span{display:block;font-size:7px;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:#eee5d8;margin-bottom:6px;text-shadow:0 1px 8px rgba(0,0,0,.7)}
.home-neighborhoods__copy h3{font-family:var(--serif);font-size:clamp(1.55rem,2.5vw,2.15rem);font-weight:400;line-height:1.02;letter-spacing:-.02em;color:#fff;margin:0 0 5px;text-shadow:0 2px 12px rgba(0,0,0,.72)}
.home-neighborhoods__copy p{font-size:8px;line-height:1.45;color:rgba(255,255,255,.9);margin:0 0 9px;max-width:480px;text-shadow:0 1px 9px rgba(0,0,0,.72)}
.home-neighborhoods__copy b{font-size:6.5px;line-height:1.2;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:#fff;border-bottom:1px solid rgba(255,255,255,.68);padding-bottom:3px}
.home-neighborhoods__card:hover img{transform:scale(1.035)}
.home-neighborhoods__links{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px}
.home-neighborhoods__links a{font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.8);border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:5px}
@media(max-width:900px){.home-neighborhoods .container{padding-top:58px;padding-bottom:52px}.home-neighborhoods__head{grid-template-columns:1fr;gap:14px}.home-neighborhoods__grid{grid-template-columns:1fr 1fr}.home-neighborhoods__card{min-height:220px}}
@media(max-width:560px){.home-neighborhoods .container{padding-top:48px;padding-bottom:44px}.home-neighborhoods__head h2{font-size:3rem}.home-neighborhoods__grid{grid-template-columns:1fr;gap:3px}.home-neighborhoods__card{min-height:245px}.home-neighborhoods__links{gap:12px}}

/* V22.17 — Homepage vertical rhythm / viewport polish
   - Shorter KAS City Guide neighbourhood section
   - Fixed A Day in Saigon frame height on desktop
   - Hero no longer stacks 100svh on top of the site header
   - Smaller hero typography for a calmer first viewport
*/
.home-redesign .home-page-grid__content .home-neighborhoods .container{
  padding-top:48px;
  padding-bottom:44px;
}
.home-redesign .home-page-grid__content .home-neighborhoods__head{
  margin-bottom:22px;
}
.home-redesign .home-page-grid__content .home-neighborhoods__card{
  min-height:198px;
}
.home-redesign .home-page-grid__content .home-neighborhoods__copy{
  left:16px;
  right:16px;
  bottom:14px;
}
.home-redesign .home-page-grid__content .home-neighborhoods__copy h3{
  font-size:clamp(1.35rem,2.15vw,1.85rem);
}
.home-redesign .home-page-grid__content .home-neighborhoods__copy p{
  font-size:7.5px;
}
.home-redesign .home-page-grid__content .home-neighborhoods__links{
  margin-top:18px;
}

.home-redesign .home-page-grid__content .home-day{
  height:560px;
  min-height:560px;
  padding:0;
  overflow:hidden;
}
.home-redesign .home-page-grid__content .home-day__grid{
  height:100%;
  min-height:0;
}
.home-redesign .home-page-grid__content .home-day__copy,
.home-redesign .home-page-grid__content .home-day__image{
  min-height:0;
  height:100%;
}


@media(max-width:900px){
  .home-redesign .home-page-grid__content .home-neighborhoods .container{
    padding-top:42px;
    padding-bottom:38px;
  }
  .home-redesign .home-page-grid__content .home-neighborhoods__card{
    min-height:190px;
  }
  .home-redesign .home-page-grid__content .home-day{
    height:520px;
    min-height:520px;
  }
  .home-redesign .home-page-grid__content .home-day__grid{
    grid-template-columns:1fr;
    height:100%;
  }
  .home-redesign .home-page-grid__content .home-day__copy{
    height:56%;
    padding:30px 32px;
  }
  .home-redesign .home-page-grid__content .home-day__image{
    height:44%;
    min-height:0;
  }
}

@media(max-width:560px){
  .home-redesign .home-page-grid__content .home-neighborhoods .container{
    padding-top:36px;
    padding-bottom:32px;
  }
  .home-redesign .home-page-grid__content .home-neighborhoods__card{
    min-height:205px;
  }
  .home-redesign .home-page-grid__content .home-day{
    height:640px;
    min-height:640px;
  }
  .home-redesign .home-page-grid__content .home-day__copy{
    height:62%;
    padding:28px 22px;
  }
  .home-redesign .home-page-grid__content .home-day__image{
    height:38%;
  }
}

/* V22.18 — A Day in Saigon column containment fix
   Prevent long copy/timeline content from escaping its grid column. */
.home-redesign .home-page-grid__content .home-day__grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.home-redesign .home-page-grid__content .home-day__copy{
  min-width:0;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow:hidden;
}
.home-redesign .home-page-grid__content .home-day__copy h2,
.home-redesign .home-page-grid__content .home-day__copy > p,
.home-redesign .home-page-grid__content .home-day__timeline{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.home-redesign .home-page-grid__content .home-day__copy h2{
  overflow-wrap:break-word;
  word-break:normal;
}
.home-redesign .home-page-grid__content .home-day__timeline > div{
  min-width:0;
}
.home-redesign .home-page-grid__content .home-day__timeline p{
  min-width:0;
  overflow-wrap:anywhere;
}
@media(max-width:900px){
  .home-redesign .home-page-grid__content .home-day__grid{
    grid-template-columns:minmax(0,1fr);
  }
  .home-redesign .home-page-grid__content .home-day__copy{
    overflow:visible;
  }
}


/* V22.20 — City Guide homepage height + link cleanup */
.home-neighborhoods .container{padding-top:44px;padding-bottom:38px}
.home-neighborhoods__head{margin-bottom:22px}
.home-neighborhoods__grid{gap:2px}
.home-neighborhoods__card{min-height:198px}
.home-neighborhoods__links{display:none!important}
@media(max-width:900px){
  .home-neighborhoods .container{padding-top:38px;padding-bottom:34px}
  .home-neighborhoods__card{min-height:185px}
}
@media(max-width:560px){
  .home-neighborhoods .container{padding-top:32px;padding-bottom:30px}
  .home-neighborhoods__card{min-height:205px}
}

/* V22.21 — City Guide section frame height only
   Keep the four cards unchanged; remove the oversized section-level
   .section padding that was creating excessive black space around them.
*/
.home-neighborhoods.section{
  padding-block:18px 24px;
}
.home-neighborhoods.section .container{
  padding-top:0;
  padding-bottom:0;
}
@media(max-width:900px){
  .home-neighborhoods.section{padding-block:16px 20px}
}
@media(max-width:560px){
  .home-neighborhoods.section{padding-block:14px 18px}
}


/* KAS HOMEPAGE — unified warm editorial palette
   Layout is unchanged. This block only standardizes the visual palette. */
.home-redesign .home-page-grid__content .kas-find-home { background: #E5DED1; }
.home-redesign .home-page-grid__content .home-collection { background: #E5DED1; }
.home-redesign .home-page-grid__content .home-day,
.home-redesign .home-page-grid__content .home-day__copy { background: #F3EEE4; }
.home-redesign .home-page-grid__content .home-rooms { background: #EDE6DB; }
.home-redesign .home-page-grid__content .home-neighborhoods { background: #25231F; }
.home-redesign .home-page-grid__content .home-cta { background: #332E27; }
.home-redesign .home-page-grid__content .home-card { background: #F3EEE4; border-color: var(--line); }
.home-redesign .home-page-grid__content .home-cards__arrow { background: #F3EEE4; border-color: var(--line-2); }
.home-redesign .home-page-grid__content .home-collection__actions .btn--ghost { border-color: var(--line-2); }
.home-redesign .home-page-grid__content .home-day__timeline { border-color: rgba(65,58,50,.18); }
.home-redesign .home-page-grid__content .home-day__timeline > div { border-color: rgba(65,58,50,.16); }
.home-redesign .home-page-grid__content .home-day__timeline span { color: var(--gold-dk); }


/* KAS HOMEPAGE — final refined color rhythm */
.home-redesign .home-page-grid__content .kas-find-home{background:#E5DED1 !important;color:#2E2A24;}
.home-redesign .home-page-grid__content .home-usp{background:#F8F4EC !important;}
.home-redesign .home-page-grid__content .home-stay{background:#F3EEE4 !important;}
.home-redesign .home-page-grid__content .home-collection{background:#E5DED1 !important;}
.home-redesign .home-page-grid__content .home-day,.home-redesign .home-page-grid__content .home-day__copy{background:#F3EEE4 !important;}
.home-redesign .home-page-grid__content .home-neighborhoods{background:#25231F !important;}
.home-redesign .home-page-grid__content .home-rooms{background:#EDE6DB !important;}
.home-redesign .home-page-grid__content .home-cta{background:#332E27 !important;}
.home-redesign .home-page-grid__content .home-card{background:#F3EEE4 !important;border-color:#CEC5B7;}
.home-redesign .home-page-grid__content .home-cards__arrow{background:#F3EEE4 !important;border-color:#C3B9A9;}
.home-redesign .home-page-grid__content .home-stay__caption{background:rgba(243,238,228,.96);color:#6A5338;}

/* KAS PALETTE — exact light editorial palette requested by client */
.home-redesign .home-page-grid__content .kas-find-home{background:#F8F5EE !important;}
.home-redesign .home-page-grid__content .home-usp{background:#F8F5EE !important;}
.home-redesign .home-page-grid__content .home-collection{background:#EEE9DF !important;}
.home-redesign .home-page-grid__content .home-day,
.home-redesign .home-page-grid__content .home-day__copy{background:#F5F1E8 !important;}
.home-redesign .home-page-grid__content .home-neighborhoods{background:#3A3934 !important;}
.home-redesign .home-page-grid__content .home-rooms{background:#EAE4D8 !important;}
.home-redesign .home-page-grid__content .home-cta{background:#5A5145 !important;}
.ftr--dark{background:#292822 !important;}
/* Header background states are defined once in style.css; do not override them here. */

/* V22.23 — Unified homepage section typography + contrast
   Keep the 3-column editorial layout unchanged. Standardize all major
   homepage headings on the same serif family and increase hierarchy. */
.home-redesign .home-page-grid__content .kas-find-home__head h2,
.home-redesign .home-page-grid__content .home-section-head h2,
.home-redesign .home-page-grid__content .home-day__copy h2,
.home-redesign .home-page-grid__content .home-neighborhoods__head h2,
.home-redesign .home-page-grid__content .home-rooms__copy h2,
.home-redesign .home-page-grid__content .home-cta h2,
.home-redesign .home-page-grid__content .home-stay__copy h2,
.home-redesign .home-page-grid__content .home-city__copy h2,
.home-redesign .home-page-grid__content .home-experience h2{
  font-family:"Cormorant Garamond", Georgia, "Times New Roman", serif !important;
  font-weight:400 !important;
  letter-spacing:-.035em !important;
  text-wrap:balance;
}

.home-redesign .home-page-grid__content .kas-find-home__head h2,
.home-redesign .home-page-grid__content .home-section-head h2,
.home-redesign .home-page-grid__content .home-day__copy h2,
.home-redesign .home-page-grid__content .home-rooms__copy h2{
  font-size:clamp(3.45rem,5.2vw,5.2rem) !important;
  line-height:.9 !important;
  color:#24231F !important;
}

.home-redesign .home-page-grid__content .home-neighborhoods__head h2,
.home-redesign .home-page-grid__content .home-cta h2,
.home-redesign .home-page-grid__content .home-city__copy h2{
  font-size:clamp(3.6rem,5.4vw,5.4rem) !important;
  line-height:.88 !important;
  color:#FFF9F0 !important;
  text-shadow:0 2px 18px rgba(0,0,0,.18);
}

.home-redesign .home-page-grid__content .home-day__copy h2{
  color:#24231F !important;
}

.home-redesign .home-page-grid__content .home-section-head p,
.home-redesign .home-page-grid__content .home-neighborhoods__head p,
.home-redesign .home-page-grid__content .home-day__copy > p,
.home-redesign .home-page-grid__content .home-rooms__copy p{
  font-family:var(--sans) !important;
}

.home-redesign .home-page-grid__content .home-neighborhoods__head p,
.home-redesign .home-page-grid__content .home-cta p,
.home-redesign .home-page-grid__content .home-city__copy p{
  color:rgba(255,249,240,.9) !important;
}

.home-redesign .home-page-grid__content .eyebrow{
  color:#8A6A38 !important;
  font-weight:700;
}
.home-redesign .home-page-grid__content .home-neighborhoods .eyebrow,
.home-redesign .home-page-grid__content .home-cta .eyebrow,
.home-redesign .home-page-grid__content .home-city__copy .eyebrow{
  color:#D8B978 !important;
}

.home-redesign .home-page-grid__content .home-card__overlay h3,
.home-redesign .home-page-grid__content .home-card__body h3,
.home-redesign .home-page-grid__content .home-feature-grid h3{
  font-family:"Cormorant Garamond", Georgia, "Times New Roman", serif !important;
  font-weight:500 !important;
}

@media(max-width:900px){
  .home-redesign .home-page-grid__content .kas-find-home__head h2,
  .home-redesign .home-page-grid__content .home-section-head h2,
  .home-redesign .home-page-grid__content .home-day__copy h2,
  .home-redesign .home-page-grid__content .home-rooms__copy h2{
    font-size:clamp(2.8rem,8vw,4.2rem) !important;
  }
  .home-redesign .home-page-grid__content .home-neighborhoods__head h2,
  .home-redesign .home-page-grid__content .home-cta h2,
  .home-redesign .home-page-grid__content .home-city__copy h2{
    font-size:clamp(3rem,8.5vw,4.5rem) !important;
  }
}

@media(max-width:560px){
  .home-redesign .home-page-grid__content .kas-find-home__head h2,
  .home-redesign .home-page-grid__content .home-section-head h2,
  .home-redesign .home-page-grid__content .home-day__copy h2,
  .home-redesign .home-page-grid__content .home-rooms__copy h2{
    font-size:2.65rem !important;
    line-height:.92 !important;
  }
  .home-redesign .home-page-grid__content .home-neighborhoods__head h2,
  .home-redesign .home-page-grid__content .home-cta h2,
  .home-redesign .home-page-grid__content .home-city__copy h2{
    font-size:2.9rem !important;
    line-height:.9 !important;
  }
}

/* KAS V22.24 — description typography: Inter
   Keep Cormorant Garamond for editorial headings; use Inter for readable
   descriptive copy, hotel summaries and supporting text. */
.hcard__desc,
.rcard__desc,
.home-redesign .home-page-grid__content .home-stay__copy p,
.home-redesign .home-page-grid__content .home-section-head p,
.home-redesign .home-page-grid__content .home-card__body p,
.home-redesign .home-page-grid__content .home-city__copy p,
.home-redesign .home-page-grid__content .home-feature-grid p,
.home-redesign .home-page-grid__content .home-rooms__copy p,
.home-redesign .home-page-grid__content .home-cta p,
.home-redesign .home-page-grid__content .home-day__copy > p,
.home-redesign .home-page-grid__content .home-day__timeline p,
.home-redesign .home-page-grid__content .home-neighborhoods__head p,
.home-redesign .home-page-grid__content .home-neighborhoods__copy p,
.kas-find-page .find-page-lead,
.kas-find-page .find-page-choice-intro p,
.kas-find-page .find-page-choice span:last-child,
.kas-find-page .find-page-results-head p,
.kas-find-page .find-page-hotel-copy,
.kas-find-page .find-page-note {
  font-family:"Inter", "Helvetica Neue", Arial, sans-serif !important;
}


/* KAS CTA VI — lighter Vietnamese line density */
.home-redesign .home-page-grid__content .home-cta h2{
  font-size:clamp(3.05rem,4.6vw,4.6rem) !important;
  line-height:1.02 !important;
  letter-spacing:-.02em !important;
}
@media(max-width:900px){
  .home-redesign .home-page-grid__content .home-cta h2{
    font-size:clamp(2.65rem,7.4vw,4rem) !important;
    line-height:1.04 !important;
  }
}
@media(max-width:560px){
  .home-redesign .home-page-grid__content .home-cta h2{
    font-size:2.5rem !important;
    line-height:1.06 !important;
  }
}



/* V22.27 — A Day in Saigon: center the editorial frame like the other sections.
   Keep the section background full-bleed, but constrain the two-column content
   to the shared 1200px editorial measure. */
.home-redesign .home-page-grid__content .home-day__grid{
  width:min(calc(100% - 48px), var(--home-content, 1200px));
  max-width:var(--home-content, 1200px);
  margin-inline:auto;
  box-sizing:border-box;
}

@media (max-width:1100px){
  .home-redesign .home-page-grid__content .home-day__grid{
    width:100%;
    max-width:none;
  }
}





/* ---------- compact shared intro treatments: hotels, My KAS and support ---------- */
.hero.hero--sm .hero__ct h1{color:#fff}
.hero.hero--sm .hero__ct p{color:var(--tx-inv-2)}
.hero--compact-intro{min-height:280px!important}
.hero.hero--sm.hero--compact-intro .hero__ct{margin-top:clamp(2rem,3.5vw,2.8rem)}
.hero.hero--sm.hero--compact-intro .hero__ct h1{margin-top:.65rem}
.hero.hero--sm.hero--compact-intro .hero__ct p{margin-top:.65rem}
.hotel-hero__back{color:var(--tx-inv-2);display:inline-flex;align-items:center;gap:6px;margin-bottom:14px}
.hotel-hero__description{margin-top:.9rem}
.content-page-section__inner--wide{max-width:1100px}
.content-page-contact-card{margin-top:18px}
@media(max-width:700px){.hero--compact-intro{min-height:250px!important}}


/* V13 — My KAS hero aligned with the shared editorial page-intro system.
   Background image is supplied only by the Admin-managed page hero slot. */
.hero.hero--mykas-intro{
  height:340px;
  min-height:340px;
  background:var(--black);
  background-image:none;
}
.hero.hero--mykas-intro .hero__in{
  width:min(100% - 48px,980px);
  margin-inline:auto;
  padding:0 0 38px;
}
.hero.hero--mykas-intro .hero__ct{
  width:100%;
  max-width:980px;
  margin:0;
  padding:0;
}
.hero.hero--mykas-intro .hero__ct h1{
  max-width:980px;
  margin:.8rem 0 1rem;
  font-size:clamp(2.5rem,5vw,4.6rem);
  line-height:1.02;
  font-weight:400;
  color:#fff;
}
.hero.hero--mykas-intro .hero__ct p{
  max-width:720px;
  margin:0;
  color:var(--tx-inv-2);
  font-size:1rem;
  line-height:1.75;
}
@media(max-width:700px){
  .hero.hero--mykas-intro{height:250px;min-height:250px}
  .hero.hero--mykas-intro .hero__in{width:calc(100% - 32px);padding-bottom:28px}
  .hero.hero--mykas-intro .hero__ct h1{font-size:clamp(2.25rem,9vw,3.1rem)}
}
/* My KAS uses only the Admin-managed background image. */
.hero.hero--mykas-intro{background-repeat:no-repeat;background-position:center;background-size:cover;}


/* V15 — Media-only intro areas, scoped exclusively to the five requested pages.
   The content-page pages use the existing local Saigon image; My KAS uses only
   the Admin-managed hero image. */
.content-page-hero.media-only-page-hero{
  position:relative;
  min-height:340px;
  display:flex;
  align-items:stretch;
  padding:0;
  background-color:#171613;
  /* Hero imagery is owned by Admin siteImages. Do not paint the legacy
     static image underneath the Admin-managed image. */
  background-image:none;
  background-position:center 48%;
  background-size:cover;
  background-repeat:no-repeat;
}
.content-page-hero.media-only-page-hero .content-page-hero__inner{
  display:none;
}
.hero.hero--media-only{
  min-height:340px;
}
.hero.hero--media-only .hero__ct{
  display:none;
}
@media(max-width:700px){
  .content-page-hero.media-only-page-hero,.hero.hero--media-only{min-height:250px}
}


/* Hotel property gallery category filters */
.hotel-gallery__filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.hotel-gallery__filter{border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:transparent;color:var(--tx-2);font:500 12px/1.2 var(--sans);cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.hotel-gallery__filter span{margin-left:5px;opacity:.7;font-size:10px}
.hotel-gallery__filter.is-active{background:var(--black);border-color:var(--black);color:var(--tx-inv)}
@media(max-width:640px){.hotel-gallery__filters{gap:6px}.hotel-gallery__filter{padding:7px 10px;font-size:11px}}

/* On-demand property gallery: keep category controls out of the page flow. */
.hotel-gallery__preview{width:100%}
.hotel-gallery-launch{position:relative;display:block;width:100%;aspect-ratio:16/10;padding:0;overflow:hidden;border:0;border-radius:var(--r);background:var(--beige);cursor:pointer;text-align:left}
.hotel-gallery-launch>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.hotel-gallery-launch:hover>img{transform:scale(1.025)}
.hotel-gallery-launch__shade{position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(14,13,11,.62))}
.hotel-gallery-launch__label{position:absolute;right:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(20,19,17,.78);color:#fff;font:500 12px/1.2 var(--sans);backdrop-filter:blur(8px)}
.hotel-gallery-launch__label b{font-size:11px;opacity:.8}
.hotel-gallery-preview-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:10px}
.hotel-gallery-preview-thumb{display:block;width:100%;aspect-ratio:4/3;min-width:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--beige);cursor:zoom-in}
.hotel-gallery-preview-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.hotel-gallery-preview-thumb:hover img{transform:scale(1.045)}
.hotel-gallery-preview-thumb:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hotel-gallery-modal[hidden]{display:none!important}
.hotel-gallery-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:clamp(10px,3vw,34px)}
.hotel-gallery-modal__backdrop{position:absolute;inset:0;background:rgba(12,11,10,.78);backdrop-filter:blur(5px)}
.hotel-gallery-modal__panel{position:relative;z-index:1;width:min(1080px,100%);max-height:min(92vh,900px);overflow:auto;padding:clamp(16px,2.5vw,28px);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--ivory);box-shadow:0 24px 90px rgba(0,0,0,.32)}
.hotel-gallery-modal__head{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-bottom:14px}
.hotel-gallery-modal__head--compact{min-height:40px;margin-bottom:12px}
.hotel-gallery-modal__head h2{margin:5px 0 0;font:400 clamp(24px,3vw,36px)/1.1 var(--serif);color:var(--tx)}
.hotel-gallery-modal__close{flex:0 0 40px;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--tx);font:300 28px/1 var(--sans);cursor:pointer}
.hotel-gallery-modal-open{overflow:hidden}
.hotel-gallery-modal .gal__main{aspect-ratio:16/9;cursor:zoom-in}
.hotel-gallery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}
.hotel-gallery-grid__item{display:block;position:relative;width:100%;aspect-ratio:4/3;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--beige);cursor:zoom-in;content-visibility:auto;contain-intrinsic-size:220px 165px}
.hotel-gallery-grid__item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.hotel-gallery-grid__item:hover img{transform:scale(1.035)}
.hotel-gallery-grid__item:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media(max-width:900px){.hotel-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}
@media(max-width:520px){.hotel-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
@media(max-width:520px){.hotel-gallery-preview-thumbs{gap:6px;margin-top:7px}.hotel-gallery-preview-thumb{border-radius:6px}}
@media(max-width:640px){.hotel-gallery-modal{padding:0}.hotel-gallery-modal__panel{width:100%;height:100%;max-height:100%;border-radius:0;padding:16px 12px}.hotel-gallery-modal .gal__main{aspect-ratio:4/3}.hotel-gallery-grid{gap:7px}.hotel-gallery-grid__item{border-radius:8px}.hotel-gallery-launch__label{right:10px;bottom:10px}}


/* ---------- first-visit KAS welcome ---------- */
.kas-welcome{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:16px;background:rgba(10,9,7,.52);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}
.kas-welcome.is-open{opacity:1;visibility:visible}
.kas-welcome__box{width:min(70vw,1120px);height:min(76vh,680px);display:grid;grid-template-columns:42% 58%;overflow:hidden;background:#f4f0e7;border:1px solid rgba(194,162,92,.24);box-shadow:0 24px 70px rgba(0,0,0,.32)}
 .kas-welcome__visual{position:relative;overflow:hidden;background:#211b17;color:#f4f0e7}
 .kas-welcome__visual img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.84) contrast(1)}
 .kas-welcome__visual-copy{position:absolute;z-index:1;left:34px;bottom:62px;display:flex;flex-direction:column;font:600 15px/1.42 var(--sans);letter-spacing:.2em;text-shadow:0 1px 8px rgba(0,0,0,.25)}
 .kas-welcome__visual small{position:absolute;z-index:1;left:34px;bottom:24px;font:600 7px/1 var(--sans);letter-spacing:.25em;text-shadow:0 1px 7px rgba(0,0,0,.25)}
 .kas-welcome__content{position:relative;padding:25px 50px 16px;text-align:center;color:#51483e;overflow:hidden;display:flex;flex-direction:column;align-items:center}
 .kas-welcome__close{position:absolute;right:16px;top:14px;width:26px;height:26px;border:0;background:transparent;color:#625a52;font-size:21px;font-weight:300;cursor:pointer}
 .kas-welcome__logo{display:block;width:126px;height:auto;margin:0 auto 12px}
 .kas-welcome__eyebrow,.kas-welcome__label{font:600 9px/1.4 var(--sans);letter-spacing:.28em;color:#4e463d}
 .kas-welcome__content h2{font:400 17px/1.4 var(--serif);margin:7px 0 12px;color:#71675d}
 .kas-welcome__label{margin-bottom:10px}
 .kas-welcome__langs{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:255px;margin:0 auto}
 .kas-welcome__lang{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border:1px solid #cec6b9;background:transparent;color:#4d463f;font:500 10px/1 var(--sans);cursor:pointer}
 .kas-welcome__lang.is-active{border-color:#3f3a34;color:#26231f}
 .kas-welcome__lang i{font-style:normal;font-size:11px;color:#9c9184}
 .kas-welcome__lang.is-active i{color:#2b2925}
 .kas-welcome__rule{height:1px;background:#d7d0c4;margin:14px 0 13px;width:100%}
 .kas-welcome__choice-title{margin-bottom:10px}
 .kas-welcome__choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}
 .kas-welcome__choice{display:flex;flex-direction:column;min-height:188px;padding:16px 15px;border:1px solid #d2cabc;background:#f8f5ee;text-align:left}
 .kas-welcome__choice--member{background:#f1ede4}
 .kas-welcome__choice-heading{font:600 9px/1.35 var(--sans);letter-spacing:.18em;color:#4e463d;margin-bottom:8px}
 .kas-welcome__choice-copy{font:400 11px/1.45 var(--serif);color:#625a52;margin:0 0 9px}
 .kas-welcome__benefits{list-style:none;padding:0;margin:0 0 11px;color:#625a52;font:400 10px/1.4 var(--serif)}
 .kas-welcome__benefits li{margin:4px 0}
 .kas-welcome__benefits li::before{content:'◇';color:#8a7c69;margin-right:6px}
 .kas-welcome__choice-btn{width:100%;height:38px;margin-top:auto;border:1px solid #272522;background:transparent;color:#272522;display:flex;align-items:center;justify-content:center;gap:12px;font:600 8.5px/1 var(--sans);letter-spacing:.13em;cursor:pointer}
 .kas-welcome__choice-btn--dark{background:#272522;color:#f4f0e7}
 .kas-welcome__choice-btn b{font-size:13px;font-weight:300;line-height:1}
 .kas-welcome__signin{margin:10px auto 0;display:block;border:0;border-bottom:1px solid #a99e91;background:transparent;color:#514a43;font:600 9px/1.8 var(--sans);letter-spacing:.18em;cursor:pointer}
@media(max-width:700px){
  .kas-welcome{padding:8px}
  .kas-welcome__box{width:min(560px,calc(100vw - 16px));height:min(760px,calc(100vh - 16px));grid-template-columns:1fr;grid-template-rows:34% 66%;overflow:auto}
  .kas-welcome__visual-copy{left:22px;bottom:48px;font-size:12px}
  .kas-welcome__visual small{left:22px;bottom:17px;font-size:7px}
  .kas-welcome__content{padding:24px 24px 20px}
  .kas-welcome__logo{width:145px;margin-bottom:17px}
  .kas-welcome__content h2{font-size:15px;margin:10px 0 15px}
  .kas-welcome__rule{margin:15px 0}
  .kas-welcome__choices{grid-template-columns:1fr 1fr;gap:10px}
  .kas-welcome__choice{min-height:176px;padding:14px 12px}
  .kas-welcome__choice-copy{font-size:10px}
  .kas-welcome__benefits{font-size:9px}
}
@media(max-width:560px){
  .kas-welcome__choices{grid-template-columns:1fr;gap:9px}
  .kas-welcome__choice{min-height:0}
}
@media(max-width:430px){
  .kas-welcome__box{grid-template-rows:30% 70%}
  .kas-welcome__content{padding-inline:18px}
  .kas-welcome__eyebrow,.kas-welcome__label{font-size:8px}
  .kas-welcome__lang{height:38px;font-size:10px}
  .kas-welcome__benefits{font-size:9px}
}

/* Keep the header action slot stable before/after sign-in; show member avatar + name only. */
#hdr .kas-user-menu{width:216px;justify-content:flex-end}
#hdr .kas-member-trigger{display:flex;align-items:center;justify-content:flex-end;gap:9px;width:100%;min-width:0;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left}
#hdr .kas-member-trigger .kas-avatar{flex:0 0 42px}
#hdr .kas-member-trigger__name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600;letter-spacing:0}
@media(max-width:767px){#hdr .kas-user-menu{width:auto}#hdr .kas-member-trigger{gap:0}#hdr .kas-member-trigger__name{display:none}#hdr .kas-member-trigger .kas-avatar{flex-basis:38px}}

/* Ensure the signed-in member name is visible beside the avatar on desktop. */
#hdr .kas-member-trigger__name{display:inline-block!important;visibility:visible;opacity:1;min-width:0;color:#f7f0e3;text-shadow:0 1px 5px rgba(0,0,0,.95);font-weight:700;letter-spacing:.015em;max-width:150px}
@media(max-width:767px){#hdr .kas-member-trigger__name{display:none!important}}


/* KAS shared header: contact dropdown and language picker */
.hdr .hdr__tel.contact-trigger{font:inherit;cursor:pointer;background:rgba(20,18,15,.78);color:var(--ivory);border:1px solid rgba(194,162,92,.48);border-radius:var(--r-sm);min-height:48px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;letter-spacing:.08em;font-weight:700;white-space:nowrap}
.hdr .hdr__tel.contact-trigger:hover{border-color:var(--gold);background:rgba(20,18,15,.94)}
.hdr .contact-trigger svg{color:var(--gold)}
.lang-chevron{display:none!important}
.contact-control{position:relative;display:inline-flex;align-items:center;flex:0 0 auto}.contact-popover{position:absolute;z-index:1005;top:calc(100% + 8px);right:0;width:min(390px,calc(100vw - 28px));padding:8px;background:rgba(24,22,18,.97);border:1px solid var(--gold);border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.42);color:var(--ivory)}
.contact-popover[hidden]{display:none!important}
.contact-popover:before{content:"";position:absolute;right:82px;top:-7px;width:12px;height:12px;background:rgba(24,22,18,.97);border-top:1px solid var(--gold);border-left:1px solid var(--gold);transform:rotate(45deg)}
.contact-popover__card{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) 12px;align-items:start;gap:9px;padding:11px 9px;border-radius:8px;background:rgba(255,255,255,.045)}
.contact-popover__card+.contact-popover__card{margin-top:8px}
.contact-popover__icon{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:rgba(194,162,92,.12);color:var(--gold)}
.contact-popover__body h3{margin:1px 0 6px;font-family:inherit;font-size:.74rem;line-height:1.4;font-weight:500;color:#e3c17b}
.contact-popover__body a{display:flex;align-items:center;gap:7px;margin-top:5px;color:var(--ivory);font-size:.74rem;line-height:1.3;text-decoration:none;white-space:nowrap}
.contact-popover__body a svg{color:var(--gold);flex-shrink:0}
.contact-popover__body a:hover{color:var(--gold)}
.contact-popover__arrow{align-self:center;color:var(--gold);font-size:1.35rem}
.hdr__right{position:relative}


/* Header layout stability: reserve the same action slot before and after sign-in. */
@media (min-width: 701px){
  #hdr .hdr__right{display:flex;align-items:center;flex-wrap:nowrap}
  #hdr .hdr__right > .js-kas-auth,
  #hdr .hdr__right > .kas-user-menu{flex:0 0 176px;width:176px;min-width:176px;box-sizing:border-box}
  #hdr .hdr__right > .js-kas-auth{white-space:nowrap;justify-content:center}
  #hdr .hdr__right > .kas-user-menu{justify-content:flex-end}
}
@media (max-width:700px){
  #hdr .hdr__right{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;min-width:0}
  #hdr .hdr__right > .js-kas-auth,
  #hdr .hdr__right > .kas-user-menu{flex:0 0 auto;min-width:0}
  #hdr .contact-control,#hdr .lang-wrap--custom{flex:0 0 auto}
}


/* KAS desktop navigation refinement — shared header only; mobile rules remain unchanged. */
@media (min-width: 701px) {
  #hdr .hdr__right {
    gap: 10px;
    align-items: center;
  }
  #hdr .contact-trigger {
    min-height: 42px;
    padding: 0 12px;
    gap: 7px;
    letter-spacing: .04em;
    font-size: .82rem;
  }
  #hdr .contact-control .contact-popover {
    width: min(330px, calc(100vw - 28px));
    padding: 6px;
  }
  #hdr .contact-popover__card {
    grid-template-columns: 32px minmax(0, 1fr) 10px;
    gap: 7px;
    padding: 9px 7px;
  }
  #hdr .contact-popover__icon {
    width: 32px;
    height: 32px;
  }
  #hdr .lang-wrap {
    margin-left: 0;
  }
  #hdr .lang-wrap .lang-select {
    min-height: 42px;
    padding-left: 10px;
    padding-right: 10px;
  }
  #hdr .kas-user-menu {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    margin-left: 2px;
  }
  #hdr .kas-member-trigger {
    gap: 7px;
    width: auto;
    max-width: 170px;
  }
  #hdr .kas-member-trigger .kas-avatar {
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
    box-shadow: 0 0 0 2px rgba(194,162,92,.10);
  }
  #hdr .kas-member-trigger__name {
    max-width: 112px;
  }
}


/* Desktop header action alignment: move CONTACT, language and account group to the right.
   Keep mobile navigation rules and all shared navigation behavior unchanged. */
@media (min-width: 701px) {
  #hdr .hdr__right {
    margin-left: auto;
    gap: 10px;
  }
  #hdr .hdr__right > .js-kas-auth {
    flex: 0 0 124px;
    width: 124px;
    min-width: 124px;
    padding-inline: 10px;
    font-size: .72rem;
    letter-spacing: .035em;
    white-space: nowrap;
  }
  #hdr .hdr__right > .kas-user-menu {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    margin-left: 2px;
  }
}


/* V29 — trust strip breathing room and clearly grouped footer contact numbers. */
.trust--pad .trust__in{padding-inline:12px}
.trust--pad .trust__i{min-width:0}
.ftr__contact .ftr-contact-group{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:8px 0 12px}
.ftr__contact .ftr-contact-group:first-of-type{margin-top:10px}
.ftr__contact .ftr-contact-label{font-size:.62rem;line-height:1.45;letter-spacing:.035em;color:rgba(194,162,92,.95);font-weight:600}
.ftr__contact .ftr-contact-group .ftr-contact-row{padding:3px 0;min-height:0}
@media(max-width:767px){
  .trust--pad .trust__in{padding-inline:10px}
  .trust--pad .trust__i{gap:10px}
  .ftr__contact .ftr-contact-label{font-size:.64rem}
}

/* KAS saved hotel heart — overlay on the primary property image */
.hotel-gallery__preview{position:relative}
.hotel-save-heart{position:absolute;z-index:5;top:14px;right:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 15px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(20,19,17,.78);color:#f7f0e4;font:600 12px/1 var(--sans);backdrop-filter:blur(8px);cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.18);transition:background .2s,border-color .2s,transform .2s}
.hotel-save-heart:hover{transform:translateY(-1px);border-color:var(--gold)}.hotel-save-heart svg{color:#c7a15d}.hotel-save-heart.is-saved{background:#c4a15d;color:#171511;border-color:#c4a15d}.hotel-save-heart.is-saved svg{fill:currentColor;color:#171511}
@media(max-width:520px){.hotel-save-heart{top:9px;right:9px;min-height:38px;padding:0 11px;font-size:11px}}

.kas-saved-hotel-list{display:grid;gap:10px;max-height:45vh;overflow:auto;margin:18px 0;text-align:left}.kas-saved-hotel-row{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.kas-saved-hotel-row strong,.kas-saved-hotel-row span{display:block}.kas-saved-hotel-row strong{font-size:14px}.kas-saved-hotel-row span{font-size:11px;color:var(--tx-2);margin-top:4px}.kas-saved-hotel-row a{font-size:11px;color:var(--gold);white-space:nowrap}.kas-saved-hotel-row button{border:0;background:transparent;font-size:22px;color:var(--tx-2);cursor:pointer}
/* Member photo in the header avatar circle (falls back to the initial when absent). */
.kas-avatar.kas-avatar--photo{padding:0;overflow:hidden;background:var(--ivory,#f6f1e7)}
.kas-avatar.kas-avatar--photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}

/* Shared save toggle (data-save-hotel): icon button on listing cards, labelled
   button on the room page. The filled heart and aria-pressed carry the state. */
.kas-save{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--gold-dk,#9a7b3c);cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .2s}
.kas-save:hover{border-color:var(--gold);transform:translateY(-1px)}
.kas-save:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.kas-save.is-saved{background:#c4a15d;border-color:#c4a15d;color:#171511}
.kas-save.is-saved svg,.find-page-save.is-saved svg{fill:currentColor}
/* Staff accounts only: the way into the Admin/Partner console. */
.kas-user-menu__panel a.kas-user-menu__admin{font-weight:600;color:var(--gold-dk,#9a7b3c)}
