/* ═══════════════════════════════════════════════
   BARBERS TOWN — Premium CSS
   Dark luxury · Gold accents · Cinzel typography
═══════════════════════════════════════════════ */

:root {
  --black:    #0a0a0a;
  --dark:     #111111;
  --dark2:    #181818;
  --dark3:    #222222;
  --gold:     #c9a84c;
  --gold2:    #e8c96a;
  --gold3:    #f5e0a0;
  --white:    #f5f0e8;
  --grey:     #888888;
  --grey2:    #555555;
  --border:   rgba(201,168,76,0.2);
  --font-display: 'Cinzel', serif;
  --font-body:    'Cormorant Garamond', serif;
  --font-ui:      'Inter', sans-serif;
  --transition:   0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --shadow-gold:  0 0 40px rgba(201,168,76,0.15);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body { background:var(--black); color:var(--white); font-family:var(--font-body); overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
ul { list-style:none; }

/* ── LOADER ── */
.loader {
  position:fixed; inset:0; z-index:9999;
  background:var(--black);
  display:flex; align-items:center; justify-content:center;
  transition:opacity 0.6s ease, visibility 0.6s ease;
}
.loader.hidden { opacity:0; visibility:hidden; }
.loader-inner { text-align:center; }
.loader-logo {
  font-family:var(--font-display);
  font-size:3rem; font-weight:900;
  color:var(--gold);
  letter-spacing:0.3em;
  margin-bottom:1.5rem;
  animation:pulse 1.5s ease infinite;
}
.loader-bar {
  width:200px; height:1px;
  background:var(--dark3);
  margin:0 auto; overflow:hidden;
}
.loader-bar span {
  display:block; height:100%;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  animation:load 1.5s ease forwards;
}
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.5} }
@keyframes load { from{width:0} to{width:100%} }

