/* ==========================================================================
   CHIZ · Atelier de Postres — hoja de estilos de producción
   Diseño trasladado 1:1 desde el prototipo (CHIZ.dc.html)
   ========================================================================== */

/* ── Fuentes (auto-alojadas) ─────────────────────────────────────────── */
@font-face{font-family:'Melodrama';src:url('../assets/fonts/Melodrama-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Melodrama';src:url('../assets/fonts/Melodrama-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Melodrama';src:url('../assets/fonts/Melodrama-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Manrope';src:url('../assets/fonts/Manrope-Variable.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:'Caveat';src:url('../assets/fonts/Caveat-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

/* ── Tokens ──────────────────────────────────────────────────────────── */
:root{
  --bg:#1c1109;
  --bg-hero:#140c07;
  --bg-band-a:#302413;
  --bg-band-b:#291a10;
  --bg-footer:#120b06;
  --ink:#EFEEFA;
  --lilac:#DDDCF7;
  --gold:#A8894E;
  --brown:#302413;
  --paper:#e8e6e0;
  --paper-card:#fbfaf7;
  --ink-85:rgba(239,238,250,.85);
  --ink-78:rgba(239,238,250,.78);
  --ink-72:rgba(239,238,250,.72);
  --ink-68:rgba(239,238,250,.68);
  --ink-55:rgba(239,238,250,.55);
  --ink-50:rgba(239,238,250,.5);
  --ink-45:rgba(239,238,250,.45);
  --font-display:'Melodrama',Georgia,serif;
  --font-sans:'Manrope',system-ui,-apple-system,sans-serif;
  --font-hand:'Caveat',cursive;
  --pad-x:clamp(18px,5vw,64px);
  --ease-reveal:cubic-bezier(.2,.75,.25,1);
  --ease-img:cubic-bezier(.2,.7,.2,1);
  --nav-offset:66px;
}

/* ── Base ────────────────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
}
img{display:block;max-width:100%}
picture{display:contents}
a{color:inherit;text-decoration:none}
::selection{background:var(--lilac);color:var(--brown)}
:focus-visible{outline:2px solid var(--lilac);outline-offset:3px;border-radius:2px}

/* ── Animaciones ─────────────────────────────────────────────────────── */
@keyframes chizZoom{from{transform:scale(1.05)}to{transform:scale(1.18)}}
@keyframes chizRise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes chizMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes chizBounce{0%,100%{transform:translateY(0);opacity:.9}50%{transform:translateY(7px);opacity:.4}}
@keyframes chizPulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}

/* ── Utilidades ──────────────────────────────────────────────────────── */
.container{max-width:1280px;margin:0 auto}
.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}
.skip-link{position:absolute;left:12px;top:-60px;z-index:300;padding:10px 18px;background:var(--ink);color:var(--brown);border-radius:0 0 8px 8px;font-weight:700;font-size:14px;transition:top .2s}
.skip-link:focus-visible{top:0}

.kicker{font-size:11px;letter-spacing:.34em;text-transform:uppercase;font-weight:600;color:var(--ink-72);margin:0}
.kicker--dim{color:var(--ink-50)}
.kicker--dark{letter-spacing:.32em;color:rgba(48,36,19,.66)}

.op-42{object-position:50% 42%}
.op-45{object-position:50% 45%}
.op-55{object-position:50% 55%}

.section-title{font-family:var(--font-display);font-weight:400;font-size:clamp(32px,5vw,64px);line-height:1;letter-spacing:-.02em;margin:0 0 12px}
.section-lead{font-size:15px;line-height:1.6;color:rgba(239,238,250,.7);margin:0}

.btn{display:inline-flex;align-items:center;gap:9px;border-radius:100px;font-weight:700;font-size:15px;transition:transform .3s var(--ease-reveal),background .3s,color .3s,border-color .3s,box-shadow .3s}
.btn--solid{padding:16px 28px;background:var(--ink);color:var(--brown)}
.btn--outline{padding:16px 28px;border:1px solid rgba(239,238,250,.45);font-weight:600;color:var(--ink)}
.btn--pill-sm{padding:10px 18px;border:1px solid rgba(239,238,250,.5);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink)}
.btn__dot{width:7px;height:7px;border-radius:50%;background:var(--brown);flex:none}

.badge{display:inline-block;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--brown);padding:7px 16px;border-radius:100px;margin:0 0 18px}
.badge--gold{background:var(--gold)}
.badge--lilac{display:inline-flex;align-items:center;gap:9px;background:var(--lilac)}
.badge__diamond{width:6px;height:6px;background:var(--brown);transform:rotate(45deg);flex:none}

/* Scroll-reveal: solo se oculta si hay JS (html.js); sin JS todo es visible */
html.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease-reveal),transform .9s var(--ease-reveal)}
html.js .reveal--d1{transition-delay:.07s}
html.js .reveal--d2{transition-delay:.14s}
html.js .reveal--d3{transition-delay:.21s}
html.js .reveal--d4{transition-delay:.28s}
html.js .reveal.is-visible{opacity:1;transform:none;transition-delay:0s}
html.js .reveal--d1.is-visible{transition-delay:.07s}
html.js .reveal--d2.is-visible{transition-delay:.14s}
html.js .reveal--d3.is-visible{transition-delay:.21s}
html.js .reveal--d4.is-visible{transition-delay:.28s}

