/* ==========================================================
   ANALIVA · WAITLIST (modal + inline forms)
   ========================================================== */
.wl-modal, .wl-inline {
  --wl-ink: #07131F; --wl-ink2: #0D1E2E; --wl-ivory: #F4F1EA; --wl-teal: #34C3B8; --wl-teal-d: #137F77;
  --wl-line: rgba(244,241,234,.12); --wl-mute: rgba(244,241,234,.62);
  --wl-serif: 'Instrument Serif', 'Times New Roman', serif; --wl-sans: 'Geist', system-ui, sans-serif; --wl-mono: 'Geist Mono', ui-monospace, monospace;
}
html.wl-open, html.wl-open body { overflow: hidden !important; }

/* ---------- modal shell ---------- */
.wl-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 20px; font-family: var(--wl-sans); }
.wl-modal[hidden] { display: none; }
.wl-modal__scrim { position: absolute; inset: 0; background: radial-gradient(120% 90% at 50% 0%, rgba(19,127,119,.28), transparent 60%), rgba(4,10,17,.78); backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2); }
.wl-modal__card {
  position: relative; width: min(1040px, 100%); max-height: calc(100dvh - 40px); overflow: auto; overscroll-behavior: contain;
  display: grid; grid-template-columns: .9fr 1.1fr; border-radius: 28px; color: var(--wl-ivory);
  background: linear-gradient(160deg, #10263a 0%, var(--wl-ink) 55%, #050d16 100%);
  box-shadow: 0 0 0 1px rgba(244,241,234,.08) inset, 0 1px 0 rgba(255,255,255,.08) inset, 0 60px 140px -30px rgba(0,0,0,.75), 0 30px 60px -30px rgba(52,195,184,.25);
  scrollbar-width: thin;
}
.wl-modal__card::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; background: linear-gradient(140deg, rgba(52,195,184,.55), rgba(244,241,234,.06) 35%, rgba(244,241,234,.04) 65%, rgba(52,195,184,.3)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
.wl-modal__x { position: absolute; top: 18px; right: 18px; z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--wl-line); background: rgba(244,241,234,.04); cursor: pointer; transition: transform .5s cubic-bezier(.16,1,.3,1), background .3s, border-color .3s; }
.wl-modal__x i { position: absolute; left: 13px; right: 13px; top: 50%; height: 1.5px; background: var(--wl-ivory); transform: rotate(45deg); }
.wl-modal__x i + i { transform: rotate(-45deg); }
.wl-modal__x:hover { transform: rotate(90deg); background: var(--wl-teal); border-color: var(--wl-teal); }
.wl-modal__x:hover i { background: var(--wl-ink); }

/* photo side */
.wl-modal__side { position: relative; overflow: hidden; border-radius: 28px 0 0 28px; min-height: 100%; display: flex; align-items: flex-end; isolation: isolate; }
.wl-modal__side img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; filter: grayscale(.4) contrast(1.05); transform: scale(1.06); animation: wlKen 18s ease-in-out infinite alternate; }
.wl-modal__side::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7,19,31,.2) 0%, rgba(7,19,31,.55) 45%, rgba(7,19,31,.96) 100%), linear-gradient(90deg, transparent 70%, rgba(7,19,31,.6)); }
.wl-modal__side::after { content: ''; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(244,241,234,.18) 1px, transparent 1.2px); background-size: 18px 18px; mask-image: linear-gradient(180deg, #000, transparent 55%); -webkit-mask-image: linear-gradient(180deg, #000, transparent 55%); opacity: .5; }
@keyframes wlKen { to { transform: scale(1.14) translate(-2%, -2%); } }
.wl-modal__side-in { padding: 40px; }
.wl-side__h { font-family: var(--wl-serif); font-size: clamp(30px, 3.2vw, 44px); line-height: 1.02; letter-spacing: -.01em; margin: 18px 0 26px; color: var(--wl-ivory); }
.wl-side__h em, .wl-modal__h em, .wl-done__h em { font-style: italic; color: var(--wl-teal); }
.wl-perks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.wl-perks li { position: relative; padding-left: 30px; font-size: 14.5px; line-height: 1.45; color: rgba(244,241,234,.85); }
.wl-perks li::before { content: ''; position: absolute; left: 0; top: 1px; width: 19px; height: 19px; border-radius: 50%; background: rgba(52,195,184,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334C3B8' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/11px no-repeat; box-shadow: 0 0 0 1px rgba(52,195,184,.4) inset; }

.wl-tag { display: inline-flex; align-items: center; gap: 10px; margin: 0; padding: 7px 14px 7px 10px; border-radius: 99px; font: 500 11px/1 var(--wl-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--wl-ivory); background: rgba(244,241,234,.08); box-shadow: 0 0 0 1px rgba(244,241,234,.14) inset; backdrop-filter: blur(8px); }
.wl-tag span { width: 7px; height: 7px; border-radius: 50%; background: var(--wl-teal); box-shadow: 0 0 0 4px rgba(52,195,184,.2); animation: wlPulse 2.2s ease-in-out infinite; }
@keyframes wlPulse { 50% { box-shadow: 0 0 0 7px rgba(52,195,184,0); } }
.wl-tag--ink { background: rgba(52,195,184,.08); box-shadow: 0 0 0 1px rgba(52,195,184,.28) inset; color: var(--wl-teal); }

.wl-modal__main { padding: 52px 48px 40px; }
.wl-modal__h { font-family: var(--wl-serif); font-weight: 400; font-size: clamp(38px, 4.4vw, 60px); line-height: .98; letter-spacing: -.02em; margin: 20px 0 12px; color: var(--wl-ivory); }
.wl-modal__p { margin: 0 0 28px; color: var(--wl-mute); font-size: 15.5px; line-height: 1.55; max-width: 44ch; }

/* ---------- form (dark default) ---------- */
.wl-form { display: grid; gap: 18px; margin: 0; font-family: var(--wl-sans); }
.wl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.wl-field { position: relative; display: block; margin: 0; }
.wl-field--full { grid-column: 1 / -1; }
.wl-field input, .wl-field textarea {
  width: 100%; box-sizing: border-box; margin: 0; padding: 24px 16px 9px; border-radius: 14px; border: 0; outline: 0;
  font: 400 15.5px/1.4 var(--wl-sans) !important; color: var(--wl-ivory); background: rgba(244,241,234,.045);
  box-shadow: 0 0 0 1px var(--wl-line) inset, 0 1px 0 rgba(255,255,255,.03); transition: box-shadow .35s, background .35s; resize: vertical;
}
.wl-field textarea { min-height: 96px; }
.wl-field span { position: absolute; left: 17px; top: 17px; font-size: 15px; color: var(--wl-mute); pointer-events: none; transform-origin: 0 0; transition: transform .35s cubic-bezier(.16,1,.3,1), color .3s; }
.wl-field input:focus, .wl-field textarea:focus { background: rgba(52,195,184,.06); box-shadow: 0 0 0 1.5px var(--wl-teal) inset, 0 0 0 5px rgba(52,195,184,.12); }
.wl-field input:focus + span, .wl-field input:not(:placeholder-shown) + span,
.wl-field textarea:focus + span, .wl-field textarea:not(:placeholder-shown) + span { transform: translateY(-10px) scale(.74); color: var(--wl-teal); }
.wl-field.is-bad input { box-shadow: 0 0 0 1.5px #ff7a6b inset, 0 0 0 5px rgba(255,122,107,.12); }

.wl-bands { border: 0; margin: 4px 0 0; padding: 0; min-width: 0; }
.wl-bands legend { padding: 0; margin: 0 0 12px; font: 500 11px/1.3 var(--wl-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--wl-mute); }
.wl-chips { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.wl-chip { position: relative; margin: 0; cursor: pointer; }
.wl-chip input { position: absolute; opacity: 0; pointer-events: none; }
.wl-chip span { display: grid; place-items: center; height: 48px; border-radius: 12px; font: 500 15px/1 var(--wl-mono); color: var(--wl-ivory); background: rgba(244,241,234,.045); box-shadow: 0 0 0 1px var(--wl-line) inset; transition: transform .4s cubic-bezier(.16,1,.3,1), background .3s, box-shadow .3s, color .3s; }
.wl-chip:hover span { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(52,195,184,.5) inset, 0 10px 20px -12px rgba(52,195,184,.6); }
.wl-chip input:checked + span { color: var(--wl-ink); background: linear-gradient(180deg, #4fd6cb, var(--wl-teal)); box-shadow: 0 0 0 1px rgba(255,255,255,.3) inset, 0 12px 26px -10px rgba(52,195,184,.75); }
.wl-chip input:focus-visible + span { outline: 2px solid var(--wl-teal); outline-offset: 3px; }
.wl-plan { display: flex; align-items: center; gap: 10px; margin: 12px 0 0; font-size: 13.5px; color: var(--wl-mute); }
.wl-plan b { color: var(--wl-ivory); font-weight: 600; }
.wl-plan__dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(244,241,234,.3); transition: background .3s, box-shadow .3s; }
.wl-plan.is-on .wl-plan__dot { background: var(--wl-teal); box-shadow: 0 0 0 4px rgba(52,195,184,.2); }

.wl-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.wl-consent { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: var(--wl-mute); cursor: pointer; }
.wl-consent input { position: absolute; opacity: 0; pointer-events: none; }
.wl-box { width: 22px; height: 22px; border-radius: 7px; display: grid; place-items: center; background: rgba(244,241,234,.05); box-shadow: 0 0 0 1px rgba(244,241,234,.25) inset; transition: background .3s, box-shadow .3s; }
.wl-box svg { width: 14px; height: 14px; fill: none; stroke: var(--wl-ink); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset .45s cubic-bezier(.16,1,.3,1) .05s; }
.wl-consent input:checked + .wl-box { background: var(--wl-teal); box-shadow: 0 0 0 1px var(--wl-teal) inset, 0 6px 16px -6px rgba(52,195,184,.8); }
.wl-consent input:checked + .wl-box svg { stroke-dashoffset: 0; }
.wl-consent input:focus-visible + .wl-box { outline: 2px solid var(--wl-teal); outline-offset: 3px; }
.wl-consent.is-bad .wl-box { box-shadow: 0 0 0 1.5px #ff7a6b inset; }
.wl-consent a { color: var(--wl-teal) !important; text-decoration: underline; text-underline-offset: 3px; }
.wl-error { margin: 0; min-height: 0; font-size: 13.5px; color: #ff9a8d; }
.wl-error:empty { display: none; }

.wl-submit {
  position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: 100%; height: 58px; margin-top: 4px;
  border: 0; border-radius: 99px; cursor: pointer; font: 600 15.5px/1 var(--wl-sans); letter-spacing: -.005em; color: var(--wl-ink);
  background: linear-gradient(180deg, #F9F7F2, #E6E1D6); box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 -2px 0 rgba(0,0,0,.08) inset, 0 18px 40px -16px rgba(52,195,184,.55);
  transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .4s;
}
.wl-submit::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #5ee0d5, var(--wl-teal)); transform: translateY(101%); border-radius: inherit; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.wl-submit > * { position: relative; }
.wl-submit svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .5s cubic-bezier(.16,1,.3,1); }
.wl-submit:hover { transform: translateY(-2px); box-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 24px 50px -16px rgba(52,195,184,.8); }
.wl-submit:hover::before { transform: translateY(0); }
.wl-submit:hover svg { transform: translateX(4px); }
.wl-spin { display: none; width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(7,19,31,.2); border-top-color: var(--wl-ink); animation: wlSpin .7s linear infinite; }
.wl-submit.is-busy .wl-spin { display: block; }
.wl-submit.is-busy svg { display: none; }
.wl-submit.is-busy { pointer-events: none; opacity: .85; }
@keyframes wlSpin { to { transform: rotate(360deg); } }
.wl-submit--ghost { color: var(--wl-ivory); background: rgba(244,241,234,.06); box-shadow: 0 0 0 1px var(--wl-line) inset; margin-top: 26px; }
.wl-submit--ghost:hover { color: var(--wl-ink); }

/* success */
.wl-done { text-align: left; padding: 6px 0; }
.wl-done__check { width: 64px; height: 64px; fill: none; stroke: var(--wl-teal); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 8px 24px rgba(52,195,184,.45)); }
.wl-done__check circle { stroke-dasharray: 152; stroke-dashoffset: 152; animation: wlDraw 1s cubic-bezier(.65,0,.35,1) forwards; }
.wl-done__check path { stroke-dasharray: 40; stroke-dashoffset: 40; animation: wlDraw .6s cubic-bezier(.65,0,.35,1) .7s forwards; }
@keyframes wlDraw { to { stroke-dashoffset: 0; } }
.wl-done__eyebrow { margin: 22px 0 10px; font: 500 11px/1 var(--wl-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--wl-teal); }
.wl-done__h { margin: 0 0 14px; font-family: var(--wl-serif) !important; font-weight: 400; font-size: clamp(32px, 3.6vw, 48px); line-height: 1.02; letter-spacing: -.015em; color: var(--wl-ivory); }
.wl-done__p { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--wl-mute); }
.wl-done__p b { color: var(--wl-ivory); font-weight: 500; }

/* ---------- inline (inside the Divi demo + contact panels) ---------- */
html body #page-container .wl-inline { display: block !important; padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; min-height: 0 !important; }
html body #page-container .wl-inline::before, html body #page-container .wl-inline::after { content: none !important; }
html body #page-container .wl-inline * { font-family: inherit; }
html body #page-container .wl-inline .wl-done__h { font-family: var(--wl-serif) !important; }
/* the panel is light: switch the form to ink-on-ivory */
html body #page-container .wl-inline.wl-inline:not(.wl-inline--dark) {
  --wl-ivory: #07131F; --wl-line: rgba(7,19,31,.14); --wl-mute: rgba(7,19,31,.6);
}
.wl-inline:not(.wl-inline--dark) .wl-field input, .wl-inline:not(.wl-inline--dark) .wl-field textarea, .wl-inline:not(.wl-inline--dark) .wl-chip span { background: rgba(255,255,255,.75); box-shadow: 0 0 0 1px var(--wl-line) inset, 0 1px 2px rgba(7,19,31,.04); }
.wl-inline:not(.wl-inline--dark) .wl-field input:focus, .wl-inline:not(.wl-inline--dark) .wl-field textarea:focus { background: #fff; }
.wl-inline:not(.wl-inline--dark) .wl-field input:focus + span, .wl-inline:not(.wl-inline--dark) .wl-field input:not(:placeholder-shown) + span,
.wl-inline:not(.wl-inline--dark) .wl-field textarea:focus + span, .wl-inline:not(.wl-inline--dark) .wl-field textarea:not(:placeholder-shown) + span { color: var(--wl-teal-d); }
.wl-inline:not(.wl-inline--dark) .wl-chip input:checked + span { color: #fff; background: linear-gradient(180deg, #13283b, #07131F); box-shadow: 0 12px 26px -12px rgba(7,19,31,.6); }
.wl-inline:not(.wl-inline--dark) .wl-box { background: #fff; box-shadow: 0 0 0 1.5px rgba(7,19,31,.28) inset; }
.wl-inline:not(.wl-inline--dark) .wl-box svg { stroke: #fff; }
.wl-inline:not(.wl-inline--dark) .wl-consent input:checked + .wl-box { background: var(--wl-teal-d); box-shadow: 0 0 0 1px var(--wl-teal-d) inset; }
.wl-inline:not(.wl-inline--dark) .wl-consent a { color: var(--wl-teal-d) !important; }
.wl-inline:not(.wl-inline--dark) .wl-error { color: #c4402f; }
.wl-inline:not(.wl-inline--dark) .wl-submit { color: #F4F1EA; background: linear-gradient(180deg, #16304a, #07131F); box-shadow: 0 1px 0 rgba(255,255,255,.12) inset, 0 18px 40px -18px rgba(7,19,31,.7); }
.wl-inline:not(.wl-inline--dark) .wl-submit:hover { color: #07131F; }
.wl-inline:not(.wl-inline--dark) .wl-spin { border-color: rgba(244,241,234,.25); border-top-color: #F4F1EA; }
.wl-inline:not(.wl-inline--dark) .wl-done__check { stroke: var(--wl-teal-d); filter: none; }
.wl-inline:not(.wl-inline--dark) .wl-done__eyebrow { color: var(--wl-teal-d); }
.wl-inline:not(.wl-inline--dark) .wl-done__h em { color: var(--wl-teal-d); }

html body #page-container .wl-inline :is(.wl-chip span, .wl-bands legend, .wl-done__eyebrow) { font-family: var(--wl-mono) !important; }
.wl-inline:not(.wl-inline--dark) .wl-plan__dot { background: rgba(7,19,31,.25); }
.wl-inline--dark .wl-submit { margin-top: 4px; }

/* ---------- responsive ---------- */
@media (max-width: 860px) {
  .wl-modal { padding: 0; place-items: end center; }
  .wl-modal__card { grid-template-columns: 1fr; border-radius: 26px 26px 0 0; max-height: 94dvh; }
  .wl-modal__side { border-radius: 26px 26px 0 0; min-height: 0; height: 150px; }
  .wl-modal__side-in { padding: 22px 24px; }
  .wl-modal__side .wl-side__h, .wl-perks { display: none; }
  .wl-modal__main { padding: 28px 22px 30px; }
  .wl-modal__main > .wl-tag { display: none; }
  .wl-modal__h { margin-top: 0; }
  .wl-modal__p { margin-bottom: 22px; }
}
@media (max-width: 520px) {
  .wl-grid { grid-template-columns: 1fr; }
  .wl-chips { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .wl-chip span { height: 44px; font-size: 13.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .wl-modal__side img, .wl-tag span { animation: none; }
}

.wl-note{margin:0 0 10px;font-size:12.5px;line-height:1.5;opacity:.75}
.wl-note a{color:inherit;text-decoration:underline}