/* ── NAVIGATION ── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  transition:background var(--transition), backdrop-filter var(--transition);
}
.nav.scrolled {
  background:rgba(10,10,10,0.95);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
}
.nav-inner {
  max-width:1400px; margin:0 auto;
  padding:1.5rem 2rem;
  display:flex; align-items:center; gap:2rem;
}
.nav-logo {
  display:flex; flex-direction:column;
  gap:0.1rem; margin-right:auto;
}
.logo-text {
  font-family:var(--font-display);
  font-size:1.1rem; font-weight:700;
  letter-spacing:0.25em; color:var(--gold);
  line-height:1;
}
.logo-sub {
  font-family:var(--font-ui);
  font-size:0.55rem; font-weight:300;
  letter-spacing:0.35em; color:var(--grey);
  text-transform:uppercase;
}
.nav-links {
  display:flex; gap:2.5rem;
}
.nav-links a {
  font-family:var(--font-ui);
  font-size:0.75rem; font-weight:400;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--grey); transition:color var(--transition);
  position:relative;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0;
  height:1px; background:var(--gold);
  transform:scaleX(0); transition:transform var(--transition);
}
.nav-links a:hover { color:var(--gold); }
.nav-links a:hover::after { transform:scaleX(1); }
.nav-book {
  font-family:var(--font-ui);
  font-size:0.7rem; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  padding:0.65rem 1.5rem;
  border:1px solid var(--gold);
  color:var(--gold);
  transition:all var(--transition);
}
.nav-book:hover {
  background:var(--gold);
  color:var(--black);
}
.nav-hamburger {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:4px;
}
.nav-hamburger span {
  display:block; width:24px; height:1px;
  background:var(--white); transition:all var(--transition);
}
.nav-hamburger.active span:nth-child(1) { transform:rotate(45deg) translate(4px, 4px); }
.nav-hamburger.active span:nth-child(2) { opacity:0; }
.nav-hamburger.active span:nth-child(3) { transform:rotate(-45deg) translate(4px, -4px); }
.nav-mobile {
  display:none; flex-direction:column;
  padding:1rem 2rem 2rem;
  background:rgba(10,10,10,0.98);
  backdrop-filter:blur(20px);
  border-top:1px solid var(--border);
  gap:1rem;
}
.nav-mobile.open { display:flex; }
.mob-link {
  font-family:var(--font-ui);
  font-size:0.8rem; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--grey);
  padding:0.5rem 0;
  border-bottom:1px solid var(--dark3);
  transition:color var(--transition);
}
.mob-link:hover { color:var(--gold); }
.mob-book {
  font-family:var(--font-ui);
  font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase;
  padding:0.8rem; text-align:center;
  border:1px solid var(--gold); color:var(--gold);
  margin-top:0.5rem; transition:all var(--transition);
}
.mob-book:hover { background:var(--gold); color:var(--black); }

/* ── HERO ── */
.hero {
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    linear-gradient(135deg, #0a0a0a 0%, #111 40%, #1a1408 100%);
}
.hero-bg::before {
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 70% 50%, rgba(201,168,76,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 40% 40% at 20% 80%, rgba(201,168,76,0.04) 0%, transparent 50%);
}
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to bottom, transparent 60%, var(--black) 100%);
}
.hero-grain {
  position:absolute; inset:0; opacity:0.03;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-content {
  position:relative; z-index:1;
  text-align:center;
  padding:8rem 2rem 4rem;
  max-width:900px;
}
.hero-tag {
  font-family:var(--font-ui);
  font-size:0.65rem; font-weight:400;
  letter-spacing:0.5em; text-transform:uppercase;
  color:var(--gold);
  padding:0.4rem 1.2rem;
  border:1px solid var(--border);
  display:inline-block;
  margin-bottom:2rem;
}
.hero-title {
  font-family:var(--font-display);
  font-size:clamp(2.5rem, 8vw, 7rem);
  font-weight:900;
  line-height:1.05;
  letter-spacing:0.05em;
  margin-bottom:1.5rem;
}
.title-line { display:block; }
.title-line.gold { color:var(--gold); font-style:italic; }
.hero-sub {
  font-family:var(--font-body);
  font-size:clamp(1rem, 2vw, 1.3rem);
  font-weight:300;
  color:rgba(245,240,232,0.7);
  line-height:1.7;
  margin-bottom:2.5rem;
  font-style:italic;
}
.hero-cta {
  display:flex; gap:1rem; justify-content:center;
  flex-wrap:wrap; margin-bottom:3rem;
}
.btn-primary {
  font-family:var(--font-ui);
  font-size:0.72rem; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  padding:1rem 2.5rem;
  background:var(--gold);
  color:var(--black);
  transition:all var(--transition);
  display:inline-block;
}
.btn-primary:hover {
  background:var(--gold2);
  transform:translateY(-2px);
  box-shadow:0 8px 30px rgba(201,168,76,0.3);
}
.btn-ghost {
  font-family:var(--font-ui);
  font-size:0.72rem; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  padding:1rem 2.5rem;
  border:1px solid rgba(245,240,232,0.3);
  color:var(--white);
  transition:all var(--transition);
  display:inline-block;
}
.btn-ghost:hover {
  border-color:var(--gold);
  color:var(--gold);
}
.hero-stats {
  display:flex; align-items:center; justify-content:center;
  gap:2rem; flex-wrap:wrap;
}
.stat { text-align:center; }
.stat-num {
  display:block;
  font-family:var(--font-display);
  font-size:2rem; font-weight:700;
  color:var(--gold); line-height:1;
}
.stat-label {
  display:block;
  font-family:var(--font-ui);
  font-size:0.6rem; font-weight:300;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--grey); margin-top:0.3rem;
}
.stat-divider {
  width:1px; height:40px;
  background:var(--border);
}
.hero-scroll {
  position:absolute; bottom:2rem; left:50%;
  transform:translateX(-50%);
  display:flex; flex-direction:column;
  align-items:center; gap:0.5rem;
}
.hero-scroll span {
  font-family:var(--font-ui);
  font-size:0.55rem; letter-spacing:0.4em;
  color:var(--grey); text-transform:uppercase;
}
.scroll-line {
  width:1px; height:40px;
  background:linear-gradient(to bottom, var(--gold), transparent);
  animation:scrollPulse 2s ease infinite;
}
@keyframes scrollPulse { 0%{opacity:1;transform:scaleY(1)} 50%{opacity:0.3} 100%{opacity:1;transform:scaleY(1)} }

