:root{
  --indigo:#1c1247;
  --royal:#2a1f6b;
  --purple:#5b2a9d;
  --violet:#7c3aed;
  --orchid:#a855f7;
  --lavender:#c4b5fd;
  --mist:#ede9fe;
  --blue:#1e3a8a;
  --sky:#3b6fd4;
  --gold:#d4af37;
  --ink:#211a3a;
  --paper:#fbfaff;
  --soft:#f4f1fb;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Montserrat',sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.7;
  font-weight:300;
}
h1,h2,h3,h4{font-family:'Cormorant Garamond',serif;font-weight:600;line-height:1.15;color:var(--indigo);}
a{color:var(--purple);text-decoration:none;transition:.25s;}
a:hover{color:var(--violet);}
.container{max-width:1120px;margin:0 auto;padding:0 24px;}

/* Header */
.site-header{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  padding:18px 32px;
  background:linear-gradient(120deg,var(--indigo),var(--royal) 55%,var(--purple));
  position:sticky;top:0;z-index:50;
  box-shadow:0 2px 24px rgba(28,18,71,.35);
}
.brand-link{display:flex;align-items:center;gap:10px;}
.brand-mark{color:var(--gold);font-size:1.4rem;}
.brand-text{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:600;color:#fff;letter-spacing:.5px;}
.brand-tag{color:var(--lavender);font-size:.72rem;letter-spacing:2px;text-transform:uppercase;margin-top:2px;}
.site-nav{display:flex;gap:28px;}
.site-nav a{color:var(--mist);font-size:.85rem;letter-spacing:1px;text-transform:uppercase;font-weight:400;padding-bottom:4px;border-bottom:2px solid transparent;}
.site-nav a:hover,.site-nav a.active{color:#fff;border-bottom-color:var(--gold);}
.nav-toggle,.nav-toggle-label{display:none;}

/* Hero */
.hero{
  min-height:78vh;background-size:cover;background-position:center;
  display:flex;align-items:center;
  color:#fff;text-align:center;
}
.hero-inner{max-width:780px;margin:0 auto;padding:80px 24px;}
.hero-eyebrow{text-transform:uppercase;letter-spacing:4px;font-size:.8rem;color:var(--lavender);margin-bottom:18px;}
.hero h1{font-size:4.4rem;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.4);}
.hero-sub{font-size:1.2rem;font-weight:300;margin:22px auto 34px;max-width:620px;color:#f3f0ff;}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* Buttons */
.btn{display:inline-block;padding:14px 34px;border-radius:40px;font-size:.85rem;letter-spacing:1.5px;text-transform:uppercase;font-weight:500;transition:.3s;}
.btn-primary{background:linear-gradient(120deg,var(--violet),var(--orchid));color:#fff;box-shadow:0 8px 24px rgba(124,58,237,.45);}
.btn-primary:hover{transform:translateY(-3px);color:#fff;box-shadow:0 12px 30px rgba(124,58,237,.6);}
.btn-ghost{border:2px solid #fff;color:#fff;}
.btn-ghost:hover{background:#fff;color:var(--indigo);}

/* Sections */
section{padding:84px 0;}
.section-kicker{display:block;text-transform:uppercase;letter-spacing:3px;font-size:.8rem;color:var(--violet);margin-bottom:12px;font-weight:500;}
.welcome{text-align:center;background:var(--paper);}
.welcome h2{font-size:2.8rem;margin-bottom:24px;}
.welcome p{max-width:760px;margin:0 auto 18px;color:#473f63;font-size:1.05rem;}
.welcome strong{color:var(--purple);font-weight:600;}

/* Highlights */
.highlights{background:linear-gradient(180deg,var(--soft),#fff);}
.highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.highlight-card{
  background:#fff;border-radius:18px;padding:40px 30px;text-align:center;
  box-shadow:0 10px 40px rgba(91,42,157,.10);
  border-top:4px solid var(--orchid);transition:.3s;
}
.highlight-card:hover{transform:translateY(-6px);box-shadow:0 18px 50px rgba(91,42,157,.20);}
.hi-icon{font-size:2.4rem;display:block;margin-bottom:14px;}
.highlight-card h3{font-size:1.7rem;margin-bottom:10px;}
.highlight-card p{color:#564d70;font-size:.98rem;}

/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--blue),var(--purple) 60%,var(--violet));color:#fff;text-align:center;}
.cta-band h2{color:#fff;font-size:3rem;}
.cta-band p{margin:14px auto 28px;max-width:540px;color:#ede9fe;font-size:1.1rem;}

/* Generic page */
.page-hero{
  background:linear-gradient(120deg,var(--indigo),var(--purple));
  color:#fff;text-align:center;padding:90px 24px 80px;
}
.page-hero h1{color:#fff;font-size:3.6rem;}
.page-hero p{color:var(--lavender);max-width:640px;margin:14px auto 0;font-size:1.1rem;}

/* About */
.about-block{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;}
.about-block img{width:100%;border-radius:18px;box-shadow:0 16px 50px rgba(28,18,71,.28);}
.about-text h2{font-size:2.4rem;margin-bottom:18px;}
.about-text p{color:#473f63;margin-bottom:16px;}
.about-block.reverse{direction:rtl;}
.about-block.reverse>*{direction:ltr;}

/* Services list */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
.svc-card{background:#fff;border-radius:18px;padding:36px;box-shadow:0 10px 40px rgba(91,42,157,.10);border-left:5px solid var(--violet);}
.svc-card h3{font-size:1.8rem;margin-bottom:10px;color:var(--purple);}
.svc-card p{color:#564d70;}
.svc-card .price{display:inline-block;margin-top:14px;color:var(--violet);font-weight:600;letter-spacing:.5px;font-family:'Cormorant Garamond',serif;font-size:1.3rem;}
.svc-note{text-align:center;max-width:720px;margin:46px auto 0;color:#564d70;font-style:italic;}

/* Love page */
.soliloquy{max-width:780px;margin:0 auto;}
.soliloquy h2{font-size:2.6rem;text-align:center;margin-bottom:8px;}
.soliloquy .sub{text-align:center;color:var(--violet);letter-spacing:2px;text-transform:uppercase;font-size:.8rem;margin-bottom:40px;clear:both;position:relative;z-index:2;}
.soliloquy p{font-family:'Cormorant Garamond',serif;font-size:1.5rem;line-height:1.7;color:#352b54;margin-bottom:26px;font-weight:400;}
.soliloquy p:first-letter{}
.drop .sub+p{clear:both;}
.drop .sub+p::first-letter{font-size:3.6rem;float:left;line-height:.85;padding:8px 14px 0 0;color:var(--orchid);font-weight:600;}
.divider{text-align:center;color:var(--gold);font-size:1.6rem;margin:48px 0;letter-spacing:8px;}
.blessing{background:linear-gradient(160deg,var(--soft),#fff);border-radius:22px;padding:54px 48px;box-shadow:0 14px 50px rgba(91,42,157,.12);border:1px solid var(--mist);}
.blessing h3{text-align:center;font-size:2.2rem;margin-bottom:26px;}
.blessing p{font-family:'Cormorant Garamond',serif;font-size:1.45rem;line-height:1.7;color:#352b54;text-align:center;margin-bottom:20px;font-style:italic;}

/* Contact */
.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;}
.contact-info h3{font-size:2rem;margin-bottom:16px;}
.contact-info p{color:#473f63;margin-bottom:14px;}
.contact-info .ci-item{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px;}
.contact-info .ci-item span{font-size:1.3rem;color:var(--violet);}
.contact-form{background:#fff;border-radius:18px;padding:38px;box-shadow:0 12px 44px rgba(91,42,157,.14);}
.contact-form label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:1px;color:var(--purple);margin:0 0 6px;font-weight:500;}
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%;padding:13px 15px;border:1.5px solid var(--mist);border-radius:10px;
  margin-bottom:18px;font-family:inherit;font-size:.95rem;color:var(--ink);background:var(--paper);transition:.2s;
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(124,58,237,.15);}
.contact-form textarea{min-height:120px;resize:vertical;}
.contact-form .btn{border:none;cursor:pointer;width:100%;}

/* Footer */
.site-footer{background:var(--indigo);color:#cfc6ec;padding:60px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;}
.footer-brand{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:#fff;margin-left:6px;}
.site-footer h4{color:#fff;font-size:1.3rem;margin-bottom:14px;}
.site-footer a{display:block;color:#cfc6ec;font-size:.92rem;margin-bottom:8px;}
.site-footer a:hover{color:var(--orchid);}
.site-footer p{font-size:.92rem;margin-bottom:8px;}
.copyright{text-align:center;border-top:1px solid rgba(255,255,255,.12);margin-top:44px;padding:22px;font-size:.82rem;color:#9a8fc4;}

/* Responsive */
@media(max-width:860px){
  .nav-toggle-label{display:block;cursor:pointer;width:30px;height:24px;position:relative;}
  .nav-toggle-label span,.nav-toggle-label span::before,.nav-toggle-label span::after{
    display:block;position:absolute;height:3px;width:30px;background:#fff;border-radius:3px;transition:.3s;content:'';
  }
  .nav-toggle-label span{top:11px;}
  .nav-toggle-label span::before{top:-9px;}
  .nav-toggle-label span::after{top:9px;}
  .site-nav{display:none;flex-direction:column;width:100%;gap:0;margin-top:16px;}
  .nav-toggle:checked~.site-nav{display:flex;}
  .site-nav a{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);}
  .hero h1{font-size:2.8rem;}
  .highlight-grid,.svc-grid,.about-block,.contact-wrap,.footer-grid{grid-template-columns:1fr;}
  .about-block.reverse{direction:ltr;}
  .blessing{padding:36px 24px;}
  .soliloquy p{font-size:1.3rem;}
}

/* ---------- FAQ ---------- */
.faq-wrap{
  max-width: 860px;
  margin: 0 auto;
}
.faq-item{
  background: #fff;
  border: 1px solid var(--mist);
  border-radius: 16px;
  margin-bottom: 1rem;
  padding: 0 1.6rem;
  box-shadow: 0 6px 24px rgba(28,18,71,0.06);
  transition: box-shadow .25s ease, border-color .25s ease;
}
.faq-item[open]{
  border-color: var(--lavender);
  box-shadow: 0 10px 34px rgba(91,42,157,0.14);
}
.faq-item summary{
  list-style: none;
  cursor: pointer;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--royal);
  padding: 1.25rem 2.5rem 1.25rem 0;
  position: relative;
  outline: none;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  font-size: 1.7rem;
  line-height: 1;
  color: var(--gold);
  transition: transform .25s ease;
}
.faq-item[open] summary::after{
  content: "\2212";
  color: var(--purple);
}
.faq-item summary:hover{ color: var(--purple); }
.faq-answer{
  padding: 0 0 1.4rem;
  border-top: 1px solid var(--soft);
}
.faq-answer p{
  margin: 1rem 0 0;
  color: var(--ink);
  line-height: 1.75;
}
.faq-edit-note{
  font-size: 0.82rem !important;
  color: var(--orchid) !important;
  font-style: italic;
  background: var(--soft);
  border-left: 3px solid var(--lavender);
  padding: 0.6rem 0.9rem !important;
  border-radius: 6px;
  margin-top: 0.9rem !important;
}
.faq-cta-note{
  text-align: center;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.35rem;
  color: var(--royal);
  margin: 2.5rem 0 1.2rem;
}
@media (max-width: 600px){
  .faq-item summary{ font-size: 1.25rem; }
}

/* FAQ bulleted list */
.faq-list{
  margin: 0.8rem 0 0;
  padding: 0;
  list-style: none;
}
.faq-list li{
  position: relative;
  padding: 0.4rem 0 0.4rem 1.6rem;
  color: var(--ink);
  line-height: 1.65;
  border-bottom: 1px solid var(--soft);
}
.faq-list li:last-child{ border-bottom: none; }
.faq-list li::before{
  content: "\2766";
  position: absolute;
  left: 0;
  top: 0.4rem;
  color: var(--gold);
  font-size: 1rem;
}
.faq-list li strong{ color: var(--royal); }
