:root {
  --purple-deep: #2d0453;
  --purple-night: #1a0030;
  --purple-mid: #2d0050;
  --purple-soft: #f8f5ff;
  --pink: #e91e8c;
  --pink-bright: #ff007f;
  --pink-dark: #c0166a;
  --gold: #d4af37;
  --ink: #2b2240;
  --muted: #6b6680;
  --line: #ece6f3;
  --paper: #ffffff;
  --cream: #fff9f2;
}

* { margin:0; padding:0; box-sizing:border-box; }
html {
  scroll-behavior:smooth;
  overflow-x:hidden;
  width:100%;
}
body {
  font-family:'DM Sans', sans-serif;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
  width:100%;
  max-width:100vw;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; }
::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:#eee; }
::-webkit-scrollbar-thumb { background:var(--purple-deep); border-radius:4px; }

.topbar {
  position:fixed; top:0; left:0; right:0;
  z-index:1000;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  padding:14px 40px;
  background:var(--purple-deep);
  box-shadow:0 4px 18px rgba(0,0,0,.18);
  transition:padding .25s ease;
}
.topbar.is-scrolled {
  padding:10px 40px;
  box-shadow:0 6px 26px rgba(0,0,0,.32);
}
.brand { flex-shrink:0; }
.brand-img { height:78px; width:auto; object-fit:contain; }

.navmenu ul {
  list-style:none;
  display:flex; align-items:center;
  gap:42px;
}
.navmenu a {
  position:relative;
  font-size:.92rem;
  font-weight:600;
  letter-spacing:.06em;
  color:#fff;
  text-transform:uppercase;
  transition:color .2s ease;
}
.navmenu a::after {
  content:'';
  position:absolute; left:0; bottom:-8px;
  width:0; height:2px;
  background:var(--pink);
  border-radius:1px;
  transition:width .25s ease;
}
.navmenu a:hover { color:var(--pink); }
.navmenu a:hover::after { width:100%; }

.topcta { display:flex; align-items:center; gap:12px; }
.phone-btn {
  display:inline-flex; align-items:center; gap:9px;
  padding:13px 22px;
  background:var(--pink);
  color:#fff;
  border:none;
  border-radius:6px;
  font-size:.92rem;
  font-weight:600;
  line-height:1.1;
  transition:background .25s ease, transform .25s ease;
}
.phone-btn svg { width:18px; height:18px; flex-shrink:0; }
.phone-btn:hover {
  background:var(--pink-dark);
  transform:translateY(-1px);
}
.book-btn {
  display:inline-flex; align-items:center;
  padding:13px 24px;
  background:#f6e47a;
  color:#fff;
  border:none;
  border-radius:6px;
  font-size:.92rem;
  font-weight:600;
  line-height:1.1;
  transition:background .25s ease, transform .25s ease;
}
.book-btn:hover {
  background:#f0d850;
  transform:translateY(-1px);
}

.hamburger {
  display:none;
  flex-direction:column;
  gap:5px;
  background:none; border:none;
  padding:6px;
}
.hamburger span {
  width:24px; height:2px;
  background:#fff;
  border-radius:1px;
  transition:transform .3s ease;
}

.drawer {
  position:fixed; top:0; right:0;
  width:300px; max-width:88vw; height:100vh;
  background:var(--paper);
  border-left:1px solid var(--line);
  padding:80px 32px 30px;
  display:flex; flex-direction:column;
  gap:22px;
  z-index:1500;
  transform:translateX(100%);
  transition:transform .35s ease;
  overflow-y:auto;
  box-shadow:-10px 0 40px rgba(45,4,83,.12);
}
.drawer.open { transform:translateX(0); }
.drawer a {
  font-size:1rem;
  font-weight:600;
  color:var(--purple-deep);
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
  text-transform:capitalize;
}
.drawer-close {
  position:absolute; top:16px; right:18px;
  background:none; border:none;
  font-size:2rem;
  color:var(--purple-deep);
  line-height:1;
}
.drawer-phone {
  border:none;
  padding:12px 0;
  font-size:.9rem;
  justify-content:flex-start;
}
.drawer-book { margin-top:8px; justify-content:center; }

