/* ============================================================
   StudioCarlota — hoja de estilos v7
   Paleta maestra: petróleo, alabastro, cashmere, cian, oro viejo, pizarra
   ============================================================ */
:root{
  --petroleo:#17353B; --petroleo-2:#112A2F; --petroleo-3:#20454C;
  --alabastro:#F8F7F4; --blanco:#FFFFFF;
  --cashmere:#D4CCC3; --cashmere-2:#EAE6E0; --cashmere-3:#F1EEE9;
  --cian:#178CA4; --cian-2:#136F82; --cian-3:#E3F1F4;
  /* Color corporativo StudioCarlota (#178CA4): logo, burger, selector de idioma, separadores del menú, «+» de los acordeones,
     botones < > de los carruseles, selector presencial/online y CTAs. Los títulos de acordeón van en oro viejo (--oro-2). */
  --logo:#178CA4; --logo-soft:rgba(23,140,164,.1);
  /* Un solo azul en toda la web: #178CA4 (--cian = --logo). El tono oscuro --cian-2 queda solo para el «hover» de los botones
     rellenos y para el texto de las etiquetas sobre fondo azul claro (horas del calendario, «45 min», favoritas, «Demo»). */
  --oro:#C5A880; --oro-2:#A98A5F; --pizarra:#1A272A; --gris:#5D696C;
  --serif:"Lora", Georgia, "Times New Roman", serif; --sans:"Montserrat", "Helvetica Neue", Arial, sans-serif;
  --max:1240px; --pad:clamp(20px, 5vw, 64px); --radius:6px;
  --shadow:0 10px 30px rgba(26,39,42,.06); --shadow-2:0 18px 40px rgba(26,39,42,.12);
  --sat:env(safe-area-inset-top, 0px); --sab:env(safe-area-inset-bottom, 0px);
  box-sizing:border-box;
}
*,*::before,*::after{box-sizing:inherit;min-width:0}
/* overflow-x solo en html: si también va en body, position:sticky de la cabecera deja de funcionar */
html{scroll-behavior:smooth;scroll-padding-top:100px;overflow-x:hidden;width:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.no-scroll{overflow:hidden}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none !important;transition:none !important}}
body{margin:0;width:100%;max-width:100%;position:relative;background:var(--alabastro);color:var(--pizarra);font-family:var(--sans);font-weight:400;font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}
input,textarea,select{-webkit-user-select:text;user-select:text}
img{max-width:100%;display:block;-webkit-user-drag:none}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0;color:var(--pizarra);overflow-wrap:break-word}
h1{font-size:clamp(2.2rem, 4.4vw, 3.7rem);letter-spacing:-.01em}
h2{font-size:clamp(1.85rem, 3.3vw, 2.6rem);letter-spacing:-.01em}
h3{font-size:1.35rem} h4{font-size:1.1rem}
p{margin:0 0 1em} ul{margin:0;padding-left:1.2em}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--cian);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--cian);color:#fff;padding:.5rem 1rem;z-index:200}
.skip:focus{left:12px;top:12px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.wrap-narrow{width:100%;max-width:860px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
section{padding:clamp(56px, 8vw, 110px) 0;overflow-x:clip;width:100%}
section.tight{padding:clamp(36px, 4vw, 56px) 0}
.eyebrow{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--oro-2);display:block;margin-bottom:.9rem}
.dark .eyebrow{color:var(--oro)}
.lead{font-size:1.1rem;color:var(--gris);max-width:62ch;font-weight:300}
.dark .lead{color:var(--cashmere)}
.center{text-align:center} .center .lead{margin-left:auto;margin-right:auto}
.hair{height:2px;width:56px;background:var(--oro);margin:1.2rem 0 1.6rem;border-radius:2px} .center .hair{margin-left:auto;margin-right:auto}
.muted{color:var(--gris)} .small{font-size:.88rem}
.dark{background:var(--petroleo);color:var(--alabastro)} .dark h1,.dark h2,.dark h3,.dark h4{color:var(--alabastro)}
.soft{background:var(--cashmere-2)} .white{background:var(--blanco)}
.sub-h{font-family:var(--serif);font-size:clamp(1.4rem, 2.2vw, 1.8rem);margin:0 0 1.2rem;color:var(--oro-2)}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.5rem;border-radius:4px;font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent;transition:background .25s,color .25s,border-color .25s,transform .2s,box-shadow .25s;white-space:nowrap;line-height:1.2}
.btn svg{width:16px;height:16px;flex:none}
svg.ext{width:.85em;height:.85em;vertical-align:-.08em;margin-left:.15em;flex:none}
.btn-primary{background:var(--cian);color:#fff;border-color:var(--cian)}
.btn-primary:hover{background:var(--cian-2);border-color:var(--cian-2);transform:translateY(-1px);box-shadow:0 8px 20px rgba(23,140,164,.25)}
.btn-dark{background:var(--petroleo);color:var(--alabastro);border-color:var(--petroleo)} .btn-dark:hover{background:var(--petroleo-3)}
.btn-gold{background:var(--oro);color:var(--petroleo);border-color:var(--oro)} .btn-gold:hover{background:#D5BB95}
.btn-line{border-color:var(--cian);color:var(--cian);background:transparent}
.btn-line:hover{background:var(--cian);color:#fff}
.dark .btn-line{border-color:var(--cian);color:#9FD9E6} .dark .btn-line:hover{background:var(--cian);color:#fff}
.hero .btn-line,.bridge .btn-line{border:1.5px solid var(--oro);color:#fff;background:rgba(17,42,47,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)} .hero .btn-line:hover,.bridge .btn-line:hover{background:var(--oro);color:var(--petroleo-2)}
/* CTA «¿Buscas música para un evento de empresa? / Servicios a empresas» (cabecera de Eventos únicos):
   dos líneas centradas, la misma altura que los otros dos botones; en escritorio, en su misma línea y a la derecha */
.hero .btn-row.hero-ctas{align-items:stretch}
.btn.cta-biz{flex-direction:column;gap:.2rem;white-space:normal;text-align:center;font-size:.64rem;line-height:1.25;letter-spacing:.07em;padding:.45rem 1.2rem;color:#fff;background:rgba(17,42,47,.82);border:1px solid rgba(197,168,128,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.btn.cta-biz .hl{color:var(--logo)}
.btn.cta-biz:hover{border-color:var(--oro);background:rgba(17,42,47,.95)}
@media (min-width:960px){.hero-ctas .cta-biz{margin-left:auto}}
@media (max-width:760px){.hero .btn-row{display:grid;grid-template-columns:minmax(0,max-content);justify-content:start;gap:.7rem}.hero .btn-row .btn{min-height:3.25rem}.btn.cta-biz{font-size:.58rem;padding:.4rem .8rem}}
@media (max-width:359px){.btn.cta-biz{font-size:.54rem;letter-spacing:.04em;padding:.35rem .6rem}}
.hero .link.boxed .hl{color:var(--logo)}
.hero .link.boxed{color:#fff;background:rgba(17,42,47,.82);border:1px solid rgba(197,168,128,.7);border-radius:4px;padding:.55rem .9rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)} .hero .link.boxed::after{display:none}
.btn-ghost{color:var(--gris)} .btn-ghost:hover{color:var(--pizarra)}
.btn-sm{padding:.6rem 1rem;font-size:.74rem}
.btn:disabled{opacity:.45;pointer-events:none}
.link{color:var(--cian);font-weight:600;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.4rem}
.link::after{content:"";width:14px;height:1px;background:currentColor;transition:width .25s} .link:hover::after{width:26px}
.dark .link{color:var(--oro)}
.btn-row{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}

/* ---------- Banner promocional ---------- */
.promo{background:var(--petroleo-2);color:var(--alabastro);font-size:.8rem;letter-spacing:.04em;display:none;position:relative;z-index:101;border-bottom:1px solid rgba(197,168,128,.25)}
.promo.show{display:block}
.promo .wrap{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:36px;padding-top:.35rem;padding-bottom:.35rem;flex-wrap:wrap;text-align:center;padding-right:44px;padding-left:44px}
.promo .tag{color:var(--oro);text-transform:uppercase;font-weight:600;font-size:.7rem;letter-spacing:.14em}
.promo a.cta{color:var(--logo);text-decoration:underline;text-underline-offset:3px;font-weight:600} .promo a.cta:hover{color:#fff}
@media (max-width:640px){.promo{font-size:.72rem}.promo .wrap{min-height:30px;padding-top:.25rem;padding-bottom:.25rem;gap:.35rem}.promo .tag{font-size:.62rem}.promo .close{width:28px;height:28px;right:6px}}
.promo .close{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:32px;height:32px;color:var(--cashmere);font-size:1.3rem;line-height:1}

/* ---------- Cabecera (petróleo) ---------- */
#site-header{position:sticky;top:0;z-index:100}
.header{background:var(--petroleo);border-bottom:1px solid rgba(197,168,128,.18)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;gap:1.5rem}
.logo{display:flex;align-items:center;line-height:0}
/* El PNG del logo lleva arriba el palo de la corchea: el centro visual de las letras está un 9 % por debajo del centro de la imagen.
   Se sube ese 9 % para que el centro de las letras coincida con el del selector de idioma (escritorio) y el del burger (móvil). */
.logo img,.drawer-logo img{transform:translateY(-9%)}
.logo img{height:45px;width:auto}
.nav{display:flex;gap:1.7rem;align-items:center}
.nav a{font-size:.82rem;font-weight:500;letter-spacing:.02em;color:var(--cashmere);padding:.4rem 0;position:relative;white-space:nowrap;line-height:1.2}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--cian);transition:right .25s}
.nav a:hover::after,.nav a.active::after{right:0}
.nav a:hover,.nav a.active{color:var(--alabastro)}
.header-right{display:flex;align-items:center;gap:.9rem}
.lang{display:inline-flex;border:1px solid rgba(248,247,244,.3);border-radius:999px;overflow:hidden;font-size:.7rem;letter-spacing:.08em;font-weight:600}
.lang button{padding:.4rem .7rem;color:var(--cashmere)}
.lang button[aria-pressed="true"]{background:var(--logo);color:#fff}
.burger{display:none;width:48px;height:48px;align-items:center;justify-content:center;border-radius:8px;margin-right:-8px;line-height:0}
.burger img{width:34px;height:34px;object-fit:contain;display:block}
/* Menú móvil: la X arriba a la derecha; el logo queda centrado entre la X y el primer enlace (filas 1 y 3 iguales) */
.drawer{position:fixed;inset:0;background:var(--petroleo);color:var(--alabastro);z-index:250;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(14px,1fr) auto minmax(14px,1fr) auto minmax(20px,2fr);padding:calc(60px + var(--sat)) var(--pad) calc(24px + var(--sab));visibility:hidden;opacity:0;transition:opacity .25s,visibility .25s;overflow-y:auto;overscroll-behavior:contain}
.drawer.open{visibility:visible;opacity:1}
.drawer-close{position:absolute;top:calc(14px + var(--sat));right:14px;width:46px;height:46px;border-radius:50%;border:1px solid rgba(248,247,244,.3);color:var(--alabastro);font-size:1.7rem;line-height:1;display:grid;place-items:center}
.drawer-logo{grid-row:2;justify-self:start;display:block;line-height:0} .drawer-logo img{height:42px;width:auto}
.drawer-body{grid-row:4;min-width:0}
.drawer-links{display:flex;flex-direction:column}
.drawer-links a{font-family:var(--serif);font-size:1.35rem;padding:.6rem 0;border-bottom:1px solid var(--logo);color:var(--alabastro)}
.drawer-links a:first-child{border-top:1px solid var(--logo)}
.drawer-links a.active{color:var(--oro)}
.drawer .lang{display:flex;width:max-content;margin-top:1.4rem;font-size:.8rem}
.drawer .lang button{padding:.55rem 1rem}
@media (max-width:1060px){.nav,.header .lang{display:none}.burger{display:inline-flex}.header .wrap{height:64px}.logo img{height:34px}}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--petroleo);color:var(--alabastro);overflow:hidden;padding:clamp(52px, 7vw, 92px) 0 clamp(52px, 7vw, 84px)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem, 5vw, 5rem);align-items:center}
.hero h1{color:var(--alabastro)} .hero .lead{color:var(--cashmere);margin:1.4rem 0 1.8rem}
.hero-media{position:relative}
.hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.hero-media::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid rgba(197,168,128,.5);border-radius:var(--radius);pointer-events:none}
.hero-media .sign{position:absolute;right:18px;bottom:18px;width:clamp(110px, 30%, 160px);filter:drop-shadow(0 4px 10px rgba(0,0,0,.6)) brightness(1.15)}
.hero.compact .wrap{grid-template-columns:1.2fr .8fr} .hero.compact .hero-media img{aspect-ratio:4/3}
.hero .chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem}
.chip{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;border:1px solid rgba(197,168,128,.5);color:var(--oro);border-radius:999px;padding:.35rem .75rem}
.hero-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center 30%;opacity:.3;filter:saturate(.7)}
.hero-bg + .wrap{position:relative;z-index:1}
.hero.banner{min-height:60vh;display:flex;align-items:flex-end} .hero.banner .wrap{display:block} .hero.banner .lead{max-width:62ch}
.hero-bg.has-mobile{background-image:var(--bg-desk)}
@media (max-width:900px){.hero .wrap,.hero.compact .wrap{grid-template-columns:1fr}.hero-media{max-width:460px;margin-right:18px}}
/* Navegadores antiguos sin aspect-ratio (iOS 14 o anterior): altura equivalente para las fotos de cabecera en móvil */
@media (max-width:760px){@supports not (aspect-ratio:1 / 1){.hero.banner .hero-bg{height:62.5vw}}}
@media (max-width:760px) and (max-aspect-ratio:1/1){@supports not (aspect-ratio:1 / 1){.hero.banner .hero-bg.has-mobile{height:160vw}}}
@media (max-width:760px) and (max-aspect-ratio:1/1){.hero.banner .hero-bg.has-mobile{background-image:var(--bg-mob);aspect-ratio:var(--bg-mob-ratio, 5 / 8);background-position:center top;filter:none}.hero.banner .hero-bg.has-mobile::after{background:linear-gradient(180deg,rgba(23,53,59,0) 80%,var(--petroleo) 100%)}}
@media (max-width:760px){.hero.banner{min-height:0;display:block;padding-top:0}.hero.banner .hero-bg{position:relative;inset:auto;aspect-ratio:16/10;opacity:1;filter:saturate(.9);background-position:center 35%;margin-bottom:-1px}.hero.banner .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,53,59,0) 55%,var(--petroleo) 100%)}.hero.banner .wrap{padding-top:1.4rem}.hero.banner[style]{min-height:0 !important}}

