:root{
  --bg:#fffaf7;
  --surface:rgba(255,255,255,.76);
  --surface-strong:#fff5ef;
  --surface-dark:#402a32;
  --text:#2f2430;
  --muted:#73656f;
  --line:rgba(118,90,108,.16);
  --brand:#b76c8b;
  --brand-deep:#7d4760;
  --brand-soft:#f3d7df;
  --accent:#d7a45b;
  --safe:#f8eee9;
  --shadow:0 22px 60px rgba(88,52,69,.10);
  --radius:28px;
  --radius-sm:20px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at top left, #fff5f0 0%, transparent 34%),radial-gradient(circle at 85% 15%, #f8ebf1 0%, transparent 22%),linear-gradient(180deg,#fffdfb 0%,#fff8f5 100%);line-height:1.65}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}p{margin:.15rem 0 1rem}ul{margin:.35rem 0 1rem;padding-left:1.1rem}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(140deg, rgba(255,255,255,.2), rgba(255,255,255,0) 35%),linear-gradient(330deg, rgba(243,215,223,.12), rgba(243,215,223,0) 40%)}
.topbar{padding:.75rem 1rem;background:#fff3ef;color:var(--brand-deep);text-align:center;font-size:.92rem;border-bottom:1px solid var(--line)}
.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;background:rgba(255,250,247,.78);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.site-header.simple{position:static}
.brand{display:flex;gap:.9rem;align-items:center;min-width:0}.brand-mark{width:54px;height:54px;border-radius:18px;background:linear-gradient(145deg,#f8dce5,#fff8f3);border:1px solid rgba(183,108,139,.18);display:grid;place-items:center;box-shadow:var(--shadow);font-family:"Georgia",serif;font-size:1.35rem;color:var(--brand-deep)}
.brand strong{display:block;font-size:1rem}.brand span{display:block;font-size:.92rem;color:var(--muted)}
nav{display:flex;gap:1rem;color:var(--muted)}nav a:hover,.text-link:hover{text-decoration:underline}
.header-actions,.hero-actions,.inline-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.96rem 1.22rem;border-radius:999px;background:linear-gradient(135deg,var(--brand-deep),#a15b79);color:#fff;border:1px solid transparent;font-weight:700;box-shadow:0 16px 34px rgba(125,71,96,.18);transition:.2s ease}
.btn:hover{transform:translateY(-1px)}
.btn-secondary{background:rgba(255,255,255,.74);color:var(--text);border-color:var(--line);box-shadow:none}.btn-ghost{background:transparent;color:var(--brand-deep);border:1px solid rgba(183,108,139,.28);box-shadow:none}
main{overflow:hidden}
.hero-shell{max-width:var(--max);margin:0 auto;padding:1.2rem 1.2rem 0}
.hero{display:grid;grid-template-columns:1.08fr .92fr;gap:1.5rem;align-items:stretch}
.hero-copy,.hero-visual,.card,.band-item,.review-card,.price-row,.info-card,.faq-item,.mini-panel{border:1px solid var(--line);background:var(--surface);backdrop-filter:blur(12px);box-shadow:var(--shadow)}
.hero-copy{padding:3.2rem;border-radius:36px;position:relative;overflow:hidden}.hero-copy:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle,#f3d7df 0%,rgba(243,215,223,0) 70%)}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:800;color:var(--brand);margin:0 0 .55rem}
.hero h1{font-size:clamp(2.5rem,5vw,5rem);line-height:.98;margin:.1rem 0 1rem;font-family:"Georgia",serif;font-weight:700;max-width:11ch}
.lead{font-size:1.1rem;color:var(--muted);max-width:60ch}
.pill-row,.trust-pills{display:flex;gap:.7rem;flex-wrap:wrap;list-style:none;padding:0;margin:1rem 0 0}.pill-row li,.trust-pills li{padding:.58rem .82rem;border-radius:999px;background:rgba(255,255,255,.84);border:1px solid var(--line);font-weight:600}
.hero-visual{border-radius:36px;padding:1.25rem;display:grid;gap:1rem;align-content:start;background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,245,239,.84))}
.orb{min-height:330px;border-radius:30px;background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.92), rgba(255,255,255,.12) 26%),radial-gradient(circle at 68% 38%, rgba(215,164,91,.28), rgba(215,164,91,0) 22%),radial-gradient(circle at 45% 68%, rgba(183,108,139,.22), rgba(183,108,139,0) 25%),linear-gradient(145deg,#fdeee8,#f5e3ea 55%,#fdf8f5 100%);position:relative;overflow:hidden}
.orb:before,.orb:after{content:"";position:absolute;border-radius:999px;filter:blur(2px)}.orb:before{width:220px;height:220px;right:-35px;top:18px;background:rgba(255,255,255,.48)}.orb:after{width:170px;height:170px;left:30px;bottom:18px;background:rgba(255,255,255,.36)}
.orb-copy{position:absolute;left:28px;bottom:30px;max-width:260px}.orb-copy strong{display:block}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.stat-grid .mini-panel{padding:1rem;border-radius:22px}.mini-panel strong{display:block;font-size:1.22rem}.mini-panel span{color:var(--muted);font-size:.94rem}
.section{max-width:var(--max);margin:0 auto;padding:2rem 1.2rem}.section.narrow{max-width:920px}.section-head{margin-bottom:1rem}.section h2{font-family:"Georgia",serif;font-size:clamp(1.9rem,3vw,3rem);line-height:1.06;margin:.1rem 0 .5rem}.section-intro{max-width:66ch;color:var(--muted)}
.band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.band-item{padding:1.1rem;border-radius:24px}.band-item strong{display:block;font-size:1.08rem;margin-bottom:.25rem}.band-item span{color:var(--muted);font-size:.95rem}
.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{padding:1.3rem;border-radius:28px}.soft{background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,245,239,.92))}
.service-card h3,.review-card strong,.info-card strong,.card h3{margin-top:0}.price-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.1rem;border-radius:20px}.price-row span{color:var(--muted)}
.review-highlight{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem}.stars{letter-spacing:.18em;color:var(--accent);font-size:.95rem;margin-bottom:.8rem}.review-card{padding:1.3rem;border-radius:28px}.review-card p{font-size:1.03rem}.review-meta{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.95rem}
.cta-strip{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.5rem;border-radius:30px;background:linear-gradient(135deg,#4b313d,#7d4760);color:#fff;box-shadow:var(--shadow)}
.info-card{padding:1.3rem;border-radius:24px}.faq-list{display:grid;gap:1rem}.faq-item{padding:1.15rem 1.2rem;border-radius:22px}.faq-item summary{cursor:pointer;font-weight:700;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item p{margin-top:.8rem;color:var(--muted)}
.footer{max-width:var(--max);margin:0 auto;padding:0 1.2rem 6rem}.footer-box{padding:1.3rem 1.4rem;border-radius:28px;background:rgba(255,255,255,.72);border:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.footer-box p,.footer-box a{color:var(--muted)}
.mobile-bar{display:none}
@media (max-width:980px){nav{display:none}.hero,.review-highlight,.grid.two,.grid.three,.band,.stat-grid,.footer-box{grid-template-columns:1fr;display:grid}.site-header{flex-wrap:wrap}.header-actions{width:100%}.header-actions .btn{flex:1}.cta-strip{display:grid}.mobile-bar{display:grid;grid-template-columns:1fr 1.6fr;gap:.7rem;position:fixed;left:0;right:0;bottom:0;padding:.8rem;background:rgba(255,250,247,.95);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:45}.mobile-bar a{padding:.96rem 1rem;border-radius:999px;text-align:center;font-weight:700;background:#fff;border:1px solid var(--line)}.mobile-bar a.primary{background:linear-gradient(135deg,var(--brand-deep),#a15b79);color:#fff;border-color:transparent}body{padding-bottom:5.7rem}}
@media (max-width:640px){.topbar{font-size:.82rem}.site-header{padding:.9rem 1rem}.hero-shell,.section,.footer{padding-left:1rem;padding-right:1rem}.hero-copy,.hero-visual,.card,.review-card,.info-card,.band-item,.footer-box{border-radius:24px}.hero-copy{padding:2rem 1.2rem}.hero h1{font-size:2.5rem;max-width:none}.orb{min-height:260px}.btn{width:100%}.hero-actions,.inline-actions{width:100%}}


.desktop-nav {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-left: auto;
  margin-right: 18px;
}
.desktop-nav a {
  color: var(--text);
  text-decoration: none;
  font-size: 0.96rem;
}
.desktop-nav a:hover { opacity: .75; }

/* Hard rule: text in all cards/blocks centered */
.service-card, .review-card, .quote-card, .info-card, .contact-card, .hours-card, .detail-card, .surface, .price-row, .band-item, .faq-item, .cta-band, .footer, .summary-score, .summary-copy, .note-card {
  text-align: center !important;
}
.service-card *, .review-card *, .quote-card *, .info-card *, .contact-card *, .hours-card *, .detail-card *, .surface *, .price-row *, .band-item *, .faq-item *, .cta-band *, .footer *, .summary-score *, .summary-copy *, .note-card * {
  text-align: center !important;
}
@media (max-width: 900px) {
  .desktop-nav { display: none; }
}


.mobile-menu {
  display: none;
  position: relative;
  margin-left: auto;
  flex: 0 0 auto;
}
.mobile-menu summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.08);
  background: #fff;
  font-size: 0.85rem;
}
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 190px;
  background: #fffdfb;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  padding: 10px;
  display: grid;
  gap: 6px;
  z-index: 20;
}
.mobile-menu-panel a {
  padding: 10px 12px;
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  text-align: center;
}
.mobile-menu-panel a:hover { background: rgba(0,0,0,0.04); }
@media (max-width: 900px) {
  .mobile-menu { display: block; }
  .desktop-nav { display: none !important; }
}


/* final center consistency */
.section-title, .section-subtitle, .eyebrow, .lead, .card, .card p, .card h2, .card h3, .card h4,
.review-card, .review-card p, .review-card h3, .info-card, .info-card p, .band-item, .band-item p,
.footer-box, .footer-box p, .price-row, .price-row * {
  text-align: center !important;
}


/* Rainbowtouch pricing alignment fix */
.price-row {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  align-items: center !important;
  gap: 16px !important;
  text-align: left !important;
}
.price-row .price-copy {
  text-align: center !important;
}
.price-row .price-copy strong,
.price-row .price-copy p {
  display: block;
  text-align: center !important;
}
.price-row .price-value {
  text-align: right !important;
  min-width: 92px;
}
@media (max-width: 640px) {
  .price-row {
    grid-template-columns: 1fr auto !important;
    gap: 12px !important;
  }
  .price-row .price-copy {
    text-align: left !important;
  }
  .price-row .price-copy strong,
  .price-row .price-copy p {
    text-align: left !important;
  }
  .price-row .price-value {
    text-align: right !important;
    min-width: 80px;
  }
}
