.av-contact-modal-block{display:inline-flex}.av-contact-modal[hidden]{display:none!important}.av-contact-modal{position:fixed;z-index:100000;inset:0;display:grid;place-items:center;padding:20px}.av-contact-modal__backdrop{position:absolute;inset:0;background:rgba(8,31,27,.72);backdrop-filter:blur(8px)}.av-contact-modal__dialog{position:relative;width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:32px;border:1px solid rgba(23,92,80,.16);border-radius:24px;background:#fff;box-shadow:0 30px 90px rgba(8,31,27,.34)}.av-contact-modal__close{position:absolute;top:14px;right:16px;width:40px;height:40px;border:0;border-radius:50%;color:#173a33;background:#edf5f2;font-size:28px;line-height:1;cursor:pointer}.av-contact-modal__header{padding-right:42px}.av-contact-modal__eyebrow{margin:0 0 8px;color:#17695d;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.av-contact-modal__header h2{margin:0;color:#173a33;font-size:clamp(26px,4vw,38px);line-height:1.15}.av-contact-modal__header>p:last-child{margin:12px 0 0;color:#667a75;line-height:1.65}.av-contact-form{margin-top:24px}.av-contact-form__grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.av-contact-form label{display:grid;gap:7px;color:#173a33;font-size:13px;font-weight:800}.av-contact-form input,.av-contact-form select,.av-contact-form textarea{width:100%;min-height:48px;padding:11px 13px;border:1px solid #cfdfda;border-radius:12px;color:#173a33;background:#fff;font:inherit;box-shadow:none}.av-contact-form textarea{min-height:130px;resize:vertical}.av-contact-form input:focus,.av-contact-form select:focus,.av-contact-form textarea:focus{outline:3px solid rgba(210,163,72,.3);border-color:#17695d}.av-contact-form__wide{grid-column:1/-1}.av-contact-form__consent{display:flex!important;align-items:flex-start;gap:10px;margin-top:18px;color:#5f746e!important;font-size:12px!important;font-weight:600!important;line-height:1.55}.av-contact-form__consent input{width:18px;min-height:18px;margin-top:2px;flex:0 0 auto}.av-contact-form__consent a{color:#17695d;text-decoration:underline}.av-contact-form__footer{display:flex;align-items:center;gap:16px;margin-top:22px}.av-contact-form__status{margin:0;color:#5f746e;font-size:13px}.av-contact-form__status.is-error{color:#a52727}.av-contact-form__status.is-success{color:#17695d;font-weight:800}.av-contact-form__hp{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important}.av-contact-modal-is-open{overflow:hidden}.av-contact-modal-block .av-contact-modal-trigger{cursor:pointer}@media(max-width:640px){.av-contact-modal{padding:10px}.av-contact-modal__dialog{max-height:calc(100vh - 20px);padding:24px 18px;border-radius:18px}.av-contact-form__grid{grid-template-columns:1fr}.av-contact-form__wide{grid-column:auto}.av-contact-form__footer{align-items:stretch;flex-direction:column}.av-contact-form__footer .av-btn{width:100%}.av-contact-modal__header{padding-right:32px}}
.av-contact-form__success{margin-top:26px;padding:30px;border:1px solid rgba(23,105,93,.18);border-radius:20px;background:linear-gradient(145deg,#f3faf7,#fff);text-align:center}.av-contact-form__success:focus{outline:3px solid rgba(210,163,72,.28);outline-offset:3px}.av-contact-form__success-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:50%;background:#17695d;color:#fff;font-size:30px;font-weight:900}.av-contact-form__success h3{margin:0;color:#173a33;font-size:28px}.av-contact-form__success>p{max-width:560px;margin:12px auto 0;color:#5f746e;line-height:1.65}.av-contact-form__reference{display:inline-block!important;padding:8px 14px;border-radius:999px;background:#fff3df;color:#173a33!important}.av-contact-form__success-note{font-size:12px!important}

/* v0.5.5: render enquiry modal as a true viewport overlay above every page section. */
.av-contact-modal{
  position:fixed!important;
  inset:0!important;
  z-index:2147483647!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  padding:24px!important;
  margin:0!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  box-sizing:border-box!important;
  isolation:isolate!important;
}
.av-contact-modal[hidden]{display:none!important;}
.av-contact-modal__backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  background:rgba(8,31,27,.78)!important;
  backdrop-filter:blur(8px)!important;
}
.av-contact-modal__dialog{
  position:relative!important;
  z-index:2!important;
  width:min(860px,calc(100vw - 48px))!important;
  max-height:calc(100vh - 64px)!important;
  max-height:calc(100dvh - 64px)!important;
  margin:0 auto!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  box-sizing:border-box!important;
  -webkit-overflow-scrolling:touch!important;
}
body.admin-bar .av-contact-modal{padding-top:56px!important;}
.av-contact-modal-is-open{overflow:hidden!important;}
html.av-contact-modal-is-open,body.av-contact-modal-is-open{overflow:hidden!important;}
@media(max-width:782px){body.admin-bar .av-contact-modal{padding-top:58px!important;}}
@media(max-width:640px){
  .av-contact-modal{align-items:flex-start!important;padding:12px!important;}
  .av-contact-modal__dialog{width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;padding:24px 18px!important;border-radius:18px!important;}
}

/* v0.5.6: fixed portal root, internal scrolling and page-stack isolation. */
#av-contact-modal-portal{
  position:fixed!important;
  inset:0!important;
  z-index:2147483647!important;
  display:block!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  pointer-events:none!important;
  isolation:isolate!important;
  transform:none!important;
  contain:none!important;
}
#av-contact-modal-portal .av-contact-modal:not([hidden]){
  pointer-events:auto!important;
}
html.av-contact-modal-is-open,
body.av-contact-modal-is-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body.av-contact-modal-is-open .wp-site-blocks,
body.av-contact-modal-is-open main,
body.av-contact-modal-is-open .av-page{
  z-index:auto!important;
}
.av-contact-modal{
  position:fixed!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:2147483647!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  width:100vw!important;
  max-width:none!important;
  min-width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:clamp(20px,4vh,42px) 20px!important;
  overflow:auto!important;
  background:rgba(8,31,27,.78)!important;
  backdrop-filter:blur(8px)!important;
  box-sizing:border-box!important;
  isolation:isolate!important;
  transform:none!important;
  contain:none!important;
}
body.admin-bar .av-contact-modal{
  padding-top:calc(32px + 32px)!important;
}
.av-contact-modal[hidden]{display:none!important;}
.av-contact-modal__backdrop{
  position:fixed!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  background:transparent!important;
}
.av-contact-modal__dialog{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:min(940px,calc(100vw - 40px))!important;
  max-width:min(940px,calc(100vw - 40px))!important;
  max-height:calc(100vh - 64px)!important;
  max-height:calc(100dvh - 64px)!important;
  margin:0 auto!important;
  overflow:auto!important;
  transform:none!important;
  contain:none!important;
  background:#fff!important;
}
body.admin-bar .av-contact-modal__dialog{
  max-height:calc(100vh - 96px)!important;
  max-height:calc(100dvh - 96px)!important;
}
body.av-contact-modal-is-open .av-phase-panel{
  /* Safety fallback for older cached portal JS: prevent nearby phase panels from covering the modal. */
  z-index:0!important;
}
@media(max-width:782px){
  body.admin-bar .av-contact-modal{padding-top:calc(20px + 46px)!important;}
  body.admin-bar .av-contact-modal__dialog{max-height:calc(100dvh - 76px)!important;}
}
@media(max-width:640px){
  .av-contact-modal{padding:14px!important;}
  body.admin-bar .av-contact-modal{padding-top:58px!important;}
  .av-contact-modal__dialog{width:calc(100vw - 28px)!important;max-width:calc(100vw - 28px)!important;max-height:calc(100dvh - 28px)!important;padding:24px 18px!important;border-radius:18px!important;}
}

