
@font-face{font-family:'Anton';src:url(fonts/anton-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Fraunces';src:url(fonts/fraunces-400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Fraunces';src:url(fonts/fraunces-400-it.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Fraunces';src:url(fonts/fraunces-600.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Fraunces';src:url(fonts/fraunces-600-it.woff2) format('woff2');font-weight:600;font-style:italic;font-display:swap}
@font-face{font-family:'Alex Brush';src:url(fonts/alexbrush-400.woff2) format('woff2');font-weight:400;font-display:swap}
:root{
 --vino:#4D0E12;--vino-osc:#3A090C;--soil:#4A2E27;--crema:#F7F5F1;--azul:#A5BCD6;
 --linea-cl:rgba(250,247,226,.22);--linea-osc:#E2DFD8;
 --wa:#25d366;--wa-ink:#0a3622;
 --disp:'Anton',Impact,'Arial Narrow',sans-serif;--mano:'Alex Brush',cursive;--serif:'Fraunces',Georgia,serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{overflow-x:clip;font-family:var(--serif);color:var(--crema);background-color:var(--vino);background-image:radial-gradient(rgba(250,247,226,.06) 1px,transparent 1px);background-size:22px 22px;font-size:1.05rem;line-height:1.66;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:var(--azul)}
main>*{width:100%}
section[id]{scroll-margin-top:5rem}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--azul);outline-offset:2px;border-radius:8px}
::selection{background:var(--azul);color:var(--vino)}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:24px}
h1,h2,h3{font-family:var(--disp);font-weight:400;letter-spacing:.015em;text-wrap:balance;line-height:1.05;text-transform:uppercase}
h2{font-size:clamp(2.1rem,4.8vw,3.6rem)}
.mano{font-family:var(--mano);font-weight:400;letter-spacing:0;text-transform:none}
.kicker{display:inline-block;font-family:var(--serif);font-weight:600;font-size:.95rem;letter-spacing:.22em;text-transform:uppercase;color:var(--azul)}
section.blq.claro .kicker{color:var(--vino);opacity:.75}
.sub{font-style:italic;color:color-mix(in srgb,var(--crema) 82%,transparent);font-size:clamp(1.02rem,1.3vw,1.18rem);max-width:58ch}
.acento{position:relative;white-space:nowrap}
.acento.azulado{color:var(--azul)}
.acento::after{content:'';position:absolute;left:0;bottom:-.14em;height:4px;width:100%;background:var(--azul);border-radius:2px}
html.anim .acento::after{width:0;transition:width .9s ease .35s}
html.anim .acento.is-visible::after,html.anim .is-visible .acento::after{width:100%}
/* barra de progreso de lectura */
#progreso{position:fixed;top:0;left:0;height:3px;width:0;background:var(--azul);z-index:80}
/* cursor acompañante (solo puntero fino) */
#lente{position:fixed;z-index:75;width:26px;height:26px;border:2px solid var(--azul);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s,width .2s,height .2s}
body.con-lente #lente{opacity:.7}
#lente.grande{width:52px;height:52px;background:rgba(165,188,214,.15)}
/* botones */
.b{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--disp);font-weight:400;letter-spacing:.06em;text-transform:uppercase;font-size:.95rem;padding:.95rem 1.8rem;border-radius:999px;text-decoration:none;border:2px solid transparent;cursor:pointer;position:relative;overflow:hidden;transition:transform .28s cubic-bezier(.2,.9,.3,1.4),background-color .18s,color .18s,border-color .18s}
.b:hover{transform:scale(1.06) rotate(-.8deg)}
.b:active{transform:scale(.97)}
.b::after{content:'';position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg)}
html.anim .b-terra::after{animation:brillo 3.8s ease-in-out infinite}
@keyframes brillo{0%,55%{left:-80%}75%,100%{left:130%}}
.b-terra{background:var(--azul);color:var(--vino-osc);font-size:1rem;border-color:rgba(58,9,12,.3)}
.b-terra:hover{background:#c6d9ec}
.b-linea{background:transparent;color:var(--crema);border-color:var(--crema)}
.b-linea:hover{background:var(--crema);color:var(--vino)}
.claro .b-linea,.hero .b-linea{color:var(--vino);border-color:var(--vino)}
.claro .b-linea:hover,.hero .b-linea:hover{background:var(--vino);color:var(--crema)}
.b-wa{background:var(--wa);color:var(--wa-ink)}
/* nav */
.nav{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--vino) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--linea-cl)}
.nav .wrap{display:flex;align-items:center;gap:22px;height:68px}
.nav .logo{font-family:var(--mano);font-size:1.75rem;color:var(--crema);text-decoration:none;line-height:1;transition:transform .3s}
.nav .logo:hover{transform:rotate(-3deg) scale(1.05)}
.nav nav{display:flex;gap:2px;margin-left:auto}
.nav nav a{text-decoration:none;color:var(--crema);font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;padding:.5rem .85rem;border-radius:999px;transition:background-color .15s,color .15s}
.nav nav a:hover{background:rgba(165,188,214,.18);color:var(--azul)}
.nav nav .cta-menu{display:none}
.nav .cta{background:var(--azul);color:var(--vino);font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;padding:.6rem 1.2rem;border-radius:999px;text-decoration:none;transition:transform .25s cubic-bezier(.2,.9,.3,1.4)}
.nav .cta:hover{transform:scale(1.07) rotate(-1deg)}
.burger{display:none;background:none;border:2px solid var(--linea-cl);border-radius:10px;min-width:44px;min-height:44px;padding:6px 11px;font-size:17px;color:var(--crema)}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:#111;padding:8px 14px;z-index:99}
.skip:focus{left:8px;top:8px}
/* HERO (claro, como la original) */
.hero{position:relative;overflow:clip;background:#EFEDE8;background-image:radial-gradient(rgba(77,14,18,.05) 1px,transparent 1px);background-size:20px 20px;color:var(--soil)}
.hero::before{content:'';position:absolute;right:-16%;top:-30%;width:60%;aspect-ratio:1;border-radius:47% 53% 58% 42%/44% 49% 51% 56%;background:radial-gradient(closest-side,rgba(165,188,214,.5),transparent 78%);pointer-events:none}
html.anim .hero::before{animation:blob 14s ease-in-out infinite alternate}
@keyframes blob{0%{border-radius:47% 53% 58% 42%/44% 49% 51% 56%;transform:rotate(0)}100%{border-radius:58% 42% 44% 56%/52% 58% 42% 48%;transform:rotate(10deg) scale(1.06)}}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;padding-block:64px 78px;position:relative}
.hero h1{font-size:clamp(3.1rem,8.2vw,5.8rem);line-height:1;color:var(--vino)}
.hero .kicker{margin-bottom:14px;font-size:1.14rem;text-wrap:balance}
@media(min-width:1021px){.hero .wrap{max-width:1268px;grid-template-columns:1.16fr .84fr}.hero .kicker{letter-spacing:.19em;white-space:nowrap;text-wrap:nowrap}}
.hero .sub{margin-top:18px;color:var(--soil);font-size:clamp(1.15rem,1.6vw,1.4rem)}

