/* ============================================================
   Splendid Sri Lanka — Landing Page
   Palette derived from the brand logo + site theme tokens
   ============================================================ */

:root{
  /* Brand */
  --maroon:#8E0D37;         /* site accent (package labels) */
  --maroon-deep:#6E0729;
  --maroon-soft:#B4234E;
  --amber:#DC834E;          /* theme primary */
  --orange:#F06000;         /* logo sun */
  --plum:#600060;           /* logo wordmark */
  --navy:#202F59;           /* theme secondary */

  /* Neutrals */
  --ink:#0E1620;
  --ink-2:#1B2635;
  --body:#5C5750;
  --muted:#857D73;
  --cream:#FBF7F0;
  --sand:#F3EBDF;
  --line:rgba(14,22,32,.12);
  --line-soft:rgba(14,22,32,.07);
  --white:#fff;

  /* Type */
  --display:"Fraunces",ui-serif,Georgia,"Times New Roman",serif;
  --sans:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  /* Space */
  --gutter:clamp(1.25rem,5vw,3rem);
  --maxw:1280px;
  --section:clamp(4.5rem,9vw,8rem);

  --radius:4px;
  --radius-lg:6px;
  --shadow-sm:0 1px 2px rgba(14,22,32,.06),0 4px 14px rgba(14,22,32,.05);
  --shadow-md:0 10px 30px -8px rgba(14,22,32,.16),0 2px 8px rgba(14,22,32,.06);
  --shadow-lg:0 28px 70px -20px rgba(14,22,32,.30),0 8px 24px rgba(14,22,32,.10);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0;background:var(--cream);color:var(--body);
  font-family:var(--sans);font-size:clamp(.975rem,.93rem + .18vw,1.0625rem);
  line-height:1.72;font-weight:400;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);font-weight:600;line-height:1.1;margin:0;
  font-variation-settings:"SOFT" 0,"WONK" 0;letter-spacing:-.015em}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:2.5px solid var(--maroon);outline-offset:3px;border-radius:2px}
