/* ====================================================================
   BRASA — Steak House · main.css
   Palette estratta dal logo: slate scuro + rame caldo
   ==================================================================== */

:root{
  /* Colori brand */
  --bg-0:        #16202A;       /* fondo profondo */
  --bg-1:        #1D2830;       /* slate del logo */
  --bg-2:        #243038;       /* superfici elevate */
  --bg-3:        #2C3A44;       /* bordi/cards */

  --copper:      #C8202E;       /* rosso brand Brasa (dal logo) */
  --copper-soft: #E62736;       /* rosso chiaro (highlight) */
  --copper-deep: #9B1623;       /* rosso profondo (hover) */
  --copper-glow: rgba(230,39,54,0.22);

  --cream:       #EFE3CF;       /* crema caldo */
  --cream-soft:  #F8F1E3;
  --paper:       #F4EAD6;       /* carta menu */
  --ink:         #1A2129;       /* testo su carta */

  --text:        #E9DEC8;
  --text-mute:   #A6ADB3;
  --text-faint:  rgba(233,222,200,0.55);

  --line:        rgba(217,135,79,0.22);
  --line-soft:   rgba(255,255,255,0.07);

  /* Tipografia */
  --ff-display:  "Playfair Display", "Cormorant Garamond", Georgia, serif;
  --ff-serif:    "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --ff-body:     "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ff-script:   "Tangerine", "Cormorant Garamond", cursive;

  /* Misure */
  --container:   min(1280px, 92vw);
  --radius:      4px;
  --radius-lg:   12px;

  /* Easings & durate */
  --e-out:       cubic-bezier(.2,.7,.2,1);
  --e-in-out:    cubic-bezier(.65,0,.35,1);
  --e-elastic:   cubic-bezier(.16,1,.3,1);

  --t-fast:      .35s;
  --t-mid:       .7s;
  --t-slow:      1.2s;
}

/* ============= RESET MIN ============= */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
/* Offset for sticky/fixed header when navigating via anchor */
:where(section[id], div[id]){scroll-margin-top:90px}
/* Carta page has sticky tabs in addition to header — need more offset */
:where(.paper-block[id]){scroll-margin-top:140px}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
body{
  margin:0;
  font-family:var(--ff-body);
  font-weight:400;
  line-height:1.6;
  color:var(--text);
  background:var(--bg-0);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video,iframe{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color var(--t-fast) var(--e-out)}
a:hover{color:var(--copper-soft)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
ul,ol{list-style:none;margin:0;padding:0}
::selection{background:var(--copper);color:var(--cream-soft)}

.container{width:var(--container);margin-inline:auto}

/* ============= TIPOGRAFIA ============= */
.display{
  font-family:var(--ff-display);
  font-weight:600;
  font-size:clamp(2.4rem, 5.6vw, 5.5rem);
  line-height:.98;
  letter-spacing:-.015em;
  margin:0 0 .5em;
  color:var(--cream-soft);
}
.display i{
  font-style:italic;
  color:var(--copper-soft);
  font-weight:500;
}
.eyebrow{
  display:inline-flex;align-items:center;gap:.65rem;
  font-family:var(--ff-body);
  text-transform:uppercase;
  letter-spacing:.32em;
  font-size:.72rem;
  color:var(--copper-soft);
  font-weight:500;
  margin:0 0 1.2rem;
}

p{margin:0 0 1em;color:var(--text-mute);font-size:1rem;font-weight:300}
strong{color:var(--text);font-weight:500}
em{font-style:italic}

.brand-mark{
  font-family:var(--ff-display);
  font-weight:700;
  font-size:1.45rem;
  letter-spacing:.18em;
  color:var(--copper-soft);
  display:inline-block;
}
.brand-sub{
  display:block;
  font-family:var(--ff-body);
  font-size:.62rem;
  letter-spacing:.5em;
  color:var(--text-faint);
  text-transform:uppercase;
  margin-top:2px;
}

/* ============= BUTTONS ============= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1rem 1.8rem;
  font-family:var(--ff-body);
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  border-radius:var(--radius);
  border:1px solid transparent;
  position:relative;
  cursor:pointer;
  transition:all .4s var(--e-out);
  overflow:hidden;
  isolation:isolate;
}
.btn--primary{
  background:var(--copper);
  color:var(--cream-soft);
  border-color:var(--copper);
}
.btn--primary::before{
  content:"";position:absolute;inset:0;background:var(--copper-deep);
  transform:translateY(101%);transition:transform .55s var(--e-out);
  z-index:-1;
}
.btn--primary:hover{color:var(--cream-soft);transform:translateY(-2px);box-shadow:0 14px 40px -16px var(--copper-glow)}
.btn--primary:hover::before{transform:translateY(0)}

.btn--ghost{
  background:transparent;
  color:var(--text);
  border-color:rgba(255,255,255,0.18);
}
.btn--ghost:hover{
  border-color:var(--copper-soft);
  color:var(--copper-soft);
  transform:translateY(-2px);
}
.btn--small{padding:.7rem 1.2rem;font-size:.7rem}
.btn--full{width:100%}

/* WhatsApp button — brand green */
.btn--wa{
  background:#25D366;
  color:#fff;
  border-color:#25D366;
  display:inline-flex;align-items:center;gap:.6rem;
}
.btn--wa::before{
  content:"";position:absolute;inset:0;background:#1FAD53;
  transform:translateY(101%);transition:transform .55s var(--e-out);z-index:-1;
}
.btn--wa:hover{
  color:#fff;
  border-color:#1FAD53;
  transform:translateY(-2px);
  box-shadow:0 18px 40px -16px rgba(37,211,102,.55);
}
.btn--wa:hover::before{transform:translateY(0)}
.btn--wa svg{width:18px;height:18px;flex-shrink:0;fill:currentColor}

/* OpenTable button — red, pulsing for attention */
.btn--ot{
  background:#DA3743;
  color:#fff;
  border-color:#DA3743;
  display:inline-flex;align-items:center;gap:.7rem;
  animation:btnPulse 2.4s ease-out infinite;
}
.btn--ot::before{
  content:"";position:absolute;inset:0;background:#B82E39;
  transform:translateY(101%);transition:transform .55s var(--e-out);z-index:-1;
}
.btn--ot:hover{
  color:#fff;
  border-color:#B82E39;
  transform:translateY(-2px);
  box-shadow:0 18px 40px -16px rgba(218,55,67,.55);
  animation:none;
}
.btn--ot:hover::before{transform:translateY(0)}
.btn--ot .ot-dot{
  display:inline-block;width:11px;height:11px;border-radius:50%;
  background:#fff;border:2px solid #DA3743;flex-shrink:0;
  box-shadow:0 0 0 2px #fff;
}

@keyframes btnPulse{
  0%   {box-shadow:0 0 0 0 rgba(218,55,67,.55)}
  60%  {box-shadow:0 0 0 14px rgba(218,55,67,0)}
  100% {box-shadow:0 0 0 0 rgba(218,55,67,0)}
}

/* Attention pulse for hero CTAs */
.btn--attn{
  animation:attnGlow 2.6s ease-in-out infinite;
}
@keyframes attnGlow{
  0%, 100% {box-shadow:0 0 0 0 var(--copper-glow), 0 8px 24px -16px rgba(0,0,0,.4)}
  50%      {box-shadow:0 0 0 12px rgba(217,135,79,0), 0 14px 40px -16px var(--copper-glow)}
}

.link-arrow{
  display:inline-flex;align-items:center;gap:.5rem;
  color:var(--copper-soft);
  font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
  border-bottom:1px solid transparent;padding-bottom:2px;
  transition:all .35s var(--e-out);
}
.link-arrow::after{content:"→";transition:transform .35s var(--e-out)}
.link-arrow:hover{border-color:var(--copper-soft)}
.link-arrow:hover::after{transform:translateX(6px)}

/* ============= INTRO LOADER ============= */
.intro{
  position:fixed;inset:0;z-index:1000;
  background:var(--bg-1);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .8s var(--e-out), visibility .8s var(--e-out);
}
.intro.is-done{opacity:0;visibility:hidden;pointer-events:none}
.intro__inner{
  display:flex;align-items:center;gap:1.4rem;
  opacity:0;transform:translateY(8px);
  animation:introFade .9s var(--e-out) forwards .1s;
}
.intro__brand{
  font-family:var(--ff-display);font-weight:700;
  font-size:clamp(2.5rem,7vw,4.5rem);
  letter-spacing:.18em;color:var(--copper-soft);
}
.intro__tag{
  font-family:var(--ff-body);font-size:.65rem;letter-spacing:.6em;
  color:var(--text-faint);text-transform:uppercase;
  padding-left:.6em;border-left:1px solid var(--line);
}
.intro__rule{display:block;width:60px;height:1px;background:var(--copper);transform-origin:right;animation:ruleIn .7s var(--e-out) forwards .25s;transform:scaleX(0)}
.intro__rule--right{transform-origin:left}
.intro__progress{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);
  width:140px;height:1px;background:rgba(255,255,255,.08);overflow:hidden;
}
.intro__progress::after{
  content:"";position:absolute;inset:0;background:var(--copper);
  transform:translateX(-100%);animation:progressBar 1.7s var(--e-out) forwards .25s;
}
@keyframes introFade{to{opacity:1;transform:none}}
@keyframes ruleIn{to{transform:scaleX(1)}}
@keyframes progressBar{to{transform:translateX(0)}}

/* ============= HEADER ============= */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:90;
  padding:18px 0;
  transition:background .35s var(--e-out), backdrop-filter .35s var(--e-out), padding .35s var(--e-out), border-color .35s var(--e-out);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(22,32,42,.78);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom-color:var(--line-soft);
  padding:10px 0;
}
.site-header__bar{
  width:var(--container);margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
}
.site-header__brand{display:flex;flex-direction:column;line-height:1}

