:root{
  --ivory:#F5F1E8;
  --cream:#FAF8F3;
  --white:#FFFFFF;
  --sand:#E8DFD0;
  --stone:#D8CDBB;
  --champagne:#C7AA72;
  --gold:#A98649;
  --ink:#28241E;
  --text:#615B52;
  --muted:#968E82;
  --line:rgba(90,72,42,0.18);
  --line-soft:rgba(90,72,42,0.10);

  --display:"Bodoni Moda", serif;
  --script:"Cormorant Garamond", serif;
  --sans:"Manrope", sans-serif;

  --ease:cubic-bezier(.22,.61,.36,1);
  --wrap-pad:44px;
}

*{margin:0; padding:0; box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  letter-spacing:0.006em;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}
section{position:relative;}
h1,h2,h3{font-family:var(--display); font-weight:400; letter-spacing:0.002em;}
p{max-width:60ch;}

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--ink); color:var(--ivory);
  padding:14px 22px; z-index:5000; font-size:0.85rem;
}
.skip-link:focus{left:16px; top:16px;}
:focus-visible{outline:1px solid var(--gold); outline-offset:4px;}

.wrap{max-width:1320px; margin:0 auto; padding:0 var(--wrap-pad);}

/* ---------- Eyebrow / chapter tag ---------- */
.eyebrow{font-family:var(--script); font-style:italic; font-size:1.05rem; color:var(--gold); display:block;}
.eyebrow.center{text-align:center;}
.chapter-tag{
  display:flex; align-items:baseline; gap:14px; margin-bottom:34px;
  font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted);
}
.chapter-tag span{
  font-family:var(--display); font-style:italic; font-size:0.95rem; color:var(--gold);
  letter-spacing:0.02em; text-transform:none;
}

/* ---------- Buttons ---------- */
.btn-reserve{
  display:inline-flex; align-items:baseline; gap:12px;
  font-family:var(--sans); font-size:0.82rem; font-weight:500;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--ink);
  padding-bottom:10px; position:relative;
}
.btn-reserve::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:100%; background:var(--line);}
.btn-reserve::before{content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--gold); transition:width .4s var(--ease);}
.btn-reserve:hover::before{width:100%;}
.btn-reserve i{font-style:normal; display:inline-block; transition:transform .35s var(--ease);}
.btn-reserve:hover i{transform:translate(4px,-4px);}
.btn-reserve-lg{font-size:1rem; padding-bottom:14px;}
.btn-reserve-xl{font-family:var(--display); font-size:1.5rem; text-transform:none; letter-spacing:0.01em; padding-bottom:18px;}
.hero-cta-meta, .cta-meta{margin-top:18px; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted);}

.nav-cta{
  font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase;
  padding-bottom:5px; border-bottom:1px solid var(--champagne);
  transition:color .3s ease, border-color .3s ease; white-space:nowrap;
  display:inline-flex; align-items:center; gap:8px;
}
.nav-cta i{font-style:normal; transition:transform .3s var(--ease);}
.nav-cta:hover{color:var(--gold);}
.nav-cta:hover i{transform:translate(3px,-3px);}

/* ---------- Side sticky CTA (desktop) ---------- */
.side-cta{
  position:fixed; right:26px; top:50%; transform:translateY(-50%) translateX(30px);
  z-index:900; display:flex; flex-direction:column; align-items:center; gap:10px;
  writing-mode:vertical-rl; font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold); opacity:0; pointer-events:none;
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.side-cta.visible{opacity:1; pointer-events:auto; transform:translateY(-50%) translateX(0);}
.side-cta i{font-style:normal; transform:rotate(90deg);}
@media (max-width:900px){.side-cta{display:none;}}

