/* fonts.css */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(../fonts/manrope-var.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url(../fonts/newsreader-italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(../fonts/newsreader-var.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face{font-family:'Source Serif';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/sourceserif-400.woff2) format('woff2')}
@font-face{font-family:'Source Serif';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/sourceserif-600.woff2) format('woff2')}
/* atelier.css */
/* Pearl's independent visual system. White, logo navy, one type family. */
:root{--pearl:#13243b;--ink:#13243b;--font-display:'Manrope',Arial,sans-serif;--font-body:'Manrope',Arial,sans-serif;--line:rgba(19,36,59,.18);--gutter:clamp(22px,4.1vw,72px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff;color:var(--pearl);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}a{color:inherit}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}button[hidden],[hidden]{display:none!important}:focus-visible{outline:2px solid currentColor;outline-offset:5px}h1,h2,h3{font-family:var(--font-body);font-weight:400}button{color:inherit}svg{flex-shrink:0}.icon-arrow{width:1.15em;height:1.15em;display:inline-block;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.1em}.skip-link{position:fixed;top:-100px;left:20px;background:white;color:var(--pearl);padding:12px;z-index:200}.skip-link:focus{top:10px}.p-wrap{max-width:1600px;margin:auto;padding:0 var(--gutter)}.p-section{padding:96px 0}.is-concept-home main h2{font-size:clamp(42px,4.7vw,72px);line-height:1.08;letter-spacing:-.05em;font-weight:400}.p-dark{background:var(--pearl);color:#fff}.p-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:48px}.p-section-head>p{font-size:16px;max-width:29ch;line-height:1.7;padding-bottom:4px}.p-link{display:inline-flex;align-items:center;gap:30px;padding:10px 0;text-decoration:none;border-bottom:1px solid currentColor;font-size:14px;line-height:1.5}.p-link:hover .icon-arrow{transform:translate(2px,-2px)}.p-button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;border:1px solid transparent;border-radius:50px;background:#fff;color:var(--pearl);padding:18px 26px;font-size:14px;font-weight:600;min-height:58px;text-decoration:none;transition:transform .2s,background .2s}.p-button:hover{transform:translateY(-2px);background:#edf0f3}.p-button .icon-arrow{width:21px;height:21px}
/* Shared navigation and appointment surface. */
body .site-header{position:fixed;inset:0 0 auto;height:88px;z-index:50;background:var(--pearl)!important;color:#fff;border:0;box-shadow:none;backdrop-filter:none}body .site-header::before,body .site-header::after{display:none}body .site-header>.wrap{max-width:1600px;margin:auto;padding:0 var(--gutter)}body .nav{height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}body .nav__logo{display:block;flex-shrink:0;margin:0;text-decoration:none}body .pearl-logo{position:relative;display:block;overflow:hidden;width:136px;height:57px;border-radius:0;background:var(--pearl)}body .pearl-logo img{width:136px;max-width:none;height:88px;margin-top:-15px;object-fit:contain}body .nav__menu{display:flex;gap:28px;margin-left:auto;margin-right:auto}body .site-header .nav__link{font-size:13px;font-weight:400;letter-spacing:0;color:#fff!important;text-decoration:none;padding:10px 0}body .nav__actions{display:flex;align-items:center;margin:0;gap:15px}body .site-header .nav__cta-desktop{border:1px solid #ffffff55;background:transparent!important;color:white!important;min-height:45px;border-radius:40px;display:inline-flex;align-items:center;justify-content:center;padding:10px 23px;font-size:12px;text-decoration:none;font-weight:500}body .nav__burger,body .nav__book-mobile{display:none}body.is-concept-home .site-header:not([data-scrolled=true]){background:transparent!important}body .site-header[data-scrolled=true]{border-bottom:1px solid #ffffff20}.mnav{display:none!important}.mnav[data-open=true]{display:flex!important;position:fixed;inset:0;background:#fff;z-index:100;color:var(--pearl);padding:90px var(--gutter) 40px;overflow-y:auto;flex-direction:column}.mnav__close{position:absolute;right:22px;top:20px;border:1px solid var(--line);background:transparent;width:44px;height:44px;border-radius:50%;font-size:30px}.mnav__list{list-style:none;padding:0;margin:0}.mnav__list>li>a{font-size:30px;letter-spacing:-.04em;display:block;padding:10px 0;text-decoration:none}.mnav__sub{list-style:none}.mnav__cta{margin-top:28px;display:grid;gap:18px}.mnav__cta-row{display:flex;flex-wrap:wrap;gap:20px}.mnav__meta{font-size:13px;display:flex;gap:15px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid var(--line);border-radius:40px;text-decoration:none;font-size:14px;font-weight:500}.btn--primary,.btn--ink{background:var(--pearl);color:#fff}.btn--ghost{background:transparent;color:var(--pearl)}.appointment-open{overflow:hidden}.appointment-drawer{position:fixed;inset:0;margin:auto;border:0;border-radius:14px;width:540px;max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);padding:0;color:var(--pearl);background:white;overflow:auto}.appointment-drawer::backdrop{background:#071425b0;backdrop-filter:blur(7px)}.appointment-drawer__inside{position:relative;padding:42px}.appointment-drawer__close{position:absolute;right:18px;top:18px;border:1px solid var(--line);background:white;border-radius:50%;width:44px;height:44px;font-size:28px}.appointment-faces{display:flex;margin-bottom:24px}.appointment-faces img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid white}.appointment-faces img+img{margin-left:-7px}.appointment-drawer .kicker{font-size:12px;letter-spacing:0;text-transform:none}.appointment-drawer #appointment-title{font-size:54px;line-height:1.05;letter-spacing:-.05em;margin:15px 0 22px;font-weight:400;font-family:var(--font-body)}.appointment-drawer__intro{margin-bottom:20px;font-size:15px}.appointment-choice{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:8px;padding:19px 22px;margin:12px 0;text-decoration:none}.appointment-choice--primary{background:var(--pearl);color:white}.appointment-choice strong,.appointment-choice small{display:block}.appointment-choice strong{font-weight:500;font-size:17px}.appointment-choice small{font-size:12px;margin-top:3px}.appointment-drawer__note{font-size:12px;line-height:1.6;margin:22px 0 10px}.appointment-drawer .text-link{font-size:13px}
/* Hero: the artwork and typography form a single full-bleed composition. */
.p-hero{position:relative;isolation:isolate;min-height:760px;height:min(960px,100svh);background:#0a182b;color:#fff;overflow:hidden}.p-hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;animation:pearl-drift 28s ease-in-out infinite alternate}.p-hero::before{content:"";position:absolute;inset:0 0 auto;height:230px;background:linear-gradient(#081426d9,#08142666 65%,transparent);z-index:-1;pointer-events:none}.p-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,17,32,.32),transparent 70%),linear-gradient(0deg,rgba(6,17,32,.82),transparent 60%);z-index:-1;pointer-events:none}.p-hero-content{height:100%;display:flex;flex-direction:column;padding-top:133px;padding-bottom:55px}.p-location{font-size:14px}.p-hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-top:auto}.p-hero h1{font-size:clamp(80px,8vw,124px);line-height:.99;letter-spacing:-.065em;font-weight:400;margin:0 0 28px}.p-hero .c-hero-copy>p{font-size:15px;line-height:1.65;max-width:36ch;margin-bottom:27px}.p-hero-side{text-align:right;display:flex;flex-direction:column;gap:50px;padding-bottom:11px;font-size:13px}.p-hero-side>a{text-decoration:none}.p-explore{display:flex;gap:42px;align-items:center;border-bottom:1px solid #ffffff66;padding:12px 0}.p-explore span{font-size:22px}.p-motion{position:absolute;right:var(--gutter);bottom:15px;border:0;background:transparent;color:#fff;font-size:10px;padding:7px}.p-hero.is-paused .p-hero-art{animation-play-state:paused}@keyframes pearl-drift{from{transform:scale(1)}to{transform:scale(1.07) translateX(-1%)}}
/* Three moving care rows on desktop. */
.p-care{padding:65px 0;background:#fff}.p-care-grid{display:grid;grid-template-columns:.8fr 1.4fr;align-items:center;gap:70px}.is-concept-home .p-care h2{font-size:45px;letter-spacing:-.05em}.p-care .p-link{margin-top:22px}.p-loops{min-width:0;position:relative;overflow:hidden;padding-bottom:20px;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.p-loop-row{overflow:hidden;height:65px;display:flex;align-items:center}.p-loop-track{display:flex;width:max-content;animation:pearl-loop var(--duration) linear infinite}.p-loop-row:nth-child(2) .p-loop-track{animation-direction:reverse}.p-loop-row:nth-child(3){opacity:.65}.p-loop-set{display:flex;align-items:center;gap:30px;padding-right:30px;white-space:nowrap}.p-loop-set>span{font-size:31px;letter-spacing:-.035em}.p-loop-set i{width:7px;height:7px;border-radius:50%;background:currentColor}.p-loop-toggle{position:absolute;bottom:0;right:10%;font-size:11px;border:0;background:white;display:flex;gap:8px;align-items:center;padding:0 6px}.pearl-loop.is-paused .p-loop-track,.p-loops:hover .p-loop-track{animation-play-state:paused}@keyframes pearl-loop{to{transform:translateX(-50%)}}
/* Treatment navigation. */
.p-treatment{display:grid;grid-template-columns:1.12fr 1fr;gap:8%;align-items:center}.c-service-stage{min-width:0;touch-action:pan-y}.p-service-panel{position:relative;height:570px;overflow:hidden;border-radius:10px;background:white;color:var(--pearl)}.p-service-panel>img{width:100%;height:100%;object-fit:cover;object-position:50% 37%}.p-service-panel::after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(4,14,25,.8));pointer-events:none}.p-treatment-caption{position:absolute;bottom:28px;left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff;z-index:1}.p-treatment-caption h3{font-size:32px;line-height:1.2;letter-spacing:-.04em}.p-treatment-caption a{border:1px solid #ffffff88;border-radius:50%;display:grid;place-items:center;width:50px;height:50px;flex-shrink:0}.c-service-controls{display:flex;justify-content:space-between;align-items:center;padding-top:18px;font-size:11px}.c-service-controls>div{display:flex;gap:8px}.c-service-controls button{border:1px solid #ffffff50;background:transparent;color:white;border-radius:50%;width:42px;height:42px;font-size:18px}.c-service-controls button:hover{background:white;color:var(--pearl)}.p-service-tabs button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;text-align:left;padding:24px 0;border:0;border-bottom:1px solid #ffffff30;background:transparent;color:#ffffffa3;font-size:27px;line-height:1.25;letter-spacing:-.04em}.p-service-tabs button[aria-selected=true]{color:white}.p-service-tabs button .icon-arrow{opacity:0;transition:transform .25s,opacity .25s}.p-service-tabs button[aria-selected=true] .icon-arrow,.p-service-tabs button:hover .icon-arrow{opacity:1}.p-service-tabs button:hover{color:white}.p-service-nav>p{max-width:34ch;font-size:14px;color:#ffffffb8;margin:29px 0 14px}.p-service-nav>.p-link{font-size:13px}.p-service-panel:not([hidden])>img{animation:service-image .6s ease both}@keyframes service-image{from{opacity:.7;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
/* Real doctors, given the space of an editorial portrait. */
.p-doctor-grid{display:grid;grid-template-columns:1fr .85fr;gap:10%;align-items:start}.p-doctor{display:block;text-decoration:none}.p-doctor>img{width:100%;height:590px;object-fit:cover;object-position:center 25%;border-radius:10px}.p-doctor>div{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:19px 0 3px}.p-doctor h3{font-size:25px;line-height:1.3;letter-spacing:-.04em}.p-doctor>div>span{display:flex;align-items:center;gap:23px;font-size:12px}.p-doctor>p{font-size:12px}.p-doctor-belief{font-size:23px;line-height:1.6;letter-spacing:-.025em;margin:0 0 40px;max-width:34ch}.p-doctor-small{width:78%;margin-left:auto}.p-doctor-small>img{height:355px;object-position:50% 25%}.p-doctor-small h3{font-size:21px}
/* Quiz retains the existing real recommendation flow. */
.is-concept-home .concept-quiz{padding:96px 0;background:var(--pearl);color:#fff}.concept-quiz>.wrap-narrow{max-width:1600px;padding:0 var(--gutter);margin:auto;display:grid;grid-template-columns:1fr 1.05fr;gap:8%;align-items:center}.quiz__head .kicker{font-size:13px;display:block;margin-bottom:30px}.is-concept-home main .quiz__h{font-size:clamp(40px,4vw,62px);line-height:1.12;letter-spacing:-.05em}.quiz__sub{max-width:30ch;font-size:15px;margin-top:26px;line-height:1.8}.quiz{background:#fff;color:var(--pearl);border-radius:12px;padding:36px;min-height:415px}.quiz__counter{font-size:12px;margin:0 0 13px}.quiz__progress{height:2px;background:#13243b26;margin-bottom:29px}.quiz__bar{display:block;height:100%;background:var(--pearl);transition:width .3s}.quiz__q{font-size:25px;letter-spacing:-.04em;line-height:1.3;margin:0 0 24px;outline:none}.quiz__opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quiz__opt{border:1px solid #13243b38;display:flex;align-items:center;gap:12px;padding:18px 14px;min-height:69px;background:white;color:var(--pearl);border-radius:5px;text-decoration:none;text-align:left;font-size:13px;line-height:1.4;transition:background .2s}.quiz__opt:hover{background:var(--pearl);color:#fff}.quiz__opt-ic{width:24px;height:24px;stroke-width:1.25}.quiz__back{padding:0;border:0;background:transparent;font-size:12px;text-decoration:underline;text-underline-offset:4px;margin-bottom:20px}.quiz__result-lab{font-size:12px}.quiz__result-h{font-size:29px;line-height:1.2;letter-spacing:-.04em;margin:12px 0 20px;outline:none}.quiz__match{display:block;text-decoration:none;border-top:1px solid var(--line);padding:16px 0}.quiz__match span{display:block}.quiz__match-badge{font-size:10px;margin-bottom:5px}.quiz__match-name{font-size:18px;font-weight:600}.quiz__match-short{font-size:12px;line-height:1.6;margin:7px 0}.quiz__match-cta{font-size:12px;text-decoration:underline}.quiz__cta{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.quiz__cta .btn{font-size:12px;min-height:46px;padding:10px 16px}.quiz__disclaimer,.quiz__privacy{font-size:10px;line-height:1.7;margin-top:10px}
/* Patient voices, with automatic and manual control. */
.rev-carousel{position:relative;padding-bottom:52px}.rev-carousel__track{display:flex;gap:24px;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.rev-carousel__track::-webkit-scrollbar{display:none}.p-reviews .review-card{flex:0 0 100%;scroll-snap-align:start;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:36px 40px 24px 0;min-height:290px;opacity:1;transform:none}.review-card__quote{font-size:36px;line-height:1.45;letter-spacing:-.04em;max-width:37ch}.review-card__attrib{display:flex;gap:18px;align-items:center;font-size:12px;margin-top:29px}.review-card__attrib strong{font-weight:600}.review-card__attrib span{font-size:11px}.rev-stars{display:flex;gap:4px;margin-bottom:12px}.rev-stars svg{width:15px;height:15px;fill:var(--pearl)}.rev-carousel__nav{position:absolute;bottom:0;border:1px solid var(--line);background:white;border-radius:50%;width:42px;height:42px;display:grid;place-items:center}.rev-carousel__nav--prev{right:51px}.rev-carousel__nav--next{right:0}.rail-control-bar{position:absolute;bottom:0;left:0}.rail-play{border:0;background:transparent;padding:10px 0;display:flex;gap:10px;align-items:center;font-size:11px}.p-review-links{display:flex;justify-content:space-between;gap:30px;margin-top:25px}
/* Patient information. */
.p-first-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}.p-first-grid>div:first-child>p{font-size:14px;max-width:28ch;margin:30px 0}.p-steps article{display:grid;grid-template-columns:28px 1fr;gap:25px;padding:25px 0;border-top:1px solid #ffffff3a}.p-steps article>span{font-size:13px;padding-top:4px}.p-steps h3{font-size:26px;line-height:1.3;letter-spacing:-.035em;margin-bottom:13px}.p-steps p{font-size:14px;line-height:1.7;color:#ffffffbf;max-width:44ch}.p-first-links{display:flex;justify-content:space-between;gap:15px;font-size:12px;padding-top:20px}.p-first-links a{text-underline-offset:6px}.p-faq-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:8%}.p-faq details{border-top:1px solid var(--line)}.p-faq details:last-of-type{border-bottom:1px solid var(--line)}.p-faq summary{display:flex;justify-content:space-between;gap:25px;padding:24px 0;cursor:pointer;list-style:none;font-size:17px;line-height:1.5}.p-faq summary::-webkit-details-marker{display:none}.p-faq summary>span{font-size:23px;font-weight:400;line-height:1.2}.p-faq details[open] summary>span{transform:rotate(45deg)}.p-faq details>p{font-size:14px;line-height:1.8;max-width:60ch;padding:0 30px 25px 0}.p-faq .p-link{margin-top:20px}.p-visit{padding:85px 0 80px}.p-visit-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:8%;align-items:start}.p-office img{height:340px;width:100%;object-fit:cover;border-radius:8px}.p-office>a{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:13px;text-decoration:none;padding:20px 0}.p-phone{font-size:32px;letter-spacing:-.035em;text-decoration:none}.p-hours dl{margin:23px 0 20px;font-size:13px}.p-hours dl>div{display:flex;justify-content:space-between;border-bottom:1px solid #ffffff26;padding:8px 0;gap:15px}.p-hours dd{margin:0}.p-hours .p-link{font-size:12px}
/* Consistent footer and inner-page type. */
body .site-footer{padding:65px var(--gutter) 30px;background:white;color:var(--pearl);border:0}body .site-footer>.wrap{max-width:1456px;padding:0;margin:auto}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:6%}.footer-brand .pearl-logo{margin-bottom:24px}.footer-brand__tag{font-size:23px;letter-spacing:-.03em;margin-bottom:12px}.footer-brand>p:not(.footer-brand__tag){font-size:12px;line-height:1.8;max-width:28ch}.site-footer a{color:var(--pearl)!important}.site-footer .btn{border:1px solid var(--line);background:white;color:var(--pearl);font-size:12px}.footer-col__title{font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;margin:5px 0 20px}.footer-col ul{padding:0;list-style:none;margin:0}.footer-col li{margin:12px 0}.footer-col a{font-size:12px;text-decoration:none}.footer-col a:hover{text-decoration:underline}.footer-bottom{margin-top:48px;padding-top:25px;display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid var(--line);gap:40px}.footer-bottom__brand{display:flex;flex-direction:column;gap:8px;font-size:10px;max-width:70ch}.site-footer .site-note{color:var(--pearl);font-size:10px;line-height:1.6}.footer-bottom__legal{display:flex;gap:16px;font-size:10px}.footer-brand__social{margin-top:16px;font-size:12px}body .btn{border-radius:50px!important}body .appointment-drawer .kicker{color:var(--pearl);letter-spacing:0;text-transform:none}body .appointment-drawer .kicker:before{display:none}body .appointment-choice{border-radius:8px}body .site-footer .footer-col__title{text-transform:none;letter-spacing:0}body:not(.is-concept-home) h1,body:not(.is-concept-home) h2,body:not(.is-concept-home) h3{font-family:var(--font-body);font-weight:400}body:not(.is-concept-home) main em{font-style:normal;font-family:inherit}.tel-inline{text-underline-offset:3px}
@media(min-width:1700px){.p-hero h1{font-size:134px}.p-hero-art{object-position:50% 45%}}
@media(max-width:1100px){.p-section{padding:76px 0}.p-hero{min-height:700px}.p-hero h1{font-size:90px}.p-treatment{gap:6%}.p-service-panel{height:490px}.p-service-tabs button{font-size:22px;padding:22px 0}.p-doctor>img{height:480px}.p-doctor-small>img{height:310px}.p-doctor-belief{font-size:19px}.p-doctor h3{font-size:21px}.p-doctor-small h3{font-size:18px}.concept-quiz>.wrap-narrow{gap:5%}.quiz{padding:27px}.quiz__opt{font-size:12px;padding:15px 10px}.p-care-grid{gap:40px}.p-loop-set>span{font-size:27px}.p-review-links{font-size:12px}.footer-grid{gap:4%}body .nav__menu{gap:20px}}
@media(max-width:800px){body .site-header,body .nav{height:74px}body .nav__menu,body .site-header .nav__cta-desktop{display:none}body .nav__book-mobile{display:flex;color:white!important;font-size:13px;align-items:center;gap:12px;text-decoration:none}body .nav__burger{display:flex;width:44px;height:44px;border:1px solid #ffffff50;border-radius:50%;background:transparent;align-items:center;justify-content:center}body .nav__burger span{display:block;width:17px;height:1px;background:#fff!important;position:relative}body .nav__burger span:before,body .nav__burger span:after{content:'';position:absolute;left:0;width:17px;height:1px;background:white!important}body .nav__burger span:before{top:-5px}body .nav__burger span:after{top:5px}body .pearl-logo{width:117px;height:48px}body .pearl-logo img{width:117px;height:76px;margin-top:-13px}.p-hero{height:900px;max-height:100svh;min-height:700px}.p-hero-content{padding-top:110px;padding-bottom:54px}.p-hero h1{font-size:80px}.p-hero-art{object-position:62% center}.p-hero-side{font-size:12px}.p-care-grid{grid-template-columns:1fr;gap:25px}.p-care-grid>div:first-child{display:flex;justify-content:space-between;align-items:center}.p-care h2 br{display:none}.is-concept-home .p-care h2{font-size:37px}.p-care .p-link{margin:0}.p-loop-row{height:55px}.p-loop-set>span{font-size:28px}.p-section-head{gap:30px}.p-section-head>p{font-size:14px}.p-treatment{grid-template-columns:1.1fr 1fr;gap:30px}.p-service-panel{height:445px}.p-service-tabs button{font-size:18px;padding:21px 0}.p-treatment-caption{left:20px;right:20px;bottom:20px}.p-treatment-caption h3{font-size:24px}.p-service-nav>p{font-size:12px}.p-doctor-grid{gap:40px}.p-doctor>img{height:390px}.p-doctor-small{width:100%}.p-doctor-small>img{height:270px}.p-doctor-belief{font-size:17px;margin-bottom:26px}.p-doctor>div{align-items:flex-start}.p-doctor h3,.p-doctor-small h3{font-size:18px}.p-doctor>div>span{font-size:10px;gap:10px}.p-doctor>p{font-size:10px}.concept-quiz>.wrap-narrow{grid-template-columns:1fr;gap:35px}.quiz__head .kicker{margin-bottom:20px}.quiz__sub{max-width:100%;margin-top:18px}.quiz{min-height:0;padding:32px}.quiz__opts{grid-template-columns:repeat(3,1fr)}.quiz__opt{font-size:14px;min-height:77px}.p-first-grid,.p-faq-grid{gap:40px;grid-template-columns:1fr 1.1fr}.p-first-grid h2,.p-faq-grid h2{font-size:40px!important}.p-visit-grid{gap:35px}.p-office img{height:330px}.p-phone{font-size:25px}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}.footer-col:last-child{grid-column:2/4}.footer-bottom{align-items:flex-start;flex-direction:column;gap:20px}.p-first-links{flex-direction:column;gap:18px}}
@media(max-width:600px){:root{--gutter:22px}.p-section{padding:60px 0}.is-concept-home main h2{font-size:40px;letter-spacing:-.055em;line-height:1.12}.p-section-head{display:block;margin-bottom:30px}.p-section-head>p{margin-top:20px;font-size:14px}.p-section-head>.p-link{margin-top:20px}.p-button{padding:15px 22px;min-height:53px;font-size:13px;gap:38px}.p-link{font-size:12px;gap:22px}.p-hero{height:100svh;min-height:700px;max-height:900px}.p-hero-art{height:70%;width:100%;object-position:66% 0;object-fit:cover}.p-hero:after{background:linear-gradient(0deg,#0a182b 22%,rgba(10,24,43,.85) 38%,rgba(10,24,43,.08) 63%,rgba(10,24,43,.05))}.p-hero-content{padding-top:96px;padding-bottom:47px}.p-location{font-size:11px;max-width:17ch;line-height:1.7}.p-hero-bottom{display:block}.p-hero h1{font-size:clamp(61px,16.5vw,80px);line-height:1.01;letter-spacing:-.06em;margin-bottom:22px}.p-hero .c-hero-copy>p{font-size:13px;line-height:1.75;max-width:33ch;margin-bottom:23px}.p-hero .p-button{min-width:215px}.p-hero-side{display:none}.p-motion{bottom:9px;font-size:9px}.p-care{padding:40px 0 32px}.p-care-grid{gap:26px}.p-care-grid>div:first-child{display:block}.is-concept-home .p-care h2{font-size:32px}.p-care h2 br{display:none}.p-care .p-link{margin-top:10px}.p-loop-row{height:49px}.p-loop-row:nth-child(3){display:none}.p-loop-set{gap:23px;padding-right:23px}.p-loop-set>span{font-size:24px}.p-loop-set i{width:5px;height:5px}.p-loops{margin-inline:-22px;mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}.p-treatment{display:flex;flex-direction:column;gap:22px}.p-service-nav{display:contents}.p-service-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;order:0;width:100%}.p-service-tabs button{font-size:13px;padding:15px 0;min-height:55px;letter-spacing:-.02em;gap:5px}.p-service-tabs button .icon-arrow{width:14px;height:14px}.c-service-stage{order:1;width:100%}.p-service-panel{height:410px;border-radius:8px}.p-treatment-caption h3{font-size:25px}.p-treatment-caption a{width:44px;height:44px}.c-service-controls{padding-top:13px}.c-service-controls button{width:40px;height:40px}.p-service-nav>p{order:2;width:100%;max-width:none;font-size:13px;margin:0}.p-service-nav>.p-link{order:3;align-self:flex-start;font-size:12px;margin-top:-12px}.p-doctor-grid{grid-template-columns:1fr;gap:33px}.p-doctor>img{height:auto;aspect-ratio:1/1.06;object-position:center 25%}.p-doctor>div{margin-top:16px}.p-doctor h3{font-size:22px}.p-doctor>div>span{font-size:11px;gap:18px}.p-doctor>p{font-size:11px}.p-doctor-aside{display:flex;flex-direction:column;gap:26px}.p-doctor-belief{font-size:17px;line-height:1.7;margin:0;max-width:none}.p-doctor-small{display:grid;grid-template-columns:116px 1fr;gap:0 21px;align-items:center}.p-doctor-small>img{grid-row:1/3;aspect-ratio:1/1.28;height:150px;width:116px;border-radius:6px;object-position:center 20%}.p-doctor-small>div{display:block;margin:0;align-self:end}.p-doctor-small h3{font-size:18px}.p-doctor-small>div>span{margin-top:9px;justify-content:space-between}.p-doctor-small>p{align-self:start;margin-top:10px;font-size:10px}.is-concept-home .concept-quiz{padding:60px 0}.concept-quiz>.wrap-narrow{gap:28px}.is-concept-home main .quiz__h{font-size:38px}.quiz__sub{font-size:13px;max-width:28ch;margin-top:20px}.quiz__head .kicker{font-size:12px;margin-bottom:20px}.quiz{padding:24px 18px;border-radius:8px;min-height:380px}.quiz__q{font-size:23px;margin-bottom:22px}.quiz__opts{grid-template-columns:1fr 1fr;gap:9px}.quiz__opt{padding:15px 10px;min-height:70px;font-size:12px;gap:9px}.quiz__opt-ic{width:22px;height:22px}.quiz__result-h{font-size:27px}.quiz__cta{flex-direction:column}.quiz__cta .btn{width:100%}.p-reviews .review-card{flex-basis:100%;padding:25px 22px 20px 0;min-height:310px}.review-card__quote{font-size:25px;line-height:1.5;letter-spacing:-.035em}.review-card__attrib{align-items:flex-start;flex-direction:column;gap:7px;margin-top:25px}.p-review-links{flex-direction:column;align-items:flex-start;gap:15px;margin-top:20px}.p-first-grid,.p-faq-grid{grid-template-columns:1fr;gap:36px}.p-first-grid h2,.p-faq-grid h2{font-size:39px!important}.p-first-grid>div:first-child>p{font-size:13px;margin:24px 0}.p-steps article{grid-template-columns:22px 1fr;gap:20px;padding:23px 0}.p-steps h3{font-size:24px;margin-bottom:10px}.p-steps p{font-size:13px}.p-first-links{flex-direction:row;flex-wrap:wrap;font-size:11px;gap:20px}.p-faq summary{font-size:16px;padding:22px 0;gap:20px}.p-faq details>p{font-size:13px;padding-right:10px}.p-visit{padding:60px 0 45px}.p-visit .p-section-head{display:flex;gap:25px;align-items:flex-end;flex-wrap:wrap}.p-visit .p-section-head .p-button{margin-top:0}.p-visit-grid{grid-template-columns:1fr;gap:30px}.p-office img{height:230px;border-radius:6px}.p-office>a{font-size:11px;padding:15px 0}.p-phone{font-size:30px}.p-hours dl{margin:20px 0;font-size:13px}.p-hours dl>div{padding:9px 0}.p-hours .p-link{font-size:12px}body .site-footer{padding:45px 22px 28px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px 25px}.footer-brand{grid-column:1/-1}.footer-col:last-child{grid-column:auto}.footer-brand>p:not(.footer-brand__tag){max-width:35ch}.footer-brand .btn{margin-top:18px!important}.footer-brand__tag{font-size:25px}.footer-col__title{margin-top:0}.footer-bottom{margin-top:30px}.footer-bottom__legal{flex-wrap:wrap;gap:20px}.appointment-drawer{border-radius:12px;max-height:calc(100dvh - 24px);max-width:calc(100% - 24px)}.appointment-drawer__inside{padding:32px 24px}.appointment-drawer #appointment-title{font-size:46px}.appointment-choice{padding:17px}.appointment-drawer__close{right:14px;top:14px}.appointment-faces{margin-bottom:20px}body:not(.is-concept-home) .page-hero__h{font-size:46px!important}.p-loop-toggle{right:10%;font-size:10px}}
@media(max-width:380px){.p-hero h1{font-size:61px}.p-service-panel{height:380px}.quiz__opt{font-size:11px;padding:14px 8px}.quiz__opt-ic{width:20px;height:20px}.p-doctor-small{gap:0 17px}}
@media(max-height:650px) and (max-width:600px){.p-hero{min-height:620px}.p-hero-content{padding-top:90px;padding-bottom:40px}.p-hero h1{font-size:57px}.p-hero .c-hero-copy>p{margin-bottom:18px}.p-hero-art{height:75%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.p-motion,.p-loop-toggle{display:none}.p-loop-row{overflow:auto}.p-loop-track{transform:none}.p-loop-set[aria-hidden=true]{display:none}}
/* nav-dropdown.css */
/* Header dropdowns (About, Patient Info) for every page shell, including clean-style pages. */
.nav__group{position:relative;display:inline-flex;align-items:center}
.nav__link--parent{display:inline-flex;align-items:center;gap:4px}
.nav__caret{flex:none;transition:transform .2s ease}
.nav__group:hover .nav__caret,.nav__group:focus-within .nav__caret{transform:rotate(-180deg)}
.nav__dropdown{position:absolute;left:50%;top:100%;transform:translate(-50%,6px);min-width:220px;padding:10px;background:#fff;color:var(--pearl,#13243b);border:1px solid rgba(19,36,59,.12);border-radius:14px;box-shadow:0 18px 44px rgba(8,19,33,.16);display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:60}
.nav__dropdown::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.nav__group:hover .nav__dropdown,.nav__group:focus-within .nav__dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
body .site-header .nav__dropdown-link{display:block;padding:11px 14px;border-radius:9px;font-size:14px;color:var(--pearl,#13243b)!important;text-decoration:none;white-space:nowrap}
body .site-header .nav__dropdown-link:hover,body .site-header .nav__dropdown-link[data-active="true"]{background:rgba(19,36,59,.06)}
.mnav__sub{margin:4px 0 8px;padding:0 0 0 18px;border-left:1px solid rgba(19,36,59,.18);display:flex;flex-direction:column}
.mnav__sub li a{display:block;padding:10px 0;font-size:19px;text-decoration:none}
/* treatment-editorial.css */
/* Ariessence reference geometry, rendered with Pearl's identity and content. */
.is-pearl-treatment .site-header,.is-pearl-treatment .nav{height:72px}
.pd-treatment{padding-top:72px}
.pd-container{width:100%;max-width:1140px;padding-inline:15px;margin-inline:auto}
.pd-treatment h1,.pd-treatment h2,.pd-treatment h3,.is-pearl-treatment .pd-quick h2{font-family:'Newsreader',Georgia,serif!important;font-weight:400;letter-spacing:-.025em;line-height:1.08}
.pd-treatment h2{font-size:60px}
.pd-treatment em{font-family:inherit!important;font-style:italic!important}
.pd-hero{height:605px;position:relative;background:var(--pearl);color:white;display:flex;align-items:flex-end;overflow:hidden}
.pd-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.pd-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#081321f5,rgba(8,19,33,.45) 36%,transparent 80%)}
.pd-hero>.pd-container{position:relative;z-index:1;padding-bottom:94px}
.pd-treatment .pd-hero h1{font-size:60px;max-width:1050px;margin:20px 0 0;line-height:1.07;color:#fff}
.pd-hero h1>span{white-space:nowrap}
.pd-breadcrumb{display:flex;flex-wrap:wrap;gap:16px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;align-items:center}
.pd-breadcrumb a{text-decoration:none}
.pd-image-note{position:absolute;right:22px;bottom:12px;z-index:1;font-size:10px;color:white}
.pd-section{padding:80px 0}
.pd-aside{display:grid;grid-template-columns:255px 1fr;gap:30px}
.pd-treatment h2.pd-small-title{font-size:36px;line-height:1.12;margin:0 0 26px}
.pd-prose p{font-size:16px;line-height:1.9;margin:0 0 22px;max-width:76ch}
.pd-prose p:last-child{margin-bottom:0}
.pd-intro p:first-child{font-size:21px;line-height:1.65}
.pd-button{display:inline-flex;gap:24px;align-items:center;justify-content:center;padding:14px 24px;min-height:50px;background:var(--pearl);color:white;border:1px solid var(--pearl);border-radius:40px;text-decoration:none;font-size:13px;line-height:1.5;font-weight:500;transition:transform .2s}
.pd-button:hover{transform:translateY(-2px)}
.pd-navy{background:var(--pearl);color:white}
.pd-navy .pd-button{background:white;color:var(--pearl);border-color:white}
.pd-halves{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
.pd-overline{font-family:'Newsreader',Georgia,serif;font-size:30px;line-height:1.2;margin-bottom:24px}
.pd-facts{padding:85px 0}
.pd-facts h2{max-width:460px}
.pd-accordions{padding-left:40px}
.pd-accordions details{border-bottom:1px solid #ffffff45}
.pd-accordions details:first-child{border-top:1px solid #ffffff45}
.pd-accordions summary{list-style:none;display:flex;justify-content:space-between;gap:20px;cursor:pointer;padding:19px 0;font-family:'Newsreader',Georgia,serif;font-size:27px;line-height:1.2}
.pd-accordions summary::-webkit-details-marker{display:none}
.pd-accordions details[open] summary>span{transform:rotate(45deg)}
.pd-accordions details p{font-size:14px;line-height:1.85;padding:0 25px 24px 0}
.pd-long-copy h2{margin-bottom:25px}
.pd-long-copy .pd-prose p{max-width:100%}
.pd-benefit{padding-top:0;padding-bottom:40px}
.pd-expect{padding-top:40px}
.pd-photo-row>figure{position:relative}
.pd-photo-row>figure>img{width:100%;height:560px;object-fit:cover;object-position:50% 40%}
.pd-photo-row>figure>img.pd-doctor-photo{object-position:50% 25%}
.pd-photo-row figcaption{position:absolute;bottom:0;left:0;right:0;padding:32px 16px 12px;font-size:11px;color:white;background:linear-gradient(transparent,#081321b0)}
.pd-photo-copy{padding:35px 30px}
.pd-photo-copy h2{margin-bottom:28px}
.pd-photo-copy .pd-overline{font-size:25px}
.pd-photo-copy .pd-button{margin-top:28px}
.pd-text-link{display:inline-flex;align-items:center;gap:25px;padding:9px 0;border-bottom:1px solid currentColor;text-decoration:none;font-size:14px;line-height:1.5}
.pd-photo-copy .pd-text-link{margin-top:25px}
.pd-answer{margin-bottom:32px}
.pd-answer:last-child{margin-bottom:0}
.pd-answer h3{font-size:25px;margin-bottom:12px}
.pd-answer p{font-size:15px;line-height:1.85}
.pd-faq{border-top:1px solid var(--line);padding-bottom:50px}
.pd-consult{padding-top:30px}
.pd-consult .pd-button{margin-top:24px}
.pd-practice{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.pd-practice>figure>img{width:100%;height:100%;min-height:600px;max-height:720px;object-fit:cover;object-position:center 25%}
.pd-practice>div{align-self:center;padding:70px clamp(30px,5vw,90px)}
.pd-practice h2{margin-bottom:28px}
.pd-practice .pd-prose p{font-size:16px}
.pd-practice .pd-text-link{margin-top:28px}
.pd-patient-reviews{text-align:center}
.pd-patient-reviews .pd-overline{font-size:24px}
.pd-patient-reviews .rev-carousel{max-width:900px;margin:34px auto 30px;min-width:0}
.pd-patient-reviews .review-card{flex:0 0 100%;scroll-snap-align:start;padding:10px 20px 30px;min-height:280px}
.pd-patient-reviews .review-card__quote{font-family:'Newsreader',Georgia,serif;font-size:34px;line-height:1.4;letter-spacing:-.02em;margin:auto}
.pd-patient-reviews .rev-stars,.pd-patient-reviews .review-card__attrib{justify-content:center}
.pd-patient-reviews .rev-carousel__nav svg{width:18px;height:18px}
.pd-visit{gap:100px}
.pd-visit h2{margin-bottom:25px}
.pd-visit p{font-size:16px;line-height:1.8;margin-bottom:18px}
.pd-phone{font-family:'Newsreader',Georgia,serif;font-size:38px;text-decoration:none}
.pd-visit dl{margin:22px 0 30px;font-size:14px}
.pd-visit dl>div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid #ffffff35}
.pd-visit dd{margin:0;text-align:right}
.pd-quick-toggle{position:fixed;right:0;top:38%;z-index:45;writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.2em;font-size:10px;display:flex;gap:18px;align-items:center;border:1px solid #ffffff55;border-right:0;background:var(--pearl);color:white;padding:22px 13px;border-radius:15px 0 0 15px}
.pd-quick{position:fixed;inset:0 0 0 auto;margin:0;height:100dvh;max-height:100dvh;width:390px;max-width:calc(100% - 25px);border:0;padding:32px;background:var(--pearl);color:white}
.pd-quick::backdrop{background:#07142580;backdrop-filter:blur(3px)}
.pd-quick-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:20px}
.pd-quick-head h2{font-size:32px!important}
.pd-quick-head button{border:1px solid #ffffff50;color:white;background:transparent;border-radius:50%;width:44px;height:44px;font-size:27px}
.pd-quick nav{display:grid;margin-bottom:32px}
.pd-quick nav a{padding:13px 0;border-bottom:1px solid #ffffff35;display:flex;justify-content:space-between;text-decoration:none;font-size:15px}
.pd-quick .pd-button{background:white;color:var(--pearl)}
@media(max-width:1199px){.pd-container{max-width:960px}.pd-aside{grid-template-columns:210px 1fr}.pd-treatment h2{font-size:52px}.pd-photo-copy{padding:25px 20px}.pd-photo-row>figure>img{height:520px}.pd-visit{gap:60px}}
@media(max-width:800px){.pd-container{padding-inline:24px}.pd-treatment h2{font-size:44px}.pd-hero{height:590px}.pd-treatment .pd-hero h1{font-size:50px}.pd-hero>.pd-container{padding-bottom:65px}.pd-aside{grid-template-columns:1fr;gap:22px}.pd-section{padding:58px 0}.pd-halves{grid-template-columns:1fr;gap:36px}.pd-accordions{padding-left:0}.pd-photo-row>figure>img{height:560px}.pd-photo-copy{padding:0}.pd-benefit{padding-top:0;padding-bottom:28px}.pd-expect{padding-top:28px}.pd-expect .pd-photo-copy{order:1}.pd-expect figure{order:0}.pd-practice{grid-template-columns:1fr 1fr}.pd-practice>div{padding:36px 28px}.pd-practice h2{font-size:40px}.pd-practice>figure>img{min-height:550px}.pd-visit{gap:40px}.pd-faq{padding-bottom:35px}.pd-consult{padding-top:20px}}
@media(max-width:600px){.is-pearl-treatment .site-header,.is-pearl-treatment .nav{height:74px}.pd-treatment{padding-top:74px}.pd-container{padding-inline:22px}.pd-hero{height:530px}.pd-hero>img{object-position:50% 34%}.pd-hero>.pd-container{padding-bottom:58px}.pd-treatment .pd-hero h1{font-size:43px;line-height:1.03;margin-top:22px}.pd-hero h1>span{display:block;white-space:normal;font-size:32px;margin-top:12px}.pd-breadcrumb{font-size:9px;gap:11px;letter-spacing:.06em}.pd-treatment h2{font-size:42px}.pd-treatment h2.pd-small-title{font-size:34px;margin-bottom:20px}.pd-section{padding:48px 0}.pd-prose p{font-size:15px;line-height:1.85}.pd-intro p:first-child{font-size:19px}.pd-overline{font-size:25px;margin-bottom:20px}.pd-accordions summary{font-size:25px}.pd-accordions details p{font-size:14px}.pd-quick-toggle{top:auto;bottom:18px;writing-mode:horizontal-tb;border-radius:30px 0 0 30px;padding:13px 17px;letter-spacing:.08em;gap:15px}.pd-quick{padding:26px}.pd-photo-row>figure>img{height:415px}.pd-photo-row{gap:28px}.pd-photo-copy .pd-overline{font-size:23px}.pd-benefit{padding-top:0;padding-bottom:24px}.pd-expect{padding-top:24px}.pd-practice{grid-template-columns:1fr}.pd-practice>figure>img{height:420px;min-height:0;object-position:50% 25%}.pd-practice>div{padding:45px 22px}.pd-practice h2{font-size:44px}.pd-practice .pd-prose p{font-size:15px}.pd-answer h3{font-size:24px}.pd-answer p{font-size:14px}.pd-patient-reviews .review-card__quote{font-size:27px}.pd-patient-reviews .review-card{padding:0 0 25px;min-height:340px}.pd-patient-reviews .review-card__attrib{align-items:center}.pd-patient-reviews .pd-overline{font-size:22px}.pd-visit dl{font-size:13px}.pd-consult{padding-top:0}.pd-faq{padding-bottom:42px}}
.pd-treatment[data-treatment="teeth-whitening"] .pd-hero>img,.pd-treatment[data-treatment="fastbraces"] .pd-hero>img{object-position:50% 3%}
.pd-treatment[data-treatment="dental-implants"] .pd-hero>img{object-position:65% 34%}
.pd-treatment[data-treatment="porcelain-veneers"] .pd-hero>img{object-position:50% 30%}
@media(max-width:600px){.pd-treatment[data-treatment="teeth-whitening"] .pd-hero>img,.pd-treatment[data-treatment="fastbraces"] .pd-hero>img{object-position:50% 20%}.pd-treatment[data-treatment="dental-implants"] .pd-hero>img{object-position:74% 50%}.pd-treatment[data-treatment="pediatric-dentistry"] .pd-hero>img{object-position:60% 50%}}
/* treatment-service.css */
/* Service-page content blocks (bullet lists, quick-facts tagline, how-it-works, stats band, sibling chips) in Pearl's identity. */
.pd-list{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:12px;max-width:70ch}
.pd-list li{position:relative;padding-left:26px;font-size:16px;line-height:1.6}
.pd-list li::before{content:"";position:absolute;left:2px;top:10px;width:8px;height:8px;border-radius:50%;background:var(--pearl)}
.pd-navy .pd-list li::before{background:#fff}
.pd-intro .pd-list{margin-top:8px}
.pd-tagline{font-family:'Newsreader',Georgia,serif;font-size:24px;line-height:1.3;margin:26px 0 12px;max-width:420px}
.pd-quick-intro{font-size:15px;line-height:1.8;max-width:440px;opacity:.9}
.pd-long-copy h2.pd-how{margin-top:56px}
.pd-photo-copy .pd-list{margin-top:6px}
.pd-photo-copy .pd-list+.pd-button{margin-top:30px}
.pd-note{font-size:13px;line-height:1.7;opacity:.72;max-width:60ch}
.pd-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:34px 0 0;padding:26px 0 0;border-top:1px solid #ffffff35}
.pd-stats dt{font-family:'Newsreader',Georgia,serif;font-size:24px;line-height:1.15}
.pd-stats dd{margin:6px 0 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.pd-practice .pd-stats+.pd-text-link{margin-top:30px}
.pd-related{padding-top:0}
.pd-related h2{font-size:36px;margin-bottom:24px}
.pd-chips{display:flex;flex-wrap:wrap;gap:12px}
.pd-chip{display:inline-flex;align-items:center;min-height:44px;padding:10px 20px;border:1px solid var(--pearl);border-radius:40px;text-decoration:none;font-size:14px;color:var(--pearl);transition:background .2s,color .2s}
.pd-chip:hover{background:var(--pearl);color:#fff}
@media(max-width:800px){.pd-stats{grid-template-columns:1fr 1fr;gap:18px}.pd-related h2{font-size:32px}}
@media(max-width:600px){.pd-list li{font-size:15px}.pd-tagline{font-size:22px}.pd-stats{grid-template-columns:1fr;gap:16px}.pd-stats dt{font-size:22px}.pd-related h2{font-size:30px}.pd-chip{min-height:48px}}
/* wide hero photographs (hero-<slug>.webp, subject on the right, headline room on the left) */
.pd-hero>picture{position:absolute;inset:0;display:block}
.pd-hero>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.pd-treatment[data-treatment] .pd-hero[data-wide-hero]>img,.pd-treatment[data-treatment] .pd-hero[data-wide-hero]>picture>img{object-position:60% 50%}
.pd-hero[data-wide-hero]:after{background:linear-gradient(0deg,#081321f5,rgba(8,19,33,.55) 36%,rgba(8,19,33,.12) 80%),linear-gradient(90deg,rgba(8,19,33,.45),transparent 55%)}
@media(max-width:600px){.pd-treatment[data-treatment] .pd-hero[data-wide-hero]>picture>img{object-position:50% 40%}}

/* quick-links pill stays out of the fold on phones until the reader scrolls past the hero */
@media(max-width:600px){.pd-quick-toggle{transform:translateX(110%);transition:transform .3s ease}.pd-quick-toggle.is-visible{transform:none}}
/* pearl-system.css */
/* Pearl Dental Care system layer.
   Loaded in head() on every one of the 51 pages, after each page's own stylesheets and directly
   before apple-buttons.css, which still owns buttons and still loads last.
   Purpose: one footer, one wordmark, one kicker, one accordion, one FAQ pattern, one quote face,
   one breadcrumb, one map and one caption treatment across the whole site.
   The homepage declares its own tokens in home-base.css; anything token-shaped here is scoped
   with body:not(.pearl-reference-home) so the homepage keeps the look the audit praised. */

/* ============================================================ tokens */
/* site.css ships --teal as #c5a467. Measured on white that is 2.36:1 and fails WCAG AA for text.
   Text gold becomes #8a6d2f (4.87:1 on white). On navy the lighter #c5a467 is restored, because
   there it is an accent on a dark plate and reads at well over 4.5:1. */
body:not(.pearl-reference-home) {
  --teal: #8a6d2f;
  --teal-2: #8a6d2f;
  --teal-soft: #8a6d2f;
  --pd-navy: #13243b;
  --pd-gold-dark: #8a6d2f;
  --pd-gold-light: #c5a467;
  --pd-rule: rgba(19, 36, 59, .18);
}
body:not(.pearl-reference-home) .section--dark,
body:not(.pearl-reference-home) .section--teal,
body:not(.pearl-reference-home) .consult-cta,
body:not(.pearl-reference-home) .pd-navy,
body:not(.pearl-reference-home) .p-dark,
body:not(.pearl-reference-home) .cmq,
body .site-footer {
  --teal: #c5a467;
  --teal-2: #c5a467;
  --teal-soft: #c5a467;
}

/* ============================================================ wordmark */
/* pearl-wordmark-white.webp is a real alpha knockout, so the plate rectangle is gone and the
   old overflow crop and the SVG colour-matrix filter are both retired. */
body .pearl-logo {
  display: block;
  width: 185px;
  height: auto;
  overflow: visible;
  background: transparent;
  border-radius: 0;
}
body .pearl-logo img {
  width: 100%;
  height: auto;
  max-width: none;
  margin: 0;
  object-fit: contain;
  filter: none;
}
body .site-footer .pearl-logo { width: 205px; margin-bottom: 22px; }
@media (max-width: 900px) {
  body .pearl-logo { width: 156px; }
  body .site-header .nav__logo .pearl-logo { transform: none; }
  body .site-footer .pearl-logo { width: 180px; }
}
/* Dr. Jaamour asked for a bigger logo (9/25): the bar grows so the larger wordmark keeps its breathing room. */
:root:has(body.pearl-reference-home) { --nav-h: 96px; }
/* The wordmark file has empty space under the tooth, so nudge it down 5.2% of its height to centre the visible mark in the bar. */
body .site-header .nav__logo .pearl-logo { transform: translateY(5.2%); }
body:not(.pearl-reference-home) .site-header, body:not(.pearl-reference-home) .nav { height: 96px; }
@media (max-width: 800px) {
  :root:has(body.pearl-reference-home) { --nav-h: 80px; }
  body:not(.pearl-reference-home) .site-header, body:not(.pearl-reference-home) .nav { height: 82px; }
}

/* ============================================================ one footer */
/* atelier.css repaints the shared footer white on the 50 inner pages, which left the brand
   column's white type invisible and the wordmark reading as a navy rectangle. Navy everywhere. */
body .site-footer {
  background: #13243b;
  color: rgba(255, 255, 255, .72);
  border: 0;
  padding: 72px var(--gutter, 32px) 34px;
}
body .site-footer > .wrap { max-width: 1456px; margin: auto; padding: 0; }
body .site-footer a { color: rgba(255, 255, 255, .82) !important; text-decoration: none; }
body .site-footer a:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
body .site-footer h2,
body .site-footer .footer-brand__tag { color: #fff; }
body .site-footer .footer-brand > p:not(.footer-brand__tag) { color: rgba(255, 255, 255, .66); }
body .site-footer .footer-col__title {
  color: rgba(255, 255, 255, .58) !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  margin: 6px 0 16px;
}
/* one list reset: the old stack ran site.css gap, atelier li margin and a 40px min-height
   together and opened roughly 70px between links. */
body .site-footer .footer-col ul { display: flex; flex-direction: column; gap: 0; margin: 0; padding: 0; list-style: none; }
body .site-footer .footer-col li { margin: 0; }
body .site-footer .footer-col a,
body .site-footer .footer-col__addr {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  padding: 11px 0;
  min-height: 0;
}
body .site-footer .footer-col__addr { color: rgba(255, 255, 255, .5); }
body .site-footer .btn,
body .site-footer .btn--ghost-light {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .4);
  color: #fff;
  font-size: 13px;
}
body .site-footer .btn:hover { background: rgba(255, 255, 255, .1); border-color: #fff; color: #fff; }
body .site-footer .footer-brand .btn { margin-top: 22px !important; }
body .site-footer .footer-bottom {
  margin-top: 44px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, .14);
  color: rgba(255, 255, 255, .55);
}
body .site-footer .footer-bottom__brand { font-size: 13px; gap: 8px; }
body .site-footer .footer-bottom__legal { font-size: 13px; }
body .site-footer .site-note { color: rgba(255, 255, 255, .5); font-size: 12px; line-height: 1.6; }
body .site-footer .tel-inline { color: rgba(255, 255, 255, .82) !important; }

/* ============================================================ one kicker */
/* Five kicker systems collapse to the homepage one: uppercase, 12px, .14em, navy, 24px rule. */
body:not(.pearl-reference-home) .kicker,
body:not(.pearl-reference-home) .eyebrow,
body:not(.pearl-reference-home) .page-hero__eyebrow,
body:not(.pearl-reference-home) .lcard__state,
body:not(.pearl-reference-home) .pd-overline,
body:not(.pearl-reference-home) .lib-card__cat {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-body, 'Manrope', Arial, sans-serif) !important;
  font-size: 12px !important;
  font-weight: 600;
  font-style: normal;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  line-height: 1.4;
  color: #13243b;
  margin-bottom: 20px;
}
body:not(.pearl-reference-home) .kicker::before,
body:not(.pearl-reference-home) .page-hero__eyebrow::before,
body:not(.pearl-reference-home) .pd-overline::before {
  content: "";
  width: 24px;
  height: 1px;
  flex: 0 0 24px;
  background: currentColor;
  opacity: .55;
}
body:not(.pearl-reference-home) .kicker::after { content: none; }
body:not(.pearl-reference-home) .section--dark .kicker,
body:not(.pearl-reference-home) .section--teal .kicker,
body:not(.pearl-reference-home) .consult-cta .kicker,
body:not(.pearl-reference-home) .pd-navy .pd-overline,
body:not(.pearl-reference-home) .pd-navy .kicker,
body:not(.pearl-reference-home) .p-dark .kicker {
  color: #c5a467;
}
/* the library and the treatment "at a glance" rail centre their kickers; keep the rule tidy */
body:not(.pearl-reference-home) .txt-center .kicker { justify-content: center; }

/* ============================================================ one accordion */
/* Three grammars (filled navy minus, outlined plus, bare + and x) become one: a 34px outlined
   navy circle holding a plus that becomes a minus when the panel is open. Written here rather
   than in site.css because treatment pages are cleanStyles and never load site.css. */
body .faq-item,
body .pd-accordions details {
  border-bottom: 1px solid var(--pd-rule, rgba(19, 36, 59, .18));
}
body .faq-item > summary,
body .pd-accordions summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  cursor: pointer;
  padding: 22px 0;
  font-family: var(--font-body, 'Manrope', Arial, sans-serif) !important;
  font-size: 19px !important;
  font-weight: 500;
  font-style: normal;
  line-height: 1.35;
  letter-spacing: -.01em;
}
body .faq-item > summary::-webkit-details-marker,
body .pd-accordions summary::-webkit-details-marker { display: none; }
body .faq-item__q { font-family: inherit; font-size: inherit; font-weight: inherit; }

/* one control */
body .faq-item__icon,
body .pd-accordions summary > span,
body .pearl-tech details summary > span {
  position: relative;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid currentColor;
  background: transparent !important;
  color: inherit;
  opacity: .62;
  font-size: 0;
  transform: none !important;
  transition: opacity .2s ease;
}
body .faq-item__icon::before,
body .faq-item__icon::after,
body .pd-accordions summary > span::before,
body .pd-accordions summary > span::after,
body .pearl-tech details summary > span::before,
body .pearl-tech details summary > span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: currentColor;
  transition: transform .25s ease, opacity .25s ease;
}
body .faq-item__icon::before,
body .pd-accordions summary > span::before,
body .pearl-tech details summary > span::before {
  width: 12px; height: 1.5px; margin: -.75px 0 0 -6px; transform: none;
}
body .faq-item__icon::after,
body .pd-accordions summary > span::after,
body .pearl-tech details summary > span::after {
  width: 1.5px; height: 12px; margin: -6px 0 0 -.75px; transform: none;
}
body .faq-item[open] .faq-item__icon,
body .pd-accordions details[open] summary > span,
body .pearl-tech details[open] summary > span { opacity: 1; }
body .faq-item[open] .faq-item__icon::after,
body .pd-accordions details[open] summary > span::after,
body .pearl-tech details[open] summary > span::after { transform: scaleY(0); }
body .faq-item__a,
body .pd-accordions details > p,
body .pearl-tech details > div {
  font-size: 16px;
  line-height: 1.75;
  max-width: 68ch;
  padding: 0 58px 24px 0;
  color: inherit;
  opacity: .84;
}
/* dark plates: hairlines and controls read on navy */
body .pd-navy .pd-accordions details,
body .section--dark .faq-item { border-color: rgba(255, 255, 255, .28); }

/* ============================================================ one quote face */
body:not(.pearl-reference-home) .review-card__quote,
body:not(.pearl-reference-home) .rev__lead blockquote,
body:not(.pearl-reference-home) .pearl-google-feature blockquote {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 34px;
  line-height: 1.32;
  letter-spacing: -.02em;
  font-style: normal;
}
body:not(.pearl-reference-home) .pearl-google-pair blockquote,
body:not(.pearl-reference-home) .quote-sm blockquote {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 20px;
  line-height: 1.45;
  letter-spacing: -.015em;
}
@media (max-width: 700px) {
  body:not(.pearl-reference-home) .review-card__quote,
  body:not(.pearl-reference-home) .rev__lead blockquote,
  body:not(.pearl-reference-home) .pearl-google-feature blockquote { font-size: 26px; }
  body:not(.pearl-reference-home) .pearl-google-pair blockquote { font-size: 18px; }
}

/* ============================================================ one breadcrumb */
body .crumbs,
body .lib-crumbs,
body .pd-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 22px;
  font-family: var(--font-body, 'Manrope', Arial, sans-serif);
  font-size: 13px !important;
  font-weight: 400;
  letter-spacing: 0 !important;
  text-transform: none !important;
  line-height: 1.5;
  color: rgba(19, 36, 59, .74);
}
body .crumbs a,
body .lib-crumbs a,
body .pd-breadcrumb a { color: #13243b; text-decoration: none; border-bottom: 1px solid rgba(19, 36, 59, .28); padding-bottom: 1px; }
body .crumbs a:hover,
body .lib-crumbs a:hover,
body .pd-breadcrumb a:hover { border-bottom-color: #13243b; }
body .crumbs > span[aria-hidden],
body .lib-crumbs > span[aria-hidden],
body .pd-breadcrumb > span:not(:last-child) { opacity: .45; }
/* the treatment breadcrumb sits in its own white strip under the hero, not over the photo */
body .pd-crumbbar { background: #fff; border-bottom: 1px solid rgba(19, 36, 59, .1); }
body .pd-crumbbar .pd-container { padding-top: 20px; padding-bottom: 18px; }
body .pd-crumbbar .pd-breadcrumb { margin: 0; }

/* ============================================================ captions */
/* Disclosure captions are legally load bearing, so they never sit white on near white. */
body .c-photo-caption,
body .bigpic__cap,
body .pd-image-note {
  color: #13243b;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0;
}
body .pd-image-note {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 7px 12px;
  background: rgba(255, 255, 255, .92);
  color: #13243b;
  border-radius: 3px 0 0 0;
}
body figure figcaption,
body .pearl-visit__photo figcaption,
body .pd-photo-row figcaption {
  font-size: 12px;
  line-height: 1.5;
  color: #fff;
}
body .pearl-visit__photo figcaption,
body .pd-photo-row figcaption {
  background: linear-gradient(transparent, rgba(8, 19, 33, .82) 55%);
  padding: 54px 20px 16px;
  text-shadow: 0 1px 3px rgba(8, 19, 33, .55);
}

/* ============================================================ legal pages */
/* pages/legal.mjs emits bare h2 + p into .wrap.policies and no stylesheet ever styled it. */
/* .policies is the wrap itself, so cap the children, not the column, or the block centres */
body .policies { max-width: none; }
body .policies > * { max-width: 68ch; }
body .policies h2 {
  font-family: var(--font-body, 'Manrope', Arial, sans-serif);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.02em;
  margin: 52px 0 12px;
  padding-top: 28px;
  border-top: 1px solid rgba(19, 36, 59, .14);
}
body .policies h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
body .policies p { font-size: 16px; line-height: 1.75; margin: 0; max-width: 68ch; }
body .policies p + p { margin-top: 18px; }
body .policies a { color: #13243b; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 700px) {
  body .policies h2 { font-size: 20px; margin-top: 40px; padding-top: 24px; }
}

/* ============================================================ inner page hero */
/* Fifty inner pages opened with text on white and 700px of empty right half. Pages with an image
   of their own put it in the right cell; the rest halve the hero and let section one carry. */
body:not(.pearl-reference-home) .page-hero {
  padding-top: 122px;
  padding-bottom: 34px;
}
body:not(.pearl-reference-home) .page-hero__sub { max-width: 62ch; }
body .page-hero--split > .wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(32px, 4vw, 72px);
  align-items: center;
}
body .page-hero--split .page-hero__media { margin: 0; }
body .page-hero--split .page-hero__media img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 4px;
  display: block;
}
body .page-hero--split .page-hero__media figcaption {
  position: static;
  margin-top: 10px;
  color: rgba(19, 36, 59, .74);
  font-size: 12px;
  background: none;
  padding: 0;
  text-shadow: none;
}
@media (max-width: 900px) {
  body .page-hero--split > .wrap { display: block; }
  body .page-hero--split .page-hero__media { margin-top: 28px; }
  body .page-hero--split .page-hero__media img { height: 210px; }
}

/* ============================================================ library index hero */
body .lib-hero .txt-center { text-align: left; }
body .lib-hero .kicker { justify-content: flex-start !important; }
body .lib-hero__h { max-width: 18ch; }
body .lib-hero__h .serif,
body .lib-hero__h em {
  font-family: inherit;
  font-style: normal;
  color: inherit;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  animation: none !important;
}
body .lib-hero .lib-hero__sub { margin-left: 0; max-width: 62ch; }

/* ============================================================ no shimmer */
/* background-clip:text with an infinite gradient loop is a known invisibility risk and it gave
   the site a second closing CTA. One emphasis rule: solid colour, no animation. */
body:not(.pearl-reference-home) .hero__h em,
body:not(.pearl-reference-home) .cmq__h .serif-i,
body:not(.pearl-reference-home) .section--dark .serif,
body:not(.pearl-reference-home) .consult-cta .serif,
body:not(.pearl-reference-home) #quiz .quiz__h .serif {
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--teal) !important;
  animation: none !important;
  filter: none !important;
}

/* ============================================================ one map */
/* Every Google embed sits in the same panel. The panel is designed navy with the address on it,
   so it reads as a component whether or not the embed has painted. The iframe is pulled up past
   Google's own blue "Open in Maps" chip, which is off palette and cannot be styled from outside,
   while the attribution strip along the bottom stays visible. */
body .pd-map {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  background: #13243b;
  min-width: 0;
  isolation: isolate;
}
body .pd-map__plate {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 28px;
  color: rgba(255, 255, 255, .86);
  background:
    radial-gradient(120% 90% at 22% 18%, rgba(197, 164, 103, .16), transparent 62%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .05) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, .05) 0 1px, transparent 1px 64px),
    #13243b;
}
body .pd-map__plate strong { display: block; font-size: 19px; font-weight: 500; letter-spacing: -.02em; color: #fff; }
body .pd-map__plate span { font-size: 14px; line-height: 1.5; }
body .pd-map__pin { width: 26px; height: 26px; margin-bottom: 6px; display: block; fill: none; stroke: #c5a467; stroke-width: 1.6; }
body .pd-map iframe {
  position: absolute;
  left: 0;
  right: 0;
  top: -80px;
  width: 100%;
  height: calc(100% + 80px);
  border: 0;
  display: block;
  z-index: 1;
  opacity: 0;
  transition: opacity .4s ease;
}
body .pd-map iframe.is-live { opacity: 1; }
@media (prefers-reduced-motion: reduce) { body .pd-map iframe { transition: none; } }
body .pd-map__cta {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 28px;
  padding: 13px 18px;
  min-height: 48px;
  background: #fff;
  color: #13243b !important;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid rgba(19, 36, 59, .14);
  border-radius: 3px;
  box-shadow: 0 3px 15px rgba(19, 36, 59, .12);
}
body .pd-map__cta:hover { background: #f6f4ef; text-decoration: none !important; }
@media (max-width: 700px) {
  /* square crop on phones: the desktop-shaped panel pushed the map into a corner */
  body .pd-map { aspect-ratio: 1 / 1; height: auto !important; min-height: 0; }
  body .pd-map__cta { left: 12px; bottom: 12px; gap: 18px; }
}

/* ============================================================ tag rows */
/* Tag rows get a rule above them; the tag shapes themselves are owned by apple-buttons.css. */
body .pd-chips,
body .lib-related__chips { border-top: 1px solid rgba(19, 36, 59, .14); padding-top: 14px; display: flex; flex-wrap: wrap; gap: 0 4px; }

/* ============================================================ arrows and text links */
body .icon-arrow { width: 1.1em; height: 1.1em; }
body .icon-arrow--e { width: 1.15em; height: 1.15em; }
body .text-link,
body .pd-text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  line-height: 1.5;
}
body .text-link::after,
body .pd-text-link::after { content: none; }

/* ============================================================ pause controls */
/* One control: a labelled capsule, never under 44px. */
body .care-loop-toggle,
body .x-care-controls [data-care-play],
body .rail-control-bar .rail-play,
body .p-motion {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 11px 20px;
  border-radius: 999px;
  border: 1px solid currentColor;
  background: transparent;
  font-size: 13px;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  opacity: .85;
}
body .care-loop-toggle:hover,
body .x-care-controls [data-care-play]:hover,
body .rail-control-bar .rail-play:hover,
body .p-motion:hover { opacity: 1; }
body .care-loop-toggle { color: #fff; border-color: rgba(255, 255, 255, .45); }

/* ============================================================ technology cards */
body .tech-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; align-items: stretch; }
body .tech-item { display: flex; flex-direction: column; height: 100%; }
body .tech-item p { flex: 1; }
@media (max-width: 1000px) { body .tech-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { body .tech-list { grid-template-columns: 1fr; } }

/* ============================================================ mobile type floors */
/* Meta text was running to 9px and 10px on phones. Floor: body 16px, meta 13px, caption 12px. */
@media (max-width: 700px) {
  body p, body li, body dd, body dt { font-size: max(1em, 15px); }
  body .page-hero__sub,
  body .lib-article__lede,
  body .pd-prose p { font-size: 16px; }
  body .crumbs,
  body .lib-crumbs,
  body .pd-breadcrumb,
  body .footer-bottom__brand,
  body .footer-bottom__legal,
  body .footer-bottom__legal a,
  body .pearl-visit__label,
  body .lcard__state,
  body .pearl-google-rating small { font-size: 13px !important; }
  body .c-photo-caption,
  body .bigpic__cap,
  body .pd-image-note,
  body figure figcaption,
  body .site-note,
  body .pearl-visit__hours dd small { font-size: 12px !important; }
  body .site-footer .footer-col a,
  body .site-footer .footer-col__addr,
  body .site-footer .footer-col__title { font-size: 14px; }
}

/* ============================================================ sticky safety */
/* overflow:hidden on html or body kills position:sticky. clip does the same job and keeps it. */
html, body { overflow-x: clip; }

/* ============================================================ hero media, contain */
body .page-hero--split .page-hero__media--contain img {
  height: 240px;
  object-fit: contain;
  background: linear-gradient(180deg, #f7f5f0, #efece4);
  padding: 22px;
  border-radius: 4px;
}
@media (max-width: 900px) { body .page-hero--split .page-hero__media--contain img { height: 170px; } }

/* ============================================================ treatment pages */
/* Ray keeps the the reference layout section order and the serif display headings here. Everything that is
   chrome (footer, breadcrumb, buttons, accordion, measure, CTA position) matches the rest of the
   site. treatment-editorial.css loads before this file, so these win without !important games. */
body .pd-prose p,
body .pd-long-copy .pd-prose p,
body .pd-intro p,
body .pd-practice .pd-prose p { max-width: 68ch; }
body .pd-note { max-width: 68ch; }

/* the CTA left the heading cell; on phones it now follows the intro paragraph */
body .pd-aside__cta { margin: 26px 0 0; }
body .pd-aside__head { align-self: start; }

/* the FAQ block uses the site accordion, so it needs the light-plate rhythm */
body .pd-faq .faq-list { border-top: 1px solid rgba(19, 36, 59, .18); }
body .pd-faq .faq-item__a { padding-right: 58px; }

/* quick facts: one intro line under the heading, and the panel closes up */
body .pd-facts .pd-quick-intro { font-size: 17px; line-height: 1.7; max-width: 44ch; margin-top: 22px; opacity: .88; }
body .pd-facts .pd-halves { align-items: start; }
body .pd-accordions { padding-left: 0; }
@media (min-width: 801px) { body .pd-accordions { padding-left: 40px; } }

/* testimonial carousel: pair the controls, close the empty band, label the pause */
body .pd-patient-reviews .rev-carousel { margin-bottom: 8px; }
body .pd-patient-reviews .review-card { min-height: 0; padding-bottom: 12px; }
/* controls sit together under the quote instead of stranded at the two far edges */
body .pd-patient-reviews .rev-carousel {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 14px;
}
body .pd-patient-reviews .rev-carousel__track { flex: 0 0 100%; order: 0; margin-bottom: 10px; }
body .pd-patient-reviews .rev-carousel__nav--prev { order: 1; }
body .pd-patient-reviews .rail-control-bar { order: 2; margin: 0; }
body .pd-patient-reviews .rev-carousel__nav--next { order: 3; }
body .pd-patient-reviews .rev-carousel__nav {
  position: static !important;
  transform: none !important;
  margin: 0;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(19, 36, 59, .28);
  border-radius: 50%;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* the serif display face stays, the chrome type does not follow it */
body .pd-treatment .faq-item > summary,
body .pd-treatment .pd-accordions summary,
body .pd-treatment .pd-breadcrumb,
body .pd-treatment .pd-chip { font-family: var(--font-body, 'Manrope', Arial, sans-serif) !important; }

/* ============================================================ the pediatric band */
body .bigpic__cap { position: static; margin: 14px auto 0; padding: 0 var(--gutter, 24px); color: #13243b; }
body .bigpic { background: #fff; }

/* ============================================================ homepage refinements */
/* home-base.css and the home-*.css files load before this layer, so these land last. */

/* the marquee card sat on top of the running rows and clipped words mid-letter */
body.pearl-reference-home .cmq__card {
  position: static;
  transform: none;
  margin: 30px auto 0;
  box-shadow: 0 18px 50px rgba(19, 36, 59, .38);
}
body.pearl-reference-home .cmq__belt { padding-block: clamp(30px, 4vw, 52px) clamp(6px, 1vw, 14px); }
body.pearl-reference-home .cmq { padding-bottom: clamp(34px, 4vw, 56px); }

/* payments strip: one baseline for the three kickers, one divider rule, an equal card height */
body.pearl-reference-home .pearl-payments__intro,
body.pearl-reference-home .pearl-payments__coverage,
body.pearl-reference-home .pearl-payments__finance {
  justify-content: flex-start;
  padding-top: 36px;
  padding-bottom: 36px;
  margin: 0;
}
body.pearl-reference-home .pearl-payments__coverage { padding-left: 8%; padding-right: 6%; border-left: 1px solid rgba(19, 36, 59, .16); }
body.pearl-reference-home .pearl-payments__finance { padding-left: 30px; padding-right: 30px; }
body.pearl-reference-home .pearl-payments__finance .pearl-payments__finance-name { margin-top: auto; }
/* the bare "+" between the two plan names is a rule, not a character */
body.pearl-reference-home .pearl-payments__plus {
  display: block;
  width: 30px;
  height: 1px;
  background: currentColor;
  opacity: .3;
  margin: 6px 0;
}
@media (max-width: 760px) {
  body.pearl-reference-home .pearl-payments__intro,
  body.pearl-reference-home .pearl-payments__coverage,
  body.pearl-reference-home .pearl-payments__finance { padding-top: 26px; padding-bottom: 26px; }
  body.pearl-reference-home .pearl-payments__coverage { padding-left: 22px; padding-right: 0; }
  body.pearl-reference-home .pearl-payments__finance { padding-left: 22px !important; padding-right: 22px !important; }
}

/* service fold: the featured card includes the eyes */
body.pearl-reference-home .x-fold-photo img { object-position: 50% 28%; }

/* the pediatric band: no grey smear, a readable caption, subjects off centre */
body.pearl-reference-home .bigpic.family-wide img { object-position: 62% 40%; }
body.pearl-reference-home .bigpic__cap {
  position: static;
  margin: 14px auto 0;
  max-width: 1456px;
  color: #13243b;
  font-size: 12px;
}

/* the doctor block had a deep void under the portrait */
body.pearl-reference-home .our-story__grid { align-items: center; }

/* footer bottom reads left to right, not centred */
body .site-footer .footer-bottom,
body .site-footer .footer-bottom__brand,
body .site-footer .footer-bottom__brand span,
body .site-footer .footer-bottom__legal { text-align: left !important; }

/* ============================================================ neighborhood drive stat */
/* The six area pages were identical but for the town name. Each one now leads with its own
   measured drive time, the number a neighbour actually wants, in the hero's right cell. */
body .page-hero__aside { align-self: center; }
body .drive-stat {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 28px 30px;
  border: 1px solid rgba(19, 36, 59, .14);
  border-radius: 4px;
  background: linear-gradient(180deg, #fbf9f5, #f4f1ea);
}
body .drive-stat__num { font-size: 44px; line-height: 1; font-weight: 500; letter-spacing: -.04em; color: #13243b; }
body .drive-stat__lab { font-size: 15px; line-height: 1.5; color: rgba(19, 36, 59, .78); }
body .drive-stat__sub { font-size: 13px; color: rgba(19, 36, 59, .55); }
@media (max-width: 900px) { body .drive-stat { padding: 22px 24px; } body .drive-stat__num { font-size: 36px; } body .page-hero__aside { margin-top: 30px; } }

/* ============================================================ mobile header CTA */
/* The homepage hid this pill. It is the highest-intent surface on the site, so it shows here too,
   and it is one component: a white outline capsule on the navy (or transparent) header bar. */
body .nav__book-mobile {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 999px;
  color: #fff !important;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}
body .nav__book-mobile .icon-arrow { width: 14px; height: 14px; }
@media (max-width: 800px) { body .nav__book-mobile { display: inline-flex; } }
@media (min-width: 801px) { body .nav__book-mobile { display: none !important; } }

/* ============================================================ split hero ratio */
/* a stat card needs less room than a photo, so the headline keeps its line breaks */
body .page-hero--split:has(.page-hero__aside) > .wrap { grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); }

/* ============================================================ treatment hero note */
body .pd-image-note { right: 18px; bottom: 14px; border-radius: 3px; }

/* ============================================================ location card map */
/* the shared map panel sits beside the location card and matches its height */
body .single-loc__map { min-height: 420px; }
body .single-loc__map iframe { display: block; }
@media (max-width: 860px) { body .single-loc__map { min-height: 0; height: auto; } }

/* ============================================================ one quote face on the homepage */
/* The review block ran three type styles: a 40px display lead and two 17px sans supports.
   Same face, smaller size. */
body.pearl-reference-home .pearl-google-pair blockquote {
  font-family: var(--font-display, 'Newsreader', Georgia, serif);
  font-size: 21px;
  line-height: 1.42;
  letter-spacing: -.015em;
}
@media (max-width: 760px) {
  body.pearl-reference-home .pearl-google-pair blockquote { font-size: 18px; }
}

/* ============================================================ location card on phones */
/* card first, map second, and the directions capsule clears Google's attribution strip */
@media (max-width: 860px) {
  body .single-loc--lcard { display: flex; flex-direction: column; gap: 20px; }
  body .single-loc--lcard .single-loc__info { order: 0; }
  body .single-loc--lcard .single-loc__map { order: 1; }
}
@media (max-width: 700px) {
  body .pd-map__cta { bottom: 30px; }
}

/* one hairline between the columns and the legal row, not two */
body .site-footer .footer-grid { border-bottom: 0; padding-bottom: 8px; }
body .site-footer .footer-bottom__brand { align-items: flex-start; }

/* ============================================================ area pages: route, services, nearby */
/* The town pages carry real directions, a full service index and a nearby-town rail. These live in
   the system layer because the service pages (clean styles, no site.css) reuse the areas strip. */
body .drive-steps {
  counter-reset: drive;
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
  display: grid;
  gap: 14px;
}
body .drive-steps li {
  counter-increment: drive;
  position: relative;
  padding-left: 46px;
  font-size: 17px;
  line-height: 1.6;
  color: rgba(19, 36, 59, .86);
}
body .drive-steps li::before {
  content: counter(drive);
  position: absolute;
  left: 0;
  top: 1px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(19, 36, 59, .18);
  background: #fbf9f5;
  font-size: 13px;
  font-weight: 600;
  color: #13243b;
}
body .drive-parking {
  margin-top: 22px;
  padding: 16px 20px;
  border-left: 3px solid #c5a467;
  background: rgba(197, 164, 103, .08);
  font-size: 16px;
  line-height: 1.6;
}
body .drive-parking strong { font-weight: 600; }

body .svc-link-intro {
  max-width: 62ch;
  margin: 0 0 26px;
  font-size: 17px;
  line-height: 1.6;
  color: rgba(19, 36, 59, .78);
}
body .svc-link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
body .svc-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border: 1px solid rgba(19, 36, 59, .14);
  border-radius: 4px;
  background: #fff;
  color: #13243b;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.45;
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
body .svc-link::after {
  content: "";
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-top: 1.6px solid #c5a467;
  border-right: 1.6px solid #c5a467;
  transform: rotate(45deg);
}
body .svc-link:hover {
  border-color: rgba(19, 36, 59, .32);
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(8, 19, 33, .07);
}

body .near-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
body .near-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px 26px;
  border: 1px solid rgba(19, 36, 59, .14);
  border-radius: 4px;
  background: #fff;
  color: #13243b;
  text-decoration: none;
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
body .near-card:hover {
  border-color: rgba(19, 36, 59, .32);
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(8, 19, 33, .07);
}
body .near-card__kicker {
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(19, 36, 59, .74);
}
body .near-card__title { font-size: 19px; line-height: 1.25; }

/* the areas strip that every service page ends with */
body .areas-strip { padding: 64px 0; background: #fbf9f5; }
body .areas-strip__inner { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
body .areas-strip__eyebrow {
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(19, 36, 59, .74);
}
body .areas-strip h2 { margin: 10px 0 8px; font-size: 30px; line-height: 1.15; }
body .areas-strip p { margin: 0 0 22px; font-size: 16px; line-height: 1.6; color: rgba(19, 36, 59, .78); max-width: 64ch; }
body .areas-strip__links { display: flex; flex-wrap: wrap; gap: 10px; }
body .areas-strip__links a {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  padding: 11px 18px;
  border: 1px solid rgba(19, 36, 59, .16);
  border-radius: 999px;
  background: #fff;
  color: #13243b;
  text-decoration: none;
  font-size: 14px;
  transition: border-color .2s, background .2s;
}
body .areas-strip__links a:hover { border-color: rgba(19, 36, 59, .36); background: #fff; }
body .areas-strip__links small { font-size: 12px; color: rgba(19, 36, 59, .55); }

@media (max-width: 980px) {
  body .svc-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .near-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body .svc-link-grid { grid-template-columns: 1fr; }
  body .near-grid { grid-template-columns: 1fr; }
  body .drive-steps li { padding-left: 42px; font-size: 16px; }
  body .areas-strip { padding: 48px 0; }
  body .areas-strip h2 { font-size: 26px; }
}

/* ---------------------------------------------------------------- service pages by town
   .sa-points is the short fact list inside the editorial column on a service-by-town page.
   .near-grid--four lets the town page show its four service pages in one row on desktop. */
body .sa-points { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
body .sa-points li {
  position: relative; padding-left: 26px; font-size: 16px; line-height: 1.55;
  color: rgba(19, 36, 59, .82);
}
body .sa-points li::before {
  content: ""; position: absolute; left: 4px; top: 10px; width: 8px; height: 8px;
  border-radius: 50%; background: #c8a96a;
}
@media (min-width: 901px) { body .near-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------------------------------------------------------------- request form (/book/#request)
   A design-preview form: it posts nowhere, it carries a Preview badge, and site.js replaces the
   submit with an inline message. Styling follows the rest of the shell: ivory field, hairline
   navy border, gold focus ring, 16px text so iOS never zooms the page on focus. */
body .request-block {
  display: grid; grid-template-columns: .85fr 1.15fr; gap: 85px; align-items: start;
}
body .request-block__intro .display-3 { margin: 14px 0 18px; }
body .request-block__intro p { font-size: 17px; line-height: 1.7; color: rgba(19, 36, 59, .78); margin: 0 0 26px; max-width: 42ch; }
body .request-form {
  background: #fbfaf7; border: 1px solid rgba(19, 36, 59, .12); border-radius: 18px;
  padding: 34px; max-width: 730px;
}
body .request-form__pill {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin: 0 0 26px; font-size: 13px; line-height: 1.5; color: rgba(19, 36, 59, .74);
}
body .request-form__badge {
  display: inline-block; padding: 4px 12px; border-radius: 999px;
  background: #13243b; color: #fff; font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
}
body .request-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
body .request-form__field { display: grid; gap: 8px; margin-bottom: 18px; }
body .request-form__grid .request-form__field { margin-bottom: 0; }
body .request-form__field label {
  font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(19, 36, 59, .74);
}
body .request-form input,
body .request-form select,
body .request-form textarea {
  width: 100%; font: inherit; font-size: 16px; line-height: 1.5; color: #13243b;
  background: #fff; border: 1px solid rgba(19, 36, 59, .18); border-radius: 10px;
  padding: 13px 14px; transition: border-color .2s, box-shadow .2s;
}
body .request-form textarea { resize: vertical; min-height: 118px; }
body .request-form select {
  appearance: none; -webkit-appearance: none; padding-right: 42px; cursor: pointer;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313243b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 15px 15px;
}
body .request-form__grid + .request-form__field { margin-top: 18px; }
body .request-form input::placeholder,
body .request-form textarea::placeholder { color: rgba(19, 36, 59, .38); }
body .request-form input:focus-visible,
body .request-form select:focus-visible,
body .request-form textarea:focus-visible {
  outline: none; border-color: #c8a96a; box-shadow: 0 0 0 3px rgba(200, 169, 106, .28);
}
body .request-form__consent {
  font-size: 13px; line-height: 1.65; color: rgba(19, 36, 59, .74);
  margin: 22px 0 0; padding-top: 20px; border-top: 1px solid rgba(19, 36, 59, .1);
}
body .request-form__actions { margin-top: 22px; }
body .request-form__status {
  margin: 20px 0 0; padding: 16px 18px; border-radius: 12px;
  background: #13243b; color: #fff; font-size: 15px; line-height: 1.6;
}
@media (max-width: 900px) {
  body .request-block { grid-template-columns: 1fr; gap: 34px; }
  body .request-form { padding: 26px 22px; }
  body .request-form__grid { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------- pay online note (/financing/#pay) */
body .pay-note {
  background: #fbfaf7; border-left: 3px solid #c8a96a; border-radius: 0 10px 10px 0;
  padding: 16px 18px; font-size: 16px; line-height: 1.7; color: rgba(19, 36, 59, .85);
}

/* WCAG: phone links inside text carry an underline; low-contrast greys lifted to 4.5:1 or better */
body .tel-inline{text-decoration:underline;text-underline-offset:3px}

/* Static map facade: instant, no third-party frame */
body .pd-map--static .pd-map__link{position:absolute;inset:0;display:block;z-index:1}
body .pd-map--static .pd-map__link img{width:100%;height:100%;object-fit:cover;display:block}
body .pd-map--static .pd-map__plate{display:none}
/* Location card: primary action centered */
body .single-loc--lcard .single-loc__ctas{display:flex;justify-content:center;gap:12px}
body .single-loc--lcard .single-loc__ctas .btn{margin:0}

/* Visit card: primary action centered everywhere it appears */
body .pearl-visit__details .pearl-visit__book{display:inline-flex;margin:22px auto 0}
body .pearl-visit__details{text-align:center}
body .pearl-visit__details address,body .pearl-visit__details dl,body .pearl-visit__details .pearl-visit__label,body .pearl-visit__details .pearl-visit__phone{text-align:left}
body .pearl-visit__details .pearl-visit__book{display:table;margin-left:auto;margin-right:auto}
body .pearl-visit__details .pearl-visit__book{align-self:center}

/* WCAG: inline phone links keep an underline in every context; small muted labels hold 4.5:1 */
body .tel-inline,body a.tel-inline{text-decoration:underline !important;text-underline-offset:3px}
body .areas-strip__links a small,body .near-card__kicker,body figcaption,body .request-form__pill,body .request-form label{color:#5b6572}
body .site-footer .tel-inline{color:rgba(255,255,255,.92)}

/* Tap targets: carousel dots and the slideshow control meet 24px */
body .x-care-dots>button{width:24px;height:24px;border-radius:50%;background:transparent;position:relative}
body .x-care-dots>button::before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:rgba(255,255,255,.32);transition:transform .25s,background .25s}
body .x-care-dots>button[aria-current="true"]{transform:none;background:transparent}
body .x-care-dots>button[aria-current="true"]::before{background:#fff;transform:scale(1.35)}
body .x-care-controls>button,body [data-care-play]{min-height:28px}
body .r-home .x-care-dots>button,body .x-care-dots>button{width:24px;height:24px;background:transparent}
body .r-home [data-care-play],body [data-care-play]{height:auto;min-height:30px;padding-top:6px;padding-bottom:6px;line-height:1.2}
body [data-care-play]{min-height:44px !important;height:auto !important;padding:10px 12px !important;line-height:1.2 !important}
body .pearl-google-quotes figcaption strong{color:#13243b}
body .pearl-google-quotes figcaption span{color:#5b6572}
/* apple-buttons.css */
/* Button grammar from Apple's design system (getdesign.md/apple): capsule pills, 17px/400 body type with
   -0.374px tracking, 11px x 22px padding, no shadow, no hover lift, press = scale(.95), 2px focus ring.
   Colors stay Pearl's: navy is the single action color, white is the canvas. Loaded last in every shell. */
:root{--ab-navy:#13243b;--ab-navy-press:#0f1d31;--ab-focus:#2f5f9e;--ab-type:'Pearl Inter',Manrope,Inter,-apple-system,BlinkMacSystemFont,'SF Pro Text',system-ui,sans-serif}
body .btn,body .pd-button,body .x-cta,body .appointment-choice{font-family:var(--ab-type);font-size:17px;line-height:1.47;font-weight:400;letter-spacing:-.374px;border-radius:9999px;box-shadow:none;transition:transform .16s ease,background-color .16s ease,color .16s ease,border-color .16s ease;transform:none}
body .btn,body .pd-button,body .x-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:auto;min-height:0;padding:11px 22px;border:1px solid transparent;white-space:nowrap;text-decoration:none}
body .btn:hover,body .pd-button:hover,body .x-cta:hover{transform:none;box-shadow:none}
body .btn:active,body .pd-button:active,body .x-cta:active,body .chip:active,body .pd-chip:active,body .lib-related__chip:active,body .appointment-choice:active{transform:scale(.95)}
body .btn:focus-visible,body .pd-button:focus-visible,body .x-cta:focus-visible,body .chip:focus-visible,body .pd-chip:focus-visible,body .lib-related__chip:focus-visible{outline:2px solid var(--ab-focus);outline-offset:3px}
/* primary: navy capsule */
body .btn--primary,body .btn--ink,body .pd-button,body .btn--teal{background:var(--ab-navy);color:#fff;border-color:var(--ab-navy)}
body .btn--primary:hover,body .btn--ink:hover,body .pd-button:hover,body .btn--teal:hover{background:var(--ab-navy-press);color:#fff;border-color:var(--ab-navy-press)}
/* secondary: ghost capsule */
body .btn--ghost{background:transparent;color:var(--ab-navy);border-color:var(--ab-navy)}
body .btn--ghost:hover{background:rgba(19,36,59,.06);color:var(--ab-navy);border-color:var(--ab-navy)}
body .btn--ghost-light{background:transparent;color:#fff;border-color:#fff}
body .btn--ghost-light:hover{background:rgba(255,255,255,.1);color:#fff;border-color:#fff}
/* sizes */
body .btn--lg,body .pearl-film__actions .btn{padding:14px 28px!important;font-size:18px;line-height:1.2;font-weight:400}
body .btn--sm{padding:8px 15px;font-size:14px;letter-spacing:-.224px}
/* on navy surfaces the primary inverts to a white capsule */
body .consult-cta .btn--primary,body .pd-navy .pd-button,body .pearl-film__actions .btn,body .section--dark .btn--primary,body .pd-quick .pd-button,body .teamrail .btn--primary,body .x-care .x-cta{background:#fff!important;color:var(--ab-navy)!important;border-color:#fff!important}
body .consult-cta .btn--primary:hover,body .pd-navy .pd-button:hover,body .pearl-film__actions .btn:hover,body .pd-quick .pd-button:hover,body .x-care .x-cta:hover{background:#f5f5f7!important;color:var(--ab-navy)!important}
body .x-cta{justify-content:center;gap:14px;min-height:0;padding:11px 22px}
/* filter chips: hairline ghost pills, active = navy */
/* The capsule belongs to buttons only. Filter chips get a tinted fill and a small radius so they
   read as controls, and related-service tags drop the border and sit on a rule so they read as links. */
body .chip{height:auto;min-height:44px;padding:10px 18px;font-size:14px;letter-spacing:-.224px;background:rgba(19,36,59,.05);border:1px solid rgba(19,36,59,.16);border-radius:6px;color:var(--ab-navy);font-family:var(--ab-type);line-height:1.4;display:inline-flex;align-items:center;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
body .chip:hover{background:rgba(19,36,59,.09);border-color:rgba(19,36,59,.3);color:var(--ab-navy)}
body .chip[data-active="true"],body .chip[data-active="true"]:hover{background:var(--ab-navy);border-color:var(--ab-navy);color:#fff}
body .pd-chip,body .lib-related__chip{display:inline-flex;align-items:center;min-height:40px;padding:8px 0;margin-right:26px;font-family:var(--ab-type);font-size:15px;letter-spacing:-.224px;line-height:1.5;border:0;border-bottom:1px solid rgba(19,36,59,.28);border-radius:0;color:var(--ab-navy);background:transparent;text-decoration:none;transition:border-color .16s ease}
body .pd-chip:hover,body .lib-related__chip:hover{background:transparent;color:var(--ab-navy);border-bottom-color:var(--ab-navy)}
body .pd-chip:active,body .lib-related__chip:active,body .chip:active{transform:none}
/* the services filter: no card, just the pills */
body .finder{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}
body .finder__chips{margin-bottom:0;gap:10px}
/* header CTA on the navy bar stays an outline capsule */
body .site-header .nav__cta-desktop{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.55)!important;padding:8px 18px;font-size:14px;letter-spacing:-.224px;min-height:0}
body .site-header .nav__cta-desktop:hover{background:rgba(255,255,255,.1)!important}
/* appointment drawer cards keep their card shape */
body .appointment-choice{border-radius:14px;font-size:inherit;letter-spacing:0;line-height:inherit}
@media(max-width:600px){body .btn,body .pd-button,body .x-cta{font-size:16px;padding:11px 20px}body .btn--lg,body .pearl-film__actions .btn{padding:13px 24px!important;font-size:16px}body .btn--sm{padding:8px 14px;font-size:14px}}
/* bespoke homepage CTAs and the mobile header fix */
body .care-welcome__book,body .pearl-visit__book{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--ab-type);font-size:17px;line-height:1.47;font-weight:400;letter-spacing:-.374px;padding:11px 22px;min-height:0;max-width:none;width:auto;border-radius:9999px;background:var(--ab-navy);color:#fff;border:1px solid var(--ab-navy);box-shadow:none;transition:transform .16s ease,background-color .16s ease}
body .care-welcome__book:hover,body .pearl-visit__book:hover{background:var(--ab-navy-press)}
body .care-welcome__book:active,body .pearl-visit__book:active{transform:scale(.95)}
body .pearl-visit__book{align-self:flex-start;margin-top:28px}
body .nav__book-mobile{border-radius:9999px}
@media(max-width:800px){body .site-header .nav__cta-desktop{display:none!important}}
@media(max-width:600px){body .care-welcome__book,body .pearl-visit__book{font-size:16px;padding:11px 20px}}
body .pd-map__cta{border-radius:9999px;font-family:var(--ab-type);font-size:14px;font-weight:400;letter-spacing:-.224px;padding:10px 18px;min-height:48px;gap:14px;border:1px solid #d2d2d7;box-shadow:none}body .pd-map__cta:active{transform:scale(.95)}
/* one navy footer sitewide: column heads read the same on every page */
body .site-footer .footer-col__title{color:rgba(255,255,255,.58)}
/* analytics.css */
.pearl-consent[hidden], [data-analytics-settings][hidden]{display:none!important}
.pearl-consent{position:fixed;z-index:10000;bottom:max(20px,env(safe-area-inset-bottom));left:24px;right:24px;max-width:1040px;margin:auto;padding:24px;background:#fff;color:#13243b;border:1px solid #d8dde3;border-radius:18px;box-shadow:0 12px 48px #13243b26;display:flex;align-items:center;gap:32px;font:15px/1.5 Arial,sans-serif}
.pearl-consent strong{display:block;font-size:19px;margin-bottom:6px}.pearl-consent p{margin:0;max-width:640px}.pearl-consent a{color:inherit;text-decoration:underline}.pearl-consent__actions{display:flex;gap:10px;flex-shrink:0}.pearl-consent button{min-height:44px;padding:10px 18px;border:1px solid #13243b;border-radius:24px;background:white;color:#13243b;font:600 14px/1.4 Arial,sans-serif;cursor:pointer}.pearl-consent button[data-choice=granted]{background:#13243b;color:white}.pearl-consent button:focus-visible,[data-analytics-settings]:focus-visible{outline:3px solid #8e7449;outline-offset:3px}
[data-analytics-settings]{appearance:none;border:0;background:none;color:inherit;font:inherit;padding:0;cursor:pointer;text-decoration:underline;min-height:44px}
@media(max-width:700px){.pearl-consent{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:20px;display:block;font-size:14px;max-height:75vh;overflow:auto}.pearl-consent__actions{margin-top:16px}.pearl-consent__actions button{flex:1}}

/* Sitewide screen-size fixes (Ray 2026-09-28). This file is last in every page bundle, so these win on all
   66 pages. 1) Cookie banner on phones: a compact bottom sheet that leaves the hero headline visible.
   2) No text under 12px (small caps labels and captions were 9 to 11px). 3) The home hero keeps its
   90%-of-screen height on big monitors instead of stopping at 1050px. */
@media(max-width:700px){
  .pearl-consent{padding:14px 16px 12px;font-size:13px;line-height:1.45;max-height:42vh;border-radius:16px}
  .pearl-consent strong{font-size:15.5px;margin-bottom:3px}
  .pearl-consent__actions{margin-top:10px;gap:8px}
  .pearl-consent__actions button{min-height:44px;padding:8px 12px}
}
@media(max-width:700px) and (max-height:620px){
  .pearl-consent{padding:12px 14px 10px;font-size:12.5px;line-height:1.4}
  .pearl-consent strong{font-size:14.5px}
  .pearl-consent__actions{margin-top:8px}
}
.pearl-film__eyebrow,.pearl-film__footer a,.pearl-payments__label,.kicker,.pearl-tech__eyebrow,.pearl-tech__caption,.pearl-tech__device,
.pearl-results__tag,.compare-instruction,.pearl-results__eyebrow,.office-gallery__count,.pearl-visit__label,.x-fold-tab span,
figcaption span,.pearl-film button span{font-size:max(12px,1em)}
.pearl-film__eyebrow,.pearl-payments__label,.kicker,.pearl-tech__eyebrow,.pearl-tech__caption,.pearl-tech__device,.pearl-results__tag,
.compare-instruction,.pearl-results__eyebrow,.office-gallery__count,.pearl-visit__label{font-size:12px!important}
@media(min-width:1200px){.pearl-family-hero{max-height:none}}
/* 12px floor, stronger: these labels had phone and component rules that beat the plain selectors */
html body .pearl-film__eyebrow,html body .pearl-payments__label,html body .kicker,html body .pearl-tech__eyebrow,html body .pearl-tech__caption,
html body .pearl-tech__device,html body .pearl-results__tag,html body .compare-instruction,html body .pearl-results__eyebrow,
html body .office-gallery__count,html body .pearl-visit__label,html body .review-card__attrib span,html body .near-card__kicker,
html body .area-card__kicker,html body .pearl-results__panel small,html body .x-fold-copy small,html body .x-fold-tab,
html body .pearl-google-rating small,html body main dd small,html body .pearl-film__footer button,html body .pearl-film__footer a,
html body main figcaption span{font-size:12px!important}
/* Laptop fit (13-inch and Windows laptops): the office tour and the booking card fit one screen */
@media(min-width:1000px) and (max-height:1000px){
  .pearl-office-tour video{max-height:72vh}
  .pearl-office-tour__photos{grid-template-columns:1fr 1fr;gap:20px}
  .pearl-office-tour__photos img{max-height:66vh;aspect-ratio:3/4;object-fit:cover}
  .lcard__media{aspect-ratio:auto;height:26vh}
}
/* 12px floor for the three homepage labels whose own rules use body-class + attribute specificity */
html body.pearl-reference-home[data-has-hero] .pearl-payments--compact .pearl-payments__label,
html body.pearl-reference-home[data-has-hero] .pearl-payments .pearl-payments__label,
html body.pearl-reference-home .pearl-payments__label,
html body.pearl-reference-home[data-has-hero] .pearl-family-hero .pearl-film__eyebrow,
html body.pearl-reference-home .pearl-family-hero .pearl-film__eyebrow,
html body .x-fold.is-active .x-fold-tab{font-size:12px!important}
/* Laptop fit, 768-800px tall screens: treatment and town content sections tighten their padding a little */
@media(min-width:1000px) and (max-height:800px){
  .pd-section{padding-top:clamp(40px,7vh,96px)!important;padding-bottom:clamp(40px,7vh,96px)!important}
  main .section{padding-top:clamp(40px,7.5vh,110px);padding-bottom:clamp(40px,7.5vh,110px)}
}
@media(min-width:1000px) and (max-height:1100px){
  .pearl-office-tour video{max-height:72vh}
  .pearl-office-tour__photos{grid-template-columns:1fr 1fr;gap:20px}
  .pearl-office-tour__photos img{max-height:66vh;aspect-ratio:3/4;object-fit:cover}
}

/* 12px floor, smallest phones: service fold button (was 11px at 360 and under) */
@media(max-width:360px){html body .r-home .x-fold-copy .x-cta,html body .x-fold-copy .x-cta{font-size:12px!important}}