/* ── TICKER ── */
.ticker {
  overflow:hidden; white-space:nowrap;
  background:var(--gold);
  padding:0.7rem 0;
}
.ticker-inner {
  display:inline-block;
  animation:ticker 20s linear infinite;
}
.ticker-inner span {
  font-family:var(--font-display);
  font-size:0.65rem; font-weight:700;
  letter-spacing:0.25em; color:var(--black);
  margin:0 1rem;
}
.gold-dot { font-size:0.4rem !important; }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── CONTAINER / SECTION ── */
.container { max-width:1300px; margin:0 auto; padding:0 2rem; }
.section { padding:7rem 0; }
.section-header { text-align:center; margin-bottom:4rem; }
.section-tag {
  font-family:var(--font-ui);
  font-size:0.62rem; font-weight:400;
  letter-spacing:0.45em; text-transform:uppercase;
  color:var(--gold);
  display:inline-block;
  padding:0.3rem 1rem;
  border:1px solid var(--border);
  margin-bottom:1rem;
}
.section-title {
  font-family:var(--font-display);
  font-size:clamp(2rem, 5vw, 3.5rem);
  font-weight:700;
  letter-spacing:0.05em;
  line-height:1.1;
  margin-bottom:1rem;
}
.section-title em { color:var(--gold); font-style:italic; }
.section-sub {
  font-family:var(--font-body);
  font-size:1.1rem; color:var(--grey);
  font-style:italic; max-width:500px; margin:0 auto;
}

/* ── REVEAL ANIMATION ── */
.reveal {
  opacity:0; transform:translateY(30px);
  transition:opacity 0.8s ease, transform 0.8s ease;
}
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── SERVICES ── */
.services { background:var(--dark); }
.services-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:1px;
  background:var(--border);
  border:1px solid var(--border);
  margin-bottom:3rem;
}
.service-card {
  background:var(--dark);
  padding:2.5rem;
  position:relative;
  transition:background var(--transition);
  overflow:hidden;
}
.service-card::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:2px; background:linear-gradient(90deg, transparent, var(--gold), transparent);
  transform:scaleX(0); transition:transform var(--transition);
}
.service-card:hover { background:var(--dark2); }
.service-card:hover::after { transform:scaleX(1); }
.service-card.featured {
  background:linear-gradient(135deg, var(--dark2), #1a1408);
}
.featured-badge {
  position:absolute; top:1rem; right:1rem;
  font-family:var(--font-ui);
  font-size:0.55rem; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--black); background:var(--gold);
  padding:0.3rem 0.8rem;
}
.service-icon {
  font-size:1.8rem; margin-bottom:1rem;
  color:var(--gold);
}
.service-card h3 {
  font-family:var(--font-display);
  font-size:1.15rem; font-weight:600;
  letter-spacing:0.1em; margin-bottom:0.75rem;
}
.service-card p {
  font-family:var(--font-body);
  font-size:1rem; color:var(--grey);
  line-height:1.6; margin-bottom:1.5rem;
  font-style:italic;
}
.service-price {
  font-family:var(--font-display);
  font-size:1.1rem; color:var(--gold);
  font-weight:600; margin-bottom:1rem;
}
.service-book {
  font-family:var(--font-ui);
  font-size:0.65rem; letter-spacing:0.25em; text-transform:uppercase;
  color:var(--grey); transition:color var(--transition);
}
.service-book:hover { color:var(--gold); }
.services-cta { text-align:center; }

/* ── GALLERY ── */
.gallery { background:var(--black); padding-bottom:7rem; }
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-template-rows:repeat(3, 250px);
  gap:3px;
}
.gallery-item {
  background-size:cover; background-position:center;
  background-color:var(--dark2);
  position:relative; overflow:hidden; cursor:pointer;
}
.gallery-item.g-tall { grid-row:span 2; }
.gallery-item.g-wide { grid-column:span 2; }
.gallery-overlay {
  position:absolute; inset:0;
  background:rgba(0,0,0,0.5);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity var(--transition);
}
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-overlay span {
  font-family:var(--font-display);
  font-size:0.9rem; letter-spacing:0.3em; text-transform:uppercase;
  color:var(--gold); font-weight:600;
}

