/* Inter variable (100–900) alojada en el propio sitio: sin peticiones a Google Fonts */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter Fallback';src:local('Arial');ascent-override:90.2%;descent-override:22.48%;line-gap-override:0%;size-adjust:107.4%}
:root{--verde-ac:#2a7a14;--tinta:#0b1210;--hueso:#f4efe6;--verde:#3a9d1f;--lima:#b9e24a;--serif:Inter,'Inter Fallback',Helvetica,Arial,sans-serif;--sans:Inter,'Inter Fallback',Helvetica,Arial,sans-serif;--ease:cubic-bezier(.76,0,.24,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--tinta)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:var(--sans);font-weight:300;color:var(--hueso);background:var(--tinta);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}

/* cabecera */
.reservar{border:1px solid currentColor;border-radius:99px;padding:11px 24px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;transition:background .5s,color .5s}
.reservar:hover{background:#fff;color:#000}

/* utilidades */
.full{position:relative;height:100vh;height:100svh;overflow:hidden}
.bg{position:absolute;inset:-8% 0;will-change:transform}
.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.05) 40%,rgba(0,0,0,.65))}
.kicker{font-size:12px;letter-spacing:.34em;text-transform:uppercase;opacity:.85}
.serif{font-family:var(--serif);font-weight:300;line-height:1;letter-spacing:-.045em}
.mask{display:block;overflow:hidden;padding-bottom:.08em}
.mask>span{display:block;will-change:transform}
.link{display:inline-flex;gap:14px;align-items:center;font-size:12px;letter-spacing:.26em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:8px;transition:gap .5s var(--ease)}
.link:hover{gap:26px}

/* 1 hero */
.hero .copy{position:absolute;left:4vw;right:4vw;bottom:9vh;z-index:2}
.hero h1{font-size:clamp(46px,8.4vw,150px)}
.hero h1 em{font-style:normal;font-weight:300;color:var(--lima)}
.hero .row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:4vh;gap:30px;flex-wrap:wrap}
.hero .row p{max-width:36ch;font-size:17px;line-height:1.6}
.scrollcue{position:absolute;right:4vw;top:50%;z-index:2;writing-mode:vertical-rl;font-size:11px;letter-spacing:.34em;text-transform:uppercase;opacity:.8}
.scrollcue::after{content:"";display:block;width:1px;height:70px;background:#fff;margin:14px auto 0;transform-origin:top;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0)}60%{transform:scaleY(1);transform-origin:top}61%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* 3 pila de paneles */
.stack{position:relative;height:100vh;height:100svh;overflow:hidden}
.panel{position:absolute;inset:0;overflow:hidden}
.panel .bg{inset:-6% 0}
.panel .txt{position:absolute;left:4vw;bottom:10vh;z-index:2;max-width:min(760px,84vw)}
.panel h2{font-size:clamp(52px,9vw,150px);margin:2vh 0 3vh}
.panel p{max-width:42ch;font-size:16px;line-height:1.7;margin-bottom:4vh}

/* 4 restaurantes horizontal */
.rest{position:relative;background:var(--tinta)}
.rest .head{flex:0 0 min(30vw,460px)}
.rest .head h2{font-size:clamp(40px,5vw,76px);margin-top:14px}
.track{display:flex;height:100vh;height:100svh;align-items:center;gap:4vw;padding:0 8vw 0 4vw;width:max-content}
.card{position:relative;flex:0 0 auto;width:min(46vw,640px);height:76vh}
.card .ph{position:relative;width:100%;height:100%;overflow:hidden}
.card .ph img{transform:scale(1.15);transition:transform 1.4s var(--ease)}
.card:hover .ph img{transform:scale(1.04)}
.card .meta{position:absolute;left:0;right:0;bottom:-1px;padding:26px;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.card h3{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.2vw,50px);line-height:1}
.card .m{font-size:13px;line-height:1.6;margin-top:8px;opacity:.88}

/* 5 deportes: panel grande + lista */
.sports{position:relative;min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--hueso);color:var(--tinta)}
.sports .pic{position:sticky;top:0;height:100vh;overflow:hidden}
.sports .pic img{position:absolute;inset:0;opacity:0;transition:opacity 1s var(--ease)}
.sports .pic img.on{opacity:1}
.sports .list{padding:22vh 6vw 22vh 5vw}
.sports .list h2{font-size:clamp(44px,6vw,100px);margin:14px 0 6vh}
.sports ul{list-style:none;border-top:1px solid rgba(0,0,0,.2)}
.sports li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:22px 0;border-bottom:1px solid rgba(0,0,0,.2);cursor:default;transition:padding .6s var(--ease),color .4s}
.sports li:hover,.sports li.on{padding-left:22px;color:var(--verde)}
.sports li b{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,40px)}
.sports li span{font-size:13px;letter-spacing:.08em;text-align:right;opacity:.75}
.sports .free{margin-top:5vh;font-size:14px;line-height:1.7;max-width:46ch;opacity:.8}
@media(max-width:900px){.sports{grid-template-columns:1fr}.sports .pic{position:relative;height:55vh}}

/* 6 La Reserva precios */

.reserva h2{font-size:clamp(52px,9vw,150px)}
.prices{min-width:min(360px,100%);font-size:14px}
.prices div{display:flex;justify-content:space-between;gap:30px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.35)}
.prices div b{font-family:var(--serif);font-weight:400;font-size:24px}
.prices small{display:block;margin-top:14px;opacity:.75;line-height:1.6}

/* 7 hoteles */
.hotels{position:relative;padding:18vh 4vw;background:var(--tinta)}
.hotels h2{font-size:clamp(44px,7vw,120px);margin:16px 0 8vh}
.hotels ul{list-style:none;border-top:1px solid rgba(255,255,255,.25)}
.hotels li a{display:flex;justify-content:space-between;align-items:center;padding:3.2vh 0;border-bottom:1px solid rgba(255,255,255,.25);font-family:var(--serif);font-weight:300;font-size:clamp(32px,5.4vw,92px);line-height:1;transition:padding .7s var(--ease),color .4s}
.hotels li a:hover{padding-left:3vw;color:var(--lima)}
.hotels li a i{font-style:normal;font-family:var(--sans);font-size:13px;letter-spacing:.26em;opacity:.6}

/* 8 cursos banner */
.cursos .txt{position:absolute;left:4vw;bottom:10vh;z-index:2;max-width:760px}
.cursos h2{font-size:clamp(52px,8vw,130px);margin:2vh 0 3vh}
.cursos p{max-width:44ch;line-height:1.7;margin-bottom:4vh}

/* footer */
footer{position:relative;min-height:90vh;display:flex;flex-direction:column;justify-content:space-between;padding:14vh 4vw 5vh;background:var(--hueso);color:var(--tinta)}
footer h2{font-size:clamp(54px,11vw,200px)}
footer h2 em{color:var(--verde)}
footer .cols{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;font-size:14px;line-height:1.8}
footer .cols img{width:90px;height:90px;object-fit:contain}
footer .reservar{border-color:var(--tinta);color:var(--tinta);padding:18px 38px}
footer .reservar:hover{background:var(--tinta);color:var(--hueso)}

@media(max-width:900px){
  .track{flex-direction:column;width:auto;height:auto;padding:14vh 6vw 8vh;gap:5vh}
  .rest .head{flex:none}
  .card{width:100%;height:60vh}
  }
@media(prefers-reduced-motion:reduce){*{animation:none!important}}

