/*
Theme Name: Cao Hotel
Theme URI: https://caoboutiquehotel.com/
Author: Antigravity
Author URI: https://caoboutiquehotel.com/
Description: Modern Gutenberg theme for Cao Boutique Hotel.
Version: 1.0.7
Text Domain: cao-hotel
*/

:root{
  --ivory:#fbf0d5;
  --offwhite:#fcf8f1;
  --warm:#f7f1e6;
  --olive:#3d3d28;
  --wood:#452c16;
  --brick:#75271a;
  --text:#2d241c;
  --muted:#6b5a49;
  --line:rgba(69,44,22,.12);
  --line-light:rgba(251,240,213,.16);
  --shadow:0 18px 42px rgba(25,18,13,.12);
  --shadow-strong:0 30px 80px rgba(20,15,11,.2);
  --display:"Talling","Cormorant Upright",serif;
  --serif:"Cormorant Upright",serif;
  --body:"Inter",system-ui,sans-serif;
  --container:min(1240px,calc(100vw - 48px));
  --transition:280ms cubic-bezier(.22,.61,.36,1);
  --article: min(1320px, calc(100vw - 48px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);color:var(--text);background:linear-gradient(180deg,#fdfaf5 0%,#f7f1e6 100%);overflow-x:hidden}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
button,input{font:inherit}
button{background:none;border:0;cursor:pointer}
[data-lang],[data-lang-block]{display:none}
[data-lang].active{display:inline}
[data-lang-block].active{display:block}
.container{width:var(--container) !important;margin:0 auto}
.section{padding:110px 0;position:relative}
.section-divider::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(1080px,88vw);height:1px;background:linear-gradient(90deg,transparent,rgba(69,44,22,.15),transparent)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--display);letter-spacing:.22em;text-transform:uppercase;font-size:.78rem;color:#f9f3f2;margin-bottom:14px}
.eyebrow::before,.eyebrow::after{content:"";width:26px;height:1px;background:currentColor;opacity:.35}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1}
h1{font-size:clamp(3.4rem,7vw,6.6rem);letter-spacing:-.05em}
h2{font-size:clamp(2.4rem,5vw,4.6rem);letter-spacing:-.04em}
h3{font-size:clamp(1.45rem,2.6vw,2rem)}
p{font-size:1rem;line-height:1.78;margin:15px 0;}
.section-head{max-width:760px;margin-bottom:48px}
.section-head.center{text-align:center;margin-left:auto;margin-right:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:15px 28px;border-radius:999px;transition:transform var(--transition),background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition)}
.btn:hover{transform:translateY(-2px)}
.btn-outline{color:var(--ivory);border:1px solid rgba(251,240,213,.35);background:rgba(251,240,213,.08);backdrop-filter:blur(10px)}
.btn-primary{color:#fff;background:linear-gradient(135deg,var(--brick),#5c1d13);box-shadow:0 16px 36px rgba(117,39,26,.26)}
.btn-link{display:inline-flex;align-items:center;gap:10px;color:var(--brick);font-weight:600;letter-spacing:.03em}
.btn-link::after{content:"";width:34px;height:1px;background:currentColor;transition:width var(--transition)}
.btn-link:hover::after{width:52px}

.ss-header{position:fixed;top:0;left:0;width:100%;z-index:999;transition:background var(--transition),box-shadow var(--transition)}
.ss-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.12);transition:background var(--transition)}
.ss-header.is-scrolled{background: rgb(242 239 239 / 88%);box-shadow:0 8px 24px rgba(32,24,18,.04)}
.ss-header.is-scrolled::after{background:var(--line)}
.ss-header__inner{width:min(100vw - 24px,1820px);height:88px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}
.ss-header__left,.ss-header__right{display:flex;align-items:center;gap:22px}.ss-header__left{justify-self:start}.ss-header__right{justify-self:end}
.ss-menu-toggle{width:40px;height:40px;display:inline-flex;flex-direction:column;justify-content:center;gap:6px}
.ss-menu-toggle span{display:block;width:28px;height:1.5px;background:rgba(255,255,255,.95);transition:transform var(--transition),opacity var(--transition),background var(--transition)}
.ss-header.is-scrolled .ss-menu-toggle span{background:var(--wood)}
.ss-header.menu-open .ss-menu-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.ss-header.menu-open .ss-menu-toggle span:nth-child(2){opacity:0}
.ss-header.menu-open .ss-menu-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.ss-lang{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.92);font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;transition:color var(--transition)}
.ss-lang__arrow{font-size:1rem;line-height:1;transform:translateY(-1px)}
.ss-header.is-scrolled .ss-lang,.ss-header.is-scrolled .ss-utility{color:var(--wood)}
.ss-brand{justify-self:center;display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;position:relative;padding:0;transition:transform var(--transition)}
.ss-brand img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 6px 14px rgba(0,0,0,.18));transition:transform var(--transition),filter var(--transition),opacity var(--transition)}
.ss-header.is-scrolled .ss-brand img{filter:none;transform:scale(.92)}
.ss-utility{color:rgba(255,255,255,.82);font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;transition:color var(--transition)}
.ss-booknow{min-height:60px;padding:0 34px;border-radius:999px;display:inline-flex;align-items:center;gap:14px;background:rgba(255,255,255,.96);color:var(--brick);font-family:var(--display);font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;transition:transform var(--transition),box-shadow var(--transition)}
.ss-booknow:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.ss-booknow svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ss-menu-backdrop{position:fixed;inset:0;background:linear-gradient(90deg, rgba(16,14,12,.18) 0%, rgba(16,14,12,.24) 55%, rgba(16,14,12,.28) 100%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 320ms ease,visibility 320ms ease;z-index:132}
.ss-header.menu-open + .ss-menu-backdrop,.ss-menu-backdrop.active{opacity:1;visibility:visible;pointer-events:auto}
.ss-menu-panel{position:fixed;inset:0 auto 0 0;width:min(360px,82vw);height:100vh;background:linear-gradient(180deg,#f2ece3 0%,#eee7dc 100%);border-right:1px solid rgba(69,44,22,.08);box-shadow:12px 0 44px rgba(20,15,11,.12);opacity:0;visibility:hidden;transform:translateX(-104%);transition:opacity 320ms ease,transform 520ms cubic-bezier(.22,.61,.36,1),visibility 320ms ease;z-index:135;overflow-y:auto;overscroll-behavior:contain}
.ss-menu-panel::-webkit-scrollbar{width:8px}
.ss-menu-panel::-webkit-scrollbar-track{background:transparent}
.ss-menu-panel::-webkit-scrollbar-thumb{background:rgba(69,44,22,.18);border-radius:999px}
.ss-header.menu-open .ss-menu-panel{opacity:1;visibility:visible;transform:translateX(0)}
.ss-menu-panel__inner{padding:96px 32px 28px;min-height:100%;display:flex;flex-direction:column}
.ss-menu-top{margin-bottom:18px}
.ss-menu-label{color:rgba(117,39,26,.56);font-family:var(--display);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase}
.ss-menu-nav{display:flex;flex-direction:column;gap:0}
.ss-menu-nav a{color:var(--wood);font-family:var(--serif);font-size:clamp(1.55rem,3vw,2.15rem);line-height:1.04;padding:18px 18px 18px 0;border-bottom:1px solid rgba(69,44,22,.08);transition:color var(--transition),transform var(--transition),padding-left var(--transition),opacity 380ms ease;opacity:0;transform:translateX(-18px)}
.ss-header.menu-open .ss-menu-nav a{opacity:1;transform:translateX(0)}
.ss-menu-nav a:hover{padding-left:10px;color:var(--brick)}
.ss-menu-footer{margin-top:auto;padding-top:28px;border-top:1px solid rgba(69,44,22,.08);display:grid;gap:12px;color:rgba(69,44,22,.72);font-size:1rem;opacity:0;transform:translateY(18px);transition:opacity 360ms ease 360ms,transform 360ms ease 360ms}
.ss-header.menu-open .ss-menu-footer{opacity:1;transform:translateY(0)}

.ss-hero{position:relative;min-height:100vh;overflow:hidden;background:#111}
.ss-hero__media,.ss-hero__slide,.ss-hero__overlay{position:absolute;inset:0}
.ss-hero__slide{background-size:cover;background-position:center center;opacity:0;transition:opacity 1200ms ease;transform:scale(1.02)}
.ss-hero__slide.is-active{opacity:1}
.ss-hero__overlay{background:linear-gradient(180deg,rgba(16,14,12,.14),rgba(16,14,12,.5)),linear-gradient(90deg,rgba(16,14,12,.22),rgba(16,14,12,.06) 40%,rgba(16,14,12,.18));z-index:1}
.ss-hero__content{position:absolute;top:0;z-index:2;min-height:100vh;width:min(100vw - 24px,1820px);margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:160px 24px 140px;color:#fff}
.ss-hero__eyebrow{font-family:var(--display);font-size:.84rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.9);margin-bottom:20px}
.ss-hero__title{max-width:980px;font-family:var(--serif);font-weight:500;font-size:clamp(3.8rem,7vw,6.7rem);line-height:.98;letter-spacing:-.05em;color:#fff}
.ss-hero__subtitle{max-width:560px;margin-top:20px;font-size:1rem;line-height:1.8;color:rgba(255,255,255,.82)}
.ss-hero__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:30px}
.ss-btn{min-height:48px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;letter-spacing:.16em;text-transform:uppercase;font-family:var(--display);font-size:.75rem;transition:transform var(--transition),background var(--transition),border-color var(--transition)}
.ss-btn:hover{transform:translateY(-2px)}
.ss-btn--ghost{border:1px solid rgba(255,255,255,.34);color:#fff;background:transparent}
.ss-btn--ghost:hover{background:rgba(255,255,255,.08)}
.ss-btn--solid{border:1px solid rgba(255,255,255,.92);color:var(--brick);background:rgba(255,255,255,.96)}
.ss-scroll-indicator{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;display:inline-flex;flex-direction:column;align-items:center;gap:10px;color:rgba(255,255,255,.76);font-family:var(--display);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.ss-scroll-indicator i{width:1px;height:40px;display:block;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.9));animation:scrollCue 2.2s infinite}
@keyframes scrollCue{0%{transform:scaleY(.35);transform-origin:top;opacity:.35}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.35);transform-origin:bottom;opacity:.35}}

.ss-booking-wrap{position:relative;z-index:10;margin-top:-54px}
.ss-booking{width:min(100vw - 300px,1560px);margin:0 auto;background:rgba(255,255,255,.96);display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:stretch;border-radius:18px;overflow:hidden;box-shadow:0 18px 34px rgba(24,18,14,.12)}
.ss-booking__field{min-height:88px;padding:0 28px;display:flex;flex-direction:column;justify-content:center;gap:6px;border-right:1px solid rgba(69,44,22,.08);position:relative}
.ss-booking__field input,.ss-booking__field select{border:0;background:transparent;padding:0;font-size:1rem;color:var(--wood);outline:none;width:100%;cursor:pointer}
.ss-booking__field input::placeholder{color:rgba(69,44,22,.4)}
.ss-booking__label{font-family:var(--display);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#7b6e63}
.ss-booking__submit{min-width:220px;background:var(--brick);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:14px;font-family:var(--display);font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;transition:background var(--transition);border:0;cursor:pointer}
.ss-booking__submit:hover{background:#5f1f14}
.ss-booking__submit svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}

.intro-grid,.experience-grid,.dining-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:56px;align-items:center}
.intro-visual,.experience-visual{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.intro-visual figure,.experience-visual figure,.dining-visual,.offer-image,.room-card__image{margin:0;border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.intro-visual img,.experience-visual img,.dining-visual img,.offer-image img,.room-card__image img{width:100%;height:100%!important;object-fit:cover}
.intro-visual figure:first-child{grid-row:span 2;min-height:640px}
.intro-visual figure:last-child{min-height:300px}

.rooms-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px}
.room-card{grid-column:span 4}
.room-card:nth-child(7),.room-card:nth-child(8){grid-column:span 6}
.room-card{background:rgba(255,253,248,.8);border:1px solid rgba(69,44,22,.06);border-radius:30px;overflow:hidden;box-shadow:var(--shadow);transition:transform var(--transition),box-shadow var(--transition)}
.room-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(45,36,28,.12)}
.room-card__image{aspect-ratio:1.18;position:relative}.room-card__image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 56%,rgba(22,16,12,.16) 100%)}
.room-card__content{padding:26px 24px 30px}.room-card h3{font-size:1.72rem}
.room-meta{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 20px}
.meta-pill{padding:8px 12px;border-radius:999px;border:1px solid rgba(69,44,22,.08);background:rgba(251,240,213,.48);color:var(--muted);font-size:.8rem}