/* ── ABOUT ── */
.about { background:var(--dark); }
.about-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:6rem; align-items:center;
}
.about-media { position:relative; }
.about-img-main {
  height:600px;
  background-size:cover; background-position:center;
  background-color:var(--dark2);
}
.about-badge {
  position:absolute; bottom:-2rem; right:-2rem;
  background:var(--gold);
  color:var(--black);
  padding:1.5rem; text-align:center; min-width:120px;
}
.badge-num {
  font-family:var(--font-display);
  font-size:2.5rem; font-weight:900; line-height:1;
}
.badge-stars { font-size:0.9rem; margin:0.3rem 0; }
.badge-text {
  font-family:var(--font-ui);
  font-size:0.55rem; letter-spacing:0.2em; text-transform:uppercase;
}
.about-text { padding-left:2rem; }
.about-body {
  font-family:var(--font-body);
  font-size:1.1rem; color:rgba(245,240,232,0.75);
  line-height:1.9; margin-bottom:1.5rem; font-style:italic;
}
.about-features { margin:2rem 0; display:flex; flex-direction:column; gap:0.75rem; }
.feature { display:flex; align-items:center; gap:0.75rem; }
.feature-dot {
  width:6px; height:6px;
  background:var(--gold); border-radius:50%; flex-shrink:0;
}
.feature span {
  font-family:var(--font-ui);
  font-size:0.82rem; color:var(--grey); letter-spacing:0.05em;
}

/* ── REVIEWS ── */
.reviews { background:var(--black); }
.rating-summary {
  display:flex; align-items:center; gap:1.5rem;
  justify-content:center; margin-top:1rem;
}
.big-rating {
  font-family:var(--font-display);
  font-size:4rem; font-weight:900; color:var(--gold); line-height:1;
}
.stars { font-size:1.2rem; color:var(--gold); }
.rating-count {
  font-family:var(--font-ui);
  font-size:0.65rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--grey); margin-top:0.25rem;
}
.reviews-grid {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:1.5rem; margin-bottom:3rem;
}
.review-card {
  background:var(--dark);
  padding:2rem;
  border:1px solid var(--border);
  transition:border-color var(--transition), box-shadow var(--transition);
}
.review-card:hover {
  border-color:rgba(201,168,76,0.5);
  box-shadow:var(--shadow-gold);
}
.review-stars { color:var(--gold); font-size:0.9rem; margin-bottom:1rem; }
.review-card p {
  font-family:var(--font-body);
  font-size:1.05rem; font-style:italic;
  color:rgba(245,240,232,0.8);
  line-height:1.7; margin-bottom:1.5rem;
}
.reviewer { display:flex; align-items:center; gap:1rem; }
.reviewer-avatar {
  width:40px; height:40px; border-radius:50%;
  background:var(--gold); color:var(--black);
  font-family:var(--font-display);
  font-weight:700; font-size:1.1rem;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.reviewer-info strong {
  display:block;
  font-family:var(--font-ui); font-size:0.82rem; font-weight:500;
}
.reviewer-info span {
  font-family:var(--font-ui); font-size:0.65rem;
  color:var(--grey); letter-spacing:0.1em;
}
.reviews-cta { text-align:center; }

/* ── CONTACT ── */
.contact { background:var(--dark); }
.contact-grid {
  display:grid; grid-template-columns:1fr 1.3fr;
  gap:4rem; align-items:start;
}
.contact-info { display:flex; flex-direction:column; gap:2rem; }
.contact-item { display:flex; gap:1rem; align-items:flex-start; }
.contact-icon { font-size:1.3rem; flex-shrink:0; margin-top:0.2rem; }
.contact-item strong {
  display:block;
  font-family:var(--font-display);
  font-size:0.85rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--gold); margin-bottom:0.4rem;
}
.contact-item p {
  font-family:var(--font-body);
  font-size:1rem; color:var(--grey);
  line-height:1.7; font-style:italic;
}
.contact-item a {
  font-family:var(--font-body);
  font-size:1rem; color:var(--grey);
  transition:color var(--transition);
}
.contact-item a:hover { color:var(--gold); }
.contact-actions { display:flex; gap:1rem; flex-wrap:wrap; padding-top:1rem; }
.contact-map {
  position:relative;
}
.contact-map iframe {
  width:100%; height:400px; border:none;
  filter:grayscale(100%) invert(92%) contrast(80%);
}
.map-link {
  display:block; margin-top:0.75rem;
  font-family:var(--font-ui);
  font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--gold); text-align:right;
  transition:opacity var(--transition);
}
.map-link:hover { opacity:0.7; }