.site-nav{display:flex;gap:2.4rem}
.site-nav a{
  position:relative;
  font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--text);font-weight:500;
  padding:6px 0;
}
.site-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--copper);transform:scaleX(0);transform-origin:right;
  transition:transform .45s var(--e-out);
}
.site-nav a:hover{color:var(--copper-soft)}
.site-nav a:hover::after{transform:scaleX(1);transform-origin:left}

@media (max-width: 980px){
  .site-nav, .site-header__bar > .btn{display:none}
}

.hamburger{
  display:none;width:42px;height:42px;
  flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border:1px solid var(--line-soft);border-radius:var(--radius);
}
.hamburger span{display:block;width:18px;height:1px;background:var(--text);transition:transform .35s var(--e-out), opacity .25s}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width: 980px){.hamburger{display:flex}}

.mobile-nav-backdrop{
  position:fixed;inset:0;z-index:88;
  background:rgba(0,0,0,.55);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  opacity:0;visibility:hidden;
  transition:opacity .35s var(--e-out), visibility .35s;
}
.mobile-nav-backdrop.is-open{opacity:1;visibility:visible}

.mobile-nav{
  position:fixed;top:0;right:0;width:min(86vw,380px);
  height:100vh;
  height:100dvh;
  background:var(--bg-1);
  border-left:1px solid var(--line-soft);
  padding:88px 32px 32px;
  transform:translateX(100%);
  transition:transform .5s var(--e-in-out);
  z-index:95;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  box-shadow:-30px 0 80px -20px rgba(0,0,0,.5);
  pointer-events:none;
}
.mobile-nav.is-open{transform:translate3d(0,0,0);pointer-events:auto}
.mobile-nav nav{display:flex;flex-direction:column;gap:1.4rem}
.mobile-nav a{
  font-family:var(--ff-display);font-size:1.6rem;letter-spacing:.04em;color:var(--text);
  padding:.4rem 0;display:block;
}
.mobile-nav a:hover, .mobile-nav a:focus-visible{color:var(--copper-soft)}
.mobile-nav__cta{
  margin-top:1.5rem;font-family:var(--ff-body)!important;font-size:.85rem!important;
  letter-spacing:.28em!important;text-transform:uppercase;color:var(--copper-soft)!important;
  padding-top:1.4rem!important;border-top:1px solid var(--line);
}