/* ---------- Header ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:1000; background:transparent;
  transition:background .4s var(--ease), border-color .4s var(--ease), backdrop-filter .4s var(--ease);
  border-bottom:1px solid transparent;
}
header.scrolled{
  background:rgba(245,241,232,0.86); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:28px; height:84px;}
.wordmark{font-family:var(--display); font-size:1.02rem; letter-spacing:0.03em; color:var(--ink); white-space:nowrap;}
.nav-links{display:flex; gap:32px; align-items:center; margin-left:auto; margin-right:34px;}
.nav-links a{
  font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink); opacity:0.68; position:relative; padding-bottom:4px; transition:opacity .3s ease;
}
.nav-links a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:width .3s var(--ease);}
.nav-links a:hover{opacity:1;}
.nav-links a:hover::after{width:100%;}

.nav-toggle{display:none; position:relative; width:30px; height:20px; background:none; border:none; cursor:pointer; padding:0; flex-shrink:0;}
.nav-toggle span{position:absolute; left:0; right:0; height:1px; background:var(--ink); transition:transform .3s var(--ease);}
.nav-toggle span:first-child{top:4px;}
.nav-toggle span:last-child{bottom:4px;}

/* ---------- Mobile menu ---------- */
.mobile-menu{
  position:fixed; inset:0; background:var(--ivory); z-index:2000;
  display:flex; flex-direction:column; padding-bottom:40px;
  transform:translateY(-100%); transition:transform .55s var(--ease); visibility:hidden;
}
.mobile-menu.active{transform:translateY(0); visibility:visible;}
.mobile-menu-top{display:flex; align-items:center; justify-content:space-between; height:84px;}
.mobile-close{position:relative; width:26px; height:26px; background:none; border:none; cursor:pointer;}
.mobile-close span{position:absolute; top:50%; left:0; width:100%; height:1px; background:var(--ink);}
.mobile-close span:first-child{transform:rotate(45deg);}
.mobile-close span:last-child{transform:rotate(-45deg);}
.mobile-menu-links{display:flex; flex-direction:column; gap:2px; margin-top:10vh;}
.mnav{
  font-family:var(--display); font-size:9vw; line-height:1.5;
  display:flex; align-items:baseline; gap:16px; color:var(--ink);
  border-bottom:1px solid var(--line); padding-bottom:10px;
  opacity:0; transform:translateY(14px); transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.mobile-menu.active .mnav{opacity:1; transform:translateY(0);}
.mobile-menu.active .mnav:nth-child(1){transition-delay:.08s;}
.mobile-menu.active .mnav:nth-child(2){transition-delay:.14s;}
.mobile-menu.active .mnav:nth-child(3){transition-delay:.20s;}
.mobile-menu.active .mnav:nth-child(4){transition-delay:.26s;}
.mobile-menu.active .mnav:nth-child(5){transition-delay:.32s;}
.mobile-menu.active .mnav:nth-child(6){transition-delay:.38s;}
.mnav em{font-family:var(--sans); font-style:normal; font-size:0.8rem; color:var(--gold); letter-spacing:0.04em;}
.mobile-cta{
  margin:auto 44px 0; text-align:center; font-size:0.9rem; letter-spacing:0.08em; text-transform:uppercase;
  padding:20px 0; border-top:1px solid var(--line); font-family:var(--display); font-size:1.3rem; text-transform:none;
}

/* ---------- Reveal helpers ---------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .9s var(--ease), transform .9s var(--ease); transition-delay:var(--d,0s);}
.reveal.in{opacity:1; transform:translateY(0);}

.reveal-mask{overflow:hidden; display:block;}
.reveal-mask span{
  display:block; transform:translateY(110%); opacity:0;
  transition:transform .9s var(--ease), opacity .7s var(--ease);
  transition-delay:var(--d,0s);
}
.reveal-mask.in span{transform:translateY(0); opacity:1;}

/* ---------- Hero ---------- */
.hero{min-height:100svh; display:flex; flex-direction:column; justify-content:center; padding-top:84px; position:relative;}
.hero-inner{padding-top:6vh; max-width:1000px; margin-left:6%;}
.hero-top{font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); margin-bottom:6px;}
.hero-top-sub{margin-bottom:38px; color:var(--gold); font-style:italic; font-family:var(--script); font-size:1.05rem; letter-spacing:0.02em; text-transform:none;}
.hero-h1{font-size:clamp(2rem, 4.6vw, 3.5rem); font-weight:400; line-height:1.28; text-transform:uppercase; letter-spacing:0.005em; max-width:16ch;}
.hero-h1 .line{overflow:hidden;}
.hero-triad{font-family:var(--script); font-style:italic; color:var(--gold); font-size:1.3rem; margin-top:38px;}
.hero-cta{margin-top:60px;}

