:root{
  --blue:#2a4b93;
  --deep-blue:#214b88;
  --navy:#020817;
  --ink:#101317;
  --muted:#757574;
  --line:#e6e2d9;
  --warm:#f8f7f3;
  --gold:#214b88;
  --green:#0e5b54;
  --teal:#1181a7;
  --white:#fff;
  --max:1380px;
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:"Montserrat", Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fbfaf7;font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input{font:inherit}
.site-header{height:78px;background:var(--blue);width:100%;position:relative;z-index:20}
.header-inner{height:100%;width:100%;padding:0 3.2%;display:flex;align-items:center;justify-content:space-between}
.header-actions{display:flex;align-items:center;gap:10px}
.currency-control{position:relative;display:inline-flex;height:42px}
.currency-control:after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;border-right:1px solid #fff;border-bottom:1px solid #fff;transform:translateY(-67%) rotate(45deg);pointer-events:none}
.currency-select{appearance:none;-webkit-appearance:none;height:42px;min-width:112px;border:1px solid rgba(255,255,255,.92);border-radius:0;background:transparent;color:#fff;padding:0 36px 0 18px;font-family:var(--sans);font-size:14px;font-weight:400;letter-spacing:.04em;line-height:1;outline:0;cursor:pointer}
.currency-select option{color:#111;background:#fff}
.brand img{width:126px;height:auto}
.header-cta{height:42px;border:1px solid rgba(255,255,255,.92);color:#fff;padding:0 25px;font-size:14px;letter-spacing:.04em;transition:.2s ease;display:inline-flex;align-items:center;justify-content:center}
.header-cta:hover{background:#fff;color:var(--blue)}
.hero{height:760px;min-height:620px;background:url('../images/hero-maldives.jpg') center center/cover no-repeat;position:relative;color:#fff;width:100%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,26,38,.18) 0%,rgba(6,26,38,.06) 55%,rgba(6,26,38,0) 78%)}
.hero-content{position:absolute;left:3.2%;top:50%;transform:translateY(-47%);max-width:860px}
.hero h1{font-family:var(--serif);font-size:76px;line-height:.98;font-weight:400;letter-spacing:.006em;margin:0 0 24px;text-shadow:0 1px 1px rgba(0,0,0,.08)}
.hero p{font-size:18px;letter-spacing:.025em;margin:0;color:rgba(255,255,255,.96)}
.benefit-strip{width:100%;background:var(--deep-blue);color:#fff;padding:21px 3.2%}
.benefit-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:34px;align-items:center}
.benefit-item{display:flex;align-items:center;gap:14px;min-width:0}
.benefit-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#1aa7cf,#2e76c2);font-size:22px;font-weight:700}
.benefit-icon.gift{border-radius:50%}
.benefit-item strong,.benefit-item small{display:block;font-size:11px;line-height:1.5;letter-spacing:.02em}
.benefit-item strong{font-weight:700}.benefit-item small{font-weight:600}
.privilege-banner{display:grid;grid-template-columns:58.5% 41.5%;width:100%;min-height:500px;background:var(--navy);color:#fff}
.privilege-media{position:relative;overflow:hidden;min-height:500px}
.privilege-media img{width:100%;height:100%;object-fit:cover}
.privilege-media::after{content:"";position:absolute;top:0;right:0;bottom:0;width:38%;background:linear-gradient(90deg,rgba(2,8,23,0) 0%,rgba(2,8,23,.30) 30%,rgba(2,8,23,.72) 62%,rgba(2,8,23,.94) 84%,var(--navy) 100%);pointer-events:none;z-index:1}
.image-badge{position:absolute;left:3.2%;top:34px;background:#10131b;color:#fff;font-size:11px;letter-spacing:.22em;font-weight:700;padding:14px 22px;z-index:2}
.privilege-copy{display:flex;flex-direction:column;justify-content:center;padding:54px 9% 54px 8%}
.eyebrow{margin:0 0 12px;color:#7e8a9f;font-size:11px;letter-spacing:.24em;font-weight:700}
.eyebrow.gold{color:#2a4b93}
.privilege-copy h2{font-family:var(--serif);font-size:48px;line-height:.98;font-weight:400;margin:8px 0 28px;color:#fff}
.privilege-text{font-size:15px;line-height:1.55;max-width:520px;margin:0 0 30px;color:#eef2fb}
.gold-button{display:inline-flex;align-self:flex-start;background:var(--gold);color:#fff;padding:17px 29px;font-size:13px;font-weight:700;letter-spacing:.13em;margin-bottom:20px}
.text-link{display:inline-flex;align-self:flex-start;color:#fff;font-size:13px;letter-spacing:.13em;border-bottom:1px solid #2a4b93;padding-bottom:6px}
.page-shell{max-width:var(--max);margin:0 auto;padding:0 24px}
.editorial-section{padding:46px 0 52px;background:transparent}
.section-heading-row{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #eee;padding:0 0 26px;margin-bottom:34px;gap:40px}
.section-heading-row h2,.portfolio-head h2{font-family:var(--serif);font-weight:500;margin:0;line-height:1}
.section-heading-row h2{font-size:56px}
.section-intro{max-width:485px;color:#99948c;line-height:1.45;font-size:14px;margin:0 0 5px}
.editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.editorial-status{grid-column:1/-1;margin:0;padding:44px 20px;border:1px solid #e4e4e4;background:#fff;color:#777;text-align:center;font-size:12px;letter-spacing:.04em}.editorial-status.is-error{color:#8b3a2d}
.editorial-card{border:1px solid #e4e4e4;padding:22px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}
.editorial-card.featured{border-color:#e4e4e4;box-shadow:none}
.editorial-card:hover{border-color:#111;box-shadow:none}
.editorial-photo{height:258px;position:relative;overflow:hidden;margin-bottom:28px}
.editorial-photo img{width:100%;height:100%;object-fit:cover}
.tier-label{position:absolute;left:18px;top:18px;background:#fff;padding:10px 18px;color:#151a22;font-size:11px;letter-spacing:.17em;font-weight:700}
.location{font-size:10px;letter-spacing:.16em;font-weight:600;color:#877d73;margin:0 0 9px;text-transform:uppercase}
.editorial-card h3,.resort-card h3{font-family:var(--serif);font-weight:500;margin:0}
.editorial-card h3{font-size:30px;line-height:1.08;color:#2a4b93}
.editorial-card.featured h3{color:#2a4b93}
.desc{color:#a49a90;font-size:13px;line-height:1.6;min-height:64px;margin:13px 0 20px}
.card-price-row{border-top:1px solid #eee;padding-top:18px;display:flex;align-items:center;gap:5px;font-size:12px}
.card-price-row strong{font-size:14px}.card-price-row span{color:#aaa}.card-price-row a{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.13em}
.ai-button{width:100%;height:42px;background:#fff;border:1px solid #2a4b93;margin-top:17px;font-size:11px;font-weight:700;letter-spacing:.14em;cursor:pointer;transition:.2s}
.ai-button:hover{background:#eff5fa}
.portfolio-section{background:#fbfaf7;margin:0 -24px;padding:46px 24px 58px}
.portfolio-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:42px}
.filters{padding:20px 20px;background-color:#fff}
.filter-group{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid #e5e6e3}.filter-group:last-child{border:0}
.filter-group h4{font-size:10px;color:#2a4b93;margin:0 0 12px;font-weight:700}
.filter-group label{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;margin:11px 0;color:#2e3337;font-size:14px;cursor:pointer}
.filter-group input{appearance:none;width:14px;height:14px;border:1px solid #7390bd;border-radius:2px;margin:0;display:grid;place-items:center;background:#fff}
.filter-group input:checked{background:#255ca0;border-color:#255ca0}
.filter-group input:checked:after{content:"✓";font-size:10px;color:#fff;line-height:1}
.filter-group em{font-style:normal;color:#6a6f74;font-size:10px}
.portfolio-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.portfolio-head h2{font-size:42px}.portfolio-head p{margin:6px 0 0;color:#9e9b94;font-size:11px}
.portfolio-head>span{font-size:9px;letter-spacing:.18em;color:#8d8f8c;margin-bottom:5px}
.resort-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.resort-card{border:1px solid #e2dfd7;background:#fff;transition:.18s ease;min-width:0}
.resort-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(25,30,36,.07)}
.resort-card.is-hidden{display:none}
.resort-img{height:174px;position:relative;overflow:hidden}.resort-img img{width:100%;height:100%;object-fit:cover}
.stars{position:absolute;left:0;bottom:0;background:#14232c;color:#e4c689;font-size:10px;letter-spacing:2px;padding:9px 12px 8px}
.resort-body{padding:18px 17px 16px}.resort-card h3{font-size:23px;line-height:1.02;margin-bottom:9px}
.resort-body>p:not(.location){font-size:11px;color:#686968;line-height:1.55;margin:0 0 13px;min-height:53px}
.tags{display:flex;flex-wrap:wrap;gap:6px;min-height:60px;align-content:flex-start}.tags span{border:1px solid #ded8ce;padding:5px 8px;font-size:10px;color:#6c625a;letter-spacing:.04em}
.meal-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;margin-bottom:18px;align-content:flex-start}.meal-tags span{border:1px solid #ded8ce;padding:5px 8px;font-size:10px;color:#6c625a;letter-spacing:.04em;background:#fff;display:inline-flex;align-items:center;gap:6px}.meal-tags span i{font-size:11px;color:#2a4b93;line-height:1;flex:0 0 auto}
.resort-price{border-top:1px solid #ece9e2;margin-top:6px;padding-top:15px;position:relative;display:flex;flex-direction:column}.resort-price small{font-size:9px;letter-spacing:.13em;color:#655f59}.resort-price strong{font-family:var(--serif);font-size:25px;font-weight:500}.resort-price i{position:absolute;right:0;bottom:4px;color:#c1a678;font-style:normal;letter-spacing:2px;font-size:9px}
.portfolio-main{min-width:0}
.reviews-section{width:100%;padding:48px 0 2px;margin-top:48px;border-top:1px solid #e5e1d8;overflow:visible}
.reviews-slider{width:100%;overflow:hidden;position:relative;padding-bottom:2px}
.reviews-track{display:flex;align-items:stretch;gap:24px;width:100%;will-change:transform;transform:translate3d(0,0,0)}
.review-card{flex:0 0 calc((100% - 24px)/2);width:calc((100% - 24px)/2);border:1px solid #ddd;background:#fff;padding:22px;min-width:0}.review-user{display:flex;gap:12px;align-items:center}.avatar{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;background:#111;flex:0 0 auto}.avatar.pink{background:#d51a6b;font-size:22px}.review-user strong{display:block;font-size:12px}.review-user small{display:block;color:#f1b300;letter-spacing:1px;line-height:1.1}.review-user p{margin:2px 0 0!important;font-size:9px!important;color:#5c5f61!important}.review-card>p{font-size:11px;color:#5f6164;line-height:1.55;margin:14px 0 16px}.review-photos{display:flex;align-items:flex-start;gap:10px;height:auto}.review-photos img{width:112px;height:82px;border-radius:8px;object-fit:cover;flex:0 0 auto}
.planning-section{text-align:center;padding:76px 20px 92px;background:#f9f8f4;margin:0 -24px}.eyebrow.center{text-align:center;color:#746557}.planning-section h2{font-family:var(--serif);font-size:48px;line-height:.98;font-weight:500;margin:12px 0 30px}.planning-section>p:not(.eyebrow){color:#716c66;font-size:15px;line-height:1.5;margin:0}.planning-actions{display:flex;justify-content:center;gap:16px;margin-top:34px}.primary-button,.outline-button{min-width:160px;padding:16px 26px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center}.primary-button{background:#214b88;color:#fff;border:1px solid #214b88}.outline-button{background:#fff;border:1px solid #737373;color:#111}
.site-footer{width:100%;background:var(--navy);color:#fff}.footer-inner{max-width:var(--max);margin:0 auto;padding:65px 42px 76px;display:grid;grid-template-columns:1.6fr .8fr .8fr;gap:80px}.footer-about h2{font-family:var(--serif);font-size:36px;font-weight:500;margin:0 0 18px}.footer-about p,.footer-column p,.footer-column a{color:#98a6bf;font-size:13px;line-height:1.7}.footer-about p{max-width:560px;margin:0}.footer-column h3{font-size:12px;letter-spacing:.16em;margin:6px 0 27px}.footer-column>a{display:block;margin:12px 0}.footer-column .phone{font-size:16px;color:#fff;font-weight:700}.socials{display:flex;align-items:center;gap:18px;margin-top:28px}.socials a{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:#b6c2d5;font-size:18px;line-height:1;transition:color .2s ease,transform .2s ease}.socials a:hover{color:#fff;transform:translateY(-1px)}.socials i{font-size:inherit;line-height:1}
.modal{position:fixed;inset:0;display:none;z-index:99}.modal.is-open{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(2,8,23,.72)}.modal-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,calc(100% - 32px));background:#fff;padding:38px 36px;box-shadow:0 25px 90px rgba(0,0,0,.28)}.modal-dialog h2{font-family:var(--serif);font-size:42px;line-height:1;margin:5px 0 15px}.modal-dialog p{color:#666}.modal-close{position:absolute;right:16px;top:10px;background:none;border:0;font-size:30px;cursor:pointer}.modal-action{margin-top:16px;border:0}
@media (max-width:1180px){.hero h1{font-size:64px}.editorial-grid{gap:20px}.resort-grid{grid-template-columns:repeat(3,1fr)}.portfolio-layout{grid-template-columns:230px minmax(0,1fr)}.footer-inner{gap:45px}}
@media (max-width:900px){.site-header{height:70px}.brand img{width:108px}.hero{height:620px;background-position:64% center}.hero-content{left:6%;right:6%;top:52%;max-width:660px}.hero h1{font-size:56px}.hero p{font-size:15px}.benefit-grid{grid-template-columns:1fr 1fr;gap:20px}.privilege-banner{grid-template-columns:1fr}.privilege-media{min-height:410px}.privilege-media::after{top:auto;left:0;right:0;bottom:0;width:100%;height:38%;background:linear-gradient(180deg,rgba(2,8,23,0) 0%,rgba(2,8,23,.42) 42%,rgba(2,8,23,.88) 78%,var(--navy) 100%)}.privilege-copy{padding:55px 7% 65px}.section-heading-row{align-items:flex-start;flex-direction:column;gap:15px}.section-heading-row h2{font-size:48px}.editorial-grid{grid-template-columns:1fr 1fr}.editorial-card:last-child{grid-column:auto}.portfolio-layout{grid-template-columns:1fr}.filters{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.filter-group{padding:16px;border:1px solid #e5e6e3;margin:0}.resort-grid{grid-template-columns:repeat(2,1fr)}.footer-inner{grid-template-columns:1fr 1fr}.footer-about{grid-column:1/-1}}
@media (max-width:600px){.header-inner{padding:0 18px}.header-actions{gap:6px}.header-cta{height:36px;font-size:10px;padding:0 12px}.currency-control,.currency-select{height:36px}.currency-select{min-width:88px;font-size:10px;padding:0 27px 0 10px}.currency-control:after{right:10px;width:6px;height:6px}.hero{height:570px;min-height:570px;background-position:69% center}.hero-content{left:22px;right:22px;top:55%;transform:translateY(-50%)}.hero h1{font-size:43px;line-height:.96}.hero p{font-size:13px;max-width:350px}.benefit-strip{padding:18px}.benefit-grid{grid-template-columns:1fr;gap:16px}.benefit-icon{width:38px;height:38px;font-size:18px}.privilege-media{min-height:330px}.image-badge{left:18px;top:18px;font-size:9px;padding:10px 13px}.privilege-copy{padding:44px 22px 52px}.privilege-copy h2{font-size:42px}.page-shell{padding:0 16px}.editorial-section{padding:38px 0}.section-heading-row h2{font-size:43px}.editorial-grid{grid-template-columns:1fr}.editorial-card:last-child{grid-column:auto}.editorial-photo{height:225px}.portfolio-section{margin:0 -16px;padding:34px 16px}.filters{grid-template-columns:1fr}.portfolio-head{align-items:flex-start;gap:18px}.portfolio-head h2{font-size:36px}.resort-grid{grid-template-columns:1fr}.resort-img{height:230px}.reviews-section{padding-top:34px;margin-top:34px}.review-card{padding:18px}.review-photos img{width:96px;height:72px}.planning-section{margin:0 -16px;padding:58px 18px 70px}.planning-section h2{font-size:48px}.planning-actions{flex-direction:column;align-items:stretch}.desktop-only{display:none}.footer-inner{padding:48px 22px 60px;grid-template-columns:1fr;gap:35px}.footer-about{grid-column:auto}.footer-about h2{font-size:30px}}

@media (max-width:700px){.review-card{flex-basis:100%;width:100%}}

@media (prefers-reduced-motion: reduce){.reviews-track{transition:none!important;transform:none!important}}

/* Portfolio quote CTA + sticky filter sidebar */
@media (min-width:901px){
  .filters{
    position:sticky;
    top:20px;
    align-self:start;
    max-height:calc(100vh - 40px);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
}
.resort-price{padding-right:92px;min-height:58px}
.resort-price .quote-button{
  position:absolute;
  right:0;
  bottom:0;
  min-width:78px;
  height:34px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--navy);
  color:#fff;
  border:1px solid var(--navy);
  font-family:var(--sans);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  line-height:1;
  text-decoration:none;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease;
}
.resort-price .quote-button:hover{
  background:#2a4b93;
  border-color:#2a4b93;
  color:#fff;
}
@media (max-width:900px){
  .filters{position:static;max-height:none;overflow:visible}
}

/* Footer logo + contact details */
.footer-logo{display:inline-block;margin:0 0 0px;line-height:0}
.footer-logo img{display:block;width:126px;height:auto}
.footer-contact h3{margin-bottom:28px}
.footer-contact .contact-label{display:block;color:#98a6bf;font-size:12px;font-weight:600;letter-spacing:.14em;margin:0 0 8px}
.footer-contact .contact-value{display:block;color:#98a6bf;font-size:17px;line-height:1.45;margin:0 0 24px;text-decoration:none}
.footer-contact .contact-value:hover{color:#fff}
@media (max-width:900px){.footer-logo img{width:150px}}

/* Desktop density: match the visual scale of the former 90% browser-zoom view at normal 100% zoom. */
@media (min-width:1200px){
  :root{--max:1242px}
  body{font-size:12.6px}

  .site-header{height:70px}
  .header-actions{gap:9px}
  .currency-control{height:38px}
  .currency-control:after{right:13px;width:6px;height:6px}
  .currency-select{height:38px;min-width:101px;padding:0 32px 0 16px;font-size:12.6px}
  .brand img{width:113px}
  .header-cta{height:38px;padding:0 23px;font-size:12.6px}

  .hero{height:684px;min-height:558px}
  .hero-content{max-width:774px}
  .hero h1{font-size:68px;margin-bottom:22px}
  .hero p{font-size:16.2px}

  .benefit-strip{padding-top:19px;padding-bottom:19px}
  .benefit-grid{max-width:1152px;gap:31px}
  .benefit-item{gap:13px}
  .benefit-icon{width:43px;height:43px;font-size:20px}
  .benefit-item strong,.benefit-item small{font-size:10px}

  .privilege-banner{min-height:450px}
  .privilege-media{min-height:450px}
  .image-badge{top:31px;font-size:10px;padding:13px 20px}
  .privilege-copy{padding-top:49px;padding-bottom:49px}
  .eyebrow{margin-bottom:11px;font-size:10px}
  .privilege-copy h2{font-size:43px;margin-top:7px;margin-bottom:25px}
  .privilege-text{font-size:13.5px;max-width:468px;margin-bottom:27px}
  .gold-button{padding:15px 26px;font-size:11.7px;margin-bottom:18px}
  .text-link{font-size:11.7px;padding-bottom:5px}

  .page-shell{padding-left:22px;padding-right:22px}
  .editorial-section{padding:41px 0 47px}
  .section-heading-row{padding-bottom:23px;margin-bottom:31px;gap:36px}
  .section-heading-row h2{font-size:50px}
  .section-intro{max-width:437px;font-size:12.6px;margin-bottom:5px}
  .editorial-grid{gap:29px}
  .editorial-card{padding:20px}
  .editorial-photo{height:232px;margin-bottom:25px}
  .tier-label{left:16px;top:16px;padding:9px 16px;font-size:10px}
  .location{font-size:9px;margin-bottom:8px}
  .editorial-card h3{font-size:27px}
  .desc{font-size:11.7px;min-height:58px;margin:12px 0 18px}
  .card-price-row{padding-top:16px;gap:5px;font-size:10.8px}
  .card-price-row strong{font-size:12.6px}
  .card-price-row a{font-size:10px}
  .ai-button{height:38px;margin-top:15px;font-size:10px}

  .portfolio-section{margin-left:-22px;margin-right:-22px;padding:41px 22px 52px}
  .portfolio-layout{grid-template-columns:234px minmax(0,1fr);gap:38px}
  .filters{padding:18px}
  .filter-group{padding-bottom:20px;margin-bottom:20px}
  .filter-group h4{font-size:9px;margin-bottom:11px}
  .filter-group label{grid-template-columns:16px 1fr auto;gap:7px;margin:10px 0;font-size:12.6px}
  .filter-group input{width:13px;height:13px}
  .filter-group input:checked:after{font-size:9px}
  .filter-group em{font-size:9px}
  .portfolio-head{margin-bottom:20px}
  .portfolio-head h2{font-size:38px}
  .portfolio-head p{margin-top:5px;font-size:10px}
  .portfolio-head>span{font-size:8px;margin-bottom:5px}
  .resort-grid{gap:20px}
  .resort-card:hover{transform:translateY(-2px);box-shadow:0 7px 22px rgba(25,30,36,.07)}
  .resort-img{height:157px}
  .stars{font-size:9px;padding:8px 11px 7px}
  .resort-body{padding:16px 15px 14px}
  .resort-card h3{font-size:21px;margin-bottom:8px}
  .resort-body>p:not(.location){font-size:10px;margin-bottom:12px;min-height:48px}
  .tags{gap:5px;min-height:54px}
  .tags span{padding:5px 7px;font-size:9px}
  .meal-tags{gap:5px;margin-top:5px;margin-bottom:16px}
  .meal-tags span{padding:5px 7px;font-size:9px}
  .resort-price{margin-top:5px;padding-top:14px;padding-right:83px;min-height:52px}
  .resort-price small{font-size:8px}
  .resort-price strong{font-size:23px}
  .resort-price .quote-button{min-width:70px;height:31px;padding:0 13px;font-size:9px}

  .reviews-section{padding-top:43px;margin-top:43px}
  .reviews-track{gap:22px}
  .review-card{flex-basis:calc((100% - 22px)/2);width:calc((100% - 22px)/2);padding:20px}
  .review-user{gap:11px}
  .avatar{width:41px;height:41px}
  .avatar.pink{font-size:20px}
  .review-user strong{font-size:11px}
  .review-user p{font-size:8px!important}
  .review-card>p{font-size:10px;margin:13px 0 14px}
  .review-photos{gap:9px}
  .review-photos img{width:101px;height:74px;border-radius:7px}

  .planning-section{padding:68px 18px 83px;margin-left:-22px;margin-right:-22px}
  .planning-section h2{font-size:43px;margin:11px 0 27px}
  .planning-section>p:not(.eyebrow){font-size:13.5px}
  .planning-actions{gap:14px;margin-top:31px}
  .primary-button,.outline-button{min-width:144px;padding:14px 23px;font-size:11.7px}

  .footer-inner{padding:59px 38px 68px;gap:72px}
  .footer-about p,.footer-column p,.footer-column a{font-size:11.7px}
  .footer-column h3{font-size:10.8px;margin:5px 0 24px}
  .footer-column>a{margin:11px 0}
  .footer-column .phone{font-size:14.4px}
  .footer-logo{margin-bottom:16px}
  .footer-logo img{width:113px}
  .socials{gap:16px;margin-top:25px}
  .socials a{width:20px;height:20px;font-size:16px}
  .footer-contact h3{margin-bottom:25px}
  .footer-contact .contact-label{font-size:10.8px;margin-bottom:7px}
  .footer-contact .contact-value{font-size:15.3px;margin-bottom:22px}

  .modal-dialog{width:min(468px,calc(100% - 29px));padding:34px 32px}
  .modal-dialog h2{font-size:38px;margin:5px 0 14px}
  .modal-close{right:14px;top:9px;font-size:27px}
  .modal-action{margin-top:14px}

  .filters{top:18px;max-height:calc(100vh - 36px)}
}


/* Plan your trip / Quote right-side enquiry drawer */
.plan-drawer-shell{position:fixed;inset:0;z-index:180;visibility:hidden;pointer-events:none}
.plan-drawer-shell.is-mounted{visibility:visible}
.plan-drawer-shell.is-open{pointer-events:auto}
.plan-drawer-backdrop{position:absolute;inset:0;border:0;background:rgba(3,10,16,.66);opacity:0;transition:opacity .34s ease;cursor:default}
.plan-drawer-shell.is-open .plan-drawer-backdrop{opacity:1}
.pd-panel{position:absolute;top:0;right:0;width:min(620px,46vw);height:100dvh;background:#fbfaf7;color:var(--ink);transform:translate3d(104%,0,0);transition:transform .44s cubic-bezier(.22,.61,.36,1);will-change:transform;backface-visibility:hidden;box-shadow:-20px 0 55px rgba(0,0,0,.16);overflow:hidden}
.plan-drawer-shell.is-open .pd-panel{transform:translate3d(0,0,0)}
.pd-close{position:absolute;top:0px;right:8px;z-index:3;width:32px;height:36px;border:0;background:transparent;color:#74746f;font-family:Arial,sans-serif;font-size:30px;font-weight:300;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}
.pd-close:hover{color:#2a4b93}
.pd-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:48px 54px 52px 42px;scrollbar-width:thin;scrollbar-color:#c9c5bc transparent}
.pd-head{padding-right:42px;margin-bottom:30px}
.pd-eyebrow{display:block;color:#2a4b93;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px}
.pd-title{font-family:var(--serif);font-size:39px;line-height:1.02;font-weight:500;margin:0;color:var(--ink)}
.pd-form{display:flex;flex-direction:column;gap:23px}
.pd-field{min-width:0}
.pd-label{display:block;margin:0 0 8px;color:#272a2b;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.1em;line-height:1.4;text-transform:uppercase}
.pd-label>span,.pd-label span{color:#2a4b93;margin-left:3px}
.pd-input{width:100%;min-height:46px;border:1px solid #d9d4ca;border-radius:0;background:#fbfaf7;color:#24272a;font-family:var(--sans);font-size:13px;font-weight:400;line-height:1.35;padding:12px 14px;outline:0;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}
.pd-input::placeholder{color:#9a9891;opacity:1}
.pd-input:focus,.pd-dial-code:focus-within{border-color:#2a4b93;box-shadow:0 0 0 1px #2a4b93}
.pd-select{appearance:auto;cursor:pointer;padding-right:34px}
.pd-textarea{min-height:112px;resize:vertical}
.pd-tags{display:flex;flex-wrap:wrap;gap:8px}
.pd-tags button{min-height:34px;border:1px solid #d9d4ca;background:#fbfaf7;color:#77756f;padding:7px 15px;font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.025em;cursor:pointer;transition:.18s ease}
.pd-tags button:hover{border-color:#2a4b93;color:#2a4b93;background:#eff5fa}
.pd-tags button.is-active{background:#2a4b93;border-color:#2a4b93;color:#fff}
.pd-phone-row{display:grid;grid-template-columns:105px minmax(0,1fr);gap:8px}
.pd-dial-code{min-height:46px;border:1px solid #24272a;background:#fbfaf7;display:flex;align-items:center;padding:0 8px 0 12px}
.pd-flag{font-size:11px;font-weight:600;letter-spacing:.05em;margin-right:3px}
.pd-dial-code select{min-width:0;flex:1;border:0;background:transparent;color:#24272a;outline:0;font-family:var(--sans);font-size:13px;cursor:pointer;padding:0}
.pd-radio-row,.pd-radio-stack{display:flex;gap:20px;flex-wrap:wrap}
.pd-radio-stack{flex-direction:column;gap:13px}
.pd-radio-row label,.pd-radio-stack label{display:flex;align-items:center;gap:8px;color:#25282a;font-size:12px;cursor:pointer}
.pd-radio-row input,.pd-radio-stack input{width:14px;height:14px;margin:0;accent-color:#2a4b93}
.pd-calendar-wrap{margin-top:15px}
.pd-calendar{width:min(360px,100%);border:1px solid #d9d4ca;background:#fbfaf7;padding:14px}
.pd-calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.pd-calendar-head>span{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.pd-cal-nav{width:30px;height:30px;border:1px solid #d9d4ca;background:transparent;color:var(--ink);font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0}
.pd-cal-nav:hover:not(:disabled){background:#eff5fa;border-color:#2a4b93;color:#2a4b93}
.pd-cal-nav:disabled{opacity:.28;cursor:not-allowed}
.pd-weekdays,.pd-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.pd-weekdays{margin-bottom:4px}
.pd-weekdays span{text-align:center;color:#7f7d77;font-size:9px;letter-spacing:.05em;text-transform:uppercase;padding:4px 0}
.pd-calendar-days span{aspect-ratio:1/1}
.pd-calendar-days button{aspect-ratio:1/1;border:0;background:transparent;color:#24272a;font-family:var(--sans);font-size:11px;font-weight:400;cursor:pointer;padding:0;transition:.15s ease}
.pd-calendar-days button:hover:not(:disabled){background:#eff5fa;color:#2a4b93}
.pd-calendar-days button:disabled{color:rgba(16,19,23,.22);cursor:default}
.pd-calendar-days button.is-range{background:#e6edf8;color:#2a4b93}
.pd-calendar-days button.is-selected{background:#2a4b93;color:#fff}
.pd-calendar-foot{margin-top:10px;padding-top:10px;border-top:1px solid #d9d4ca;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:#77756f;font-size:10px}
.pd-help{margin:7px 0 0;color:#77756f;font-size:11px}
.pd-grid-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pd-input:disabled{opacity:.52;cursor:not-allowed}
.pd-submit-row{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding-top:4px}
.pd-submit{width:100%;min-height:46px;border:1px solid #2a4b93;background:#2a4b93;color:#fff;padding:0 24px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:.18s ease}
.pd-submit:hover{background:#214b88;border-color:#214b88}
.pd-submit-row>span{display:block;width:100%;color:#8d8a83;font-size:10px;line-height:1.55;text-align:left}
body.plan-drawer-open{overflow:hidden}
@media (max-width:900px){
  .pd-panel{width:min(620px,92vw)}
  .pd-scroll{padding:46px 46px 50px 32px}
}
@media (max-width:600px){
  .pd-panel{width:100vw}
  .pd-scroll{padding:54px 42px 38px 20px}
  .pd-close{top:52px;right:4px}
  .pd-head{padding-right:34px;margin-bottom:25px}
  .pd-title{font-size:36px}
  .pd-form{gap:20px}
  .pd-tags{gap:6px}
  .pd-tags button{padding:7px 11px;font-size:10px}
  .pd-grid-three{grid-template-columns:1fr}
  .pd-radio-row{gap:16px}
}
@media (prefers-reduced-motion:reduce){.plan-drawer-backdrop{transition-duration:.24s}.pd-panel{transition-duration:.38s}}

/* =========================================================
   Inline JSON CMS / Edit mode
   Visible only for ?edit=1&goinmyway=edit
   ========================================================= */
body.cms-edit-mode .site-header,
body.cms-edit-mode .hero,
body.cms-edit-mode .benefit-strip,
body.cms-edit-mode .privilege-banner,
body.cms-edit-mode .editorial-section,
body.cms-edit-mode .portfolio-section,
body.cms-edit-mode .reviews-section,
body.cms-edit-mode .planning-section,
body.cms-edit-mode .site-footer{position:relative}

.cms-edit-badge{position:fixed;left:16px;bottom:16px;z-index:155;display:flex;align-items:center;gap:10px;background:#020817;color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:0 10px 30px rgba(0,0,0,.2);padding:10px 13px;font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.cms-edit-badge i{width:8px;height:8px;border-radius:50%;background:#2a4b93;display:block}
.cms-edit-btn,.cms-add-btn,.cms-card-btn{border:1px solid #2a4b93;background:#fff;color:#2a4b93;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.18s ease;white-space:nowrap}
.cms-edit-btn:hover,.cms-add-btn:hover,.cms-card-btn:hover{background:#2a4b93;color:#fff}
.cms-edit-btn{position:absolute;right:18px;top:18px;z-index:40;height:34px;padding:0 14px;box-shadow:0 4px 18px rgba(2,8,23,.12)}
.hero>.cms-edit-btn,.privilege-banner>.cms-edit-btn{background:#fff;color:#2a4b93;border-color:#fff}
.hero>.cms-edit-btn:hover,.privilege-banner>.cms-edit-btn:hover{background:#2a4b93;border-color:#2a4b93;color:#fff}
.site-header>.cms-edit-btn{right:calc(3.2% + 300px);top:50%;transform:translateY(-50%);height:31px;background:rgba(255,255,255,.96);box-shadow:none}
.benefit-strip>.cms-edit-btn{top:12px}
.cms-add-btn{height:34px;padding:0 15px;margin-left:12px;background:#2a4b93;color:#fff}
.cms-add-btn:hover{background:#214b88;border-color:#214b88}
.cms-card-actions{position:absolute;right:8px;top:8px;z-index:45;display:flex;gap:6px}
.cms-card-btn{height:28px;padding:0 9px;background:rgba(255,255,255,.96);box-shadow:0 4px 13px rgba(0,0,0,.1);font-size:9px}
.cms-card-btn.cms-delete{border-color:#a53d2c;color:#a53d2c}
.cms-card-btn.cms-delete:hover{background:#a53d2c;color:#fff}
.cms-edit-mode .editorial-card,.cms-edit-mode .resort-card,.cms-edit-mode .review-card{position:relative}
.cms-testimonial-tools{display:flex;justify-content:flex-end;margin:0 0 14px}
.cms-portfolio-tools{display:flex;align-items:center;gap:8px}
.cms-portfolio-tools .cms-edit-inline{position:static;box-shadow:none;height:34px;padding:0 13px}

.cms-modal-shell{position:fixed;inset:0;z-index:300;visibility:hidden;pointer-events:none}
.cms-modal-shell.is-open{visibility:visible;pointer-events:auto}
.cms-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(2,8,23,.68);opacity:0;transition:opacity .22s ease}
.cms-modal-shell.is-open .cms-modal-backdrop{opacity:1}
.cms-modal-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-46%) scale(.985);width:min(760px,calc(100vw - 34px));max-height:92vh;background:#fbfaf7;color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.28);display:flex;flex-direction:column;overflow:hidden;opacity:0;transition:opacity .2s ease,transform .22s ease}
.cms-modal-shell.is-open .cms-modal-dialog{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cms-modal-dialog.is-wide{width:min(980px,calc(100vw - 34px))}
.cms-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:25px 28px 20px;border-bottom:1px solid #e1ddd4;background:#fff}
.cms-modal-eyebrow{display:block;color:#2a4b93;font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:5px}
.cms-modal-head h2{font-family:var(--serif);font-size:35px;line-height:1;font-weight:500;margin:0}
.cms-modal-close{width:34px;height:34px;border:0;background:transparent;color:#73736e;font-size:29px;line-height:1;cursor:pointer;padding:0;display:grid;place-items:center}
.cms-modal-close:hover{color:#2a4b93}
.cms-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:24px 28px 30px;overscroll-behavior:contain}
.cms-modal-footer{flex:0 0 auto;position:relative;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:15px 28px;border-top:1px solid #e1ddd4;background:#fff;z-index:2}
.cms-cancel-button,.cms-save-button{height:40px;padding:0 20px;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;cursor:pointer}
.cms-cancel-button{border:1px solid #cfc9bf;background:#fff;color:#34373a}
.cms-cancel-button:hover{background:#eff5fa;border-color:#2a4b93;color:#2a4b93}
.cms-save-button{border:1px solid #2a4b93;background:#2a4b93;color:#fff;min-width:132px}
.cms-save-button:hover{background:#214b88;border-color:#214b88}
.cms-save-button:disabled{opacity:.55;cursor:wait}
body.cms-modal-open{overflow:hidden}

.cms-form{display:flex;flex-direction:column;gap:20px}
.cms-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cms-form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cms-field{min-width:0}
.cms-field.full{grid-column:1/-1}
.cms-label{display:block;margin:0 0 7px;color:#272a2b;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.cms-label .optional{color:#96928a;font-weight:400;letter-spacing:.03em;text-transform:none}
.cms-input,.cms-textarea,.cms-select{width:100%;border:1px solid #d8d2c7;background:#fff;color:#24272a;border-radius:0;min-height:42px;padding:10px 12px;font-family:var(--sans);font-size:12px;outline:0;transition:.18s ease}
.cms-textarea{min-height:96px;resize:vertical;line-height:1.55}
.cms-input:focus,.cms-textarea:focus,.cms-select:focus{border-color:#2a4b93;box-shadow:0 0 0 1px #2a4b93}
.cms-help{display:block;margin-top:6px;color:#918d85;font-size:9px;line-height:1.45}
.cms-subhead{font-family:var(--serif);font-size:25px;font-weight:500;line-height:1;margin:4px 0 2px;padding-bottom:10px;border-bottom:1px solid #e5e0d7}
.cms-image-field{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:center}
.cms-image-preview{width:112px;height:78px;border:1px solid #ddd7cd;background:#f1efe9;overflow:hidden;display:grid;place-items:center;color:#8d8981;font-size:9px;text-align:center}
.cms-image-preview img{width:100%;height:100%;object-fit:cover}
.cms-file{width:100%;font-size:11px;color:#555}
.cms-file::file-selector-button{border:1px solid #2a4b93;background:#fff;color:#2a4b93;padding:8px 11px;margin-right:10px;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.cms-file::file-selector-button:hover{background:#eff5fa}
.cms-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;border:1px solid #e0dbd1;background:#fff;padding:12px}
.cms-check-grid label{display:flex;align-items:center;gap:8px;font-size:11px;cursor:pointer}
.cms-check-grid input{width:14px;height:14px;margin:0;accent-color:#2a4b93}
.cms-repeat-block{border:1px solid #e0dbd1;background:#fff;padding:14px;display:flex;flex-direction:column;gap:11px}
.cms-repeat-row{display:grid;grid-template-columns:72px 1fr 1fr;gap:10px;align-items:end}
.cms-repeat-row.benefit{grid-template-columns:70px 1fr 1fr}
.cms-repeat-row.collection{grid-template-columns:1fr 1fr}
.cms-repeat-row.currency{grid-template-columns:150px minmax(0,1fr)}
.cms-current-images{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.cms-current-image{position:relative;width:84px;height:62px;border:1px solid #ddd7cd;overflow:hidden;background:#f2f0ea}
.cms-current-image img{width:100%;height:100%;object-fit:cover}
.cms-current-image button{position:absolute;right:3px;top:3px;width:20px;height:20px;border:0;background:rgba(2,8,23,.82);color:#fff;font-size:12px;line-height:1;cursor:pointer;padding:0}
.cms-danger-note{background:#fff5f2;border:1px solid #e7c6bd;color:#7e3428;padding:10px 12px;font-size:10px;line-height:1.5}
.cms-toast{position:fixed;right:18px;bottom:18px;z-index:360;max-width:360px;background:#020817;color:#fff;padding:12px 16px;font-size:11px;line-height:1.45;box-shadow:0 12px 32px rgba(0,0,0,.24);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s ease}
.cms-toast.is-show{opacity:1;transform:translateY(0)}
.cms-toast.is-error{background:#8d3024}

@media(max-width:760px){
  .site-header>.cms-edit-btn{right:12px;top:auto;bottom:-42px;transform:none}
  .cms-edit-btn{right:10px;top:10px;height:31px;padding:0 11px}
  .cms-modal-dialog,.cms-modal-dialog.is-wide{width:100vw;max-height:100dvh;height:100dvh}
  .cms-modal-head{padding:20px 18px 16px}
  .cms-modal-body{padding:20px 18px 26px}
  .cms-modal-footer{padding:12px 18px}
  .cms-form-grid,.cms-form-grid.cols-3{grid-template-columns:1fr}
  .cms-image-field{grid-template-columns:90px 1fr}
  .cms-image-preview{width:90px;height:68px}
  .cms-check-grid{grid-template-columns:1fr}
  .cms-repeat-row,.cms-repeat-row.benefit,.cms-repeat-row.collection,.cms-repeat-row.currency{grid-template-columns:1fr}
  .cms-edit-badge{left:10px;bottom:10px}
}
.reviews-track.one-review .review-card{flex:0 0 100%;width:100%}
.avatar.has-photo{overflow:hidden;background:#f1efe9}
.avatar.has-photo img{width:100%;height:100%;object-fit:cover}
.cms-current-image.is-removed{display:none}

/* Editorial-to-footer desktop width + portfolio image proportion */
@media (min-width:1200px){
  /* Keep the compact 100%-zoom typography, but restore the content span
     from Advisor Editorial Picks through Ready to Plan to a 1380px shell. */
  .page-shell{max-width:1380px}
  .footer-inner{max-width:1380px}

  /* Larger resort imagery to match the supplied 3-card reference. */
  .resort-img{height:250px}
}

/* Final CMS/package ordering + WhatsApp polish */
.resort-price .quote-button{
  background:#284887;
  border-color:#284887;
}
.resort-price .quote-button:hover{
  background:#1a3364;
  border-color:#1a3364;
  color:#fff;
}

.floating-whatsapp{
  position:fixed;
  right:20px;
  bottom:20px;
  left:auto;
  z-index:150;
  min-width:clamp(250px,17vw,285px);
  height:clamp(50px,3.2vw,56px);
  padding:0 clamp(17px,1.25vw,21px);
  border-radius:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(11px,.8vw,14px);
  background:#07110f;
  border:1px solid #8f7956;
  color:#d5b36d;
  text-decoration:none;
  box-shadow:0 10px 24px rgba(0,0,0,.2);
  font-size:clamp(21px,1.35vw,24px);
  line-height:1;
  transition:transform .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.floating-whatsapp span{
  color:#e3ded3;
  font-family:var(--sans);
  font-size:clamp(11px,.72vw,12.5px);
  font-weight:400;
  letter-spacing:.14em;
  line-height:1;
  white-space:nowrap;
}
.floating-whatsapp:hover{
  background:#0b1714;
  border-color:#b0996b;
  color:#d5b36d;
  transform:translateY(-2px);
  box-shadow:0 15px 32px rgba(0,0,0,.28);
}
.floating-whatsapp:focus-visible{outline:2px solid #2a4b93;outline-offset:3px}

@media (max-width:760px){
  .floating-whatsapp{
    right:14px;
    bottom:14px;
    left:auto;
    min-width:0;
    width:52px;
    height:52px;
    padding:0;
    border-radius:50%;
    background:#07110f;
    border-color:#8f7956;
    color:#d5b36d;
    font-size:24px;
    box-shadow:0 9px 22px rgba(0,0,0,.22);
  }
  .floating-whatsapp span{display:none}
}
@media (max-width:420px){
  .floating-whatsapp{right:12px;bottom:12px;width:48px;height:48px;font-size:22px}
}

@media (min-width:1200px){
  .footer-logo img{width:175px}
}

/* Flexible travel-period fields + child-pricing notice */
.pd-flexible-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px;margin-top:18px}
.pd-flexible-fields>.pd-field:nth-child(3){grid-column:1}
.pd-flexible-fields[hidden]{display:none!important}
.pd-children-notice{margin:-3px 0 0;color:#b2792d;font-family:var(--sans);font-size:11px;font-weight:400;line-height:1.55}
.pd-children-notice[hidden]{display:none!important}
@media (max-width:600px){
  .pd-flexible-fields{grid-template-columns:1fr;gap:18px;margin-top:16px}
  .pd-flexible-fields>.pd-field:nth-child(3){grid-column:auto}
}


/* Plan drawer trip-tag CMS management */
.pd-tag-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.pd-tag-label-row .pd-label{margin-bottom:0}
.cms-trip-tags-manage{border:0;background:transparent;color:#2a4b93;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:3px 0;border-bottom:1px solid rgba(42,75,147,.45)}
.cms-trip-tags-manage:hover{color:#1a3364;border-bottom-color:#1a3364}
.cms-trip-tags-help{margin:0 0 18px!important;line-height:1.55}
.cms-trip-tags-list{display:flex;flex-direction:column;gap:12px}
.cms-trip-tag-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:14px;align-items:end;padding:14px;border:1px solid #e2ddd3;background:#fff}
.cms-trip-tag-row .cms-field{margin:0}
.cms-trip-tag-lock{height:42px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #ddd6ca;color:#8a857d;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.1em}
.cms-trip-tag-delete{height:42px;border:1px solid #cfb7b0;background:#fff;color:#8c352c;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.12em;cursor:pointer}
.cms-trip-tag-delete:hover{background:#fff5f2;border-color:#a53d2c}
.cms-trip-tag-add{margin-top:14px}
@media(max-width:600px){
  .cms-trip-tag-row{grid-template-columns:1fr}
  .cms-trip-tag-lock,.cms-trip-tag-delete{width:100%}
}

/* Plan drawer: post-submit advisory steps */
.pd-after-reach{
  margin-top:42px;
  padding-top:34px;
  border-top:1px solid #ded9cf;
}
.pd-after-reach>h3{
  margin:0 0 34px;
  font-family:var(--serif);
  font-size:31px;
  line-height:1.08;
  font-weight:500;
  color:var(--ink);
}
.pd-after-step{
  margin:0 0 34px;
}
.pd-after-step:last-child{
  margin-bottom:4px;
}
.pd-after-number{
  display:block;
  margin-bottom:12px;
  font-family:var(--serif);
  font-size:23px;
  line-height:1;
  font-weight:500;
  color:#2a4b93;
}
.pd-after-step h4{
  margin:0 0 11px;
  font-family:var(--serif);
  font-size:23px;
  line-height:1.15;
  font-weight:500;
  color:var(--ink);
}
.pd-after-step p{
  margin:0;
  font-family:var(--sans);
  font-size:13px;
  line-height:1.72;
  font-weight:400;
  color:#55534e;
}
@media (max-width:600px){
  .pd-after-reach{margin-top:34px;padding-top:28px}
  .pd-after-reach>h3{font-size:28px;margin-bottom:28px}
  .pd-after-step{margin-bottom:29px}
  .pd-after-number{font-size:21px;margin-bottom:10px}
  .pd-after-step h4{font-size:21px}
  .pd-after-step p{font-size:12px;line-height:1.68}
}

/* Plan drawer: editable advisory trust statistics */
.pd-trust-stats{
  position:relative;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px 18px;
  margin-top:30px;
  padding:30px 16px 28px;
  border-top:1px solid #ded9cf;
  background:#f6f2ea;
}
.pd-trust-stat{
  min-width:0;
  text-align:center;
}
.pd-trust-value{
  display:block;
  margin:0 0 6px;
  font-family:"Fraunces",var(--serif);
  font-size:29px;
  line-height:1;
  font-weight:500;
  color:#2a4b93;
}
.pd-trust-label{
  display:block;
  font-family:var(--sans);
  font-size:10px;
  line-height:1.45;
  font-weight:400;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#7a7770;
}
body.cms-edit-mode .pd-trust-stats{padding-top:42px}
#pdTrustStats>.cms-edit-btn{top:8px;right:8px;height:28px;padding:0 10px;font-size:9px;box-shadow:none}
@media (max-width:600px){
  .pd-trust-stats{gap:27px 12px;margin-top:25px;padding:28px 10px 25px}
  .pd-trust-value{font-size:26px}
  .pd-trust-label{font-size:9px;letter-spacing:.1em}
  body.cms-edit-mode .pd-trust-stats{padding-top:40px}
}

/* Plan drawer trust stats: full-bleed to drawer edges and bottom */
.pd-trust-stats{
  margin-left:-42px;
  margin-right:-54px;
  margin-bottom:-52px;
}
@media (max-width:900px){
  .pd-trust-stats{
    margin-left:-32px;
    margin-right:-46px;
    margin-bottom:-50px;
  }
}
@media (max-width:600px){
  .pd-trust-stats{
    margin-left:-20px;
    margin-right:-42px;
    margin-bottom:-38px;
  }
}


/* CMS: editable fixed 01/02/03 after-reach content */
.pd-after-reach{position:relative}
body.cms-edit-mode .pd-after-reach{padding-top:52px}
.pd-after-reach>.cms-edit-btn{top:12px;right:0;height:28px;padding:0 10px;font-size:9px;box-shadow:none}
.cms-after-reach-editor{display:grid;gap:18px}
.cms-after-reach-row{padding:18px;border:1px solid #ded9cf;background:#fbfaf7}
.cms-after-reach-row .cms-subhead{margin:0 0 14px}
@media(max-width:600px){
  body.cms-edit-mode .pd-after-reach{padding-top:48px}
  .pd-after-reach>.cms-edit-btn{top:10px;right:0}
  .cms-after-reach-row{padding:14px}
}

@media (max-width:900px){.meal-tags{margin-top:6px;margin-bottom:18px}}
@media (max-width:600px){.meal-tags{margin-top:5px;margin-bottom:16px}}


/* Package card tag hover */
.tags span,
.meal-tags span{
  cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease;
}
.tags span:hover,
.meal-tags span:hover{
  background-color:#eff5fa;
}

/* Final responsive/currency/CTA refinements */
.resort-price strong{
  font-family:"Fraunces",var(--serif);
  font-weight:300;
}

.floating-whatsapp,
.floating-whatsapp:hover{
  background:#284887;
  border-color:#284887;
  color:#fff;
}
.floating-whatsapp span{color:#fff}
.floating-whatsapp:hover{background:#1a3364;border-color:#1a3364;color:#fff}

.pd-budget-other-field[hidden]{display:none!important}

@media (min-width:1200px){
  .footer-logo{margin-bottom:0}
}

@media (max-width:900px){
  .site-header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    width:100%;
    height:50px;
    z-index:500;
  }
  body{padding-top:50px}
  .header-inner{height:50px}

  .benefit-strip{
    overflow:hidden;
    padding:14px 0;
  }
  .benefit-grid{
    width:100%;
    max-width:none;
    margin:0;
    padding:0 18px;
    display:flex;
    flex-wrap:nowrap;
    gap:18px;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    overscroll-behavior-x:contain;
  }
  .benefit-grid::-webkit-scrollbar{display:none}
  .benefit-item{
    flex:0 0 clamp(220px,68vw,285px);
    min-width:0;
    scroll-snap-align:start;
  }
}

@media (max-width:600px){
  .benefit-grid{grid-template-columns:none;gap:16px}
  .benefit-item{flex-basis:235px}
}

@media (max-width:420px){
  .floating-whatsapp{
    right:22px;
    bottom:42px;
    width:48px;
    height:48px;
    font-size:22px;
  }
}


/* Hide the top eyebrow only on the three legal/about inner pages. */
.about-page .about-copy>.eyebrow,
.cookies-page .policy-copy>.eyebrow,
.terms-page .policy-copy>.eyebrow{display:none!important}

/* Inner pages + footer legal navigation */
.footer-bottom{border-top:1px solid rgba(255,255,255,.09)}
.footer-bottom-inner{max-width:1380px;margin:0 auto;padding:18px 42px 22px;display:flex;align-items:center;justify-content:flex-start;gap:24px;flex-wrap:wrap}
.footer-copyright{color:#6f7e99;font-size:11px;line-height:1.6}
.footer-legal-links{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.footer-legal-links a{color:#98a6bf;font-size:11px;line-height:1.6;transition:color .2s ease}
.footer-legal-links a:hover{color:#fff}
.footer-legal-links a+a:before{content:"·";color:#56627a;margin-right:18px}

.inner-page-main{background:#fbfaf7;min-height:60vh}
.inner-banner{width:100%;overflow:hidden;background:#e9e7e1}
.inner-banner img{display:block;width:100%;height:clamp(300px,34vw,520px);object-fit:cover;object-position:center}
.inner-content-shell{max-width:1380px;margin:0 auto;padding:70px 42px 88px}
.about-copy{max-width:1160px;margin:0 auto}
.inner-page-title{font-family:var(--serif);font-size:54px;line-height:1;font-weight:500;text-align:center;color:var(--ink);margin:9px 0 48px}
.about-lead{font-size:18px!important;line-height:1.5!important;font-weight:600!important;font-style:italic;color:#2a4b93!important;margin:0 0 14px!important}
.about-copy>p{font-family:var(--sans);font-size:15px;line-height:1.78;color:#272d35;margin:0 0 18px}
.about-copy strong{font-weight:700;color:#111820}
.about-promise{margin-top:26px!important}
.about-more{margin-top:22px!important;margin-bottom:0!important}
.about-copy a{color:#2a4b93;text-decoration:none;border-bottom:1px solid rgba(42,75,147,.3)}
.about-copy a:hover{border-bottom-color:#2a4b93}

@media (max-width:900px){
  .inner-banner img{height:clamp(250px,48vw,400px)}
  .inner-content-shell{padding:54px 26px 68px}
  .inner-page-title{font-size:46px;margin-bottom:38px}
  .footer-bottom-inner{padding:17px 26px 22px}
}

@media (max-width:600px){
  .inner-banner img{height:260px}
  .inner-content-shell{padding:44px 20px 58px}
  .inner-page-title{font-size:40px;margin:8px 0 32px}
  .about-lead{font-size:16px!important}
  .about-copy>p{font-size:13px;line-height:1.75}
  .footer-bottom-inner{padding:16px 22px 20px;gap:10px}
  .footer-copyright{width:100%}
  .footer-legal-links{gap:12px}
  .footer-legal-links a{font-size:10px}
  .footer-legal-links a+a:before{margin-right:12px}
}

/* Cookies Policy inner page */
.cookies-banner img{object-position:center}
.policy-copy{max-width:1160px;margin:0 auto}
.policy-intro{max-width:850px;margin:-18px auto 42px;text-align:center;font-family:var(--sans);font-size:14px;line-height:1.8;color:#66635d}
.policy-accordion{border-top:1px solid #ded9cf}
.policy-item{border-bottom:1px solid #ded9cf;background:transparent}
.policy-item summary{position:relative;display:flex;align-items:center;gap:18px;min-height:70px;padding:20px 52px 20px 0;cursor:pointer;list-style:none;font-family:var(--sans);font-size:13px;line-height:1.4;font-weight:600;letter-spacing:.09em;color:#182236;text-transform:uppercase;user-select:none}
.policy-item summary::-webkit-details-marker{display:none}
.policy-item summary:before{content:"";width:8px;height:8px;border-right:1.5px solid #2a4b93;border-bottom:1.5px solid #2a4b93;transform:rotate(-45deg);transition:transform .22s ease;flex:0 0 auto}
.policy-item[open] summary:before{transform:rotate(45deg)}
.policy-item summary:after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:20px;line-height:1;font-weight:300;color:#2a4b93}
.policy-item[open] summary:after{content:"−"}
.policy-answer{padding:0 36px 30px 26px}
.policy-answer p,.policy-answer li{font-family:var(--sans);font-size:14px;line-height:1.82;color:#4f4c47;font-weight:400}
.policy-answer p{margin:0 0 15px}
.policy-answer p:last-child{margin-bottom:0}
.policy-answer ul{margin:4px 0 18px;padding:0;list-style:none}
.policy-answer li{margin:0 0 6px;padding-left:0}
.policy-answer h3{margin:24px 0 8px;font-family:var(--serif);font-size:21px;line-height:1.25;font-weight:500;color:var(--ink)}
.policy-answer h3:first-of-type{margin-top:6px}
.policy-item[open]{background:rgba(255,255,255,.32)}
.policy-item[open] summary{color:#2a4b93}

@media(max-width:900px){
  .policy-intro{margin-top:-10px;margin-bottom:34px}
  .policy-item summary{min-height:64px;padding:18px 44px 18px 0;font-size:12px}
  .policy-answer{padding:0 24px 26px 22px}
  .policy-answer p,.policy-answer li{font-size:13px;line-height:1.78}
}

@media(max-width:600px){
  .cookies-banner img{height:240px}
  .policy-intro{margin:-5px auto 28px;font-size:12px;line-height:1.75;text-align:left}
  .policy-item summary{min-height:58px;padding:16px 36px 16px 0;font-size:11px;letter-spacing:.07em;gap:12px}
  .policy-item summary:before{width:7px;height:7px}
  .policy-item summary:after{font-size:18px}
  .policy-answer{padding:0 8px 24px 19px}
  .policy-answer p,.policy-answer li{font-size:12px;line-height:1.75}
  .policy-answer h3{font-size:19px}
}

/* ============================================================
   Privileged Access -> cinematic destination slider
   Reference behavior: full background + current/next right cards
   Accent intentionally follows Goin' My Way #214b88.
   ============================================================ */
.privilege-slider{
  position:relative;
  width:100%;
  height:620px;
  overflow:hidden;
  background:#07101f;
  color:#fff;
  isolation:isolate;
}
.privilege-slider-bg,
.privilege-bg,
.privilege-slider-shade{position:absolute;inset:0}
.privilege-slider-bg{z-index:0;overflow:hidden;background:#07101f}
.privilege-bg{
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
  transform:translate3d(0,0,0) scale(1.015);
  opacity:1;
  will-change:transform,opacity;
  backface-visibility:hidden;
}
.privilege-bg-current{z-index:1;opacity:1}
.privilege-bg-current.is-zooming{animation:privilegeZoomIn 7.2s cubic-bezier(.18,.52,.22,1) both}
.privilege-bg-next{
  z-index:2;
  opacity:0;
  transition:transform 1.02s cubic-bezier(.22,.72,.18,1),opacity .92s cubic-bezier(.22,.72,.18,1);
}
.privilege-slider.is-forward .privilege-bg-next{transform:translate3d(4.5%,0,0) scale(1.045)}
.privilege-slider.is-backward .privilege-bg-next{transform:translate3d(-4.5%,0,0) scale(1.045)}
.privilege-slider.is-forward .privilege-bg-next.is-visible,
.privilege-slider.is-backward .privilege-bg-next.is-visible{transform:translate3d(0,0,0) scale(1.018);opacity:1}
.privilege-slider.is-forward .privilege-bg-current.is-bg-leaving{transform:translate3d(-3.2%,0,0) scale(1.035);opacity:0;transition:transform 1.02s cubic-bezier(.22,.72,.18,1),opacity .9s ease}
.privilege-slider.is-backward .privilege-bg-current.is-bg-leaving{transform:translate3d(3.2%,0,0) scale(1.035);opacity:0;transition:transform 1.02s cubic-bezier(.22,.72,.18,1),opacity .9s ease}
@keyframes privilegeZoomIn{from{transform:translate3d(0,0,0) scale(1.015)}to{transform:translate3d(0,0,0) scale(1.085)}}

.privilege-slider-shade{
  z-index:3;
  background:
    linear-gradient(90deg,rgba(2,8,23,.86) 0%,rgba(2,8,23,.72) 28%,rgba(2,8,23,.38) 52%,rgba(2,8,23,.18) 73%,rgba(2,8,23,.34) 100%),
    linear-gradient(180deg,rgba(2,8,23,.16) 0%,rgba(2,8,23,.08) 55%,rgba(2,8,23,.58) 100%);
  pointer-events:none;
}
.privilege-slider-inner{
  position:relative;
  z-index:5;
  width:100%;
  height:100%;
  max-width:1760px;
  margin:0 auto;
  padding:0 4.2%;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(470px,590px);
  gap:4vw;
}
.privilege-slider-copy{
  align-self:center;
  max-width:780px;
  padding-top:2px;
}
.privilege-slider-copy>*{
  will-change:transform,opacity;
  transition:transform .72s cubic-bezier(.2,.72,.18,1),opacity .62s ease;
}
.privilege-slider-copy.is-copy-out>*{
  opacity:0;
  transform:translate3d(0,-18px,0);
}
.privilege-slider-copy.is-copy-enter>*{
  opacity:0;
  transform:translate3d(0,32px,0);
}
.privilege-slider-copy.is-copy-enter.is-copy-enter-active>*{
  opacity:1;
  transform:translate3d(0,0,0);
}
.privilege-slider-copy.is-copy-enter .privilege-kicker{transition-delay:.02s}
.privilege-slider-copy.is-copy-enter .privilege-display-title{transition-delay:.08s}
.privilege-slider-copy.is-copy-enter .privilege-slider-detail{transition-delay:.16s}
.privilege-slider-copy.is-copy-enter .privilege-slider-facts{transition-delay:.24s}
.privilege-kicker{
  display:flex;
  align-items:center;
  gap:13px;
  min-height:20px;
  margin:0 0 34px;
  color:#fff;
  font-size:11px;
  line-height:1;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.privilege-kicker span{width:48px;height:2px;background:#214b88;flex:0 0 auto}
.privilege-kicker strong{font-weight:700;color:#dbe6f7}
.privilege-display-title{
  margin:0 0 28px;
  font-family:var(--serif);
  font-size:clamp(70px,6.5vw,86px);
  line-height:.78;
  font-weight:400;
  letter-spacing:-.025em;
  text-transform:uppercase;
}
.privilege-display-title span{display:block}
.privilege-title-solid{color:#fff;text-shadow:0 3px 30px rgba(0,0,0,.18)}
.privilege-title-outline{
  margin-top:22px;
  color:rgba(255,255,255,.06);
  -webkit-text-stroke:1.5px rgba(255,255,255,.44);
  text-stroke:1.5px rgba(255,255,255,.44);
}
.privilege-slider-detail{
  max-width:560px;
  padding:0 0 0 16px;
  border-left:1px solid rgba(255,255,255,.42);
  margin-bottom:36px;
}
.privilege-slider-detail h3{
  margin:0 0 12px;
  font-family:var(--serif);
  font-size:32px;
  line-height:1.1;
  font-weight:400;
  font-style:italic;
  color:#fff;
}
.privilege-slider-detail p{
  margin:0;
  max-width:520px;
  color:rgba(255,255,255,.82);
  font-size:14px;
  line-height:1.6;
}
.privilege-slider-facts{display:flex;align-items:flex-start;gap:44px;min-height:52px}
.privilege-fact{position:relative;padding-left:0;min-width:132px}
.privilege-fact span,
.privilege-fact small{display:block;text-transform:uppercase}
.privilege-fact span{margin-bottom:2px;color:#aebbd0;font-size:9px;font-weight:700;letter-spacing:.12em}
.privilege-fact strong{display:block;color:#fff;font-size:15px;font-weight:600;letter-spacing:.035em}
.privilege-fact small{margin-top:2px;color:rgba(255,255,255,.55);font-size:8px;letter-spacing:.08em}

.privilege-slider-side{position:relative;align-self:stretch;min-width:0}
.privilege-slider-arrows{
  position:absolute;
  top:30px;
  right:0;
  z-index:9;
  display:flex;
  align-items:center;
  gap:14px;
}
.privilege-arrow{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(17,24,39,.46);
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:23px;
  font-weight:300;
  line-height:1;
  cursor:pointer;
  display:grid;
  place-items:center;
  transition:background .32s ease,border-color .32s ease,transform .32s ease,box-shadow .32s ease;
  backdrop-filter:blur(7px);
  box-shadow:0 6px 22px rgba(0,0,0,.12);
}
.privilege-arrow:hover{background:rgba(33,75,136,.92);border-color:rgba(255,255,255,.28);transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,0,0,.2)}
.privilege-arrow:active{transform:translateY(0) scale(.96)}
.privilege-thumb-window{
  position:absolute;
  top:118px;
  right:0;
  width:510px;
  height:425px;
  overflow:hidden;
}
.privilege-thumb{
  position:absolute;
  top:0;
  width:318px;
  height:425px;
  border-radius:15px;
  overflow:hidden;
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
  box-shadow:0 24px 60px rgba(0,0,0,.28);
  will-change:transform,opacity,filter;
  transition:transform .92s cubic-bezier(.2,.74,.18,1),opacity .72s ease,filter .72s ease;
}
.privilege-thumb-current{left:0;z-index:3;opacity:1;border-bottom:4px solid #214b88}
.privilege-thumb-next{left:338px;z-index:2;opacity:.42;filter:saturate(.78) brightness(.86)}
.privilege-slider.is-forward .privilege-thumb-current.is-leaving{transform:translate3d(-132px,0,0) scale(.95);opacity:0;filter:saturate(.75) brightness(.7)}
.privilege-slider.is-forward .privilege-thumb-next.is-promoting{transform:translate3d(-338px,0,0);opacity:1;filter:none;border-bottom:4px solid #214b88}
.privilege-thumb-next.is-prev-start{left:0;z-index:4;transform:translate3d(-108%,0,0) scale(.96);opacity:.18;filter:saturate(.72) brightness(.76)}
.privilege-slider.is-backward .privilege-thumb-current.is-leaving{transform:translate3d(132px,0,0) scale(.95);opacity:0;filter:saturate(.75) brightness(.7)}
.privilege-slider.is-backward .privilege-thumb-next.is-prev-start.is-promoting-prev{transform:translate3d(0,0,0) scale(1);opacity:1;filter:none;border-bottom:4px solid #214b88}
.privilege-thumb-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,8,23,0) 42%,rgba(2,8,23,.18) 62%,rgba(2,8,23,.88) 100%)}
.privilege-thumb-copy{position:absolute;left:22px;right:22px;bottom:22px;z-index:2}
.privilege-thumb-copy strong{
  display:block;
  color:#fff;
  font-family:var(--sans);
  font-size:20px;
  line-height:1.08;
  font-weight:600;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.privilege-thumb-copy span{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:10px;
  color:#dce7f6;
  font-size:9px;
  line-height:1;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.privilege-thumb-copy span i{color:#214b88;font-size:10px}
.privilege-progress{position:absolute;left:0;right:0;bottom:0;height:2px;z-index:8;background:rgba(255,255,255,.12);overflow:hidden}
.privilege-progress span{display:block;width:100%;height:100%;background:#214b88;transform:scaleX(0);transform-origin:left center}
.privilege-progress span.is-running{animation:privilegeProgress 7.2s linear both}
@keyframes privilegeProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* Slider CMS controls - edit mode only */
.cms-privilege-tools{
  position:absolute;
  top:18px;
  left:50%;
  transform:translateX(-50%);
  z-index:55;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px;
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 26px rgba(2,8,23,.16);
}
.cms-privilege-tools .cms-add-btn{margin-left:0}
.cms-privilege-tools .cms-card-btn{position:static;box-shadow:none;height:34px;padding:0 12px}
.cms-edit-mode .privilege-slider{position:relative}
.privilege-slider>.cms-edit-btn{background:#fff;color:#2a4b93;border-color:#fff}
.privilege-slider>.cms-edit-btn:hover{background:#2a4b93;border-color:#2a4b93;color:#fff}

@media(max-width:1180px){
  .privilege-slider{height:590px}
  .privilege-slider-inner{grid-template-columns:minmax(0,1fr) 450px;gap:25px;padding:0 3.5%}
  .privilege-display-title{font-size:76px}
  .privilege-thumb-window{width:420px;height:386px;top:118px}
  .privilege-thumb{width:286px;height:386px}
  .privilege-thumb-next{left:305px}
  .privilege-slider.is-forward .privilege-thumb-next.is-promoting{transform:translate3d(-305px,0,0)}
}

@media(max-width:900px){
  .privilege-slider{height:720px}
  .privilege-slider-inner{display:block;padding:0 28px}
  .privilege-slider-copy{padding-top:64px;max-width:690px}
  .privilege-kicker{margin-bottom:22px}
  .privilege-display-title{font-size:70px;margin-bottom:22px;line-height:.83}
  .privilege-title-outline{margin-top:14px}
  .privilege-slider-detail{max-width:560px;margin-bottom:22px}
  .privilege-slider-detail h3{font-size:29px}
  .privilege-slider-side{position:absolute;left:28px;right:0;bottom:22px;height:232px}
  .privilege-slider-arrows{top:-50px;right:28px}
  .privilege-arrow{width:42px;height:42px;font-size:20px}
  .privilege-thumb-window{top:0;right:0;left:0;width:100%;height:220px}
  .privilege-thumb{width:180px;height:220px;border-radius:11px}
  .privilege-thumb-current{left:0}
  .privilege-thumb-next{left:196px}
  .privilege-slider.is-forward .privilege-thumb-next.is-promoting{transform:translate3d(-196px,0,0)}
  .privilege-thumb-copy{left:15px;right:15px;bottom:14px}
  .privilege-thumb-copy strong{font-size:14px}
  .privilege-thumb-copy span{font-size:8px;margin-top:7px}
}

@media(max-width:600px){
  .privilege-slider{height:650px}
  .privilege-slider-inner{padding:0 18px}
  .privilege-slider-shade{background:linear-gradient(180deg,rgba(2,8,23,.45) 0%,rgba(2,8,23,.55) 54%,rgba(2,8,23,.82) 100%)}
  .privilege-slider-copy{padding-top:52px}
  .privilege-kicker{font-size:8px;letter-spacing:.19em;margin-bottom:19px}
  .privilege-kicker span{width:30px}
  .privilege-display-title{font-size:52px;line-height:.84;margin-bottom:20px}
  .privilege-title-outline{-webkit-text-stroke:1px rgba(255,255,255,.5)}
  .privilege-slider-detail{padding-left:12px;margin-bottom:17px}
  .privilege-slider-detail h3{font-size:25px;margin-bottom:8px}
  .privilege-slider-detail p{font-size:11px;line-height:1.52;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .privilege-slider-facts{gap:22px}
  .privilege-fact{min-width:105px}
  .privilege-fact strong{font-size:13px}
  .privilege-slider-side{left:18px;bottom:18px;height:190px}
  .privilege-slider-arrows{right:18px;top:-47px}
  .privilege-arrow{width:38px;height:38px}
  .privilege-thumb-window{height:178px}
  .privilege-thumb{width:146px;height:178px}
  .privilege-thumb-next{left:159px}
  .privilege-slider.is-forward .privilege-thumb-next.is-promoting{transform:translate3d(-159px,0,0)}
  .cms-privilege-tools{top:8px;left:8px;right:8px;transform:none;justify-content:center;flex-wrap:wrap}
}

@media(prefers-reduced-motion:reduce){
  .privilege-bg-current.is-zooming,.privilege-progress span.is-running{animation:none}
  .privilege-thumb,.privilege-bg-next,.privilege-bg-current,.privilege-slider-copy>*{transition:none}
}


/* === Privileged slider motion v2 hard override === */
#privilegeSection .privilege-bg-current{
  transform:translate3d(0,0,0) scale(1.018);
  opacity:1;
}
#privilegeSection .privilege-bg-current.is-zooming{
  animation:privilegeZoomInV2 5s cubic-bezier(.18,.42,.18,1) both!important;
}
@keyframes privilegeZoomInV2{
  from{transform:translate3d(0,0,0) scale(1.018)}
  to{transform:translate3d(0,0,0) scale(1.09)}
}
#privilegeSection .privilege-bg-next{
  opacity:0;
  transition:transform 1.15s cubic-bezier(.2,.72,.16,1),opacity .92s cubic-bezier(.2,.72,.16,1)!important;
}
#privilegeSection.is-forward .privilege-bg-next{transform:translate3d(7%,0,0) scale(1.065)}
#privilegeSection.is-backward .privilege-bg-next{transform:translate3d(-7%,0,0) scale(1.065)}
#privilegeSection.is-forward .privilege-bg-next.is-visible,
#privilegeSection.is-backward .privilege-bg-next.is-visible{transform:translate3d(0,0,0) scale(1.02);opacity:1}
#privilegeSection.is-forward .privilege-bg-current.is-bg-leaving{
  transform:translate3d(-5%,0,0) scale(1.045);opacity:0;
  transition:transform 1.15s cubic-bezier(.2,.72,.16,1),opacity .9s ease!important;
}
#privilegeSection.is-backward .privilege-bg-current.is-bg-leaving{
  transform:translate3d(5%,0,0) scale(1.045);opacity:0;
  transition:transform 1.15s cubic-bezier(.2,.72,.16,1),opacity .9s ease!important;
}
#privilegeSection .privilege-slider-copy>*{
  opacity:1;transform:translate3d(0,0,0);
  transition:transform .78s cubic-bezier(.2,.72,.16,1),opacity .66s ease!important;
  will-change:transform,opacity;
}
#privilegeSection .privilege-slider-copy.is-copy-out>*{opacity:0;transform:translate3d(0,-24px,0)}
#privilegeSection .privilege-slider-copy.is-copy-enter>*{opacity:0;transform:translate3d(0,38px,0)}
#privilegeSection .privilege-slider-copy.is-copy-enter.is-copy-enter-active>*{opacity:1;transform:translate3d(0,0,0)}
#privilegeSection .privilege-slider-copy.is-copy-enter .privilege-kicker{transition-delay:.02s!important}
#privilegeSection .privilege-slider-copy.is-copy-enter .privilege-display-title{transition-delay:.10s!important}
#privilegeSection .privilege-slider-copy.is-copy-enter .privilege-slider-detail{transition-delay:.19s!important}
#privilegeSection .privilege-slider-copy.is-copy-enter .privilege-slider-facts{transition-delay:.28s!important}
#privilegeSection .privilege-arrow{
  width:50px;height:50px;border-radius:50%;
  border:1px solid rgba(255,255,255,.26);
  background:rgba(20,27,40,.42);color:#fff;
  box-shadow:none;backdrop-filter:blur(7px);
  transition:background .28s ease,border-color .28s ease,transform .28s ease,opacity .28s ease!important;
}
#privilegeSection .privilege-arrow:hover{background:rgba(33,75,136,.9);border-color:rgba(255,255,255,.38);transform:scale(1.05)}
#privilegeSection .privilege-arrow:active{transform:scale(.95)}
#privilegeSection.is-changing .privilege-arrow{pointer-events:none;opacity:.72}
#privilegeSection .privilege-thumb{
  transition:transform 1.05s cubic-bezier(.2,.74,.16,1),opacity .82s ease,filter .82s ease!important;
}
#privilegeSection .privilege-thumb-current{transform:translate3d(0,0,0) scale(1)}
#privilegeSection .privilege-thumb-next{transform:translate3d(0,0,0) scale(.96)}
#privilegeSection.is-forward .privilege-thumb-current.is-leaving{transform:translate3d(-185px,0,0) scale(.92);opacity:0;filter:saturate(.7) brightness(.66)}
#privilegeSection.is-forward .privilege-thumb-next.is-promoting{transform:translate3d(-338px,0,0) scale(1);opacity:1;filter:none;border-bottom:4px solid #214b88}
#privilegeSection .privilege-thumb-next.is-prev-start{left:0;z-index:4;transform:translate3d(-110%,0,0) scale(.94);opacity:.12;filter:saturate(.72) brightness(.72)}
#privilegeSection.is-backward .privilege-thumb-current.is-leaving{transform:translate3d(185px,0,0) scale(.92);opacity:0;filter:saturate(.7) brightness(.66)}
#privilegeSection.is-backward .privilege-thumb-next.is-prev-start.is-promoting-prev{transform:translate3d(0,0,0) scale(1);opacity:1;filter:none;border-bottom:4px solid #214b88}
#privilegeSection .privilege-thumb-next.is-next-reveal{opacity:0;transform:translate3d(58px,0,0) scale(.94)}
#privilegeSection .privilege-thumb-next.is-next-reveal.is-next-reveal-active{opacity:.42;transform:translate3d(0,0,0) scale(.96)}
#privilegeSection .privilege-progress span.is-running{animation:privilegeProgressV2 5s linear both!important}
@keyframes privilegeProgressV2{from{transform:scaleX(0)}to{transform:scaleX(1)}}


/* === FINAL Privileged thumbnail rail + arrow override === */
#privilegeSection{
  --priv-thumb-step:338px;
}

/* Reference-style dark navy circular controls. */
#privilegeSection .privilege-arrow{
  width:48px!important;
  height:48px!important;
  min-width:48px;
  border:0!important;
  border-radius:50%!important;
  background:#0b2346!important;
  color:#fff!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:24px!important;
  font-weight:400!important;
  line-height:1!important;
  padding:0 0 2px!important;
  display:grid!important;
  place-items:center!important;
  transition:background-color .24s ease,transform .24s ease,opacity .24s ease!important;
}
#privilegeSection .privilege-arrow:hover{
  background:#214b88!important;
  border:0!important;
  transform:none!important;
  box-shadow:none!important;
}
#privilegeSection .privilege-arrow:active{
  transform:scale(.94)!important;
}

/*
  One-way conveyor rail for every action:
  current -> exits left
  requested slide -> enters from right and stops at current position
  following half-card -> reveals from the right after the transition
*/
#privilegeSection .privilege-thumb{
  transition:
    transform 1.02s cubic-bezier(.22,.78,.18,1),
    opacity .82s cubic-bezier(.22,.78,.18,1),
    filter .82s cubic-bezier(.22,.78,.18,1)!important;
  will-change:transform,opacity;
}
#privilegeSection .privilege-thumb-current{
  transform:translate3d(0,0,0) scale(1)!important;
  opacity:1;
}
#privilegeSection .privilege-thumb-current.is-rail-leaving{
  transform:translate3d(calc(-1 * var(--priv-thumb-step)),0,0) scale(.96)!important;
  opacity:0!important;
  filter:saturate(.78) brightness(.76)!important;
}

#privilegeSection .privilege-thumb-next.is-rail-entering{
  transform:translate3d(0,0,0) scale(.96)!important;
  opacity:.42!important;
  filter:saturate(.78) brightness(.86)!important;
}
#privilegeSection .privilege-thumb-next.is-rail-entering.is-rail-enter-active{
  transform:translate3d(calc(-1 * var(--priv-thumb-step)),0,0) scale(1)!important;
  opacity:1!important;
  filter:none!important;
  border-bottom:4px solid #214b88!important;
}

#privilegeSection .privilege-thumb-next.is-rail-follow{
  transform:translate3d(72px,0,0) scale(.96)!important;
  opacity:0!important;
  filter:saturate(.78) brightness(.86)!important;
}
#privilegeSection .privilege-thumb-next.is-rail-follow.is-rail-follow-active{
  transform:translate3d(0,0,0) scale(.96)!important;
  opacity:.42!important;
}

/* Kill every legacy directional thumb rule so nothing can reverse/bounce. */
#privilegeSection.is-forward .privilege-thumb-current.is-leaving,
#privilegeSection.is-backward .privilege-thumb-current.is-leaving,
#privilegeSection.is-forward .privilege-thumb-next.is-promoting,
#privilegeSection.is-backward .privilege-thumb-next.is-prev-start.is-promoting-prev,
#privilegeSection .privilege-thumb-next.is-prev-start,
#privilegeSection .privilege-thumb-next.is-next-reveal,
#privilegeSection .privilege-thumb-next.is-next-reveal.is-next-reveal-active{
  animation:none!important;
}

@media(max-width:1180px){
  #privilegeSection{--priv-thumb-step:305px}
}
@media(max-width:900px){
  #privilegeSection{--priv-thumb-step:196px}
  #privilegeSection .privilege-arrow{
    width:42px!important;
    height:42px!important;
    min-width:42px;
    font-size:21px!important;
  }
}
@media(max-width:600px){
  #privilegeSection{--priv-thumb-step:159px}
  #privilegeSection .privilege-arrow{
    width:38px!important;
    height:38px!important;
    min-width:38px;
    font-size:19px!important;
  }
}

/* === Desktop compact privileged slider controls === */
@media (min-width:1181px){
  #privilegeSection{
    --priv-thumb-step:243px;
  }

  /* Keep the thumbnail rail in the same visual starting position,
     while reducing the cards by ~30%. */
  #privilegeSection .privilege-thumb-window{
    width:357px;
    height:298px;
    right:153px;
  }
  #privilegeSection .privilege-thumb{
    width:223px;
    height:298px;
    border-radius:12px;
  }
  #privilegeSection .privilege-thumb-next{
    left:243px;
  }

  /* Compact desktop arrows. */
  #privilegeSection .privilege-slider-arrows{
    gap:10px;
  }
  #privilegeSection .privilege-arrow{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    font-size:20px!important;
    padding-bottom:1px!important;
  }
}

/* === Desktop thumbnail rail alignment polish === */
@media (min-width:1181px){
  /* Active thumbnail's right edge aligns with the arrow controls.
     The extra window width continues to expose the next half-card on the right. */
  #privilegeSection .privilege-thumb-window{
    top:96px;
    right:-134px;
  }
}

/* === FINAL 3-card thumbnail rail + centered arrows + fixed desktop header === */

/* Header stays visible on desktop as well as mobile. */
.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:500;
}
body{padding-top:78px}
html{scroll-padding-top:78px}

/* Exact arrow-glyph centering inside each circle. */
#privilegeSection .privilege-arrow{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  line-height:1!important;
}
#privilegeSection .privilege-arrow i{
  display:block;
  width:1em;
  height:1em;
  line-height:1em;
  text-align:center;
  font-size:.82em;
  margin:0!important;
  transform:none!important;
}

/* Dedicated third card: it is the only card that enters during a change. */
#privilegeSection .privilege-thumb-next,
#privilegeSection .privilege-thumb-incoming{
  left:var(--priv-thumb-step)!important;
}
#privilegeSection .privilege-thumb-incoming{
  z-index:5;
  opacity:0;
  pointer-events:none;
  transform:translate3d(68px,0,0) scale(.96)!important;
  filter:saturate(.78) brightness(.86);
  border-bottom:0!important;
}
#privilegeSection .privilege-thumb-incoming.is-rail-incoming{
  opacity:.42!important;
  transform:translate3d(68px,0,0) scale(.96)!important;
}
#privilegeSection .privilege-thumb-incoming.is-rail-incoming.is-rail-incoming-active{
  opacity:1!important;
  transform:translate3d(calc(-1 * var(--priv-thumb-step)),0,0) scale(1)!important;
  filter:none!important;
  border-bottom:4px solid #214b88!important;
}

/* Current always exits left. No reverse rule exists anymore. */
#privilegeSection .privilege-thumb-current.is-rail-leaving{
  transform:translate3d(calc(-1 * var(--priv-thumb-step)),0,0) scale(.96)!important;
  opacity:0!important;
  filter:saturate(.78) brightness(.76)!important;
}

/* Existing right preview fades away underneath the incoming target. */
#privilegeSection .privilege-thumb-next.is-rail-preview-fading{
  opacity:0!important;
  transform:translate3d(-26px,0,0) scale(.94)!important;
}

/* After target settles, the following preview softly arrives from the right. */
#privilegeSection .privilege-thumb-next.is-rail-follow{
  opacity:0!important;
  transform:translate3d(62px,0,0) scale(.96)!important;
}
#privilegeSection .privilege-thumb-next.is-rail-follow.is-rail-follow-active{
  opacity:.42!important;
  transform:translate3d(0,0,0) scale(.96)!important;
}

/* Instant invisible DOM handoff after the animation; prevents the old "back" jump. */
#privilegeSection .privilege-thumb.is-rail-snap{
  transition:none!important;
}

@media(min-width:1181px){
  /* Center the complete arrow pair directly above the active thumbnail. */
  #privilegeSection .privilege-slider-arrows{
    top:30px;
    right:334px!important;
  }
}

@media(max-width:900px){
  body{padding-top:50px}
  html{scroll-padding-top:50px}
}

/* === Final desktop arrow right-alignment correction === */
@media (min-width:1181px){
  #privilegeSection .privilege-slider-arrows{
    top:30px!important;
    right:0!important;
  }
}

/* === Fixed header spacing + Plan drawer stacking correction === */
/* Desktop density uses a 70px header, so match the body offset exactly.
   This removes the 8px white strip that appeared below the fixed header. */
@media (min-width:1200px){
  body{padding-top:70px!important}
  html{scroll-padding-top:70px!important}
}

/* Mid-size desktop/tablet keeps the native 78px header height. */
@media (min-width:901px) and (max-width:1199px){
  body{padding-top:78px!important}
  html{scroll-padding-top:78px!important}
}

/* Keep the enquiry drawer above the fixed header and every landing-page banner/slider. */
.plan-drawer-shell{
  z-index:1200!important;
}
.plan-drawer-backdrop{
  z-index:1;
}
.pd-panel{
  z-index:2;
}

/* Mobile benefits: true nonstop marquee/ticker. The complete benefit set is
   duplicated in JS, so translating exactly 50% creates a seamless loop. */
@media (max-width:900px){
  #benefitSection.benefit-strip{
    overflow:hidden;
    padding:14px 0;
  }
  #benefitSection .benefit-grid.is-auto-carousel{
    width:max-content!important;
    min-width:max-content!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center;
    gap:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
    scrollbar-width:none;
    touch-action:pan-y;
    will-change:transform;
    transform:translate3d(0,0,0);
    animation-name:benefitContinuousMarquee!important;
    animation-duration:var(--benefit-marquee-duration,14s)!important;
    animation-timing-function:linear!important;
    animation-iteration-count:infinite!important;
    animation-play-state:running!important;
  }
  #benefitSection .benefit-grid.is-auto-carousel::-webkit-scrollbar{display:none}
  #benefitSection .benefit-grid.is-auto-carousel .benefit-item{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    margin:0!important;
    padding:0 34px!important;
    justify-content:flex-start;
    scroll-snap-align:none!important;
    white-space:nowrap;
  }
  #benefitSection .benefit-grid.is-auto-carousel .benefit-item>div{
    flex:0 0 auto;
  }
  @keyframes benefitContinuousMarquee{
    0%{transform:translate3d(0,0,0)}
    100%{transform:translate3d(-50%,0,0)}
  }
}

/* === Mobile form-focus zoom prevention ===
   iOS Safari auto-zooms focused controls when their computed font size is below 16px.
   Keep every editable/selectable field at 16px minimum on mobile without disabling pinch zoom. */
@media (max-width:900px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  select,
  textarea,
  .pd-input,
  .pd-dial-code select,
  .cms-input,
  .cms-select,
  .cms-textarea,
  .cms-file{
    font-size:16px!important;
  }

  input,
  select,
  textarea{
    -webkit-text-size-adjust:100%;
  }
}

/* === Query drawer travel-date field + mobile spacing/close behavior === */
.pd-close-mobile{display:none}

.pd-date-trigger{
  width:100%;
  min-height:46px;
  border:1px solid #d9d4ca;
  border-radius:0;
  background:#fbfaf7;
  color:#24272a;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  font-family:var(--sans);
  font-size:13px;
  font-weight:400;
  line-height:1.35;
  text-align:left;
  cursor:pointer;
  outline:0;
  transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,color .18s ease;
}
.pd-date-trigger:hover,
.pd-date-trigger.is-open{
  border-color:#2a4b93;
  background:#eff5fa;
}
.pd-date-trigger:focus{
  border-color:#2a4b93;
  box-shadow:0 0 0 1px #2a4b93;
}
.pd-date-trigger.is-error{
  border-color:#b84d4d;
  box-shadow:0 0 0 1px rgba(184,77,77,.16);
}
.pd-date-trigger-main{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
}
.pd-date-trigger-main i{
  flex:0 0 auto;
  color:#2a4b93;
  font-size:13px;
}
#pdDateDisplay{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pd-date-trigger:not(.has-value) #pdDateDisplay{color:#9a9891}
.pd-date-edit{
  flex:0 0 auto;
  color:#214b88;
  font-size:11px;
  font-weight:600;
  text-decoration:none;
}
.pd-calendar-panel{margin-top:10px}
.pd-calendar-panel[hidden]{display:none!important}
.pd-calendar-panel .pd-calendar{margin:0}

@media(max-width:600px){
  /* Equal horizontal breathing room on both sides of every query-form field. */
  .pd-scroll{
    position:relative;
    padding:54px 20px 38px!important;
  }
  .pd-head{padding-right:34px}

  /* Desktop close stays fixed; mobile close belongs to the scrolling content. */
  .pd-close-desktop{display:none!important}
  .pd-close-mobile{
    display:grid!important;
    position:absolute!important;
    top:14px!important;
    right:20px!important;
    z-index:4;
  }

  .pd-date-trigger{
    min-height:48px;
    font-size:16px;
  }
  .pd-date-trigger-main i{font-size:14px}
  .pd-date-edit{font-size:12px}
  .pd-calendar{width:100%}
}


/* === Portfolio live resort search === */
.portfolio-search{
  position:relative;
  width:100%;
  margin:-2px 0 24px;
}
.portfolio-search>i{
  position:absolute;
  left:16px;
  top:50%;
  transform:translateY(-50%);
  z-index:1;
  color:#5f666b;
  font-size:13px;
  pointer-events:none;
}
.portfolio-search-input{
  width:100%;
  height:48px;
  margin:0;
  padding:0 18px 0 43px;
  border:1px solid #e2e0da;
  border-radius:0;
  background:#fff;
  color:#252b30;
  font-family:var(--sans);
  font-size:14px;
  font-weight:400;
  outline:none;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.portfolio-search-input::placeholder{
  color:#a6a199;
  font-family:var(--serif);
  font-size:16px;
  font-style:italic;
  opacity:1;
}
.portfolio-search-input:focus{
  border-color:#2a4b93;
  box-shadow:0 0 0 1px rgba(42,75,147,.08);
  background:#fff;
}
.portfolio-search-input::-webkit-search-cancel-button{cursor:pointer}

@media (max-width:900px){
  .portfolio-search{margin-bottom:20px}
  .portfolio-search-input{height:48px}
  /* The desktop :last-child rule removes the OTHERS divider. On mobile every
     filter group is a card, so OTHERS must keep the same border as MEAL PLAN. */
  .filters .filter-group:last-child{
    border:1px solid #e5e6e3;
  }
}

/* === Mobile query drawer horizontal overflow hard fix ===
   Keep the enquiry panel pinned to the visual viewport and allow only vertical
   scrolling. Full-bleed trust stats now match the mobile 20px content gutters. */
@media (max-width:600px){
  .plan-drawer-shell{
    overflow:hidden!important;
    overscroll-behavior:none;
  }
  .pd-panel{
    left:0!important;
    right:0!important;
    width:auto!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  .pd-scroll{
    width:100%!important;
    max-width:100%!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain;
    overscroll-behavior-x:none;
    touch-action:pan-y;
    -webkit-overflow-scrolling:touch;
  }
  .pd-scroll > *,
  .pd-form,
  .pd-field,
  .pd-head,
  .pd-submit-row,
  .pd-after-reach{
    min-width:0!important;
    max-width:100%;
  }
  .pd-input,
  .pd-date-trigger,
  .pd-calendar,
  .pd-submit{
    min-width:0!important;
    max-width:100%!important;
  }
  .pd-phone-row{
    width:100%;
    max-width:100%;
    grid-template-columns:minmax(88px,98px) minmax(0,1fr);
  }
  .pd-dial-code,
  .pd-dial-code select{
    min-width:0!important;
    max-width:100%;
  }
  .pd-tags button{
    max-width:100%;
    white-space:normal;
  }
  .pd-after-step,
  .pd-after-step p,
  .pd-after-step h4{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
  }
  .pd-trust-stats{
    margin-left:-20px!important;
    margin-right:-20px!important;
    margin-bottom:-38px!important;
    max-width:none!important;
  }
}


/* === Header currency typography + sequential plan-form validation === */
.pd-mandatory-error{
  display:block;
  margin:0 0 6px;
  color:#c62828;
  font-family:var(--sans);
  font-size:11px;
  font-weight:600;
  line-height:1.4;
}
@media (max-width:600px){
  .header-cta,
  .currency-select{
    font-family:var(--sans)!important;
    font-size:10px!important;
    font-weight:400!important;
    line-height:1!important;
    letter-spacing:.04em!important;
  }
  .pd-mandatory-error{font-size:10px;margin-bottom:6px}
}

/* === Privileged thumbnail rail synchronized pair fix ===
   Target card and the following half-preview travel together on every change.
   This removes the old post-transition delay where the right preview popped in late. */
#privilegeSection .privilege-thumb-following{
  left:var(--priv-thumb-step)!important;
  z-index:2;
  opacity:0!important;
  pointer-events:none;
  transform:translate3d(var(--priv-thumb-step),0,0) scale(.96)!important;
  filter:saturate(.78) brightness(.86)!important;
  border-bottom:0!important;
}
#privilegeSection .privilege-thumb-following.is-rail-following{
  opacity:0!important;
  transform:translate3d(var(--priv-thumb-step),0,0) scale(.96)!important;
}
#privilegeSection .privilege-thumb-following.is-rail-following.is-rail-following-active{
  opacity:.42!important;
  transform:translate3d(0,0,0) scale(.96)!important;
  filter:saturate(.78) brightness(.86)!important;
}
/* Both transient cards use the exact same motion duration/easing. */
#privilegeSection .privilege-thumb-incoming,
#privilegeSection .privilege-thumb-following{
  transition:
    transform 1.02s cubic-bezier(.22,.78,.18,1),
    opacity .82s cubic-bezier(.22,.78,.18,1),
    filter .82s cubic-bezier(.22,.78,.18,1)!important;
}

/* === Destination thumbnail clean surface fix ===
   Remove the translucent/drop-shadow halo behind thumbnail cards so the rail
   sits cleanly on the destination background. Card content/preview opacity stays unchanged. */
#privilegeSection .privilege-thumb{
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
}

/* === Mobile destination thumbnail size upgrade ===
   Match the larger tall-card reference on phones while keeping the existing
   synchronized active + next-preview rail behaviour intact. */
@media (max-width:600px){
  #privilegeSection{
    --priv-thumb-step:226px;
    height:720px;
  }
  #privilegeSection .privilege-slider-side{
    height:266px;
    bottom:18px;
  }
  #privilegeSection .privilege-thumb-window{
    height:252px;
  }
  #privilegeSection .privilege-thumb{
    width:200px;
    height:252px;
    border-radius:12px;
  }
  #privilegeSection .privilege-thumb-next,
  #privilegeSection .privilege-thumb-incoming,
  #privilegeSection .privilege-thumb-following{
    left:226px!important;
  }
  #privilegeSection .privilege-thumb-copy{
    left:18px;
    right:18px;
    bottom:17px;
  }
  #privilegeSection .privilege-thumb-copy strong{
    font-size:19px;
    line-height:1.02;
  }
  #privilegeSection .privilege-thumb-copy span{
    margin-top:8px;
    font-size:8px;
  }
}


/* Landing form -> CRM query integration */
.pd-submit-api-error{width:100%;margin:0 0 10px;color:#b42318;font-family:var(--sans);font-size:12px;font-weight:600;line-height:1.45}
.pd-submit.is-submitting,.pd-submit:disabled{cursor:wait;opacity:.72}
.pd-query-success{margin:6px 0 28px;padding:32px 28px;border:1px solid rgba(42,75,147,.22);background:#f8f6ef;text-align:left}
.pd-query-success-kicker{display:block;margin:0 0 10px;color:#2a4b93;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.22em}
.pd-query-success h3{margin:0 0 12px;color:#151821;font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.08}
.pd-query-success p{margin:0;color:#6e6d68;font-family:var(--sans);font-size:13px;line-height:1.65}
.pd-query-reference{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding:18px 20px;border:1px solid #2a4b93;background:#fff}
.pd-query-reference span{color:#6e6d68;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.14em}
.pd-query-reference strong{color:#2a4b93;font-family:var(--serif);font-size:27px;font-weight:400;line-height:1}
@media(max-width:600px){
  .pd-query-success{margin:4px 0 24px;padding:24px 18px}
  .pd-query-success h3{font-size:26px}
  .pd-query-reference{padding:16px 14px}
  .pd-query-reference strong{font-size:24px}
}


/* === Dedicated query Thank You page === */
.thank-you-page{background:#07111f;color:#fff}
.thank-you-main{min-height:calc(100vh - 78px);background:#07111f;color:#fff}
.thank-you-shell{width:min(760px,calc(100% - 48px));margin:0 auto}
.thank-you-hero{padding:66px 0 60px;text-align:center;background:#07111f;border-bottom:0}
.thank-you-hero-shell{max-width:650px}
.thank-you-check{width:48px;height:48px;margin:0 auto 19px;border:1px solid #367fef;border-radius:50%;display:grid;place-items:center;color:#367fef;font-size:16px;background:transparent}
.thank-you-eyebrow,.thank-you-section-kicker{margin:0;color:#3989ff;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.22em}
.thank-you-hero h1{max-width:520px;margin:17px auto 12px;color:#fff;font-family:var(--serif);font-size:43px;font-weight:600;line-height:1.03;letter-spacing:0}
.thank-you-lead{max-width:560px;margin:0 auto;color:#8d9bb3;font-family:var(--sans);font-size:15px;line-height:1.65}
.thank-you-lead strong{color:#fff;font-weight:700}
.thank-you-reference{width:min(360px,100%);margin:29px auto 0;padding:14px 14px 14px 16px;border:1px solid rgba(119,150,201,.15);border-radius:3px;background:#101b2f;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;box-shadow:inset 0 0 0 1px rgba(255,255,255,.01)}
.thank-you-reference span{display:block;margin-bottom:4px;color:#697a98;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.13em}
.thank-you-reference strong{display:block;color:#4e96ff;font-family:var(--sans);font-size:19px;font-weight:700;line-height:1.2;letter-spacing:.045em;overflow-wrap:anywhere}
.thank-you-copy{height:36px;padding:0 14px;border:1px solid rgba(120,151,201,.16);border-radius:3px;background:#111c30;color:#8291a9;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.1em;cursor:pointer;transition:.18s ease}
.thank-you-copy:hover{border-color:#3989ff;color:#fff;background:#142239}
.thank-you-action-copy{margin:28px 0 14px;color:#7e8da6;font-family:var(--sans);font-size:13px;line-height:1.6}
.thank-you-actions{width:min(500px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:0}
.thank-you-primary,.thank-you-secondary{min-height:46px;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.105em;transition:.18s ease}
.thank-you-primary{border:1px solid #3d88f7;border-radius:3px 0 0 3px;background:#3d88f7;color:#fff}
.thank-you-primary:hover{background:#2f7ce9;border-color:#2f7ce9;color:#fff}
.thank-you-secondary{border:1px solid rgba(126,151,192,.18);border-left:0;border-radius:0 3px 3px 0;background:#07111f;color:#a6b2c6}
.thank-you-secondary:hover{border-color:#3989ff;background:#0a1627;color:#fff}
.thank-you-reference-note{margin:10px 0 0;color:#5d6f8c;font-family:var(--sans);font-size:11px;line-height:1.55}
.thank-you-next{padding:14px 0 40px;background:#07111f}
.thank-you-next-shell{text-align:left}
.thank-you-section-kicker{margin-bottom:18px}
.thank-you-steps{border-top:1px solid rgba(125,149,186,.13)}
.thank-you-step{display:grid;grid-template-columns:28px minmax(0,1fr);gap:16px;padding:21px 0;border-bottom:1px solid rgba(125,149,186,.13)}
.thank-you-step-number{padding-top:2px;color:#397fde;font-family:var(--serif);font-size:21px;line-height:1}
.thank-you-step-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.thank-you-step h2{margin:0 0 6px;color:#f3f6fb;font-family:var(--sans);font-size:15px;font-weight:700;line-height:1.42}
.thank-you-step p{max-width:650px;margin:0;color:#8495b0;font-family:var(--sans);font-size:14px;line-height:1.62}
.thank-you-now{margin-bottom:5px;padding:3px 9px;border:1px solid rgba(48,176,234,.55);border-radius:999px;color:#38b6ef;background:rgba(16,123,174,.14);font-family:var(--sans);font-size:8px;font-weight:700;letter-spacing:.13em;line-height:1.4}
.thank-you-assurance{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:27px 0 0;color:#60718d;font-family:var(--sans);font-size:12px}
.thank-you-assurance span{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;white-space:nowrap}
.thank-you-assurance i{color:#168ac2;font-size:11px}
.thank-you-confirmation{padding:27px 0 33px;border-top:1px solid rgba(125,149,186,.13);background:#07111f;text-align:center}
.thank-you-confirmation-shell{max-width:650px}
.thank-you-confirmation p{max-width:610px;margin:0 auto;color:#65758f;font-family:var(--sans);font-size:10px;line-height:1.55}
.thank-you-confirmation strong{color:#8d9bb3;font-weight:700}
.thank-you-legal{display:flex;align-items:center;justify-content:center;gap:20px;margin:11px 0 15px;flex-wrap:wrap}
.thank-you-legal a{color:#75849d;font-family:var(--sans);font-size:10px;transition:.18s ease}
.thank-you-legal a:hover{color:#fff}
.thank-you-brandline{color:#4d5d77!important}
.thank-you-page .floating-whatsapp{display:none!important}
@media (min-width:1200px){
  .thank-you-main{min-height:calc(100vh - 78px)}
}
@media (max-width:600px){
  .thank-you-main{min-height:calc(100vh - 70px)}
  .thank-you-shell{width:calc(100% - 36px)}
  .thank-you-hero{padding:48px 0 46px}
  .thank-you-check{width:46px;height:46px;margin-bottom:17px}
  .thank-you-hero h1{max-width:330px;margin-top:14px;font-size:36px;line-height:1.02}
  .thank-you-lead{max-width:350px;font-size:14px;line-height:1.62}
  .thank-you-reference{width:min(330px,100%);margin-top:25px;padding:13px 12px 13px 14px;gap:10px}
  .thank-you-reference strong{font-size:17px;letter-spacing:.025em}
  .thank-you-copy{height:35px;padding:0 12px;font-size:9px}
  .thank-you-action-copy{max-width:350px;margin:24px auto 13px;font-size:13px}
  .thank-you-actions{width:min(330px,100%);grid-template-columns:1fr}
  .thank-you-primary,.thank-you-secondary{min-height:46px;font-size:10.5px;border-radius:3px}
  .thank-you-secondary{border-left:1px solid rgba(126,151,192,.18);border-top:0}
  .thank-you-reference-note{font-size:10.5px}
  .thank-you-next{padding:10px 0 35px}
  .thank-you-step{grid-template-columns:24px minmax(0,1fr);gap:11px;padding:19px 0}
  .thank-you-step-number{font-size:19px}
  .thank-you-step h2{font-size:14.5px}
  .thank-you-step p{font-size:13.5px;line-height:1.62}
  .thank-you-now{font-size:7.5px}
  .thank-you-assurance{grid-template-columns:1fr;gap:11px;padding-top:23px;font-size:11.5px}
  .thank-you-assurance span{justify-content:flex-start;white-space:normal}
  .thank-you-confirmation{padding:24px 0 29px}
  .thank-you-confirmation p,.thank-you-legal a{font-size:9px}
  .thank-you-legal{gap:13px;margin:12px 0 14px}
}



/* === Destination thumbnail 3-second hold progress ===
   The active card's old static blue bottom edge is now a live countdown:
   it fills left-to-right during the hold and the JS autoplay advances at 3s. */
#privilegeSection .privilege-progress{
  display:none!important;
}
#privilegeSection .privilege-thumb-current{
  border-bottom:0!important;
}
#privilegeSection .privilege-thumb-current::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:4px;
  z-index:6;
  background:#2a4b93;
  transform:scaleX(0);
  transform-origin:left center;
  pointer-events:none;
}
#privilegeSection .privilege-thumb-current.is-progressing::after{
  animation:privilegeThumbHoldProgress 3s linear forwards!important;
}
#privilegeSection .privilege-thumb-incoming.is-rail-incoming.is-rail-incoming-active,
#privilegeSection .privilege-thumb-next.is-rail-entering.is-rail-enter-active,
#privilegeSection.is-forward .privilege-thumb-next.is-promoting,
#privilegeSection.is-backward .privilege-thumb-next.is-prev-start.is-promoting-prev{
  border-bottom:0!important;
}
@keyframes privilegeThumbHoldProgress{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}
/* Keep the visual hold indicators in sync with the new 3-second autoplay. */
#privilegeSection .privilege-bg-current.is-zooming{
  animation-duration:3s!important;
}
#privilegeSection .privilege-progress span.is-running{
  animation-duration:3s!important;
}
@media(prefers-reduced-motion:reduce){
  #privilegeSection .privilege-thumb-current.is-progressing::after{
    animation:privilegeThumbHoldProgress 3s linear forwards!important;
  }
}

/* === Destination background continuous hold zoom ===
   Keep the active banner image visibly moving for the full 3-second hold.
   The previous eased curve spent most of its scale change near the start,
   which made the image look static before autoplay advanced. */
#privilegeSection .privilege-bg-current.is-zooming{
  animation:privilegeBackgroundHoldZoom 3s linear forwards!important;
}
@keyframes privilegeBackgroundHoldZoom{
  from{transform:translate3d(0,0,0) scale(1.018)}
  to{transform:translate3d(0,0,0) scale(1.095)}
}

/* === Destination quote + editor resort-title upgrade ===
   Keep the large banner copy intact while exposing the active destination
   as a one-click enquiry preselection. */
#privilegeSection .privilege-quote-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:164px;
  min-height:42px;
  margin-top:24px;
  padding:11px 18px;
  border:1px solid rgba(255,255,255,.72);
  background:#2a4b93;
  color:#fff;
  font-family:var(--sans);
  font-size:10px;
  line-height:1;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .22s ease,border-color .22s ease,transform .22s ease,opacity .62s ease!important;
}
#privilegeSection .privilege-quote-button:hover{
  background:#355aa7;
  border-color:#fff;
  transform:translateY(-1px);
}
#privilegeSection .privilege-quote-button:active{transform:translateY(0)}
#privilegeSection .privilege-slider-copy.is-copy-enter .privilege-quote-button{transition-delay:.36s!important}

.cms-thumbnail-title-field .cms-input{
  min-height:54px;
  padding:13px 14px;
  font-size:14px;
  font-weight:500;
}

@media(max-width:600px){
  #privilegeSection .privilege-quote-button{
    min-width:142px;
    min-height:38px;
    margin-top:15px;
    padding:10px 14px;
    font-size:9px;
  }
}

/* === Mobile destination quote / thumbnail spacing fix ===
   Keep GET QUOTE clear of the thumbnail rail by reducing the phone cards
   slightly and starting the rail lower. Desktop/tablet geometry is unchanged. */
@media (max-width:600px){
  #privilegeSection{
    --priv-thumb-step:198px;
    height:720px;
  }
  #privilegeSection .privilege-slider-side{
    height:236px;
    bottom:18px;
  }
  #privilegeSection .privilege-thumb-window{
    height:224px;
  }
  #privilegeSection .privilege-thumb{
    width:176px;
    height:224px;
    border-radius:12px;
  }
  #privilegeSection .privilege-thumb-next,
  #privilegeSection .privilege-thumb-incoming,
  #privilegeSection .privilege-thumb-following{
    left:198px!important;
  }
  #privilegeSection .privilege-thumb-copy{
    left:16px;
    right:16px;
    bottom:15px;
  }
  #privilegeSection .privilege-thumb-copy strong{
    font-size:17px;
    line-height:1.02;
  }
  #privilegeSection .privilege-thumb-copy span{
    margin-top:7px;
    font-size:8px;
  }
}

/* ===== AI ITINERARY · LIVE ADMIN MASTER FORM ===== */
/* Keep native `hidden` state authoritative. Component display rules below (flex/grid)
   must never force loading/form/conditional blocks visible after JS toggles them. */
.aiq-main [hidden]{display:none!important}
.ai-itinerary-page{background:#f7f6f1;color:var(--ink)}
.aiq-main{min-height:calc(100vh - 78px);background:#f7f6f1}
.aiq-shell{width:min(1180px,calc(100% - 48px));margin:0 auto}
.aiq-hero{padding:72px 0 64px;background:#07111f;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.aiq-hero-shell{max-width:940px;text-align:center}
.aiq-eyebrow,.aiq-section-kicker,.aiq-submit-kicker{margin:0;color:#3989ff;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.22em}
.aiq-hero h1{max-width:820px;margin:16px auto 18px;color:#fff;font-family:var(--serif);font-size:54px;font-weight:500;line-height:1.02}
.aiq-hero-copy{max-width:820px;margin:0 auto;color:#8f9db5;font-size:14px;line-height:1.75}
.aiq-content{padding:48px 0 74px}
.aiq-loading,.aiq-unavailable{max-width:760px;margin:0 auto;padding:56px 36px;border:1px solid #dedbd3;background:#fff;text-align:center}
.aiq-loading{display:flex;flex-direction:column;align-items:center;gap:9px;color:#334052}
.aiq-loading strong{font-family:var(--serif);font-size:28px;font-weight:500}
.aiq-loading small{max-width:520px;color:#8b8a84;font-size:12px}
.aiq-spinner{width:34px;height:34px;margin-bottom:7px;border:2px solid #e2e8f2;border-top-color:#2a4b93;border-radius:50%;animation:aiqspin .8s linear infinite}
@keyframes aiqspin{to{transform:rotate(360deg)}}
.aiq-unavailable h2{margin:12px 0 10px;font-family:var(--serif);font-size:37px;font-weight:500;line-height:1.05}
.aiq-unavailable p:not(.aiq-section-kicker){max-width:560px;margin:0 auto 26px;color:#77746e;line-height:1.7}
.aiq-outline-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 24px;border:1px solid #2a4b93;color:#2a4b93;font-size:10px;font-weight:700;letter-spacing:.14em}
.aiq-form{display:flex;flex-direction:column;gap:24px}
.aiq-resort-summary{display:grid;grid-template-columns:340px minmax(0,1fr);min-height:286px;border:1px solid #dad8d1;background:#fff}
.aiq-resort-media{min-height:286px;overflow:hidden;background:#e9e8e3}
.aiq-resort-media img{width:100%;height:100%;object-fit:cover}
.aiq-resort-copy{padding:36px 40px;display:flex;flex-direction:column;justify-content:center}
.aiq-resort-label{margin-bottom:8px;color:#2a4b93;font-size:9px;font-weight:700;letter-spacing:.19em}
.aiq-resort-copy h2{margin:0;color:#214b88;font-family:var(--serif);font-size:39px;font-weight:500;line-height:1.04}
.aiq-resort-copy>p{margin:9px 0 0;color:#88847e;font-size:12px;line-height:1.65}
.aiq-resort-copy #aiqResortMeta{margin-top:8px;color:#665f57;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.aiq-resort-floor{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid #ece9e2}
.aiq-resort-floor span{color:#807970;font-size:9px;font-weight:700;letter-spacing:.14em}
.aiq-resort-floor strong{color:#07111f;font-size:17px}
.aiq-resort-floor small{color:#a19d95;font-size:9px}
.aiq-form-alert{position:sticky;top:12px;z-index:8;padding:14px 18px;border-left:3px solid #b64b39;background:#fff0ed;color:#7d3024;font-size:12px;font-weight:600;box-shadow:0 8px 30px rgba(0,0,0,.08)}
.aiq-section{padding:34px 38px 38px;border:1px solid #dedbd3;background:#fff}
.aiq-section-head{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid #ece9e2}
.aiq-section-head-action{grid-template-columns:44px minmax(0,1fr) auto;align-items:center}
.aiq-step{width:38px;height:38px;border:1px solid #2a4b93;display:grid;place-items:center;color:#2a4b93;font-family:var(--serif);font-size:18px}
.aiq-section-head p{margin:1px 0 4px;color:#7b7a76;font-size:9px;font-weight:700;letter-spacing:.18em}
.aiq-section-head h2{margin:0;color:#101317;font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.05}
.aiq-grid{display:grid;gap:18px 22px}
.aiq-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.aiq-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.aiq-span-2{grid-column:1/-1}
.aiq-field{display:flex;flex-direction:column;gap:7px;min-width:0;color:#31343a;font-size:10px;font-weight:700;letter-spacing:.04em}
.aiq-field>span{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.aiq-field>span b{color:#b64b39;font-weight:700}
.aiq-field>span small,.aiq-subhead small{color:#a09d96;font-size:9px;font-weight:500;letter-spacing:.02em}
.aiq-field input,.aiq-field select,.aiq-field textarea,.aiq-room-count select{width:100%;min-height:46px;border:1px solid #d8d5cd;border-radius:0;background:#fff;color:#14171c;padding:0 13px;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:0;outline:0;transition:border-color .18s ease,box-shadow .18s ease}
.aiq-field textarea{min-height:94px;padding-top:12px;resize:vertical;line-height:1.55}
.aiq-field input:focus,.aiq-field select:focus,.aiq-field textarea:focus,.aiq-room-count select:focus{border-color:#2a4b93;box-shadow:0 0 0 2px rgba(42,75,147,.08)}
.aiq-field input[readonly]{background:#f5f4f0;color:#6e6b66;cursor:default}
.aiq-phone-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px}
.aiq-phone-row .aiq-dial{background:#f5f4f0;text-align:center;padding:0 8px;color:#5a5960}
.aiq-field-hint{display:block;color:#99958e;font-size:9px;font-weight:500;line-height:1.45;letter-spacing:0}
.aiq-stay-metric{min-height:74px;padding:15px 18px;border:1px solid #e2ded6;background:#f8f7f3;display:flex;align-items:center;justify-content:space-between}
.aiq-stay-metric span{color:#918b82;font-size:9px;font-weight:700;letter-spacing:.16em}
.aiq-stay-metric strong{color:#214b88;font-family:var(--serif);font-size:30px;font-weight:500}
.aiq-stay-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.aiq-choice-card{min-height:96px;padding:20px;border:1px solid #dcd9d1;background:#fff;display:flex;gap:14px;align-items:flex-start;cursor:pointer;transition:.18s ease}
.aiq-choice-card:hover,.aiq-choice-card.is-selected{border-color:#2a4b93;background:#f7f9fd}
.aiq-choice-card.is-disabled{opacity:.42;cursor:not-allowed;background:#f2f1ee}
.aiq-choice-card input{margin-top:3px;accent-color:#2a4b93}
.aiq-choice-card span{display:flex;flex-direction:column;gap:6px}
.aiq-choice-card b{color:#1b2639;font-size:10px;letter-spacing:.12em}
.aiq-choice-card small{color:#898680;font-size:11px;line-height:1.5}
.aiq-split-box{margin-top:18px;padding:20px;border-left:3px solid #2a4b93;background:#f5f8fd}
.aiq-inline-note{margin:8px 0 0;color:#727984;font-size:10px;line-height:1.55}
.aiq-room-count{display:flex;flex-direction:column;gap:6px;min-width:150px}
.aiq-room-count span{color:#7b7a76;font-size:8px;font-weight:700;letter-spacing:.16em}
.aiq-room-count select{min-height:42px}
.aiq-age-policy{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:-5px 0 20px;padding:12px 14px;background:#f8f7f3;color:#77736c;font-size:9px}
.aiq-age-policy>strong{color:#2a4b93;font-size:8px;letter-spacing:.14em}
.aiq-age-policy span b{color:#252a31}
.aiq-rooms{display:flex;flex-direction:column;gap:18px}
.aiq-room{padding:24px;border:1px solid #dedbd3;background:#fcfbf8}
.aiq-room-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}
.aiq-room-head span{color:#2a4b93;font-size:8px;font-weight:700;letter-spacing:.18em}
.aiq-room-head h3{margin:3px 0 0;font-family:var(--serif);font-size:25px;font-weight:500;line-height:1}
.aiq-room-head>small{max-width:420px;color:#8d8982;font-size:9px;text-align:right;line-height:1.55}
.aiq-age-row{margin-top:16px;padding:14px;border:1px dashed #d8d4cb;background:#fff}
.aiq-age-row>span{display:block;margin-bottom:10px;color:#716c65;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.aiq-age-row>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.aiq-age-row label{display:flex;flex-direction:column;gap:5px}
.aiq-age-row small{color:#99958e;font-size:8px}
.aiq-age-row input{width:100%;height:40px;border:1px solid #d8d5cd;padding:0 10px;outline:0}
.aiq-room-options{margin-top:18px}
.aiq-custom-room{margin-top:18px}
.aiq-room-warning{margin:18px 0 0;padding:12px 14px;background:#fff4e8;color:#855e34;font-size:10px;line-height:1.55}
.aiq-segments{margin-top:20px;padding-top:18px;border-top:1px solid #e4e0d8;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.aiq-subhead{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:20px;color:#2a4b93;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.aiq-experience-block{margin-top:25px;padding-top:23px;border-top:1px solid #ece9e2}
.aiq-activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:13px}
.aiq-activity{min-height:72px;padding:13px;border:1px solid #ddd9d1;background:#fcfbf8;display:flex;gap:10px;align-items:flex-start;cursor:pointer;transition:.18s ease}
.aiq-activity:hover{border-color:#2a4b93}
.aiq-activity:has(input:checked){border-color:#2a4b93;background:#f5f8fd}
.aiq-activity.is-disabled{opacity:.38;cursor:not-allowed}
.aiq-activity input{margin-top:3px;accent-color:#2a4b93}
.aiq-activity span{display:flex;flex-direction:column;gap:4px}
.aiq-activity b{font-size:10px;color:#2d3138}
.aiq-activity small{font-size:9px;color:#969189}
.aiq-empty-option{grid-column:1/-1;margin:0;color:#98948d;font-size:11px}
.aiq-review-stage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:25px;padding-top:23px;border-top:1px solid #ece9e2}
.aiq-submit-panel{padding:32px 36px;background:#07111f;color:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:center}
.aiq-submit-panel h2{margin:7px 0 8px;color:#fff;font-family:var(--serif);font-size:28px;font-weight:500;line-height:1.1}
.aiq-submit-panel p:not(.aiq-submit-kicker){max-width:720px;margin:0;color:#8796af;font-size:11px;line-height:1.65}
.aiq-submit{min-width:245px;min-height:50px;padding:0 22px;border:1px solid #3d88f7;background:#3d88f7;color:#fff;display:flex;align-items:center;justify-content:center;gap:12px;font-size:10px;font-weight:700;letter-spacing:.12em;cursor:pointer;transition:.18s ease}
.aiq-submit:hover{background:#2f7ce9;border-color:#2f7ce9}
.aiq-submit:disabled{opacity:.68;cursor:wait}
.aiq-submit i{font-size:10px}

.thank-you-check.is-held{border-color:#e3a04e;color:#e3a04e}
.thank-you-ai-status{width:min(440px,100%);margin:18px auto 0;padding:12px 14px;border:1px solid rgba(90,137,207,.2);background:#0d1a2e;display:flex;align-items:center;gap:11px;text-align:left}
.thank-you-ai-status.is-held{border-color:rgba(227,160,78,.26);background:rgba(121,77,23,.12)}
.thank-you-ai-dot{width:8px;height:8px;border-radius:50%;background:#3d88f7;box-shadow:0 0 0 5px rgba(61,136,247,.10);flex:0 0 auto}
.thank-you-ai-status.is-held .thank-you-ai-dot{background:#e3a04e;box-shadow:0 0 0 5px rgba(227,160,78,.09)}
.thank-you-ai-status strong,.thank-you-ai-status small{display:block}
.thank-you-ai-status strong{color:#dce8fa;font-size:9px;letter-spacing:.12em}
.thank-you-ai-status small{margin-top:2px;color:#7f90ad;font-size:10px;line-height:1.45}

@media (max-width:900px){
  .aiq-resort-summary{grid-template-columns:280px minmax(0,1fr)}
  .aiq-resort-copy{padding:28px 30px}
  .aiq-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aiq-submit-panel{grid-template-columns:1fr}
  .aiq-submit{width:100%}
}
@media (max-width:700px){
  .aiq-main{min-height:calc(100vh - 70px)}
  .aiq-shell{width:calc(100% - 28px)}
  .aiq-hero{padding:48px 0 42px}
  .aiq-hero h1{font-size:39px}
  .aiq-hero-copy{font-size:12px}
  .aiq-content{padding:26px 0 48px}
  .aiq-resort-summary{grid-template-columns:1fr}
  .aiq-resort-media{height:215px;min-height:0}
  .aiq-resort-copy{padding:25px 22px}
  .aiq-resort-copy h2{font-size:32px}
  .aiq-section{padding:25px 18px 28px}
  .aiq-section-head,.aiq-section-head-action{grid-template-columns:38px minmax(0,1fr);gap:12px}
  .aiq-section-head-action .aiq-room-count{grid-column:1/-1;margin-top:2px}
  .aiq-section-head h2{font-size:25px}
  .aiq-step{width:34px;height:34px;font-size:16px}
  .aiq-grid-2,.aiq-grid-3,.aiq-stay-choice,.aiq-review-stage,.aiq-segments{grid-template-columns:1fr}
  .aiq-span-2{grid-column:auto}
  .aiq-room{padding:19px 14px}
  .aiq-room-head{display:block}
  .aiq-room-head>small{display:block;margin-top:8px;text-align:left}
  .aiq-age-row>div{grid-template-columns:repeat(2,minmax(0,1fr))}
  .aiq-activity-grid{grid-template-columns:1fr}
  .aiq-submit-panel{padding:26px 20px;gap:22px}
  .aiq-submit-panel h2{font-size:25px}
}
@media (max-width:430px){
  .aiq-shell{width:calc(100% - 22px)}
  .aiq-hero h1{font-size:34px}
  .aiq-phone-row{grid-template-columns:72px minmax(0,1fr)}
  .aiq-age-row>div{grid-template-columns:1fr 1fr}
  .aiq-resort-floor{align-items:flex-start;flex-direction:column;gap:3px}
  .aiq-submit{min-width:0}
}

/* ---- GMW FIX: no genuine photograph yet -> show an honest empty frame,
   never a generic or stock image. Media authority: only Active
   EXACT_ROOM_VERIFIED imagery may represent a room to a client. ---- */
.aiq-resort-media.aiq-media-empty{
  position:relative;
  min-height:220px;
  background:#eef1f4;
  border:1px dashed #c3ccd6;
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
}
.aiq-resort-media.aiq-media-empty::after{
  content:attr(data-empty-note);
  font:600 12px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;
  letter-spacing:.08em;text-transform:uppercase;color:#6b7785;
  text-align:center;padding:0 18px;
}
.aiq-resort-media img[hidden]{display:none;}

/* Support desk panel on the AI itinerary query form. Uses the site's own
   tokens so the panel belongs to the existing design, not a second palette.
   The desk shown here is resolved by the locked country order; nothing in
   this CSS decides it. */
.aiq-desk-panel{margin-top:22px;padding:26px 28px;border:1px solid var(--line);border-radius:0;background:var(--warm)}
.aiq-desk-panel h2{margin:4px 0 8px;font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.25;color:var(--deep-blue)}
.aiq-desk-panel p{margin:0;font-size:14px;line-height:1.7;color:var(--muted)}
.aiq-desk-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.aiq-desk-whatsapp,.aiq-desk-call{display:inline-flex;align-items:center;gap:9px;padding:13px 20px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-decoration:none;transition:background .2s,border-color .2s,color .2s}
.aiq-desk-whatsapp{background:var(--green);color:var(--white)}
.aiq-desk-whatsapp:hover{background:var(--navy)}
.aiq-desk-call{border:1px solid var(--line);color:var(--deep-blue);background:var(--white)}
.aiq-desk-call:hover{border-color:var(--deep-blue)}
.aiq-desk-note{margin-top:12px;font-size:12px;color:var(--muted)}
.aiq-desk-whatsapp[hidden],.aiq-desk-call[hidden],.aiq-desk-note[hidden]{display:none}
@media(max-width:700px){.aiq-desk-panel{padding:20px 18px}.aiq-desk-panel h2{font-size:22px}.aiq-desk-whatsapp,.aiq-desk-call{width:100%;justify-content:center;box-sizing:border-box}}

/* ------------------------------------------------------------------
   THE HORIZON HERO

   The usual hero darkens a photograph so that white text can sit on
   top of it. That spoils the one asset a resort page actually needs.
   Here the photograph keeps its own band at full strength, the words
   sit beneath it on the house navy where contrast is absolute, and
   the package card straddles the seam between the two.

   A version with no verified photograph collapses the band and
   becomes a navy field. Nothing is substituted, ever.
   ------------------------------------------------------------------ */
.aiq-hero{position:relative;background:#07111f;overflow:hidden}

/* the photograph, at full strength */
.aiq-hero-frame{position:relative;margin:0;height:0;overflow:hidden;background:#07111f;transition:height .5s ease}
.aiq-hero-haspic .aiq-hero-frame{height:clamp(300px,46vh,460px)}
.aiq-hero-frame img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block;
  transform:scale(1.045);animation:aiqDrift 26s ease-out forwards}
@keyframes aiqDrift{to{transform:scale(1)}}
/* Only the lower edge is touched, and only enough to marry the picture
   to the navy band below it. The rest of the frame is untouched. */
.aiq-hero-frame::after{content:"";position:absolute;inset:auto 0 0 0;height:52%;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,17,31,0) 0%,rgba(7,17,31,.30) 40%,rgba(7,17,31,.78) 76%,rgba(7,17,31,.97) 100%)}
/* the navy band the words live on */
.aiq-hero-band{position:relative;background:
  linear-gradient(180deg,#07111f 0%,#081527 58%,#07111f 100%)}
.aiq-hero-noimage .aiq-hero-band{background:
  linear-gradient(180deg,#0a1626 0%,#09141f 52%,#0d1e33 100%),
  radial-gradient(84% 70% at 76% 24%,rgba(42,75,147,.30) 0%,rgba(4,11,22,0) 72%)}
.aiq-hero-grid{position:relative;z-index:2;width:min(1180px,calc(100% - 48px));margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1fr) 392px;gap:60px;align-items:start;padding:64px 0 68px}
/* The words rise into the darkened foot of the picture, so the seam is
   crossed rather than merely approached. The overlap sits inside the
   frame's own gradient, where contrast was measured, not guessed. */
.aiq-hero-haspic .aiq-hero-grid{padding-top:0;margin-top:-92px}

.aiq-hero-words{max-width:620px;text-align:left}
.aiq-eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 20px;color:#9ec2ff;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.24em}
.aiq-eyebrow i{display:block;width:46px;height:1px;background:rgba(158,194,255,.6)}
.aiq-hero h1{max-width:none;margin:0;color:#fff;font-family:var(--serif);font-size:clamp(40px,4.3vw,60px);font-weight:400;line-height:1.0;letter-spacing:-.015em}
.aiq-hero-copy{max-width:50ch;margin:24px 0 0;color:#b9c7da;font-size:14.5px;line-height:1.8}
.aiq-hero-meta{margin:26px 0 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);
  color:#9db0c9;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;line-height:2}
.aiq-hero-meta:empty{display:none}

/* the card straddling the seam */
.aiq-glass{position:relative;margin-top:-104px;padding:32px 32px 30px;text-align:left;
  background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.7);border-top:2px solid var(--blue);
  -webkit-backdrop-filter:blur(30px) saturate(1.5);backdrop-filter:blur(30px) saturate(1.5);
  box-shadow:0 36px 76px rgba(2,8,23,.5)}
.aiq-hero-noimage .aiq-glass{margin-top:0;background:rgba(255,255,255,.93)}
@supports not ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){
  .aiq-glass{background:rgba(255,255,255,.96)}
}
.aiq-glass[hidden]{display:none}
.aiq-glass .aiq-resort-label{display:block;margin-bottom:12px;color:var(--deep-blue);font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.2em}
.aiq-glass h2{margin:0;font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.08;color:var(--navy)}
.aiq-glass #aiqResortDescription{margin:13px 0 0;color:#5c5750;font-size:12.5px;line-height:1.75}
.aiq-glass-price{margin-top:22px;padding-top:19px;border-top:1px solid rgba(16,19,23,.14)}
.aiq-glass-price>span{display:block;color:#6f6a63;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.16em}
.aiq-glass-price>strong{display:block;margin-top:8px;font-family:var(--serif);font-size:37px;font-weight:500;line-height:1;color:var(--navy)}
.aiq-glass-price>small{display:block;margin-top:8px;color:#8b8578;font-size:10px;line-height:1.6}
.aiq-glass-cta{display:block;margin-top:22px;padding:16px 20px;background:var(--green);color:#fff;text-align:center;text-decoration:none;
  font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.14em;transition:background .2s,box-shadow .2s}
.aiq-glass-cta:hover{background:#0a4740;box-shadow:0 14px 30px rgba(14,91,84,.34);color:#fff}
.aiq-glass-media-note{margin:18px 0 0;padding-top:15px;border-top:1px solid rgba(16,19,23,.14);color:#8a6f3f;font-size:11px;line-height:1.6}
.aiq-glass-media-note[hidden]{display:none}

/* the sticky action rail */
.aiq-rail{position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(7,17,31,.93);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid rgba(255,255,255,.14);
  animation:aiqRailUp .32s ease-out}
.aiq-rail[hidden]{display:none}
@keyframes aiqRailUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.aiq-rail-inner{width:min(1180px,calc(100% - 48px));margin:0 auto;display:flex;align-items:center;gap:26px;padding:14px 0}
.aiq-rail-text{min-width:0;flex:1 1 auto}
.aiq-rail-text strong{display:block;font-family:var(--serif);font-size:19px;font-weight:500;color:#fff;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aiq-rail-text span{display:block;margin-top:3px;color:#8fa0b8;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.aiq-rail-price{flex:0 0 auto;text-align:right;padding-right:22px;border-right:1px solid rgba(255,255,255,.16)}
.aiq-rail-price span{display:block;color:#8fa0b8;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.16em}
.aiq-rail-price strong{display:block;margin-top:3px;font-family:var(--serif);font-size:22px;font-weight:500;color:#fff;line-height:1}
.aiq-rail-cta{flex:0 0 auto;padding:15px 26px;border:0;cursor:pointer;background:var(--green);color:#fff;
  font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.13em;transition:background .2s}
.aiq-rail-cta:hover{background:#0a4740}

@media(max-width:1040px){
  .aiq-hero-haspic .aiq-hero-frame{height:clamp(240px,34vh,320px)}
  .aiq-hero-grid{grid-template-columns:minmax(0,1fr);gap:30px;padding:48px 0 52px}
  .aiq-hero-haspic .aiq-hero-grid{padding-top:52px}
  .aiq-hero-words{max-width:none}
  .aiq-hero h1{font-size:clamp(31px,7.4vw,44px)}
  .aiq-hero-copy{max-width:none;margin-top:18px;font-size:13.5px;line-height:1.75}
  .aiq-hero-meta{margin-top:20px;padding-top:18px;font-size:9px;letter-spacing:.14em;line-height:1.9}
  .aiq-glass{margin-top:0;padding:26px 22px}
  .aiq-glass h2{font-size:26px}
  .aiq-glass-price>strong{font-size:31px}
  .aiq-rail-inner{gap:14px;padding:11px 0}
  .aiq-rail-text{display:none}
  .aiq-rail-price{padding-right:14px}
  .aiq-rail-cta{flex:1 1 auto;text-align:center;padding:15px 14px}
}
@media(prefers-reduced-motion:reduce){
  .aiq-hero-frame img{animation:none;transform:none}
  .aiq-rail{animation:none}
  .aiq-hero-frame{transition:none}
}

/* ==================================================================
   HERO REEL

   The film sits IN FRONT of the resort photograph inside the same frame,
   never instead of it. If the reel never starts - switched off, files
   absent, reduced motion, data saver, a codec the browser will not take -
   the element stays hidden and the photograph behind it is the hero,
   which is the page exactly as it was before the reel existed.

   The footage is generated. The label saying so is part of the design,
   not decoration.
   ================================================================== */
.aiq-hero-hasreel .aiq-hero-frame{height:clamp(300px,46vh,460px)}
.aiq-hero-reel{position:absolute;inset:0;width:100%;height:100%;display:block;
  object-fit:cover;object-position:center 46%;background:#07111f;z-index:1}
.aiq-hero-reel[hidden]{display:none}
/* the gradient that marries the frame to the navy band must sit on top of
   the film, or the seam the whole hero depends on disappears */
.aiq-hero-frame::after{z-index:2}

.aiq-hero-genlabel{position:absolute;left:16px;bottom:11px;z-index:3;margin:0;
  font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:rgba(255,255,255,.60);
  text-shadow:0 1px 3px rgba(0,0,0,.55);pointer-events:none}
.aiq-hero-genlabel[hidden]{display:none}

.aiq-hero-sound{position:absolute;right:16px;top:16px;z-index:3;
  display:inline-flex;align-items:center;gap:8px;padding:9px 15px;
  border:1px solid rgba(255,255,255,.32);border-radius:999px;cursor:pointer;
  background:rgba(7,17,31,.44);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  color:#fff;font-family:var(--sans);font-size:9.5px;font-weight:700;letter-spacing:.14em;
  transition:background .2s,border-color .2s}
.aiq-hero-sound:hover{background:rgba(7,17,31,.72);border-color:rgba(255,255,255,.58)}
.aiq-hero-sound:focus-visible{outline:2px solid #fff;outline-offset:3px}
.aiq-hero-sound[hidden]{display:none}
.aiq-hero-sound-ico{width:9px;height:9px;border-radius:50%;
  border:1.5px solid currentColor;flex:0 0 auto}
.aiq-hero-sound[aria-pressed="true"] .aiq-hero-sound-ico{background:currentColor}

/* With a reel in the frame there IS a picture, so the band must use the
   with-picture gradient even when this published version has no verified
   resort photograph. Deliberately more specific than .aiq-hero-noimage
   rather than fighting that class in script - the image handler and the
   reel handler both finish asynchronously and whichever lands last would
   otherwise win. */
.aiq-hero-hasreel.aiq-hero-noimage .aiq-hero-band{background:
  linear-gradient(180deg,#07111f 0%,#081527 58%,#07111f 100%)}

@media(max-width:1040px){
  .aiq-hero-hasreel .aiq-hero-frame{height:clamp(240px,34vh,320px)}
  .aiq-hero-sound{right:12px;top:12px;padding:8px 12px;font-size:9px}
  .aiq-hero-genlabel{left:12px;bottom:9px;font-size:8.5px}
}
@media(prefers-reduced-motion:reduce){
  /* belt and braces - the script also never starts it */
  .aiq-hero-reel{display:none}
}

/* ==================================================================
   AI itinerary form — visual pass.

   Everything below restyles markup that already exists. No selector
   here changes what the form collects, validates or submits; the
   villa cards set the same <select> the form has always used.
   Colour, type and spacing come from the site tokens.
   ================================================================== */

.aiq-content{background:#efece5;padding:0 0 76px}
.aiq-form{display:flex;flex-direction:column;gap:20px;margin-top:-56px;position:relative;z-index:3}

/* --- section cards --- */
.aiq-section{position:relative;background:var(--white);border:1px solid #e3ded3;box-shadow:0 18px 44px rgba(16,19,23,.07);padding:40px 44px 44px}
.aiq-section-head{display:flex;align-items:flex-start;gap:22px;padding-bottom:22px;margin-bottom:30px;border-bottom:1px solid #efebe2}
.aiq-section-head-action{justify-content:space-between;flex-wrap:wrap}
.aiq-section-head .aiq-step{flex:0 0 auto;width:58px;height:58px;display:flex;align-items:center;justify-content:center;
  border:1px solid #d9e2ee;background:#f6f9fd;color:var(--deep-blue);font-family:var(--serif);font-size:25px;font-weight:500;line-height:1}
.aiq-section-head h2{margin:7px 0 0;font-family:var(--serif);font-size:33px;font-weight:500;line-height:1.08;color:var(--navy);letter-spacing:-.01em}
.aiq-section-kicker{margin:0}

/* --- fields --- */
.aiq-grid{display:grid;gap:22px 26px}
.aiq-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.aiq-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.aiq-field{display:flex;flex-direction:column}
.aiq-field>span{margin-bottom:9px;color:#4f5661;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.aiq-field>span b{color:#a2501f;font-weight:700}
.aiq-field input,.aiq-field select,.aiq-field textarea,.aiq-phone-row input,.aiq-phone-row select{
  width:100%;min-height:54px;padding:14px 16px;border:1px solid #ddd7cc;background:var(--white);
  font-family:var(--sans);font-size:14px;color:var(--ink);border-radius:0;transition:border-color .18s,box-shadow .18s,background .18s}
.aiq-field textarea{min-height:124px;line-height:1.65;resize:vertical}
.aiq-field select{appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,#6b7584 50%),linear-gradient(135deg,#6b7584 50%,transparent 50%);
  background-position:calc(100% - 22px) 25px,calc(100% - 16px) 25px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.aiq-field input:hover,.aiq-field select:hover,.aiq-field textarea:hover{border-color:#c2bbad}
.aiq-field input:focus,.aiq-field select:focus,.aiq-field textarea:focus{
  outline:none;border-color:var(--deep-blue);box-shadow:0 0 0 3px rgba(33,75,136,.14)}
.aiq-field input[readonly]{background:#f6f4ef;color:#6f6a63}
.aiq-field-hint{margin-top:9px;color:#8b8578;font-size:11px;line-height:1.55}
.aiq-phone-row{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px}

/* --- nights / days readouts --- */
.aiq-stay-metric{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:19px 22px;border:1px solid #e3ded3;background:#faf8f4}
.aiq-stay-metric span{color:#6f7682;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.15em}
.aiq-stay-metric strong{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1;color:var(--deep-blue)}

/* --- one villa vs split stay --- */
.aiq-stay-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.aiq-choice-card{padding:24px 26px;border:1px solid #ddd7cc;background:var(--white);cursor:pointer;transition:border-color .18s,box-shadow .18s,background .18s}
.aiq-choice-card:hover{border-color:#b9c7dd;box-shadow:0 12px 28px rgba(16,19,23,.07)}
.aiq-choice-card:has(input:checked){border-color:var(--deep-blue);background:#f7faff;box-shadow:0 12px 30px rgba(33,75,136,.13)}
.aiq-choice-card.is-disabled{opacity:.5;cursor:not-allowed}

/* --- resort age policy --- */
.aiq-age-policy{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin-bottom:26px;padding:0;
  border:1px solid #e7dcc4;background:linear-gradient(180deg,#fdfaf3 0%,#fbf6ec 100%)}
.aiq-age-policy>strong{padding:16px 22px;color:#8a6f3f;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.15em;border-right:1px solid #eee2cc}
.aiq-age-row{display:flex;flex-wrap:wrap;gap:0;flex:1}
.aiq-age-row>div{padding:16px 22px;border-right:1px solid #f0e6d2}
.aiq-age-row>div:last-child{border-right:0}
.aiq-age-row>div>span:first-child,.aiq-age-row>span{color:var(--ink);font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.05em}

/* --- room card --- */
.aiq-room{padding:30px 32px;margin-top:20px;border:1px solid #e3ded3;background:#faf8f4}
.aiq-room-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid #ebe6db}
.aiq-room-head span{color:var(--deep-blue);font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.17em}
.aiq-room-head h3{margin:7px 0 0;font-family:var(--serif);font-size:26px;font-weight:500;line-height:1.1;color:var(--navy)}
.aiq-room-head small{color:#8b8578;font-size:11px;line-height:1.6;text-align:right}
.aiq-room-options{margin-top:22px}

/* --- the villa choice, made by sight ---------------------------------
   A card is a shortcut to the select above it, which stays the source
   of truth. A villa with no Active, attested EXACT_ROOM_VERIFIED
   photograph in this published version shows a labelled frame; no
   resort shot and no stand-in is ever substituted. */
.aiq-field-villa{display:none}
.aiq-villas{display:grid;grid-template-columns:repeat(auto-fit,minmax(246px,1fr));gap:18px;margin-top:24px}
.aiq-villa{position:relative;display:flex;flex-direction:column;padding:0;text-align:left;cursor:pointer;
  border:1px solid #ddd7cc;background:var(--white);font:inherit;color:inherit;overflow:hidden;
  transition:border-color .18s,box-shadow .2s,transform .2s}
.aiq-villa:hover{border-color:#b9c7dd;box-shadow:0 16px 34px rgba(16,19,23,.1);transform:translateY(-2px)}
.aiq-villa:focus-visible{outline:none;border-color:var(--deep-blue);box-shadow:0 0 0 3px rgba(33,75,136,.18)}
.aiq-villa.is-chosen{border-color:var(--deep-blue);box-shadow:0 16px 36px rgba(33,75,136,.17)}
.aiq-villa-shot{display:block;height:158px;background:#e8e5dd center/cover no-repeat}
.aiq-villa-shot.is-empty{display:flex;align-items:center;justify-content:center;border-bottom:1px dashed #cdc6b8;background:#f4f1ea}
.aiq-villa-shot.is-empty em{font-style:normal;text-align:center;color:#8f887a;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.13em;line-height:1.8}
.aiq-villa-body{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px}
.aiq-villa-name{font-family:var(--serif);font-size:21px;font-weight:500;line-height:1.15;color:var(--navy)}
.aiq-villa-meta{color:#8b8578;font-size:11px;letter-spacing:.02em}
.aiq-villa-occ{color:#6f7682;font-size:11px}
.aiq-villa-flag{align-self:flex-start;margin-top:4px;padding:5px 9px;background:#eef3fb;color:var(--deep-blue);font-size:9px;font-weight:700;letter-spacing:.12em}
.aiq-villa-tick{position:absolute;top:14px;right:14px;width:26px;height:26px;border:1px solid rgba(255,255,255,.75);background:rgba(7,17,31,.42);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .18s,border-color .18s}
.aiq-villa.is-chosen .aiq-villa-tick{background:var(--deep-blue);border-color:var(--deep-blue)}
.aiq-villa.is-chosen .aiq-villa-tick::after{content:"";position:absolute;left:8px;top:4px;width:7px;height:13px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}

/* --- submit --- */
.aiq-submit-panel{display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap;
  margin-top:4px;padding:40px 44px;background:linear-gradient(135deg,#0b1a2d 0%,#07111f 62%,#060e1a 100%);color:#fff}
.aiq-submit-panel h2{margin:8px 0 12px;font-family:var(--serif);font-size:31px;font-weight:500;line-height:1.14;color:#fff;max-width:22ch}
.aiq-submit-panel p{margin:0;max-width:62ch;color:#93a2b8;font-size:12.5px;line-height:1.75}
.aiq-submit{display:inline-flex;align-items:center;gap:12px;padding:19px 30px;border:0;cursor:pointer;
  background:var(--green);color:#fff;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.14em;
  transition:background .2s,box-shadow .2s,transform .2s}
.aiq-submit:hover{background:#0a4740;box-shadow:0 16px 34px rgba(14,91,84,.38);transform:translateY(-1px)}

@media(max-width:900px){
  .aiq-form{margin-top:-32px;gap:16px}
  .aiq-section{padding:28px 20px 30px}
  .aiq-section-head{gap:16px;margin-bottom:22px}
  .aiq-section-head .aiq-step{width:46px;height:46px;font-size:20px}
  .aiq-section-head h2{font-size:25px}
  .aiq-grid-2,.aiq-grid-3,.aiq-stay-choice{grid-template-columns:minmax(0,1fr)}
  .aiq-room{padding:22px 18px}
  .aiq-age-policy>strong{border-right:0;border-bottom:1px solid #eee2cc;width:100%}
  .aiq-submit-panel{padding:28px 20px}
  .aiq-submit{width:100%;justify-content:center}
}
.aiq-villas-wrap{margin-top:26px}
.aiq-villas-label{margin:0;color:#4f5661;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.aiq-villas-label b{color:#a2501f}
.aiq-villas-hint{margin:14px 0 0;color:#8b8578;font-size:11px;line-height:1.65;max-width:80ch}
.aiq-villa-other .aiq-villa-shot.is-empty{border-bottom-style:solid;border-bottom-color:#e3ded3}

/* --- corrections after looking at the rendered page --- */

/* The room-count control is a third child of the head, so space-between was
   pushing the heading into the middle of the card. */
.aiq-section-head-action{justify-content:flex-start}
.aiq-section-head-action .aiq-room-count{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.aiq-room-count>span{color:#6f7682;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.15em}
.aiq-room-count select{min-width:170px;min-height:48px;padding:12px 40px 12px 15px;border:1px solid #ddd7cc;background:var(--white);
  appearance:none;-webkit-appearance:none;font-family:var(--sans);font-size:13px;color:var(--ink);cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,#6b7584 50%),linear-gradient(135deg,#6b7584 50%,transparent 50%);
  background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.aiq-room-count select:focus{outline:none;border-color:var(--deep-blue);box-shadow:0 0 0 3px rgba(33,75,136,.14)}

/* The age bands are <span> siblings, not rows — they were running together. */
.aiq-age-policy>span{padding:15px 22px;border-right:1px solid #f0e6d2;color:#6b6456;font-family:var(--sans);font-size:11px;letter-spacing:.02em;white-space:nowrap}
.aiq-age-policy>span:last-child{border-right:0}
.aiq-age-policy>span b{color:var(--ink);font-weight:700;letter-spacing:.06em}

/* A quiet editorial mark on each card. */
.aiq-section::before{content:"";position:absolute;left:0;top:0;width:64px;height:2px;background:var(--blue)}

/* The headline had too narrow a measure for this panel. */
.aiq-submit-panel>div{flex:1 1 420px}
.aiq-submit-panel h2{max-width:30ch}

/* An empty readout should read as "to be filled", not as a broken dash. */
.aiq-stay-metric strong:empty::after{content:"—";color:#b9b3a7}
/* On a tile with no photograph the dark glass tick read as a stray grey
   box. There it becomes a hairline instead; over a photograph it stays. */
.aiq-villa:has(.aiq-villa-shot.is-empty) .aiq-villa-tick{background:transparent;border-color:#cdc6b8}
.aiq-villa.is-chosen:has(.aiq-villa-shot.is-empty) .aiq-villa-tick{background:var(--deep-blue);border-color:var(--deep-blue)}
/* Only on the enquiry page, and only while the action rail is showing. */
body.ai-itinerary-page.gmw-rail-on .floating-whatsapp{opacity:0;visibility:hidden;transition:opacity .2s}
.aiq-villas-none{margin:12px 0 4px;padding:16px 18px;border:1px solid #e7dcc4;background:linear-gradient(180deg,#fdfaf3 0%,#fbf6ec 100%)}
.aiq-villas-none strong{display:block;color:var(--ink);font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.03em}
.aiq-villas-none span{display:block;margin-top:6px;color:#6b6456;font-size:12px;line-height:1.65}

/* ==================================================================
   THE COMPANION

   Every luxury operator we looked at hands the guest a beautiful
   brochure and then a cold column of dropdowns. This panel keeps the
   resort, the guest's own choices and a named human beside them for
   the whole form. It reads the form; it never writes to it.
   ================================================================== */
.aiq-withpanel{display:grid;grid-template-columns:minmax(0,1fr) 352px;gap:28px;align-items:start}
.aiq-companion{position:sticky;top:24px;background:var(--white);border:1px solid #e3ded3;
  box-shadow:0 18px 44px rgba(16,19,23,.09);overflow:hidden}
.aiq-companion[hidden]{display:none}

/* the picture, cross-fading through the verified photographs */
.aiq-comp-media{position:relative;height:208px;background:#0b1626;overflow:hidden}
.aiq-comp-shot{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;transition:opacity 1.4s ease}
.aiq-comp-shot.is-on{opacity:1}
.aiq-comp-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.aiq-comp-media video[hidden]{display:none}
.aiq-comp-media-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;
  color:#7f93ac;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.14em;line-height:1.9}
.aiq-comp-media.has-media .aiq-comp-media-empty{display:none}
.aiq-comp-media::after{content:"";position:absolute;inset:auto 0 0 0;height:50%;
  background:linear-gradient(180deg,rgba(11,22,38,0) 0%,rgba(11,22,38,.5) 100%)}

.aiq-comp-body{padding:22px 22px 24px}
.aiq-comp-kicker{margin:0 0 14px;color:var(--deep-blue);font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.2em}

/* what the guest has told us, said back to them in plain sentences */
.aiq-comp-lines{list-style:none;margin:0;padding:0}
.aiq-comp-lines li{padding:10px 0;border-bottom:1px solid #f1ede4;font-size:13.5px;line-height:1.6;color:var(--ink)}
.aiq-comp-lines li:last-child{border-bottom:0}
.aiq-comp-lines li b{font-weight:600}
.aiq-comp-lines li.is-waiting{color:#9a948a;font-style:normal}
.aiq-comp-lines li i{font-style:normal;display:block;margin-bottom:3px;color:#8b8578;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.14em}

.aiq-comp-steps{list-style:none;margin:20px 0 0;padding:18px 0 0;border-top:1px solid #f1ede4;counter-reset:s}
.aiq-comp-steps li{display:flex;align-items:center;gap:11px;padding:6px 0;color:#9a948a;font-size:12px;transition:color .25s}
.aiq-comp-steps li i{flex:0 0 auto;width:15px;height:15px;border:1px solid #d9d3c7;border-radius:50%;position:relative;transition:background .25s,border-color .25s}
.aiq-comp-steps li.is-done{color:var(--ink)}
.aiq-comp-steps li.is-done i{background:var(--green);border-color:var(--green)}
.aiq-comp-steps li.is-done i::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(45deg)}

.aiq-comp-human{display:flex;align-items:center;gap:13px;margin-top:20px;padding-top:18px;border-top:1px solid #f1ede4}
.aiq-comp-monogram{flex:0 0 auto;width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  background:#f2f6fc;border:1px solid #dde6f3;color:var(--deep-blue);font-family:var(--serif);font-size:13px;font-weight:600;letter-spacing:.06em}
.aiq-comp-human strong{display:block;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink)}
.aiq-comp-human span{display:block;margin-top:4px;color:#8b8578;font-size:11px;line-height:1.55}
.aiq-comp-wa{display:block;margin-top:14px;padding:12px;text-align:center;border:1px solid #cfd9d5;color:var(--green);
  font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.aiq-comp-wa:hover{background:var(--green);border-color:var(--green);color:#fff}

@media(prefers-reduced-motion:reduce){.aiq-comp-shot{transition:none}}
/* The panel is a desktop companion. On a phone the action rail already
   carries the resort, the price and the one action. */
@media(max-width:1100px){
  .aiq-withpanel{grid-template-columns:minmax(0,1fr)}
  .aiq-companion{display:none}
}
.aiq-field-warn{display:block;margin-top:9px;padding:10px 12px;border-left:2px solid #b4502a;background:#fbf3ef;color:#8a3d1f;font-size:11.5px;line-height:1.6}

/* GMW Thank-you CMS editor compatibility (preserved from main website). */
/* The thank-you page has no section on the landing page to carry an EDIT
   button, so its editor is opened from the badge. */
.cms-edit-badge .cms-badge-btn{border:1px solid rgba(255,255,255,.34);background:transparent;color:#fff;font-family:var(--sans);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;height:26px;padding:0 10px;transition:.18s ease;white-space:nowrap}
.cms-edit-badge .cms-badge-btn:hover{background:#fff;color:#020817;border-color:#fff}
/* Working days: seven compact tick boxes rather than a comma-separated list the
   team would have to type by hand. */
.cms-day-row{display:flex;flex-wrap:wrap;gap:8px}
.cms-day-box{display:inline-flex;align-items:center;gap:6px;border:1px solid #e5e0d7;background:#fff;padding:7px 10px;cursor:pointer;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#4b4741;user-select:none}
.cms-day-box input{width:13px;height:13px;margin:0;accent-color:#2a4b93;cursor:pointer}
.cms-day-box:has(input:checked){border-color:#2a4b93;color:#2a4b93}
.cms-day-box:focus-within{outline:2px solid #2a4b93;outline-offset:1px}
