:root{--purple:#6b319f;--purple-dark:#3d155e;--lilac-soft:#f8f3fb;--gold:#c99a3b;--ink:#2d2136;--shadow:0 18px 50px rgba(61,21,94,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;background:radial-gradient(circle at 15% 5%,rgba(203,167,224,.22),transparent 28%),radial-gradient(circle at 90% 30%,rgba(199,154,59,.12),transparent 24%),#fff}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
.hero{min-height:92vh;display:grid;place-items:center;padding:50px 20px;position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(244,231,251,.95));border-bottom:1px solid rgba(107,49,159,.15)}
.hero:before,.hero:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(201,154,59,.28);border-radius:50%}.hero:before{left:-210px;top:-130px}.hero:after{right:-210px;bottom:-150px}.hero-inner{width:min(820px,100%);text-align:center;position:relative;z-index:1}.logo{width:min(390px,75vw);margin:0 auto 18px;border-radius:50%;box-shadow:0 18px 45px rgba(73,32,98,.14)}
.eyebrow,.kicker{color:var(--purple);text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;font-weight:700}.light{color:#ecdff6}h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif}h1{margin:.2em 0 .15em;font-size:clamp(2.6rem,7vw,5rem);color:var(--purple-dark)}.hero-copy{max-width:640px;margin:0 auto 28px;font-size:1.05rem;line-height:1.8}.hero-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.btn{padding:14px 24px;border-radius:999px;font-weight:700;transition:.2s ease}.btn-primary{background:linear-gradient(135deg,var(--purple),#8a52ba);color:white;box-shadow:0 10px 28px rgba(107,49,159,.25)}.btn-secondary{border:1px solid rgba(107,49,159,.28);background:rgba(255,255,255,.72)}.btn:hover{transform:translateY(-2px)}.quick-info{margin-top:28px;display:flex;justify-content:center;gap:10px 18px;flex-wrap:wrap;font-size:.9rem;color:#5f4c6d}
.section{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:82px 0}.section-heading{text-align:center;max-width:760px;margin:0 auto 38px}.section-heading h2,.review h2,.contact h2{font-size:clamp(2.2rem,5vw,3.7rem);color:var(--purple-dark);margin:.18em 0}.section-heading p{line-height:1.7;color:#665b6d}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{border:1px solid rgba(107,49,159,.13);border-radius:24px;padding:28px 22px;background:linear-gradient(180deg,#fff,var(--lilac-soft));box-shadow:var(--shadow);text-align:center}.service-icon{width:52px;height:52px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;color:var(--gold);border:1px solid rgba(201,154,59,.45);font-size:1.5rem}.service-card h3{font-size:1.65rem;margin:8px 0;color:var(--purple)}.service-card p{font-size:.92rem;line-height:1.65;color:#665b6d}
.prices{width:100%;max-width:none;padding-left:max(16px,calc((100% - 1180px)/2));padding-right:max(16px,calc((100% - 1180px)/2));background:linear-gradient(180deg,#faf7fc,#f4eaf9);border-top:1px solid rgba(107,49,159,.1);border-bottom:1px solid rgba(107,49,159,.1)}.price-columns{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.price-card{background:rgba(255,255,255,.9);border-radius:26px;padding:26px;border:1px solid rgba(107,49,159,.14);box-shadow:var(--shadow)}.price-card h3{color:var(--purple);font-size:2rem;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid rgba(201,154,59,.35)}.price-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;padding:12px 0;border-bottom:1px dotted rgba(107,49,159,.18);align-items:end}.price-row span:nth-child(2){color:#806d8d;font-size:.9rem}.price-row strong{color:var(--purple-dark)}.refill{margin-top:16px;padding:14px 16px;border-radius:16px;background:var(--lilac-soft);display:flex;gap:8px 18px;flex-wrap:wrap}.refill b{color:var(--purple);width:100%}.subhead{margin-bottom:10px;color:#6a5c72}
.review{display:grid;grid-template-columns:.85fr 1.15fr;gap:42px;align-items:center}.review-copy p{line-height:1.8;color:#665b6d}.review-image-wrap{padding:12px;background:#fff;border-radius:24px;border:1px solid rgba(107,49,159,.16);box-shadow:var(--shadow)}.review-image-wrap img{border-radius:16px}.contact{padding-top:28px}.contact-card{padding:34px;border-radius:28px;color:white;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.15),transparent 25%),linear-gradient(135deg,var(--purple-dark),var(--purple));display:grid;grid-template-columns:1fr 1fr;gap:28px;box-shadow:0 20px 55px rgba(61,21,94,.22)}.contact-card h2{color:#fff;margin-bottom:4px}.contact-details{display:grid;gap:11px;align-content:center}.contact-details a,.contact-details span{padding:12px 14px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.07)}footer{text-align:center;padding:46px 20px 56px;color:#76687f}footer img{width:110px;border-radius:50%;margin:0 auto 14px}
@media(max-width:900px){.service-grid{grid-template-columns:repeat(2,1fr)}.review{grid-template-columns:1fr}}@media(max-width:680px){.hero{min-height:auto;padding:36px 18px 56px}.logo{width:min(300px,78vw)}.section{padding:58px 0}.service-grid,.price-columns,.contact-card{grid-template-columns:1fr}.price-row{grid-template-columns:1fr auto}.price-row span:nth-child(2){grid-column:1}.price-row strong{grid-column:2;grid-row:1}.contact-card{padding:26px 20px}.review{gap:24px}}


.poster-section{
  padding-top: 30px;
}
.poster-card{
  max-width: 820px;
  margin: 0 auto;
  background: linear-gradient(180deg, #fff, #faf5fd);
  border: 1px solid rgba(107,49,159,.14);
  border-radius: 26px;
  padding: 18px;
  box-shadow: var(--shadow);
  text-align: center;
}
.poster-card a{
  display: block;
}
.poster-card img{
  width: 100%;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(61,21,94,.12);
}
.poster-note{
  margin: 14px 0 4px;
  color: #6c5a79;
  font-size: .95rem;
}

.legal-page{max-width:900px;margin:0 auto;padding:48px 20px 70px}
.legal-page .back-link{display:inline-block;margin-bottom:24px;color:var(--purple);font-weight:700}
.legal-box{background:#fff;border:1px solid rgba(107,49,159,.14);border-radius:24px;padding:28px;box-shadow:var(--shadow)}
.legal-box h1{font-size:clamp(2.4rem,6vw,4rem);margin-top:0}
.legal-box h2{font-size:1.7rem;color:var(--purple);margin-top:28px}
.legal-box p,.legal-box li{line-height:1.75;color:#574c60}
.legal-note{margin-top:22px;padding:14px 16px;border-radius:14px;background:#fff7e6;border:1px solid #e5c16b;color:#684f13}
.legal-links{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.legal-links a{color:var(--purple);font-weight:700}


/* ---- V4 Mobile design refinement ---- */
h1,h2,h3{
  line-height:1.06;
}
.section{
  width:min(1180px,calc(100% - 26px));
}
.section-heading{
  margin:0 auto 30px;
}
.section-heading p,
.hero-copy{
  max-width:760px;
}

.service-grid{
  gap:20px;
}
.service-card{
  padding:26px 20px;
}
.service-card h3{
  color:var(--purple-dark);
}

.poster-card{
  max-width:760px;
}

.review{
  gap:30px;
}
.review-image-wrap{
  overflow:hidden;
}

.contact{
  padding-top:34px;
}
.contact-card{
  color:var(--ink);
  background:linear-gradient(180deg,#ffffff,#fbf7fd);
  border:1px solid rgba(107,49,159,.14);
  box-shadow:var(--shadow);
  grid-template-columns:.95fr 1.05fr;
}
.contact-card h2{
  color:var(--purple-dark);
  margin-bottom:10px;
}
.contact-intro p{
  margin:0;
  color:#6b6074;
  line-height:1.8;
}
.contact-badges{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}
.contact-badges span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border-radius:999px;
  background:var(--lilac-soft);
  color:var(--purple);
  border:1px solid rgba(107,49,159,.14);
  font-weight:700;
  font-size:.92rem;
}
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.contact-item{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-height:86px;
  padding:16px 16px 15px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(107,49,159,.12);
  box-shadow:0 8px 24px rgba(61,21,94,.06);
}
.contact-icon{
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg,#f6effb,#fff);
  color:var(--purple);
  border:1px solid rgba(201,154,59,.38);
  font-size:1.15rem;
  font-weight:700;
}
.contact-copy{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.contact-copy strong{
  color:var(--purple-dark);
  font-size:1rem;
}
.contact-copy small{
  color:#665b6d;
  font-size:.92rem;
  line-height:1.45;
  word-break:break-word;
}
.contact-item:hover{
  transform:translateY(-1px);
}

footer{
  padding-top:36px;
}
footer p{
  margin:10px auto;
  max-width:920px;
}
.legal-links{
  margin-top:6px;
}

@media (max-width:900px){
  .contact-card{
    grid-template-columns:1fr;
    gap:22px;
  }
}

@media (max-width:680px){
  .hero{
    padding:26px 14px 44px;
  }
  .hero-inner{
    width:100%;
  }
  .logo{
    width:min(280px,76vw);
    margin-bottom:14px;
  }
  h1{
    font-size:clamp(2.35rem,12vw,4rem);
  }
  .hero-copy{
    font-size:1rem;
    line-height:1.7;
    margin-bottom:22px;
  }
  .quick-info{
    gap:8px 10px;
    font-size:.88rem;
  }
  .quick-info span{
    width:100%;
    text-align:center;
  }

  .section{
    width:min(100%,calc(100% - 18px));
    padding:46px 0;
  }

  .section-heading{
    margin-bottom:24px;
  }

  .section-heading h2,
  .review h2,
  .contact h2{
    font-size:clamp(1.95rem,10.4vw,2.7rem);
    line-height:1.04;
  }

  .section-heading p{
    font-size:1rem;
    line-height:1.65;
  }

  .service-grid{
    gap:14px;
  }
  .service-card{
    padding:22px 16px;
    border-radius:22px;
  }
  .service-icon{
    width:48px;
    height:48px;
    font-size:1.35rem;
    margin-bottom:12px;
  }
  .service-card h3{
    font-size:1.45rem;
    margin-bottom:8px;
  }
  .service-card p{
    font-size:1rem;
    line-height:1.6;
  }

  .poster-section{
    padding-top:18px;
  }
  .poster-card{
    padding:12px;
    border-radius:20px;
  }
  .poster-card img{
    border-radius:14px;
  }
  .poster-note{
    font-size:.9rem;
  }

  .price-columns{
    gap:16px;
  }
  .price-card{
    padding:18px 16px 20px;
    border-radius:22px;
  }
  .price-card h3{
    font-size:1.75rem;
    margin-bottom:12px;
  }
  .subhead{
    font-size:1.05rem;
  }
  .price-row{
    gap:6px 10px;
    padding:10px 0;
  }
  .price-row span:first-child{
    font-size:.98rem;
    line-height:1.4;
  }
  .price-row span:nth-child(2){
    font-size:.88rem;
    line-height:1.3;
  }
  .price-row strong{
    font-size:1rem;
  }
  .refill{
    gap:8px 12px;
    padding:12px 14px;
  }

  .review{
    gap:20px;
  }
  .review-copy p{
    line-height:1.7;
  }
  .review-image-wrap{
    padding:10px;
    border-radius:20px;
  }
  .review-image-wrap img{
    border-radius:14px;
  }

  .contact-card{
    padding:22px 14px 16px;
    border-radius:22px;
  }
  .contact-badges{
    gap:8px;
    margin-top:14px;
  }
  .contact-badges span{
    padding:7px 12px;
    font-size:.85rem;
  }
  .contact-grid{
    grid-template-columns:1fr;
    gap:10px;
  }
  .contact-item{
    min-height:auto;
    padding:14px 12px;
    border-radius:16px;
  }
  .contact-icon{
    width:38px;
    height:38px;
    flex-basis:38px;
    font-size:1rem;
  }
  .contact-copy strong{
    font-size:.96rem;
  }
  .contact-copy small{
    font-size:.9rem;
  }

  footer{
    padding:34px 16px 50px;
  }
  footer img{
    width:92px;
    margin-bottom:10px;
  }
}
