:root{
  --black:#0a0a0b;
  --black-2:#141315;
  --black-3:#1d1b1e;
  --red:#c8102e;
  --red-dark:#5c0e1c;
  --yellow:#e8b923;
  --yellow-dim:#7a5f16;
  --ivory:#f2ece0;
  --gray:#8f8a86;
  --line:rgba(242,236,224,0.1);

  /* depth system — derived from the palette above, not new colors */
  --shadow-sm:0 2px 10px rgba(0,0,0,0.28);
  --shadow-md:0 10px 30px rgba(0,0,0,0.38);
  --shadow-lg:0 24px 60px rgba(0,0,0,0.5);
  --shadow-red:0 14px 34px rgba(200,16,46,0.28);
  --shadow-yellow:0 14px 34px rgba(232,185,35,0.2);
  --ease:cubic-bezier(.22,.9,.32,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
body{
  background:var(--black);
  color:var(--ivory);
  font-family:'Space Grotesk', sans-serif;
  overflow-x:hidden;
}
::selection{background:var(--red); color:var(--ivory);}
a{color:inherit; text-decoration:none;}
.display{font-family:'Bebas Neue', sans-serif; letter-spacing:0.02em;}
.mono{font-family:'IBM Plex Mono', monospace;}
img,canvas{display:block; max-width:100%;}
:focus-visible{outline:2px solid var(--yellow); outline-offset:3px; border-radius:2px;}
button{font-family:inherit;}

/* themed scrollbar — small professional touch */
::-webkit-scrollbar{width:10px; height:10px;}
::-webkit-scrollbar-track{background:var(--black);}
::-webkit-scrollbar-thumb{background:var(--black-3); border-radius:6px; border:2px solid var(--black);}
::-webkit-scrollbar-thumb:hover{background:var(--red-dark);}
html{scrollbar-color:var(--black-3) var(--black); scrollbar-width:thin;}

.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }

/* section anchors shouldn't hide under the fixed header */
section[id]{scroll-margin-top:86px;}

/* scroll-reveal — progressive enhancement, JS adds .in-view */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in-view{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
}

/* ===== NAV ===== */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:linear-gradient(to bottom, rgba(10,10,11,0.92), rgba(10,10,11,0));
  padding:18px 0;
  transition:background .35s var(--ease), padding .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  border-bottom:1px solid transparent;
}
header.scrolled{
  background:rgba(10,10,11,0.86);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  padding:12px 0;
  box-shadow:var(--shadow-sm);
  border-bottom:1px solid var(--line);
}
nav.wrap{display:flex; align-items:center; justify-content:space-between; gap:16px;}
.logo{display:flex; align-items:center; gap:12px; font-size:1.1rem; letter-spacing:0.04em; cursor:pointer;}
.logo img{height:42px; width:auto; max-width:180px; object-fit:contain; display:block; transition:height .3s var(--ease);}
header.scrolled .logo img{height:36px;}
.logo .tagline{font-family:'IBM Plex Mono'; font-size:0.55rem; letter-spacing:0.12em; color:var(--yellow); text-transform:uppercase; line-height:1.5;}
@media (max-width:520px){ .logo .tagline{display:none;} }
.nav-links{display:flex; gap:32px; font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase;}
.nav-links a{position:relative; padding:4px 0; opacity:0.85; transition:opacity .2s;}
.nav-links a:hover{opacity:1;}
.nav-links a::after{content:"";position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--red); transition:width .25s ease;}
.nav-links a:hover::after{width:100%;}
.nav-right{display:flex; align-items:center; gap:14px;}
.nav-book{
  border:1px solid var(--yellow); color:var(--yellow); padding:9px 18px;
  font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; border-radius:2px;
  transition:background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
  display:flex; align-items:center; gap:6px;
}
.nav-book:hover{background:var(--yellow); color:var(--black); box-shadow:var(--shadow-yellow); transform:translateY(-1px);}
@media (max-width:820px){ .nav-links{display:none;} }

