/* =====================================================================
   STUDIO 17 — Luxury Hair Salon
   Dark premium aesthetic · Black / Charcoal / Ivory / Champagne Gold
   ===================================================================== */

:root{
  /* Palette */
  --black:        #0a0a0b;
  --charcoal:     #141416;
  --charcoal-2:   #1c1c1f;
  --ivory:        #f4efe6;
  --white:        #ffffff;
  --gold:         #c9a24b;
  --gold-soft:    #e3c789;
  --gold-deep:    #a07f2e;
  --muted:        #9a978f;
  --line:         rgba(201,162,75,.22);
  --glass:        rgba(255,255,255,.035);
  --glass-border: rgba(255,255,255,.08);

  /* Type */
  --serif: 'Playfair Display', Georgia, serif;
  --sans:  'Poppins', system-ui, sans-serif;

  /* Layout */
  --maxw: 1240px;
  --radius: 18px;
  --radius-sm: 12px;
  --shadow: 0 30px 80px -30px rgba(0,0,0,.8);
  --gold-grad: linear-gradient(135deg, var(--gold-soft), var(--gold) 55%, var(--gold-deep));
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Base ---------- */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  font-weight:300;
  color:var(--ivory);
  background:var(--black);
  line-height:1.75;
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; transition:color .3s var(--ease); }
img{ max-width:100%; display:block; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; line-height:1.15; color:var(--white); }
p{ color:var(--muted); }
section{ position:relative; }
::selection{ background:var(--gold); color:var(--black); }

.container{ max-width:var(--maxw); }

/* Atmospheric gold glow behind sections */
.glow-bg::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(60% 50% at 80% 0%, rgba(201,162,75,.10), transparent 60%),
    radial-gradient(50% 50% at 0% 100%, rgba(201,162,75,.06), transparent 60%);
}
.glow-bg > *{ position:relative; z-index:1; }

/* ---------- Eyebrow / Section headings ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--sans); font-weight:500; letter-spacing:.32em;
  text-transform:uppercase; font-size:.7rem; color:var(--gold);
  margin-bottom:1rem;
}
.eyebrow::before{ content:""; width:34px; height:1px; background:var(--gold); display:inline-block; }
.section-title{ font-size:clamp(1.9rem,4vw,3.1rem); margin-bottom:1rem; }
.section-title em{ font-style:italic; color:var(--gold-soft); }
.section-sub{ max-width:620px; margin:0 auto; }
.text-center .eyebrow::after{ content:""; width:34px; height:1px; background:var(--gold); display:inline-block; }

.section-pad{ padding:clamp(4rem,9vw,8rem) 0; }

/* ---------- Buttons ---------- */
.btn{ font-family:var(--sans); font-weight:500; letter-spacing:.04em; border-radius:50px;
  padding:.85rem 1.9rem; transition:all .35s var(--ease); border:1px solid transparent; }
.btn:focus{ box-shadow:none; }
.btn-gold{ background:var(--gold-grad); color:var(--black); font-weight:600; box-shadow:0 12px 30px -12px rgba(201,162,75,.7); }
.btn-gold:hover{ transform:translateY(-3px); color:var(--black); box-shadow:0 18px 40px -12px rgba(201,162,75,.85); }
.btn-outline-gold{ border-color:var(--gold); color:var(--gold-soft); background:transparent; }
.btn-outline-gold:hover{ background:var(--gold); color:var(--black); transform:translateY(-3px); }
.btn-ghost{ border-color:var(--glass-border); color:var(--ivory); background:var(--glass); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold-soft); }
.btn-lg{ padding:1rem 2.3rem; font-size:1rem; }

