/* Contact page — shared CRE8 brand with a dedicated editorial layout. */
.contact-page{background:#fcfbf8;--connect-ink:#123d46;--connect-muted:#51676c}
.contact-page .site-nav>a:first-child{color:inherit}
.contact-page .site-nav a[href="/contact-us/"]{color:#00768b}
.contact-page main h1,.contact-page main h2,.contact-page main h3{color:var(--connect-ink)}
.contact-page main p{color:var(--connect-muted)}
.contact-page .connect-hero{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding-top:12px;padding-bottom:56px}
.contact-page .connect-intro h1{font-size:clamp(43px,4.55vw,66px);line-height:1.1;letter-spacing:-.055em;margin:0 0 26px}
.contact-page .connect-intro h1 span{color:#00798c}
.contact-page .connect-intro .connect-lede{font-size:22px;color:var(--connect-ink);margin:0 0 6px}
.contact-page .connect-intro>p:not(.eyebrow):not(.connect-lede):not(.connect-phone-note){margin:0 0 24px}
.connect-call{display:inline-flex;gap:22px;align-items:center;font-size:clamp(26px,2.6vw,38px);font-weight:500;letter-spacing:-.04em;color:var(--connect-ink)}
.connect-arrow{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid #a5cbd0;font-size:24px;transition:background .2s}
.connect-call:hover .connect-arrow{background:#d8edf0}
.contact-page .connect-phone-note{font-size:12px;margin:12px 0 26px;max-width:380px;line-height:1.6}
.connect-hero-links{display:flex;flex-wrap:wrap;gap:28px;font-size:13px;font-weight:600;color:var(--connect-ink)}
.connect-hero-links a{padding-bottom:6px;border-bottom:1px solid #9bbcc1;display:flex;gap:15px}
.connect-photo{margin:0;position:relative;overflow:hidden;border-radius:3px}
.connect-photo img{width:100%;height:440px;object-fit:cover;object-position:57% center}
.connect-photo figcaption{display:flex;align-items:center;gap:12px;background:#123d46;color:#fff;padding:20px 24px;font-size:13px;letter-spacing:.01em}
.connect-caption-mark{font-size:26px;line-height:1;color:#80d4df;font-weight:300}
.connect-photo figcaption>span:last-child{margin-left:auto;font-size:10px;letter-spacing:.18em;color:#a6ccd1}
.connect-details{display:grid;grid-template-columns:1fr 1.3fr .85fr;border-top:1px solid #cddadb;border-bottom:1px solid #cddadb;padding-block:28px;margin-bottom:64px;gap:32px}
.connect-details>div{display:flex;gap:17px;align-items:flex-start;min-width:0}
.connect-details>div+div{border-left:1px solid #cddadb;padding-left:32px}
.connect-details svg,.connect-hours svg{width:28px;height:28px;flex-shrink:0;stroke:#087e90;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.contact-page .connect-details h2{font-size:12px;letter-spacing:0;margin:0 0 9px;font-weight:500;color:var(--connect-muted)}
.connect-details a,.connect-fax{font-size:17px;font-weight:500;color:var(--connect-ink);line-height:1.5}
.connect-details a span{margin-left:8px;color:#00768b}
.contact-page .connect-details p{font-size:12px;line-height:1.5;margin:6px 0 0}
.connect-details a:hover,.connect-back a:hover{text-decoration:underline;text-underline-offset:4px}
.connect-main{background:#edf4f5;padding:64px 0 70px}
.connect-main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:64px;align-items:start}
.contact-page .connect-message>h2{font-size:42px}
.contact-page .connect-message>p:not(.eyebrow){font-size:15px;margin:16px 0 26px}
.contact-page :is(a,button,input,textarea):focus-visible{outline:3px solid #008da5;outline-offset:4px}
.connect-hours{background:#123d46;border-radius:3px;padding:36px;color:#fff}
.connect-hours-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}
.contact-page .connect-hours-top .eyebrow{margin:0;color:#a9d5dc}
.connect-hours svg{stroke:#9ed7df}
.contact-page .connect-hours h2{font-size:34px;color:#fff}
.contact-page .connect-hours>p{font-size:14px;color:#c7dce0;margin:14px 0 24px}
.connect-schedule{width:100%;border-collapse:collapse;font-size:14px;line-height:1.6;font-variant-numeric:tabular-nums}
.connect-schedule caption{text-align:left;font-size:16px;font-weight:500;padding:18px 0 20px}
.connect-schedule caption span{display:block;margin-top:4px;color:#c7dce0;font-size:12px;font-weight:400}
.connect-schedule th,.connect-schedule td{padding:12px 0;border-bottom:1px solid #3d626b}
.connect-schedule th{text-align:left;font-weight:500}
.connect-schedule td,.connect-schedule thead th:last-child{text-align:right;white-space:nowrap}
.connect-schedule th:first-child{padding-right:12px}
.connect-schedule thead th{padding-top:0;padding-bottom:10px;color:#b4d2d8;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.connect-schedule .connect-weekend th,.connect-schedule .connect-weekend td{background:rgba(255,255,255,.035)}
.connect-closed{display:inline-block;padding:1px 9px;border-radius:3px;background:#31545c;color:#e0ebed;font-size:12px}
.connect-phone-hours{margin:24px 0 28px;padding:16px 18px;background:#214c55;border-left:2px solid #9ed7df}
.contact-page .connect-phone-hours h3{margin:0 0 6px;color:#fff;font-size:14px;font-weight:500;letter-spacing:0}
.contact-page .connect-phone-hours p{margin:0;color:#d8e7e9;font-size:13px;line-height:1.7}
.connect-phone-hours p span{display:block;font-variant-numeric:tabular-nums}
.connect-address{border-top:1px solid #3d626b;padding-top:26px}
.contact-page .connect-address .eyebrow{font-size:10px;color:#b4d2d8;margin:0 0 14px}
.connect-address address{font-size:17px;line-height:1.65;font-style:normal;margin-bottom:22px}
.connect-address .btn{border-radius:2px;display:flex;justify-content:space-between;background:#f7f5f1;color:#123d46}
.connect-back{display:flex;justify-content:space-between;gap:24px;padding-block:30px;font-size:12px;color:#52686c}
@media(max-width:1100px){.contact-page .connect-hero{gap:36px}.connect-main-grid{gap:36px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.connect-hours{padding:28px}.connect-details{gap:22px}.connect-details>div+div{padding-left:22px}.connect-details a,.connect-fax{font-size:15px}.connect-photo img{height:420px}}
@media(max-width:900px){.contact-page .connect-hero{gap:32px;grid-template-columns:1fr;padding-top:0;padding-bottom:36px}.contact-page .connect-intro h1{font-size:clamp(44px,7.4vw,62px)}.connect-photo img{height:auto;aspect-ratio:1.75;object-position:center 42%}.connect-details{grid-template-columns:1fr;gap:0;margin-bottom:40px;padding-block:0}.connect-details>div,.connect-details>div+div{border-left:0;padding:23px 0}.connect-details>div+div{border-top:1px solid #cddadb}.connect-details a,.connect-fax{font-size:17px}.connect-main-grid{grid-template-columns:1fr;gap:40px}.connect-main{padding-block:44px}.connect-back>span{display:none}}
@media(max-width:600px){.contact-page .connect-intro h1{font-size:43px}.contact-page .connect-intro .connect-lede{font-size:21px}.connect-call{font-size:32px;gap:20px}.connect-photo img{aspect-ratio:1.25;object-position:56% center}.connect-photo figcaption{font-size:11px;padding:16px}.connect-photo figcaption>span:last-child{font-size:9px}.connect-hero-links{gap:22px;font-size:12px}.contact-page .connect-message>h2{font-size:35px}.connect-visit{display:block}.connect-hours{padding:28px 24px}.contact-page .connect-hours h2{font-size:32px}.connect-schedule{font-size:13px}.connect-schedule th:first-child{padding-right:8px}.contact-page .connect-phone-note{max-width:300px}}
@media(prefers-reduced-motion:reduce){.contact-page *{scroll-behavior:auto;transition:none}}


/* Reuse the homepage contact panel and its shared account CTA. */
.connect-main{background:#fcfbf8;padding-top:0}
.connect-message.contact-form-panel{padding:36px;background:#edf4f5;min-width:0}
.contact-page .connect-choice{padding:26px 0;border-bottom:1px solid #c6d6d8;scroll-margin-top:110px}
.contact-page .connect-choice h3{font-size:23px;line-height:1.3;margin:0 0 10px}
.contact-page .connect-choice p{font-size:14px;line-height:1.65;margin:0 0 20px;max-width:420px}
.connect-choice .btn{display:inline-flex;gap:24px;min-height:48px;white-space:normal;text-align:left}
.connect-message .contact-account{border-top:0;margin-top:0;padding-top:26px;flex-wrap:wrap}
.connect-message .contact-account .btn{white-space:normal;text-align:left;min-height:48px}
@media(max-width:600px){.connect-message.contact-form-panel{padding:28px 22px}.connect-choice .btn{width:100%;justify-content:space-between}.contact-page .connect-choice h3{font-size:21px}.connect-message .contact-account{align-items:flex-start;flex-direction:column}}

.connect-address .connect-google-reviews{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;margin-top:12px;padding:10px 0;color:#d8f0f4;font-size:14px;line-height:1.5;text-decoration:underline;text-underline-offset:4px}
.connect-address .connect-google-reviews:hover{color:#fff}

/* A distinct welcome for practices, separate from general enquiries. */
.contact-page .connect-details{margin-bottom:44px}
.connect-practice{background:#e9f1ec;border-block:1px solid #d6e2da;padding:58px 0;margin-bottom:64px}
.connect-practice-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:center}
.contact-page .connect-practice h2{font-size:clamp(32px,3.3vw,46px);line-height:1.15}
.contact-page .connect-practice p:not(.eyebrow){max-width:530px;font-size:16px;margin:22px 0 28px}
.connect-practice-actions{display:flex;align-items:center;gap:20px 28px;flex-wrap:wrap}
.connect-practice-actions .btn{min-height:50px;gap:24px;border-radius:5px;white-space:normal;text-align:left}
.connect-practice-actions>a:not(.btn){font-size:13px;min-height:44px;display:inline-flex;align-items:center;gap:14px;color:#234f58;font-weight:600}
.connect-practice-ready{display:flex;align-items:flex-start;gap:22px;padding:32px;background:#fcfdfb;border:1px solid #d2e0d7;border-radius:7px}
.connect-practice-ready>svg{width:36px;height:40px;flex-shrink:0;fill:none;stroke:#54867a;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.contact-page .connect-practice-ready h3{font-size:21px;line-height:1.4;margin:0 0 18px}
.connect-practice-ready ul{list-style:disc;padding-left:18px;color:#526b64;font-size:14px;line-height:1.8;margin:0 0 20px}
.connect-practice-ready li{padding-left:4px;margin-bottom:9px}
.connect-practice-ready li::marker{color:#779f90}
.connect-practice-ready a{display:inline-flex;align-items:center;gap:16px;font-size:12px;line-height:1.6;min-height:44px;color:#23575b;text-decoration:underline;text-underline-offset:4px}
#practice-title{scroll-margin-top:120px}
.contact-page .connect-newsletter{padding:24px;margin-top:26px;background:#fffdfa;border:1px solid #b7ccd0;border-radius:6px}
.connect-newsletter-heading{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.connect-newsletter-heading svg{width:26px;height:26px;flex-shrink:0;stroke:#337988;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.contact-page .connect-newsletter-heading h3{margin:0;font-size:22px}
.contact-page .connect-newsletter p{margin-bottom:16px}
.contact-page .connect-newsletter .btn{background:#236778;color:white;border:1px solid #236778;border-radius:4px;font-size:13px;font-weight:600;min-height:48px}
.contact-page .connect-newsletter .btn:hover{background:#174e5c;border-color:#174e5c}
@media(max-width:1100px){.connect-practice-grid{gap:36px}.connect-practice-ready{gap:16px;padding:26px}}
@media(max-width:900px){.connect-practice{padding:44px 0;margin-bottom:44px}.connect-practice-grid{grid-template-columns:1fr;gap:28px}.connect-practice-ready{max-width:620px}}
@media(max-width:600px){.connect-practice{padding-block:36px}.connect-practice-ready{padding:24px 20px;gap:14px}.connect-practice-ready>svg{width:28px;height:32px}.contact-page .connect-practice-ready h3{font-size:19px}.connect-practice-actions{gap:14px}.connect-practice-actions .btn{width:100%;justify-content:space-between;font-size:13px}.contact-page .connect-newsletter{padding:22px 18px}.contact-page .connect-newsletter-heading h3{font-size:21px}}
.connect-reviews{padding:70px 0;background:#f4f0e8;color:#294c54;scroll-margin-top:90px}
.connect-reviews-heading{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:35px}.connect-reviews-heading h2{font-size:clamp(34px,3.7vw,48px);line-height:1.15;letter-spacing:-.04em;font-weight:500;margin:12px 0 0}.connect-reviews-heading p:not(.eyebrow){color:#62716c;font-size:16px;line-height:1.8;max-width:460px}.connect-reviews-heading a{font-size:14px;color:#365f67;text-underline-offset:5px}
.connect-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:stretch}.connect-review{margin:0;padding:30px;background:#fffdf8;border:1px solid #e2ddce;border-radius:8px;display:flex;flex-direction:column;min-width:0}
.review-rating{display:flex;align-items:center;justify-content:space-between;gap:20px}.review-rating>span:first-child{font-size:18px;letter-spacing:3px;color:#866b37}.review-rating>span:last-child{font-size:11px;color:#71766c;letter-spacing:.02em}
.connect-review blockquote{margin:20px 0 26px;padding:0;border:0}.connect-review blockquote p{font-size:14px;line-height:1.9;color:#506467;margin:0}.connect-review figcaption{display:grid;gap:6px;border-top:1px solid #e7e5dc;padding-top:18px;margin-top:auto;font-size:13px}.connect-review figcaption strong{font-weight:600;color:#31555e}.connect-review figcaption>span{font-size:12px;color:#78817a}
.connect-more-reviews{margin-top:24px}.connect-more-reviews>summary{display:flex;justify-content:space-between;align-items:center;list-style:none;cursor:pointer;padding:21px 26px;border:1px solid #cfcfbe;border-radius:6px;color:#3c635e;font-size:14px;background:#e9ede3}.connect-more-reviews>summary::-webkit-details-marker{display:none}.connect-more-reviews>summary>span:last-child{font-size:25px;line-height:1}.connect-more-reviews[open]>summary>span:last-child{transform:rotate(45deg)}.connect-more-reviews .connect-review-grid{margin-top:22px}.connect-more-reviews>summary:focus-visible{outline:3px solid #00768b;outline-offset:4px}
@media(max-width:900px){.connect-reviews-heading{gap:25px;grid-template-columns:1fr}.connect-review{padding:26px}.connect-reviews{padding:50px 0}}
@media(max-width:650px){.connect-review-grid{grid-template-columns:minmax(0,1fr)}.connect-review{padding:24px}.connect-reviews-heading h2{font-size:34px}}