.hero-line{
  position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--line-soft);
  overflow:hidden;
}
.hero-line span{display:block; height:100%; width:0%; background:var(--gold); transition:width 1.4s var(--ease);}
.hero-line.in span{width:100%;}

/* ---------- Scene shared layout (sticky-scroll pattern) ---------- */
.scene{padding:150px 0;}
.scene-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:60px;}
.scene-sticky-col{position:relative;}
.scene-sticky{position:sticky; top:130px;}
.scene-sticky h2{font-size:clamp(1.9rem, 3.2vw, 2.7rem); line-height:1.28; margin-top:6px;}
.scene-thread{width:1px; height:80px; background:var(--line); margin-top:40px;}

.scene-scroll-col{padding-top:6px;}

/* Escena 01 — conceptos secuenciales */
.concept-track{height:220vh; position:relative;}
.concept-item{
  position:sticky; top:35vh; font-family:var(--display); font-size:clamp(1.6rem, 3.4vw, 2.6rem);
  color:var(--muted); opacity:0.25; transition:opacity .6s var(--ease), color .6s var(--ease);
  padding:10px 0;
}
.concept-item.is-active{opacity:1; color:var(--ink);}
.scene-closing{margin-top:100px;}
.scene-statement{font-family:var(--display); font-size:clamp(1.5rem, 2.6vw, 2.1rem); line-height:1.4; max-width:20ch;}
.scene-fine{color:var(--text); font-size:0.95rem; margin-top:24px;}

/* Escena 02 — punto de partida interactivo */
.scene-02 h2{font-size:clamp(2rem, 3.6vw, 2.9rem); line-height:1.28; max-width:16ch; margin-bottom:70px;}
.starting-point{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; border-top:1px solid var(--line); padding-top:10px;}
.sp-words{display:flex; flex-direction:column;}
.sp-word{
  text-align:left; background:none; border:none; border-bottom:1px solid var(--line);
  font-family:var(--display); font-size:clamp(1.6rem, 3vw, 2.4rem); color:var(--muted);
  padding:22px 0; cursor:pointer; transition:color .4s var(--ease); min-height:44px;
}
.sp-word:hover, .sp-word:focus-visible{color:var(--gold);}
.sp-word.is-active{color:var(--ink);}
.sp-panel{position:relative; padding-top:22px;}
.sp-text{
  position:absolute; top:22px; left:0; right:0; color:var(--text); font-size:1.05rem;
  opacity:0; transform:translateY(10px); transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.sp-text.is-active{position:relative; opacity:1; transform:translateY(0);}

/* Escena 03 — proceso scroll-driven */
.scene-03 .scene-sticky{display:flex; flex-direction:column;}
.stage-number{
  font-family:var(--display); font-size:clamp(5rem, 10vw, 8rem); color:var(--stone);
  line-height:1; margin-top:40px; transition:color .5s ease;
}
.stage-track{height:240vh; position:relative;}
.stage-item{
  position:sticky; top:30vh; opacity:0.2; transition:opacity .6s var(--ease); padding:14px 0;
}
.stage-item.is-active{opacity:1;}
.stage-eyebrow{font-family:var(--display); font-style:italic; font-size:0.95rem; color:var(--gold); display:block; margin-bottom:14px;}
.stage-item h3{font-size:2rem; font-weight:400; margin-bottom:16px;}
.stage-item p{color:var(--text); font-size:1rem; max-width:44ch;}

/* Escena 04 — datos */
.scene-lead{color:var(--text); font-size:1.02rem; max-width:56ch; margin-top:26px;}
.data-row{
  display:flex; align-items:flex-end; gap:0; margin-top:90px; border-top:1px solid var(--line); padding-top:40px;
  flex-wrap:wrap;
}
.data-item{display:flex; flex-direction:column; gap:12px; flex:1; min-width:150px;}
.data-figure{font-family:var(--display); font-size:clamp(2.2rem, 4vw, 3.2rem); color:var(--ink); line-height:1;}
.data-word{font-family:var(--display); font-size:clamp(1.5rem, 2.6vw, 2.1rem); color:var(--ink); line-height:1.15;}
.data-label{font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted);}
.data-connector{flex:0 0 60px; height:1px; background:var(--line); align-self:center; margin-bottom:34px;}

