*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{background:#fff;color:#111;font-family:'Onest',sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
ul{list-style:none}
img{display:block}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid #b15f2c;outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}

/* rem-based adaptive grid */
@media (max-width:1920px){html{font-size:.833333vw}}
@media (max-width:1440px){html{font-size:1.111111vw}}
@media (max-width:1024px){html{font-size:1.5625vw}}
@media (max-width:640px){html{font-size:4.444444vw}}

:root{
  --ink:#0a0a0a;--muted:#8d8d8d;--line:#e6e5e2;--surface:#f1f0ee;--surface-2:#e3e2df;
  --accent:#b15f2c;--accent-from:#cf8047;--accent-to:#97501f;
  --ease:cubic-bezier(.22,1,.36,1);--snap:cubic-bezier(.2,.8,.2,1);
}
.shell{max-width:88rem;margin-inline:auto}
.ic{width:1em;height:1em;flex:none}
.tn{font-variant-numeric:tabular-nums}
.skip{position:fixed;left:1rem;top:1rem;z-index:60;border-radius:.875rem;background:var(--ink);padding:.5rem 1rem;font-size:.875rem;color:#fff;transform:translateY(-200%)}
.skip:focus{transform:none}

/* reveals (CSS springs): .in is added by IntersectionObserver, or by the loader for [data-gate] */
.rv{opacity:0;transform:translateY(var(--y,20px)) scale(var(--s,1));transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.rv.in{opacity:var(--o,1);transform:none}
.ln{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}
.ln>span{display:block;transform:translateY(105%);opacity:0;transition:transform .9s cubic-bezier(.215,.61,.355,1),opacity .9s cubic-bezier(.215,.61,.355,1);transition-delay:calc(var(--d,0ms) + var(--i,0)*var(--st,0ms))}
.lines.in .ln>span{transform:none;opacity:1}
.w{display:inline-block;opacity:0;transform:translateY(24px);transition:transform .7s cubic-bezier(.165,.84,.44,1),opacity .7s cubic-bezier(.165,.84,.44,1);transition-delay:calc(var(--i)*35ms)}
.words.in .w{opacity:1;transform:none}

/* shared components */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:rgba(17,17,17,.7)}
.eyebrow::before{content:"";width:.375rem;height:.375rem;border-radius:9999px;background:rgba(17,17,17,.5)}
.eyebrow.light{color:rgba(255,255,255,.7)}
.eyebrow.light::before{background:rgba(255,255,255,.6)}
.eyebrow.box{border:1px solid var(--line);border-radius:9999px;padding:.375rem 1rem}
.pill{display:inline-block;transition:transform .35s var(--snap)}
.pill-in{display:inline-flex;align-items:center;gap:.75rem;border-radius:9999px;font-size:.875rem;font-weight:500;padding:.875rem 1.75rem}
.pill.has-arrow .pill-in{padding:.375rem .375rem .375rem 1.5rem}
.pill-badge{width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:9999px;font-size:1rem;background:var(--ink);color:#fff}
.pill-badge .ic{transition:transform .35s var(--snap)}
.pill-dark .pill-in{background:var(--ink);color:#fff}
.pill-dark .pill-badge{background:#fff;color:var(--ink)}
.pill-light .pill-in{background:var(--surface);color:#111}
.pill-outline .pill-in{border:1px solid var(--line);background:transparent;color:#111}
.pill-outline.has-arrow .pill-in{padding:.375rem .375rem .375rem 1.5rem}
.alink{display:inline-flex}
.alink>span{display:inline-block;opacity:var(--o0,.65);transition:transform .35s var(--snap),opacity .35s var(--snap)}
.chip{display:inline-flex;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:9999px;padding:.5rem 1rem;font-size:.875rem}
@media (hover:hover){
  .pill:hover{transform:scale(1.04)}
  .pill-arrow-r:hover .pill-badge .ic{transform:translate(3px,0)}
  .pill-arrow-ur:hover .pill-badge .ic{transform:translate(2px,-2px)}
  .alink:hover>span{transform:translateX(var(--dx,4px));opacity:1}
}

/* header */
.hdr{position:absolute;inset-inline:0;top:0;z-index:50}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem}
.brand-in{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;letter-spacing:-.01em;transition:transform .35s var(--snap)}
.nav{display:none}
.nav ul{display:flex;gap:2rem;font-size:.875rem;font-weight:500}
.nav :is(button,a){display:inline-flex;align-items:center;gap:.25rem}
.nav :is(button,a)>span{display:inline-block;opacity:.8;transition:transform .35s var(--snap),opacity .35s var(--snap)}
.nav :is(button,a)[aria-current]>span{opacity:1}
.hdr-r{display:flex;align-items:center;gap:.75rem}
.glass{border:1px solid rgba(230,229,226,.8);background:rgba(255,255,255,.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:.875rem}
.clock{display:none;align-items:center;gap:.75rem;padding:.5rem .75rem;font-size:.75rem;color:rgba(17,17,17,.7)}
.clock .lbl{color:rgba(17,17,17,.45)}
.clock .t{min-width:3.5rem;font-weight:500;color:#111}
.clock .sep{color:rgba(17,17,17,.3)}
.clock .d{font-weight:500}
.reserve-btn{border-radius:9999px;background:var(--accent);color:#fff;padding:.625rem 1.125rem;font-size:.75rem;font-weight:600;white-space:nowrap;transition:transform .35s var(--snap)}
@media (hover:hover){.reserve-btn:hover{transform:scale(1.05)}}
.menu-btn{transition:background .3s}
.menu-btn>span{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;transition:transform .35s var(--snap)}
.menu-btn .mt{display:none}
@media (hover:hover){
  .brand:hover .brand-in{transform:scale(1.04)}
  .nav :is(button,a):hover>span{transform:translateY(-2px);opacity:1}
  .menu-btn:hover{background:rgba(255,255,255,.7)}
  .menu-btn:hover>span{transform:scale(1.05)}
}

/* hero */
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:0 0 2rem 2rem;background:#c9c9c9}
.liquid{position:absolute;inset:0;z-index:0;background:linear-gradient(135deg,#ecebe9,#c9c9c9)}
.liquid img,.liquid canvas{position:absolute;inset:0;width:100%;height:100%}
.liquid img{object-fit:cover}
.liquid canvas{pointer-events:none}
.vig{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(255,255,255,.35),transparent,rgba(255,255,255,.35))}
.wm{pointer-events:none;position:absolute;inset-inline:0;bottom:7rem;z-index:1;text-align:center;user-select:none;font-weight:700;line-height:1;font-size:13rem;color:rgba(255,255,255,.4);white-space:nowrap}
.wm.rv{--o:.4}
.hero-grid{position:relative;z-index:20;display:flex;flex-direction:column;gap:2rem;padding:7rem 1.25rem 5rem}
.hero-l{display:flex;flex-direction:column;gap:1.75rem}
.hero-r{display:flex;flex-direction:column;align-items:flex-start;gap:2rem}
.h1{max-width:18ch;font-size:2.25rem;font-weight:600;line-height:.98;letter-spacing:-.02em}
.rating{display:flex;align-items:center;gap:.75rem}
.rating .stars{display:flex;color:var(--accent);font-size:1rem}
.rating span.t{font-size:.875rem;font-weight:500;color:rgba(17,17,17,.7)}
.ctas{display:flex;flex-wrap:wrap;gap:.75rem}
.hcard{width:100%;max-width:24rem;border-radius:1.25rem;background:rgba(255,255,255,.7);padding:.5rem;box-shadow:0 1px 2px rgba(0,0,0,.05),0 0 0 1px rgba(230,229,226,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.hcard-row{display:flex;gap:.5rem;cursor:pointer;border-radius:.875rem}
.hcard-tile{aspect-ratio:1;width:6rem;display:grid;place-items:center;border-radius:.875rem;background:var(--ink);font-size:1.875rem;color:var(--accent-from)}
.hcard-panel{flex:1;border-radius:.875rem;background:rgba(241,240,238,.7);padding:.75rem;display:flex;flex-direction:column;justify-content:space-between}
.hcard-slot{position:relative;min-height:3.25rem}
.hcard-cap{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:rgba(17,17,17,.45)}
.hcard-title{max-width:8rem;font-size:.875rem;font-weight:500;line-height:1.35}
.hcard-bot{display:flex;align-items:center;justify-content:space-between}
.dots{display:flex;gap:.25rem}
.dots i{display:block;height:.25rem;border-radius:9999px;width:.375rem;background:rgba(17,17,17,.2);transition:all .3s}
.dots i.on{width:1rem;background:rgba(17,17,17,.7)}
.hc-btns{display:flex;gap:.25rem}
.hc-btns button{width:1.75rem;height:1.75rem;display:grid;place-items:center;border-radius:9999px;background:#fff;color:rgba(17,17,17,.7);box-shadow:0 0 0 1px var(--line);transition:color .3s}
.hc-btns button:hover{color:#111}
.hc-btns .prev .ic{transform:rotate(180deg)}
.partners{width:100%;max-width:24rem}
.partners .lbl{margin-bottom:.75rem;font-size:.75rem;font-weight:500;color:rgba(17,17,17,.45);text-align:left}
.partners ul{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem}
.partners li span{display:flex;white-space:nowrap;align-items:center;gap:.375rem;font-size:.75rem;color:rgba(17,17,17,.7);opacity:.7;transition:transform .35s var(--snap),opacity .35s var(--snap)}
.partners li .ic{font-size:.875rem;color:rgba(17,17,17,.4)}
@media (hover:hover){.partners li:hover span{transform:translateY(-2px);opacity:1}}
.status{position:relative;z-index:20}
.status-in{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid rgba(17,17,17,.1);padding:1.25rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;color:rgba(17,17,17,.6)}
.status-in .mid{display:none}
.status-in .r{display:inline-flex;gap:.5rem}

/* hero oscuro: texto claro sobre las fotos negras */
.hero.dark .vig{background:linear-gradient(to bottom,rgba(10,10,10,.55),rgba(10,10,10,.1) 40%,rgba(10,10,10,.65))}
.hero.dark .eyebrow{color:rgba(255,255,255,.8)}
.hero.dark .eyebrow::before{background:rgba(255,255,255,.7)}
.hero.dark .h1{color:#fff}
.hero.dark .rating span.t{color:rgba(255,255,255,.8)}
.hero.dark .pill-outline .pill-in{border-color:rgba(255,255,255,.3);color:#fff}
.hero.dark .partners .lbl{color:rgba(255,255,255,.5)}
.hero.dark .partners li span{color:rgba(255,255,255,.8)}
.hero.dark .partners li .ic{color:rgba(255,255,255,.45)}
.hero.dark .status-in{border-top-color:rgba(255,255,255,.15);color:rgba(255,255,255,.65)}
.hdr.dark{color:#fff}
.hdr.dark .glass{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.1)}
.hdr.dark .clock{color:rgba(255,255,255,.8)}
.hdr.dark .clock .lbl,.hdr.dark .clock .sep{color:rgba(255,255,255,.45)}
.hdr.dark .clock .t{color:#fff}
@media (hover:hover){.hdr.dark .menu-btn:hover{background:rgba(255,255,255,.2)}}
@media (min-width:1024px){
  .hero.dark .vig{background:linear-gradient(90deg,rgba(10,10,10,.7),rgba(10,10,10,.1) 65%),linear-gradient(to bottom,rgba(10,10,10,.45),transparent 30%,rgba(10,10,10,.55))}
}

/* about */
.about{background:#fff}
.about-in{display:grid;grid-template-columns:1fr;align-items:center;gap:3rem;padding:5rem 1.25rem}
.globe{position:relative;min-height:14rem}
.globe>.bg{position:absolute;left:-1rem;top:50%;transform:translateY(-50%);font-size:12rem;color:rgba(17,17,17,.1)}
.globe .eyebrow{position:relative}
.globe .note{position:absolute;left:0;bottom:0;display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:rgba(17,17,17,.7)}
.globe .note .ic{font-size:1.5rem;color:#111}
.globe .note span.t{max-width:14rem}
.about-r{display:flex;flex-direction:column;gap:2.5rem}
.stmt{font-size:1.5rem;font-weight:500;line-height:1.35;letter-spacing:-.01em}
.stmt .g{color:var(--muted)}
.about-foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem;border-top:1px solid var(--line);padding-top:1.5rem}
.about-foot .lbl{font-size:.875rem;color:rgba(17,17,17,.45);margin-bottom:.5rem}
.socials{display:flex;gap:.5rem}
.soc{width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:9999px;font-size:.875rem;background:var(--surface);color:rgba(17,17,17,.7)}
.soc.acc{background:var(--accent);color:#fff}
.soc .ic{transition:transform .35s var(--snap)}
@media (hover:hover){.soc:hover .ic{transform:scale(1.18)}}

/* create band */
.band{background:#fff}
.band ul{display:flex;flex-direction:column;gap:.75rem;padding:2.5rem 1.25rem}
.band li{flex:1}
.tile{display:grid;place-items:center;height:6rem;border-radius:9999px;font-size:1.875rem;font-weight:500;transition:transform .35s var(--snap)}
.tile .ic{font-size:2.25rem}
.tile.light{background:var(--surface);color:#111}
.tile.accent{background:linear-gradient(to bottom right,var(--accent-from),var(--accent-to));color:#fff}
.tile.dark{background:var(--ink);color:#fff}
.tile.ghost{background:rgba(241,240,238,.6);color:rgba(17,17,17,.35)}
@media (hover:hover){.tile:hover{transform:scale(1.03)}}

/* portfolio */
.works{background:#fff}
.works-in{padding:2.5rem 1.25rem 5rem}
.center{display:flex;justify-content:center}
.h2{font-size:2.25rem;font-weight:600;letter-spacing:-.02em}
.works .h2{width:fit-content;margin:1.25rem auto 3rem;text-align:center}
.cards{display:grid;grid-template-columns:1fr;gap:1.5rem}
.card{position:relative;display:block;min-height:22rem;overflow:hidden;border-radius:2rem;background:var(--ink) center 35%/cover;padding:1.5rem;color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.05);transition:transform .45s var(--snap)}
.card::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.85),rgba(10,10,10,.15) 60%)}
.card>*{position:relative}
.card-meta{display:flex;justify-content:space-between;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;color:rgba(255,255,255,.45)}
.card-badge{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:9999px;background:rgba(255,255,255,.1);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.15);transition:transform .4s var(--snap)}
.card-wm{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.card-wm .ic{font-size:4.5rem;color:rgba(255,255,255,.9)}
.card-wm sup{font-size:.75rem;color:rgba(255,255,255,.6);margin-left:.1rem;align-self:start}
.card-wm div{display:flex}
.card-bot{position:absolute;inset-inline:1.5rem;bottom:1.5rem}
.card h3{font-size:1.5rem;font-weight:500;letter-spacing:-.01em}
.card p{margin-top:.5rem;max-width:28rem;font-size:.875rem;color:rgba(255,255,255,.55)}
.card .tags{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.5rem}
@media (hover:hover){
  .card:hover{transform:translateY(-8px) scale(1.012)}
  .card:hover .card-badge{transform:rotate(45deg) scale(1.08)}
}

/* services */
.services{background:#fff}
.services-in{padding:5rem 1.25rem}
.services .h2{margin:1.25rem 0 3rem;max-width:16ch}
.srow-li{border-top:1px solid var(--line)}
.srow-li:first-child{border-top:0}
.srow{display:flex;align-items:center;gap:1rem;border-radius:1.25rem;padding:1.5rem 1.5rem;background:rgba(241,240,238,0);transition:background .4s var(--snap),padding .4s var(--snap)}
.srow .n{width:1.75rem;font-size:.875rem;font-weight:500;color:rgba(17,17,17,.4)}
.srow h3{flex:1;font-size:1.5rem;font-weight:500;letter-spacing:-.01em}
.srow p{display:none;max-width:20rem;font-size:.875rem;color:rgba(17,17,17,.55)}
.srow .arr{width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:9999px;background:var(--ink);color:#fff;transition:transform .35s var(--snap)}
@media (hover:hover){
  .srow:hover{background:rgba(241,240,238,1);padding-left:2rem;padding-right:1.25rem}
  .srow:hover .arr{transform:translateX(5px)}
}

/* booking */
.booking{background:#fff}
.booking-in{padding:0 1.25rem 5rem}
.booking .h2{margin:1.25rem 0 3rem;max-width:20ch}
.steps{list-style:none;display:grid;grid-template-columns:1fr;gap:1rem}
.steps li{border-radius:1.5rem;background:var(--surface);padding:1.5rem}
.steps .sn{display:block;font-size:.875rem;font-weight:500;color:var(--accent);margin-bottom:2rem}
.steps h3{font-size:1.5rem;font-weight:500;letter-spacing:-.01em}
.steps p{margin-top:.75rem;font-size:.875rem;line-height:1.5;color:rgba(17,17,17,.6)}
.booking-cta{margin-top:2rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.booking-cta .note{font-size:.875rem;color:rgba(17,17,17,.5)}
@media (min-width:640px){.booking-in{padding-inline:2rem}.booking .h2{font-size:3rem}}
@media (min-width:768px){.steps{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.booking-in{padding-bottom:7rem}}

/* sedes */
.sedes{background:#fff}
.sedes-in{padding:0 1.25rem 5rem}
.sedes .h2{margin:1.25rem 0 3rem}
.sede-grid{list-style:none;display:grid;grid-template-columns:1fr;gap:1rem}
.sede-card{display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;border-radius:1.5rem;background:var(--surface);padding:1.5rem}
.sede-card h3{font-size:1.5rem;font-weight:500;letter-spacing:-.01em}
.sede-card dl{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}
.sede-row dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:rgba(17,17,17,.45)}
.sede-row dd{margin-top:.15rem;font-size:.9375rem;line-height:1.45;color:rgba(17,17,17,.8)}
.sede-row a{text-decoration:underline;text-underline-offset:3px}
.sede-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.sede-msg{grid-column:1/-1;color:rgba(17,17,17,.55)}
@media (min-width:640px){.sedes-in{padding-inline:2rem}.sedes .h2{font-size:3rem}}
@media (min-width:768px){.sede-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.sede-grid{grid-template-columns:repeat(3,1fr)}.sedes-in{padding-bottom:7rem}}

/* artistas (reusa la grilla y las tarjetas de sedes) */
.artistas{background:var(--surface)}
.artista-card{background:#fff}
.artista-foto{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:1rem;margin-bottom:1.25rem;background:var(--surface)}
.artista-foto-ph{display:grid;place-items:center;font-size:clamp(3rem,8vw,5rem);color:var(--muted,#9a968e)}
.artista-estilos{margin-top:.35rem;font-size:.875rem;color:rgba(17,17,17,.55)}
.artista-link{display:block}
.artista-link .artista-foto{transition:transform .45s var(--snap)}
@media (hover:hover){.artista-link:hover .artista-foto{transform:scale(1.02)}}
.artistas-more{display:flex;justify-content:center;margin-top:2.5rem}
.partners .lbl a:hover{color:#fff}
.pf-view{max-width:100vw;max-height:100dvh;width:100%;height:100%;margin:0;padding:3.5rem 1rem 1rem;border:0;background:transparent;color:#fff;display:none;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}
.pf-view[open]{display:flex}
.pf-view::backdrop{background:rgba(10,10,10,.92)}
.pf-view-img{max-width:100%;max-height:calc(100dvh - 7rem);object-fit:contain;border-radius:.5rem}
.pf-view-cap{font-size:.875rem;color:rgba(255,255,255,.75);text-align:center}
.pf-view-btn{position:absolute;width:2.75rem;height:2.75rem;border-radius:999px;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:1.75rem;line-height:1;cursor:pointer}
.pf-view-btn:hover,.pf-view-btn:focus-visible{background:rgba(255,255,255,.25)}
.pf-view-btn.close{top:.75rem;right:.75rem}
.pf-view-btn.prev{left:.75rem;top:50%;transform:translateY(-50%)}
.pf-view-btn.next{right:.75rem;top:50%;transform:translateY(-50%)}

/* página de artistas (artistas.html) */
.ap-body{display:flex;flex-direction:column;min-height:100dvh;background:#fff}
.ap-hdr{background:var(--ink);color:#fff}
.ap-hdr-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem}
.ap-nav{display:flex;align-items:center;gap:1.25rem;font-size:.875rem;font-weight:500}
.ap-nav>a:not(.pill){opacity:.75;transition:opacity .2s}
.ap-nav>a:not(.pill):hover,.ap-nav>a[aria-current]{opacity:1}
.ap-nav .pill-in{padding:.625rem 1.25rem;white-space:nowrap}
@media (max-width:639px){.ap-nav>a:not(.pill){display:none}.ap-nav .pill-in{padding:.5rem 1rem;font-size:.8125rem}}
.ap{flex:1}
.ap-in{padding:3rem 1.25rem 5rem}
.ap-head{display:flex;flex-direction:column;gap:1rem;margin-bottom:2.5rem}
.ap-title{font-size:2.5rem;font-weight:600;letter-spacing:-.025em;line-height:1.05}
.ap-lead{max-width:40rem;font-size:1rem;line-height:1.6;color:rgba(17,17,17,.7)}
.ap-msg{color:rgba(17,17,17,.6)}
.ap-empty{display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem;padding-block:4rem}
.ap-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}
.ap-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.ap-chip{padding:.5rem 1rem;border:1px solid var(--line);border-radius:9999px;font-size:.875rem;transition:background .2s,color .2s,border-color .2s}
.ap-chip:hover{border-color:#111}
.ap-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.ap-card{position:relative;display:block;overflow:hidden;border-radius:1.5rem;background:var(--ink);color:#fff}
.ap-card-foto{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .6s var(--ease)}
.ap-card .artista-foto-ph{background:#1b1b1b;color:rgba(255,255,255,.35)}
.ap-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.85),transparent 55%);pointer-events:none}
.ap-card-txt{position:absolute;z-index:1;inset-inline:0;bottom:0;display:flex;flex-direction:column;gap:.25rem;padding:1.5rem}
.ap-card-txt strong{font-size:1.5rem;font-weight:600;letter-spacing:-.01em}
.ap-card-txt span{font-size:.875rem;color:rgba(255,255,255,.8)}
.ap-card-txt small{font-size:.75rem;color:rgba(255,255,255,.55)}
@media (hover:hover){.ap-card:hover .ap-card-foto{transform:scale(1.04)}}
.ap-back{display:inline-block;margin-bottom:2rem;font-size:.875rem;color:rgba(17,17,17,.6)}
.ap-back:hover{color:#111}
.ap-pro{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start}
.ap-pro-foto{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:1.5rem;background:var(--surface)}
.ap-pro-txt{display:flex;flex-direction:column;gap:1.25rem}
.ap-pro-txt dl{display:flex;flex-direction:column;gap:.75rem}
.ap-works{margin-top:4rem}
.ap-works .h2{margin-bottom:1.5rem}
.ap-gal{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.ap-gal button{position:relative;display:block;width:100%;padding:0;overflow:hidden;border-radius:1rem;cursor:zoom-in;background:var(--surface)}
.ap-gal img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .5s var(--ease)}
.ap-gal-cap{position:absolute;inset-inline:0;bottom:0;padding:1.5rem .75rem .6rem;font-size:.75rem;text-align:left;color:#fff;background:linear-gradient(to top,rgba(10,10,10,.75),transparent);opacity:0;transition:opacity .3s}
@media (hover:hover){.ap-gal button:hover img{transform:scale(1.05)}.ap-gal button:hover .ap-gal-cap{opacity:1}}
@media (hover:none){.ap-gal-cap{opacity:1}}
.legal-doc{max-width:48rem;display:flex;flex-direction:column;gap:1rem}
.legal-doc h2{margin-top:1.5rem;font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
.legal-doc p,.legal-doc li{font-size:.9375rem;line-height:1.65;color:rgba(17,17,17,.8)}
.legal-doc ul{list-style:disc;padding-left:1.25rem;display:flex;flex-direction:column;gap:.35rem}
.legal-draft{padding:1rem 1.25rem;border-radius:1rem;background:#fff4e5;border:1px solid #f0c27a;color:#7a4b00!important}
.ap-foot{background:var(--ink);color:#fff}
.ap-foot-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.75rem 1.25rem;font-size:.875rem}
.ap-foot-in a{color:rgba(255,255,255,.7)}
@media (min-width:640px){.ap-in{padding-inline:2rem}.ap-title{font-size:3.5rem}}
@media (min-width:768px){.ap-grid{grid-template-columns:repeat(2,1fr)}.ap-gal{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.ap-grid{grid-template-columns:repeat(3,1fr)}.ap-pro{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4rem}.ap-pro-txt{padding-top:1rem}.ap-gal{grid-template-columns:repeat(4,1fr)}.ap-in{padding-block:4rem 7rem}}

/* stats */
.stats{background:#fff}
.stats-in{padding:0 1.25rem 5rem}
.panel{border-radius:2rem;background:var(--ink);padding:3rem 1.5rem;color:#fff}
.panel .h2{margin-top:1rem;max-width:20ch;font-size:1.875rem;font-weight:500;letter-spacing:-.01em}
.stat-grid{margin-top:3.5rem;display:grid;grid-template-columns:repeat(2,1fr);column-gap:2rem;row-gap:3rem}
.stat-n{font-size:3rem;font-weight:600;letter-spacing:-.02em}
.stat-l{margin-top:.75rem;font-size:.875rem;color:rgba(255,255,255,.55)}

/* footer */
.foot{position:relative;overflow:hidden;border-radius:2rem 2rem 0 0;background:var(--ink);color:#fff}
.foot-in{position:relative;z-index:10;padding:5rem 1.25rem 2.5rem}
.foot-cta{display:flex;flex-direction:column;gap:2rem;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:4rem}
.foot-cta .h2{max-width:16ch}
.foot-cols{display:grid;grid-template-columns:1fr;gap:3rem;padding-block:4rem}
.foot-brand{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600}
.foot-brand .ic{font-size:1.25rem}
.foot-tag{margin-top:1rem;max-width:20rem;font-size:.875rem;color:rgba(255,255,255,.55)}
.foot-cols h4{font-size:.75rem;font-weight:400;text-transform:uppercase;letter-spacing:.025em;color:rgba(255,255,255,.4);margin-bottom:1rem}
.foot-cols li{font-size:.875rem;margin-bottom:.75rem}
.legal{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid rgba(255,255,255,.1);padding-top:2rem;font-size:.75rem;color:rgba(255,255,255,.45)}
.legal ul{display:flex;gap:1.5rem}
.foot .wm2{position:absolute;inset-inline:0;bottom:-1.5rem;z-index:0;text-align:center;pointer-events:none;user-select:none;font-weight:700;line-height:1;font-size:13rem;color:rgba(255,255,255,.05);white-space:nowrap}

/* loader */
.loader{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;background:var(--ink);color:#fff;border-radius:0 0 2rem 2rem;transition:transform .8s var(--ease)}
.loader.out{transform:translateY(-100%)}
.loader-c{display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-align:center;transition:opacity .5s,transform .5s var(--ease)}
.loader.out .loader-c{opacity:0;transform:translateY(-12px)}
.loader-brand{display:flex;align-items:center;gap:.75rem;font-weight:600;font-size:1.5rem}
.loader-brand .ic{font-size:1.875rem;color:var(--accent-from)}
.loader-c p{max-width:24ch;font-size:.875rem;color:rgba(255,255,255,.55)}
.prog{width:min(22rem,72vw);display:flex;flex-direction:column;gap:.75rem}
.prog .track{height:1px;background:rgba(255,255,255,.15)}
.prog .fill{height:100%;width:0;background:var(--accent-from);transition:width .1s ease-out}
.prog .row{display:flex;justify-content:space-between;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.45)}
.prog .row b{font-weight:500;color:rgba(255,255,255,.8)}

/* overlays */
.ov{position:fixed;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,visibility 0s .3s}
.ov.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s}
.navmenu{z-index:115;display:flex;flex-direction:column;background:var(--ink);color:#fff}
.nm-top{display:flex;align-items:center;justify-content:space-between;padding:1.25rem}
.nm-top .b{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600}
.nm-top .b .ic{font-size:1.25rem;color:var(--accent-from)}
.nm-close{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.15);border-radius:.875rem;padding:.5rem 1rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.7);transition:border-color .3s,color .3s}
.nm-close:hover{border-color:rgba(255,255,255,.4);color:#fff}
.nm-nav{flex:1;display:flex;flex-direction:column;justify-content:center;width:100%}
.nm-nav ul{display:flex;flex-direction:column;gap:.25rem}
.mi{display:flex;gap:1rem;width:100%;padding-block:.5rem;text-align:left;font-size:2.25rem;font-weight:600;letter-spacing:-.02em;opacity:0;transform:translateY(1rem);transition:all .5s ease-out;transition-delay:0s}
.navmenu.open .mi{opacity:1;transform:none;transition-delay:calc(var(--i)*45ms + 80ms)}
.mi .no{font-size:1rem;font-weight:400;color:rgba(255,255,255,.3);padding-top:.5rem;transition:color .3s}
.mi .tx{color:rgba(255,255,255,.7);transition:color .3s}
.mi:hover .no{color:var(--accent-from)}
.mi:hover .tx{color:#fff}
.nm-bot{display:flex;flex-direction:column;gap:.75rem;border-top:1px solid rgba(255,255,255,.1);padding:1.5rem 1.25rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;color:rgba(255,255,255,.45)}
.nm-bot button{color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.025em;font-size:.75rem}
.nm-bot button:hover{text-decoration:underline;color:#fff}
.modal{z-index:110;display:flex;align-items:flex-end;justify-content:center;padding:1rem;background:rgba(17,17,17,.3);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.mpanel{position:relative;width:100%;max-width:34rem;max-height:calc(100dvh - 2rem);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border-radius:2rem;background:#fff;padding:1.5rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25),0 0 0 1px var(--line);transform:translateY(28px);transition:transform .45s var(--ease)}
.modal.open .mpanel{transform:none}
.mclose{position:absolute;right:1rem;top:1rem;width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:9999px;background:var(--surface);color:rgba(17,17,17,.6);transition:background .3s,color .3s}
.mclose:hover{background:var(--surface-2);color:#111}
.mhead{margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.375rem}
.mhead .e{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:rgba(17,17,17,.6)}
.mhead .e::before{content:"";width:.375rem;height:.375rem;border-radius:9999px;background:var(--accent)}
.mhead h2{font-size:1.5rem;font-weight:600;letter-spacing:-.01em;padding-right:2.5rem}
.form{display:flex;flex-direction:column;gap:1rem}
.form label{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;color:rgba(17,17,17,.5)}
.form input,.form select,.form textarea{display:block;margin-top:.375rem;width:100%;border:1px solid var(--line);background:rgba(241,240,238,.5);border-radius:.875rem;padding:.75rem 1rem;font:inherit;font-size:.875rem;color:#111;text-transform:none;letter-spacing:0;outline:none;transition:border-color .3s,background .3s}
.form textarea{resize:none}
.ftwo{display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:640px){.ftwo{grid-template-columns:1fr 1fr}}
.form input[type=file]{padding:.6rem .75rem;font-size:.8125rem}
.fchips{border:0;display:flex;flex-direction:column;gap:.5rem}
.fchips legend{margin-bottom:.5rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;color:rgba(17,17,17,.5)}
.fchips legend span{text-transform:none;letter-spacing:0;font-weight:400}
.chips{display:flex;flex-wrap:wrap;gap:.375rem}
.form .chips label{position:relative;text-transform:none;letter-spacing:0;font-size:.8125rem;color:#111}
.form .chips input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.chips span{display:inline-block;padding:.45rem .85rem;border:1px solid var(--line);border-radius:9999px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chips input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.chips input:focus-visible+span{outline:2px solid #b15f2c;outline-offset:2px}
.form .fcheck{display:flex;align-items:flex-start;gap:.625rem;text-transform:none;letter-spacing:0;font-size:.8125rem;font-weight:400;line-height:1.45;color:rgba(17,17,17,.75)}
.form .fcheck input{flex:none;width:1.05rem;height:1.05rem;margin:.1rem 0 0;accent-color:var(--ink)}
.fcheck a{text-decoration:underline;text-underline-offset:2px}
.form input:focus,.form select:focus,.form textarea:focus{border-color:rgba(17,17,17,.3);background:#fff}
.pay-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:130;max-width:30rem;margin-inline:auto;display:flex;align-items:flex-start;gap:1rem;border-radius:1.25rem;background:var(--ink);color:#fff;padding:1rem 1.25rem;font-size:.875rem;line-height:1.5;box-shadow:0 12px 32px rgba(0,0,0,.3)}
.pay-banner button{flex:none;color:rgba(255,255,255,.7)}
.form-error{font-size:.875rem;color:#b3261e}
.form-error:empty{display:none}
.frow{margin-top:.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.frow .note{font-size:.75rem;color:rgba(17,17,17,.45)}
.done{display:none;flex-direction:column;align-items:center;gap:1rem;padding-block:2rem;text-align:center}
.done.show{display:flex}
.done .badge{width:3.5rem;height:3.5rem;display:grid;place-items:center;border-radius:9999px;background:var(--ink);color:var(--accent-from);font-size:1.5rem}
.done h2{font-size:1.5rem;font-weight:600}
.done p{max-width:32ch;font-size:.875rem;color:rgba(17,17,17,.6)}
.mpanel.sent .mhead,.mpanel.sent .form{display:none}
/* propuesta de horarios y mi cita (js/site/propuesta.js, js/site/mi-cita.js) */
.prop-lead{font-size:.9375rem;color:rgba(17,17,17,.75)}
.popts{border:0;display:flex;flex-direction:column;gap:.5rem}
.form .popt{position:relative;display:block;text-transform:none;letter-spacing:0;color:#111;cursor:pointer}
.form .popt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.popt-in{display:flex;flex-direction:column;gap:.2rem;padding:.875rem 1rem;border:1px solid var(--line);border-radius:1rem;transition:border-color .2s,background .2s}
.popt-in strong{font-size:.9375rem;font-weight:600}
.popt-in small{font-size:.8125rem;color:rgba(17,17,17,.6)}
.popt-in em{font-style:normal;font-size:.75rem;color:#b3261e}
.popt input:checked+.popt-in{border-color:var(--ink);background:rgba(241,240,238,.7);box-shadow:inset 0 0 0 1px var(--ink)}
.popt input:focus-visible+.popt-in{outline:2px solid #b15f2c;outline-offset:2px}
.popt.off{cursor:not-allowed}.popt.off .popt-in{opacity:.6}.popt.off strong,.popt.off small{text-decoration:line-through}
.prop-msg{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.prop-msg h3{font-size:1.25rem;font-weight:600}
.prop-msg p{font-size:.9375rem;color:rgba(17,17,17,.7)}
.prop-sum{width:100%;display:flex;flex-direction:column;gap:.6rem;padding:1rem;border-radius:1rem;background:var(--surface)}
.prop-sum dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:rgba(17,17,17,.45)}
.prop-sum dd{font-size:.9375rem}
.mc-acts{display:flex;flex-wrap:wrap;gap:.5rem}
.mc-list{max-height:min(22rem,45dvh);overflow-y:auto;padding:.15rem}

@media (min-width:640px){
  .hdr-in{padding:1.5rem 2rem}
  .menu-btn .mt{display:inline}
  .hero-grid{padding-inline:2rem}
  .h1{font-size:3rem}
  .status-in{padding-inline:2rem}
  .status-in .mid{display:block}
  .about-in{padding-inline:2rem}
  .globe>.bg{font-size:16rem}
  .stmt{font-size:1.875rem}
  .band ul{flex-direction:row;gap:1rem;padding-inline:2rem}
  .tile{height:10rem;font-size:2.25rem}
  .tile .ic{font-size:3rem}
  .works-in,.services-in,.stats-in{padding-inline:2rem}
  .works .h2{font-size:3rem}
  .card{min-height:26rem;padding:2rem}
  .card-bot{inset-inline:2rem;bottom:2rem}
  .card h3{font-size:1.875rem}
  .services .h2{font-size:3rem;margin-bottom:3.5rem}
  .srow{gap:1.5rem;padding-block:2rem}
  .srow .n{width:2.5rem}
  .srow h3{font-size:1.875rem}
  .srow .arr{width:3rem;height:3rem}
  .panel{padding:4rem 2rem}
  .stat-n{font-size:3.75rem}
  .foot-in{padding-inline:2rem}
  .foot-cta .h2{font-size:3rem}
  .legal{flex-direction:row}
  .loader-brand{font-size:1.875rem}
  .nm-top{padding:1.5rem 2rem}
  .mi{font-size:3.75rem}
  .nm-bot{flex-direction:row;justify-content:space-between;padding-inline:2rem}
  .modal{align-items:center}
  .mpanel{padding:2rem}
  .mhead h2{font-size:1.875rem}
}
@media (min-width:768px){
  .clock{display:flex}
  .h1{font-size:3.75rem}
  .cards{grid-template-columns:repeat(2,1fr)}
  .srow h3{font-size:2.25rem}
  .panel{padding-inline:4rem}
  .panel .h2{font-size:2.25rem}
  .stat-n{font-size:4.5rem}
  .foot-cols{grid-template-columns:repeat(2,1fr)}
  .foot-cta .h2{font-size:3.75rem}
}
@media (min-width:1024px){
  .nav{display:block}
  .hero-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2.5rem;min-height:100lvh;padding:9rem 2rem 7rem}
  .hero-l{grid-column:span 7}
  .hero-r{grid-column:span 5;align-items:flex-end}
  .hcard,.partners{max-width:none;width:19rem}
  .partners .lbl{text-align:right}
  .about-in{grid-template-columns:1fr 1fr;padding-block:7rem}
  .globe{min-height:20rem}
  .globe>.bg{left:-1.5rem;font-size:20rem}
  .works-in{padding-bottom:7rem}
  .services-in{padding-block:7rem}
  .srow p{display:block}
  .stats-in{padding-bottom:7rem}
  .stat-grid{grid-template-columns:repeat(4,1fr)}
  .foot-in{padding-top:6rem}
  .foot-cta{flex-direction:row;align-items:flex-end;justify-content:space-between}
  .foot-cols{grid-template-columns:repeat(4,1fr)}
}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
