@font-face{font-family:Caladea;src:url('../fonts/Caladea-Regular.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Caladea;src:url('../fonts/Caladea-Bold.woff') format('woff');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Caladea;src:url('../fonts/Caladea-Italic.woff') format('woff');font-style:italic;font-weight:400;font-display:swap}
:root{--violet:#4214bd;--violet-dark:#26116a;--gold:#ffda68;--ink:#121633;--muted:#373853;--max:1024px}
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:18px}
body{margin:0;min-width:320px;background:white;color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button{font:inherit;-webkit-tap-highlight-color:transparent}
img,svg{display:block;max-width:100%}
:focus-visible{outline:3px solid #f6ad26;outline-offset:4px}
.skip-link{position:absolute;z-index:50;top:-70px;left:15px;padding:12px;background:white;border-radius:7px}.skip-link:focus{top:12px}
.site-header{height:90px;background:linear-gradient(102deg,#4920c3 0%,#3810b1 72%,#4615bd 100%);color:#fff}
.header-inner{max-width:1024px;height:100%;margin:0 auto;padding:0 43px 0 53px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.brand img{width:216px;height:90px;object-fit:contain}
.contact-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:151px;height:45px;padding:0 18px;border-radius:999px;background:var(--gold);color:#211b33;font-size:14px;font-weight:700;white-space:nowrap;box-shadow:0 4px 12px rgba(21,7,64,.06);transition:transform .18s,box-shadow .18s}
.contact-button:hover,.hero-button:hover{transform:translateY(-2px);box-shadow:0 9px 24px rgba(22,8,68,.2)}
.contact-button span,.hero-button span{font-size:22px;line-height:0}
.hero{height:447px;position:relative;isolation:isolate;overflow:hidden;background:#fffaf2}
.hero-photo{position:absolute;right:0;top:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:-2}
.hero:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#fffdfa 0%,rgba(255,253,250,.97) 15%,rgba(255,253,250,.89) 30%,rgba(255,253,250,.45) 49%,rgba(255,253,250,.05) 66%,transparent 80%)}
.hero-inner{max-width:1024px;height:100%;margin:0 auto;padding:51px 0 0 78px}
.hero-copy{max-width:570px}.eyebrow{display:block;color:var(--violet);font-weight:700;font-size:13px;letter-spacing:.18em;text-transform:uppercase}
h1,h2,h3,p{margin:0}
h1,h2{font-family:Caladea,Georgia,serif}
h1{font-size:clamp(45px,5.5vw,58px);line-height:.96;letter-spacing:-.052em;font-weight:700;margin:17px 0 17px;max-width:490px}
h1 em{display:block;font-style:italic;font-weight:400;color:#b68216;font-size:1.08em}
.hero-copy p{width:315px;max-width:90%;font-size:18px;line-height:1.23;letter-spacing:-.012em;margin:0 0 19px}
.hero-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;height:44px;padding:0 29px;border-radius:999px;background:var(--violet);color:#fff;font-size:15px;transition:transform .18s,box-shadow .18s}
.handwritten{display:block;margin:22px 0 0 -40px;width:150px;color:var(--violet);font:italic 20px/.98 Caladea,Georgia,serif;transform:rotate(-9deg);text-align:center}.handwritten span{color:#e5a92c;font-size:31px}
.section-title{text-align:center}.section-title h2{font-size:43px;line-height:1.05;letter-spacing:-.043em;font-weight:700}.section-title p{font-size:15px;line-height:1.4;color:#1f224d;margin-top:2px}
.cities-section{max-width:1024px;padding:36px 28px 0;margin:0 auto}.cities-section .section-title{margin-bottom:26px}
.city-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.city-card{display:block;min-width:0;overflow:hidden;border-radius:12px;aspect-ratio:187/278;box-shadow:0 5px 14px rgba(28,29,69,.07);transition:transform .2s,box-shadow .2s}
.city-card img{width:100%;height:100%;object-fit:fill}.city-card:hover{transform:translateY(-4px);box-shadow:0 15px 28px rgba(24,19,65,.18)}
.plans-section{max-width:1024px;padding:29px 32px 0;margin:0 auto}.plans-section .section-title{margin-bottom:18px}
.plans-frame{position:relative}.plans-list{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 12px)/2);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;outline-offset:5px}.plans-list::-webkit-scrollbar{display:none}
.plan-card{display:block;min-width:0;overflow:hidden;border-radius:13px;scroll-snap-align:start;box-shadow:0 7px 15px rgba(24,25,65,.08);transition:transform .2s}.plan-card img{display:block;width:100%;height:auto;aspect-ratio:473/244;object-fit:fill}.plan-card:hover{transform:translateY(-3px)}
.slide-arrow{position:absolute;top:50%;z-index:2;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.96);color:var(--violet);box-shadow:0 5px 22px rgba(0,0,0,.18);font-size:30px;line-height:1;cursor:pointer}.slide-prev{left:8px}.slide-next{right:8px}.slide-arrow:disabled{opacity:.35;cursor:default}.slide-arrow[hidden],.slide-dots[hidden]{display:none}
.slide-dots{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:14px}.slide-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#b8ade8;cursor:pointer}.slide-dots button[aria-current="true"]{width:21px;border-radius:8px;background:var(--violet)}
.benefits{max-width:1024px;min-height:69px;margin:0 auto;padding:21px 63px 14px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.benefit{display:flex;align-items:center;gap:9px;min-width:0;color:#4a18d0}.benefit svg{width:37px;height:37px;flex:none}.benefit strong{display:block;font-size:11px;line-height:1.2;color:#4314bd}.benefit small{display:block;margin-top:4px;font-size:8.7px;line-height:1.2;white-space:nowrap;color:#343060}
.footer{height:173px;background:#2c1376 url('../images/pie-de-pagina.webp') no-repeat center top;background-size:1024px 173px}.footer-mobile{display:none}
.mobile-contact{display:none}
@media(max-width:800px){
  .hero-inner{padding-left:6%}.hero-photo{width:100%}
  h1{font-size:clamp(43px,6vw,56px)}
  .city-list{gap:7px}.city-card{border-radius:10px}
  .section-title h2{font-size:38px}.benefits{padding-inline:30px;gap:10px}.benefit small{white-space:normal}
}
@media(max-width:620px){
  html{scroll-padding-top:12px}
  .site-header{height:72px}.header-inner{padding:0 17px}.brand img{width:170px;height:70px}.contact-button{min-width:0;height:39px;padding:0 15px;font-size:12px;gap:5px}.contact-button span{font-size:17px}
  .hero{height:auto;min-height:575px;display:flex;align-items:flex-end;background:#fffaf2}.hero-photo{top:0;right:0;width:100%;height:310px;object-fit:cover;object-position:78% center}.hero:before{background:linear-gradient(180deg,transparent 0%,rgba(255,250,242,.04) 30%,#fffaf2 51%,#fffaf2 100%)}
  .hero-inner{height:auto;width:100%;padding:275px 24px 34px}.hero-copy{width:100%;max-width:460px}.eyebrow{font-size:11px;letter-spacing:.17em}
  h1{font-size:clamp(42px,11.5vw,62px);margin:13px 0 12px;line-height:.93;max-width:440px}.hero-copy p{font-size:16px;line-height:1.32;margin-bottom:19px;width:300px}.hero-button{height:46px;font-size:14px}.handwritten{display:none}
  .section-title h2{font-size:clamp(33px,8.3vw,43px)}.section-title p{font-size:13px;line-height:1.35}
  .cities-section{padding:33px 0 0}.cities-section .section-title{padding-inline:20px;margin-bottom:23px}
  .city-list{display:flex;gap:11px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 17px 16px;overscroll-behavior-x:contain}.city-list::-webkit-scrollbar{display:none}
  .city-card{flex:0 0 185px;width:185px;height:275px;border-radius:14px;scroll-snap-align:start}.city-card img{object-fit:fill}
  .plans-section{padding:19px 0 0}.plans-section .section-title{padding-inline:16px;margin-bottom:18px}.plans-section .section-title h2{max-width:420px;margin:0 auto}
  .plans-list{grid-auto-columns:calc(100% - 48px);gap:12px;padding:0 17px 10px;scroll-padding-left:17px}.plan-card{border-radius:14px}.plan-card img{aspect-ratio:473/244;height:auto;object-fit:fill}
  .slide-arrow{width:36px;height:36px;font-size:24px}.slide-prev{left:21px}.slide-next{right:21px}.slide-dots{margin-top:9px}
  .benefits{padding:27px 23px;display:grid;grid-template-columns:1fr;gap:18px}.benefit{gap:13px}.benefit svg{width:33px;height:33px}.benefit strong{font-size:13px}.benefit small{font-size:11px}
  .footer{height:auto;background:linear-gradient(120deg,#29106e,#4215aa);padding:21px 20px calc(100px + env(safe-area-inset-bottom));text-align:center}.footer-mobile{display:flex;flex-direction:column;align-items:center}.footer-mobile img{width:180px;height:auto}.footer-mobile p{font-size:12px;color:white;letter-spacing:.12em;margin-top:3px}
  .mobile-contact{display:flex;align-items:center;justify-content:center;gap:9px;position:fixed;z-index:20;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));height:51px;border-radius:999px;background:#25d366;color:#08331b;font-size:15px;font-weight:700;box-shadow:0 9px 25px rgba(6,52,25,.3)}.mobile-contact svg{width:21px;height:21px}
}
@media(max-width:375px){.brand img{width:148px}.contact-button{padding-inline:12px;font-size:11px}.hero{min-height:550px}.hero-photo{height:280px}.hero-inner{padding-top:255px}h1{font-size:42px}.city-card{flex-basis:174px;width:174px;height:259px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.city-card,.plan-card,.contact-button,.hero-button{transition:none}}

/* Diseño fluido para pantallas grandes y zonas deslizables en pantallas pequeñas. */
body{overflow-x:clip}
.swipe-hint{display:none}
.footer{height:auto;min-height:190px;padding:28px 0;background:linear-gradient(105deg,rgba(36,13,108,.94),rgba(50,16,140,.93)),url('../images/pie-de-pagina.webp') center bottom/cover no-repeat;color:#fff}
.footer-inner{width:min(1440px,calc(100% - 56px));min-height:134px;margin:auto;display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:20px;align-items:center}
.footer-script{font:italic 26px/.95 Caladea,Georgia,serif;transform:rotate(-7deg);transform-origin:left center}.footer-script span{color:var(--gold);font-size:34px}
.footer-brand{justify-self:center;text-align:center}.footer-brand img{width:210px;height:auto;margin:0 auto}.footer-brand small{display:block;font-size:10px;letter-spacing:.17em;margin-top:-7px}
.footer-right{text-align:right;font-size:13px;line-height:1.5}.footer-right a{display:inline-block;margin-top:12px;text-decoration:underline;text-underline-offset:4px}.footer-right a:hover{color:var(--gold)}

@media(min-width:1025px){
  .site-header{height:clamp(92px,5.3vw,108px)}
  .header-inner{max-width:none;width:min(1440px,calc(100% - clamp(64px,6vw,120px)));padding:0}
  .brand img{width:clamp(216px,13vw,250px);height:auto}
  .hero{height:clamp(480px,32vw,610px)}
  .hero-photo{width:100%;object-position:center center}
  .hero:before{background:linear-gradient(90deg,#fffdfa 0%,rgba(255,253,250,.99) 14%,rgba(255,253,250,.91) 28%,rgba(255,253,250,.55) 44%,rgba(255,253,250,.08) 64%,transparent 79%)}
  .hero-inner{max-width:none;width:min(1440px,calc(100% - clamp(64px,6vw,120px)));padding:0;display:flex;align-items:center}
  .hero-copy{max-width:690px;padding-left:clamp(24px,2.6vw,50px)}
  h1{font-size:clamp(60px,4vw,78px);max-width:690px;margin:20px 0}
  .hero-copy p{width:470px;font-size:clamp(19px,1.25vw,23px);line-height:1.32;margin-bottom:25px}
  .hero-button{height:52px;font-size:16px;padding-inline:34px}
  .handwritten{font-size:23px;margin-top:27px}
  .cities-section,.plans-section{max-width:none;width:min(1440px,calc(100% - clamp(64px,6vw,120px)));padding-left:0;padding-right:0}
  .cities-section{padding-top:clamp(40px,3.3vw,65px)}
  .city-list{gap:clamp(12px,1.15vw,20px)}
  .city-card{border-radius:16px}
  .section-title h2{font-size:clamp(45px,3.2vw,61px)}
  .section-title p{font-size:clamp(16px,1.05vw,19px)}
  .cities-section .section-title{margin-bottom:clamp(28px,2.2vw,40px)}
  .plans-section{padding-top:clamp(35px,3vw,60px)}
  .plans-section .section-title{margin-bottom:clamp(20px,1.6vw,30px)}
  .plans-list{grid-auto-columns:calc((100% - clamp(16px,1.3vw,24px))/2);gap:clamp(16px,1.3vw,24px)}
  .plan-card{border-radius:18px}
  .benefits{max-width:none;width:min(1440px,calc(100% - clamp(64px,6vw,120px)));min-height:100px;padding:28px 35px}
  .benefit strong{font-size:clamp(12px,.9vw,16px)}.benefit small{font-size:clamp(10px,.72vw,13px)}
  .benefit svg{width:44px;height:44px}
}

@media(min-width:621px) and (max-width:980px){
  .cities-section,.plans-section{max-width:none;width:100%;padding-left:0;padding-right:0}
  .cities-section{padding-top:36px}.section-title{padding-inline:22px}
  .city-list{display:flex;gap:13px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:28px;scrollbar-width:none;padding:0 28px 14px;overscroll-behavior-x:contain;align-items:flex-start}
  .city-list::-webkit-scrollbar{display:none}
  .city-card{flex:0 0 clamp(195px,28vw,245px);width:auto;aspect-ratio:187/278;scroll-snap-align:start;border-radius:14px}
  .city-card img{height:auto}
  .city-hint{display:block;text-align:center;color:var(--violet);font-size:13px;margin:2px 0 0}
  .plans-section{padding-top:30px}.plans-list{grid-auto-columns:min(70vw,570px);padding:0 28px 12px;scroll-padding-left:28px;gap:14px}
  .slide-prev{left:31px}.slide-next{right:31px}
}

@media(max-width:620px){
  .city-list{scroll-padding-left:17px;align-items:flex-start}
  .city-card{flex:0 0 min(74vw,310px);width:auto;height:auto;aspect-ratio:3/4}
  .city-card img{width:100%;height:100%;object-fit:fill}
  .city-hint{display:block;margin:0;text-align:center;color:var(--violet);font-size:12px;padding:0 14px 5px}
  .plans-list{grid-auto-columns:calc(100% - 55px)}
  .footer{min-height:0;padding:25px 18px calc(103px + env(safe-area-inset-bottom));background:linear-gradient(120deg,rgba(38,14,105,.95),rgba(64,21,162,.94)),url('../images/pie-de-pagina.webp') center/cover no-repeat}
  .footer-inner{width:100%;min-height:0;display:flex;flex-direction:column;gap:8px;text-align:center}
  .footer-script{display:none}.footer-brand img{width:175px}.footer-brand small{font-size:9px}
  .footer-right{text-align:center;font-size:12px}.footer-right a{margin-top:7px}
}

/* Nuevos planes: fotografía de fondo y título HTML sobre la imagen. */
.plan-card-custom{position:relative;aspect-ratio:473/244;color:#fff;background:#20244c}
.plan-card-custom img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.plan-card-custom:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,15,35,.86),rgba(10,15,35,.38) 48%,transparent 82%)}
.plan-copy{position:absolute;z-index:1;left:5%;right:5%;bottom:7%;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.plan-copy h3{font:700 clamp(23px,2.2vw,34px)/1.04 Caladea,Georgia,serif;letter-spacing:-.025em;max-width:95%}
.plan-copy p{font-size:clamp(12px,1vw,16px);line-height:1.2;margin-top:4px}
.plan-link-label{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:34px;padding:0 17px;margin-top:11px;border:1px solid var(--gold);border-radius:999px;font-size:13px;background:rgba(20,24,49,.23)}
.plan-card-custom:hover .plan-link-label{background:var(--gold);color:#221b35;text-shadow:none}
@media(max-width:620px){
  .plan-copy{bottom:7%;left:5%;right:5%}
  .plan-copy h3{font-size:clamp(21px,6vw,27px)}
  .plan-copy p{font-size:12px}
  .plan-link-label{margin-top:7px;min-height:30px;padding-inline:12px;font-size:12px}
}
@media(max-width:350px){
  .plan-copy h3{font-size:20px}
  .plan-copy p{display:none}
  .plan-link-label{margin-top:6px}
}