/* Frase de transición tipográfica */
.typo-transition{padding:180px 0; text-align:center;}
.tt-line{
  font-family:var(--display); font-size:clamp(1.8rem, 4.6vw, 3.4rem); line-height:1.5; color:var(--ink);
}
.tt-line-last{color:var(--gold); font-style:italic; font-family:var(--script); font-size:clamp(1.6rem, 4vw, 3rem);}

/* Escena 05 — visión */
.scene-05{padding-top:0; padding-bottom:0; background:var(--white);}
.vision-sticky-wrap{height:200vh; position:relative;}
.vision-sticky{position:sticky; top:0; height:100vh; display:flex; align-items:center;}
.vision-swap{position:relative; min-height:8em;}
.vision-line{
  position:absolute; top:0; left:0; font-size:clamp(2.2rem, 5vw, 4rem); line-height:1.22; text-transform:uppercase; max-width:12ch;
  opacity:0; transform:translateY(20px); transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.vision-line.is-active{position:relative; opacity:1; transform:translateY(0);}
.vision-text{padding:100px 0 70px; max-width:640px; margin-left:6%;}
.vision-text p{color:var(--text); font-size:1rem; margin-bottom:18px;}
.vision-text .fine{font-size:0.85rem; opacity:0.85; margin-top:26px; padding-top:24px; border-top:1px solid var(--line);}

/* Geo composition (no map) */
.geo-map{position:relative; height:340px; margin-bottom:120px;}
.geo-node{
  position:absolute; left:var(--x); top:var(--y); font-family:var(--display); font-style:italic; font-size:1.15rem; color:var(--gold);
  transition:transform .3s ease;
}
.geo-node-lg{font-size:clamp(1.6rem, 2.6vw, 2.2rem); font-style:normal; color:var(--ink);}
.geo-line{position:absolute; left:var(--x); top:var(--y); background:var(--line);}
.geo-line-v{width:1px; height:60px;}
.geo-line-h{width:180px; height:1px;}
.geo-dot{position:absolute; left:var(--x); top:var(--y); width:5px; height:5px; border-radius:50%; background:var(--gold);}
@media (max-width:900px){.geo-map{height:auto; display:flex; flex-direction:column; gap:26px; position:static;}
  .geo-map .geo-node, .geo-map .geo-line, .geo-map .geo-dot{position:static; width:auto; height:auto; background:none;}
  .geo-map .geo-line{display:none;}
  .geo-map .geo-dot{display:none;}
}

/* ---------- Photo pause ---------- */
.photo-pause-wrap{padding:60px 0 90px; display:flex; justify-content:center;}
.photo-pause{width:70%; transition:width .1s linear; position:relative;}
.photo-pause img{width:100%; height:60vh; object-fit:cover; object-position:center 40%;}
.photo-pause figcaption{
  position:absolute; bottom:28px; left:28px; color:var(--cream);
  font-family:var(--script); font-style:italic; font-size:1.2rem;
  text-shadow:0 1px 12px rgba(0,0,0,0.35);
}

/* Route transition Madrid — Miami */
.route-transition{
  display:flex; align-items:center; justify-content:center; gap:22px; padding:20px 0 60px;
  font-family:var(--display); font-style:italic; font-size:1.1rem; color:var(--gold);
}
.route-line{width:120px; height:1px; background:var(--line);}

/* ---------- Florida — réplica fiel de la referencia ---------- */
.florida-section{padding:0 0 140px;}
.florida-card{
  display:grid; grid-template-columns:1fr 1fr;
  background:var(--cream);
  border:1px solid var(--champagne);
  border-radius:28px;
  overflow:hidden;
  min-height:820px;
}
.florida-panel{
  padding:80px 70px; display:flex; flex-direction:column; justify-content:center;
}
.florida-lock{
  width:58px; height:58px; border:1px solid var(--champagne); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:30px;
}
.private-access{
  font-family:var(--script); font-style:italic; color:var(--gold); font-size:1.05rem; letter-spacing:0.02em;
  text-transform:uppercase; margin-bottom:18px;
}
.florida-panel h2{font-size:clamp(2rem, 3vw, 2.6rem); line-height:1.22; color:var(--ink); margin-bottom:10px;}
.florida-subtitle{font-family:var(--script); font-style:italic; color:var(--gold); font-size:1.2rem; margin-bottom:26px;}
.florida-copy{color:var(--text); font-size:1rem; margin-bottom:18px; max-width:52ch;}
.lock-line{font-family:var(--script); font-style:italic; color:var(--muted); font-size:1rem; margin:14px 0 30px;}
.btn-florida{
  display:inline-flex; align-self:flex-start; align-items:center; justify-content:center;
  padding:16px 30px; border:1px solid var(--ink); border-radius:999px;
  background:var(--white); color:var(--ink); font-size:0.8rem; font-weight:500;
  letter-spacing:0.06em; text-transform:uppercase; transition:background .3s ease, color .3s ease;
}
.btn-florida:hover{background:var(--ink); color:var(--cream);}
.florida-tags{margin-top:34px; font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted);}
.florida-image{position:relative; min-height:100%;}
.florida-image img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}