/* ---------- Valoraciones ---------- */
.ratings-hook{font-family:var(--serif);font-style:italic;color:var(--oro);font-size:1.05rem;margin:1.8rem 0 .6rem}
.light .ratings-hook{color:var(--oro-2)}
.ratings{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
.rating{display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:rgba(248,247,244,.06);border:1px solid rgba(248,247,244,.14);border-radius:var(--radius);padding:.7rem 1rem;transition:border-color .25s,background .25s;min-height:58px}
a.rating:hover{border-color:rgba(197,168,128,.6);background:rgba(248,247,244,.09)}
.rating img{height:22px;width:auto;max-width:96px;object-fit:contain;filter:brightness(0) invert(1);opacity:.92}
.rating img.big{height:39px;max-width:150px}
.light .rating img.color{filter:none;opacity:1}
.rating .stars{color:var(--oro);letter-spacing:.06em;font-size:.95rem;line-height:1;flex:none}
.rating .r-name{font-family:var(--serif);font-size:1.05rem;color:var(--alabastro)}
.light .ratings{grid-template-columns:repeat(4,1fr)}
.light .rating{background:#fff;border-color:var(--cashmere)} .light .rating img{filter:none} .light .rating .r-name{color:var(--pizarra)}
@media (max-width:900px){.light .ratings{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.ratings,.light .ratings{grid-template-columns:1fr}}

/* ---------- Marquee ---------- */
.marquee{overflow:hidden;padding:.4rem 0;mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);-webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent)}
.marquee-track{display:flex;width:max-content;gap:3rem;align-items:center;animation:marquee 26s linear infinite;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.paused .marquee-track{animation-play-state:paused}
.marquee.reverse .marquee-track{animation-direction:reverse}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee img{height:46px;width:auto;max-width:180px;object-fit:contain;filter:grayscale(1) brightness(.35) contrast(1.1);opacity:.72;transition:filter .3s,opacity .3s}
.marquee img:hover{filter:none;opacity:1}
.dark .marquee img{filter:grayscale(1) brightness(10);opacity:.75} .dark .marquee img:hover{filter:none;opacity:1}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Pilares ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.pillar{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid rgba(212,204,195,.5);border-top:4px solid var(--petroleo);box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s,border-color .3s;overflow:hidden}
.pillar:hover{transform:translateY(-6px);box-shadow:var(--shadow-2);border-top-color:var(--oro)}
.pillar .img{aspect-ratio:16/10;background:var(--cashmere-2) center/cover}
.pillar .body{padding:1.8rem 1.7rem 1.6rem;display:flex;flex-direction:column;flex:1}
.pillar .num{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--oro);display:block;margin-bottom:.6rem}
.pillar h3{font-size:1.45rem;margin-bottom:.6rem} .pillar p{color:var(--gris);font-size:.93rem;flex:1} .pillar .link{margin-top:.8rem}
@media (max-width:900px){.pillars{grid-template-columns:1fr}}

/* ---------- Manifiesto ---------- */
.manifesto .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem, 6vw, 6rem);align-items:center}
.manifesto blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.25rem, 2.2vw, 1.6rem);line-height:1.45;font-style:italic;color:var(--alabastro)}
.manifesto .sign{width:170px;margin-top:1.4rem}
@media (max-width:900px){.manifesto .wrap{grid-template-columns:1fr}}