.offers-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.offer-card{background:rgba(255,253,248,.82);border:1px solid rgba(69,44,22,.06);border-radius:30px;overflow:hidden;box-shadow:var(--shadow);transition:transform var(--transition),box-shadow var(--transition)}
.offer-card:hover{transform:translateY(-8px);box-shadow:0 22px 48px rgba(45,36,28,.12)}
.offer-image{position:relative;aspect-ratio:1.18}
.offer-tag{position:absolute;top:18px;left:18px;z-index:1;padding:8px 12px;border-radius:999px;background:rgba(27,22,18,.44);border:1px solid rgba(251,240,213,.14);color:var(--ivory);font-family:var(--display);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;backdrop-filter:blur(8px)}
.offer-content{padding:24px 24px 28px}

.footer{position:relative;overflow:hidden;margin-top:96px;background:radial-gradient(circle at top right,rgba(251,240,213,.06),transparent 24%),linear-gradient(180deg,#343422 0%,#2b2317 54%,#241b12 100%);color:var(--ivory);padding:88px 0 30px}
.footer-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;padding-bottom:28px;align-items:start}
.footer-brand-logo{width:min(240px,100%);height:auto;filter:drop-shadow(0 6px 20px rgba(0,0,0,.12))}
.footer h4{color:var(--ivory);font-family:var(--display);font-size:.94rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px}
.footer-poem,.footer-text,.footer-list,.footer-list a{color:rgba(251,240,213,.72)}
.footer-list{display:grid;gap:10px}
.footer-list a{width:fit-content;transition:color var(--transition),transform var(--transition)}
.footer-list a:hover{color:var(--ivory);transform:translateX(3px)}
.social-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:2px}
.social-link{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ivory);background:rgba(251,240,213,.06);border:1px solid rgba(251,240,213,.1);transition:transform var(--transition),background var(--transition)}
.social-link:hover{transform:translateY(-3px);background:rgba(251,240,213,.14)}
.social-link svg{width:18px;height:18px;fill:currentColor}
.footer-mini-map{overflow:hidden;border-radius:16px;border:1px solid rgba(251,240,213,.1);background:rgba(251,240,213,.04);max-width:100%}
.footer-mini-map iframe{display:block;width:100%;height:118px;border:0;filter:grayscale(.15) saturate(.8)}
.nearby-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
.nearby-item{padding-top:10px;border-top:1px solid rgba(251,240,213,.12)}
.nearby-item strong{display:block;color:var(--ivory);font-size:.98rem;margin-bottom:5px}
.nearby-item span{color:rgba(251,240,213,.68)}
.footer-bottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:22px;border-top:1px solid var(--line-light);color:rgba(251,240,213,.58);font-size:.92rem}

