/* Contact / Connect & Motion. Scoped additions to the accepted light template.
   No content depends on motion; phone, form and directions remain direct links. */
html body.contact-motion #main{--ce-pink:#b71665;--ce-blue:#23758f;--ce-ink:#163d4b;--ce-line:#d5e5eb}
html body.contact-motion #main .ct-hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:3.1rem;align-items:center}
html body.contact-motion #main .ct-hero{padding:1.2rem 0 2.8rem}
html body.contact-motion #main .ce-hero-copy{padding:0;min-width:0}
html body.contact-motion #main .ct-hero-copy h1{font-size:clamp(2.85rem,4.5vw,4.4rem);line-height:1.075;margin-bottom:1.25rem}
/* A permanent experience statement, never a counter or a hidden entrance. */
html body.contact-motion #main .ce-experience{display:inline-flex;align-items:center;gap:1rem;max-width:100%;padding:.9rem 1.2rem;background:linear-gradient(105deg,#fff2ac,#fff9de 72%,#fffdf3);border:1px solid #edda8b;border-radius:1.1rem;margin-bottom:1.45rem;box-shadow:0 7px 18px #dcc58012}
html body.contact-motion #main .ce-years{display:flex;align-items:flex-start;color:#b61563;font-size:3.5rem;font-weight:800;line-height:1;letter-spacing:-.075em;flex-shrink:0}
html body.contact-motion #main .ce-years>span{font-size:2rem;margin-top:.08rem;letter-spacing:0}
html body.contact-motion #main .ce-experience>div{display:grid;gap:.15rem;min-width:0}
html body.contact-motion #main .ce-experience>div>strong{font-size:1.125rem;line-height:1.35;color:#183a47}
html body.contact-motion #main .ce-experience>div>span{font-size:1rem;line-height:1.5;color:#5a5a38}
html body.contact-motion #main .ct-hero-copy .ct-eyebrow{margin-bottom:.8rem;font-size:1rem}
html body.contact-motion #main .ct-tagline{margin-bottom:.85rem}
html body.contact-motion #main .ct-lead{font-size:1.1875rem;line-height:1.75;margin-bottom:1.25rem}
html body.contact-motion #main .ct-reassurance{margin-block:1.1rem}
html body.contact-motion #main .ct-doctor-link{padding-top:.9rem}
/* The contact illustration is also the contact selector, not an extra obstacle. */
html body.contact-motion #main .ce-connect{--ce-active:#b71665;border:1px solid #c7dfe8;border-radius:1.6rem;background:#fff;box-shadow:0 20px 55px #1949570d;position:relative;isolation:isolate;min-width:0}
html body.contact-motion #main .ce-connect[data-contact-mode=request]{--ce-active:#246d85}
html body.contact-motion #main .ce-connect[data-contact-mode=visit]{--ce-active:#776113}
html body.contact-motion #main .ce-connect-top{border-radius:1.5rem 1.5rem 0 0;position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 35%;min-height:12.6rem;padding:1.45rem 1.7rem;background:radial-gradient(ellipse at var(--ce-light-x,85%) var(--ce-light-y,25%),#ffffff 5%,#e3f3fa 66%,#d9edf4 100%)}
html body.contact-motion #main .ce-connect-heading{position:relative;z-index:2;align-self:center}
html body.contact-motion #main .ce-label{display:block;font-size:1rem;font-weight:600;color:#326377;line-height:1.5;margin-bottom:.7rem}
html body.contact-motion #main .ce-connect h2{font-size:1.85rem;line-height:1.16;letter-spacing:-.035em;margin:0 0 .6rem;color:#153e4c}
html body.contact-motion #main .ce-connect-heading>p{font-size:1rem;line-height:1.5;margin:0;color:#426476}
html body.contact-motion #main .ce-scene{position:relative;min-width:0;min-height:10.5rem;pointer-events:none;align-self:stretch}
html body.contact-motion #main .ce-tooth{position:absolute;width:11.4rem;max-width:140%;height:auto;top:-.7rem;left:-.4rem;filter:drop-shadow(0 12px 12px #20668319)}
html body.contact-motion #main .ce-orbit{position:absolute;left:-.1rem;top:0;width:10rem;height:10rem;max-width:135%;border:1px solid #fff;border-radius:50%;transform:rotate(-20deg) scaleY(.75)}
html body.contact-motion #main .ce-orbit-two{left:-1rem;top:.6rem;border-color:#78adbe44;transform:rotate(20deg) scaleY(.65)}
html body.contact-motion #main .ce-scene-bubble{position:absolute;right:-.35rem;bottom:1.25rem;display:grid;place-items:center;width:3.6rem;height:3.6rem;border-radius:1.1rem;background:#fff1c2;border:3px solid #ffffffcf;color:var(--ce-active);box-shadow:0 10px 24px #20536912;opacity:0;transform:translateY(8px) scale(.86);transition:opacity .32s,transform .45s cubic-bezier(.2,.75,.2,1)}
html body.contact-motion #main .ce-scene-bubble>.icon{width:1.65rem;height:1.65rem}
html body.contact-motion #main .ce-connect[data-contact-mode=call] [data-ce-symbol=call],
html body.contact-motion #main .ce-connect[data-contact-mode=request] [data-ce-symbol=request],
html body.contact-motion #main .ce-connect[data-contact-mode=visit] [data-ce-symbol=visit]{opacity:1;transform:translateY(0) scale(1)}
html body.contact-motion #main .ce-spark{position:absolute;left:-.7rem;top:1.2rem;color:#b32c73;width:1.25rem;height:1.25rem}
html body.contact-motion #main .ce-spark>.icon{height:100%;width:100%;fill:#ce6c9a;stroke-width:0}
html body.contact-motion #main .ce-dot{position:absolute;right:.2rem;top:1rem;width:.55rem;height:.55rem;border-radius:50%;background:#edc952}
html body.contact-motion #main .ce-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;padding:.3rem 1.25rem 1.2rem;background:#e3f3fa;border-bottom:1px solid #d7e7ec}
html body.contact-motion #main .ce-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;position:relative;min-width:0;min-height:6.5rem;padding:.8rem .3rem;font-size:1rem;font-weight:650;line-height:1.35;text-align:center;color:#294d5b;background:#fffffff0;border:1px solid #c8dce5;border-radius:1rem;transition:background .25s,border-color .25s,box-shadow .25s,transform .25s;text-decoration:none;overflow-wrap:normal}
html body.contact-motion #main .ce-choice-icon{display:grid;place-items:center;width:2.55rem;height:2.55rem;border-radius:.8rem;background:#ecf5f9;color:#296980;transition:background .25s,color .25s,transform .3s}
html body.contact-motion #main .ce-choice-icon>.icon{width:1.35rem;height:1.35rem}
html body.contact-motion #main .ce-choice[aria-selected=true]{color:#a9165d;border-color:#c7327e;background:#fff8fc;box-shadow:0 3px 0 #c7327e}
html body.contact-motion #main .ce-choice[aria-selected=true] .ce-choice-icon{background:#fce0ed;color:#a9165d}
html body.contact-motion #main .ce-choice:hover{border-color:#bf377c;background:#fff8fc;box-shadow:0 7px 18px #2a556111;transform:translateY(-3px)}
html body.contact-motion #main .ce-choice:hover .ce-choice-icon{transform:rotate(-7deg)}
html body.contact-motion #main .ce-choice:focus-visible{outline:3px solid #156c86;outline-offset:4px;z-index:3}
html body.contact-motion #main .ce-panels{padding:1.4rem 1.7rem 1.1rem}
html body.contact-motion #main .ce-panel{min-width:0;scroll-margin-block-start:1rem}
html body.contact-motion #main .ce-panel+.ce-panel{border-top:1px solid #d6e3e9;padding-top:1.4rem;margin-top:1.4rem}
html body.contact-motion #main .ce-enhanced .ce-panel{border:0;padding:0;margin:0}
html body.contact-motion #main .ce-panel h3{font-size:1.45rem;line-height:1.28;letter-spacing:-.025em;margin:0 0 .6rem;color:#123e4c}
html body.contact-motion #main .ce-panel>p,html body.contact-motion #main .ce-panel address{font-size:1.0625rem;line-height:1.65;margin:0 0 1rem;color:#486570}
html body.contact-motion #main .ce-panel .ce-panel-note{font-size:1rem;line-height:1.55;margin:1rem 0 0;color:#52656c}
html body.contact-motion #main .ce-primary-action{max-width:100%;min-height:3.4rem;font-size:1.0625rem;padding:.8rem 1rem;white-space:normal;line-height:1.5}
html body.contact-motion #main .ce-primary-action>span{min-width:0;overflow-wrap:anywhere}
html body.contact-motion #main .ce-visit-actions{display:flex;gap:.5rem .9rem;align-items:center;flex-wrap:wrap}
html body.contact-motion #main .ce-visit-actions .ct-copy{font-size:1rem}
html body.contact-motion #main .ce-office-foot{display:flex;align-items:flex-start;gap:.65rem;padding:1rem 1.5rem 1.1rem;border-top:1px solid #deeaef;border-radius:0 0 1.5rem 1.5rem;background:#fafcfc}
html body.contact-motion #main .ce-office-pin{color:#25728a;flex-shrink:0;padding-top:.15rem}
html body.contact-motion #main .ce-office-pin .icon{width:1.15rem;height:1.15rem}
html body.contact-motion #main .ce-office-foot strong{display:block;font-size:1rem;font-weight:650;line-height:1.5;color:#284c58;margin-bottom:.3rem}
html body.contact-motion #main .ce-office-foot p{font-size:1rem;line-height:1.55;margin:0;color:#516972}
/* Clear section rhythm and more apparent scroll motion, without idle text movement. */
html body.contact-motion #main .request-section{padding-top:3.5rem}
html body.contact-motion #main [data-ce-section]{position:relative}
html body.contact-motion #main [data-ce-section] h2:not(#ce-connect-title)::after{content:'';display:block;width:3.5rem;height:.25rem;border-radius:.2rem;margin-top:1rem;background:linear-gradient(90deg,#be1b69 0 55%,#f4ce48 55%);transform-origin:left;transform:scaleX(1)}
html body.contact-motion #main .ce-section-waiting h2:not(#ce-connect-title)::after{transform:scaleX(.15);opacity:.3}
html body.contact-motion #main .ce-section-seen h2:not(#ce-connect-title)::after{transition:transform .85s cubic-bezier(.2,.75,.2,1),opacity .6s;transform:scaleX(1);opacity:1}
html body.contact-motion #main .request-panel.ce-revealing:focus-within{transform:none!important;opacity:1!important}
html body.contact-motion #main .ct-map-panel{box-shadow:0 18px 46px #22465b13}
html body.contact-motion #main .ct-last{box-shadow:0 14px 34px #cdb74511}
html body.contact-motion #main :is(.ct-doctor-link,.gdc-save-button,.ct-last .btn){transition:transform .25s,box-shadow .25s,background .25s,color .25s}
@media(prefers-reduced-motion:no-preference){
 html body.contact-motion #main .ce-tooth{animation:ce-float 5.8s ease-in-out infinite}
 html body.contact-motion #main .ce-orbit-one{animation:ce-orbit 19s linear infinite}
 html body.contact-motion #main .ce-orbit-two{animation:ce-orbit 24s linear infinite reverse}
 html body.contact-motion #main .ce-spark{animation:ce-shimmer 4.5s ease-in-out infinite}
 html body.contact-motion #main .ce-dot{animation:ce-float 4.8s ease-in-out infinite reverse}
 html body.contact-motion #main .ct-map-art>span{animation:ce-pin-float 5.6s ease-in-out infinite}
 @keyframes ce-float{0%,100%{transform:translateY(2px) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}
 @keyframes ce-orbit{from{transform:rotate(-20deg) scaleY(.72)}to{transform:rotate(340deg) scaleY(.72)}}
 @keyframes ce-shimmer{0%,100%{opacity:.55;transform:scale(.82) rotate(0)}50%{opacity:1;transform:scale(1.13) rotate(35deg)}}
 @keyframes ce-pin-float{0%,100%{transform:translateY(2px) rotate(-15deg)}50%{transform:translateY(-11px) rotate(-8deg)}}
}
html body.contact-motion #main .ce-offscreen :is(.ce-tooth,.ce-orbit,.ce-spark,.ce-dot),html body.contact-motion #main .ce-offscreen .ct-map-art>span{animation-play-state:paused!important}
html body.contact-motion #main.ct-resting :is(.ce-tooth,.ce-orbit,.ce-spark,.ce-dot,.ct-map-art>span){animation-play-state:paused!important}
html.motion-paused body.contact-motion #main :is(.ce-tooth,.ce-orbit,.ce-spark,.ce-dot,.ct-map-art>span){animation:none!important}
html.motion-paused body.contact-motion #main :is(.ce-choice,.ce-choice-icon,.ce-scene-bubble,.ce-primary-action),html.motion-paused body.contact-motion #main [data-ce-section] h2::after{transition:none!important}
html.motion-paused body.contact-motion #main .ce-section-waiting h2::after{transform:none;opacity:1}
@media(max-width:1100px){
 html body.contact-motion #main .ct-hero-grid{gap:2rem}
 html body.contact-motion #main .ce-connect-top{padding:1.3rem;grid-template-columns:minmax(0,1fr) 30%}
 html body.contact-motion #main .ce-tooth{top:.5rem;left:-.8rem}
 html body.contact-motion #main .ce-connect h2{font-size:1.7rem}
 html body.contact-motion #main .ce-choices{gap:.5rem;padding-inline:1rem}
 html body.contact-motion #main .ce-panels{padding:1.25rem}
}
@media(max-width:950px){
 html body.contact-motion #main .ct-hero-grid{grid-template-columns:minmax(0,1fr);gap:2.1rem}
 html body.contact-motion #main .ct-hero-copy h1{font-size:clamp(2.85rem,6vw,4.4rem)}
 html body.contact-motion #main .ce-connect{width:100%;max-width:42rem;margin-inline:auto}
 html body.contact-motion #main .ce-connect-top{grid-template-columns:minmax(0,1fr) 34%;padding:1.5rem 1.6rem}
 html body.contact-motion #main .ce-tooth{top:-1rem;left:.2rem;width:12rem;max-width:120%}
 html body.contact-motion #main .ce-hero-copy .ct-lead{max-width:40rem}
}
@media(max-width:600px){
 html body.contact-motion #main .ct-hero{padding-top:.8rem;padding-bottom:1.75rem}
 html body.contact-motion #main .ct-hero-copy h1{font-size:clamp(2.65rem,10.5vw,3.8rem)}
 html body.contact-motion #main .ce-experience{gap:.8rem;padding:.85rem 1rem;margin-bottom:1.25rem;max-width:100%}
 html body.contact-motion #main .ce-years{font-size:3.2rem}
 html body.contact-motion #main .ce-experience>div>strong{font-size:1.0625rem}
 html body.contact-motion #main .ce-connect{border-radius:1.3rem}
 html body.contact-motion #main .ce-connect-top{grid-template-columns:minmax(0,1fr) 30%;padding:1.2rem;border-radius:1.25rem 1.25rem 0 0;min-height:11rem}
 html body.contact-motion #main .ce-connect h2{font-size:1.65rem}
 html body.contact-motion #main .ce-scene{min-height:9rem}
 html body.contact-motion #main .ce-tooth{max-width:160%;width:9.5rem;left:-.7rem;top:.6rem}
 html body.contact-motion #main .ce-orbit{width:8rem;height:8rem;left:-1rem;top:.8rem;max-width:160%}
 html body.contact-motion #main .ce-scene-bubble{width:2.8rem;height:2.8rem;right:-.15rem;bottom:.3rem}
 html body.contact-motion #main .ce-scene-bubble>.icon{width:1.3rem;height:1.3rem}
 html body.contact-motion #main .ce-spark{left:-.45rem;top:1.45rem}
 html body.contact-motion #main .ce-choices{gap:.5rem;padding:0 .85rem 1rem}
 html body.contact-motion #main .ce-choice{min-height:6.2rem;padding:.7rem .35rem;font-size:1rem}
 html body.contact-motion #main .ce-choice-icon{width:2.35rem;height:2.35rem}
 html body.contact-motion #main .ce-panels{padding:1.2rem}
 html body.contact-motion #main .ce-primary-action{font-size:1.0625rem}
 html body.contact-motion #main .ce-office-foot{padding:1rem 1.15rem;border-radius:0 0 1.25rem 1.25rem}
 html body.contact-motion #main .ce-panel h3{font-size:1.4rem}
 html body.contact-motion #main .request-section{padding-top:2.7rem}
}
@media(max-width:370px){
 html body.contact-motion #main .ce-experience{gap:.6rem;padding:.8rem}
 html body.contact-motion #main .ce-years{font-size:2.85rem}
 html body.contact-motion #main .ce-experience>div>strong{font-size:1rem}
 html body.contact-motion #main .ce-connect-top{grid-template-columns:minmax(0,1fr) 24%;padding:1.1rem}
 html body.contact-motion #main .ce-tooth{opacity:.8;top:1rem}
 html body.contact-motion #main .ce-scene-bubble{right:-.35rem}
 html body.contact-motion #main .ce-choice{padding-inline:.2rem}
 html body.contact-motion #main .ce-primary-action{padding-inline:.8rem;font-size:1rem}
}
@media(prefers-reduced-motion:reduce){
 html body.contact-motion #main :is(.ce-tooth,.ce-orbit,.ce-spark,.ce-dot,.ct-map-art>span){animation:none!important}
 html body.contact-motion #main :is(.ce-choice,.ce-choice-icon,.ce-scene-bubble,.ce-primary-action){transition:none!important}
 html body.contact-motion #main [data-ce-section] h2::after{transition:none!important;transform:none;opacity:1}
}
@media print{
 .contact-motion .ce-scene,.contact-motion .ce-choices{display:none!important}
 .contact-motion .ce-connect{box-shadow:none!important;border:1px solid #888!important;break-inside:avoid}
 .contact-motion .ce-panel[hidden]{display:block!important}
}
/* Let the permanent experience label wrap as a unit at enlarged text sizes. */
html body.contact-motion #main .ce-experience{flex-wrap:wrap}
html body.contact-motion #main .ce-experience>div{flex:1 1 10rem;max-width:100%;overflow-wrap:anywhere}
html body.contact-motion #main :is(.ce-panel,.ce-office-foot>div,.ce-connect-heading){min-width:0;overflow-wrap:anywhere}
/* Reflow the contact selector based on its own space, including enlarged text.
   On small cards, practical actions take precedence over decorative artwork. */
html body.contact-motion #main .ce-connect{container-type:inline-size;container-name:ce-hub}
@container ce-hub (max-width:18rem){
 html body.contact-motion #main .ce-connect-top{grid-template-columns:minmax(0,1fr);min-height:0;padding:1.2rem}
 html body.contact-motion #main .ce-scene{display:none}
 html body.contact-motion #main .ce-connect-heading{overflow-wrap:normal}
 html body.contact-motion #main .ce-choices{grid-template-columns:minmax(0,1fr);padding:.15rem 1rem 1.2rem;gap:.65rem}
 html body.contact-motion #main .ce-choice{flex-direction:row;justify-content:flex-start;text-align:left;padding:.65rem .75rem;min-height:3.4rem;gap:.75rem}
 html body.contact-motion #main .ce-choice-icon{flex-shrink:0;width:2.25rem;height:2.25rem}
 html body.contact-motion #main .ce-choice>span:last-child{min-width:0;overflow-wrap:anywhere}
 html body.contact-motion #main .ce-primary-action{font-size:1rem;padding:.65rem;border-radius:.9rem;gap:.4rem}
 html body.contact-motion #main .ce-primary-action>.icon{width:1rem;height:1rem}
 html body.contact-motion #main .ce-panels{padding:1.1rem}
}
html body.contact-motion .skip-link{top:0;transform:translateY(calc(-100% - 1rem))}
html body.contact-motion .skip-link:focus{top:.5rem;transform:none}