/* ===== multipágina ===== */
@property --r{syntax:'<length>';inherits:false;initial-value:0px}
/* intro 100 % CSS: arranca con el primer pintado, sin esperar a ningún script */
#curtain{--cl:clamp(150px,24vmin,240px);position:fixed;inset:0;z-index:200;pointer-events:none;display:grid;place-items:center;animation:cur-gone 0s linear .82s forwards}
/* capa verde con un agujero circular que se abre desde el centro (iris) */
#curtain .cv{position:absolute;inset:0;background:var(--verde);-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent var(--r),#000 var(--r));mask-image:radial-gradient(circle at 50% 50%,transparent var(--r),#000 var(--r));animation:cur-iris .55s cubic-bezier(.76,0,.24,1) .25s forwards}
#curtain img{position:relative;width:var(--cl);height:var(--cl);max-width:none;border-radius:50%;object-fit:contain;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.28);transform:scale(.86);will-change:transform,opacity;animation:cur-logo .8s cubic-bezier(.65,0,.35,1) both}
@keyframes cur-iris{to{--r:75vmax}}
@keyframes cur-logo{0%{transform:scale(.86)}35%{transform:scale(1.1) rotate(-8deg);opacity:1}100%{transform:scale(5);opacity:0}}
@keyframes cur-gone{to{visibility:hidden}}
/* al navegar entre páginas del sitio la entrada es más rápida */
.nav #curtain{animation-delay:.5s}
.nav #curtain .cv{animation-duration:.45s;animation-delay:0s}
.nav #curtain img{animation-duration:.45s}
@media(prefers-reduced-motion:reduce){#curtain{display:none}}
.light{background:var(--hueso);color:var(--tinta)}

.crumbs{font-size:11px;letter-spacing:.26em;text-transform:uppercase;opacity:.8;margin-bottom:3vh}
.crumbs a{opacity:.7}.crumbs a:hover{opacity:1}

/* bloques */
.sec{padding:16vh 4vw}
.intro{display:grid;grid-template-columns:1fr 2fr;gap:6vw;align-items:start}
.intro h2{font-size:clamp(34px,4.4vw,70px)}
.intro .body{font-size:clamp(17px,1.5vw,21px);line-height:1.75;max-width:60ch}
.intro .body p+p{margin-top:1.4em}
@media(max-width:900px){.intro{grid-template-columns:1fr}}
.split{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}
.split.rev .t{order:2}
.split .img{position:relative;overflow:hidden;min-height:60vh}
.split .img img{position:absolute;inset:-8% 0;height:116%}
.split .t{padding:14vh 6vw;display:flex;flex-direction:column;justify-content:center;gap:3vh}
.split .t h2{font-size:clamp(40px,5.6vw,92px)}
.split .t p.d{font-size:17px;line-height:1.75;max-width:46ch}
.facts{list-style:none;border-top:1px solid currentColor;opacity:.9;max-width:520px}
.facts li{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid rgba(128,128,128,.4);font-size:14px}
.facts li b{font-family:var(--serif);font-weight:400;font-size:22px}
.tag{display:inline-block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;border:1px solid currentColor;border-radius:99px;padding:6px 14px;width:max-content}
.tag.free{background:var(--verde-ac);border-color:var(--verde-ac);color:#fff}
@media(max-width:900px){.split{grid-template-columns:1fr}.split.rev .t{order:0}.split .img{min-height:55vh}}

/* tabla de precios */
.ptable{max-width:760px;margin:0 auto}
.ptable div{display:flex;justify-content:space-between;align-items:baseline;gap:30px;padding:22px 0;border-bottom:1px solid rgba(0,0,0,.2);font-size:17px}
.ptable div b{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4vw,56px)}
.note{max-width:760px;margin:4vh auto 0;font-size:14px;line-height:1.8;opacity:.8}

/* rejilla de actividades */
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px}
.act{position:relative;display:flex;flex-direction:column;gap:14px}
.act .ph{aspect-ratio:3/2;overflow:hidden;background:#ddd}
.act .ph img{transition:transform 1.2s var(--ease)}
.act:hover .ph img{transform:scale(1.08)}
.act h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.4vw,38px);line-height:1}
.act p{font-size:14px;line-height:1.6;opacity:.85}
.act .top{display:flex;justify-content:space-between;align-items:center;gap:10px}

/* cursos */
.cgroup{display:grid;grid-template-columns:minmax(260px,.8fr) 2fr;gap:6vw;padding:12vh 4vw;border-top:1px solid rgba(0,0,0,.18)}
.cgroup .pic{position:sticky;top:14vh;align-self:start;aspect-ratio:3/4;overflow:hidden}
.cgroup h2{font-size:clamp(46px,6vw,100px);margin-bottom:5vh}
.course{display:grid;grid-template-columns:90px 1fr auto;gap:24px;align-items:baseline;padding:26px 0;border-bottom:1px solid rgba(0,0,0,.18)}
.course .code{font-size:12px;letter-spacing:.2em;opacity:.6}
.course h3{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.4vw,36px);line-height:1.05}
.course p{font-size:14px;line-height:1.6;margin-top:6px;opacity:.8}
.course .pr{font-family:var(--serif);font-size:clamp(30px,3vw,46px)}
@media(max-width:900px){.cgroup{grid-template-columns:1fr}.cgroup .pic{position:relative;top:0;aspect-ratio:16/10}.course{grid-template-columns:1fr auto}.course .code{grid-column:1/-1}}

/* mapa */
.mapbox{position:relative;height:84vh;overflow:hidden;background:#0d1815;cursor:grab}
.mapbox img{object-fit:contain;transform-origin:center;touch-action:none;transition:transform .5s var(--ease)}
.mapbox .ctl{position:absolute;right:4vw;bottom:5vh;display:flex;gap:10px;z-index:3}
.mapbox .ctl button{width:52px;height:52px;border-radius:50%;border:1px solid var(--hueso);background:rgba(0,0,0,.4);color:var(--hueso);font-size:22px;cursor:pointer;transition:background .4s}
.mapbox .ctl button:hover{background:var(--hueso);color:var(--tinta)}


/* galerías */
.mason{columns:3 280px;column-gap:18px}
.mason figure{break-inside:avoid;margin-bottom:18px;overflow:hidden;cursor:zoom-in;position:relative}
.mason img{height:auto;transition:transform 1.2s var(--ease)}
.mason figure:hover img{transform:scale(1.06)}
#lightbox{position:fixed;inset:0;z-index:300;background:rgba(5,9,8,.95);display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
#lightbox.on{opacity:1;visibility:visible}
#lightbox img{width:auto;height:auto;max-width:88vw;max-height:86vh;object-fit:contain}
#lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:34px;cursor:pointer;padding:20px}
#lightbox .prev{left:2vw}#lightbox .next{right:2vw}
.pending{margin-top:4vh;padding:22px 26px;border:1px dashed rgba(128,128,128,.6);font-size:14px;line-height:1.6;max-width:62ch}

/* contacto */
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:6vw}
.cgrid h2{font-size:clamp(40px,5vw,84px)}
.cgrid address{font-style:normal;font-size:clamp(20px,2vw,28px);line-height:1.6;font-family:var(--serif)}
.cgrid .tel{display:block;margin-top:3vh;font-family:var(--serif);font-size:clamp(34px,4vw,64px)}
@media(max-width:900px){.cgrid{grid-template-columns:1fr}}

/* footer compacto en páginas interiores */
footer.mini{min-height:auto;gap:6vh}
footer.mini h2{font-size:clamp(44px,8vw,140px)}
.fnav{display:flex;gap:14px 30px;flex-wrap:wrap;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.fnav a{opacity:.7}.fnav a:hover{opacity:1}

.reservar{letter-spacing:.14em;padding:10px 20px}

/* ===== cabecera tipo Naisa: barra 72 px, logo de 250 px colgando sin cambiar su alto ===== */
:root{--header-h:60px;--gutter:clamp(1.25rem,4vw,3rem);--logo:250px}
@media(min-width:768px){:root{--header-h:72px}}
@media(max-width:767px){:root{--logo:130px}}
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);color:#fff;transition:background-color .4s var(--ease),color .4s var(--ease),box-shadow .4s}
.site-header::before{content:"";position:absolute;inset:0 0 -36px;pointer-events:none;background:linear-gradient(rgba(6,18,16,.45),rgba(6,18,16,0));transition:opacity .4s}
.site-header.is-solid{background:var(--hueso);color:var(--tinta);box-shadow:0 1px 0 rgba(11,18,16,.14)}
.site-header.is-solid::before{opacity:0}
.site-header:not(.is-solid){text-shadow:0 1px 12px rgba(0,0,0,.45)}
.site-header__inner{position:relative;height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 var(--gutter)}
.site-header__actions{display:flex;align-items:center;gap:.25rem}