/* ---------- Page Loader ---------- */
#page-loader{
  position:fixed; inset:0; z-index:9999; background:var(--black);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .6s var(--ease), visibility .6s;
}
#page-loader.loaded{ opacity:0; visibility:hidden; }
.loader-mark{ text-align:center; animation:pulse 1.6s ease-in-out infinite; }
.loader-num{
  display:block; font-family:var(--serif); font-size:4.5rem; font-weight:700;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.loader-name{ letter-spacing:.6em; font-size:.7rem; color:var(--muted); padding-left:.6em; }
@keyframes pulse{ 0%,100%{ opacity:.55; transform:scale(.96);} 50%{ opacity:1; transform:scale(1);} }

/* ---------- Top strip ---------- */
.top-strip{ background:var(--charcoal); border-bottom:1px solid var(--line); font-size:.78rem; color:var(--muted); padding:.55rem 0; }
.top-strip i{ color:var(--gold); }
.top-strip .divider{ margin:0 .8rem; opacity:.3; }
.top-strip a:hover{ color:var(--gold-soft); }

/* ---------- Navbar ---------- */
.site-nav{
  position:sticky; top:0; z-index:1000; padding:1.05rem 0;
  background:rgba(10,10,11,.55); backdrop-filter:blur(14px);
  border-bottom:1px solid transparent; transition:all .4s var(--ease);
}
.site-nav.scrolled{ padding:.65rem 0; background:rgba(10,10,11,.92); border-bottom:1px solid var(--line); box-shadow:0 10px 40px -20px #000; }
.navbar-brand{ display:flex; align-items:center; gap:.7rem; }
.brand-num{
  font-family:var(--serif); font-weight:700; font-size:1.7rem; line-height:1;
  width:46px; height:46px; display:grid; place-items:center; border-radius:12px;
  border:1px solid var(--gold); color:var(--gold-soft);
}
.brand-text{ font-family:var(--serif); font-weight:600; font-size:1.25rem; letter-spacing:.18em; color:var(--white); line-height:1; }
.brand-text small{ display:block; font-family:var(--sans); font-weight:300; font-size:.5rem; letter-spacing:.34em; color:var(--muted); margin-top:3px; }
.site-nav .nav-link{ font-size:.92rem; letter-spacing:.05em; color:var(--ivory); margin:0 .55rem; position:relative; padding:.4rem 0; }
.site-nav .nav-link::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:width .35s var(--ease); }
.site-nav .nav-link:hover{ color:var(--gold-soft); }
.site-nav .nav-link:hover::after{ width:100%; }
.site-nav .nav-link.active{ color:var(--gold-soft); }
.site-nav .nav-link.active::after{ width:100%; }

/* Toggler */
.navbar-toggler{ border:none; padding:.4rem; }
.navbar-toggler:focus{ box-shadow:none; }
.toggler-bar{ display:block; width:26px; height:2px; background:var(--gold-soft); margin:5px 0; transition:.3s; }

/* ---------- Mobile menu ---------- */
.mobile-menu{ background:var(--charcoal); color:var(--ivory); width:84%!important; max-width:360px; border-left:1px solid var(--line); }
.mobile-menu .offcanvas-header{ padding:1.5rem; border-bottom:1px solid var(--line); }
.btn-close-custom{ background:none; border:1px solid var(--line); color:var(--gold-soft); width:42px; height:42px; border-radius:10px; }
.mobile-nav-list{ list-style:none; padding:0; margin:0; }
.mobile-nav-list li a{ display:block; padding:1rem .2rem; font-family:var(--serif); font-size:1.3rem; color:var(--ivory); border-bottom:1px solid rgba(255,255,255,.05); transition:.3s; }
.mobile-nav-list li a:hover, .mobile-nav-list li a.active{ color:var(--gold-soft); padding-left:.6rem; }
.mobile-contact{ border-top:1px solid var(--line); padding-top:1.4rem; }
.mobile-contact a{ display:block; margin-bottom:.7rem; color:var(--ivory); }
.mobile-contact a i{ color:var(--gold); margin-right:.5rem; }
.mobile-contact .small-addr{ font-size:.8rem; color:var(--muted); margin-top:.8rem; }

/* ---------- Hero ---------- */
.hero{ min-height:100vh; display:flex; align-items:center; position:relative; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,10,11,.96) 0%, rgba(10,10,11,.82) 45%, rgba(10,10,11,.45) 100%),
             linear-gradient(0deg, rgba(10,10,11,.9), transparent 55%); }
.hero-content{ position:relative; z-index:2; padding:5rem 0; }
.hero h1{ font-size:clamp(2.4rem,6vw,4.6rem); line-height:1.08; margin-bottom:1.5rem; }
.hero h1 em{ font-style:italic; color:var(--gold-soft); }
.hero-lead{ font-size:clamp(1rem,1.5vw,1.15rem); max-width:540px; color:var(--ivory); opacity:.85; margin-bottom:2.2rem; }
.hero-rating{ display:inline-flex; align-items:center; gap:.7rem; margin-bottom:1.8rem; padding:.5rem 1.1rem; border:1px solid var(--line); border-radius:50px; background:var(--glass); backdrop-filter:blur(6px); }
.hero-rating .stars{ color:var(--gold); letter-spacing:.1em; }
.hero-rating b{ color:var(--white); }
.hero-rating span{ font-size:.82rem; color:var(--muted); }
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.scroll-hint{ position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:2; color:var(--muted); font-size:.7rem; letter-spacing:.3em; text-transform:uppercase; text-align:center; }
.scroll-hint i{ display:block; font-size:1.2rem; color:var(--gold); animation:bob 1.8s infinite; }
@keyframes bob{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(8px);} }