.floating-rail{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:70;display:grid;gap:12px}
.float-btn{position:relative;width:52px;height:52px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;color:var(--wood);background:rgba(255,253,248,.94);border:1px solid rgba(69,44,22,.08);box-shadow:0 16px 30px rgba(45,36,28,.14);transition:transform var(--transition),color var(--transition),background var(--transition),box-shadow var(--transition);backdrop-filter:blur(10px)}
.float-btn:hover{transform:translateY(-3px);background:linear-gradient(135deg,var(--brick),var(--wood));color:var(--ivory);box-shadow:0 20px 40px rgba(45,36,28,.2)}
.float-btn svg{width:22px;height:22px;fill:currentColor}.float-btn.phone svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.float-tip{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(8px);opacity:0;pointer-events:none;background:rgba(45,36,28,.92);color:var(--ivory);border-radius:999px;padding:8px 12px;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;transition:opacity var(--transition),transform var(--transition)}
.float-btn:hover .float-tip{opacity:1;transform:translateY(-50%) translateX(0)}
.back-top{position:fixed;right:18px;bottom:18px;width:54px;height:54px;border-radius:50%;z-index:72;display:inline-flex;align-items:center;justify-content:center;color:var(--ivory);background:rgba(61,61,40,.94);border:1px solid rgba(251,240,213,.12);box-shadow:0 16px 34px rgba(45,36,28,.22);opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity var(--transition),transform var(--transition),background var(--transition)}
.back-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-top:hover{background:var(--brick)}
.back-top svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.reveal{opacity:0;transform:translateY(26px);transition:opacity 860ms ease,transform 860ms ease}.reveal.visible{opacity:1;transform:translateY(0)}

.gallery-section{padding:110px 0 0px;background:linear-gradient(180deg,#f8f3ea 0%,#fbf7f0 100%);position:relative;overflow:hidden}
.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px}
.gallery-note{font-family:var(--display);font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brick);opacity:.82;white-space:nowrap}
.gallery-viewport{overflow:auto hidden;scroll-behavior:smooth;scroll-snap-type:x mandatory;padding-bottom:10px;cursor:grab;-ms-overflow-style:none;scrollbar-width:none}
.gallery-track{display:flex;gap:20px;width:max-content;padding-right:24px}
.gallery-card{position:relative;flex:0 0 clamp(280px,30vw,430px);aspect-ratio:0.82;border-radius:26px;overflow:hidden;scroll-snap-align:start;box-shadow:0 22px 46px rgba(33,24,18,.14);background:#ddd}
.gallery-card img{width:100%;height:100%!important;object-fit:cover;transition:transform 700ms cubic-bezier(.22,.61,.36,1),filter 500ms ease}
.gallery-card:hover img{transform:scale(1.06);filter:saturate(1.03)}
.gallery-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,9,7,0) 48%,rgba(12,9,7,.72) 100%)}
.gallery-caption{position:absolute;left:22px;right:22px;bottom:18px;z-index:1;color:var(--ivory)}
.gallery-caption strong{display:block;font-family:var(--serif);font-size:1.65rem;line-height:1.02;margin-bottom:8px}
.gallery-caption span{align-items:center;gap:8px;font-size:.9rem;color:rgba(251,240,213,.78)}

@media (max-width:1180px){
  .intro-grid,.experience-grid,.dining-grid{grid-template-columns:1fr}
  .rooms-grid,.signature-grid,.footer-grid,.offers-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:980px){
  .ss-menu-panel{width:min(440px,94vw)}
  .ss-booking{width:min(100vw - 28px,1560px)}
  .ss-utility{display:none}
  .ss-booking{grid-template-columns:1fr;border-radius:14px}
  .ss-booking__field{min-height:74px;border-right:0;border-bottom:1px solid rgba(69,44,22,.08)}
  .ss-booking__submit{min-height:74px;min-width:0}
  .ss-hero__title{font-size:clamp(3rem,10vw,4.8rem)}
  .footer-grid,.signature-grid,.offers-grid{grid-template-columns:1fr}
  .room-card,.room-card:nth-child(4),.room-card:nth-child(5){grid-column:span 6}
}
@media (max-width:720px){
  :root{--container:min(calc(100vw - 24px),100%)}
  .section{padding:90px 0}
  .ss-header__left{gap:12px}.ss-brand{width:52px;height:52px}
  .ss-menu-panel__inner{padding:112px 28px 36px}
  .room-card,.room-card:nth-child(4),.room-card:nth-child(5){grid-column:1/-1}
  .gallery-card{flex-basis:min(82vw,320px)}
}