/* Hamburger above nav so it stays clickable as close button */
.hamburger{position:relative;z-index:100}
.site-header{z-index:90}
.site-header.is-nav-open{z-index:96}

/* Hide floats while nav is open */
body.is-nav-open .float-social,
body.is-nav-open .float-wa{
  opacity:0;pointer-events:none;
  transition:opacity .25s var(--e-out);
}
body.is-nav-open{overflow:hidden}

/* ============= HERO ============= */
.hero{
  position:relative;height:100vh;min-height:680px;max-height:1000px;
  overflow:hidden;background:var(--bg-1);
  display:flex;align-items:center;justify-content:center;
}
.hero__slides{position:absolute;inset:0}
.hero__slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;
  transform:scale(1);
  /* fade out: opacity transitions normally, transform stays put then snaps back when invisible */
  transition:opacity 1.6s var(--e-in-out), transform 0s 1.6s;
  will-change:opacity, transform;
}
.hero__slide.is-active{
  opacity:1;
  transform:scale(1.14);
  /* when active: slow zoom-in (no retreat), opacity fades in */
  transition:opacity 1.6s var(--e-in-out), transform 8s linear;
}
@media (max-width: 720px){
  /* lighter zoom on mobile — better perf, no parallax-y feel needed */
  .hero__slide{transition:opacity 1.4s var(--e-in-out), transform 0s 1.4s}
  .hero__slide.is-active{transform:scale(1.08);transition:opacity 1.4s var(--e-in-out), transform 6s linear}
}
@media (prefers-reduced-motion: reduce){
  .hero__slide.is-active{transform:none;transition:opacity 1s var(--e-in-out)}
}

.hero__veil{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 50% 100%, rgba(22,32,42,.88) 0%, rgba(22,32,42,.55) 40%, rgba(22,32,42,.2) 70%),
    linear-gradient(180deg, rgba(22,32,42,.55) 0%, rgba(22,32,42,.25) 30%, rgba(22,32,42,.85) 100%);
}
.hero__grain{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    radial-gradient(rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:3px 3px, 5px 5px;background-position:0 0, 1px 1px;
  mix-blend-mode:overlay;opacity:.35;
}

.hero__content{
  position:relative;z-index:2;text-align:center;
  padding:0 24px;max-width:900px;
}
.hero__eyebrow{
  display:inline-flex;align-items:center;gap:.8rem;
  font-size:.7rem;letter-spacing:.45em;text-transform:uppercase;
  color:var(--cream);font-weight:500;margin-bottom:1.6rem;
  opacity:0;transform:translateY(10px);
}
.hero__eyebrow .dash{display:inline-block;width:34px;height:1px;background:var(--copper-soft)}
.is-revealed .hero__eyebrow{opacity:1;transform:none;transition:all .9s var(--e-out)}

.hero__title{
  font-family:var(--ff-display);font-weight:700;
  font-size:clamp(4.5rem, 14vw, 11rem);
  letter-spacing:.04em;line-height:.9;
  color:var(--cream-soft);
  margin:0 0 1.4rem;
  text-shadow:0 30px 80px rgba(0,0,0,.45);
}
.hero__title .char{display:inline-block;transform:translateY(110%);opacity:0;will-change:transform,opacity}
.hero__title.is-shown .char{
  animation:charIn 1.05s var(--e-elastic) forwards;
}
@keyframes charIn{to{transform:translateY(0);opacity:1}}

/* Logo image as headline (replaces text) */
.hero__title--logo{
  display:flex;align-items:center;justify-content:center;
  margin:0 0 1.8rem;
  text-shadow:none;font-size:0;
  opacity:0;transform:scale(.92);
  animation:logoIn 1.4s var(--e-elastic) .25s forwards;
}
.hero__title--logo img{
  width:min(360px, 72vw);
  height:auto;
  /* Subtle blend so the dark frame fades into the dark hero veil, keeping the sticker effect */
  mix-blend-mode:lighten;
  filter:drop-shadow(0 24px 60px rgba(0,0,0,.55));
}
@keyframes logoIn{
  to{opacity:1;transform:scale(1)}
}
@media (max-width:720px){
  .hero__title--logo{margin-bottom:1.4rem}
  .hero__title--logo img{width:min(280px, 78vw)}
}

.hero__sub{
  font-family:var(--ff-serif);font-size:clamp(1.05rem, 1.8vw, 1.4rem);
  font-weight:400;line-height:1.5;
  color:var(--cream);
  max-width:560px;margin:0 auto 2.2rem;
  opacity:0;transform:translateY(10px);
}
.hero__sub em{font-family:var(--ff-script);font-size:1.55em;line-height:1;color:var(--copper-soft);font-style:normal}

.hero__cta{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:14px;opacity:0;transform:translateY(10px)}
.is-revealed .hero__sub,
.is-revealed .hero__cta{opacity:1;transform:none;transition:all .9s var(--e-out)}

.hero__scroll{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;justify-content:center;
  width:32px;height:64px;z-index:2;
  border-radius:18px;border:1px solid rgba(255,255,255,.18);
  transition:border-color .35s var(--e-out), transform .35s var(--e-out);
}
.hero__scroll:hover{border-color:var(--copper-soft);transform:translateX(-50%) translateY(-3px)}
.hero__scroll-line{
  display:block;width:2px;height:10px;border-radius:2px;
  background:var(--copper-soft);
  animation:scrollDot 2.2s var(--e-in-out) infinite;
}
@keyframes scrollDot{
  0%{transform:translateY(-12px);opacity:0}
  30%{opacity:1}
  70%{opacity:1}
  100%{transform:translateY(12px);opacity:0}
}

/* ============= SECTION HEAD ============= */
.section-head{text-align:center;max-width:760px;margin:0 auto 4rem}
.section-head .eyebrow{justify-content:center}
.section-head__sub{color:var(--text-mute);max-width:600px;margin-inline:auto}

/* ============= EXPERIENCIA ============= */
.experiencia{padding:140px 0;background:var(--bg-0);position:relative}
.experiencia__grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center}
.experiencia__media{position:relative;margin:0;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5}
.experiencia__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--e-out)}
.experiencia__media:hover img{transform:scale(1.04)}
.experiencia__media-tag{
  position:absolute;left:24px;bottom:24px;
  background:rgba(22,32,42,.85);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:var(--cream);
  padding:.7rem 1.1rem;
  font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;
  border:1px solid var(--line);
}