/* ---------- Tarjetas volteables (sin alturas fijas: las dos caras apilan en grid) ---------- */
.flips{display:grid;grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));gap:1rem;align-items:stretch}
.flip{perspective:1200px;cursor:pointer;display:flex}
.flip-inner{display:grid;flex:1;transition:transform .7s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d;min-height:250px}
.flips .flip-inner{min-height:250px} @media (max-width:760px){.flip-inner,.flips .flip-inner{min-height:0}}
.flips.five{display:flex;flex-wrap:wrap;justify-content:center} .flips.five .flip{flex:0 1 calc(33.333% - .67rem);min-width:210px} @media (max-width:760px){.flips.five .flip{flex:1 1 100%}}
.flip-face{grid-area:1/1;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius);padding:1.4rem;display:flex;flex-direction:column}
.flip-front{background:#fff;border:1px solid rgba(212,204,195,.6);box-shadow:var(--shadow);justify-content:space-between}
.flip-front .ico{width:42px;height:42px;border-radius:50%;background:var(--cian-3);display:grid;place-items:center;margin-bottom:1.6rem}
.flip-front .ico svg{width:20px;height:20px;stroke:var(--cian);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* Tarjetas giratorias: el círculo de girar queda centrado justo a la altura del hueco entre el título y el subtítulo */
.flip-front h4{font-size:1.15rem;padding-right:calc(34px + .7rem)}
.flip-front .sub{position:relative;margin-top:.45rem;padding-right:calc(34px + .7rem)}
.flip-front .sub small{display:block;color:var(--oro-2);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.flip-front .turn{position:absolute;right:0;top:-.225rem;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:1.5px solid var(--oro);color:var(--oro);display:grid;place-items:center;font-size:1.1rem;line-height:1}
.flip-back{background:var(--petroleo);color:var(--alabastro);transform:rotateY(180deg);font-size:.9rem;justify-content:center}
.flip-back h4{color:var(--oro);font-size:1rem;margin-bottom:.4rem} .flip-back p{margin:0}
.dark .flip-front{background:var(--petroleo-3);border-color:rgba(248,247,244,.12);color:var(--alabastro)} .dark .flip-front h4{color:var(--alabastro)}
.dark .flip-front .ico{background:rgba(23,140,164,.2)} .dark .flip-back{background:var(--alabastro);color:var(--pizarra)} .dark .flip-back h4{color:var(--oro-2)}
@media (hover:hover){.flip:hover .flip-inner{transform:rotateY(180deg)}}
.flip.flipped .flip-inner{transform:rotateY(180deg)}

/* ---------- Carruseles y tarjetas de medios ---------- */
.carousel{position:relative}
.rail{display:flex;gap:1rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.4rem .2rem 1rem;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.rail > *{scroll-snap-align:start;flex:0 0 min(84vw, 380px)}
/* «<» alineado con el borde izquierdo del carrusel y «>» con el derecho (la primera y la última tarjeta visibles) */
.rail-nav{display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.8rem}
.rail-nav button{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--logo);display:grid;place-items:center;background:#fff;transition:background .2s}
.rail-nav button:hover{background:var(--logo-soft)}
.rail-nav svg{width:18px;height:18px;stroke:var(--logo);fill:none;stroke-width:1.8}
.dark .rail-nav button{background:transparent;border-color:var(--logo)} .dark .rail-nav svg{stroke:var(--logo)}
.mcard{text-align:left;display:block;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid rgba(212,204,195,.6);box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s;padding:0}
.mcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.mcard .thumb{position:relative;aspect-ratio:16/9;background:var(--petroleo);overflow:hidden}
.mcard .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mcard.vert .thumb{background:var(--petroleo-2)} .mcard.vert .thumb img{object-fit:contain}
.mcard .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(14,34,38,.55))}
.mcard .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.8);background:rgba(14,34,38,.45);display:grid;place-items:center;z-index:1;transition:background .2s,transform .2s}
.mcard .play svg{fill:#fff;margin-left:3px}
.mcard:hover .play{background:var(--cian);transform:translate(-50%,-50%) scale(1.06)}
.mcard .body{padding:.9rem 1.1rem 1rem} .mcard h4{font-size:1rem;margin-bottom:.15rem} .mcard p{font-size:.8rem;color:var(--gris);margin:0}
.dark .mcard{background:rgba(248,247,244,.05);border-color:rgba(248,247,244,.12)} .dark .mcard h4{color:var(--alabastro)} .dark .mcard p{color:var(--cashmere)}
.yt-more{display:inline-flex;align-items:center;gap:.7rem;margin-top:1rem;font-weight:500;color:var(--pizarra)}
.yt-more img{height:22px;width:auto} .yt-more:hover{color:var(--cian)}
.more-row{display:flex;gap:1rem 2rem;flex-wrap:wrap;align-items:center;margin-top:1rem} .more-row .yt-more{margin-top:0}

/* ---------- Testimonios ---------- */
.testimonial{background:#fff;border:1px solid rgba(212,204,195,.6);border-radius:var(--radius);padding:1.5rem 1.5rem 1.3rem;display:flex;flex-direction:column;gap:.9rem;box-shadow:var(--shadow)}
.testimonial .stars{color:var(--oro);letter-spacing:.1em;font-size:.9rem}
.testimonial p{font-family:var(--serif);font-style:italic;font-size:.98rem;line-height:1.55;flex:1;margin:0}
.testimonial footer{font-size:.8rem;color:var(--gris)} .testimonial footer b{display:block;color:var(--pizarra);font-weight:600;font-size:.82rem}
.testimonial .tagline{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cian);font-weight:600}
.dark .testimonial{background:rgba(248,247,244,.06);border-color:rgba(248,247,244,.12)} .dark .testimonial p{color:var(--alabastro)} .dark .testimonial footer{color:var(--cashmere)} .dark .testimonial footer b{color:var(--alabastro)}

/* ---------- Dos columnas ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem, 6vw, 5rem);align-items:center}
.split.rev > :first-child{order:2}
.photo{border-radius:var(--radius);box-shadow:var(--shadow-2);aspect-ratio:4/3;object-fit:cover;width:100%}
.photo.tall{aspect-ratio:4/5} .photo.natural{aspect-ratio:auto;object-fit:contain}
.framed{position:relative} .framed::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid rgba(197,168,128,.6);border-radius:var(--radius);z-index:-1}
@media (max-width:900px){.split{grid-template-columns:1fr}.split.rev > :first-child{order:0}.framed{margin-right:14px;margin-bottom:14px}}

/* ---------- Listas, grids, cards, pasos ---------- */
.checks{list-style:none;padding:0;margin:1.2rem 0;display:grid;gap:.7rem}
.checks li{display:flex;gap:.8rem;align-items:flex-start;font-size:.95rem}
.checks li::before{content:"";flex:none;width:18px;height:18px;margin-top:.2rem;border-radius:50%;background:var(--cian-3) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23178CA4' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/11px no-repeat}
.dark .checks li::before{background-color:rgba(23,140,164,.25)}
.two-col{columns:2;column-gap:2.5rem} .two-col li{break-inside:avoid} @media (max-width:760px){.two-col{columns:1}}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem} .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem} .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
@media (max-width:980px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}} @media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid rgba(212,204,195,.6);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.card .ico{width:44px;height:44px;border-radius:50%;background:var(--cian-3);display:grid;place-items:center;margin-bottom:1rem}
.card .ico svg{width:20px;height:20px;stroke:var(--cian);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.card h3{font-size:1.2rem;margin-bottom:.5rem} .card p{font-size:.92rem;color:var(--gris);margin:0}
.card.img-card{padding:0;overflow:hidden} .card.img-card .img{aspect-ratio:16/10;background:var(--cashmere-2) center/cover} .card.img-card .body{padding:1.3rem 1.4rem 1.4rem}
.dark .card{background:rgba(248,247,244,.05);border-color:rgba(248,247,244,.12)} .dark .card h3{color:var(--alabastro)} .dark .card p{color:var(--cashmere)} .dark .card .ico{background:rgba(23,140,164,.22)}
.flags{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.4rem} .flags img{width:30px;height:20px;object-fit:cover;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3)}
@media (min-width:641px){.flags.seven{display:grid;grid-template-columns:repeat(4,30px);justify-content:center;gap:.5rem}.flags.seven img:nth-child(n+5){position:relative;left:19px}}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;counter-reset:step}
.step{padding:1.6rem 1.5rem 1.5rem;background:#fff;border:1px solid rgba(212,204,195,.6);border-radius:var(--radius)}
.step::before{counter-increment:step;content:counter(step, decimal-leading-zero) ".";font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--oro);display:block;margin-bottom:.5rem}
.step h3{font-size:1.15rem;margin-bottom:.5rem} .step p{font-size:.92rem;color:var(--gris);margin:0}
@media (max-width:900px){.steps{grid-template-columns:1fr}}

