:root{
  --pink:#c0407a;
  --pink-soft:#e29ab9;
  --violet:#5e2150;
  --gold:#c69a4c;
  --gold-soft:#e9d9b0;
  --ink:#241019;
  --muted:#8a7580;
  --cream:#fdf7f4;
  --white:#ffffff;
  --shadow:0 22px 55px rgba(94,33,80,.16);
  --grad:linear-gradient(120deg,#c0407a 0%,#5e2150 100%);
  --grad-gold:linear-gradient(120deg,#d9b563 0%,#b0863a 100%);
  --grad-soft:linear-gradient(120deg,#fbeef4 0%,#f6eee4 100%);
  --radius:22px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Poppins',sans-serif;color:var(--ink);background:var(--white);line-height:1.6;overflow-x:hidden}
h1,h2,h3{font-family:'Playfair Display',serif;line-height:1.15;font-weight:700}
a{text-decoration:none;color:inherit}
.wrap{width:min(1160px,92%);margin-inline:auto}
.eyebrow{display:inline-block;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--gold);margin-bottom:14px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 30px;border-radius:50px;font-weight:600;font-size:.95rem;transition:.3s;cursor:pointer;border:none}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 12px 30px rgba(192,64,122,.35)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(192,64,122,.45)}
.btn-ghost{background:#fff;color:var(--ink);border:1.5px solid rgba(94,33,80,.2)}
.btn-ghost:hover{border-color:var(--violet);color:var(--violet);background:var(--cream)}

/* NAV */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.85);backdrop-filter:blur(14px);border-bottom:1px solid rgba(123,47,247,.08)}
nav{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.logo{display:flex;align-items:center;gap:13px}
.logo .mark{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center}
.logo .mark svg{width:69px;height:64px;filter:drop-shadow(0 4px 8px rgba(94,33,80,.25))}
.logo .lt{display:flex;flex-direction:column;line-height:1.05}
.logo .lt b{font-family:'Playfair Display',serif;font-weight:700;font-size:1.2rem;color:var(--violet);letter-spacing:.2px}
.logo .lt b em{font-style:normal;color:var(--gold)}
.logo .lt small{font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-top:2px}
.nav-links{display:flex;gap:34px;align-items:center;font-size:.92rem;font-weight:500}
.nav-links a{transition:.2s;color:var(--muted)}
.nav-links a:hover{color:var(--pink)}
.nav-links a.btn-primary{color:#fff}
.nav-links a.btn-primary:hover{color:#fff}
.nav-cta{padding:11px 24px}
.menu-btn{display:none;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--ink)}

/* HERO */
.hero{position:relative;padding:90px 0 100px;background:var(--grad-soft);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.hero h1{font-size:clamp(2.4rem,5vw,3.9rem)}
.hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{font-size:1.1rem;color:var(--muted);margin:22px 0 32px;max-width:520px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap}
.hero-stats{display:flex;gap:34px;margin-top:44px}
.hero-stats .num{font-family:'Playfair Display',serif;font-size:1.9rem;font-weight:700;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-stats .lbl{font-size:.82rem;color:var(--muted)}
.hero-visual{position:relative;height:460px}
.blob{position:absolute;inset:0;margin:auto;width:380px;height:380px;border-radius:46% 54% 60% 40%/45% 45% 55% 55%;background:var(--grad);filter:blur(2px);opacity:.9;animation:morph 8s ease-in-out infinite}
@keyframes morph{0%,100%{border-radius:46% 54% 60% 40%/45% 45% 55% 55%}50%{border-radius:60% 40% 40% 60%/55% 55% 45% 45%}}
.balloon{position:absolute;width:82px;height:104px;border-radius:50% 50% 50% 50%/45% 45% 55% 55%;box-shadow:inset -8px -12px 24px rgba(0,0,0,.15);animation:float 5s ease-in-out infinite}
.balloon::after{content:"";position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:11px solid inherit}
.balloon::before{content:"";position:absolute;bottom:-70px;left:50%;width:1px;height:70px;background:rgba(0,0,0,.15)}
.b1{background:#ff4d94;top:20px;left:60px;animation-delay:0s}
.b2{background:#7b2ff7;top:70px;right:40px;width:96px;height:120px;animation-delay:1s}
.b3{background:#f5b73d;bottom:60px;left:30px;width:70px;height:90px;animation-delay:.5s}
.b4{background:#40c9a2;bottom:30px;right:80px;animation-delay:1.5s}
.b5{background:#ff8bbd;top:170px;left:150px;animation-delay:.8s}
@keyframes float{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-22px) rotate(4deg)}}
.hero-photos{position:absolute;inset:0}
.hp{position:absolute;object-fit:cover;border-radius:20px;box-shadow:0 22px 45px rgba(27,21,36,.28);border:4px solid #fff;animation:float 6s ease-in-out infinite}
.hp1{width:230px;height:290px;top:40px;left:70px;z-index:3;animation-delay:0s}
.hp2{width:170px;height:210px;bottom:30px;right:40px;z-index:2;animation-delay:1.2s}
.hp3{width:140px;height:175px;top:20px;right:20px;z-index:1;animation-delay:.6s}

/* SECTION SHELL */
section{padding:90px 0}
.sec-head{text-align:center;max-width:620px;margin:0 auto 56px}
.sec-head h2{font-size:clamp(2rem,4vw,2.8rem)}
.sec-head p{color:var(--muted);margin-top:14px}

/* SERVICES */
.services{background:var(--cream)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border-radius:var(--radius);box-shadow:0 10px 30px rgba(123,47,247,.06);border:1px solid rgba(123,47,247,.06);transition:.35s;position:relative;overflow:hidden;padding:0}
.card::before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:.35s;z-index:3}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.card:hover::before{transform:scaleX(1)}
.card .thumb{height:320px;overflow:hidden;position:relative}
.card .thumb img{width:100%;height:100%;object-fit:cover;transition:.5s}
.card:hover .thumb img{transform:scale(1.08)}
.card .ico{display:none}
.card .body{padding:32px 26px 30px}
.card h3{font-size:1.18rem;margin-bottom:9px}
.card p{font-size:.9rem;color:var(--muted)}

/* WHY / FEATURES */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.why-visual{background:var(--grad);border-radius:28px;padding:50px 40px;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}
.why-visual::after{content:"🎈";position:absolute;bottom:-20px;right:-10px;font-size:9rem;opacity:.15}
.why-visual h3{font-size:2rem;margin-bottom:14px;color:#fff}
.why-visual p{opacity:.9;font-size:.95rem}
.why-list{display:grid;gap:22px}
.why-item{display:flex;gap:16px;align-items:flex-start}
.why-item .tick{flex:0 0 44px;height:44px;border-radius:12px;background:var(--grad-soft);display:grid;place-items:center;font-size:1.2rem}
.why-item h4{font-size:1.08rem;margin-bottom:3px}
.why-item p{font-size:.9rem;color:var(--muted)}

/* CTA BANNER */
.cta{background:var(--grad);border-radius:30px;padding:60px;text-align:center;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}
.cta h2{font-size:clamp(1.8rem,4vw,2.6rem);color:#fff;margin-bottom:14px}
.cta p{opacity:.92;margin-bottom:28px;max-width:520px;margin-inline:auto}
.cta .btn-white{background:#fff;color:var(--pink)}
.cta .btn-white:hover{transform:translateY(-3px)}

/* GALLERY */
.gallery{background:var(--cream)}
.grid-masonry{columns:4;column-gap:16px}
.grid-masonry img{width:100%;border-radius:16px;margin-bottom:16px;cursor:pointer;transition:.4s;box-shadow:0 8px 22px rgba(123,47,247,.08);display:block}
.grid-masonry img:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
@media(max-width:1024px){.grid-masonry{columns:3}}
@media(max-width:700px){.grid-masonry{columns:2;column-gap:12px}.grid-masonry img{margin-bottom:12px}}

/* VIDEO */
.videos{background:linear-gradient(180deg,#fff 0%,var(--cream) 100%)}
.vid-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.vid-grid video{width:100%;border-radius:18px;box-shadow:0 12px 30px rgba(123,47,247,.12);background:#000;aspect-ratio:9/16;object-fit:cover}
@media(max-width:860px){.vid-grid{grid-template-columns:repeat(2,1fr)}}

/* LIGHTBOX */
.lb{position:fixed;inset:0;background:rgba(20,12,30,.92);display:none;place-items:center;z-index:100;padding:20px;cursor:zoom-out}
.lb.on{display:grid}
.lb img{max-width:92%;max-height:90vh;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb-close{position:absolute;top:22px;right:30px;color:#fff;font-size:2.4rem;cursor:pointer;line-height:1}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.contact-info{display:grid;gap:22px}
.info-item{display:flex;gap:16px;align-items:flex-start;background:var(--cream);padding:22px;border-radius:16px;transition:.3s}
.info-item:hover{transform:translateX(6px)}
.info-item .ii{flex:0 0 50px;height:50px;border-radius:14px;background:var(--grad);color:#fff;display:grid;place-items:center;font-size:1.3rem}
.info-item h4{font-size:1rem;margin-bottom:2px}
.info-item a,.info-item p{color:var(--muted);font-size:.92rem}
.contact-form{background:#fff;border-radius:var(--radius);padding:36px;box-shadow:var(--shadow);border:1px solid rgba(123,47,247,.06)}
.contact-form h3{font-size:1.5rem;margin-bottom:20px}
.field{margin-bottom:16px}
.field label{display:block;font-size:.85rem;font-weight:500;margin-bottom:6px}
.field input,.field textarea{width:100%;padding:13px 16px;border:1.5px solid rgba(123,47,247,.14);border-radius:12px;font-family:inherit;font-size:.92rem;transition:.2s;background:#fdfbff}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px rgba(255,77,148,.1)}
.contact-form .btn{width:100%;justify-content:center;margin-top:6px}

/* FOOTER */
footer{background:var(--ink);color:#cfc7dd;padding:56px 0 26px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:40px}
footer .logo{color:#fff}
footer p{font-size:.9rem;opacity:.75;margin-top:14px;max-width:320px}
.foot-col h4{color:#fff;font-size:1rem;margin-bottom:16px;font-family:'Poppins';font-weight:600}
.foot-col a,.foot-col p{display:block;font-size:.9rem;opacity:.75;margin-bottom:9px;transition:.2s}
.foot-col a:hover{opacity:1;color:var(--pink-soft)}
.foot-contact a,.foot-contact p{display:flex;align-items:flex-start;gap:10px}
.foot-contact svg{flex:0 0 17px;width:17px;height:17px;margin-top:2px;fill:var(--gold)}
.foot-contact a:hover svg{fill:var(--pink-soft)}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;text-align:center;font-size:.82rem;opacity:.6}

/* FLOATING BUTTONS */
.floats{position:fixed;bottom:26px;right:26px;z-index:60;display:flex;flex-direction:column;gap:14px}
.fab{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;transition:.3s}
.fab svg{width:28px;height:28px;fill:#fff}
.fab.wa{background:transparent;box-shadow:0 10px 26px rgba(37,211,102,.5);border-radius:50%;animation:pulseG 2.5s infinite}
.fab.wa img{width:100%;height:100%;display:block}
.fab.call{background:var(--grad);box-shadow:0 10px 26px rgba(192,64,122,.5);animation:pulseP 2.5s infinite}
.fab:hover{transform:scale(1.1)}
@keyframes pulseG{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
@keyframes pulseP{0%{box-shadow:0 0 0 0 rgba(192,64,122,.5)}70%{box-shadow:0 0 0 16px rgba(192,64,122,0)}100%{box-shadow:0 0 0 0 rgba(192,64,122,0)}}

.reveal{opacity:0;transform:translateY(30px);transition:.7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

@media(max-width:860px){
  .nav-links{display:none}
  .menu-btn{display:block}
  .hero-grid,.why-grid,.contact-grid{grid-template-columns:1fr}
  .hero-visual{height:320px;order:-1}
  .hp1{width:180px;height:220px;top:20px;left:30px}
  .hp2{width:130px;height:160px;bottom:20px;right:20px}
  .hp3{width:105px;height:130px;top:10px;right:10px}
  .cards{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .cta{padding:44px 26px}
  .hero-stats{gap:22px;flex-wrap:wrap}
}
