
/* ============ TOKENS ============ */
:root{
  --green-950:#0c1a14;
  --green-900:#13261d;
  --green-800:#1b3629;
  --green-700:#264a38;
  --gold-500:#b8935a;
  --gold-400:#cfae7b;
  --gold-300:#e2c9a0;
  --cream-50:#fbf8f2;
  --cream-100:#f5efe4;
  --cream-200:#ebe2d0;
  --ink:#1c2a23;
  --muted:#6b756f;
  --line:rgba(28,42,35,.12);
  --white:#fff;
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Montserrat',system-ui,sans-serif;
  --ease:cubic-bezier(.22,.8,.24,1);
  --shadow-sm:0 4px 16px rgba(12,26,20,.06);
  --shadow-md:0 14px 40px rgba(12,26,20,.10);
  --shadow-lg:0 30px 70px rgba(12,26,20,.18);
  --radius:6px;
  --container:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--cream-50);line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul{list-style:none}
.container{width:min(var(--container),100% - 48px);margin-inline:auto}
::selection{background:var(--gold-500);color:#fff}

/* ============ TYPE ============ */
.eyebrow{font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-500);font-weight:500;display:inline-flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:34px;height:1px;background:currentColor}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:34px;height:1px;background:currentColor}
h2.title{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4vw,3.1rem);line-height:1.15;color:var(--green-900);margin-top:14px}
h2.title em{font-style:italic;color:var(--gold-500)}
.lead{color:var(--muted);font-size:.98rem;max-width:560px}
.section{padding:110px 0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:56px;flex-wrap:wrap}