.hero {
  position:relative;
  height:100vh;
  min-height:600px;
  overflow:hidden;
  padding-top:90px;
}
.hero-slides {
  position:absolute; inset:0;
}
.hero-slide {
  position:absolute; inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .9s ease, visibility .9s ease;
  display:flex; align-items:center;
}
.hero-slide.is-active {
  opacity:1;
  visibility:visible;
  z-index:2;
}
.hero-bg {
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1);
  animation:slowZoom 14s ease-in-out infinite alternate;
}
@keyframes slowZoom {
  from { transform:scale(1); }
  to   { transform:scale(1.08); }
}
.hero-veil {
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.15) 0%, rgba(0,0,0,.45) 100%);
}
.hero-content {
  position:relative; z-index:2;
  max-width:1100px;
  margin:0 auto;
  padding:0 32px;
  width:100%;
  color:#fff;
  text-align:center;
  animation:fadeUp .9s ease both;
}
.hero-slide.is-active .hero-content { animation:fadeUp .9s ease both; }
.hero h1 {
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:clamp(2.4rem, 6.2vw, 4.6rem);
  line-height:1.08;
  margin-bottom:22px;
  letter-spacing:-.01em;
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.hero p {
  font-size:clamp(1.05rem, 1.7vw, 1.32rem);
  font-weight:400;
  max-width:780px;
  margin:0 auto 30px;
  line-height:1.5;
  color:rgba(255,255,255,.95);
  text-shadow:0 2px 12px rgba(0,0,0,.3);
}
.hero-cta {
  display:inline-flex; align-items:center;
  padding:14px 36px;
  background:transparent;
  color:var(--pink);
  border:2px solid var(--pink);
  border-radius:6px;
  font-size:1.18rem;
  font-weight:700;
  letter-spacing:.02em;
  transition:background .25s ease, color .25s ease, transform .25s ease;
}
.hero-cta svg { display:none; }
.hero-cta:hover {
  background:var(--pink);
  color:#fff;
  transform:translateY(-2px);
}
.hero-dots {
  position:absolute; bottom:32px; left:50%;
  transform:translateX(-50%);
  z-index:3;
  display:flex; gap:10px;
}
.hero-dots button {
  width:36px; height:4px;
  border:none;
  border-radius:2px;
  background:rgba(255,255,255,.35);
  transition:background .3s ease, width .3s ease;
}
.hero-dots button.is-active {
  background:var(--pink);
  width:56px;
}
@keyframes fadeUp {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}

.section { padding:96px 0; position:relative; overflow:hidden; }
.section-light    { background:var(--paper); }
.section-gradient {
  background:linear-gradient(180deg, #2d0453 0%, #1f0238 100%);
}
.section-discounts {
  background:#000;
}
.section-discounts .sec-title { color:#f6e47a; font-weight:600; }
.section-discounts .sec-sub { color:rgba(255,255,255,.78); }

.big-heart {
  display:inline-flex; align-items:center; justify-content:center;
  width:60px; height:60px;
  color:var(--pink);
  margin-bottom:14px;
  animation:heartPulse 1.8s ease-in-out infinite;
}
.big-heart svg { width:48px; height:48px; }
@keyframes heartPulse {
  0%, 100% { transform:scale(1); }
  50%      { transform:scale(1.12); }
}
.section-areas {
  position:relative;
  background:url('images/love-concept-with-senior-couple-1-scaled.jpg') center/cover no-repeat;
  overflow:hidden;
}
.section-areas .container { position:relative; z-index:1; }
.section-areas .sec-head .eyebrow { display:none; }
.section-areas .sec-title {
  color:var(--pink);
  font-weight:700;
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  text-shadow:0 2px 8px rgba(255,255,255,.5);
}
.section-areas .sec-sub {
  color:var(--gold);
  font-weight:500;
  font-size:1.05rem;
}
.section-testimonials {
  background:linear-gradient(135deg, var(--purple-night) 0%, var(--purple-mid) 50%, var(--purple-night) 100%);
}
.section-cta {
  background:linear-gradient(135deg, var(--purple-deep) 0%, var(--purple-mid) 100%);
}

.container { max-width:1200px; margin:0 auto; padding:0 40px; }
.sec-head {
  text-align:center;
  max-width:760px;
  margin:0 auto 56px;
}
.eyebrow {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--pink);
  margin-bottom:14px;
}
.eyebrow-gold { color:var(--gold); }
.eb-heart svg { width:14px; height:14px; }
.sec-title {
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:clamp(2rem, 4.2vw, 3rem);
  line-height:1.15;
  color:var(--purple-deep);
}
.sec-title-light { color:#fff; }
.sec-sub {
  margin-top:14px;
  color:var(--muted);
  font-size:1.04rem;
}
.sec-sub-light { color:rgba(255,255,255,.6); }

.mission-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
}
.mvc {
  position:relative;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:22px;
  padding:42px 36px;
  text-align:center;
  transition:transform .35s ease, box-shadow .35s ease, border-color .3s ease;
  box-shadow:0 6px 24px rgba(45,4,83,.04);
}
.mvc:hover {
  transform:translateY(-6px);
  border-color:rgba(233,30,140,.3);
  box-shadow:0 20px 50px rgba(45,4,83,.12);
}
.mvc-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:72px; height:72px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--pink), var(--pink-dark));
  color:#fff;
  margin-bottom:22px;
  box-shadow:0 10px 26px rgba(233,30,140,.28);
}
.mvc-icon svg { width:32px; height:32px; }
.mvc h3 {
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.5rem;
  color:var(--purple-deep);
  margin-bottom:14px;
}
.mvc p {
  font-size:.96rem;
  color:var(--muted);
  line-height:1.75;
}