/* ── FOOTER ── */
.footer { background:var(--black); border-top:1px solid var(--border); }
.footer-top {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  gap:4rem; padding:4rem 0 3rem;
}
.footer-logo {
  font-family:var(--font-display);
  font-size:1.4rem; font-weight:700;
  letter-spacing:0.2em; color:var(--gold);
  margin-bottom:0.25rem;
}
.footer-logo-sub {
  font-family:var(--font-ui);
  font-size:0.55rem; letter-spacing:0.35em;
  color:var(--grey); text-transform:uppercase;
  margin-bottom:1rem;
}
.footer-brand p {
  font-family:var(--font-body);
  font-size:0.95rem; color:var(--grey);
  font-style:italic; line-height:1.7;
  max-width:280px;
}
.footer-links h4, .footer-contact h4 {
  font-family:var(--font-display);
  font-size:0.8rem; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.2rem;
}
.footer-links, .footer-contact {
  display:flex; flex-direction:column; gap:0.6rem;
}
.footer-links a, .footer-contact a, .footer-contact p {
  font-family:var(--font-ui);
  font-size:0.8rem; color:var(--grey);
  letter-spacing:0.05em; transition:color var(--transition);
  font-style:normal;
}
.footer-contact p { color:var(--grey); }
.footer-links a:hover, .footer-contact a:hover { color:var(--gold); }
.footer-bottom {
  border-top:1px solid var(--border);
  padding:1.5rem 0;
  display:flex; align-items:center; justify-content:space-between;
}
.footer-bottom p {
  font-family:var(--font-ui);
  font-size:0.7rem; color:var(--grey2);
  letter-spacing:0.1em;
}
.footer-socials { display:flex; gap:1rem; }
.footer-socials a {
  color:var(--grey2); transition:color var(--transition);
}
.footer-socials a:hover { color:var(--gold); }

/* ── WHATSAPP FLOAT ── */
.wa-float {
  position:fixed; bottom:2rem; right:2rem; z-index:999;
  background:#25D366; color:#fff;
  display:flex; align-items:center; gap:0.75rem;
  padding:0.85rem 1.4rem;
  box-shadow:0 4px 20px rgba(37,211,102,0.4);
  transition:all var(--transition);
}
.wa-float:hover {
  transform:translateY(-3px);
  box-shadow:0 8px 30px rgba(37,211,102,0.5);
}
.wa-float span {
  font-family:var(--font-ui);
  font-size:0.7rem; font-weight:500;
  letter-spacing:0.1em; text-transform:uppercase;
  white-space:nowrap;
}

/* ── RESPONSIVE ── */
@media (max-width: 1100px) {
  .about-grid { grid-template-columns:1fr; }
  .about-media { display:none; }
  .about-text { padding-left:0; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(4,220px); }
  .gallery-item.g-tall { grid-row:span 1; }
  .gallery-item.g-wide { grid-column:span 1; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .contact-grid { grid-template-columns:1fr; }
}

@media (max-width: 768px) {
  .nav-links, .nav-book { display:none; }
  .nav-hamburger { display:flex; }
  .nav-inner { padding:1.2rem 1.5rem; }
  .hero-title { font-size:clamp(2rem,10vw,3.5rem); }
  .section { padding:4rem 0; }
  .services-grid { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .reviews-grid { grid-template-columns:1fr; }
  .footer-top { grid-template-columns:1fr; gap:2rem; }
  .wa-float span { display:none; }
  .wa-float { padding:1rem; }
  .about-badge { display:none; }
  .hero-stats { gap:1rem; }
  .stat-divider { height:30px; }
}

@media (max-width: 480px) {
  .container { padding:0 1.25rem; }
  .hero-content { padding:7rem 1.5rem 4rem; }
  .hero-cta { flex-direction:column; align-items:center; }
  .gallery-grid { grid-template-columns:1fr; }
  .contact-actions { flex-direction:column; }
}
