/* ══ MOTION (nov 2026) — catálogo cinético del héroe y animaciones de scroll ══
   Se activa solo si motion.js agrega html.mg-on: sin JS el héroe queda como siempre.
   Para volver atrás: sacar el <link> de motion.css y el <script> de motion.js del HTML. */

/* ── Telón de entrada ── */
html.mg-on #ls{opacity:1!important;transition:clip-path 1s cubic-bezier(.76,0,.24,1),visibility 0s linear 1s}
html.mg-on #ls.h{clip-path:inset(0 0 100% 0);visibility:hidden}
html.mg-on .lbf{animation-duration:1.1s}

/* ── Barra de avance de la página ── */
.mg-bar{position:fixed;top:0;left:0;right:0;height:3px;background:var(--acc);transform:scaleX(var(--sp,0));transform-origin:0 50%;z-index:1100;pointer-events:none}

/* ── Héroe ── */
#hero.mg{--mg-pad:clamp(20px,4.5vw,64px);padding:0;overflow:hidden;justify-content:flex-start;align-items:center;background-color:var(--ink,#111);min-height:100vh;min-height:100svh;touch-action:pan-y}
/* Fondo: las fotos miden ~500 px de ancho, así que van desenfocadas a propósito;
   la foto nítida es la del catálogo. */
.mg-stage{position:absolute;inset:0;overflow:hidden;will-change:transform;scale:calc(1 + var(--hp,0) * .07);translate:var(--mx,0) var(--my,0)}
.mg-layer{position:absolute;inset:-40px;overflow:hidden}
.mg-layer img{width:100%;height:100%;object-fit:cover;display:block;max-width:none;filter:blur(14px) saturate(1.2);animation:mgKb 13s cubic-bezier(.2,.5,.3,1) forwards}
.mg-layer:nth-child(even) img{animation-name:mgKbAlt}
@keyframes mgKb{from{transform:scale(1.22) translate3d(-1.4%,.8%,0)}to{transform:scale(1.06) translate3d(.8%,-.5%,0)}}
@keyframes mgKbAlt{from{transform:scale(1.06) translate3d(1.2%,-.7%,0)}to{transform:scale(1.22) translate3d(-1%,.8%,0)}}

/* Sin catálogo (API caída o pocas fotos) el fondo es la foto de siempre, sin desenfoque */
#hero.mg-solo .mg-layer img{filter:none}

#hero.mg .ho{z-index:0;background:
  linear-gradient(90deg,rgba(8,10,8,.74) 0%,rgba(8,10,8,.42) 46%,rgba(8,10,8,.16) 100%),
  linear-gradient(0deg,rgba(8,10,8,.6) 0%,rgba(8,10,8,.1) 50%,rgba(8,10,8,.32) 100%)}

#hero.mg .hc{z-index:3;text-align:left;box-sizing:content-box;width:min(700px,41vw);max-width:none;padding:104px 0 84px var(--mg-pad);translate:0 calc(var(--hp,0) * -70px);opacity:calc(1 - var(--hp,0) * 1.5)}
#hero.mg .hbadge{margin-bottom:18px}
#hero.mg .ht{font-size:clamp(2.4rem,4vw,3.9rem);line-height:1.06;letter-spacing:-1.5px;margin-bottom:18px}
#hero.mg .hs{font-size:clamp(.95rem,1.25vw,1.08rem);margin-bottom:24px;max-width:500px}
#hero.mg .hs br{display:none}
#hero.mg .hc .hoffer{margin:0 0 16px}
#hero.mg .hcta-wrap{display:inline-block}
#hero.mg .hcta{justify-content:center;text-align:left;padding:18px clamp(24px,3vw,38px);font-size:clamp(1rem,1.3vw,1.14rem);translate:var(--tx,0) var(--ty,0);transition:transform var(--tr),box-shadow var(--tr),translate .35s cubic-bezier(.22,1,.36,1)}
#hero.mg .hcta-nudge{left:auto;right:-14px;bottom:-30px}
#hero.mg .hscrl{z-index:3;bottom:18px;opacity:calc(.8 - var(--hp,0) * 2)}