/* ---------- Glass cards ---------- */
.glass-card{
  background:var(--glass); border:1px solid var(--glass-border); border-radius:var(--radius);
  backdrop-filter:blur(10px); padding:2rem; transition:all .45s var(--ease); height:100%;
}
.glass-card:hover{ transform:translateY(-8px); border-color:var(--line); box-shadow:var(--shadow); }

/* ---------- Feature / Why cards ---------- */
.feature-card{ text-align:left; }
.feature-icon{ width:60px; height:60px; border-radius:14px; display:grid; place-items:center; font-size:1.5rem; color:var(--gold-soft); border:1px solid var(--line); background:var(--charcoal-2); margin-bottom:1.3rem; }
.feature-card h3{ font-size:1.25rem; margin-bottom:.6rem; }

/* ---------- Service preview cards ---------- */
.svc-card{ position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--glass-border); }
.svc-card img{ height:450px !important; width:100%; object-fit:contain; transition:transform .8s var(--ease); }
.svc-card:hover img{ transform:scale(1.08); }
.svc-card .svc-body{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:1.8rem; background:linear-gradient(0deg, rgba(10,10,11,.92), transparent 70%); }
.svc-card h3{ font-size:1.4rem; margin-bottom:.3rem; }
.svc-card p{ color:var(--ivory); opacity:.7; font-size:.9rem; margin:0; }
.svc-card .svc-link{ margin-top:.8rem; color:var(--gold-soft); font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; }
.svc-card .svc-link i{ transition:transform .3s; }
.svc-card:hover .svc-link i{ transform:translateX(6px); }

/* ---------- About preview split ---------- */
.about-img-wrap{ position:relative; }
.about-img-wrap img{ border-radius:var(--radius); }
.about-img-wrap .badge-float{ position:absolute; bottom:-26px; right:-10px; background:var(--gold-grad); color:var(--black); padding:1.2rem 1.5rem; border-radius:var(--radius-sm); text-align:center; box-shadow:var(--shadow); }
.about-img-wrap .badge-float b{ font-family:var(--serif); font-size:2rem; display:block; line-height:1; }
.about-img-wrap .badge-float span{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }

/* ---------- Stats / counters ---------- */
.stat-item{ text-align:center; padding:1.5rem 1rem; }
.stat-item .num{ font-family:var(--serif); font-size:clamp(2.2rem,5vw,3.4rem); color:var(--gold-soft); line-height:1; }
.stat-item .label{ font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-top:.6rem; }

/* ---------- Page banner ---------- */
.page-banner{ position:relative; padding:7rem 0 4rem; overflow:hidden; }
.page-banner-bg{ position:absolute; inset:0; z-index:0; }
.page-banner-bg img{ width:100%; height:100%; object-fit:cover; }
.page-banner-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, var(--black) 5%, rgba(10,10,11,.7)); }
.page-banner-inner{ position:relative; z-index:1; }
.page-banner h1{ font-size:clamp(2.2rem,5vw,3.6rem); }
.breadcrumb-lux{ display:flex; gap:.6rem; align-items:center; font-size:.8rem; letter-spacing:.08em; color:var(--muted); list-style:none; padding:0; margin-bottom:1rem; }
.breadcrumb-lux a{ color:var(--gold-soft); }
.breadcrumb-lux .sep{ opacity:.4; }

/* ---------- Services pricing ---------- */
.price-group{ margin-bottom:3rem; }
.price-group-head{ display:flex; align-items:center; gap:1rem; margin-bottom:1.6rem; }
.price-group-head .pg-icon{ width:54px; height:54px; border-radius:12px; display:grid; place-items:center; border:1px solid var(--line); color:var(--gold-soft); font-size:1.4rem; background:var(--charcoal-2); }
.price-group-head h2{ font-size:1.7rem; margin:0; }
.price-card{ background:var(--glass); border:1px solid var(--glass-border); border-radius:var(--radius); padding:1.8rem 2rem; backdrop-filter:blur(8px); }
.price-row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.95rem 0; border-bottom:1px dashed rgba(255,255,255,.08); }
.price-row:last-child{ border-bottom:none; }
.price-row .pr-name{ font-family:var(--serif); font-size:1.08rem; color:var(--ivory); }
.price-row .pr-dots{ flex:1; border-bottom:1px dotted rgba(201,162,75,.3); margin:0 .4rem 5px; min-width:18px; }
.price-row .pr-price{ font-weight:500; color:var(--gold-soft); white-space:nowrap; }
.price-row .pr-price small{ color:var(--muted); font-weight:300; font-size:.72rem; }

