/* Palapa Mauricio — landing · mobile first (390 px → 768 → 1280/1440) */
:root{
  /* Identidad: azul pizarra del logo, naranja del pez, verde lima de las aletas */
  --navy:#2F434E; --deep:#1B2A33; --deepest:#111B21;
  --orange:#FE4F24; --orange-ink:#C93410; --orange-ink-d:#A82B0C;
  --lime:#B1D736;
  --cream:#F7F1E6; --sand:#EDE2CD; --paper:#FFFCF7;
  --ink:#16222A; --muted:#55646D; --line:rgba(22,34,42,.14);
  --wa:#0E8A43; --wa-d:#0A6F35;
  --wrap:1200px; --gut:20px;
  --f-head:"Bricolage Grotesque","Arial Black",system-ui,sans-serif;
  --f-body:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f-body);font-size:1.0625rem;line-height:1.55;color:var(--ink);background:var(--paper);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--f-head);margin:0;font-weight:800;letter-spacing:-.02em;line-height:1}
p{margin:0}
figure{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:#000;padding:10px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* ── Botones ───────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 26px;border-radius:999px;border:2px solid transparent;font:700 1.0625rem/1 var(--f-body);text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s,transform .15s;white-space:nowrap}
.btn:active{transform:scale(.98)}
.btn--wa{background:var(--wa);color:#fff}
.btn--wa:hover{background:var(--wa-d)}
.btn--orange{background:var(--orange-ink);color:#fff}
.btn--orange:hover{background:var(--orange-ink-d)}
.btn--line{border-color:rgba(255,255,255,.55);color:#fff}
.btn--line:hover{background:rgba(255,255,255,.1);border-color:#fff}
.link{font-weight:700;text-decoration:none;color:var(--orange-ink);display:inline-flex;gap:6px;align-items:center;min-height:44px}
.link:hover{text-decoration:underline;text-underline-offset:4px}

/* ── Navegación ────────────────────────── */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;height:60px;padding:0 12px 0 14px;color:#fff;background:rgba(17,27,33,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .3s}
.nav.is-solid{background:rgba(17,27,33,.94)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:800 1.05rem/1 var(--f-head);letter-spacing:-.01em}
.brand img{width:40px;height:40px;border-radius:50%}
.nav__links{display:none}
.nav__wa{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;background:var(--wa);color:#fff;font-weight:700;font-size:.95rem;text-decoration:none}
.nav__wa:hover{background:var(--wa-d)}

/* ── Hero ──────────────────────────────── */
.hero{position:relative;background:var(--deep);color:#fff;overflow:hidden}
.hero__media{position:relative;height:min(56svh,520px);min-height:360px;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:42% 30%;animation:zoom 14s ease-out both}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,27,33,.55) 0,rgba(17,27,33,0) 90px,rgba(17,27,33,0) 45%,rgba(27,42,51,.7) 75%,var(--deep) 100%)}
.hero__body{position:relative;padding:0 var(--gut) 40px;margin-top:-104px;z-index:1}
.hero__logo{width:76px;height:76px;border-radius:50%;box-shadow:0 0 0 4px var(--deep);margin-bottom:16px}
.hero__new{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;background:rgba(177,215,54,.14);border:1px solid rgba(177,215,54,.45);color:#E6F5B5;font-size:.85rem;font-weight:700;text-decoration:none;margin-bottom:14px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--lime);flex:none;animation:pulse 2.2s infinite}
.hero h1{font-size:clamp(3.6rem,18vw,8.5rem);line-height:.84;letter-spacing:-.035em;text-transform:uppercase}
.hero h1 span{display:block}
.hero h1 span+span{color:var(--orange)}
.hero__tag{font:500 clamp(1.35rem,5.6vw,2rem)/1.15 var(--f-head);margin-top:14px;color:#fff;letter-spacing:-.01em}
.hero__meta{margin-top:10px;font-size:.85rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#B9C6CD}
.hero__meta span{display:block}
.hero__meta i{font-style:normal;color:var(--lime);padding:0 .25em}
.hero__cta{display:grid;gap:10px;margin-top:26px}


/* ── Secciones genéricas ───────────────── */
.sec{padding-block:80px}
.head{margin-bottom:32px}
.kicker{display:flex;align-items:center;gap:10px;font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange-ink);margin-bottom:14px}
.kicker::before{content:"";width:24px;height:2px;background:currentColor;flex:none}
.kicker--lime{color:var(--lime)}
.sec h2,.exp h2{font-size:clamp(2.3rem,10vw,4.6rem);line-height:.98;letter-spacing:-.03em;max-width:16ch;text-wrap:balance}
.lead{font-size:1.1rem;color:var(--muted);margin-top:16px;max-width:40ch}
.link--light{color:var(--lime)}

/* ── Franja de marca ───────────────────── */
.ribbon{background:var(--orange-ink);color:#fff;overflow:hidden;padding:15px 0;border-top:1px solid rgba(255,255,255,.12)}
.ribbon__track{display:flex;align-items:center;gap:22px;width:max-content;animation:marquee 48s linear infinite}
.ribbon span{font:800 1.05rem/1 var(--f-head);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}
.ribbon i{width:7px;height:7px;border-radius:50%;background:var(--lime);flex:none}

/* ── Especialidades ────────────────────── */
.esp{background:var(--paper)}
.head__note{margin-top:16px;font-size:1rem;color:var(--muted)}
.esp__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-inline:calc(var(--gut) * -1 + 10px)}
.plate{position:relative;overflow:hidden;border-radius:16px;background:var(--sand)}
.plate img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.plate--lead{grid-column:1/-1}
.plate--lead img{aspect-ratio:4/4.4;object-position:50% 60%}
.plate--copa img{object-position:20% 0;transform:scale(1.45);transform-origin:20% 0}
.plate figcaption{position:absolute;left:0;right:0;bottom:0;padding:56px 16px 16px;background:linear-gradient(180deg,rgba(17,27,33,0),rgba(17,27,33,.82))}
.plate figcaption small{display:block;font:700 .72rem/1 var(--f-body);letter-spacing:.16em;color:var(--lime);margin-bottom:8px}
.plate figcaption span{font:800 1.3rem/1 var(--f-head);color:#fff;letter-spacing:-.01em}
.plate--lead figcaption{padding:80px 20px 20px}
.plate--lead figcaption span{font-size:2rem}
@media (hover:hover){.plate:hover img{transform:scale(1.04)}.plate--copa:hover img{transform:scale(1.5)}}

/* ── Experiencia ───────────────────────── */
.exp{background:var(--deep);color:#fff;padding-bottom:88px}
.exp__hero{position:relative;min-height:520px;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.exp__hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 50%;z-index:-2}
.exp__hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(27,42,51,.25) 0,rgba(27,42,51,.55) 45%,var(--deep) 100%)}
.exp__head{padding-top:160px;padding-bottom:40px}
.exp__title{font-size:clamp(2.7rem,12.5vw,6.5rem)!important;max-width:12ch!important;line-height:.94!important}
.exp__title em{font-style:normal;color:var(--orange);display:block}
.exp__lines{display:grid}
.exp__lines li{padding:28px 0 30px;border-top:1px solid rgba(255,255,255,.16);display:grid;gap:8px}
.exp__lines small{font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lime)}
.exp__big{font:800 clamp(3.4rem,17vw,5rem)/.92 var(--f-head);letter-spacing:-.04em;color:#fff}
.exp__lines li:first-child .exp__big{color:var(--orange)}
.exp__big--sm{font-size:clamp(2.3rem,10.5vw,3rem);line-height:1}
.exp__lines span{color:#CBD5DA;font-size:1.05rem;max-width:34ch}

/* ── Menú ──────────────────────────────── */
.menu{background:var(--cream)}
.menu__in{display:grid;gap:28px}
.carta{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:26px 22px 10px;box-shadow:0 1px 0 rgba(22,34,42,.04),0 18px 40px -28px rgba(22,34,42,.35)}
.carta__title{display:flex;align-items:center;gap:14px;font-size:.78rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--orange-ink);margin-bottom:6px}
.carta__title::before,.carta__title::after{content:"";height:1px;background:var(--line);flex:1}
.dishes li{display:flex;align-items:baseline;gap:14px;padding:18px 0;border-bottom:1px dashed rgba(22,34,42,.2);font:700 clamp(1.35rem,6.2vw,2rem)/1.1 var(--f-head);letter-spacing:-.02em}
.dishes li:last-child{border-bottom:0}
.dishes .n{font:700 .78rem/1 var(--f-body);letter-spacing:.08em;color:var(--orange-ink);flex:none;width:24px}
.menu__cta{justify-self:stretch}

/* ── Galería ───────────────────────────── */
.gal{background:var(--deepest);color:#fff}
.head--row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px}
.mosaic{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:160px;gap:8px;margin-inline:calc(var(--gut) * -1 + 8px)}
.m{overflow:hidden;border-radius:14px;background:#22323C}
.m--big{grid-column:1/-1;grid-row:span 2}
.m--tall{grid-row:span 2}
.g{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.m--big img{object-position:50% 35%}
.zoom{position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,252,247,.92);color:var(--ink)}
@media (hover:hover){.g:hover img{transform:scale(1.05)}}

/* ── Sucursales ────────────────────────── */
.suc{background:var(--cream)}
.suc__grid{display:grid;gap:16px}
.place{border-radius:22px;overflow:hidden;background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column}
.place__map,.place__photo,.place__brand{height:210px;background:var(--sand);flex:none}
.place__brand{background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:20px}
.place__brand img{width:84px;height:84px;border-radius:50%;box-shadow:0 0 0 5px rgba(255,255,255,.1)}
.place__brand--new{background:var(--orange-ink)}
.place__brand--new img{box-shadow:0 0 0 5px rgba(255,255,255,.18)}
.place__brand span{font:800 1.35rem/1.1 var(--f-head);letter-spacing:-.02em;color:#fff}
.place__map iframe{display:block;width:100%;height:100%;border:0}
.place__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.place__body{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:26px 22px 24px}
.place__tag{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange-ink);margin-bottom:10px}
.place h3{font-size:clamp(2.4rem,11vw,3.4rem);letter-spacing:-.035em}
.place__addr{margin:12px 0 22px;font-size:1.1rem;max-width:30ch}
.place .btn{align-self:stretch}
.place--new{background:var(--deep);border-color:var(--deep);color:#fff}
.place--new .place__tag{color:var(--lime)}
.place--new .place__addr{color:#E3EAED;margin-bottom:18px}
.place__hours{margin:0;padding:16px 0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);align-self:stretch;display:grid;gap:6px}
.place__hours dt{font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#9FB0B9}
.place__hours dd{margin:0;font-size:1.05rem;color:#E3EAED}
.place__hours strong{display:block;font:800 2rem/1.05 var(--f-head);letter-spacing:-.02em;color:#fff;margin-top:2px}
.place__note{font-size:.95rem;color:#B9C6CD;margin:14px 0 24px}

/* ── CTA final ─────────────────────────── */
.final{background:var(--orange-ink);color:#fff;text-align:center;position:relative;overflow:hidden}
.final::before{content:"";position:absolute;inset:auto -20% -60% -20%;height:90%;background:radial-gradient(closest-side,rgba(255,255,255,.12),rgba(255,255,255,0));pointer-events:none}
.final__in{position:relative;padding-block:88px;display:flex;flex-direction:column;align-items:center}
.final img{width:88px;height:88px;border-radius:50%;margin-bottom:24px;box-shadow:0 0 0 5px rgba(255,255,255,.18)}
.final h2{font-size:clamp(2.8rem,13vw,5.8rem);line-height:.92;letter-spacing:-.035em;max-width:11ch;text-wrap:balance}
.final p{margin-top:18px;color:#FFE6DE;font-size:1.1rem}
.final__cta{display:grid;gap:10px;margin-top:32px;width:100%;max-width:420px}
.btn--white{background:#fff;color:var(--wa)}
.btn--white:hover{background:#EEF7F1}

/* ── Footer ────────────────────────────── */
.footer{background:var(--deepest);color:#AFBDC5;padding-block:56px 104px;font-size:.95rem}
.footer__in{display:grid;gap:36px}
.footer .brand{color:#fff;font-size:1.2rem}
.footer .brand img{width:48px;height:48px}
.footer__slogan{font:700 1.6rem/1.1 var(--f-head);letter-spacing:-.02em;color:#fff;margin:18px 0 8px}
.footer__col h3{font:700 .75rem/1 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--lime);margin-bottom:14px}
.footer__col p{margin-bottom:14px;line-height:1.5}
.footer__col strong{color:#fff}
.footer__links{display:grid;gap:0}
.footer__links a{display:inline-flex;align-items:center;min-height:44px;color:#fff;text-decoration:none;font-weight:500}
.footer__links a:hover{text-decoration:underline;text-underline-offset:4px}
.footer__copy{color:#8697A1;font-size:.85rem;border-top:1px solid rgba(255,255,255,.1);padding-top:20px}

/* ── WhatsApp flotante ─────────────────── */
.wa-float{position:fixed;right:16px;bottom:16px;z-index:60;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:var(--wa);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.28);opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;transition:opacity .3s,transform .3s}
.wa-float.show{opacity:1;transform:none;pointer-events:auto}
.wa-float:hover{background:var(--wa-d)}

/* ── Lightbox ──────────────────────────── */
#lightbox{padding:0;border:0;background:transparent;max-width:min(94vw,960px);max-height:92svh;overflow:visible}
#lightbox::backdrop{background:rgba(10,16,20,.92)}
#lightbox img{max-width:100%;max-height:86svh;border-radius:10px;margin:auto}
.lb__close{position:absolute;top:-56px;right:0;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer}

/* ── Animaciones ───────────────────────── */
@keyframes zoom{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(177,215,54,.6)}70%{box-shadow:0 0 0 9px rgba(177,215,54,0)}100%{box-shadow:0 0 0 0 rgba(177,215,54,0)}}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ── Hero móvil (< 768): todo el mensaje y ambos CTA en la primera pantalla ── */
@media (max-width:767px){
  .hero__media{height:44svh;min-height:300px;max-height:400px}
  .hero__media img{object-position:45% 34%}
  .hero__media::after{background:linear-gradient(180deg,rgba(17,27,33,.5) 0,rgba(17,27,33,0) 80px,rgba(17,27,33,0) 40%,rgba(27,42,51,.75) 78%,var(--deep) 100%)}
  .hero__logo{display:none}
  .hero__body{margin-top:-64px;padding-bottom:28px}
  .hero__new{margin-bottom:12px}
  .hero h1{font-size:clamp(3rem,15vw,3.75rem);line-height:.86}
  .hero__tag{font-size:1.35rem;margin-top:10px}
  .hero__meta{margin-top:6px;font-size:.8rem}
  .hero__cta{margin-top:18px}
  .hero__cta .btn{min-height:52px}
}

/* ═════════ Tablet ≥ 768 ═════════ */
@media (min-width:768px){
  :root{--gut:40px}
  .sec{padding-block:112px}
  .head{margin-bottom:44px}
  .nav{height:68px;padding:0 24px}
  html{scroll-padding-top:68px}

  .hero__media{height:62vh;min-height:520px;max-height:720px}
  .hero__body{margin-top:-170px;padding-bottom:64px}
  .hero__cta{display:flex;flex-wrap:wrap;gap:12px}
  .hero__logo{width:92px;height:92px}

  .ribbon{padding:18px 0}
  .ribbon__track{gap:28px}
  .ribbon span{font-size:1.2rem}

  .head--split{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
  .head__note{margin:0 0 6px;flex:none}
  .esp__grid{grid-template-columns:1.5fr 1fr 1fr;gap:14px;margin-inline:0;height:clamp(440px,58vw,700px)}
  .plate--lead{grid-column:auto}
  .plate img,.plate--lead img{aspect-ratio:auto;height:100%}
  .plate--lead figcaption span{font-size:2.2rem}

  .exp__hero{min-height:600px}
  .exp__head{padding-top:220px;padding-bottom:56px}
  .exp__lines li{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:32px;align-items:end;padding:36px 0}
  .exp__lines small,.exp__big{grid-column:1}
  .exp__lines span{grid-column:2;grid-row:1/3;align-self:end}

  .carta{padding:34px 36px 14px}
  .menu__cta{justify-self:start}

  .mosaic{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:200px;gap:12px;margin-inline:0}
  .m--big{grid-column:span 2;grid-row:span 2}

  .suc__grid{gap:20px}
  .place{flex-direction:row}
  .place__map,.place__photo,.place__brand{height:auto;width:42%;min-height:300px}
  .place__body{padding:36px 34px 34px}
  .place .btn{align-self:flex-start;margin-top:auto}
  .place__note{margin-bottom:0}

  .final__in{padding-block:136px}
  .final__cta{display:flex;justify-content:center;max-width:none}

  .footer{padding-block:72px 48px}
  .footer__in{grid-template-columns:1.4fr 1fr 1fr;gap:40px 48px}
  .footer__copy{grid-column:1/-1}
  .wa-float{right:24px;bottom:24px}
}

/* ═════════ Desktop ≥ 1080 ═════════ */
@media (min-width:1080px){
  .nav__links{display:flex;gap:4px}
  .nav__links a{text-decoration:none;font-weight:500;font-size:.95rem;padding:10px 14px;border-radius:999px;color:#E6ECEF}
  .nav__links a:hover{background:rgba(255,255,255,.1);color:#fff}

  /* Hero dividido: tipografía a la izquierda, platillo a sangre a la derecha */
  .hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);min-height:max(100vh,700px);max-height:1000px}
  .hero__media{order:2;height:auto;min-height:0;max-height:none}
  .hero__media::after{background:linear-gradient(90deg,var(--deep) 0,rgba(27,42,51,0) 22%),linear-gradient(180deg,rgba(17,27,33,.45) 0,rgba(17,27,33,0) 120px)}
  .hero__body{order:1;margin:0;padding:120px 24px 72px max(48px,calc((100vw - var(--wrap)) / 2 + 40px));display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
  .hero h1{font-size:clamp(5.5rem,8.6vw,9rem)}
  .hero__tag{font-size:2.2rem}

  .sec{padding-block:128px}
  .sec h2,.exp h2{max-width:18ch}
  .esp__grid{gap:16px}

  .exp__hero{min-height:680px}
  .exp__head{padding-bottom:72px}
  .exp__title{font-size:clamp(4.8rem,7.4vw,7rem)!important}
  .exp__lines{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:48px}
  .exp__lines li{grid-template-columns:1fr;align-content:start;padding:36px 0 0}
  .exp__lines span{grid-column:auto;grid-row:auto;align-self:start}
  .exp__big{font-size:4.4rem}
  .exp__big--sm{font-size:2.6rem}

  .menu__in{grid-template-columns:1fr 1.15fr;column-gap:56px;align-items:start}
  .menu__head{grid-column:1;grid-row:1}
  .carta{grid-column:2;grid-row:1/3;padding:40px 44px 16px}
  .menu__cta{grid-column:1;grid-row:2;align-self:start}
  .mosaic{grid-auto-rows:250px;gap:14px}

  .suc__grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
  .place{flex-direction:column}
  .place__map,.place__photo,.place__brand{width:auto;height:260px;min-height:0}
  .place__body{padding:36px 32px 32px}
  .place h3{font-size:3rem}
}
