:root{
  --primary:#A98AAA;
  --accent:#D0B3C3;
  --bg:#F7E7E0;
  --mint:#D7E5E2;
  --pink:#F0CCCD;
  --text:#2b2330;
  --muted:#6d6470;
  --white:#ffffff;
  --shadow: 0 12px 40px rgba(0,0,0,.10);
  --radius: 18px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:linear-gradient(180deg, var(--bg), #fff);
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

.container{
  width:min(1100px, 92%);
  margin-inline:auto;
}

.topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.72);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.topbar__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 0;
  gap:14px;
}

.brand{ display:flex; align-items:center; gap:10px; }
.brand__logo{ width:44px; height:44px; border-radius:12px; box-shadow: var(--shadow); }
.brand__text strong{ display:block; letter-spacing:.4px; }
.brand__text span{ display:block; font-size:.86rem; color:var(--muted); margin-top:1px; }

.nav{ display:flex; align-items:center; gap:18px; }
.nav a{ font-weight:600; font-size:.95rem; color:rgba(43,35,48,.92); }
.nav a:hover{ color:var(--primary); }

.hamburger{
  display:none;
  width:44px; height:44px;
  border:1px solid rgba(0,0,0,.10);
  border-radius:14px;
  background:rgba(255,255,255,.8);
}
.hamburger span{ display:block; height:2px; width:18px; background:var(--text); margin:5px auto; border-radius:2px; }

.hero{ position:relative; min-height:78vh; display:grid; place-items:center; overflow:hidden; }
.hero__bg{ position:absolute; inset:0; background-size:cover; background-position:center; filter: saturate(1.05) contrast(1.05); transform:scale(1.02); }
.hero__overlay{ position:absolute; inset:0; background: radial-gradient(900px 400px at 20% 20%, rgba(255,255,255,.52), transparent 55%),
  linear-gradient(180deg, rgba(169,138,170,.10), rgba(255,255,255,.75)); }
.hero__content{ position:relative; padding:72px 0 54px; }

.hero__badge{
  display:inline-flex; align-items:center; gap:10px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(0,0,0,.06);
  padding:10px 14px;
  border-radius:999px;
  box-shadow: var(--shadow);
  font-weight:600;
}
.dot{ width:10px; height:10px; border-radius:999px; background:var(--primary); box-shadow: 0 0 0 6px rgba(169,138,170,.18); }

h1{ font-size: clamp(2.2rem, 4vw, 3.6rem); margin:14px 0 10px; letter-spacing:.2px; }
h1 span{ color:var(--primary); }
.lead{ font-size:1.12rem; max-width:58ch; color:rgba(43,35,48,.88); line-height:1.55; }

.hero__cta{ display:flex; gap:12px; flex-wrap:wrap; margin-top:18px; }
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 18px;
  border-radius: 999px;
  background: var(--primary);
  color:white;
  font-weight:800;
  letter-spacing:.2px;
  box-shadow: var(--shadow);
  border:1px solid rgba(0,0,0,.06);
  transition: transform .15s ease, filter .15s ease, background .15s ease;
}
.btn:hover{ transform: translateY(-1px); filter: brightness(1.02); }
.btn--ghost{ background: rgba(255,255,255,.78); color:var(--text); }
.btn--ghost:hover{ background: rgba(255,255,255,.92); }
.btn--sm{ padding:10px 14px; font-weight:800; }

.hero__links{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 12px;
  border-radius:999px;
  background: rgba(255,255,255,.70);
  border:1px solid rgba(0,0,0,.06);
  color:rgba(43,35,48,.92);
  font-weight:700;
}

.section{ padding:76px 0; }
.section--alt{ background: linear-gradient(180deg, rgba(215,229,226,.55), rgba(255,255,255,0)); }
.section__head{ margin-bottom:26px; }
.section__head h2{ font-size: clamp(1.7rem, 2.6vw, 2.2rem); margin:0 0 8px; }
.section__head p{ margin:0; color:var(--muted); line-height:1.6; }

.grid{ display:grid; gap:18px; }
.grid--3{ grid-template-columns: repeat(3, 1fr); }

.card{
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
}
.card img{ width:100%; aspect-ratio: 16 / 11; object-fit:cover; }
.card__body{ padding:16px 16px 18px; }
.card__body h3{ margin:0 0 8px; font-size:1.08rem; }
.card__body p{ margin:0; color:var(--muted); line-height:1.55; }
.card__actions{ margin-top:12px; }
.link{ color:var(--primary); font-weight:800; text-decoration:underline; text-underline-offset:4px; }

.callout{
  margin-top:22px;
  display:flex; gap:14px; justify-content:space-between; align-items:center; flex-wrap:wrap;
  padding:18px;
  border-radius: var(--radius);
  background: linear-gradient(90deg, rgba(240,204,205,.55), rgba(215,229,226,.55));
  border:1px solid rgba(0,0,0,.06);
  box-shadow: var(--shadow);
}
.callout h3{ margin:0 0 4px; }
.callout p{ margin:0; color:rgba(43,35,48,.86); }
.callout__actions{ display:flex; gap:10px; }