.pillar-list{display:flex;flex-direction:column;margin-top:2.4rem;border-top:1px solid var(--line-soft)}
.pillar-list li{
  display:flex;gap:1.6rem;align-items:flex-start;
  padding:1.5rem 0;border-bottom:1px solid var(--line-soft);
}
.pillar-list__num{
  font-family:var(--ff-display);font-style:italic;font-weight:500;
  color:var(--copper-soft);font-size:1.4rem;min-width:48px;
}
.pillar-list strong{display:block;font-family:var(--ff-display);font-size:1.4rem;font-weight:500;color:var(--cream-soft);font-style:italic;margin-bottom:.2rem}
.pillar-list em{font-style:normal;color:var(--text-mute);font-size:.85rem;letter-spacing:.05em}

@media (max-width: 920px){
  .experiencia{padding:90px 0}
  .experiencia__grid{grid-template-columns:1fr;gap:3rem}
  .experiencia__media{aspect-ratio:4/3}
}

/* ============= QUOTE BAND (parallax) ============= */
.quote-band{
  position:relative;padding:140px 0;
  background-image:var(--bg);background-size:cover;background-position:center;background-attachment:fixed;
  text-align:center;overflow:hidden;
}
.quote-band__veil{position:absolute;inset:0;background:linear-gradient(180deg, rgba(22,32,42,.85), rgba(22,32,42,.92))}
.quote-band__inner{position:relative;z-index:2}
.quote-band__lead{
  font-family:var(--ff-script);
  font-size:clamp(2.4rem, 4.8vw, 4rem);
  color:var(--copper-soft);line-height:1;margin:0 0 1.4rem;
  font-style:italic;
}
.quote-band__quote{
  font-family:var(--ff-display);font-style:italic;font-weight:400;
  font-size:clamp(1.6rem, 3vw, 2.6rem);
  color:var(--cream-soft);line-height:1.35;max-width:920px;margin:0 auto 2rem;
}
.quote-band__attr{
  display:inline-block;font-family:var(--ff-body);font-size:.72rem;
  letter-spacing:.4em;text-transform:uppercase;color:var(--text-mute);
}
@media (hover:none) and (pointer:coarse){
  .quote-band{background-attachment:scroll}
}

/* ============= CARTA / SIGNATURE GRID ============= */
.carta{padding:140px 0;background:var(--bg-1);position:relative}

.signature-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:2.2rem;
}
.dish-card{
  background:var(--bg-2);
  border:1px solid var(--line-soft);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:transform .55s var(--e-out), border-color .55s var(--e-out), box-shadow .55s var(--e-out);
  display:flex;flex-direction:column;
}
.dish-card:hover{transform:translateY(-6px);border-color:var(--copper);box-shadow:0 30px 80px -40px rgba(194,105,58,.35)}
.dish-card figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.dish-card figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--e-out)}
.dish-card:hover figure img{transform:scale(1.08)}
.dish-card__body{padding:1.8rem 1.6rem 2.2rem;display:flex;flex-direction:column;flex:1}
.dish-card__tag{
  font-size:.65rem;letter-spacing:.4em;text-transform:uppercase;color:var(--copper-soft);font-weight:500;
  margin-bottom:.8rem;
}
.dish-card h3{
  margin:0 0 .8rem;font-family:var(--ff-display);font-size:1.5rem;font-weight:500;
  color:var(--cream-soft);line-height:1.2;
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
}
.dish-card__price{
  font-family:var(--ff-body);font-size:.9rem;font-weight:500;letter-spacing:.05em;
  color:var(--copper-soft);white-space:nowrap;
}
.dish-card p{font-size:.92rem;color:var(--text-mute);margin:0;flex:1}

.carta__cta{text-align:center;margin-top:4rem}

@media (max-width: 980px){.signature-grid{grid-template-columns:repeat(2, 1fr)}}
@media (max-width: 640px){.signature-grid{grid-template-columns:1fr}}

/* ============= PARRILLA / CUTS ============= */
.parrilla{
  position:relative;padding:140px 0;
  background-image:var(--bg);background-size:cover;background-position:center;background-attachment:fixed;
  overflow:hidden;
}
.parrilla__veil{position:absolute;inset:0;background:linear-gradient(180deg, rgba(22,32,42,.92), rgba(22,32,42,.96))}
.parrilla__grid{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr 1.3fr;gap:5rem;align-items:flex-start;
}
.parrilla__head{padding-right:2rem;display:flex;flex-direction:column;gap:1.4rem}
.parrilla__head .eyebrow{justify-content:flex-start;margin-bottom:0}
.parrilla__lead{
  font-family:var(--ff-serif);font-size:1.15rem;font-style:italic;line-height:1.55;
  color:var(--cream);margin:0;max-width:480px;
}
.parrilla__copy{display:flex;flex-direction:column;gap:.9rem}
.parrilla__copy p{
  font-family:var(--ff-body);font-size:.95rem;line-height:1.7;color:var(--text-mute);
  font-weight:300;margin:0;
}
.parrilla__copy strong{color:var(--cream-soft);font-weight:500}
.parrilla__copy em{color:var(--copper-soft);font-style:italic}