/* ── Botón flotante Uber Eats ────────────────────────────────────────── */
.fab-uber{
  position:fixed;right:18px;bottom:18px;z-index:120;
  display:inline-flex;align-items:center;gap:9px;
  padding:14px 20px;background:var(--ink);color:var(--brown);
  border-radius:100px;font-weight:700;font-size:14.5px;letter-spacing:.01em;
  box-shadow:0 14px 34px -10px rgba(0,0,0,.6);
  transition:transform .3s var(--ease-reveal),box-shadow .3s;
}
.fab-uber__dot{width:8px;height:8px;border-radius:50%;background:var(--brown);box-shadow:0 0 0 4px rgba(48,36,19,.18);flex:none}

/* ── Navegación ──────────────────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:90;
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;
  padding:15px var(--pad-x);
  background:rgba(28,17,9,.7);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(239,238,250,.12);
}
.nav--hidden{transform:translateY(-100%)}
.nav__brand{display:flex;align-items:center}
.nav__brand img{height:32px;width:auto}
.nav__links{display:flex;align-items:center;gap:clamp(15px,2.4vw,34px)}
.nav__link{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink-72);transition:color .25s}
.nav__toggle{display:none}
/* Sin JS el panel no puede abrirse: no mostrar un control muerto */
html:not(.js) .nav__toggle{display:none !important}
html:not(.js) .nav__links{display:flex !important}

/* ── Menú móvil ──────────────────────────────────────────────────────── */
.menu{position:fixed;inset:0;z-index:150;background:rgba(28,17,9,.97);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow:auto}
.menu[hidden]{display:none}
.menu__nav{display:flex;flex-direction:column;gap:24px;min-height:100%;padding:110px var(--pad-x) 46px}
.menu__link{font-family:var(--font-display);font-weight:500;font-size:clamp(34px,9vw,46px);line-height:1;letter-spacing:-.01em;color:var(--ink);animation:chizRise .5s both}
.menu__link:nth-child(2){animation-delay:.06s}
.menu__link:nth-child(3){animation-delay:.12s}
.menu__cta{margin-top:12px;align-self:flex-start;animation:chizRise .5s .18s both}
.menu__contact{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:34px;font-size:14.5px;color:var(--ink-85);animation:chizRise .5s .24s both}
html.menu-open{overflow:hidden}
html.menu-open .nav{transform:translateY(0);z-index:200;background:transparent;border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}