/* ---- mobile menu toggle (hamburger) ---- */
.nav-toggle{
  display:none; width:40px; height:40px; border:1px solid var(--line); border-radius:3px;
  background:transparent; cursor:pointer; align-items:center; justify-content:center;
  flex-direction:column; gap:5px; transition:border-color .2s;
}
.nav-toggle:hover{border-color:var(--yellow-dim);}
.nav-toggle span{display:block; width:18px; height:2px; background:var(--ivory); transition:transform .3s var(--ease), opacity .3s var(--ease);}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (max-width:820px){ .nav-toggle{display:flex;} }

/* ---- mobile menu drawer ---- */
.mobile-menu{
  position:fixed; inset:0; z-index:99;
  background:rgba(10,10,11,0.98);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:30px;
  opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility 0s linear .3s;
}
.mobile-menu.open{opacity:1; visibility:visible; transform:translateY(0); transition:opacity .3s var(--ease), transform .3s var(--ease), visibility 0s;}
.mobile-menu a{
  font-family:'Bebas Neue'; font-size:2rem; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--ivory); opacity:0.9; transition:opacity .2s, color .2s;
}
.mobile-menu a:hover{opacity:1; color:var(--yellow);}
.mobile-menu .nav-book{margin-top:10px; font-family:'Space Grotesk';}

/* ===== HERO ===== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  padding-top:110px; overflow:hidden; isolation:isolate;
  background:#050505;
}
/* cinematic ambient lighting — red glow, gold highlights, dust, vignette */
.hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 640px 500px at 88% 10%, rgba(193,18,31,0.26), transparent 60%),
    radial-gradient(ellipse 520px 440px at 4% 94%, rgba(193,18,31,0.17), transparent 58%),
    radial-gradient(ellipse 700px 560px at 50% 105%, rgba(245,197,66,0.07), transparent 62%),
    radial-gradient(ellipse 420px 360px at 78% 55%, rgba(245,197,66,0.05), transparent 65%),
    radial-gradient(circle 2px at 18% 22%, rgba(245,197,66,0.4), transparent 100%),
    radial-gradient(circle 1.5px at 33% 64%, rgba(245,197,66,0.32), transparent 100%),
    radial-gradient(circle 1.5px at 61% 16%, rgba(255,255,255,0.28), transparent 100%),
    radial-gradient(circle 2px at 79% 70%, rgba(245,197,66,0.32), transparent 100%),
    radial-gradient(circle 1.5px at 47% 38%, rgba(255,255,255,0.22), transparent 100%),
    radial-gradient(circle 1px at 90% 30%, rgba(245,197,66,0.3), transparent 100%),
    repeating-linear-gradient(135deg, rgba(255,255,255,0.014) 0px, rgba(255,255,255,0.014) 1px, transparent 1px, transparent 64px),
    radial-gradient(ellipse 140% 120% at 50% 45%, transparent 45%, rgba(0,0,0,0.72) 100%);
  animation:heroAmbientBreathe 9s ease-in-out infinite;
}
@keyframes heroAmbientBreathe{
  0%,100%{opacity:1;}
  50%{opacity:0.9;}
}
/* embossed beard-icon watermark, engraved into the background */
.hero::after{
  content:""; position:absolute; top:50%; right:-4%;
  width:min(62%,760px); height:135%;
  background-image:url('assets/emboss-icon.png');
  background-repeat:no-repeat; background-position:center; background-size:contain;
  opacity:0.07; mix-blend-mode:soft-light;
  filter:drop-shadow(0 0 46px rgba(245,197,66,0.38)) drop-shadow(0 0 100px rgba(245,197,66,0.14));
  z-index:0; pointer-events:none; transform-origin:center;
  transform:translateY(-50%);
  animation:embossFloat 12s ease-in-out infinite, embossGlow 6.5s ease-in-out infinite;
}
@keyframes embossFloat{
  0%,100%{ transform:translateY(-50%) translate(0,0) scale(1); }
  25%{ transform:translateY(-50%) translate(-3px,-3px) scale(1.006); }
  50%{ transform:translateY(-50%) translate(0,-4px) scale(1.01); }
  75%{ transform:translateY(-50%) translate(3px,-1px) scale(1.005); }
}
@keyframes embossGlow{
  0%,100%{ opacity:0.055; }
  50%{ opacity:0.095; }
}
@media (max-width:900px){
  .hero::after{ width:min(90%,520px); right:auto; left:50%; transform:translate(-50%,-50%); }
  @keyframes embossFloat{
    0%,100%{ transform:translate(-50%,-50%) translate(0,0) scale(1); }
    25%{ transform:translate(-50%,-50%) translate(-3px,-3px) scale(1.006); }
    50%{ transform:translate(-50%,-50%) translate(0,-4px) scale(1.01); }
    75%{ transform:translate(-50%,-50%) translate(3px,-1px) scale(1.005); }
  }
}
.hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:center; width:100%;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr; text-align:left;} }
.eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.18em;
  color:var(--yellow); text-transform:uppercase; margin-bottom:20px; display:flex; align-items:center; gap:12px;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--yellow);}
