<style>
/* NO-FLASH: hide ALL form blocks on this page before paint */
.sqs-block-form,
.sqs-block-form .form-wrapper{
position: absolute !important;
left: -99999px !important;
top: 0 !important;
width: 1px !important;
height: 1px !important;
overflow: hidden !important;
opacity: 0 !important;
pointer-events: none !important;
}
/* Only show forms once they are inside our modal mount */
#ap-form-mount .sqs-block-form,
#ap-form-mount .sqs-block-form .form-wrapper{
position: static !important;
left: auto !important;
top: auto !important;
width: auto !important;
height: auto !important;
overflow: visible !important;
opacity: 1 !important;
pointer-events: auto !important;
}
</style>
<!-- ===== Lauryn Button Style (restores your styling) ===== -->
<style>
.ap-zoom-btn{
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 100% !important;
max-width: 720px !important;
min-height: 96px !important;
padding: 22px 28px !important;
font-family: Garamond, "EB Garamond", "Cormorant Garamond", Georgia, serif !important;
font-size: 24px !important;
font-weight: 400 !important;
letter-spacing: 0.02em !important;
text-align: center !important;
line-height: 1.25 !important;
color: #7D8E94 !important;
background: #f6f5f3 !important;
border: 0 !important;
border-radius: 18px !important;
text-decoration: none !important;
cursor: pointer !important;
transition: all .18s ease !important;
-webkit-appearance: none !important;
appearance: none !important;
}
.ap-zoom-btn:hover{
background: #f2f1ee !important;
transform: translateY(-1px) !important;
}
.ap-zoom-btn:active{ transform: translateY(0) !important; }
@media (max-width: 640px){
.ap-zoom-btn{
font-size: 22px !important;
min-height: 78px !important;
padding: 18px 22px !important;
}
}
</style>
<!-- ===== ONE modal shell ===== -->
<div id="ap-form-modal" aria-hidden="true">
<div id="ap-form-backdrop"></div>
<div id="ap-form-dialog" role="dialog" aria-modal="true" aria-label="Form">
<button type="button" id="ap-form-close" aria-label="Close">×</button>
<div id="ap-form-mount"></div>
</div>
</div>
<style>
#ap-form-modal{ display:none; }
#ap-form-modal.ap-open{ display:block; }
#ap-form-backdrop{
position: fixed;
inset: 0;
background: rgba(0,0,0,.55);
z-index: 9998;
}
#ap-form-dialog{
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
width: min(900px, 92vw);
max-height: 86vh;
overflow: auto;
background: #fff;
border-radius: 16px;
padding: 18px 18px 24px;
z-index: 9999;
}
#ap-form-mount{ min-height: 380px; }
#ap-form-close{
position: sticky;
top: 0;
margin-left: auto;
display: block;
width: 40px;
height: 40px;
border: 0;
background: transparent;
font-size: 30px;
line-height: 40px;
cursor: pointer;
}
html.ap-modal-lock,
html.ap-modal-lock body{ overflow: hidden; }
</style>
<script>
(function () {
var TRIGGER_1 = "#ap-form1-trigger";
var TRIGGER_2 = "#ap-form2-trigger";
var TRIGGER_3 = "#ap-form3-trigger"; // ✅ NEW
var FORM_BLOCK_SELECTOR = ".sqs-block-form";
function waitFor(fn, cb, tries) {
tries = tries || 180;
var res = fn();
if (res) return cb(res);
if (tries <= 0) return;
setTimeout(function(){ waitFor(fn, cb, tries - 1); }, 120);
}
function openModal() {
var modal = document.getElementById("ap-form-modal");
if (!modal) return;
modal.classList.add("ap-open");
modal.setAttribute("aria-hidden", "false");
document.documentElement.classList.add("ap-modal-lock");
}
function closeModal() {
var modal = document.getElementById("ap-form-modal");
if (!modal) return;
modal.classList.remove("ap-open");
modal.setAttribute("aria-hidden", "true");
document.documentElement.classList.remove("ap-modal-lock");
}
function showForm(formBlock) {
var mount = document.getElementById("ap-form-mount");
if (!mount || !formBlock) return;
mount.innerHTML = "";
mount.appendChild(formBlock);
openModal();
}
// Extra insurance: if Squarespace injects/re-renders forms late, keep them hidden unless in mount
function enforceHideOutsideMount() {
document.querySelectorAll(FORM_BLOCK_SELECTOR).forEach(function(f){
if (!f.closest("#ap-form-mount")) {
f.style.position = "absolute";
f.style.left = "-99999px";
f.style.top = "0";
f.style.width = "1px";
f.style.height = "1px";
f.style.overflow = "hidden";
f.style.opacity = "0";
f.style.pointerEvents = "none";
} else {
f.style.position = "";
f.style.left = "";
f.style.top = "";
f.style.width = "";
f.style.height = "";
f.style.overflow = "";
f.style.opacity = "";
f.style.pointerEvents = "";
}
});
}
window.addEventListener("load", function () {
enforceHideOutsideMount();
var mo = new MutationObserver(function(){
enforceHideOutsideMount();
});
mo.observe(document.documentElement, { childList: true, subtree: true });
waitFor(function () {
var forms = document.querySelectorAll(FORM_BLOCK_SELECTOR);
return (forms && forms.length >= 3) ? forms : null; // ✅ was 2
}, function (forms) {
var form1 = forms[0];
var form2 = forms[1];
var form3 = forms[2]; // ✅ NEW
waitFor(function(){ return document.querySelector(TRIGGER_1); }, function(btn1){
btn1.addEventListener("click", function(e){
e.preventDefault();
e.stopPropagation();
showForm(form1);
}, true);
});
waitFor(function(){ return document.querySelector(TRIGGER_2); }, function(btn2){
btn2.addEventListener("click", function(e){
e.preventDefault();
e.stopPropagation();
showForm(form2);
}, true);
});
waitFor(function(){ return document.querySelector(TRIGGER_3); }, function(btn3){ // ✅ NEW
btn3.addEventListener("click", function(e){
e.preventDefault();
e.stopPropagation();
showForm(form3);
}, true);
});
var closeBtn = document.getElementById("ap-form-close");
var backdrop = document.getElementById("ap-form-backdrop");
if (closeBtn) closeBtn.addEventListener("click", closeModal);
if (backdrop) backdrop.addEventListener("click", closeModal);
document.addEventListener("keydown", function (e) {
if (e.key === "Escape") closeModal();
});
});
});
})();
</script>