:root{
  --bg: #0f0f11;
  --bg-2:#151519;
  --surface:#1b1b20;
  --text:#ece9ea;
  --muted:#cfc7ca;
  --primary:#836b6e; /* sampled from logo */
  --primary-2:#9a8286;
  --blush:#f4edf0;
  --nude:#f8f4f5;
  --gold:#c5ad7a;
  --radius:16px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --container:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,var(--bg),var(--bg-2));
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:"Playfair Display",Georgia,serif;
  letter-spacing:.3px;
  margin:0 0 .6rem;
  color:#fff;
}
h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1.1}
h2{font-size:clamp(1.6rem,3vw,2.4rem)}
h3{font-size:1.25rem}
.lead{color:var(--muted)}

/* Containers */
.container{width:min(100% - 2rem,var(--container));margin-inline:auto}
.center{text-align:center}
.section{padding:clamp(60px,8vw,96px) 0}
.section--alt{background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0));}

/* Header */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(15,15,17,.55);
  backdrop-filter: blur(10px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0}
.brand{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none;font-weight:600}
.brand img{border-radius:50%;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}

.nav__toggle{display:none;background:none;border:0;color:#fff;gap:6px;flex-direction:column}
.nav__toggle span{width:26px;height:2px;background:#fff;display:block;border-radius:2px}
.nav__list{display:flex;align-items:center;gap:1rem;margin:0;padding:0;list-style:none}
.nav__list a{color:#fff;text-decoration:none;padding:.6rem .8rem;border-radius:999px;opacity:.9}
.nav__list a:hover{background:rgba(255,255,255,.06)}
.nav__cta .btn{padding:.55rem 1rem}

@media (max-width: 900px){
  .nav__toggle{display:flex}
  .nav__list{position:fixed;inset:70px 1rem auto 1rem;background:rgba(21,21,25,.96);
             border:1px solid rgba(255,255,255,.08);padding:1rem;border-radius:18px;box-shadow:var(--shadow);
             display:none;flex-direction:column;gap:.4rem}
  .nav__list.show{display:flex}
  .nav__cta{width:100%}
  .nav__cta .btn{width:100%}
}

/* Buttons */
.btn{
  --btn-bg:var(--primary);
  --btn-fg:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  padding:.8rem 1.2rem;border-radius:999px;border:1px solid transparent;
  color:var(--btn-fg);background:var(--btn-bg);text-decoration:none;font-weight:600;
  box-shadow:0 6px 16px rgba(131,107,110,.25);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(131,107,110,.35)}
.btn--outline{--btn-bg:transparent;--btn-fg:#fff;border-color:rgba(255,255,255,.25)}
.btn--outline:hover{background:rgba(255,255,255,.08)}
.btn--sm{padding:.5rem .8rem;font-size:.9rem}
.btn--lg{padding:1rem 1.4rem}

/* Hero */
.hero{position:relative;min-height:78vh;display:grid;place-items:center;overflow:hidden}
.hero__media{position:absolute;inset:0}
.hero__video{width:100%;height:100%;object-fit:cover;object-position:center}
.hero__overlay{position:absolute;inset:0;background:
  radial-gradient(60% 80% at 50% 50%, rgba(131,107,110,.24), transparent 60%),
  linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.35) 40%, rgba(0,0,0,.7));
}
.hero__content{position:relative;text-align:center;z-index:1}
.subtitle{font-size:clamp(1.05rem,2.5vw,1.25rem);color:var(--muted);margin:.6rem 0 1.2rem}

/* Grid */
.grid-2{display:grid;gap:clamp(20px,3vw,40px);grid-template-columns: 1.1fr 1fr;align-items:center}
.grid-2 .media img{width:100%;height:auto;border-radius:var(--radius);box-shadow:var(--shadow)}
@media (max-width: 980px){.grid-2{grid-template-columns:1fr}.map-wrap{order:-1}}

/* Checklist */
.checklist{margin:1rem 0 1.4rem;padding:0 0 0 1rem}
.checklist li{margin:.5rem 0}

/* Services */
.services-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(16px,2vw,24px);margin-top:1.4rem}
@media (max-width: 1100px){.services-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width: 700px){.services-grid{grid-template-columns:repeat(2,1fr)}}
.card{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.02));
      border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1.1rem;box-shadow:var(--shadow);height:100%;
      transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(0,0,0,.45);border-color:rgba(255,255,255,.15)}