.hero h1{font-size:clamp(3rem, 7.6vw, 5.8rem); line-height:0.94; text-transform:uppercase;}
.hero h1 .r{color:var(--red);}
.hero h1 .y{color:var(--yellow);}
.hero p.lede{margin-top:24px; max-width:460px; font-size:1.02rem; line-height:1.65; color:var(--gray);}
.hero-cta{display:flex; gap:16px; margin-top:36px; flex-wrap:wrap;}
.btn-primary{
  position:relative; overflow:hidden; isolation:isolate;
  background:var(--red); color:var(--ivory); padding:15px 28px; font-size:0.82rem;
  letter-spacing:0.06em; text-transform:uppercase; border-radius:2px; font-weight:600;
  transition:transform .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease);
  border:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px;
  box-shadow:var(--shadow-sm);
}
.btn-primary::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.16) 48%, transparent 66%);
  transform:translateX(-120%); transition:transform .55s var(--ease);
}
.btn-primary:hover::before{transform:translateX(120%);}
.btn-primary:hover{background:#a80d26; transform:translateY(-2px); box-shadow:var(--shadow-red);}
.btn-primary:active{transform:translateY(0); box-shadow:var(--shadow-sm);}
.btn-whatsapp{background:#1c8a4a;}
.btn-whatsapp:hover{background:#166e3b; box-shadow:0 14px 34px rgba(28,138,74,0.28);}
.btn-ghost{
  border:1px solid var(--line); padding:15px 28px; font-size:0.82rem;
  letter-spacing:0.06em; text-transform:uppercase; border-radius:2px;
  transition:border-color .25s var(--ease), transform .25s var(--ease), background .25s var(--ease);
  background:transparent; color:var(--ivory); cursor:pointer;
}
.btn-ghost:hover{border-color:var(--ivory); background:rgba(242,236,224,0.04); transform:translateY(-2px);}

.hero-meta{display:flex; gap:26px; margin-top:36px; flex-wrap:wrap; font-family:'IBM Plex Mono'; font-size:0.78rem; color:var(--gray);}
.hero-meta span{color:var(--yellow);}

.pole-stage{position:relative; height:500px; display:flex; align-items:center; justify-content:center;}
.logo-spin-wrap{position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center; perspective:1400px;}
.logo-spin-wrap::before{
  content:""; position:absolute; width:min(80%,420px); aspect-ratio:1/1; border-radius:50%;
  background:radial-gradient(circle at 50% 45%, rgba(232,185,35,0.14), rgba(200,16,46,0.08) 55%, transparent 75%);
  border:1px solid var(--line);
}
.logo-spin{position:relative; width:min(60%,320px); aspect-ratio:1/1; transform-style:preserve-3d; cursor:grab; will-change:transform;}
.face{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; backface-visibility:hidden; -webkit-backface-visibility:hidden;}
.face-back{transform:rotateY(180deg);}
.face img{width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 18px 40px rgba(0,0,0,0.55)); pointer-events:none; user-select:none;}
@media (max-width:900px){ .logo-spin{width:min(52%,240px);} }
.pole-caption{
  position:absolute; bottom:6px; left:50%; transform:translateX(-50%);
  font-family:'IBM Plex Mono', monospace; font-size:0.66rem; letter-spacing:0.12em;
  color:var(--gray); text-transform:uppercase; white-space:nowrap;
}
@media (max-width:900px){ .pole-stage{height:320px;} }

/* ===== MARQUEE ===== */
.marquee{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--black-2);
  padding:16px 0; overflow:hidden; white-space:nowrap; position:relative;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.marquee-track{display:inline-flex; animation:scroll 28s linear infinite;}
.marquee-track span{
  font-family:'Bebas Neue'; font-size:1.25rem; letter-spacing:0.08em; padding:0 24px;
  display:inline-flex; align-items:center; gap:24px; color:var(--gray); text-transform:uppercase;
}
.marquee-track span .dot{color:var(--red); font-size:0.9rem;}
@keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ===== SECTION HEADERS ===== */
section{padding:110px 0;}
@media (max-width:700px){ section{padding:76px 0;} }
.sec-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:52px; gap:20px; flex-wrap:wrap;}
.sec-head .tag{font-family:'IBM Plex Mono'; font-size:0.72rem; letter-spacing:0.16em; color:var(--red); text-transform:uppercase; margin-bottom:14px;}
.sec-head h2{font-size:clamp(2.1rem,4.8vw,3.2rem); text-transform:uppercase; line-height:1;}
.sec-head p{max-width:340px; color:var(--gray); font-size:0.92rem; line-height:1.6;}

/* ===== ABOUT ===== */
.about-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:center;}
@media (max-width:860px){ .about-grid{grid-template-columns:1fr;} }
.badge-wrap{position:relative; display:flex; justify-content:center;}
.badge-wrap img{width:100%; max-width:280px; filter:drop-shadow(0 20px 40px rgba(200,16,46,0.25)); transition:transform .4s var(--ease);}
.badge-wrap:hover img{transform:translateY(-4px) scale(1.02);}
.about-copy p{color:var(--gray); line-height:1.8; margin-bottom:20px; font-size:1rem;}
.about-copy strong{color:var(--ivory); font-weight:600;}
.info-list{margin-top:30px; display:flex; flex-direction:column; gap:14px;}
.info-list .row{display:flex; gap:12px; align-items:flex-start; font-size:0.92rem; color:var(--ivory);}
.info-list .row .ic{color:var(--yellow); flex-shrink:0;}
.info-list .row a:hover{color:var(--yellow);}

