@charset "UTF-8";
:root {
    --canvas:#f7f3ff;
    --paper:#fffdfd;
    --violet:#704da6;
    --violet-deep:#5c418e;
    --text:#4e5779;
    --soft:#6b7191;
    --border:#dcd0ef;
    --lime:#e0ee9a;
    --orange:#f7a36c;
    --lavender:#ede3fa;
    --rose:#fff1f6;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--canvas); font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif; color:var(--text); line-height:1.66; }
a { color:var(--violet); text-underline-offset:4px; }
a:hover { color:var(--violet-deep); }
a:focus-visible { outline:3px solid #e17d52; outline-offset:4px; }
a:active { transform:translateY(1px); }
.wrap { width:calc(100% - 84px); max-width:1260px; margin-inline:auto; }
h1,h2,h3,p { margin-top:0; }
h1 { color:var(--violet-deep); font-size:40px; letter-spacing:-.036em; line-height:1.18; font-weight:840; margin-bottom:18px; }
h2 { color:var(--violet-deep); font-size:28px; letter-spacing:-.025em; line-height:1.24; font-weight:800; margin-bottom:16px; }
h3 { color:var(--violet); font-size:20px; line-height:1.3; font-weight:780; margin-bottom:9px; }
p { font-size:16px; line-height:1.7; margin-bottom:15px; }
p:last-child { margin-bottom:0; }
.prehead { background:var(--lime); border-bottom:1px solid #c6d982; }
.prehead-inner { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-block:8px; }
.prehead span { font-size:12px; font-weight:760; color:var(--violet-deep); }
.header { background:var(--paper); border-bottom:2px solid var(--border); }
.header-inner { display:flex; justify-content:space-between; align-items:center; gap:30px; min-height:98px; }
.brand { display:inline-flex; align-items:center; gap:12px; flex:0 0 auto; text-decoration:none; font-size:24px; font-weight:850; letter-spacing:-.035em; color:var(--violet-deep); }
.brand-disc { position:relative; flex:0 0 41px; width:41px; height:41px; border:3px solid var(--violet); border-radius:12px; background:var(--canvas); }
.brand-disc::before { content:""; position:absolute; width:19px; height:19px; border:3px solid var(--violet); border-radius:50%; left:8px; top:8px; }
.brand-disc::after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; background:var(--orange); left:14px; top:7px; }
.nav { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:11px 27px; }
.nav a { font-size:14px; text-decoration:none; font-weight:770; color:var(--violet-deep); border-bottom:2px solid transparent; padding:10px 0; white-space:nowrap; }
.nav a[aria-current="page"],.nav a:hover { border-color:var(--orange); }
.section { padding:45px 0 49px; }
.section + .section { border-top:1px solid var(--border); }
.section.paper { background:var(--paper); }
.section.tint { background:var(--lavender); }
.section-label { display:inline-block; color:var(--violet); font-size:12px; font-weight:850; letter-spacing:.10em; text-transform:uppercase; margin-bottom:12px; }
.hero { background:var(--rose); border-bottom:4px solid var(--orange); }
.hero-layout { display:grid; grid-template-columns:minmax(0,1.57fr) minmax(0,1fr); align-items:start; gap:clamp(30px,4.7vw,68px); }
.hero-copy { padding:50px 0 45px; }
.hero-copy p { max-width:720px; }
.hero-copy .local-intro { color:var(--violet-deep); padding-top:6px; }
.hero-aside { align-self:stretch; background:var(--violet); color:white; padding:25px 26px 28px; display:flex; flex-direction:column; justify-content:center; gap:16px; }
.hero-aside h2 { color:white; margin:0; font-size:28px; }
.hero-aside p { color:#fff; margin-bottom:0; }
.hero-aside .smallnote { font-size:14px; color:#fff5f9; }
.dial { align-self:center; width:158px; height:158px; border-radius:50%; border:12px solid #b9a1df; position:relative; background:#f8f1ff; box-shadow:inset 0 0 0 12px #ddd0f1; }
.dial::before { content:""; position:absolute; inset:32px; border:9px solid var(--violet); border-radius:50%; }
.dial::after { content:""; position:absolute; width:10px; height:39px; border-radius:8px; left:calc(50% - 5px); top:14px; background:var(--orange); transform:rotate(24deg); transform-origin:50% 48px; }
.dial-ticks { position:absolute; width:12px; height:12px; border-radius:50%; background:var(--violet); bottom:22px; left:18px; box-shadow:112px 0 0 var(--violet); }
.aside-rules { border-top:1px solid #ac8ad2; padding-top:12px; display:grid; gap:7px; }
.aside-rules span { display:block; font-size:14px; font-weight:650; }
.cta { display:flex; flex-wrap:wrap; align-items:center; gap:11px; margin-top:22px; }
.cta a { display:inline-flex; justify-content:center; align-items:center; gap:7px; min-height:47px; text-align:center; border-radius:5px; text-decoration:none; font-weight:800; padding:10px 19px; border:2px solid var(--violet); font-size:15px; }
.cta .phone { background:var(--violet); color:#fff; }
.cta .phone:hover { background:var(--violet-deep); }
.cta .form { background:#fff; color:var(--violet-deep); }
.cta .form:hover { background:var(--lime); }
.cta-light .phone { background:var(--lime); border-color:var(--lime); color:var(--violet-deep); }
.cta-light .phone:hover { background:white; }
.cta-light .form { background:transparent; color:white; border-color:#fff; }
.cta-light .form:hover { background:white; color:var(--violet-deep); }
.prose { max-width:860px; }
.prose-wide { max-width:1030px; }
.split { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:36px; align-items:start; }
.note { border-left:4px solid var(--orange); background:#fff9fc; padding:20px 21px; }
.note h3 { margin:0 0 10px; }
.note p { font-size:16px; }
.note .foot { border-top:1px solid var(--border); padding-top:12px; margin-top:12px; }
.service-rows { border-top:2px solid var(--violet); max-width:1100px; }
.service-row { display:grid; grid-template-columns:75px minmax(0,1fr); column-gap:20px; padding:17px 0; border-bottom:1px solid var(--border); }
.service-row .num { font-size:27px; line-height:1; font-weight:850; color:var(--violet); }
.service-row h3 { margin-bottom:4px; }
.service-row p { margin:0; }
.banner { background:var(--violet); color:#fff; }
.banner h2 { color:#fff; }
.banner p { color:#fff; }
.banner-flex { display:flex; justify-content:space-between; align-items:center; gap:25px; flex-wrap:wrap; }
.banner-flex > div:first-child { flex:1 1 440px; }
.banner-flex .cta { margin-top:0; }
.hours { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; max-width:820px; border-left:4px solid var(--orange); padding-left:20px; }
.hours div { border-bottom:1px solid var(--border); padding:6px 0 10px; }
.hours b { display:block; color:var(--violet-deep); font-size:16px; }
.hours span { display:block; color:var(--text); font-size:15px; }
.local-end { padding:19px 0 22px; background:var(--paper); border-top:1px solid var(--border); }
.local-end p { font-size:14px; line-height:1.6; color:var(--soft); margin:0 0 5px; }
.footer { padding:24px 0 26px; border-top:3px solid var(--lime); background:var(--violet-deep); color:#fff; }
.footer-inner { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
.footer-mark { font-weight:790; letter-spacing:-.02em; }
.footer-links { display:flex; flex-wrap:wrap; gap:17px; }
.footer-links a { color:#fff; text-decoration:none; font-size:14px; font-weight:700; }
.footer-links a:hover { color:var(--lime); }
.footer-links a.privacy { font-weight:450; font-size:12px; opacity:.8; }
/* alternate inner-page lead uses full-width heading, not the home-grid */
.sub-lead { padding:46px 0 31px; background:var(--rose); border-bottom:4px solid var(--lime); }
.sub-lead .wide-text { max-width:910px; }
.sub-lead .cta { margin-top:21px; }
.sub-lead .intro-local { color:var(--violet-deep); }
.track-list { max-width:1070px; border-left:4px solid var(--violet); padding-left:25px; }
.track-list article { padding:7px 0 15px; border-bottom:1px solid var(--border); margin-bottom:14px; }
.track-list article:last-child { border:0; margin-bottom:0; padding-bottom:0; }
.track-list h3 { margin-bottom:7px; }
.offer-lead { background:var(--lavender); padding:45px 0; border-bottom:4px solid var(--orange); }
.offer-lead .offer-heading { max-width:1000px; }
.offer-lead .offer-heading p { max-width:940px; }
.offer-lead .intro-local { margin-top:15px; }
.offer-flow { max-width:1100px; }
.offer-line { border-bottom:1px solid var(--border); padding:17px 0; display:grid; grid-template-columns:220px minmax(0,1fr); gap:25px; align-items:start; }
.offer-line:first-child { border-top:2px solid var(--violet); }
.offer-line h3 { margin:2px 0 0; }
.offer-line p { margin:0; }
@media (max-width:1050px) {
    .wrap { width:calc(100% - 54px); }
    .hero-layout { grid-template-columns:minmax(0,1fr) minmax(0,.77fr); gap:24px; }
    .hero-aside { padding:22px; }
    .split { gap:24px; grid-template-columns:minmax(0,1.65fr) minmax(0,.9fr); }
}
@media (max-width:850px) {
    .header-inner { flex-wrap:wrap; gap:4px; justify-content:center; padding:16px 0; }
    .nav { width:100%; justify-content:center; gap:9px 23px; }
    .hero-layout { display:block; }
    .hero-copy { padding:35px 0; }
    .hero-aside { padding:25px; flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:wrap; }
    .hero-aside .dial { width:105px; height:105px; border-width:8px; box-shadow:inset 0 0 0 7px #ddd0f1; }
    .hero-aside .dial::before { inset:20px; border-width:6px; }
    .hero-aside .dial::after { top:6px; height:22px; left:calc(50% - 3px); width:6px; transform-origin:50% 35px; }
    .hero-aside .dial-ticks { display:none; }
    .split { display:block; }
    .split .note { margin-top:24px; }
    .section { padding:33px 0 35px; }
}
@media (max-width:560px) {
    .wrap { width:calc(100% - 36px); }
    .prehead-inner { display:block; padding-block:6px; }
    .prehead span { display:block; text-align:center; font-size:11px; line-height:1.5; }
    .header-inner { min-height:unset; }
    .brand { font-size:22px; }
    .nav { gap:5px 14px; }
    .nav a { font-size:13px; padding:6px 0; }
    .hero-copy { padding:32px 0; }
    .hero-aside { display:block; }
    .hero-aside .dial { margin:0 auto 12px; }
    .cta { display:flex; flex-direction:column; align-items:stretch; }
    .cta a { width:100%; }
    .service-row { grid-template-columns:46px minmax(0,1fr); gap:12px; }
    .service-row .num { font-size:23px; }
    .offer-line { display:block; }
    .offer-line h3 { margin-bottom:8px; }
    .hours { display:block; }
    .banner-flex { display:block; }
    .banner-flex .cta { margin-top:20px; }
    .footer-inner { display:block; }
    .footer-links { margin-top:13px; }
}
