/* Contact page */
.torch-contact {
    padding: 42px 0;
    background: #fff;
    color: #292929;
    font-size: 16px;
    line-height: 1.45;
}
.torch-contact *, .torch-contact *::before, .torch-contact *::after { box-sizing: border-box; }
.torch-contact .container { max-width: 1180px; }
.torch-contact h1, .torch-contact h2, .torch-contact h3 { color: #c8102e; margin: 0 0 12px; line-height: 1.15; }
.torch-contact h1 { font-size: 44px; text-transform: uppercase; }
.torch-contact h2 { font-size: 30px; text-transform: none; }
.torch-contact h3 { font-size: 23px; text-transform: none; }
.torch-contact .contact-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.torch-contact p { margin: 0 0 16px; }
.torch-contact a { color: #c8102e; text-decoration: none; overflow-wrap: anywhere; }
.torch-contact a:hover { text-decoration: underline; }
.torch-contact a:focus-visible, .torch-contact button:focus-visible { outline: 3px solid #161616; outline-offset: 4px; }
.contact-intro { margin-bottom: 24px; }
.contact-top, .contact-bottom { display: grid; gap: 28px; }
.contact-top { grid-template-columns: minmax(0, 2.3fr) minmax(0, 1fr); }
.contact-top > *, .contact-bottom > * { min-width: 0; }
.contact-booking { padding: 26px; border: 1px solid #dedede; border-radius: 7px; }
.contact-booking-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-bottom: 16px; }
.contact-booking-links a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: #182026; font-weight: 700; }
.contact-booking-links .contact-phone { font-size: 25px; }
.contact-icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: #db002b; color: #fff; }
.contact-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.torch-contact .contact-button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 44px; padding: 10px 22px; border-radius: 18px; color: #fff; background: #db002b; font-weight: 700; }
.contact-button span, .contact-directions > span[aria-hidden] { font-size: 27px; line-height: 1; }
.torch-contact .contact-small { font-size: 14px; color: #555; }
.torch-contact .contact-booking-note { margin: 10px 0 22px; }
.torch-contact .contact-hours { width: 100%; border: 0; border-collapse: collapse; table-layout: fixed; margin: 0; font-size: 15px; }
.torch-contact .contact-hours caption { caption-side: top; text-align: left; border-top: 1px solid #ddd; padding: 10px 0 6px; color: #222; font-size: 17px; font-weight: 700; }
.torch-contact .contact-hours th, .torch-contact .contact-hours td { padding: 7px 0; background: transparent; color: inherit; border: 0; border-bottom: 1px solid #e4e4e4; text-align: left; vertical-align: top; font-weight: 400; }
.torch-contact .contact-hours th { width: 47%; padding-right: 14px; }
.torch-contact .contact-hours-note { margin: 12px 0 0; }
.contact-hours-note a, .contact-enquiry a[href^="tel:"] { color: inherit; }
.contact-find, .contact-message { padding: 26px; background: #f4f4f5; border-radius: 7px; }
.contact-find address { font-style: normal; margin: 0 0 20px; }
.contact-directions { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; font-weight: 700; }
.contact-bottom { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); border-top: 1px solid #ddd; margin-top: 28px; padding-top: 24px; align-items: start; }
.contact-enquiry { padding: 18px 0; border-bottom: 1px solid #ddd; }
.contact-enquiry:first-of-type { padding-top: 0; }
.contact-enquiry:last-child { border-bottom: 0; }
.contact-enquiry h3 { margin-bottom: 7px; }
.contact-enquiry p { margin: 0; }
.contact-message .form.contact-form { margin-top: 26px; height: auto; }
.contact-message .form.contact-form > .inner { padding: 0; border: 0; background: transparent; color: #292929; }
.contact-message form > .info { display: none; }
.contact-message fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 0; margin: 0; min-width: 0; }
.contact-message .form-group { grid-column: 1 / -1; margin: 0; min-width: 0; }
.contact-message .form-group:nth-child(1), .contact-message .form-group:nth-child(2) { grid-column: auto; }
.contact-message .form-group label { display: block; color: #252525; font-size: 14px; line-height: 1.4; margin: 0 0 5px; }
.torch-contact .contact-message .form .form-control:not([type="checkbox"]):not([type="radio"]) { width: 100%; min-width: 0; min-height: 44px; border: 1px solid #d4d4d8; border-radius: 4px; background: #fff; color: #222; padding: 10px 12px; font-size: 16px; line-height: 1.4; box-shadow: none; }
.torch-contact .contact-message .form textarea.form-control { min-height: 120px; resize: vertical; }
.contact-message .form-control:focus { outline: 2px solid #c8102e; outline-offset: 1px; }
.contact-message .form-group.checkbox label { min-height: 44px; margin: 0; }
.contact-message .form-group.checkbox input.form-control { width: 20px; min-height: 20px; }
.contact-message .buttons { margin-top: 16px; }
.contact-message .buttons .btn { min-height: 44px; padding: 10px 22px; border: 0; border-radius: 6px; color: #fff; background: #db002b; font-size: 16px; line-height: 1.4; font-weight: 700; }
.contact-message .buttons .btn > span { display: none; }
.contact-message .note-recaptcha { color: #555; margin-top: 16px; }
.contact-message .note-recaptcha p { font-size: 12px; line-height: 1.45; margin: 0; }
#site-content .torch-contact .contact-message .note-recaptcha a { color: #c8102e; text-decoration: underline; }
#site-content .torch-contact .contact-message .note-recaptcha a:hover,
#site-content .torch-contact .contact-message .note-recaptcha a:focus,
#site-content .torch-contact .contact-message .note-recaptcha a:active { color: #9f0d25; }
.contact-message .field-validation-error { font-size: 13px; color: #b40020; }
.torch-contact .contact-legal { border-top: 1px solid #ddd; margin: 24px 0 0; padding-top: 14px; color: #555; font-size: 13px; }
@media (max-width: 991px) {
    .torch-contact { padding: 30px 0; }
    .contact-top, .contact-bottom { gap: 22px; }
    .contact-booking, .contact-find, .contact-message { padding: 20px; }
    .torch-contact h1 { font-size: 36px; }
    .torch-contact h2 { font-size: 27px; }
}
@media (max-width: 767px) {
    .torch-contact .container { padding-right: 20px; padding-left: 20px; }
    .contact-top, .contact-bottom { grid-template-columns: minmax(0, 1fr); }
    .torch-contact h1 { font-size: 34px; }
    .torch-contact h2 { font-size: 27px; }
    .torch-contact h3 { font-size: 22px; }
    .contact-booking-links { display: grid; gap: 10px; }
    .contact-booking-links a { font-size: 14px; }
    .contact-booking-links .contact-phone { font-size: 23px; }
    .contact-icon { width: 34px; height: 34px; flex-basis: 34px; }
    .contact-enquiry { padding: 20px 0; }
    .torch-contact .contact-hours { font-size: 14px; }
    .contact-message fieldset { gap: 16px; }
}
@media (max-width: 359px) {
    .contact-message .form-group:nth-child(1), .contact-message .form-group:nth-child(2) { grid-column: 1 / -1; }
    .contact-booking, .contact-find, .contact-message { padding: 16px; }
}
