@charset "UTF-8";
@font-face{font-family:'Grappa';src:url(../fonts/grappa-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Metropolis';src:url(../fonts/metropolis-300.woff2) format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Metropolis';src:url(../fonts/metropolis-400.woff2) format('woff2');font-weight:400 500;font-display:swap}
@font-face{font-family:'Urban Handwritten';src:url(../fonts/urban-400.woff2) format('woff2');font-weight:400;font-display:swap}

:root{
  --noche:#2A0B12;
  --vino:#4A1621;
  --vino-2:#3A1019;
  --carmesi:#8C1C2F;
  --rosa:#E0AEB8;
  --crema:#EFEBE4;
  --papel:#F8F6F1;
  --tinta:#5B2B34;
  --suave:#8A6A70;
  --error:#B42318;
  --linea-c:rgba(239,235,228,.16);
  --linea-o:rgba(140,28,47,.16);
  --borde:rgba(91,43,52,.18);
  --sombra:0 30px 60px -24px rgba(10,2,4,.7);
  --serif:'Grappa', Georgia, serif;
  --script:'Urban Handwritten', 'Brush Script MT', cursive;
  --sans:'Metropolis', system-ui, sans-serif;
  --pad:clamp(20px,5vw,64px);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --lotus:url(../img/marca-fondo.png);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;overflow-x:hidden;font-family:var(--sans);font-weight:400;color:var(--crema);background:var(--noche);line-height:1.65;-webkit-font-smoothing:antialiased}
body.is-locked{overflow:hidden}
svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4,p,dl,dd{margin:0}
button{font:inherit}
.container{width:min(1240px,100% - var(--pad) * 2);margin-inline:auto}

/* ===== Texturas y fotos ===== */
.grain{position:relative;isolation:isolate}
.grain::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.16;mix-blend-mode:overlay;pointer-events:none;z-index:-1}
.paper{position:relative;isolation:isolate;background:var(--papel);color:var(--tinta);box-shadow:var(--sombra)}
.paper::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.07;mix-blend-mode:multiply;pointer-events:none;z-index:-1}
.tape{position:absolute;top:-16px;left:50%;width:120px;height:34px;transform:translateX(-50%) rotate(-2deg);background:rgba(255,255,255,.5);box-shadow:0 1px 4px rgba(0,0,0,.14);z-index:3}
.ph{position:relative;margin:0;overflow:hidden;background-color:#3d121b;background-image:var(--img,none),var(--lotus),linear-gradient(155deg,#6a2231 0%,#3a1019 55%,#24080e 100%);background-size:cover,72px auto,cover;background-position:center,center,center;background-repeat:no-repeat}
.ph::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.1;mix-blend-mode:overlay;pointer-events:none;z-index:1}

/* ===== Imagenes (sin estilos en linea, compatible con CSP) ===== */
.ph--hero{--img:url(../img/hero.jpg)}
.ph--exp1{--img:url(../img/experiencia-1.jpg)}
.ph--exp2{--img:url(../img/experiencia-2.jpg)}
.ph--exp3{--img:url(../img/experiencia-3.jpg);background-position:25% 60%,center,center}
.ph--parejas{--img:url(../img/parejas.jpg);background-position:47% 50%,center,center}
.ph--familia-pequena{--img:url(../img/familia-pequena.jpg);background-position:55% 50%,center,center}
.ph--familia{--img:url(../img/familia.jpg);background-position:45% 50%,center,center}
.ph--gal1{--img:url(../img/galeria-1.jpg);background-position:30% 35%,center,center}
.ph--gal2{--img:url(../img/galeria-2.jpg);background-position:50% 30%,center,center}
.ph--gal3{--img:url(../img/galeria-3.jpg);background-position:45% 50%,center,center}
.ph--gal4{--img:url(../img/galeria-4.jpg);background-position:50% 80%,center,center}
.ph--gal5{--img:url(../img/galeria-5.jpg);background-position:52% 50%,center,center}