.parrilla__features{
  display:flex;flex-direction:column;gap:.6rem;
  margin-top:.6rem;padding-top:1.2rem;
  border-top:1px solid var(--line-soft);
}
.parrilla__features li{
  display:flex;align-items:baseline;gap:1rem;
  padding:.4rem 0;
  font-size:.85rem;color:var(--text-mute);
}
.parrilla__features li strong{
  font-family:var(--ff-display);font-style:italic;font-weight:500;
  font-size:1rem;color:var(--copper-soft);min-width:160px;flex-shrink:0;
}

.cuts-list{
  border-top:1px solid var(--line);
  font-family:var(--ff-display);
}
.cuts-list li{
  display:flex;align-items:baseline;gap:1rem;
  padding:1.4rem 0;
  border-bottom:1px solid var(--line-soft);
  font-size:1.6rem;
  color:var(--cream-soft);font-weight:500;
}
.cuts-list__name{flex-shrink:0;font-style:italic}
.cuts-list__dots{
  flex:1;border-bottom:1px dashed rgba(255,255,255,.18);transform:translateY(-6px);
}
.cuts-list__price{
  font-family:var(--ff-body);font-size:1rem;letter-spacing:.05em;
  color:var(--copper-soft);font-weight:500;
}
@media (hover:none) and (pointer:coarse){.parrilla{background-attachment:scroll}}
@media (max-width: 980px){
  .parrilla__grid{grid-template-columns:1fr;gap:2.4rem}
  .parrilla__head{padding-right:0}
}

/* ============= TRIO (Vivir BRASA) ============= */
.trio{padding:140px 0;background:var(--bg-0)}
.trio__grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:2rem}
.trio__card{
  position:relative;
  padding:3rem 2rem 2.5rem;
  border:1px solid var(--line-soft);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg, var(--bg-1), var(--bg-2));
  overflow:hidden;
  transition:transform .55s var(--e-out), border-color .55s var(--e-out);
}
.trio__card::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(80% 60% at 50% 0%, var(--copper-glow), transparent 60%);
  opacity:0;transition:opacity .6s var(--e-out);pointer-events:none;
}
.trio__card:hover{transform:translateY(-4px);border-color:var(--copper)}
.trio__card:hover::before{opacity:1}
.trio__num{
  font-family:var(--ff-display);font-style:italic;font-weight:500;
  color:var(--copper-soft);font-size:3.2rem;line-height:1;display:block;margin-bottom:1.4rem;
}
.trio__card h3{font-family:var(--ff-display);font-size:1.7rem;color:var(--cream-soft);margin:0 0 .8rem;font-weight:500}
.trio__card p{margin:0;color:var(--text-mute)}

@media (max-width: 980px){
  .trio{padding:90px 0}
  .trio__grid{grid-template-columns:1fr;gap:1rem}
}

/* ============= GALLERY ============= */
.gallery{padding:140px 0;background:var(--bg-1)}
.gallery__masonry{
  display:grid;grid-template-columns:repeat(4, 1fr);grid-auto-rows:240px;gap:14px;
  grid-auto-flow:dense;
}
.gallery__item{
  margin:0;overflow:hidden;border-radius:6px;position:relative;
  background:var(--bg-2);
}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--e-out)}
.gallery__item:hover img{transform:scale(1.08)}
.gallery__item::after{
  content:"";position:absolute;inset:0;border:1px solid transparent;
  transition:border-color .35s var(--e-out);pointer-events:none;
}
.gallery__item:hover::after{border-color:var(--copper)}
.span-2-rows{grid-row:span 2}
.span-2-cols{grid-column:span 2}

@media (max-width: 980px){
  .gallery__masonry{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}
  .span-2-cols{grid-column:span 2}
  .span-2-rows{grid-row:span 1}
}

/* ============= VIDEO BAND ============= */
.video-band{
  position:relative;
  min-height:560px;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  overflow:hidden;
  background:var(--bg-1);
}
.video-band__video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  z-index:0;
  background:var(--bg-1);
}
.video-band__veil{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(120% 90% at 50% 100%, rgba(22,32,42,.6) 0%, rgba(22,32,42,.35) 40%, rgba(22,32,42,.65) 100%),
    linear-gradient(180deg, rgba(22,32,42,.5) 0%, rgba(22,32,42,.35) 50%, rgba(22,32,42,.85) 100%);
}
.video-band__inner{
  position:relative;z-index:2;padding:120px 0;
  max-width:760px;
}
.video-band__inner .display{color:var(--cream-soft);text-shadow:0 20px 60px rgba(0,0,0,.45)}
.video-band__inner p{color:var(--cream);max-width:560px;margin:0 auto 1.6rem}
@media (max-width: 720px){
  .video-band__inner{padding:90px 24px}
}

/* ============= RESEÑAS ============= */
.reviews{padding:140px 0;background:var(--bg-0);position:relative;overflow:hidden}

.reviews__stats{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:1.4rem;
  max-width:920px;margin:0 auto 4rem;
}
.reviews__stat{
  position:relative;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  padding:1.6rem 1.4rem 2.4rem;
  background:var(--bg-2);
  border:1px solid var(--line-soft);
  border-radius:var(--radius-lg);
  text-align:center;
  transition:transform .45s var(--e-out), border-color .45s var(--e-out), box-shadow .45s var(--e-out);
  color:var(--text);
}
.reviews__stat::after{
  content:"Ver más →";
  position:absolute;bottom:.9rem;left:50%;transform:translateX(-50%);
  font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--copper-soft);font-weight:500;
  opacity:.7;transition:opacity .35s var(--e-out), transform .35s var(--e-out), letter-spacing .35s var(--e-out);
}
.reviews__stat:hover{
  transform:translateY(-4px);
  border-color:var(--copper);
  box-shadow:0 24px 60px -30px var(--copper-glow);
  color:var(--text);
}
.reviews__stat:hover::after{
  opacity:1;
  letter-spacing:.4em;
}
.reviews__stat-platform{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--text-mute);font-weight:500;
}
.reviews__stat-score{
  font-family:var(--ff-display);font-weight:700;
  font-size:2.6rem;line-height:1;color:var(--cream-soft);letter-spacing:.02em;
}
.reviews__stat-stars{
  font-size:1rem;letter-spacing:.18em;color:var(--copper-soft);
}
.reviews__stat-stars .dim{color:rgba(255,255,255,.18)}
.reviews__stat-stars .half{
  position:relative;display:inline-block;color:rgba(255,255,255,.18);
}
.reviews__stat-stars .half::before{
  content:"★";position:absolute;left:0;top:0;width:50%;overflow:hidden;color:var(--copper-soft);
}
.reviews__stat-meta{
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);font-weight:500;
}