/* ── Hero ────────────────────────────────────────────────────────────── */
.hero{position:relative;min-height:calc(100svh - 65px);display:flex;align-items:flex-end;overflow:hidden;background:var(--bg-hero)}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:chizZoom 22s ease-in-out infinite alternate}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(102deg,rgba(18,11,6,.9) 6%,rgba(18,11,6,.34) 52%,rgba(18,11,6,.74) 100%)}
.hero__fade{position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(rgba(18,11,6,0),rgba(18,11,6,.75))}
.hero__content{position:relative;width:100%;max-width:1320px;margin:0 auto;padding:clamp(40px,7vw,96px) var(--pad-x)}
.hero__kicker{margin-bottom:22px;animation:chizRise .8s .05s both}
.hero__title{font-family:var(--font-display);font-weight:400;font-size:clamp(52px,10vw,150px);line-height:.9;letter-spacing:-.02em;margin:0 0 22px;max-width:14ch;animation:chizRise .9s .12s both}
.hero__title em{font-style:italic;font-weight:500}
.hero__lead{font-size:clamp(16px,1.6vw,21px);line-height:1.6;max-width:46ch;color:var(--ink-85);margin:0 0 34px;animation:chizRise .9s .22s both}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px;animation:chizRise .9s .32s both}
.hero__scroll{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;color:rgba(239,238,250,.7)}
.hero__scroll-label{font-size:9.5px;letter-spacing:.26em;text-transform:uppercase}
.hero__scroll-arrow{font-size:18px;line-height:1;animation:chizBounce 1.9s ease-in-out infinite}

/* ── Marquesina ──────────────────────────────────────────────────────── */
.marquee{overflow:hidden;background:var(--ink);color:var(--brown);padding:16px 0;border-top:1px solid rgba(48,36,19,.14);border-bottom:1px solid rgba(48,36,19,.14)}
.marquee__track{display:flex;width:max-content;white-space:nowrap;animation:chizMarquee 28s linear infinite;font-family:var(--font-display);font-style:italic;font-size:clamp(19px,2.3vw,29px)}
.marquee__group{display:flex;gap:36px;padding-right:36px}
.marquee__dot{color:var(--gold)}

/* ── Manifiesto ──────────────────────────────────────────────────────── */
.manifesto{scroll-margin-top:var(--nav-offset);padding:clamp(64px,10vw,150px) var(--pad-x);background:var(--bg);text-align:center}
.manifesto__inner{max-width:920px;margin:0 auto}
.manifesto__inner .kicker{margin-bottom:22px}
.manifesto__rule{width:38px;height:1px;background:var(--lilac);margin:0 auto 30px}
.manifesto__title{font-family:var(--font-display);font-weight:400;font-size:clamp(28px,4.6vw,60px);line-height:1.1;letter-spacing:-.015em;margin:0 0 26px}
.manifesto__title em{font-style:italic}
.manifesto__text{font-size:clamp(15px,1.5vw,19px);line-height:1.7;max-width:60ch;margin:0 auto;color:var(--ink-72)}
.manifesto__text em{font-style:italic;font-family:var(--font-display)}

/* ── Bandas de la carta ──────────────────────────────────────────────── */
.carta{scroll-margin-top:var(--nav-offset)}
.band{display:flex;flex-wrap:wrap;background:var(--bg-band-a);color:var(--ink)}
.band--alt{background:var(--bg-band-b)}
.band--reverse{flex-wrap:wrap-reverse}
.band__media{flex:1 1 400px;min-height:clamp(320px,54vh,620px);overflow:hidden;position:relative}
.band__media img{width:100%;height:100%;min-height:clamp(320px,54vh,620px);object-fit:cover;transition:transform 1.6s var(--ease-img)}
.band__body{flex:1 1 380px;display:flex;flex-direction:column;justify-content:center;gap:15px;padding:clamp(34px,5vw,88px)}
.band__kicker{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-55)}
.band__kicker-dot{width:6px;height:6px;border-radius:50%;background:var(--lilac);flex:none}
.band__title{font-family:var(--font-display);font-weight:500;font-size:clamp(40px,6vw,86px);line-height:.98;letter-spacing:-.02em;margin:0}
.band__title--sm{font-size:clamp(36px,5.4vw,74px)}
.band__desc{font-size:clamp(15px,1.5vw,18px);line-height:1.65;max-width:38ch;color:var(--ink-78);margin:0}
.band__meta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(239,238,250,.56);padding-top:6px;border-top:1px solid rgba(239,238,250,.15);max-width:38ch;margin:0}

