*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --a:      #8AAFC7;
  --a-dim:  #5B8CAD;
  --a-pale: rgba(138,175,199,0.12);
  --a-line: rgba(138,175,199,0.22);
  --black:  #080809;
  --panel:  #0D0D10;
  --panel2: #111115;
  --text:   #E6E2EE;
  --muted:  #6C6880;
  --border: rgba(255,255,255,0.07);
}

html { scroll-behavior: smooth; }

body {
  background: var(--black);
  color: var(--text);
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
}

/* NAV */
nav { position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:26px 64px;background:linear-gradient(180deg,rgba(8,8,9,0.97) 0%,transparent 100%); }
.nav-logo { display:flex;align-items:center;gap:12px;text-decoration:none; }
.nav-logo img { width:40px;height:40px;object-fit:contain;border-radius:3px; }
.nav-wordmark { font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:.18em;color:var(--text); }
.nav-wordmark span { color:var(--a); }
.nav-links { display:flex;gap:40px;list-style:none; }
.nav-links a { text-decoration:none;color:var(--muted);font-size:11px;letter-spacing:.2em;text-transform:uppercase;transition:color .3s; }
.nav-links a:hover { color:var(--a); }
.nav-cta { font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--a);border:1px solid var(--a-line);padding:10px 24px;text-decoration:none;transition:all .3s; }
.nav-cta:hover { background:var(--a);color:var(--black); }

/* HERO */
.hero { min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding:140px 64px 80px; }
.hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: background-image 0s;
}
.hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(8,8,9,0.96) 0%, rgba(8,8,9,0.82) 45%, rgba(8,8,9,0.55) 100%),
    radial-gradient(ellipse 50% 70% at 82% 40%, rgba(138,175,199,0.04) 0%, transparent 65%);
  transition: opacity 1s ease;
}

/* Fade overlay used during crossfade */
.hero-fade {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 1.2s ease;
  z-index: 0;
}
.hero-fade.visible { opacity: 1; }
.hero-fade::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(8,8,9,0.96) 0%, rgba(8,8,9,0.82) 45%, rgba(8,8,9,0.55) 100%);
}
.hero-grid { position:absolute;inset:0;background-image:linear-gradient(rgba(138,175,199,0.035) 1px,transparent 1px),linear-gradient(90deg,rgba(138,175,199,0.035) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 20%,transparent 80%); }
.hero-deco { position:absolute;right:-80px;top:50%;transform:translateY(-50%);font-family:'Bebas Neue',sans-serif;font-size:46vw;color:rgba(138,175,199,0.022);line-height:1;pointer-events:none;user-select:none;z-index:1; }
.hero-inner { position:relative;z-index:2;display:grid;grid-template-columns:1fr 280px;gap:60px;align-items:center;width:100%; }

.hero-eyebrow { display:flex;align-items:center;gap:14px;margin-bottom:40px;opacity:0;animation:fadeUp .8s ease forwards .3s; }
.eyebrow-dash { width:30px;height:1px;background:var(--a);flex-shrink:0; }
.eyebrow-text { font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--a); }