/* ---------- Historia ---------- */
.scene-historia{padding-top:120px;}
.historia-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px;}
.historia-sticky-col{position:relative;}
.historia-sticky{position:sticky; top:140px; transition:transform .1s linear;}
.historia-logo{background:var(--white); padding:60px; border:1px solid var(--line);}
.historia-logo img{width:100%; height:auto;}
.historia-scroll-col{padding-top:8px;}
.historia-scroll-col h2{font-size:clamp(2rem, 3.4vw, 2.9rem); line-height:1.26; margin-bottom:70px;}
.historia-p{color:var(--text); font-size:1rem; margin-bottom:70px; max-width:48ch;}
.historia-statement{
  font-family:var(--display); font-size:clamp(1.5rem, 2.6vw, 2.1rem); line-height:1.4;
  margin-bottom:70px; max-width:26ch;
}
.historia-statement-lg{font-size:clamp(1.7rem, 3vw, 2.5rem); color:var(--gold);}
.historia-closing{
  font-family:var(--script); font-style:italic; font-size:1.5rem; color:var(--ink);
  padding-top:36px; border-top:1px solid var(--line);
}
.historia-closing span{display:block; margin-top:10px; font-size:1.2rem; color:var(--text);}

/* ---------- CTA final ---------- */
.cta-final{background:var(--sand); padding:150px 0; text-align:center;}
.cta-final h2{font-size:clamp(2.3rem, 4.8vw, 3.6rem); line-height:1.2; margin:26px 0 14px;}
.cta-sub{font-family:var(--script); font-style:italic; color:var(--gold); font-size:1.35rem; margin-bottom:26px;}
.cta-lines{font-size:1.02rem; color:var(--text); margin-bottom:56px; line-height:1.7;}