::selection{background:var(--maroon);color:#fff}

/* ---------- Utilities ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);width:100%}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:var(--gutter);top:-100px;z-index:200;background:var(--maroon);color:#fff;
  padding:.75rem 1.25rem;border-radius:var(--radius);transition:top .2s}
.skip:focus{top:1rem}

.eyebrow{
  font-family:var(--sans);font-size:.6875rem;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--maroon);display:flex;align-items:center;gap:.75rem;margin-bottom:1.15rem;
}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;flex:none;opacity:.85}
.eyebrow--center{justify-content:center}
.eyebrow--light{color:var(--amber)}

.h-display{font-size:clamp(2.35rem,1.5rem + 4vw,4.5rem);line-height:1.02;letter-spacing:-.03em}
.h-section{font-size:clamp(1.95rem,1.35rem + 2.5vw,3.25rem);line-height:1.06;letter-spacing:-.025em}
.h-card{font-size:clamp(1.2rem,1.08rem + .5vw,1.5rem);line-height:1.18}
.lead{font-size:clamp(1.02rem,.97rem + .25vw,1.1875rem);line-height:1.75;color:var(--body);max-width:60ch}
.ital{font-style:italic;font-variation-settings:"SOFT" 40}

.section{padding-block:var(--section);position:relative}
.section--sand{background:var(--sand)}
.section--ink{background:var(--ink);color:rgba(255,255,255,.76)}
.section--ink h2,.section--ink h3{color:#fff}
.section-head{max-width:64ch;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section-head--center{margin-inline:auto;text-align:center}
.section-head--center .eyebrow{justify-content:center}
.section-head--center .lead{margin-inline:auto}
.section-head p{margin-top:1.15rem}
.section-head--split{display:grid;gap:1.5rem clamp(2rem,5vw,4.5rem);grid-template-columns:1fr;max-width:none;align-items:end}
@media (min-width:900px){.section-head--split{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--maroon);--fg:#fff;--bd:var(--maroon);
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.95rem 1.85rem;background:var(--bg);color:var(--fg);border:1px solid var(--bd);
  font-size:.8125rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  border-radius:var(--radius);position:relative;overflow:hidden;isolation:isolate;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),background-color .3s,color .3s,border-color .3s;
  text-align:center;line-height:1.2;
}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);
  transform:translateY(101%);transition:transform .42s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--ink)}
.btn:hover::after{transform:translateY(0)}
.btn:active{transform:translateY(0)}
.btn svg{flex:none;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(3px)}

.btn--ghost{--bg:transparent;--fg:var(--ink);--bd:rgba(14,22,32,.28)}
.btn--ghost:hover{--fg:#fff}
.btn--light{--bg:#fff;--fg:var(--ink);--bd:#fff}
/* the hover fill is dark ink — the label has to flip to white with it */
.btn--light:hover{--fg:#fff}
.btn--outline-light{--bg:transparent;--fg:#fff;--bd:rgba(255,255,255,.55)}
.btn--outline-light::after{background:#fff}
.btn--outline-light:hover{--fg:var(--ink);border-color:#fff}
.btn--sm{padding:.72rem 1.3rem;font-size:.71875rem;letter-spacing:.11em}
.btn--full{width:100%}

.txtlink{
  display:inline-flex;align-items:center;gap:.5rem;font-size:.78125rem;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;color:var(--maroon);padding-bottom:.3rem;
  border-bottom:1px solid rgba(142,13,55,.3);transition:border-color .3s,gap .3s var(--ease),color .3s;
}
.txtlink:hover{border-color:var(--maroon);gap:.85rem}
.txtlink--light{color:#fff;border-bottom-color:rgba(255,255,255,.35)}
.txtlink--light:hover{border-color:#fff}

/* ---------- Header ---------- */
.header{
  position:fixed;inset:0 0 auto;z-index:100;
  transition:background-color .45s var(--ease),box-shadow .45s var(--ease),border-color .45s;
  border-bottom:1px solid transparent;
}
.header::before{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(14,22,32,.68),rgba(14,22,32,0));
  transition:opacity .45s var(--ease)}
.header.is-stuck{background:rgba(251,247,240,.92);backdrop-filter:blur(14px) saturate(1.6);
  -webkit-backdrop-filter:blur(14px) saturate(1.6);border-bottom-color:var(--line-soft);box-shadow:0 1px 24px rgba(14,22,32,.07)}
.header.is-stuck::before{opacity:0}
.header__inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  height:var(--navh,86px);transition:height .45s var(--ease)}
.header.is-stuck .header__inner{--navh:70px}

.brand{display:flex;align-items:center;flex:none;z-index:2}
.brand img{height:38px;width:auto;transition:height .45s var(--ease),filter .45s var(--ease)}
.header.is-stuck .brand img{height:33px}
/* Logo art is orange/plum on transparent — lift it on the dark hero */
.header:not(.is-stuck) .brand img{filter:brightness(0) invert(1)}

.nav{display:none}
@media (min-width:1000px){
  .nav{display:flex;align-items:center;gap:clamp(1.5rem,2.6vw,2.6rem)}
}
.nav a{
  font-size:.78125rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.9);position:relative;padding-block:.4rem;transition:color .3s;
}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform .38s var(--ease)}
.nav a:hover::after,.nav a[aria-current="true"]::after{transform:scaleX(1);transform-origin:left}
.header.is-stuck .nav a{color:var(--ink-2)}
.header.is-stuck .nav a:hover{color:var(--maroon)}
.nav a[aria-current="true"]{color:#fff}
.header.is-stuck .nav a[aria-current="true"]{color:var(--maroon)}

.header__cta{display:none}
@media (min-width:1000px){.header__cta{display:inline-flex}}
.header:not(.is-stuck) .header__cta{--bg:transparent;--fg:#fff;--bd:rgba(255,255,255,.5)}
.header:not(.is-stuck) .header__cta::after{background:#fff}
.header:not(.is-stuck) .header__cta:hover{--fg:var(--ink);border-color:#fff}

/* Burger */
.burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;
  align-items:flex-end;z-index:2;flex:none}
@media (min-width:1000px){.burger{display:none}}
.burger span{display:block;height:1.5px;background:#fff;transition:all .38s var(--ease);border-radius:2px}
.burger span:nth-child(1){width:26px}
.burger span:nth-child(2){width:18px}
.burger span:nth-child(3){width:26px}
.header.is-stuck .burger span{background:var(--ink)}
.burger[aria-expanded="true"] span{background:#fff !important}
.burger[aria-expanded="true"] span:nth-child(1){width:26px;transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;width:0}
.burger[aria-expanded="true"] span:nth-child(3){width:26px;transform:translateY(-6.5px) rotate(-45deg)}

/* Mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:90;background:var(--ink);
  display:flex;flex-direction:column;justify-content:center;padding:6rem var(--gutter) 3rem;
  opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s;
}
.drawer.is-open{opacity:1;visibility:visible}
.drawer__bg{position:absolute;inset:0;z-index:0;object-fit:cover;width:100%;height:100%;opacity:.16;filter:grayscale(.3)}
.drawer__inner{position:relative;z-index:2}
.drawer nav{display:flex;flex-direction:column;gap:.35rem;margin-bottom:2.5rem}
.drawer nav a{
  font-family:var(--display);font-size:clamp(1.9rem,9vw,2.9rem);color:#fff;font-weight:500;
  letter-spacing:-.02em;padding-block:.3rem;opacity:0;transform:translateY(18px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),color .25s;
}
.drawer.is-open nav a{opacity:1;transform:none}
.drawer.is-open nav a:nth-child(1){transition-delay:.10s}
.drawer.is-open nav a:nth-child(2){transition-delay:.16s}
.drawer.is-open nav a:nth-child(3){transition-delay:.22s}
.drawer.is-open nav a:nth-child(4){transition-delay:.28s}
.drawer.is-open nav a:nth-child(5){transition-delay:.34s}
.drawer nav a:hover{color:var(--amber)}
.drawer__foot{display:flex;flex-direction:column;gap:1rem;opacity:0;transition:opacity .5s .4s}
.drawer.is-open .drawer__foot{opacity:1}
.drawer__tel{color:#fff;font-family:var(--display);font-size:1.35rem}
.drawer__tel span{display:block;font-family:var(--sans);font-size:.6875rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--amber);margin-bottom:.3rem;font-weight:600}
body.no-scroll{overflow:hidden}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:min(100svh,900px);display:flex;align-items:flex-end;
  isolation:isolate;overflow:hidden;background:var(--ink)}
@media (max-width:640px){.hero{min-height:100svh}}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media picture{display:contents}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 55%;
  animation:heroZoom 22s var(--ease) forwards}
/* the narrow-viewport crop is portrait — frame it on the bridge, not the sky */
@media (max-width:640px){.hero__media img{object-position:center 46%}}
@keyframes heroZoom{from{transform:scale(1.09)}to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.hero__media img{animation:none}}
.hero__media::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(14,22,32,.52) 0%,rgba(14,22,32,.14) 24%,rgba(14,22,32,.40) 56%,rgba(14,22,32,.88) 100%),
    linear-gradient(96deg,rgba(14,22,32,.78) 0%,rgba(14,22,32,.42) 46%,rgba(14,22,32,.02) 82%);
}
.hero__inner{padding-block:clamp(7rem,14vw,9rem) clamp(2.5rem,5vw,3.5rem);width:100%;
  position:relative;z-index:2}
.hero__content{max-width:min(62rem,100%)}
.hero .eyebrow{color:rgba(255,255,255,.82)}
.hero h1{color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.32);max-width:16ch}
.hero h1 em{font-style:italic;font-weight:300;color:var(--amber);font-variation-settings:"SOFT" 50}
.hero__sub{color:rgba(255,255,255,.86);font-size:clamp(1.02rem,.95rem + .35vw,1.25rem);
  max-width:46ch;margin-top:1.5rem;line-height:1.68;text-shadow:0 1px 18px rgba(0,0,0,.3)}
.hero__actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.35rem}
@media (max-width:420px){.hero__actions .btn{width:100%}}

.hero__stats{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:clamp(3rem,6vw,4.5rem);
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);overflow:hidden;
}
@media (min-width:820px){.hero__stats{grid-template-columns:repeat(4,1fr)}}
.hero__stat{background:rgba(14,22,32,.34);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  padding:1.15rem clamp(1rem,2vw,1.6rem)}
.hero__stat b{display:block;font-family:var(--display);font-size:clamp(1.35rem,1.1rem + .8vw,1.85rem);
  color:#fff;font-weight:600;line-height:1.1;letter-spacing:-.02em}
.hero__stat span{display:block;font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.66);margin-top:.45rem;font-weight:500;line-height:1.45}

.scroller{position:absolute;right:var(--gutter);bottom:clamp(2.5rem,5vw,3.5rem);z-index:3;
  display:none;align-items:center;gap:.85rem;color:rgba(255,255,255,.72);
  font-size:.625rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;
  writing-mode:vertical-rl}
@media (min-width:1000px){.scroller{display:flex}}
.scroller::after{content:"";width:1px;height:64px;background:linear-gradient(rgba(255,255,255,.55),transparent);
  animation:scrollLine 2.4s ease-in-out infinite}
@keyframes scrollLine{0%,100%{opacity:.35;transform:scaleY(.55);transform-origin:top}50%{opacity:1;transform:scaleY(1)}}

/* ---------- Marquee strip ---------- */
.strip{background:var(--ink);color:rgba(255,255,255,.62);padding-block:1.1rem;overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.08)}
.strip__track{display:flex;gap:3.5rem;white-space:nowrap;width:max-content;
  animation:marquee 44s linear infinite;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
.strip:hover .strip__track{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.strip__track{animation:none}}
@keyframes marquee{to{transform:translateX(-50%)}}
.strip__track span{display:inline-flex;align-items:center;gap:3.5rem}
.strip__track span::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--amber);opacity:.75}

/* ---------- Package grid ---------- */
.pkg-grid{display:grid;gap:clamp(1.25rem,2.4vw,2rem);grid-template-columns:1fr}
@media (min-width:620px){.pkg-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1060px){.pkg-grid{grid-template-columns:repeat(3,1fr)}}

.pkg{
  background:var(--white);border:1px solid var(--line-soft);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s;
  box-shadow:var(--shadow-sm);
}
.pkg:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}

