/* ============================================
   CLUB BAULÓ — TATTOO STUDIO
   Estética: blanco/negro, gótico, crudo, sin cristalitos
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=UnifrakturCook:wght@700&family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  color-scheme:dark;
  --bg:#000;
  --ink:#fff;
  --muted:rgba(255,255,255,.62);
  --subtle:rgba(255,255,255,.4);
  --line:rgba(255,255,255,.14);
  --line-strong:rgba(255,255,255,.32);
  --line-bold:rgba(255,255,255,.6);
  --paper:#0a0a0a;
  --paper-2:#111;
  --shadow:0 24px 60px rgba(0,0,0,.6);
  --radius:0px;          /* nada redondeado por defecto */
  --radius-pill:999px;   /* solo para botones */
  --max:1200px;
  --header-h:78px;
  --gothic:'UnifrakturCook',serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;text-size-adjust:100%}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  min-height:100svh;
  overflow-x:hidden;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-size:16px;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===== FONDO LIMPIO ===== */
.site-bg{
  position:fixed;inset:0;z-index:-4;
  background:#000;
}
.site-bg::before{
  content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.04),transparent 50%),
    radial-gradient(circle at 0% 100%,rgba(255,255,255,.025),transparent 40%);
}
/* Grano sutil */
.grain{
  position:fixed;inset:0;z-index:80;pointer-events:none;
  opacity:.08;
  background-image:
    radial-gradient(circle at 30% 10%,#fff .55px,transparent .8px),
    radial-gradient(circle at 70% 60%,#fff .45px,transparent .7px);
  background-size:13px 13px,19px 19px;
  mix-blend-mode:screen;
}
/* Quitamos los orbs */
.orb{display:none}

/* ===== FONDO ESPECIAL: DÓNDE ESTAMOS (mar a color) ===== */
.page-location .site-bg{
  background:#000;
}
.page-location .site-bg::before{
  background-image:
    linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.22) 55%,rgba(0,0,0,.55) 100%),
    url('../images/baulo-ocean-480.webp');
  background-size:cover,cover;
  background-position:center,center;
  filter:saturate(1.12) contrast(1.06);
}
/* En pantallas grandes cargamos la versión de alta resolución */
@media (min-width:600px){
  .page-location .site-bg::before{
    background-image:
      linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.22) 55%,rgba(0,0,0,.55) 100%),
      url('../images/baulo-ocean.webp');
  }
}
.page-location .site-bg::after{
  background-image:
    radial-gradient(circle at 50% 30%,rgba(255,255,255,.04),transparent 55%);
}