.section-gradient .eyebrow { color:#f6e47a; }
.section-gradient .sec-title { color:var(--pink); }
.section-gradient .sec-sub { color:#f6e47a; }

.services-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
}
.svc {
  position:relative;
  background:#0a0613;
  border-radius:22px;
  padding:42px 34px;
  border:1px solid rgba(233,30,140,.15);
  overflow:hidden;
  text-align:left;
  transition:transform .4s cubic-bezier(.2,.7,.3,1), background .4s ease, border-color .4s ease, box-shadow .4s ease;
}
.svc::before {
  content:'';
  position:absolute;
  top:-2px; left:-2px; right:-2px; bottom:-2px;
  border-radius:22px;
  padding:2px;
  background:linear-gradient(135deg, var(--pink) 0%, var(--gold) 50%, var(--pink) 100%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
          mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
          mask-composite:exclude;
  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
}
.svc::after {
  content:'';
  position:absolute;
  top:50%; left:50%;
  width:0; height:0;
  background:radial-gradient(circle, rgba(233,30,140,.35) 0%, transparent 70%);
  border-radius:50%;
  transform:translate(-50%,-50%);
  transition:width .45s ease, height .45s ease;
  pointer-events:none;
  z-index:0;
}
.svc:hover {
  transform:translateY(-8px);
  background:linear-gradient(180deg, #14081f 0%, #1c0a2e 100%);
  box-shadow:0 22px 60px rgba(233,30,140,.22), 0 0 0 1px rgba(233,30,140,.4);
}
.svc:hover::before { opacity:1; }
.svc:hover::after { width:380px; height:380px; }
.svc-ico {
  position:relative; z-index:1;
  display:inline-flex; align-items:center; justify-content:center;
  width:58px; height:58px;
  border-radius:14px;
  background:linear-gradient(135deg, rgba(233,30,140,.18), rgba(212,175,55,.14));
  border:1px solid rgba(233,30,140,.3);
  color:var(--pink);
  margin-bottom:22px;
  transition:transform .35s ease, background .35s ease, color .35s ease;
}
.svc:hover .svc-ico {
  transform:rotate(-8deg) scale(1.08);
  background:linear-gradient(135deg, var(--pink), var(--pink-dark));
  color:#fff;
  box-shadow:0 8px 22px rgba(233,30,140,.5);
}
.svc-ico svg { width:28px; height:28px; }
.svc h3 {
  position:relative; z-index:1;
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.45rem;
  color:var(--pink);
  margin-bottom:14px;
  line-height:1.2;
}
.svc p {
  position:relative; z-index:1;
  font-size:.93rem;
  color:rgba(255,255,255,.78);
  line-height:1.85;
}

.services-grid .svc.reveal { transition:opacity .7s ease, transform .7s ease; }
.services-grid .svc.reveal:nth-child(1) { transition-delay:.05s; }
.services-grid .svc.reveal:nth-child(2) { transition-delay:.15s; }
.services-grid .svc.reveal:nth-child(3) { transition-delay:.25s; }
.services-grid .svc.reveal:nth-child(4) { transition-delay:.35s; }
.services-grid .svc.reveal:nth-child(5) { transition-delay:.45s; }
.services-grid .svc.reveal:nth-child(6) { transition-delay:.55s; }

.tier-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
  align-items:stretch;
}
.tier {
  position:relative;
  display:flex; flex-direction:column;
  padding-top:20px;
}
.tier-card {
  position:relative;
  flex:1;
  background:#15101e;
  border-radius:22px;
  padding:28px 28px 30px;
  border:1px solid rgba(255,255,255,.08);
  display:flex; flex-direction:column;
  transition:transform .4s cubic-bezier(.2,.7,.3,1), border-color .35s ease, box-shadow .35s ease, background .35s ease;
}

.tier-badge {
  display:inline-block;
  align-self:flex-start;
  padding:8px 18px;
  border-radius:50px;
  font-family:'DM Sans', sans-serif;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  margin-bottom:18px;
  transition:transform .3s ease, box-shadow .3s ease;
}
.tier-bronze .tier-badge {
  background:#2a2638;
  color:#d4d4d4;
}
.tier-gold   .tier-badge {
  background:#f6e47a;
  color:#3a2c00;
}
.tier-silver .tier-badge {
  background:var(--pink);
  color:#fff;
}

.tier-flag {
  position:absolute; top:0; left:50%;
  transform:translateX(-50%);
  background:#f6e47a;
  color:#3a2c00;
  padding:7px 22px;
  border-radius:50px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
  z-index:2;
  white-space:nowrap;
  box-shadow:0 6px 16px rgba(0,0,0,.4);
}

.tier-card h4 {
  font-family:'Playfair Display', serif;
  font-weight:600;
  font-size:1.3rem;
  text-align:left;
  color:#fff;
  margin-bottom:4px;
  line-height:1.25;
}
.tier-meta {
  text-align:left;
  font-size:.86rem;
  color:rgba(255,255,255,.55);
  letter-spacing:.02em;
  margin-bottom:24px;
}

.tier-list {
  list-style:none;
  padding:0;
  margin:0 0 28px;
  flex:1;
}
.tier-list li {
  position:relative;
  padding:10px 0 10px 30px;
  font-size:.92rem;
  color:rgba(255,255,255,.88);
  line-height:1.45;
}
.tier-list li::before {
  content:'';
  position:absolute;
  left:0; top:13px;
  width:18px; height:18px;
  border-radius:50%;
  background:var(--pink);
  display:block;
  box-sizing:border-box;
}
.tier-list li::after {
  content:'\2713';
  position:absolute;
  left:0; top:13px;
  width:18px; height:18px;
  color:#fff;
  font-family:Arial, sans-serif;
  font-size:11px;
  font-weight:700;
  line-height:18px;
  text-align:center;
  display:block;
  box-sizing:border-box;
}

.tier-btn {
  width:100%;
  padding:14px 16px;
  border:none;
  border-radius:50px;
  font-family:'DM Sans', sans-serif;
  font-size:.92rem;
  font-weight:600;
  letter-spacing:.03em;
  cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, opacity .25s ease;
}
.tier-bronze .tier-btn {
  background:#cdcdcd;
  color:#3a3a3a;
}
.tier-gold .tier-btn {
  background:#d4af37;
  color:#fff;
}
.tier-silver .tier-btn {
  background:var(--pink);
  color:#fff;
  box-shadow:0 6px 18px rgba(233,30,140,.35);
}
.tier-btn:hover { transform:translateY(-2px); opacity:.92; }
.tier-bronze .tier-btn:hover { background:#bcbcbc; }
.tier-gold .tier-btn:hover  { background:#c19f30; box-shadow:0 8px 22px rgba(212,175,55,.5); }
.tier-silver .tier-btn:hover { background:var(--pink-dark); box-shadow:0 10px 26px rgba(233,30,140,.55); }

.tier-card:hover {
  transform:translateY(-8px);
  background:#1c1525;
  border-color:rgba(233,30,140,.45);
  box-shadow:0 22px 60px rgba(233,30,140,.22);
}
.tier-card:hover .tier-badge { transform:scale(1.06); }

.tier-gold .tier-card {
  border-color:rgba(246,228,122,.3);
  box-shadow:0 14px 40px rgba(246,228,122,.12);
}
.tier-gold .tier-card:hover {
  border-color:rgba(246,228,122,.7);
  box-shadow:0 22px 60px rgba(246,228,122,.25);
}

.tier-silver .tier-card {
  border-color:rgba(233,30,140,.35);
  box-shadow:0 14px 40px rgba(233,30,140,.12);
}

.tier-grid .tier.reveal {
  opacity:0;
  transition:opacity 1s ease, transform 1s cubic-bezier(.2,.7,.3,1);
  will-change:transform, opacity;
}
.tier-grid .tier-bronze.reveal { transform:scale3d(.3,.3,.3) translate3d(-260px, 0, 0); transition-delay:.05s; }
.tier-grid .tier-gold.reveal   { transform:scale3d(.3,.3,.3) translate3d(0, 260px, 0);  transition-delay:.2s;  }
.tier-grid .tier-silver.reveal { transform:scale3d(.3,.3,.3) translate3d(260px, 0, 0);  transition-delay:.35s; }
.tier-grid .tier.reveal.is-visible {
  opacity:1;
  transform:scale3d(1,1,1) translate3d(0, 0, 0);
}

.section-reasons {
  background:linear-gradient(180deg, #2d0453 0%, #1f0238 100%);
  position:relative;
  overflow:hidden;
}
.section-reasons::before,
.section-reasons::after {
  content:'';
  position:absolute;
  width:480px; height:480px;
  border-radius:50%;
  filter:blur(140px);
  pointer-events:none;
  z-index:0;
}
.section-reasons::before {
  background:var(--pink);
  opacity:.08;
  top:-160px; left:-160px;
}
.section-reasons::after {
  background:#f6e47a;
  opacity:.06;
  bottom:-160px; right:-160px;
}
.section-reasons .container { position:relative; z-index:1; }
.section-reasons .sec-title {
  color:var(--pink);
  font-weight:700;
  font-size:clamp(2.2rem, 4.6vw, 3.4rem);
}
.section-reasons .sec-sub {
  color:#f6e47a;
  font-weight:400;
  font-size:1.05rem;
  margin-top:4px;
}

.reasons-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
  perspective:1200px;
}
.reason {
  position:relative;
  text-align:center;
  background:#fff;
  border:none;
  border-radius:18px;
  padding:42px 30px 36px;
  box-shadow:0 8px 28px rgba(0,0,0,.18);
  transition:transform .45s cubic-bezier(.2,.7,.3,1), box-shadow .45s ease;
  overflow:hidden;
}
.reason::before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(246,228,122,.0), rgba(246,228,122,.18));
  opacity:0;
  transition:opacity .45s ease;
  pointer-events:none;
}
.reason::after {
  content:'';
  position:absolute;
  top:0; left:-100%;
  width:100%; height:3px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  transition:left .6s ease;
}
.reason:hover {
  transform:translateY(-10px);
  box-shadow:0 28px 60px rgba(0,0,0,.32), 0 0 0 1px rgba(246,228,122,.4);
}
.reason:hover::before { opacity:1; }
.reason:hover::after { left:100%; }

.reason-icon-wrap {
  display:inline-flex;
  align-items:center; justify-content:center;
  width:88px; height:88px;
  border-radius:50%;
  background:linear-gradient(135deg, #faf3e0 0%, #f0e6c8 100%);
  margin:0 auto 22px;
  position:relative;
  z-index:1;
  transition:transform .5s cubic-bezier(.2,.7,.3,1), box-shadow .5s ease;
  box-shadow:0 4px 14px rgba(212,175,55,.18);
}
.reason:hover .reason-icon-wrap {
  transform:rotate(-8deg) scale(1.08);
  box-shadow:0 10px 26px rgba(212,175,55,.4);
}
.reason-icon {
  display:block;
  width:46px; height:46px;
  object-fit:contain;
  filter:hue-rotate(0deg) saturate(1.1);
}

.reason h3 {
  position:relative; z-index:1;
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.2rem;
  color:var(--purple-deep);
  margin-bottom:10px;
  line-height:1.3;
}
.reason p {
  position:relative; z-index:1;
  font-size:.92rem;
  color:#5a5266;
  line-height:1.7;
}

.reasons-grid .reason.reveal {
  opacity:0;
  transform:translateY(40px) scale(.94);
  transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.3,1);
}
.reasons-grid .reason.reveal:nth-child(1) { transition-delay:.05s; }
.reasons-grid .reason.reveal:nth-child(2) { transition-delay:.15s; }
.reasons-grid .reason.reveal:nth-child(3) { transition-delay:.25s; }
.reasons-grid .reason.reveal:nth-child(4) { transition-delay:.35s; }
.reasons-grid .reason.reveal:nth-child(5) { transition-delay:.45s; }
.reasons-grid .reason.reveal:nth-child(6) { transition-delay:.55s; }
.reasons-grid .reason.reveal.is-visible {
  opacity:1;
  transform:translateY(0) scale(1);
}

.areas-grid {
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:20px;
}
.area {
  background:#fdf6e3;
  border-radius:14px;
  padding:28px 16px 26px;
  text-align:center;
  border:1px solid rgba(212,175,55,.22);
  font-size:.95rem;
  font-weight:700;
  color:#2b2240;
  display:flex; flex-direction:column; align-items:center; gap:14px;
  box-shadow:0 4px 16px rgba(0,0,0,.08);
  transition:transform .4s cubic-bezier(.2,.7,.3,1), box-shadow .4s ease, background .35s ease, border-color .35s ease;
  cursor:default;
}
.area:hover {
  transform:translateY(-6px);
  background:#fff8e0;
  border-color:var(--gold);
  box-shadow:0 18px 40px rgba(212,175,55,.32);
}
.pin {
  display:inline-flex; align-items:center; justify-content:center;
  width:auto; height:auto;
  background:transparent;
  color:var(--gold);
  transition:transform .35s ease, color .25s ease;
}
.pin svg { width:32px; height:32px; }
.area:hover .pin {
  transform:translateY(-3px) scale(1.08);
  color:#b8932e;
}
.area:hover .pin svg { filter:drop-shadow(0 4px 8px rgba(212,175,55,.5)); }

.areas-grid .area.reveal {
  opacity:0;
  transform:translateY(30px) scale(.92);
  transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1);
}
.areas-grid .area.reveal:nth-child(1) { transition-delay:.05s; }
.areas-grid .area.reveal:nth-child(2) { transition-delay:.15s; }
.areas-grid .area.reveal:nth-child(3) { transition-delay:.25s; }
.areas-grid .area.reveal:nth-child(4) { transition-delay:.35s; }
.areas-grid .area.reveal:nth-child(5) { transition-delay:.45s; }
.areas-grid .area.reveal.is-visible {
  opacity:1;
  transform:translateY(0) scale(1);
}

.t-glow {
  position:absolute;
  width:420px; height:420px;
  border-radius:50%;
  filter:blur(120px);
  z-index:0;
  pointer-events:none;
}
.t-glow-1 { background:var(--pink-bright); opacity:.12; top:-100px; left:-100px; }
.t-glow-2 { background:var(--gold); opacity:.1; bottom:-100px; right:-100px; }

.testi-grid {
  position:relative; z-index:1;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:24px;
}
.testi {
  position:relative;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(212,175,55,.25);
  border-radius:22px;
  padding:36px 32px;
  color:#fff;
  font-family:'Poppins', sans-serif;
  transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.testi:hover {
  transform:translateY(-6px);
  border-color:var(--pink-bright);
  background:rgba(255,0,127,.06);
  box-shadow:0 20px 50px rgba(255,0,127,.18);
}
.t-quote {
  font-family:Georgia, serif;
  font-size:3.4rem;
  line-height:1;
  color:var(--pink-bright);
  opacity:.55;
  display:block;
}
.t-stars {
  color:var(--gold);
  font-size:.95rem;
  letter-spacing:2px;
  margin:6px 0 16px;
}
.testi p {
  font-size:.95rem;
  line-height:1.78;
  color:rgba(255,255,255,.86);
  margin-bottom:24px;
  font-weight:300;
}
.t-author { display:flex; align-items:center; gap:14px; }
.t-avatar {
  width:48px; height:48px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display', serif;
  font-weight:700;
  color:#fff;
  font-size:1.2rem;
  flex-shrink:0;
}
.t-avatar-pink   { background:linear-gradient(135deg, var(--pink-bright), var(--pink-dark)); }
.t-avatar-gold   { background:linear-gradient(135deg, var(--gold), #a8862b); color:#fff; }
.t-avatar-purple { background:linear-gradient(135deg, #6b1ca0, var(--purple-deep)); }
.t-name {
  font-family:'DM Sans', sans-serif;
  font-weight:600;
  font-size:.95rem;
  color:#fff;
}
.t-role {
  font-size:.78rem;
  color:rgba(255,255,255,.55);
  margin-top:2px;
}

.cta-card {
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.15);
  border-radius:24px;
  padding:60px 36px;
  text-align:center;
  max-width:780px;
  margin:0 auto;
  backdrop-filter:blur(6px);
}
.cta-heart {
  display:inline-flex; align-items:center; justify-content:center;
  width:78px; height:78px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--pink), var(--pink-dark));
  color:#fff;
  margin-bottom:22px;
  box-shadow:0 12px 32px rgba(233,30,140,.4);
  animation:heartBeat 2s ease-in-out infinite;
}
.cta-heart svg { width:34px; height:34px; }
@keyframes heartBeat {
  0%, 100% { transform:scale(1); }
  50%      { transform:scale(1.08); }
}
.section-cta h2 {
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:clamp(1.8rem, 4vw, 2.6rem);
  color:#fff;
  margin-bottom:14px;
}
.section-cta p {
  font-size:1.05rem;
  color:rgba(255,255,255,.75);
  margin-bottom:32px;
}
.big-call-btn {
  display:inline-flex; align-items:center; gap:12px;
  padding:18px 38px;
  background:#fff;
  color:var(--purple-deep);
  border-radius:50px;
  font-size:1.04rem;
  font-weight:700;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  box-shadow:0 12px 32px rgba(0,0,0,.18);
}
.big-call-btn svg { width:20px; height:20px; color:var(--pink); }
.big-call-btn:hover {
  transform:translateY(-3px);
  background:linear-gradient(135deg, var(--pink), var(--pink-dark));
  color:#fff;
  box-shadow:0 18px 40px rgba(233,30,140,.5);
}
.big-call-btn:hover svg { color:#fff; }

.site-footer {
  background:var(--purple-deep);
  color:rgba(255,255,255,.86);
  font-family:'DM Sans', sans-serif;
  padding:64px 40px 0;
}
.foot-grid {
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.3fr;
  gap:48px;
}
.foot-logo {
  width:130px; height:auto;
  margin-bottom:18px;
  object-fit:contain;
}
.foot-brand p {
  font-size:.87rem;
  line-height:1.78;
  color:rgba(255,255,255,.82);
  margin-bottom:22px;
}
.socials { display:flex; gap:10px; }
.socials a {
  width:40px; height:40px;
  border-radius:50%;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.8);
  transition:background .25s ease, transform .25s ease, color .25s ease;
}
.socials svg { width:17px; height:17px; }
.socials a:hover {
  background:var(--pink);
  color:#fff;
  transform:translateY(-3px);
}

.foot-grid h4 {
  font-family:'Playfair Display', serif;
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.05em;
  color:#ff4db8;
  margin:0 0 18px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(233,30,140,.3);
}

.foot-links {
  list-style:none;
  display:flex; flex-direction:column;
  gap:11px;
  margin:0; padding:0;
}
.foot-links a {
  display:inline-flex; align-items:center; gap:8px;
  font-size:.87rem;
  color:rgba(255,255,255,.82);
  transition:color .2s ease, gap .2s ease;
}
.foot-links a::before {
  content:'\203A';
  color:var(--pink);
  font-size:1.1rem;
  line-height:1;
  transition:transform .2s ease;
}
.foot-links a:hover { color:#fff; gap:12px; }
.foot-links a:hover::before { transform:translateX(3px); }

.ci { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; }
.ci:last-child { margin-bottom:0; }
.ci-ico {
  width:36px; height:36px;
  border-radius:8px;
  flex-shrink:0;
  background:rgba(233,30,140,.15);
  display:inline-flex; align-items:center; justify-content:center;
}
.ci-ico svg { width:16px; height:16px; color:#ff4db8; }
.ci-txt { font-size:.84rem; line-height:1.55; }
.ci-txt strong {
  display:block;
  color:#fff;
  font-size:.73rem;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:600;
  margin-bottom:3px;
}
.ci-txt a,
.ci-txt span {
  color:rgba(255,255,255,.82);
  font-size:.84rem;
  transition:color .2s ease;
}
.ci-txt a:hover { color:#ff4db8; }

.foot-bottom {
  max-width:1200px;
  margin:52px auto 0;
  padding:20px 0 24px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
}
.foot-bottom p {
  font-size:.78rem;
  color:rgba(255,255,255,.5);
  margin:0;
  line-height:1.55;
}
.foot-bottom p a {
  color:#ff4db8;
  text-decoration:none;
}
.foot-legal {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}
.foot-legal a {
  font-size:.78rem;
  color:rgba(255,255,255,.5);
  transition:color .2s ease;
}
.foot-legal a:hover { color:#fff; }

.modal {
  position:fixed; inset:0;
  z-index:2000;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(6px);
  display:none;
  align-items:center; justify-content:center;
  padding:24px;
}
.modal.is-open { display:flex; }
.modal-box {
  background:#fff;
  border-radius:18px;
  padding:42px 38px 36px;
  width:100%;
  max-width:520px;
  position:relative;
  box-shadow:0 24px 70px rgba(0,0,0,.4);
  animation:modalIn .35s ease;
  max-height:92vh;
  overflow-y:auto;
}
@keyframes modalIn {
  from { transform:scale(.92) translateY(10px); opacity:0; }
  to   { transform:scale(1)    translateY(0);    opacity:1; }
}
.modal-close {
  position:absolute; top:12px; right:16px;
  background:none; border:none;
  font-size:2rem;
  line-height:1;
  color:#999;
  padding:6px 10px;
}
.modal-close:hover { color:var(--pink); }
.modal-box h3 {
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.55rem;
  color:var(--purple-deep);
  margin-bottom:8px;
}
.modal-box > p {
  font-size:.92rem;
  color:var(--muted);
  margin-bottom:22px;
}
.modal-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.mf-field.full { grid-column:1 / -1; }
.mf-field input,
.mf-field select,
.mf-field textarea {
  width:100%;
  padding:12px 14px;
  border:1.5px solid var(--line);
  border-radius:10px;
  font-family:'DM Sans', sans-serif;
  font-size:.92rem;
  color:var(--ink);
  background:#fff;
  outline:none;
  transition:border-color .25s ease, box-shadow .25s ease;
  resize:vertical;
}
.mf-field input:focus,
.mf-field select:focus,
.mf-field textarea:focus {
  border-color:var(--pink);
  box-shadow:0 0 0 3px rgba(233,30,140,.12);
}
.mf-field textarea { min-height:92px; }
.mf-submit {
  grid-column:1 / -1;
  padding:14px;
  background:linear-gradient(135deg, var(--pink), var(--pink-dark));
  color:#fff;
  border:none;
  border-radius:10px;
  font-family:'DM Sans', sans-serif;
  font-size:1rem;
  font-weight:600;
  letter-spacing:.04em;
  transition:transform .2s ease, opacity .2s ease;
  box-shadow:0 8px 22px rgba(233,30,140,.32);
}
.mf-submit:hover { transform:translateY(-2px); opacity:.95; }
.mf-submit.is-success { background:linear-gradient(135deg, #1a8a44, #126933); }

.reveal {
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal[data-anim="left"]  { transform:translateX(-30px); }
.reveal[data-anim="right"] { transform:translateX(30px); }
.reveal[data-anim="down"]  { transform:translateY(-28px); }
.reveal[data-anim="up"]    { transform:translateY(28px); }
.reveal.is-visible {
  opacity:1;
  transform:translate(0, 0);
}

@media (max-width:1024px) {
  .topbar { padding:12px 22px; }
  .topbar.is-scrolled { padding:8px 22px; }
  .navmenu, .topcta { display:none; }
  .hamburger { display:flex; }
  .brand-img { height:54px; }

  .hero { padding-top:80px; }
  .hero-content { padding:0 28px; }

  .section { padding:80px 0; }
  .container { padding:0 28px; }
  .sec-head { margin-bottom:44px; }

  .mission-grid { grid-template-columns:1fr; gap:22px; }
  .services-grid { grid-template-columns:1fr 1fr; gap:18px; }

  .tier-grid { grid-template-columns:1fr; gap:24px; max-width:480px; margin:0 auto; }
  .tier-gold .tier-card { transform:translateY(0); }
  .tier-gold .tier-card:hover { transform:translateY(-6px); }

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

  .testi-grid { grid-template-columns:1fr; }

  .site-footer { padding:50px 28px 0; }
  .foot-grid {
    grid-template-columns:1fr 1fr;
    gap:36px;
  }
  .foot-bottom { margin-top:40px; padding:18px 0 22px; }
}

@media (max-width:768px) {
  .topbar { padding:10px 18px; }
  .brand-img { height:46px; }
  .hamburger span { width:22px; }

  .hero { padding-top:70px; min-height:540px; height:auto; padding-bottom:80px; }
  .hero-content { padding:24px 22px 0; }
  .hero h1 { font-size:clamp(1.9rem, 8vw, 2.6rem); }
  .hero p { font-size:.95rem; margin-bottom:24px; }
  .hero-cta { padding:14px 26px; font-size:.9rem; }
  .hero-dots { bottom:22px; }

  .section { padding:64px 0; }
  .container { padding:0 20px; }
  .sec-title { font-size:1.85rem; }
  .sec-sub { font-size:.94rem; }
  .sec-head { margin-bottom:34px; }

  .mvc { padding:32px 24px; }
  .mvc-icon { width:60px; height:60px; }

  .services-grid { grid-template-columns:1fr; gap:14px; }
  .svc { padding:30px 22px; }

  .tier-card { padding:32px 22px 26px; }

  .reasons-grid { grid-template-columns:1fr; gap:14px; }

  .areas-grid { grid-template-columns:1fr 1fr; gap:12px; }

  .cta-card { padding:44px 22px; }
  .cta-heart { width:64px; height:64px; }
  .big-call-btn { padding:15px 28px; font-size:.92rem; }

  .foot-grid {
    grid-template-columns:1fr;
    gap:30px;
    padding:44px 22px 26px;
    text-align:left;
  }
  .foot-bottom { padding:18px 22px; font-size:.74rem; }

  .modal-box { padding:34px 24px; }
  .modal-form { grid-template-columns:1fr; }
}

@media (max-width:480px) {
  .drawer { width:90vw; max-width:90vw; }
  .hero h1 { font-size:1.85rem; }
  .areas-grid { grid-template-columns:1fr; }
  .tier-card { padding:28px 20px 24px; }
  .testi { padding:28px 24px; }
  .container { padding:0 16px; }
  .section { padding:54px 0; }
}

@media (hover:none), (pointer:coarse) {
  .svc:hover, .mvc:hover, .reason:hover, .tier-card:hover, .testi:hover, .area:hover {
    transform:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after {
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .hero-bg { animation:none; }
  .cta-heart { animation:none; }
}