.pkg__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.pkg__media img{width:100%;height:100%;object-fit:cover;transition:transform .85s var(--ease)}
.pkg:hover .pkg__media img{transform:scale(1.07)}
.pkg__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,22,32,.42) 0%,rgba(14,22,32,0) 42%,rgba(14,22,32,.05) 100%)}

.pkg__code{position:absolute;top:.95rem;left:.95rem;z-index:2;
  font-size:.625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  background:rgba(14,22,32,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  padding:.36rem .68rem;border-radius:3px;border:1px solid rgba(255,255,255,.2)}
.pkg__price{position:absolute;right:.95rem;bottom:.95rem;z-index:2;text-align:right;
  background:var(--white);border-radius:var(--radius);padding:.5rem .8rem .55rem;box-shadow:var(--shadow-md)}
.pkg__price b{display:block;font-family:var(--display);font-size:1.3rem;color:var(--maroon);
  line-height:1;font-weight:600;letter-spacing:-.02em}
.pkg__price span{display:block;font-size:.5625rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin-top:.28rem;font-weight:600}

.pkg__body{padding:clamp(1.35rem,2.4vw,1.7rem);display:flex;flex-direction:column;flex:1;gap:.9rem}
.pkg__dur{display:inline-flex;align-items:center;gap:.45rem;font-size:.6875rem;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--amber)}
.pkg__dur svg{flex:none}
.pkg h3{margin-top:-.15rem}
.pkg__desc{font-size:.90625rem;line-height:1.65;color:var(--body)}
.pkg__route{font-size:.8125rem;line-height:1.6;color:var(--ink-2);padding-top:.85rem;border-top:1px solid var(--line-soft)}
.pkg__route strong{display:block;font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.4rem;font-weight:600}