/* ── Cards (trío, temporada, to-go) ──────────────────────────────────── */
.card{margin:0}
.card__frame{position:relative;overflow:hidden;border:1px solid rgba(239,238,250,.2)}
.card__img{width:100%;height:300px;object-fit:cover;transition:transform 1.1s var(--ease-reveal)}
.card__img--tall{height:340px}
.card__tag{position:absolute;top:12px;left:12px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;background:rgba(28,17,9,.72);color:var(--ink);border:1px solid rgba(239,238,250,.35);padding:5px 10px;border-radius:100px}
.card__tag--lilac{font-size:9.5px;font-weight:700;background:var(--lilac);color:var(--brown);border:0;padding:5px 11px}
.card__title{font-family:var(--font-display);font-weight:500;font-size:20px;margin:14px 0 6px}
.card__title--md{font-size:22px;margin:15px 0 6px}
.card__title--lg{font-size:24px}
.card__desc{font-size:12.5px;line-height:1.55;color:rgba(239,238,250,.66);margin:0}
.card__desc--md{font-size:13px;color:var(--ink-68)}
.card__desc--lg{font-size:13.5px;color:var(--ink-68)}
/* Tras el reveal, el lift de la card responde rápido al hover */
html.js .card--lift.is-visible{transition:opacity .9s var(--ease-reveal),transform .35s var(--ease-reveal)}
.card--lift{transition:transform .35s var(--ease-reveal)}

.trio{padding:clamp(50px,7vw,100px) var(--pad-x);background:var(--bg)}
.trio__grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(18px,2.4vw,32px)}
.trio .card__frame{border-color:rgba(239,238,250,.16)}
.trio .card__img{transition:transform 1.2s}

/* ── Divider parallax (clip-path: funciona también en iOS) ───────────── */
.parallax{position:relative;min-height:clamp(340px,56vh,580px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:60px 24px}
.parallax__clip{position:absolute;inset:0;clip-path:inset(0);pointer-events:none}
.parallax__img{position:fixed;top:0;left:0;width:100vw;height:100lvh;object-fit:cover;z-index:-1}
.parallax__scrim{position:absolute;inset:0;background:rgba(20,12,7,.6)}
.parallax__kicker{position:relative;color:rgba(239,238,250,.7)}
.parallax__quote{position:relative;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(30px,5.5vw,74px);line-height:1.05;margin:0;color:var(--ink)}

/* ── Fuera de temporada ──────────────────────────────────────────────── */
.season{scroll-margin-top:var(--nav-offset);padding:clamp(60px,8vw,120px) var(--pad-x);background:var(--bg)}
.season__head{margin-bottom:clamp(34px,5vw,58px);max-width:62ch}
.season__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:clamp(18px,2.4vw,30px)}

/* ── CHIZ to-go! ─────────────────────────────────────────────────────── */
.togo{scroll-margin-top:var(--nav-offset);position:relative;padding:clamp(60px,8vw,120px) var(--pad-x);background:radial-gradient(78% 68% at 50% 40%,#2d2c28 0%,#201f1c 80%)}
.togo__head{margin-bottom:clamp(34px,5vw,58px);max-width:64ch}
.togo__head .section-lead{color:var(--ink-72)}
.togo__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),340px));justify-content:center;gap:clamp(18px,2.4vw,32px)}