/* ---------- Gallery ---------- */
.gallery-filters{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2.5rem; }
.filter-btn{ background:transparent; border:1px solid var(--glass-border); color:var(--ivory); padding:.5rem 1.3rem; border-radius:50px; font-size:.82rem; letter-spacing:.06em; cursor:pointer; transition:.3s var(--ease); }
.filter-btn:hover{ border-color:var(--gold); color:var(--gold-soft); }
.filter-btn.active{ background:var(--gold-grad); color:var(--black); border-color:transparent; font-weight:500; }
.masonry{ column-count:3; column-gap:1rem; }
.masonry .g-item{ break-inside:avoid; margin-bottom:1rem; border-radius:var(--radius-sm); overflow:hidden; position:relative; cursor:pointer; }
.masonry .g-item img{ width:100%; transition:transform .7s var(--ease); }
.masonry .g-item::after{ content:"\F52A"; font-family:"bootstrap-icons"; position:absolute; inset:0; display:grid; place-items:center; color:var(--gold-soft); font-size:1.6rem; background:rgba(10,10,11,.55); opacity:0; transition:.4s; }
.masonry .g-item:hover img{ transform:scale(1.1); }
.masonry .g-item:hover::after{ opacity:1; }
.masonry .g-item.hide{ display:none; }
/* Lightbox */
#lightbox{ position:fixed; inset:0; z-index:2000; background:rgba(5,5,6,.95); display:none; align-items:center; justify-content:center; padding:2rem; }
#lightbox.open{ display:flex; }
#lightbox img{ max-width:90%; max-height:85vh; border-radius:var(--radius-sm); box-shadow:var(--shadow); }
#lightbox .lb-close{ position:absolute; top:1.4rem; right:1.8rem; font-size:2rem; color:var(--gold-soft); cursor:pointer; background:none; border:none; }

/* ---------- Before / After ---------- */
.ba-card{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--glass-border); background:var(--charcoal); }
.ba-images{ display:grid; grid-template-columns:1fr 1fr; }
.ba-images figure{ position:relative; margin:0; }
.ba-images img{ height:300px; width:100%; object-fit:cover; }
.ba-images figcaption{ position:absolute; top:12px; left:12px; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; padding:.3rem .8rem; border-radius:50px; backdrop-filter:blur(4px); }
.ba-images .cap-before{ background:rgba(10,10,11,.7); color:var(--ivory); border:1px solid var(--glass-border); }
.ba-images .cap-after{ background:var(--gold-grad); color:var(--black); font-weight:600; }
.ba-body{ padding:1.5rem 1.8rem; }
.ba-body h3{ font-size:1.3rem; margin-bottom:.4rem; }
.ba-body p{ font-size:.9rem; margin:0; }

/* Interactive slider compare */
.compare{ position:relative; width:100%; aspect-ratio:4/3; object-position:center top; overflow:hidden; border-radius:var(--radius); border:1px solid var(--glass-border); user-select:none; }
.compare img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.compare .after-img{ clip-path:inset(0 0 0 50%); }
.compare .compare-range{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:ew-resize; margin:0; }
.compare .handle{ position:absolute; top:0; bottom:0; left:50%; width:2px; background:var(--gold); pointer-events:none; }
.compare .handle::after{ content:"\F138\F134"; font-family:"bootstrap-icons"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:var(--gold-grad); color:var(--black); display:grid; place-items:center; font-size:.8rem; }
.compare .lbl{ position:absolute; top:12px; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; padding:.25rem .7rem; border-radius:50px; background:rgba(10,10,11,.7); border:1px solid var(--glass-border); }
.compare .lbl-before{ left:12px; } .compare .lbl-after{ right:12px; }