/* logo: círculo de 250 px que cuelga de la barra; no ocupa alto en el flujo */
.brand{position:relative;display:block;width:var(--logo);height:var(--header-h);color:inherit}
.brand img{position:absolute;left:0;top:8px;width:var(--logo);height:var(--logo);max-width:none;object-fit:contain;background:#fff;border-radius:50%;filter:drop-shadow(0 10px 22px rgba(0,0,0,.35));transition:width .7s var(--ease),height .7s var(--ease),transform .8s var(--ease)}
.site-header.is-mini{--logo:100px}
@media(max-width:767px){.site-header.is-mini{--logo:80px}}
.brand{transition:width .7s var(--ease)}
.brand:hover img{transform:rotate(-6deg) scale(1.03)}

/* botón reservar */
.hbook{display:none;align-items:center;min-height:44px;margin-right:.5rem;padding:0 1.4rem;border:1px solid currentColor;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;transition:background .4s,color .4s,border-color .4s}
.hbook:hover{background:var(--lima);border-color:var(--lima);color:var(--tinta);text-shadow:none}
.site-header.is-solid .hbook{background:var(--verde);border-color:var(--verde);color:#fff;text-shadow:none}
.site-header.is-solid .hbook:hover{background:var(--tinta);border-color:var(--tinta)}
@media(min-width:768px){.hbook{display:inline-flex}}

/* selector de idioma */
.lang{position:relative}
.lang__btn{display:inline-flex;align-items:center;gap:.45rem;min-height:48px;min-width:48px;padding:0 .75rem;background:none;border:0;cursor:pointer;color:inherit;font:600 .8rem/1 var(--sans);letter-spacing:.14em;text-shadow:inherit}
.lang__chev{width:.45rem;height:.45rem;border-right:1.75px solid currentColor;border-bottom:1.75px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--ease)}
.lang__btn[aria-expanded="true"] .lang__chev{transform:translateY(1px) rotate(225deg)}
.lang__list{position:absolute;right:0;top:calc(100% + .35rem);z-index:5;min-width:12rem;padding:.4rem;background:var(--hueso);color:var(--tinta);border:1px solid rgba(11,18,16,.14);border-radius:10px;box-shadow:0 22px 44px -14px rgba(0,0,0,.45);text-shadow:none}
.lang__list[hidden]{display:none}
.lang__list a{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 1rem;border-radius:6px;font-weight:500}
.lang__list a:hover{background:rgba(11,18,16,.07)}
.lang__list a[aria-current="true"]{font-weight:700}
.lang__list a[aria-current="true"]::after{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--verde)}

/* hamburguesa / aspa */
.menu-toggle,.menu-close{display:inline-flex;align-items:center;gap:.8rem;min-height:48px;min-width:48px;padding:0 .35rem 0 .75rem;background:none;border:0;cursor:pointer;color:inherit;font:600 .74rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;text-shadow:inherit}
.menu-toggle__label{display:none}
@media(min-width:768px){.menu-toggle__label{display:inline}}
.menu-toggle__icon{position:relative;display:block;width:28px;height:20px}
.menu-toggle__icon span{position:absolute;left:0;width:100%;height:2px;background:currentColor;border-radius:2px;transition:transform .45s var(--ease),opacity .25s,top .45s var(--ease),width .45s var(--ease)}
.menu-toggle__icon span:nth-child(1){top:2px}
.menu-toggle__icon span:nth-child(2){top:9px;width:70%;left:30%}
.menu-toggle__icon span:nth-child(3){top:16px}
.menu-toggle:hover .menu-toggle__icon span:nth-child(2){width:100%;left:0}
.menu-toggle__icon.is-x span:nth-child(1){top:9px;transform:rotate(45deg)}
.menu-toggle__icon.is-x span:nth-child(2){top:9px;width:100%;left:0;transform:rotate(-45deg)}
.menu-close:hover .menu-toggle__icon.is-x span:nth-child(1){transform:rotate(135deg)}
.menu-close:hover .menu-toggle__icon.is-x span:nth-child(2){transform:rotate(-135deg)}
.menu-close .menu-toggle__label{display:inline}
@media(max-width:767px){.menu-close .menu-toggle__label{display:none}}