/* ─── Contact Form 7 Styling ─── */
.wpcf7{max-width:760px}
.cf7-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cf7-field{display:flex;flex-direction:column;gap:6px}
.cf7-field.cf7-full{grid-column:1/-1}
.cf7-field label{font-family:var(--display);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea{
  width:100%;
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,253,248,.82);
  color:var(--text);
  font-size:1rem;
  font-family:var(--body);
  transition:border-color var(--transition),box-shadow var(--transition);
  outline:none;
}
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus{
  border-color:var(--brick);
  box-shadow:0 0 0 3px rgba(117,39,26,.08);
}
.wpcf7 textarea{min-height:160px;resize:vertical}
.wpcf7 select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b5a49' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.wpcf7 input[type="submit"],
.wpcf7 .btn-primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:52px;
  padding:14px 32px;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg,var(--brick),#5c1d13);
  color:#fff;
  font-family:var(--display);
  font-size:.86rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 16px 36px rgba(117,39,26,.26);
  transition:transform var(--transition),box-shadow var(--transition);
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 .btn-primary:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(117,39,26,.32)}
.wpcf7-not-valid-tip{color:var(--brick);font-size:.82rem;margin-top:4px}
.wpcf7-response-output{margin-top:20px;padding:16px 22px;border-radius:12px;font-size:.95rem}
.wpcf7-mail-sent-ok{background:rgba(76,175,80,.08);border:1px solid rgba(76,175,80,.2);color:#2e7d32}
.wpcf7-validation-errors{background:rgba(244,67,54,.06);border:1px solid rgba(244,67,54,.18);color:#c62828}

@media (max-width:720px){
  .cf7-grid{grid-template-columns:1fr}
  .cf7-field.cf7-full{grid-column:1}
}

/* ─── Offer cards shortcode fallback ─── */
.rooms-grid .offer-card{grid-column:span 4}

/* ─── Scroll Reveal Animation ─── */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

/* ─── About Us Page ─── */
.editorial-intro{margin-top:-70px;position:relative;z-index:5}
.editorial-card{background:rgba(252,248,241,.88);backdrop-filter:blur(14px);box-shadow:var(--shadow);border:1px solid rgba(69,44,22,.08);border-radius:34px;padding:38px;display:grid;grid-template-columns:1.05fr .95fr;gap:34px}
.editorial-card__quote{font-family:var(--serif);font-size:clamp(2rem,3.2vw,3rem);line-height:1.04;color:var(--wood);max-width:14ch;margin-bottom:18px}
.editorial-card__meta{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:28px;border-top:1px solid var(--line)}
.meta-item small{display:block;font-family:var(--display);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brick);margin-bottom:8px}
.meta-item strong{font-family:var(--serif);font-size:1.35rem;color:var(--wood);font-weight:500}
.editorial-card__image{min-height:100%;border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}
.editorial-card__image img{width:100%;height:100% !important;object-fit:cover}

.story-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:72px;align-items:start}
.story-grid__left{position:sticky;top:120px}
.story-grid__left p{max-width:420px}
.story-stack{display:grid;gap:26px}
.story-panel{display:grid;grid-template-columns:1fr 1.05fr;gap:24px;align-items:center;padding:24px;border-radius:28px;background:rgba(255,255,255,.62);box-shadow:var(--shadow);border:1px solid rgba(69,44,22,.08)}
.story-panel:nth-child(even){grid-template-columns:1.05fr 1fr}
.story-panel img{width:100%;height:320px;object-fit:cover;border-radius:22px}
.story-panel h3{margin-bottom:10px;color:var(--wood)}

.philosophy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.philosophy-card{position:relative;min-height:420px;border-radius:30px;overflow:hidden;background:#111;box-shadow:var(--shadow)}
.philosophy-card img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform var(--transition)}
.philosophy-card:hover img{transform:scale(1.07)}
.philosophy-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,14,12,.08) 0%,rgba(16,14,12,.68) 100%)}
.philosophy-card__content{position:absolute;left:0;right:0;bottom:0;padding:30px;color:var(--ivory);z-index:1}
.philosophy-card__content .eyebrow{color:rgba(251,240,213,.9);margin-bottom:12px}
.philosophy-card__content p{color:rgba(251,240,213,.8);margin-top:14px}

.image-band{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:stretch}
.image-band__large,.image-band__stack{border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.image-band__large img{width:100%;height:100%;min-height:640px;object-fit:cover}
.image-band__stack{display:grid;grid-template-rows:1fr auto;background:rgba(255,255,255,.62);border:1px solid rgba(69,44,22,.08)}
.image-band__stack img{width:100%;height:320px;object-fit:cover}
.image-band__copy{padding:34px}
.image-band__copy h2{margin-bottom:18px}

.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.timeline-card{padding:28px;border-radius:26px;background:rgba(255,255,255,.7);border:1px solid rgba(69,44,22,.08);box-shadow:var(--shadow)}
.timeline-card small{display:block;font-family:var(--display);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brick);margin-bottom:16px}
.timeline-card h3{color:var(--wood);margin-bottom:10px}

.quote-break{padding:90px 0;background:linear-gradient(135deg,rgba(61,61,40,.96),rgba(69,44,22,.98));color:var(--ivory)}
.quote-break .container{display:grid;grid-template-columns:1.2fr .8fr;gap:34px;align-items:center}
.quote-break blockquote{font-family:var(--serif);font-size:clamp(2rem,3.4vw,3.5rem);line-height:1.04;margin:0;color:#fff;font-weight:500}

/* ─── Rooms Page ─── */
.page-hero{position:relative;min-height:78vh;display:flex;align-items:flex-end;overflow:hidden;background:#111}
.page-hero__media,.page-hero__overlay{position:absolute;inset:0}
.page-hero__media{background-size:cover;background-position:center;transform:scale(1.03)}
.page-hero__overlay{background:linear-gradient(180deg,rgba(15,13,11,.18),rgba(15,13,11,.58)),linear-gradient(90deg,rgba(15,13,11,.32),rgba(15,13,11,.05) 46%,rgba(15,13,11,.2))}
.page-hero__content{position:relative;z-index:1;width:min(100vw - 24px,1820px);margin:0 auto;padding:180px 24px 90px;color:#fff}
.breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:18px;color:rgba(251,240,213,.75);font-size:.88rem;letter-spacing:.08em;text-transform:uppercase}
.breadcrumb span{opacity:.55}
.page-hero__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:36px;max-width:960px}
.page-stat{padding:18px 18px 16px;border-radius:24px;background:rgba(251,240,213,.08);border:1px solid rgba(251,240,213,.14);backdrop-filter:blur(8px)}
.page-stat strong{display:block;color:var(--ivory);font-family:var(--serif);font-size:1.45rem;margin-bottom:6px}

.room-nav{position:sticky;top:88px;z-index:40;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.room-nav__inner{width:var(--container);margin:0 auto;display:flex;gap:12px;overflow:auto;padding:14px 0}
.room-tab{flex:0 0 auto;padding:12px 18px;border-radius:999px;border:1px solid rgba(69,44,22,.08);background:rgba(251,240,213,.34);font-size:.92rem;color:var(--wood);transition:background var(--transition),transform var(--transition),color var(--transition)}
.room-tab:hover,.room-tab.active{background:var(--brick);color:#fff;transform:translateY(-1px)}

.overview-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:56px;align-items:start}
.overview-card{background:rgba(255,253,248,.82);border:1px solid rgba(69,44,22,.06);border-radius:30px;padding:30px;box-shadow:var(--shadow)}
.overview-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin-top:24px}
.overview-point strong{display:block;color:var(--wood);margin-bottom:6px}

.overview-gallery{display:grid;grid-template-columns:1.12fr .88fr;gap:22px}
.overview-gallery figure{margin:0;border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.overview-gallery figure:first-child{min-height:560px}
.overview-gallery-stack{display:grid;gap:22px}
.overview-gallery-stack figure{min-height:269px}
.overview-gallery img{width:100%;height:100% !important;object-fit:cover}

.room-detail{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:54px;align-items:center;margin-bottom:100px}
.room-detail:nth-child(even){grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.room-detail:nth-child(even) .room-detail__media{order:2}
.room-detail:nth-child(even) .room-detail__body{order:1}
.room-detail:last-child{margin-bottom:0}
.room-detail__media{position:relative}
.room-detail__media figure{margin:0;border-radius:32px;overflow:hidden;box-shadow:var(--shadow-strong)}
.room-detail__media img{width:100%;aspect-ratio:1/0.97;object-fit:cover}
.room-detail__badge{position:absolute;left:24px;top:24px;padding:10px 14px;border-radius:999px;background:rgba(24,18,14,.58);border:1px solid rgba(251,240,213,.14);color:var(--ivory);font-family:var(--display);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;backdrop-filter:blur(10px)}
.room-detail__body h2{font-size:clamp(2.3rem,4vw,4.1rem);margin-bottom: 1.2rem;}
.room-kicker{font-family:var(--display);font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brick);margin-bottom:14px}
.room-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:24px 0 22px}
.room-spec{padding:14px 16px;border-radius:20px;background:rgba(251,240,213,.48);border:1px solid rgba(69,44,22,.06)}
.room-spec strong{display:block;color:var(--wood);margin-bottom:4px;font-size:.98rem}
.room-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px}