/* ===== DEALS ===== */
.deals{background:var(--black-2);}
.deal-grid{display:flex; flex-direction:column; gap:14px;}
.deal-card{
  display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:22px;
  background:var(--black); border:1px solid var(--red-dark); border-left:4px solid var(--red);
  padding:20px 26px; border-radius:3px; position:relative; overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.deal-card:hover{transform:translateX(6px) translateY(-2px); border-left-color:var(--yellow); box-shadow:var(--shadow-md);}
.deal-num{font-family:'Bebas Neue'; font-size:2.2rem; color:var(--red); line-height:1; transition:color .3s var(--ease);}
.deal-card:hover .deal-num{color:var(--yellow);}
.deal-num span{display:block; font-family:'IBM Plex Mono'; font-size:0.55rem; color:var(--gray); letter-spacing:0.1em; margin-top:2px;}
.deal-name{font-size:1rem; font-weight:600; text-transform:uppercase; letter-spacing:0.02em;}
.deal-price{font-family:'IBM Plex Mono'; color:var(--yellow); font-size:1.15rem; white-space:nowrap;}
@media (max-width:600px){
  .deal-card{grid-template-columns:46px 1fr; row-gap:8px;}
  .deal-price{grid-column:2; font-size:1rem;}
}

/* ===== SERVICES TABS ===== */
.services{}
.tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:40px;}
.tab-btn{
  background:var(--black-2); border:1px solid var(--line); color:var(--gray); padding:10px 20px;
  font-size:0.76rem; letter-spacing:0.06em; text-transform:uppercase; border-radius:20px; cursor:pointer;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
}
.tab-btn:hover{color:var(--ivory); border-color:var(--yellow-dim); transform:translateY(-1px);}
.tab-btn.active{background:var(--red); color:var(--ivory); border-color:var(--red); box-shadow:var(--shadow-red);}
.tab-panel{display:none;}
.tab-panel.active{display:block; animation:fadein .4s var(--ease);}
@keyframes fadein{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}
.svc-cols{display:grid; grid-template-columns:1fr 1fr; gap:40px 60px;}
@media (max-width:760px){ .svc-cols{grid-template-columns:1fr;} }
.svc-group{margin-bottom:34px;}
.svc-group h3{font-family:'Bebas Neue'; font-size:1.3rem; text-transform:uppercase; color:var(--yellow); margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid var(--line);}
.svc-row{display:flex; justify-content:space-between; align-items:baseline; padding:9px 10px; margin:0 -10px; border-radius:3px; border-bottom:1px dashed var(--line); font-size:0.92rem; transition:background .2s ease;}
.svc-row:hover{background:rgba(242,236,224,0.035);}
.svc-row:last-child{border-bottom:none;}
.svc-row .n{color:var(--ivory);}
.svc-row .p{font-family:'IBM Plex Mono'; color:var(--yellow); white-space:nowrap; padding-left:14px;}
.svc-note{font-size:0.75rem; color:var(--gray); margin-top:6px; font-style:italic;}