/* ── Moodboard ───────────────────────────────────────────────────────── */
.mood{padding:clamp(48px,6.5vw,96px) var(--pad-x);background:var(--paper);color:var(--brown)}
.mood__container{max-width:1120px;margin:0 auto}
.mood__head{text-align:center;margin-bottom:clamp(24px,3.5vw,42px)}
.mood__head .kicker{margin-bottom:12px}
.mood__title{font-family:var(--font-display);font-weight:400;font-size:clamp(28px,4vw,52px);line-height:1;letter-spacing:-.02em;margin:0 0 10px}
.mood__lead{font-size:13.5px;letter-spacing:.04em;color:rgba(48,36,19,.68);margin:0}
.mood__board{position:relative;container-type:inline-size;width:100%;max-width:1100px;margin:0 auto;aspect-ratio:1100/545;overflow:hidden}
.mood__item{position:absolute;left:var(--x);top:var(--y);width:var(--w);aspect-ratio:var(--ar,4/5);margin:0;overflow:hidden;transform:rotate(var(--r,0deg));z-index:var(--z,1);box-shadow:0 16px 32px -14px rgba(48,36,19,.5);outline:1px solid rgba(48,36,19,.05)}
.mood__item img{width:100%;height:100%;object-fit:cover}
.mood__caption{position:absolute;left:6%;bottom:6%;background:var(--paper-card);color:var(--brown);font:600 clamp(8px,1.15cqw,12.5px)/1 var(--font-sans);letter-spacing:.02em;padding:.55em .75em;box-shadow:0 3px 9px -3px rgba(48,36,19,.4);white-space:nowrap}
.mood__item--1{--x:-3%;--y:9%;--w:20%;--ar:4/5;--r:-2deg;--z:3}
.mood__item--2{--x:17%;--y:-2%;--w:16%;--ar:1/1;--r:3deg;--z:4}
.mood__item--3{--x:26%;--y:13%;--w:14%;--ar:4/5;--r:-3deg;--z:6}
.mood__item--4{--x:51%;--y:-3%;--w:25%;--ar:3/2;--r:1.5deg;--z:3}
.mood__item--4 .mood__caption{left:5%;bottom:8%}
.mood__item--5{--x:79%;--y:12%;--w:16%;--ar:4/5;--r:2deg;--z:2}
.mood__item--6{--x:27%;--y:29%;--w:32%;--ar:3/2;--r:1deg;--z:1;box-shadow:0 18px 38px -16px rgba(48,36,19,.55)}
.mood__item--6 .mood__caption{left:4%;bottom:7%}
.mood__item--7{--x:-2%;--y:40%;--w:22%;--ar:4/5;--r:2deg;--z:4}
.mood__item--8{--x:63%;--y:33%;--w:20%;--ar:1/1;--r:-2deg;--z:5}
.mood__item--9{--x:22%;--y:58%;--w:20%;--ar:4/3;--r:-2deg;--z:6}
.mood__item--9 .mood__caption{left:5%;bottom:8%}
.mood__item--10{--x:41%;--y:57%;--w:17%;--ar:1/1;--r:3deg;--z:7}
.mood__item--11{--x:56%;--y:63%;--w:19%;--ar:3/2;--r:-2deg;--z:4}
.mood__item--12{--x:77%;--y:51%;--w:17%;--ar:4/5;--r:2deg;--z:5}
.mood__note{position:absolute;z-index:9;font:700 clamp(15px,2.7cqw,32px)/1 var(--font-hand);color:var(--brown)}
.mood__note--1{left:2%;top:1%;transform:rotate(-7deg)}
.mood__note--2{left:62%;top:26%;font-size:clamp(13px,2.3cqw,27px);transform:rotate(5deg)}
.mood__note--mobile{display:none}
.mood__arrow{position:absolute;z-index:9;height:auto;overflow:visible}
.mood__arrow--1{left:8%;top:8%;width:8%}
.mood__arrow--2{left:55%;top:31%;width:9%}