.incl{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.9rem}
.incl li{display:inline-flex;align-items:center;gap:.4rem;font-size:.6875rem;font-weight:500;
  letter-spacing:.06em;color:var(--ink-2);background:var(--sand);padding:.34rem .7rem;border-radius:100px}
.incl svg{flex:none;color:var(--maroon)}

.pkg__actions{display:grid;grid-template-columns:1fr auto;gap:.5rem;padding:0 clamp(1.35rem,2.4vw,1.7rem) clamp(1.35rem,2.4vw,1.7rem)}
.wa-btn{display:inline-flex;align-items:center;justify-content:center;width:46px;border:1px solid var(--line);
  border-radius:var(--radius);color:#1e8e57;transition:all .3s var(--ease);flex:none}
.wa-btn:hover{background:#25D366;border-color:#25D366;color:#fff;transform:translateY(-2px)}

/* ---------- Destination cards ---------- */
.dest-grid{display:grid;gap:clamp(1rem,2vw,1.5rem);grid-template-columns:1fr}
@media (min-width:560px){.dest-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.dest-grid{grid-template-columns:repeat(3,1fr)}}

.dest{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:clamp(340px,42vw,440px);border-radius:var(--radius-lg);overflow:hidden;isolation:isolate;
  padding:clamp(1.4rem,2.5vw,1.9rem);color:#fff;background:var(--ink-2);
  transition:transform .55s var(--ease),box-shadow .55s var(--ease);box-shadow:var(--shadow-sm);
}
.dest:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.dest img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;
  transition:transform .9s var(--ease)}
.dest h3,.dest__sig,.dest__more{position:relative;z-index:2}
.dest:hover img{transform:scale(1.08)}
.dest::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(14,22,32,.05) 0%,rgba(14,22,32,.42) 48%,rgba(14,22,32,.92) 100%);
  transition:opacity .5s}