/* ---------- Acordeón (solo uno abierto) ---------- */
/* Líneas divisorias de todos los acordeones en el color corporativo (títulos en oro viejo) */
.acc{border-top:1px solid var(--logo)} .acc details{border-bottom:1px solid var(--logo)}
.acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 0;font-family:var(--serif);font-size:1.1rem;color:var(--oro-2);-webkit-tap-highlight-color:transparent}
.acc summary::-webkit-details-marker,.cred summary::-webkit-details-marker{display:none} .acc summary::marker,.cred summary::marker{content:""}
.plus{flex:none;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--logo);display:grid;place-items:center;transition:transform .3s;background:transparent}
.plus::before{content:"+";font-family:var(--sans);font-weight:400;font-size:1.35rem;line-height:1;color:var(--logo)}
details[open] > summary .plus{transform:rotate(45deg)}
.acc .acc-body{padding:0 0 1.2rem;color:var(--gris);font-size:.95rem;max-width:72ch}
.dark .acc,.dark .acc details{border-color:var(--logo)} .dark .acc summary{color:var(--oro)} .dark .acc .acc-body{color:var(--cashmere)}

/* ---------- Pestañas / saltos ---------- */
.tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1.4rem}
.tabs button{padding:.6rem 1.05rem;border-radius:999px;border:1px solid var(--cashmere);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--gris);transition:all .2s;background:#fff}
.tabs button:hover{border-color:var(--cian);color:var(--cian)}
.tabs button[aria-selected="true"]{background:var(--petroleo);border-color:var(--petroleo);color:var(--alabastro)}
.tabpanel[hidden]{display:none}