/* Título: cada palabra sube desde atrás de su propia máscara */
.mg-w{display:inline-block;overflow:hidden;vertical-align:top;padding:.12em .03em .16em;margin:-.12em -.03em -.16em}
.mg-w>span{display:inline-block;transition:transform 1s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0) * 55ms)}
.mg-pre .mg-w>span{transform:translateY(118%) rotate(5deg)}
/* El resto del héroe entra después del título */
#hero.mg .hbadge,#hero.mg .hs,#hero.mg .hoffer,#hero.mg .hcta-wrap,.mg-cat{transition:opacity .9s ease,transform 1s cubic-bezier(.16,1,.3,1)}
#hero.mg.mg-pre .hbadge,#hero.mg.mg-pre .hs,#hero.mg.mg-pre .hoffer,#hero.mg.mg-pre .hcta-wrap{opacity:0;transform:translateY(22px)}
#hero.mg .hs{transition-delay:.45s}
#hero.mg .hoffer,#hero.mg .hcta-wrap{transition-delay:.6s}

/* ── Catálogo: pósters en abanico 3D ── */
.mg-cat{--h:min(58vh,40vw,660px);--w:calc(var(--h) * .74);--dx:calc(var(--w) * .52);position:absolute;z-index:2;right:var(--mg-pad);bottom:clamp(84px,11vh,104px);width:calc(50vw - var(--mg-pad) - 30px);color:#fff;translate:0 calc(var(--hp,0) * -38px);opacity:calc(1 - var(--hp,0) * 1.5)}
.mg-cat[hidden]{display:none}
.mg-deck{position:relative;height:var(--h);perspective:1500px;perspective-origin:50% 42%}
.mg-card{position:absolute;left:50%;top:0;width:var(--w);height:var(--h);margin-left:calc(var(--w) / -2);padding:0;border-radius:18px;overflow:hidden;color:#fff;text-align:left;background:rgba(255,255,255,.08);z-index:var(--z,0);
  transform:translateX(calc(var(--ox,0) * var(--dx))) translateZ(calc(var(--az,0) * -150px)) rotateY(calc(var(--ry,0) * 1deg)) rotateX(var(--tiltx,0deg)) rotateY(var(--tilty,0deg));
  transition:transform 1s cubic-bezier(.65,0,.2,1),opacity .6s ease,filter .6s ease;box-shadow:0 26px 60px rgba(0,0,0,.5)}
.mg-card.nt{transition:none}
.mg-card.off{opacity:0;pointer-events:none;visibility:hidden}
.mg-card.far{opacity:.42}
.mg-card:not(.on){filter:brightness(.62) saturate(.9)}
.mg-card:not(.on):hover{filter:brightness(.92)}
.mg-card.on.tilting{transition:transform .18s linear,opacity .6s ease,filter .6s ease}
.mg-card img{width:100%;height:100%;object-fit:cover;display:block;max-width:none;transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.mg-card.on img{transform:scale(1.03)}
.mg-card::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.76) 0%,rgba(0,0,0,0) 44%);pointer-events:none}
.mg-card:focus-visible{outline-offset:-4px}
.mg-ck{position:absolute;z-index:1;left:18px;right:16px;bottom:16px;opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .7s cubic-bezier(.16,1,.3,1)}
.mg-card.on .mg-ck{opacity:1;transform:none;transition-delay:.35s}
.mg-ck small{display:block;font-size:.68rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;opacity:.86;margin-bottom:3px}
.mg-ck b{display:block;font-family:'Playfair Display',serif;font-size:clamp(1.15rem,1.8vw,1.55rem);font-weight:700;line-height:1.14;letter-spacing:-.3px;text-wrap:balance}
/* Entrada: el mazo se abre desde el centro */
.mg-cat.mg-out .mg-card{transform:translateY(46px) scale(.9) rotate(calc(var(--ox,0) * 3deg));opacity:0}
.mg-cat.mg-out .mg-prog,.mg-cat.mg-out .mg-info{opacity:0}
.mg-card{transition-delay:calc(var(--az,0) * 50ms)}
.mg-prog,.mg-info{transition:opacity .9s ease .5s}