.hero .btns{display:flex;gap:14px;align-items:center;margin-top:26px;flex-wrap:wrap}
.socials{display:flex;gap:10px}
.socials a{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border:2px solid var(--vino);border-radius:50%;color:var(--vino);transition:transform .3s cubic-bezier(.2,.9,.3,1.4),background-color .18s,color .18s}
.socials a:hover{background:var(--vino);color:var(--crema);transform:rotate(-10deg) scale(1.12)}
.hero-foto{position:relative;justify-self:end;width:min(100%,470px)}
.hero-foto img{border-radius:52% 48% 44% 56%/38% 42% 58% 62%;aspect-ratio:1;object-fit:cover;box-shadow:0 30px 70px -28px rgba(58,9,12,.5)}
html.anim .hero-foto img{animation:blob2 16s ease-in-out infinite alternate}
@keyframes blob2{0%{border-radius:52% 48% 44% 56%/38% 42% 58% 62%}100%{border-radius:44% 56% 56% 44%/56% 44% 44% 56%}}
.sticker{position:absolute;background:var(--vino);color:var(--crema);font-family:var(--disp);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;padding:.55rem 1rem;border-radius:999px;transform:rotate(-7deg)}
html.anim .sticker{animation:flota 5s ease-in-out infinite alternate}
@keyframes flota{from{transform:rotate(-7deg) translateY(0)}to{transform:rotate(-4deg) translateY(-8px)}}
.sticker.abajo{bottom:26px;left:-14px}
.firma-hero{position:absolute;top:-8px;right:8px;font-family:var(--mano);font-size:clamp(2.2rem,4vw,3.2rem);color:var(--vino);transform:rotate(-6deg)}
/* secciones: granate por defecto, .claro = crema */
section.blq{padding:80px 0}
section.blq.claro{background:var(--crema);background-image:radial-gradient(rgba(77,14,18,.05) 1px,transparent 1px);background-size:20px 20px;color:var(--soil)}
section.blq.claro h2,section.blq.claro h3{color:var(--vino)}
section.blq.claro .sub{color:#6b5449}
.cab{margin-bottom:38px}
.cab h2{margin-top:10px;color:var(--crema)}
section.blq.claro .cab h2{color:var(--vino)}
.cab .sub{margin-top:10px}
/* portfolio */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 26px}
.chip{border:2px solid var(--linea-cl);background:transparent;color:var(--crema);font-family:var(--disp);letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;padding:.55rem 1.1rem;border-radius:999px;cursor:pointer;transition:border-color .15s,background-color .15s,transform .25s cubic-bezier(.2,.9,.3,1.4)}
.chip:hover{border-color:var(--azul);transform:scale(1.06)}
.chip[data-active="true"]{background:var(--azul);border-color:var(--azul);color:var(--vino)}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;perspective:1200px}
.tarjeta{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:9/16;background:var(--vino-osc);cursor:pointer;transition:transform .35s cubic-bezier(.2,.9,.3,1.2),box-shadow .35s;transform-style:preserve-3d;box-shadow:0 14px 34px -16px rgba(0,0,0,.5)}
.tarjeta:hover{transform:translateY(-8px) rotateX(2.5deg) rotateY(-2.5deg) scale(1.02);box-shadow:0 34px 70px -24px rgba(0,0,0,.65)}
.tarjeta img.poster,.tarjeta video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tarjeta video{opacity:0;transition:opacity .25s}
.tarjeta.playing video{opacity:1}
.tarjeta .cat{position:absolute;top:12px;left:12px;z-index:3;background:var(--crema);color:var(--vino);font-family:var(--disp);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:.4rem .75rem;border-radius:999px}
.tarjeta .play{position:absolute;inset:0;z-index:2;display:grid;place-items:center;background:linear-gradient(180deg,transparent 55%,rgba(30,5,7,.6));transition:opacity .25s}
.tarjeta .play span{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--azul);color:var(--vino);font-size:1.15rem;padding-left:4px;transition:transform .3s cubic-bezier(.2,.9,.3,1.5)}
.tarjeta:hover .play span{transform:scale(1.18) rotate(8deg)}
.tarjeta.playing .play{opacity:0}
.tarjeta[hidden]{display:none}
.more-wrap{text-align:center;margin-top:32px}
/* separador: línea azul que se dibuja desde el centro */
.separa{position:relative;height:0}
.separa::before{content:'';position:absolute;left:50%;top:-2px;height:4px;width:100%;transform:translateX(-50%);background:var(--azul);border-radius:2px;box-shadow:0 0 18px rgba(165,188,214,.55)}
html.anim .separa::before{width:0;transition:width 1.4s cubic-bezier(.2,.9,.3,1)}
html.anim .separa.is-visible::before{width:100%}
section.blq.oscuro{background:var(--vino-osc)}
/* packs */
.packs{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;align-items:stretch}
@media(max-width:1240px){.packs{grid-template-columns:repeat(2,1fr)}}
.pack{position:relative;background:var(--vino);border:1.5px solid rgba(255,255,255,.1);border-radius:26px;padding:32px 28px;display:flex;flex-direction:column;gap:10px;box-shadow:0 24px 54px -28px rgba(58,9,12,.55);transition:transform .35s cubic-bezier(.2,.9,.3,1.2),box-shadow .3s,border-color .2s}
.pack:hover{transform:translateY(-8px) scale(1.015);box-shadow:0 30px 60px -26px rgba(0,0,0,.6);border-color:var(--azul)}
.pack:nth-child(1){transform:rotate(-.7deg)}.pack:nth-child(4){transform:rotate(.7deg)}
.pack:nth-child(1):hover,.pack:nth-child(4):hover{transform:translateY(-8px) rotate(0) scale(1.015)}
.pack.star{border:3px solid var(--azul);box-shadow:0 24px 55px -26px rgba(165,188,214,.4)}
.pack .badge{position:absolute;top:-15px;left:50%;transform:translateX(-50%) rotate(-2deg);background:var(--azul);color:var(--vino);font-family:var(--serif);font-weight:600;font-size:.85rem;padding:.45rem 1.15rem;border-radius:999px}
html.anim .pack.star .badge{animation:late 2.6s ease-in-out infinite}
@keyframes late{0%,100%{transform:translateX(-50%) rotate(-2deg) scale(1)}12%{transform:translateX(-50%) rotate(-2deg) scale(1.07)}24%{transform:translateX(-50%) rotate(-2deg) scale(1)}}
.pack h3{font-size:1.5rem;color:var(--crema)}
section.blq.claro .pack h3{color:var(--crema)}
.pack .claim{font-style:italic;color:var(--azul);font-size:1.02rem;margin-bottom:14px}
.pack .precio{font-family:var(--disp);font-size:2.2rem;color:var(--crema);margin:8px 0 2px;letter-spacing:.02em}
.pack .precio small{font-family:var(--serif);font-style:italic;font-size:.95rem;color:var(--azul);letter-spacing:0;text-transform:none;margin-right:6px}
.pack ul{list-style:none;margin:8px 0 14px}
.pack li{padding-left:26px;position:relative;margin-bottom:8px;font-size:.95rem;color:color-mix(in srgb,var(--crema) 88%,transparent)}
.pack li::before{content:'✔';position:absolute;left:0;color:var(--azul)}
.pack .pie-pack{margin-top:auto;font-style:italic;font-size:.85rem;color:var(--azul);border-top:1.5px dashed var(--linea-cl);padding-top:12px}
.pack .b{margin-top:14px}
@media(min-width:1241px){.pack .b{padding-inline:1rem;letter-spacing:.03em;font-size:.9rem}
#servicios .wrap{max-width:1340px}}
.extras{margin-top:36px}
.extras h3{font-size:1.3rem;margin-bottom:14px;color:var(--crema)}
section.blq.claro .extras h3{color:var(--vino)}
section.blq.claro .extras .ex{color:var(--vino);border-color:var(--vino)}
section.blq.claro .extras .ex:hover{background:var(--vino);color:var(--crema)}
.extras .lista{display:flex;gap:10px;flex-wrap:wrap}
.extras .ex{background:transparent;color:var(--azul);border:1.5px dashed var(--azul);font-family:var(--serif);font-weight:600;font-size:.94rem;padding:.6rem 1.15rem;border-radius:999px;transition:transform .3s cubic-bezier(.2,.9,.3,1.4),background-color .2s,color .2s}
.extras .ex:hover{background:var(--azul);color:var(--vino);transform:scale(1.06)}
/* proceso: números AZULES Anton como la original */
.pasos{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:24px}
.pasos::before{content:'';position:absolute;top:34px;left:5%;right:5%;height:2px;background:repeating-linear-gradient(90deg,var(--azul) 0 10px,transparent 10px 22px);opacity:.5}
html.anim .pasos.is-visible::before{animation:marcha 1.4s linear infinite}
@keyframes marcha{to{background-position:22px 0}}
.paso{position:relative}
.paso .n{display:block;font-family:var(--disp);font-size:clamp(3rem,5vw,4.2rem);color:var(--azul);line-height:1;margin-bottom:4px}
.paso h3{font-size:1.05rem;color:var(--azul);letter-spacing:.14em;margin-bottom:10px}
.paso p{font-size:.97rem;color:color-mix(in srgb,var(--crema) 88%,transparent)}
/* marcas: banda clara para los logos */
.marcas-cinta{overflow:clip;padding:6px 0 10px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.cinta{display:flex;align-items:center;width:max-content;gap:96px;padding-inline:48px;margin-bottom:10px}
html.anim .cinta{animation:rodar 55s linear infinite}
html.anim .cinta.reversa{animation:rodar2 48s linear infinite}
@keyframes rodar{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes rodar2{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.lchip{display:inline-flex;align-items:center;justify-content:center;transition:transform .25s cubic-bezier(.2,.9,.3,1.4)}
.lchip:hover{transform:scale(1.08)}
.lchip img{height:96px;width:auto;max-width:230px;object-fit:contain}
/* sobre mí (claro) */
.sobre{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center}
.sobre-foto{position:relative}
.sobre-foto::before{content:'';position:absolute;inset:-14px;border:3px solid var(--azul);border-radius:50% 50% 46% 54%/56% 46% 54% 44%;opacity:.65;pointer-events:none}
html.anim .sobre-foto::before{animation:blob 12s ease-in-out infinite alternate}
.sobre-foto img{border-radius:44% 56% 52% 48%/58% 44% 56% 42%;aspect-ratio:1;object-fit:cover;box-shadow:0 30px 70px -28px rgba(58,9,12,.4)}
html.anim .sobre-foto img{animation:blob2 18s ease-in-out infinite alternate}
.sobre-foto .firma{position:absolute;bottom:-10px;right:6px;font-family:var(--mano);font-size:3rem;color:var(--vino);transform:rotate(-8deg)}
.sobre p{margin-bottom:14px;color:#5d463c}
.sobre p b{font-weight:700;color:var(--vino);background:linear-gradient(120deg,rgba(165,188,214,.55),rgba(165,188,214,.55)) no-repeat 0 62%;background-size:0% 42%;padding:0 .08em}
html.anim .sobre .is-visible p b,html.anim .sobre [data-animate].is-visible b{transition:background-size .9s ease .3s;background-size:100% 42%}
html:not(.anim) .sobre p b{background-size:100% 42%}
.chips-sobre{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.chips-sobre span{background:#fff;border:2px solid var(--azul);font-weight:600;font-size:.9rem;padding:.55rem 1rem;border-radius:999px;transition:transform .25s,background-color .2s}
.chips-sobre span:hover{transform:scale(1.04);background:var(--azul)}
.chips-sobre span::before{content:'✦ ';color:var(--vino)}
/* equipo (granate) */
.equipo{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x proximity;scrollbar-width:none}
.equipo::-webkit-scrollbar{display:none}
.tool{flex:0 0 auto;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--crema);border-radius:20px;padding:20px 22px;min-width:134px;transition:transform .3s cubic-bezier(.2,.9,.3,1.3)}
.tool:hover{transform:translateY(-6px) rotate(-2deg) scale(1.04)}
.tool img{height:58px;width:auto;object-fit:contain}
.tool .sin{display:grid;place-items:center;height:58px;font-family:var(--disp);font-size:1.5rem;color:var(--vino)}
.tool b{font-size:.82rem;font-weight:600;color:var(--soil);text-align:center;font-family:var(--serif)}
/* reseñas (claro) */
.res-zona{position:relative}
.res-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:16px 4px 22px;scrollbar-width:none}
.res-track::-webkit-scrollbar{display:none}
.res{flex:0 0 min(300px,78vw);scroll-snap-align:center;background:#fff;border:2px solid transparent;border-radius:18px;padding:12px 12px 16px;box-shadow:0 16px 40px -18px rgba(58,9,12,.35);transition:transform .3s,border-color .2s}
.res:hover{transform:scale(1.03);border-color:var(--azul)}
.res img{border-radius:10px}
.res-nav{display:flex;gap:10px;justify-content:center;margin-top:6px}
.res-nav button{width:46px;height:46px;border-radius:50%;border:2px solid var(--vino);background:var(--azul);color:var(--vino);font-size:1.1rem;cursor:pointer;transition:background-color .15s,color .15s,transform .25s cubic-bezier(.2,.9,.3,1.4)}
.res-nav button:hover{background:var(--vino);color:var(--azul);transform:scale(1.12)}
/* contacto (granate, form crema) */
.contacto-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:46px;align-items:start}
.brief h2{font-size:clamp(2rem,4vw,3rem);color:var(--crema)}

.brief p{margin-top:16px;font-style:italic;color:color-mix(in srgb,var(--crema) 85%,transparent)}
.brief .btns{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.fcard{background:#dfe8f2;color:var(--soil);border-radius:26px;padding:32px;box-shadow:0 30px 70px -30px rgba(0,0,0,.5)}
html.anim .fcard{animation:invita 3.2s ease-in-out infinite}
@keyframes invita{0%,100%{box-shadow:0 30px 70px -30px rgba(0,0,0,.5),0 0 0 0 rgba(165,188,214,.0)}50%{box-shadow:0 30px 70px -30px rgba(0,0,0,.5),0 0 0 10px rgba(165,188,214,.28)}}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.campo{margin-bottom:14px}
.campo label{display:block;font-weight:600;font-size:.85rem;margin-bottom:5px;color:var(--vino)}
.campo input,.campo select,.campo textarea{width:100%;font-family:var(--serif);font-size:16px;padding:.8rem .95rem;border:2px solid #bccddf;border-radius:12px;background:#fff;color:var(--soil);transition:border-color .15s,transform .15s}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--vino);outline:none;transform:scale(1.01)}
.campo textarea{min-height:104px;resize:vertical}
fieldset.budget{border:0;margin-bottom:14px}
fieldset.budget legend{font-weight:600;font-size:.85rem;margin-bottom:6px;color:var(--vino)}
fieldset.budget .ayuda{font-size:.8rem;font-style:italic;color:#8a6f63;margin-bottom:8px}
.radios{display:flex;gap:8px;flex-wrap:wrap}
.radios label{border:2px solid #bccddf;border-radius:999px;padding:.5rem 1rem;font-size:.88rem;font-weight:600;cursor:pointer;background:#fff;transition:transform .2s,border-color .15s}
.radios label:hover{transform:scale(1.04)}
.radios input{position:absolute;opacity:0;pointer-events:none}
.radios label:has(input:checked){border-color:var(--vino);background:var(--vino);color:var(--crema)}
.consent{display:flex;gap:10px;align-items:flex-start;background:#fff;border:2px solid #bccddf;border-radius:14px;padding:14px;margin-bottom:14px}
.consent[data-error="1"]{border-color:#c22;animation:tiembla .4s}
@keyframes tiembla{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.consent input{margin-top:4px;accent-color:var(--vino)}
.consent .t{font-size:.85rem}
.consent .t a{font-weight:600;color:var(--vino)}
.consent .d{font-size:.78rem;color:#8a6f63}
.consent .d a{color:var(--vino)}
.form-msg{min-height:1.2em;font-size:.88rem;font-weight:600;margin-bottom:8px}
.f-acciones{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.f-acciones .b-terra{border-color:var(--vino)}
.help{display:block;margin-top:12px;font-size:.8rem;font-style:italic;color:#8a6f63}
.pildoras-rgpd{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.pildoras-rgpd span{font-family:var(--disp);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--azul);border:1.5px solid var(--linea-cl);border-radius:999px;padding:.35rem .75rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* footer */
footer{background:var(--vino-osc);color:color-mix(in srgb,var(--crema) 80%,transparent);padding:64px 0 40px;border-top:1px solid var(--linea-cl);text-align:center}
footer .f-kicker{font-family:var(--serif);font-weight:600;font-size:.95rem;letter-spacing:.28em;text-transform:uppercase;color:color-mix(in srgb,var(--crema) 85%,transparent)}
footer h2{color:var(--crema);font-size:clamp(1.6rem,3.4vw,2.4rem);margin:18px 0 26px}
footer .socials{justify-content:center;margin-top:28px}
footer .socials a{border-color:var(--crema);color:var(--crema)}
footer .socials a:hover{background:var(--crema);color:var(--vino)}
footer a{color:var(--crema);font-weight:600;text-decoration:none}
footer a:hover{color:var(--azul)}
footer .legal-linea{border-top:1px solid var(--linea-cl);margin-top:36px;padding-top:20px;font-size:.9rem;display:flex;justify-content:center;gap:34px;flex-wrap:wrap;font-family:var(--serif);font-style:normal}
/* modal legal */
.modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;background:rgba(26,4,6,.65);padding:20px}
.modal.abierto{display:grid}
.modal .caja{background:var(--crema);color:var(--soil);border-radius:22px;max-width:760px;width:100%;max-height:86vh;overflow:auto;padding:34px}
html.anim .modal.abierto .caja{animation:entra .35s cubic-bezier(.2,.9,.3,1.3)}
@keyframes entra{from{transform:translateY(26px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.modal h2{font-size:1.4rem;margin-bottom:14px;color:var(--vino)}
.modal h3{font-size:1rem;margin:14px 0 4px;color:var(--vino);text-transform:none;font-family:var(--serif);font-weight:600}
.modal p,.modal li{font-size:.9rem}
.modal ul{margin-left:18px}
.modal .cerrar{float:right;background:var(--vino);color:var(--crema);border:0;border-radius:999px;padding:.5rem 1.1rem;font-weight:600;cursor:pointer}
/* toast */
#toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(calc(100% + 60px));background:var(--azul);color:var(--vino);font-weight:600;padding:.85rem 1.4rem;border-radius:999px;transition:transform .4s cubic-bezier(.2,.9,.3,1.3);z-index:110}
#toast.ver{transform:translateX(-50%) translateY(0)}
/* reveals con más teatro */
html.anim [data-animate]:not(.separa){opacity:0;transform:translateY(30px) rotate(var(--rot,0deg)) scale(.97);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.9,.3,1.2);transition-delay:var(--d,0ms)}
html.anim [data-animate]:not(.separa).is-visible{opacity:1;transform:translateY(0) rotate(var(--rot,0deg)) scale(1)}
html.anim .paso .n{opacity:0;transform:translateY(18px) scale(.6);transition:opacity .55s,transform .55s cubic-bezier(.2,.9,.3,1.6)}
html.anim .paso:nth-child(1) .n{transition-delay:.05s}html.anim .paso:nth-child(2) .n{transition-delay:.22s}html.anim .paso:nth-child(3) .n{transition-delay:.39s}html.anim .paso:nth-child(4) .n{transition-delay:.56s}html.anim .paso:nth-child(5) .n{transition-delay:.73s}
html.anim .pasos.is-visible .n{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
 [data-animate],.paso .n{opacity:1 !important;transform:none !important}
 html.anim .raya-p{stroke-dashoffset:0}
 html.anim .cinta,html.anim .cinta.reversa,html.anim .hero::before,html.anim .hero-foto img,html.anim .sticker,html.anim .b-terra::after{animation:none}
 #lente{display:none}
}
/* responsive */
@media(max-width:1020px){
 .pgrid{grid-template-columns:repeat(3,1fr)}
 .packs{grid-template-columns:1fr;max-width:520px;margin-inline:auto}
 .pack:nth-child(1),.pack:nth-child(4){transform:none}
 .pasos{grid-template-columns:1fr;max-width:520px;margin-inline:auto;gap:30px}
 .pasos::before{content:none}
 .hero .wrap{grid-template-columns:1fr;gap:36px}
 .hero-foto{justify-self:center}
 .sobre{grid-template-columns:1fr;gap:34px}
 .contacto-grid{grid-template-columns:1fr;gap:30px}
 .nav nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--vino);border-bottom:1px solid var(--linea-cl);flex-direction:column;padding:16px 24px;gap:4px}
 .nav nav.abierto{display:flex}
 .nav nav .cta-menu{display:inline-flex;justify-content:center;margin-top:8px;background:var(--azul);color:var(--vino)}
 .burger{display:block;order:5}
 #lente{display:none}
}
@media(max-width:640px){
 .pgrid{grid-template-columns:repeat(2,1fr);gap:12px}
 .tarjeta{border-radius:18px}
 section.blq{padding:58px 0}
 .fila{grid-template-columns:1fr}
 .nav .cta{display:none}
 footer .wrap{grid-template-columns:1fr}
}

.aviso-correo{position:fixed;left:50%;bottom:22px;transform:translate(-50%,160%);z-index:60;display:flex;align-items:center;gap:12px;background:var(--vino);color:var(--crema);border:1.5px solid var(--azul);border-radius:999px;padding:12px 14px 12px 20px;box-shadow:0 18px 40px -18px rgba(0,0,0,.6);font-size:.95rem;max-width:calc(100vw - 32px);transition:transform .35s cubic-bezier(.2,.9,.3,1.4)}
.aviso-correo.visible{transform:translate(-50%,0)}
.aviso-correo b{color:var(--azul)}
.aviso-correo .copiar{background:var(--azul);color:var(--vino-osc);border:0;border-radius:999px;padding:.5rem 1rem;font:inherit;cursor:pointer}
.aviso-correo .cerrar-aviso{background:none;border:0;color:var(--crema);font-size:1.3rem;line-height:1;cursor:pointer;padding:0 4px}
@media(max-width:520px){.aviso-correo{flex-wrap:wrap;justify-content:center;text-align:center;border-radius:18px}}