.compare-panel{background:linear-gradient(135deg,rgba(61,61,40,.98),rgba(69,44,22,.98));color:var(--ivory);border-radius:38px;padding:54px 40px;box-shadow:var(--shadow-strong);overflow:auto}
.compare-panel table{width:100%;border-collapse:collapse;min-width:760px}
.compare-panel th,.compare-panel td{padding:18px 14px;border-bottom:1px solid rgba(251,240,213,.12);text-align:left}
.compare-panel th{font-family:var(--display);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(251,240,213,.78)}

/* ─── Discover Page ─── */
.hero-post{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden;background:#111}
.hero-post__media,.hero-post__overlay{position:absolute;inset:0}
.hero-post__media{background-size:cover;background-position:center;transform:scale(1.03)}
.hero-post__overlay{background:linear-gradient(180deg,rgba(16,14,12,.14),rgba(16,14,12,.6)),linear-gradient(90deg,rgba(16,14,12,.38),rgba(16,14,12,.12) 48%,rgba(16,14,12,.24))}
.hero-post__content{position:relative;z-index:2;width:var(--container);margin:0 auto;padding:180px 0 92px;color:#fff}
.hero-post__meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:18px;color:rgba(255,255,255,.82);font-size:.92rem}
.meta-chip{padding:8px 14px;border-radius:999px;background:rgba(251,240,213,.1);border:1px solid rgba(251,240,213,.18);backdrop-filter:blur(10px)}

.discover-nav{position:relative;z-index:3;margin-top:-34px}
.discover-nav__bar{width:var(--container);margin:0 auto;padding:16px 18px;background:rgba(255,255,255,.95);backdrop-filter:blur(16px);border-radius:22px;box-shadow:var(--shadow);display:flex;gap:12px;overflow:auto}
.discover-nav__bar a{flex:0 0 auto;padding:10px 16px;border-radius:999px;background:rgba(251,240,213,.5);border:1px solid rgba(69,44,22,.08);color:var(--wood);font-size:.92rem}

.featured-post{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center}
.featured-post figure{margin:0;border-radius:32px;overflow:hidden;box-shadow:var(--shadow);min-height:620px}
.featured-post figure img{width:100%;height:100%;object-fit:cover}
.featured-card{padding:36px;border-radius:32px;background:rgba(255,253,248,.84);border:1px solid rgba(69,44,22,.06);box-shadow:var(--shadow)}

.blog-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:34px;align-items:start}
.posts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.post-card{display:flex;flex-direction:column;background:rgba(255,253,248,.8);border:1px solid rgba(69,44,22,.06);border-radius:28px;overflow:hidden;box-shadow:var(--shadow);transition:transform var(--transition),box-shadow var(--transition)}
.post-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(45,36,28,.12)}
.post-card__image{position:relative;aspect-ratio:1.22;overflow:hidden}
.post-card__image img{width:100%;height:100% !important;object-fit:cover;transition:transform .8s ease}
.post-card__tag{position:absolute;left:18px;top:18px;padding:8px 12px;border-radius:999px;background:rgba(25,20,16,.58);border:1px solid rgba(251,240,213,.16);backdrop-filter:blur(8px);color:var(--ivory);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.post-card__body{padding:24px 24px 28px}
.post-card__meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.88rem;margin-bottom:10px}

.sidebar{display:grid;gap:24px;position:sticky;top:108px}
.sidebar-card{padding:28px;border-radius:28px;background:rgba(255,253,248,.82);border:1px solid rgba(69,44,22,.06);box-shadow:var(--shadow)}
.sidebar-card h3{font-size:1.72rem;margin-bottom:14px}
.sidebar-list{display:grid;gap:14px;margin-top:10px}
.sidebar-list a{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid rgba(69,44,22,.08);color:var(--text);font-size:.97rem}
.sidebar-list span:last-child{color:var(--muted)}
.mini-newsletter{display:grid;gap:12px;margin-top:18px}
.mini-newsletter input{width:100%;padding:14px 16px;border-radius:18px;border:1px solid rgba(69,44,22,.12);background:rgba(255,255,255,.7);outline:0}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}

.quote-card{padding:56px 42px;border-radius:38px;background:linear-gradient(135deg,rgba(61,61,40,.98),rgba(69,44,22,.98));box-shadow:var(--shadow-strong);text-align:center;color:var(--ivory)}
.quote-card p{max-width:880px;margin:0 auto;color:rgba(251,240,213,.84);font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.35;font-weight:500}

.topics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.topic-card{padding:28px;border-radius:28px;background:rgba(255,253,248,.82);border:1px solid rgba(69,44,22,.06);box-shadow:var(--shadow)}

/* ─── Contact Page ─── */
.contact-summary{margin-top:-68px;position:relative;z-index:4}
.contact-summary__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.summary-card{background:rgba(255,252,247,.92);backdrop-filter:blur(18px);border:1px solid rgba(69,44,22,.08);border-radius:28px;padding:30px 28px;box-shadow:var(--shadow)}
.summary-card h3{margin-bottom:16px;color:var(--wood)}
.summary-meta{display:grid;gap:8px;margin-top:18px}
.summary-meta strong{color:var(--text);font-weight:600}

.contact-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:start}
.contact-form-panel,.contact-map-panel{background:rgba(255,255,255,.62);border:1px solid rgba(69,44,22,.1);border-radius:34px;padding:34px 34px 30px;box-shadow:var(--shadow)}
.contact-form{display:grid;gap:18px;margin-top:24px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:10px}
.field label{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--wood);font-family:var(--display)}
.field input,.field textarea,.field select{width:100%;border:1px solid rgba(69,44,22,.12);background:rgba(255,255,255,.85);border-radius:18px;padding:16px 18px;color:var(--text);outline:none;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:rgba(117,39,26,.45);box-shadow:0 0 0 4px rgba(117,39,26,.08)}
.field textarea{min-height:180px;resize:vertical}
.contact-note{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}
.note-pill{padding:16px 18px;border-radius:20px;background:rgba(117,39,26,.05);border:1px solid rgba(117,39,26,.09)}
.note-pill strong{display:block;color:var(--wood);margin-bottom:8px}

.map-frame{overflow:hidden;border-radius:24px;border:1px solid rgba(69,44,22,.12);background:#efe8da;box-shadow:0 12px 26px rgba(25,18,13,.08)}
.map-frame iframe{width:100%;height:420px;border:0;display:block}

.journey-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.journey-card{background:linear-gradient(180deg,rgba(255,255,255,.8),rgba(250,243,231,.9));border-radius:30px;border:1px solid rgba(69,44,22,.1);overflow:hidden;box-shadow:var(--shadow)}
.journey-card img{width:100%;aspect-ratio:5/3;object-fit:cover}
.journey-card__body{padding:28px 28px 30px}
.journey-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px}
.journey-point{padding-top:16px;border-top:1px solid rgba(69,44,22,.12)}
.journey-point strong{display:block;color:var(--wood);margin-bottom:4px}

