/* Shared frozen consultation form: the accepted Home component is the source of truth. */
.contact-section{min-height:487px;background:var(--color-primary)}
.contact-bg{position:absolute;inset:0;background:url('../images/contact-background.webp') center/cover no-repeat}
.contact-inner{position:relative;padding-top:54px;padding-bottom:38px}
.contact-inner .section-title{max-width:955px;margin-bottom:38px}
.contact-form{position:relative;display:grid;grid-template-columns:255px 1fr;gap:15px 24px}
.contact-fields{display:grid;gap:15px}
.contact-form input,.contact-form textarea{width:100%;border:1px solid rgba(255,255,255,.6);border-radius:var(--radius);background:#fff;color:var(--color-primary);box-shadow:none}
.contact-form input{height:68px;padding:11px 20px;font-size:18px}
.contact-form textarea{height:151px;padding:19px 18px;font-size:20px;resize:vertical}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(41,115,124,.6)}
.phone-field{position:relative;display:flex;height:68px;border-radius:var(--radius);background:#fff;overflow:hidden}
.phone-prefix{display:flex;align-items:center;padding-left:20px;white-space:nowrap;font-size:18px}
.phone-prefix img{background:transparent!important;box-shadow:none!important;border-radius:0!important}
.phone-field input{padding-left:6px;border:0}
.contact-submit{grid-column:1/-1;justify-self:center;width:239px}
.form-status{grid-column:1/-1;min-height:20px;margin:0;text-align:center;color:#fff}

@media (min-width:1360px){
  .contact-section{width:1378px;height:487px;min-height:0;margin:75px auto 0;border-radius:5px;background:#29737c}
  .contact-bg{background:url('../images/contact-background-source.webp') center/cover no-repeat}
  .contact-inner{width:1296px;height:487px;margin:0 auto;padding:54px 0 0}
  .contact-inner .section-title{width:117.65%;max-width:none;height:130px;margin:0 0 39px;font-size:72px;color:#fff}
  .contact-form{grid-template-columns:255px 1017px;grid-template-rows:151px 43px;gap:32px 24px;width:1296px;height:226px}
  .contact-fields{grid-template-columns:1fr;grid-template-rows:68px 68px;gap:15px}
  .contact-form label{display:block}
  .contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-radius:5px;background:#fff;color:#29737c;box-shadow:none}
  .contact-form input{height:68px;padding:22px 20px;font-size:18px;line-height:23px}
  .contact-form textarea{height:151px;padding:19px 18px;font-size:20px;line-height:25px;resize:none}
  .contact-form input::placeholder,.contact-form textarea::placeholder{color:#29737c;opacity:1}
  .phone-field{display:flex;height:68px;border-radius:5px;background:#fff;overflow:hidden}
  .phone-prefix{display:flex;align-items:center;gap:5px;height:68px;padding-left:20px;font-size:18px;line-height:23px;color:#29737c}
  .phone-prefix img{width:26px;height:20px;object-fit:cover}
  .phone-field input{flex:1;width:auto;padding-left:4px}
  .contact-submit{grid-column:1/-1;grid-row:2;justify-self:center;width:239px;height:43px;min-height:43px;padding:12px 16px;font-size:15px;line-height:19px}
}

@media (max-width:1024px){
  .contact-section{width:calc(100% - 32px);height:auto;margin-top:48px}
  .contact-inner{width:min(1296px,calc(100% - 40px));height:auto;padding-bottom:40px}
  .contact-form{width:100%;grid-template-columns:255px 1fr}
}
@media (max-width:767px){
  .contact-inner .section-title{font-size:42px}
  .contact-form{gap:15px}
  .contact-fields{grid-template-columns:1fr}
  .contact-form textarea{height:130px}
  .contact-section{width:calc(100% - 20px)}
  .contact-inner{width:calc(100% - 32px)}
  .contact-inner .section-title{width:auto;height:auto;transform:none;font-size:42px}
  .contact-form{display:grid;grid-template-columns:1fr;grid-template-rows:auto;width:100%;height:auto;gap:15px}
  .contact-fields{grid-template-rows:68px 68px}
  .contact-submit{grid-column:auto;grid-row:auto;width:100%}
}
@media (max-width:420px){.phone-prefix{padding-left:14px}.contact-form input{padding-inline:14px}}

@media (min-width:1360px){
  .contact-inner .section-title{width:955px;height:130px;margin:0 0 39px;font-size:50.5px;line-height:65px;letter-spacing:0;color:#fff;transform:translateY(-11px) scaleX(1.135);transform-origin:left top;white-space:normal}
  .contact-form .phone-field{position:relative;display:block}
  .phone-prefix{position:absolute;z-index:2;left:20px;top:24px;width:26px;height:20px;padding:0;gap:0;font-size:0;line-height:0}
  .phone-prefix img{display:block;width:26px;height:20px}
  .phone-field input{display:block;width:100%;min-width:0;height:68px;padding:22px 20px 22px 51px}
  .contact-submit{transform:translateX(1.5px)}
}
@media (min-width:1360px){.contact-inner .section-title{transform:translate(2px,-11px) scale(1.139,.992)!important;transform-origin:left top!important}}
@media (min-width:1360px){.contact-inner .section-title{transform:translate(2px,-12px) scale(1.139,1)!important}}
@media (min-width:1360px){
  .contact-form input{border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.60)!important}
  .contact-form textarea{border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.60),0 4px 23.9px rgba(0,0,0,.13)!important}
  .contact-submit{transform:none!important}
}
@media (min-width:1360px){.contact-inner .section-title{transform:translate(2px,-11px) scale(1.139,.984)!important}}

/* Deferred below-fold background media. */
.contact-bg{background:none!important}
@media (min-width:1360px){.contact-section.is-deferred-media-ready .contact-bg{background:url('../images/contact-background-source.webp') center/cover no-repeat!important}}
@media (max-width:1359px){.contact-section.is-deferred-media-ready .contact-bg{background:url('../images/contact-background.webp') center/cover no-repeat!important}}

/* Shared validation, success state and header consultation dialog. */
.form-field{position:relative}
.form-error{position:absolute;z-index:3;left:0;top:calc(100% + 2px);display:block;max-width:100%;font-size:12px;font-weight:500;line-height:13px;color:#fff}
.contact-form input:focus-visible,.contact-form textarea:focus-visible,.contact-dialog input:focus-visible,.contact-dialog textarea:focus-visible{outline:0;box-shadow:inset 0 0 0 2px #18c6ac!important}
.contact-form .form-field.is-invalid input,.contact-form .form-field.is-invalid textarea,.contact-dialog .form-field.is-invalid input,.contact-dialog .form-field.is-invalid textarea{box-shadow:inset 0 0 0 2px #d9544d!important}
.form-honeypot{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important}
.form-status{z-index:4}.form-status[data-state="error"]{color:#fff3f2}
.contact-form .form-status{position:absolute;right:0;bottom:-24px;left:0;min-height:16px;font-size:13px;line-height:16px}
.contact-submit:disabled,.contact-dialog__submit:disabled{cursor:wait;opacity:.72}
.contact-form .phone-field{display:block;height:auto;background:transparent;overflow:visible}
.contact-form .phone-field input{display:block;width:100%;padding-left:20px}
.contact-dialog{width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;border:0;border-radius:5px;padding:0;background:#fff;color:#29737c;box-shadow:0 18px 60px rgba(0,0,0,.24);opacity:1;transform:scale(1);transition:opacity 200ms cubic-bezier(.4,0,.2,1),transform 200ms cubic-bezier(.4,0,.2,1)}
.contact-dialog::backdrop{background:rgba(12,52,58,.58);opacity:1;transition:opacity 200ms cubic-bezier(.4,0,.2,1);animation:contactDialogBackdrop 200ms cubic-bezier(.4,0,.2,1)}
.contact-dialog[open]{animation:contactDialogOpen 200ms cubic-bezier(.4,0,.2,1)}.contact-dialog.is-closing{animation:none;opacity:0;transform:scale(.985)}.contact-dialog.is-closing::backdrop{animation:none;opacity:0}
.contact-dialog__surface{position:relative;padding:36px 40px 40px;overflow:auto;max-height:calc(100dvh - 32px)}
.contact-dialog__close{position:absolute;top:13px;right:15px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:#29737c;font-size:27px;line-height:1;cursor:pointer}
.contact-dialog__close:hover,.contact-dialog__close:focus-visible{background:rgba(24,198,172,.12)}.contact-dialog__close:focus-visible{outline:2px solid #18c6ac;outline-offset:2px}
.contact-dialog h2{margin:0 42px 8px 0;font-family:var(--font-display);font-size:42px;font-weight:400;line-height:1.05;text-transform:uppercase}.contact-dialog h2:focus{outline:0}
.contact-dialog__surface>p{margin:0 0 24px;font-size:16px;line-height:22px;color:rgba(41,115,124,.76)}
.contact-dialog__form{display:grid;gap:16px}.contact-dialog .form-field{display:grid;gap:7px;font-size:14px;font-weight:600}
.contact-dialog input,.contact-dialog textarea{width:100%;border:0;border-radius:5px;background:#f4fbfa;color:#29737c;box-shadow:inset 0 0 0 1px rgba(41,115,124,.26)}
.contact-dialog input{height:52px;padding:14px 16px;font-size:16px}.contact-dialog textarea{min-height:108px;padding:14px 16px;font-size:16px;line-height:21px;resize:vertical}
.contact-dialog .form-error{position:static;font-size:12px;line-height:14px;color:#c34640}.contact-dialog .form-status{min-height:18px;margin:0;text-align:left;color:#1d736b}.contact-dialog .form-status[data-state="error"]{color:#c34640}.contact-dialog__submit{justify-self:start;min-width:180px}
@keyframes contactDialogOpen{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes contactDialogBackdrop{from{opacity:0}to{opacity:1}}
@media (max-width:767px){.contact-form .form-status{position:static;margin-top:2px}.contact-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.contact-dialog__surface{max-height:calc(100dvh - 24px);padding:32px 20px 24px}.contact-dialog h2{font-size:34px}.contact-dialog__submit{width:100%}}
@media (max-width:420px){.contact-form .phone-field input{padding-inline:14px}}
@media (prefers-reduced-motion:reduce){.contact-dialog[open],.contact-dialog.is-closing,.contact-dialog::backdrop,.contact-dialog.is-closing::backdrop{animation:none;transition:none}}

@media (min-width:768px) and (max-width:1199px){.contact-inner .section-title{width:auto;height:auto;font-size:clamp(22px,calc(12px + 1.15vw),26px);line-height:1.1;transform:none}}
@media (max-width:767px){.contact-inner .section-title{font-size:clamp(24px,6.4vw,28px);line-height:1.08}}