.reviews__grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:1.6rem;
}
.review-card{
  margin:0;
  position:relative;
  padding:2rem 1.8rem 1.7rem;
  background:linear-gradient(180deg, var(--bg-1), var(--bg-2));
  border:1px solid var(--line-soft);
  border-radius:var(--radius-lg);
  transition:transform .45s var(--e-out), border-color .45s var(--e-out);
  display:flex;flex-direction:column;gap:1.1rem;
}
.review-card:hover{transform:translateY(-4px);border-color:var(--copper)}
.review-card::before{
  content:"\201C";
  position:absolute;top:0;right:1.4rem;
  font-family:var(--ff-display);font-size:5rem;line-height:1;
  color:var(--copper-soft);opacity:.18;
}
.review-card__stars{
  font-size:1rem;letter-spacing:.2em;color:var(--copper-soft);
}
.review-card__stars .half{
  position:relative;display:inline-block;color:rgba(255,255,255,.18);
}
.review-card__stars .half::before{
  content:"★";position:absolute;left:0;top:0;width:50%;overflow:hidden;color:var(--copper-soft);
}
.reviews__quote-text{
  margin:0;font-family:var(--ff-serif);font-style:italic;font-size:1.05rem;line-height:1.6;
  color:var(--text);
}
.review-card figcaption{
  display:flex;flex-direction:column;gap:.2rem;
  margin-top:auto;
  padding-top:1rem;border-top:1px solid var(--line-soft);
}
.review-card__name{font-family:var(--ff-display);font-size:1rem;color:var(--cream-soft);font-weight:500;letter-spacing:.02em}
.review-card__meta{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--copper-soft);font-weight:500}

.reviews__cta{
  display:flex;justify-content:center;flex-wrap:wrap;gap:14px;
  margin-top:3rem;
}

@media (max-width: 980px){
  .reviews{padding:90px 0}
  .reviews__stats{grid-template-columns:1fr;gap:1rem;margin-bottom:3rem}
  .reviews__stat{
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
    padding:1.1rem 1.2rem;
    text-align:left;
    flex-wrap:wrap;
    column-gap:1rem;
  }
  .reviews__stat-platform{order:0;flex-basis:auto}
  .reviews__stat-score{order:1;font-size:2.2rem;margin-left:auto}
  .reviews__stat-stars{order:2;flex-basis:100%;text-align:left;font-size:.9rem}
  .reviews__stat-meta{order:3;flex-basis:100%}
  /* "Ver más" inline at the bottom-right instead of absolute (avoid overlap) */
  .reviews__stat::after{
    position:static;transform:none;
    order:4;flex-basis:100%;text-align:right;
    margin-top:.4rem;
    font-size:.6rem;
  }
  .reviews__grid{grid-template-columns:1fr;gap:1rem}
}

/* ============= RESERVAR ============= */
.reservar{padding:140px 0;background:var(--bg-0);position:relative;overflow:hidden}
.reservar::before{
  content:"";position:absolute;top:0;right:-200px;width:600px;height:600px;
  background:radial-gradient(closest-side, var(--copper-glow), transparent 70%);
  pointer-events:none;
}
.reservar__grid{
  display:grid;grid-template-columns:1.05fr 1fr;gap:5rem;align-items:flex-start;
  position:relative;z-index:1;
}

.reservar__cards{
  display:grid;grid-template-columns:1fr 1fr;gap:1rem;
  margin-block:1.5rem;
}
.big-phone{
  display:flex;flex-direction:column;gap:.35rem;
  padding:1.4rem 1.6rem;
  border:1px solid var(--copper);
  border-radius:var(--radius);
  background:linear-gradient(180deg, rgba(194,105,58,.04), transparent);
  transition:background .35s var(--e-out), transform .35s var(--e-out), border-color .35s var(--e-out), box-shadow .35s var(--e-out);
  text-align:left;color:var(--text);
}
.big-phone:hover{
  background:var(--copper-glow);
  border-color:var(--copper-soft);
  transform:translateY(-2px);
  box-shadow:0 18px 40px -22px var(--copper-glow);
  color:var(--text);
}
.big-phone__label{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.65rem;letter-spacing:.45em;text-transform:uppercase;color:var(--copper-soft);font-weight:500;
}
.big-phone__num{
  font-family:var(--ff-display);font-size:2.1rem;font-weight:600;letter-spacing:.04em;color:var(--cream-soft);
  line-height:1.05;
}
.big-phone__num--ot{font-size:1.65rem;font-style:italic;font-weight:500}
.big-phone__sub{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);
  margin-top:.3rem;
}