/* ---------- Reviews ---------- */
.rating-hero{ text-align:center; }
.rating-big{ font-family:var(--serif); font-size:5rem; line-height:1; color:var(--gold-soft); }
.rating-hero .stars{ color:var(--gold); font-size:1.5rem; letter-spacing:.15em; margin:.6rem 0; }
.review-card{ background:var(--glass); border:1px solid var(--glass-border); border-radius:var(--radius); padding:2rem; height:100%; backdrop-filter:blur(8px); transition:.4s var(--ease); }
.review-card:hover{ transform:translateY(-6px); border-color:var(--line); }
.review-card .quote-mark{ font-family:var(--serif); font-size:3rem; color:var(--gold); line-height:.4; opacity:.5; }
.review-card .r-stars{ color:var(--gold); margin-bottom:.8rem; font-size:.9rem; }
.review-card p{ color:var(--ivory); opacity:.82; font-size:.95rem; font-style:italic; }
.review-card .r-author{ display:flex; align-items:center; gap:.8rem; margin-top:1.3rem; }
.review-card .r-avatar{ width:44px; height:44px; border-radius:50%; background:var(--gold-grad); color:var(--black); display:grid; place-items:center; font-family:var(--serif); font-weight:600; }
.review-card .r-author b{ color:var(--white); display:block; font-weight:500; }
.review-card .r-author span{ font-size:.78rem; color:var(--muted); }

/* ---------- Contact ---------- */
.contact-card{ background:var(--glass); border:1px solid var(--glass-border); border-radius:var(--radius); padding:2.2rem; backdrop-filter:blur(8px); }
.contact-detail{ display:flex; gap:1rem; align-items:flex-start; padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.06); }
.contact-detail:last-child{ border-bottom:none; }
.contact-detail .cd-icon{ width:46px; height:46px; flex:none; border-radius:12px; display:grid; place-items:center; color:var(--gold-soft); border:1px solid var(--line); background:var(--charcoal-2); }
.contact-detail h4{ font-size:1rem; margin:0 0 .2rem; }
.contact-detail a, .contact-detail p{ color:var(--muted); margin:0; font-size:.92rem; }
.contact-detail a:hover{ color:var(--gold-soft); }
.form-control, .form-select{ background:var(--charcoal-2); border:1px solid var(--glass-border); color:var(--ivory); border-radius:var(--radius-sm); padding:.85rem 1rem; }
.form-control:focus, .form-select:focus{ background:var(--charcoal-2); color:var(--ivory); border-color:var(--gold); box-shadow:0 0 0 .2rem rgba(201,162,75,.15); }
.form-control::placeholder{ color:#6c6a64; }
.form-label{ font-size:.82rem; letter-spacing:.05em; color:var(--ivory); margin-bottom:.4rem; }
.form-label .req{ color:var(--gold); }
.field-error{ color:#e0795f; font-size:.78rem; margin-top:.3rem; display:none; }
.is-invalid + .field-error{ display:block; }
.map-frame{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--glass-border); }
.map-frame iframe{ width:100%; height:100%; min-height:340px; border:0; filter:grayscale(.3) contrast(1.05); }
.form-alert{ border-radius:var(--radius-sm); padding:1rem 1.2rem; font-size:.9rem; margin-bottom:1.2rem; display:none; }
.form-alert.show{ display:block; }
.form-alert.ok{ background:rgba(201,162,75,.12); border:1px solid var(--line); color:var(--gold-soft); }
.form-alert.err{ background:rgba(224,121,95,.1); border:1px solid rgba(224,121,95,.4); color:#e0795f; }

/* ---------- FAQ ---------- */
.faq .accordion-item{ background:var(--glass); border:1px solid var(--glass-border); border-radius:var(--radius-sm)!important; margin-bottom:1rem; overflow:hidden; }
.faq .accordion-button{ background:transparent; color:var(--ivory); font-family:var(--serif); font-size:1.1rem; box-shadow:none; padding:1.2rem 1.4rem; }
.faq .accordion-button:not(.collapsed){ color:var(--gold-soft); background:transparent; }
.faq .accordion-button::after{ filter:invert(.7) sepia(1) hue-rotate(5deg); }
.faq .accordion-body{ color:var(--muted); padding-top:0; }

/* ---------- CTA band ---------- */
.cta-band{ position:relative; overflow:hidden; border-radius:0; padding:clamp(3.5rem,7vw,6rem) 0; text-align:center; }
.cta-band::before{ content:""; position:absolute; inset:0; background:radial-gradient(60% 100% at 50% 0%, rgba(201,162,75,.14), transparent 70%); }
.cta-band h2{ font-size:clamp(1.9rem,4.5vw,3rem); margin-bottom:1rem; }
.cta-band p{ max-width:560px; margin:0 auto 2rem; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--charcoal); border-top:1px solid var(--line); padding:4.5rem 0 0; margin-top:0; }
.footer-brand{ display:flex; align-items:center; gap:.7rem; margin-bottom:1.3rem; }
.footer-about{ font-size:.9rem; max-width:330px; }
.footer-social{ display:flex; gap:.7rem; margin-top:1.4rem; }
.footer-social a{ width:42px; height:42px; border-radius:11px; display:grid; place-items:center; border:1px solid var(--glass-border); color:var(--gold-soft); transition:.3s; }
.footer-social a:hover{ background:var(--gold-grad); color:var(--black); border-color:transparent; transform:translateY(-3px); }
.footer-title{ font-size:1rem; letter-spacing:.1em; text-transform:uppercase; color:var(--white); margin-bottom:1.3rem; font-family:var(--sans); font-weight:500; }
.footer-links, .footer-contact{ list-style:none; padding:0; margin:0; }
.footer-links li{ margin-bottom:.7rem; }
.footer-links a{ color:var(--muted); font-size:.9rem; }
.footer-links a:hover{ color:var(--gold-soft); padding-left:.3rem; }
.footer-contact li{ display:flex; gap:.7rem; margin-bottom:1rem; font-size:.88rem; color:var(--muted); }
.footer-contact i{ color:var(--gold); margin-top:3px; }
.footer-contact a{ color:var(--muted); }
.footer-contact a:hover{ color:var(--gold-soft); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.07); margin-top:3rem; padding:1.6rem 0; display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; }
.footer-bottom p{ margin:0; font-size:.82rem; color:var(--muted); }
.footer-legal{ list-style:none; display:flex; gap:1.4rem; margin:0; padding:0; }
.footer-legal a{ font-size:.82rem; color:var(--muted); }
.footer-legal a:hover{ color:var(--gold-soft); }