/* ---------- Precios ---------- */
.price-toggle{display:inline-flex;border:1px solid var(--cashmere);border-radius:999px;overflow:hidden;background:#fff;margin-bottom:1.6rem}
.price-toggle button{padding:.6rem 1.2rem;font-size:.76rem;white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--gris)}
.price-toggle button[aria-pressed="true"]{background:var(--cian);color:#fff}
.price-wrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow)}
.price-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid rgba(212,204,195,.6);table-layout:fixed}
.price-table th,.price-table td{padding:1rem 1.1rem;text-align:left;border-bottom:1px solid var(--cashmere-2);vertical-align:top}
.price-table thead th{background:var(--petroleo);color:var(--alabastro);font-weight:500;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.price-table thead th small{text-transform:none;letter-spacing:0;color:var(--cashmere);font-weight:400;font-size:.72rem}
.price-table tbody th{font-family:var(--serif);font-weight:500;font-size:1.05rem;color:var(--pizarra)}
.price-table td b{font-size:1.12rem;color:var(--pizarra);font-weight:600;display:block} .price-table td span{font-size:.76rem;color:var(--gris)} .price-table td .dash{color:var(--cashmere);font-size:1.2rem}
.price-table tbody tr{cursor:pointer;transition:background .2s} .price-table tbody tr:hover td,.price-table tbody tr:hover th{background:var(--cashmere-3)}
.price-table tbody tr.active td,.price-table tbody tr.active th{background:var(--cashmere-2)} .price-table tbody tr.active td b{color:var(--cian)}
.price-note{font-size:.82rem;color:var(--gris);margin-top:1rem} .price-note b{font-weight:600;color:var(--pizarra)}
/* Aviso de pago a plazos con Klarna, bajo los logos de pago del carrito */
.summary .klarna-note{margin:.7rem 0 0;text-align:center} .summary .klarna-note b{font-weight:600;color:var(--alabastro)}
.price-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:1.4rem}
.price-card{background:#fff;border:1px solid rgba(212,204,195,.6);border-radius:var(--radius);padding:1.4rem;box-shadow:var(--shadow)}
.price-card h4{font-size:1rem;margin-bottom:.3rem} .price-card .amount{font-size:1.5rem;margin:.3rem 0}
/* Mismo tipo de letra en los precios de la tabla y en los de las tarjetas */
.price-table td b,.price-card .amount{font-family:var(--sans);font-weight:600;color:var(--pizarra);letter-spacing:0;font-variant-numeric:lining-nums} .price-card .amount small{font-weight:400;font-size:.76rem;color:var(--gris)} .price-card p{font-size:.86rem;color:var(--gris);margin:0}
.price-cards{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.price-cards{grid-template-columns:1fr}}
.price-table td .per{white-space:nowrap}
@media (max-width:640px){.price-toggle button{padding:.55rem .8rem;font-size:.68rem}.price-table th,.price-table td{padding:.7rem .45rem}.price-table thead th{font-size:.62rem;letter-spacing:.04em}.price-table thead th small{display:block;font-size:.6rem}.price-table tbody th{font-size:.9rem}.price-table td b{font-size:.92rem}.price-table td span{font-size:.64rem;display:block;line-height:1.2}.price-card .amount{font-size:1.2rem}.price-table thead th:first-child,.price-table tbody th{width:22%}}
@media (max-width:359px){.price-toggle button{padding:.5rem .6rem;font-size:.6rem;letter-spacing:.03em}.price-table thead th{letter-spacing:0}.price-table th,.price-table td{padding:.65rem .35rem}.price-table thead th:first-child,.price-table tbody th{width:25%}}

/* ---------- Reserva ---------- */
.booking{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:start}
.panel{background:#fff;border:1px solid rgba(212,204,195,.6);border-radius:var(--radius);padding:1.4rem;box-shadow:var(--shadow);min-width:0}
.panel h3{font-size:1.15rem;margin-bottom:1rem;display:flex;align-items:center;gap:.6rem} .panel h3 .n{font-family:var(--serif);font-style:italic;color:var(--oro);font-size:1.3rem}
.panel .hint-text{font-size:.84rem;color:var(--gris);margin:-.5rem 0 1rem}
.field{display:grid;gap:.35rem;margin-bottom:.9rem;min-width:0} .field[hidden]{display:none}
.field label{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--gris)}
input,select,textarea{width:100%;max-width:100%;background:#fff;border:1px solid var(--cashmere);border-radius:4px;padding:.8rem .9rem;font:inherit;font-size:.95rem;color:var(--pizarra)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cian);box-shadow:0 0 0 3px rgba(23,140,164,.15)}
textarea{min-height:120px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem} @media (max-width:640px){.row{grid-template-columns:1fr}}
.seg{display:flex;gap:.4rem;flex-wrap:wrap}
.seg button{padding:.5rem .85rem;border:1px solid var(--cashmere);border-radius:999px;font-size:.78rem;font-weight:500;background:#fff;color:var(--pizarra);transition:all .2s}
.seg button[aria-pressed="true"]{background:var(--petroleo);color:var(--alabastro);border-color:var(--petroleo)} .seg button:hover{border-color:var(--cian)} .seg button.off{opacity:.35;pointer-events:none}
.summary{background:var(--petroleo);color:var(--alabastro);border-radius:var(--radius);padding:1.4rem 1.5rem;position:sticky;top:96px;min-width:0}
.summary h3{color:var(--alabastro);font-size:1.05rem;margin:.4rem 0 .6rem}
.summary .cur{background:rgba(248,247,244,.06);border:1px solid rgba(248,247,244,.14);border-radius:6px;padding:.8rem .9rem;font-size:.86rem}
.summary .cur small{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--oro);margin-bottom:.2rem}
.summary .cur-slot{margin-top:.3rem;color:var(--cashmere)} .summary .cur-slot .warn{color:var(--oro)} .summary .cur-price{margin-top:.3rem;font-family:var(--serif);font-size:1.3rem} .summary .cur-price small{font-family:var(--sans);font-size:.74rem;color:var(--cashmere)}
.summary .cart{list-style:none;padding:0;margin:0;display:grid;gap:.5rem;font-size:.84rem}
.summary .cart li{display:grid;grid-template-columns:1fr auto auto;gap:.6rem;align-items:center;border-bottom:1px solid rgba(248,247,244,.12);padding-bottom:.5rem}
.summary .cart li b{font-weight:500;display:block} .summary .cart li small{color:var(--cashmere);display:block}
.summary .cart li button{width:24px;height:24px;border-radius:50%;border:1px solid rgba(248,247,244,.3);color:var(--cashmere);line-height:1}
.summary .total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid rgba(248,247,244,.2);margin-top:1rem;padding-top:1rem}
.summary .total b{font-family:var(--serif);font-size:1.9rem;font-weight:500;color:var(--oro)} .summary .total small{color:var(--cashmere);font-size:.74rem}
.summary .btn{width:100%;margin-top:1rem}
.summary .btn-line{color:var(--alabastro);border-color:rgba(248,247,244,.4)} .summary .btn-line:hover{background:var(--cian);border-color:var(--cian)}
.paylogos{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:.9rem}
.paylogos img{height:24px;width:auto;max-width:72px;object-fit:contain;background:#fff;border-radius:4px;padding:3px 6px}
.summary .fine{font-size:.72rem;color:var(--cashmere);margin:.8rem 0 0;text-align:center}
@media (max-width:980px){.booking{grid-template-columns:1fr}.summary{position:static}}
.cal{border:1px solid var(--cashmere);border-radius:var(--radius);overflow:hidden;background:#fff}
.cal-head{display:flex;align-items:center;justify-content:space-between;padding:.7rem .8rem;background:var(--cashmere-3);border-bottom:1px solid var(--cashmere)}
.cal-head b{font-family:var(--serif);font-weight:500;font-size:.95rem;flex:1;text-align:center}
.cal-head button{width:32px;height:32px;border-radius:50%;border:1px solid var(--cashmere);display:grid;place-items:center;background:#fff} .cal-head svg{width:14px;height:14px;stroke:var(--pizarra);fill:none;stroke-width:1.8}
.cal-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))} .cal-grid.d6{grid-template-columns:repeat(6,minmax(0,1fr))} .cal-grid.d7{grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-day{border-right:1px solid var(--cashmere-2);padding:.5rem .3rem;min-width:0} .cal-day:last-child{border-right:0}
.cal-day h5{margin:0 0 .4rem;text-align:center;font-family:var(--sans);font-weight:600;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gris)}
.cal-day h5 span{display:block;font-family:var(--serif);font-size:1.05rem;color:var(--pizarra);letter-spacing:0;text-transform:none;font-weight:500}
.slot{display:block;width:100%;margin:.25rem 0;padding:.4rem .1rem;border-radius:4px;font-size:.72rem;font-weight:500;border:1px solid var(--cian-3);background:var(--cian-3);color:var(--cian-2);transition:all .2s}
.slot:hover{background:var(--cian);color:#fff;border-color:var(--cian)} .slot.selected{background:var(--petroleo);border-color:var(--petroleo);color:var(--alabastro)}
.slot.busy{background:transparent;border-color:var(--cashmere-2);color:var(--cashmere);cursor:default;text-decoration:line-through}
.cal-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.72rem;color:var(--gris);padding:.6rem .8rem;border-top:1px solid var(--cashmere-2);align-items:center}
.cal-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem;vertical-align:middle}
.cal-legend .pill{margin-left:auto} .cal-legend .src{font-size:.66rem;color:var(--gris);opacity:.8}
@media (max-width:640px){.cal-grid,.cal-grid.d6{grid-template-columns:repeat(3,minmax(0,1fr))}.cal-grid.d7{grid-template-columns:repeat(4,minmax(0,1fr))}.cal-day:nth-child(n+4){border-top:1px solid var(--cashmere-2)}.cal-grid.d6 .cal-day:nth-child(3n){border-right:0}.cal-grid.d7 .cal-day:nth-child(4){border-right:0;border-top:0}}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}} .shake{animation:shake .5s}