.mg-info{display:flex;align-items:center;gap:10px 14px;margin-top:18px;flex-wrap:wrap}
.mg-num{font-family:'Playfair Display',serif;font-size:1.5rem;line-height:1;font-variant-numeric:tabular-nums;color:var(--acc);white-space:nowrap}
.mg-num small{font-family:'Inter',sans-serif;font-size:.78rem;color:#fff;opacity:.72;margin-left:3px}
.mg-spec{flex:1 1 150px;min-width:0;font-size:.86rem;line-height:1.3;opacity:.92;text-wrap:balance}
.mg-btn{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 16px;border-radius:99px;border:1px solid rgba(255,255,255,.44);background:rgba(10,12,10,.32);backdrop-filter:blur(8px);color:#fff;font-size:.84rem;font-weight:600;transition:background .25s ease,color .25s ease,border-color .25s ease}
.mg-btn:hover{background:#fff;color:#141714;border-color:#fff}
.mg-btn[hidden]{display:none}
.mg-arr{position:absolute;z-index:20;top:calc(var(--h) / 2 - 22px);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.55);background:rgba(10,12,10,.56);backdrop-filter:blur(8px);box-shadow:0 6px 18px rgba(0,0,0,.35);transition:background .25s ease,color .25s ease,border-color .25s ease}
#mgPrev{left:0}
#mgNext{right:0}
.mg-arr:hover{background:#fff;color:#141714;border-color:#fff}
.mg-prog{display:flex;gap:4px;margin-top:6px}
.mg-seg{flex:1;min-width:0;height:24px;padding:0;display:flex;align-items:center}
.mg-seg span{display:block;width:100%;height:3px;border-radius:2px;overflow:hidden;background:rgba(255,255,255,.3);transition:background .25s ease}
.mg-seg:hover span{background:rgba(255,255,255,.6)}
.mg-seg i{display:block;height:100%;background:var(--acc);transform:scaleX(0);transform-origin:0 50%}
.mg-card,.mg-card img{-webkit-user-drag:none;user-select:none}

/* ── Títulos: suben por palabra y el filete dorado se traza ── */
.st .mg-w>span{transition-duration:.95s}
.st.mg-pre-st .mg-w>span{transform:translateY(118%) rotate(4deg)}
.st::after{transition:transform 1s cubic-bezier(.16,1,.3,1) .35s;transform-origin:0 50%}
.sh.c .st::after{transform-origin:50% 50%}
.st.mg-pre-st::after{transform:scaleX(0)}

/* ── Entradas genéricas ── */
.mg-up{opacity:0;translate:0 26px;transition:opacity .75s ease var(--d,0s),translate .9s cubic-bezier(.16,1,.3,1) var(--d,0s)}
.mg-up.in{opacity:1;translate:none}
.mg-cl{clip-path:inset(11% 7% 11% 7% round 20px);transition:clip-path 1.15s cubic-bezier(.16,1,.3,1)}
.mg-cl.in{clip-path:inset(0 round 0)}
.mg-dr *{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s cubic-bezier(.65,0,.35,1) var(--d,0s)}
.mg-dr{opacity:0;transition:opacity .25s ease var(--d,0s)}
.mg-dr.in{opacity:1}
.mg-dr.in *{stroke-dashoffset:0}

/* ── Menú: sección actual ── */
.nlinks a.mg-act::after{width:100%}

/* ── Bienvenidos: las fotos se mueven a distinta velocidad ── */
.ai>img.mg-ay{translate:0 var(--ay,0);transition:transform .7s cubic-bezier(.22,1,.36,1)}

/* ── Cabañas ── */
.cim.mg-px>img{translate:0 var(--py,0);scale:1.12}
.mg-cyc{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .85s ease}
.mg-cyc.on{opacity:1}
.mg-dots{position:absolute;z-index:2;left:14px;bottom:15px;display:flex;gap:4px;pointer-events:none}
.mg-dots i{display:block;width:14px;height:3px;border-radius:2px;background:rgba(255,255,255,.45);transition:background .3s ease,width .4s ease}
.mg-dots i.on{background:#fff;width:24px}
html.a4-on .cc.a4.in,html.a4-on .exc.a4.in{transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1),translate 1.1s cubic-bezier(.65,0,.2,1),rotate 1.1s cubic-bezier(.65,0,.2,1),box-shadow .4s ease}
html.a4-on .cc.mg-tilting.a4.in,html.a4-on .exc.mg-tilting.a4.in,.cc.mg-tilting,.exc.mg-tilting{transform:perspective(1100px) translateY(-6px) rotateX(var(--tix,0deg)) rotateY(var(--tiy,0deg));transition:transform .16s linear,box-shadow .4s ease}
@media(max-width:640px){
  #cabinsGrid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:0 -16px;padding:4px 16px 22px;scrollbar-width:none;overscroll-behavior-x:contain}
  #cabinsGrid::-webkit-scrollbar{display:none}
  #cabinsGrid>.cc{flex:0 0 86%;scroll-snap-align:center}
}

/* ── Bici, kayak, desayuno ── */
.mg-route{position:relative;height:56px;margin:-26px auto 30px;max-width:100%;color:var(--p1)}
.mg-route>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mg-route path{fill:none;stroke-linecap:round}
.mg-route .bg{stroke:var(--cream2);stroke-width:2;stroke-dasharray:2 9}
.mg-route .fg{stroke:var(--acc);stroke-width:2.5}
.mg-kayak{position:absolute;left:0;top:0;line-height:0;will-change:transform}
.mg-kayak svg{animation:mgBob 2.6s ease-in-out infinite}
@keyframes mgBob{50%{transform:translateY(-3px) rotate(-2deg)}}
html.a4-on .exc.mg-deal{translate:var(--ddx,0) var(--ddy,0);rotate:var(--ddr,0deg);z-index:1}
html.a4-on .exc.mg-deal.go{translate:none;rotate:none;transition:opacity .8s ease,translate 1.1s cubic-bezier(.65,0,.2,1) var(--dd,0s),rotate 1.1s cubic-bezier(.65,0,.2,1) var(--dd,0s),transform .55s cubic-bezier(.22,1,.36,1),box-shadow .4s ease}
.exc .eximg img{transform-origin:50% 100%;transition:transform 1.4s cubic-bezier(.22,1,.36,1),filter .5s ease,clip-path 1.15s cubic-bezier(.16,1,.3,1)}
.exc:hover .eximg img{transform:scale(1.07)}
.eximg .exi{transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.exc:hover .eximg .exi{transform:translateY(-4px) rotate(-5deg)}
@media(max-width:640px){.mg-route{height:40px;margin:-30px auto 16px}.mg-kayak svg{width:44px;height:20px}}

/* ── Instalaciones: mosaico ── */
#galleryGrid{grid-auto-flow:dense}
#galleryGrid .gi-tall{grid-row:span 2;aspect-ratio:auto}
#galleryGrid .gi-big{grid-column:span 2}
#galleryGrid .gi{position:relative}
#galleryGrid .gi>img,#galleryGrid .gi>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
#galleryGrid .gi::after{content:attr(data-cat);position:absolute;left:14px;bottom:12px;color:#fff;font-size:.82rem;font-weight:600;text-transform:capitalize;text-shadow:0 1px 8px rgba(0,0,0,.7);opacity:0;translate:0 8px;transition:opacity .3s ease,translate .4s cubic-bezier(.22,1,.36,1);pointer-events:none}
#galleryGrid .gi:hover::after{opacity:1;translate:none}
#galleryGrid .gi>img{transition:transform .9s cubic-bezier(.22,1,.36,1)}

/* ── Todo lo que necesitás ── */
#services{position:relative;clip-path:inset(0 calc(var(--e,0) * 4.5vw) round calc(var(--e,0) * 34px))}
#services::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px circle at var(--sx,-999px) var(--sy,-999px),rgba(255,255,255,.1),transparent 72%)}
#services .cnt{position:relative;z-index:1}
#services .svc{position:relative}

/* ── Opiniones: tarjetas del mismo ancho, para que el carrusel avance justo ── */
#rt .rc{flex:0 0 calc((100% - 32px) / 3);min-width:0}
@media(max-width:1000px){#rt .rc{flex-basis:calc((100% - 16px) / 2)}}
@media(max-width:640px){#rt .rc{flex-basis:100%}}
.mg-star{display:inline-block;transition:transform .55s cubic-bezier(.34,1.56,.64,1) var(--d,0s),opacity .3s ease var(--d,0s)}
.rs:not(.in) .mg-star{transform:scale(0) rotate(-40deg);opacity:0}

/* ── Cómo llegar ── */
.loc-d{transform-origin:0 50%;transition:scale .9s cubic-bezier(.65,0,.35,1) calc(var(--d,0s) + .2s)}
.loc-list li.mg-up:not(.in) .loc-d{scale:0 1}
.loc-list b{min-width:3.5em;text-align:right}

/* ── FAQ ── */
.fi{transition:box-shadow .35s ease}
.fi.o{box-shadow:inset 3px 0 0 var(--acc),0 6px 22px rgba(0,0,0,.08)}

/* ── Pie ── */
.mg-word{margin:34px -24px -28px;padding:0 0 .04em;text-align:center;white-space:nowrap;overflow:hidden;font-family:'Playfair Display',serif;font-weight:700;font-size:clamp(3rem,14.6vw,17rem);line-height:1;letter-spacing:-.02em;color:rgba(255,255,255,.12);pointer-events:none}
.mg-word .mg-w>span{transition-duration:1.3s}
.mg-word.mg-pre-st .mg-w>span{transform:translateY(118%)}

/* ── Círculo «Ver» ── */
.mg-cur{position:fixed;left:0;top:0;z-index:1200;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:var(--acc);color:#fff;font-size:.8rem;font-weight:700;pointer-events:none;opacity:0;scale:.3;transition:opacity .22s ease,scale .3s cubic-bezier(.34,1.56,.64,1);will-change:transform}
.mg-cur.on{opacity:.94;scale:1}

/* ── Notebook baja ── */
@media (max-height:720px) and (min-width:901px){
  .mg-cat{--h:min(50vh,40vw);bottom:76px}
  #hero.mg .ht{font-size:clamp(2.2rem,3.9vw,3.3rem)}
  #hero.mg .hc{padding-top:88px;padding-bottom:64px}
}

/* ── Tablet: el menú completo no entra y aplastaba el logo ── */
@media(min-width:641px) and (max-width:1020px){
  #nav .nlinks{display:none}
  #nav .hbg{display:flex;margin-left:12px}
  #nav .nmob{display:inline-flex;margin-left:auto;padding:9px 16px;font-size:.86rem;font-weight:700;border-radius:99px;color:#fff}
  #nav-logo{flex-shrink:0}
}

/* ── Tablet y celular: una sola columna, catálogo abajo ── */
@media(max-width:900px){
  #hero.mg{flex-direction:column;justify-content:flex-start;align-items:stretch}
  #hero.mg .ho{background:linear-gradient(180deg,rgba(8,10,8,.62) 0%,rgba(8,10,8,.56) 50%,rgba(8,10,8,.74) 100%)}
  #hero.mg .hc{box-sizing:border-box;width:auto;padding:88px var(--mg-pad) 6px}
  #hero.mg .hbadge{font-size:.72rem;padding:5px 12px;margin-bottom:12px}
  #hero.mg .ht{font-size:clamp(2.1rem,9vw,3.4rem);letter-spacing:-1px;margin-bottom:10px}
  #hero.mg .hs{font-size:.93rem;line-height:1.48;margin-bottom:14px}
  #hero.mg .hc .hoffer{margin-bottom:12px}
  #hero.mg .hcta-wrap{display:block;width:100%}
  #hero.mg .hcta{width:100%;max-width:none;padding:15px 20px;font-size:1.02rem}
  #hero.mg .hcta-nudge{right:8px;bottom:-24px}
  #hero.mg .hscrl{display:none}
  .mg-cat{--h:min(70vw,360px);--dx:calc(var(--w) * .66);position:relative;right:auto;bottom:auto;width:auto;margin-top:18px;padding:0 0 22px}
  .mg-deck{overflow:visible}
  .mg-info{padding:0 var(--mg-pad);justify-content:center;margin-top:14px}
  .mg-spec{flex-basis:100%;text-align:center;order:-1}
  .mg-num{display:none}
  #mgPrev{left:8px}
  #mgNext{right:8px}
  .mg-prog{margin:8px var(--mg-pad) 0}
  .mg-ck{left:12px;right:10px;bottom:11px}
  .mg-ck b{font-size:1.04rem}
  .mg-ck small{font-size:.6rem;letter-spacing:1px}
}
@media(max-width:640px) and (max-height:760px){
  #hero.mg .hs{display:none}
}

/* ── Movimiento reducido: sin autoplay ni desplazamientos ── */
@media (prefers-reduced-motion:reduce){
  .mg-layer img{animation:none;transform:none}
  .mg-stage{scale:1;translate:none}
  .mg-prog{display:none}
  .mg-cl{clip-path:none}
  .mg-up{opacity:1;translate:none}
  .mg-route{display:none}
  #services{clip-path:none}
  .mg-card,.mg-card img,.mg-ck{transition:none}
}

/* Reseñas: capturas reales de Google que llevan a la ficha */
#rt .rc-shot{padding:8px;display:block;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
#rt:has(.rc-shot){align-items:flex-start}
.rsl:has(.rc-shot){transition:height .35s ease;padding-bottom:0}
#rt .rc-shot::before,#rt .rc-shot::after{display:none}
#rt .rc-shot img{display:block;width:100%;height:auto}
#rt .rc-shot:hover{transform:translateY(-3px);box-shadow:var(--shl)}
.rCap{text-align:center;font-size:.8rem;color:var(--muted);margin:16px auto 0;max-width:560px}

/* Ubicación: el mapa de los videos, con las rutas que se dibujan al llegar */
.loc-map{background:#16211f;overflow:hidden}
.loc-map-a{position:absolute;inset:0;display:block}
.loc-map-a img,.loc-map-a svg{display:block;width:100%;height:100%;object-fit:cover}
.loc-map-osm{position:absolute;right:8px;bottom:6px;font-size:.66rem;color:rgba(255,255,255,.72);pointer-events:none}
@media(max-width:900px){.loc-map{min-height:0;aspect-ratio:1000/820}}
.mg-map .mg-ruta{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.5s cubic-bezier(.4,0,.2,1) calc(var(--i)*.35s + .2s)}
.mg-map .mg-pin{opacity:0;transition:opacity .4s ease calc(var(--i)*.35s + 1.2s)}
.mg-map .mg-pin-casa{transition-delay:0s}
.mg-map.on .mg-ruta{stroke-dashoffset:0}
.mg-map.on .mg-pin{opacity:1}

/* Héroe con fondo liso clarito: el texto ya no va sobre la foto desenfocada.
   Con .mg-solo (sin catálogo) sigue la foto de fondo con letra blanca. */
#hero.mg:not(.mg-solo){background:var(--mg-bg)!important;color:var(--mg-tx)}
#hero.mg:not(.mg-solo) .mg-stage,#hero.mg:not(.mg-solo) .ho{display:none}
#hero.mg:not(.mg-solo) .ht{color:var(--mg-tx);text-shadow:none}
#hero.mg:not(.mg-solo) .ht em{color:var(--mg-em)}
#hero.mg:not(.mg-solo) .hs{color:var(--mg-tx);opacity:1;font-weight:400}
#hero.mg:not(.mg-solo) .hbadge{background:#fff;border-color:rgba(0,0,0,.1);color:var(--mg-tx);backdrop-filter:none}
#hero.mg:not(.mg-solo) .hbadge .ico{color:var(--mg-em)}
#hero.mg:not(.mg-solo) .hoffer{background:#fff;border-color:rgba(0,0,0,.12);color:var(--mg-tx);backdrop-filter:none}
#hero.mg:not(.mg-solo) .hoffer:hover{background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.1)}
#hero.mg:not(.mg-solo) .hoffer b{color:#c2410c}
#hero.mg:not(.mg-solo) .hcta-nudge{color:var(--mg-tx)}
#hero.mg:not(.mg-solo) .hcta-nudge .ico{filter:drop-shadow(0 3px 6px rgba(255,255,255,.7))}
#hero.mg:not(.mg-solo) .hscrl{color:var(--mg-tx)}
#hero.mg:not(.mg-solo) .mg-cat{color:var(--mg-tx)}
#hero.mg:not(.mg-solo) .mg-card{box-shadow:0 18px 42px rgba(20,24,20,.24)}
#hero.mg:not(.mg-solo) .mg-card .mg-ck{color:#fff}
#hero.mg:not(.mg-solo) .mg-num{color:var(--mg-em)}
#hero.mg:not(.mg-solo) .mg-num small{color:var(--mg-tx)}
#hero.mg:not(.mg-solo) .mg-spec{opacity:1}
#hero.mg:not(.mg-solo) .mg-btn{background:#fff;border-color:var(--mg-li);color:var(--mg-li);backdrop-filter:none}
#hero.mg:not(.mg-solo) .mg-btn:hover{background:var(--mg-li);border-color:var(--mg-li);color:#fff}
#hero.mg:not(.mg-solo) .mg-seg span{background:rgba(0,0,0,.16)}
#hero.mg:not(.mg-solo) .mg-seg:hover span{background:rgba(0,0,0,.34)}
#hero.mg:not(.mg-solo) .mg-seg i{background:var(--mg-em)}
/* Arriba de todo el menú va sobre el fondo claro */
body:has(#hero.mg:not(.mg-solo)) #nav:not(.s) .nlinks a:not(.ncta){color:var(--mg-tx)}
body:has(#hero.mg:not(.mg-solo)) #nav:not(.s) .nl{color:var(--mg-tx)}
body:has(#hero.mg:not(.mg-solo)) #nav:not(.s) .hbg span{background:var(--mg-tx)}

/* Aviso de cookies y contenido bloqueado hasta aceptar (consent.js) */
#ckBanner{position:fixed;left:12px;right:12px;bottom:12px;z-index:10000;max-width:640px;margin:0 auto;padding:18px 20px;background:#fff;color:#2c2c2c;border:1px solid rgba(0,0,0,.12);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.25);font-family:Inter,system-ui,sans-serif}
#ckBanner .ck-title{margin:0 0 4px;font-size:1rem;font-weight:700;color:var(--p1)}
#ckBanner .ck-text{margin:0;font-size:.82rem;line-height:1.5;color:#444}
#ckBanner .ck-text a{color:var(--p1);text-decoration:underline}
#ckBanner .ck-actions{display:flex;gap:10px;margin-top:14px}
.ck-btn{min-height:44px;padding:10px 18px;border-radius:12px;font:600 .9rem Inter,system-ui,sans-serif;cursor:pointer;border:1.5px solid var(--p1)}
#ckBanner .ck-btn{flex:1}
.ck-no{background:#fff;color:var(--p1)}
.ck-yes{background:var(--p1);color:#fff}
.ck-embed{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--p1);overflow:hidden}
.ck-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.45)}
.ck-embed-in{position:relative;max-width:440px;padding:16px;text-align:center;color:#fff}
.ck-embed-in p{margin:0 0 12px;font-size:.88rem;line-height:1.45;color:#fff}
.ck-embed-in .ck-yes{background:#fff;color:var(--p1);border-color:#fff}
.ck-embed-lb{position:relative;inset:auto;width:min(90vw,640px);aspect-ratio:16/9;border-radius:12px}
.ck-thumb{width:100%;height:100%;min-height:90px;background:var(--p1)}
.fmap img{display:block;border-radius:9px;width:100%;height:175px;object-fit:cover;opacity:.92}
.mapmodal-img{display:block;width:100%;height:360px;object-fit:cover}
/* Las fotos de servicios adicionales son de stock: sacar esta leyenda al cambiarlas por propias */
.eximg::before{content:'Imagen ilustrativa';position:absolute;top:8px;right:8px;z-index:2;padding:2px 8px;border-radius:99px;background:rgba(0,0,0,.55);color:#fff;font-size:.66rem;font-weight:500}