.assist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.assist-card{padding:28px;border-radius:28px;background:rgba(61,61,40,.96);color:var(--ivory);box-shadow:var(--shadow-strong)}

.newsletter {
    display: flex;
    gap: 10px;
    padding: 8px;
    border-radius: 999px;
    border: 1px solid rgba(251, 240, 213, .12);
    background: rgba(251, 240, 213, .05);
    max-width: 420px;
}
.newsletter input {
    flex: 1;
    min-width: 0;
    color: var(--ivory);
    background: transparent;
    border: 0;
    outline: 0;
    padding: 10px 14px;
}
.newsletter button {
    flex: 0 0 auto;
    padding: 12px 18px;
    border-radius: 999px;
    background: var(--ivory);
    color: var(--wood);
    font-family: var(--display);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .74rem;
}
.footer-mini-copy {
    color: rgba(251, 240, 213, .66);
    max-width: 420px;
}
.intro-note, .experience-note {
    padding: 24px;
    border-radius: 26px;
    background: rgba(255, 253, 248, .9);
    border: 1px solid rgba(69, 44, 22, .06);
    box-shadow: var(--shadow);
}
.experience-note {
    grid-column: span 2;
}
.quote-break p {
    color: rgba(251, 240, 213, .76);
}
.contact-side-item {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(69, 44, 22, .1);
}
.contact-side-list {
  margin-top: 15px;
}
.ss-hero__media {
    background-image: url(/wp-content/uploads/2026/03/z7621435502453_c27f2fe903801fa2291241a0821f6c5e.jpg);
    background-size: cover;
    background-position: center center;
    transform: scale(1.04);
}
.hero-post__media {
    background: url(/wp-content/uploads/2026/03/z7621435513983_6172376f000defe6dcbcef386c909e24.jpg) center / cover no-repeat;
    transform: scale(1.03);
}
.page-hero__media {
    background: url(/wp-content/uploads/2026/03/premium.jpg) center / cover no-repeat;
    transform: scale(1.03);
}
.page-hero__title {
    max-width: 820px;
}
.page-hero__text {
    max-width: 620px;
    margin-top: 18px;
    color: rgba(255, 255, 255, .8);
}
.fix-height {
    min-height: 125vh;
}
/* ─── Responsive Inner Pages ─── */
@media (max-width:1100px){
  .editorial-card,.story-grid,.image-band,.quote-break .container, .featured-post,.blog-layout,.contact-layout,.journey-grid{grid-template-columns:1fr}
  .philosophy-grid,.timeline,.posts-grid,.contact-summary__grid,.assist-grid,.topics-grid{grid-template-columns:1fr 1fr}
  .story-grid__left,.sidebar{position:static}
  .story-panel,.story-panel:nth-child(even){grid-template-columns:1fr}
}
@media (max-width:820px) {
  .editorial-intro {
    margin-top: -44px
  }

  .editorial-card {
    padding: 24px;
    border-radius: 26px
  }

  .editorial-card__meta {
    grid-template-columns: 1fr
  }

  .philosophy-grid,
  .timeline,
  .posts-grid,
  .contact-summary__grid,
  .assist-grid,
  .topics-grid,
  .field-row,
  .page-hero__stats,
  .overview-points,
  .journey-points,
  .contact-note {
    grid-template-columns: 1fr
  }

  .gallery-head {
    display: block;
    margin-bottom: 28px;
  }

  .intro-visual,
  .experience-visual {
    grid-template-columns: 1fr;
  }

  .overview-gallery {
    grid-template-columns: 1fr;
  }

  .overview-grid,
  .room-detail {
    grid-template-columns: 1fr;
  }

  .overview-gallery figure:first-child,
  .overview-gallery-stack figure {
    min-height: 280px;
  }

  .room-detail:nth-child(even) {
    grid-template-columns: 1fr;
  }

  .room-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .room-detail:nth-child(even) .room-detail__media {
    order: 1;
  }

  .ss-booknow {
    padding: 0 16px;
    text-align: center;
    min-height: 48px;
    font-size: .78rem;
  }

  .ss-hero__actions > a {
    width: 100%;
  }
	
  .ss-booknow svg {
    display: none;
  }
	.hero-gallery__actions {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: min(100%, 320px);
        gap: 10px;
    }
	.strip-grid {
        grid-template-columns: 1fr !important;
    }
	.footer-grid, .signature-grid, .offers-grid {
        grid-template-columns: 1fr !important;
    }
	.offer-card, .faq-grid, .hero-summary__grid, .offer-card__content .detail-grid {
		grid-template-columns: 1fr !important;
	}
	.footer-bottom {
        flex-direction: column;
        align-items: flex-start;
    }
	.offer-card__content {
        padding: 5px 5px;
    }
	article.editorial-main.reveal {
    	opacity: 1 !important;
	}
	.editorial-main {
        padding: 24px !important;
        border-radius: 28px !important;
    }
	:root {
        --container: min(calc(100vw - 24px), 100%);
        --article: min(calc(100vw - 24px), 100%);
    }
}
.footer-brand-top.is-logo {
	display: flex;
    justify-content: center;
    align-items: center;
    min-height: auto;
    margin-bottom: 18px;
}
.ss-hero__content.start-display {
    justify-content: unset;
    align-items: unset;
    text-align: unset;
}
.ss-hero__actions.unset-justyfy-content {
    justify-content: unset;
}
.assist-card .btn-link {
    color: var(--ivory);
    margin-top: 20px;
}
.featured-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 24px 0 28px;
}
.intro-note strong, .experience-note strong {
    color: var(--brick);
    font-family: var(--serif);
    font-size: 1.5rem;
    margin-bottom: 8px;
}
.stat-item strong {
    display: block;
    font-family: var(--serif);
    font-size: 1.8rem;
    color: var(--brick);
    margin-bottom: 4px;
}
.hero-post h1 {
    max-width: 900px;
    color: #fff;
}
.hero-post p {
    max-width: 640px;
    color: rgba(255, 255, 255, .82);
    margin-top: 18px;
}
.hero-gallery {
    position: relative;
    min-height: 88vh;
    overflow: hidden;
    background: #111;
}
.hero-gallery__media {
    background: url(/wp-content/uploads/2026/03/z7621435513983_6172376f000defe6dcbcef386c909e24.jpg) center / cover no-repeat;
    transform: scale(1.03);
}
.hero-gallery__media, .hero-gallery__overlay {
    position: absolute;
    inset: 0;
}
.filter-chips {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
	margin: 20px 0px;
}
.filter-chip:hover, .filter-chip.is-active {
    transform: translateY(-2px);
    background: var(--brick);
    color: #fff;
    box-shadow: 0 14px 28px rgba(117, 39, 26, .18);
}
.filter-chip {
    padding: 11px 18px;
    border-radius: 999px;
    border: 1px solid rgba(69, 44, 22, .08);
    background: rgba(251, 240, 213, .42);
    color: var(--wood);
    font-size: .92rem;
    transition: transform var(--transition), background var(--transition), color var(--transition), box-shadow var(--transition);
}
.gallery-grid {
    columns: 4 280px;
    column-gap: 22px;
}
.gallery-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 24px 52px rgba(45, 36, 28, .16);
}
.gallery-item {
    break-inside: avoid;
    margin-bottom: 22px;
    position: relative;
    border-radius: 28px;
    overflow: hidden;
    background: #ddd;
    box-shadow: var(--shadow);
    cursor: pointer;
    transform: translateZ(0);
    transition: transform var(--transition), box-shadow var(--transition);
}
.gallery-caption {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-end;
}
.gallery-caption__text {
    display: grid;
    gap: 6px;
}
.gallery-zoom {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .92);
    color: var(--brick);
    box-shadow: 0 10px 22px rgba(0, 0, 0, .14);
    flex: 0 0 auto;
}
.gallery-zoom svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.gallery-caption__tag {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(21, 16, 13, .46);
    border: 1px solid rgba(251, 240, 213, .18);
    backdrop-filter: blur(10px);
    color: var(--ivory);
    font-family: var(--display);
    font-size: .68rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    width: fit-content;
}
.gallery-caption h3 {
    font-size: 1.3rem;
    color: #fff;
    text-shadow: 0 8px 20px rgba(0, 0, 0, .24);
}
.gallery-caption span {
    color: rgba(251, 240, 213, .82);
    font-size: .92rem;
}
.hero-gallery__content {
    position: relative;
    z-index: 2;
    min-height: 88vh;
    width: min(100vw - 24px, 1820px);
    margin: 0 auto;
    display: flex;
    align-items: flex-end;
    padding: 170px 24px 110px;
    color: #fff;
}
.hero-gallery__eyebrow {
    font-family: var(--display);
    font-size: .84rem;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: rgba(251, 240, 213, .95);
    margin-bottom: 18px;
}
.hero-gallery__subtitle {
    max-width: 620px;
    margin-top: 20px;
    font-size: 1.02rem;
    line-height: 1.9;
    color: rgba(251, 240, 213, .86);
}
.gallery-band .container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 34px;
    align-items: center;
}
.gallery-band blockquote {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(1.9rem, 3.2vw, 3.3rem);
    line-height: 1.06;
    color: #fff;
}
.gallery-band p {
    color: rgba(251, 240, 213, .78);
}
.gallery-band {
    padding: 92px 0;
    background: linear-gradient(135deg, rgba(61, 61, 40, .98), rgba(69, 44, 22, .98));
    color: var(--ivory);
}
.strip-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}
.strip-grid .strip-card {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    min-height: 200px;
    box-shadow: var(--shadow);
}
.strip-card img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
}
.page-lead {
    max-width: 760px;
    margin-top: 22px;
    color: rgba(251, 240, 213, .84);
    font-size: 1.04rem;
    line-height: 1.92;
}
.hero-summary {
    position: relative;
    z-index: 5;
    margin-top: -66px;
}
.hero-summary__grid {
    grid-template-columns: 1.2fr 1fr 1fr;
	width: var(--article);
    margin: 0 auto;
    display: grid;
    gap: 22px;
    align-items: stretch;
}
.hero-summary__intro {
    border-radius: 32px;
    padding: 28px 28px 26px;
}
.hero-summary__intro, .mini-deal {
    background: rgba(255, 252, 247, .88);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(69, 44, 22, .08);
    box-shadow: var(--shadow);
}
.mini-deal {
    border-radius: 28px;
    padding: 24px 22px 22px;
}
.editorial-grid {
    width: var(--article);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 28px;
    align-items: start;
}
.editorial-grid .reveal.visible {
    opacity: 1;
    transform: none;
}
.editorial-shell {
    padding: 90px 0 60px;
}
.editorial-main {
    border-radius: 38px;
    padding: 42px;
}
.editorial-side {
    border-radius: 30px;
    padding: 26px;
    position: sticky;
    top: 108px;
}
.editorial-main, .editorial-side {
    background: rgba(255, 252, 247, .84);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(69, 44, 22, .08);
    box-shadow: var(--shadow);
}
.side-card {
    padding: 22px;
    border-radius: 24px;
    background: rgba(251, 240, 213, .28);
    border: 1px solid rgba(69, 44, 22, .08);
}
.side-label {
    display: block;
    font-family: var(--display);
    font-size: .72rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--brick);
    margin-bottom: 14px;
}
.side-card h3 {
    font-size: 1.68rem;
    color: var(--wood);
    margin-bottom: 10px;
}
.side-list {
    display: grid;
    gap: 14px;
    margin-top: 14px;
}
.side-item {
    padding-top: 14px;
    border-top: 1px solid rgba(69, 44, 22, .08);
}
.side-item strong {
    display: block;
    color: var(--wood);
    margin-bottom: 6px;
    font-size: 1rem;
}
.side-item span {
    color: var(--muted);
    line-height: 1.75;
}
.intro-block {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 28px;
}
.intro-block p {
    font-size: 1.07rem;
    line-height: 2;
    color: #584938;
}
.offer-list {
    display: grid;
    gap: 26px;
}
.offer-card {
    display: grid;
    background: rgba(251, 240, 213, .24);
    border: 1px solid rgba(69, 44, 22, .08);
    border-radius: 34px;
    overflow: hidden;
}
div#offers-list > .offer-card {
    grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
}
.offer-card__media {
    position: relative;
    min-height: 390px;
}
.offer-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.offer-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(16, 14, 12, .06), rgba(16, 14, 12, .28));
}
.offer-card__content {
	grid-column: span 2;
    padding: 34px 34px 32px;
}
.offer-kicker {
    font-family: var(--display);
    font-size: .94rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: white;
    font-weight: 700;
    margin-bottom: 10px;
}
.offer-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.offer-pill {
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(251, 240, 213, .58);
    border: 1px solid rgba(69, 44, 22, .08);
    font-size: .78rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--brick);
}
.offer-card p + p {
    margin-top: 12px;
}
.offer-card h2 {
    margin-bottom: 12px;
    color: var(--wood);
}
.offer-card__content .detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0 18px;
}
.faq-strip {
    padding: 20px 0 90px;
}
.faq-panel {
    width: var(--article);
    margin: 0 auto;
    border-radius: 38px;
    padding: 42px;
    background: linear-gradient(135deg, rgba(61, 61, 40, .98), rgba(69, 44, 22, .98));
    box-shadow: var(--shadow-strong);
    color: var(--ivory);
}
.faq-panel .eyebrow, .faq-panel h2, .faq-panel p {
    color: var(--ivory);
}
.faq-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 28px;
}
.faq-box {
    padding: 20px;
    border-radius: 24px;
    background: rgba(251, 240, 213, .06);
    border: 1px solid rgba(251, 240, 213, .1);
}
.faq-box strong {
    display: block;
    font-size: 1rem;
    color: var(--ivory);
    margin-bottom: 8px;
}
.faq-box span {
    color: rgba(251, 240, 213, .74);
    line-height: 1.8;
}
.detail-box {
    padding: 10px;
    margin-bottom: 10px;
    border-radius: 10px;
    background: rgba(255, 253, 248, .82);
    border: 1px solid rgba(69, 44, 22, .08);
}
.offer-actions {
    margin-top: 15px;
}
html :where(.wp-block) {
    max-width: none;
}
@media (max-width: 1280px) {
  .hero-summary__intro {
    grid-column: 1 / -1;
  }
  .hero-summary__grid {
    grid-template-columns: 1fr 1fr;
  }
	.editorial-grid {
        grid-template-columns: 1fr;
    }
	.editorial-side {
        position: static;
    }
	.faq-grid, .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.article-wrap {
  display: grid;
  grid-template-columns: 220px 1fr 320px;
  gap: 32px;
}
.dropcap:first-letter{float:left;font-family:var(--serif);font-size:4.8rem;line-height:.78;padding-right:12px;padding-top:10px;color:var(--brick)}
.rail-label, .sidebar-label {
    display: block;
    font-family: var(--display);
    font-size: .72rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--brick);
    margin-bottom: 16px;
}
.mini-list {
    display: grid;
    gap: 14px;
    margin-top: 14px;
}
.mini-link {
    display: grid;
    gap: 6px;
    padding-top: 14px;
    border-top: 1px solid rgba(69, 44, 22, .08);
}
.mini-link strong {
    color: var(--wood);
    font-size: 1rem;
    line-height: 1.45;
}
.mini-link span {
    font-size: .9rem;
    color: var(--muted);
    line-height: 1.7;
}
ul.ez-toc-list > li > a {
    padding: 10px 0;
    border-bottom: 1px solid rgba(69, 44, 22, .08);
    font-size: .96rem !important;
    color: var(--wood) !important;
    line-height: 1.55;
    transition: color var(--transition), transform var(--transition);
}
div#ez-toc-container {
    border-radius: 25px;
    background: rgba(255, 253, 248, .82);
}
p.ez-toc-title {
    cursor: inherit !important;
    display: table-cell !important;
    font-family: var(--display);
    font-size: .72rem !important;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--brick) !important;
    margin-bottom: 16px !important;
    vertical-align: bottom !important;
}
.container-custom {
    width: var(--container) !important;
    margin: 0 auto !important;
}
.container-custom .custom-img figure {
    aspect-ratio:  3/4;
}
.custom-img img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
}
div#custom-lib figure {
    margin-bottom: 15px;
}
.amenities {
    display: flex;
    flex-wrap: wrap;   /* 👈 quan trọng: cho phép xuống dòng */
    gap: 10px;         /* khoảng cách giữa các icon */
}
.amenity-item {
    display: flex;
    align-items: center;
    justify-content: center;

    /* optional: fix size icon */
    width: 30px;
    height: 30px;
}
.amenities-custom {
    top: 60px;
    left: 25px;
}
.ss-btn-border {
    border-radius: 999px;
}
.dining-info-card {
    background: rgba(255, 252, 247, .84);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(69, 44, 22, .08);
    box-shadow: var(--shadow);
    border-radius: 30px;
    padding: 34px;
    position: sticky;
    top: 108px;
}
.dining-info-card h3 {
    margin-bottom: 20px;
    color: var(--wood);
}
.dining-info-card .info-list {
    display: grid;
    gap: 16px;
}
.dining-info-card .info-item {
    padding-top: 16px;
    border-top: 1px solid var(--line);
}
.dining-info-card .info-item strong {
    display: block;
    color: var(--wood);
    font-size: .9rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-family: var(--display);
    margin-bottom: 6px;
}
.dining-info-card .info-item span {
    color: var(--muted);
    line-height: 1.6;
}
.menu-section {
    padding: 80px 0;
    background: radial-gradient(circle at center, rgba(251, 240, 213, .2) 0%, transparent 70%);
}
.menu-wrapper {
    width: min(1080px, calc(100vw - 48px));
    margin: 0 auto;
    background: rgba(255, 253, 248, .92);
    border: 1px solid rgba(69, 44, 22, .1);
    border-radius: 38px;
    padding: 60px 50px;
    box-shadow: var(--shadow);
    position: relative;
    overflow: hidden;
}
.menu-wrapper::before {
    content: "";
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(117, 39, 26, .15);
    border-radius: 28px;
    pointer-events: none;
}
.menu-header {
    text-align: center;
    margin-bottom: 50px;
}
.menu-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
}
.menu-icon {
    display: inline-flex;
    color: var(--brick);
    margin-bottom: 16px;
}
.menu-category {
    margin-bottom: 32px;
}
.menu-list {
    display: grid;
    gap: 20px;
}
.menu-category-title {
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: var(--serif);
    font-size: 2rem;
    color: var(--wood);
    margin-bottom: 24px;
}
.menu-category-title {
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: var(--serif);
    font-size: 2rem;
    color: var(--wood);
    margin-bottom: 24px;
}
.space-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(20, 15, 10, .8) 100%);
    display: flex;
    align-items: flex-end;
    padding: 30px;
}
.space-overlay h3 {
    color: #fff;
    font-size: 1.8rem;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .3);
}
.space-card {
    position: relative;
    border-radius: 30px;
    overflow: hidden;
    box-shadow: var(--shadow);
    aspect-ratio: 4 / 3;
}
.space-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms ease;
}
.dining-space-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 34px;
    width: min(1080px, calc(100vw - 48px));
    margin-left: auto;
    margin-right: auto;
}
.item-img-fullheigth img {
    aspect-ratio: 3 / 4;
    object-fit: cover;
}
.room-sliider-custom img {
    aspect-ratio: 1 / 1.2;
}