/* ============ BUTTONS ============ */
.btn{--bg:var(--gold-500);--fg:#fff;position:relative;display:inline-flex;align-items:center;gap:12px;padding:16px 34px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;background:var(--bg);color:var(--fg);border-radius:2px;overflow:hidden;isolation:isolate;transition:transform .4s var(--ease),box-shadow .4s var(--ease),color .4s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--green-900);transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(184,147,90,.35)}
.btn:hover::before{transform:translateY(0)}
.btn svg{width:14px;height:14px;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn.dark{--bg:var(--green-900)}
.btn.dark::before{background:var(--gold-500)}
.btn.dark:hover{box-shadow:0 14px 30px rgba(12,26,20,.3)}
.btn.ghost{--bg:transparent;--fg:#fff;border:1px solid rgba(255,255,255,.55)}
.btn.ghost::before{background:#fff}
.btn.ghost:hover{color:var(--green-900);box-shadow:none}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--green-900);padding-bottom:6px;border-bottom:1px solid var(--gold-500);transition:gap .35s var(--ease),color .3s}
.link-arrow:hover{gap:18px;color:var(--gold-500)}

/* ============ TOPBAR + HEADER ============ */
.topbar{background:var(--green-950);color:var(--gold-300);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;text-align:center;padding:9px 20px;position:relative;z-index:60}
.topbar b{font-weight:500;color:#fff}
header.site{position:fixed;top:34px;left:0;right:0;z-index:50;transition:background .45s var(--ease),box-shadow .45s var(--ease),top .45s var(--ease),padding .45s var(--ease);padding:14px 0}
header.site.scrolled{top:0;background:rgba(251,248,242,.92);backdrop-filter:blur(16px) saturate(1.3);box-shadow:0 8px 30px rgba(12,26,20,.08);padding:6px 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:flex;align-items:center;gap:14px;color:#fff;transition:color .4s}
.brand svg{width:40px;height:40px;color:var(--gold-400)}
.brand .name{font-family:var(--serif);font-size:1.35rem;letter-spacing:.14em;line-height:1;display:block}
.brand .sub{font-size:.52rem;letter-spacing:.42em;text-transform:uppercase;color:var(--gold-300);margin-top:5px;display:block}
header.scrolled .brand{color:var(--green-900)}
header.scrolled .brand .sub{color:var(--gold-500)}
.menu{display:flex;gap:6px;align-items:center}
.menu > li{position:relative}
.menu > li > a{display:block;padding:12px 16px;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:#fff;font-weight:500;position:relative;transition:color .3s}
.menu > li > a::after{content:"";position:absolute;left:16px;right:16px;bottom:6px;height:1px;background:var(--gold-400);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.menu > li:hover > a::after,.menu > li > a.active::after{transform:scaleX(1);transform-origin:left}
header.scrolled .menu > li > a{color:var(--green-900)}
.has-sub > a .chev{display:inline-block;margin-left:6px;width:8px;height:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .3s}
.has-sub:hover > a .chev{transform:rotate(225deg) translateY(-3px)}
.dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%,16px);width:300px;background:#fff;padding:12px;border-radius:var(--radius);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:all .4s var(--ease);border-top:2px solid var(--gold-500)}
.has-sub:hover .dropdown{opacity:1;visibility:visible;transform:translate(-50%,6px)}
.dropdown a{display:flex;gap:14px;align-items:center;padding:12px 14px;border-radius:4px;transition:background .3s,padding-left .3s var(--ease)}
.dropdown a:hover{background:var(--cream-100);padding-left:20px}
.dropdown .dot{width:36px;height:36px;border-radius:50%;background:var(--green-900);color:var(--gold-400);display:grid;place-items:center;font-family:var(--serif);font-size:.95rem;flex:none}
.dropdown strong{display:block;font-family:var(--serif);font-weight:500;font-size:1rem;color:var(--green-900)}
.dropdown small{color:var(--muted);font-size:.72rem}
.nav-right{display:flex;align-items:center;gap:18px}
.lang{font-size:.68rem;letter-spacing:.2em;color:#fff;display:flex;gap:8px;align-items:center}
.lang span{opacity:.55;cursor:pointer;transition:opacity .3s}
.lang span.on,.lang span:hover{opacity:1}
header.scrolled .lang{color:var(--green-900)}
.nav-cta{padding:13px 24px}
.burger{display:none;width:44px;height:44px;position:relative;z-index:80}
.burger i{position:absolute;left:10px;right:10px;height:1.5px;background:#fff;transition:all .4s var(--ease)}
.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:22px}.burger i:nth-child(3){top:28px}
header.scrolled .burger i{background:var(--green-900)}
.burger.open i{background:#fff!important}
.burger.open i:nth-child(1){top:22px;transform:rotate(45deg)}
.burger.open i:nth-child(2){opacity:0}
.burger.open i:nth-child(3){top:22px;transform:rotate(-45deg)}
.mobile{position:fixed;inset:0;background:var(--green-950);z-index:70;display:flex;flex-direction:column;justify-content:center;padding:40px;gap:6px;opacity:0;visibility:hidden;transition:all .5s var(--ease)}
.mobile.open{opacity:1;visibility:visible}
.mobile a{font-family:var(--serif);font-size:2rem;color:#fff;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08);transform:translateY(20px);opacity:0;transition:all .6s var(--ease)}
.mobile.open a{transform:none;opacity:1}
.mobile.open a:nth-child(2){transition-delay:.05s}.mobile.open a:nth-child(3){transition-delay:.1s}.mobile.open a:nth-child(4){transition-delay:.15s}.mobile.open a:nth-child(5){transition-delay:.2s}.mobile.open a:nth-child(6){transition-delay:.25s}
.mobile a:hover{color:var(--gold-400)}

/* ============ HERO ============ */
.hero{position:relative;height:100vh;min-height:760px;max-height:980px;color:#fff;overflow:hidden;background:var(--green-950)}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.6s var(--ease),visibility 1.6s}
.slide.active{opacity:1;visibility:visible}
.slide .bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.12);transition:transform 9s linear}
.slide.active .bg{transform:scale(1)}
.slide:nth-child(1) .bg{background-color:#1b3629}
.slide:nth-child(2) .bg{background-color:#2a3d33}
.slide:nth-child(3) .bg{background-color:#3a3226}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,18,13,.82) 0%,rgba(8,18,13,.45) 55%,rgba(8,18,13,.15) 100%),linear-gradient(0deg,rgba(8,18,13,.75) 0%,transparent 40%);z-index:1;pointer-events:none}
.hero-inner{position:relative;z-index:3;height:100%;display:flex;align-items:center;padding-bottom:120px}
.hero-copy{max-width:720px}
.hero-copy .eyebrow{color:var(--gold-300)}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.8rem,6.4vw,5.6rem);line-height:1.04;margin:22px 0 26px;letter-spacing:-.01em}
.hero h1 em{font-style:italic;color:var(--gold-300)}
.hero p.sub{font-size:1.05rem;font-weight:300;max-width:520px;color:rgba(255,255,255,.88);margin-bottom:40px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap}
.slide .anim{opacity:0;transform:translateY(34px)}
.slide.active .anim{animation:rise 1.1s var(--ease) forwards}
.slide.active .anim:nth-child(1){animation-delay:.35s}.slide.active .anim:nth-child(2){animation-delay:.55s}.slide.active .anim:nth-child(3){animation-delay:.75s}.slide.active .anim:nth-child(4){animation-delay:.95s}
@keyframes rise{to{opacity:1;transform:none}}
.hero-ui{position:absolute;z-index:4;right:max(24px,calc((100vw - var(--container))/2));bottom:200px;display:flex;align-items:center;gap:22px}
.counter{font-family:var(--serif);font-size:1.1rem;letter-spacing:.1em}
.counter span{color:var(--gold-300);font-size:1.7rem}
.bars{display:flex;gap:8px}
.bars button{width:54px;height:2px;background:rgba(255,255,255,.3);position:relative;overflow:hidden}
.bars button::after{content:"";position:absolute;inset:0;background:var(--gold-300);transform:scaleX(0);transform-origin:left}
.bars button.active::after{animation:fill 6.5s linear forwards}
.bars button.done::after{transform:scaleX(1)}
@keyframes fill{to{transform:scaleX(1)}}
.arrows{display:flex;gap:10px}
.arrows button{width:48px;height:48px;border:1px solid rgba(255,255,255,.4);border-radius:50%;display:grid;place-items:center;transition:all .4s var(--ease)}
.arrows button:hover{background:var(--gold-500);border-color:var(--gold-500);transform:scale(1.08)}
.arrows svg{width:16px;height:16px}
.scroll-hint{position:absolute;z-index:4;left:max(24px,calc((100vw - var(--container))/2));bottom:200px;display:flex;align-items:center;gap:14px;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.scroll-hint i{width:1px;height:46px;background:rgba(255,255,255,.3);position:relative;overflow:hidden}
.scroll-hint i::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--gold-300);animation:drip 2.2s var(--ease) infinite}
@keyframes drip{to{top:100%}}

/* ============ BOOKING BAR ============ */
.booking{position:relative;z-index:10;margin-top:-86px}
.booking-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:10px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr auto;gap:0;align-items:stretch;border-top:3px solid var(--gold-500)}
.field{position:relative;padding:20px 24px;border-right:1px solid var(--line);cursor:pointer;transition:background .35s;border-radius:4px}
.field:hover,.field:focus-within{background:var(--cream-50)}
.field label{display:flex;align-items:center;gap:8px;font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-500);font-weight:600;margin-bottom:8px;cursor:pointer}
.field label svg{width:14px;height:14px}
.field select,.field input{width:100%;border:0;background:transparent;font-family:var(--serif);font-size:1.12rem;color:var(--green-900);outline:none;appearance:none;-webkit-appearance:none;cursor:pointer}
.field input[type=date]{font-family:var(--serif)}
.field.has-chev::after{content:"";position:absolute;right:22px;bottom:30px;width:7px;height:7px;border-right:1.5px solid var(--gold-500);border-bottom:1.5px solid var(--gold-500);transform:rotate(45deg);pointer-events:none}
.field.err{background:#fdf1ee;animation:shake .4s}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.guests-pop{position:absolute;top:calc(100% + 10px);left:0;min-width:300px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:22px;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .35s var(--ease);z-index:20;cursor:default}
.guests-pop.open{opacity:1;visibility:visible;transform:none}
.counter-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.counter-row:last-of-type{border:0}
.counter-row strong{font-family:var(--serif);font-weight:500;font-size:1rem;display:block}
.counter-row small{color:var(--muted);font-size:.72rem}
.stepper{display:flex;align-items:center;gap:14px}
.stepper button{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;font-size:1.1rem;line-height:1;transition:all .3s}
.stepper button:hover{background:var(--green-900);color:#fff;border-color:var(--green-900)}
.stepper span{min-width:18px;text-align:center;font-weight:500}
.booking-card .btn{border-radius:4px;padding:0 38px;justify-content:center}
.booking-note{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;margin-top:22px;font-size:.74rem;color:var(--muted)}
.booking-note span{display:flex;align-items:center;gap:8px}
.booking-note svg{width:15px;height:15px;color:var(--gold-500)}

/* ============ INTRO ============ */
.intro{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.intro-media{position:relative;height:600px}
.intro-media .img{position:absolute;border-radius:var(--radius);background-size:cover;background-position:center;box-shadow:var(--shadow-lg);transition:transform .8s var(--ease)}
.intro-media .a{inset:0 22% 14% 0;background-color:#264a38}
.intro-media .b{right:0;bottom:0;width:48%;height:50%;border:10px solid var(--cream-50);background-color:#b8935a}
.intro-media:hover .a{transform:scale(1.02)}
.intro-media:hover .b{transform:translate(-8px,-8px)}
.badge-seal{position:absolute;left:-26px;bottom:60px;width:130px;height:130px;border-radius:50%;background:var(--green-900);color:var(--gold-300);display:grid;place-items:center;text-align:center;box-shadow:var(--shadow-md);z-index:2;animation:float 6s ease-in-out infinite}
.badge-seal b{font-family:var(--serif);font-size:2.1rem;display:block;line-height:1;font-weight:400}
.badge-seal small{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase}
@keyframes float{50%{transform:translateY(-10px)}}
.intro p{color:var(--muted);margin:22px 0}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:34px 0 40px}
.pillar{display:flex;gap:16px}
.pillar .ico{flex:none;width:48px;height:48px;border:1px solid var(--gold-400);border-radius:50%;display:grid;place-items:center;color:var(--gold-500);transition:all .4s var(--ease)}
.pillar:hover .ico{background:var(--gold-500);color:#fff;transform:rotate(12deg) scale(1.08)}
.pillar svg{width:20px;height:20px}
.pillar strong{font-family:var(--serif);font-weight:500;font-size:1.05rem;color:var(--green-900);display:block}
.pillar small{color:var(--muted);font-size:.8rem;line-height:1.5;display:block}

/* ============ DESTINATIONS ============ */
.bg-cream{background:var(--cream-100)}
.dest-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px;height:560px}
.dest{position:relative;border-radius:var(--radius);overflow:hidden;color:#fff;display:flex;align-items:flex-end;padding:34px;isolation:isolate;box-shadow:var(--shadow-md)}
.dest .bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2;transition:transform 1.2s var(--ease)}
.dest::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,18,13,.88) 0%,rgba(8,18,13,.15) 60%);z-index:-1;transition:opacity .5s}
.dest:hover .bg{transform:scale(1.1)}
.dest .tag{position:absolute;top:26px;left:26px;font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);padding:8px 14px;border-radius:30px;border:1px solid rgba(255,255,255,.25)}
.dest .go{position:absolute;top:22px;right:22px;width:46px;height:46px;border-radius:50%;background:#fff;color:var(--green-900);display:grid;place-items:center;transform:scale(.7) rotate(-45deg);opacity:0;transition:all .5s var(--ease)}
.dest:hover .go{opacity:1;transform:none}
.dest .go svg{width:16px;height:16px}
.dest h3{font-family:var(--serif);font-weight:400;font-size:2.4rem;line-height:1.1}
.dest p{font-size:.85rem;color:rgba(255,255,255,.82);max-width:300px;margin-top:8px;max-height:0;opacity:0;overflow:hidden;transition:all .6s var(--ease)}
.dest:hover p{max-height:90px;opacity:1}
.dest .meta{display:flex;gap:18px;margin-top:16px;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-300)}
.dest-1 .bg{background-color:#1f4a3a}.dest-2 .bg{background-color:#5a4630}.dest-3 .bg{background-color:#3b3f38}

/* ============ ROOMS ============ */
.filters{display:flex;gap:6px;background:#fff;padding:6px;border-radius:40px;box-shadow:var(--shadow-sm);flex-wrap:wrap}
.filters button{padding:11px 24px;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;border-radius:30px;font-weight:500;color:var(--muted);transition:all .4s var(--ease)}
.filters button:hover{color:var(--green-900)}
.filters button.on{background:var(--green-900);color:#fff;box-shadow:0 8px 20px rgba(19,38,29,.25)}
.rooms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.room{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .6s var(--ease),box-shadow .6s var(--ease),opacity .5s;position:relative}
.room:hover{transform:translateY(-10px);box-shadow:var(--shadow-lg)}
.room.hide{display:none}
.room .photo{position:relative;height:280px;overflow:hidden;background:#264a38}
.room .photo .bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1.1s var(--ease)}
.room:hover .photo .bg{transform:scale(1.1)}
.room .city{position:absolute;top:18px;left:18px;background:#fff;color:var(--green-900);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;padding:7px 13px;border-radius:2px;z-index:2}
.room .fav{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;z-index:2;transition:all .35s var(--ease)}
.room .fav:hover{transform:scale(1.15)}
.room .fav svg{width:17px;height:17px;color:var(--green-900);transition:all .3s}
.room .fav.on svg{fill:#c0392b;color:#c0392b}
.room .body{padding:28px 28px 26px}
.room .type{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-500);font-weight:600}
.room h3{font-family:var(--serif);font-weight:500;font-size:1.65rem;color:var(--green-900);margin:6px 0 10px}
.room p{color:var(--muted);font-size:.86rem;margin-bottom:18px}
.amen{display:flex;gap:18px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--line);font-size:.74rem;color:var(--muted)}
.amen span{display:flex;align-items:center;gap:7px}
.amen svg{width:15px;height:15px;color:var(--gold-500)}
.room .foot{display:flex;justify-content:space-between;align-items:center;padding-top:18px;border-top:1px solid var(--line)}
.price small{display:block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.price b{font-family:var(--serif);font-weight:500;font-size:1.65rem;color:var(--green-900)}
.price b span{font-size:.8rem;color:var(--muted);font-family:var(--sans);font-weight:400}
.room .reserve{width:50px;height:50px;border-radius:50%;border:1px solid var(--gold-500);color:var(--gold-500);display:grid;place-items:center;transition:all .45s var(--ease)}
.room:hover .reserve{background:var(--gold-500);color:#fff;transform:rotate(-45deg)}
.room .reserve svg{width:17px;height:17px}

/* ============ EXPERIENCES ============ */
.exp{background:var(--green-900);color:#fff;position:relative;overflow:hidden}
.exp::before{content:"";position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(184,147,90,.18),transparent 70%);top:-250px;right:-200px}
.exp h2.title{color:#fff}
.exp .lead{color:rgba(255,255,255,.65)}
.exp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);overflow:hidden;position:relative}
.exp-item{background:var(--green-900);padding:46px 34px;position:relative;transition:background .5s var(--ease);overflow:hidden}
.exp-item::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--gold-500);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.exp-item:hover{background:var(--green-800)}
.exp-item:hover::after{transform:scaleX(1)}
.exp-item .num{font-family:var(--serif);font-size:.95rem;color:var(--gold-400);letter-spacing:.2em}
.exp-item svg.big{width:42px;height:42px;color:var(--gold-400);margin:26px 0 22px;transition:transform .6s var(--ease)}
.exp-item:hover svg.big{transform:translateY(-6px) scale(1.1)}
.exp-item h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin-bottom:10px}
.exp-item p{font-size:.85rem;color:rgba(255,255,255,.62)}

/* ============ SPLIT FEATURE ============ */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:640px}
.split-copy{background:var(--cream-100);padding:90px max(24px,6vw) 90px max(24px,calc((100vw - var(--container))/2));display:flex;flex-direction:column;justify-content:center}
.split-copy ul{margin:30px 0 40px;display:grid;gap:14px}
.split-copy li{display:flex;align-items:center;gap:14px;font-size:.92rem}
.split-copy li::before{content:"";width:8px;height:8px;background:var(--gold-500);transform:rotate(45deg);flex:none}
.split-img{position:relative;background:#264a38 center/cover;overflow:hidden}
.split-img .bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1.6s var(--ease)}
.split:hover .split-img .bg{transform:scale(1.06)}
.float-card{position:absolute;left:40px;bottom:40px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);padding:22px 28px;border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;gap:18px;align-items:center}
.float-card b{font-family:var(--serif);font-size:2.4rem;color:var(--gold-500);font-weight:400;line-height:1}
.float-card small{font-size:.7rem;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;line-height:1.5;display:block}

/* ============ STATS ============ */
.stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;gap:20px}
.stat{padding:20px;position:relative}
.stat:not(:last-child)::after{content:"";position:absolute;right:0;top:20%;height:60%;width:1px;background:var(--line)}
.stat b{font-family:var(--serif);font-weight:400;font-size:3.6rem;color:var(--green-900);line-height:1;display:block}
.stat b sup{font-size:1.4rem;color:var(--gold-500)}
.stat small{display:block;margin-top:10px;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}

/* ============ OFFERS ============ */
.offers{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.offer{position:relative;min-height:380px;border-radius:var(--radius);overflow:hidden;color:#fff;display:flex;align-items:flex-end;padding:44px;isolation:isolate}
.offer .bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2;transition:transform 1.2s var(--ease)}
.offer::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,18,13,.9),rgba(8,18,13,.2));z-index:-1}
.offer:hover .bg{transform:scale(1.08)}
.offer .pill{display:inline-block;background:var(--gold-500);padding:6px 14px;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;border-radius:2px;margin-bottom:16px}
.offer h3{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.2;margin-bottom:10px}
.offer p{color:rgba(255,255,255,.8);font-size:.9rem;margin-bottom:22px;max-width:420px}
.offer .link-arrow{color:#fff}
.offer-1 .bg{background-color:#2c5240}.offer-2 .bg{background-color:#5b4630}

/* ============ TESTIMONIALS ============ */
.testi{text-align:center;position:relative}
.quote-mark{font-family:var(--serif);font-size:6rem;line-height:.6;color:var(--gold-400);display:block;height:50px}
.testi-wrap{max-width:820px;margin:34px auto 0;position:relative;min-height:230px}
.t-item{position:absolute;inset:0;opacity:0;transform:translateY(20px);transition:all .8s var(--ease);pointer-events:none}
.t-item.active{opacity:1;transform:none;pointer-events:auto;position:relative}
.t-item blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.85rem);line-height:1.55;color:var(--green-900)}
.t-item .who{margin-top:28px;display:flex;align-items:center;justify-content:center;gap:14px}
.avatar{width:52px;height:52px;border-radius:50%;background:var(--green-900);color:var(--gold-300);display:grid;place-items:center;font-family:var(--serif);font-size:1.2rem}
.who strong{display:block;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.who small{color:var(--muted);font-size:.74rem}
.stars{color:var(--gold-500);letter-spacing:4px;margin-bottom:6px;font-size:.8rem}
.t-dots{display:flex;justify-content:center;gap:10px;margin-top:34px}
.t-dots button{width:10px;height:10px;border-radius:50%;background:var(--cream-200);transition:all .4s var(--ease)}
.t-dots button.on{background:var(--gold-500);width:34px;border-radius:10px}

/* ============ FAQ ============ */
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.faq{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .4s}
.faq:hover{box-shadow:var(--shadow-md)}
.faq button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;text-align:left;font-family:var(--serif);font-size:1.12rem;color:var(--green-900)}
.faq .plus{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--gold-400);position:relative;transition:all .45s var(--ease)}
.faq .plus::before,.faq .plus::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1px;background:var(--gold-500);transform:translate(-50%,-50%);transition:all .45s var(--ease)}
.faq .plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq.open .plus{background:var(--gold-500);transform:rotate(180deg)}
.faq.open .plus::before,.faq.open .plus::after{background:#fff}
.faq.open .plus::after{transform:translate(-50%,-50%) rotate(0)}
.faq .ans{max-height:0;overflow:hidden;transition:max-height .6s var(--ease)}
.faq .ans p{padding:0 28px 26px;color:var(--muted);font-size:.9rem}

/* ============ NEWSLETTER ============ */
.news{background:var(--green-950);color:#fff;padding:90px 0;position:relative;overflow:hidden}
.news::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(184,147,90,.16),transparent 60%)}
.news-in{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}
.news h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.2}
.news h2 em{color:var(--gold-300)}
.news p{color:rgba(255,255,255,.65);margin-top:12px;font-size:.92rem}
.news form{display:flex;border-bottom:1px solid rgba(255,255,255,.35);transition:border-color .4s}
.news form:focus-within{border-color:var(--gold-400)}
.news input{flex:1;background:none;border:0;outline:0;color:#fff;font-family:var(--sans);padding:18px 0;font-size:.95rem}
.news input::placeholder{color:rgba(255,255,255,.45)}
.news form button{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-300);display:flex;align-items:center;gap:10px;transition:gap .4s var(--ease)}
.news form button:hover{gap:18px}
.news small{display:block;margin-top:14px;color:rgba(255,255,255,.45);font-size:.72rem}