/* ===== BARBERS / TEAM removed for real content: replaced with "why us" ===== */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; perspective:1200px; background:var(--black-2);}
@media (max-width:760px){ .why-grid{grid-template-columns:1fr;} }
.why-card{
  background:var(--black); border:1px solid var(--line); padding:36px 30px;
  transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
  will-change:transform; position:relative; overflow:hidden; z-index:0;
}
.why-card::before{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--red),var(--yellow)); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease);}
.why-card:hover{border-color:var(--yellow-dim); transform:translateY(-4px); box-shadow:var(--shadow-md); z-index:1;}
.why-card:hover::before{transform:scaleX(1);}
.why-card .ic-badge{
  width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, rgba(232,185,35,0.14), rgba(200,16,46,0.1)); border:1px solid var(--line);
  color:var(--yellow); margin-bottom:18px; transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.why-card:hover .ic-badge{transform:scale(1.08) rotate(-4deg); box-shadow:var(--shadow-yellow);}
.why-card .ic-badge svg{width:24px; height:24px;}
.why-card h3{font-family:'Bebas Neue'; font-size:1.4rem; text-transform:uppercase; margin-bottom:10px;}
.why-card p{color:var(--gray); font-size:0.88rem; line-height:1.6;}

/* ===== GALLERY ===== */
.gallery{background:var(--black-2);}
.wall{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; perspective:1600px;}
@media (max-width:820px){ .wall{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .wall{grid-template-columns:1fr;} }
.tile{aspect-ratio:4/3; border-radius:3px; position:relative; overflow:hidden; border:1px solid var(--line); transition:transform .4s var(--ease), box-shadow .4s var(--ease); display:flex; align-items:center; justify-content:center; background:var(--black);}
.tile:hover{transform:rotateX(3deg) rotateY(-4deg) translateY(-6px) scale(1.02); box-shadow:var(--shadow-lg);}
.tile.photo{cursor:zoom-in;}
.tile.photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease), filter .4s ease;}
.tile.photo:hover img{transform:scale(1.08);}
.tile.photo::after{
  content:"⤢"; position:absolute; top:10px; right:10px; width:30px; height:30px; border-radius:50%;
  background:rgba(10,10,11,0.55); color:var(--ivory); display:flex; align-items:center; justify-content:center;
  font-size:0.9rem; opacity:0; transform:translateY(-4px); transition:opacity .25s ease, transform .25s ease;
  backdrop-filter:blur(4px);
}
.tile.photo:hover::after{opacity:1; transform:translateY(0);}

/* ---- lightbox ---- */
.lightbox{
  position:fixed; inset:0; z-index:300; background:rgba(6,6,7,0.94);
  display:flex; align-items:center; justify-content:center; padding:40px;
  opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility 0s linear .3s;
}
.lightbox.open{opacity:1; visibility:visible; transition:opacity .3s var(--ease), visibility 0s;}
.lightbox img{max-width:min(900px,92vw); max-height:86vh; object-fit:contain; border-radius:4px; box-shadow:var(--shadow-lg); transform:scale(0.96); transition:transform .3s var(--ease);}
.lightbox.open img{transform:scale(1);}
.lightbox-close{
  position:absolute; top:22px; right:26px; width:42px; height:42px; border-radius:50%;
  border:1px solid var(--line); background:rgba(20,19,21,0.8); color:var(--ivory); font-size:1.2rem;
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:border-color .2s, color .2s;
}
.lightbox-close:hover{border-color:var(--yellow); color:var(--yellow);}

