/* =========================================================
   CASA PALACCHIO — Cocktails & Eventos
   Sistema de diseño — "Palacio Señorial"
   Negro · Blanco hueso · Piedra caliza de Cáceres
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,400;1,500&family=Jost:wght@300;400;500;600&display=swap');

:root{
  /* Paleta */
  --ink: #100e0c;
  --ink-soft: #1c1815;
  --paper: #f6f1e7;
  --paper-dim: #ece4d4;
  --stone: #b49a71;
  --stone-dark: #8a6f47;
  --stone-deep: #5c4a30;
  --line: rgba(246,241,231,0.16);
  --line-dark: rgba(16,14,12,0.12);

  /* Tipografía */
  --font-display: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --font-body: 'Jost', 'Helvetica Neue', Arial, sans-serif;

  /* Espaciado fluido */
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --section-y: clamp(4rem, 9vw, 9rem);
  --radius: 2px;

  /* Transiciones */
  --ease: cubic-bezier(.22,.61,.36,1);
  --dur: .8s;
}

/* ---------- Reset base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:auto; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4,p,figure{ margin:0; }
.container{
  max-width:1320px;
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

/* ---------- Tipografía general ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:.01em;
  color:var(--ink);
}
.eyebrow{
  display:flex; align-items:center; gap:.9rem;
  font-family:var(--font-body);
  font-size:.72rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--stone-dark);
  font-weight:500;
  margin-bottom:1.4rem;
}
.eyebrow::before{
  content:'';
  width:34px; height:1px;
  background:var(--stone-dark);
  display:inline-block;
}
.on-dark .eyebrow{ color:var(--stone); }
.on-dark .eyebrow::before{ background:var(--stone); }

.h-display{
  font-size:clamp(2.6rem, 6vw, 5.4rem);
  line-height:1.02;
  font-weight:500;
}
.h-section{
  font-size:clamp(2rem, 4.2vw, 3.4rem);
  line-height:1.08;
}
.h-script{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:400;
  color:var(--stone-dark);
}
.on-dark .h-script{ color:var(--stone); }
.lede{
  font-size:clamp(1.05rem, 1.4vw, 1.25rem);
  font-weight:300;
  color:var(--ink-soft);
  max-width:52ch;
}
.on-dark .lede{ color:var(--paper-dim); }
.on-dark, .on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4{ color:var(--paper); }

/* ---------- Botones ---------- */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  padding:1rem 2.1rem;
  font-family:var(--font-body);
  font-size:.78rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid currentColor;
  border-radius:var(--radius);
  background:transparent;
  color:var(--ink);
  overflow:hidden;
  transition:color .5s var(--ease);
}
.btn::before{
  content:'';
  position:absolute; inset:0;
  background:var(--ink);
  transform:translateY(101%);
  transition:transform .5s var(--ease);
  z-index:-1;
}
.btn:hover{ color:var(--paper); }
.btn:hover::before{ transform:translateY(0); }
.btn-light{ color:var(--paper); }
.btn-light::before{ background:var(--paper); }
.btn-light:hover{ color:var(--ink); }
.btn-solid{
  background:var(--ink); color:var(--paper); border-color:var(--ink);
}
.btn-solid::before{ background:var(--stone-dark); }
.btn-solid:hover{ color:var(--paper); }

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0;
  z-index:100;
  padding:1.4rem 0;
  background:transparent;
  transition:background .5s var(--ease), padding .4s var(--ease), box-shadow .4s;
}
.site-header.is-scrolled{
  background:rgba(16,14,12,.92);
  backdrop-filter:blur(10px);
  padding:.85rem 0;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  gap:2rem;
}
.brand{ display:flex; align-items:center; gap:.75rem; }
.brand img{ height:44px; width:auto; transition:height .4s var(--ease); }
.site-header.is-scrolled .brand img{ height:36px; }
.brand-text{
  font-family:var(--font-display);
  color:var(--paper);
  font-size:1.05rem;
  letter-spacing:.06em;
  line-height:1.1;
}
.brand-text small{
  display:block;
  font-family:var(--font-body);
  font-size:.56rem;
  letter-spacing:.28em;
  color:var(--stone);
  font-weight:500;
  margin-top:.2rem;
}
.nav-main{ display:flex; align-items:center; gap:2.4rem; }
.nav-main a{
  position:relative;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--paper);
  padding:.3rem 0;
  font-weight:500;
}
.nav-main a::after{
  content:'';
  position:absolute; left:0; right:100%; bottom:-2px;
  height:1px; background:var(--stone);
  transition:right .4s var(--ease);
}
.nav-main a:hover::after, .nav-main a.active::after{ right:0; }
.nav-cta{ display:flex; align-items:center; gap:1.4rem; }
.nav-toggle{
  display:none;
  width:26px; height:20px;
  position:relative;
  background:none; border:none;
}
.nav-toggle span{
  position:absolute; left:0; right:0; height:1px;
  background:var(--paper); transition:transform .3s var(--ease), opacity .3s;
}
.nav-toggle span:nth-child(1){ top:0; }
.nav-toggle span:nth-child(2){ top:9px; }
.nav-toggle span:nth-child(3){ top:18px; }
.nav-open .nav-toggle span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
.nav-open .nav-toggle span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:flex-end;
  overflow:hidden;
  background:var(--ink);
}
.hero-media{ position:absolute; inset:0; overflow:hidden; }
.hero-media img{
  position:absolute; inset:-6% -6%;
  width:112%; height:112%;
  object-fit:cover;
  will-change:transform;
}
.hero-media::after{
  content:'';
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(16,14,12,.55) 0%, rgba(16,14,12,.25) 32%, rgba(16,14,12,.55) 72%, rgba(16,14,12,.94) 100%),
    linear-gradient(90deg, rgba(16,14,12,.45), transparent 45%);
}
.hero-emblem{
  position:absolute;
  top:50%; left:50%;
  width:min(70vw, 640px);
  transform:translate(-50%,-54%);
  opacity:.05;
  pointer-events:none;
  animation:spin 140s linear infinite;
}
@keyframes spin{ to{ transform:translate(-50%,-54%) rotate(360deg); } }
.hero-content{
  position:relative; z-index:2;
  width:100%;
  padding:0 0 clamp(3rem,8vw,6rem);
}
.hero-content .container{
  display:flex; flex-direction:column; gap:1.6rem;
}
.hero-title{ color:var(--paper); }
.hero-scroll{
  position:absolute; bottom:2.2rem; left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  color:var(--paper-dim);
  font-size:.65rem; letter-spacing:.3em; text-transform:uppercase;
}
.hero-scroll .line{ width:1px; height:38px; background:var(--line); position:relative; overflow:hidden; }
.hero-scroll .line::after{
  content:''; position:absolute; top:-100%; left:0; width:100%; height:100%;
  background:var(--stone);
  animation:scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }

