/* Contact page only */
.contact-hero{position:relative;overflow:hidden}
.contact-hero:after{content:"";position:absolute;right:-120px;top:-180px;width:620px;height:620px;border-radius:50%;border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.015)}
.contact-hero .container{position:relative;z-index:1}
.contact-container{max-width:980px}
.contact-lead{display:grid;grid-template-columns:1fr;gap:20px;align-items:end;margin-bottom:42px}
.contact-lead h2{margin:6px 0 0;color:var(--navy);font-size:clamp(30px,4vw,44px);line-height:1.35}
.contact-lead p{margin:0;color:#526273;line-height:2;max-width:none}
.contact-form{border-top:3px solid var(--navy);background:#fff;box-shadow:0 15px 44px rgba(11,31,51,.07)}
.contact-row{display:grid;grid-template-columns:260px 1fr;border-bottom:1px solid var(--line)}
.contact-row>label{padding:25px 28px;background:#f5f8fa;color:var(--navy);font-size:14px;font-weight:800}
.required{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:2px;background:#1476c8;color:#fff;font-size:10px;line-height:1.5;vertical-align:middle}
.contact-field{padding:20px 26px}
.contact-field input,.contact-field select,.contact-field textarea{width:100%;border:1px solid #cfdbe4;background:#fff;border-radius:3px;padding:14px 15px;font:inherit;font-size:15px;color:#213343;outline:none;transition:border-color .2s,box-shadow .2s}
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:#1476c8;box-shadow:0 0 0 3px rgba(20,118,200,.10)}
.contact-field textarea{resize:vertical;min-height:190px;line-height:1.8}
.contact-postcode input{max-width:270px}
.contact-note{margin-top:7px;color:#8392a0;font-size:12px}
.contact-privacy{padding:30px 28px;text-align:center;color:#526273;font-size:14px}
.contact-privacy input{width:18px;height:18px;vertical-align:-4px;margin-right:7px}
.contact-privacy a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.contact-submit{text-align:center;padding:0 28px 42px}
.contact-submit button{min-width:290px;border:0;border-radius:4px;background:var(--navy);color:#fff;padding:17px 34px;font:inherit;font-weight:800;font-size:16px;cursor:pointer;transition:.2s}
.contact-submit button:hover{background:#1476c8;transform:translateY(-2px)}
.contact-submit button span{margin-left:16px}
.contact-submit p{margin:14px 0 0;color:#7b8a97;font-size:12px}
.contact-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.contact-direct{margin-top:58px;padding:40px 42px;background:#f5f8fa;border-left:4px solid var(--blue);display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center}
.contact-direct h2{margin:5px 0 0;color:var(--navy);font-size:25px;line-height:1.45}
.contact-direct__items{display:grid;gap:12px}
.contact-direct__items a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 20px;background:#fff;border:1px solid var(--line)}
.contact-direct__items small{font-size:10px;letter-spacing:.18em;font-weight:900;color:var(--blue)}
.contact-direct__items strong{font-size:18px;color:var(--navy)}
@media(max-width:850px){.contact-lead,.contact-direct{grid-template-columns:1fr;gap:20px}.contact-row{grid-template-columns:1fr}.contact-row>label{padding:15px 20px;border-bottom:1px solid var(--line)}.contact-field{padding:17px 20px}.contact-submit button{min-width:0;width:100%}.contact-direct{padding:30px 24px}}
@media(max-width:520px){.contact-direct__items a{display:block}.contact-direct__items strong{display:block;margin-top:4px;font-size:16px;word-break:break-all}}

/* Compact phone CTA */
.contact-direct__items{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.contact-phone-button{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:14px;
  width:auto;
  min-width:0;
  max-width:320px;
  padding:14px 24px!important;
  background:var(--navy)!important;
  border:1px solid rgba(255,255,255,.72)!important;
  border-radius:8px;
  color:#fff!important;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(11,31,51,.12);
  transition:.2s;
}
.contact-phone-button:hover{
  background:#173e63!important;
  border-color:rgba(255,255,255,.96)!important;
  transform:translateY(-1px);
}
.contact-phone-button small,
.contact-phone-button strong,
.contact-phone-button span{
  color:#fff!important;
}
.contact-phone-button small{
  font-size:11px;
  letter-spacing:.18em;
  font-weight:900;
  opacity:.82;
  line-height:1;
}
.contact-phone-button strong{
  font-size:20px!important;
  letter-spacing:.02em;
  line-height:1.1;
  white-space:nowrap;
}
.contact-phone-button span{
  display:none;
}
@media(max-width:850px){
  .contact-direct__items{
    align-items:center;
  }
}
@media(max-width:520px){
  .contact-phone-button{
    max-width:100%;
    padding:13px 20px!important;
    gap:12px;
  }
  .contact-phone-button strong{
    font-size:18px!important;
  }
}

/* Contact phone CTA: align like other page CTAs */
.contact-direct{
  grid-template-columns:1fr auto!important;
  align-items:center!important;
  gap:40px!important;
}
.contact-direct__items{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  width:auto!important;
}
.contact-phone-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:14px!important;
  width:325px!important;
  max-width:100%!important;
  min-height:68px!important;
  margin:0!important;
  padding:14px 24px!important;
  box-sizing:border-box!important;
}
.contact-phone-button small{
  display:inline-block!important;
  flex:0 0 auto!important;
  margin:0!important;
  font-size:11px!important;
  line-height:1!important;
  letter-spacing:.14em!important;
  font-weight:800!important;
  opacity:.85!important;
}
.contact-phone-button strong{
  display:inline-block!important;
  margin:0!important;
  font-size:24px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
@media(max-width:850px){
  .contact-direct{
    grid-template-columns:1fr!important;
    gap:24px!important;
  }
  .contact-direct__items{
    align-items:flex-start!important;
  }
  .contact-phone-button{
    width:100%!important;
    max-width:325px!important;
  }
}