/* ===== BOOKING ===== */
.book{
  position:relative; overflow:hidden;
  background:radial-gradient(ellipse at 50% 0%, rgba(200,16,46,0.16), transparent 60%), var(--black);
}
.book-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:flex-start;}
@media (max-width:900px){ .book-grid{grid-template-columns:1fr;} }
.book h2{font-size:clamp(2.2rem,5.6vw,3.6rem); text-transform:uppercase; line-height:0.98;}
.book h2 span{color:var(--yellow);}
.book-intro p{color:var(--gray); margin-top:18px; line-height:1.7; max-width:420px;}
.hours-card{margin-top:34px; background:var(--black-2); border:1px solid var(--line); border-radius:4px; padding:22px 26px; box-shadow:var(--shadow-sm);}
.hours-card .row{display:flex; justify-content:space-between; padding:8px 0; font-size:0.9rem; border-bottom:1px solid var(--line);}
.hours-card .row:last-child{border-bottom:none;}
.hours-card .row b{font-weight:600;}
.hours-card .row span{color:var(--yellow); font-family:'IBM Plex Mono'; font-size:0.85rem;}

.booking-form{background:var(--black-2); border:1px solid var(--line); border-radius:6px; padding:36px; box-shadow:var(--shadow-md);}
.booking-form .f-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
@media (max-width:560px){ .booking-form .f-row{grid-template-columns:1fr;} }
.booking-form label{display:block; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray); margin-bottom:8px;}
.booking-form input, .booking-form select, .booking-form textarea{
  width:100%; background:var(--black); border:1px solid var(--line); color:var(--ivory);
  padding:12px 14px; border-radius:3px; font-family:'Space Grotesk'; font-size:0.92rem;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus{
  border-color:var(--yellow); outline:none; box-shadow:0 0 0 3px rgba(232,185,35,0.14);
}
.booking-form textarea{resize:vertical; min-height:80px;}
.field{margin-bottom:16px;}
.form-msg{margin-top:16px; font-size:0.85rem; padding:12px 14px; border-radius:3px; display:none;}
.form-msg.show{display:block;}
.form-msg.ok{background:rgba(28,138,74,0.15); border:1px solid #1c8a4a; color:#7fe3a8;}
.form-msg.err{background:rgba(200,16,46,0.12); border:1px solid var(--red); color:#f2a3ae;}
.form-note{font-size:0.72rem; color:var(--gray); margin-top:14px; display:flex; align-items:center; gap:8px;}

/* ===== FOOTER ===== */
footer{border-top:1px solid var(--line); padding:44px 0;}
.foot-grid{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
.foot-logo img{height:30px;}
.foot-links{display:flex; gap:24px; font-size:0.78rem; color:var(--gray); text-transform:uppercase; letter-spacing:0.06em; flex-wrap:wrap;}
.foot-links a:hover{color:var(--yellow);}
.foot-social{display:flex; gap:10px;}
.social-btn{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line); color:var(--ivory);
  display:flex; align-items:center; justify-content:center; transition:border-color .2s, color .2s, transform .2s;
}
.social-btn svg{width:17px; height:17px;}
.social-btn:hover{color:var(--yellow); border-color:var(--yellow-dim); transform:translateY(-2px);}
.foot-copy{font-size:0.72rem; color:var(--gray); font-family:'IBM Plex Mono';}

/* ===== FLOATING WHATSAPP BUTTON ===== */
.wa-float{
  position:fixed; bottom:24px; right:24px; z-index:200; background:#1c8a4a; color:#fff;
  width:58px; height:58px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.4); transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  animation:wa-pulse 2.6s ease-in-out infinite;
}
.wa-float:hover{transform:scale(1.08); box-shadow:0 12px 30px rgba(28,138,74,0.5); animation-play-state:paused;}
@keyframes wa-pulse{
  0%,100%{box-shadow:0 8px 24px rgba(0,0,0,0.4), 0 0 0 0 rgba(28,138,74,0.45);}
  50%{box-shadow:0 8px 24px rgba(0,0,0,0.4), 0 0 0 10px rgba(28,138,74,0);}
}
@media (prefers-reduced-motion: reduce){ .wa-float{animation:none;} }