.big-phone--ot{border-color:rgba(218,55,67,.55);background:linear-gradient(180deg, rgba(218,55,67,.06), transparent)}
.big-phone--ot:hover{
  background:rgba(218,55,67,.10);
  border-color:#DA3743;
  box-shadow:0 18px 40px -22px rgba(218,55,67,.4);
}
.big-phone--ot .big-phone__label{color:#DA3743}

/* WhatsApp variant (green) */
.big-phone--wa{border-color:rgba(37,211,102,.55);background:linear-gradient(180deg, rgba(37,211,102,.06), transparent)}
.big-phone--wa:hover{
  background:rgba(37,211,102,.10);
  border-color:#25D366;
  box-shadow:0 18px 40px -22px rgba(37,211,102,.4);
}
.big-phone--wa .big-phone__label{color:#25D366}

.reservar__direct{display:flex;flex-direction:column;gap:1rem;align-items:stretch}
.reservar__direct .btn{align-self:stretch}

@media (max-width: 720px){
  .reservar__cards{grid-template-columns:1fr;gap:.7rem}
  .big-phone__num{font-size:1.9rem}
  .big-phone__num--ot{font-size:1.4rem}
}

.reservar__form{
  background:var(--bg-2);
  border:1px solid var(--line-soft);
  border-radius:var(--radius-lg);
  padding:2.4rem;
}
.reservar__form h3{
  font-family:var(--ff-display);font-size:1.5rem;color:var(--cream-soft);
  margin:0 0 1.6rem;font-weight:500;
}
.reservar__form label{
  display:block;margin-bottom:1.1rem;
}
.reservar__form label > span{
  display:block;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--text-mute);margin-bottom:.4rem;font-weight:500;
}
.reservar__form input,
.reservar__form select,
.reservar__form textarea{
  width:100%;
  padding:.85rem 1rem;
  background:var(--bg-1);
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  color:var(--text);
  transition:border-color .25s var(--e-out), background .25s;
  font-family:var(--ff-body);
  font-size:.95rem;
  color-scheme:dark;
}
.reservar__form input:focus,
.reservar__form select:focus,
.reservar__form textarea:focus{
  outline:none;border-color:var(--copper);background:var(--bg-0);
}
.reservar__form input[type="date"]::-webkit-calendar-picker-indicator,
.reservar__form input[type="time"]::-webkit-calendar-picker-indicator{
  filter:invert(0.85) sepia(.3) saturate(.5) hue-rotate(355deg);
  cursor:pointer;
  opacity:.8;
}
.reservar__form input[type="date"]:hover::-webkit-calendar-picker-indicator,
.reservar__form input[type="time"]:hover::-webkit-calendar-picker-indicator{
  opacity:1;
}
/* Firefox: dark color scheme handles natives */
.reservar__form input[type="date"],
.reservar__form input[type="time"]{
  color:var(--text);
}
.reservar__form .row{display:grid;grid-template-columns:repeat(3, 1fr);gap:.8rem}
.reservar__form .row label{margin-bottom:0}
.reservar__small{display:block;text-align:center;font-size:.7rem;color:var(--text-faint);margin-top:.7rem;letter-spacing:.05em}

@media (max-width: 980px){
  .reservar{padding:90px 0}
  .reservar__grid{grid-template-columns:1fr;gap:2.4rem}
  .reservar__form{padding:1.6rem}
  .reservar__form .row{grid-template-columns:1fr 1fr}
}

/* ============= VISITA / CONTACT ============= */
.visita{padding:140px 0;background:var(--bg-1);position:relative}
.visita__grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:flex-start}
.visita__head{grid-column:1 / -1}
.visita__head .eyebrow{justify-content:flex-start}
.visita__head .display{white-space:nowrap}
@media (max-width: 720px){
  .visita__head .display{white-space:normal}
}
.visita__cols{
  grid-column:1 / -1;
  display:grid;grid-template-columns:repeat(4, 1fr);gap:2rem;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  padding:2.4rem 0;margin-top:1rem;
}
.visita__col h4{
  font-family:var(--ff-body);font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;
  color:var(--copper-soft);margin:0 0 1rem;font-weight:500;
}
.visita__col p{margin:0 0 1rem;color:var(--text);font-weight:300;font-size:.95rem;line-height:1.85}
.visita__col a{
  color:var(--text);display:inline-block;padding:.45rem 0;
  min-height:36px;line-height:1.4;
}
.visita__col a:hover{color:var(--copper-soft)}
.visita__col .link-arrow{padding:.6rem 0;min-height:42px;display:inline-flex;align-items:center}

.visita__map{
  grid-column:1 / -1;height:420px;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line-soft);
  filter:grayscale(.6) contrast(1.05);
  transition:filter .8s var(--e-out);
}
.visita__map:hover{filter:grayscale(0) contrast(1)}
.visita__map iframe{width:100%;height:100%;border:0}

@media (max-width: 980px){
  .visita{padding:90px 0}
  .visita__grid{grid-template-columns:1fr;gap:2.4rem}
  .visita__cols{grid-template-columns:repeat(2, 1fr);gap:1.4rem}
  .visita__map{height:300px}
}

/* ============= FOOTER ============= */
.site-foot{
  background:var(--bg-0);
  padding-top:80px;
  border-top:1px solid var(--line-soft);
}
.site-foot__grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:3rem;
  padding-bottom:3rem;
}
.site-foot__brand .brand-mark{font-size:1.8rem}
.site-foot__brand .brand-sub{margin-bottom:1rem}
.site-foot__tag{
  font-family:var(--ff-serif);font-size:1rem;color:var(--text-mute);
  max-width:380px;font-style:italic;line-height:1.6;
}

.site-foot__nav, .site-foot__contact{display:flex;flex-direction:column;gap:.4rem}
.site-foot__nav a, .site-foot__contact a{
  display:inline-block;padding:.4rem 0;
  font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-mute);font-weight:500;
}
.site-foot__nav a:hover, .site-foot__contact a:hover{color:var(--copper-soft)}
.site-foot__contact a strong{color:var(--cream-soft);letter-spacing:.05em;font-size:1.1rem;font-family:var(--ff-display)}

.site-foot__rule{
  height:1px;background:linear-gradient(to right, transparent, var(--line), transparent);
  margin:0 5%;
}
.site-foot__legal{
  display:flex;justify-content:space-between;align-items:center;
  padding:1.5rem 0 2rem;font-size:.7rem;color:var(--text-faint);letter-spacing:.15em;
  flex-wrap:wrap;gap:1rem;
}

@media (max-width: 820px){
  .site-foot__grid{grid-template-columns:1fr;gap:2rem}
  .site-foot__legal{flex-direction:column;align-items:flex-start}
}

