/* Contact page: scoped layouts preserve the shared navigation and form behaviour. */
.contact-visual-page main{--cv-ink:#173e49;--cv-copy:#45616c;--cv-line:#d3e3e6;color:var(--cv-copy);font-size:18px;line-height:1.7}
.contact-visual-page main .container{max-width:1240px;width:calc(100% - 64px)}
.contact-visual-page main .narrow{max-width:1240px;text-align:left}
.contact-visual-page main h1,.contact-visual-page main h2,.contact-visual-page main h3{color:var(--cv-ink);line-height:1.2;letter-spacing:-.035em}
.contact-visual-page main h1{font-size:clamp(38px,4vw,58px);max-width:680px}.contact-visual-page main h1 em{font-style:normal;color:#216759}
.contact-visual-page main h2{font-size:clamp(29px,3vw,40px)}.contact-visual-page main h3{font-size:23px}
.contact-visual-page main p{color:var(--cv-copy);font-size:18px;line-height:1.7}.contact-visual-page main .eyebrow{font-size:14px;color:#276b60;letter-spacing:.12em}
.contact-visual-page .section{padding:80px 0}.contact-visual-page .contact-hero{padding:78px 0;background:radial-gradient(ellipse at 85% 15%,#c4e2e6,transparent 55%),linear-gradient(120deg,#f2f7fc,#eef6ee)}
.contact-visual-page .page-hero-grid{grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}.contact-visual-page .hero-actions{gap:12px;flex-wrap:wrap}
.contact-visual-page .cv-hero-topics{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.contact-visual-page .cv-hero-topics span{font-size:14px;background:#fff9;border:1px solid #c6dbdd;padding:6px 12px;border-radius:30px;color:#30575b}
.contact-visual-page .cv-hero-visual{background:#ffffffb8;padding:14px;border:1px solid #fff;border-radius:28px;box-shadow:0 24px 65px #24576820;overflow:hidden}
.contact-visual-page main img{display:block;width:100%;height:auto;object-fit:contain;transition:transform .6s ease}
.contact-visual-page .cv-hero-visual img{border-radius:18px}.contact-visual-page .hero-card-band{background:transparent;padding:18px 0 4px;text-align:center;display:block}.contact-visual-page .hero-card-band span{background:transparent;color:#315965;font-size:15px}
.contact-visual-page .contact-cards-section{padding:58px 0}.contact-visual-page .contact-card-grid{grid-template-columns:1fr 1fr;gap:24px}
.contact-visual-page .contact-card{display:flex;gap:24px;align-items:center;min-height:0;padding:30px;border-radius:22px;background:linear-gradient(115deg,#f0f6fc,#fff);border-color:var(--cv-line)}
.contact-visual-page .contact-card:nth-child(2){background:linear-gradient(115deg,#edf7f0,#fff)}.contact-visual-page .contact-card h3{margin:4px 0 12px}.contact-visual-page .contact-card .cv-kicker{font-size:15px;margin:0}.contact-visual-page .contact-card a{font-size:19px;overflow-wrap:anywhere}
.contact-visual-page .cv-icon{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;padding:0;margin:0 0 20px;border:1px solid #c4dcdf;border-radius:16px;background:#e8f3f2;color:#266c66}.contact-visual-page .cv-icon svg{width:27px;height:27px}.contact-visual-page .contact-card .cv-icon{margin:0;width:64px;height:64px}
.contact-visual-page .contact-form-section{background:#edf3f8;scroll-margin-top:110px}.contact-visual-page .contact-form-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:30px;align-items:start}
.contact-visual-page .contact-form-panel{padding:38px;border-radius:24px;border-color:#d4e1e9;box-shadow:0 18px 50px #193e5010}.contact-visual-page .contact-form label{font-size:16px;color:#294b58}.contact-visual-page .form-grid{gap:20px}.contact-visual-page .contact-form input,.contact-visual-page .contact-form select,.contact-visual-page .contact-form textarea{border-radius:10px;border-color:#bccfd8;font-size:16px;background:#fbfdff}.contact-visual-page .captcha-status{font-size:15px}.contact-visual-page .contact-form button{min-height:52px;width:100%}
.contact-visual-page .contact-support-panel{padding:36px;border-radius:24px;background:linear-gradient(150deg,#1d5360,#163d41);border:0;overflow:hidden}.contact-visual-page .contact-support-panel h2{font-size:32px;color:#fff}.contact-visual-page .contact-support-panel p{color:#dfedf0}.contact-visual-page .contact-support-panel .eyebrow{color:#bce1d5}.contact-visual-page .contact-support-list span{background:#ffffff0b;border:0;border-bottom:1px solid #ffffff30;border-radius:0;padding:14px 0;font-size:16px;font-weight:500;color:#fff}.contact-visual-page .contact-support-list span:before{content:'✓';margin-right:12px;color:#b8e8d2}.contact-visual-page .contact-support-panel .btn{background:#fff;color:#174b54;border-color:#fff}
.contact-visual-page .cv-orbit{width:170px;height:170px;margin:0 auto 32px;border:1px solid #ffffff35;border-radius:50%;display:grid;place-items:center;position:relative}.contact-visual-page .cv-orbit>div{width:116px;height:116px;border:1px solid #ffffff35;border-radius:50%;display:grid;place-items:center}.contact-visual-page .cv-orbit .cv-icon{margin:0;background:#d7eee6;width:64px;height:64px}.contact-visual-page .cv-orbit i{position:absolute;width:13px;height:13px;background:#abdfcf;border-radius:50%;top:12px;left:30px}.contact-visual-page .cv-orbit i:last-child{top:auto;left:auto;right:20px;bottom:22px;background:#a9d7f4}
.contact-visual-page .split-grid{gap:48px;align-items:center;grid-template-columns:1fr 1fr}.contact-visual-page .design-showcase-image{padding:16px;background:#edf4f7;border:1px solid var(--cv-line);border-radius:24px;overflow:hidden;margin:0}.contact-visual-page .design-showcase-image img{border-radius:14px}
.contact-visual-page .location-card-grid{grid-template-columns:1fr 1fr;gap:18px}.contact-visual-page .location-card-grid article{padding:24px;border-radius:18px;box-shadow:none;background:#f8fbfc;border-color:var(--cv-line)}.contact-visual-page .location-card-grid p{font-size:16px}.contact-visual-page .location-card-grid a{font-size:15px}
.contact-visual-page .service-guidance-section{background:#173e49}.contact-visual-page .service-guidance-section h2{color:#fff}.contact-visual-page .service-guidance-section>.narrow p{color:#d6e7eb}.contact-visual-page .service-guidance-section>.narrow .eyebrow{color:#b9dfd4}.contact-visual-page .service-category-grid{gap:24px;margin-top:32px}.contact-visual-page .pillar-card{padding:32px;border-radius:24px;background:#edf4fb;box-shadow:none;position:relative;overflow:hidden;border:1px solid #c9dce7}.contact-visual-page .pillar-card.growth{background:#eff7ee}.contact-visual-page .pillar-card p{font-size:17px}.contact-visual-page .pillar-card .cv-icon{display:none}
.contact-visual-page .cv-service-art{height:135px;display:flex;align-items:center;gap:10px;margin-bottom:28px;border-bottom:1px solid #bdd2d9}.contact-visual-page .cv-service-art b{font-size:48px;color:#256782;margin-right:auto}.contact-visual-page .growth .cv-service-art b{color:#347660}.contact-visual-page .cv-service-art i{font-style:normal;font-size:14px;padding:6px 10px;border:1px solid #bbd1d9;border-radius:8px;background:#fff;transform:rotate(-6deg);transition:transform .4s}.contact-visual-page .cv-service-art i:nth-child(3){transform:translateY(-17px) rotate(5deg)}.contact-visual-page .consultation-note{border:0;border-left:3px solid #8fcdb7;background:#ffffff0b;box-shadow:none;border-radius:0;color:#fff}.contact-visual-page .consultation-note strong,.contact-visual-page .consultation-note p{color:#e7f2f2;font-size:17px}
.contact-visual-page .contact-process-section{background:#f5f8f5}.contact-visual-page .contact-process-section .split-grid{grid-template-columns:1.2fr 1fr;align-items:start}.contact-visual-page .contact-process-track{gap:0 24px}.contact-visual-page .contact-process-track article{padding:24px 0;border:0;border-top:1px solid #bfd5ce;box-shadow:none;background:transparent;border-radius:0}.contact-visual-page .contact-process-track article:before,.contact-visual-page .contact-process-track article:after{display:none}.contact-visual-page .contact-process-track h3{font-size:21px}.contact-visual-page .contact-process-track p{font-size:16px}.contact-visual-page .contact-process-section .design-showcase-image{margin-top:12px;background:#fff}
.contact-visual-page .faq-section{background:#fff}.contact-visual-page .faq-list.container{margin:30px auto 0;max-width:1240px}.contact-visual-page .faq-list details{border:1px solid var(--cv-line);border-radius:14px;padding:22px 26px;background:#f8fbfc}.contact-visual-page .faq-list summary{font-size:18px;color:#204a55}.contact-visual-page .faq-list p{font-size:17px}.contact-visual-page .faq-list details[open]{background:#edf6f3;border-color:#8ebfb0}
.contact-visual-page .final-cta{background:linear-gradient(120deg,#204e61,#153e42)}.contact-visual-page .final-cta h2,.contact-visual-page .final-cta p{color:#fff}.contact-visual-page .final-cta .eyebrow{color:#bce1d5}.contact-visual-page .final-cta .btn-light{color:#183f4b;background:#fff}.contact-visual-page .final-cta .btn-outline-light{color:#fff;border-color:#b9d4d9;background:transparent}
.contact-visual-page main article{transition:transform .3s,border-color .3s,box-shadow .3s}.contact-visual-page main a:focus-visible,.contact-visual-page main summary:focus-visible{outline:3px solid #398777;outline-offset:5px}
@media(hover:hover){.contact-visual-page main article:hover{transform:translateY(-5px);border-color:#7cacac;box-shadow:0 16px 36px #194d5b15}.contact-visual-page .cv-hero-visual:hover img,.contact-visual-page .design-showcase-image:hover img{transform:scale(1.025)}.contact-visual-page .pillar-card:hover .cv-service-art i{transform:translateY(-8px) rotate(0)}}
@keyframes cv-bob{50%{transform:translateY(-6px)}}
@media(prefers-reduced-motion:no-preference){.contact-visual-page .cv-orbit i{animation:cv-bob 3s ease-in-out 3}.contact-visual-page .sv-visible .cv-icon svg{animation:cv-bob 3s ease-in-out 2}}
@media(max-width:1050px){.contact-visual-page .page-hero-grid,.contact-visual-page .split-grid,.contact-visual-page .contact-process-section .split-grid{gap:28px}.contact-visual-page .contact-form-grid{grid-template-columns:1fr .75fr;gap:22px}.contact-visual-page .contact-form-panel,.contact-visual-page .contact-support-panel{padding:26px}.contact-visual-page .location-card-grid{grid-template-columns:1fr}.contact-visual-page .cv-service-art{gap:6px}.contact-visual-page .cv-service-art i{padding:5px}}
@media(max-width:800px){.contact-visual-page main .container{width:calc(100% - 40px)}.contact-visual-page .section{padding:56px 0}.contact-visual-page .page-hero-grid,.contact-visual-page .split-grid,.contact-visual-page .contact-form-grid,.contact-visual-page .contact-process-section .split-grid{grid-template-columns:1fr}.contact-visual-page .cv-hero-visual{max-width:640px}.contact-visual-page .contact-card{padding:24px;display:block}.contact-visual-page .contact-card .cv-icon{margin-bottom:20px}.contact-visual-page .service-category-grid{grid-template-columns:1fr}.contact-visual-page .location-card-grid{grid-template-columns:1fr 1fr}.contact-visual-page .cv-orbit{float:right;margin:0 0 20px 20px}.contact-visual-page .contact-support-list{clear:both}.contact-visual-page .cta-grid{grid-template-columns:1fr}}
@media(max-width:540px){.contact-visual-page .contact-hero{padding:48px 0}.contact-visual-page .contact-card-grid,.contact-visual-page .form-grid,.contact-visual-page .location-card-grid,.contact-visual-page .contact-process-track{grid-template-columns:1fr}.contact-visual-page .contact-card{display:flex;gap:18px}.contact-visual-page .contact-card .cv-icon{width:48px;height:48px;margin:0}.contact-visual-page .contact-form-panel,.contact-visual-page .contact-support-panel,.contact-visual-page .pillar-card{padding:24px}.contact-visual-page .cv-orbit{float:none;margin:0 auto 28px}.contact-visual-page .contact-card a{font-size:17px}.contact-visual-page .cv-service-art b{font-size:36px}.contact-visual-page .hero-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.contact-visual-page main *{animation:none!important;transition:none!important}}
.contact-visual-page .contact-support-panel{background-color:#1d5360}.contact-visual-page .final-cta{background-color:#204e61}
/* UK clinic positioning with transparent, compact company details. */
.contact-visual-page .cv-uk-proof{background:#f2f7f3}
.contact-visual-page .cv-uk-proof .design-showcase-image{padding:14px;background:#e3eee7;max-width:560px}
.contact-visual-page .cv-uk-proof .design-showcase-image img{height:auto;max-height:490px;object-fit:contain}
.contact-visual-page main .cv-location-line{font-size:16px;color:#326554;margin-top:24px;border-top:1px solid #ccddd2;padding-top:20px}
.contact-visual-page .cv-company-details{padding:36px 0;background:#f5f8fa;border-top:1px solid #d2e1e7}
.contact-visual-page .cv-company-details .container{display:flex;justify-content:space-between;align-items:start;gap:32px}
.contact-visual-page .cv-company-details h2{font-size:21px;margin:8px 0}
.contact-visual-page .cv-company-details p{font-size:15px;margin:6px 0}
.contact-visual-page .cv-company-details address{font-style:normal;font-size:15px;line-height:1.8;color:#425f6b}
@media(max-width:650px){.contact-visual-page .cv-company-details .container{flex-direction:column;gap:20px}}
/* Compact enquiry form: natural page scrolling and comfortable touch targets. */
.contact-visual-page .contact-form-panel{padding:28px}
.contact-visual-page .contact-form-panel h2{font-size:clamp(27px,2.5vw,34px);margin:8px 0 12px}
.contact-visual-page .contact-form-panel>.eyebrow{margin:0;font-size:13px}
.contact-visual-page .contact-form-panel>p:not(.eyebrow){font-size:16px;line-height:1.6;margin:0}
.contact-visual-page .contact-form{margin-top:20px}
.contact-visual-page .contact-form .form-grid{gap:14px 18px}
.contact-visual-page .contact-form label{gap:6px;line-height:1.5}
.contact-visual-page .contact-form input,.contact-visual-page .contact-form select{height:48px;min-height:48px;padding:10px 12px}
.contact-visual-page .contact-form textarea{min-height:96px;padding:10px 12px;line-height:1.5}
.contact-visual-page .cv-optional{padding:0;border-block:1px solid #d2e0e7}
.contact-visual-page .cv-optional summary{padding:12px 0;min-height:44px;cursor:pointer;color:#285f68;font-size:15px;font-weight:600;line-height:1.5}
.contact-visual-page .cv-optional-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:2px 0 16px}
.contact-visual-page .contact-form .captcha-field{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:6px 12px;padding:12px 14px}
.contact-visual-page .captcha-field .captcha-question{grid-column:1;margin:0;padding:0;background:transparent;font-size:17px;min-height:0}
.contact-visual-page .captcha-field input{grid-column:2;grid-row:1/3;align-self:center}
.contact-visual-page .contact-form .captcha-status{font-size:14px;line-height:1.5;margin:8px 0 0}
.contact-visual-page .contact-form button{margin-top:16px;min-height:48px}
.contact-visual-page .contact-support-panel .cv-orbit{width:110px;height:110px;margin-bottom:24px}
.contact-visual-page .contact-support-panel .cv-orbit>div{width:80px;height:80px}
.contact-visual-page .contact-support-panel h2{font-size:28px}
.contact-visual-page .contact-support-panel{padding:28px}
@media(max-width:800px){
 .contact-visual-page .contact-form-grid{gap:20px}
 .contact-visual-page .contact-support-panel .cv-orbit,.contact-visual-page .contact-support-panel .eyebrow,.contact-visual-page .contact-support-list{display:none}
 .contact-visual-page .contact-support-panel{padding:22px}
 .contact-visual-page .contact-support-panel h2{font-size:23px;margin:0 0 10px}
 .contact-visual-page .contact-support-panel h2 br{display:none}
 .contact-visual-page .contact-support-panel p{font-size:16px;line-height:1.6;margin:0 0 16px}
}
@media(max-width:540px){
 .contact-visual-page .contact-form-panel{padding:20px}
 .contact-visual-page .contact-form .form-grid{gap:12px}
 .contact-visual-page .cv-optional-fields{grid-template-columns:1fr}
 .contact-visual-page .contact-form-panel h2{font-size:27px}
 .contact-visual-page .contact-form-section{padding:36px 0}
}
