/* ============================================================================
   ANTHEM CHURCH — STYLES
   Change the brand colours, fonts and spacing in :root below. Everything else
   flows from these. (The visual editor can also change the main colours.)
   ========================================================================== */

/* ---- Recoleta (your licensed display serif) ---- */
@font-face { font-family: "Recoleta"; src: url("../fonts/Recoleta-Thin.otf") format("opentype");     font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: "Recoleta"; src: url("../fonts/Recoleta-Light.otf") format("opentype");    font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Recoleta"; src: url("../fonts/Recoleta-Regular.otf") format("opentype");  font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Recoleta"; src: url("../fonts/Recoleta-Medium.otf") format("opentype");   font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Recoleta"; src: url("../fonts/Recoleta-SemiBold.otf") format("opentype"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Recoleta"; src: url("../fonts/Recoleta-Bold.otf") format("opentype");     font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Recoleta"; src: url("../fonts/Recoleta-Black.otf") format("opentype");    font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: "SilverSouth Script"; src: url("../fonts/SilverSouthScript.woff2") format("woff2"), url("../fonts/SilverSouthScript.woff") format("woff"), url("../fonts/SilverSouthScript.otf") format("opentype"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  /* ---- BRAND COLOURS (monochrome + one accent) ---- */
  --ink: #1F1F1F;            /* all body text on light */
  --near-black: #161616;     /* dark sections */
  --white: #FFFFFF;          /* main background */
  --off-white: #F4F4F4;      /* alternate panel background */
  --light-text: #FBFBFB;     /* text on dark */
  --accent: #3274D8;         /* buttons & calls-to-action (matches the app) */
  --accent-light: #4A85EC;
  --accent-ink: #1f4f9e;
  --line: #E8E8ED;           /* hairline borders on light */
  --line-dark: rgba(255,255,255,0.14);
  --muted: #6E6E73;          /* secondary text on light */

  /* ---- WARM / SOFT SECTION BACKGROUNDS (replace the old yellow warmth) ---- */
  --warm: #F3EFE8;           /* warm neutral section */
  --soft-blue: #EEF4FF;      /* soft blue section */
  --bg-primary: #F5F5F7;     /* app-style light grey */

  /* ---- GREEN (life / growth / positive — used sparingly) ---- */
  --green-muted: #629460;
  --green-bright: #4FB477;
  --accent-deep: #245CB7;    /* blue, pressed/deep */

  /* ---- FONTS ----
     Recoleta = your licensed display serif (Fraunces stands in until you add it).
     Figtree  = body + headings workhorse.  Pinyon = the one script accent line. */
  --font-display: "Recoleta", "Fraunces", Georgia, "Times New Roman", serif;
  --font-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-script: "SilverSouth Script", "Pinyon Script", cursive;

  /* ---- SHAPE & DEPTH ---- */
  --radius: 14px;
  --radius-lg: 24px;
  --radius-pill: 999px;
  --shadow-sm: 0 4px 18px rgba(20,20,20,0.07);
  --shadow-md: 0 18px 50px rgba(20,20,20,0.12);
  --maxw: 1180px;
  --gutter: var(--gutter-base, clamp(20px, 5vw, 64px));   /* content side padding — user-adjustable per device */
  --nav-gutter: clamp(20px, 5vw, 64px);                   /* header keeps its own padding, unaffected by content gutter */
  --section-y: clamp(72px, 10vw, 140px);

  /* ---- STANDARD TYPE SCALE ----------------------------------------------------
     One set of sizes per device (Web here; iPad/Phone override below + in the
     editor's device frames). Every heading/body style reads these — no per-block
     size fiddling. "Headings size" in Design still scales all headings together. */
  --fs-display: 4.1rem;
  --fs-display-sm: 2.9rem;
  --fs-section: 2.5rem;
  --fs-practical: 1.7rem;
  --fs-card: 1.32rem;
  --fs-script: 2.6rem;          /* big display script */
  --fs-eyebrow-script: 1.8rem;  /* small script accent line */
  --fs-kicker: 0.78rem;
  --fs-intro: 1.3rem;
  --fs-body-lg: 1.18rem;
  --fs-body: 1.02rem;
  --fs-body-sm: 0.88rem;

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------------- RESET ---------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: hidden; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--white);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: 4px; }

.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 200;
  background: var(--ink); color: var(--white);
  padding: 10px 16px; border-radius: 8px; transition: top .2s;
}
.skip-link:focus { top: 16px; }

/* ---------------- TYPOGRAPHY ---------------- */
.display {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(3rem, 9vw, 6.6rem);
  line-height: 0.98;
  letter-spacing: -0.02em;
}
.display-sm {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2rem, 4.6vw, 3.3rem);
  line-height: 1.05;
  letter-spacing: -0.018em;
  margin: 0;
}
.script {
  font-family: var(--font-script);
  font-weight: 400;
  font-size: var(--fs-eyebrow-script);
  line-height: 1;
  color: var(--accent);
}
.kicker {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--fs-kicker);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 14px;
}
.kicker--light { color: var(--accent-light); }
.lead { font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.65; color: var(--muted); margin: 0; }
.lead--center { text-align: center; max-width: 620px; margin: 16px auto 0; }
.light { color: var(--light-text); }
[data-edit-rich] a,
.richtext a,
.lead a,
.hero__subtitle a,
.journey__body a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
}
.inline-rich-image {
  display: inline-block;
  width: auto;
  max-width: min(260px, 100%);
  max-height: 8em;
  height: auto;
  margin: .2em .35em;
  vertical-align: middle;
  object-fit: contain;
  background: transparent;
}

/* ---------------- LAYOUT ---------------- */
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
/* per-device content side padding (phone rule after tablet so it wins at ≤640) */
@media (max-width: 1024px) { :root { --gutter: var(--gutter-tablet, var(--gutter-base, clamp(20px, 5vw, 64px))); } }
@media (max-width: 640px) { :root { --gutter: var(--gutter-phone, var(--gutter-tablet, var(--gutter-base, clamp(20px, 5vw, 64px)))); } }

/* ---- standard type scale: iPad + Phone steps (and the editor's device frames, which
       can't trip real media queries because the window stays wide) ---- */
@media (max-width: 1024px) { :root {
  --fs-display: 3.2rem; --fs-display-sm: 2.4rem; --fs-section: 2.15rem; --fs-practical: 1.5rem; --fs-card: 1.25rem;
  --fs-script: 2.2rem; --fs-eyebrow-script: 1.65rem; --fs-kicker: 0.76rem; --fs-intro: 1.18rem; --fs-body-lg: 1.12rem; --fs-body: 1rem; --fs-body-sm: 0.87rem;
} }
@media (max-width: 640px) { :root {
  --fs-display: 2.5rem; --fs-display-sm: 1.95rem; --fs-section: 1.8rem; --fs-practical: 1.35rem; --fs-card: 1.18rem;
  --fs-script: 1.9rem; --fs-eyebrow-script: 1.5rem; --fs-kicker: 0.74rem; --fs-intro: 1.08rem; --fs-body-lg: 1.06rem; --fs-body: 1rem; --fs-body-sm: 0.86rem;
} }
body.aed-edit.aed-vp-tablet {
  --fs-display: 3.2rem; --fs-display-sm: 2.4rem; --fs-section: 2.15rem; --fs-practical: 1.5rem; --fs-card: 1.25rem;
  --fs-script: 2.2rem; --fs-eyebrow-script: 1.65rem; --fs-kicker: 0.76rem; --fs-intro: 1.18rem; --fs-body-lg: 1.12rem; --fs-body: 1rem; --fs-body-sm: 0.87rem;
}
body.aed-edit.aed-vp-phone {
  --fs-display: 2.5rem; --fs-display-sm: 1.95rem; --fs-section: 1.8rem; --fs-practical: 1.35rem; --fs-card: 1.18rem;
  --fs-script: 1.9rem; --fs-eyebrow-script: 1.5rem; --fs-kicker: 0.74rem; --fs-intro: 1.08rem; --fs-body-lg: 1.06rem; --fs-body: 1rem; --fs-body-sm: 0.86rem;
}

/* ---- font height matching: scale every typeface to the same lowercase height, so swapping
       Recoleta ⇄ Figtree ⇄ Silver Script keeps the same visual size (0.5 = Figtree's ratio,
       so body text is unchanged and other fonts adapt to IT) ---- */
#site-main, #nav, .mobilemenu { font-size-adjust: 0.5; }

/* wide banner frame for header images */
.img-aspect-21x9 { aspect-ratio: 21/9; }
.section { padding: var(--section-y) 0; position: relative; }
.section[id], [id]:not(body) { scroll-margin-top: 92px; }
.section--white { background: var(--white); }
.section--offwhite { background: var(--off-white); }
.section--dark { background: var(--near-black); color: var(--light-text); }
.section__head { max-width: 760px; margin: 0 auto clamp(40px, 6vw, 72px); text-align: center; }
.section__head--row { display: flex; justify-content: space-between; align-items: flex-end; text-align: left; max-width: none; gap: 24px; }