/* ===== Tipografia ===== */
.script{font-family:var(--script);font-weight:400;line-height:1.1;color:var(--carmesi)}
.tag{display:block;font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--carmesi)}
.tag--light{color:var(--rosa)}
.link{display:inline-block;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px;transition:opacity .2s}
.link:hover{opacity:.65}

/* ===== Logo ===== */
.logo{display:inline-flex;text-decoration:none;line-height:0}
.logo img{display:block;height:54px;width:auto}
.logo--left img{height:96px}

/* ===== Botones ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--sans);font-weight:500;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:1px solid var(--carmesi);background:var(--carmesi);color:var(--papel);padding:17px 30px;border-radius:2px;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.btn:hover{background:var(--vino);border-color:var(--vino)}
.btn:focus-visible{outline:2px solid var(--rosa);outline-offset:3px}
.btn--light{background:var(--crema);border-color:var(--crema);color:var(--vino)}
.btn--light:hover{background:var(--rosa);border-color:var(--rosa);color:var(--vino)}
.btn--full{width:100%}
.btn:disabled{opacity:.75;cursor:wait}
.spinner{display:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}
.btn.is-loading .spinner{display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== Navegacion ===== */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px var(--pad);transition:background .3s,padding .3s}
.nav.is-scrolled{background:rgba(42,11,18,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding-block:12px}
.nav__links{display:flex;gap:40px}
.nav__links a,.nav__cta{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:var(--crema)}
.nav__links a{opacity:.7;transition:opacity .2s}
.nav__links a:hover{opacity:1}
.nav__cta{border-bottom:1px solid var(--rosa);padding-bottom:4px}

/* ===== Hero ===== */
.hero{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:140px 0 64px;overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:-2;background-size:cover,min(50vw,700px) auto,cover;background-position:center,84% 40%,center}
.hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(42,11,18,.55) 0%,rgba(42,11,18,.1) 35%,rgba(42,11,18,.6) 70%,rgba(42,11,18,.97) 100%),linear-gradient(90deg,rgba(42,11,18,.65) 0%,transparent 60%)}
.hero__rail{position:absolute;right:calc(var(--pad) * .55);top:50%;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);display:flex;align-items:center;gap:16px;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:rgba(239,235,228,.6)}
.hero__rail::before{content:"";width:1px;height:64px;background:rgba(239,235,228,.4)}
.hero__kicker{display:flex;align-items:center;gap:14px;font-style:italic;color:var(--rosa);margin-bottom:22px}
.hero__line{width:48px;height:1px;background:var(--rosa)}
.hero__title{font-family:var(--serif);font-weight:400;text-transform:uppercase;font-size:clamp(2.4rem,10vw,9.5rem);line-height:.86;letter-spacing:-.015em}
.hero__title span{display:block;animation:rise 1.1s cubic-bezier(.2,.8,.2,1) both}
.hero__title span+span{padding-left:.6em;animation-delay:.12s}
.hero__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-top:26px;animation:rise 1.1s .25s cubic-bezier(.2,.8,.2,1) both}
.hero__script{font-size:clamp(2.2rem,4.6vw,3.8rem);color:var(--rosa);margin-left:1.1em}
.hero__cta{display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:340px}
.hero__cta p{font-size:.95rem;color:rgba(239,235,228,.78)}
@keyframes rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}