/* ---------- Checkout ---------- */
dialog{border:0;padding:0;background:transparent;max-width:min(560px, 94vw);width:100%;color:var(--pizarra)}
dialog::backdrop{background:rgba(14,34,38,.74);backdrop-filter:blur(4px)}
.checkout{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.4);max-height:90vh;overflow-y:auto}
.co-head{background:var(--petroleo);color:var(--alabastro);padding:1.1rem 1.4rem;display:flex;justify-content:space-between;align-items:center}
.co-head b{font-family:var(--serif);font-weight:500;font-size:1.1rem} .co-head small{display:block;color:var(--cashmere);font-size:.74rem} .co-head button{color:var(--cashmere);font-size:1.4rem;line-height:1}
.co-body{padding:1.3rem 1.4rem}
.co-lines{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.5rem;font-size:.86rem}
.co-lines li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--cashmere-2);padding-bottom:.5rem} .co-lines small{display:block;color:var(--gris)}
.co-express{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-bottom:1rem}
.co-express button{border:1px solid var(--cashmere);border-radius:6px;padding:.75rem;font-weight:600;font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s}
.co-express .apple{background:#000;color:#fff;border-color:#000} .co-express .bizum{background:#2E8B99;color:#fff;border-color:#2E8B99} .co-express .klarna{background:#FFB3C7;color:#17120F;border-color:#FFB3C7}
.co-or{display:flex;align-items:center;gap:1rem;color:var(--gris);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;margin:1rem 0} .co-or::before,.co-or::after{content:"";flex:1;height:1px;background:var(--cashmere)}
.co-card{border:1px solid var(--cashmere);border-radius:6px;padding:.9rem;display:grid;gap:.6rem;background:var(--cashmere-3)} .co-card input{background:#fff}
.co-total{display:flex;justify-content:space-between;font-size:.9rem;margin:1rem 0} .co-total b{font-family:var(--serif);font-size:1.3rem;font-weight:500}
.co-success{text-align:center;padding:.6rem 0}
.co-success .tick{width:64px;height:64px;border-radius:50%;background:var(--cian-3);display:grid;place-items:center;margin:0 auto 1rem} .co-success .tick svg{stroke:var(--cian);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.co-success h3{margin-bottom:.4rem} .co-success p{color:var(--gris);font-size:.9rem}
.checkout .paylogos img{background:var(--cashmere-3)}

/* ---------- Repertorio ---------- */
.rep-search{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-bottom:1.2rem}
.rep-search input[type=search]{flex:1;min-width:200px}
.chk{display:inline-flex;align-items:center;gap:.5rem;font-size:.84rem;color:var(--gris);white-space:nowrap;padding:.5rem .9rem;border:1px solid var(--cashmere);border-radius:999px;background:#fff;cursor:pointer}
.chk input{width:16px;height:16px;margin:0;accent-color:var(--cian)}
.rep-group summary{font-size:1.02rem;padding:.9rem 0}
.rep-list{list-style:none;padding:0;margin:0 0 .4rem}
.rep-list li{border-top:1px solid var(--cashmere-2);padding:.25rem 0}
.trk-row{display:flex;align-items:center;gap:.5rem;min-width:0}
.trk{display:flex;align-items:center;gap:.7rem;flex:1;min-width:0;text-align:left;padding:.35rem 0;font-size:.92rem;color:var(--pizarra);transition:color .2s}
.trk .ic{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--cashmere);display:grid;place-items:center;transition:all .2s;background:#fff}
.trk .ic svg{width:12px;height:12px;fill:var(--petroleo)} .trk .ic i{display:contents}
.trk .i-pause,.trk.playing .i-play{display:none} .trk.playing .i-pause{display:contents}
.trk.playing .ic{background:var(--cian);border-color:var(--cian)} .trk.playing .ic svg{fill:#fff}
.trk:hover{color:var(--cian)} .trk:hover .ic{border-color:var(--cian)}
.trk .tt{flex:1;min-width:0;line-height:1.25} .trk .tt small{display:block;font-size:.74rem;color:var(--gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trk .hint{flex:none;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cian-2);font-weight:600;border:1px solid var(--cian-3);background:var(--cian-3);border-radius:999px;padding:.2rem .5rem}
.trk.nodemo{cursor:default} .trk.nodemo .ic{opacity:.35} .trk.nodemo .hint{color:var(--gris);background:transparent;border-color:var(--cashmere-2)} .trk.nodemo:hover{color:var(--pizarra)} .trk.nodemo:hover .ic{border-color:var(--cashmere)}
.fav{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--cashmere);transition:color .2s,transform .2s;font-size:1.05rem;line-height:1}
.fav::before{content:"♡"} .fav.on::before{content:"♥"} .fav:hover{color:var(--oro-2);transform:scale(1.1)} .fav.on{color:#C86A7A}
.seek{-webkit-appearance:none;appearance:none;width:100%;height:4px;margin:.2rem 0 .5rem;background:linear-gradient(90deg, var(--cian) 0, var(--cian) 0) no-repeat var(--cashmere-2);border:0;border-radius:2px;padding:0;cursor:pointer}
.seek::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--cian);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.seek::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--cian);border:2px solid #fff}
.seek::-moz-range-progress{background:var(--cian);height:4px}
.seek[hidden]{display:none}
.rep-tools{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin:1.2rem 0 .4rem}
.favlist{display:flex;flex-wrap:wrap;gap:.4rem}
.favchip{display:inline-flex;align-items:center;gap:.3rem;background:var(--cian-3);color:var(--cian-2);border-radius:999px;padding:.25rem .3rem .25rem .7rem;font-size:.78rem}
.favchip button{width:20px;height:20px;border-radius:50%;line-height:1;color:var(--cian-2)} .favchip button:hover{background:#fff}
.nowbar{position:fixed;left:50%;bottom:calc(16px + var(--sab));transform:translate(-50%,130%);z-index:90;background:var(--petroleo);color:var(--alabastro);border:1px solid rgba(197,168,128,.5);border-radius:999px;padding:.5rem .6rem .5rem 1rem;display:flex;align-items:center;gap:.7rem;width:min(92vw,560px);box-shadow:0 20px 40px -10px rgba(0,0,0,.5);transition:transform .35s;font-size:.82rem}
.nowbar.show{transform:translate(-50%,0)}
.nowbar .nb-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}
.nowbar .nb-range{flex:1;-webkit-appearance:none;appearance:none;height:3px;background:rgba(248,247,244,.3);border-radius:2px;padding:0;border:0;min-width:60px}
.nowbar .nb-range::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--oro)} .nowbar .nb-range::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--oro);border:0}
.nowbar .nb-stop{width:30px;height:30px;border-radius:50%;background:var(--oro);color:var(--petroleo);font-size:.7rem;display:grid;place-items:center;flex:none}
.nowbar .eq{display:inline-flex;gap:2px;align-items:flex-end;height:14px;flex:none} .nowbar .eq i{width:3px;background:var(--oro);animation:eq 1s ease-in-out infinite;height:6px} .nowbar .eq i:nth-child(2){animation-delay:.2s} .nowbar .eq i:nth-child(3){animation-delay:.4s}
@keyframes eq{0%,100%{height:5px}50%{height:14px}}