/* ---------------- BUTTONS ---------------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: calc(13px * var(--button-scale, 1)) calc(26px * var(--button-scale, 1)); border-radius: var(--radius-pill);
  font-weight: 600; font-size: calc(0.98rem * var(--button-scale, 1)); border: 1.5px solid transparent;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .2s, color .2s;
  will-change: transform;
}
.btn__icon { width: 1.05em; height: 1.05em; display: inline-grid; place-items: center; color: var(--btn-icon-color, currentColor); flex: 0 0 auto; }
.btn__icon--right { order: 2; }   /* icon after the label (flex reorder, no DOM change) */
.btn__icon svg { width: 100%; height: 100%; display: block; }
.rich-icon { width: .9em; height: .9em; display: inline-grid; place-items: center; vertical-align: -.08em; color: currentColor; margin: 0 .08em; }
.rich-icon svg { width: 100%; height: 100%; display: block; }
.btn--shape-pill { border-radius: var(--radius-pill); }
.btn--shape-rounded { border-radius: 12px; }
.btn--shape-square { border-radius: 2px; }
.btn--sm { padding: calc(9px * var(--button-scale, 1)) calc(18px * var(--button-scale, 1)); font-size: calc(.86rem * var(--button-scale, 1)); gap: 8px; }
.btn--lg { padding: calc(16px * var(--button-scale, 1)) calc(34px * var(--button-scale, 1)); font-size: calc(1.04rem * var(--button-scale, 1)); }
.btn--accent { background: var(--accent); color: #fff; box-shadow: 0 8px 22px rgba(50,116,216,0.32); }
.btn--accent:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(50,116,216,0.42); background: var(--accent-light); }
.btn--dark { background: var(--ink); color: var(--white); }
.btn--dark:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn--ghost-light { background: rgba(255,255,255,0.08); color: #fff; border-color: rgba(255,255,255,0.55); backdrop-filter: blur(6px); }
.btn--ghost-light:hover { background: rgba(255,255,255,0.18); transform: translateY(-2px); }
.btn--outline { background: transparent; color: var(--btn-outline-color, var(--ink)); border-color: var(--btn-outline-color, var(--ink)); }
.btn--outline:hover { background: var(--btn-outline-color, var(--ink)); color: var(--btn-outline-hover-text, #fff); }
/* plain = borderless, transparent — a pill-shaped text link that inherits the section's text colour */
.btn--plain { background: transparent; border-color: transparent; color: inherit; box-shadow: none; }
.btn--plain:hover { background: color-mix(in srgb, currentColor 8%, transparent); transform: translateY(-1px); box-shadow: none; }
.btn::after { content: ""; }
.btn[data-arrow]::after { content: "→"; transition: transform .25s var(--ease); }
.btn[data-arrow]:hover::after { transform: translateX(4px); }

/* ---------------- NAV ---------------- */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  transition: background .35s var(--ease), box-shadow .35s, padding .35s;
  padding: var(--nav-pad-y, 18px) 0;
  background: var(--nav-bg, transparent);
}
.nav__inner { width: 100%; max-width: var(--nav-inner-max, 1280px); margin: 0 auto; padding: 0 var(--nav-gutter);
  display: flex; align-items: center; justify-content: space-between; gap: var(--nav-action-gap, 24px); }
.nav__brand { transform: translate(var(--nav-logo-offset-x, 0px), var(--nav-logo-offset-y, 0px)); transition: transform .25s var(--ease); min-width: 0; flex: 0 1 auto; }
/* last-resort guard: whatever height is configured, the logo shrinks to the space it has
   rather than pushing the header wider than the screen and clipping both edges */
.nav__logo { height: var(--nav-logo-height, 30px); width: auto; max-width: 100%; object-fit: contain; object-position: left center; transition: filter .35s; filter: brightness(0) invert(1); }
.nav__links { display: flex; align-items: center; gap: var(--nav-link-gap, 30px); transform: translate(var(--nav-menu-offset-x, 0px), var(--nav-menu-offset-y, 0px)); transition: transform .25s var(--ease), gap .25s var(--ease); }
.nav__item { position: relative; display: flex; align-items: center; }
.nav__links a { font-weight: 600; font-size: var(--nav-link-font, 0.95rem); color: var(--nav-text, #fff); opacity: .92; position: relative; padding: 4px 0; }
.nav__links a::after { content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background: var(--accent); transition: width .25s var(--ease); }
.nav__links a:hover::after { width: 100%; }
.nav__submenu { position: absolute; top: calc(100% + 14px); left: 50%; min-width: 210px; transform: translate(-50%, 8px); opacity: 0; pointer-events: none; padding: 8px; border-radius: 18px; background: rgba(255,255,255,.96); color: var(--ink); box-shadow: 0 18px 60px rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.68); backdrop-filter: blur(18px); transition: opacity .18s var(--ease), transform .18s var(--ease); }
.nav__submenu::before { content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }
.nav__item:hover .nav__submenu,
.nav__item:focus-within .nav__submenu { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.nav__submenu a { display: block; color: var(--ink) !important; font-weight: 500; font-size: .92rem; padding: 10px 12px; border-radius: 12px; opacity: 1; white-space: nowrap; }
.nav__submenu a:hover { background: #f3f6fb; }
.nav__submenu a::after { display: none; }
.nav__actions { display: flex; align-items: center; gap: var(--nav-action-gap, 14px); transform: translate(var(--nav-action-offset-x, 0px), var(--nav-action-offset-y, 0px)); transition: transform .25s var(--ease), gap .25s var(--ease); }
.nav__login { font-weight: 600; font-size: 0.92rem; color: #fff; opacity: .9; }
.nav__cta { justify-content: center; line-height: 1; white-space: nowrap; }   /* keep label + icon dead-centre inside the pill at any width/shape, never wrap */
.nav__cta .nav__cta-label { line-height: 1; }
.nav__login:hover { opacity: 1; }
.nav__burger { display: inline-flex; align-items: center; gap: calc(8px * var(--nav-burger-scale, 1)); min-height: calc(38px * var(--nav-burger-scale, 1)); border: 1px solid rgba(255,255,255,.16); border-radius: var(--nav-burger-radius, 999px); background: rgba(255,255,255,.1); color: var(--nav-text, #fff); padding: calc(5px * var(--nav-burger-scale, 1)) calc(7px * var(--nav-burger-scale, 1)) calc(5px * var(--nav-burger-scale, 1)) calc(10px * var(--nav-burger-scale, 1)); cursor: pointer; backdrop-filter: blur(8px); }
.nav__burger { transform: translateX(var(--nav-burger-x, 0px)); }
@media (max-width: 1024px) { .nav__burger { transform: translateX(var(--nav-burger-x-tablet, var(--nav-burger-x, 0px))); } }
body.aed-edit.aed-vp-tablet .nav__burger { transform: translateX(var(--nav-burger-x-tablet, var(--nav-burger-x, 0px))); }
body.aed-edit.aed-vp-phone .nav__burger { transform: none; }   /* phone position is handled by the existing mobile offsets */
@media (max-width: 640px) { .nav__burger { transform: none; } }
.nav__burger-lines { width: calc(24px * var(--nav-burger-scale, 1)); display: flex; flex-direction: column; gap: calc(5px * var(--nav-burger-scale, 1)); }
.nav__burger-lines span { width: calc(22px * var(--nav-burger-scale, 1)); height: calc(2px * var(--nav-burger-scale, 1)); border-radius: 999px; background: currentColor; transition: transform .3s, opacity .3s; }
.nav__burger-account { width: calc(24px * var(--nav-burger-scale, 1)); height: calc(24px * var(--nav-burger-scale, 1)); border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: #fff; font-size: calc(.68rem * var(--nav-burger-scale, 1)); font-weight: 900; letter-spacing: .02em; }
.nav__burger.is-out { padding-right: 10px; }

/* scrolled / solid state (added by JS) */
.nav.is-solid { background: var(--nav-solid-bg, rgba(255,255,255,0.82)); backdrop-filter: saturate(180%) blur(20px); box-shadow: 0 1px 0 var(--line); padding: var(--nav-solid-pad-y, 12px) 0; }
.nav.is-solid .nav__logo { filter: none; }
.nav.is-solid .nav__links a,
.nav.is-solid .nav__login { color: var(--nav-solid-text, var(--ink)); }
.nav.is-solid .nav__burger { color: var(--nav-solid-text, var(--ink)); background: rgba(29,29,31,.04); border-color: rgba(29,29,31,.09); }

/* ---------------- HERO ---------------- */
.hero { position: relative; min-height: 100svh; display: flex; align-items: center;
  color: #fff; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img, .hero__bg video { width: 100%; height: 100%; object-fit: cover; }
.hero__bg img { animation: heroZoom 18s var(--ease) forwards; }
.hero__bg video { position: absolute; inset: 0; }
.hero__bg iframe { position: absolute; top: 50%; left: 50%; width: max(100vw, 177.78vh); height: max(56.25vw, 100vh); transform: translate(-50%, -50%); border: 0; pointer-events: none; }
@keyframes heroZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.hero__scrim { position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.3) 40%, rgba(0,0,0,0.55) 100%); }
.hero__content { position: relative; z-index: 2; width: 100%; max-width: var(--maxw);
  margin: 0 auto; padding: 120px var(--gutter) 90px; }
.hero__eyebrow { color: #fff; opacity: .95; margin: 0 0 6px; }
.hero__title { margin: 0 0 22px; max-width: 16ch; text-shadow: 0 2px 30px rgba(0,0,0,0.25); }
.hero__title .ln { display: block; overflow: hidden; }
.hero__title .ln > span { display: block; transform: translateY(110%); animation: lineUp .9s var(--ease) forwards; }
.hero__title .ln:nth-child(1) > span { animation-delay: .15s; }
.hero__title .ln:nth-child(2) > span { animation-delay: .28s; }
.hero__title .ln:nth-child(3) > span { animation-delay: .41s; }
.hero__title .ln:nth-child(4) > span { animation-delay: .54s; }
.hero__title .accent-word { color: var(--accent-light); font-style: italic; }
@keyframes lineUp { to { transform: translateY(0); } }
.hero__subtitle { font-size: clamp(1.05rem, 1.7vw, 1.35rem); max-width: 46ch; opacity: .96; margin: 0 0 32px; line-height: 1.55; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 30px; }
.hero__pill { display: inline-flex; align-items: center; gap: 10px; padding: 11px 20px;
  border: 1px solid rgba(255,255,255,0.4); border-radius: var(--radius-pill);
  background: rgba(255,255,255,0.08); backdrop-filter: blur(8px);
  font-weight: 600; font-size: 0.92rem; letter-spacing: .01em; }
.hero__pill::before { content:""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent-light); box-shadow: 0 0 0 4px rgba(74,133,236,0.3); }
.hero__scroll { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); z-index: 3;
  width: 26px; height: 42px; border: 2px solid rgba(255,255,255,0.6); border-radius: 14px; }
.hero__scroll span { position: absolute; top: 8px; left: 50%; transform: translateX(-50%); width: 4px; height: 8px; border-radius: 2px; background: #fff; animation: scrollDot 1.8s infinite; }
@keyframes scrollDot { 0%{opacity:0; top:8px;} 30%{opacity:1;} 60%{opacity:1; top:22px;} 100%{opacity:0; top:22px;} }

/* ---------------- JOURNEY WINDOWS ---------------- */
.band--type-journey {
  min-height: 94svh;
  padding: 0 !important;
  overflow: hidden;
  background: #111;
  color: #fff;
}
.journey {
  position: relative;
  min-height: 100svh;
  padding: 0;
  display: block;
  overflow: hidden;
  contain: paint;
  clip-path: inset(0);
  --journey-card: 100%;
  --journey-image-tint: .22;
  --journey-edge-width: 36vw;
  --journey-mask-width: 36vw;
  --journey-mask-hold: 10vw;
  --journey-mask-opacity: .86;
  --journey-edge-opacity: 0;
  --journey-cell-tint: .14;
}
.journey__ambient {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(120deg, rgba(50,116,216,.18), transparent 38%, rgba(255,255,255,.04)),
    #111;
  background-size: 96px 96px, 96px 96px, auto, auto;
  opacity: .34;
  z-index: 0;
}
.journey__backdrop {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  contain: paint;
  clip-path: inset(0);
}
.journey__bgtrack {
  height: 100%;
  width: calc(var(--journey-bg-count, 5) * 100%);
  display: flex;
  will-change: transform;
  transition: none;
}
.journey__bgpanel {
  position: relative;
  flex: 0 0 calc(100% / var(--journey-bg-count, 5));
  min-width: 0;
  overflow: hidden;
}
.journey__bgpanel::before,
.journey__bgpanel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.journey__bgpanel::before {
  display: none;
}
.journey__bgpanel::after {
  z-index: 3;
  background: linear-gradient(90deg, rgba(0,0,0,var(--journey-edge-opacity)) 0, rgba(0,0,0,0) var(--journey-edge-width), rgba(0,0,0,0) calc(100% - var(--journey-edge-width)), rgba(0,0,0,var(--journey-edge-opacity)) 100%);
}
.journey__bgpanel img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.94) contrast(1.03);
  transform: scale(1.025);
}
.journey__mainimg { z-index: 0; }
.journey__blend {
  z-index: 1;
  opacity: var(--journey-mask-opacity);
  pointer-events: none;
}
.journey__blend--left {
  mask-image: linear-gradient(90deg, #000 0, #000 var(--journey-mask-hold), transparent var(--journey-mask-width), transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 var(--journey-mask-hold), transparent var(--journey-mask-width), transparent 100%);
}
.journey__blend--right {
  mask-image: linear-gradient(90deg, transparent 0, transparent calc(100% - var(--journey-mask-width)), #000 calc(100% - var(--journey-mask-hold)), #000 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, transparent calc(100% - var(--journey-mask-width)), #000 calc(100% - var(--journey-mask-hold)), #000 100%);
}
.journey--blend-none .journey__blend { display: none; }
.journey__shade {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: #000;
  opacity: var(--journey-image-tint);
  pointer-events: none;
}
.journey__topline {
  position: absolute;
  z-index: 4;
  top: clamp(92px, 9vw, 116px);
  left: 0;
  right: 0;
  width: min(100%, 1180px);
  margin: 0 auto;
  padding-inline: var(--gutter);
  color: rgba(255,255,255,.66);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-align: center;
}
.journey__rail {
  position: relative;
  z-index: 3;
  width: 100%;
  min-height: 100svh;
  margin: 0 auto;
  display: flex;
  gap: 0;
  align-items: center;
  overflow-x: auto;
  overflow-y: visible;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  padding-inline: 0;
  padding-block: 0;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}
.journey__rail::-webkit-scrollbar {
  display: none;
}
.journey__panel {
  position: relative;
  flex: 0 0 var(--journey-card);
  min-height: 100svh;
  border: 0;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
  scroll-snap-align: center;
  background: transparent;
  cursor: pointer;
  --journey-scale: .82;
  --journey-opacity: .58;
  transform: none;
  opacity: 1;
  transition: none;
}
.journey__panel--side {
  min-height: 100svh;
}
.journey__panel.is-active {
  --journey-scale: 1;
  --journey-opacity: 1;
}
.journey__panel {
  display: grid;
  place-items: center;
  padding: clamp(118px, 12vw, 148px) var(--gutter) clamp(76px, 8vw, 104px);
}
.journey__copy {
  position: relative;
  width: min(720px, calc(100% - 2 * var(--gutter)));
  max-width: min(720px, calc(100% - 2 * var(--gutter)));
  padding: clamp(20px, 2.4vw, 30px);
  border-radius: clamp(14px, 1.7vw, 20px);
  background: rgba(7, 7, 7, var(--journey-cell-tint));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  text-shadow: none;
  transform: scale(var(--journey-scale));
  transform-origin: center;
  opacity: var(--journey-opacity);
  transition: none;
  will-change: transform, opacity;
}
.journey__script {
  color: #fff;
  margin: 0 0 8px;
}
.journey__title {
  font-family: var(--font-display);
  font-size: calc(var(--fs-display) * var(--display-scale, 1));
  line-height: .98;
  letter-spacing: -0.02em;
  margin: 0;
  max-width: 8.6em;   /* font-independent (was 13ch — collapsed under script fonts whose "0" glyph is very narrow) */
}
.journey__titleimg { display: block; height: auto; max-width: 100%; }   /* width set inline as % of the window column, so it scales per device */
/* script fonts flow wide + decorative — don't hard-cap their width (was cramping Silver South Script) */
.journey__title--script, .hero__title.ty-script, .hero__title--flat.ty-script { max-width: none; letter-spacing: 0; line-height: 1.02; }
/* whole Headings font set to a script face → relax the stacking width caps everywhere */
.script-display .journey__title, .script-display .hero__title, .script-display .display, .script-display .display-sm { max-width: none; letter-spacing: 0; }
.journey__body {
  max-width: 48ch;
  margin: 16px 0 0;
  color: rgba(255,255,255,.86);
  font-size: clamp(1.05rem, 1.45vw, 1.24rem);
  line-height: 1.58;
}
.journey--center .journey__copy,
.journey--center .journey__title,
.journey--center .journey__body {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.journey--center .journey__ctas,
.journey--center .journey__panelctas,
.journey--center .journey__directions {
  justify-content: center;
}
.journey--right .journey__copy,
.journey--right .journey__title,
.journey--right .journey__body {
  text-align: right;
  margin-left: auto;
}
.journey--right .journey__ctas,
.journey--right .journey__panelctas,
.journey--right .journey__directions {
  justify-content: flex-end;
}
.journey__ctas,
.journey__panelctas {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.journey__ctas { margin-top: 24px; }
.journey__panelctas { margin-top: 22px; align-items: center; }
.journey__label {
  margin: 0 0 10px;
  color: var(--accent-light);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.journey__panel:not(.is-active) .journey__body,
.journey__panel:not(.is-active) .journey__ctas,
.journey__panel:not(.is-active) .journey__panelctas,
.journey__panel:not(.is-active) .journey__directions {
  opacity: 1;
}
.journey__textlink {
  color: #fff;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  opacity: .86;
}
.journey__textlink::after { content: "→"; }
.journey__directions {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-top: clamp(34px, 6vh, 58px);
  color: rgba(255,255,255,.62);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.journey__controls {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.journey__arrow {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.24);
  background: rgba(20,20,20,.24);
  backdrop-filter: blur(10px);
  color: #fff;
}
.journey__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,.3);
}
.journey__dot.is-on { background: var(--accent-light); }

body.aed-edit .band--type-journey,
body.aed-edit .journey {
  min-height: 82svh;
}
body.aed-edit .journey {
  padding: 0;
}
body.aed-edit .journey__backdrop {
  opacity: 1;
}
body.aed-edit .journey__shade {
  background: #000;
}
body.aed-edit .journey__bgtrack {
  transition: none;
}
body.aed-edit .journey__topline {
  position: absolute;
  top: clamp(92px, 9vw, 116px);
  margin-bottom: 0;
}
body.aed-edit .journey__rail {
  display: flex;
  grid-template-columns: none;
  max-width: none;
  min-height: 82svh;
  overflow-x: auto;
  overflow-y: visible;
  padding: 0;
}
body.aed-edit .journey__panel,
body.aed-edit .journey__panel--side {
  flex: 0 0 var(--journey-card);
  min-height: 82svh;
  transform: none;
  opacity: 1;
  cursor: pointer;
  padding: clamp(118px, 12vw, 148px) var(--gutter) clamp(76px, 8vw, 104px);
}
body.aed-edit .journey__copy {
  transform: scale(var(--journey-scale));
  opacity: var(--journey-opacity);
}
body.aed-edit .journey__panel--clone {
  display: grid;
}
body.aed-edit .journey__controls {
  display: flex;
}
body.aed-edit .journey__panel .journey__body,
body.aed-edit .journey__panel .journey__ctas,
body.aed-edit .journey__panel .journey__panelctas,
body.aed-edit .journey__panel .journey__directions {
  max-height: none;
  opacity: 1;
  overflow: visible;
  pointer-events: auto;
}
body.aed-edit .journey__panel .journey__body {
  margin-top: 12px;
}
body.aed-edit .journey__panel .journey__ctas,
body.aed-edit .journey__panel .journey__panelctas {
  margin-top: 22px;
}

/* ---------------- WELCOME ---------------- */
.welcome { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(32px, 6vw, 90px); align-items: center; }
.welcome__script { margin: 0 0 12px; }
.welcome__lead .display-sm { max-width: 14ch; }
.stats { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.stat { flex: 1 1 130px; padding: 22px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.stat__value { font-family: var(--font-display); font-size: calc((2.2rem) * var(--block-fscale, 1)); font-weight: 600; color: var(--ink); line-height: 1; }
.stat__label { font-size: calc((0.85rem) * var(--block-fscale, 1)); color: var(--muted); margin-top: 8px; }

/* ---------------- MODERN SECTION OPTIONS ---------------- */
.statement {
  display: grid;
  grid-template-columns: minmax(140px, .34fr) minmax(0, 1.08fr) minmax(220px, .58fr);
  gap: clamp(26px, 5vw, 72px);
  align-items: end;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: clamp(34px, 7vw, 92px) 0;
}
.statement__side {
  display: grid;
  gap: 14px;
  align-self: stretch;
  align-content: space-between;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.statement__side p,
.statement__side span { margin: 0; }
.statement__title {
  margin: 0;
  max-width: 12ch;
  line-height: .94;
}
.statement__body {
  max-width: 46ch;
  margin: 22px 0 0;
}
.statement__list {
  list-style: none;
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.statement__list li {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items: center;
  padding: 17px 0;
  border-bottom: 1px solid var(--line);
}
.statement__list span {
  color: var(--accent);
  font-size: .76rem;
  font-weight: 800;
}
.statement__list b {
  font-size: clamp(1rem, 1.6vw, 1.35rem);
  font-weight: 500;
}
.statement--centred {
  display: block;
  text-align: center;
}
.statement--centred .statement__side,
.statement--centred .statement__body,
.statement--centred .statement__title { margin-left: auto; margin-right: auto; }
.statement--centred .statement__side { margin-bottom: 28px; }
.statement--centred .statement__list { max-width: 720px; margin: 38px auto 0; text-align: left; }
.statement--ruled { grid-template-columns: 1fr; gap: 28px; }
.statement--ruled .statement__side { grid-template-columns: 1fr auto; }
.statement--ruled .statement__main { display: grid; grid-template-columns: 1.1fr .8fr; gap: clamp(24px, 5vw, 64px); align-items: end; }
.statement--ruled .statement__title { max-width: 13ch; }
.statement--ruled .statement__body { margin-top: 0; }

.maskstory {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(30px, 6vw, 88px);
  align-items: center;
}
.maskstory--image-left .maskstory__media { order: -1; }
.maskstory__copy p { margin-top: 16px; }
.maskstory__cta { margin-top: 26px; }
.maskstory__media {
  position: relative;
  min-height: clamp(360px, 52vw, 680px);
  overflow: hidden;
  border-radius: clamp(14px, 2vw, 24px);
  background: var(--near-black);
}
.maskstory__image,
.maskstory__overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.maskstory__image {
  filter: saturate(.96) contrast(1.02);
}
.maskstory__overlay {
  opacity: var(--maskstory-opacity);
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--maskstory-edge), #000 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--maskstory-edge), #000 100%);
}
.maskstory--image-left .maskstory__overlay {
  mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - var(--maskstory-edge)), transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - var(--maskstory-edge)), transparent 100%);
}

.marquee {
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
}
.marquee--dark {
  background: var(--near-black);
  color: #fff;
  border-color: rgba(255,255,255,.14);
}
.marquee--line {
  background: transparent;
}
.marquee__label {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-align: center;
  text-transform: uppercase;
}
.marquee__viewport {
  overflow: hidden;
  width: 100%;
  mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent);
}
.marquee__track {
  display: flex;
  width: max-content;
  gap: clamp(24px, 5vw, 76px);
  animation: marqueeMove var(--marquee-speed, 34s) linear infinite;
}
.marquee--right .marquee__track { animation-direction: reverse; }
.marquee__item {
  white-space: nowrap;
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 4.2vw, 4.8rem);
  line-height: 1;
  color: currentColor;
  opacity: .86;
}
@keyframes marqueeMove {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (max-width: 820px) {
  .statement,
  .statement--ruled .statement__main,
  .maskstory {
    grid-template-columns: 1fr;
  }
  .statement {
    gap: 24px;
    padding: 42px 0;
  }
  .statement__side,
  .statement--ruled .statement__side {
    grid-template-columns: 1fr;
    align-content: start;
  }
  .statement__title {
    max-width: 100%;
  }
  .statement__list {
    margin-top: 8px;
  }
  .maskstory--image-left .maskstory__media {
    order: 0;
  }
  .maskstory__media {
    min-height: 360px;
  }
}

/* ---------------- VISIT ---------------- */
.visit__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.vcard { background: var(--white); border-radius: var(--radius-lg); padding: 30px 26px; box-shadow: var(--shadow-sm); border: 1px solid var(--line); transition: transform .3s var(--ease), box-shadow .3s; }
.vcard:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.vcard__icon { width: 48px; height: 48px; border-radius: 12px; background: var(--accent); color: #fff; display: grid; place-items: center; margin-bottom: 18px; }
.vcard__icon svg { width: 24px; height: 24px; }
.vcard__title { font-family: var(--font-display); font-size: calc((1.35rem) * var(--block-fscale, 1)); font-weight: 600; margin: 0 0 8px; }
.vcard__body { font-size: calc((0.96rem) * var(--block-fscale, 1)); color: var(--muted); margin: 0; }
.visit__foot { margin-top: 48px; text-align: center; }
.visit__map { margin-top: 40px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); height: clamp(260px, 38vw, 420px); }
.visit__map iframe { width: 100%; height: 100%; border: 0; }

/* ---------------- EVENTS ---------------- */
.events { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 26px; }   /* cards never crush below a readable width, however narrow the block */
.ecard { background: var(--white); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); border: 1px solid var(--line); display: flex; flex-direction: column; transition: transform .3s var(--ease), box-shadow .3s; }
.ecard:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.ecard__img { aspect-ratio: 16/10; overflow: hidden; }
.ecard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ecard:hover .ecard__img img { transform: scale(1.06); }
.ecard__body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.ecard__date { font-size: calc((0.78rem) * var(--block-fscale, 1)); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); margin: 0 0 8px; }
.ecard__title { font-family: var(--font-display); font-size: calc((1.5rem) * var(--block-fscale, 1)); font-weight: 600; margin: 0 0 10px; }
.ecard__text { font-size: calc((0.96rem) * var(--block-fscale, 1)); color: var(--muted); margin: 0 0 18px; flex: 1; }
.ecard__cta { font-weight: 600; color: var(--look-accent, var(--accent)); display: inline-flex; gap: 7px; align-items: center; background: none; border: 0; padding: 0; font-family: inherit; font-size: inherit; cursor: pointer; text-align: left; }   /* button element: strip the browser's grey box so it reads as the quiet arrow-link it was styled to be */
.ecard__cta::after { content: "→"; transition: transform .25s var(--ease); }
.ecard:hover .ecard__cta::after { transform: translateX(4px); }

/* ---------------- MINISTRIES BENTO ---------------- */
.bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; gap: 18px; }
.btile { position: relative; border-radius: var(--radius-lg); overflow: hidden; color: #fff; display: flex; align-items: flex-end; box-shadow: var(--shadow-sm); }
.btile.size-lg { grid-column: span 2; grid-row: span 2; }
.btile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.btile::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.05) 30%, rgba(0,0,0,0.62) 100%); }
.btile:hover img { transform: scale(1.07); }
.btile__cap { position: relative; z-index: 2; padding: 22px; }
.btile__title { font-family: var(--font-display); font-size: calc((1.5rem) * var(--block-fscale, 1)); font-weight: 600; margin: 0; }
.btile.size-lg .btile__title { font-size: 2rem; }
.btile__sub { font-size: 0.9rem; opacity: .9; margin: 4px 0 0; }
.btile__arrow { position: absolute; top: 18px; right: 18px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,0.16); backdrop-filter: blur(4px); display: grid; place-items: center; opacity: 0; transform: translateY(-6px); transition: .3s var(--ease); }
.btile:hover .btile__arrow { opacity: 1; transform: translateY(0); }

/* ---------------- GIVE ---------------- */
.give { overflow: hidden; }
.give__bg { position: absolute; inset: 0; z-index: 0; }
.give__bg img, .give__bg video { width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.give__bg video { position: absolute; inset: 0; }
.give__bg iframe { position: absolute; top: 50%; left: 50%; width: max(100vw, 177.78vh); height: max(56.25vw, 100vh); transform: translate(-50%, -50%); border: 0; pointer-events: none; opacity: .38; }
.give__scrim { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(22,22,22,0.92), rgba(22,22,22,0.6)); }
.give__content { position: relative; z-index: 2; max-width: 720px; }
.give__content .display-sm { margin: 10px 0 18px; }
.give__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin: 30px 0 16px; }
.give__note { font-size: 0.9rem; opacity: .7; margin: 0; }
.give__embed { width: min(760px, 100%); margin: 30px 0 16px; }
.give__embed .appembed__frame { border-color: rgba(255,255,255,.18); box-shadow: none; background: #fff; }
.give__embed .appembed__empty { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: rgba(255,255,255,.82); }

/* ---------------- CONNECT STEPS ---------------- */
.steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.step { display: flex; gap: 20px; align-items: flex-start; padding: 28px; border-radius: var(--radius-lg); border: 1px solid var(--line); background: var(--white); transition: transform .3s var(--ease), box-shadow .3s, border-color .3s; }
.step:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: transparent; }
.step__num { font-family: var(--font-display); font-size: calc((1.6rem) * var(--block-fscale, 1)); font-weight: 600; color: var(--accent); line-height: 1; min-width: 30px; }
.step__title { font-size: calc((1.18rem) * var(--block-fscale, 1)); font-weight: 700; margin: 0 0 6px; }
.step__body { font-size: calc((0.96rem) * var(--block-fscale, 1)); color: var(--muted); margin: 0 0 12px; }
.step__cta { font-weight: 600; color: var(--accent); display: inline-flex; gap: 6px; }
.step__cta::after { content: "→"; transition: transform .25s var(--ease); }
.step:hover .step__cta::after { transform: translateX(4px); }

/* ---------------- WATCH ---------------- */
.watch { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(32px, 6vw, 72px); align-items: center; }
.watch__links { display: flex; gap: 12px; margin-top: 26px; flex-wrap: wrap; }
.watch__player { width: 100%; display: flex; justify-content: center; }
.watch__frame { width: 100%; aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); background: #000; }
.watch__frame--vertical { width: min(100%, 420px); aspect-ratio: 9/16; }
.watch__frame--portrait { width: min(100%, 520px); aspect-ratio: 4/5; }
.watch__frame--square { width: min(100%, 620px); aspect-ratio: 1/1; }
.watch__frame--horizontal { aspect-ratio: 16/9; }
.watch__frame iframe, .watch__frame video, .watch__frame > div { width: 100%; height: 100%; border: 0; }
.watch__frame video { object-fit: contain; background: #000; }
.watch__placeholder { width:100%; height:100%; display:grid; place-items:center; background:linear-gradient(135deg,#222,#000); color:#fff; gap:10px; }
.watch__placeholder svg { width: 64px; height: 64px; opacity: .85; }
.media-link { display: inline-flex; align-items: center; gap: 9px; min-height: 42px; padding: 9px 14px; border-radius: var(--radius-pill); border: 1px solid var(--line); background: #fff; color: var(--ink); font-size: .9rem; font-weight: 700; transition: transform .2s var(--ease), border-color .2s, background .2s; }
.media-link:hover { transform: translateY(-2px); border-color: rgba(50,116,216,.28); background: #f7faff; }
.media-link__icon { width: 22px; height: 22px; display: grid; place-items: center; color: var(--accent); }
.media-link__icon svg { width: 20px; height: 20px; display: block; }

/* ---------------- APP EMBEDS ---------------- */
.appembed { width: 100%; display: grid; gap: 24px; }
.appembed__head { max-width: 760px; }
.appembed__head .kicker { margin-bottom: 10px; }
.appembed__head .lead,
.appembed__head [class^="ty-body"],
.appembed__head .ty-intro-copy,
.appembed__head .ty-muted-copy { margin-top: 12px; }
.appembed__frame { width: 100%; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.appembed__frame iframe { width: 100%; height: 100%; border: 0; display: block; background: #fff; }
.appembed__frame--raw { min-height: 320px; }
.appembed__raw { min-height: inherit; }
.appembed__empty { border: 1px dashed var(--line); border-radius: var(--radius-lg); padding: 28px; color: var(--muted); background: var(--off-white); text-align: center; }
.appembed__linkcard { display: block; padding: 24px; border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-sm); color: var(--ink); transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); }
.appembed__linkcard span { display: block; font-weight: 800; font-size: 1.1rem; }
.appembed__linkcard small { display: block; color: var(--muted); margin-top: 4px; }
.appembed__linkcard:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: rgba(50,116,216,.22); }

/* ---------------- FOOTER ---------------- */
.footer { background: var(--near-black); color: var(--light-text); padding: clamp(56px, 8vw, 90px) 0 36px; }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1.6fr 1fr; gap: 48px; }
.footer__logo { height: var(--footer-logo-height, 30px); width: auto; margin-bottom: 18px; }
.footer__blurb { color: rgba(251,251,251,0.7); max-width: 34ch; font-size: 0.95rem; }
.footer__socials { display: flex; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.footer__socials .social { --social-bg: rgba(255,255,255,.08); --social-fg: #fff; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 13px; border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius-pill); background: var(--social-bg); color: var(--social-fg); font-size: 0.85rem; font-weight: 700; transition: transform .25s var(--ease), background .25s, border-color .25s; }
.footer__socials .social:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.36); background: var(--accent); }
.social__icon { width: 18px; height: 18px; display: grid; place-items: center; flex: 0 0 auto; }
.social__icon svg { width: 17px; height: 17px; display: block; }
.footer__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.footer__h { font-size: 0.78rem; text-transform: uppercase; letter-spacing: .14em; color: rgba(251,251,251,0.5); margin: 0 0 16px; }
.footer__cols ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 11px; }
.footer__cols a { color: rgba(251,251,251,0.82); font-size: 0.95rem; }
.footer__cols a:hover { color: #fff; }
.footer__contact p { margin: 0 0 8px; color: rgba(251,251,251,0.82); font-size: 0.95rem; }
.footer__memberlink { display: inline-block; margin-top: 14px; font-weight: 600; color: var(--accent-light); }
.footer__base { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line-dark); display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.footer__ack { color: rgba(251,251,251,0.5); font-size: 0.82rem; max-width: 60ch; margin: 0; }
.footer__copy { color: rgba(251,251,251,0.5); font-size: 0.82rem; margin: 0; }
.footer__signin { margin-left: 14px; opacity: .7; font-size: .82rem; text-decoration: underline; text-underline-offset: 3px; color: inherit; }
.footer__signin:hover { opacity: 1; }

/* ---------------- SCROLL REVEAL ---------------- */
.reveal {
  --reveal-dur: 800ms;
  --reveal-distance: 28px;
  --reveal-blur: 0px;
  opacity: 0;
  transform: translate3d(0, var(--reveal-distance), 0);
  filter: blur(var(--reveal-blur));
  clip-path: inset(0);
  transition:
    opacity var(--reveal-dur) var(--ease),
    transform var(--reveal-dur) var(--ease),
    filter var(--reveal-dur) var(--ease),
    clip-path var(--reveal-dur) var(--ease);
  will-change: opacity, transform, filter, clip-path;
}
.reveal-dir-down { transform: translate3d(0, calc(var(--reveal-distance) * -1), 0); }
.reveal-dir-left { transform: translate3d(var(--reveal-distance), 0, 0); }
.reveal-dir-right { transform: translate3d(calc(var(--reveal-distance) * -1), 0, 0); }
.reveal--fade { transform: none; }
.reveal--blur { --reveal-blur: 14px; }
.reveal--scale { transform: scale(.965); }
.reveal--clip { transform: none; clip-path: inset(0 0 100% 0); }
.reveal--clip.reveal-dir-down { clip-path: inset(100% 0 0 0); }
.reveal--clip.reveal-dir-left { clip-path: inset(0 100% 0 0); }
.reveal--clip.reveal-dir-right { clip-path: inset(0 0 0 100%); }
.reveal--none,
.reveal.is-visible {
  opacity: 1;
  transform: none;
  filter: blur(0);
  clip-path: inset(0);
}
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none; }
  .hero__title .ln > span { transform: none; animation: none; }
  .hero__bg img { animation: none; }
  .marquee__track { animation: none; }
}

/* ---------------- MENU SHEET ---------------- */
.mobilemenu { position: fixed; inset: 0; z-index: 99; background: rgba(15,16,18,0.48); backdrop-filter: blur(10px); display: grid; place-items: start end; padding: var(--nav-mobile-top, 86px) var(--nav-gutter) 24px; }
.mobilemenu[hidden] { display: none; }
.mobilemenu__links { width: min(380px, calc(100vw - 32px)); display: flex; flex-direction: column; gap: var(--nav-mobile-panel-gap, 8px); text-align: left; padding: 14px; border-radius: 24px; background: rgba(255,255,255,.96); color: var(--ink); border: 1px solid rgba(255,255,255,.6); box-shadow: 0 24px 80px rgba(0,0,0,.24); }
.mobilemenu__nav { display: flex; flex-direction: column; gap: var(--nav-mobile-gap, 2px); padding: 6px 0; }
.mobilemenu__links a { color: var(--ink); font-family: var(--font-body); font-size: var(--nav-mobile-font, 1.02rem); font-weight: 700; padding: var(--nav-mobile-pad-y, 12px) 12px; border-radius: 14px; }
.mobilemenu__links a.mobilemenu__sub { margin-left: 14px; padding: var(--nav-mobile-sub-pad-y, 9px) 12px; font-size: var(--nav-mobile-sub-font, .92rem); font-weight: 500; color: var(--muted); }
.mobilemenu__links a:hover { background: #f3f6fb; }
.mobilemenu__account { display: flex !important; align-items: center; gap: 12px; padding: 12px !important; border-radius: 18px !important; background: #f5f7fb; border: 1px solid var(--line); }
.mobilemenu__account span:last-child { display: grid; gap: 2px; min-width: 0; }
.mobilemenu__account b { display: block; font-size: .98rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobilemenu__account small { display: block; color: var(--muted); font-size: .78rem; font-weight: 700; line-height: 1.25; }
.mobilemenu__avatar { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto; background: var(--accent); color: #fff; font-size: .82rem; font-weight: 900; letter-spacing: .02em; }
.mobilemenu__avatar svg { width: 19px; height: 19px; }
.mobilemenu__account.is-out .mobilemenu__avatar { background: var(--ink); }
.mobilemenu__links a.is-cta { margin-top: 4px; text-align: center; background: var(--accent); color: #fff; box-shadow: 0 8px 22px rgba(50,116,216,.26); }
body.menu-open { overflow: hidden; }
.menu-open .nav__burger-lines span:nth-child(1) { transform: translateY(calc(7px * var(--nav-burger-scale, 1))) rotate(45deg); }
.menu-open .nav__burger-lines span:nth-child(2) { opacity: 0; }
.menu-open .nav__burger-lines span:nth-child(3) { transform: translateY(calc(-7px * var(--nav-burger-scale, 1))) rotate(-45deg); }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width: 980px) {
  .welcome, .watch { grid-template-columns: 1fr; }
  .visit__grid { grid-template-columns: repeat(2, 1fr); }
  .events { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; gap: 36px; }
  .bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; }
  .btile.size-lg { grid-column: span 2; grid-row: span 1; }
}
@media (max-width: 820px) {
  .journey {
    padding: 0;
    min-height: 100svh;
    --journey-card: 100%;
  }
  .journey__ambient {
    opacity: .16;
  }
  .journey__shade {
    background: #000;
    opacity: var(--journey-image-tint);
  }
  .journey__topline {
    top: 98px;
    padding: 0 24px;
    font-size: .68rem;
    line-height: 1.45;
  }
  .journey__rail {
    width: 100%;
    min-height: 100svh;
    display: flex;
    gap: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding: 0;
    padding: 0;
    -webkit-overflow-scrolling: touch;
  }
  .journey__rail::-webkit-scrollbar { display: none; }
  .journey__panel,
  .journey__panel--side {
    flex: 0 0 100%;
    min-height: 100svh;
    --journey-scale: .88;
    --journey-opacity: .68;
    scroll-snap-align: center;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    padding: 132px 22px 92px;
  }
  .journey__panel.is-active {
    --journey-scale: 1;
    --journey-opacity: 1;
    border: 0;
    box-shadow: none;
  }
  .journey__copy {
    width: min(92%, 520px);
    max-width: min(92%, 520px);
    padding: 0;
    border-radius: 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
    text-shadow: none;
  }
  .journey__title {
    font-size: calc(var(--fs-display) * var(--display-scale, 1));
  }
  .journey__body {
    font-size: 1rem;
    line-height: 1.55;
  }
  .journey__ctas .btn {
    flex: 1 1 100%;
    justify-content: center;
  }
  .journey__directions {
    margin-top: 28px;
    font-size: .64rem;
  }
  .journey__controls {
    display: flex;
    bottom: 18px;
  }
}
@media (max-width: 760px) {
  .nav__links, .nav__login { display: none; }
  .nav__burger { display: flex; }
  /* An explicit phone height wins; otherwise cap the desktop height, because a logo sized for
     a 1280px header (e.g. 55px tall ≈ 150px wide) does not fit beside the CTA + burger on a 375px screen. */
  .nav__logo { height: var(--nav-mobile-logo-height, min(var(--nav-logo-height, 30px), 38px)); }
  .nav__brand { transform: translate(var(--nav-mobile-logo-offset-x, 0px), var(--nav-mobile-logo-offset-y, 0px)); }
  .nav__actions { transform: translate(var(--nav-mobile-action-offset-x, 0px), var(--nav-mobile-action-offset-y, 0px)); }
  .section__head--row { flex-direction: column; align-items: flex-start; }
  .events { grid-template-columns: 1fr; }
  .visit__grid { grid-template-columns: 1fr; }
  .footer__base { flex-direction: column; }
}
@media (max-width: 480px) {
  .bento { grid-template-columns: 1fr; }
  .btile.size-lg { grid-column: span 1; }
  .hero__ctas .btn { flex: 1 1 100%; justify-content: center; }
  .journey__script { font-size: 2.05rem; }
}

/* ============================================================================
   V2 — BLOCK LAYOUT (12-col bands) + font scaling
   ========================================================================== */
/* font-size knobs: --display-scale (global headings) + --block-fscale (per block) */
.display { font-size: calc(var(--fs-display) * var(--display-scale, 1)); }
.display-sm { font-size: calc(var(--fs-display-sm) * var(--display-scale, 1)); }
.lead, .richtext { font-size: var(--fs-body-lg); }
.richtext { color: var(--muted); line-height: 1.7; }
.richtext p { margin: 0 0 1em; }

.band { position: relative; }
.band--has-media { overflow: hidden; background: #111 !important; color: #fff; }
.band__media { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: #111; }
.band__media img,
.band__media video { width: 100%; height: 100%; object-fit: cover; }
.band__media video { position: absolute; inset: 0; }
.band__media iframe { position: absolute; top: 50%; left: 50%; width: max(100vw, 177.78vh); height: max(56.25vw, 100vh); transform: translate(-50%, -50%); border: 0; pointer-events: none; }
.band__media-tint { position: absolute; inset: 0; z-index: 1; background: #000; pointer-events: none; }
.band__inner { position: relative; z-index: 2; width: 100%; }
.band--has-media .lead,
.band--has-media .richtext,
.band--has-media .ty-body-large,
.band--has-media .ty-body-standard,
.band--has-media .ty-intro-copy,
.band--has-media .ty-muted-copy { color: rgba(255,255,255,.86); }
.band--has-media .kicker { color: var(--accent-light); }
.ty-heading-h1 { font-family: var(--font-display); font-size: clamp(3.4rem, 7vw, 4.75rem); font-weight: 600; line-height: .98; letter-spacing: 0; margin-bottom: 18px; }
.ty-heading-h2 { font-family: var(--font-display); font-size: clamp(2.4rem, 5vw, 3.25rem); font-weight: 600; line-height: 1.04; letter-spacing: 0; margin-bottom: 14px; }
.ty-heading-h3 { font-family: var(--font-body); font-size: clamp(1.7rem, 3vw, 2rem); font-weight: 700; line-height: 1.14; letter-spacing: 0; margin-bottom: 10px; }
.ty-subtitle { font-family: var(--font-body); font-size: clamp(1.15rem, 2.2vw, 1.45rem); font-weight: 500; line-height: 1.42; letter-spacing: 0; margin-bottom: 12px; }
.ty-body-text { font-family: var(--font-body); font-size: var(--fs-body); font-weight: 400; line-height: 1.62; letter-spacing: 0; margin-bottom: 12px; }
.ty-small-text { font-family: var(--font-body); font-size: var(--fs-body-sm); font-weight: 400; line-height: 1.48; letter-spacing: 0; margin-bottom: 8px; }
.band--grid > .wrap { width: 100%; }
.band--grid:has(.block:focus-within),
.band--grid:has(.block.aed-selected) { position: relative; z-index: 500; }
.band__childgrid { position: relative; z-index: 6; margin-top: clamp(22px, 4vw, 56px); }
.band__childgrid .canvas-grid { align-items: start; }
.band--bleed > .band__childgrid { padding-left: var(--gutter); padding-right: var(--gutter); }
.band:has(.band__childgrid .block:focus-within),
.band:has(.band__childgrid .block.aed-selected) { position: relative; z-index: 500; }
.band { --block-fscale: var(--base-block-fscale, 1); --band-bg-focal: var(--desktop-bg-focal, center); }
.canvas-grid { --aed-grid-lines: 12; --aed-grid-row: 12px; --aed-grid-overlay-row: 24px; position: relative; display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: var(--aed-grid-row); grid-auto-flow: row dense; column-gap: clamp(12px, 1.8vw, 28px); row-gap: 8px; align-items: start; align-content: start; }
.block { min-width: 0; }
.canvas-grid > .block { position: relative; z-index: 1; align-self: start; height: max-content; min-height: 0; align-content: start; overflow: visible; }
.canvas-grid > .block > :first-child { margin-top: 0; }
.canvas-grid > .block > :last-child { margin-bottom: 0; }
.canvas-grid > .block:hover,
.canvas-grid > .block:focus-within,
.canvas-grid > .block.aed-selected { z-index: 650; }
.canvas-grid > .block.aed-drop-left,
.canvas-grid > .block.aed-drop-right { z-index: 520; outline: 1.5px solid rgba(50,116,216,.4) !important; outline-offset: 4px; border-radius: 10px; }
.block-btnrow { width: 100%; }
.imgblock { margin: 0; }
.imgblock figcaption { color: var(--muted); font-size: .9rem; margin-top: 10px; }
.spacer { width: 100%; }
body.aed-edit:not(.aed-preview) .spacer { min-height: 8px; border-radius: 10px; background: repeating-linear-gradient(90deg, rgba(50,116,216,.12) 0, rgba(50,116,216,.12) 10px, transparent 10px, transparent 20px); box-shadow: inset 0 0 0 1px rgba(50,116,216,.22); }

.announcement { width: 100%; }
.announcement__inner { min-height: 58px; display: flex; align-items: center; justify-content: center; gap: 18px; padding-top: 12px; padding-bottom: 12px; }
.announcement__inner--left { justify-content: flex-start; }
.announcement__inner--right { justify-content: flex-end; }
.announcement__text { margin: 0; font-size: .98rem; font-weight: 750; line-height: 1.35; }
.announcement__cta { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 7px 13px; border-radius: var(--radius-pill); font-size: .82rem; font-weight: 800; white-space: nowrap; background: rgba(255,255,255,.16); color: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); }
.announcement__cta:hover { transform: translateY(-1px); background: rgba(255,255,255,.22); }
.announcement--accent { background: var(--accent); color: #fff; }
.announcement--dark { background: var(--near-black); color: #fff; }
.announcement--green { background: var(--green-bright); color: var(--near-black); }
.announcement--light { background: var(--off-white); color: var(--ink); }
.announcement--light .announcement__cta,
.announcement--green .announcement__cta { background: #fff; box-shadow: inset 0 0 0 1px var(--line); }

/* section-type layout the bleed/full bands need */
.band--type-hero { min-height: 100svh; display: flex; align-items: center; color: #fff; overflow: hidden; }
.band--type-give { padding-top: var(--section-y) !important; padding-bottom: var(--section-y) !important; overflow: hidden; color: var(--light-text); }
.band--type-footer { padding: var(--footer-pad-top, clamp(56px, 8vw, 90px)) 0 var(--footer-pad-bottom, 36px) !important; color: var(--footer-fg, var(--light-text)); }
/* NOTE: no grid-template-columns here — this unscoped rule used to beat the mobile 1fr collapse
   (media queries add no specificity), which is why the footer squished into 3 columns on phones. */
.band--type-footer .footer__grid { gap: var(--footer-gap, 48px); align-items: var(--footer-align, start); }
.band--type-footer .footer__blurb,
.band--type-footer .footer__cols a,
.band--type-footer .footer__contact p { color: color-mix(in srgb, var(--footer-fg, #fff) 78%, transparent); }
.band--type-footer .footer__h,
.band--type-footer .footer__ack,
.band--type-footer .footer__copy { color: color-mix(in srgb, var(--footer-fg, #fff) 52%, transparent); }

@media (max-width: 1100px) and (min-width: 761px) {
  .band { padding-top: var(--tablet-section-pad-top, var(--section-pad-top)) !important; padding-bottom: var(--tablet-section-pad-bottom, var(--section-pad-bottom)) !important; min-height: var(--tablet-section-min-height, var(--section-min-height)) !important; --block-fscale: var(--tablet-block-fscale, var(--base-block-fscale, 1)) !important; --band-bg-focal: var(--tablet-bg-focal, var(--desktop-bg-focal, center)); }
  .canvas-grid { --aed-grid-lines: 16; grid-template-columns: repeat(8, 1fr); }
  .canvas-grid > .block { --block-fscale: var(--tablet-block-fscale, var(--base-block-fscale, 1)) !important; }
  .canvas-grid > .block { grid-column: var(--tablet-grid-column, 1 / span 8) !important; order: var(--tablet-order, 0); }
  .hide-tablet { display: none !important; }
  .stack-buttons-tablet .hero__ctas,
  .stack-buttons-tablet .journey__ctas,
  .stack-buttons-tablet .journey__panelctas,
  .stack-buttons-tablet .give__ctas,
  .stack-buttons-tablet .newsletterblock__form,
  .stack-buttons-tablet .block-btnrow { display: grid !important; grid-template-columns: 1fr; align-items: stretch; justify-items: stretch; }
  .stack-buttons-tablet .btn { width: 100%; justify-content: center; }
}
@media (max-width: 760px) {
  .band { padding-top: var(--phone-section-pad-top, var(--tablet-section-pad-top, var(--section-pad-top))) !important; padding-bottom: var(--phone-section-pad-bottom, var(--tablet-section-pad-bottom, var(--section-pad-bottom))) !important; min-height: var(--phone-section-min-height, var(--tablet-section-min-height, var(--section-min-height))) !important; --block-fscale: var(--phone-block-fscale, var(--tablet-block-fscale, var(--base-block-fscale, 1))) !important; --band-bg-focal: var(--phone-bg-focal, var(--tablet-bg-focal, var(--desktop-bg-focal, center))); }
  .canvas-grid { --aed-grid-lines: 8; --aed-grid-row: 18px; grid-template-columns: repeat(4, 1fr); gap: 18px; }
  .canvas-grid > .block { --block-fscale: var(--phone-block-fscale, var(--tablet-block-fscale, var(--base-block-fscale, 1))) !important; }
  .canvas-grid > .block { grid-column: var(--phone-grid-column, 1 / span 4) !important; order: var(--phone-order, 0); }
  .hide-phone { display: none !important; }
  .stack-buttons-phone .hero__ctas,
  .stack-buttons-phone .journey__ctas,
  .stack-buttons-phone .journey__panelctas,
  .stack-buttons-phone .give__ctas,
  .stack-buttons-phone .newsletterblock__form,
  .stack-buttons-phone .block-btnrow { display: grid !important; grid-template-columns: 1fr; align-items: stretch; justify-items: stretch; }
  .stack-buttons-phone .btn { width: 100%; justify-content: center; }
}

/* live backend blocks */
.live-skel, .live-empty { color: var(--muted); font-size: 1rem; padding: 20px 0; grid-column: 1 / -1; }
.calwrap { width: 100%; }
.callist { list-style: none; margin: 0; padding: 0; }
.calrow { display: grid; grid-template-columns: 200px 1fr 1fr auto; gap: 18px; align-items: center; padding: 18px 4px; border-bottom: 1px solid var(--line); }
.calrow__date { font-weight: 700; color: var(--accent); }
.calrow__title { font-family: var(--font-display); font-size: calc((1.2rem) * var(--block-fscale, 1)); }
.calrow__loc { color: var(--muted); font-size: .92rem; }
.calrow__cta { font-weight: 600; color: var(--accent); white-space: nowrap; }
.formgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.fcard { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: var(--radius-lg); border: 1px solid var(--line); background: var(--surface, #fff); box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s; }
.fcard:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.fcard__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--accent); color: #fff; display: grid; place-items: center; }
.fcard__icon svg { width: 22px; height: 22px; }
.fcard__title { font-family: var(--font-display); font-size: calc((1.25rem) * var(--block-fscale, 1)); font-weight: 600; }
.fcard__desc { color: var(--muted); font-size: calc((.94rem) * var(--block-fscale, 1)); }
.fcard__go { font-weight: 600; color: var(--accent); margin-top: auto; }
@media (max-width: 760px) { .formgrid { grid-template-columns: 1fr; } .calrow { grid-template-columns: 1fr; gap: 4px; } }

/* Linktree-style page block */
.linktree { width: min(680px, 100%); margin: 0 auto; text-align: center; }
.linktree__avatar { width: 92px; height: 92px; object-fit: cover; border-radius: 50%; margin: 0 auto 18px; box-shadow: 0 12px 32px rgba(0,0,0,.12); background: transparent; }   /* no white plate behind the avatar — it ringed transparent-edged logos */
.linktree__script { margin: 0 0 4px; }
.linktree__title { margin: 0; }
.linktree__body { max-width: 44ch; margin: 12px auto 0; }
.linktree__list { display: grid; gap: 12px; margin-top: 30px; }
.linktree__button { --link-bg: #fff; --link-fg: var(--ink); --link-border: var(--line); --link-icon: currentColor; min-height: 58px; display: grid; grid-template-columns: 28px 1fr 24px; align-items: center; gap: 12px; padding: 13px 16px; border-radius: 16px; background: var(--link-bg); color: var(--link-fg); border: 1px solid var(--link-border); text-align: left; box-shadow: 0 10px 28px rgba(0,0,0,.06); transition: transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s; }
.linktree__button:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: rgba(50,116,216,.26); }
.linktree__button--solid { --link-bg: var(--accent); --link-border: var(--accent); --link-fg: #fff; --link-icon: #fff; }
.linktree__button--outline { --link-bg: transparent; --link-border: rgba(29,29,31,.22); }
.linktree__button--soft { --link-bg: #fff; --link-border: rgba(50,116,216,.12); color: var(--ink); }
.linktree__button--sm { min-height: 48px; grid-template-columns: 24px 1fr 20px; padding: 10px 13px; border-radius: 14px; font-size: .92rem; gap: 10px; }
.linktree__button--lg { min-height: 70px; grid-template-columns: 32px 1fr 24px; padding: 17px 18px; font-size: 1.08rem; }
.linktree__icon,
.linktree__go { color: var(--link-icon); display: grid; place-items: center; }
.linktree__icon svg,
.linktree__go svg { width: 20px; height: 20px; display: block; }
.linktree__go { opacity: .58; }

/* Flexible small blocks */
.newsletterblock { width: 100%; padding: 24px; border-radius: var(--radius-lg); border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow-sm); }
.newsletterblock--plain { padding: 0; border: 0; box-shadow: none; background: transparent; }
.newsletterblock--dark { background: var(--near-black); color: #fff; border-color: rgba(255,255,255,.12); }
.newsletterblock__title { margin: 0; }
.newsletterblock__body { margin: 8px 0 0; color: var(--muted); }
.newsletterblock--dark .newsletterblock__body { color: rgba(255,255,255,.72); }
.newsletterblock__form { display: flex; gap: 10px; margin-top: 18px; align-items: stretch; }
.newsletterblock__form .fld { min-height: 44px; margin: 0; flex: 1; }
.newsletterblock__form .btn { white-space: nowrap; }
.newsletterblock .formok { margin: 10px 0 0; grid-column: 1 / -1; color: var(--accent); font-size: .9rem; }
.sociallinks { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.sociallinks--center { justify-content: center; }
.sociallinks--right { justify-content: flex-end; }
.sociallinks__item { --social-link-bg: #fff; --social-link-fg: var(--ink); min-height: 42px; display: inline-flex; align-items: center; gap: 9px; padding: 9px 14px; border-radius: var(--radius-pill); border: 1px solid var(--line); background: var(--social-link-bg); color: var(--social-link-fg); font-weight: 700; font-size: .92rem; box-shadow: 0 8px 24px rgba(0,0,0,.05); transition: transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s; }
.sociallinks__item:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); border-color: rgba(50,116,216,.28); }
.sociallinks__item--circle { width: 46px; height: 46px; padding: 0; justify-content: center; border-radius: 50%; }
.sociallinks__item--circle span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.sociallinks__item--text { min-height: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.sociallinks__icon, .pagelink__icon, .summarycard__icon { display: grid; place-items: center; flex: 0 0 auto; }
.sociallinks__icon svg { width: 19px; height: 19px; }
.audioblock, .videoblock { width: 100%; display: grid; gap: 12px; }
.audioblock__title, .videoblock__title { margin: 0; font-size: calc((1.1rem) * var(--block-fscale, 1)); font-weight: 800; }
.audioblock__body { margin: 0; color: var(--muted); }
.audioblock__frame { width: 100%; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow-sm); }
.audioblock__frame iframe { width: 100%; height: 152px; border: 0; display: block; }
.audioblock__frame audio { width: 100%; display: block; padding: 18px; }
.audioblock__empty { min-height: 132px; display: grid; place-items: center; gap: 8px; color: var(--muted); background: var(--off-white); text-align: center; padding: 18px; }
.audioblock__empty svg { width: 36px; height: 36px; color: var(--accent); }
.videoblock .watch__frame { box-shadow: var(--shadow-sm); }
.accordionblock h3, .menulist h3 { margin: 0 0 14px; font-size: 1.2rem; }
.accordionblock .faqlist { margin: 0; max-width: none; }
.menulist { width: 100%; display: grid; gap: 0; }
.menulist__row { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ink); }
.menulist--cards { gap: 10px; }
.menulist--cards .menulist__row { padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-md); background: #fff; box-shadow: 0 8px 22px rgba(0,0,0,.04); }
.menulist--compact .menulist__row { padding: 9px 0; }
.menulist__row b { display: block; font-size: calc((1rem) * var(--block-fscale, 1)); }
.menulist__row small { display: block; margin-top: 3px; color: var(--muted); font-size: calc((.9rem) * var(--block-fscale, 1)); }
.menulist__row em { font-style: normal; color: var(--accent); font-weight: 800; white-space: nowrap; }
.codeembed { width: 100%; }
.pagelink { width: 100%; display: grid; grid-template-columns: 56px 1fr 24px; gap: 14px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-lg); color: var(--ink); background: #fff; box-shadow: var(--shadow-sm); transition: transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s; }
.pagelink:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: rgba(50,116,216,.26); }
.pagelink--minimal { padding: 0; border: 0; box-shadow: none; background: transparent; }
.pagelink--row { border-radius: var(--radius-md); box-shadow: none; }
.pagelink__media { width: 56px; height: 56px; border-radius: 14px; overflow: hidden; display: grid; place-items: center; background: var(--soft-blue); color: var(--accent); }
.pagelink__media img { width: 100%; height: 100%; object-fit: cover; }
.pagelink__icon svg, .pagelink__go svg { width: 22px; height: 22px; }
.pagelink__copy b { display: block; font-size: 1rem; }
.pagelink__copy small { display: block; color: var(--muted); margin-top: 3px; }
.pagelink__go { color: var(--accent); opacity: .75; }
.searchblock { width: 100%; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 10px; padding: 8px; border: 1px solid var(--line); border-radius: var(--radius-pill); background: #fff; box-shadow: var(--shadow-sm); }
.searchblock > span { color: var(--muted); display: grid; place-items: center; padding-left: 8px; }
.searchblock > span svg { width: 18px; height: 18px; }
.searchblock input { min-width: 0; border: 0; outline: 0; font: inherit; background: transparent; color: var(--ink); }
.lineblock { display: flex; width: 100%; padding: 8px 0; }
.lineblock--center { justify-content: center; }
.lineblock--right { justify-content: flex-end; }
.lineblock span { display: block; border-radius: 999px; }
.lineblock--vertical { padding: 0; }
.iconblock { display: flex; width: 100%; padding: 8px 0; }
.iconblock--center { justify-content: center; }
.iconblock--right { justify-content: flex-end; }
.iconblock__icon { display: inline-grid; place-items: center; flex: 0 0 auto; }
.iconblock__icon svg { width: 100%; height: 100%; display: block; }
.shapeblock { display: flex; width: 100%; min-height: 28px; }
.shapeblock--center { justify-content: center; }
.shapeblock--right { justify-content: flex-end; }
.shapeblock__shape { display: block; }
.shapeblock__shape--circle { border-radius: 50%; }
.shapeblock__shape--square { border-radius: 10px; }
.shapeblock__shape--pill { border-radius: 999px; height: calc(var(--shape-h, 1) * 48px); }
.shapeblock__shape--organic { border-radius: 42% 58% 64% 36% / 46% 42% 58% 54%; }
.summarycards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; width: 100%; }
.summarycards--one { grid-template-columns: 1fr; }
.summarycards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.summarycards--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.summarycard { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.summarycard__image { aspect-ratio: 16/10; overflow: hidden; }
.summarycard__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.summarycard__icon { width: 48px; height: 48px; margin: 18px 18px 0; border-radius: 14px; background: var(--soft-blue); color: var(--accent); }
.summarycard__icon svg { width: 23px; height: 23px; }
.summarycard__body { padding: 18px; }
.summarycard__body h3 { margin: 0; font-size: var(--fs-body); }
.summarycard__body p { margin: 7px 0 0; color: var(--muted); font-size: calc((.94rem) * var(--block-fscale, 1)); }
.summarycard__body a { display: inline-flex; margin-top: 12px; color: var(--accent); font-weight: 800; font-size: .9rem; }
@media (max-width: 760px) {
  .newsletterblock__form, .searchblock { grid-template-columns: 1fr; border-radius: var(--radius-lg); }
  .newsletterblock__form { display: grid; }
  .searchblock > span { display: none; }
  .summarycards--two, .summarycards--three { grid-template-columns: 1fr; }
}

/* ============================================================================
   VISUAL BUILDER CHROME
   ========================================================================== */
.aed-fab { position: fixed; right: 22px; bottom: 22px; z-index: 360; width: 58px; height: 58px; border-radius: 50%; border: 0; background: var(--accent); color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.28); display: grid; place-items: center; transition: transform .25s; }
.aed-fab:hover { transform: scale(1.06); }
.aed-fab svg { width: 24px; height: 24px; }

body.aed-edit #app { margin-left: 360px; padding-top: 56px; transition: margin .25s var(--ease), width .25s var(--ease), padding .25s var(--ease); }
/* EDIT mode: the header sits IN the page flow (its own strip above the first section) so it can
   never float over hero content and steal clicks — that made empty heroes "uneditable".
   Preview restores the real fixed transparent-over-hero behaviour (rule further down). */
body.aed-edit:not(.aed-preview) .nav { position: relative; top: auto; background: var(--nav-edit-bg, #17181c); box-shadow: none; }
body.aed-edit.aed-preview .nav { position: fixed; top: 56px; background: var(--nav-bg, transparent); box-shadow: none; }
body.aed-edit .nav .nav__logo { filter: brightness(0) invert(1); }
body.aed-edit .nav .nav__links a,
body.aed-edit .nav .nav__login { color: var(--nav-text, #fff); }
body.aed-edit .nav.is-solid { background: var(--nav-solid-bg, rgba(255,255,255,0.82)); box-shadow: 0 1px 0 var(--line); }
body.aed-edit .nav.is-solid .nav__logo { filter: none; }
body.aed-edit .nav.is-solid .nav__links a,
body.aed-edit .nav.is-solid .nav__login { color: var(--nav-solid-text, var(--ink)); }
body.aed-edit:not(.aed-preview) .nav {
  left: 360px;
  right: 0;
  width: auto;
  top: 56px;
  background: var(--nav-edit-bg, transparent) !important;
  box-shadow: var(--nav-edit-shadow, none);
  backdrop-filter: saturate(180%) blur(18px);
}
body.aed-edit:not(.aed-preview) .nav .nav__links a,
body.aed-edit:not(.aed-preview) .nav .nav__login,
body.aed-edit:not(.aed-preview) .nav .nav__burger {
  color: var(--nav-edit-text, var(--nav-text, #fff)) !important;
}
body.aed-edit .band--type-hero { min-height: 70svh; }
body.aed-edit.aed-vp-tablet,
body.aed-edit.aed-vp-phone { background: #e8e8ed; }
/* device previews override the vw-based gutter so the simulated frame shows the REAL per-device
   side padding (vw reads the desktop window, not the 390/820px frame, which made mobile look too narrow) */
/* desktop EDIT view always shows the true 12-col desktop layout, even in a narrow window (the real
   tablet/phone media queries would otherwise force 8/4-col + tablet spans over the editing surface) */
body.aed-edit:not(.aed-preview).aed-vp-desktop #site-main .canvas-grid { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
body.aed-edit:not(.aed-preview).aed-vp-desktop #site-main .canvas-grid > .block { grid-column: var(--desktop-grid-column, auto) !important; order: 0 !important; --block-fscale: var(--base-block-fscale, 1) !important; }
body.aed-edit.aed-vp-tablet { --aed-vp-width: 820px; --aed-frame-width: min(var(--aed-vp-width), calc(100vw - 408px)); --gutter: var(--gutter-tablet, var(--gutter-base, 40px)); }
body.aed-edit.aed-vp-phone { --aed-vp-width: 390px; --aed-frame-width: min(var(--aed-vp-width), calc(100vw - 408px)); --gutter: var(--gutter-phone, var(--gutter-tablet, var(--gutter-base, 20px))); }
body.aed-edit.aed-preview.aed-vp-tablet,
body.aed-edit.aed-preview.aed-vp-phone { --aed-frame-width: min(var(--aed-vp-width), calc(100vw - 48px)); }
body.aed-edit.aed-vp-tablet #app,
body.aed-edit.aed-vp-phone #app { position: relative; width: var(--aed-frame-width); margin-left: calc(360px + max(24px, (100vw - 360px - var(--aed-frame-width)) / 2)); margin-right: auto; padding-top: 0; min-height: 100vh; background: #fff; box-shadow: 0 20px 70px rgba(0,0,0,.22); overflow: hidden; }
body.aed-edit.aed-vp-phone #app { border-radius: 30px; margin-top: 72px; margin-bottom: 36px; min-height: 844px; }
body.aed-edit.aed-vp-tablet #app { border-radius: 24px; margin-top: 72px; margin-bottom: 36px; min-height: 1080px; }
body.aed-edit.aed-preview .aed-side { transform: translateX(-100%); }
body.aed-edit.aed-preview .aed-editbar { left: 0; }
body.aed-edit.aed-preview.aed-vp-desktop #app { margin-left: 0; width: 100%; padding-top: 56px; background: transparent; box-shadow: none; overflow: visible; }
body.aed-edit.aed-preview.aed-vp-tablet #app,
body.aed-edit.aed-preview.aed-vp-phone #app { margin-left: max(24px, calc((100vw - var(--aed-frame-width)) / 2)); }
body.aed-edit.aed-preview [data-block-id] { outline: none !important; }
body.aed-edit.aed-preview .aed-ctrls,
body.aed-edit.aed-preview .aed-resize,
body.aed-edit.aed-preview .aed-spacer-resize,
body.aed-edit.aed-preview .img-edit-tools,
body.aed-edit.aed-preview .img-edit-badge,
body.aed-edit.aed-preview .aed-richdock,
body.aed-edit.aed-preview .aed-seltool { display: none !important; }
body.aed-edit.aed-preview .nav {
  position: fixed;
  top: 56px;
  background: var(--nav-bg, transparent);
  box-shadow: none;
}
body.aed-edit.aed-preview .nav .nav__logo { filter: brightness(0) invert(1); }
body.aed-edit.aed-preview .nav .nav__links a,
body.aed-edit.aed-preview .nav .nav__login { color: var(--nav-text, #fff); }
body.aed-edit.aed-preview .nav.is-solid {
  background: var(--nav-solid-bg, rgba(255,255,255,0.82));
  box-shadow: 0 1px 0 var(--line);
}
body.aed-edit.aed-preview .nav.is-solid .nav__logo { filter: none; }
body.aed-edit.aed-preview .nav.is-solid .nav__links a,
body.aed-edit.aed-preview .nav.is-solid .nav__login { color: var(--nav-solid-text, var(--ink)); }
body.aed-edit.aed-preview.aed-vp-tablet #app,
body.aed-edit.aed-preview.aed-vp-phone #app { position: relative; }
body.aed-edit.aed-preview.aed-vp-tablet .nav,
body.aed-edit.aed-preview.aed-vp-phone .nav {
  position: absolute;
  inset: 0 0 auto 0;
  top: 0;
}
body.aed-edit.aed-vp-tablet .nav,
body.aed-edit.aed-vp-phone .nav {
  position: absolute;
  inset: 0 0 auto 0;
  top: 0;
}
body.aed-edit.aed-vp-tablet:not(.aed-preview) .nav,
body.aed-edit.aed-vp-phone:not(.aed-preview) .nav {
  left: 0;
  right: 0;
  width: 100%;
}
body.aed-edit.aed-preview .band--type-journey,
body.aed-edit.aed-preview .journey { min-height: 100svh; }
body.aed-edit.aed-preview .journey { padding: 0; }
body.aed-edit.aed-preview .journey__backdrop { opacity: 1; }
body.aed-edit.aed-preview .journey__shade { background: #000; }
body.aed-edit.aed-preview .journey__topline {
  position: absolute;
  top: clamp(92px, 9vw, 116px);
  margin-bottom: 0;
}
body.aed-edit.aed-preview .journey__rail {
  display: flex;
  grid-template-columns: none;
  max-width: none;
  min-height: 100svh;
  overflow-x: auto;
  overflow-y: visible;
  padding: 0;
}
body.aed-edit.aed-preview .journey__panel,
body.aed-edit.aed-preview .journey__panel--side {
  flex: 0 0 var(--journey-card);
  min-height: 100svh;
  cursor: pointer;
  padding: clamp(118px, 12vw, 148px) var(--gutter) clamp(76px, 8vw, 104px);
}
body.aed-edit.aed-preview .journey__copy {
  transform: scale(var(--journey-scale));
  opacity: var(--journey-opacity);
}
body.aed-edit.aed-preview .journey__panel--clone { display: grid; }
body.aed-edit.aed-preview .journey__controls { display: flex; }
body.aed-edit.aed-vp-tablet .welcome,
body.aed-edit.aed-vp-tablet .watch { grid-template-columns: 1fr; }
body.aed-edit.aed-vp-tablet .events { grid-template-columns: 1fr 1fr; }
body.aed-edit.aed-vp-tablet .band { padding-top: var(--tablet-section-pad-top, var(--section-pad-top)) !important; padding-bottom: var(--tablet-section-pad-bottom, var(--section-pad-bottom)) !important; min-height: var(--tablet-section-min-height, var(--section-min-height)) !important; --block-fscale: var(--tablet-block-fscale, var(--base-block-fscale, 1)) !important; --band-bg-focal: var(--tablet-bg-focal, var(--desktop-bg-focal, center)); }
body.aed-edit.aed-vp-tablet .canvas-grid { --aed-grid-lines: 8; grid-template-columns: repeat(8, 1fr); }
body.aed-edit.aed-vp-tablet .canvas-grid > .block { --block-fscale: var(--tablet-block-fscale, var(--base-block-fscale, 1)) !important; grid-column: var(--tablet-grid-column, 1 / span 8) !important; order: var(--tablet-order, 0); }
body.aed-edit.aed-vp-tablet .hide-tablet { display: none !important; }
body.aed-edit.aed-vp-tablet .stack-buttons-tablet .hero__ctas,
body.aed-edit.aed-vp-tablet .stack-buttons-tablet .journey__ctas,
body.aed-edit.aed-vp-tablet .stack-buttons-tablet .journey__panelctas,
body.aed-edit.aed-vp-tablet .stack-buttons-tablet .give__ctas,
body.aed-edit.aed-vp-tablet .stack-buttons-tablet .newsletterblock__form,
body.aed-edit.aed-vp-tablet .stack-buttons-tablet .block-btnrow { display: grid !important; grid-template-columns: 1fr; align-items: stretch; justify-items: stretch; }
body.aed-edit.aed-vp-tablet .stack-buttons-tablet .btn { width: 100%; justify-content: center; }
body.aed-edit.aed-vp-phone .nav__links,
body.aed-edit.aed-vp-phone .nav__cta { display: none; }
body.aed-edit.aed-vp-phone .nav__burger { display: inline-flex; }
body.aed-edit.aed-vp-phone .nav__logo { height: var(--nav-mobile-logo-height, var(--nav-logo-height, 30px)); }
body.aed-edit.aed-vp-phone .nav__brand { transform: translate(var(--nav-mobile-logo-offset-x, 0px), var(--nav-mobile-logo-offset-y, 0px)); }
body.aed-edit.aed-vp-phone .nav__actions { transform: translate(var(--nav-mobile-action-offset-x, 0px), var(--nav-mobile-action-offset-y, 0px)); }
/* opening the mobile dropdown in the builder clips it into the #app phone frame instead of covering the editor */
body.aed-edit.aed-vp-phone:not(.aed-preview).menu-open #mobilemenu {
  position: fixed; inset: auto;
  top: 72px; height: min(844px, calc(100vh - 108px));
  left: calc(360px + max(24px, (100vw - 360px - var(--aed-frame-width)) / 2));
  width: var(--aed-frame-width);
  border-radius: 30px; overflow: hidden;
}
body.aed-edit.aed-preview.aed-vp-phone.menu-open #mobilemenu {
  position: fixed; inset: auto;
  top: 72px; height: min(844px, calc(100vh - 108px));
  left: max(24px, calc((100vw - var(--aed-frame-width)) / 2));
  width: var(--aed-frame-width);
  border-radius: 30px; overflow: hidden;
}
body.aed-edit.aed-vp-phone .band { padding-top: var(--phone-section-pad-top, var(--tablet-section-pad-top, var(--section-pad-top))) !important; padding-bottom: var(--phone-section-pad-bottom, var(--tablet-section-pad-bottom, var(--section-pad-bottom))) !important; min-height: var(--phone-section-min-height, var(--tablet-section-min-height, var(--section-min-height))) !important; --block-fscale: var(--phone-block-fscale, var(--tablet-block-fscale, var(--base-block-fscale, 1))) !important; --band-bg-focal: var(--phone-bg-focal, var(--tablet-bg-focal, var(--desktop-bg-focal, center))); }
body.aed-edit.aed-vp-phone .canvas-grid { --aed-grid-lines: 4; --aed-grid-row: 18px; grid-template-columns: repeat(4, 1fr); gap: 18px; }
body.aed-edit.aed-vp-phone .canvas-grid > .block { --block-fscale: var(--phone-block-fscale, var(--tablet-block-fscale, var(--base-block-fscale, 1))) !important; grid-column: var(--phone-grid-column, 1 / span 4) !important; order: var(--phone-order, 0); }
body.aed-edit.aed-vp-phone .hide-phone { display: none !important; }
body.aed-edit.aed-vp-phone .stack-buttons-phone .hero__ctas,
body.aed-edit.aed-vp-phone .stack-buttons-phone .journey__ctas,
body.aed-edit.aed-vp-phone .stack-buttons-phone .journey__panelctas,
body.aed-edit.aed-vp-phone .stack-buttons-phone .give__ctas,
body.aed-edit.aed-vp-phone .stack-buttons-phone .newsletterblock__form,
body.aed-edit.aed-vp-phone .stack-buttons-phone .block-btnrow { display: grid !important; grid-template-columns: 1fr; align-items: stretch; justify-items: stretch; }
body.aed-edit.aed-vp-phone .stack-buttons-phone .btn { width: 100%; justify-content: center; }
body.aed-edit.aed-vp-phone .events,
body.aed-edit.aed-vp-phone .formgrid,
body.aed-edit.aed-vp-phone .steps,
body.aed-edit.aed-vp-phone .watch { grid-template-columns: 1fr; }
body.aed-edit.aed-vp-phone .bento { grid-template-columns: 1fr; grid-auto-rows: 240px; }
body.aed-edit.aed-vp-phone .btile.size-lg { grid-column: auto; grid-row: auto; }
body.aed-edit.aed-vp-phone .announcement__inner { flex-direction: column; align-items: stretch; text-align: center; }
body.aed-edit.aed-vp-phone .announcement__cta { width: 100%; }
body.aed-edit.aed-vp-phone .section__head--row,
body.aed-edit.aed-vp-phone .footer__base { flex-direction: column; align-items: flex-start; }
body.aed-edit.aed-vp-phone .visit__grid { grid-template-columns: 1fr; }
body.aed-edit.aed-vp-phone .hero__ctas .btn { flex: 1 1 100%; justify-content: center; }
body.aed-edit.aed-vp-phone .journey__topline {
  top: 98px;
  padding: 0 24px;
  font-size: .68rem;
  line-height: 1.45;
}
body.aed-edit.aed-vp-phone .journey__panel,
body.aed-edit.aed-vp-phone .journey__panel--side {
  flex: 0 0 100%;
  min-height: 100svh;
  --journey-scale: .88;
  --journey-opacity: .68;
  scroll-snap-align: center;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  padding: 132px 22px 92px;
}
body.aed-edit.aed-vp-phone .journey__copy {
  width: min(92%, 520px);
  max-width: min(92%, 520px);
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-shadow: none;
}
body.aed-edit.aed-vp-phone .journey__body { font-size: 1rem; line-height: 1.55; }
body.aed-edit.aed-vp-phone .journey__ctas .btn { flex: 1 1 100%; justify-content: center; }
body.aed-edit.aed-vp-phone .journey__directions { margin-top: 28px; font-size: .64rem; }
body.aed-edit.aed-vp-phone .journey__controls { display: flex; bottom: 18px; }

.aed-side { position: fixed; left: 0; top: 0; bottom: 0; width: 360px; background: #f5f5f7; color: #1d1d1f; z-index: 600; display: flex; flex-direction: column; transform: translateX(-100%); transition: transform .3s var(--ease); font-family: var(--font-body); border-right: 1px solid rgba(0,0,0,.08); box-shadow: 18px 0 60px rgba(0,0,0,.16); }
body.aed-edit .aed-side { transform: none; }
body.aed-edit:not(.aed-preview) .aed-side { transform: translateX(0) !important; transition: none !important; }
.aed-side__head { padding: 18px 18px 12px; border-bottom: 1px solid rgba(0,0,0,.07); display: flex; align-items: center; gap: 10px; background: rgba(255,255,255,.72); backdrop-filter: blur(18px); }
.aed-side__head b { display: block; font-size: 1.02rem; line-height: 1.1; }
.aed-side__head span { display: block; color: #6E6E73; font-size: .78rem; margin-top: 3px; }
.aed-side__head .aed-x { margin-left: auto; background: #e8e8ed; border: 0; color: #1d1d1f; width: 32px; height: 32px; border-radius: 50%; }
.aed-tabs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; padding: 10px 12px; border-bottom: 1px solid rgba(0,0,0,.07); background: rgba(255,255,255,.55); }
.aed-tab { min-width: 0; background: transparent; border: 0; color: #6E6E73; font-weight: 700; font-size: .78rem; padding: 9px 4px; border-radius: 999px; }
.aed-tab.is-on { background: #1d1d1f; color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.14); }
.aed-panels { flex: 1; min-height: 0; position: relative; }
.aed-panel { position: absolute; inset: 0; overflow-y: auto; padding: 16px; display: none; }
.aed-panel.is-on { display: block; }
.aed-panel h4 { margin: 20px 0 8px; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: #86868b; }
.aed-panel h4:first-child { margin-top: 0; }
.aed-row { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
.aed-row label { font-size: .82rem; color: #6E6E73; flex: 1; }
.aed-input, .aed-select { width: 100%; background: #fff; border: 1px solid #d8d8df; color: #1d1d1f; border-radius: 10px; padding: 9px 11px; font: inherit; font-size: .86rem; }
.aed-list-item { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; padding: 10px; margin-bottom: 8px; }
.aed-mini { margin: 8px 0; border: 1px solid rgba(0,0,0,.07); border-radius: 12px; background: #f7f7f9; overflow: hidden; }
.aed-mini summary { cursor: pointer; list-style: none; padding: 9px 10px; font-size: .8rem; font-weight: 500; color: #515154; }
.aed-mini summary::-webkit-details-marker { display: none; }
.aed-subitems { display: grid; gap: 8px; padding: 0 10px 10px; }
.aed-subitem { display: grid; gap: 7px; padding: 8px; border-radius: 10px; background: #fff; border: 1px solid rgba(0,0,0,.06); }
.aed-navtree { display: grid; gap: 8px; margin: 10px 0 10px; }
.aed-navitem { border: 1px solid rgba(0,0,0,.08); border-radius: 14px; background: #fff; overflow: hidden; }
.aed-navitem summary { list-style: none; cursor: pointer; min-height: 48px; padding: 10px 12px 10px calc(12px + var(--nav-depth, 0px)); display: grid; grid-template-columns: 1fr; gap: 2px; color: #1d1d1f; }
.aed-navitem summary::-webkit-details-marker { display: none; }
.aed-navitem summary span { font-size: .94rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aed-navitem summary small { color: #86868b; font-size: .7rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aed-navitem__body { padding: 0 10px 10px; display: grid; gap: 8px; }
.aed-navitem__children { display: grid; gap: 8px; padding-left: 10px; border-left: 2px solid rgba(50,116,216,.16); }
.aed-row--buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.aed-row--buttons .aed-btn2 { width: 100%; }
.aed-sitegroup { margin-top: 12px; }
.aed-btn2 { background: #fff; color: #1d1d1f; border: 1px solid rgba(0,0,0,.09); border-radius: 10px; padding: 8px 12px; font-weight: 500; font-size: .82rem; cursor: pointer; box-shadow: 0 1px 0 rgba(0,0,0,.03); }
.aed-btn2:hover { background: #eef4ff; border-color: rgba(50,116,216,.24); }
.aed-btn2:disabled { opacity: .42; cursor: not-allowed; }
.aed-btn2:disabled:hover { background: #fff; }
.aed-btn2--full { width: 100%; }
.aed-btn2--go { background: var(--accent); border-color: var(--accent); color: #fff; }
.aed-btn2--go:hover { background: var(--accent-light); color: #fff; }
.aed-btn2--danger { color: #b42335; background: #fff5f6; border-color: rgba(180,35,53,.16); }
.aed-swatches { display: flex; flex-wrap: wrap; gap: 6px; }
.aed-sw { width: 26px; height: 26px; border-radius: 6px; border: 2px solid rgba(0,0,0,.12); cursor: pointer; }
.aed-sw.is-on { border-color: #fff; box-shadow: 0 0 0 2px var(--accent); }
/* compact colour rows (one chip per area, opens a picker) */
.aed-crow { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 9px 0; }
.aed-crow label { font-size: .85rem; color: #525257; }
.aed-cchip { width: 38px; height: 26px; border-radius: 8px; border: 2px solid rgba(0,0,0,.12); cursor: pointer; padding: 0; }
.aed-cchip:hover { border-color: var(--accent); }
.aed-foot { position: relative; z-index: 10; padding: 12px; border-top: 1px solid rgba(0,0,0,.07); display: flex; flex-direction: column; gap: 8px; background: rgba(255,255,255,.82); backdrop-filter: blur(18px); }
.aed-foot__row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.aed-foot__row--publish { grid-template-columns: 1fr 1fr; }
.aed-foot__row .aed-btn2 { width: 100%; }
.aed-status { font-size: .78rem; font-weight: 600; padding: 2px 2px 4px; }
.aed-status.is-draft { color: #f0a93b; }
.aed-status.is-live { color: #4FB477; }
.aed-draftwarn { display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(240,169,59,.28); border-radius: 8px; background: #fff8ec; color: #6b4a18; font-size: .76rem; line-height: 1.35; }
.aed-draftwarn[hidden] { display: none !important; }
.aed-draftwarn .aed-btn2 { min-height: 34px; background: #fff; border-color: rgba(240,169,59,.34); color: #1d1d1f; }
.aed-auth { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #86868b; font-size: .74rem; font-weight: 650; }
.aed-auth .aed-foot__discard { text-align: right; white-space: nowrap; color: #3274D8; }
.aed-foot__discard { background: transparent; border: 0; color: #86868b; font-size: .76rem; cursor: pointer; padding: 2px; text-align: left; }
.aed-foot__discard:hover { color: #1d1d1f; text-decoration: underline; }
.aed-mini { font-size: .76rem; color: #86868b; margin: 4px 0 0; }

.aed-quick { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border-radius: 16px; background: #fff; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 10px 30px rgba(0,0,0,.06); }
.aed-quick span { display: block; color: #86868b; font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.aed-quick b { display: block; margin-top: 2px; font-size: 1rem; }
.aed-actiongrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0 18px; }
.aed-action { min-height: 86px; text-align: left; border: 1px solid rgba(0,0,0,.08); border-radius: 16px; background: #fff; padding: 13px; color: #1d1d1f; box-shadow: 0 1px 0 rgba(0,0,0,.03); }
.aed-action b { display: block; font-size: .92rem; margin-bottom: 5px; }
.aed-action span { display: block; color: #6E6E73; font-size: .76rem; line-height: 1.35; }
.aed-action:hover { border-color: rgba(50,116,216,.3); background: #f7faff; transform: translateY(-1px); }
.aed-pagecard { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 16px; padding: 8px; margin-bottom: 10px; box-shadow: 0 1px 0 rgba(0,0,0,.03); }
.aed-pagecard.is-current { border-color: rgba(50,116,216,.35); box-shadow: 0 0 0 3px rgba(50,116,216,.08); }
.aed-pagecard__main { width: 100%; display: block; border: 0; background: transparent; color: #1d1d1f; text-align: left; padding: 6px 6px 9px; }
.aed-pagecard__main b { display: block; font-size: .94rem; }
.aed-pagecard__main span { display: block; margin-top: 2px; color: #86868b; font-size: .76rem; font-weight: 650; }
.aed-pagecard__tools { display: flex; gap: 6px; }
.aed-pagecard__tools .aed-btn2 { flex: 1; padding: 7px 8px; font-size: .74rem; }
.aed-pagecard__badge { flex: 1; display: inline-flex; align-items: center; justify-content: center; min-height: 34px; border-radius: 10px; background: #eef4ff; color: var(--accent-ink); font-size: .74rem; font-weight: 800; }
.aed-seo-card { display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: center; padding: 13px; border-radius: 16px; background: #fff; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 1px 0 rgba(0,0,0,.03); }
.aed-seo-card strong { display: block; font-size: .92rem; margin-bottom: 3px; }
.aed-seo-card p { margin: 0; color: #6E6E73; font-size: .76rem; line-height: 1.35; }
.aed-seo-score { width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; align-content: center; background: conic-gradient(var(--accent) calc(var(--score, 1) * 1%), #e8e8ed 0); color: #1d1d1f; position: relative; }
.aed-seo-score::before { content: ""; position: absolute; inset: 5px; border-radius: inherit; background: #fff; }
.aed-seo-score b, .aed-seo-score span { position: relative; z-index: 1; line-height: 1; }
.aed-seo-score b { font-size: 1.1rem; }
.aed-seo-score span { font-size: .68rem; color: #86868b; }
.aed-seo-actions { display: grid; gap: 8px; margin: 10px 0 12px; }
.aed-seo-list { list-style: none; padding: 0; margin: 8px 0 16px; display: grid; gap: 6px; }
.aed-seo-list li { display: grid; grid-template-columns: 24px 1fr; align-items: start; gap: 8px; padding: 9px 10px; border-radius: 12px; background: #fff; border: 1px solid rgba(0,0,0,.07); color: #525257; font-size: .78rem; line-height: 1.25; }
.aed-seo-list li span { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .72rem; font-weight: 700; }
.aed-seo-list li.is-ok span { background: rgba(79,180,119,.13); color: #2f7d4d; }
.aed-seo-list li.is-warn span { background: rgba(240,169,59,.14); color: #9b640f; }
.aed-checkrow { display: flex; align-items: center; gap: 10px; margin: 8px 0 14px; padding: 11px 12px; border-radius: 14px; background: #fff; border: 1px solid rgba(0,0,0,.08); color: #343438; font-size: .84rem; line-height: 1.25; }
.aed-checkrow input { width: 18px; height: 18px; accent-color: var(--accent); flex: 0 0 auto; }
.aed-analytics-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 8px 0 12px; }
.aed-analytics-kpis div { padding: 13px 12px; border-radius: 16px; background: #fff; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 1px 0 rgba(0,0,0,.03); }
.aed-analytics-kpis b { display: block; font-size: 1.45rem; line-height: 1; letter-spacing: 0; }
.aed-analytics-kpis span { display: block; margin-top: 5px; color: #6E6E73; font-size: .75rem; }
.aed-seo-score--plain { background: #EEF4FF; color: #245CB7; }
.aed-analytics-list { display: grid; gap: 7px; margin: 8px 0 16px; }
.aed-analytics-list div { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 10px 11px; border-radius: 12px; background: #fff; border: 1px solid rgba(0,0,0,.07); color: #343438; }
.aed-analytics-list span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .8rem; }
.aed-analytics-list b { font-size: .82rem; color: var(--accent); }
.aed-analytics-empty { margin: 8px 0 16px; padding: 12px; border-radius: 14px; background: #fff; border: 1px dashed rgba(0,0,0,.18); color: #6E6E73; font-size: .78rem; line-height: 1.35; }

/* quick text dock — visible after clicking editable text */
.aed-richdock { position: absolute; left: 10px; right: 10px; bottom: 104px; z-index: 14; padding: 10px; border-radius: 16px; background: rgba(245,245,247,.96); color: #15171c; border: 1px solid rgba(255,255,255,.28); box-shadow: 0 16px 42px rgba(0,0,0,.28); display: none !important; }
.aed-richdock[hidden] { display: none !important; }
.aed-richdock__top { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.aed-richdock__top span { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #6E6E73; }
.aed-richdock__top b { font-size: .88rem; font-weight: 700; flex: 1; }
.aed-richdock__top button { width: 26px; height: 26px; border: 0; border-radius: 50%; background: #E8E8ED; color: #1D1D1F; }
.aed-richdock__style { display: grid; gap: 5px; margin: 0 0 8px; font-size: .72rem; color: #6E6E73; }
.aed-richdock__style span { font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.aed-richdock__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.aed-richdock__grid button,
.aed-richdock__align button,
.aed-richdock__quiet { border: 0; border-radius: 10px; background: #fff; color: #1D1D1F; min-height: 34px; font-size: .78rem; font-weight: 700; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.aed-richdock__grid button:hover,
.aed-richdock__align button:hover,
.aed-richdock__quiet:hover { background: #EEF4FF; color: var(--accent-ink); }
.aed-richdock__align { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 6px; }
.aed-richdock__align button.is-on { background: var(--accent); color: #fff; box-shadow: none; }
.aed-richdock__quiet { width: 100%; margin-top: 6px; background: transparent; color: #6E6E73; box-shadow: none; }

/* edit-mode header */
.aed-editbar { position: fixed; top: 0; left: 360px; right: 0; height: 56px; z-index: 610; display: none; align-items: center; justify-content: space-between; gap: 18px; padding: 8px 18px; background: rgba(255,255,255,.9); color: #1d1d1f; border-bottom: 1px solid rgba(0,0,0,.08); box-shadow: 0 8px 28px rgba(0,0,0,.08); backdrop-filter: blur(18px); font-family: var(--font-body); }
body.aed-edit .aed-editbar { display: flex; }
.aed-editbar__title { min-width: 150px; display: grid; gap: 1px; line-height: 1.05; }
.aed-editbar__title b { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: #86868b; }
.aed-editbar__title span { font-size: .94rem; font-weight: 800; color: #1d1d1f; }
.aed-editbar__controls { display: flex; align-items: center; gap: 8px; }
.aed-editbar__seg { display: flex; gap: 4px; padding: 3px; border-radius: 999px; background: #f1f1f4; }
.aed-editbar button { min-height: 34px; border: 0; border-radius: 999px; padding: 0 13px; background: transparent; color: #515154; font-size: .78rem; font-weight: 500; cursor: pointer; }
.aed-editbar button:hover { background: #fff; color: #1d1d1f; }
.aed-editbar button.is-on { background: #1d1d1f; color: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.16); }
.aed-editbar [data-vp].is-checked:not(.is-on)::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 6px; border-radius: 50%; background: #4aa879; vertical-align: 1px; }
.aed-editbar [data-calm].is-on { background: var(--accent); color: #fff; }
.aed-editbar [data-help] { width: 34px; padding: 0; background: #eef4ff; color: var(--accent-ink); }
.aed-review { display: flex; align-items: center; gap: 5px; padding: 3px; border-radius: 999px; background: #f7f7f9; border: 1px solid rgba(0,0,0,.06); }
.aed-review span { padding: 0 7px; color: #6E6E73; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.aed-review button { min-height: 28px; padding: 0 9px; font-size: .72rem; }
.aed-review [data-review-done] { background: #eef4ff; color: var(--accent-ink); }
.aed-review [data-review-reset] { color: #777982; }

/* block hover controls (edit mode) — keep the canvas clean until you hover/select */
body.aed-edit .canvas-grid > .block[data-block-id] { outline: 0 solid transparent; outline-offset: -1px; transition: outline-color .15s; }
/* the .reveal animation sets clip-path:inset(0), which clips the floating control pill + resize handles
   (they sit outside the block box). Turn it off in edit mode so the controls are visible + clickable. */
body.aed-edit .canvas-grid > .block[data-block-id] { clip-path: none !important; }
body.aed-edit .canvas-grid > .block[data-block-id]:hover { outline: 1.5px dashed rgba(50,116,216,.55); }
.aed-ctrls { position: absolute; top: 8px; right: 8px; z-index: 920; display: flex; visibility: hidden; opacity: 0; transition: opacity .15s ease, visibility 0s linear .45s; gap: 4px; background: rgba(21,23,28,.94); padding: 4px; border-radius: 999px; box-shadow: 0 12px 34px rgba(0,0,0,.22); backdrop-filter: blur(16px); }
/* grace period: after hover leaves, the pill stays interactive for .45s instead of vanishing mid-reach */
.canvas-grid > .block > .aed-ctrls::before { content: ""; position: absolute; left: -12px; right: -12px; top: 100%; height: 18px; }   /* invisible bridge across the gap below the floating pill */
body.aed-edit .band--grid,
body.aed-edit .band__childgrid,
body.aed-edit .canvas-grid { overflow: visible; }
.canvas-grid > .block > .aed-ctrls { top: -44px; right: 0; z-index: 920; }
.canvas-grid > .block > .aed-ctrls::after { display: none; }
.canvas-grid > .block.aed-ctrls-below > .aed-ctrls { top: calc(100% + 8px); right: 0; }
.canvas-grid > .block.aed-ctrls-below > .aed-ctrls::after { top: -6px; bottom: auto; transform: rotate(225deg); }
body.aed-edit .canvas-grid > .block[data-block-id]:hover > .aed-ctrls,
body.aed-edit .canvas-grid > .block[data-block-id]:focus-within > .aed-ctrls,
body.aed-edit .canvas-grid > .block[data-block-id].aed-selected > .aed-ctrls,
body.aed-edit .canvas-grid > .block[data-block-id] > .aed-ctrls:hover { display: flex; visibility: visible; opacity: 1; transition: opacity .12s ease; }
.aed-ctrls button { width: 31px; height: 31px; border: 0; border-radius: 999px; background: transparent; color: #fff; display: grid; place-items: center; cursor: pointer; font-size: 14px; font-weight: 500; }
.aed-ctrls button:hover { background: var(--accent); }
body.aed-calm .aed-ctrls button[data-label] { width: auto; min-width: 31px; grid-auto-flow: column; gap: 5px; padding: 0 9px; }
body.aed-calm .aed-ctrls button[data-label]::after { content: attr(data-label); font-size: .68rem; font-weight: 800; line-height: 1; }
body.aed-calm .aed-ctrls button[data-act="settings"] { background: rgba(255,255,255,.12); }
body.aed-calm .aed-ctrls button[data-label]:hover { background: var(--accent); }
body.aed-edit .canvas-grid > .block { cursor: grab; }
body.aed-edit .canvas-grid > .block:active { cursor: grabbing; }
body.aed-edit .canvas-grid > .block.aed-text-editing,
body.aed-edit .canvas-grid > .block.aed-text-editing * { cursor: text; }
.aed-header-tools { position: absolute; left: 50%; bottom: -16px; z-index: 45; transform: translateX(-50%); display: none; gap: 6px; padding: 4px; border-radius: 999px; background: #15171c; box-shadow: 0 10px 30px rgba(0,0,0,.22); }
body.aed-edit:not(.aed-preview) .nav:hover .aed-header-tools,
body.aed-edit:not(.aed-preview) .nav:focus-within .aed-header-tools { display: flex; }
.aed-header-tools button { min-height: 28px; border: 0; border-radius: 999px; padding: 0 11px; background: #262a32; color: #fff; font: 500 .72rem var(--font-body); cursor: pointer; }
.aed-header-tools button:hover { background: var(--accent); }
.aed-header-resize { position: absolute; left: 50%; bottom: -32px; z-index: 44; transform: translateX(-50%); display: none; cursor: ns-resize; user-select: none; touch-action: none; }
body.aed-edit:not(.aed-preview) .nav:hover .aed-header-resize { display: block; }
.aed-header-resize span { display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; background: rgba(255,255,255,.96); color: #1d1d1f; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 10px 26px rgba(0,0,0,.14); font: 500 .68rem var(--font-body); }
.aed-section-resize { position: absolute; left: 50%; bottom: 8px; z-index: 46; transform: translateX(-50%); display: none; cursor: ns-resize; user-select: none; touch-action: none; opacity: .42; transition: opacity .16s, transform .16s; }
body.aed-edit:not(.aed-preview) #site-main > .band > .aed-section-resize { display: block; }
body.aed-edit:not(.aed-preview) #site-main > .band:hover > .aed-section-resize,
body.aed-edit:not(.aed-preview) #site-main > .band.aed-section-sizing > .aed-section-resize { display: block; opacity: 1; transform: translateX(-50%) translateY(-1px); }
.aed-section-resize span { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: 999px; background: var(--accent); color: #fff; box-shadow: 0 10px 28px rgba(0,0,0,.22); font: 600 .7rem var(--font-body); }
.aed-section-sizing { box-shadow: inset 0 -2px 0 var(--accent); }
/* Section-level toolbar — deliberately distinct from block controls (block = dark pill, top-right) */
@keyframes aedJustAdded { 0% { box-shadow: 0 0 0 3px var(--accent), 0 0 0 9px rgba(50,116,216,.35); } 60% { box-shadow: 0 0 0 3px var(--accent), 0 0 0 9px rgba(50,116,216,.18); } 100% { box-shadow: 0 0 0 0 rgba(50,116,216,0); } }
body.aed-edit .canvas-grid > .block.aed-just-added { animation: aedJustAdded 1.4s ease-out 1; border-radius: 8px; }
.aed-section-tools { position: absolute; top: 10px; left: 10px; z-index: 120; display: flex; visibility: hidden; opacity: 0; transition: opacity .15s ease, visibility 0s linear .45s; align-items: center; gap: 4px; padding: 4px 5px 4px 4px; border-radius: 999px; background: rgba(255,255,255,.97); border: 1px solid rgba(50,116,216,.4); box-shadow: 0 10px 30px rgba(0,0,0,.18); backdrop-filter: blur(12px); }
body.aed-edit:not(.aed-preview) #site-main > .band:hover > .aed-section-tools,
body.aed-edit:not(.aed-preview) #site-main > .band:focus-within > .aed-section-tools,
body.aed-edit:not(.aed-preview) #site-main > .band > .aed-section-tools:hover { display: flex; visibility: visible; opacity: 1; transition: opacity .12s ease; }
.aed-section-tools__tag { font: 700 .6rem var(--font-body); letter-spacing: .09em; text-transform: uppercase; color: var(--accent); padding: 0 7px 0 2px; }
.aed-section-tools__drag { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 28px; cursor: grab; color: var(--accent); font-size: 1rem; user-select: none; touch-action: none; }
.aed-section-tools__drag:active { cursor: grabbing; }
body.aed-section-dragging { cursor: grabbing; user-select: none; }
.aed-section-drag-src { opacity: .45; }
#site-main > section.aed-section-drop-before::after,
#site-main > section.aed-section-drop-after::after { content: ""; position: absolute; left: 0; right: 0; height: 6px; border-radius: 999px; background: var(--accent); box-shadow: 0 0 0 3px rgba(255,255,255,.92), 0 0 0 6px rgba(50,116,216,.3), 0 8px 20px rgba(50,116,216,.45); z-index: 90; pointer-events: none; }
#site-main > section.aed-section-drop-before::after { top: -3px; }
#site-main > section.aed-section-drop-after::after { bottom: -3px; }
/* Section editor — focus one section at a time (Squarespace-style) */
body.aed-section-focus:not(.aed-preview) #site-main > section { transition: opacity .18s; }
body.aed-section-focus:not(.aed-preview) #site-main > section:not(.aed-section-active) { opacity: .5; }
body.aed-edit:not(.aed-preview) #site-main > section.aed-section-active { outline: 2.5px solid var(--accent); outline-offset: -3px; }
.aed-section-editbar { position: fixed; left: calc(50% + 160px); bottom: 24px; transform: translateX(-50%); z-index: 950; display: none; align-items: center; gap: 12px; padding: 7px 7px 7px 18px; border-radius: 999px; background: #15171c; color: #fff; box-shadow: 0 14px 40px rgba(0,0,0,.32); font: 500 .82rem var(--font-body); white-space: nowrap; }
body.aed-section-focus:not(.aed-preview) .aed-section-editbar { display: flex; }
.aed-section-editbar__lbl { opacity: .68; }
.aed-section-editbar b { font-weight: 700; }
.aed-section-editbar button { border: 0; border-radius: 999px; background: var(--accent); color: #fff; padding: 8px 18px; font: 600 .82rem var(--font-body); cursor: pointer; }
.aed-section-editbar button:hover { filter: brightness(1.1); }
.aed-section-tools button { min-width: 28px; height: 28px; padding: 0 10px; border: 0; border-radius: 999px; background: #eef1f6; color: #1d1d1f; font: 600 .74rem var(--font-body); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 3px; }
.aed-section-tools button:hover { background: var(--accent); color: #fff; }
.aed-section-tools .aed-section-tools__del:hover { background: #d8443c; color: #fff; }
/* the block being dragged ghosts back so the placement guides read clearly (must beat .reveal.is-visible) */
.aed-block-dragging { pointer-events: none; }
body.aed-grid-dragging .aed-block-dragging,
body.aed-grid-dragging .aed-block-dragging.reveal.is-visible { opacity: .32 !important; transform: scale(.985); transition: opacity .12s ease; }
body.aed-edit.aed-grid-dragging .canvas-grid > .block[data-block-id].aed-block-dragging.aed-selected { outline-color: transparent !important; }
.aed-drop-before,
.aed-drop-after,
.aed-drop-left,
.aed-drop-right { position: relative; }
/* Horizontal insertion bar (drop above / below) — the dominant, crisp placement signal */
.aed-drop-before::before,
.aed-drop-after::after { content: ""; position: absolute; left: calc(50% - min(680px, 48vw)); right: calc(50% - min(680px, 48vw)); height: 6px; border-radius: 999px; background: var(--accent); box-shadow: 0 0 0 3px rgba(255,255,255,.92), 0 0 0 6px rgba(50,116,216,.3), 0 10px 24px rgba(50,116,216,.45); z-index: 80; pointer-events: none; }
.block.aed-drop-before::before,
.block.aed-drop-after::after { left: -2px; right: -2px; }
.aed-drop-before::before { top: -13px; }
.aed-drop-after::after { bottom: -13px; }
/* Vertical insertion bar (drop beside, left / right) */
.aed-drop-left::before,
.aed-drop-right::after { content: ""; position: absolute; top: -6px; bottom: -6px; width: 6px; border-radius: 999px; background: var(--accent); box-shadow: 0 0 0 3px rgba(255,255,255,.92), 0 0 0 6px rgba(50,116,216,.3), 0 10px 24px rgba(50,116,216,.45); z-index: 82; pointer-events: none; }
.aed-drop-left::before { left: -13px; }
.aed-drop-right::after { right: -13px; }
body.aed-grid-dragging .canvas-grid::before,
body.aed-section-focus .aed-section-active .canvas-grid::before,
body.aed-edit .canvas-grid:has(.aed-selected)::before {
  content: "";
  position: absolute;
  inset: -12px;
  z-index: 2;
  pointer-events: none;
  border-radius: 16px;
  border: 1px solid rgba(50,116,216,.32);
  background-image:
    linear-gradient(to right, rgba(50,116,216,.28) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(50,116,216,.22) 1px, transparent 1px);
  background-size: calc(100% / var(--aed-grid-lines, 24)) var(--aed-grid-overlay-row, 24px);
  background-position: 0 0;
  opacity: .86;
}
body.aed-edit .canvas-grid:has(.aed-selected)::before { z-index: 0; opacity: .48; }
body.aed-grid-dragging .canvas-grid.aed-grid-target::before {
  opacity: .98;
  border-color: rgba(50,116,216,.48);
  background-image:
    linear-gradient(to right, rgba(50,116,216,.4) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(50,116,216,.3) 1px, transparent 1px);
}
/* Landing zone — a calm dashed area showing where the block lands; the solid insertion bar is the precise signal */
body.aed-grid-dragging .canvas-grid.aed-grid-target::after { content: ""; position: absolute; top: var(--aed-drop-top, 0); height: var(--aed-drop-height, 74px); left: var(--aed-drop-left, 0%); width: var(--aed-drop-width, 100%); z-index: 3; pointer-events: none; border-radius: 12px; border: 2px dashed rgba(50,116,216,.5); background: rgba(50,116,216,.07); }
body.aed-grid-dragging .canvas-grid.aed-grid-target.aed-grid-side-drop::after {
  border-color: rgba(50,116,216,.62);
  background: rgba(50,116,216,.09);
}
/* Stacking above/below: the crisp horizontal bar is the signal — drop the big footprint zone so it isn't muddy */
body.aed-grid-dragging .canvas-grid.aed-grid-target:has(> .block.aed-drop-before, > .block.aed-drop-after)::after { display: none; }
.aed-resize { position: absolute; top: 0; bottom: 0; right: -4px; width: 28px; z-index: 70; cursor: ew-resize; display: none; touch-action: none; }
body.aed-edit .block:hover > .aed-resize,
body.aed-edit .block:focus-within > .aed-resize,
body.aed-edit .block.aed-selected > .aed-resize,
body.aed-edit .block > .aed-resize:hover { display: block; }
.aed-resize::after { content: ""; position: absolute; top: 50%; right: 6px; width: 5px; height: 46px; transform: translateY(-50%); background: var(--accent); border-radius: 4px; opacity: .85; }
.aed-spacer-resize { position: absolute; left: 50%; bottom: -13px; transform: translateX(-50%); z-index: 36; display: none; cursor: ns-resize; user-select: none; touch-action: none; }
body.aed-edit .canvas-grid > .block[data-block-id]:hover > .aed-spacer-resize,
body.aed-edit .canvas-grid > .block[data-block-id]:focus-within > .aed-spacer-resize,
body.aed-edit .canvas-grid > .block[data-block-id].aed-selected > .aed-spacer-resize,
.aed-spacer-sizing > .aed-spacer-resize { display: block; }
.aed-spacer-resize span { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--accent); color: #fff; font-size: .72rem; font-weight: 800; box-shadow: 0 8px 22px rgba(0,0,0,.22); }
.aed-spacer-sizing .spacer { box-shadow: inset 0 0 0 2px var(--accent); }

/* don't text-select content while clicking/dragging blocks — only when actually editing text */
body.aed-edit #site-main { -webkit-user-select: none; -moz-user-select: none; user-select: none; }
body.aed-edit #site-main [contenteditable="true"] { -webkit-user-select: text; -moz-user-select: text; user-select: text; }
body.aed-edit [data-edit] { cursor: inherit; border-radius: 4px; }
body.aed-edit .aed-text-editing [data-edit] { cursor: text; }
body.aed-edit .aed-text-editing [data-edit]:hover { outline: 1.5px solid rgba(50,116,216,.45); outline-offset: 3px; background: rgba(50,116,216,.06); }
body.aed-edit [contenteditable="true"]:focus { outline: 2px solid var(--accent); background: rgba(50,116,216,.08); }
/* Buttons stay pills while editing: highlight the whole button, never the label box */
body.aed-edit #site-main .btn [data-edit] { outline: none !important; background: transparent !important; border-radius: var(--radius-pill); }
body.aed-edit #site-main .btn:hover { outline: 1.5px dashed rgba(50,116,216,.6); outline-offset: 4px; }
body.aed-edit #site-main .btn:focus-within { outline: 2px solid var(--accent); outline-offset: 4px; }
body.aed-edit:not(.aed-preview) [data-edit-img] { cursor: pointer; }
body.aed-edit:not(.aed-preview) [data-edit-img]:hover { outline: 3px solid var(--accent); outline-offset: -3px; }   /* edit affordance only — never in Preview */
.img-edit-badge { position: absolute; z-index: 45; top: 12px; left: 12px; background: var(--accent); color: #fff; font-family: var(--font-body); font-size: 12px; font-weight: 600; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.img-edit-tools { position: absolute; z-index: 45; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(255,255,255,.88); color: #1d1d1f; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 10px 30px rgba(0,0,0,.18); backdrop-filter: blur(16px); }
.img-edit-tools button { min-height: 30px; border: 0; border-radius: 999px; background: transparent; color: inherit; padding: 0 11px; font: inherit; font-size: 12px; font-weight: 500; cursor: pointer; }
.img-edit-tools button:hover,
.img-edit-tools button:focus-visible { background: #1d1d1f; color: #fff; outline: none; }
body.aed-edit .hero__bg .img-edit-tools,
body.aed-edit .give__bg .img-edit-tools,
body.aed-edit .journey > .img-edit-tools { top: 142px; z-index: 45; pointer-events: auto; }
body:not(.aed-edit) .img-edit-badge,
body:not(.aed-edit) .img-edit-tools { display: none; }

/* overlay panels: add-block library + style popover */
.aed-modal { position: fixed; inset: 0; z-index: 700; background: rgba(10,10,12,.55); display: none; align-items: center; justify-content: center; padding: 20px; }
.aed-modal.is-on { display: flex; }
.aed-modal__card { background: #fff; color: var(--ink); border-radius: 18px; width: min(720px, 100%); max-height: 84vh; overflow: auto; box-shadow: var(--shadow-md); }
.aed-modal__head { padding: 18px 22px; border-bottom: 1px solid var(--line); display: flex; align-items: center; }
.aed-modal__head b { font-size: 1.1rem; }
.aed-modal__head .aed-x { margin-left: auto; background: var(--off-white); border: 0; width: 32px; height: 32px; border-radius: 8px; cursor: pointer; }
.aed-modal__body { padding: 18px 22px; }
.aed-loginmodal .aed-modal__card { width: min(420px, 100%); }
.aed-login__sub { margin: 0 0 16px; color: var(--ink-soft, #6b7280); font-size: .9rem; line-height: 1.5; }
.aed-login__lbl { display: block; font-size: .82rem; font-weight: 600; margin-bottom: 14px; color: var(--ink); }
.aed-login__lbl .aed-input { display: block; width: 100%; box-sizing: border-box; margin-top: 6px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; font: inherit; background: #fff; color: var(--ink); }
.aed-login__row { display: flex; gap: 10px; justify-content: flex-end; margin-top: 20px; }
.aed-modal--elements { background: rgba(10,10,12,.28); align-items: center; justify-content: center; }
.aed-modal--elements .aed-modal__card { width: min(720px, calc(100vw - 32px)); max-height: min(760px, calc(100svh - 42px)); border-radius: 24px; overflow: auto; }
.aed-modal--elements .aed-modal__head { padding: 18px 22px 12px; border-bottom: 0; }
.aed-modal--elements .aed-modal__body { padding: 0 22px 24px; }
.aed-elements__intro { padding-bottom: 12px; }
.aed-elements__intro .aed-lib__close { margin-bottom: 16px; font-size: .72rem; }
.aed-elements__intro h2 { margin: 0; font-size: 1.7rem; letter-spacing: 0; }
.aed-elements__intro p { margin: 6px 0 0; color: #6E6E73; font-size: .95rem; }
.aed-elements__search { display: block; margin-top: 14px; }
.aed-elements__search span { display: block; margin-bottom: 6px; color: #707074; font-size: .78rem; font-weight: 600; }
.aed-elements__search .aed-input { border-radius: 14px; }
.aed-elements__section { margin-top: 18px; }
.aed-elements__section:first-of-type { margin-top: 6px; }
.aed-elements__section h3 { margin: 0 0 9px; font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: #77777d; }
.aed-elements__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.aed-elcard { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 13px; min-height: 78px; padding: 14px; border: 1px solid #e2e2e6; border-radius: 16px; background: #fff; color: #1d1d1f; text-align: left; font: inherit; cursor: pointer; transition: border-color .18s, box-shadow .18s, transform .18s, background .18s; }
.aed-elcard:hover { border-color: rgba(50,116,216,.55); background: #fbfdff; box-shadow: 0 14px 28px rgba(22,32,54,.08); transform: translateY(-1px); }
.aed-elcard__icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: #eef4ff; color: var(--accent); font-weight: 700; font-size: 1.05rem; }
.aed-elcard b { display: block; font-size: .98rem; font-weight: 600; }
.aed-elcard small { display: block; margin-top: 3px; color: #707074; font-size: .78rem; line-height: 1.35; }
.aed-elcard em { display: inline-flex; margin-top: 7px; padding: 2px 6px; border-radius: 999px; background: #f1f1f4; color: #6E6E73; font-style: normal; font-size: .64rem; font-weight: 800; line-height: 1.2; }
.aed-cat { font-size: .74rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); margin: 16px 0 8px; }
.aed-cat:first-child { margin-top: 0; }
.aed-bgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.aed-bcard { display: flex; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; text-align: left; font: inherit; }
.aed-bcard:hover { border-color: var(--accent); background: rgba(50,116,216,.05); }
.aed-bcard span.ico { font-size: 18px; }
.aed-bcard b { font-size: .9rem; display: block; }

/* Squarespace-style page manager and section picker */
.aed-pages-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 0 14px; }
.aed-pages-head h3 { margin: 0; font-size: 2rem; letter-spacing: 0; line-height: 1; }
.aed-pages-head p { margin: 6px 0 0; color: #6E6E73; font-size: .86rem; }
.aed-iconbtn { width: 42px; height: 42px; border-radius: 50%; border: 0; background: #fff; color: #1d1d1f; display: grid; place-items: center; font-size: 1.45rem; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); cursor: pointer; }
.aed-actiongrid--tight { margin-top: 0; }
.aed-page-section { margin: 18px -16px 0; padding: 0 0 8px; border-top: 1px solid rgba(0,0,0,.08); }
.aed-page-section__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 16px 8px; }
.aed-page-section__head b { font-size: 1rem; line-height: 1; }
.aed-page-section__head button { width: 32px; height: 32px; border: 0; border-radius: 50%; background: transparent; color: #1d1d1f; font-size: 1.35rem; cursor: pointer; }
.aed-page-row { display: grid; grid-template-columns: 1fr 38px; align-items: center; min-height: 54px; padding: 0 10px 0 14px; color: #1d1d1f; }
.aed-page-row.is-current { background: #e8e8ed; }
.aed-page-row__main { min-width: 0; display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 12px; border: 0; background: transparent; color: inherit; text-align: left; padding: 10px 0; cursor: pointer; }
.aed-page-row__icon { font-size: 1.15rem; color: #1d1d1f; opacity: .86; }
.aed-page-row b { display: block; font-size: .98rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aed-page-row small { display: block; margin-top: 3px; color: #86868b; font-size: .72rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aed-page-row__gear { width: 32px; height: 32px; border: 0; border-radius: 50%; background: transparent; color: #6E6E73; opacity: 0; cursor: pointer; }
.aed-page-row:hover .aed-page-row__gear,
.aed-page-row.is-current .aed-page-row__gear { opacity: 1; }
.aed-page-row--empty { grid-template-columns: 34px 1fr; gap: 12px; padding: 12px 16px; color: #86868b; }

.aed-modal--library { background: #fff; padding: 0; align-items: stretch; justify-content: stretch; }
.aed-modal--library .aed-modal__card { width: 100%; max-height: none; height: 100%; border-radius: 0; box-shadow: none; overflow: hidden; }
.aed-modal--library .aed-modal__head { display: none; }
.aed-modal--library .aed-modal__body { height: 100%; padding: 0; overflow: hidden; }
.aed-lib { height: 100%; min-height: 0; display: grid; grid-template-columns: 320px 1fr; grid-template-rows: minmax(0, 1fr); background: #fff; color: #101014; font-family: var(--font-body); }
.aed-lib__rail { padding: 30px 26px; background: #fff; border-right: 1px solid rgba(0,0,0,.06); overflow: auto; min-height: 0; }
.aed-lib__close { border: 0; background: transparent; color: #101014; padding: 0; margin: 0 0 34px; font-size: .78rem; letter-spacing: .08em; cursor: pointer; }
.aed-lib__rail h2 { margin: 0 0 26px; font-size: 2rem; line-height: 1.05; letter-spacing: 0; }
.aed-lib__search { display: block; margin: -10px 0 16px; }
.aed-lib__search span { display: block; margin-bottom: 6px; color: #707074; font-size: .78rem; font-weight: 600; }
.aed-lib__search .aed-input { border-radius: 14px; background: #fff; }
.aed-lib__quick,
.aed-lib__saved { width: 100%; min-height: 44px; display: flex; align-items: center; gap: 14px; border: 0; background: transparent; color: #5f6064; text-align: left; font: inherit; font-size: 1.02rem; padding: 6px 0; cursor: pointer; }
.aed-lib__quick span,
.aed-lib__saved span { width: 28px; display: grid; place-items: center; color: #101014; font-size: 1.25rem; }
.aed-lib__rail nav { display: grid; gap: 5px; margin-top: 30px; }
.aed-lib__rail nav button { border: 0; background: transparent; color: #6E6E73; text-align: left; font: inherit; font-size: 1rem; padding: 8px 0; cursor: pointer; }
.aed-lib__rail nav button.is-on { color: #101014; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.aed-lib__main { overflow: auto; min-height: 0; padding: 42px clamp(34px, 6vw, 82px) 70px; background: #fbfbfc; }
.aed-lib__top { position: sticky; top: -42px; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: -42px -34px 28px; padding: 22px 34px; background: rgba(251,251,252,.92); border-bottom: 1px solid rgba(0,0,0,.06); backdrop-filter: blur(16px); }
.aed-lib__top b { display: block; font-size: .96rem; }
.aed-lib__top span { display: block; margin-top: 3px; color: #6E6E73; font-size: .82rem; }
.aed-lib__views { display: flex; gap: 8px; }
.aed-lib__views button { width: 44px; height: 44px; border: 0; border-radius: 7px; background: transparent; color: #101014; font-size: 1.15rem; cursor: pointer; }
.aed-lib__views button.is-on { background: #e8e8e8; }
.aed-lib__group { scroll-margin-top: 92px; margin-bottom: 42px; }
.aed-lib__group h3 { margin: 0 0 18px; font-size: 1.18rem; }
.aed-lib__grid { display: grid; grid-template-columns: repeat(2, minmax(240px, 1fr)); gap: 26px 34px; }
.aed-template { display: grid; gap: 12px; border: 0; background: transparent; color: #101014; text-align: left; font: inherit; cursor: pointer; padding: 0; }
.aed-template__thumb { position: relative; display: block; min-height: 198px; border: 1px solid #dddddf; border-radius: 4px; background: #fff; overflow: hidden; box-shadow: 0 1px 0 rgba(0,0,0,.02); transition: border-color .2s, transform .2s, box-shadow .2s; }
.aed-template:hover .aed-template__thumb { border-color: #101014; transform: translateY(-2px); box-shadow: 0 16px 36px rgba(0,0,0,.08); }
.aed-template__thumb i { position: absolute; display: block; background: #101014; border-radius: 999px; opacity: .92; }
.aed-template__thumb i:nth-child(1) { width: 36%; height: 10px; top: 34px; left: 32%; }
.aed-template__thumb i:nth-child(2) { width: 58%; height: 72px; top: 76px; left: 21%; border-radius: 2px; background: #d8d8dc; }
.aed-template__thumb i:nth-child(3) { width: 24%; height: 9px; bottom: 28px; left: 38%; }
.aed-template__thumb--hero { background: linear-gradient(135deg, #1d1d1f, #555b66); }
.aed-template__thumb--hero i { background: #fff; }
.aed-template__thumb--journey { background: linear-gradient(90deg, #161616 0 33%, #303845 33% 66%, #161616 66%); }
.aed-template__thumb--journey i { background: rgba(255,255,255,.88); }
.aed-template__thumb--image i:nth-child(2),
.aed-template__thumb--video i:nth-child(2) { inset: 24px 24px 50px; width: auto; height: auto; background: linear-gradient(135deg, #c7d6f5, #e3d0bd); }
.aed-template__thumb--cards i:nth-child(1),
.aed-template__thumb--cards i:nth-child(2),
.aed-template__thumb--cards i:nth-child(3) { width: 25%; height: 88px; top: 58px; border-radius: 4px; background: #ededf0; }
.aed-template__thumb--cards i:nth-child(1) { left: 8%; } .aed-template__thumb--cards i:nth-child(2) { left: 37.5%; } .aed-template__thumb--cards i:nth-child(3) { left: 67%; }
.aed-template__thumb--app i:nth-child(2) { background: #eef4ff; }
.aed-template__thumb--spacer i:nth-child(2) { height: 2px; top: 98px; background: #101014; }
.aed-template__thumb--saved { background: linear-gradient(135deg, #f7fbff, #ffffff); }
.aed-template__thumb--saved i:nth-child(1) { width: 42%; left: 12%; top: 34px; background: var(--accent); }
.aed-template__thumb--saved i:nth-child(2) { width: 74%; left: 12%; top: 72px; height: 74px; background: #eef4ff; border-radius: 8px; }
.aed-template__thumb--saved i:nth-child(3) { width: 28%; left: auto; right: 12%; bottom: 28px; background: #1d1d1f; }
.aed-template__meta b { display: block; font-size: 1rem; font-weight: 500; }
.aed-template__meta small { display: block; margin-top: 3px; color: #6E6E73; font-size: .82rem; line-height: 1.35; }
.aed-saved-card { position: relative; display: grid; gap: 10px; }
.aed-saved-card__delete { justify-self: start; border: 1px solid #dddddf; background: #fff; color: #6E6E73; min-height: 34px; border-radius: 999px; padding: 0 14px; font: 500 .78rem var(--font-body); cursor: pointer; }
.aed-saved-card__delete:hover { border-color: #cf2f3b; color: #cf2f3b; background: #fff7f7; }
.aed-lib__empty { border: 1px dashed #cfd0d4; border-radius: 16px; min-height: 180px; display: grid; place-items: center; align-content: center; gap: 6px; padding: 28px; background: #fff; color: #101014; text-align: center; }
.aed-lib__empty b { font-size: 1.02rem; font-weight: 600; }
.aed-lib__empty span { max-width: 270px; color: #6E6E73; font-size: .9rem; line-height: 1.35; }

/* Page settings full-screen panel */
.aed-ps { position: fixed; inset: 0; z-index: 690; background: #fff; color: #101014; font-family: var(--font-body); }
.aed-ps[hidden] { display: none !important; }
.aed-ps__shell { min-height: 100%; display: grid; grid-template-columns: 360px 1fr; }
.aed-ps__side { background: #f3f3f4; padding: 30px 28px; }
.aed-ps-close { border: 0; background: transparent; padding: 0; margin: 0 0 54px; font-size: .78rem; letter-spacing: .08em; cursor: pointer; }
.aed-ps__side h2 { margin: 0 0 52px; font-size: 2.45rem; line-height: 1.05; letter-spacing: 0; }
.aed-ps__side nav { display: grid; gap: 20px; }
.aed-ps__side nav button { width: max-content; border: 0; background: transparent; color: #101014; padding: 0 0 3px; font: inherit; font-size: 1.04rem; cursor: pointer; }
.aed-ps__side nav button.is-on { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.aed-ps__main { width: min(760px, calc(100vw - 420px)); margin: 0 auto; padding: 44px 20px 90px; }
.aed-ps__main h3 { margin: 0 0 56px; text-align: center; font-size: 1.15rem; letter-spacing: 0; }
.aed-ps-field { display: grid; gap: 9px; margin-bottom: 34px; }
.aed-ps-field span { color: #6E6E73; text-transform: uppercase; letter-spacing: .09em; font-size: .78rem; }
.aed-ps-input { width: 100%; min-height: 60px; border: 0; border-radius: 0; background: #f0f0f1; color: #101014; font: inherit; font-size: 1.04rem; padding: 0 18px; }
textarea.aed-ps-input { padding-top: 16px; min-height: 128px; resize: vertical; line-height: 1.45; }
.aed-ps-field small { color: #77787c; font-size: .8rem; line-height: 1.4; }
.aed-ps-switch { position: relative; display: grid; grid-template-columns: 1fr 52px; align-items: center; gap: 16px; min-height: 58px; border-top: 1px solid #dddde0; color: #101014; font-size: 1rem; }
.aed-ps-switch input { position: absolute; opacity: 0; pointer-events: none; }
.aed-ps-switch i { width: 44px; height: 24px; border-radius: 999px; background: #777; justify-self: end; position: relative; transition: background .2s; }
.aed-ps-switch i::after { content: ""; position: absolute; width: 18px; height: 18px; top: 3px; left: 3px; border-radius: 50%; background: #fff; transition: transform .2s; }
.aed-ps-switch input:checked + i { background: #4aa879; }
.aed-ps-switch input:checked + i::after { transform: translateX(20px); }
.aed-ps-note { margin: 20px 0; color: #6E6E73; font-size: .88rem; }
.aed-ps-linebtn { width: 100%; min-height: 54px; border: 0; border-top: 1px solid #dddde0; background: transparent; color: #101014; text-align: left; font: inherit; font-size: .96rem; letter-spacing: .02em; cursor: pointer; }
.aed-ps-linebtn:hover { color: var(--accent); }
.aed-ps-danger { color: #c0313e; }
.aed-ps-preview { min-height: 220px; display: grid; place-items: center; background: #f0f0f1; color: #77787c; overflow: hidden; }
.aed-ps-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 900px) {
  .aed-lib { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .aed-lib__rail { border-right: 0; border-bottom: 1px solid rgba(0,0,0,.06); padding: 18px 20px; }
  .aed-lib__rail h2 { font-size: 1.55rem; margin-bottom: 12px; }
  .aed-lib__rail nav { grid-template-columns: repeat(2, 1fr); margin-top: 14px; }
  .aed-lib__main { padding: 28px 20px 48px; }
  .aed-lib__top { position: relative; top: auto; margin: -28px -20px 24px; padding: 16px 20px; }
  .aed-lib__grid { grid-template-columns: 1fr; }
  .aed-elements__grid { grid-template-columns: 1fr; }
  .aed-ps__shell { grid-template-columns: 1fr; }
  .aed-ps__side { padding: 18px 22px; }
  .aed-ps-close { margin-bottom: 18px; }
  .aed-ps__side h2 { margin-bottom: 18px; font-size: 1.8rem; }
  .aed-ps__side nav { display: flex; flex-wrap: wrap; gap: 12px 18px; }
  .aed-ps__main { width: auto; padding: 28px 22px 60px; }
  .aed-ps__main h3 { text-align: left; margin-bottom: 28px; }
}
.aed-pop { position: fixed; z-index: 680; background: #fff; color: var(--ink); border-radius: 14px; box-shadow: var(--shadow-md); padding: 14px; width: 280px; max-width: calc(100vw - 24px); display: none; }
.aed-pop.is-on { display: block; }
.aed-pop h5 { margin: 0 0 4px; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.aed-pop .aed-row label { color: var(--ink); }
.aed-pop .aed-input, .aed-pop .aed-select { background: #fff; color: var(--ink); border-color: var(--line); }
.aed-button-pop { width: 320px; padding: 12px; border-radius: 18px; box-shadow: 0 18px 60px rgba(0,0,0,.2); max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.aed-button-pop__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.aed-button-pop__head b { font-size: .92rem; }
.aed-button-pop__head button,
.aed-button-pop__foot button { border: 0; border-radius: 999px; min-height: 32px; padding: 0 12px; background: #f1f1f4; color: #1d1d1f; font: inherit; font-size: .78rem; cursor: pointer; }
.aed-button-pop label { display: grid; gap: 5px; color: #6E6E73; font-size: .74rem; margin: 8px 0; }
.aed-button-pop .aed-input { min-height: 36px; border-radius: 10px; font-size: .82rem; }
.aed-button-pop__seg { display: grid; grid-template-columns: repeat(auto-fit, minmax(86px, 1fr)); gap: 6px; margin: 8px 0; }
.aed-button-pop__seg button { border: 1px solid rgba(0,0,0,.09); border-radius: 10px; background: #fff; color: #1d1d1f; min-height: 34px; font: inherit; font-size: .78rem; cursor: pointer; }
.aed-button-pop__seg button.is-on { background: #1d1d1f; color: #fff; border-color: #1d1d1f; }
.aed-recipegrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.aed-recipegrid button { border: 1px solid rgba(0,0,0,.08); border-radius: 8px; background: #fff; color: #1d1d1f; min-height: 58px; padding: 8px; display: grid; gap: 3px; align-content: center; text-align: left; cursor: pointer; font: inherit; }
.aed-recipegrid button:hover { border-color: rgba(50,116,216,.45); background: #f7fbff; }
.aed-recipegrid b { font-size: .8rem; }
.aed-recipegrid span { font-size: .68rem; color: #6E6E73; line-height: 1.25; }
.aed-button-pop__chips,
.aed-brandchips { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: 8px 0; }
.aed-button-pop__chips button,
.aed-brandchips button { border: 1px solid rgba(0,0,0,.08); border-radius: 10px; background: #fff; padding: 7px 4px; display: grid; justify-items: center; gap: 4px; color: #1d1d1f; font: inherit; font-size: .68rem; cursor: pointer; }
.aed-button-pop__chips i,
.aed-brandchips i { width: 22px; height: 22px; border-radius: 50%; border: 1px solid rgba(0,0,0,.16); display: block; }
.aed-palettechips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.aed-palettechips button { width: 24px; height: 24px; border: 1px solid rgba(0,0,0,.16); border-radius: 8px; padding: 0; background: #fff; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.32); }
.aed-palettechips button.is-on { outline: 2px solid var(--accent); outline-offset: 1px; }
.aed-palettechips__auto { width: auto !important; min-width: 42px; padding: 0 7px !important; border-style: dashed !important; color: #525257; font-size: .66rem; font-weight: 800; box-shadow: none !important; }
.aed-button-pop__extra { display: grid; gap: 8px; padding-top: 8px; margin-top: 8px; border-top: 1px solid rgba(0,0,0,.08); }
.aed-button-pop__extra[hidden] { display: none !important; }
.aed-button-pop__extra .aed-select { min-height: 36px; border-radius: 10px; font-size: .82rem; }
.aed-button-pop__foot { display: flex; justify-content: flex-end; margin-top: 10px; }
.aed-image-popwrap { width: 336px; border-radius: 24px; padding: 14px; max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain; }
.aed-image-pop { display: grid; gap: 10px; }
.aed-image-pop__head,
.aed-image-pop__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.aed-image-pop__head b { font-size: 1rem; }
.aed-image-pop__head button,
.aed-image-pop__foot button { border: 0; border-radius: 999px; min-height: 34px; padding: 0 14px; background: #f1f1f4; color: #1d1d1f; font: inherit; font-size: .84rem; font-weight: 500; cursor: pointer; }
.aed-image-pop__foot button:last-child { background: #1d1d1f; color: #fff; }
.aed-image-pop label { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; align-items: center; color: #6E6E73; font-size: .8rem; }
.aed-image-pop label select,
.aed-image-pop label input[type="range"] { grid-column: 1 / -1; }
.aed-image-pop label span { color: #1d1d1f; font-size: .78rem; }
.aed-image-pop .aed-select,
.aed-image-pop .aed-input { background: #fff; border-color: #e5e5ea; }
.aed-toast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(20px); z-index: 720; background: #15171c; color: #fff; padding: 11px 20px; border-radius: 999px; font-family: var(--font-body); font-weight: 600; font-size: .88rem; opacity: 0; pointer-events: none; transition: .3s; }
.aed-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
@media (max-width: 760px) {
  body.aed-edit #app { margin-left: min(360px, calc(100vw - 96px)); padding-top: 108px; }
  .aed-side { top: 108px; width: min(360px, calc(100vw - 96px)); }
  .aed-editbar { left: 0; height: auto; min-height: 56px; flex-wrap: wrap; align-items: flex-start; }
  .aed-editbar__title { width: 100%; }
  .aed-editbar__controls { flex: 1; }
}

/* Builder controls: keep small button text calm; reserve boldness for the main save actions. */
.aed-tab,
.aed-btn2,
.aed-action b,
.aed-pagecard__main b,
.aed-pagecard__main span,
.aed-pagecard__badge,
.aed-richdock__grid button,
.aed-richdock__align button,
.aed-richdock__quiet,
.aed-editbar button,
.aed-seg button,
.aed-addrow,
.aed-accordion summary,
.aed-bcard b,
.img-edit-tools button,
.img-edit-badge,
.aed-spacer-resize span,
.aed-seltool > button[data-f="link"],
.aed-seltool > button[data-f="image"] { font-weight: 500; }
.aed-foot__row [data-act="save"],
.aed-foot__row [data-act="publish"] { font-weight: 700; }
.aed-historymodal .aed-modal__card { width: min(560px, calc(100vw - 32px)); }
.aed-history-empty { border: 1px dashed #d9dbe3; border-radius: 16px; padding: 28px; text-align: center; color: #6e7178; }
.aed-history-empty b { display: block; color: #1d1d1f; margin-bottom: 6px; }
.aed-history-empty p { margin: 0; }
.aed-history-list { display: grid; gap: 10px; }
.aed-history-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #e4e6ec; border-radius: 16px; padding: 12px; background: #fff; }
.aed-history-item b { display: block; font-size: .95rem; }
.aed-history-item span { display: block; margin-top: 2px; color: #86868b; font-size: .78rem; font-weight: 650; }
.aed-history-actions { display: flex; gap: 8px; }
.aed-history-actions .aed-btn2 { white-space: nowrap; }

/* ============================================================================
   V3 — CONTROLLED DESIGN OPTIONS (typography presets, image, layout, visibility)
   ========================================================================== */

/* ---- Typography presets (heading + body). Honour --block-fscale. ---- */
.ty-display-recoleta { font-family: var(--font-display); font-weight: 600; font-size: calc(var(--fs-display) * var(--display-scale,1)); line-height: 1.02; letter-spacing: -0.02em; }
.ty-display-figtree  { font-family: var(--font-body);    font-weight: 800; font-size: calc(var(--fs-display) * var(--display-scale,1)); line-height: 1.04; letter-spacing: -0.03em; }
.ty-section-recoleta { font-family: var(--font-display); font-weight: 600; font-size: calc(var(--fs-section) * var(--display-scale,1)); line-height: 1.08; letter-spacing: -0.015em; }
.ty-section-figtree  { font-family: var(--font-body);    font-weight: 700; font-size: calc(var(--fs-section) * var(--display-scale,1)); line-height: 1.1; letter-spacing: -0.02em; }
.ty-practical-heading{ font-family: var(--font-body);    font-weight: 700; font-size: calc(var(--fs-practical) * var(--display-scale,1)); line-height: 1.2; letter-spacing: -0.01em; }
.ty-card-heading     { font-family: var(--font-display); font-weight: 600; font-size: calc(var(--fs-card) * var(--display-scale,1)); line-height: 1.25; }
.ty-script           { font-family: var(--font-script);  font-weight: 400; font-size: calc(var(--fs-script) * var(--display-scale,1)); line-height: 1.05; letter-spacing: 0; }
.ty-body-large    { font-size: var(--fs-body-lg);  line-height: 1.6; color: var(--ink); }
.ty-body-standard { font-size: var(--fs-body); line-height: 1.6; color: var(--ink); }
.ty-body-small    { font-size: var(--fs-body-sm);  line-height: 1.55; color: var(--muted); }
.ty-intro-copy    { font-size: var(--fs-intro);  line-height: 1.55; color: var(--text-secondary,#2E2E2F); font-weight: 400; }
.ty-muted-copy    { font-size: var(--fs-body); line-height: 1.6; color: var(--muted); }

/* ---- Alignment + case ---- */
.ta-left { text-align: left; } .ta-center { text-align: center; margin-left: auto; margin-right: auto; } .ta-right { text-align: right; }
.tc-uppercase { text-transform: uppercase; letter-spacing: 0.16em; }
.tc-title { text-transform: capitalize; }

/* ---- Container widths ---- */
.cw-narrow { max-width: 720px; } .cw-standard { max-width: 1180px; } .cw-wide { max-width: 1400px; } .cw-full { max-width: none; }

/* ---- Image treatments ---- */
.imgblock figure, .imgblock { margin: 0; }
.img-frame { overflow: hidden; display: block; }
.img-frame img { width: 100%; height: 100%; display: block; }
.img-aspect-16x9 { aspect-ratio: 16/9; } .img-aspect-4x3 { aspect-ratio: 4/3; } .img-aspect-3x2 { aspect-ratio: 3/2; }
.img-aspect-1x1 { aspect-ratio: 1/1; } .img-aspect-portrait { aspect-ratio: 3/4; } .img-aspect-auto { aspect-ratio: auto; }
.img-fit-cover img { object-fit: cover; } .img-fit-contain img { object-fit: contain; }
.img-focal-center img { object-position: center; } .img-focal-top img { object-position: top; } .img-focal-bottom img { object-position: bottom; }
.img-focal-left img { object-position: left; } .img-focal-right img { object-position: right; }
.img-radius-none { border-radius: 0; } .img-radius-small { border-radius: 8px; } .img-radius-medium { border-radius: 16px; }
.img-radius-large { border-radius: 28px; } .img-radius-organic { border-radius: 42% 58% 56% 44% / 48% 42% 58% 52%; }
.img-w-small { max-width: 340px; } .img-w-medium { max-width: 560px; } .img-w-large { max-width: 820px; } .img-w-full { max-width: 100%; }
.imgblock.is-fill { display: block; width: 100%; }
.img-frame.img-fill { display: block; width: 100%; max-width: none; aspect-ratio: auto; }
/* ---------------- CAROUSEL ---------------- */
.carousel { position: relative; overflow: hidden; width: 100%; background: #11151c; touch-action: pan-y pinch-zoom; }   /* pan-y: phones keep vertical scroll but hand horizontal swipes to the slider */
.carousel--r-none { border-radius: 0; } .carousel--r-small { border-radius: 10px; } .carousel--r-medium { border-radius: 18px; } .carousel--r-large { border-radius: 28px; }
.carousel__track { display: flex; height: 100%; transition: transform .55s cubic-bezier(.4,0,.2,1); will-change: transform; }
.carousel__slide { position: relative; flex: 0 0 100%; height: 100%; overflow: hidden; }
.carousel__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.carousel__img--empty { background: linear-gradient(135deg, #2a3550, #1d1d1f); }
.carousel__tint { position: absolute; inset: 0; background: #000; pointer-events: none; }
.carousel__content { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: clamp(24px, 5vw, 64px); color: #fff; }
.carousel__content--center { align-items: center; text-align: center; }
.carousel__content--left { align-items: flex-start; text-align: left; }
.carousel__content--right { align-items: flex-end; text-align: right; }
.carousel__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.9rem, 4vw, 3.4rem); line-height: 1.04; color: #fff; }
.carousel__body { max-width: 560px; font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.5; opacity: .94; }
.carousel__btn { margin-top: 4px; }
.carousel__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.88); color: #1d1d1f; font-size: 1.6rem; line-height: 1; cursor: pointer; display: grid; place-items: center; box-shadow: 0 6px 20px rgba(0,0,0,.2); transition: background .2s, transform .2s; }
.carousel__arrow:hover { background: #fff; transform: translateY(-50%) scale(1.06); }
.carousel__arrow--prev { left: 14px; } .carousel__arrow--next { right: 14px; }
.carousel__dots { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); z-index: 3; display: flex; gap: 8px; }
.carousel__dot { width: 9px; height: 9px; border-radius: 50%; border: 0; background: rgba(255,255,255,.5); cursor: pointer; padding: 0; transition: background .2s, transform .2s; }
.carousel__dot.is-on { background: #fff; transform: scale(1.25); }
@media (max-width: 760px) { .carousel__arrow { width: 38px; height: 38px; font-size: 1.4rem; } }
/* ---------------- SLIDER (carousel of full editable grid sections) ---------------- */
.band--slider { position: relative; overflow: hidden; touch-action: pan-y pinch-zoom; }   /* pan-y: phones keep vertical scroll but hand horizontal swipes to the slider */
.band--slider .slider__track { display: flex; align-items: stretch; transition: transform .55s cubic-bezier(.4,0,.2,1); will-change: transform; }
.band--slider .slider__slide { flex: 0 0 100%; min-width: 100%; position: relative; }
.band--slider .slider__slide > .band--grid { width: 100%; height: 100%; }
.slider__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 46px; height: 46px; border-radius: 50%; border: 0; background: rgba(255,255,255,.9); color: #1d1d1f; font-size: 1.6rem; line-height: 1; cursor: pointer; display: grid; place-items: center; box-shadow: 0 6px 20px rgba(0,0,0,.2); transition: background .2s, transform .2s; }
.slider__arrow:hover { background: #fff; transform: translateY(-50%) scale(1.06); }
.slider__arrow--prev { left: 16px; } .slider__arrow--next { right: 16px; }
.slider__dots { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); z-index: 5; display: flex; gap: 9px; }
.slider__dot { width: 10px; height: 10px; border-radius: 50%; border: 0; background: rgba(255,255,255,.55); cursor: pointer; padding: 0; transition: background .2s, transform .2s; }
.slider__dot.is-on { background: #fff; transform: scale(1.2); }
@media (max-width: 760px) { .slider__arrow { width: 38px; height: 38px; font-size: 1.4rem; } }
/* edit mode: show ONE slide statically so block controls / resize handles / drop overlay aren't clipped */
/* edit-mode shows one slide statically — but NOT in Preview, where the real translateX carousel should animate */
body.aed-edit:not(.aed-preview) .band--slider { overflow: visible; }
body.aed-edit:not(.aed-preview) .band--slider .slider__track { transform: none !important; display: block; }
body.aed-edit:not(.aed-preview) .band--slider .slider__slide { display: none; }
body.aed-edit:not(.aed-preview) .band--slider .slider__slide.is-edit-active { display: block; }
body.aed-edit:not(.aed-preview) .band--slider .slider__slide.is-edit-active > .band--grid { overflow: visible; }
.imgblock figcaption { color: var(--muted); font-size: .9rem; margin-top: 10px; }

/* ---- Image + Text block layouts ---- */
.imgtext { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px,5vw,72px); align-items: center; }
.imgtext.lay-image-left .imgtext__media { order: -1; }
.imgtext.lay-centered { grid-template-columns: 1fr; text-align: center; }
.imgtext.lay-centered .imgtext__media { max-width: 760px; margin: 24px auto 0; }
.imgtext__media .img-frame { border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
@media (max-width: 820px) { .imgtext { grid-template-columns: 1fr; } .imgtext.lay-image-left .imgtext__media { order: 0; } }

/* ---- Quote / FAQ / CTA helpers ---- */
.quoteblock { max-width: 880px; }
.quoteblock blockquote { font-family: var(--font-display); font-weight: 500; font-size: calc((clamp(1.5rem,3vw,2.3rem)) * var(--block-fscale, 1)); line-height: 1.3; margin: 0; }
.quoteblock cite { display: block; margin-top: 22px; font-style: normal; font-weight: 600; }
.quoteblock .role { color: var(--muted); font-size: calc((.92rem) * var(--block-fscale, 1)); }
.faqlist { max-width: 820px; margin: 0 auto; }
.faqitem { border-bottom: 1px solid var(--line); padding: 8px 0; }
.faqitem summary { cursor: pointer; list-style: none; padding: 18px 0; font-weight: 600; font-size: 1.12rem; display: flex; justify-content: space-between; gap: 16px; }
.faqitem summary::-webkit-details-marker { display: none; }
.faqitem summary::after { content: "+"; color: var(--accent); font-size: 1.4rem; line-height: 1; }
.faqitem[open] summary::after { content: "−"; }
.faqitem p { margin: 0 0 18px; color: var(--muted); }
.srow { display: grid; grid-template-columns: auto 1fr; gap: 10px 22px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--line); }
.srow__day { font-family: var(--font-display); font-size: calc((1.3rem) * var(--block-fscale, 1)); } .srow__time { font-weight: 600; } .srow__desc { color: var(--muted); grid-column: 2; }

/* ---- Visibility ---- */
@media (max-width: 760px) { .hide-mobile { display: none !important; } }
@media (min-width: 761px) { .hide-desktop { display: none !important; } }
body:not(.aed-edit) .block--hidden { display: none !important; }
body.aed-edit .block--hidden { opacity: .38; position: relative; }
body.aed-edit .block--hidden::before { content: "Hidden"; position: absolute; z-index: 30; top: 8px; left: 8px; background: #15171c; color: #fff; font: 600 11px var(--font-body); padding: 4px 10px; border-radius: 999px; }

/* ============================================================================
   V3 — GROUPED BLOCK SETTINGS PANEL (Content / Typography / Media / Layout / Advanced)
   ========================================================================== */
body.aed-edit .canvas-grid > .block[data-block-id].aed-selected { outline: 2.5px solid var(--accent) !important; outline-offset: -2px; }
body.aed-edit.aed-preview [data-block-id],
body.aed-edit.aed-preview [data-block-id]:hover,
body.aed-edit.aed-preview [data-block-id].aed-selected,
body.aed-edit.aed-preview [data-edit],
body.aed-edit.aed-preview [data-edit]:hover,
body.aed-edit.aed-preview [contenteditable="true"]:focus,
body.aed-edit.aed-preview #site-main .btn,
body.aed-edit.aed-preview #site-main .btn:hover,
body.aed-edit.aed-preview #site-main .btn:focus-within,
body.aed-edit.aed-preview #site-main .announcement__cta,
body.aed-edit.aed-preview #site-main .social {
  outline: none !important;
  outline-offset: 0 !important;
  background-clip: padding-box;
}
body.aed-edit.aed-preview [data-edit],
body.aed-edit.aed-preview [data-edit]:hover,
body.aed-edit.aed-preview [contenteditable="true"]:focus {
  background: transparent !important;
}
.aed-bp { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 20; background: #f5f5f7; color: #1d1d1f; display: none; flex-direction: column; }
.aed-bp.is-on { display: flex; }
/* block/section settings float NEXT TO the thing being edited — the sidebar is for site-level tabs only */
.aed-bp--float { position: fixed; top: 90px; left: auto; right: auto; bottom: auto; width: 348px; max-width: calc(100vw - 24px); max-height: min(72vh, 660px); z-index: 640; border-radius: 18px; border: 1px solid rgba(0,0,0,.1); box-shadow: 0 24px 70px rgba(0,0,0,.28); overflow: hidden; }
.aed-calm .aed-tab[data-tab="analytics"] { display: none; }
.aed-calm .aed-bp--float {
  left: 0 !important;
  top: 0 !important;
  bottom: 0;
  width: 360px;
  max-width: min(360px, calc(100vw - 32px));
  max-height: none;
  border-radius: 0;
  border-width: 0 1px 0 0;
  z-index: 650;
  box-shadow: 18px 0 60px rgba(0,0,0,.16);
}
.aed-calm .aed-bp--float .aed-bp__head { cursor: default; }
.aed-calm .aed-bp--float .aed-bp__body { padding-bottom: 128px; }
.aed-calm .aed-grp--advanced:not([open]) { opacity: .72; }
.aed-calm .aed-grp--advanced:not([open]) summary { padding-block: 10px; font-weight: 700; }
.aed-calm .aed-grp--advanced:not([open]) summary span { color: #6E6E73; }
.aed-bp--float .aed-bp__head { cursor: grab; user-select: none; }
.aed-bp--float .aed-bp__head:active { cursor: grabbing; }
.aed-bp--float .aed-bp__head .aed-back { margin-left: auto; }
.aed-bp--float .aed-bp__head .aed-btype { margin-left: 0; }
.aed-bp__head { padding: 14px 16px; border-bottom: 1px solid rgba(0,0,0,.07); display: flex; align-items: center; gap: 10px; background: rgba(255,255,255,.78); backdrop-filter: blur(18px); }
.aed-bp__head .aed-back { background: #e8e8ed; border: 0; color: #1d1d1f; width: 32px; height: 32px; border-radius: 50%; cursor: pointer; }
.aed-bp__head b { font-size: .95rem; }
.aed-bp__head .aed-btype { margin-left: auto; font-size: .72rem; color: #86868b; }
.aed-bp__body { flex: 1; overflow: auto; padding: 14px 16px 28px; }
.aed-grp { margin-bottom: 10px; border: 1px solid rgba(0,0,0,.08); border-radius: 16px; background: #fff; padding: 0; overflow: hidden; box-shadow: 0 1px 0 rgba(0,0,0,.03); }
.aed-grp__t { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: #86868b; margin: 16px 0 10px; font-weight: 700; }
.aed-grp:first-child .aed-grp__t { margin-top: 0; }
.aed-f { margin: 0 0 12px; }
.aed-f > label { display: block; font-size: .8rem; color: #525257; margin-bottom: 5px; }
.aed-f .aed-input, .aed-f .aed-select, .aed-f textarea { width: 100%; background: #fff; border: 1px solid #d8d8df; color: #1d1d1f; border-radius: 10px; padding: 9px 11px; font: inherit; font-size: .86rem; }
.aed-f textarea { resize: vertical; min-height: 60px; }
.aed-seg { display: flex; flex-wrap: wrap; gap: 4px; }
.aed-seg button { flex: 1 1 auto; background: #fff; border: 1px solid #d8d8df; color: #525257; border-radius: 9px; padding: 7px 8px; font-size: .76rem; font-weight: 500; cursor: pointer; }
.aed-seg button.is-on { background: var(--accent); border-color: var(--accent); color: #fff; }
.aed-f__img { display: flex; gap: 8px; align-items: center; }
.aed-f__img img { width: 54px; height: 40px; object-fit: cover; border-radius: 8px; background: #e8e8ed; }
.aed-toggle { display: flex; align-items: center; gap: 10px; }
.aed-toggle input { width: 18px; height: 18px; }
.aed-colorrow { display: grid; grid-template-columns: 44px 1fr; gap: 8px; align-items: center; }
.aed-color { width: 44px; height: 38px; padding: 0; border: 1px solid #d8d8df; border-radius: 10px; background: #fff; overflow: hidden; }
.aed-colorswatches { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.aed-colorswatch { width: 28px; height: 28px; border: 1px solid rgba(0,0,0,.16); border-radius: 8px; background: #fff; color: #525257; padding: 0; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.3); }
.aed-colorswatch.is-on { outline: 2px solid var(--accent); outline-offset: 2px; }
.aed-colorswatch--auto { width: auto; min-width: 44px; padding: 0 8px; border-style: dashed; font-size: .68rem; font-weight: 700; background: #fff; }
.aed-layoutpresetgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.aed-layoutpresetgrid button { min-height: 42px; border: 1px solid #d8d8df; border-radius: 10px; background: #fff; color: #34343a; cursor: pointer; text-align: left; padding: 7px 9px; }
.aed-layoutpresetgrid button b { display: block; font-size: .76rem; line-height: 1.15; }
.aed-layoutpresetgrid button span { display: block; margin-top: 2px; font-size: .66rem; color: #777982; line-height: 1.15; }
.aed-layoutpresetgrid button.is-on { border-color: var(--accent); background: #eef4ff; color: var(--accent-ink); box-shadow: inset 0 0 0 1px rgba(50,116,216,.2); }
.aed-linkpick { display: grid; gap: 6px; }
.aed-buttonedit { display: grid; gap: 2px; }
.aed-buttonedit__foot { position: sticky; bottom: -28px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 10px -16px -28px; padding: 24px 16px 16px; background: linear-gradient(180deg, rgba(245,245,247,0), #f5f5f7 34%); }
.aed-litem { background: #f5f5f7; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; padding: 10px; margin-bottom: 8px; }
.aed-litem__bar { display: flex; gap: 6px; margin-top: 6px; }
.aed-addrow { width: 100%; background: var(--accent); color: #fff; border: 0; border-radius: 8px; padding: 9px; font-weight: 600; font-size: .82rem; cursor: pointer; }
.aed-accordion summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 14px; cursor: pointer; font-weight: 800; }
.aed-accordion summary::-webkit-details-marker { display: none; }
.aed-accordion summary span { font-size: .82rem; }
.aed-accordion summary b::before { content: "+"; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #f1f1f4; color: #6E6E73; font-size: 1rem; line-height: 1; }
.aed-accordion[open] summary b::before { content: "−"; background: #eef4ff; color: var(--accent-ink); }
.aed-accordion__body { padding: 0 14px 14px; }

/* ---- Form block fields ---- */
.siteform { display: grid; gap: 12px; }
.fld { width: 100%; font: inherit; font-size: 1rem; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); color: var(--ink); }
.fld:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
.formok { margin: 0; padding: 12px 16px; border-radius: 12px; background: rgba(79,180,119,.14); color: var(--green-muted); font-weight: 600; }
.svc { margin: 0 auto; }

/* ---- Style guide page ---- */
.sg { max-width: 1000px; margin: 0 auto; }
.sg-h { font-family: var(--font-body); font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .14em; color: var(--muted); margin: 46px 0 18px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.sg-pal { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.sg-sw { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.sg-sw span { display: block; height: 64px; }
.sg-sw b { display: block; padding: 10px 12px 2px; font-size: .9rem; }
.sg-sw code, .sg-row code, .sg-bg code, .sg-img code { display: block; font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: .72rem; color: var(--muted); padding: 0 12px 10px; }
.sg-row { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 14px 0; border-bottom: 1px dashed var(--line); }
.sg-row code { padding: 0; white-space: nowrap; }
.sg-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.sg-btns .btn { cursor: default; }
.sg-bgs { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.sg-bg { border: 1px solid var(--line); border-radius: 12px; padding: 22px 14px; }
.sg-bg b { display: block; }
.sg-bg code { padding: 6px 0 0; }
.sg-imgs { display: flex; gap: 16px; flex-wrap: wrap; }
.sg-img { margin: 0; width: 190px; }
.sg-img .img-frame { display: block; }
.sg-img code { padding: 8px 0 0; }

/* ---- Media library ---- */
.aed-mediamodal .aed-modal__head .aed-btn2 { margin-left: 8px; }
.aed-mediamodal .aed-modal__head .aed-x { margin-left: 8px; }
.aed-media { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
/* ---- Squarespace-style social icon row (footer + Social icons block) ---- */
.socialrow { display: flex; align-items: center; flex-wrap: wrap; gap: var(--socialrow-gap, 12px); }
.socialrow--center { justify-content: center; }
.socialrow--right { justify-content: flex-end; }
.socialrow__item { display: inline-grid; place-items: center; color: var(--socialrow-fg, currentColor); opacity: .9; transition: transform .2s var(--ease), opacity .2s, background .2s, color .2s, border-color .2s; }
.socialrow__item svg { width: var(--socialrow-size, 22px); height: var(--socialrow-size, 22px); display: block; }
.socialrow__item:hover { transform: translateY(-2px); opacity: 1; }
.socialrow--circle .socialrow__item,
.socialrow--square .socialrow__item { width: calc(var(--socialrow-size, 22px) * 1.9); height: calc(var(--socialrow-size, 22px) * 1.9); background: color-mix(in srgb, currentColor 10%, transparent); border: 1px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: 50%; }
.socialrow--square .socialrow__item { border-radius: 10px; }
.socialrow--circle .socialrow__item svg,
.socialrow--square .socialrow__item svg { width: calc(var(--socialrow-size, 22px) * .84); height: calc(var(--socialrow-size, 22px) * .84); }
.socialrow--circle .socialrow__item:hover,
.socialrow--square .socialrow__item:hover { background: var(--accent); border-color: var(--accent); color: #fff; }

/* ---- footer on small screens: centred single-column stack (Squarespace-style) ---- */
@media (max-width: 640px) {
  .footer, .band--type-footer { text-align: center; }
  .footer__grid { gap: 38px; }
  .footer__brand { display: grid; justify-items: center; }
  .footer__blurb { margin-inline: auto; }
  .footer__socials, .footer .socialrow { justify-content: center; }
  .footer__cols { grid-template-columns: 1fr; gap: 28px; }
  .footer__cols ul { gap: 9px; }
  .footer__base { flex-direction: column; align-items: center; text-align: center; gap: 10px; }
}
/* same stack inside the editor's Phone view (media queries can't see the narrow frame) */
body.aed-edit.aed-vp-phone .footer, body.aed-edit.aed-vp-phone .band--type-footer { text-align: center; }
body.aed-edit.aed-vp-phone .footer__grid { grid-template-columns: 1fr; gap: 38px; }
body.aed-edit.aed-vp-phone .footer__brand { display: grid; justify-items: center; }
body.aed-edit.aed-vp-phone .footer__blurb { margin-inline: auto; }
body.aed-edit.aed-vp-phone .footer__socials, body.aed-edit.aed-vp-phone .footer .socialrow { justify-content: center; }
body.aed-edit.aed-vp-phone .footer__cols { grid-template-columns: 1fr; gap: 28px; }
body.aed-edit.aed-vp-tablet .footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }

/* multi-select (shift-click) + bulk action bar */
body.aed-edit #site-main .block.aed-multisel { outline: 2px dashed var(--accent) !important; outline-offset: 3px; }
.aed-bulkbar { position: fixed; left: 50%; bottom: 18px; transform: translate(-50%, 80px); z-index: 130; display: flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 999px; background: rgba(20,20,22,.94); color: #fff; box-shadow: 0 18px 50px rgba(0,0,0,.35); backdrop-filter: blur(10px); opacity: 0; pointer-events: none; transition: transform .22s var(--ease), opacity .22s; }
.aed-bulkbar.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.aed-bulkbar b { font-size: .78rem; font-weight: 800; padding-right: 4px; white-space: nowrap; }
.aed-bulkbar button { border: none; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; font-size: .78rem; font-weight: 600; padding: 7px 11px; cursor: pointer; white-space: nowrap; }
.aed-bulkbar button:hover { background: rgba(255,255,255,.24); }
.aed-bulkbar .aed-bulkbar__del { background: rgba(179,38,30,.55); }
.aed-bulkbar .aed-bulkbar__del:hover { background: #b3261e; }
.aed-bulkbar__div { width: 1px; height: 18px; background: rgba(255,255,255,.22); }

.aed-masset { display: grid; gap: 7px; border: 1px solid var(--line); border-radius: 14px; padding: 8px; background: #fff; position: relative; }
.aed-masset__del { position: absolute; top: 4px; right: 4px; z-index: 2; width: 24px; height: 24px; border-radius: 50%; border: none; background: rgba(20,20,22,.72); color: #fff; font-size: 12px; line-height: 1; cursor: pointer; }
.aed-masset__del:hover { background: #b3261e; }
.aed-mthumb { padding: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; cursor: pointer; background: #fff; aspect-ratio: 4/3; }
.aed-mthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.aed-mthumb:hover { outline: 2px solid var(--accent); }
.aed-masset__icon { height: 100%; min-height: 92px; display: grid; place-items: center; background: #f3f4f7; color: #4c5260; font-weight: 800; }
.aed-masset .aed-input,
.aed-masset .aed-select { min-height: 34px; padding: 8px 10px; font-size: .82rem; border-radius: 9px; }
.aed-masset__alt { color: #6e7178; }
@media (max-width: 760px) { .aed-media { grid-template-columns: repeat(2, 1fr); } }

/* ---- Typography preset editor samples (capped size to fit the panel) ---- */
.aed-typeinfo { margin: 0 0 12px; padding: 12px 13px; border: 1px solid rgba(50,116,216,.16); border-radius: 16px; background: #eef4ff; color: #1d1d1f; box-shadow: 0 1px 0 rgba(0,0,0,.03); }
.aed-typeinfo b { display: block; font-size: .86rem; line-height: 1.2; }
.aed-typeinfo span { display: block; margin-top: 4px; color: #525257; font-size: .76rem; line-height: 1.35; }
.aed-typefoot { position: sticky; bottom: -28px; margin: 4px -16px -28px; padding: 24px 16px 16px; background: linear-gradient(180deg, rgba(245,245,247,0), #f5f5f7 34%); }
.aed-typanel .ty-sample { font-size: 1.35rem !important; color: #1d1d1f; margin: 0 0 10px; }
.aed-typanel .aed-grp { padding: 14px; }

/* ---- Floating selection toolbar (format a selected word) ---- */
.aed-seltool { position: fixed; z-index: 660; background: rgba(21,23,28,.96); color: #fff; border-radius: 12px; padding: 8px 9px; display: none; align-items: center; gap: 6px; box-shadow: 0 18px 55px rgba(0,0,0,.28); border: 1px solid rgba(255,255,255,.1); max-width: calc(100vw - 16px); backdrop-filter: blur(18px); flex-wrap: wrap; overflow: visible; }
.aed-seltool.is-on { display: flex; }
.aed-seltool::after { content: ""; position: absolute; left: var(--aed-tool-caret-x, 32px); width: 12px; height: 12px; background: rgba(21,23,28,.96); border-right: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1); border-radius: 2px; transform: translateX(-50%) rotate(45deg); }
.aed-seltool[data-placement="above"]::after { bottom: -6px; }
.aed-seltool[data-placement="below"]::after { top: -6px; transform: translateX(-50%) rotate(225deg); }
.aed-calm .aed-seltool--dock { left: 12px; right: auto; top: auto; bottom: 14px; width: min(336px, calc(100vw - 24px)); max-width: min(336px, calc(100vw - 24px)); border-radius: 10px; padding: 8px; gap: 5px; box-shadow: 0 18px 54px rgba(0,0,0,.22); }
.aed-calm .aed-seltool--dock::after { display: none; }
.aed-calm .aed-seltool--dock .aed-seltool__style { max-width: 154px; flex: 1 1 154px; }
.aed-calm .aed-seltool--dock .aed-seltool__icon { max-width: 78px; }
.aed-calm .aed-seltool--dock .aed-seltool__div { display: none; }
.aed-calm .aed-seltool--dock > button { min-width: 32px; height: 32px; padding: 0 7px; }
.aed-seltool__style,
.aed-seltool__icon { background: rgba(255,255,255,.1); color: #fff; border: 0; border-radius: 8px; padding: 7px 9px; font: inherit; font-size: .82rem; max-width: 170px; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.11); }
.aed-seltool__icon { max-width: 82px; }
.aed-seltool__div { width: 1px; height: 28px; background: rgba(255,255,255,.18); margin: 0 2px; }
.aed-seltool > button { min-width: 34px; height: 34px; border: 0; border-radius: 8px; background: transparent; color: #fff; cursor: pointer; font-size: 15px; display: grid; place-items: center; padding: 0 8px; }
.aed-seltool > button[data-f="link"],
.aed-seltool > button[data-f="image"],
.aed-seltool > button[data-align] { width: auto; padding: 0 10px; font-size: 12px; font-weight: 500; }
.aed-seltool > button:hover,
.aed-seltool > button.is-on { background: var(--accent); color: #fff; }
.aed-seltool__sw { display: flex; gap: 3px; padding: 0 4px; }
.aed-seltool .aed-sw2 { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.42); cursor: pointer; padding: 0; transition: transform .15s; }
.aed-seltool .aed-sw2:hover { transform: scale(1.12); }

/* ---- Hero headline now flat + in-place editable (keeps a soft entrance) ---- */
.hero__title--flat { opacity: 0; transform: translateY(24px); animation: heroTitleUp .9s var(--ease) .2s forwards; }
@keyframes heroTitleUp { to { opacity: 1; transform: none; } }
body.aed-edit .hero__title--flat { opacity: 1 !important; transform: none !important; animation: none; }
@media (prefers-reduced-motion: reduce) { .hero__title--flat { opacity: 1; transform: none; animation: none; } }
/* Decorative quote marks (markup stays clean + editable) */
.quoteblock blockquote::before { content: "\201C"; }
.quoteblock blockquote::after { content: "\201D"; }

/* Journey window: adjustable height + vertical text position. Each context keeps its NATIVE fallback so an
   unset value never changes current behaviour (live/preview = 100svh, editor = 82svh); a set value applies everywhere. */
.journey,
.journey__rail,
.journey__panel,
.journey__panel--side,
body.aed-edit.aed-preview .journey,
body.aed-edit.aed-preview .journey__rail,
body.aed-edit.aed-preview .journey__panel,
body.aed-edit.aed-preview .journey__panel--side {
  min-height: var(--journey-min-height, 100svh);
}
body.aed-edit .journey,
body.aed-edit .journey__rail,
body.aed-edit .journey__panel,
body.aed-edit .journey__panel--side,
body.aed-edit.aed-vp-phone .journey__panel,
body.aed-edit.aed-vp-phone .journey__panel--side {
  min-height: var(--journey-min-height, 82svh);
}
.journey__panel { align-items: var(--journey-valign, center); }

/* ---- owner "Look" controls for card/feed blocks (Events, Groups, Forms, Calendar, cards…) ----
   These read the --look-* vars the block emits; fallbacks = the existing defaults, so untouched
   blocks render exactly as before. Late in the sheet on purpose: wins same-specificity ties. */
.ecard, .vcard, .fcard, .summarycard, .menulist--cards .menulist__row {
  background: var(--look-card-bg, var(--white));
  border-radius: var(--look-card-radius, var(--radius-lg));
  border-color: var(--look-card-border, var(--line));
  box-shadow: var(--look-card-shadow, var(--shadow-sm));
}
.ecard__title, .vcard__title, .fcard__title, .calrow__title, .summarycard__body h3, .step__title {
  font-family: var(--look-title-font, var(--font-display));
  color: var(--look-title-color, inherit);
}
[style*="--look-title-weight"] .ecard__title, [style*="--look-title-weight"] .vcard__title, [style*="--look-title-weight"] .fcard__title,
[style*="--look-title-weight"] .calrow__title, [style*="--look-title-weight"] .summarycard__body h3, [style*="--look-title-weight"] .step__title { font-weight: var(--look-title-weight); }
[style*="--look-body-weight"] .ecard__text, [style*="--look-body-weight"] .vcard__body, [style*="--look-body-weight"] .fcard__desc,
[style*="--look-body-weight"] .summarycard__body p, [style*="--look-body-weight"] .step__body, [style*="--look-body-weight"] .gcard__aud { font-weight: var(--look-body-weight); }
/* "Parts to show" — owner switches for anything the app feed sends that a page doesn't need */
[style*="--look-hide-img"] .ecard__img, [style*="--look-hide-img"] .vcard__icon, [style*="--look-hide-img"] .fcard__img,
[style*="--look-hide-img"] .summarycard__img { display: none; }
[style*="--look-hide-meta"] .ecard__date, [style*="--look-hide-meta"] .calrow__meta { display: none; }
[style*="--look-hide-label"] .gcard__aud { display: none; }
[style*="--look-hide-text"] .ecard__text, [style*="--look-hide-text"] .vcard__body, [style*="--look-hide-text"] .fcard__desc,
[style*="--look-hide-text"] .summarycard__body p, [style*="--look-hide-text"] .step__body { display: none; }
[style*="--look-hide-cta"] .ecard__cta, [style*="--look-hide-cta"] .calrow__cta, [style*="--look-hide-cta"] .grow__cta { display: none; }
[style*="--look-hide-search"] .gbar { display: none; }
/* the small meta/date line above each card title */
.ecard__date, .calrow__meta { font-family: var(--look-meta-font, inherit); }
[style*="--look-meta-size"] .ecard__date, [style*="--look-meta-size"] .calrow__meta { font-size: var(--look-meta-size); }
[style*="--look-meta-weight"] .ecard__date, [style*="--look-meta-weight"] .calrow__meta { font-weight: var(--look-meta-weight); }
.step__title { font-family: var(--look-title-font, var(--font-body)); }
.ecard__date, .calrow__cta, .step__num, .summarycard__body a { color: var(--look-accent, var(--accent)); }
/* size/font/colour overrides apply ONLY when the block sets them (attribute-scoped),
   so untouched cards keep the standard type scale */
[style*="--look-title-size"] .ecard__title, [style*="--look-title-size"] .vcard__title, [style*="--look-title-size"] .fcard__title,
[style*="--look-title-size"] .calrow__title, [style*="--look-title-size"] .summarycard__body h3, [style*="--look-title-size"] .step__title { font-size: var(--look-title-size); }
.ecard__text, .vcard__body, .fcard__desc, .summarycard__body p, .step__body, .menulist__row small, .gcard__aud {
  font-family: var(--look-body-font, var(--font-body));
  color: var(--look-body-color, var(--muted));
}
[style*="--look-body-size"] .ecard__text, [style*="--look-body-size"] .vcard__body, [style*="--look-body-size"] .fcard__desc,
[style*="--look-body-size"] .summarycard__body p, [style*="--look-body-size"] .step__body { font-size: var(--look-body-size); }
.ecard, .vcard, .fcard, .summarycard { min-height: var(--look-card-minh, auto); }
/* owner hover overrides — attribute-scoped + !important so they beat the inline custom colour on :hover */
.btn[style*="--btn-hover-bg"]:hover { background: var(--btn-hover-bg) !important; border-color: var(--btn-hover-bg) !important; }
.btn[style*="--btn-hover-text"]:hover { color: var(--btn-hover-text) !important; }
.btn[style*="--btn-hover-text"]:hover .btn__icon { color: var(--btn-hover-text); }

/* editing: EMPTY text fields stay visible and clickable instead of collapsing to nothing */
body.aed-edit:not(.aed-preview) #site-main [data-edit]:empty { min-height: 1.15em; min-width: 70px; display: inline-block; }
body.aed-edit:not(.aed-preview) #site-main [data-edit]:empty::before { content: "Type here"; opacity: .35; font-style: italic; font-size: .8em; letter-spacing: 0; }
/* the in-flow edit header must be pushed below the 56px editor top bar in FLOW (margin), not in
   paint (top offset) — a painted offset left a 56px ghost overlap over the first section */
body.aed-edit:not(.aed-preview) .nav { position: relative; top: 0; margin-top: 56px; }
/* hero-led pages (dark/photo opener): while editing, the header overlays the opener just like the
   live site — content on such pages starts low enough that it stays clickable. Plain-opener pages
   keep the header in its own strip (from the click-stealing fix). */
body.aed-edit #app { position: relative; }
body.aed-edit:not(.aed-preview).page-heroled.aed-vp-desktop .nav { position: absolute; top: 56px; left: 0; right: 0; margin-top: 0; background: var(--nav-edit-bg, transparent); z-index: 60; }
/* device frames keep the header as a pinned strip — the overlay broke frame geometry + sat over controls */
body.aed-edit:not(.aed-preview).aed-vp-tablet .nav,
body.aed-edit:not(.aed-preview).aed-vp-phone .nav { position: relative; top: 0; margin-top: 56px; }
/* desktop overlay mode: the journey edits at its LIVE height (100svh) so content — incl. heading
   artwork — sits exactly where visitors will see it, clear of the floating header */
body.aed-edit:not(.aed-preview).page-heroled.aed-vp-desktop .journey,
body.aed-edit:not(.aed-preview).page-heroled.aed-vp-desktop .journey__rail,
body.aed-edit:not(.aed-preview).page-heroled.aed-vp-desktop .journey__panel,
body.aed-edit:not(.aed-preview).page-heroled.aed-vp-desktop .journey__panel--side { min-height: var(--journey-min-height, 100svh); }
/* slider editing: numbered slide tabs + calmer bar; live arrows/dots hidden while editing */
.aed-slide-chip { min-width: 26px; height: 26px; border-radius: 8px; border: 1px solid rgba(0,0,0,.14); background: #fff; color: #1d1d1f; font-weight: 800; font-size: .78rem; cursor: pointer; }
.aed-slide-chip.is-on { background: var(--accent); border-color: var(--accent); color: #fff; }
.aed-slider-tools__div { width: 1px; height: 18px; background: rgba(0,0,0,.14); margin: 0 2px; }
body.aed-edit:not(.aed-preview) .band--slider .slider__arrow,
body.aed-edit:not(.aed-preview) .band--slider .slider__dots { display: none; }
/* colour swatch companion for hex text fields */
.aed-color-mini { width: 34px; height: 34px; min-width: 34px; padding: 2px; border: 1px solid rgba(0,0,0,.16); border-radius: 9px; background: #fff; cursor: pointer; margin-right: 6px; }
/* photo sections clip overflow on the live site — while editing, let the block toolbar pill escape */
body.aed-edit:not(.aed-preview) .band--has-media { overflow: visible; }

/* ============================================================================
   LIVE APP BLOCKS — groups browse, guest sheet, month calendar (1 Aug 2026)
   ========================================================================== */
.gbar { display: flex; gap: 12px; align-items: center; margin: 0 0 28px; flex-wrap: wrap; }
.gbar__search { flex: 1; min-width: 220px; font: inherit; font-size: 1rem; padding: 13px 18px; border: 1px solid var(--line); border-radius: 999px; background: var(--white); outline: none; transition: border-color .2s, box-shadow .2s; }
.gbar__search:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(50,116,216,0.15); }
.gbar__toggle { display: flex; background: var(--off-white); border-radius: 999px; padding: 4px; }
.gbar__mode { font: inherit; font-size: .92rem; font-weight: 600; border: 0; background: transparent; color: var(--muted); border-radius: 999px; padding: 8px 18px; cursor: pointer; transition: background .2s, color .2s; }
.gbar__mode.is-on { background: var(--white); color: var(--ink); box-shadow: 0 1px 4px rgba(20,20,20,0.10); }
.gcard__aud { font-size: .85rem; font-weight: 600; color: var(--muted); margin: -4px 0 10px; }
.gcard__text { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.glist { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.grow { display: flex; align-items: center; gap: 16px; padding: 18px 24px; }
.grow + .grow { border-top: 1px solid var(--line); }
.grow__body { flex: 1; min-width: 0; }
.grow__name { font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; margin: 0; }
.grow__meta { font-size: .88rem; color: var(--muted); margin: 3px 0 0; }
.grow__cta { flex-shrink: 0; }
.btn--ghost { background: transparent; color: var(--ink); border: 1px solid var(--line); border-radius: 999px; padding: 10px 20px; font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer; transition: border-color .2s, background .2s; }
.btn--ghost:hover { border-color: var(--accent); color: var(--accent); }
.gsheet { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 20px; }
.gsheet__backdrop { position: absolute; inset: 0; background: rgba(16,16,20,0.55); animation: gsFade .2s ease-out; }
.gsheet__panel { position: relative; width: 100%; max-width: 460px; max-height: min(86vh, 700px); overflow: auto; background: var(--white); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-md); animation: gsUp .25s var(--ease); }
@keyframes gsFade { from { opacity: 0; } }
@keyframes gsUp { from { opacity: 0; transform: translateY(18px); } }
@media (prefers-reduced-motion: reduce) { .gsheet__backdrop, .gsheet__panel { animation: none; } }
.gsheet__x { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--off-white); color: var(--ink); font-size: 20px; cursor: pointer; }
.gsheet__title { font-family: var(--font-display); font-size: 1.55rem; font-weight: 600; margin: 0 42px 4px 0; }
.gsheet__meta { font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); margin: 0 0 10px; }
.gsheet__pin { text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--accent); text-decoration: none; margin-left: 6px; }
.gsheet__pin:hover { text-decoration: underline; }
.gsheet__intro { font-size: .98rem; line-height: 1.55; color: var(--muted); margin: 0 0 20px; }
.gsheet__form { display: grid; gap: 14px; }
.gsheet__lbl { display: grid; gap: 6px; font-size: .9rem; font-weight: 600; color: var(--ink); }
.gsheet__opt { font-weight: 400; color: var(--muted); }
.gsheet__in { font: inherit; font-size: 1rem; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); outline: none; transition: border-color .2s, box-shadow .2s; width: 100%; }
.gsheet__in:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(50,116,216,0.15); }
.gsheet__in--area { resize: vertical; }
.gsheet__hint { font-size: .8rem; font-weight: 400; color: var(--muted); }
.gsheet__err { color: #B3261E; font-size: .92rem; margin: 0; }
.gsheet__send { margin-top: 4px; }
.gsheet__fine { text-align: center; font-size: .78rem; color: var(--muted); }
.gsheet__done { font-size: 1rem; line-height: 1.6; color: var(--ink); }
.gsheet__applink { display: inline-block; margin-top: 16px; font-weight: 600; color: var(--accent); text-decoration: none; }
.gsheet__applink:hover { text-decoration: underline; }
.cal { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; }
.cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.cal__month { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; }
.cal__nav { width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--off-white); font-size: 20px; cursor: pointer; color: var(--ink); transition: background .2s; }
.cal__nav:hover { background: var(--soft-blue); }
.cal__dow { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-size: .7rem; font-weight: 700; letter-spacing: .08em; color: var(--muted); margin-bottom: 6px; }
.cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.cal__day { position: relative; aspect-ratio: 1; border: 0; background: transparent; border-radius: 12px; font: inherit; font-size: .95rem; color: var(--ink); display: grid; place-items: center; cursor: default; }
.cal__day--has { cursor: pointer; }
.cal__day--has:hover { background: var(--soft-blue); }
.cal__day--out { color: var(--line); }
.cal__day--today .cal__num { font-weight: 800; color: var(--accent); }
.cal__day.is-on { background: var(--accent); color: #fff; }
.cal__day.is-on .cal__num { color: #fff; }
.cal__dots { position: absolute; bottom: 15%; display: flex; gap: 3px; }
.cal__dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.cal__day.is-on .cal__dot { background: #fff; }
.cal__list { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 6px; }
.cal__row { display: flex; align-items: center; gap: 14px; padding: 13px 4px; }
.cal__row + .cal__row { border-top: 1px solid var(--line); }
.cal__rowtime { font-size: .85rem; font-weight: 700; color: var(--accent); min-width: 64px; }
.cal__rowtitle { flex: 1; font-weight: 600; display: grid; }
.cal__rowloc { font-size: .82rem; font-weight: 400; color: var(--muted); }
.cal__subscribe { display: inline-block; margin-top: 14px; font-size: .85rem; font-weight: 600; color: var(--muted); text-decoration: none; }
.cal__subscribe:hover { color: var(--accent); }
@media (max-width: 560px) {
  .gsheet__panel { padding: 24px 20px; }
  .grow { padding: 14px 16px; }
  .cal { padding: 16px; }
}
