/* Contact-specific additions to the existing homepage design system. */
.contact-page .cp-hero { min-height: clamp(430px, 34vw, 510px); }
.contact-page .cp-hero::after { background: linear-gradient(90deg, #07131fdb, #07131f96 45%, #07131f14 100%); }
.contact-page .cp-hero .ar-hero-content { padding-block: 54px; }
.contact-page .cp-hero .ar-eyebrow { margin-bottom: 15px; color: #fff; letter-spacing: .2em; }
.contact-page .cp-hero h1 { font-size: clamp(48px, 4.8vw, 70px); }
.contact-page .cp-hero .ar-hero-description { max-width: 480px; font-size: 16px; line-height: 1.75; }
.contact-page .cp-hero .ar-actions { align-items: center; gap: 24px; }
.contact-page .cp-hero-phone { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; font-size: 14px; }
.contact-page .cp-hero-phone:hover { text-decoration: underline !important; }
.contact-page .cp-hero-phone .icon-phone { color: #e6cfad; }
.contact-page .cp-benefits .ar-trust-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: 25px; }
.contact-page .cp-benefits .ar-trust-item { gap: 14px; padding-inline: 23px; }
.contact-page .cp-benefits .ar-trust-item:first-child { padding-left: 0; }
.contact-page .cp-benefits .ar-trust-item:last-child { padding-right: 0; }
.contact-page .cp-benefits .ar-icon { width: 34px; height: 34px; }
.contact-page .cp-benefits strong { font-size: 14px; }
.contact-page .cp-benefits .ar-trust-item p { margin-top: 5px; font-size: 12px; line-height: 1.5; }
.contact-page .cp-contact-grid,
.contact-page .cp-visit-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); }
.contact-page .cp-contact-grid { padding-block: 65px 70px; }
.contact-page .cp-contact-grid > *, .contact-page .cp-visit-grid > * { min-width: 0; }
.contact-page .cp-section-intro { margin-bottom: 26px; }
.contact-page .cp-section-intro h2 { font-size: clamp(30px, 3vw, 42px); }
.contact-page .cp-section-intro > p:not(.ar-eyebrow) { margin-top: 18px; max-width: 590px; color: var(--ar-muted); font-size: 14px; line-height: 1.8; }
.contact-page .cp-section-intro > .ar-text-link { margin-top: 10px; }
.contact-page .cp-card { background: #fff; border: 1px solid #eee9e0; border-radius: 8px; box-shadow: 0 6px 24px #30271708; }
.contact-page .cp-form-card { padding: clamp(22px, 2.6vw, 36px); scroll-margin-top: 28px; }
.contact-page .cp-required-note { margin-bottom: 20px; color: var(--ar-muted); font-size: 12px; }
.contact-page .cp-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.contact-page .cp-field { margin-bottom: 22px; min-width: 0; }
.contact-page .cp-field label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; }
.contact-page .cp-optional { color: var(--ar-muted); font-size: 11px; font-weight: 400; }
.contact-page .cp-field label > span:not(.cp-optional) { color: var(--ar-red); }
.contact-page :is(.form-control, .form-select) { min-height: 48px; padding: 12px 14px; border-color: #dcd6cd; border-radius: 4px; background-color: #fffefa; color: var(--ar-ink); font: 14px/1.5 Arial, Helvetica, sans-serif; }
.contact-page .form-select { padding-right: 35px; }
.contact-page .form-control::placeholder { color: #75716c; opacity: 1; }
.contact-page textarea.form-control { min-height: 155px; resize: vertical; }
.contact-page :is(.form-control, .form-select):focus { outline: 2px solid var(--ar-gold); outline-offset: 2px; border-color: var(--ar-gold); box-shadow: none; }
.contact-page :is(.form-control, .form-select).is-invalid { border-color: var(--ar-red); }
.contact-page .invalid-feedback,
.contact-page .cp-field-error { display: block; margin-top: 7px; color: var(--ar-red-hover); font-size: 12px; line-height: 1.5; }
.contact-page .cp-captcha-help { margin-top: 10px; color: var(--ar-muted); font-size: 12px; line-height: 1.6; }
.contact-page .cp-recaptcha { margin-bottom: 24px; scroll-margin-top: 24px; }
.contact-page .cp-submit-row { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
.contact-page .cp-submit-row .ar-button { min-height: 48px; min-width: 156px; }
.contact-page .cp-submit-row p { color: var(--ar-muted); font-size: 11px; }
.contact-page .ar-button:disabled { opacity: .6; cursor: not-allowed; }
.contact-page .cp-form-card .alert { font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.contact-page .cp-form-card .alert ul { margin: 8px 0 0; padding-left: 20px; }
.contact-page .cp-form-card .alert a { text-decoration: underline !important; }
.contact-page #contact-feedback:has(.alert) { margin-bottom: 22px; }
.contact-page .cp-information { padding: 8px 30px; }
.contact-page .cp-information dl { margin: 0; }
.contact-page .cp-detail { position: relative; padding: 22px 0 22px 46px; border-bottom: 1px solid #eee9e0; }
.contact-page .cp-detail:last-child { border: 0; }
.contact-page .cp-detail dt { margin-bottom: 6px; font-size: 14px; font-weight: 600; }
.contact-page .cp-detail dt > span { position: absolute; top: 24px; left: 0; width: 26px; color: var(--ar-gold); font-size: 23px; text-align: center; }
.contact-page .cp-detail dd { margin: 0; color: var(--ar-muted); font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.contact-page .cp-detail a:hover { color: var(--ar-red); text-decoration: underline !important; }
.contact-page .cp-personal-note { display: flex; align-items: center; gap: 12px; margin-top: 24px; color: var(--ar-gold); font: italic 17px/1.6 Georgia, serif; }
.contact-page .cp-personal-note .ar-icon { width: 27px; height: 27px; }
.contact-page .cp-visit { padding-block: 58px 65px; background: var(--ar-cream); border-top: 1px solid #ebe5da; }
.contact-page .cp-location { overflow: hidden; }
.contact-page .cp-location-heading { display: flex; align-items: center; gap: 18px; padding: 25px 28px; }
.contact-page .cp-location-heading > span { color: var(--ar-gold); font-size: 29px; }
.contact-page .cp-location-heading h3 { font-size: 25px; }
.contact-page .cp-location-heading address { margin: 8px 0 0; color: var(--ar-muted); font-size: 14px; font-style: normal; line-height: 1.6; }
.contact-page .cp-map { display: block; width: 100%; height: 260px; border: 0; background: #e6e4dc; }
.contact-page .cp-location-action { padding: 22px 28px; }
.contact-page .cp-button-outline { border-color: var(--ar-red); background: transparent; color: var(--ar-red); }
.contact-page .cp-button-outline:hover { color: #fff; }
.contact-page .cp-visit-aside { display: flex; flex-direction: column; gap: 26px; }
.contact-page .cp-service-photo { position: relative; isolation: isolate; flex: 1; min-height: 310px; margin: 0; overflow: hidden; border-radius: 8px; }
.contact-page .cp-service-photo img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 48% center; }
.contact-page .cp-service-photo::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg, #07131fc9, transparent 65%); }
.contact-page .cp-service-photo figcaption { position: absolute; bottom: 30px; left: 30px; right: 20px; color: #fff; font: 700 clamp(26px, 2.5vw, 34px)/1.25 Georgia, serif; letter-spacing: -.03em; }
.contact-page .cp-service-photo figcaption span { font-style: italic; font-weight: 400; }
.contact-page .cp-advice { grid-column: auto; padding: 28px; background: #eae2d6; }
.contact-page .cp-advice h3 { font-size: 25px; }
.contact-page .cp-advice p { margin-top: 12px; font-size: 14px; line-height: 1.8; }
.contact-page .cp-advice .ar-button { min-height: 44px; margin-top: 18px; font-size: 14px; }
.contact-page .ar-cta { min-height: 260px; }
.contact-page .ar-cta::after { background: #1020306b; }
.contact-page .ar-cta h2 { font-size: clamp(30px, 3vw, 42px); }
.contact-page .ar-cta-content { padding-block: 50px; }

@supports (grid-template-rows: subgrid) {
    @media (min-width: 992px) {
        .contact-page .cp-contact-grid { row-gap: 0; }
        .contact-page .cp-contact-grid > * { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; }
    }
}
@media (max-width: 1199.98px) {
    .contact-page .cp-benefits .ar-trust-item { padding-inline: 15px; gap: 10px; }
    .contact-page .cp-benefits strong { font-size: 12px; }
    .contact-page .cp-benefits .ar-icon { width: 28px; height: 28px; }
    .contact-page .cp-contact-grid, .contact-page .cp-visit-grid { gap: 32px; }
    .contact-page .cp-field-grid { grid-template-columns: 1fr; }
}
@media (max-width: 991.98px) {
    .contact-page .cp-benefits .ar-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 0; }
    .contact-page .cp-benefits .ar-trust-item { padding-inline: 22px; }
    .contact-page .cp-benefits .ar-trust-item:nth-child(odd) { padding-left: 0; border-left: 0; }
    .contact-page .cp-benefits strong { font-size: 14px; }
    .contact-page .cp-benefits .ar-icon { width: 32px; height: 32px; }
    .contact-page .cp-contact-grid, .contact-page .cp-visit-grid { grid-template-columns: minmax(0, 1fr); gap: 42px; }
    .contact-page .cp-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .contact-page .cp-service-photo { min-height: 360px; }
    .contact-page .cp-information { padding-inline: 28px; }
}
@media (max-width: 575.98px) {
    .contact-page .cp-hero { min-height: 540px; }
    .contact-page .cp-hero .ar-hero-content { padding-block: 56px 38px; }
    .contact-page .cp-hero h1 { font-size: clamp(36px, 11vw, 55px); }
    .contact-page .cp-hero::after { background: linear-gradient(90deg, #07131fe3, #07131f8c); }
    .contact-page .cp-hero .ar-hero-description { font-size: 15px; line-height: 1.8; }
    .contact-page .cp-hero .ar-actions { gap: 10px; }
    .contact-page .cp-hero-phone { justify-content: center; width: 100%; font-size: 14px; }
    .contact-page .cp-benefits .ar-trust-grid { gap: 0; padding-block: 12px; }
    .contact-page .cp-benefits .ar-trust-item { align-items: start; padding: 16px 10px; border-top: 0; border-left: 1px solid #dcd6ca; gap: 9px; }
    .contact-page .cp-benefits .ar-trust-item:nth-child(odd) { padding-right: 10px; }
    .contact-page .cp-benefits .ar-trust-item:nth-child(even) { padding-left: 14px; padding-right: 0; }
    .contact-page .cp-benefits .ar-icon { width: 25px; height: 25px; }
    .contact-page .cp-benefits strong { font-size: 12px; overflow-wrap: anywhere; }
    .contact-page .cp-benefits .ar-trust-item p { font-size: 11px; }
    .contact-page .cp-contact-grid { padding-block: 42px; }
    .contact-page .cp-section-intro { margin-bottom: 24px; }
    .contact-page .cp-section-intro h2 { font-size: clamp(28px, 8vw, 32px); overflow-wrap: anywhere; }
    .contact-page .ar-menu-toggle { min-width: 44px; min-height: 44px; }
    .contact-page .ar-mobile-enquiry { min-height: 44px; }
    .contact-page .cp-field-grid { grid-template-columns: 1fr; }
    .contact-page .cp-form-card { padding: 22px 18px; }
    .contact-page :is(.form-control, .form-select) { font-size: 16px; }
    .contact-page .cp-submit-row .ar-button { width: 100%; }
    .contact-page .cp-submit-row { justify-content: center; gap: 10px; }
    .contact-page .cp-detail { padding-left: 40px; }
    .contact-page .cp-information { padding-inline: 22px; }
    .contact-page .cp-visit { padding-block: 42px; }
    .contact-page .cp-location-heading { padding: 24px 20px; gap: 14px; }
    .contact-page .cp-map { height: 240px; }
    .contact-page .cp-location-action { padding: 20px; }
    .contact-page .cp-location-action .ar-button { width: 100%; padding-inline: 12px; }
    .contact-page .cp-service-photo { min-height: 300px; }
    .contact-page .cp-service-photo figcaption { bottom: 25px; left: 24px; }
    .contact-page .cp-advice { padding: 24px 20px; gap: 14px; }
    .contact-page .cp-advice h3 { font-size: 24px; }
    .contact-page .cp-advice > .ar-icon { width: 25px; height: 25px; }
    .contact-page .ar-cta-content { padding-block: 42px; }
}
@media (max-width: 359.98px) {
    .contact-page .ar-navbar { gap: 8px; }
    .contact-page .ar-brand { width: 100px; }
    .contact-page .ar-mobile-enquiry { padding-inline: 8px; font-size: 10px; }
    .contact-page .cp-benefits .ar-trust-grid { grid-template-columns: 1fr; }
    .contact-page .cp-benefits .ar-trust-item:nth-child(n) { padding: 16px 0; border: 0; border-top: 1px solid #dcd6ca; align-items: center; gap: 16px; }
    .contact-page .cp-benefits .ar-trust-item:first-child { border-top: 0; }
    .contact-page .cp-benefits strong { font-size: 14px; }
    .contact-page .cp-benefits .ar-trust-item p { font-size: 12px; }
    .contact-page .cp-benefits .ar-icon { width: 30px; height: 30px; }
}