.dest:hover::after{opacity:.94}
.dest__tag{position:absolute;z-index:3;top:clamp(1.4rem,2.5vw,1.9rem);left:clamp(1.4rem,2.5vw,1.9rem);
  font-size:.625rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:#fff;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.24);padding:.35rem .7rem;border-radius:100px}
.dest h3{color:#fff;margin-bottom:.6rem}
.dest__desc{font-size:.90625rem;line-height:1.62;color:rgba(255,255,255,.8)}
.dest__sig{display:flex;align-items:flex-start;gap:.55rem;margin-top:1rem;padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.18);font-size:.8125rem;line-height:1.5;color:rgba(255,255,255,.9)}
.dest__sig svg{flex:none;margin-top:3px;color:var(--amber)}
.dest__more{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.15rem;
  font-size:.71875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#fff;
  transition:gap .3s var(--ease)}
.dest:hover .dest__more{gap:.9rem;color:var(--amber)}

/* ---------- Editorial destination rows ---------- */
.edit-row{display:grid;gap:clamp(1.75rem,4vw,4rem);align-items:center;
  padding-block:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line-soft)}
.edit-row:first-of-type{border-top:0;padding-top:0}
@media (min-width:900px){
  .edit-row{grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr)}
  .edit-row--flip .edit-row__media{order:2}
}
.edit-row__media{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--sand);
  aspect-ratio:5/4}
.edit-row__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.edit-row__media:hover img{transform:scale(1.05)}
.edit-row__num{position:absolute;left:0;bottom:0;z-index:2;background:var(--cream);
  font-family:var(--display);font-size:clamp(1.5rem,3vw,2.1rem);color:var(--ink);font-weight:600;
  padding:.5rem 1.15rem .3rem;border-top-right-radius:var(--radius-lg);letter-spacing:-.02em}
.section--sand .edit-row__num{background:var(--sand)}
.edit-row h3{font-size:clamp(1.7rem,1.3rem + 1.6vw,2.5rem);margin-bottom:.35rem}
.edit-row__where{font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon);
  font-weight:600;margin-bottom:1.15rem}