/* ---------- Footer ---------- */
footer{background:var(--ivory); border-top:1px solid var(--line); padding:80px 0 40px; color:var(--text);}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--line); margin-bottom:34px;}
.footer-role{font-family:var(--script); font-style:italic; color:var(--gold); font-size:1rem; margin-top:10px;}
.footer-locale{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); margin-top:14px;}
.footer-menu{display:flex; flex-direction:column; gap:12px;}
.footer-menu a{font-size:0.88rem; transition:color .3s ease;}
.footer-menu a:hover{color:var(--gold);}
.footer-contact{display:flex; flex-direction:column; gap:8px;}
.footer-label{font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold);}
.footer-contact a{font-size:0.9rem;}
.footer-contact a:hover{color:var(--gold);}
.footer-legal{max-width:820px; font-size:0.75rem; line-height:1.65; margin-bottom:14px;}
.footer-copy{margin-top:24px; font-size:0.75rem;}

/* ================= RESPONSIVE ================= */

@media (max-width:1180px){
  :root{--wrap-pad:32px;}
  .scene-grid{grid-template-columns:1fr;}
  .scene-sticky{position:static; margin-bottom:50px;}
  .concept-track, .stage-track{height:auto;}
  .concept-item, .stage-item{position:static; opacity:1; margin-bottom:34px;}
  .starting-point{grid-template-columns:1fr;}
  .sp-panel{padding-top:0; margin-top:20px;}
  .sp-text{position:static; opacity:0; height:0; overflow:hidden; padding:0; transform:none;}
  .sp-text.is-active{opacity:1; height:auto; overflow:visible; padding-top:6px;}
  .data-row{flex-direction:column; align-items:flex-start; gap:30px;}
  .data-connector{display:none;}
  .historia-grid{grid-template-columns:1fr; gap:40px;}
  .historia-sticky{position:static;}
  .historia-logo{max-width:340px; margin:0 auto;}
  .florida-card{min-height:auto;}
}

@media (max-width:900px){
  .nav-links{display:none;}
  .nav-toggle{display:block;}
  .nav-cta{display:none;}
  .vision-sticky-wrap{height:auto;}
  .vision-sticky{position:static; height:auto; padding:60px 0 20px;}
  .vision-swap{min-height:auto;}
  .vision-line{position:static; opacity:1; transform:none; display:none;}
  .vision-line.is-active{display:block;}
}

@media (max-width:640px){
  :root{--wrap-pad:22px;}
  .header-inner{height:68px;}
  .hero{padding-top:68px;}
  .hero-inner{margin-left:0; padding-top:5vh;}
  .hero-h1{font-size:clamp(1.6rem, 8vw, 2.2rem); max-width:none;}
  .hero-triad{font-size:1.05rem;}

  .scene{padding:90px 0;}
  .scene-sticky h2{font-size:clamp(1.6rem, 7vw, 2.1rem);}
  .scene-02 h2{margin-bottom:44px;}
  .sp-word{font-size:clamp(1.3rem, 7vw, 1.8rem); padding:18px 0;}

  .typo-transition{padding:100px 0;}
  .tt-line{font-size:clamp(1.4rem, 8vw, 2rem);}

  .geo-map{margin-bottom:70px;}

  .photo-pause{width:92%;}
  .photo-pause img{height:42vh;}
  .photo-pause figcaption{font-size:1rem; left:18px; bottom:18px;}

  .route-transition{gap:14px; padding:16px 0 40px;}
  .route-line{width:46px;}

  .florida-card{grid-template-columns:1fr; border-radius:20px;}
  .florida-panel{padding:46px 26px;}
  .florida-image{min-height:280px;}
  .btn-florida{width:100%; text-align:center;}

  .scene-historia{padding-top:80px;}
  .historia-logo{padding:34px; max-width:100%;}
  .historia-p, .historia-statement{margin-bottom:44px;}

  .cta-final{padding:100px 0;}
  .btn-reserve-xl{font-size:1.15rem;}

  .footer-grid{grid-template-columns:1fr; gap:30px;}
}