.card .icon{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;
            background:linear-gradient(135deg, rgba(131,107,110,.24), rgba(131,107,110,.08));
            color:#fff;margin-bottom:.6rem}

/* Reviews */
.reviews{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:1rem}
@media (max-width:1000px){.reviews{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.reviews{grid-template-columns:1fr}}
.review{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));
        border:1px solid rgba(255,255,255,.08);padding:1rem;border-radius:14px}
.review header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;color:#fff}
.review header span{color:#ffd66e}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:1rem}
.gallery__item{display:block;break-inside:avoid;border-radius:14px;overflow:hidden;position:relative}
.gallery__item img{width:100%;height:260px;display:block;object-fit:cover;transition:transform .35s ease;box-shadow:var(--shadow)}
.gallery__item:hover img{transform:scale(1.04)}

.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);backdrop-filter:blur(2px);
          display:none;align-items:center;justify-content:center;padding:1rem;z-index:80}
.lightbox.show{display:flex}
.lightbox__img{max-width:90vw;max-height:85vh;border-radius:14px;box-shadow:var(--shadow)}
.lightbox__close{position:absolute;top:16px;right:20px;border:0;background:none;color:#fff;font-size:2rem;cursor:pointer}

/* Contact */
.contact-list{display:grid;gap:12px;margin:1rem 0}
.contact-item{display:flex;gap:.9rem;align-items:flex-start}
.ci-emoji{font-size:1.2rem;opacity:.9}
.map-wrap iframe{width:100%;min-height:360px;border:0;border-radius:16px;box-shadow:var(--shadow)}

/* Footer */
.footer{padding:40px 0;background:#101014;border-top:1px solid rgba(255,255,255,.08)}
.footer__grid{display:grid;grid-template-columns:1.2fr 1fr auto;align-items:center;gap:14px}
.footer__nav a{color:var(--muted);text-decoration:none;margin-right:1rem}
.footer__nav a:hover{color:#fff}
.footer__legal{color:#9c9497;font-size:.9rem;margin-top:10px}
@media (max-width:900px){.footer__grid{grid-template-columns:1fr;gap:10px}.footer__cta .btn{width:100%}}

/* Floating WhatsApp */
.whatsapp-fab{
  position:fixed;right:16px;bottom:16px;z-index:70;
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,#25D366,#128C7E);
  color:white;text-decoration:none;box-shadow:0 14px 30px rgba(18,140,126,.45);
  transition:transform .25s ease, box-shadow .25s ease;
}
.whatsapp-fab:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(18,140,126,.55)}
.whatsapp-fab svg{width:28px;height:28px}

/* Cookies */
.cookie{
  position:fixed;left:14px;right:14px;bottom:14px;z-index:90;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:.9rem 1rem;border-radius:16px;background:#121217;border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow);transform:translateY(110%);opacity:0;transition:transform .35s ease, opacity .35s ease;
}
.cookie.show{transform:translateY(0);opacity:1}
.cookie p{margin:0;color:var(--muted)}
.cookie__actions{display:flex;gap:8px}

/* Modals */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;padding:1rem;z-index:100}
.modal.show{display:flex}
.modal__dialog{width:min(760px,100%);max-height:85vh;overflow:auto;background:#141418;color:#e7e2e4;border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:var(--shadow);padding:1.2rem 1.2rem 1.4rem}
.modal__dialog h3{margin-top:.2rem}
.modal__dialog h4{margin:.8rem 0 .2rem}
.modal__close{position:absolute;right:24px;top:22px;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer}

/* Scroll animations */
.fx-fade{opacity:0;transform:translateY(8px);animation:fadeIn .7s forwards;animation-delay:var(--d,0ms);}
.fx-fade-up{opacity:0;transform:translateY(10px);animation:fadeIn .8s forwards;animation-delay:var(--d,0ms)}
@keyframes fadeIn{to{opacity:1;transform:none}}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
  .hero__video{display:none}
}


/* Contact links: brand-consistent and readable */
.contact-item a{
  color: var(--primary-2);
  text-decoration: underline;
}
.contact-item a:hover{ color:#fff; }

/* Cookie banner link readable */
.cookie a{ color: var(--primary-2); text-decoration: underline; }

/* Mobile cookie banner layout */
@media (max-width: 600px){
  .cookie{
    left:0; right:0; bottom:0;
    border-radius:0;
    flex-direction:column; align-items:flex-start;
    gap:.8rem; padding:1rem;
  }
  .cookie__actions{ width:100%; }
  .cookie__actions .btn{ flex:1; width:100%; }
}