.edit-row__lede{font-size:clamp(.9688rem,.94rem + .2vw,1.0938rem);line-height:1.75;margin-bottom:1.6rem}
.edit-facts{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media (min-width:520px){.edit-facts{grid-template-columns:repeat(2,1fr)}}
.edit-facts h4{font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  font-family:var(--sans);font-weight:600;margin-bottom:.55rem;display:flex;align-items:center;gap:.5rem}
.edit-facts h4 svg{color:var(--amber);flex:none}
.edit-facts ul{display:flex;flex-direction:column;gap:.3rem}
.edit-facts li{font-size:.875rem;line-height:1.55;padding-left:.95rem;position:relative;color:var(--body)}
.edit-facts li::before{content:"";position:absolute;left:0;top:.6em;width:4px;height:4px;border-radius:50%;
  background:var(--maroon);opacity:.55}
.edit-row__cta{margin-top:1.75rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

/* ---------- Why / features ---------- */
.why-grid{display:grid;gap:1px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);overflow:hidden;grid-template-columns:1fr}
@media (min-width:640px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.why-grid{grid-template-columns:repeat(3,1fr)}}
.why{background:var(--ink);padding:clamp(1.75rem,3vw,2.4rem);position:relative;
  transition:background-color .45s var(--ease)}
.why:hover{background:#16212F}
.why__ico{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;
  border:1px solid rgba(220,131,78,.4);color:var(--amber);margin-bottom:1.3rem;
  transition:background-color .45s var(--ease),color .45s,border-color .45s,transform .45s var(--ease)}
.why:hover .why__ico{background:var(--amber);color:var(--ink);border-color:var(--amber);transform:translateY(-3px)}
.why h3{font-size:1.1875rem;margin-bottom:.6rem;letter-spacing:-.01em}
.why p{font-size:.90625rem;line-height:1.68;color:rgba(255,255,255,.66)}

/* ---------- Experience mosaic ---------- */
.mosaic{display:grid;gap:clamp(.75rem,1.5vw,1.15rem);grid-template-columns:repeat(2,1fr)}
@media (min-width:900px){
  .mosaic{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(0,1fr)}
  .mos--tall{grid-row:span 2}
  .mos--wide{grid-column:span 2}
}
.mos{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;isolation:isolate;
  min-height:clamp(190px,26vw,260px);display:flex;align-items:flex-end;
  padding:clamp(1.1rem,2vw,1.65rem);color:#fff;background:var(--ink-2);
  transition:transform .55s var(--ease),box-shadow .55s var(--ease);
}
@media (min-width:900px){.mos--tall{min-height:100%}}
.mos:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.mos img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;
  transition:transform .95s var(--ease)}
.mos>div{position:relative;z-index:2}
.mos:hover img{transform:scale(1.07)}
.mos::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(14,22,32,.1) 30%,rgba(14,22,32,.85) 100%)}
.mos h3{color:#fff;font-size:clamp(1.15rem,1rem + .5vw,1.5rem);margin-bottom:0}
.mos__n{position:absolute;z-index:3;top:clamp(1.1rem,2vw,1.65rem);right:clamp(1.1rem,2vw,1.65rem);
  font-size:.625rem;letter-spacing:.16em;font-weight:600;color:rgba(255,255,255,.6)}

.exp-head{display:grid;gap:1.5rem;margin-bottom:clamp(2.5rem,5vw,3.5rem);grid-template-columns:1fr;align-items:end}
@media (min-width:900px){.exp-head{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.exp-head h2 em{font-style:italic;color:var(--amber);font-weight:300;font-variation-settings:"SOFT" 50}

/* ---------- CTA ---------- */
.cta{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);
  padding-block:clamp(5rem,10vw,9rem);color:#fff}
.cta__bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}
.cta::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(105deg,rgba(14,22,32,.95) 0%,rgba(14,22,32,.86) 44%,rgba(14,22,32,.58) 100%)}
.cta__grid{position:relative;z-index:2}
.cta__grid{display:grid;gap:clamp(2.5rem,5vw,4.5rem);grid-template-columns:1fr;align-items:start}
@media (min-width:960px){.cta__grid{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}}
.cta h2{color:#fff;max-width:14ch}
.cta h2 em{font-style:italic;color:var(--amber);font-weight:300;font-variation-settings:"SOFT" 50}
.cta__lead{color:rgba(255,255,255,.78);margin-top:1.35rem;max-width:44ch;
  font-size:clamp(1rem,.95rem + .25vw,1.125rem);line-height:1.72}
.cta__actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.15rem}
.cta__contact{display:flex;flex-direction:column;gap:1rem;margin-top:2.75rem;padding-top:2rem;
  border-top:1px solid rgba(255,255,255,.16)}
.cta__contact a{display:inline-flex;align-items:center;gap:.85rem;color:#fff;transition:color .3s;width:fit-content}
.cta__contact a:hover{color:var(--amber)}
.cta__contact svg{flex:none;color:var(--amber)}
.cta__contact b{font-family:var(--display);font-size:1.1875rem;font-weight:600;letter-spacing:-.01em}
.cta__contact span{display:block;font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.5);font-weight:600;margin-bottom:.15rem}

/* Form */
.form{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.15);
  border-radius:var(--radius-lg);padding:clamp(1.5rem,3vw,2.35rem);backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px)}