.hero-title { font-family:'Bebas Neue',sans-serif;font-size:clamp(86px,11vw,146px);line-height:.88;letter-spacing:.025em;color:#EEE9FF;opacity:0;animation:fadeUp .9s ease forwards .5s; }
.hero-title em { font-style:normal;color:var(--a);display:block; }
.hero-rule { width:52px;height:1px;background:linear-gradient(90deg,var(--a),transparent);margin:28px 0;opacity:0;animation:fadeUp .8s ease forwards .65s; }
.hero-sub { font-size:14.5px;font-weight:300;color:rgba(230,226,238,0.8);line-height:1.95;letter-spacing:.03em;max-width:400px;margin-bottom:44px;opacity:0;animation:fadeUp .9s ease forwards .75s; }

.hero-btns { display:flex;align-items:center;gap:16px;opacity:0;animation:fadeUp .9s ease forwards .9s;flex-wrap:wrap; }
.btn-p { background:var(--a);color:var(--black);text-decoration:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:14px 34px;font-weight:500;transition:all .3s;display:inline-block; }
.btn-p:hover { background:#A0C4DA;transform:translateY(-2px); }
.btn-o { background:#C8C4D4;color:var(--black);text-decoration:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:14px 34px;font-weight:500;transition:all .3s;display:inline-block; }
.btn-o:hover { background:#DEDAD8;transform:translateY(-2px); }

.hero-ig-strip { display:flex;align-items:center;gap:14px;margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,0.07);opacity:0;animation:fadeUp .9s ease forwards 1.05s; }
.hero-ig-strip a { display:flex;align-items:center;gap:10px;text-decoration:none;color:rgba(230,226,238,0.55);font-size:12px;letter-spacing:.1em;transition:color .3s; }
.hero-ig-strip a:hover { color:var(--text); }
.ig-icon { display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#f09433,#dc2743,#bc1888);flex-shrink:0; }

/* Hero right cards */
.hero-right { display:flex;flex-direction:column;gap:2px;opacity:0;animation:fadeUp .9s ease forwards 1s; }
.hcard { background:var(--panel);border:1px solid var(--border);padding:22px 24px; }
.hcard-label { font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:9px; }
.hcard-phone { font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:.08em;color:var(--text);text-decoration:none;display:block;transition:color .3s; }
.hcard-phone:hover { color:var(--a); }
.hcard-addr { font-size:13.5px;line-height:1.85;color:var(--muted); }
.hcard-map-link { display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--a);text-decoration:none;opacity:.75;transition:opacity .3s; }
.hcard-map-link:hover { opacity:1; }
.hcard-stars { display:flex;align-items:center;gap:8px;margin-bottom:4px; }
.stars { color:var(--a);font-size:15px;letter-spacing:2px; }
.star-score { font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:.06em;color:var(--text); }
.hcard-rev-link { font-size:12.5px;color:var(--muted);text-decoration:none;letter-spacing:.06em;transition:color .3s;display:block;margin-top:2px; }
.hcard-rev-link:hover { color:var(--a); }
.hcard-services { list-style:none;display:flex;flex-direction:column;gap:5px; }
.hcard-services li { font-size:13.5px;color:rgba(230,226,238,0.6);letter-spacing:.03em;display:flex;align-items:center;gap:8px; }
.hcard-services li::before { content:'';display:block;width:12px;height:1px;background:var(--a);flex-shrink:0;opacity:.6; }

.scroll-hint { position:absolute;bottom:40px;left:64px;display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);opacity:0;animation:fadeUp 1s ease forwards 1.4s; }
.scroll-line { width:1px;height:44px;background:linear-gradient(180deg,transparent,var(--a));animation:scrollPulse 2s ease-in-out infinite; }

/* TICKER */
.ticker-wrap { overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:17px 0;background:var(--panel); }
.ticker { display:flex;animation:ticker 22s linear infinite;white-space:nowrap; }
.ticker-item { display:flex;align-items:center;gap:26px;padding:0 40px;font-family:'Bebas Neue',sans-serif;font-size:14px;letter-spacing:.2em;color:var(--muted); }
.ticker-dot { width:3px;height:3px;background:var(--a);border-radius:50%;flex-shrink:0; }

.divider { height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);margin:0 64px; }

/* GALLERY */
.gallery { padding:110px 64px; }
.gallery-grid { columns:3;column-gap:4px;margin-top:64px; }
.gallery-item { break-inside:avoid;margin-bottom:4px;overflow:hidden;position:relative;cursor:pointer; }
.gallery-item img { width:100%;display:block;transition:transform .5s ease,filter .5s ease;filter:brightness(.88) saturate(.9); }
.gallery-item:hover img { transform:scale(1.04);filter:brightness(1) saturate(1.05); }

/* LIGHTBOX */
.lb { display:none;position:fixed;inset:0;background:rgba(8,8,9,0.95);z-index:800;align-items:center;justify-content:center;backdrop-filter:blur(8px); }
.lb.open { display:flex; }
.lb-img { max-width:90vw;max-height:88vh;object-fit:contain;border:1px solid var(--border); }
.lb-close { position:absolute;top:28px;right:36px;font-size:28px;color:var(--muted);cursor:pointer;background:none;border:none;line-height:1;transition:color .2s; }
.lb-close:hover { color:var(--text); }
.lb-prev,.lb-next { position:absolute;top:50%;transform:translateY(-50%);font-size:22px;color:var(--muted);background:none;border:none;cursor:pointer;padding:16px;transition:color .2s; }
.lb-prev:hover,.lb-next:hover { color:var(--a); }
.lb-prev { left:24px; }
.lb-next { right:24px; }
.lb-counter { position:absolute;bottom:28px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.2em;color:var(--muted); }

/* SECTION HEADERS */
.sec-hdr { display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:64px; }
.sec-label { font-size:9px;letter-spacing:.35em;text-transform:uppercase;color:var(--a);margin-bottom:12px; }
.sec-title { font-family:'Bebas Neue',sans-serif;font-size:clamp(42px,6vw,76px);letter-spacing:.03em;line-height:1;color:var(--text); }
.sec-note { font-family:'Cormorant Garamond',serif;font-size:16px;font-style:italic;color:var(--muted);max-width:260px;line-height:1.7; }

/* SERVICES */
.services { padding:110px 64px; }
.svc-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,0.05); }
.svc-card { background:var(--panel);padding:44px 38px;position:relative;overflow:hidden;transition:background .35s;border:1px solid transparent;cursor:pointer; }
.svc-card::after { content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--a-pale) 0%,transparent 60%);opacity:0;transition:opacity .35s; }
.svc-card:hover { background:var(--panel2);border-color:var(--a-line); }
.svc-card:hover::after { opacity:1; }
.svc-num { font-family:'Bebas Neue',sans-serif;font-size:11px;letter-spacing:.2em;color:rgba(138,175,199,0.28);margin-bottom:24px; }
.svc-name { font-family:'Bebas Neue',sans-serif;font-size:23px;letter-spacing:.05em;color:var(--text);margin-bottom:11px;transition:color .3s;position:relative;z-index:1; }
.svc-card:hover .svc-name { color:#B8D4E6; }
.svc-desc { font-size:13px;line-height:1.85;color:var(--muted);font-weight:300;position:relative;z-index:1; }
.svc-arr { position:absolute;bottom:38px;right:38px;color:var(--a);font-size:16px;opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s; }
.svc-card:hover .svc-arr { opacity:1;transform:translateX(0); }

/* REVIEWS */
.reviews { padding:100px 64px; }
.reviews-inner { display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center; }
.reviews-score-block { margin-top:32px;display:flex;align-items:flex-end;gap:24px; }
.score-big { font-family:'Bebas Neue',sans-serif;font-size:96px;color:var(--text);line-height:1; }
.score-meta { padding-bottom:12px; }
.score-stars { font-size:22px;letter-spacing:4px;color:var(--a);display:block;margin-bottom:4px; }
.score-count { font-size:11px;letter-spacing:.15em;color:var(--muted); }
.reviews-source { display:flex;align-items:center;gap:12px;margin-top:28px;padding:16px 20px;border:1px solid var(--border);background:var(--panel);width:fit-content; }
.reviews-source-txt { font-size:12px;color:var(--muted);letter-spacing:.06em; }
.reviews-source-txt strong { color:var(--text);font-weight:400; }
.reviews-cta { display:inline-flex;align-items:center;gap:10px;margin-top:24px;text-decoration:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--a);border-bottom:1px solid var(--a-line);padding-bottom:4px;transition:border-color .3s; }
.reviews-cta:hover { border-color:var(--a); }
.review-cards { display:flex;flex-direction:column;gap:2px; }
.rcard { background:var(--panel);border:1px solid var(--border);padding:26px 28px;transition:border-color .3s;cursor:default; }
.rcard:hover { border-color:var(--a-line); }
.rcard-top { display:flex;align-items:center;justify-content:space-between;margin-bottom:10px; }
.rcard-name { font-size:13px;color:var(--text);letter-spacing:.04em; }
.rcard-stars { font-size:12px;letter-spacing:2px;color:var(--a); }
.rcard-txt { font-size:13px;line-height:1.8;color:var(--muted);font-style:italic; }
.rcard-date { font-size:10px;letter-spacing:.12em;color:rgba(108,104,128,0.5);margin-top:8px; }
.all-reviews-btn { display:flex;align-items:center;justify-content:center;gap:10px;padding:18px;border:1px solid var(--a-line);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--a);text-decoration:none;transition:background .3s; }
.all-reviews-btn:hover { background:var(--a-pale); }

