/* Contact routes and privacy reference: compact, neutral and distinct. */
.page-contact .contact-overview { padding-block: 46px; background: #fff; }
.page-contact .contact-route-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.page-contact .contact-route-card { display: grid; grid-template-columns: 38px minmax(0,1fr); align-content: start; gap: 14px 16px; padding: 24px; min-width: 0; background: #fff; border: 1px solid #d7d7d7; border-top: 3px solid #242424; border-radius: 4px; }
.page-contact .contact-route-primary { border-top-color: #94192d; background: #f5f5f5; }
.page-contact .contact-route-icon { display: inline-grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; color: #94192d; background: #fff; border: 1px solid #dedede; border-radius: 3px; }
.page-contact .contact-route-icon .ui-icon { width: 21px; height: 21px; }
.page-contact .contact-route-copy .eyebrow { font-size: .64rem; line-height: 1.5; letter-spacing: .08em; margin-bottom: 7px; }
.page-contact .contact-route-copy h2 { font-size: clamp(1.1rem,1.35vw,1.4rem); line-height: 1.3; letter-spacing: -.025em; }
.page-contact .contact-route-copy>p:not(.eyebrow) { font-size: .85rem; color: #575757; line-height: 1.6; margin-top: 8px; max-width: 44ch; }
.page-contact .contact-route-actions { grid-column: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-width: 0; }
.page-contact .contact-route-actions a { display: inline-flex; align-items: center; min-height: 36px; max-width: 100%; color: #94192d; text-decoration: none; overflow-wrap: anywhere; }
.page-contact .contact-route-actions a:hover { text-decoration: underline; }
.page-contact .contact-route-phone { gap: 16px; font-size: clamp(1.15rem,1.55vw,1.55rem); font-weight: 650; letter-spacing: -.035em; }
.page-contact .contact-route-phone>span { font-size: 1rem; }
.page-contact .contact-route-email { font-size: .81rem; font-weight: 550; line-height: 1.5; }
.page-contact .contact-local-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(0,1fr); gap: 24px; align-items: start; margin-top: 28px; }
.page-contact .map-card { display: flex; flex-direction: column; align-self: stretch; background: #fff; border: 1px solid #d7d7d7; border-radius: 4px; overflow: hidden; scroll-margin-top: 24px; }
.page-contact .map-heading { padding: 18px 22px; gap: 14px; }
.page-contact .map-heading .eyebrow { font-size: .65rem; line-height: 1.5; margin-bottom: 5px; }
.page-contact .map-heading h2 { font-size: 1.35rem; line-height: 1.25; letter-spacing: -.025em; }
.page-contact .map-stage { height: clamp(340px, 27vw, 460px); min-height: 340px; flex: 1 0 auto; }
.page-contact .map-stage iframe { position: absolute; inset: 0; }
.page-contact .map-placeholder>img { object-position: center 57%; }
.page-contact .map-placeholder::after { background: #161616d9; }
.page-contact .map-prompt { padding: 20px; }
.page-contact .map-prompt h3 { font-size: clamp(1.35rem,1.7vw,1.8rem); line-height: 1.25; }
.page-contact .map-prompt>p { font-size: .84rem; line-height: 1.5; margin-top: 7px; }
.page-contact .map-prompt .button { min-height: 44px; padding: 10px 16px; gap: 16px; font-size: .8rem; border-radius: 3px; margin-top: 15px; }
.page-contact .map-prompt .map-consent { font-size: .69rem; line-height: 1.6; margin-top: 12px; max-width: 54ch; color: #eee; }
.page-contact .map-consent a { display: inline-block; }
.page-contact .map-caption { padding: 15px 22px; }
.page-contact .map-caption>p { font-size: .8rem; line-height: 1.6; max-width: 78ch; }
.page-contact .map-caption .text-link { font-size: .76rem; min-height: 36px; margin-top: 3px; gap: 12px; }
.page-contact .map-caption .map-provider-note { font-size: .75rem; margin-top: 9px; }
.page-contact .map-provider-note a { color: var(--red); text-underline-offset: 3px; }
.page-contact .contact-preparation { min-width: 0; display: grid; gap: 16px; }
.page-contact .contact-checklist { padding: 22px; border: 1px solid #d7d7d7; border-radius: 4px; background: #f3f3f3; }
.page-contact .contact-checklist-heading { display: flex; align-items: flex-start; gap: 14px; }
.page-contact .contact-checklist-heading .eyebrow { font-size: .65rem; line-height: 1.5; margin-bottom: 5px; }
.page-contact .contact-checklist h2 { font-size: 1.3rem; line-height: 1.3; letter-spacing: -.025em; max-width: 28ch; }
.page-contact .contact-checklist ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; margin: 19px 0 17px; padding: 0; list-style: none; }
.page-contact .contact-checklist li { display: flex; align-items: flex-start; gap: 9px; font-size: .84rem; line-height: 1.55; }
.page-contact .contact-checklist li .ui-icon { width: 18px; height: 18px; flex: 0 0 18px; color: #94192d; margin-top: 2px; }
.page-contact .contact-checklist-note { border-top: 1px solid #d7d7d7; padding-top: 15px; color: #575757; font-size: .77rem; line-height: 1.65; }
.page-contact .contact-social { padding: 18px 22px; margin: 0; gap: 10px; border: 1px solid #d7d7d7; border-radius: 4px; background: #fff; }
.page-contact .contact-social h3 { font-size: 1rem; line-height: 1.3; letter-spacing: -.02em; }
.page-contact .contact-social p { font-size: .78rem; line-height: 1.6; margin-top: 4px; }
.page-contact .contact-social .social-link { font-size: .77rem; min-height: 40px; }
.page-contact .contact-social .facebook-icon { width: 23px; height: 23px; }
.page-contact .contact-enquiry-section { background: #f3f3f3; padding-block: 46px; border-top: 1px solid #d7d7d7; }
.page-contact .contact-form-layout { display: grid; grid-template-columns: minmax(230px,.65fr) minmax(0,1.6fr); gap: clamp(30px,4vw,76px); align-items: start; }
.page-contact .contact-form-intro { margin: 0; max-width: 42ch; }
.page-contact .contact-form-intro>.contact-route-icon { margin-bottom: 18px; }
.page-contact .contact-form-intro .eyebrow { font-size: .68rem; line-height: 1.5; margin-bottom: 11px; }
.page-contact .contact-form-intro h2 { font-size: clamp(1.7rem,2.35vw,2.35rem); line-height: 1.15; max-width: 18ch; }
.page-contact .contact-form-intro .section-intro { font-size: .9rem; line-height: 1.7; color: #575757; margin-top: 15px; }
.page-contact .contact-enquiry-section .enquiry-card { padding: clamp(22px,2.5vw,38px); border: 1px solid #ccc; border-top: 3px solid #242424; border-radius: 4px; box-shadow: none; }
.page-contact .contact-enquiry-section .enquiry-fields { gap: 18px; }
.page-contact .contact-enquiry-section :is(input,select,textarea,.enquiry-security,.enquiry-security-button,.enquiry-submit,.enquiry-feedback) { border-radius: 3px; }
.page-contact .contact-enquiry-section .enquiry-field label { font-size: .86rem; margin-bottom: 7px; }
.page-contact .contact-enquiry-section .enquiry-hint { font-size: .78rem; }
.page-contact .contact-enquiry-section .enquiry-required-note { margin-top: 0; font-size: .78rem; }
.page-contact .contact-enquiry-section .enquiry-consent { font-size: .82rem; margin-block: 20px; }

/* Contact-specific details complement the shared enquiry-dark.css palette. */
@media screen {
  .page-contact .contact-enquiry-section .contact-form-intro .eyebrow { color: #efefef; }
  .page-contact .contact-enquiry-section .contact-form-intro h2 { color: #fff; }
  .page-contact .contact-enquiry-section .contact-form-intro .section-intro { color: #c7c7c7; }
  .page-contact .contact-enquiry-section .contact-form-intro::after { background-image: url('./circuit-divider-light.svg'); }
  .page-contact .contact-enquiry-section .contact-direct > h3 { color: #bdbdbd; }
  .page-contact .contact-enquiry-section .contact-direct-route { border-top-color: #414141; }
  .page-contact .contact-enquiry-section .contact-direct-route h4 { color: #f5f5f5; }
  .page-contact .contact-enquiry-section .contact-direct-route p { color: #c7c7c7; }
  .page-contact .contact-enquiry-section .contact-direct-route a { color: #fff; }
  .page-contact .contact-enquiry-section .contact-route-icon { background: #242424; border-color: #555; color: #f5f5f5; }
  .page-contact .contact-enquiry-section .business-hours { border-bottom-color: #414141; }
  .page-contact .contact-enquiry-section .business-hours p { color: #c7c7c7; }
  .page-contact .contact-enquiry-section .business-hours .business-hours-time { color: #fff; }
  .page-contact .contact-enquiry-section .emergency-call { background: #222; border-left-color: #b82b43; }
  .page-contact .contact-enquiry-section .emergency-call h4 { color: #f5f5f5; }
  .page-contact .contact-enquiry-section .emergency-call a { color: #fff; }
  .page-contact .contact-enquiry-section .emergency-call .ui-icon { color: #f5f5f5; }
}

.page-privacy .privacy-body { background: #f3f3f3; padding-block: 46px; }
.page-privacy .privacy-content-layout { display: grid; grid-template-columns: clamp(230px,21vw,310px) minmax(0,1fr); align-items: start; gap: clamp(24px,3vw,58px); }
.page-privacy .privacy-contents { position: sticky; top: 24px; border: 1px solid #d7d7d7; border-top: 3px solid #242424; border-radius: 4px; background: #fff; padding: 21px 18px 13px; }
.page-privacy .privacy-contents h2 { font-size: .76rem; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 12px; }
.page-privacy .privacy-contents ol { list-style: none; padding: 0; margin: 0; }
.page-privacy .privacy-contents li+li { border-top: 1px solid #e6e6e6; }
.page-privacy .privacy-contents a { display: flex; align-items: center; gap: 11px; min-height: 44px; padding-block: 9px; font-size: .81rem; line-height: 1.5; text-decoration: none; }
.page-privacy .privacy-contents a>span { color: #94192d; font-size: .65rem; font-weight: 650; flex: 0 0 18px; }
.page-privacy .privacy-contents a:hover { color: #94192d; text-decoration: underline; }
.page-privacy .privacy-reading { min-width: 0; display: grid; gap: 14px; }
.page-privacy .privacy-content-card { padding: 25px clamp(22px,2.4vw,38px); background: #fff; border: 1px solid #d7d7d7; border-radius: 4px; scroll-margin-top: 24px; }
.page-privacy .privacy-card-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 16px; }
.page-privacy .privacy-section-number { display: inline-grid; place-items: center; width: 30px; height: 30px; flex: 0 0 30px; background: #f3f3f3; border: 1px solid #dedede; color: #94192d; font-size: .69rem; font-weight: 650; line-height: 1; }
.page-privacy .privacy-content-card h2 { margin: 0; font-size: clamp(1.15rem,1.55vw,1.5rem); line-height: 1.3; letter-spacing: -.025em; }
.page-privacy .privacy-content-card .markdown-content { max-width: 84ch; color: #4c4c4c; overflow-wrap: anywhere; }
.page-privacy .privacy-content-card .markdown-content p,.page-privacy .privacy-content-card .markdown-content ul { font-size: .91rem; line-height: 1.75; margin-bottom: 13px; }
.page-privacy .privacy-content-card .markdown-content>:last-child { margin-bottom: 0; }
@media(min-width:960px) {
  .page-privacy .privacy-contents { top: 124px; }
}
@media(min-width:1800px) {
  .page-contact .contact-route-card { padding: 28px; }
  .page-contact .contact-form-layout { grid-template-columns: minmax(280px,.7fr) minmax(0,1.5fr); }
}
@media(max-width:1000px) {
  .page-contact .contact-route-card { grid-template-columns: 1fr; padding: 20px; }
  .page-contact .contact-route-actions { grid-column: 1; }
  .page-contact .contact-local-grid { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 18px; }
  .page-contact .contact-checklist ul { grid-template-columns: 1fr; }
  .page-contact .contact-form-layout { grid-template-columns: minmax(190px,.6fr) minmax(0,1.4fr); gap: 24px; }
  .page-privacy .privacy-content-layout { grid-template-columns: 225px minmax(0,1fr); gap: 22px; }
}
@media(max-width:760px) {
  .page-contact .contact-overview,.page-contact .contact-enquiry-section,.page-privacy .privacy-body { padding-block: 32px; }
  .page-contact .contact-route-grid { grid-template-columns: 1fr; gap: 12px; }
  .page-contact .contact-route-card { grid-template-columns: 36px minmax(0,1fr); gap: 10px 14px; padding: 19px; }
  .page-contact .contact-route-actions { grid-column: 2; }
  .page-contact .contact-route-phone { font-size: 1.3rem; }
  .page-contact .contact-route-copy h2 { font-size: 1.15rem; }
  .page-contact .contact-route-copy>p:not(.eyebrow) { max-width: 60ch; }
  .page-contact .contact-local-grid { grid-template-columns: 1fr; margin-top: 20px; gap: 20px; }
  .page-contact .contact-checklist ul { grid-template-columns: 1fr 1fr; }
  .page-contact .map-heading { padding: 18px; }
  .page-contact .map-heading h2 { font-size: 1.3rem; }
  .page-contact .map-prompt h3 { font-size: 1.4rem; }
  .page-contact .map-prompt .map-consent { max-width: 38ch; }
  .page-contact .map-caption { padding: 15px 18px; }
  .page-contact .contact-form-layout { grid-template-columns: 1fr; gap: 22px; }
  .page-contact .contact-form-intro { max-width: 60ch; }
  .page-contact .contact-form-intro>.contact-route-icon { display: none; }
  .page-contact .contact-form-intro h2 { max-width: none; font-size: 1.8rem; }
  .page-contact .contact-enquiry-section .enquiry-card { padding: 22px 18px; }
  .page-privacy .privacy-content-layout { grid-template-columns: 1fr; gap: 22px; }
  .page-privacy .privacy-contents { position: static; padding: 18px 20px 12px; }
  .page-privacy .privacy-contents ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
  .page-privacy .privacy-contents li+li { border-top: 0; }
  .page-privacy .privacy-contents a { border-top: 1px solid #e6e6e6; }
  .page-privacy .privacy-content-card { padding: 21px 20px; }
  .page-privacy .privacy-content-card h2 { font-size: 1.2rem; }
}
@media(max-width:390px) {
  .page-contact .contact-route-card { padding: 17px 15px; column-gap: 11px; }
  .page-contact .contact-route-email { font-size: .76rem; }
  .page-contact .contact-checklist { padding: 20px 18px; }
  .page-contact .contact-checklist ul { grid-template-columns: 1fr; }
  .page-privacy .privacy-contents ol { grid-template-columns: 1fr; }
  .page-privacy .privacy-contents a { min-height: 40px; }
}
@media print {
  .page-contact .contact-overview,.page-contact .contact-enquiry-section,.page-privacy .privacy-body { padding-block: 20px; background: #fff; }
  .page-contact .contact-route-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .page-contact .contact-route-card { padding: 14px; grid-template-columns: 1fr; break-inside: avoid; }
  .page-contact .contact-route-actions { grid-column: 1; }
  .page-contact .contact-local-grid,.page-contact .contact-form-layout,.page-privacy .privacy-content-layout { grid-template-columns: 1fr; }
  .page-contact .contact-social,.page-privacy .privacy-contents { display: none; }
  .page-privacy .privacy-content-card { break-inside: avoid; }
}