/* ============ FOOTER ============ */
footer{background:var(--green-900);color:rgba(255,255,255,.7);padding:90px 0 0;position:relative}
footer::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--gold-500),transparent)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:60px;padding-bottom:70px}
footer .brand{color:#fff;margin-bottom:22px}
footer p.about{font-size:.88rem;max-width:340px}
footer p.sign{font-family:var(--serif);font-style:italic;color:var(--gold-300);margin-top:18px;font-size:1.1rem}
footer h4{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-400);font-weight:600;margin-bottom:26px}
footer li{margin-bottom:13px;font-size:.88rem}
footer li a{position:relative;display:inline-block;transition:color .3s,transform .4s var(--ease)}
footer li a:hover{color:var(--gold-300);transform:translateX(6px)}
.contact li{display:flex;gap:12px;align-items:flex-start}
.contact svg{width:16px;height:16px;color:var(--gold-400);margin-top:4px;flex:none}
.social{display:flex;gap:10px;margin-top:24px}
.social a{width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:50%;display:grid;place-items:center;transition:all .45s var(--ease)}
.social a:hover{background:var(--gold-500);border-color:var(--gold-500);transform:translateY(-5px) rotate(360deg);color:#fff}
.social svg{width:16px;height:16px}
.pay{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}
.pay span{font-size:.58rem;letter-spacing:.14em;border:1px solid rgba(255,255,255,.2);padding:6px 10px;border-radius:3px;text-transform:uppercase}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding:26px 0;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.74rem;color:rgba(255,255,255,.5)}
.foot-bottom nav{display:flex;gap:26px}
.foot-bottom a:hover{color:var(--gold-300)}
.to-top{position:fixed;right:26px;bottom:26px;width:52px;height:52px;border-radius:50%;background:var(--gold-500);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(20px);transition:all .5s var(--ease);z-index:40}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--green-900);transform:translateY(-5px)}
.to-top svg{width:18px;height:18px}