/* ============= FLOATING SOCIAL (left) ============= */
.float-social{
  position:fixed;left:20px;top:50%;transform:translateY(-50%);
  z-index:80;
  display:flex;flex-direction:column;gap:10px;
}
.float-social a{
  width:42px;height:42px;border-radius:50%;
  background:rgba(22,32,42,.85);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:center;
  transition:transform .35s var(--e-out), border-color .35s var(--e-out), background .35s var(--e-out), box-shadow .35s var(--e-out);
  position:relative;overflow:hidden;
}
.float-social svg{width:18px;height:18px;position:relative;z-index:1}
.float-social a:hover{transform:scale(1.1) translateX(2px)}

/* Brand colors */
.float-social .fs-ig{color:#fff}
.float-social .fs-ig::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  opacity:0;transition:opacity .35s var(--e-out);
}
.float-social .fs-ig:hover{border-color:#dc2743;box-shadow:0 14px 32px -14px rgba(220,39,67,.6)}
.float-social .fs-ig:hover::before{opacity:1}

.float-social .fs-fb{color:#fff}
.float-social .fs-fb::before{
  content:"";position:absolute;inset:0;background:#1877F2;
  opacity:0;transition:opacity .35s var(--e-out);
}
.float-social .fs-fb:hover{border-color:#1877F2;box-shadow:0 14px 32px -14px rgba(24,119,242,.6)}
.float-social .fs-fb:hover::before{opacity:1}

.float-social .fs-ta{color:var(--cream)}
.float-social .fs-ta::before{
  content:"";position:absolute;inset:0;background:#34E0A1;
  opacity:0;transition:opacity .35s var(--e-out);
}
.float-social .fs-ta:hover{color:#000;border-color:#34E0A1;box-shadow:0 14px 32px -14px rgba(52,224,161,.6)}
.float-social .fs-ta:hover::before{opacity:1}

/* Default rest state colors (subtle brand hint) */
.float-social .fs-ig:not(:hover){color:#e58a5e}
.float-social .fs-fb:not(:hover){color:#5b9aff}
.float-social .fs-ta:not(:hover){color:#5fe3b3}

/* Hide floating sidebar on mobile (replaced by inline header-social) */
@media (max-width: 980px){
  .float-social{display:none}
}

/* ============= HEADER INLINE SOCIAL (mobile only) ============= */
.header-social{display:none}
@media (max-width: 980px){
  .header-social{
    display:flex;align-items:center;gap:6px;
    margin-right:8px;
  }
  .header-social a{
    width:32px;height:32px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    transition:transform .25s var(--e-out), color .25s, background .25s;
  }
  .header-social svg{width:15px;height:15px}
  .header-social a:hover, .header-social a:active{transform:scale(1.12)}
  .header-social .hs-ig{color:#e58a5e}
  .header-social .hs-ig:hover{color:#dc2743}
  .header-social .hs-fb{color:#5b9aff}
  .header-social .hs-fb:hover{color:#1877F2}
  .header-social .hs-ta{color:#5fe3b3}
  .header-social .hs-ta:hover{color:#34E0A1}
}
@media (max-width: 380px){
  .header-social{gap:4px;margin-right:4px}
  .header-social a{width:32px;height:32px}
  .header-social svg{width:14px;height:14px}
}

/* ============= FLOATING WHATSAPP ============= */
.float-wa{
  position:fixed;right:24px;bottom:24px;z-index:80;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 16px 40px -12px rgba(37,211,102,.55);
  transition:transform .35s var(--e-out);
}
.float-wa:hover{transform:scale(1.1)}
.float-wa svg{width:26px;height:26px}
.float-wa::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid #25D366;
  opacity:.4;animation:waPulse 2s var(--e-out) infinite;
}
@keyframes waPulse{
  0%{transform:scale(.9);opacity:.6}
  100%{transform:scale(1.4);opacity:0}
}

/* ============= REVEAL ============= */
[data-reveal]{
  opacity:0;transform:translateY(28px);
  transition:opacity .9s var(--e-out), transform .9s var(--e-out);
  transition-delay:var(--reveal-delay, 0s);
}
.is-revealed[data-reveal],
[data-reveal].is-revealed,
.is-revealed [data-reveal]{opacity:1;transform:none}

[data-stagger] > *{
  opacity:0;transform:translateY(28px);
  transition:opacity .8s var(--e-out), transform .8s var(--e-out);
}
[data-stagger].is-revealed > *{opacity:1;transform:none}
[data-stagger].is-revealed > *:nth-child(1){transition-delay:.05s}
[data-stagger].is-revealed > *:nth-child(2){transition-delay:.15s}
[data-stagger].is-revealed > *:nth-child(3){transition-delay:.25s}
[data-stagger].is-revealed > *:nth-child(4){transition-delay:.35s}
[data-stagger].is-revealed > *:nth-child(5){transition-delay:.45s}
[data-stagger].is-revealed > *:nth-child(6){transition-delay:.55s}
[data-stagger].is-revealed > *:nth-child(7){transition-delay:.65s}
[data-stagger].is-revealed > *:nth-child(8){transition-delay:.75s}

[data-split]:not(.is-shown){visibility:hidden}
[data-split].is-shown{visibility:visible}
[data-split].is-shown .word{
  display:inline-block;
  overflow:hidden;
  vertical-align:bottom;
  /* room for italic descenders/slant — clipped by overflow during animation, visible after */
  padding:.05em .12em .18em;
  margin:-.05em -.12em -.18em;
}
[data-split].is-shown .word > span{
  display:inline-block;
  transform:translateY(110%);
  animation:wordRise 1s var(--e-elastic) forwards;
  animation-delay:calc(var(--i, 0) * .07s);
}
@keyframes wordRise{to{transform:none}}

[data-split-lines]{overflow:hidden}
[data-split-lines] br{display:block}

/* JS gating */
.no-js [data-reveal],
.no-js [data-stagger] > *{opacity:1;transform:none}
.no-js [data-split]{visibility:visible}

/* ============= UTILITIES ============= */
@media (max-width: 540px){
  .display{font-size:clamp(2rem, 9vw, 2.8rem)}
  .reservar__form .row{grid-template-columns:1fr}
  .visita__cols{grid-template-columns:1fr}
}