/* ===== Cinta ===== */
.marquee{background:var(--crema);color:var(--carmesi);overflow:hidden;padding:20px 0}
.marquee__track{display:flex;width:max-content;animation:marquee 45s linear infinite}
.marquee__group{display:flex;align-items:center;gap:36px;padding-right:36px}
.marquee span{font-family:var(--serif);text-transform:uppercase;font-size:clamp(1.1rem,2.2vw,1.55rem);white-space:nowrap}
.marquee img{width:34px;height:auto;flex:none;display:block}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ===== (01) Experiencia ===== */
.about{background:var(--crema);color:var(--tinta);padding:150px 0}
.about__top{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-bottom:100px}
.about__top .tag{grid-column:1/4;padding-top:1em}
.about__statement{grid-column:4/13;font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3.5vw,3.2rem);line-height:1.18;letter-spacing:-.01em;color:var(--vino)}
.about__statement .script{font-size:1.45em;line-height:.7}
.about__body{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end}
.about__collage{grid-column:1/8;position:relative;height:620px}
.about__img{position:absolute;box-shadow:var(--sombra)}
.about__img--a{left:0;top:0;width:58%;height:76%;border-radius:999px 999px 0 0}
.about__img--b{right:4%;top:10%;width:38%;height:40%}
.about__img--c{left:34%;bottom:0;width:40%;height:34%}
.about__stamp{position:absolute;right:0;bottom:12%;z-index:2;width:128px;height:128px;border-radius:50%;background:var(--carmesi);color:var(--papel);display:grid;place-content:center;text-align:center;font-family:var(--serif);font-size:2.5rem;line-height:1;transform:rotate(-8deg);box-shadow:0 16px 30px -12px rgba(58,16,25,.6)}
.about__stamp small{display:block;font-family:var(--sans);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;margin-top:8px}
.about__aside{grid-column:9/13}
.services{list-style:none;padding:0;margin:0 0 36px;border-top:1px solid var(--linea-o)}
.services li{display:grid;grid-template-columns:44px 1fr;gap:2px 16px;padding:22px 0;border-bottom:1px solid var(--linea-o)}
.services span{grid-row:span 2;font-family:var(--serif);color:var(--carmesi);padding-top:3px}
.services h3{font-family:var(--serif);font-weight:400;font-size:1.22rem;color:var(--vino)}
.services p{font-size:.95rem}

/* ===== Encabezados de seccion ===== */
.sec-head{display:grid;grid-template-columns:1fr minmax(240px,340px);gap:40px;align-items:end;padding-bottom:44px;border-bottom:1px solid var(--linea-c)}
.sec-head .tag{margin-bottom:18px}
.sec-head__title{font-family:var(--serif);font-weight:400;text-transform:uppercase;font-size:clamp(2.8rem,8.5vw,7rem);line-height:.9}
.sec-head__title .script{display:block;text-transform:none;font-size:.42em;color:var(--rosa);margin:.1em 0 0 1.2em}
.sec-head__side{color:rgba(239,235,228,.7)}
.sec-head--rev{grid-template-columns:minmax(240px,340px) 1fr}
.sec-head--rev>div{order:2;text-align:right}
.sec-head--rev .sec-head__title .script{margin:.1em 1.2em 0 0}

/* ===== (02) Paquetes ===== */
.packs{background:var(--noche);padding:150px 0}
.pack{display:grid;grid-template-columns:60px minmax(0,.85fr) minmax(0,1.15fr) 250px;gap:44px;align-items:center;padding:60px 0;border-bottom:1px solid var(--linea-c)}
.pack__index{align-self:start;font-family:var(--serif);color:var(--rosa);letter-spacing:.1em}
.pack__photo{aspect-ratio:4/5}
.pack__people{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rosa)}
.pack__name{font-size:clamp(2.6rem,4vw,3.4rem);color:var(--crema);margin:8px 0 24px}
.pack__list{list-style:none;padding:0;margin:0;columns:2;column-gap:28px}
.pack__list li{break-inside:avoid;padding:9px 0;border-top:1px solid var(--linea-c);font-size:.95rem;color:rgba(239,235,228,.82)}
.pack__tag{padding:46px 26px 26px;text-align:center;transform:rotate(1.5deg);transition:transform .4s}
.pack:nth-of-type(even) .pack__tag{transform:rotate(-1.5deg)}
.pack:hover .pack__tag{transform:rotate(0)}
.pack__from{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--suave)}
.pack__amount{display:block;font-family:var(--serif);font-size:3.2rem;line-height:1;color:var(--carmesi);margin:8px 0 14px}
.pack__line{display:block;font-size:.88rem}
.pack__btn{margin-top:22px}