/* Hero pequeño (páginas interiores) */
.page-hero{
  position:relative;
  min-height:56vh;
  display:flex; align-items:flex-end;
  background:var(--ink);
  overflow:hidden;
}
.page-hero .hero-media img{ inset:0; width:100%; height:100%; }
.page-hero-content{ position:relative; z-index:2; padding:clamp(6rem,12vw,9rem) 0 3.5rem; width:100%; }
.breadcrumb{
  display:flex; gap:.6rem; align-items:center;
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--paper-dim); margin-top:1rem;
}
.breadcrumb a{ color:var(--stone); }

/* ---------- Reveal on scroll ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 1s var(--ease), transform 1s var(--ease);
}
[data-reveal].is-visible{ opacity:1; transform:translateY(0); }
[data-reveal="fade"]{ transform:none; }
[data-reveal-delay="1"]{ transition-delay:.12s; }
[data-reveal-delay="2"]{ transition-delay:.24s; }
[data-reveal-delay="3"]{ transition-delay:.36s; }
[data-reveal-delay="4"]{ transition-delay:.48s; }

/* ---------- Marquee de servicios ---------- */
.marquee{
  background:var(--ink);
  color:var(--stone);
  overflow:hidden;
  padding:1.1rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.marquee-track{
  display:flex; width:max-content;
  animation:marquee 38s linear infinite;
}
.marquee-track span{
  display:flex; align-items:center; gap:1rem;
  font-family:var(--font-display);
  font-style:italic;
  font-size:1.25rem;
  padding:0 2rem;
  white-space:nowrap;
}
.marquee-track span::after{ content:'✦'; font-style:normal; font-size:.7rem; color:var(--stone-dark); }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------- Secciones genéricas ---------- */
section{ position:relative; }
.section{ padding:var(--section-y) 0; }
.section-ink{ background:var(--ink); color:var(--paper); }
.section-paper{ background:var(--paper); }
.section-dim{ background:var(--paper-dim); }
.section-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:2rem; flex-wrap:wrap;
  margin-bottom:clamp(2.5rem,5vw,4.5rem);
}