.masonry{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:12px;
}
.photo{
  border:none;
  background: transparent;
  padding:0;
  border-radius: 16px;
  overflow:hidden;
  cursor:pointer;
  box-shadow: 0 10px 24px rgba(0,0,0,.10);
  transform: translateZ(0);
}
.photo img{ width:100%; height:100%; object-fit:cover; transition: transform .25s ease; }
.photo:hover img{ transform: scale(1.04); }

.video{ border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); border:1px solid rgba(0,0,0,.06); }
.video iframe{ width:100%; aspect-ratio: 16 / 9; border:0; display:block; }

.split{ display:grid; grid-template-columns: 1fr 1.2fr; gap:18px; align-items:stretch; }
.map{ border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); border:1px solid rgba(0,0,0,.06); background:rgba(255,255,255,.85); }
.map iframe{ width:100%; height:100%; min-height:340px; border:0; }

.chips{ display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }

.social-embeds{ display:grid; grid-template-columns: 1.2fr 1fr; gap:18px; margin-top:22px; }
.embed{ background: rgba(255,255,255,.85); border: 1px solid rgba(0,0,0,.06); border-radius: var(--radius); padding:16px; box-shadow: var(--shadow); }
.embed h3{ margin:0 0 10px; }
.embed__frame{ border-radius: 14px; overflow:hidden; border:1px solid rgba(0,0,0,.06); background: rgba(255,255,255,.95); }
.embed__frame iframe{ width:100%; height:520px; border:0; }
.muted{ color:var(--muted); }
.small{ font-size:.92rem; line-height:1.6; }

.ig-preview{ margin-top:12px; border-radius:14px; overflow:hidden; border:1px solid rgba(0,0,0,.06); }
.ig-preview img{ width:100%; aspect-ratio: 16 / 10; object-fit:cover; }

.contact{ display:grid; grid-template-columns: 1.35fr .65fr; gap:18px; align-items:start; }
.form{
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius);
  padding:18px;
  box-shadow: var(--shadow);
}
.form label{ display:block; font-weight:800; font-size:.95rem; }
.form input, .form textarea, .form select{
  width:100%;
  margin-top:8px;
  padding:12px 12px;
  border-radius: 14px;
  border:1px solid rgba(0,0,0,.14);
  background: rgba(255,255,255,.92);
  font: inherit;
}
.form input:focus, .form textarea:focus, .form select:focus{ outline: 3px solid rgba(169,138,170,.22); border-color: rgba(169,138,170,.55); }
.form__row{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; }

.aside__box{
  position:sticky; top:88px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius);
  padding:18px;
  box-shadow: var(--shadow);
}
.aside__box hr{ border:none; border-top:1px solid rgba(0,0,0,.08); margin:14px 0; }

.footer{ padding:22px 0; border-top: 1px solid rgba(0,0,0,.06); background: rgba(255,255,255,.78); }
.footer__inner{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.footer p{ margin:0; color:rgba(43,35,48,.80); font-weight:600; }

.wa-float{
  position:fixed; right:16px; bottom:16px; z-index:60;
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px;
  padding:12px 14px;
  border-radius:999px;
  background: #1fbf5b;
  color:white;
  font-weight:900;
  box-shadow: 0 16px 40px rgba(0,0,0,.22);
}


.wa-float::before{
  content:"";
  width:10px; height:10px;
  border-radius:999px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 0 0 6px rgba(255,255,255,.18);
}

.lightbox{
  position:fixed; inset:0; z-index:80;
  display:none;
  align-items:center; justify-content:center;
  background: rgba(0,0,0,.70);
  padding:16px;
}
.lightbox.open{ display:flex; }
.lightbox img{
  max-width:min(980px, 96vw);
  max-height: 82vh;
  border-radius: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,.35);
}
.lightbox__close{
  position:absolute; top:16px; right:16px;
  width:44px; height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.25);
  background: rgba(0,0,0,.35);
  color:white;
  font-size:28px;
  cursor:pointer;
}
.lightbox__nav{
  position:absolute; top:50%; transform: translateY(-50%);
  width:48px; height:48px;
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.25);
  background: rgba(0,0,0,.35);
  color:white;
  font-size:34px;
  cursor:pointer;
}
.lightbox__nav--prev{ left:16px; }
.lightbox__nav--next{ right:16px; }

.reveal{ opacity:0; transform: translateY(12px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform: translateY(0); }

@media (max-width: 920px){
  .grid--3{ grid-template-columns: 1fr; }
  .masonry{ grid-template-columns: repeat(2, 1fr); }
  .split{ grid-template-columns: 1fr; }
  .social-embeds{ grid-template-columns: 1fr; }
  .contact{ grid-template-columns: 1fr; }
  .aside__box{ position:relative; top:auto; }
}

@media (max-width: 760px){
  .nav{ position:fixed; inset:64px 12px auto 12px; display:none; flex-direction:column; gap:10px; padding:14px;
    background: rgba(255,255,255,.92); border:1px solid rgba(0,0,0,.10); border-radius: 18px; box-shadow: var(--shadow); }
  .nav.open{ display:flex; }
  .hamburger{ display:block; }
  .hero{ min-height: 74vh; }
  .hero__content{ padding:60px 0 46px; }
  .form__row{ grid-template-columns: 1fr; }
}
