/* Paid ads landing page: intentionally isolated from the primary site chrome. */
.ad-page{--ad-dark:#120d2d;--ad-primary:#cc0124;--ad-blue:#2409eb;--ad-cream:#f8f5ef;--ad-tint:#f1f0ff;background:#fdfcf9;color:#24233a;font-family:var(--body);font-size:16px;line-height:1.55}.ad-wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto}.ad-header{position:sticky;top:0;z-index:60;background:#fffefa;border-bottom:1px solid #e8e4dc}.ad-header-row{height:104px;display:flex;align-items:center;justify-content:space-between;gap:32px}.ad-header img{width:120px;height:auto}.ad-header-actions,.ad-actions{display:flex;align-items:center;gap:16px}.ad-open{font-size:.95rem;color:#5e6370;white-space:nowrap}.ad-open:before{content:"";display:inline-block;width:10px;height:10px;margin-right:9px;border-radius:50%;background:#33cf73}.ad-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:.75rem 1.25rem;border:2px solid transparent;border-radius:999px;font-size:.875rem;font-weight:700;line-height:1;text-decoration:none;white-space:nowrap;transition:transform .2s ease,background .2s ease}.ad-btn:hover{transform:translateY(-2px)}.ad-btn svg,.ad-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ad-btn-primary{background:var(--ad-primary);border-color:var(--ad-primary);color:#fffefa}.ad-btn-primary:hover{background:#a8001d}.ad-btn-dark{background:var(--ad-blue);border-color:var(--ad-blue);color:#fffefa}.ad-hero{position:relative;background:var(--ad-dark) url('/assets/hero.jpg') center 38%/cover no-repeat;color:#fdfcff}.ad-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,13,45,.98) 0%,rgba(18,13,45,.88) 48%,rgba(18,13,45,.68) 100%)}.ad-hero .ad-wrap{position:relative;padding-block:5.5rem}.ad-hero-copy{max-width:760px}.ad-eyebrow{display:block;color:var(--ad-primary);font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.ad-hero .ad-eyebrow{color:#c7c3ff}.ad-hero h1{margin:.35rem 0 1rem;color:#fffefa;font:800 clamp(2.5rem,4.3vw,4rem)/1.05 var(--display);letter-spacing:-.045em;white-space:nowrap}.ad-hero p{max-width:670px;margin:.75rem 0;color:#e2e0ec;font-size:1.08rem}.ad-actions{margin-top:2rem}.ad-btn-ghost{border-color:#fffefa;color:#fffefa;background:transparent}.ad-about{padding:6rem 0;background:var(--ad-cream)}.ad-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}.ad-about img{width:100%;aspect-ratio:1.55;object-fit:cover;border-radius:1.5rem}.ad-page h2{color:#16114c;font:800 clamp(2rem,3.5vw,3rem)/1.08 var(--display);letter-spacing:-.035em;margin:.3rem 0 1rem}.ad-about p{max-width:58ch;color:#5b5d68;font-size:1.08rem}.ad-services{padding:6rem 0}.ad-section-head{text-align:center;max-width:650px;margin:0 auto 2.75rem}.ad-section-head p{color:#656675;font-size:1.05rem}.ad-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.35rem}.ad-service-card{padding:1.75rem;border:1px solid #e9e5dd;border-radius:1.25rem;background:#fffefa;box-shadow:0 12px 35px rgba(25,20,70,.06)}.ad-service-card .ad-icon,.ad-detail .ad-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#efedff;color:var(--ad-blue)}.ad-service-card h3{margin:1rem 0 .5rem;color:#1b1747}.ad-service-card p{margin:0;color:#666777}.ad-talk{max-width:48rem;margin:2.5rem auto 0;padding:2rem 1.5rem;border-radius:1.4rem;background:#e9e7ff;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.ad-talk strong{max-width:470px;color:#18124a;font-size:1.05rem}.ad-contact{padding:6rem 0;background:var(--ad-tint)}.ad-contact-card{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border-radius:1.5rem;background:#fffefa;box-shadow:0 16px 45px rgba(25,20,70,.08)}.ad-contact-card iframe{width:100%;height:100%;min-height:520px;border:0}.ad-contact-details{padding:2.2rem}.ad-detail{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}.ad-detail p{margin:0}.ad-detail a{color:#2216aa}.ad-hours{width:100%;margin-top:1.5rem;border-collapse:collapse;border:1px solid #ddd9e8}.ad-hours th,.ad-hours td{padding:.7rem .8rem;border-bottom:1px solid #e5e1eb;text-align:left}.ad-hours thead{background:#f3f1fa}.ad-hours tbody th{font-weight:600}.ad-final{padding:5rem 0}.ad-final-card{max-width:960px;margin:auto;padding:3.5rem 2rem;border-radius:1.5rem;background:var(--ad-dark);color:#fffefa;text-align:center}.ad-final-card h2{color:#fffefa}.ad-final-card p{margin-bottom:1.5rem;color:#dcd9e9}.ad-footer{padding:2rem 0;background:#fffefa;border-top:1px solid #e8e4dc;text-align:center;color:#666777;font-size:.9rem}.ad-footer p{margin:.35rem 0}.ad-footer a{color:#3226b3}
@media(max-width:900px){.ad-header-row{height:88px}.ad-header-actions .ad-open{display:none}.ad-hero h1{white-space:normal}.ad-service-grid{grid-template-columns:repeat(2,1fr)}.ad-about-grid,.ad-contact-card{grid-template-columns:1fr}.ad-contact-card iframe{min-height:360px}}
@media(max-width:640px){.ad-wrap{width:min(100% - 28px,1180px)}.ad-header img{width:98px}.ad-header-actions{gap:8px}.ad-header-actions .ad-btn-dark{display:none}.ad-header-actions .ad-btn{padding:.7rem .9rem}.ad-hero .ad-wrap{padding-block:4rem}.ad-hero h1{font-size:2.55rem}.ad-actions{align-items:stretch;flex-direction:column}.ad-actions .ad-btn{width:100%}.ad-about,.ad-services,.ad-contact{padding:4rem 0}.ad-about-grid{gap:1.75rem}.ad-service-grid{grid-template-columns:1fr}.ad-talk{flex-direction:column;text-align:center}.ad-contact-details{padding:1.4rem}.ad-contact-card iframe{min-height:300px}.ad-final{padding:3.5rem 0}.ad-final-card{padding:2.75rem 1.2rem}.ad-footer p{line-height:1.8}}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url("/assets/dm-sans.woff2") format("woff2")}
@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:600 800;font-display:swap;src:url("/assets/libre-franklin.woff2") format("woff2")}
:root{--blue:#2409eb;--blue-dark:#1800b8;--red:#cc0124;--ink:#17162b;--muted:#57566b;--paper:#fbfaf5;--wash:#eef1ff;--line:#d9dbe8;--white:#fffefa;--ok:#17633b;--shadow:0 14px 40px rgba(23,22,43,.12);--radius:14px;--display:"Libre Franklin",sans-serif;--body:"DM Sans",sans-serif}
*{box-sizing:border-box}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;padding-bottom:0}a{color:var(--blue);text-underline-offset:3px}img{max-width:100%;display:block}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}.skip{position:fixed;top:8px;left:8px;z-index:9999;transform:translateY(-150%);background:var(--ink);color:var(--white);padding:12px}.skip:focus{transform:none}.topbar{background:var(--ink);color:var(--white);font-size:14px}.topbar .wrap{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar a{color:inherit}.open{font-weight:700;color:#8be3ad}.header{position:sticky;top:0;z-index:50;background:rgba(255,254,250,.97);border-bottom:1px solid var(--line)}.header-row{height:94px;display:flex;align-items:center;gap:24px}.logo img{width:270px;height:auto}.nav{display:flex;align-items:center;gap:25px;margin-left:auto}.nav>a{color:var(--ink);font-weight:700;text-decoration:none}.actions{display:flex;gap:8px}.btn{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:9px;padding:10px 18px;border:2px solid var(--blue);border-radius:999px;background:var(--blue);color:var(--white);font-weight:700;text-decoration:none;transition:.2s transform,.2s background}.btn:hover{background:var(--blue-dark);transform:translateY(-2px)}.btn.alt{background:transparent;color:var(--blue)}.btn.red{background:var(--red);border-color:var(--red)}.menu-btn,.drawer{display:none}.hero{min-height:650px;position:relative;display:grid;align-items:center;overflow:hidden;background:var(--ink)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,13,45,.94) 0%,rgba(24,9,80,.82) 48%,rgba(24,9,80,.18))}.hero-content{position:relative;color:var(--white);padding:90px 0;max-width:720px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:13px;font-weight:800;color:var(--red)}.hero .eyebrow{color:#ff9cae}.hero h1,.page-hero h1{font:800 clamp(2.5rem,6vw,5rem)/1.03 var(--display);letter-spacing:-.045em;margin:.25em 0}.hero p{font-size:21px;max-width:620px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.hero .btn.alt{border-color:var(--white);color:var(--white)}.quick{position:relative;margin-top:-42px;z-index:2}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.quick a{padding:28px;color:var(--ink);text-decoration:none;border-right:1px solid var(--line);font-weight:700}.quick a:last-child{border:0}.quick small{display:block;color:var(--muted);font-weight:500}.section{padding:clamp(60px,8vw,100px) 0}.section.wash{background:var(--wash)}h2{font:800 clamp(2rem,4vw,3.25rem)/1.08 var(--display);letter-spacing:-.035em;margin:.25em 0 .55em}h3{font:700 1.2rem/1.25 var(--display)}.lead{font-size:20px;color:var(--muted);max-width:700px}.service-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:40px}.service-card{background:var(--white);padding:30px;text-decoration:none;color:var(--ink);min-height:170px}.service-card strong{display:block;font:700 1.25rem var(--display);margin:14px 0 5px}.service-card span{color:var(--muted)}.service-card:hover strong{color:var(--blue)}.icon{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}.hours{width:100%;border-collapse:collapse}.hours th,.hours td{padding:12px 5px;border-bottom:1px solid var(--line);text-align:left}.legacy{font-size:clamp(4rem,12vw,9rem);font-family:var(--display);font-weight:800;color:var(--blue);line-height:.8}.portal-promo{background:linear-gradient(120deg,#16009f,var(--blue));color:var(--white);border-radius:20px;padding:55px;overflow:hidden;position:relative}.portal-promo .split{grid-template-columns:1.1fr .9fr}.phones{height:380px;position:relative}.phones img{position:absolute;width:210px;bottom:-95px;right:70px;filter:drop-shadow(0 16px 18px rgba(0,0,0,.35));transform:rotate(6deg)}.phones img:first-child{right:225px;transform:rotate(-8deg)}.page-hero{padding:70px 0;background:var(--wash);border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(2.3rem,5vw,4.25rem);max-width:850px}.crumb{font-size:14px}.content{max-width:780px}.content p,.content li{color:#3f3e50}.service-image{width:100%;height:390px;object-fit:cover;border-radius:var(--radius);margin-bottom:35px}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}.contact-card{background:var(--white);padding:32px;border:1px solid var(--line)}.map{width:100%;min-height:480px;border:0}.cta-band{background:var(--red);color:var(--white);padding:48px 0}.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta-band h2{margin:0}.footer{background:var(--ink);color:#dfdeea;padding:65px 0 95px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px}.footer img{width:250px;background:var(--white);padding:8px;border-radius:8px}.footer a{color:var(--white)}.legal-links{display:flex;flex-wrap:wrap;gap:15px;margin-top:30px;font-size:14px}.mobile-bar{display:none}:focus-visible{outline:3px solid var(--red);outline-offset:3px}
@media(max-width:1023px){body{padding-bottom:70px}.nav,.header .actions{display:none}.header-row{height:74px}.logo img{width:210px}.menu-btn{display:grid;place-items:center;margin-left:auto;width:48px;height:48px;border:0;background:transparent}.drawer{display:block;position:fixed;inset:0;z-index:100;visibility:hidden}.drawer.open{visibility:visible}.backdrop{position:absolute;inset:0;background:rgba(10,8,30,.55);opacity:0;transition:.2s}.drawer.open .backdrop{opacity:1}.panel{position:absolute;right:0;top:0;height:100%;width:min(420px,100%);background:var(--paper);padding:22px;transform:translateX(100%);transition:.25s transform;overflow:auto}.drawer.open .panel{transform:none}.close{width:48px;height:48px;border:0;background:var(--wash);font-size:28px;float:right}.drawer nav{clear:both;padding-top:25px}.drawer nav a,.drawer summary{display:block;min-height:50px;padding:12px 0;border-bottom:1px solid var(--line);font-weight:700;text-decoration:none;color:var(--ink)}.drawer .btn{margin-top:10px;color:var(--white);width:100%}.mobile-bar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--white);box-shadow:0 -5px 25px rgba(0,0,0,.14)}.mobile-bar a{min-height:68px;display:grid;place-items:center;text-decoration:none;font-weight:700;font-size:13px}.mobile-bar a:nth-child(2){background:var(--blue);color:var(--white)}}
@media(max-width:700px){.topbar .address{display:none}.hero{min-height:590px}.hero h1{font-size:2.75rem}.quick-grid,.service-list,.split,.team,.contact-grid,.footer-grid{grid-template-columns:1fr}.quick a{border-right:0;border-bottom:1px solid var(--line)}.section{padding:58px 0}.portal-promo{padding:35px 25px}.phones{height:300px}.phones img{width:165px;right:15px}.phones img:first-child{right:130px}.cta-band .wrap{display:block}.cta-band .btn{margin-top:20px}.page-hero{padding:45px 0}.service-image{height:240px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:1023px){body{padding-bottom:0}.mobile-bar{grid-template-columns:repeat(2,1fr);transform:translateY(110%);transition:transform .2s}.mobile-bar.visible{transform:none}.drawer.open~.mobile-bar{transform:translateY(110%)}}
.services-menu{position:relative}.services-menu>summary{display:flex;align-items:center;gap:5px;min-height:44px;color:var(--ink);font-weight:700;cursor:pointer;list-style:none}.services-menu>summary::-webkit-details-marker{display:none}.chevron{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .2s}.services-menu[open] .chevron{transform:rotate(180deg)}.services-panel{position:absolute;z-index:80;top:calc(100% + 14px);left:50%;width:min(610px,calc(100vw - 40px));max-height:min(68vh,560px);overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:16px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transform:translateX(-42%)}.services-panel:before{content:"";position:absolute;top:-15px;left:0;right:0;height:15px}.services-panel a{display:flex;align-items:center;min-height:46px;padding:9px 12px;border-radius:8px;color:var(--ink);font-size:15px;font-weight:600;line-height:1.25;text-decoration:none}.services-panel a:hover,.services-panel a:focus-visible{color:var(--blue);background:var(--wash)}.services-panel .all-services{grid-column:1/-1;background:var(--blue);color:var(--white);justify-content:center}.services-panel .all-services:hover,.services-panel .all-services:focus-visible{background:var(--blue-dark);color:var(--white)}
@media(min-width:1024px){.services-menu:hover>.services-panel,.services-menu:focus-within>.services-panel{display:grid}}
@media(max-width:1023px){.services-menu{display:none}.drawer details a{padding-left:16px;font-weight:600}.drawer details a:first-of-type{color:var(--blue);background:var(--wash);padding-left:12px}}
.portal-hero-sub{margin-top:-34px;padding:0 0 55px;background:var(--wash);border-bottom:1px solid var(--line)}.portal-hero-sub p{max-width:760px;margin:0;color:var(--muted);font-size:clamp(1.15rem,2.1vw,1.45rem)}.portal-reference-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:clamp(45px,7vw,90px);align-items:center}.portal-main{overflow:hidden}.portal-bullets{padding:0;margin:30px 0 34px;list-style:none}.portal-bullets li{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);font-weight:600}.portal-bullets .icon{width:28px;height:28px;color:var(--blue)}.portal-phone-pair{position:relative;height:570px}.portal-phone-pair img{position:absolute;bottom:-70px;width:min(260px,62%);max-height:590px;object-fit:contain;filter:drop-shadow(0 22px 22px rgba(23,22,43,.24));transform:rotate(-5deg)}.portal-phone-pair img:last-child{right:0;bottom:-20px;transform:rotate(5deg)}.portal-install h3{font:800 clamp(1.85rem,3.5vw,2.7rem)/1.12 var(--display);letter-spacing:-.03em;margin:0 0 20px}.portal-single-phone{height:450px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.portal-single-phone img{width:235px;transform:translateY(65px);filter:drop-shadow(0 20px 22px rgba(23,22,43,.2))}
@media(max-width:760px){.portal-reference-grid{grid-template-columns:1fr}.portal-phone-pair{height:430px;margin-top:5px}.portal-phone-pair img{width:58%;bottom:-45px}.portal-single-phone{height:370px}.portal-hero-sub{margin-top:-15px;padding-bottom:38px}.portal-main .portal-reference-grid{gap:22px}}
.phones{min-height:300px;height:auto;display:flex;align-items:center;justify-content:center}.phones img{position:static;width:min(100%,520px);height:auto;object-fit:contain;transform:none;filter:drop-shadow(0 16px 18px rgba(0,0,0,.35))}
.portal-phone-pair{min-height:440px;height:auto;display:flex;align-items:center;justify-content:center}.portal-phone-pair img{position:static;width:min(100%,560px);height:auto;max-height:none;object-fit:contain;transform:none;filter:drop-shadow(0 22px 22px rgba(23,22,43,.24))}
.portal-single-phone{min-height:450px;height:auto;display:flex;align-items:center;justify-content:center;overflow:visible}.portal-single-phone img{width:min(100%,290px);height:auto;transform:none;object-fit:contain;filter:drop-shadow(0 20px 22px rgba(23,22,43,.2))}
@media(max-width:760px){.phones{min-height:220px}.phones img{width:min(100%,440px)}.portal-phone-pair{min-height:280px;margin-top:5px}.portal-phone-pair img{width:min(100%,440px)}.portal-single-phone{min-height:330px}.portal-single-phone img{width:min(100%,250px)}}
.portal-reference-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);overflow:hidden}.portal-reference-grid>*{min-width:0}.portal-phone-pair,.portal-single-phone{min-width:0;overflow:hidden}.portal-phone-pair img,.portal-single-phone img{max-width:100%}
@media(max-width:760px){.portal-reference-grid{grid-template-columns:minmax(0,62fr) minmax(0,38fr);gap:clamp(10px,3vw,22px);align-items:center}.portal-main .portal-reference-grid{gap:clamp(10px,3vw,22px)}.portal-reference-grid h2{font-size:clamp(1.45rem,6vw,2rem)}.portal-reference-grid .lead{font-size:clamp(.92rem,3.5vw,1.05rem);line-height:1.5}.portal-bullets{margin:20px 0 24px}.portal-bullets li{grid-template-columns:25px 1fr;gap:8px;padding:10px 0;font-size:clamp(.78rem,2.8vw,.95rem);line-height:1.35}.portal-bullets .icon{width:20px;height:20px}.portal-reference-grid .btn{min-height:40px;padding:8px 12px;font-size:clamp(.78rem,2.8vw,.9rem)}.portal-phone-pair{min-height:220px;margin:0}.portal-phone-pair img{width:100%}.portal-install h3{font-size:clamp(1.3rem,5vw,1.8rem)}.portal-install p{font-size:clamp(.82rem,3vw,.98rem);line-height:1.5}.portal-single-phone{min-height:220px}.portal-single-phone img{width:min(100%,190px)}}
@media(max-width:420px){.portal-reference-grid{gap:8px}.portal-main.section,.portal-install.section{padding-top:42px;padding-bottom:42px}.portal-bullets li{font-size:.75rem}.portal-reference-grid .btn{padding-inline:9px}.portal-phone-pair,.portal-single-phone{min-height:170px}}