/* ---------- Intro / About ---------- */
.about-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(2rem,6vw,6rem);
  align-items:center;
}
.about-media{ position:relative; }
.about-media img{ border-radius:var(--radius); }
.about-frame{
  position:absolute; inset:-18px auto auto -18px;
  width:100%; height:100%;
  border:1px solid var(--stone);
  z-index:-1;
}
.about-copy p + p{ margin-top:1.1rem; }

/* ---------- Pilares / servicios ---------- */
.pillars{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line-dark);
  border:1px solid var(--line-dark);
}
.pillar{
  background:var(--paper);
  padding:2.6rem 2rem;
  display:flex; flex-direction:column; gap:1.1rem;
  transition:background .5s var(--ease), color .5s var(--ease);
}
.pillar:hover{ background:var(--ink); color:var(--paper); }
.pillar:hover .pillar-num{ color:var(--stone); }
.pillar-num{
  font-family:var(--font-display);
  font-size:1rem;
  color:var(--stone-dark);
  transition:color .5s var(--ease);
}
.pillar h3{ font-size:1.4rem; }
.pillar p{ font-size:.92rem; color:var(--ink-soft); opacity:.85; }
.pillar:hover p{ color:var(--paper-dim); }

/* ---------- Galería de espacios (teaser landing) ---------- */
.spaces-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:130px;
  gap:.5rem;
}
.space-card{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  grid-column:span 3; grid-row:span 3;
  color:var(--paper);
}
.space-card:nth-child(1){ grid-column:span 4; grid-row:span 4; }
.space-card:nth-child(2){ grid-column:span 2; grid-row:span 4; }
.space-card:nth-child(3){ grid-column:span 3; grid-row:span 3; }
.space-card:nth-child(4){ grid-column:span 3; grid-row:span 3; }
.space-card img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transform:scale(1.08);
  transition:transform 1.2s var(--ease), filter .8s;
  filter:saturate(.92) contrast(1.02);
}
.space-card:hover img{ transform:scale(1); }
.space-card .tint{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(16,14,12,.05) 0%, rgba(16,14,12,.15) 45%, rgba(16,14,12,.88) 100%);
}
.space-card .label{
  position:absolute; left:0; right:0; bottom:0; padding:1.4rem 1.6rem;
  display:flex; flex-direction:column; gap:.15rem;
  z-index:2;
}
.space-card .label small{
  font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--stone);
}
.space-card .label span{ font-family:var(--font-display); font-size:1.35rem; }
.space-card.placeholder{
  background:
    radial-gradient(circle at 30% 20%, rgba(180,154,113,.25), transparent 55%),
    repeating-linear-gradient(135deg, rgba(246,241,231,.04) 0 2px, transparent 2px 26px),
    linear-gradient(160deg, #211c17, #100e0c 70%);
}
.space-card.placeholder .ph-emblem{
  position:absolute; inset:0; margin:auto; width:34%; opacity:.14;
}

/* ---------- Espacios: bloques alternos (página espacios) ---------- */
.space-block{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(2rem,6vw,5rem);
  align-items:center;
  padding:clamp(3.5rem,7vw,6rem) 0;
  border-bottom:1px solid var(--line-dark);
}
.space-block:last-child{ border-bottom:none; }
.space-block.reverse .space-media{ order:2; }
.space-block.reverse .space-copy{ order:1; }
.space-media{ position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:var(--radius); }
.space-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.space-index{
  font-family:var(--font-display); font-style:italic;
  color:var(--stone-dark); font-size:1.1rem; margin-bottom:1rem; display:block;
}
.space-copy h2{ margin-bottom:1.2rem; }
.space-copy p + p{ margin-top:1rem; }
.space-tags{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem; }
.space-tags span{
  font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  border:1px solid var(--line-dark); padding:.5rem .9rem; border-radius:100px;
  color:var(--stone-dark);
}
.space-media.placeholder{
  display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(circle at 25% 20%, rgba(180,154,113,.35), transparent 55%),
    repeating-linear-gradient(135deg, rgba(246,241,231,.05) 0 2px, transparent 2px 30px),
    linear-gradient(165deg, #221d18, #100e0c 75%);
}
.space-media.placeholder img{ position:relative; width:32%; height:auto; opacity:.16; object-fit:contain; }
.space-media .caption-tag{
  position:absolute; left:1.2rem; bottom:1.2rem; z-index:2;
  color:var(--paper); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  background:rgba(16,14,12,.55); padding:.5rem .9rem; backdrop-filter:blur(6px);
}

/* ---------- Franja de cita ---------- */
.quote-strip{
  background:var(--ink); color:var(--paper);
  padding:clamp(4rem,9vw,7rem) 0;
  text-align:center;
  position:relative;
}
.quote-strip blockquote{
  font-family:var(--font-display); font-style:italic;
  font-size:clamp(1.5rem,3.2vw,2.6rem);
  max-width:20ch; margin:0 auto; line-height:1.3;
}
.quote-strip cite{
  display:block; margin-top:1.6rem; font-style:normal;
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--stone);
}

/* ---------- Franja horarios / info rápida ---------- */
.info-strip{
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark);
}
.info-item{
  padding:2.2rem clamp(1rem,3vw,2rem);
  border-right:1px solid var(--line-dark);
  display:flex; flex-direction:column; gap:.5rem;
}
.info-item:last-child{ border-right:none; }
.info-item small{ font-size:.65rem; letter-spacing:.24em; text-transform:uppercase; color:var(--stone-dark); }
.info-item strong{ font-family:var(--font-display); font-size:1.25rem; font-weight:500; }

