/* Contact-only layout and form styling. Shared navigation is reused without overrides. */
.swd-contact-hero { display: grid; height: auto; min-height: clamp(480px, 58vh, 600px); max-height: none; }
.swd-contact-hero .swd-package-hero__content { height: auto; }
.swd-contact-hero .swd-package-hero__image img { object-position: 36% center; }
.swd-contact-methods { grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.swd-contact-method { display: flex; flex-direction: column; align-items: flex-start; position: relative; padding: 28px; }
.swd-contact-method h3 { padding-right: 24px; }
.swd-contact-method .swd-btn { margin-top: auto; max-width: 100%; overflow-wrap: anywhere; }
.swd-contact-symbol { position: absolute; top: 22px; right: 24px; color: var(--swd-colour-blue); font-size: 1.6rem; }
.swd-contact-secondary { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 24px 0 0; font-size: .85rem; color: var(--swd-colour-muted); }
.swd-contact-enquiry { max-width: 860px; }
.swd-contact-notice { padding: 18px 24px; margin-bottom: 20px; border-left: 3px solid var(--swd-colour-blue); border-radius: var(--swd-radius-sm); background: var(--swd-colour-blue-soft); }
.swd-contact-notice p { margin: 5px 0 0; }
.swd-contact-notice[hidden], .swd-contact-guidance[hidden] { display: none; }
.swd-contact-form { padding: clamp(20px, 4vw, 40px); }
.swd-contact-form fieldset { min-width: 0; padding: 0; margin: 0 0 28px; border: 0; }
.swd-contact-form legend { padding: 0; margin-bottom: 18px; font-family: var(--swd-font-heading); font-size: 1.4rem; font-weight: 700; }
.swd-contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.swd-contact-field { min-width: 0; }
.swd-contact-form > .swd-contact-field { margin-bottom: 26px; }
.swd-contact-field label { display: block; font-weight: 700; margin-bottom: 8px; }
.swd-contact-field label span, .swd-contact-consent label span { font-size: .85em; font-weight: 400; }
.swd-contact-field input, .swd-contact-field select, .swd-contact-field textarea { display: block; width: 100%; min-width: 0; min-height: 48px; padding: 12px; border: 1px solid #8a909c; border-radius: var(--swd-radius-sm); color: var(--swd-colour-ink); background: #fff; font-size: 1rem; line-height: 1.5; }
.swd-contact-field select { padding-right: 32px; }
.swd-contact-field textarea { min-height: 180px; resize: vertical; }
.swd-contact-field textarea::placeholder { color: #636974; opacity: 1; }
.swd-contact-help { margin: 8px 0 0; font-size: .85rem; color: var(--swd-colour-muted); }
.swd-contact-form > .swd-contact-help { margin: 0 0 24px; }
.swd-contact-guidance { margin: 0 0 12px; padding: 14px 18px; border-left: 3px solid var(--swd-colour-blue); background: var(--swd-colour-blue-soft); border-radius: var(--swd-radius-sm); font-size: .9rem; }
.swd-contact-guidance p { margin: 4px 0 0; }
.swd-contact-trap { display: none; }
.swd-contact-privacy { margin: 26px 0; padding-top: 24px; border-top: 1px solid var(--swd-colour-border); font-size: .9rem; }
.swd-contact-consent { display: flex; align-items: flex-start; gap: 12px; }
.swd-contact-consent input { flex: 0 0 20px; width: 20px; height: 20px; margin: 5px 0 0; accent-color: var(--swd-colour-blue); }
.swd-contact-consent label { min-height: 44px; cursor: pointer; }
.swd-contact-submit .swd-btn { min-width: 180px; }
.swd-contact-submit button:disabled { opacity: .65; cursor: wait; }
.swd-contact-submit [role="status"] { margin: 16px 0 0; color: var(--swd-colour-ink); }
.swd-contact-submit [role="status"]:empty { display: none; }
.swd-contact-form :is(input, select, textarea, button, a):focus-visible { outline: 3px solid var(--swd-colour-blue); outline-offset: 3px; }
.swd-contact-routes { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; margin-top: 24px; font-size: .85rem; }
.swd-contact-routes a { padding: 8px 0; }
.swd-contact-next { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding: 0; margin: 0; }
.swd-contact-next li { padding-top: 20px; border-top: 1px solid var(--swd-colour-border); }
.swd-contact-next li > span { display: block; color: var(--swd-colour-blue); font-weight: 700; margin-bottom: 10px; }
.swd-contact-next h3 { font-size: 1.35rem; }
.swd-contact-next p { margin: 0; color: var(--swd-colour-muted); }
.swd-contact-enquiry, .swd-contact-method, .swd-contact-next li, .swd-contact-secondary { min-width: 0; overflow-wrap: anywhere; }
#enquiry, #contact-sarel { scroll-margin-top: 70px; }
@media (max-width: 820px) { .swd-contact-next { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 680px) {
  .swd-contact-hero { min-height: clamp(500px, 68svh, 620px); }
  .swd-contact-hero .swd-package-hero__image img { object-position: 25% center; }
  .swd-contact-fields { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .swd-contact-method .swd-btn, .swd-contact-submit .swd-btn { width: 100%; }
  .swd-contact-method { padding: 24px; }
  .swd-contact-notice { padding: 16px 20px; }
}