/* dynamic columns */
.post-card-wrapper.columns-2 {
    grid-template-columns: repeat(2, 1fr);
}

.post-card-wrapper.columns-3 {
    grid-template-columns: repeat(3, 1fr);
}

.post-card-wrapper.columns-4 {
    grid-template-columns: repeat(4, 1fr);
}

.room-sliider-custom > div {
    border-radius: 32px;
}
.offer-info {
    margin: 20px;
}
.offer-metadata-1 {
    position: absolute;
    z-index: 2;
    padding: 20px;
}
.offer-metadata {
    position: absolute;
    z-index: 999;
    margin: 15px;
}
.post-card__body > h3 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.post-card__body > p {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.menu-card {
    margin: 0 auto;
    background: rgba(255, 253, 248, .92);
    border: 1px solid rgba(69, 44, 22, .1);
    border-radius: 38px;
    padding: 60px 50px;
    box-shadow: var(--shadow);
    position: relative;
    overflow: hidden;
}
.menu-card::before {
    content: "";
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(117, 39, 26, .15);
    border-radius: 28px;
    pointer-events: none;
}
.day-badge {
    font-size: 2rem;
    color: var(--wood);
}
.menu-card-section > h3 {
    margin-bottom: 1.5rem;
}
.drink-box {
    margin-top: 40px;
}
.menu-card-list {
    gap: 10px;
    font-weight: 700;
    display: flex;
    flex-direction: column;
}
.menu-card-list > .menu-item {
    position: relative;
    padding-left: 24px;
}
.menu-card-list > .menu-item::before {
    content: "✓";
    color: green;
    font-weight: bold;
    position: absolute;
    left: 0;
}
.drink-item {
    display: list-item;
    list-style-type: circle;
}
@media (max-width: 1280px) {
  .article-wrap {
    grid-template-columns: 1fr 300px;
  }
  .story-rail {
    display: none;
  }
}

@media (max-width: 980px) {
	.offer-card__content {
    grid-column: span 1;
}
  .article-wrap {
    grid-template-columns: 1fr;
  }
	.menu-wrapper {
		width: min(1080px, calc(100vw - 20px));
	}
	.menu-grid {
		grid-template-columns: 1fr;
	}
	.dining-space-grid {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
  .newsletter input {
    width: 150px;
  }
}