/* ---------- Vídeo / lightbox ---------- */
.player-dialog{max-width:min(1100px, 94vw)}
.player{position:relative;aspect-ratio:16/9;background:#000;border-radius:6px;overflow:hidden}
.player.vertical{aspect-ratio:9/16;max-height:82vh;margin:0 auto;width:auto;max-width:min(420px, 94vw)}
.player iframe,.player video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:contain;background:#000}
.modal-bar{display:flex;justify-content:space-between;align-items:center;color:var(--alabastro);padding:.6rem .2rem;font-family:var(--serif);font-size:1.05rem}
.modal-bar button{width:36px;height:36px;border-radius:50%;border:1px solid rgba(248,247,244,.35);color:var(--alabastro);font-size:1.3rem;line-height:1;display:grid;place-items:center}
.gate{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;gap:1rem;color:var(--cashmere);background:var(--petroleo)}
.gate strong{font-family:var(--serif);font-weight:500;font-size:1.3rem;color:var(--alabastro)}
.lightbox{max-width:min(1300px, 96vw)} .lightbox .frame{position:relative;display:flex;align-items:center;justify-content:center;height:min(82vh, 860px)}
.lightbox img{max-height:100%;max-width:100%;object-fit:contain;border-radius:4px}
.lightbox .lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:rgba(14,34,38,.6);border:1.5px solid var(--logo);display:grid;place-items:center}
.lightbox .lb-nav svg{stroke:var(--logo);fill:none;stroke-width:1.8} .lightbox .lb-prev{left:8px} .lightbox .lb-next{right:8px}
.video-box video{width:100%;max-width:100%;border-radius:var(--radius);display:block;background:#000;aspect-ratio:16/9}

/* ---------- Credenciales ---------- */
.cred{border-top:1px solid var(--logo)} .cred details{border-bottom:1px solid var(--logo)}
.cred summary{list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent;display:grid;grid-template-columns:150px 1fr auto;gap:1.2rem;align-items:center;padding:1.05rem 0}
.cred .logo-cell{width:150px;height:48px;display:flex;align-items:center;justify-content:center;flex:none}
.cred summary::-webkit-details-marker{display:none}
.cred summary img{max-height:44px;max-width:140px;width:auto;height:auto;object-fit:contain}
.cred summary .what{font-family:var(--serif);font-size:1.05rem;color:var(--oro-2)} .cred summary .what small{display:block;font-family:var(--sans);font-size:.76rem;color:var(--gris);margin-top:.15rem}
.cred .quotes{padding:0 0 1.3rem;display:grid;gap:.8rem}
.cred .quotes blockquote{margin:0;padding:1rem 1.2rem;background:#fff;border-left:3px solid var(--oro);border-radius:0 6px 6px 0;font-family:var(--serif);font-style:italic;font-size:.96rem;line-height:1.5}
.cred .quotes blockquote footer{font-family:var(--sans);font-style:normal;font-size:.76rem;color:var(--cian);font-weight:600;margin-top:.5rem}
@media (max-width:700px){.cred summary{grid-template-columns:92px 1fr auto;gap:.7rem}.cred .logo-cell{width:92px;height:40px}.cred summary img{max-height:36px;max-width:88px}.cred summary .what{font-size:.95rem}}
.case{background:var(--petroleo);color:var(--alabastro);border-radius:var(--radius);padding:clamp(1.6rem, 4vw, 3rem);display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}
.case h3{color:var(--alabastro);font-size:1.6rem;margin-bottom:.6rem} .case p{color:var(--cashmere)}
.case .video-title{font-family:var(--serif);font-size:1.15rem;color:var(--oro);margin:0 0 .8rem;text-align:center}
.case .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.4rem;text-align:center}
.case .kpi b{display:block;font-family:var(--serif);font-size:2rem;color:var(--oro);font-weight:500;line-height:1} .case .kpi span{font-size:.76rem;color:var(--cashmere);letter-spacing:.04em}
@media (max-width:900px){.case{grid-template-columns:1fr}}

/* ---------- Prensa, agenda, escenarios, puente, instagram ---------- */
.press-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.clip{display:flex;flex-direction:column;justify-content:space-between;min-height:220px;padding:1.3rem;background:#fff;border:1px solid rgba(212,204,195,.6);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s;text-align:left;width:100%}
.clip:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.clip .outlet{font-family:var(--serif);font-size:1.2rem;line-height:1.1} .clip .kind{font-size:.66rem;color:var(--oro-2);letter-spacing:.12em;text-transform:uppercase;font-weight:600;margin-top:.3rem}
.clip .head{font-size:.9rem;margin:.9rem 0 1rem;line-height:1.45;color:var(--pizarra)} .clip .meta{display:flex;justify-content:space-between;font-size:.74rem;color:var(--gris)}
@media (max-width:1000px){.press-grid{grid-template-columns:repeat(2,1fr)}} @media (max-width:560px){.press-grid{grid-template-columns:1fr}}
.events{display:grid;gap:.8rem}
.event{display:grid;grid-template-columns:86px 1fr auto;gap:1.2rem;align-items:center;background:#fff;border:1px solid rgba(212,204,195,.6);border-radius:var(--radius);padding:1rem 1.2rem}
.event .date{text-align:center;border-right:1px solid var(--cashmere);padding-right:1rem} .event .date b{display:block;font-family:var(--serif);font-size:1.8rem;line-height:1;color:var(--petroleo);font-weight:500} .event .date span{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--oro-2);font-weight:600}
.event h4{font-size:1.05rem;margin-bottom:.1rem} .event p{font-size:.84rem;color:var(--gris);margin:0}
@media (max-width:640px){.event{grid-template-columns:70px 1fr}.event .btn{grid-column:1/-1}}
.stages{list-style:none;padding:0;margin:0;columns:2;column-gap:3rem}
.stages li{break-inside:avoid;display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--cashmere);font-size:.95rem}
.stages li b{font-weight:500;font-family:var(--serif);font-size:1.05rem} .stages li small{color:var(--gris);display:block;font-size:.8rem} .stages li span{color:var(--gris);font-size:.8rem;white-space:nowrap}
@media (max-width:760px){.stages{columns:1}}
.strip{border-top:1px solid rgba(248,247,244,.12);border-bottom:1px solid rgba(248,247,244,.12);overflow:hidden;padding:0}
.strip .marquee{mask-image:none;-webkit-mask-image:none;padding:0} .strip .marquee-track{gap:0;animation-duration:48s}
.strip .item{font-family:var(--serif);font-size:1.05rem;padding:1rem 1.6rem;white-space:nowrap;display:flex;align-items:center;gap:1.2rem} .strip .item small{font-family:var(--sans);font-size:.74rem;color:var(--cashmere)}
.strip .item::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--oro);margin-left:1.6rem}
/* Bloques «Ver y escuchar» (Eventos únicos) y «La artista» (Carlota): fundido en el azul oscuro de la web.
   Escritorio: la foto ocupa la parte derecha a plena luz y solo se funde su borde izquierdo con el texto.
   --b: azul de la cabecera (#17353B); .deep: azul del banner superior (#112A2F), para la foto en blanco y negro. */