.form h3{font-size:1.35rem;color:#fff;margin-bottom:.4rem}
.form>p{font-size:.84375rem;color:rgba(255,255,255,.6);margin-bottom:1.6rem;line-height:1.6}
.form__row{display:grid;gap:.85rem;grid-template-columns:1fr;margin-bottom:.85rem}
@media (min-width:480px){.form__row--2{grid-template-columns:repeat(2,1fr)}}
.field label{display:block;font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.62);font-weight:600;margin-bottom:.45rem}
.field input,.field select,.field textarea{
  width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);
  border-radius:var(--radius);padding:.8rem .95rem;color:#fff;font-family:var(--sans);
  font-size:.90625rem;transition:border-color .3s,background-color .3s;
}
.field textarea{resize:vertical;min-height:88px}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.35)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--amber);background:rgba(255,255,255,.11)}
.field select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23DC834E' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .95rem center;padding-right:2.4rem}
.field select option{background:var(--ink);color:#fff}
.form .btn{margin-top:.5rem}
.form__note{font-size:.71875rem;color:rgba(255,255,255,.45);margin-top:1rem;line-height:1.55;text-align:center}

/* ---------- Footer ---------- */
.footer{background:#0A1119;color:rgba(255,255,255,.6);padding-block:clamp(3.5rem,7vw,5.5rem) 0}
.footer__grid{display:grid;gap:clamp(2rem,4vw,3rem);grid-template-columns:1fr;
  padding-bottom:clamp(2.5rem,5vw,3.5rem)}
@media (min-width:640px){.footer__grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.footer__grid{grid-template-columns:1.5fr 1fr 1fr 1.2fr}}
.footer__brand img{height:42px;width:auto;margin-bottom:1.25rem}
.footer__brand p{font-size:.90625rem;line-height:1.72;max-width:34ch}
.footer h4{font-family:var(--sans);font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;
  color:#fff;font-weight:600;margin-bottom:1.15rem}
.footer ul{display:flex;flex-direction:column;gap:.6rem}
.footer li a{font-size:.90625rem;transition:color .3s,padding-left .3s var(--ease);display:inline-block}
.footer li a:hover{color:var(--amber);padding-left:5px}
.footer__contact li{display:flex;gap:.7rem;font-size:.90625rem;line-height:1.55}
.footer__contact svg{flex:none;margin-top:4px;color:var(--amber)}
.footer__contact a:hover{color:var(--amber)}
.footer__bar{border-top:1px solid rgba(255,255,255,.1);padding-block:1.65rem;
  display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;align-items:center;
  font-size:.78125rem}
.footer__bar p{color:rgba(255,255,255,.45)}
.footer__bar nav{display:flex;gap:1.5rem}

/* ---------- WhatsApp float ---------- */
.wa-float{position:fixed;right:clamp(1rem,3vw,1.75rem);bottom:clamp(1rem,3vw,1.75rem);z-index:80;
  width:54px;height:54px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;
  box-shadow:0 8px 28px rgba(37,211,102,.42);transition:transform .35s var(--ease),box-shadow .35s;
  opacity:0;visibility:hidden;transform:scale(.7)}
.wa-float.is-in{opacity:1;visibility:visible;transform:scale(1)}
.wa-float:hover{transform:scale(1.09);box-shadow:0 12px 34px rgba(37,211,102,.55)}

/* ---------- Modal ---------- */
.modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:clamp(1rem,4vw,2.5rem);
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s}
.modal.is-open{opacity:1;visibility:visible}
.modal__scrim{position:absolute;inset:0;background:rgba(10,17,25,.72);backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px)}
.modal__panel{position:relative;background:var(--cream);border-radius:var(--radius-lg);
  width:min(1040px,100%);max-height:min(90svh,780px);overflow:hidden;
  display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);
  box-shadow:var(--shadow-lg);transform:translateY(22px) scale(.985);transition:transform .45s var(--ease)}