/* ---------- CTA final ---------- */
.cta-band{
  position:relative;
  padding:clamp(5rem,10vw,8rem) 0;
  text-align:center;
  overflow:hidden;
  background:var(--ink);
}
.cta-band .hero-emblem{ opacity:.06; }
.cta-band .container{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:1.8rem; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:var(--paper-dim); padding-top:clamp(4rem,8vw,6rem); }
.footer-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr;
  gap:2.5rem; padding-bottom:3.5rem;
  border-bottom:1px solid var(--line);
}
.footer-brand img{ height:52px; margin-bottom:1.2rem; }
.footer-brand p{ font-size:.9rem; max-width:32ch; opacity:.75; }
.footer-col h4{
  font-family:var(--font-body); font-size:.7rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--stone); margin-bottom:1.3rem; font-weight:500;
}
.footer-col ul li{ margin-bottom:.75rem; font-size:.92rem; }
.footer-col a:hover{ color:var(--stone); }
.footer-social{ display:flex; gap:1rem; margin-top:1.4rem; }
.footer-social a{
  width:38px; height:38px; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; border-radius:50%;
  transition:border-color .3s, color .3s;
}
.footer-social a:hover{ border-color:var(--stone); color:var(--stone); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding:1.6rem 0; font-size:.75rem; letter-spacing:.04em; opacity:.6; flex-wrap:wrap; gap:.75rem;
}