/* ===== (03) Galeria: mosaico diagonal ===== */
.gallery{background:var(--vino);padding:150px 0 240px}
.mason{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:72px}
.mason__item{aspect-ratio:1}
.mason__item:nth-child(3n+2){transform:translateY(90px)}
.mason__item:nth-child(3n+3){transform:translateY(180px)}
.mason figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:48px 20px 16px;background:linear-gradient(transparent,rgba(26,6,10,.72));font-size:.7rem;letter-spacing:.22em;text-transform:uppercase}
.mason__note{display:flex;flex-direction:column;justify-content:flex-end;gap:18px;padding:28px;border:1px solid var(--linea-c)}
.mason__note .script{font-size:clamp(2.2rem,3.4vw,3rem);color:var(--rosa)}
.mason__note .link{align-self:flex-start}

/* ===== (04) Diptico ===== */
.diptych{display:grid;grid-template-columns:1fr 1fr}
.diptych__a{background:var(--crema);color:var(--vino);padding:130px var(--pad) 130px max(var(--pad),calc((100vw - 1240px) / 2))}
.diptych__title{font-family:var(--serif);font-weight:400;text-transform:uppercase;font-size:clamp(2.6rem,5.6vw,5.4rem);line-height:.92;margin-top:24px}
.diptych__a .script{font-size:clamp(2.1rem,3.6vw,3.2rem);margin:.15em 0 0 .5em}
.diptych__b{background:var(--lotus) no-repeat right -70px bottom -50px / 400px auto,var(--carmesi);padding:130px max(var(--pad),calc((100vw - 1240px) / 2)) 130px var(--pad);display:flex;flex-direction:column;justify-content:center;gap:34px}
.facts div{display:grid;grid-template-columns:170px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid rgba(239,235,228,.22)}
.facts div:first-child{border-top:1px solid rgba(239,235,228,.22)}
.facts dt{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rosa);padding-top:5px}
.facts dd{font-family:var(--serif);font-size:1.2rem}
.diptych__note{max-width:40ch;color:rgba(239,235,228,.85)}
.diptych__b .link{align-self:flex-start}

/* ===== (05) Reserva ===== */
.booking{background:var(--noche);padding:150px 0}
.booking__head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:72px}
.booking__head .tag{margin-bottom:18px}
.booking__title{font-family:var(--serif);font-weight:400;text-transform:uppercase;font-size:clamp(2.8rem,7vw,6rem);line-height:.9}
.booking__title .script{display:block;text-transform:none;font-size:.6em;color:var(--rosa);margin:.05em 0 0 .9em}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:paso}
.steps li{counter-increment:paso;border-top:1px solid var(--linea-c);padding-top:18px;font-size:.9rem;color:rgba(239,235,228,.68)}
.steps li::before{content:"0" counter(paso);display:block;font-family:var(--serif);color:var(--rosa);margin-bottom:10px}
.steps strong{display:block;color:var(--crema);font-weight:500;margin-bottom:2px}

.book{display:grid;grid-template-columns:1.15fr 1fr}
.book--closed{display:block;padding:56px 48px}
.book__col{padding:58px 48px 48px}
.book__col--data{border-left:1px dashed rgba(140,28,47,.32);display:flex;flex-direction:column}
.book__step{display:flex;align-items:baseline;gap:14px;font-family:var(--serif);font-weight:400;font-size:1.45rem;text-transform:uppercase;color:var(--vino);padding-bottom:18px;border-bottom:1px solid var(--linea-o);margin-bottom:34px}
.book__step span{font-size:.82rem;letter-spacing:.12em;color:var(--carmesi)}