.modal.is-open .modal__panel{transform:none}

/* Desktop: details on the left, photography on the right */
@media (min-width:880px){
  .modal__panel{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);grid-template-rows:minmax(0,1fr)}
}

.modal__close{position:absolute;top:1rem;right:1rem;z-index:5;width:40px;height:40px;border-radius:50%;
  background:rgba(14,22,32,.55);color:#fff;display:grid;place-items:center;backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);transition:background-color .3s,transform .3s var(--ease)}
.modal__close:hover{background:var(--maroon);transform:rotate(90deg)}

/* Media column — full-height on desktop, a banner on mobile */
.modal__media{position:relative;margin:0;background:var(--sand);order:-1;min-height:210px;overflow:hidden}
.modal__media img{width:100%;height:100%;object-fit:cover;display:block}
@media (min-width:880px){
  .modal__media{order:0;min-height:0;height:100%}
}

/* Details column */
.modal__body{padding:clamp(1.35rem,3vw,2.15rem);overflow-y:auto;overscroll-behavior:contain;min-height:0}
.modal__head{margin-bottom:1.5rem;padding-right:3rem}
.modal__head span{display:block;font-size:.625rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--maroon);font-weight:600;margin-bottom:.55rem}
@media (min-width:880px){.modal__head{padding-right:0}}
.modal__head h3{font-size:clamp(1.45rem,1.15rem + 1.1vw,2.05rem);line-height:1.1}
.modal__dests{margin-bottom:1.7rem;font-size:.9375rem;line-height:1.6;color:var(--ink-2)}
.modal__meta{display:grid;gap:.9rem 1.1rem;grid-template-columns:repeat(2,1fr);padding-bottom:1.35rem;
  margin-bottom:1.35rem;border-bottom:1px solid var(--line-soft)}
.modal__meta div span{display:block;font-size:.625rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin-bottom:.3rem}
.modal__meta div b{font-family:var(--display);font-size:1.0625rem;color:var(--ink);font-weight:600;
  line-height:1.25;display:block}
.modal__meta div b.price{color:var(--maroon)}
.modal h4{font-family:var(--sans);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);font-weight:600;margin-bottom:1rem}
.itin{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1.7rem}
.itin li{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding:.66rem 0;
  border-bottom:1px dashed var(--line-soft);font-size:.90625rem;line-height:1.55;color:var(--ink-2)}
.itin li:last-child{border-bottom:0}
.itin li b{font-family:var(--display);font-size:.9375rem;color:var(--maroon);font-weight:600;
  min-width:3.2rem;letter-spacing:.02em}
.modal__actions{display:grid;gap:.6rem;grid-template-columns:1fr}
@media (min-width:480px){.modal__actions{grid-template-columns:repeat(2,1fr)}}

/* ---------- Reveal ---------- */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(26px);
    transition:opacity .85s var(--ease),transform .85s var(--ease)}
  .reveal.is-in{opacity:1;transform:none}
  .reveal-stagger>*{opacity:0;transform:translateY(26px);
    transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .reveal-stagger.is-in>*{opacity:1;transform:none}
  .reveal-stagger.is-in>*:nth-child(1){transition-delay:.03s}
  .reveal-stagger.is-in>*:nth-child(2){transition-delay:.09s}
  .reveal-stagger.is-in>*:nth-child(3){transition-delay:.15s}
  .reveal-stagger.is-in>*:nth-child(4){transition-delay:.21s}
  .reveal-stagger.is-in>*:nth-child(5){transition-delay:.27s}
  .reveal-stagger.is-in>*:nth-child(6){transition-delay:.33s}
  .reveal-stagger.is-in>*:nth-child(n+7){transition-delay:.36s}
}
@media print{.header,.wa-float,.scroller,.strip,.modal,.drawer{display:none !important}}