/* ── Personalizadas ──────────────────────────────────────────────────── */
.custom{padding:clamp(60px,9vw,120px) var(--pad-x);background:var(--bg)}
.custom__grid{max-width:1180px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(30px,5vw,72px);align-items:center}
.custom__body .kicker{letter-spacing:.3em;margin-bottom:16px}
.custom__title{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4vw,54px);line-height:1.02;letter-spacing:-.02em;margin:0 0 20px}
.custom__text{font-size:clamp(15px,1.4vw,18px);line-height:1.65;color:var(--ink-78);margin:0 0 30px}
.custom__body .btn--solid{padding:15px 26px;font-size:14.5px}
.custom__media{margin:0}
.custom__frame{overflow:hidden;border:1px solid rgba(239,238,250,.18)}
.custom__frame img{width:100%;height:clamp(300px,36vw,460px);object-fit:cover}

/* ── Tienda ──────────────────────────────────────────────────────────── */
.shop{scroll-margin-top:var(--nav-offset);padding:clamp(60px,8vw,120px) var(--pad-x);background:var(--bg-band-b)}
.shop__grid{max-width:1180px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(28px,5vw,66px);align-items:center}
.shop__info .kicker{letter-spacing:.3em;margin-bottom:16px}
.shop__title{font-family:var(--font-display);font-weight:400;font-size:clamp(32px,4.4vw,58px);line-height:1.01;letter-spacing:-.02em;margin:0 0 26px}
.shop__details{display:flex;flex-direction:column;gap:20px;max-width:38ch}
.shop__label{font-size:10.5px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-50);margin:0 0 5px}
.shop__address{font-size:17px;line-height:1.5;margin:0}
.shop__hours{font-size:15px;line-height:1.7;color:rgba(239,238,250,.82);margin:0}
.shop__ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.shop__ctas .btn--solid{padding:14px 24px;font-size:14px}
.shop__ctas .btn--outline{padding:14px 24px;font-size:14px;border-color:rgba(239,238,250,.4)}