/* ---------- Floating buttons ---------- */
.float-btn{ position:fixed; right:20px; width:54px; height:54px; border-radius:50%; display:grid; place-items:center; font-size:1.4rem; z-index:900; border:none; box-shadow:0 12px 30px -10px rgba(0,0,0,.6); transition:transform .3s var(--ease); }
.float-btn:hover{ transform:translateY(-4px) scale(1.05); }
.float-whatsapp{ bottom:90px; background:#25d366; color:#fff; }
.float-call{ bottom:152px; background:var(--gold-grad); color:var(--black); }
.float-top{ bottom:20px; background:var(--charcoal-2); color:var(--gold-soft); border:1px solid var(--line); opacity:0; visibility:hidden; }
.float-top.show{ opacity:1; visibility:visible; }
@media(min-width:992px){ .float-whatsapp{ bottom:84px; } .float-top{ bottom:20px; } }

/* ---------- Mobile sticky bar ---------- */
.mobile-sticky-bar{ position:fixed; bottom:0; left:0; right:0; z-index:950; display:flex; background:var(--charcoal); border-top:1px solid var(--line); }
.mobile-sticky-bar a{ flex:1; text-align:center; padding:.9rem .4rem; font-size:.8rem; color:var(--ivory); border-right:1px solid rgba(255,255,255,.06); }
.mobile-sticky-bar a:last-child{ border-right:none; }
.mobile-sticky-bar a i{ display:block; font-size:1.1rem; color:var(--gold); margin-bottom:2px; }
.mobile-sticky-bar .msb-book{ background:var(--gold-grad); color:var(--black); font-weight:600; }
.mobile-sticky-bar .msb-book i{ color:var(--black); }
@media(max-width:991px){ body{ padding-bottom:64px; } .float-whatsapp{ bottom:84px; } }

/* ---------- Scroll reveal ---------- */
[data-reveal]{ opacity:0; transform:translateY(40px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal][data-delay="1"]{ transition-delay:.12s; }
[data-reveal][data-delay="2"]{ transition-delay:.24s; }
[data-reveal][data-delay="3"]{ transition-delay:.36s; }
[data-reveal][data-delay="4"]{ transition-delay:.48s; }

/* ---------- Responsive ---------- */
@media (max-width:991px){
  .masonry{ column-count:2; }
  .about-img-wrap .badge-float{ right:10px; bottom:-20px; }
}
@media (max-width:575px){
  .masonry{ column-count:1; }
  .ba-images img{ height:210px; }
  .hero-cta .btn{ width:100%; }
  .price-card{ padding:1.4rem 1.3rem; }
  .footer-bottom{ flex-direction:column; text-align:center; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none!important; transition:none!important; }
  [data-reveal]{ opacity:1; transform:none; }
}