/* ABOUT */
.about { padding:100px 64px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center; }
.about-vis { position:relative;height:420px; }
.about-box-main { position:absolute;inset:0;background:var(--panel);border:1px solid var(--border);display:flex;align-items:center;justify-content:center; }
.about-box-main img { width:150px;object-fit:contain;filter:drop-shadow(0 0 40px rgba(138,175,199,0.2)); }
.about-stat { position:absolute;bottom:-18px;right:-18px;background:var(--black);border:1px solid var(--a-line);padding:22px 30px; }
.stat-n { font-family:'Bebas Neue',sans-serif;font-size:44px;color:var(--a);line-height:1; }
.stat-l { font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:4px; }
.about-body { font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:300;line-height:1.9;color:rgba(230,226,238,0.68);margin:20px 0 32px; }
.about-feats { list-style:none;display:flex;flex-direction:column;gap:11px; }
.about-feats li { font-size:13px;letter-spacing:.04em;color:var(--muted);display:flex;align-items:center;gap:14px; }
.about-feats li::before { content:'';display:block;width:16px;height:1px;background:var(--a);flex-shrink:0; }

/* CONTACT */
.contact { padding:110px 64px; }
.contact-inner { display:grid;grid-template-columns:1fr 1fr;gap:80px; }
.contact-phone { font-family:'Bebas Neue',sans-serif;font-size:clamp(30px,4vw,50px);letter-spacing:.06em;color:var(--text);margin:18px 0 6px;display:block;text-decoration:none;transition:color .3s; }
.contact-phone:hover { color:var(--a); }
.contact-addr { font-size:12px;letter-spacing:.07em;color:var(--muted);line-height:1.85;margin-top:4px; }
.maps-btn { display:inline-flex;align-items:center;gap:8px;margin-top:16px;text-decoration:none;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);padding:10px 18px;transition:color .3s,border-color .3s; }
.maps-btn:hover { color:var(--a);border-color:var(--a-line); }
.social-label { font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:rgba(138,175,199,0.45);margin:36px 0 12px; }
.social-link { display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--muted);font-size:13px;padding:12px 0;border-bottom:1px solid var(--border);transition:color .3s; }
.social-link:hover { color:var(--a); }
.form-box { background:var(--panel);border:1px solid var(--border);padding:44px; }
.form-title { font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:.1em;margin-bottom:30px; }
.fgrp { margin-bottom:18px; }
.fgrp label { display:block;font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);margin-bottom:8px; }
.fgrp input,.fgrp select,.fgrp textarea { width:100%;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.07);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px;font-weight:300;padding:12px 15px;outline:none;transition:border-color .3s;-webkit-appearance:none;appearance:none; }
.fgrp select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236C6880' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer; }
.fgrp input:focus,.fgrp select:focus,.fgrp textarea:focus { border-color:var(--a);background:rgba(138,175,199,0.03); }
.fgrp textarea { resize:none;height:90px; }
.form-btn { width:100%;background:var(--a);color:var(--black);border:none;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:16px;cursor:pointer;transition:all .3s;margin-top:4px; }
.form-btn:hover { background:#A0C4DA;transform:translateY(-2px); }

/* WHATSAPP */
.wa-float { position:fixed;bottom:32px;right:32px;z-index:500;display:flex;align-items:center;text-decoration:none;filter:drop-shadow(0 4px 20px rgba(37,211,102,0.35));transition:filter .3s,transform .3s; }
.wa-float:hover { filter:drop-shadow(0 6px 28px rgba(37,211,102,0.55));transform:translateY(-3px); }
.wa-btn { width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-radius .4s; }
.wa-label { max-width:0;overflow:hidden;white-space:nowrap;background:#25D366;color:#fff;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;letter-spacing:.06em;border-radius:28px 0 0 28px;padding:0;transition:max-width .4s ease,padding .4s ease;line-height:56px;height:56px; }
.wa-float:hover .wa-label { max-width:160px;padding:0 18px 0 22px; }
.wa-float:hover .wa-btn { border-radius:0 50% 50% 0; }

/* FOOTER */
footer { padding:40px 64px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between; }
.foot-brand { font-family:'Bebas Neue',sans-serif;font-size:16px;letter-spacing:.2em;color:var(--muted); }
.foot-brand span { color:var(--a); }
.foot-copy { font-size:11px;letter-spacing:.07em;color:var(--muted);opacity:.5; }
.foot-ig { display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--muted);font-size:12px;letter-spacing:.07em;transition:color .3s; }
.foot-ig:hover { color:var(--a); }

/* REVEAL */
.reveal { opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease; }
.reveal.on { opacity:1;transform:translateY(0); }

/* ANIMATIONS */
@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes scrollPulse { 0%,100%{opacity:.3} 50%{opacity:1} }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* RESPONSIVE */
@media(max-width:960px) {
  nav { padding:20px 24px; }
  .nav-links { display:none; }
  .hero { padding:120px 24px 80px; }
  .hero-inner { grid-template-columns:1fr;gap:40px; }
  .divider { margin:0 24px; }
  .gallery,.services,.contact,.reviews { padding:72px 24px; }
  .gallery-grid { columns:2; }
  .about { padding:72px 24px;grid-template-columns:1fr;display:flex;flex-direction:column;gap:48px; }
  .svc-grid { grid-template-columns:1fr; }
  .sec-hdr { flex-direction:column;align-items:flex-start;gap:14px; }
  .contact-inner,.reviews-inner { grid-template-columns:1fr; }
  footer { flex-direction:column;gap:12px;padding:32px 24px;text-align:center; }
  .form-box { padding:24px 18px; }
  .scroll-hint { left:24px; }
}
@media(max-width:560px) { .gallery-grid { columns:1; } }