/* v0.5.8: true body-level modal portal. Keep the page out of the stacking context. */
body > #av-contact-modal-portal{
  position:fixed!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:2147483647!important;
  display:block!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
  isolation:isolate!important;
  transform:none!important;
  contain:none!important;
}
body > #av-contact-modal-portal[aria-hidden="false"]{pointer-events:auto!important;}
body > #av-contact-modal-portal .av-contact-modal{
  position:fixed!important;
  inset:0!important;
  z-index:2147483647!important;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  width:100vw!important;
  max-width:none!important;
  min-width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:clamp(16px,4vh,42px) 20px 16px!important;
  overflow:auto!important;
  box-sizing:border-box!important;
  background:rgba(8,31,27,.82)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  isolation:isolate!important;
  transform:none!important;
  contain:none!important;
}
body.admin-bar > #av-contact-modal-portal .av-contact-modal{padding-top:64px!important;}
body > #av-contact-modal-portal .av-contact-modal[hidden]{display:none!important;}
body > #av-contact-modal-portal .av-contact-modal__backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  background:transparent!important;
}
body > #av-contact-modal-portal .av-contact-modal__dialog{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:min(940px,calc(100vw - 40px))!important;
  max-width:min(940px,calc(100vw - 40px))!important;
  max-height:calc(100dvh - 58px)!important;
  margin:0 auto!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
  background:#fff!important;
  transform:none!important;
  contain:none!important;
}
body.admin-bar > #av-contact-modal-portal .av-contact-modal__dialog{max-height:calc(100dvh - 96px)!important;}
html.av-contact-modal-is-open,
body.av-contact-modal-is-open{overflow:hidden!important;overscroll-behavior:none!important;}
body.av-contact-modal-is-open .av-page,
body.av-contact-modal-is-open .wp-site-blocks,
body.av-contact-modal-is-open .av-section,
body.av-contact-modal-is-open .av-phase-panel{z-index:auto!important;}
@media(max-width:782px){
  body.admin-bar > #av-contact-modal-portal .av-contact-modal{padding-top:62px!important;}
  body.admin-bar > #av-contact-modal-portal .av-contact-modal__dialog{max-height:calc(100dvh - 78px)!important;}
}
@media(max-width:640px){
  body > #av-contact-modal-portal .av-contact-modal{padding:12px!important;}
  body.admin-bar > #av-contact-modal-portal .av-contact-modal{padding-top:58px!important;}
  body > #av-contact-modal-portal .av-contact-modal__dialog{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;padding:22px 16px!important;border-radius:18px!important;}
}


/* v0.6.2: defensive close-state guard. The opening script applies
   inline display:flex!important; close also sets inline display:none!important
   so stale overlay states cannot trap page interaction. */
body > #av-contact-modal-portal[aria-hidden="true"]{
  pointer-events:none!important;
}
body > #av-contact-modal-portal[aria-hidden="true"] .av-contact-modal[hidden]{
  display:none!important;
  pointer-events:none!important;
}
.av-contact-modal[aria-hidden="true"]{
  pointer-events:none!important;
}