/* menú a pantalla completa */
.menu{position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--tinta);color:var(--hueso);visibility:hidden;opacity:0;transform:translateY(-14px);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility 0s linear .35s}
.menu.is-open{visibility:visible;opacity:1;transform:none;transition-delay:0s}
.menu__bar{flex:none;height:var(--header-h);display:flex;align-items:center;justify-content:flex-end;padding:0 var(--gutter)}
.menu__body{flex:1 0 auto;width:min(100% - 2*var(--gutter),1360px);margin-inline:auto;position:relative;padding-block:1rem 2rem}
.menu__list{display:flex;flex-direction:column;list-style:none}
.menu__item{border-bottom:1px solid rgba(244,239,230,.16)}
.menu__link{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:60px;padding:.35rem 0;background:none;border:0;cursor:pointer;color:inherit;text-align:left;font:300 clamp(1.9rem,6.5vw,3.6rem)/1.1 var(--serif);letter-spacing:-.04em;transition:color .25s,padding-left .5s var(--ease)}
.menu__link:hover,.menu__link[aria-expanded="true"]{color:var(--lima)}
.menu__link[aria-current="page"]{color:var(--lima)}
.menu__plus{position:relative;flex:none;width:22px;height:22px}
.menu__plus::before,.menu__plus::after{content:"";position:absolute;left:0;top:10px;width:22px;height:2px;background:currentColor;transition:transform .4s var(--ease)}
.menu__plus::after{transform:rotate(90deg)}
.menu__link[aria-expanded="true"] .menu__plus::after{transform:rotate(0)}
.menu__sub{list-style:none;padding:.25rem 0 1rem 1rem}
.menu__sub[hidden]{display:none}
.menu__sub a{display:flex;align-items:center;min-height:52px;font:400 1.1rem/1.3 var(--sans)}
.menu__sub a:hover{color:var(--lima)}
.menu__aside{display:none}
.menu__bottom{display:contents}
.menu__foot{flex:none;width:min(100% - 2*var(--gutter),1360px);margin-inline:auto;padding-block:1.25rem;border-top:1px solid rgba(244,239,230,.16);display:flex;flex-direction:column;gap:1rem}
.menu__contact{display:flex;flex-direction:column;font-style:normal}
.menu__contact a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-decoration:underline;text-underline-offset:.3em;text-decoration-color:rgba(244,239,230,.3)}
.menu__langs{display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.menu__langs a{display:inline-flex;align-items:center;min-height:44px;padding:0 .25rem;opacity:.65;font-weight:600;letter-spacing:.12em}
.menu__langs a:hover{opacity:1}
.menu__langs a[aria-current="true"]{opacity:1;color:var(--lima)}
.menu__cta{position:sticky;bottom:0;flex:none;padding:.9rem var(--gutter) calc(.9rem + env(safe-area-inset-bottom));background:var(--tinta);border-top:1px solid rgba(244,239,230,.16)}
.menu__cta a{display:flex;align-items:center;justify-content:center;min-height:56px;border-radius:99px;background:var(--lima);color:var(--tinta);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:13px}
@media(min-width:1024px){
  .menu__body{display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding-block:1.5rem 2.5rem;align-items:start}
  .menu__link{font-size:clamp(2.2rem,3.4vw,3.4rem);min-height:68px;justify-content:flex-start;gap:1.25rem}
  .menu__link:hover{padding-left:.6rem}
  .menu__item{border-bottom-color:transparent}
  .menu__plus{display:none}
  .menu__item--sub>.menu__link::after{content:"→";font:400 1.4rem var(--sans);opacity:.6;transition:transform .4s var(--ease)}
  .menu__item--sub>.menu__link[aria-expanded="true"]::after{transform:translateX(.5rem);opacity:1}
  .menu__sub{display:grid;grid-template-columns:1fr 1fr;column-gap:2.5rem;padding:0 0 1rem .6rem;max-width:34rem}
  .menu__sub[hidden]{display:none}
  .menu__sub a{min-height:42px;font:300 1.25rem/1.3 var(--serif);letter-spacing:-.02em;border-bottom:1px solid rgba(244,239,230,.16)}
  .menu__sub a:hover{padding-left:.35rem}
  .menu__aside{display:block;position:sticky;top:1.5rem;align-self:stretch;min-height:min(62vh,560px);border-radius:14px;overflow:hidden;background:#111d1a}
  .menu__preview{position:absolute;inset:0;opacity:0;transition:opacity .6s var(--ease)}
  .menu__preview.is-active{opacity:1}
  .menu__foot{flex-direction:row;align-items:center;justify-content:space-between;padding-block:1.1rem}
  .menu__contact{flex-direction:row;gap:2rem}
  .menu__bottom{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex:none;width:min(100% - 2*var(--gutter),1360px);margin-inline:auto;border-top:1px solid rgba(244,239,230,.16)}
  .menu__bottom .menu__foot{flex:1;width:auto;margin:0;border:0}
  .menu__cta{position:static;padding:0;background:none;border:0}
  .menu__cta a{min-width:14rem;padding:0 2rem}
}
.menu.is-open .menu__item{animation:menu-in .7s var(--ease) both}
.menu.is-open .menu__item:nth-child(2){animation-delay:.04s}.menu.is-open .menu__item:nth-child(3){animation-delay:.08s}
.menu.is-open .menu__item:nth-child(4){animation-delay:.12s}.menu.is-open .menu__item:nth-child(5){animation-delay:.16s}
.menu.is-open .menu__item:nth-child(6){animation-delay:.2s}.menu.is-open .menu__item:nth-child(7){animation-delay:.24s}
.menu.is-open .menu__item:nth-child(8){animation-delay:.28s}.menu.is-open .menu__item:nth-child(9){animation-delay:.32s}
@keyframes menu-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
html.is-locked,html.is-locked body{overflow:hidden}

/* breadcrumb en el hero = kicker de la home */
.crumbs{margin-bottom:3vh}

/* 2 · scroller estilo Aurora: columna de imágenes pegada al borde izquierdo, texto fijo */
.scroller{--col:clamp(240px,30vw,460px);position:relative;height:100vh;height:100svh;display:grid;grid-template-columns:var(--col) minmax(0,36rem);justify-content:start;gap:clamp(2rem,6vw,7rem);padding:0 4vw 0 0;align-items:center;overflow:hidden;background:var(--hueso);color:var(--tinta)}
.scroller__images{position:relative;height:100%;overflow:hidden}
.scroller__inner{display:flex;flex-direction:column;gap:1.25rem;will-change:transform}
.scroller__inner figure{aspect-ratio:1;width:100%;overflow:hidden}
.scroller__copy{margin-left:clamp(0rem,4vw,5rem)}
.scroller__copy p{font-size:clamp(17px,1.55vw,24px);line-height:1.35;letter-spacing:-.02em;font-weight:400}
.scroller__copy p+p{margin-top:1.3em}
.scroller__copy .line{display:block}
@media(max-width:900px){
  .scroller{height:auto;grid-template-columns:1fr;gap:6vh;padding:12vh 0;overflow:visible}
  .scroller__images{height:auto;overflow:visible}
  .scroller__inner{flex-direction:row;flex-wrap:wrap;gap:.75rem}
  .scroller__inner figure{width:calc(50% - .375rem)}
  .scroller__copy{margin:0;padding:0 6vw}
}

/* selector de idioma: bandera + dos letras */
.flag{display:block;width:20px;height:15px;border-radius:2px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.18);flex:none}
.lang__btn{gap:.55rem}
.lang__list a{justify-content:flex-start;gap:.7rem;letter-spacing:.14em;font-weight:600;font-size:.82rem}
.lang__list a[aria-current="true"]::after{margin-left:auto}
.menu__langs a{gap:.55rem}

/* La Reserva (home): imagen fija, el texto hace scroll por encima y la siguiente sección sube y la tapa */
.reserva{position:relative;margin-bottom:-100vh;margin-bottom:-100svh}
.reserva .stick{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.reserva .stick .bg{inset:0}
.reserva .stick .bg img{height:100%}
.reserva .txt{position:relative;z-index:2;margin-top:-100vh;margin-top:-100svh;padding:60vh 4vw 210vh;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:40px}
.reserva+.full{position:relative;z-index:3}

/* ===== hero slider (5 diapositivas de la web actual) ===== */
.hero.slider .slides{position:absolute;inset:0}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden}
.slide.is-active{opacity:1;visibility:visible}
.slide .bg{inset:0}
.slide .bg img{height:100%}
.slider .copy{position:absolute;left:4vw;right:4vw;bottom:9vh;z-index:2}
.slider .sub-t{font-size:12px;letter-spacing:.34em;text-transform:uppercase;opacity:.9;margin-bottom:3vh;overflow:hidden}
.slider h2{font-size:clamp(46px,8.4vw,150px);font-weight:300;line-height:.98;letter-spacing:-.045em}
.slider .row{display:flex;gap:24px;align-items:center;margin-top:5vh;min-height:44px}
.bars{position:absolute;left:4vw;right:4vw;bottom:4vh;z-index:5;display:flex;gap:10px;max-width:520px}
.bars button{position:relative;flex:1;height:26px;padding:0;background:none;border:0;cursor:pointer}
.bars button::before{content:"";position:absolute;left:0;right:0;top:12px;height:2px;background:rgba(255,255,255,.35)}
.bars button i{position:absolute;left:0;top:12px;height:2px;width:100%;background:#fff;transform:scaleX(0);transform-origin:left}
.bars button.done i{transform:scaleX(1)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* manifiesto: columna de imágenes +400 px en escritorio */
@media(min-width:901px){
  .scroller{--col:calc(clamp(240px,30vw,460px) + 400px);gap:clamp(1.5rem,3vw,4rem)}
  .scroller__copy{margin-left:0}
}

/* ===== mapa interactivo con hotspots ===== */
.mapsec{background:var(--tinta);color:var(--hueso);padding:12vh 0 0}
.mhead{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding:0 4vw 5vh}
.mhead h2{font-size:clamp(34px,4.6vw,76px);margin-top:14px}
.chips{display:flex;flex-wrap:wrap;gap:10px;max-width:640px}
.chip{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 20px;border:1px solid rgba(244,239,230,.35);border-radius:99px;background:none;color:inherit;font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .35s,color .35s,border-color .35s}
.chip i{width:10px;height:10px;border-radius:50%}
.chip:hover{border-color:var(--hueso)}
.chip.on{background:var(--hueso);border-color:var(--hueso);color:var(--tinta)}

/* ===== mapa OpenStreetMap con hotspots ===== */
.osmwrap{position:relative;isolation:isolate;z-index:0}
.osm{position:relative;height:clamp(560px,82vh,860px);width:100%;background:#e8e4da;outline:0}
.osm .leaflet-tile-pane{filter:saturate(.9) contrast(1.04)}
.osm .leaflet-control-attribution{font:11px/1.4 var(--sans);background:rgba(255,255,255,.85)}
.osm .leaflet-bar{border:0;box-shadow:0 8px 22px rgba(0,0,0,.3);border-radius:99px;overflow:hidden}
.osm .leaflet-bar a{width:44px;height:44px;line-height:44px;font-size:22px;color:var(--tinta);background:#fff;border:0}
.osm .leaflet-bar a+a{border-top:1px solid rgba(0,0,0,.1)}
.osm .leaflet-bar a:hover{background:var(--lima)}

/* puntos */
.osmpin{background:none;border:0}
.osmpin .pw{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:50% 100%;opacity:0;transform:translateY(-34px) scale(.6);transition:opacity .35s,transform .35s,filter .4s}
.osm.ready .osmpin .pw{animation:drop .8s var(--d,0ms) cubic-bezier(.2,1.4,.4,1) both}
@keyframes drop{0%{opacity:0;transform:translateY(-46px) scale(.5)}60%{opacity:1}100%{opacity:1;transform:none}}
.osmpin img{display:block;width:40px;height:48px;filter:drop-shadow(0 5px 4px rgba(0,0,0,.4));transition:transform .5s var(--ease);transform-origin:50% 100%}
.osmpin:hover img,.osmpin.on img{transform:translateY(-6px) scale(1.25)}
/* anillo pulsante en la base */
.osmpin:not(.osmpin--hotel):not(.osmpin--dot) .pw::after{content:"";position:absolute;left:50%;bottom:-4px;width:26px;height:10px;margin-left:-13px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.25);opacity:0;animation:ping 2.8s var(--d,0ms) var(--ease) infinite}
@keyframes ping{0%{transform:scale(.4);opacity:.95}100%{transform:scale(2.6);opacity:0}}
.osmpin.on .pw::after{animation-duration:1.3s}
/* con una tarjeta abierta, el resto se atenúa */
.osm.has-focus .osmpin:not(.on) .pw{opacity:.38;filter:saturate(.6)}
.osmpin.hide{pointer-events:none}
.osmpin.hide .pw{opacity:0!important;transform:scale(.4)!important;animation:none}
/* hoteles: etiqueta con nombre */
.osmpin--hotel .pw{width:auto;height:auto;left:0;top:0}
.hpill{position:absolute;left:0;top:0;transform:translate(-50%,-100%);margin-top:-9px;padding:7px 13px;border:2px solid #086b16;border-radius:14px;background:#fff;color:#086b16;font:700 12px/1.1 var(--sans);white-space:nowrap;box-shadow:0 6px 14px rgba(0,0,0,.35);transition:background .3s,color .3s}
.hpill::after{content:"";position:absolute;left:50%;top:100%;margin-left:-7px;border:7px solid transparent;border-top-color:#086b16}
.osmpin--hotel:hover .hpill,.osmpin--hotel.on .hpill{background:#086b16;color:#fff}
/* sin icono */
.osmpin--dot .pw i{position:absolute;inset:2px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.45)}
.osmpin--dot .pw::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--c);opacity:0;animation:ping 2.4s var(--d,0ms) var(--ease) infinite}

/* tarjeta con imagen y texto */
.hcard{position:absolute;left:0;top:0;z-index:900;width:min(340px,calc(100% - 24px));border-radius:16px;overflow:hidden;background:var(--hueso);color:var(--tinta);box-shadow:0 28px 60px -12px rgba(0,0,0,.55);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s,visibility 0s linear .35s}
.hcard.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.hcard::after{content:"";position:absolute;left:50%;margin-left:-9px;width:18px;height:18px;background:var(--hueso);transform:rotate(45deg)}
.hcard[data-pos="up"]::after{bottom:-9px}.hcard[data-pos="down"]::after{top:-9px}
.hcard>*{position:relative;z-index:1}
.hcard__ph{aspect-ratio:16/9;overflow:hidden;background:#cfd8c4}
.hcard__ph img{height:100%;transform:scale(1.25);transition:transform 1.4s var(--ease)}
.hcard.open .hcard__ph img{transform:scale(1)}
.hcard__ph[hidden]{display:none}
.hcard__b{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.hcard__cat{border:0;background:var(--c,var(--tinta));color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.hcard h3{font-size:clamp(22px,2vw,28px)}
.hcard__t{font-size:14px;line-height:1.6;opacity:.88}
.hcard .link{border-bottom-color:rgba(11,18,16,.5);font-size:11px}
.hcard.open .hcard__b>*{animation:cardin .6s var(--ease) both}
.hcard.open .hcard__b>*:nth-child(2){animation-delay:.05s}.hcard.open .hcard__b>*:nth-child(3){animation-delay:.1s}.hcard.open .hcard__b>*:nth-child(4){animation-delay:.15s}
@keyframes cardin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.mhint{position:absolute;left:4vw;bottom:5vh;z-index:600;padding:10px 18px;border-radius:99px;background:rgba(11,18,16,.78);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--hueso);font-size:12px;letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
.chip--tour{background:var(--lima);border-color:var(--lima);color:var(--tinta)}
.chip--tour:hover{background:var(--sol);border-color:var(--sol)}
.chip--tour.on{background:var(--coral);border-color:var(--coral);color:#fff}
@media(max-width:900px){.osm{height:72vh}.mhint{display:none}.hcard{width:min(300px,calc(100% - 24px))}}
@media(prefers-reduced-motion:reduce){.osmpin .pw{opacity:1!important;transform:none!important;animation:none!important}}

.hpill{transition:background .3s,color .3s,width .3s,height .3s,padding .3s,border-radius .3s,font-size .2s}
.osm.far .osmpin--hotel .hpill{width:22px;height:22px;padding:0;margin-top:0;transform:translate(-50%,-50%);border-radius:50%;font-size:0;background:#ffc933;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.45)}
.osm.far .osmpin--hotel .hpill::after{display:none}
.prices div span{font-size:2rem}

/* menú cerrado = display:none, así sus fotos de vista previa no se descargan hasta abrirlo */
picture{display:contents}
.menu{display:none;transition:none;transform:none;opacity:1;visibility:visible}
.menu.is-open{display:flex;animation:menuin .4s var(--ease)}
@keyframes menuin{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}

/* mapa bajo demanda */
.osmload{position:absolute;inset:0;display:grid;place-items:center;background:#e8e4da;color:#4b5a52;font:600 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;z-index:5;pointer-events:none;transition:opacity .6s}
.osmwrap.is-loaded .osmload{opacity:0}
.osmwrap.is-error .osmload span::after{content:" · no se pudo cargar"}
.osmlink{padding:18px 4vw 0;background:var(--tinta);color:var(--hueso)}
.osmlink .link{border-bottom-color:rgba(244,239,230,.5)}

/* ===== accesibilidad ===== */
.skip{position:fixed;left:12px;top:-80px;z-index:500;padding:14px 22px;border-radius:99px;background:var(--lima);color:var(--tinta);font:600 13px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;transition:top .25s}
.skip:focus{top:12px}
:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px rgba(11,18,16,.85)}
.light :focus-visible,.site-header.is-solid :focus-visible,.hcard :focus-visible,.lang__list :focus-visible{outline-color:var(--tinta);box-shadow:0 0 0 6px rgba(255,255,255,.9)}
.pause{position:absolute;right:4vw;bottom:calc(4vh - 6px);z-index:6;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(11,18,16,.45);color:#fff;cursor:pointer;display:grid;place-items:center}
.pause svg{width:16px;height:16px;fill:currentColor}
.pause .i-play{display:none}.pause[aria-pressed="true"] .i-play{display:block}.pause[aria-pressed="true"] .i-pause{display:none}
.mason figure{cursor:zoom-in}
.mason figure:focus-visible{outline-offset:-3px}
main:focus{outline:0}

/* ===== banner de cookies ===== */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:450;max-width:640px;border-radius:18px;background:var(--tinta);color:var(--hueso);box-shadow:0 24px 60px -10px rgba(0,0,0,.6);border:1px solid rgba(244,239,230,.18)}
.consent__inner{padding:22px 24px 20px;display:flex;flex-direction:column;gap:14px}
.consent h2{font:600 18px/1.2 var(--sans);letter-spacing:-.01em}
.consent p{font-size:14px;line-height:1.6;opacity:.9}
.consent a{text-decoration:underline;text-underline-offset:3px}
.consent__options{display:flex;flex-direction:column;gap:12px;border-top:1px solid rgba(244,239,230,.18);padding-top:14px}
.consent__opt{display:flex;gap:12px;align-items:flex-start}
.consent__opt input{width:22px;height:22px;margin-top:1px;accent-color:var(--lima);flex:none}
.consent__opt label{display:flex;flex-direction:column;gap:3px;font-size:14px;line-height:1.5}
.consent__opt label span{opacity:.8;font-size:13px}
.consent__actions{display:flex;gap:10px;flex-wrap:wrap}
.cbtn{min-height:46px;padding:0 20px;border-radius:99px;border:1px solid rgba(244,239,230,.55);background:none;color:inherit;font:600 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s}
.cbtn:hover{background:var(--hueso);color:var(--tinta)}
.cbtn--main{background:var(--lima);border-color:var(--lima);color:var(--tinta)}
.cbtn--main:hover{background:var(--sol);border-color:var(--sol)}
.cookie-fab{position:fixed;left:16px;bottom:16px;z-index:440;width:48px;height:48px;border-radius:50%;border:1px solid rgba(244,239,230,.35);background:var(--tinta);color:var(--hueso);cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 26px rgba(0,0,0,.4)}
.cookie-fab[hidden]{display:none}
.cookie-fab:hover{background:var(--verde)}
@media(max-width:600px){.consent{left:8px;right:8px;bottom:8px}.consent__actions .cbtn{flex:1 1 100%}}

/* ===== páginas legales ===== */
.prose{max-width:760px;margin:0 auto}
.prose h2{font-size:clamp(26px,3vw,38px);margin:2.2em 0 .6em;line-height:1.1}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{font-size:17px;line-height:1.75;margin-bottom:1em}
.prose ul{padding-left:1.3em;margin-bottom:1em}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose .draft{padding:18px 22px;border:1px dashed rgba(11,18,16,.5);border-radius:12px;font-size:15px;line-height:1.6;margin-bottom:2.4em;background:rgba(255,201,51,.18)}
.prose table{width:100%;border-collapse:collapse;font-size:15px;margin:1em 0 2em}
.prose th,.prose td{text-align:left;padding:12px 10px;border-bottom:1px solid rgba(11,18,16,.2);vertical-align:top}
.prose th{font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.prose .todo{background:rgba(255,201,51,.45);padding:0 .25em;border-radius:3px}
.legalrow{display:flex;gap:10px 28px;flex-wrap:wrap;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding-top:18px;border-top:1px solid rgba(11,18,16,.2)}
.legalrow a,.legalrow button{background:none;border:0;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;opacity:.75}
.legalrow a:hover,.legalrow button:hover{opacity:1;text-decoration:underline}

#lightbox .close{top:10px;right:10px;font-size:40px;line-height:1}
#lightbox[aria-hidden="true"]{pointer-events:none}

/* lista de lugares bajo el mapa */
.mlist h2{font-size:clamp(34px,4.4vw,70px);margin-bottom:6vh}
.mlist__cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:48px 40px}
.mlist h3{display:flex;align-items:center;gap:12px;font:600 13px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}
.mlist h3 i{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.3)}
.mlist ul{list-style:none;border-top:1px solid rgba(11,18,16,.2)}
.mlist li{padding:14px 0;border-bottom:1px solid rgba(11,18,16,.2);font-size:14px;line-height:1.6}
.mlist li strong{display:block;font:400 22px/1.15 var(--serif);letter-spacing:-.03em;margin-bottom:4px}
.mlist li span{opacity:.85}
.mlist li a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}

/* banner a la derecha en escritorio (no tapa el titular del hero); pausa del slider junto a las barras */
@media(min-width:601px){.consent{left:auto;right:16px}}
.pause{right:auto;left:calc(4vw + 540px)}
@media(max-width:700px){.pause{left:auto;right:4vw;bottom:calc(4vh + 34px)}}

/* ===== pie con impacto: "Vacaciones para todos" ===== */
footer.mini{background:var(--tinta);color:var(--hueso);overflow:hidden}
footer.mini h2{font-size:clamp(54px,13.2vw,250px);line-height:.9;letter-spacing:-.05em;font-weight:300;margin-left:-.04em}
footer.mini h2 em{font-style:normal}
.fline{display:block;overflow:hidden;padding:.02em 0 .12em;white-space:nowrap}
.ch{display:inline-block;will-change:transform;font-variation-settings:"wght" 300}
.fline--2 .ch{animation:ola 5.5s linear infinite;animation-delay:calc(var(--i) * -.22s)}
@keyframes ola{0%,100%{color:var(--lima)}33%{color:var(--sol)}66%{color:var(--coral)}}
footer.mini .cols img{background:#fff;border-radius:50%}
footer.mini .reservar{border-color:var(--hueso);color:var(--hueso)}
footer.mini .reservar:hover{background:var(--lima);border-color:var(--lima);color:var(--tinta)}
footer.mini .legalrow{border-top-color:rgba(244,239,230,.22)}
footer.mini .fnav a{opacity:.8}
@media(prefers-reduced-motion:reduce){.fline--2 .ch{animation:none;color:var(--lima)}}

footer.mini{padding-bottom:calc(5vh + 64px)}

/* ===== cabecera tipo labs.google: difuminado progresivo, se oculta al bajar, color según la sección ===== */
.site-header{transition:transform .6s var(--ease),color .4s var(--ease);background:none;box-shadow:none}
.site-header.is-hidden{transform:translateY(calc(-1 * (var(--header-h) + var(--logo) + 24px)))}
.site-header::before{content:"";position:absolute;inset:0 0 -32px;pointer-events:none;opacity:1;background:linear-gradient(rgba(6,18,16,.5),rgba(6,18,16,0));transition:background .4s}
.site-header.is-light::before{background:linear-gradient(rgba(244,239,230,.78),rgba(244,239,230,0))}
.site-header:not(.is-solid){text-shadow:0 1px 12px rgba(0,0,0,.4)}
.site-header.is-light{color:var(--tinta);text-shadow:none}
.site-header.is-light .hbook{background:var(--verde-ac);border-color:var(--verde-ac);color:#fff;text-shadow:none}
.site-header.is-light .hbook:hover{background:var(--tinta);border-color:var(--tinta)}
.site-header.is-light :focus-visible{outline-color:var(--tinta);box-shadow:0 0 0 6px rgba(255,255,255,.9)}
.header__blur{position:absolute;left:0;right:0;top:0;height:calc(var(--header-h) + 34px);pointer-events:none;z-index:-1}
.header__blur span{position:absolute;inset:0;-webkit-backdrop-filter:blur(var(--b));backdrop-filter:blur(var(--b));-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 var(--m1),transparent var(--m2));mask-image:linear-gradient(to bottom,#000 0,#000 var(--m1),transparent var(--m2))}
.header__blur span:nth-child(1){--b:1px;--m1:70%;--m2:100%}
.header__blur span:nth-child(2){--b:2px;--m1:55%;--m2:88%}
.header__blur span:nth-child(3){--b:4px;--m1:40%;--m2:74%}
.header__blur span:nth-child(4){--b:8px;--m1:26%;--m2:58%}
.header__blur span:nth-child(5){--b:16px;--m1:12%;--m2:42%}
@media(prefers-reduced-motion:reduce){.site-header{transition:none}}

/* ===== formulario de contacto ===== */
.cform-wrap{display:grid;grid-template-columns:minmax(260px,.8fr) 1.4fr;gap:6vw;align-items:start}
.cform-intro h2{font-size:clamp(34px,4.4vw,70px);margin:14px 0 4vh}
.cform-intro p:not(.kicker){font-size:17px;line-height:1.7;max-width:40ch}
.cform-intro a{text-decoration:underline;text-underline-offset:3px}
.cform{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field--full{grid-column:1/-1}
.field label{font:600 12px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.field label small{font-weight:400;letter-spacing:.04em;text-transform:none;opacity:.75}
.field input[type=text],.field input[type=email],.field input[type=tel],.field select,.field textarea{width:100%;min-height:52px;padding:14px 16px;border:1px solid rgba(11,18,16,.35);border-radius:10px;background:#fff;color:var(--tinta);font:400 16px/1.4 var(--sans);transition:border-color .25s,box-shadow .25s}
.field textarea{min-height:150px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--tinta)}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--verde);outline-offset:1px;border-color:var(--tinta)}
.field [aria-invalid="true"]{border-color:#b3261e;box-shadow:0 0 0 1px #b3261e}
.err{color:#b3261e;font-size:14px;line-height:1.4;font-weight:600}
.err[hidden]{display:none}
.check{display:flex;gap:12px;align-items:flex-start;font:400 15px/1.55 var(--sans)!important;letter-spacing:0!important;text-transform:none!important}
.check input{width:24px;height:24px;margin-top:1px;accent-color:var(--verde);flex:none}
.check a{text-decoration:underline;text-underline-offset:3px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.datainfo{font-size:13px;line-height:1.65;opacity:.78}
.datainfo a{text-decoration:underline;text-underline-offset:3px}
.cform-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.btn-send{display:inline-flex;align-items:center;gap:14px;min-height:56px;padding:0 34px;border:0;border-radius:99px;background:var(--verde-ac);color:#fff;font:600 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .3s,transform .4s var(--ease)}
.btn-send:hover:not(:disabled){background:var(--tinta);transform:translateY(-2px)}
.btn-send:disabled{opacity:.6;cursor:progress}
#cform-status{font-size:15px;line-height:1.5;min-height:1.5em}
#cform-status[data-kind="error"]{color:#b3261e;font-weight:600}
.cform-ok{grid-column:2;padding:40px;border-radius:16px;background:#fff;border:1px solid rgba(11,18,16,.15)}
.cform-ok:focus{outline:3px solid var(--verde)}
.cform-ok h3{font-size:clamp(28px,3vw,44px);margin-bottom:14px}
.cform-ok p{font-size:17px;line-height:1.7;margin-bottom:24px}
@media(max-width:900px){.cform-wrap{grid-template-columns:1fr}.cform{grid-template-columns:1fr}.cform-ok{grid-column:1}}

/* ===== CTA: botón de llamada a la acción ===== */
.cta{display:inline-flex;align-items:center;gap:16px;min-height:56px;padding:0 10px 0 28px;border-radius:99px;background:var(--lima);color:var(--tinta);font:600 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-shadow:none;transition:background .4s,color .4s,transform .5s var(--ease),box-shadow .4s;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.cta i{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--tinta);color:var(--lima);font-style:normal;font-size:18px;transition:transform .5s var(--ease),background .4s,color .4s}
.cta:hover{background:var(--hueso);transform:translateY(-3px)}
.cta:hover i{transform:translateX(4px) rotate(-45deg);background:var(--verde-ac);color:#fff}
.cta:focus-visible{outline:3px solid #fff;outline-offset:4px}
.cta--dark{background:var(--tinta);color:var(--hueso)}
.cta--dark i{background:var(--lima);color:var(--tinta)}
.cta--dark:hover{background:var(--verde-ac);color:#fff}
.cta--dark:hover i{background:#fff;color:var(--verde-ac)}
.cta--big{min-height:68px;font-size:14px;padding-left:34px}
.cta--big i{width:48px;height:48px}
.panel .cta,.reserva .cta,.cursos .cta{margin-top:.5vh}
.reserva .prices .cta{margin-top:28px}
.sports .list .cta{margin-top:5vh}
/* tarjeta final del scroll horizontal de restaurantes */
.card--cta{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:26px;width:min(34vw,440px);height:auto;padding:0 2vw;color:var(--hueso)}
.card--cta .m{font-size:15px;line-height:1.6;opacity:.85;max-width:30ch}
.card--cta:hover .cta{background:var(--hueso)}
.card--cta:hover .cta i{transform:translateX(4px) rotate(-45deg);background:var(--verde-ac);color:#fff}
@media(max-width:900px){.card--cta{width:100%;padding:0}.cta{min-height:52px;padding-left:22px;font-size:12px}}

.cta span{white-space:nowrap}
.card--cta{width:min(40vw,520px)}

/* selector Mapa / Satélite */
.maptype{position:absolute;left:4vw;top:18px;z-index:800;display:flex;padding:4px;border-radius:99px;background:rgba(11,18,16,.82);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 26px rgba(0,0,0,.35)}
.maptype button{min-height:44px;padding:0 22px;border:0;border-radius:99px;background:none;color:var(--hueso);font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s}
.maptype button:hover{background:rgba(244,239,230,.16)}
.maptype button.on{background:var(--hueso);color:var(--tinta)}
.osm.is-sat .leaflet-tile-pane{filter:none}

/* ===== móvil (≤ 767 px) ===== */
@media(max-width:767px){
  :root{--logo:96px}
  .site-header.is-mini{--logo:64px}
  .brand img{top:6px}
  /* manifiesto: solo el texto, sin columna de fotos */
  .scroller__images{display:none}
  .scroller{padding:14vh 0}
  .scroller__copy p{font-size:19px}
  /* pila de paneles: tarjetas a pantalla completa que se cubren unas a otras */
  .stack{height:auto;overflow:visible}
  .panel{position:sticky;top:0;inset:auto;height:100vh;height:100svh;border-radius:22px 22px 0 0;box-shadow:0 -18px 40px rgba(0,0,0,.35)}
  .panel:first-child{border-radius:0;box-shadow:none}
  .panel .bg{inset:0}
  .panel .txt{left:6vw;right:6vw;bottom:9vh;max-width:none}
  .panel h2{font-size:clamp(40px,13vw,64px);margin:1.5vh 0 2.5vh}
  .panel p{font-size:15px;line-height:1.6;margin-bottom:3vh}
  /* deportes: nombre arriba y detalle debajo */
  .sports{grid-template-columns:minmax(0,1fr)}
  .cta{max-width:100%;line-height:1.25}
  .cta span{white-space:normal}
  .cta i{flex:none}
  .card--cta{min-width:0;overflow:hidden}
  .cta--big{min-height:60px;padding-left:22px;font-size:12px}
  .cta--big i{width:44px;height:44px}
  footer h2{font-size:clamp(40px,12.5vw,64px)}
  .sports .pic{height:42vh}
  .sports .list{padding:9vh 6vw 10vh}
  .sports .list h2{font-size:clamp(40px,12vw,64px);margin:12px 0 4vh}
  .sports li{flex-direction:column;align-items:flex-start;gap:4px;padding:16px 0}
  .sports li b{font-size:26px}
  .sports li span{text-align:left;font-size:13px;letter-spacing:.04em}
  .sports li:hover,.sports li.on{padding-left:0}
}

/* tablas legales en móvil: cada fila pasa a ser un bloque con su etiqueta */
@media(max-width:700px){
  .prose table,.prose tbody,.prose tr,.prose td{display:block;width:100%}
  .prose thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .prose tr{padding:14px 0;border-bottom:1px solid rgba(11,18,16,.2)}
  .prose td{border:0;padding:4px 0}
  .prose td::before{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;opacity:.6}
  .prose td:nth-child(1)::before{content:"Cookie"}
  .prose td:nth-child(2)::before{content:"Titular"}
  .prose td:nth-child(3)::before{content:"Finalidad"}
  .prose td:nth-child(4)::before{content:"Duración"}
}
@media(max-width:900px){.hotels{padding-bottom:6vh}}
/* el aviso de cookies entra cuando termina la animación de entrada (no se ve sobre el velo) */
@keyframes consent-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.consent{animation:consent-in .6s var(--ease) .85s both}
@media(max-width:767px){.facts li b{font-size:18px}}
/* móvil: menos aire entre secciones claras consecutivas */
@media(max-width:767px){
  .sec{padding:9vh 6vw}
  .sec.light + .sec.light{padding-top:3vh}
}

/* contacto: datos del club ordenados bajo la introducción del formulario */
.cform-intro{position:relative}

.cdata{margin-top:5vh;border-top:1px solid rgba(11,18,16,.25);max-width:460px}
.cdata>div{display:grid;grid-template-columns:8.5rem 1fr;gap:1rem;padding:16px 0;border-bottom:1px solid rgba(11,18,16,.15)}
.cdata dt{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;opacity:.6;padding-top:.45em}
.cdata dd{font-size:17px;line-height:1.55}
.cdata address{font-style:normal}
.cdata .tel{font-family:var(--serif);font-size:clamp(26px,2.4vw,34px);letter-spacing:-.02em;text-decoration:none}
.cdata a{text-decoration:underline;text-underline-offset:3px}
.cdata .tel{text-decoration:none}
@media(max-width:480px){.cdata>div{grid-template-columns:1fr;gap:4px}}

.cdata dd small{display:block;margin-top:4px;font-size:13px;line-height:1.5;opacity:.7}

.datainfo b{font-weight:600}
.datainfo details{margin-top:6px}
.datainfo summary{cursor:pointer;display:inline-block;min-height:32px;padding-top:6px;text-decoration:underline;text-underline-offset:3px}
.datainfo details p{margin-top:6px}

/* hoteles de la home: lista + foto que cambia al pasar por cada hotel */
.hotels__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:5vw;align-items:start}
.hotels__grid li a{font-size:clamp(26px,3.3vw,56px)}
.hotels__thumb{display:none}
.hotels__pic{position:sticky;top:16vh;aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:#111d1a}
.hotels__pic figure{position:absolute;inset:0;opacity:0;transition:opacity .7s var(--ease)}
.hotels__pic figure.is-active{opacity:1}
.hotels__pic img{position:absolute;inset:0;opacity:0;transition:opacity 1s var(--ease)}
.hotels__pic img.on{opacity:1}
@media(max-width:900px){
  .hotels__grid{grid-template-columns:1fr}
  .hotels__pic{display:none}
  .hotels li{margin-bottom:0;padding-top:18px;border-bottom:1px solid rgba(255,255,255,.25)}
  .hotels li a{border-bottom:0;padding:14px 0 18px;font-size:clamp(24px,7vw,34px)}
  .hotels__thumb{display:block;width:100%;aspect-ratio:16/9;height:auto;border-radius:6px}
  .hotels li a:hover{padding-left:0}
}

.hcard__logo{display:block;width:100%;max-width:250px;height:auto;margin:0 auto 0 0}

/* ===== Proty: asistente del club (botón, panel y animación de entrada) ===== */
:root{--proty-lift:0px}
.proty-fab{position:fixed;right:20px;bottom:calc(20px + var(--proty-lift));z-index:430;display:flex;flex-direction:row-reverse;align-items:center;gap:10px;padding:0;border:0;background:none;color:var(--hueso);cursor:pointer;visibility:hidden;opacity:0;transition:bottom .5s var(--ease)}
.proty-fab.is-in{visibility:visible;opacity:1}
.proty-fab.is-pop img{animation:proty-pop .7s cubic-bezier(.34,1.56,.64,1) both}
.proty-fab img{width:64px;height:64px;border-radius:50%;background:var(--tinta);box-shadow:0 10px 30px -6px rgba(0,0,0,.55),0 0 0 2px var(--lima);object-fit:cover;transition:transform .4s var(--ease)}
.proty-fab:hover img,.proty-fab:focus-visible img{transform:scale(1.08)}
.proty-fab__t{max-width:260px;padding:11px 18px;border-radius:99px;background:var(--tinta);border:1px solid rgba(244,239,230,.25);font:500 13px/1.2 var(--sans);letter-spacing:.01em;white-space:nowrap;box-shadow:0 10px 30px -8px rgba(0,0,0,.5);overflow:hidden}
.proty-fab.is-in .proty-fab__t{animation:proty-label .6s var(--ease) 14s forwards}
.proty-fab[aria-expanded=true] .proty-fab__t{display:none}
.proty-fab:focus-visible{outline:3px solid var(--lima);outline-offset:4px;border-radius:99px}
@keyframes proty-pop{0%{transform:scale(0) rotate(-20deg)}100%{transform:none}}
@keyframes proty-label{to{max-width:0;padding-left:0;padding-right:0;opacity:0;border-width:0}}

.proty-panel{position:fixed;right:20px;bottom:calc(20px + 64px + 14px + var(--proty-lift));z-index:440;width:min(380px,calc(100vw - 24px));height:min(560px,calc(100dvh - 130px - var(--proty-lift)));display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:#0f1815;color:var(--hueso);border:1px solid rgba(244,239,230,.2);box-shadow:0 30px 70px -12px rgba(0,0,0,.7);opacity:0;transform:translateY(14px) scale(.98);transform-origin:bottom right;transition:opacity .25s ease,transform .3s var(--ease),bottom .5s var(--ease)}
.proty-panel[hidden]{display:none}
.proty-panel.is-open{opacity:1;transform:none}
.proty-h{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#17261f,#0f1815);border-bottom:1px solid rgba(244,239,230,.12)}
.proty-h img{width:44px;height:44px;border-radius:50%;box-shadow:0 0 0 2px var(--lima)}
.proty-h div{flex:1;display:flex;flex-direction:column;gap:2px}
.proty-h strong{font:600 16px/1.1 var(--sans)}
.proty-h span{font:400 12px/1.2 var(--sans);opacity:.7}
.proty-x{width:40px;height:40px;border-radius:50%;border:0;background:rgba(244,239,230,.08);color:inherit;display:grid;place-items:center;cursor:pointer}
.proty-x:hover{background:rgba(244,239,230,.18)}
.proty-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.proty-m{max-width:86%;padding:11px 14px;border-radius:16px;font:400 14px/1.5 var(--sans);white-space:pre-wrap;overflow-wrap:anywhere}
.proty-m--bot{align-self:flex-start;background:rgba(244,239,230,.09);border-bottom-left-radius:5px}
.proty-m--user{align-self:flex-end;background:var(--lima);color:var(--tinta);font-weight:500;border-bottom-right-radius:5px}
.proty-m.is-typing{display:flex;gap:5px;padding:14px 16px}
.proty-m.is-typing i{width:7px;height:7px;border-radius:50%;background:var(--hueso);opacity:.4;animation:proty-dot 1s infinite}
.proty-m.is-typing i:nth-child(2){animation-delay:.15s}.proty-m.is-typing i:nth-child(3){animation-delay:.3s}
@keyframes proty-dot{50%{opacity:1;transform:translateY(-3px)}}
.proty-chips{display:flex;flex-direction:column;gap:8px;padding:0 16px 12px}
.proty-chips[hidden]{display:none}
.proty-chip{text-align:left;padding:10px 14px;border-radius:14px;border:1px solid rgba(244,239,230,.3);background:none;color:inherit;font:400 13px/1.35 var(--sans);cursor:pointer;transition:background .2s,border-color .2s}
.proty-chip:hover{background:rgba(185,226,74,.14);border-color:var(--lima)}
.proty-acts{align-self:flex-start;display:flex;flex-direction:column;gap:8px;max-width:86%}
.proty-act{display:inline-block;padding:11px 16px;border-radius:99px;border:1px solid rgba(244,239,230,.45);color:inherit;font:600 12px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;text-align:center;text-decoration:none}
.proty-act--main{background:var(--lima);border-color:var(--lima);color:var(--tinta)}
.proty-form{display:flex;gap:8px;padding:12px 16px;border-top:1px solid rgba(244,239,230,.12)}
.proty-form input{flex:1;min-width:0;height:46px;padding:0 16px;border-radius:99px;border:1px solid rgba(244,239,230,.3);background:rgba(244,239,230,.06);color:inherit;font:400 14px var(--sans)}
.proty-form input::placeholder{color:rgba(244,239,230,.6)}
.proty-form input:focus{outline:2px solid var(--lima);outline-offset:1px}
.proty-send{width:46px;height:46px;border-radius:50%;border:0;background:var(--lima);color:var(--tinta);display:grid;place-items:center;cursor:pointer;flex:none}
.proty-legal{padding:0 16px 12px;font:400 11px/1.4 var(--sans);opacity:.6}
.proty-legal a{text-decoration:underline;text-underline-offset:2px}
@media(max-width:600px){
  .proty-fab{right:12px;bottom:calc(12px + var(--proty-lift))}
  .proty-fab img{width:58px;height:58px}
  .proty-fab__t{font-size:12px;padding:9px 14px}
  .proty-panel{right:8px;left:8px;width:auto;bottom:calc(12px + 58px + 10px + var(--proty-lift));height:min(70dvh,560px)}
}
/* animación de entrada: Proty camina, salta, desaparece con humo y aparece el botón */
.proty-walker{position:fixed;left:0;z-index:432;width:var(--pw);height:var(--ph);background-repeat:no-repeat;background-size:calc(var(--pw) * 8) var(--ph);pointer-events:none;will-change:transform,opacity;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25));transition:opacity .2s ease,scale .2s ease,filter .2s ease}
.proty-walker.is-gone{opacity:0!important;scale:.5;filter:blur(5px)}
.proty-shadow{position:fixed;left:0;z-index:431;height:12px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.45),rgba(0,0,0,0));pointer-events:none;will-change:transform,opacity}
.proty-cloud{position:fixed;z-index:433;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 38% 32%,#fff 0,#eef2ef 38%,#cfd9d3 66%,rgba(207,217,211,0) 74%);filter:blur(2.5px);opacity:0;animation:proty-cloud 1.1s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes proty-cloud{0%{opacity:0;transform:translate(0,0) scale(.2) rotate(0)}18%{opacity:.95}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.35) rotate(var(--r))}}
.proty-spark{position:fixed;z-index:434;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--c,#fff);box-shadow:0 0 8px 2px var(--c,#fff);pointer-events:none;opacity:0;animation:proty-spark .9s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes proty-spark{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2)}}
.proty-ring{position:fixed;z-index:433;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:3px solid rgba(255,255,255,.85);pointer-events:none;opacity:0;animation:proty-ring .7s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes proty-ring{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(11)}}
.proty-fab.is-ring::after{content:"";position:absolute;right:0;bottom:0;width:64px;height:64px;border-radius:50%;border:3px solid var(--lima);animation:proty-fabring .9s ease-out forwards;pointer-events:none}
@keyframes proty-fabring{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(2.2)}}
@media(prefers-reduced-motion:reduce){.proty-walker,.proty-shadow,.proty-cloud,.proty-spark,.proty-ring{display:none}.proty-fab.is-pop img,.proty-fab.is-in .proty-fab__t,.proty-fab.is-ring::after{animation:none}.proty-panel{transition:none}}
.proty-hero{align-self:center;display:grid;place-items:center;padding:6px 0 2px;animation:proty-hero-in .7s cubic-bezier(.34,1.56,.64,1) both}
.proty-hero[hidden]{display:none}
.proty-hero img{width:120px;height:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.45))}
@keyframes proty-hero-in{0%{opacity:0;transform:scale(.6) rotate(-8deg)}100%{opacity:1;transform:none}}
@media(max-width:600px){.proty-hero img{width:96px}}
@media(prefers-reduced-motion:reduce){.proty-hero{animation:none}}