.skip-link{position:fixed;left:16px;top:12px;z-index:200;background:#fff;color:#000;padding:10px 14px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;transform:translateY(-160%);transition:transform .2s ease}
.skip-link:focus{transform:translateY(0)}

/* ===== HEADER NÍTIDO ===== */
.header{
  position:fixed;top:0;left:0;right:0;z-index:70;
  height:var(--header-h);
  padding:0 clamp(18px,4vw,40px);
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(0,0,0,.4);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:background .3s ease,border-color .3s ease;
}
.header.is-scrolled{
  background:#000;
  border-bottom-color:var(--line);
}

.brand{
  display:flex;align-items:center;gap:14px;
  transition:opacity .2s ease;
}
.brand:hover{opacity:.78}
.brand-logo{
  width:auto;height:48px;
  filter:invert(1);
  display:block;
}
.brand-text{
  display:none; /* el logo ya dice todo */
}

.header-actions{display:flex;align-items:center;gap:14px}

/* ===== SELECTOR DE IDIOMAS (desplegable con bandera) ===== */
.lang-select{position:relative}
.lang-current{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:42px;
  padding:0 12px;
  border:1.5px solid var(--line-strong);
  background:transparent;
  color:#fff;
  cursor:pointer;
  transition:border-color .2s ease,background .2s ease;
}
.lang-current:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.lang-flag{
  font-size:1.05rem;
  line-height:1;
  display:inline-block;
}
.lang-code{
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.1em;
  line-height:1;
}
.lang-caret{
  width:0;height:0;
  margin-left:2px;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:5px solid rgba(255,255,255,.7);
  transition:transform .25s ease;
}
.lang-select.is-open .lang-caret{transform:rotate(180deg)}

.lang-menu{
  list-style:none;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:170px;
  margin:0;padding:6px;
  background:#000;
  border:1.5px solid #fff;
  display:grid;
  gap:2px;
  opacity:0;visibility:hidden;
  transform:translateY(-6px);
  transform-origin:top right;
  transition:opacity .18s ease,visibility .18s ease,transform .18s ease;
  z-index:75;
}
.lang-select.is-open .lang-menu{opacity:1;visibility:visible;transform:translateY(0)}
.lang-menu li{margin:0}
.lang-menu button{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:0;
  background:transparent;
  color:#fff;
  cursor:pointer;
  text-align:left;
  transition:background .15s ease;
}
.lang-menu button:hover{background:rgba(255,255,255,.1)}
.lang-menu button.is-active{background:#fff;color:#000}
.lang-menu .lang-code{opacity:.6;min-width:22px}
.lang-menu button.is-active .lang-code{opacity:1}
.lang-menu .lang-name{
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.01em;
  margin-left:auto;
}
.header-cta{
  height:42px;padding:0 22px;
  border:1.5px solid #fff;
  background:transparent;
  color:#fff;
  font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  display:inline-flex;align-items:center;
  transition:background .2s ease,color .2s ease;
  cursor:pointer;
}
.header-cta:hover{background:#fff;color:#000}

/* Botón menú: cuadrado, brutal */
.menu-button{
  width:42px;height:42px;
  border:1.5px solid #fff;
  background:transparent;
  display:grid;place-items:center;cursor:pointer;
  transition:background .2s ease;
}
.menu-button:hover{background:rgba(255,255,255,.1)}
.menu-lines{position:relative;width:18px;height:12px;display:block}
.menu-lines::before,.menu-lines::after{
  content:"";position:absolute;left:0;right:0;height:2px;
  background:#fff;
  transition:transform .3s cubic-bezier(.65,0,.35,1),top .3s cubic-bezier(.65,0,.35,1);
}
.menu-lines::before{top:1px}
.menu-lines::after{top:9px}
.menu-open .menu-lines::before{top:5px;transform:rotate(45deg)}
.menu-open .menu-lines::after{top:5px;transform:rotate(-45deg)}

/* ===== MENÚ DROPDOWN: nítido, sin cristalito ===== */
.nav-panel{
  position:fixed;
  top:calc(var(--header-h) + 0px);
  right:clamp(18px,4vw,40px);
  z-index:65;
  width:min(340px,calc(100vw - 36px));
  background:#000;
  border:1.5px solid #fff;
  padding:24px;
  opacity:0;visibility:hidden;
  transform:translateY(-8px);
  transform-origin:top right;
  transition:opacity .2s ease,visibility .2s ease,transform .2s ease;
}
.nav-panel.is-open{opacity:1;visibility:visible;transform:translateY(8px)}

.nav-inner{display:grid;gap:18px}
.nav-kicker{
  font-size:.62rem;letter-spacing:.36em;text-transform:uppercase;
  color:var(--muted);
  display:flex;align-items:center;gap:10px;
  padding-bottom:14px;border-bottom:1px solid var(--line);
  font-weight:700;
}
.nav-kicker::before{
  content:"";width:6px;height:6px;
  background:#fff;display:inline-block;
}

.nav-links{list-style:none;display:grid;gap:0}
.nav-links li{margin:0;border-top:1px solid var(--line)}
.nav-links li:first-child{border-top:0}
.nav-links a{
  display:flex;align-items:center;
  padding:14px 4px;
  font-size:1rem;font-weight:600;
  color:var(--ink);
  position:relative;
  transition:padding .2s ease,color .2s ease;
}
.nav-links a::before{
  content:attr(data-num);
  font-size:.62rem;font-weight:700;letter-spacing:.18em;
  color:var(--subtle);
  font-variant-numeric:tabular-nums;
  margin-right:16px;
  min-width:22px;
  transition:color .2s ease;
}
.nav-links a::after{
  content:"→";
  margin-left:auto;
  font-size:1rem;color:var(--subtle);
  opacity:0;transform:translateX(-6px);
  transition:opacity .2s ease,transform .2s ease,color .2s ease;
}
.nav-links a:hover{padding-left:10px}
.nav-links a:hover::after{opacity:1;transform:translateX(0);color:#fff}
.nav-links a:hover::before{color:#fff}
.nav-links a[aria-current="page"]{color:#fff}
.nav-links a[aria-current="page"]::before{color:#fff}
.nav-links a[aria-current="page"]::after{opacity:1;transform:translateX(0);color:#fff;content:"●";font-size:.5rem}

.nav-meta{
  display:grid;gap:6px;
  padding-top:16px;border-top:1px solid var(--line);
  color:var(--subtle);font-size:.72rem;line-height:1.4;
}
.nav-meta span:first-child{color:var(--muted);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.62rem}

/* Overlay sutil */
.nav-overlay{
  position:fixed;inset:0;z-index:60;
  background:rgba(0,0,0,.5);
  opacity:0;visibility:hidden;
  transition:opacity .25s ease,visibility .25s ease;
}
.nav-overlay.is-open{opacity:1;visibility:visible}

/* ===== LAYOUT ===== */
main{position:relative;z-index:1}
.section{padding:clamp(70px,10vw,120px) clamp(18px,4vw,44px)}
.section-tight{padding-top:0}
.wrap{width:min(var(--max),100%);margin-inline:auto}

.hero{
  min-height:calc(100svh - var(--header-h));
  display:grid;align-items:end;
  padding-top:calc(var(--header-h) + 40px);
  padding-bottom:60px;
}
.hero-grid{
  display:grid;grid-template-columns:1.1fr .9fr;
  gap:clamp(24px,4vw,56px);
  align-items:end;
}
.hero-grid > *{min-width:0}

/* ===== PANELES PLANOS (sin glassmorphism) ===== */
.panel{
  border:1px solid var(--line);
  background:transparent;
  box-shadow:none;
  position:relative;
}
.panel::before{display:none} /* sin highlight de cristal */

.hero-copy,.content-card,.booking-card,.quote-card,.info-panel{
  padding:clamp(28px,5vw,56px);
}
.hero-copy{padding:0;border:0}

/* ===== TIPOGRAFÍA ===== */
.label{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--line-strong);
  padding:8px 14px;
  background:transparent;
  color:var(--ink);
  font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;
  font-weight:700;
}
.label i{
  width:6px;height:6px;background:#fff;display:inline-block;
}

/* Títulos: gótico para hero y headlines, sans para resto */
h1,.display{
  font-family:var(--gothic);
  margin-top:24px;
  font-size:clamp(2.4rem,7vw,7rem);
  font-weight:700;
  letter-spacing:0;
  line-height:.98;
  text-wrap:balance;
  word-break:break-word;
  overflow-wrap:break-word;
  hyphens:auto;
}
.headline{
  font-family:var(--gothic);
  font-size:clamp(1.9rem,5vw,4.6rem);
  font-weight:700;
  letter-spacing:0;
  line-height:1.02;
  text-wrap:balance;
  word-break:break-word;
  overflow-wrap:break-word;
  hyphens:auto;
}
.lead{
  margin-top:26px;
  color:var(--muted);
  font-size:clamp(1rem,1.4vw,1.15rem);
  max-width:56ch;
  line-height:1.6;
}

/* ===== BOTONES BRUTALISTAS ===== */
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.btn{
  min-height:52px;padding:0 26px;
  display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;
  border:1.5px solid #fff;
  background:transparent;
  color:#fff;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,transform .2s ease;
  position:relative;
}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:#fff;color:#000}
.btn.primary:hover{background:#000;color:#fff}
.btn.ghost{background:transparent;color:#fff}
.btn.ghost:hover{background:#fff;color:#000}
.btn.block{width:100%}
.btn.small{min-height:44px;padding-inline:18px;font-size:.65rem}

/* Marquesina */
.ticker{
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid var(--line);
  color:var(--subtle);
  font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  font-size:.7rem;
  width:100%;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
}
.ticker-track{
  display:inline-flex;
  gap:14px;
  align-items:center;
  animation:ticker-scroll 28s linear infinite;
}
.ticker span{white-space:nowrap;flex-shrink:0}
@keyframes ticker-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* ===== TARJETAS ===== */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.mini{
  padding:32px 28px;
  min-height:240px;
  border:0;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:transparent;
}
.eyebrow{
  font-size:.65rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--muted);font-weight:700;
}
.mini b{
  display:block;
  font-family:var(--gothic);
  font-size:clamp(1.6rem,2.4vw,2.2rem);
  font-weight:700;
  line-height:1;
  margin-top:20px;
}
.mini p{margin-top:14px;color:var(--muted);font-size:.95rem}

.split{
  display:grid;grid-template-columns:.85fr 1.15fr;gap:0;
  align-items:stretch;
  border:1px solid var(--line);
}
.split > *{border:0;min-width:0}
.split > * + *{border-left:1px solid var(--line)}

.info-list,.steps,.booking-list{display:grid;gap:0;margin-top:32px}
.info-item,.step,.booking-list li{
  padding:18px 0;border-top:1px solid var(--line);
  color:var(--muted);
}
.info-item:last-child,.step:last-child,.booking-list li:last-child{border-bottom:1px solid var(--line)}
.info-item strong,.step strong,.booking-list strong{color:var(--ink);font-weight:700}
.step small{display:block;color:var(--subtle);margin-top:6px;font-size:.9rem;line-height:1.5}

/* ===== VISUAL ===== */
.visual-card{
  min-height:clamp(420px,60vh,640px);
  display:grid;align-items:end;
  padding:24px;
  position:relative;
  background:#000;
  border:1px solid var(--line);
  overflow:hidden;
}
.visual-card::after{
  content:"";position:absolute;inset:14px;
  border:1px solid var(--line);
  pointer-events:none;
}

/* Logo en visual: gigante, central, blanco */
.tattoo-visual{
  background:
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.05),transparent 60%),
    #000;
}
.logo-visual{
  position:absolute;inset:0;
  display:grid;place-items:center;
  padding:8%;
  z-index:1;
}
.logo-visual img{
  width:min(100%,460px);height:auto;
  filter:invert(1);
  opacity:.95;
}

.tattoo-art{position:absolute;inset:0;display:grid;place-items:center;padding:32px;z-index:1}
.tattoo-art svg{
  width:min(100%,500px);height:auto;
  opacity:.9;
  filter:grayscale(1) brightness(1.2);
}

.stamp{
  position:relative;z-index:2;
  display:grid;gap:8px;
  max-width:300px;padding:18px 20px;
  background:#000;
  border:1px solid var(--line-strong);
}
.stamp strong{font-size:1rem;letter-spacing:.02em;font-weight:700;text-transform:uppercase}
.stamp span{color:var(--muted);font-size:.85rem;line-height:1.4}

/* ===== CTA BAND ===== */
.cta-band{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border:1px solid var(--line);
}
.cta-band > *{border:0;min-width:0}
.cta-band > * + *{border-left:1px solid var(--line)}
.cta-copy{padding:clamp(28px,4vw,48px)}

.kpi-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  margin-top:32px;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.kpi{
  padding:18px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:transparent;
}
.kpi strong{
  display:block;
  font-family:var(--gothic);
  font-size:1.7rem;
  letter-spacing:0;
  font-weight:700;
  line-height:1;
}
.kpi span{display:block;margin-top:8px;color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.14em;font-weight:600}

.quote-card .quote{
  font-family:var(--gothic);
  font-size:clamp(1.6rem,2.8vw,2.4rem);
  line-height:1.2;
  letter-spacing:.005em;
  color:#fff;
  font-weight:700;
}
.quote-card p{margin-top:20px;color:var(--muted)}

/* ===== BOOKING ===== */
.booking-shell{
  display:grid;grid-template-columns:1.1fr .9fr;gap:0;
  align-items:start;
  border:1px solid var(--line);
}
.booking-shell > *{border:0;min-width:0}
.booking-shell > * + *{border-left:1px solid var(--line)}

.booking-card form{margin-top:32px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{display:grid;gap:8px}
.field label{
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);font-weight:700;
}
.field input,.field select,.field textarea{
  width:100%;
  border:1px solid var(--line-strong);
  background:transparent;
  color:#fff;
  padding:14px 16px;
  outline:none;
  border-radius:0;
  -webkit-appearance:none;
  appearance:none;
  transition:border-color .2s ease,background .2s ease;
  font-size:16px; /* 16px evita el zoom automatico al enfocar en iOS */
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' d='M1 1l5 5 5-5' stroke='%23ffffff' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  padding-right:42px;
}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:#fff;
  background:rgba(255,255,255,.04);
}
.field select option{background:#000;color:#fff}
.field.full{grid-column:1/-1}
.booking-hint{margin-top:16px;color:var(--subtle);font-size:.88rem}
.success-box{
  margin-top:18px;
  padding:18px;
  border:1.5px solid #fff;
  background:rgba(255,255,255,.04);
  color:var(--ink);
}
.success-box strong{font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem}
.success-box p{color:var(--muted);margin-top:6px;font-size:.9rem}
.success-box .btn{margin-top:14px}

.booking-side{display:grid;gap:0}
.booking-side > * + *{border-top:1px solid var(--line)}

.booking-list{list-style:none;margin-top:24px}
.booking-list li{padding:18px 0;line-height:1.5}
.booking-list li:last-child{border-bottom:1px solid var(--line)}

/* ===== MAPA ===== */
.map-card{padding:0;border:1px solid var(--line);background:#000}
.map-frame{
  width:100%;min-height:520px;border:0;
  filter:grayscale(1) contrast(1.1) brightness(.85) invert(.92);
}

.address-card{
  display:grid;gap:0;
  background:rgba(6,10,14,.55);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-color:rgba(255,255,255,.12);
}
.address-line{
  display:flex;justify-content:space-between;align-items:flex-start;gap:18px;
  padding:18px 0;border-top:1px solid var(--line);
  color:var(--muted);
}
.address-line:last-of-type{border-bottom:1px solid var(--line)}
.address-line strong{
  color:var(--ink);font-weight:700;
  text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;
  flex-shrink:0;min-width:100px;
}
.address-line span{text-align:right}

/* ===== FOOTER ===== */
.footer{
  padding:32px clamp(18px,4vw,44px) 40px;
  color:var(--subtle);
  border-top:1px solid var(--line);
  margin-top:60px;
}
.footer-grid{
  width:min(var(--max),100%);margin:auto;
  display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;
  font-size:.78rem;
  text-transform:uppercase;letter-spacing:.14em;
}
.footer-links{display:flex;gap:22px;flex-wrap:wrap}
.footer a{color:var(--muted);transition:color .2s ease}
.footer a:hover{color:#fff}

/* ===== ANIMACIONES ===== */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}

/* ================================================
   ESTILOS MINIMALISTAS — INICIO, QUIÉNES, RESERVA
   ================================================ */

/* ===== PORTADA (cover): logo gigante + frase ===== */
.cover{
  min-height:100svh;
  padding:var(--header-h) 24px 60px;
  display:grid;
  place-items:center;
  position:relative;
}
.cover-inner{
  display:grid;
  place-items:center;
  text-align:center;
  gap:32px;
  width:100%;
  max-width:720px;
}
.cover-logo{
  width:min(78vw,520px);
  height:auto;
  filter:invert(1);
  opacity:.98;
  animation:cover-fade .9s ease both;
}
.cover-tagline{
  font-size:.75rem;
  letter-spacing:.4em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:600;
  animation:cover-fade 1s ease .2s both;
}
@keyframes cover-fade{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}

/* Indicador de scroll abajo */
.cover-scroll{
  position:absolute;
  bottom:32px;left:50%;
  transform:translateX(-50%);
  width:32px;height:48px;
  display:grid;place-items:center;
  border:1px solid var(--line-strong);
  border-radius:999px;
  opacity:.7;
  transition:opacity .2s ease,border-color .2s ease;
}
.cover-scroll:hover{opacity:1;border-color:#fff}
.cover-scroll span{
  width:2px;height:8px;background:#fff;
  border-radius:2px;
  animation:scroll-dot 1.6s ease-in-out infinite;
}
@keyframes scroll-dot{
  0%{transform:translateY(-6px);opacity:0}
  40%{opacity:1}
  80%{transform:translateY(6px);opacity:0}
  100%{opacity:0}
}

/* ===== PAGE HERO (quiénes somos, reserva) ===== */
.page-hero{
  padding-top:calc(var(--header-h) + clamp(60px,12vw,140px));
  padding-bottom:clamp(40px,6vw,80px);
}
.page-hero-inner{
  text-align:center;
  display:grid;
  gap:18px;
  place-items:center;
  max-width:720px;
  margin-inline:auto;
}
.page-kicker{
  font-size:.7rem;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:700;
}
.page-title{
  font-family:var(--gothic);
  font-size:clamp(2.6rem,8vw,6rem);
  font-weight:700;
  line-height:1;
  letter-spacing:0;
}
.page-lead{
  color:var(--muted);
  font-size:clamp(1rem,1.6vw,1.15rem);
  max-width:48ch;
  line-height:1.6;
}
.about-logo{
  width:clamp(120px,18vw,180px);
  height:auto;
  filter:invert(1);
  opacity:.95;
  margin:6px 0 4px;
}

/* ===== CLEAN GRID (3 puntos minimalistas) ===== */
.clean-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.clean-item{
  padding:clamp(28px,4vw,44px) clamp(20px,3vw,32px);
  border-left:1px solid var(--line);
  display:grid;
  gap:14px;
  align-content:start;
}
.clean-item:first-child{border-left:0}
.clean-num{
  font-size:.7rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--subtle);
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.clean-item h3{
  font-family:var(--gothic);
  font-size:clamp(1.6rem,2.4vw,2.2rem);
  font-weight:700;
  line-height:1;
  letter-spacing:0;
}
.clean-item p{
  color:var(--muted);
  font-size:.95rem;
  line-height:1.55;
}

/* ===== CTA limpio centrado (final de página) ===== */
.cover-cta{
  text-align:center;
  display:grid;
  gap:22px;
  place-items:center;
  max-width:720px;
  margin-inline:auto;
}
.cta-kicker{
  font-size:.7rem;letter-spacing:.36em;text-transform:uppercase;
  color:var(--muted);font-weight:700;
}
.cta-title{
  font-family:var(--gothic);
  font-size:clamp(2.4rem,6vw,5rem);
  font-weight:700;
  line-height:1;
  letter-spacing:0;
}
.actions-center{justify-content:center}
.section-end{padding-bottom:clamp(80px,10vw,140px)}

/* ===== BOOKING limpio centrado ===== */
.booking-clean{
  max-width:640px;
  margin-inline:auto;
}
.booking-form{display:grid;gap:24px}
.booking-form .actions{margin-top:8px}
.booking-form .booking-hint{
  text-align:center;
  color:var(--subtle);
  font-size:.85rem;
  margin-top:0;
}

/* ===== RESPONSIVE ===== */
@media (max-width:960px){
  .hero-grid,.split,.cta-band,.booking-shell{grid-template-columns:1fr}
  .split > * + *,.cta-band > * + *,.booking-shell > * + *{border-left:0;border-top:1px solid var(--line)}
  .hero{align-items:center}
  .visual-card{min-height:380px}
  .cards{grid-template-columns:1fr}
  .kpi-row{grid-template-columns:repeat(3,1fr)}
  .map-frame{min-height:420px}
  .footer-grid{grid-template-columns:1fr}
}

@media (max-width:720px){
  .header-cta{
    display:inline-flex;
    height:38px;
    padding:0 14px;
    font-size:.62rem;
    letter-spacing:.14em;
  }
  .form-grid{grid-template-columns:1fr}
  .kpi-row{grid-template-columns:1fr}
}

/* En pantallas estrechas priorizamos el selector de idioma: ocultamos el CTA
   de cabecera (Reservar sigue en el menu) y compactamos el selector. */
@media (max-width:560px){
  .header-cta{display:none}
  .lang-current{height:40px;padding:0 10px;gap:6px}
  .lang-current .lang-code{display:none}
  .lang-menu{min-width:160px}
}

/* El menu nunca debe cortarse en pantallas bajas */
.nav-panel{
  max-height:calc(100svh - var(--header-h) - 24px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}

@media (max-width:640px){
  :root{--header-h:66px}
  .header{padding:0 16px}
  .brand-logo{height:38px}
  .menu-button{width:40px;height:40px}
  .section{padding-inline:16px}
  .hero{padding-top:calc(var(--header-h) + 24px);min-height:auto;padding-bottom:30px}
  .hero-copy,.content-card,.booking-card,.quote-card,.info-panel,.cta-copy{padding:24px}
  .visual-card{min-height:340px}
  .actions{display:grid}
  .btn{width:100%;min-height:54px}
  .lead{font-size:1rem}
  .nav-panel{
    top:var(--header-h);
    right:8px;left:8px;
    width:auto;
    padding:20px;
  }
  .nav-links a{font-size:1.05rem;padding:16px 4px}
  .mini{min-height:auto;padding:24px 22px}
  .map-card{padding:0}
  .map-frame{min-height:360px}
  .address-line{display:grid;gap:6px}
  .address-line span{text-align:left}
  .footer-grid{font-size:.72rem}
}

@media (max-width:960px){
  .clean-grid{grid-template-columns:1fr;border-top:1px solid var(--line)}
  .clean-item{border-left:0;border-top:1px solid var(--line)}
  .clean-item:first-child{border-top:0}
}

@media (max-width:640px){
  .cover{padding:calc(var(--header-h) + 20px) 18px 40px}
  .cover-logo{width:min(82vw,420px)}
  .cover-tagline{font-size:.7rem;letter-spacing:.32em}
  .cover-scroll{bottom:24px}
  .page-hero{padding-top:calc(var(--header-h) + 50px)}
  .page-hero-inner{gap:14px}
  .clean-item{padding:24px 18px}
  .booking-clean{max-width:100%}
}

@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .menu-button:hover,.btn:hover,.header-cta:hover{transform:none}
}

/* ================================================================
   MEJORAS VISUALES PRO — Club Bauló
   Efectos cuidados que respetan la estética blanco/negro gótica.
   ================================================================ */

/* ----- Barra de progreso de scroll (fina, arriba del todo) ----- */
.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:0%;
  background:#fff;z-index:120;
  box-shadow:0 0 12px rgba(255,255,255,.6);
  transition:width .08s linear;
  pointer-events:none;
}

/* ----- Botones: brillo que cruza al pasar el ratón ----- */
.btn{overflow:hidden}
.btn::after{
  content:"";position:absolute;top:0;left:-120%;
  width:60%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);
  transition:left .55s ease;
  pointer-events:none;
}
.btn:hover::after{left:140%}
.btn.primary::after{background:linear-gradient(120deg,transparent,rgba(0,0,0,.25),transparent)}

/* ----- Reveal mejorado: desplazamiento + leve desenfoque ----- */
.reveal{
  opacity:0;transform:translateY(26px);
  filter:blur(6px);
  transition:opacity .8s cubic-bezier(.16,1,.3,1),
             transform .8s cubic-bezier(.16,1,.3,1),
             filter .8s cubic-bezier(.16,1,.3,1);
  will-change:opacity,transform;
}
.reveal.is-visible{opacity:1;transform:none;filter:blur(0)}

/* Reveal en cascada para grupos (clean-grid, footer-links, etc.) */
[data-stagger] > *{
  opacity:0;transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);
}
[data-stagger].is-visible > *{opacity:1;transform:none}
[data-stagger].is-visible > *:nth-child(1){transition-delay:.05s}
[data-stagger].is-visible > *:nth-child(2){transition-delay:.15s}
[data-stagger].is-visible > *:nth-child(3){transition-delay:.25s}
[data-stagger].is-visible > *:nth-child(4){transition-delay:.35s}
[data-stagger].is-visible > *:nth-child(5){transition-delay:.45s}

/* ----- Títulos góticos: aparición por palabras ----- */
.word-anim .word{
  display:inline-block;
  opacity:0;transform:translateY(40%) rotate(2deg);
  transition:opacity .7s ease,transform .7s cubic-bezier(.2,1,.3,1);
}
.word-anim.is-visible .word{opacity:1;transform:none}

/* ----- Portada: el logo respira muy sutilmente ----- */
.cover-logo{animation:cover-fade .9s ease both, logo-breathe 7s ease-in-out 1s infinite}
@keyframes logo-breathe{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.018)}
}

/* Línea fina animada bajo el tagline de portada */
.cover-tagline{position:relative}
.cover-tagline::after{
  content:"";position:absolute;left:50%;bottom:-14px;
  width:0;height:1px;background:rgba(255,255,255,.5);
  transform:translateX(-50%);
  animation:line-grow 1.1s ease 1.1s forwards;
}
@keyframes line-grow{to{width:54px}}

/* ----- Tarjetas clean-item: subrayado que crece al hover ----- */
.clean-item{position:relative;transition:background .3s ease}
.clean-item::after{
  content:"";position:absolute;left:0;bottom:0;
  height:2px;width:0;background:#fff;
  transition:width .4s cubic-bezier(.16,1,.3,1);
}
.clean-item:hover{background:rgba(255,255,255,.025)}
.clean-item:hover::after{width:100%}
.clean-item:hover .clean-num{color:#fff}
.clean-num{transition:color .3s ease}

/* ----- Enlaces del menú: número que se ilumina ----- */
.nav-links a::before{transition:color .25s ease,transform .25s ease}
.nav-links a:hover::before{transform:translateX(2px)}

/* ----- Header: el logo con leve realce al hacer scroll ----- */
.header.is-scrolled .brand-logo{transform:scale(.94);transition:transform .3s ease}

/* ----- Foco accesible y elegante (teclado) ----- */
:focus-visible{
  outline:2px solid rgba(255,255,255,.8);
  outline-offset:3px;
}

/* ----- Selección de texto a juego ----- */
::selection{background:#fff;color:#000}

/* ----- Campos del formulario: línea inferior que se anima ----- */
.field{position:relative}
.field input,.field select,.field textarea{transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}
.field input:focus,.field select:focus,.field textarea:focus{
  box-shadow:0 4px 18px -8px rgba(255,255,255,.35);
}

/* ----- Botón enviar reserva: pulso sutil para invitar al clic ----- */
.booking-form .btn.primary{position:relative}
.booking-form .btn.primary::before{
  content:"";position:absolute;inset:0;
  border:1.5px solid #fff;
  opacity:0;
  animation:none;
}
.booking-form .btn.primary:not(:hover)::before{
  animation:pulse-ring 2.6s ease-out infinite;
}
@keyframes pulse-ring{
  0%{opacity:.5;transform:scale(1)}
  70%{opacity:0;transform:scale(1.12)}
  100%{opacity:0;transform:scale(1.12)}
}

/* ----- Mapa: se ilumina al pasar por encima ----- */
.map-card{transition:border-color .3s ease}
.map-card:hover{border-color:var(--line-bold)}
.map-frame{transition:filter .4s ease}
.map-card:hover .map-frame{filter:grayscale(.6) contrast(1.05) brightness(.95) invert(.9)}

/* ----- Scrollbar a juego (navegadores webkit) ----- */
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#000}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border:2px solid #000}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}

/* ----- Respeto a quien prefiere menos movimiento ----- */
@media (prefers-reduced-motion:reduce){
  .scroll-progress,.btn::after,.cover-logo,.cover-tagline::after,
  .booking-form .btn.primary::before{animation:none!important;transition:none!important}
  .word-anim .word{opacity:1;transform:none}
  [data-stagger] > *{opacity:1;transform:none}
}

/* Delays escalonados para la aparición por palabras */
.word-anim.is-visible .word:nth-child(1){transition-delay:.02s}
.word-anim.is-visible .word:nth-child(2){transition-delay:.08s}
.word-anim.is-visible .word:nth-child(3){transition-delay:.14s}
.word-anim.is-visible .word:nth-child(4){transition-delay:.20s}
.word-anim.is-visible .word:nth-child(5){transition-delay:.26s}
.word-anim.is-visible .word:nth-child(6){transition-delay:.32s}
.word-anim.is-visible .word:nth-child(7){transition-delay:.38s}
.word-anim.is-visible .word:nth-child(8){transition-delay:.44s}

/* ================================================================
   GALERÍA DE TRABAJOS + LIGHTBOX — Club Bauló
   ================================================================ */
.wrap-wide{max-width:1320px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}

.gallery-section .page-kicker.center,
.gallery-section .page-lead.center{text-align:center}
.gallery-title{
  font-family:var(--font-display,inherit);
  text-align:center;
  font-size:clamp(2.4rem,7vw,4.4rem);
  line-height:.95;
  margin:.1em 0 .35em;
  letter-spacing:-.01em;
}
.gallery-section .page-lead{margin-bottom:clamp(28px,5vw,48px)}

/* Masonry mediante columnas: se reordena solo según el ancho */
.gallery{
  column-count:4;
  column-gap:14px;
}
@media (max-width:1100px){.gallery{column-count:3}}
@media (max-width:720px){.gallery{column-count:2;column-gap:10px}}
@media (max-width:420px){.gallery{column-count:2;column-gap:8px}}

.gallery-item{
  margin:0 0 14px;
  break-inside:avoid;
  position:relative;
  overflow:hidden;
  cursor:pointer;
  background:#0a0a0a;
  border:1px solid rgba(255,255,255,.06);
  opacity:0;transform:translateY(20px);
  transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);
}
@media (max-width:720px){.gallery-item{margin-bottom:10px}}
.gallery-item.is-in{opacity:1;transform:none}

.gallery-item img{
  display:block;width:100%;height:auto;
  transition:transform .6s cubic-bezier(.16,1,.3,1),filter .5s ease;
  will-change:transform;
}
/* Zoom + leve oscurecido con marca al pasar el ratón */
.gallery-item::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.55),transparent 55%);
  opacity:0;transition:opacity .4s ease;
}
.gallery-item::before{
  content:"+";
  position:absolute;z-index:2;right:12px;bottom:8px;
  font-size:1.6rem;line-height:1;color:#fff;
  opacity:0;transform:translateY(6px);
  transition:opacity .4s ease,transform .4s ease;
  pointer-events:none;
}
@media (hover:hover){
  .gallery-item:hover img{transform:scale(1.06)}
  .gallery-item:hover::after{opacity:1}
  .gallery-item:hover::before{opacity:.9;transform:none}
}

/* ----- Lightbox (visor a pantalla completa) ----- */
.lightbox{
  position:fixed;inset:0;z-index:200;
  background:rgba(0,0,0,.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
  backdrop-filter:blur(4px);
}
.lightbox.is-open{opacity:1;visibility:visible}
.lightbox-img{
  max-width:92vw;max-height:86vh;
  object-fit:contain;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.8);
  transform:scale(.96);
  transition:transform .35s cubic-bezier(.16,1,.3,1);
}
.lightbox.is-open .lightbox-img{transform:scale(1)}
.lightbox-close{
  position:absolute;top:18px;right:22px;
  width:46px;height:46px;
  background:transparent;border:0;color:#fff;
  font-size:2.4rem;line-height:1;cursor:pointer;
  opacity:.8;transition:opacity .2s ease,transform .2s ease;
}
.lightbox-close:hover{opacity:1;transform:rotate(90deg)}
.lightbox-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:56px;height:56px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;font-size:2rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,border-color .2s ease;
}
.lightbox-nav:hover{background:rgba(255,255,255,.15);border-color:#fff}
.lightbox-nav.prev{left:max(14px,3vw)}
.lightbox-nav.next{right:max(14px,3vw)}
.lightbox-counter{
  position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
  font-size:.8rem;letter-spacing:.15em;color:rgba(255,255,255,.7);
}
@media (max-width:560px){
  .lightbox-nav{width:44px;height:44px;font-size:1.5rem}
  .lightbox-img{max-width:96vw;max-height:80vh}
}

@media (prefers-reduced-motion:reduce){
  .gallery-item,.gallery-item img,.lightbox,.lightbox-img{transition:none!important}
  .gallery-item{opacity:1;transform:none}
}