/* ============ TOAST ============ */
.toast{position:fixed;left:50%;bottom:40px;transform:translate(-50%,40px);background:var(--green-900);color:#fff;padding:18px 28px;border-radius:var(--radius);box-shadow:var(--shadow-lg);border-left:3px solid var(--gold-500);font-size:.88rem;opacity:0;visibility:hidden;transition:all .6s var(--ease);z-index:100;max-width:calc(100% - 40px)}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}

/* ============ RESPONSIVE ============ */
@media(max-width:1100px){
  .menu,.nav-cta,.lang{display:none}
  .burger{display:block}
  .booking-card{grid-template-columns:1fr 1fr;}
  .field{border-bottom:1px solid var(--line)}
  .booking-card .btn{grid-column:1/-1;padding:20px}
  .intro{grid-template-columns:1fr;gap:60px}
  .dest-grid{grid-template-columns:1fr 1fr;height:auto}
  .dest{min-height:400px}.dest-1{grid-column:1/-1}
  .rooms-grid{grid-template-columns:1fr 1fr}
  .exp-grid{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}.split-img{min-height:420px}
  .split-copy{padding:70px 24px}
  .stats{grid-template-columns:1fr 1fr}.stat::after{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}
  .news-in{grid-template-columns:1fr;gap:34px}
  .hero-ui{bottom:230px}
}
@media(max-width:720px){
  .section{padding:80px 0}
  .topbar{font-size:.58rem;letter-spacing:.12em}
  .hero{min-height:720px}
  .hero-ui{left:24px;right:auto;bottom:210px}.scroll-hint,.arrows{display:none}
  .booking{margin-top:-60px}
  .booking-card{grid-template-columns:1fr}
  .rooms-grid,.dest-grid,.offers,.faq-grid,.exp-grid{grid-template-columns:1fr}
  .pillars{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:40px}
  .intro-media{height:420px}.badge-seal{left:0}
  .float-card{left:16px;right:16px;bottom:16px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Grand Velaris home refinements */

:root{--container:1240px}body.gv-premium-home{background:var(--cream-50)}
.gv-premium-home .hero{height:min(880px,100vh);min-height:690px;max-height:930px}
.gv-premium-home .hero h1{font-size:clamp(2.8rem,5.3vw,4.8rem);max-width:750px}
.gv-premium-home .hero-inner{padding-top:95px;padding-bottom:90px}
.gv-premium-home .hero::after{background:linear-gradient(180deg,rgba(5,14,10,.64) 0%,rgba(5,14,10,.23) 24%,transparent 52%),linear-gradient(90deg,rgba(8,18,13,.79),rgba(8,18,13,.30) 57%,rgba(8,18,13,.13)),linear-gradient(0deg,rgba(8,18,13,.62),transparent 30%)}
.gv-premium-home .hero-ui,.gv-premium-home .scroll-hint{bottom:178px}
.gv-premium-home .booking{margin-top:-72px}
.gv-premium-home .booking-card{grid-template-columns:1.25fr 1fr 1fr .92fr 1fr auto}
.gv-premium-home .field{padding:20px 14px}
.gv-premium-home .field label{font-size:.69rem;letter-spacing:.19em}
.gv-premium-home .field select,.gv-premium-home .field input,.gv-premium-home .guest-label{font-family:var(--serif);font-size:1.02rem}
.gv-premium-home .field.has-chev::after{right:15px;bottom:29px}
.gv-premium-home .booking-card .btn{padding:0 26px}
.gv-premium-home .intro-media .img,.gv-premium-home .dest .bg,.gv-premium-home .room .photo .bg,.gv-premium-home .offer .bg{background-repeat:no-repeat}
.gv-premium-home .room .photo a{position:absolute;inset:0;z-index:1}
.gv-premium-home .room .photo .fav{z-index:3}
.gv-premium-home .fav.on{background:#c0392b;color:#fff}
.gv-premium-home .fav.on svg{fill:#fff;color:#fff}
.gv-premium-home .fav:focus-visible,.gv-premium-home button:focus-visible,.gv-premium-home a:focus-visible{outline:2px solid var(--gold-500);outline-offset:4px}
.gv-premium-home .testi-wrap{min-height:255px}
.gv-premium-home .t-item:not(.active){position:absolute;visibility:hidden}
.gv-premium-home .faq details{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.gv-premium-home .faq summary{list-style:none;width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;text-align:left;font-family:var(--serif);font-size:1.12rem;color:var(--green-900);cursor:pointer}
.gv-premium-home .faq summary::-webkit-details-marker{display:none}
.gv-premium-home .faq details[open] .plus{background:var(--gold-500);transform:rotate(180deg)}
.gv-premium-home .faq details[open] .plus::before,.gv-premium-home .faq details[open] .plus::after{background:#fff}
.gv-premium-home .faq details[open] .plus::after{transform:translate(-50%,-50%) rotate(0deg)}
.gv-premium-home .faq .ans{max-height:none;overflow:visible}
.gv-premium-home .booking-note{font-size:.82rem}
.gv-premium-home .room .body p{min-height:4.2em}
.gv-premium-home .field input.date-display{width:100%;cursor:pointer;min-width:105px}
.gv-premium-home .date-picker-pop{position:absolute;top:calc(100% + 14px);left:0;width:342px;z-index:30;box-shadow:var(--shadow-lg);background:#fff;border:1px solid var(--cream-200);border-radius:8px;padding:20px;display:none;color:var(--green-900)}
.gv-premium-home .date-picker-pop.open{display:block}
.gv-premium-home .date-picker-pop .cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-family:var(--serif);font-size:1.18rem}
.gv-premium-home .date-picker-pop .cal-header button{font-size:18px;padding:4px 10px;border:1px solid var(--line);border-radius:50%}
.gv-premium-home .date-picker-pop .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.gv-premium-home .date-picker-pop .cal-grid span{text-align:center;color:var(--muted);font-size:.69rem;padding:7px 0}
.gv-premium-home .date-picker-pop .cal-grid button{width:37px;height:37px;border-radius:50%;font-size:.86rem;transition:background .15s}
.gv-premium-home .date-picker-pop .cal-grid button:hover:not(:disabled){background:var(--cream-200)}
.gv-premium-home .date-picker-pop .cal-grid button.selected{background:var(--green-900);color:#fff}
.gv-premium-home .date-picker-pop .cal-grid button:disabled{color:#c5c3bc;cursor:not-allowed}
.gv-premium-home .date-picker-pop .cal-foot{font-size:.73rem;color:var(--muted);margin-top:10px}
.gv-premium-home .booking-card select{padding-right:24px;white-space:nowrap;text-overflow:ellipsis}
.gv-premium-home .field.has-chev:has(.guests-pop)::after{display:none}
.gv-premium-home .guest-trigger{width:100%;text-align:left;color:var(--green-900);display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--serif);font-size:1.04rem}
.gv-premium-home .guest-trigger svg{width:12px;color:var(--gold-500)}
.gv-premium-home .guests-pop{left:auto;right:0;min-width:310px}
.gv-premium-home .guest-trigger[aria-expanded="true"]+.guests-pop{opacity:1;visibility:visible;transform:none}
.gv-premium-home .newsletter-note{margin:10px 0 0;font-size:.78rem;color:#d5c5ad}
.gv-premium-home .newsletter-note input{accent-color:var(--gold-500);margin-right:7px}
.gv-premium-home .search-feedback{color:#a23d2a;margin:10px 16px;font-size:.84rem;display:none}
.gv-premium-home .search-feedback.show{display:block}
.gv-premium-home .booking-note span{align-items:center}
.gv-premium-home .room .fav{background:rgba(255,255,255,.96)}
.gv-premium-home .room .fav.on{background:#c0392b}
.gv-premium-home .reveal{opacity:1;transform:none}
.gv-premium-home.gv-enhanced .reveal{opacity:0;transform:translateY(30px)}
.gv-premium-home.gv-enhanced .reveal.in{opacity:1;transform:none}
@media(max-width:1150px){.gv-premium-home .booking-card{grid-template-columns:repeat(3,minmax(0,1fr))}.gv-premium-home .booking-card .btn{grid-column:span 3;min-height:66px}.gv-premium-home .field{border-bottom:1px solid var(--line)}}
@media(max-width:720px){.gv-premium-home .hero{min-height:740px}.gv-premium-home .hero-inner{padding-top:75px;padding-bottom:165px}.gv-premium-home .hero h1{font-size:clamp(2.5rem,10vw,3.5rem)}.gv-premium-home .booking-card{grid-template-columns:1fr}.gv-premium-home .booking-card .btn{grid-column:1}.gv-premium-home .date-picker-pop{width:min(340px,calc(100vw - 54px))}.gv-premium-home .booking-note{gap:12px}.gv-premium-home .hero-ui{bottom:150px}}
@media(prefers-reduced-motion:reduce){.gv-premium-home.gv-enhanced .reveal{opacity:1;transform:none}}

.gv-premium-home .field:focus-within{background:#fbf8f2}
.gv-premium-home .room[hidden]{display:none!important}
.gv-premium-home .btn:focus-visible{outline:2px solid var(--gold-500);outline-offset:3px}
.gv-premium-home .intro-media .img{background-position:center}
.gv-premium-home .news h2{font-size:clamp(2.0rem,3.2vw,2.7rem)}
.gv-premium-home .news .newsletter-note{display:block}
.gv-premium-home .news input[name=consent]{width:auto;flex:none}
.gv-premium-home .faq{background:transparent;box-shadow:none}
.gv-premium-home .faq details[open]{box-shadow:0 14px 30px rgba(12,26,20,.09)}
@media(max-width:720px){.gv-premium-home .booking-card{padding:6px}.gv-premium-home .field{padding:16px}.gv-premium-home .dest-grid{gap:16px}.gv-premium-home .hero-actions{gap:10px}.gv-premium-home .hero .btn{padding:13px 18px}.gv-premium-home .t-item blockquote{font-size:1.45rem}}

.gv-premium-home .eyebrow{font-size:.73rem}.gv-premium-home .lead{font-size:1.03rem}
.gv-premium-home #reservar{scroll-margin-top:100px}.gv-premium-home #habitaciones,.gv-premium-home #destinos,.gv-premium-home #experiencias,.gv-premium-home #ofertas,.gv-premium-home #faq{scroll-margin-top:85px}
.gv-premium-home .date-display:focus-visible{outline:2px solid var(--gold-500);outline-offset:3px}
.gv-premium-home .date-picker-pop .cal-grid button.selected:hover{background:var(--green-800)}

/* Progressive enhancement: native selects remain usable without JS. */
.gv-premium-home .gv-js-select{position:relative}
.gv-premium-home .gv-js-select select{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none!important;overflow:hidden!important}
.gv-premium-home .gv-js-select.has-chev::after{display:none}
.gv-premium-home .gv-custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:13px;text-align:left;width:100%;font:1.04rem var(--serif);color:var(--green-900);min-height:28px;line-height:1.3}
.gv-premium-home .gv-custom-select-trigger::after{content:"";display:block;width:8px;height:8px;flex-shrink:0;border-right:1.5px solid var(--gold-500);border-bottom:1.5px solid var(--gold-500);transform:rotate(45deg) translateY(-2px)}
.gv-premium-home .gv-custom-select-panel{position:absolute;top:calc(100% + 10px);left:0;min-width:max(100%,250px);max-width:min(400px,calc(100vw - 36px));max-height:310px;overflow-y:auto;background:#fff;z-index:38;border:1px solid var(--cream-200);border-radius:8px;box-shadow:var(--shadow-lg);padding:8px;display:none}
.gv-premium-home .gv-custom-select-panel.open{display:block}
.gv-premium-home .gv-custom-select-panel button{display:block;text-align:left;width:100%;border-radius:5px;padding:12px 13px;font-size:.85rem;line-height:1.5;color:var(--green-900);transition:background .2s}
.gv-premium-home .gv-custom-select-panel button:hover,.gv-premium-home .gv-custom-select-panel button:focus-visible{background:var(--cream-100)}
.gv-premium-home .gv-custom-select-panel button.current{color:#86602e;background:#fbf6ed;font-weight:600}

/* Home Premium 2.1: compact, aligned booking bar. Legacy generic .field styles
   used to stretch the guest selector and all of its grid siblings. */
@media(min-width:1151px){
 .gv-premium-home #bookForm.booking-card{height:auto!important;min-height:104px;grid-auto-rows:minmax(96px,auto);align-items:stretch;grid-template-columns:minmax(180px,1.25fr) minmax(135px,1fr) minmax(135px,1fr) minmax(135px,1fr) minmax(165px,1.08fr) minmax(142px,.72fr);padding:7px}
 .gv-premium-home #bookForm>.field{height:96px;min-height:0;max-height:96px;align-self:center;padding:15px 16px;display:flex;flex-direction:column;justify-content:center;gap:4px}
 .gv-premium-home #bookForm>.field label{margin:0 0 5px;line-height:1.3}
 .gv-premium-home #bookForm .guest-trigger,.gv-premium-home #bookForm .gv-custom-select-trigger,.gv-premium-home #bookForm input.date-display{height:34px;min-height:34px;line-height:1.3;align-items:center;margin:0}
 .gv-premium-home #bookForm>.btn{min-height:94px;align-self:stretch;padding:0 20px;white-space:nowrap}
 .gv-premium-home #bookForm #guestField{min-width:0}
 .gv-premium-home #bookForm #guestLabel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;min-width:0}
}
@media(min-width:721px) and (max-width:1150px){
 .gv-premium-home #bookForm.booking-card{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;align-items:stretch}
 .gv-premium-home #bookForm>.field{padding:17px;min-height:94px;display:flex;flex-direction:column;justify-content:center}
 .gv-premium-home #bookForm>.btn{min-height:64px}
}
@media(max-width:720px){
 .gv-premium-home #bookForm.booking-card{height:auto;display:grid;grid-template-columns:1fr;align-items:stretch;gap:0}
 .gv-premium-home #bookForm>.field{min-height:82px;padding:15px 17px;display:flex;flex-direction:column;justify-content:center}
 .gv-premium-home #bookForm>.btn{min-height:58px;margin-top:5px}
}