/* ---------- Formulario de contacto ---------- */
.contact-layout{
  display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,6vw,5rem);
  align-items:flex-start;
}
.contact-info-card{
  background:var(--ink); color:var(--paper);
  padding:clamp(2.2rem,4vw,3rem);
  border-radius:var(--radius);
}
.contact-info-card h3{ font-size:1.6rem; margin-bottom:1.6rem; }
.contact-row{ display:flex; gap:1rem; padding:1.1rem 0; border-top:1px solid var(--line); }
.contact-row:first-of-type{ border-top:none; }
.contact-row small{ display:block; font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); margin-bottom:.35rem; }
.contact-row a, .contact-row span{ font-size:1rem; }
.map-embed{ margin-top:1.6rem; border:1px solid var(--line); overflow:hidden; border-radius:var(--radius); filter:grayscale(.5) contrast(1.05); }
.map-embed iframe{ width:100%; height:220px; border:0; display:block; }

.form-card{ background:var(--paper); }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem 1.6rem; }
.form-grid .full{ grid-column:1 / -1; }
.field{ display:flex; flex-direction:column; gap:.55rem; }
.field label{ font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--stone-dark); font-weight:500; }
.field input, .field select, .field textarea{
  border:none; border-bottom:1px solid var(--line-dark);
  background:transparent; padding:.75rem .1rem;
  font-family:var(--font-body); font-size:1rem; color:var(--ink);
  transition:border-color .3s;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--stone-dark); }
.field textarea{ resize:vertical; min-height:110px; }
.form-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:2.2rem; gap:1.5rem; flex-wrap:wrap; }
.form-note{ font-size:.78rem; color:var(--ink-soft); opacity:.7; max-width:36ch; }
.form-status{ font-size:.85rem; margin-top:1rem; display:none; }
.form-status.show{ display:block; }
.form-status.ok{ color:#3f6b45; }
.form-status.err{ color:#9c3b32; }

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:1000;
  background:rgba(16,14,12,.96);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease);
  padding:4vh 4vw;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox img{ max-width:100%; max-height:88vh; border:1px solid var(--line); }
.lightbox-close{
  position:absolute; top:2rem; right:2rem;
  width:44px; height:44px; border:1px solid var(--line); border-radius:50%;
  background:transparent; color:var(--paper); font-size:1.2rem;
}

/* ---------- Utilidades ---------- */
.text-center{ text-align:center; }
.mt-1{ margin-top:1rem; } .mt-2{ margin-top:2rem; } .mt-3{ margin-top:3rem; }
.visually-hidden{
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;
}
.skip-link{
  position:absolute; left:1rem; top:-60px; z-index:2000;
  background:var(--paper); color:var(--ink); padding:.8rem 1.2rem;
  transition:top .3s;
}
.skip-link:focus{ top:1rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px){
  .about-grid, .contact-layout{ grid-template-columns:1fr; }
  .about-media{ order:-1; }
  .pillars{ grid-template-columns:repeat(2,1fr); }
  .spaces-grid{ grid-template-columns:repeat(4,1fr); grid-auto-rows:110px; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .info-strip{ grid-template-columns:repeat(2,1fr); }
  .info-item:nth-child(2){ border-right:none; }
}
@media (max-width: 860px){
  .nav-main{
    position:fixed; inset:0 0 0 auto; width:min(78vw,360px);
    background:var(--ink); flex-direction:column; align-items:flex-start;
    padding:6.5rem 2.2rem; gap:1.8rem;
    transform:translateX(100%); transition:transform .5s var(--ease);
  }
  .nav-open .nav-main{ transform:translateX(0); }
  .nav-toggle{ display:block; }
  .nav-cta .btn-cta-desktop{ display:none; }
  .space-block, .space-block.reverse{ grid-template-columns:1fr; }
  .space-block.reverse .space-media, .space-block.reverse .space-copy{ order:initial; }
  .form-grid{ grid-template-columns:1fr; }
  .spaces-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; }
  .space-card:nth-child(1),.space-card:nth-child(2),.space-card:nth-child(3),.space-card:nth-child(4),.space-card:nth-child(5){
    grid-column:span 2; grid-row:span 3;
  }
}
@media (max-width: 560px){
  .pillars{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .info-strip{ grid-template-columns:1fr; }
  .info-item{ border-right:none; border-bottom:1px solid var(--line-dark); }
}

/* =========================================================
   COMPONENTES AÑADIDOS (v2)
   ========================================================= */

/* ---------- Sección de vídeo de fondo (full-bleed, mudo) ---------- */
.video-band{
  position:relative;
  min-height:78vh;
  display:flex; align-items:center;
  overflow:hidden;
  background:var(--ink);
}
.video-band > video,
.video-band > .vb-poster{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.video-band::after{
  content:'';
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(16,14,12,.62) 0%, rgba(16,14,12,.35) 45%, rgba(16,14,12,.82) 100%),
    linear-gradient(90deg, rgba(16,14,12,.6), transparent 55%);
}
.video-band .container{ position:relative; z-index:2; }
.video-band .lede{ color:var(--paper-dim); }
.vb-tag{
  position:absolute; z-index:2; right:var(--gutter); bottom:1.4rem;
  font-size:.6rem; letter-spacing:.24em; text-transform:uppercase; color:var(--paper);
  opacity:.55; display:flex; align-items:center; gap:.5rem;
}
.vb-tag::before{ content:'▶'; font-size:.55rem; }

/* ---------- Franja gastronómica (galería de comida) ---------- */
.gastro-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.6rem;
  margin-top:clamp(2rem,4vw,3.2rem);
}
.gastro-cell{
  position:relative; overflow:hidden; border-radius:var(--radius);
  aspect-ratio:3/4;
}
.gastro-cell.tall{ grid-row:span 2; aspect-ratio:3/8; }
.gastro-cell img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transform:scale(1.06); transition:transform 1s var(--ease);
}
.gastro-cell:hover img{ transform:scale(1); }
.gastro-cell .cap{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:1rem 1.1rem; color:var(--paper);
  background:linear-gradient(180deg,transparent, rgba(16,14,12,.8));
  font-family:var(--font-display); font-size:1.05rem;
}