/* ── Mapa decorativo ─────────────────────────────────────────────────── */
.map{display:block}
.map__canvas{position:relative;aspect-ratio:5/4;border:1px solid rgba(239,238,250,.22);overflow:hidden;background:#15110b;box-shadow:inset 0 0 90px rgba(0,0,0,.55)}
.map__block{position:absolute;background:#242019;border:1px solid rgba(239,238,250,.05);border-radius:3px}
.map__block--b{background:#221c15}
.map__block--c{background:#231d16}
.map__park{position:absolute;left:35%;top:34%;width:27%;height:22%;background:linear-gradient(150deg,#26332b,#1f2a23);border:1px solid rgba(160,190,150,.12);border-radius:5px}
.map__tree{position:absolute;border-radius:50%;background:rgba(150,180,140,.5)}
.map__tree--dim{background:rgba(150,180,140,.42)}
.map__block--1{left:2%;top:3%;width:27%;height:25%}
.map__block--2{left:35%;top:3%;width:27%;height:25%}
.map__block--3{left:68%;top:3%;width:30%;height:25%}
.map__block--4{left:2%;top:34%;width:27%;height:22%}
.map__block--5{left:68%;top:34%;width:30%;height:22%}
.map__block--6{left:2%;top:62%;width:27%;height:35%}
.map__block--7{left:35%;top:70%;width:27%;height:27%}
.map__block--8{left:68%;top:62%;width:30%;height:35%}
.map__tree--1{left:41%;top:39%;width:9px;height:9px}
.map__tree--2{left:50%;top:45%;width:11px;height:11px}
.map__tree--3{left:55%;top:38%;width:7px;height:7px}
.map__street-main{position:absolute;left:-4%;top:59%;width:108%;height:8%;background:rgba(221,220,247,.13);transform:rotate(-4deg)}
.map__street-main-dash{position:absolute;left:-4%;top:62.6%;width:108%;height:0;border-top:1.5px dashed rgba(221,220,247,.5);transform:rotate(-4deg)}
.map__street-cross{position:absolute;left:30.5%;top:-4%;width:4%;height:108%;background:rgba(221,220,247,.05)}
.map__street-cross-dash{position:absolute;left:32.4%;top:-4%;width:0;height:108%;border-left:1px dashed rgba(221,220,247,.28)}
.map__street-label{position:absolute;font:600 8.5px/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.map__street-label--main{left:52%;top:57.5%;transform:translate(-50%,-50%) rotate(-4deg);color:rgba(239,238,250,.6)}
.map__street-label--cross{left:31%;top:20%;transform:translate(-50%,-50%) rotate(90deg);font-size:8px;color:rgba(239,238,250,.4)}
.map__compass{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(239,238,250,.25);background:rgba(21,17,11,.6);display:flex;align-items:center;justify-content:center}
.map__compass-needle{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:13px solid var(--lilac);margin-top:-6px}
.map__compass-n{position:absolute;top:2px;left:50%;transform:translateX(-50%);font:700 7px/1 var(--font-sans);color:var(--lilac)}
.map__scale{position:absolute;left:14px;bottom:14px;display:flex;flex-direction:column;gap:4px}
.map__scale-bar{display:flex;align-items:flex-end;height:7px}
.map__scale-bar span:nth-child(1),.map__scale-bar span:nth-child(3){width:1px;height:7px;background:rgba(239,238,250,.5)}
.map__scale-bar span:nth-child(2){width:44px;height:1px;background:rgba(239,238,250,.5);align-self:center}
.map__scale-text{font:600 8px/1 var(--font-sans);letter-spacing:.1em;color:var(--ink-45)}
.map__pin{position:absolute;left:32.4%;top:60.5%;transform:translate(-50%,-100%);z-index:6}
.map__pin-shadow{position:absolute;left:50%;top:100%;width:30px;height:9px;margin-left:-15px;border-radius:50%;background:rgba(0,0,0,.55);filter:blur(3px)}
.map__pin-pulse{position:absolute;left:50%;top:100%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:var(--lilac);opacity:.5;animation:chizPulse 2.6s ease-out infinite}
.map__pin-body{position:relative;display:flex;flex-direction:column;align-items:center}
.map__pin-circle{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#f3f2fb,var(--lilac));border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 22px -6px rgba(0,0,0,.75)}
.map__pin-circle img{width:26px;height:26px;object-fit:contain}
.map__pin-tip{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:11px solid var(--lilac);margin-top:-3px;filter:drop-shadow(0 4px 3px rgba(0,0,0,.4))}
.map__callout{position:absolute;left:38%;top:36%;max-width:46%;background:var(--paper-card);color:var(--brown);padding:9px 12px;border-radius:4px;box-shadow:0 12px 26px -8px rgba(0,0,0,.7)}
.map__callout-title{font:700 11px/1.1 var(--font-display);letter-spacing:.01em;margin-bottom:3px}
.map__callout-sub{font:500 9.5px/1.35 var(--font-sans);letter-spacing:.02em;color:rgba(48,36,19,.7)}
.map__district{position:absolute;left:14px;top:12px;font:600 8.5px/1 var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:rgba(239,238,250,.32)}
.map__cta{position:absolute;right:12px;bottom:13px;display:inline-flex;align-items:center;gap:5px;font:600 9.5px/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;background:rgba(48,36,19,.7);color:var(--ink);padding:7px 11px;border:1px solid rgba(239,238,250,.18);border-radius:100px}
.map__vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 32% 60%,transparent 45%,rgba(0,0,0,.4))}

/* ── Footer ──────────────────────────────────────────────────────────── */
.footer{background:var(--bg-footer);color:var(--ink);padding:clamp(50px,6vw,84px) var(--pad-x) 34px}
.footer__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:36px;padding-bottom:44px;border-bottom:1px solid rgba(239,238,250,.18)}
.footer__brand img{height:44px;width:auto;margin-bottom:18px}
.footer__tagline{font-family:var(--font-display);font-style:italic;font-size:22px;line-height:1.2;margin:0;max-width:20ch;color:rgba(239,238,250,.9)}
.footer__label{font-size:10.5px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-50);margin:0 0 16px}
.footer__links{display:flex;flex-direction:column;gap:11px;font-size:14.5px}
.footer__links a{color:var(--ink-85);transition:color .25s}
.footer__hours{color:rgba(239,238,250,.6);font-size:13px;line-height:1.6}
.footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:22px;font-size:11.5px;letter-spacing:.08em;color:var(--ink-50)}
.footer__hash{letter-spacing:.16em;text-transform:uppercase}

/* ── Hovers (solo dispositivos con puntero fino) ─────────────────────── */
@media (hover:hover) and (pointer:fine){
  .btn--solid:hover{transform:translateY(-2px)}
  .btn--outline:hover,.btn--pill-sm:hover{background:var(--ink);color:var(--brown);border-color:var(--ink)}
  .fab-uber:hover{transform:translateY(-2px);box-shadow:0 20px 44px -10px rgba(0,0,0,.7)}
  .nav__link:hover{color:var(--lilac)}
  .band__media:hover img{transform:scale(1.07)}
  .trio .card:hover .card__img{transform:scale(1.06)}
  .card--lift:hover{transform:translateY(-5px)}
  .card--lift:hover .card__img{transform:scale(1.07)}
  .footer__links a:hover{color:var(--lilac)}
}
/* Equivalentes de teclado */
.btn--solid:focus-visible{transform:translateY(-2px)}
.btn--outline:focus-visible,.btn--pill-sm:focus-visible{background:var(--ink);color:var(--brown);border-color:var(--ink)}
.nav__link:focus-visible{color:var(--lilac)}
.footer__links a:focus-visible{color:var(--lilac)}

/* ── Móvil ───────────────────────────────────────────────────────────── */
@media (max-width:720px){
  .nav{padding:12px var(--pad-x)}
  .nav__brand img{height:26px}
  .nav__links{display:none}
  .nav__toggle{
    display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
    width:44px;height:44px;margin:-6px -8px -6px 0;padding:0;
    background:transparent;border:0;cursor:pointer;
  }
  .nav__toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease-reveal),opacity .2s}
  html.menu-open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  html.menu-open .nav__toggle span:nth-child(2){opacity:0}
  html.menu-open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  .fab-uber{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));padding:12px 16px;font-size:13px}

  .hero{min-height:calc(100svh - 58px)}
  /* Deja sitio al indicador "Descubre" bajo los CTA apilados */
  .hero__content{padding-bottom:84px}

  /* Moodboard → rejilla de 2 columnas conservando el alma polaroid */
  .mood__board{aspect-ratio:auto;overflow:visible;display:grid;grid-template-columns:1fr 1fr;gap:16px 14px;padding-top:6px}
  .mood__item{position:static;width:auto;aspect-ratio:4/5;transform:rotate(-1.6deg)}
  .mood__item:nth-child(even){transform:rotate(1.8deg)}
  .mood__caption{font-size:11px}
  .mood__note--1,.mood__note--2,.mood__arrow{display:none}
  .mood__note--mobile{display:block;position:static;text-align:center;font:700 30px/1 var(--font-hand);color:var(--brown);transform:rotate(-4deg);margin:0 0 16px}

  /* Mapa: etiquetas algo más legibles */
  .map__street-label--main{font-size:9.5px}
  .map__street-label--cross{font-size:9px}
  .map__callout-title{font-size:12px}
  .map__callout-sub{font-size:10px}
}

/* ── Movimiento reducido ─────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero__img,.marquee__track,.hero__scroll-arrow,.map__pin-pulse,
  .hero__kicker,.hero__title,.hero__lead,.hero__ctas,
  .menu__link,.menu__cta,.menu__contact{animation:none}
  html.js .reveal{opacity:1;transform:none;transition:none}
  .band__media img,.card__img,.card--lift,.btn,.fab-uber{transition:none}
}
