/* IDEAL STUDIO — design system */
:root{
  --rose:#F19FC1; --rose-deep:#E27BA0; --rose-ink:#C75C8B; --magenta:#E486AB;
  --ink:#43353c; --body:#5d4f56; --sub:#9a8a92; --line:#F6E2EC; --tint:#FDF1F7; --tint2:#FBE4EE;
  --cream:#FFF9FC; --wa:#25D366; --gold:#caa15a;
  --maxw:1140px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Poppins',sans-serif;color:var(--body);background:#fff;line-height:1.7;-webkit-font-smoothing:antialiased;}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;}
.narrow{max-width:760px;margin:0 auto;}
.cn{font-family:'Noto Sans SC',sans-serif;}
.script{font-family:'Pacifico',cursive;color:var(--rose-deep);}
h1,h2,h3,h4{font-family:'Playfair Display',serif;color:var(--ink);line-height:1.18;font-weight:700;}
.eyebrow{font-size:12.5px;letter-spacing:3px;text-transform:uppercase;color:var(--rose-ink);font-weight:600;}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;
  padding:13px 26px;border-radius:40px;cursor:pointer;border:none;transition:.2s;white-space:nowrap;}
.btn-primary{background:var(--rose-deep);color:#fff;letter-spacing:.3px;box-shadow:0 6px 18px rgba(226,123,160,.32);}
.btn-primary:hover{background:var(--rose-ink);transform:translateY(-1px);}
.btn-wa{background:var(--wa);color:#fff;}
.btn-wa:hover{filter:brightness(.96);}
.btn-ghost{background:#fff;color:var(--rose-ink);border:1.5px solid var(--rose);}
.btn-ghost:hover{background:var(--tint);}
.h2{font-size:36px;margin:8px 0 8px;}
.lead{color:var(--sub);font-size:16.5px;max-width:640px;}
section{padding:80px 0;}
.center{text-align:center;}
.center .lead{margin:0 auto;}

/* NAV */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;height:70px;}
.brand{font-family:'Playfair Display',serif;font-weight:700;letter-spacing:4px;font-size:19px;color:var(--ink);}
.brand small{display:block;font-family:'Pacifico',cursive;letter-spacing:0;font-size:12.5px;color:var(--rose-deep);font-weight:400;margin-top:-3px;}
.navlinks{display:flex;align-items:center;gap:22px;}
.navlinks a{font-size:14px;font-weight:500;color:#6b5d63;}
.navlinks a:hover,.navlinks a.active{color:var(--rose-deep);}
.nav .btn{padding:9px 20px;font-size:14px;}
.menutoggle{display:none;background:none;border:none;font-size:26px;color:var(--ink);cursor:pointer;}

/* HERO */
.hero{background:linear-gradient(180deg,var(--cream),#fff);padding:92px 0 84px;text-align:center;}
.hero-inner{max-width:800px;margin:0 auto;}
.hero h1{font-size:58px;margin-top:14px;}
.hero h1 .script{font-size:62px;}
.hero p.tag{margin-top:18px;font-size:18px;color:var(--body);}
.hero p.tag .cn{color:var(--rose-deep);}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 30px;justify-content:center;}
.chip{background:#fff;border:1px solid var(--line);color:var(--rose-ink);font-size:12.5px;font-weight:600;padding:7px 15px;border-radius:30px;}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;}
.rating{margin-top:22px;font-size:13.5px;color:var(--sub);}
.rating b{color:var(--rose-ink);}

/* page header */
.page-head{background:linear-gradient(180deg,var(--cream),#fff);padding:64px 0 26px;text-align:center;}
.breadcrumb{font-size:12.5px;color:var(--sub);margin-bottom:14px;}
.breadcrumb a:hover{color:var(--rose-deep);}

/* TRUST strip */
.trust{background:var(--magenta);color:#fff;}
.trust .wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 38px;padding:17px 22px;text-align:center;}
.trust b{font-weight:700;letter-spacing:1px;font-size:14.5px;}
.trust .cn{opacity:.9;font-weight:400;}

/* SERVICE cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:42px;}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px 22px;transition:.2s;display:block;}
.card:hover{box-shadow:0 16px 40px rgba(226,123,160,.16);transform:translateY(-4px);}
.card .ico{width:56px;height:56px;border-radius:16px;background:var(--tint);display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.card h3{font-size:20px;}
.card h3 .cn{font-family:'Noto Sans SC';font-size:14px;color:var(--rose-deep);font-weight:500;margin-left:6px;}
.card p{font-size:13.5px;color:var(--sub);margin-top:8px;}
.card .from{margin-top:14px;font-size:13px;color:var(--rose-ink);font-weight:600;}

/* generic content cols */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:38px;text-align:left;}
.feature{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;}
.feature .n{font-family:'Playfair Display',serif;font-size:28px;color:var(--rose);}
.feature h4{font-size:17px;margin:6px 0 5px;}
.feature p{font-size:13.5px;color:var(--sub);}

/* PROSE / article */
.prose{font-size:16.5px;color:var(--body);}
.prose h2{font-size:27px;margin:34px 0 12px;}
.prose h3{font-size:20px;margin:24px 0 8px;}
.prose p{margin:0 0 16px;}
.prose ul,.prose ol{margin:0 0 18px 22px;}
.prose li{margin:6px 0;}
.prose a{color:var(--rose-ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--rose);text-underline-offset:3px;}
.prose strong{color:var(--ink);}
.prose blockquote{border-left:3px solid var(--rose);background:var(--tint);padding:14px 20px;border-radius:0 12px 12px 0;margin:18px 0;color:var(--ink);font-style:italic;}
.prose .lede{font-size:18.5px;color:var(--ink);}
.meta-row{font-size:13px;color:var(--sub);margin-bottom:8px;}
.tag-badge{display:inline-block;background:var(--tint);color:var(--rose-ink);font-size:11.5px;font-weight:600;padding:4px 12px;border-radius:20px;}

/* FAQ accordion */
.faq{max-width:760px;margin:30px auto 0;text-align:left;}
.faq details{border:1px solid var(--line);border-radius:14px;padding:4px 20px;margin-bottom:12px;background:#fff;}
.faq summary{cursor:pointer;font-weight:600;color:var(--ink);padding:14px 0;list-style:none;font-size:15.5px;position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:0;color:var(--rose-deep);font-size:22px;line-height:1;}
.faq details[open] summary::after{content:"–";}
.faq details p{padding:0 0 16px;color:var(--body);font-size:14.5px;}

/* TESTIMONIALS */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px;text-align:left;}
.quote{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;}
.quote .stars{color:var(--gold);letter-spacing:2px;font-size:14px;}
.quote p{font-size:14px;color:var(--body);margin:10px 0 12px;}
.quote .who{font-size:13px;color:var(--sub);font-weight:600;}

/* PRICING */
.pricing{background:var(--cream);}
.tabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:32px 0 28px;}
.tab{padding:10px 22px;border-radius:30px;background:#fff;border:1.5px solid var(--line);font-weight:600;font-size:14.5px;color:#6b5d63;cursor:pointer;transition:.18s;}
.tab.active{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep);}
.panel{display:none;max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px 30px;}
.panel.active{display:block;}
.prow{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);}
.prow:last-child{border-bottom:none;}
.pname{font-size:15px;font-weight:600;color:var(--ink);}
.pname .lt{font-weight:400;color:var(--sub);font-size:13px;}
.pname small{display:block;font-family:'Noto Sans SC';font-weight:400;color:var(--sub);font-size:12.5px;margin-top:1px;}
.pprice{font-weight:700;white-space:nowrap;color:var(--ink);}
.pgroup{font-weight:700;color:var(--rose-ink);font-size:12.5px;letter-spacing:2px;text-transform:uppercase;padding:16px 0 2px;font-family:'Poppins',sans-serif;}
.note-line{font-size:12.5px;color:var(--rose-ink);background:var(--tint);border-radius:10px;padding:9px 14px;margin:10px 0;}

/* BOOKING */
.booking{background:linear-gradient(180deg,#fff,var(--cream));}
.book-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start;margin-top:38px;}
.book-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 12px 40px rgba(226,123,160,.08);text-align:left;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:13px;font-weight:600;color:#6b5d63;margin-bottom:7px;}
.field select,.field input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-family:inherit;font-size:15px;color:var(--ink);background:#fff;}
.field select:focus,.field input:focus{outline:none;border-color:var(--rose);}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.slot{padding:9px 0;text-align:center;border:1.5px solid var(--line);border-radius:10px;font-size:13.5px;font-weight:600;color:#6b5d63;cursor:pointer;transition:.15s;}
.slot:hover{border-color:var(--rose);color:var(--rose-deep);}
.slot.sel{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep);}
.slot.gone{opacity:.4;text-decoration:line-through;cursor:not-allowed;}
.book-card .btn{width:100%;justify-content:center;margin-top:6px;}
.syncbox{background:var(--tint);border-radius:18px;padding:26px;text-align:left;}
.syncbox h4{font-size:20px;margin-bottom:6px;}
.syncbox ul{list-style:none;margin-top:14px;}
.syncbox li{font-size:14px;color:var(--body);padding:8px 0 8px 28px;position:relative;}
.syncbox li::before{content:"✓";position:absolute;left:0;color:var(--rose-deep);font-weight:700;}
.tagpill{display:inline-block;background:#fff;border:1px solid var(--line);color:var(--rose-ink);font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;margin-top:10px;}

/* BLOG list */
.bloggrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:42px;text-align:left;}
.postcard{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.2s;display:flex;flex-direction:column;}
.postcard:hover{box-shadow:0 16px 40px rgba(226,123,160,.16);transform:translateY(-4px);}
.postcard .thumb{height:150px;background:linear-gradient(135deg,var(--tint2),var(--tint));display:flex;align-items:center;justify-content:center;font-size:40px;}
.postcard .body{padding:22px;flex:1;display:flex;flex-direction:column;}
.postcard .cat{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--rose-ink);font-weight:600;}
.postcard h3{font-size:18px;margin:8px 0 8px;}
.postcard p{font-size:13.5px;color:var(--sub);flex:1;}
.postcard .more{margin-top:12px;font-size:13px;font-weight:600;color:var(--rose-deep);}

/* CTA band */
.cta{background:var(--magenta);color:#fff;text-align:center;}
.cta h2{color:#fff;font-size:32px;}
.cta p{opacity:.95;max-width:560px;margin:8px auto 22px;}
.cta .btn-primary{background:#fff;color:var(--rose-ink);box-shadow:none;}

/* CONTACT */
.contact{background:var(--ink);color:#f3e7ee;}
.contact .h2,.contact h2{color:#fff;}
.contact .eyebrow{color:var(--rose);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px;}
.contact a.big{display:inline-flex;align-items:center;gap:10px;font-size:20px;font-weight:600;margin:6px 0;color:#fff;}
.contact .meta{opacity:.9;font-size:14.5px;line-height:1.9;}
.hours{background:rgba(255,255,255,.06);border-radius:18px;padding:24px;}
.hours div{display:flex;justify-content:space-between;padding:6px 0;font-size:14.5px;border-bottom:1px solid rgba(255,255,255,.12);}
.hours div:last-child{border-bottom:none;}

footer{background:#2b2228;color:#c9b9c1;padding:46px 0 30px;}
footer .ftop{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;text-align:left;}
footer .brand{color:#fff;}
footer h5{color:#fff;font-family:'Poppins',sans-serif;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px;}
footer a{font-size:13.5px;color:#c9b9c1;display:block;margin:6px 0;}
footer a:hover{color:var(--rose);}
footer .nap{font-size:13px;line-height:1.8;opacity:.85;}
footer .fbottom{border-top:1px solid rgba(255,255,255,.1);margin-top:28px;padding-top:18px;text-align:center;font-size:12px;opacity:.6;}

.float-wa{position:fixed;right:20px;bottom:20px;z-index:60;width:60px;height:60px;border-radius:50%;background:var(--wa);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(37,211,102,.4);}

@media(max-width:900px){
  .cards,.quotes,.bloggrid,.cols3{grid-template-columns:1fr 1fr;}
  .book-grid,.contact-grid,footer .ftop{grid-template-columns:1fr;}
  .navlinks{display:none;}
  .menutoggle{display:block;}
  .h2,.cta h2{font-size:28px;} .hero h1{font-size:40px;} .hero h1 .script{font-size:44px;}
  section{padding:58px 0;}
}
@media(max-width:560px){
  .cards,.quotes,.bloggrid,.cols3{grid-template-columns:1fr;}
  .slots{grid-template-columns:repeat(3,1fr);}
}

/* ===== Promo bar + hero banner with photos ===== */
.promobar{background:linear-gradient(90deg,var(--rose-deep),var(--magenta));color:#fff;text-align:center;font-size:13.5px;font-weight:500;padding:9px 16px;}
.promobar a{font-weight:700;text-decoration:underline;text-underline-offset:2px;}
.hero{text-align:left;padding:58px 0 64px;}
.hero-banner{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:center;}
.hero-copy{max-width:560px;}
.hero-banner h1{font-size:52px;}
.hero-banner .chips,.hero-banner .hero-cta{justify-content:flex-start;}
.hero-banner .rating{text-align:left;}
.hero-photo{position:relative;}
.hero-photo>img{display:block;width:100%;max-height:520px;aspect-ratio:5/6;object-fit:cover;border-radius:22px;box-shadow:0 22px 50px rgba(226,123,160,.26);}
.promo-sticker{position:absolute;right:-14px;bottom:26px;transform:rotate(-9deg);background:var(--magenta);color:#fff;width:120px;height:120px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 12px 28px rgba(0,0,0,.22);border:3px solid #fff;}
.promo-sticker b{font-size:30px;font-family:'Playfair Display',serif;line-height:1;margin:2px 0;}
.promo-sticker span{font-size:9.5px;letter-spacing:1.5px;font-weight:600;}
@media(max-width:900px){
  .hero-banner{grid-template-columns:1fr;text-align:center;}
  .hero-copy{max-width:none;}
  .hero-banner .chips,.hero-banner .hero-cta{justify-content:center;}
  .hero-banner .rating{text-align:center;}
  .hero-photo{max-width:360px;margin:12px auto 0;}
  .promo-sticker{width:96px;height:96px;} .promo-sticker b{font-size:24px;}
}

/* ===== Stock photos: service cards, service banners, about ===== */
.card .cardimg{height:172px;border-radius:14px;overflow:hidden;margin-bottom:16px;}
.card .cardimg img{width:100%;height:100%;object-fit:cover;transition:.35s;}
.card:hover .cardimg img{transform:scale(1.05);}
.svc-banner{margin:0 0 -6px;}
.svc-banner img{width:100%;height:360px;object-fit:cover;border-radius:22px;box-shadow:0 16px 40px rgba(226,123,160,.18);}
.about-img{margin:4px 0 24px;}
.about-img img{width:100%;height:380px;object-fit:cover;border-radius:20px;box-shadow:0 16px 40px rgba(226,123,160,.18);}
@media(max-width:560px){.svc-banner img{height:230px;}.about-img img{height:240px;}}

/* ===== Cute illustrations (replace photos): show fully on soft pink ===== */
.card .cardimg{background:#FBE6EF;}
.card .cardimg img{object-fit:contain;}
.card:hover .cardimg img{transform:none;}
.svc-banner img{object-fit:contain;background:#FBE6EF;height:300px;}
.about-img img{object-fit:contain;background:#FBE6EF;height:300px;}
.hero-photo>img{object-fit:cover;box-shadow:0 22px 50px rgba(226,123,160,.22);}