.group{margin-bottom:34px}
.group__label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}
.group__label>span,.field>span{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--carmesi);font-weight:500}
.err{font-style:normal;font-size:.8rem;color:var(--error)}
.err:empty{display:none}

/* Tarjetas de paquete */
.choice{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.choice__item,.slot,.cal__day{position:relative;cursor:pointer}
.choice__item input,.slot input,.cal__day input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.choice__box{display:flex;flex-direction:column;gap:6px;height:100%;padding:16px 14px;background:#fff;border:1px solid var(--borde);transition:background .2s,border-color .2s}
.choice__name{font-family:var(--serif);font-size:1.02rem;line-height:1.2;color:var(--vino)}
.choice__price{font-size:.8rem;color:var(--suave)}
.choice__item:hover .choice__box{border-color:var(--carmesi)}
.choice__item input:checked+.choice__box{background:var(--carmesi);border-color:var(--carmesi)}
.choice__item input:checked+.choice__box .choice__name,
.choice__item input:checked+.choice__box .choice__price{color:var(--papel)}

/* Calendario */
.cal{background:#fff;border:1px solid var(--borde);padding:18px 18px 14px}
.cal+.cal{margin-top:12px}
.cal__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.cal__month{font-family:var(--serif);font-size:1.12rem;color:var(--vino)}
.cal__hint{font-size:.78rem;color:var(--suave)}
.cal__week,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal__week span{font-size:.66rem;letter-spacing:.16em;color:var(--suave);padding:6px 0}
.cal__day span{display:grid;place-items:center;width:min(100%,44px);aspect-ratio:1;margin:0 auto;border-radius:50%;font-size:.95rem;color:var(--vino);transition:background .2s,color .2s}
.cal__day:hover span{background:rgba(140,28,47,.08)}
.cal__day input:checked+span{background:var(--carmesi);color:var(--papel)}
.cal__day.is-off,.cal__day.is-off input{cursor:default}
.cal__day.is-off span{color:rgba(91,43,52,.25)}
.cal__day.is-off:hover span{background:none}

/* Horarios */
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.slot span{display:block;text-align:center;padding:13px 6px;background:#fff;border:1px solid var(--borde);font-size:.9rem;color:var(--vino);white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.slot:hover span{border-color:var(--carmesi)}
.slot input:checked+span{background:var(--carmesi);border-color:var(--carmesi);color:var(--papel)}

/* Contador de personas */
.people{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.stepper{display:inline-flex;align-items:stretch;background:#fff;border:1px solid var(--borde)}
.stepper__btn{width:52px;height:52px;border:0;background:transparent;font-size:1.4rem;line-height:1;color:var(--carmesi);cursor:pointer;transition:background .2s}
.stepper__btn:hover:not(:disabled){background:rgba(140,28,47,.08)}
.stepper__btn:disabled{color:rgba(91,43,52,.22);cursor:not-allowed}
.stepper__value{display:grid;place-items:center;min-width:140px;padding:0 14px;border-inline:1px solid rgba(91,43,52,.1);font-family:var(--serif);font-size:1.08rem;color:var(--vino)}
.hint{font-size:.85rem;color:var(--suave)}

/* Foco y errores */
.choice__item input:focus-visible+.choice__box,
.slot input:focus-visible+span,
.cal__day input:focus-visible+span,
.stepper__btn:focus-visible{outline:2px solid var(--carmesi);outline-offset:2px}
.group.has-error .choice__box,.group.has-error .cal,.group.has-error .slot span,.group.has-error .stepper{border-color:var(--error)}

/* Campos de texto */
.row{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:26px}
.field input{font:inherit;font-size:1.05rem;color:var(--vino);background:transparent;border:0;border-bottom:1px solid rgba(91,43,52,.3);border-radius:0;padding:10px 0;width:100%;min-height:46px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.field input::placeholder{color:rgba(91,43,52,.35)}
.field input:focus{outline:none;border-bottom-color:var(--carmesi);box-shadow:0 1px 0 var(--carmesi)}
.field.has-error input{border-bottom-color:var(--error);box-shadow:0 1px 0 var(--error)}
.field .err{margin-top:4px}

/* Ticket resumen */
.ticket{position:relative;background:var(--crema);padding:22px 24px 20px;margin:6px 0 24px}
.ticket::before,.ticket::after{content:"";position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:var(--papel);transform:translateY(-50%)}
.ticket::before{left:-9px}
.ticket::after{right:-9px}
.ticket__title{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--carmesi);margin-bottom:10px}
.ticket__row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;font-size:.92rem;border-bottom:1px solid rgba(91,43,52,.08)}
.ticket__row span{color:var(--suave)}
.ticket__row strong{font-weight:500;color:var(--vino);text-align:right}
.ticket__total{display:flex;justify-content:space-between;gap:16px;border-top:1px dashed rgba(140,28,47,.4);margin-top:12px;padding-top:14px}
.ticket__total small{display:block;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--suave)}
.ticket__total strong{font-family:var(--serif);font-weight:400;font-size:1.7rem;color:var(--carmesi)}
.ticket__total div:last-child{text-align:right}

.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.form__error{background:#FBE9EC;color:var(--carmesi);padding:12px 14px;font-size:.95rem;margin-bottom:16px}
.form__error[hidden]{display:none}
.policy{font-size:.82rem;color:var(--suave);margin-top:18px;text-align:center}
.policy p+p{margin-top:4px}

/* ===== Footer ===== */
.footer{background:var(--vino-2);padding:100px 0 36px}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:64px;border-bottom:1px solid var(--linea-c)}
.footer__big{font-family:var(--script);font-size:clamp(2.6rem,5vw,4rem);color:var(--rosa);line-height:1;margin-top:24px}
.footer h4{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rosa);font-weight:500;margin-bottom:14px}
.footer p{color:rgba(239,235,228,.72);margin-bottom:16px}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:28px;font-size:.8rem;color:rgba(239,235,228,.5)}

/* ===== Modal ===== */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}
.modal[hidden]{display:none}
.modal__overlay{position:absolute;inset:0;background:rgba(26,6,10,.75);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .3s}
.modal__box{position:relative;width:min(480px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:56px 36px 36px;text-align:center;opacity:0;transform:translateY(24px) rotate(-1deg);transition:opacity .35s,transform .4s cubic-bezier(.2,.8,.2,1)}
.modal.is-open .modal__overlay{opacity:1}
.modal.is-open .modal__box{opacity:1;transform:rotate(0)}
.modal__mark{display:block;width:60px;height:auto;margin:0 auto 18px}
.modal__title{font-family:var(--serif);font-weight:400;text-transform:uppercase;font-size:clamp(1.8rem,5vw,2.3rem);line-height:1;color:var(--carmesi)}
.modal .script{font-size:2.3rem;margin-top:4px}
.modal__text{margin:20px 0}
.modal__wa{display:flex;gap:14px;align-items:center;text-align:left;background:var(--crema);padding:16px 18px;margin-bottom:16px}
.modal__wa svg{flex:none;width:30px;height:30px;fill:none;stroke:var(--carmesi);stroke-width:1.6;stroke-linejoin:round}
.modal__wa p{font-size:.95rem}
.modal__small{font-size:.85rem;color:var(--suave);margin-bottom:24px}

/* ===== Animacion de entrada ===== */
.reveal{opacity:0;translate:0 32px;transition:opacity .9s ease,translate .9s ease}
.reveal.is-visible{opacity:1;translate:0 0}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;translate:none;transition:none}
  .marquee__track,.hero__title span,.hero__foot{animation:none}
}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .about__top,.about__body{grid-template-columns:1fr;gap:28px}
  .about__top .tag,.about__statement,.about__collage,.about__aside{grid-column:1/-1}
  .about__top{margin-bottom:64px}
  .about__body{gap:64px}
  .pack{grid-template-columns:1fr 1fr;gap:32px}
  .pack__index{grid-column:1/-1}
  .pack__tag{grid-column:1/-1;justify-self:start;width:min(320px,100%)}
  .booking__head{grid-template-columns:1fr;gap:40px}
  .book{grid-template-columns:1fr}
  .book__col--data{border-left:0;border-top:1px dashed rgba(140,28,47,.32)}
  .diptych{grid-template-columns:1fr}
  .diptych__a,.diptych__b{padding:100px var(--pad)}
}
@media (max-width:820px){
  .nav__links,.hero__rail{display:none}
  .hero__foot{flex-direction:column;align-items:flex-start;gap:28px}
  .hero__script{margin-left:.4em}
  .hero__title span+span{padding-left:.3em}
  .sec-head,.sec-head--rev{grid-template-columns:1fr;gap:20px}
  .sec-head--rev>div{order:0;text-align:left}
  .sec-head--rev .sec-head__title .script{margin:.1em 0 0 1.2em}
  .mason{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:center}
  .mason__item:nth-child(n){transform:none}
  .mason__item.ph{aspect-ratio:3/2}
  .mason .ph--gal2,.mason .ph--gal4{aspect-ratio:3/4}
  .mason__note{aspect-ratio:auto;min-height:200px}
  .gallery{padding-bottom:200px}
  .footer__top{grid-template-columns:1fr 1fr}
  .footer__top>div:first-child{grid-column:1/-1}
  .steps{grid-template-columns:1fr;gap:16px}
}
@media (max-width:600px){
  .about,.packs,.booking{padding:100px 0}
  .gallery{padding:100px 0 160px}
  .about__collage{height:460px}
  .about__stamp{width:100px;height:100px;font-size:1.9rem}
  .pack{grid-template-columns:1fr}
  .pack__photo{aspect-ratio:4/3}
  .mason{grid-template-columns:minmax(0,1fr)}
  .pack__list{columns:1}
  .facts div{grid-template-columns:1fr;gap:4px}
  .choice{grid-template-columns:1fr}
  .slots{grid-template-columns:repeat(3,1fr)}
  .row{grid-template-columns:1fr;gap:0}
  .book__col{padding:44px 20px 36px}
  .cal{padding:14px 10px 10px}
  .footer__top{grid-template-columns:1fr}
  .footer__bottom{flex-direction:column}
  .modal__box{padding:50px 22px 28px}
}
/* ===== WhatsApp flotante (pensado para tactil) ===== */
.wa{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:0;text-decoration:none;color:#fff;background:#25D366;border-radius:999px;box-shadow:0 8px 24px -6px rgba(0,0,0,.55);-webkit-tap-highlight-color:transparent;transform:translateY(24px) scale(.6);opacity:0;pointer-events:none;transition:transform .45s cubic-bezier(.2,.9,.3,1.3),opacity .3s,visibility 0s .45s;visibility:hidden}
.wa.is-on{transform:none;opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s}
.wa.is-off{opacity:0;pointer-events:none;visibility:hidden;transform:translateY(24px)}
.wa__icon{position:relative;flex:none;width:58px;height:58px;display:grid;place-items:center}
.wa__icon svg{width:32px;height:32px}
.wa__icon::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;opacity:0;animation:wa-pulse 2.8s ease-out 1.2s infinite}
.wa__label{max-width:0;overflow:hidden;white-space:nowrap;font-size:.86rem;font-weight:500;letter-spacing:.02em;opacity:0;transition:max-width .5s ease,opacity .3s,padding .5s}
.wa.is-open .wa__label{max-width:200px;opacity:1;padding-left:20px}
.wa:active{transform:scale(.92);transition-duration:.12s}
@keyframes wa-pulse{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(1.55);opacity:0}}
@media (prefers-reduced-motion:reduce){.wa,.wa__label{transition:none}.wa__icon::before{animation:none}}