/* Compact header sizing keeps the logo and navigation contained. */
.header-row{height:88px;gap:18px}
.header .logo img{width:210px;max-height:76px;object-fit:contain}
.nav{gap:20px}
.nav>a,.services-menu>summary{font-size:15px}
.services-menu>summary{min-height:38px}
.services-panel a{font-size:14px}
.header .actions .btn,.hero-actions .btn{width:210px;min-height:52px;padding:12px 20px;font-size:16px;line-height:1.2}
.service-card{
  transition:background-color .18s ease-out,box-shadow .18s ease-out,transform .18s ease-out;
}
.service-card:hover,
.service-card:focus-visible{
  background:var(--wash);
  box-shadow:inset 0 0 0 2px var(--blue);
  transform:translateY(-2px);
}
.service-card:hover strong,
.service-card:focus-visible strong{
  color:var(--blue);
}
@media(max-width:1023px){
  .header-row{height:70px}
  .header .logo img{width:175px;max-height:58px}
}

/* Homepage hero — civic storefront geometry, no stock photography. */
.hero{background:#160d46}
.hero:before{background:linear-gradient(90deg,rgba(23,22,43,.98) 0%,rgba(23,22,43,.94) 46%,rgba(23,22,43,.24) 74%),radial-gradient(circle at 17% 18%,transparent 0 42px,rgba(255,254,250,.16) 43px 44px,transparent 45px),radial-gradient(circle at 42% 82%,rgba(204,1,36,.28) 0 24px,transparent 25px),radial-gradient(circle at 66% 20%,transparent 0 68px,rgba(255,254,250,.13) 69px 70px,transparent 71px),radial-gradient(circle at 72% 74%,rgba(255,254,250,.11) 0 38px,transparent 39px),radial-gradient(circle at 95% 84%,transparent 0 92px,rgba(255,254,250,.18) 93px 94px,transparent 95px),linear-gradient(rgba(255,254,250,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,254,250,.1) 1px,transparent 1px),radial-gradient(circle at 84% 34%,#4935ff 0 17%,transparent 17.2%),linear-gradient(135deg,#1800b8 0%,#2409eb 62%,#5d4aff 100%);background-size:auto,auto,auto,auto,auto,auto,52px 52px,52px 52px,auto,auto}
.hero:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}
.hero-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.14fr) minmax(330px,.86fr);align-items:center;gap:clamp(30px,5vw,76px)}
.hero-scene{position:relative;min-height:520px;align-self:stretch}
.hero-orbit,.hero-capsule,.hero-disc,.hero-cross{position:absolute}
.hero-orbit{width:440px;aspect-ratio:1;border:1px solid rgba(255,254,250,.45);border-radius:50%;right:-65px;top:40px}
.hero-orbit:before,.hero-orbit:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,254,250,.3);inset:54px}
.hero-orbit:after{inset:116px}
.hero-capsule{width:290px;height:116px;border-radius:999px;right:30px;top:176px;transform:rotate(-29deg);overflow:hidden;background:linear-gradient(90deg,var(--red) 0 50%,var(--paper) 50%);box-shadow:0 22px 42px rgba(12,5,58,.32);border:3px solid rgba(255,254,250,.8)}
.hero-capsule:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:rgba(23,22,43,.2)}
.hero-disc{width:86px;aspect-ratio:1;border-radius:50%;right:296px;top:104px;background:var(--red);border:2px solid #ffb1bd;box-shadow:inset 0 0 0 16px rgba(255,254,250,.12)}
.hero-cross{right:30px;bottom:83px;width:98px;height:98px;background:var(--red);clip-path:polygon(34% 0,66% 0,66% 34%,100% 34%,100% 66%,66% 66%,66% 100%,34% 100%,34% 66%,0 66%,0 34%,34% 34%)}
.hero-scene:after{content:none}
@media(max-width:700px){
  .hero:before{background:linear-gradient(180deg,rgba(23,22,43,.96),rgba(23,22,43,.9)),linear-gradient(rgba(255,254,250,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,254,250,.09) 1px,transparent 1px),linear-gradient(135deg,#1800b8,#2409eb);background-size:auto,38px 38px,38px 38px,auto}
  .hero-layout{display:block}.hero-content{padding:66px 0 94px}
  .hero-scene{position:absolute;inset:auto -65px -60px auto;width:240px;min-height:210px;opacity:.28}
  .hero-orbit{width:220px;right:0;top:0}.hero-capsule{width:150px;height:60px;right:35px;top:76px}.hero-disc{width:45px;right:162px;top:48px}.hero-cross{width:52px;height:52px;right:18px;bottom:22px}.hero-scene:after{display:none}
}

/* Match the homepage Patient Portal block to the branded hero treatment. */
.portal-promo{
  background:
    radial-gradient(circle at 12% 18%,transparent 0 44px,rgba(255,254,250,.18) 45px 46px,transparent 47px),
    radial-gradient(circle at 48% 88%,rgba(204,1,36,.3) 0 26px,transparent 27px),
    radial-gradient(circle at 76% 25%,transparent 0 76px,rgba(255,254,250,.16) 77px 78px,transparent 79px),
    radial-gradient(circle at 94% 82%,rgba(255,254,250,.11) 0 52px,transparent 53px),
    linear-gradient(rgba(255,254,250,.1) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,254,250,.1) 1px,transparent 1px),
    linear-gradient(135deg,#17162b 0%,#1800b8 40%,#2409eb 74%,#5d4aff 100%);
  background-size:auto,auto,auto,auto,48px 48px,48px 48px,auto;
}
.portal-promo:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");
}
.portal-promo>.split{position:relative;z-index:1}

/* Patient Portal overview: preserve the paper background while adding a light grid. */
.portal-main{
  overflow:visible;
  background-color:var(--paper);
  background-image:
    linear-gradient(rgba(36,9,235,.075) 1px,transparent 1px),
    linear-gradient(90deg,rgba(36,9,235,.075) 1px,transparent 1px);
  background-size:48px 48px;
}
.portal-main .portal-reference-grid,
.portal-main .portal-phone-pair{
  overflow:visible;
}
.portal-main .portal-phone-pair{
  padding:28px;
}

/* Increase the approved Patient Portal screenshots without clipping their shadows. */
@media(min-width:761px){
  .portal-reference-grid{
    grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
    gap:clamp(34px,5vw,70px);
  }
  .portal-main .portal-phone-pair{
    padding:8px;
  }
  .portal-phone-pair img{
    width:min(100%,680px);
  }
  .portal-single-phone img{
    width:min(100%,350px);
  }
}
@media(max-width:760px){
  .portal-main .portal-phone-pair{
    padding:4px;
  }
  .portal-phone-pair img{
    width:100%;
  }
  .portal-single-phone img{
    width:min(100%,290px);
  }
}

/* About team cards */
.team-section{
  background-color:#f4f7ff;
  background-image:
    radial-gradient(circle at 88% 18%,rgba(36,9,235,.1) 0 112px,transparent 113px),
    linear-gradient(rgba(36,9,235,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(36,9,235,.045) 1px,transparent 1px);
  background-size:auto,32px 32px,32px 32px;
}
.team-section .team{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}
.team-section .person{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  height:250px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(23,22,43,.1);
  border-top:4px solid var(--blue);
  border-radius:16px;
  box-shadow:0 10px 28px rgba(23,22,43,.09);
  transition:transform .2s ease,box-shadow .2s ease;
}
.team-section .person:nth-child(2){
  border-top-color:var(--red);
}
.team-section .person:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(23,22,43,.12);
}
.team-section .person img{
  width:190px;
  height:100%;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center top;
}
.team-section .person>div{
  align-self:center;
  min-width:0;
  padding:24px;
}
.team-section .person h3{
  margin:0 0 12px;
  color:var(--blue);
  font-size:clamp(1.25rem,2vw,1.55rem);
  font-weight:800;
  line-height:1.15;
  letter-spacing:-.025em;
}
.team-section .person:nth-child(2) h3{
  color:var(--red);
}
.team-section .person p{
  margin:0;
  color:var(--muted);
  line-height:1.5;
}
.team-section .person p::first-line{
  color:var(--ink);
  font-weight:700;
}
@media(max-width:700px){
  .team-section .team{
    grid-template-columns:1fr;
  }
}
@media(max-width:520px){
  .team-section .team{
    gap:20px;
  }
  .team-section .person{
    grid-template-columns:132px minmax(0,1fr);
    height:auto;
    min-height:210px;
  }
  .team-section .person img{
    width:132px;
  }
  .team-section .person>div{
    padding:16px;
  }
  .team-section .person h3{
    margin-bottom:9px;
    font-size:1.08rem;
  }
  .team-section .person p{
    font-size:.9rem;
    line-height:1.4;
  }
}
@media(prefers-reduced-motion:reduce){
  .team-section .person:hover{
    transform:none;
  }
}

/* About credentials and community */
.credentials-section{
  position:relative;
  overflow:hidden;
  background:var(--ink);
  color:var(--white);
  border-block:5px solid var(--blue);
}
.credentials-section::after{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-150px;
  width:360px;
  height:360px;
  border:44px solid rgba(204,1,36,.16);
  border-radius:50%;
  pointer-events:none;
}
.credentials-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(260px,.72fr) minmax(520px,1.28fr);
  gap:clamp(48px,8vw,110px);
  align-items:start;
}
.credentials-section .eyebrow{
  color:#ff9cae;
}
.credentials-section h2{
  max-width:470px;
  margin:.3em 0 0;
  color:var(--white);
}
.credentials-list{
  margin:0;
  border-block:2px solid rgba(255,255,255,.78);
}
.credentials-list>div{
  display:grid;
  grid-template-columns:minmax(190px,.8fr) minmax(240px,1.2fr);
  gap:28px;
  padding:22px 6px;
  border-bottom:1px solid rgba(255,255,255,.28);
}
.credentials-list>div:last-child{
  border-bottom:0;
}
.credentials-list dt{
  color:#aeb8ff;
  font:700 .82rem/1.35 var(--display);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.credentials-list dd{
  margin:0;
  color:var(--white);
  font-weight:600;
  line-height:1.45;
}
.credentials-list .certification-group{
  margin-inline:-20px;
  padding:28px 26px;
  background:var(--blue);
  border-bottom:0;
}
.credentials-list .certification-group dt{
  color:#fff;
}
.credentials-list ul{
  display:grid;
  gap:10px;
  margin:0;
  padding-left:20px;
}
@media(max-width:850px){
  .credentials-layout{
    grid-template-columns:1fr;
    gap:38px;
  }
  .credentials-section h2{
    max-width:650px;
  }
}
@media(max-width:560px){
  .credentials-list>div{
    grid-template-columns:1fr;
    gap:8px;
    padding:20px 4px;
  }
  .credentials-list .certification-group{
    margin-inline:-12px;
    padding:24px 16px;
  }
}

.cta-eyebrow{color:white}
.light-button,.portal-white-button,.light-button:hover,.portal-white-button:hover{background:white;color:#2409eb;border-color:white}
.portal-eyebrow{color:#ffb0bd}
.portal-promo .portal-outline-button,.portal-promo .portal-outline-button:visited,.portal-promo .portal-outline-button:hover{color:#fff;border-color:#fff}
.terms-copy{white-space:pre-wrap}
.mobile-bar{padding-bottom:env(safe-area-inset-bottom)}
.cmp-injected-title{font-family:"DM Sans",sans-serif;font-size:34px;font-weight:700;line-height:56.1px;margin:22.78px 0;color:inherit}
.footer img{width:180px;height:auto}

/* Mobile fit repairs: retain the existing branding and desktop layout. */
@media(max-width:700px){
  .topbar .wrap{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:0 16px;
    padding-block:8px 2px;
    line-height:1.4;
  }
  .topbar .wrap>span:not(.address):not([data-open]){
    grid-column:1/-1;
  }
  .topbar a[href^="tel:"]{
    display:inline-flex;
    align-items:center;
    justify-self:start;
    min-height:44px;
    font-weight:700;
    white-space:nowrap;
  }
  .topbar [data-open]{
    justify-self:end;
    text-align:right;
    max-width:100%;
    overflow-wrap:anywhere;
  }
  .btn{
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    text-align:center;
    line-height:1.35;
  }
  .portal-promo .split,.portal-reference-grid{
    grid-template-columns:minmax(0,1fr);
  }
  .portal-promo .split{gap:28px}
  .portal-promo .btn{margin-block:4px}
  .portal-main .portal-reference-grid{gap:28px}
  .portal-reference-grid h2{font-size:clamp(1.8rem,7vw,2.4rem)}
  .portal-reference-grid .lead{font-size:1.1rem}
  .portal-bullets li{font-size:1rem;line-height:1.5}
  .portal-reference-grid .btn{font-size:1rem;min-height:46px}
  .portal-install p{font-size:1rem}
  .portal-phone-pair img{width:min(100%,440px)}
  .contact-grid>*{min-width:0}
  .contact-card{padding:24px}
  .contact-card a,.footer a,.terms-copy{overflow-wrap:anywhere}
  .page-hero h1,.service-card strong{overflow-wrap:anywhere}
}
@media(max-width:640px){
  .ad-header-row{gap:12px}
  .ad-header-row>a{min-width:0}
  .ad-btn{
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    text-align:center;
    line-height:1.35;
  }
  .ad-btn svg,.ad-detail .ad-icon{flex-shrink:0}
  .ad-detail p{min-width:0;overflow-wrap:anywhere}
  .ad-about-grid>*,.ad-contact-card>*{min-width:0}
}
@media(max-width:430px){
  .hours,.ad-hours{font-size:.875rem}
  .hours th,.hours td{padding:12px 4px}
  .ad-hours th,.ad-hours td{padding:.7rem .4rem}
  .ad-header img{width:80px}
  .ad-header-actions .ad-btn{font-size:.8rem;padding:.7rem .75rem}
  .ad-header-actions .ad-btn svg{width:16px;height:16px}
  .ad-header-actions{min-width:0}
  .ad-header-actions .ad-btn{gap:6px}
  .team-section .person h3{overflow-wrap:anywhere}
}