.bridge{--b:23,53,59;position:relative;border-radius:var(--radius);overflow:hidden;background:rgb(var(--b));color:#f3efe6;min-height:380px;display:grid;grid-template-columns:1fr 1fr;align-items:center}
.bridge.deep{--b:17,42,47}
.bridge .bg{position:absolute;top:0;right:0;bottom:0;left:38%;z-index:0;background-size:cover;background-position:center 30%} .bridge::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg, rgb(var(--b)) 0, rgb(var(--b)) 38%, rgba(var(--b),.82) 44%, rgba(var(--b),.4) 52%, rgba(var(--b),0) 62%)}
.bridge .txt{z-index:2} .bridge .txt p{color:#d9d2c4}
.bridge .txt{position:relative;padding:clamp(1.6rem, 4vw, 3rem)} .bridge .txt .eyebrow{color:#c9a86a}
.bridge h3{font-family:"Playfair Display", var(--serif);font-size:clamp(1.8rem, 3vw, 2.6rem);color:#f3efe6;margin-bottom:.8rem} .bridge p{color:#bdb6a8;max-width:46ch}
.bridge .btn-gold{background:#c9a86a;color:#0b0f12;border-color:#c9a86a}
.bridge .btn-line{border-color:#c9a86a;color:#e2c88f} .bridge .btn-line:hover{background:#c9a86a;color:#0b0f12}
.bridge .platforms{display:flex;gap:1rem;align-items:center;margin-top:1.2rem;flex-wrap:wrap}
.bridge .platforms a{display:inline-flex;align-items:center;gap:.5rem;color:#f3efe6;font-size:.84rem;font-weight:500} .bridge .platforms img{height:24px;width:auto}
@media (max-width:900px){.bridge{grid-template-columns:1fr;min-height:0}.bridge .bg{position:relative;inset:auto;left:auto;aspect-ratio:16/10;background-position:center 30%}.bridge::before{background:linear-gradient(180deg, rgba(var(--b),0) 0, rgba(var(--b),0) 28%, rgba(var(--b),.9) 44%, rgb(var(--b)) 50%)}.bridge .txt{padding-top:.4rem}.bridge .spacer{display:none}}
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.ig-grid a{aspect-ratio:1;background:var(--cashmere-2) center/cover;border-radius:4px;overflow:hidden;position:relative;display:block}
.ig-grid a::after{content:"";position:absolute;inset:0;background:rgba(19,45,50,0);transition:background .3s} .ig-grid a:hover::after{background:rgba(19,45,50,.3)}
@media (max-width:900px){.ig-grid{grid-template-columns:repeat(3,1fr)}}

/* ---------- Banda CTA, contacto, pie ---------- */
.cta-band{background:var(--petroleo);color:var(--alabastro);text-align:center;padding:clamp(56px, 7vw, 88px) 0}
.cta-band h2{color:var(--alabastro)} .cta-band .lead{color:var(--cashmere);margin:1rem auto 2rem} .cta-band .btn-row{justify-content:center}
.cta-band.gold{background:var(--cashmere);color:var(--pizarra)} .cta-band.gold h2{color:var(--pizarra)} .cta-band.gold .lead{color:var(--gris)}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem, 5vw, 4rem)}
.contact-list{list-style:none;padding:0;margin:1.4rem 0;display:grid;gap:1rem}
.contact-list li{display:flex;gap:1rem;align-items:center}
.contact-list .ico{width:42px;height:42px;border-radius:50%;background:var(--cian-3);display:grid;place-items:center;flex:none} .contact-list .ico svg{width:18px;height:18px;stroke:var(--cian);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.contact-list li > div,.contact-list li > a{font-size:1rem} .contact-list a:hover{color:var(--cian)}
.side-photo{margin-top:1.6rem;border-radius:var(--radius);box-shadow:var(--shadow-2);width:100%;height:auto}
.news-photo{margin-top:2rem;border-radius:var(--radius);box-shadow:var(--shadow-2);width:100%;height:auto}
.form-ok{display:none;padding:1.4rem;border:1px solid var(--cian);background:var(--cian-3);border-radius:var(--radius);font-family:var(--serif);font-size:1.1rem}
.form-note{font-size:.76rem;color:var(--gris)}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
/* Secciones con formulario al final (Eventos únicos, Empresas, Contacto): una sola columna, el formulario después de todo */
.form-flow{max-width:860px}
.form-flow .form-block{margin-top:2.4rem;padding-top:2.2rem;border-top:1px solid var(--cashmere)}
.dark .form-flow .form-block{border-top-color:rgba(248,247,244,.16)}
.form-flow .checks{margin-bottom:0}
.form-flow .side-photo{margin-top:2rem}
.form-flow .light .ratings{grid-template-columns:repeat(2,1fr)} @media (max-width:420px){.form-flow .light .ratings{grid-template-columns:1fr}}
.dark .field label{color:var(--cashmere)}
.footer{background:var(--petroleo-2);color:var(--cashmere);padding:3.5rem 0 calc(2rem + var(--sab));font-size:.86rem}
.footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;align-items:start}
.footer .flogo{height:32px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.footer h4{color:var(--alabastro);font-family:var(--sans);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:1rem}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem} .footer a:hover{color:var(--oro)}
.footer .about{color:var(--cashmere);max-width:40ch;margin:1rem 0 0;font-weight:300}
.footer .social{display:flex;gap:.6rem;margin-top:1.2rem} .footer .social a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(248,247,244,.25);display:grid;place-items:center;transition:border-color .2s} .footer .social a:hover{border-color:var(--oro)} .footer .social svg{fill:var(--alabastro)}
@media (max-width:760px){.footer .copy > span{display:block}}
.footer .bottom{border-top:1px solid rgba(248,247,244,.12);margin-top:2.5rem;padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.76rem;color:rgba(212,204,195,.75)} .footer .bottom nav{display:flex;gap:1.2rem;flex-wrap:wrap}
@media (max-width:900px){.footer .cols{grid-template-columns:1fr 1fr}} @media (max-width:560px){.footer .cols{grid-template-columns:1fr}}

/* ---------- Cookies, legal, WhatsApp, utilidades ---------- */
.cookie{position:fixed;left:16px;right:16px;bottom:calc(16px + var(--sab));z-index:120;background:#fff;border:1px solid var(--cashmere);border-radius:10px;padding:1.1rem 1.3rem;display:none;gap:1rem;align-items:center;flex-wrap:wrap;box-shadow:0 30px 60px -20px rgba(0,0,0,.4);max-width:820px;margin:0 auto}
.cookie.show{display:flex} .cookie.lang-hint{max-width:560px} .cookie p{margin:0;font-size:.84rem;flex:1 1 300px;color:var(--gris)} .cookie .acts{display:flex;gap:.5rem;flex-wrap:wrap}
.legal{background:#fff;padding:2rem;border-radius:10px;max-width:720px;margin:0 auto;font-size:.92rem;max-height:80vh;overflow:auto}
.legal h3{margin-bottom:1rem} .legal .close{float:right;color:var(--gris);font-size:.8rem;border:1px solid var(--cashmere);border-radius:999px;padding:.35rem .8rem}
.ck{display:flex;gap:.9rem;align-items:flex-start;padding:.8rem 0;border-bottom:1px solid var(--cashmere-2);cursor:pointer} .ck input{width:18px;height:18px;margin-top:.2rem;accent-color:var(--cian)} .ck b{display:block;font-weight:600} .ck small{color:var(--gris)}
.legal-page h2{margin-top:2rem;font-size:1.4rem} .legal-page p,.legal-page li{color:var(--gris);font-size:.95rem} .legal-page table{width:100%;border-collapse:collapse;font-size:.86rem;margin:1rem 0} @media (max-width:640px){.legal-page table{display:block;overflow-x:auto}}
@media (max-width:640px){.legal-page table.stack{display:block;overflow:visible;border:0}.legal-page table.stack tbody,.legal-page table.stack tr,.legal-page table.stack td{display:block;width:100%}.legal-page table.stack tr:first-child{display:none}.legal-page table.stack tr{background:#fff;border:1px solid var(--cashmere);border-radius:6px;padding:.5rem .9rem;margin:0 0 .8rem}.legal-page table.stack td{border:0;padding:.35rem 0}.legal-page table.stack td::before{content:attr(data-label);display:block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--oro-2);margin-bottom:.1rem}} .legal-page th,.legal-page td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--cashmere);vertical-align:top}
.wa-float{position:fixed;right:16px;bottom:calc(16px + var(--sab));z-index:85;display:flex;align-items:center;gap:.5rem;background:var(--petroleo);color:var(--alabastro);border:1px solid var(--oro);border-radius:999px;padding:.6rem .95rem .6rem .7rem;font-size:.8rem;font-weight:600;box-shadow:0 14px 30px -10px rgba(0,0,0,.5);transform:translateY(160%);transition:transform .35s,background .2s;max-width:200px}
.wa-float.show{transform:none} .wa-float:hover{background:var(--petroleo-3)} .wa-float svg{width:20px;height:20px;flex:none;fill:var(--oro)}
@media (max-width:640px){.wa-float span{display:none}.wa-float{padding:.7rem}}
body:has(.nowbar.show) .wa-float{bottom:calc(76px + var(--sab))}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .45s ease} .reveal.in{opacity:1;transform:none}
.note{font-size:.8rem;color:var(--gris);background:var(--cashmere-3);border-left:3px solid var(--oro);padding:.7rem 1rem;border-radius:0 6px 6px 0}
.pill{display:inline-block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--cian-2);background:var(--cian-3);border-radius:999px;padding:.25rem .6rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