/* ---------- Galería simple (Baio / espacios) ---------- */
.mini-gallery{
  display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:1.6rem;
}
.mini-gallery a{ position:relative; overflow:hidden; border-radius:var(--radius); aspect-ratio:1/1; display:block; }
.mini-gallery img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.mini-gallery a:hover img{ transform:scale(1.06); }

/* ---------- Botón flotante de WhatsApp + panel de chat ---------- */
.wa-fab{
  position:fixed; right:1.3rem; bottom:1.3rem; z-index:900;
  width:60px; height:60px; border-radius:50%;
  background:#25d366; border:none;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  cursor:pointer; transition:transform .3s var(--ease);
}
.wa-fab:hover{ transform:scale(1.06); }
.wa-fab svg{ width:32px; height:32px; fill:#fff; }
.wa-fab .pulse{
  position:absolute; inset:0; border-radius:50%;
  box-shadow:0 0 0 0 rgba(37,211,102,.5);
  animation:waPulse 2.4s infinite;
}
@keyframes waPulse{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,.5); }
  70%{ box-shadow:0 0 0 16px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}
.wa-panel{
  position:fixed; right:1.3rem; bottom:5.4rem; z-index:901;
  width:min(90vw, 330px);
  background:var(--paper); border-radius:14px; overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,.32);
  transform:translateY(16px) scale(.96); transform-origin:bottom right;
  opacity:0; visibility:hidden; transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
}
.wa-panel.open{ opacity:1; visibility:visible; transform:translateY(0) scale(1); }
.wa-head{
  background:#075e54; color:#fff; padding:1rem 1.1rem; display:flex; gap:.75rem; align-items:center;
}
.wa-head img{ width:40px; height:40px; border-radius:50%; background:#fff; padding:5px; }
.wa-head strong{ font-family:var(--font-display); font-size:1.05rem; font-weight:500; display:block; line-height:1.1; }
.wa-head small{ font-size:.68rem; opacity:.8; }
.wa-body{ padding:1.2rem 1.1rem; background:#e9e2d5; }
.wa-bubble{
  background:#fff; border-radius:10px; padding:.8rem .9rem; font-size:.88rem; color:var(--ink);
  box-shadow:0 1px 2px rgba(0,0,0,.08); max-width:90%;
}
.wa-bubble small{ display:block; font-size:.62rem; color:var(--stone-dark); margin-bottom:.3rem; letter-spacing:.05em; }
.wa-foot{ padding:.9rem 1.1rem 1.2rem; background:#e9e2d5; }
.wa-foot textarea{
  width:100%; border:1px solid var(--line-dark); border-radius:8px; padding:.7rem .8rem;
  font-family:var(--font-body); font-size:.9rem; resize:none; background:#fff; color:var(--ink);
}
.wa-foot textarea:focus{ outline:none; border-color:#25d366; }
.wa-send{
  margin-top:.7rem; width:100%; background:#25d366; color:#fff; border:none; border-radius:8px;
  padding:.75rem; font-family:var(--font-body); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500;
  display:flex; align-items:center; justify-content:center; gap:.5rem; cursor:pointer; transition:background .3s;
}
.wa-send:hover{ background:#1eb85a; }
.wa-close{
  margin-left:auto; background:none; border:none; color:#fff; font-size:1.3rem; cursor:pointer; line-height:1; opacity:.85;
}

/* ---------- Página "Próximamente" (programación) ---------- */
.soon-band{
  min-height:60vh; display:flex; align-items:center; justify-content:center; text-align:center;
  background:
    radial-gradient(circle at 50% 30%, rgba(180,154,113,.16), transparent 60%),
    var(--ink);
  color:var(--paper); padding:var(--section-y) 0;
}
.soon-inner{ max-width:560px; }
.soon-inner .emblem{ width:92px; margin:0 auto 2rem; opacity:.85; animation:spinSlow 90s linear infinite; }
@keyframes spinSlow{ to{ transform:rotate(360deg); } }
.soon-inner h1{ color:var(--paper); }
.soon-badge{
  display:inline-block; margin-bottom:1.6rem;
  font-size:.7rem; letter-spacing:.3em; text-transform:uppercase; color:var(--stone);
  border:1px solid var(--line); padding:.6rem 1.2rem; border-radius:100px;
}
.soon-inner p{ color:var(--paper-dim); margin-top:1.4rem; }

/* ---------- Calendario placeholder (programación) ---------- */
.prog-months{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); margin-top:3rem;
}
.prog-month{
  background:var(--ink); padding:1.6rem 1.2rem; min-height:120px;
  display:flex; flex-direction:column; gap:.5rem;
}
.prog-month h4{ font-family:var(--font-display); color:var(--paper); font-size:1.2rem; }
.prog-month span{ font-size:.78rem; color:var(--stone); opacity:.7; }

/* ---------- Responsive añadidos ---------- */
@media (max-width:1080px){
  .gastro-grid{ grid-template-columns:repeat(2,1fr); }
  .gastro-cell.tall{ grid-row:span 1; aspect-ratio:3/4; }
  .prog-months{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .gastro-grid{ grid-template-columns:1fr; }
  .mini-gallery{ grid-template-columns:1fr 1fr; }
  .wa-fab{ width:54px; height:54px; }
}

/* ---------- Accesibilidad: reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ transition-duration:.01ms !important; opacity:1; transform:none; }
  .hero-emblem{ animation:none; }
  .marquee-track{ animation:none; }
  .hero-scroll .line::after{ animation:none; }
  .hero-media img{ transform:none !important; }
  .soon-inner .emblem{ animation:none; }
  .wa-fab .pulse{ animation:none; }
}
