/*!
 * Manhattan Meditation Center — Joomla template
 * Design language: "Dawn over the city" — midnight indigo, soft aurora light, warm dawn gold, ivory calm.
 */

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root {
  --mm-night: #2c2663;        /* twilight indigo – the site's darkest surface (never near-black) */
  --mm-night-2: #3a3280;
  --mm-indigo: #2b2870;
  --mm-violet: #7a6ff0;
  --mm-lilac: #b9b0ff;
  --mm-gold: #f08a6c;        /* legacy names: the palette's warm light is the beacon's coral */
  --mm-gold-2: #ffd9c2;
  --mm-gold-deep: #a8432c;
  --mm-rose: #f2a7a1;
  --mm-coral: #f08a6c;       /* the center's light: Brahma Kumaris sunburst + meditation-room diamond */
  --mm-coral-2: #f7b39c;
  --mm-ember: #a8432c;       /* coral for text on light backgrounds (AA on ivory and sand) */
  --mm-teal: #7fd1c7;
  --mm-ivory: #fbf7ef;
  --mm-sand: #f3ebdd;
  --mm-paper: #fffdf9;
  --mm-text: #26233f;
  --mm-muted: #66627f;
  --mm-line: rgb(38 35 63 / .12);
  --mm-line-light: rgb(255 255 255 / .14);

  --mm-font-display: "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --mm-font-body: "Manrope", "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;

  --mm-radius-s: 10px;
  --mm-radius: 18px;
  --mm-radius-l: 28px;
  --mm-shadow-s: 0 2px 10px rgb(23 21 61 / .06);
  --mm-shadow: 0 18px 50px -18px rgb(23 21 61 / .25);
  --mm-shadow-glow: 0 20px 60px -20px rgb(240 138 108 / .55);
  --mm-horizon-h: clamp(52px, 7vw, 104px); /* footer skyline height */

  --mm-wrap: 1200px;
  --mm-gutter: clamp(1rem, 4vw, 2.5rem);
  --mm-sec-pad: clamp(4rem, 8vw, 7rem);
  --mm-header-h: 84px;

  --mm-ease: cubic-bezier(.22, .61, .36, 1);
  --mm-ease-out: cubic-bezier(.16, 1, .3, 1);
}

/* Cross-document page transitions (progressive enhancement) */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .45s; }

/* ==========================================================================
   2. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--mm-header-h) + 1rem); }
body {
  margin: 0;
  font-family: var(--mm-font-body);
  font-size: clamp(1rem, .96rem + .2vw, 1.0625rem);
  line-height: 1.7;
  color: var(--mm-text);
  background: var(--mm-ivory);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-variant-ligatures: no-common-ligatures; /* Manrope's "liga" turns "501(c)(3)" into "501©(3)" */
  overflow-x: clip;
}
img, svg, video, canvas, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--mm-indigo); text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color .25s var(--mm-ease); }
a:hover { color: var(--mm-ember); }
:focus-visible { outline: 2px solid var(--mm-coral); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--mm-gold-2); color: var(--mm-night); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--mm-font-display);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.01em;
  color: var(--mm-night);
  margin: 0 0 .6em;
  text-wrap: balance;
  font-variant-ligatures: common-ligatures;
}
h1 { font-size: clamp(2.6rem, 1.6rem + 4.4vw, 5.4rem); font-weight: 400; }
h2 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem); }
h3 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.85rem); }
h4 { font-size: 1.3rem; }
p { margin: 0 0 1.2em; text-wrap: pretty; }
em, i { font-style: italic; }
hr { border: 0; height: 1px; background: var(--mm-line); margin: 2.5rem 0; }
blockquote { margin: 2rem 0; padding: .2rem 0 .2rem 1.5rem; border-left: 2px solid var(--mm-gold); font-family: var(--mm-font-display); font-size: 1.5rem; font-style: italic; color: var(--mm-indigo); }
table { border-collapse: collapse; width: 100%; }
figure { margin: 0; }

.mm-visually-hidden, .visually-hidden, .element-invisible {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.mm-skip {
  position: fixed; left: 1rem; top: -4rem; z-index: 1000; padding: .7rem 1.1rem; border-radius: 999px;
  background: var(--mm-gold); color: var(--mm-night); font-weight: 600; text-decoration: none; transition: top .2s;
}
.mm-skip:focus { top: 1rem; }

.mm-wrap { width: min(100% - 2 * var(--mm-gutter), var(--mm-wrap)); margin-inline: auto; }
.mm-wrap--narrow { width: min(100% - 2 * var(--mm-gutter), 820px); margin-inline: auto; }
.mm-center { text-align: center; }
.mm-center .mm-actions { justify-content: center; }

/* ==========================================================================
   3. Typography helpers
   ========================================================================== */
.mm-eyebrow {
  display: inline-flex; align-items: center; gap: .7rem;
  font-family: var(--mm-font-display); font-size: clamp(1.1rem, 1.02rem + .3vw, 1.3rem); font-style: italic; font-weight: 500; letter-spacing: .005em;
  color: var(--mm-ember); margin: 0 0 .8rem;
}
/* The diamond echoes the glowing diamond of light in the center's meditation room */
.mm-eyebrow::before { content: ""; flex: none; width: 7px; height: 7px; transform: rotate(45deg); background: linear-gradient(135deg, #ffe7c2, var(--mm-coral) 60%, #d9603f); box-shadow: 0 0 12px rgb(240 138 108 / .55); }
.mm-eyebrow--light, .mm-sec--night .mm-eyebrow, .mm-hero .mm-eyebrow, .mm-pagehero .mm-eyebrow { color: var(--mm-coral-2); }
.mm-h2 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem); }
.mm-display { font-family: var(--mm-font-display); font-weight: 300; }
.mm-accent { font-style: inherit; color: inherit; }
.mm-lead { font-size: clamp(1.08rem, 1rem + .4vw, 1.3rem); line-height: 1.65; color: var(--mm-muted); max-width: 62ch; }
.mm-center .mm-lead { margin-inline: auto; }
.mm-muted { color: var(--mm-muted); }
.mm-small { font-size: .88rem; }

/* ==========================================================================
   4. Buttons
   ========================================================================== */
.mm-btn, .btn, button.btn, .mm-content .readmore a, input[type="submit"] {
  --_bg: var(--mm-night);
  --_fg: #fff;
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 48px; padding: .8rem 1.6rem; border: 1px solid transparent; border-radius: 999px;
  font: 600 .95rem/1.2 var(--mm-font-body); letter-spacing: .01em; text-decoration: none; cursor: pointer;
  background: var(--_bg); color: var(--_fg);
  transition: transform .35s var(--mm-ease-out), box-shadow .35s var(--mm-ease-out), background-color .3s, color .3s, border-color .3s;
}
.mm-btn::before, .btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  background: linear-gradient(110deg, transparent 20%, rgb(255 255 255 / .35) 50%, transparent 80%);
  transform: translateX(-120%); transition: transform .8s var(--mm-ease-out);
}
.mm-btn:hover, .btn:hover { transform: translateY(-2px); color: var(--_fg); box-shadow: 0 12px 30px -12px rgb(15 13 42 / .5); }
.mm-btn:hover::before, .btn:hover::before { transform: translateX(120%); }
.mm-btn:active, .btn:active { transform: translateY(0); }
.mm-btn--gold, .btn-primary { --_bg: linear-gradient(135deg, #f9c3a8, var(--mm-coral) 55%, #ea7659); --_fg: #150f33; background: var(--_bg); }
.mm-btn--gold:hover { box-shadow: 0 20px 50px -18px rgb(240 138 108 / .75); }
.mm-btn--light { --_bg: #fff; --_fg: var(--mm-night); }
.mm-btn--ghost { --_bg: transparent; --_fg: currentColor; border-color: currentColor; }
.mm-btn--ghost-light { --_bg: rgb(255 255 255 / .06); --_fg: #fff; border-color: rgb(255 255 255 / .35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.mm-btn--ghost-light:hover { background: rgb(255 255 255 / .14); border-color: rgb(255 255 255 / .6); }
.mm-btn--sm { min-height: 40px; padding: .55rem 1.15rem; font-size: .88rem; }
/* Arrows only appear in answer to hover/focus */
.mm-btn .mm-arrow, .mm-link .mm-arrow { display: inline-block; max-width: 0; margin-left: -.55rem; opacity: 0; overflow: hidden; transform: translateX(-6px); transition: max-width .4s var(--mm-ease-out), margin .4s var(--mm-ease-out), opacity .3s, transform .4s var(--mm-ease-out); }
.mm-btn:is(:hover, :focus-visible) .mm-arrow, .mm-link:is(:hover, :focus-visible) .mm-arrow, a:is(:hover, :focus-visible) > .mm-link .mm-arrow { max-width: 1.2em; margin-left: 0; opacity: 1; transform: none; }
.mm-actions { display: flex; flex-wrap: wrap; gap: .9rem; align-items: center; margin-top: 2rem; }
.mm-link { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; text-decoration: none; color: var(--mm-indigo); }
.mm-link:hover { color: var(--mm-ember); }

/* ==========================================================================
   5. Header & navigation
   ========================================================================== */
.mm-topbar { position: relative; z-index: 60; background: var(--mm-night); color: var(--mm-gold-2); font-size: .85rem; text-align: center; padding: .45rem 0; }
.mm-topbar a { color: #fff; }
.mm-topbar p { margin: 0; }

.mm-header {
  position: fixed; inset: 0 0 auto; z-index: 50;
  color: #fff;
  transition: background-color .45s var(--mm-ease), box-shadow .45s var(--mm-ease), color .45s var(--mm-ease), transform .45s var(--mm-ease);
}
.mm-topbar + .mm-header { position: sticky; top: 0; margin-bottom: calc(-1 * var(--mm-header-h)); }
.mm-header::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0;
  background: rgb(251 247 239 / .78);
  backdrop-filter: saturate(1.6) blur(18px); -webkit-backdrop-filter: saturate(1.6) blur(18px);
  border-bottom: 1px solid var(--mm-line);
  transition: opacity .45s var(--mm-ease);
}
.mm-header.is-scrolled { color: var(--mm-night); box-shadow: 0 8px 30px -20px rgb(15 13 42 / .35); }
.mm-header.is-scrolled::before { opacity: 1; }
.mm-header.is-hidden { transform: translateY(-100%); box-shadow: none; }
.mm-header__inner { display: flex; align-items: center; gap: 1.5rem; min-height: var(--mm-header-h); }

.mm-brand { display: inline-flex; align-items: center; gap: .85rem; color: inherit; text-decoration: none; margin-right: auto; min-width: 0; }
.mm-brand:hover { color: inherit; }
.mm-brand__mark { position: relative; display: grid; place-items: center; width: 46px; height: 46px; flex: none; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px rgb(255 255 255 / .3), 0 0 30px rgb(246 217 166 / .35); overflow: hidden; }
.mm-brand__logo { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.mm-brand__mark--glyph { background: radial-gradient(circle, #fff9ea 0 12%, var(--mm-gold) 30%, transparent 70%), var(--mm-night); }
.mm-brand__text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.mm-brand__title { font-family: var(--mm-font-display); font-size: clamp(1.1rem, .95rem + .6vw, 1.45rem); font-weight: 500; letter-spacing: .005em; white-space: nowrap; }
.mm-brand__sub { font-size: .66rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; opacity: .75; margin-top: .3rem; }

.mm-nav { display: flex; align-items: center; gap: 1.25rem; }
.mm-nav ul { list-style: none; margin: 0; padding: 0; }
.mm-nav .mod-menu { display: flex; align-items: center; gap: .15rem; }
.mm-nav .mod-menu > li { position: relative; }
.mm-nav .mod-menu a, .mm-nav .mod-menu .mod-menu__heading, .mm-nav .mod-menu .mod-menu__separator {
  position: relative; display: block; padding: .55rem .85rem; border-radius: 999px;
  color: inherit; font-size: .93rem; font-weight: 500; text-decoration: none; white-space: nowrap;
  transition: background-color .25s, color .25s;
}
.mm-nav .mod-menu > li > a::after {
  content: ""; position: absolute; left: 50%; bottom: .2rem; width: 5px; height: 5px; border-radius: 1px; rotate: 45deg;
  background: var(--mm-coral); transform: translateX(-50%) scale(0); transition: transform .35s var(--mm-ease-out);
}
.mm-nav .mod-menu > li > a:hover::after, .mm-nav .mod-menu > li.active > a::after, .mm-nav .mod-menu > li > a[aria-current]::after { transform: translateX(-50%) scale(1); }
.mm-nav .mod-menu > li > a:hover { background: rgb(255 255 255 / .08); }
.mm-header.is-scrolled .mm-nav .mod-menu > li > a:hover { background: rgb(15 13 42 / .05); }
/* Dropdowns */
.mm-nav .mod-menu__sub {
  position: absolute; top: calc(100% + .5rem); left: 50%; min-width: 230px; padding: .5rem;
  background: rgb(255 253 249 / .96); color: var(--mm-text); border: 1px solid var(--mm-line); border-radius: var(--mm-radius);
  box-shadow: var(--mm-shadow); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .25s, transform .3s var(--mm-ease-out), visibility .25s;
}
.mm-nav .mod-menu > li:hover > .mod-menu__sub, .mm-nav .mod-menu > li:focus-within > .mod-menu__sub { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.mm-nav .mod-menu__sub a { border-radius: var(--mm-radius-s); color: var(--mm-text); }
.mm-nav .mod-menu__sub a:hover { background: var(--mm-sand); color: var(--mm-night); }
.mm-nav .deeper > a { padding-right: 1.6rem; }
.mm-nav .deeper > a::before { content: ""; position: absolute; right: .75rem; top: 50%; width: 6px; height: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: translateY(-70%) rotate(45deg); opacity: .6; }
.mm-nav__cta .mm-btn { min-height: 42px; padding: .6rem 1.25rem; font-size: .9rem; }
.mm-nav__cta p { margin: 0; }

.mm-navtoggle {
  display: none; position: relative; z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgb(255 255 255 / .28);
  background: rgb(255 255 255 / .04); color: inherit; cursor: pointer; padding: 0;
}
.mm-navtoggle__bars { position: absolute; inset: 0; display: grid; place-content: center; gap: 6px; }
.mm-navtoggle__bars span { display: block; width: 18px; height: 1.5px; background: currentColor; border-radius: 2px; transition: transform .35s var(--mm-ease-out); }
.mm-navtoggle[aria-expanded="true"] .mm-navtoggle__bars span:first-child { transform: translateY(3.75px) rotate(45deg); }
.mm-navtoggle[aria-expanded="true"] .mm-navtoggle__bars span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

@media (max-width: 1080px) {
  :root { --mm-header-h: 72px; }
  .mm-navtoggle { display: block; }
  .mm-nav {
    position: fixed; inset: 0; z-index: 2; flex-direction: column; align-items: stretch; justify-content: center; gap: 2rem;
    padding: calc(var(--mm-header-h) + 1rem) var(--mm-gutter) 2rem;
    background:
      radial-gradient(circle at 84% 14%, rgb(255 228 200 / .5) 0, rgb(240 138 108 / .22) 4%, transparent 22%),
      repeating-conic-gradient(from 0deg at 84% 14%, rgb(246 217 166 / .09) 0deg .35deg, transparent .35deg 5deg),
      radial-gradient(120% 80% at 80% 0%, #4a42a0 0%, transparent 60%), radial-gradient(90% 70% at 0% 100%, #6a4a8e 0%, transparent 60%), var(--mm-night);
    color: #fff; overflow-y: auto;
    clip-path: circle(0 at calc(100% - 3rem) 2.4rem); visibility: hidden;
    transition: clip-path .7s var(--mm-ease-out), visibility 0s .7s;
  }
  .mm-header.nav-open .mm-nav { clip-path: circle(150% at calc(100% - 3rem) 2.4rem); visibility: visible; transition: clip-path .8s var(--mm-ease-out), visibility 0s; }
  .mm-header.nav-open { color: #fff; }
  .mm-header.nav-open::before { opacity: 0; }
  .mm-nav .mod-menu { flex-direction: column; align-items: flex-start; gap: .1rem; }
  .mm-nav .mod-menu > li { width: 100%; opacity: 0; transform: translateY(14px); transition: opacity .5s, transform .6s var(--mm-ease-out); }
  .mm-header.nav-open .mm-nav .mod-menu > li { opacity: 1; transform: none; }
  .mm-header.nav-open .mm-nav .mod-menu > li:nth-child(2) { transition-delay: .06s; }
  .mm-header.nav-open .mm-nav .mod-menu > li:nth-child(3) { transition-delay: .12s; }
  .mm-header.nav-open .mm-nav .mod-menu > li:nth-child(4) { transition-delay: .18s; }
  .mm-header.nav-open .mm-nav .mod-menu > li:nth-child(5) { transition-delay: .24s; }
  .mm-header.nav-open .mm-nav .mod-menu > li:nth-child(6) { transition-delay: .3s; }
  .mm-header.nav-open .mm-nav .mod-menu > li:nth-child(7) { transition-delay: .36s; }
  .mm-nav .mod-menu > li > a { font-family: var(--mm-font-display); font-size: clamp(1.9rem, 7vw, 2.6rem); font-weight: 400; padding: .35rem 0; border-radius: 0; }
  .mm-nav .mod-menu > li > a::after { left: -1rem; bottom: 50%; transform: translateY(50%) scale(0); }
  .mm-nav .mod-menu > li > a:hover::after, .mm-nav .mod-menu > li.active > a::after { transform: translateY(50%) scale(1); }
  .mm-nav .mod-menu > li > a:hover { background: none; color: var(--mm-gold-2); }
  .mm-nav .mod-menu__sub { position: static; opacity: 1; visibility: visible; transform: none; background: none; border: 0; box-shadow: none; padding: 0 0 .5rem 1rem; backdrop-filter: none; }
  .mm-nav .mod-menu__sub a { color: rgb(255 255 255 / .75); }
  .mm-nav .mod-menu__sub a:hover { background: none; color: #fff; }
  .mm-nav .deeper > a::before { display: none; }
  .mm-nav__cta { opacity: 0; transition: opacity .5s .4s; }
  .mm-header.nav-open .mm-nav__cta { opacity: 1; }
  html.nav-locked { overflow: hidden; }
}
@media (max-width: 480px) {
  .mm-brand { gap: .65rem; }
  .mm-brand__title { font-size: 1.06rem; }
  .mm-brand__sub { font-size: .56rem; letter-spacing: .24em; margin-top: .22rem; }
}

/* ==========================================================================
   6. Hero (home) — "The beacon on Fifth Avenue"
   Midtown at night; the Empire State Building's mast holds a point of light whose Art Deco rays
   fill the sky. On load the busy city's windows quiet down, then the beacon ignites.
   ========================================================================== */
.mm-hero {
  position: relative; isolation: isolate; overflow: clip;
  min-height: max(700px, 100svh);
  display: grid; align-items: start;
  padding: calc(var(--mm-header-h) + clamp(2rem, 9vh, 6.5rem)) 0 clamp(12rem, 30vh, 20rem);
  color: #fff;
  background: linear-gradient(180deg, #29235f 0%, #352d7d 32%, #4e3f94 62%, #7b5b9f 86%, #a37aa3 100%);
}
.mm-hero__sky, .mm-pagehero__sky { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.mm-orb { position: absolute; border-radius: 50%; opacity: .55; will-change: transform; }
.mm-orb--1 { width: 55vmax; height: 55vmax; left: -18vmax; top: -22vmax; background: radial-gradient(circle, #5b4fd6 0%, transparent 65%); animation: mm-drift-1 26s ease-in-out infinite alternate; }
.mm-orb--2 { width: 45vmax; height: 45vmax; right: -14vmax; top: 5vmax; background: radial-gradient(circle, #c0679a 0%, transparent 65%); opacity: .38; animation: mm-drift-2 32s ease-in-out infinite alternate; }
.mm-orb--3 { width: 60vmax; height: 40vmax; left: 20%; bottom: -18vmax; background: radial-gradient(ellipse, #f0b86e 0%, transparent 62%); opacity: .45; animation: mm-drift-3 22s ease-in-out infinite alternate; }
@keyframes mm-drift-1 { to { transform: translate(12vmax, 8vmax) scale(1.15); } }
@keyframes mm-drift-2 { to { transform: translate(-10vmax, 10vmax) scale(.9); } }
@keyframes mm-drift-3 { 0% { transform: translate(-6vmax, 0) scale(1); } 100% { transform: translate(8vmax, -4vmax) scale(1.12); } }
.mm-hero__particles { position: absolute; inset: 0; width: 100%; height: 100%; }

/* The city */
.mm-city { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
/* Wider than the hero so the tower (and its beacon) stands at ~70% across, clear of the headline */
.mm-hero .mm-city { width: 118%; max-width: none; }
/* A soft night scrim behind the copy: the rays and windows stay vivid on the right, the text stays calm */
.mm-hero__sky::after { content: ""; position: absolute; inset: 0; background: radial-gradient(58% 70% at 20% 44%, rgb(36 30 90 / .5), rgb(36 30 90 / .2) 55%, transparent 78%); }
.mm-city__stars { opacity: .5; }
.mm-city__rays { opacity: .34; }
.mm-city__ray { stroke-width: 1; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
.mm-city__ray--s { stroke-opacity: .7; }
.mm-city__halo { transform-box: fill-box; transform-origin: center; animation: mm-halo 9s ease-in-out infinite; }
.mm-city__lit { opacity: .4; }
.mm-city__twinkle rect { opacity: .15; animation: mm-window 7s ease-in-out infinite; animation-delay: calc(var(--t) * -.83s); }
.mm-city__crown { animation: mm-crown 9s ease-in-out infinite; }
.mm-city__glow { transform-box: fill-box; transform-origin: center; animation: mm-glow 6s ease-in-out infinite; }
@keyframes mm-halo { 50% { transform: scale(1.08); opacity: .82; } }
@keyframes mm-glow { 50% { transform: scale(1.3); opacity: .8; } }
@keyframes mm-crown { 50% { opacity: .8; } }
@keyframes mm-window { 0%, 100% { opacity: .12; } 40%, 60% { opacity: .95; } }

/* Load sequence: the city quiets (windows dim from the tower outwards), the beacon ignites, rays unfold */
@media (prefers-reduced-motion: no-preference) {
  .mm-city__lit { animation: mm-quiet 2.6s var(--mm-ease) both; }
  .mm-city__lit--1 { animation-delay: .5s; }
  .mm-city__lit--2 { animation-delay: .8s; }
  .mm-city__lit--3 { animation-delay: 1.1s; }
  .mm-city__lit--4 { animation-delay: 1.4s; }
  .mm-city__beacon { animation: mm-ignite 1.6s var(--mm-ease-out) 1.1s both; }
  .mm-city__halo { animation: mm-halo-in 2.4s var(--mm-ease-out) 1.2s both, mm-halo 9s ease-in-out 3.6s infinite; }
  .mm-city__ray { stroke-dashoffset: 1; animation: mm-ray 2.6s var(--mm-ease-out) both; animation-delay: calc(1.4s + var(--r) * 45ms); }
}
@keyframes mm-quiet { from { opacity: 1; } to { opacity: .4; } }
@keyframes mm-ignite { from { opacity: 0; transform: scale(.2); } }
@keyframes mm-halo-in { from { opacity: 0; transform: scale(.6); } }
@keyframes mm-ray { to { stroke-dashoffset: 0; } }

/* Content */
.mm-hero__content { position: relative; }
.mm-hero__content > * { max-width: 40rem; }
.mm-hero__content .mm-eyebrow { color: var(--mm-gold-2); }
.mm-hero h1, .mm-hero__title {
  color: #fff; font-weight: 300; font-size: clamp(3rem, 1.2rem + 5vw, 6rem); line-height: .98; letter-spacing: -.025em;
  max-width: 12.5ch; margin: 0 0 .4em; text-shadow: 0 2px 30px rgb(30 25 80 / .5);
}
.mm-hero h1 em, .mm-hero__title em { font-style: italic; font-weight: 300; color: inherit; }
.mm-hero__lead { font-size: clamp(1.05rem, .95rem + .45vw, 1.28rem); line-height: 1.6; color: rgb(255 255 255 / .78); max-width: 34ch; }
.mm-hero .mm-actions { justify-content: flex-start; margin-top: 2.2rem; }
.mm-hero__note { display: flex; align-items: center; gap: .6rem; margin-top: 1.8rem; font-size: .86rem; color: rgb(255 255 255 / .6); }
.mm-hero__note span { flex: none; width: 7px; height: 7px; rotate: 45deg; background: var(--mm-coral-2); box-shadow: 0 0 12px var(--mm-coral); }

/* Legacy skyline band (inner pages, error pages) */
.mm-hero__city { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 0; pointer-events: none; line-height: 0; }
.mm-skyline { width: 100%; height: clamp(150px, 22vw, 290px); display: block; }
.mm-pagehero__city .mm-skyline { height: clamp(90px, 12vw, 160px); opacity: .9; }
.mm-skyline .w { opacity: .15; animation: mm-window 7s ease-in-out infinite; }
.mm-skyline__beacon { animation: mm-beacon 3.5s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes mm-beacon { 50% { opacity: .35; transform: scale(.7); } }

/* Split-text reveal */
[data-split] .mm-word { display: inline-block; opacity: 0; transform: translateY(.4em); filter: blur(6px); animation: mm-word .9s var(--mm-ease-out) forwards; animation-delay: calc(var(--i) * 55ms + 100ms); }
@keyframes mm-word { to { opacity: 1; transform: none; filter: blur(0); } }
.mm-hero__content > * > :not(h1) { animation: mm-fadeup 1.2s var(--mm-ease-out) both; }
.mm-hero__content .mm-eyebrow { animation-delay: 0s; }
.mm-hero__content .mm-hero__lead { animation-delay: 1s; }
.mm-hero__content .mm-actions { animation-delay: 1.2s; }
.mm-hero__content .mm-hero__note { animation-delay: 1.4s; }
@keyframes mm-fadeup { from { opacity: 0; transform: translateY(24px); } }

@media (max-width: 700px) {
  /* Phones: the copy first, the city beneath it – the beacon rises just below the walk-in note */
  .mm-hero { --city-h: min(58svh, 540px); padding-top: calc(var(--mm-header-h) + 2.5rem); padding-bottom: calc(var(--city-h) - 6rem); min-height: 0; }
  .mm-hero .mm-city { top: auto; width: 100%; height: var(--city-h); -webkit-mask-image: linear-gradient(180deg, transparent, #000 26%); mask-image: linear-gradient(180deg, transparent, #000 26%); }
  .mm-hero .mm-city__rays { opacity: .24; }
  .mm-hero__sky::after { background: linear-gradient(180deg, rgb(36 30 90 / .45), rgb(36 30 90 / .18) 55%, transparent 75%); }
  .mm-hero h1, .mm-hero__title { font-size: clamp(2.7rem, 11.5vw, 3.6rem); }
  .mm-hero__lead { font-size: 1.02rem; }
  .mm-hero .mm-actions { gap: .7rem; margin-top: 1.6rem; }
}

/* ==========================================================================
   7. Page hero (inner pages)
   ========================================================================== */
.mm-pagehero {
  position: relative; isolation: isolate; overflow: clip; color: #fff;
  display: grid; align-items: center; min-height: clamp(400px, 58vh, 560px);
  padding: calc(var(--mm-header-h) + clamp(2rem, 5vw, 4rem)) 0 clamp(3.5rem, 7vw, 5.5rem);
  background: linear-gradient(180deg, #29235f 0%, #3a3083 50%, #5b4897 100%);
}
.mm-pagehero--full { min-height: 100svh; }
.mm-pagehero .mm-orb--1 { opacity: .5; }
.mm-pagehero .mm-orb--2 { opacity: .3; }
.mm-pagehero__content { position: relative; z-index: 1; }
.mm-pagehero__title { color: #fff; font-weight: 300; font-size: clamp(2.6rem, 1.5rem + 4vw, 4.8rem); line-height: 1.02; letter-spacing: -.02em; max-width: 14ch; margin-bottom: .35em; }
.mm-pagehero__lead { font-size: clamp(1.02rem, .98rem + .35vw, 1.22rem); line-height: 1.6; color: rgb(255 255 255 / .76); max-width: 44ch; margin: 0; }
.mm-center .mm-pagehero__title, .mm-center .mm-pagehero__lead { margin-inline: auto; }
/* The same skyline and beacon as the home page, anchored right and fading into the sky behind the title */
.mm-pagehero__city { position: absolute; left: auto; right: 0; bottom: 0; height: 100%; aspect-ratio: 16 / 9; -webkit-mask-image: linear-gradient(90deg, transparent, #000 42%); mask-image: linear-gradient(90deg, transparent, #000 42%); }
.mm-pagehero .mm-city__rays { opacity: .26; }
.mm-pagehero .mm-city__lit { opacity: .42; animation: none; }
.mm-pagehero .mm-city__ray { animation: none; stroke-dashoffset: 0; }
.mm-pagehero .mm-city__beacon, .mm-pagehero .mm-city__halo { animation: none; }
.hero-teal .mm-pagehero__city { right: -7%; height: 92%; }
.hero-rose .mm-pagehero__city { right: 5%; height: 108%; }
@media (max-width: 760px) {
  .mm-pagehero { --ph-city: 290px; min-height: 0; padding-bottom: calc(var(--ph-city) - 2.5rem); }
  .mm-pagehero__city, .hero-teal .mm-pagehero__city, .hero-rose .mm-pagehero__city { top: auto; bottom: 0; right: -26%; height: var(--ph-city);
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 32%); mask-image: linear-gradient(180deg, transparent, #000 32%); }
}
/* Page-specific skies (set via menu item Page Class): dusk, blue hour, rose */
.hero-dawn .mm-pagehero { background: linear-gradient(180deg, #2b2361 0%, #473686 52%, #8a629f 100%); }
.hero-teal .mm-pagehero { background: linear-gradient(180deg, #1d3664 0%, #2a5580 55%, #447e90 100%); }
.hero-rose .mm-pagehero { background: linear-gradient(180deg, #2f2362 0%, #54367c 55%, #975b8b 100%); }
.hero-teal .mm-city__horizon { opacity: .45; }
/* Re-tint the skyline's building layers to match each sky (the coral beacon stays warm) */
.hero-teal #mmcFar stop:first-child { stop-color: #2e5a86; } .hero-teal #mmcFar stop:last-child { stop-color: #274f79; }
.hero-teal #mmcMid stop:first-child { stop-color: #22486f; } .hero-teal #mmcMid stop:last-child { stop-color: #1d3f62; }
.hero-teal #mmcNear stop:first-child { stop-color: #1a3a5d; } .hero-teal #mmcNear stop:last-child { stop-color: #163252; }
.hero-teal #mmcEsb stop:nth-child(1) { stop-color: #376690; } .hero-teal #mmcEsb stop:nth-child(2) { stop-color: #22486f; } .hero-teal #mmcEsb stop:nth-child(3) { stop-color: #1a3a5d; }
.hero-rose #mmcFar stop:first-child { stop-color: #5e3d7f; } .hero-rose #mmcFar stop:last-child { stop-color: #523474; }
.hero-rose #mmcMid stop:first-child { stop-color: #472d68; } .hero-rose #mmcMid stop:last-child { stop-color: #3e275c; }
.hero-rose #mmcNear stop:first-child { stop-color: #362353; } .hero-rose #mmcNear stop:last-child { stop-color: #2e1e48; }
.hero-rose #mmcEsb stop:nth-child(1) { stop-color: #6e4486; } .hero-rose #mmcEsb stop:nth-child(2) { stop-color: #472d68; } .hero-rose #mmcEsb stop:nth-child(3) { stop-color: #362353; }

.mm-crumbs { margin-bottom: 1.5rem; font-size: .82rem; }
.mm-crumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.mm-crumbs li { display: inline-flex; align-items: center; gap: .4rem; color: rgb(255 255 255 / .6); }
.mm-crumbs .mod-breadcrumbs__here { display: none; }
.mm-crumbs .mod-breadcrumbs__item + .mod-breadcrumbs__item::before, .mm-crumbs .breadcrumb-item + .breadcrumb-item::before { content: ""; width: 4px; height: 4px; rotate: 45deg; background: var(--mm-coral); }
.mm-crumbs a { color: rgb(255 255 255 / .8); text-decoration: none; }
.mm-crumbs a:hover { color: var(--mm-coral-2); }
.mm-crumbs .divider { display: none; }

/* ==========================================================================
   8. Sections
   ========================================================================== */
.mm-main { display: block; outline: none; }
.mm-sec { position: relative; padding-block: var(--mm-sec-pad); }
.mm-sec--tight { padding-block: clamp(3rem, 6vw, 5rem); }
.mod-custom:has(+ .mod-custom > .mm-marquee) > .mm-sec { padding-bottom: clamp(3.5rem, 7vw, 6rem); }
.mod-custom:has(> .mm-marquee) + .mm-sec { padding-top: clamp(3.5rem, 7vw, 6rem); }
.mm-sec--sand { background: var(--mm-sand); }
.mm-sec--paper { background: var(--mm-paper); }
.mm-sec--night { isolation: isolate; overflow: clip; background: radial-gradient(90% 80% at 85% 0%, #4a43a3 0%, transparent 60%), radial-gradient(70% 70% at 0% 100%, #6e4a92 0%, transparent 55%), var(--mm-night); color: rgb(255 255 255 / .85); }
.mm-sec--dawn { isolation: isolate; overflow: clip; background: linear-gradient(180deg, var(--mm-ivory), rgb(251 247 239 / 0) 7rem), radial-gradient(62% 58% at 50% 14%, rgb(255 220 194 / .9), rgb(255 236 220 / .38) 48%, transparent 76%), linear-gradient(180deg, var(--mm-ivory) 0%, #fff2e6 22%, var(--mm-ivory) 78%); }
.mm-sec--dawn::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: repeating-conic-gradient(from 0deg at 50% 4%, rgb(240 138 108 / .075) 0deg .45deg, transparent .45deg 5deg);
  -webkit-mask-image: radial-gradient(78% 88% at 50% 12%, #000 8%, transparent 70%); mask-image: radial-gradient(78% 88% at 50% 12%, #000 8%, transparent 70%);
}
.mm-sec--night::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(40% 34% at 50% 0%, rgb(240 138 108 / .16), transparent 70%), repeating-conic-gradient(from 0deg at 50% -6%, rgb(247 179 156 / .085) 0deg .45deg, transparent .45deg 5deg);
  -webkit-mask-image: radial-gradient(80% 95% at 50% 0%, #000 10%, transparent 72%); mask-image: radial-gradient(80% 95% at 50% 0%, #000 10%, transparent 72%);
}
.mm-sec--night h2, .mm-sec--night h3, .mm-sec--night h4 { color: #fff; }
.mm-sec--night .mm-eyebrow { color: var(--mm-gold-2); }
.mm-sec--night .mm-lead, .mm-sec--night .mm-muted { color: rgb(255 255 255 / .7); }
.mm-sec--night a:not(.mm-btn) { color: var(--mm-gold-2); }
.mm-sec__head { margin-bottom: clamp(2.5rem, 5vw, 4rem); max-width: 760px; }
.mm-center .mm-sec__head, .mm-sec__head.mm-center { margin-inline: auto; }
.mm-sec__head--split { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem; max-width: none; }
.mm-sec__head--split > div { max-width: 640px; }
.mm-sec__head p:last-child { margin-bottom: 0; }

/* soft wave divider */
.mm-sec--curve-top::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 60px; background: var(--mm-ivory); clip-path: ellipse(60% 100% at 50% 0%); }

.mm-grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); }
.mm-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.mm-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.mm-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.mm-split { display: grid; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) {
  .mm-split { grid-template-columns: 1.05fr 1fr; }
  .mm-split--rev > :first-child { order: 2; }
  .mm-split--wide-left { grid-template-columns: 1.4fr 1fr; }
}
@media (max-width: 899px) {
  .mm-split--rev > .mm-ascent { order: 2; }
}

/* ==========================================================================
   9. Cards
   ========================================================================== */
.mm-card {
  position: relative; background: var(--mm-paper); border: 1px solid var(--mm-line); border-radius: var(--mm-radius-l);
  padding: clamp(1.5rem, 3vw, 2.25rem); box-shadow: var(--mm-shadow-s);
}
.mm-feature {
  --mx: 50%; --my: 0%;
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; gap: .4rem;
  padding: clamp(1.75rem, 3vw, 2.4rem); min-height: 100%;
  border-radius: var(--mm-radius-l); background: var(--mm-paper); border: 1px solid var(--mm-line);
  color: var(--mm-text); text-decoration: none;
  transition: transform .5s var(--mm-ease-out), box-shadow .5s var(--mm-ease-out), border-color .4s;
}
.mm-feature::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .5s; background: radial-gradient(420px circle at var(--mx) var(--my), rgb(255 206 178 / .3), transparent 45%); }
.mm-feature:hover { transform: translateY(-6px); box-shadow: var(--mm-shadow); border-color: rgb(240 138 108 / .4); color: var(--mm-text); }
.mm-feature:hover::before { opacity: 1; }
.mm-feature h3 { margin: .8rem 0 .3rem; font-size: 1.75rem; }
.mm-feature p { color: var(--mm-muted); margin-bottom: 1rem; }
.mm-feature .mm-link { margin-top: auto; }
.mm-icon {
  display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px;
  background: linear-gradient(145deg, #fff, var(--mm-sand)); border: 1px solid var(--mm-line);
  color: var(--mm-indigo); box-shadow: inset 0 -6px 14px rgb(232 181 106 / .12);
  transition: transform .6s var(--mm-ease-out);
}
.mm-icon svg { width: 28px; height: 28px; }
.mm-feature:hover .mm-icon { transform: rotate(-6deg) scale(1.06); }
.mm-sec--night .mm-feature { background: rgb(255 255 255 / .04); border-color: var(--mm-line-light); color: rgb(255 255 255 / .85); backdrop-filter: blur(6px); }
/* "Many doorways to the same stillness": light, rounded panels, each holding its own small sun */
.mm-sec--dawn .mm-grid--4 > .mm-feature {
  align-items: center; text-align: center; gap: .3rem;
  padding: clamp(2rem, 3vw, 2.6rem) clamp(1.2rem, 2vw, 1.8rem) clamp(1.6rem, 2.5vw, 2.1rem);
  border-radius: 24px; border: 1px solid rgb(240 138 108 / .16);
  background: linear-gradient(180deg, rgb(255 255 255 / .94), rgb(255 250 244 / .82)); box-shadow: 0 18px 44px -30px rgb(168 67 44 / .32);
}
.mm-sec--dawn .mm-grid--4 > .mm-feature::before { opacity: 1; background: radial-gradient(75% 48% at 50% 0%, rgb(255 219 194 / .6), transparent 72%); }
.mm-sec--dawn .mm-grid--4 > .mm-feature:hover { transform: translateY(-5px); border-color: rgb(240 138 108 / .36); box-shadow: 0 30px 60px -30px rgb(240 138 108 / .55); }
.mm-sec--dawn .mm-grid--4 > .mm-feature .mm-icon {
  width: 62px; height: 62px; border: 0; border-radius: 50%; color: var(--mm-ember);
  background: radial-gradient(circle, #fff 0 40%, #ffe4d0 64%, rgb(255 228 208 / 0) 74%);
  box-shadow: 0 0 0 1px rgb(240 138 108 / .2), 0 0 34px 8px rgb(255 212 182 / .75);
}
.mm-sec--dawn .mm-grid--4 > .mm-feature h3 { margin-top: .9rem; }
.mm-sec--dawn .mm-grid--4 > .mm-feature .mm-link { margin-top: auto; color: var(--mm-ember); }
@media (max-width: 599px) {
  .mm-sec--dawn .mm-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .mm-sec--dawn .mm-grid--4 > .mm-feature { padding: 1.6rem .8rem 1.2rem; border-radius: 20px; }
  .mm-sec--dawn .mm-grid--4 > .mm-feature h3 { font-size: 1.35rem; margin-top: .5rem; }
  .mm-sec--dawn .mm-grid--4 > .mm-feature p { font-size: .84rem; line-height: 1.5; margin-bottom: .7rem; }
  .mm-sec--dawn .mm-grid--4 > .mm-feature .mm-link { font-size: .86rem; }
  .mm-sec--dawn .mm-grid--4 > .mm-feature .mm-icon { width: 48px; height: 48px; }
  .mm-sec--dawn .mm-grid--4 > .mm-feature .mm-icon svg { width: 22px; height: 22px; }
}
.mm-sec--night .mm-feature h3 { color: #fff; }
.mm-sec--night .mm-feature p { color: rgb(255 255 255 / .65); }
.mm-sec--night .mm-feature .mm-link { color: var(--mm-gold-2); }
.mm-sec--night .mm-icon { background: rgb(255 255 255 / .06); border-color: var(--mm-line-light); color: var(--mm-gold-2); box-shadow: none; }
.mm-tag { display: inline-flex; align-items: center; gap: .35rem; padding: .22rem .7rem; border-radius: 999px; background: var(--mm-sand); color: var(--mm-indigo); font-size: .8rem; font-weight: 600; letter-spacing: .01em; }
.mm-tag--gold { background: rgb(240 138 108 / .16); color: var(--mm-ember); }

/* ==========================================================================
   10. Welcome collage & stats
   ========================================================================== */
.mm-collage { position: relative; aspect-ratio: 1 / 1.02; max-width: 580px; margin-inline: auto; width: 100%; }
.mm-collage__img { position: absolute; overflow: hidden; border-radius: var(--mm-radius-l); box-shadow: var(--mm-shadow); }
.mm-collage__img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.6s var(--mm-ease-out); }
.mm-collage:hover .mm-collage__img img { transform: scale(1); }
.mm-collage__img--a { inset: 0 18% 22% 0; }
.mm-collage__img--b { inset: 42% 0 0 38%; border: 6px solid var(--mm-ivory); }
.mm-sec--paper .mm-collage__img--b { border-color: var(--mm-paper); }
.mm-collage__badge {
  position: absolute; left: -4%; bottom: 6%; z-index: 2; display: flex; align-items: center; gap: .9rem;
  padding: 1rem 1.3rem; border-radius: var(--mm-radius); background: rgb(255 253 249 / .9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: var(--mm-shadow); border: 1px solid var(--mm-line);
}
.mm-collage__badge strong { display: block; font-family: var(--mm-font-display); font-size: 1.9rem; font-weight: 500; line-height: 1; color: var(--mm-night); }
.mm-collage__badge span { font-size: .8rem; color: var(--mm-muted); }
.mm-collage__halo { display: none; }
@keyframes mm-float { 50% { transform: translateY(-12px); } }

.mm-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 96px), 1fr)); gap: 1.25rem; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--mm-line); }
@media (max-width: 599px) { .mm-stats:has(> :nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mm-stat strong { display: block; font-family: var(--mm-font-display); font-weight: 400; font-size: clamp(2.2rem, 1.9rem + 1.6vw, 3.4rem); line-height: 1; color: var(--mm-night); }
.mm-stat strong sup { font-size: .5em; color: var(--mm-ember); }
.mm-stat span { font-size: .85rem; color: var(--mm-muted); }
.mm-sec--night .mm-stats { border-color: var(--mm-line-light); }
.mm-sec--night .mm-stat strong { color: #fff; }
.mm-sec--night .mm-stat span { color: rgb(255 255 255 / .6); }

/* ==========================================================================
   11. Breathing pause
   ========================================================================== */
.mm-breathe-sec { overflow: hidden; text-align: center; }
.mm-breathe { position: relative; display: grid; place-items: center; width: min(78vw, 360px); aspect-ratio: 1; margin: 2.5rem auto 1.5rem; }
.mm-breathe__halo, .mm-breathe__circle, .mm-breathe__orbit { position: absolute; border-radius: 50%; }
.mm-breathe__halo { inset: -20%; background: radial-gradient(circle, rgb(240 138 108 / .3), rgb(246 217 166 / .12) 40%, transparent 64%); animation: mm-breath-halo 12s ease-in-out infinite; }
/* The breathing light is the meditation room's diamond: coral light around a single point */
.mm-breathe__circle {
  inset: 21%; border-radius: 8%; rotate: 45deg;
  background: radial-gradient(circle at 50% 50%, #fffaf2 0 5%, #ffe2cc 16%, #f8b394 42%, #ef8264 78%, #e46e58 100%);
  box-shadow: 0 0 70px rgb(240 138 108 / .5), 0 0 0 10px rgb(255 255 255 / .35), inset 0 0 40px rgb(255 250 242 / .5);
  animation: mm-breath 12s ease-in-out infinite;
}
.mm-breathe__orbit { inset: 0; border: 1px dashed rgb(255 255 255 / .25); animation: mm-spin 60s linear infinite; }
.mm-breathe__orbit::after { content: ""; position: absolute; top: -4px; left: 50%; width: 8px; height: 8px; margin-left: -4px; rotate: 45deg; background: var(--mm-coral); box-shadow: 0 0 14px var(--mm-coral); }
.mm-breathe__label { position: relative; z-index: 1; font-family: var(--mm-font-display); font-size: clamp(1.4rem, 1.2rem + 1vw, 2rem); font-style: italic; color: #2a1236; }
.mm-breathe__label span { position: absolute; left: 50%; top: 50%; translate: -50% -50%; white-space: nowrap; opacity: 0; animation: mm-breath-txt 12s ease-in-out infinite; }
.mm-breathe__label span:nth-child(2) { animation-delay: 4s; }
.mm-breathe__label span:nth-child(3) { animation-delay: 8s; }
@keyframes mm-breath { 0%, 100% { transform: scale(.62); } 33% { transform: scale(1); } 66% { transform: scale(1); } }
@keyframes mm-breath-halo { 0%, 100% { transform: scale(.7); opacity: .5; } 33%, 66% { transform: scale(1.05); opacity: 1; } }
@keyframes mm-breath-txt { 0% { opacity: 0; } 5%, 28% { opacity: 1; } 33%, 100% { opacity: 0; } }
@keyframes mm-spin { to { transform: rotate(360deg); } }

/* ==========================================================================
   12. Marquee (seven original qualities)
   ========================================================================== */
.mm-marquee { position: relative; overflow: hidden; padding: 1.5rem 0 1.7rem; background: radial-gradient(60% 140% at 50% 120%, rgb(240 138 108 / .2), transparent 70%), var(--mm-night); }
.mm-marquee::before, .mm-marquee::after { content: ""; position: absolute; top: 0; bottom: 0; z-index: 1; width: 12%; pointer-events: none; }
.mm-marquee::before { left: 0; background: linear-gradient(90deg, var(--mm-night), transparent); }
.mm-marquee::after { right: 0; background: linear-gradient(270deg, var(--mm-night), transparent); }
.mm-marquee__track { display: flex; width: max-content; animation: mm-marquee 80s linear infinite; }
.mm-marquee:hover .mm-marquee__track { animation-play-state: paused; }
.mm-marquee__item { display: inline-flex; align-items: center; gap: 2.5rem; padding-right: 2.5rem; font-family: var(--mm-font-display); font-size: clamp(1.8rem, 1.4rem + 1.8vw, 3rem); font-style: italic; font-weight: 300; color: rgb(255 255 255 / .9); white-space: nowrap; }
.mm-marquee__item::after { content: ""; width: 9px; height: 9px; rotate: 45deg; background: linear-gradient(135deg, #ffe7c2, var(--mm-coral) 60%); box-shadow: 0 0 14px rgb(240 138 108 / .6); }
@keyframes mm-marquee { to { transform: translateX(-50%); } }

/* ==========================================================================
   13. Quote band (parallax)
   ========================================================================== */
.mm-quote { position: relative; isolation: isolate; overflow: hidden; color: #fff; text-align: center; padding-block: clamp(6rem, 14vw, 11rem); background: var(--mm-night); }
.mm-quote__bg { position: absolute; inset: -20% 0; z-index: -2; background-size: cover; background-position: center; opacity: .72; filter: saturate(.85) contrast(1.05); }
.mm-quote::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 80% at 50% 50%, rgb(40 34 96 / .5), rgb(40 34 96 / .22) 70%), linear-gradient(180deg, rgb(40 34 96 / .4), rgb(40 34 96 / .1) 40%, rgb(40 34 96 / .5)); }
.mm-quote blockquote { border: 0; padding: 0; margin: 0 auto; max-width: 30ch; font-family: var(--mm-font-display); font-weight: 300; font-style: italic; font-size: clamp(1.8rem, 1.2rem + 2.8vw, 3.4rem); line-height: 1.25; color: #fff; }
.mm-quote blockquote { text-shadow: 0 2px 24px rgb(30 25 80 / .55); }
.mm-quote blockquote::before { content: ""; display: block; width: 12px; height: 12px; margin: 0 auto 1.8rem; rotate: 45deg; background: linear-gradient(135deg, #ffe7c2, var(--mm-coral) 60%); box-shadow: 0 0 22px rgb(240 138 108 / .8); }
.mm-quote cite { display: block; margin-top: 1.6rem; font-family: var(--mm-font-display); font-style: italic; font-size: 1.15rem; color: var(--mm-coral-2); }
@media (min-width: 900px) {
  .mm-quote { text-align: left; }
  .mm-quote blockquote { margin: 0; max-width: 24ch; font-size: clamp(1.8rem, 1.1rem + 2.2vw, 2.9rem); }
  .mm-quote blockquote::before { margin: 0 0 1.8rem; }
  .mm-quote__bg { background-size: 135% auto; background-position: 0% 40%; }
  .mm-quote::after { background: linear-gradient(90deg, rgb(40 34 96 / .82) 0%, rgb(40 34 96 / .55) 36%, rgb(40 34 96 / .12) 68%, rgb(40 34 96 / .04)), linear-gradient(180deg, rgb(40 34 96 / .3), transparent 30%, transparent 70%, rgb(40 34 96 / .4)); }
}
@media (max-width: 899px) {
  .mm-quote { padding-block: 4rem clamp(15rem, 70vw, 21rem); }
  .mm-quote__bg { inset: 0; background-size: auto 74%; background-position: 50% 100%; background-repeat: no-repeat; animation: none !important; }
  .mm-quote::after { background: linear-gradient(180deg, var(--mm-night) 0 31%, rgb(44 38 99 / .7) 48%, rgb(44 38 99 / .08) 76%); }
}
@media (prefers-reduced-motion: no-preference) {
  @supports ((animation-timeline: view()) and (animation-range: entry)) {
    .mm-quote__bg { animation: mm-parallax linear both; animation-timeline: view(); animation-range: cover; }
    @keyframes mm-parallax { from { transform: translateY(-12%); } to { transform: translateY(12%); } }
  }
}

/* ==========================================================================
   14. Course (7 days) & video
   ========================================================================== */
.mm-course-card { position: relative; overflow: hidden; border-radius: var(--mm-radius-l); box-shadow: var(--mm-shadow); }
.mm-course-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
/* The ascent: the seven days of the course as a beam of light rising through seven diamonds to the beacon */
.mm-ascent { --beam-x: 12px; position: relative; isolation: isolate; overflow: hidden; margin: 0; padding: clamp(2rem, 4vw, 2.9rem) clamp(1.6rem, 3.4vw, 2.6rem); border-radius: var(--mm-radius-l); color: #fff;
  background: radial-gradient(80% 42% at 12% 0%, rgb(240 138 108 / .3), transparent 70%), linear-gradient(180deg, #2e2868 0%, #3e3588 62%, #5c4999 100%); box-shadow: 0 30px 70px -34px rgb(44 38 99 / .5); }
.mm-ascent::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: repeating-conic-gradient(from 90deg at calc(clamp(1.6rem, 3.4vw, 2.6rem) + var(--beam-x)) 3.4rem, rgb(247 179 156 / .09) 0deg .5deg, transparent .5deg 6deg);
  -webkit-mask-image: radial-gradient(75% 60% at 14% 4%, #000, transparent 72%); mask-image: radial-gradient(75% 60% at 14% 4%, #000, transparent 72%); }
.mm-ascent__days { position: relative; display: flex; flex-direction: column-reverse; gap: clamp(.9rem, 1.6vw, 1.25rem); margin: 0; padding: 0; list-style: none; }
.mm-ascent__days::before { content: ""; position: absolute; left: var(--beam-x); top: 1.1rem; bottom: 1.4rem; width: 1px; background: linear-gradient(0deg, rgb(247 179 156 / .12), #f7b39c 70%, #fff4ea); transform-origin: bottom; transition: transform 2s var(--mm-ease-out) .25s; }
.js .mm-ascent:not(.is-in) .mm-ascent__days::before { transform: scaleY(0); }
.mm-ascent__days li { position: relative; display: grid; padding-left: calc(var(--beam-x) * 2 + 1.4rem); font-family: var(--mm-font-display); font-size: clamp(1.25rem, 1.1rem + .5vw, 1.55rem); line-height: 1.12; color: #fff; }
.mm-ascent__days li span { font-size: .66em; font-style: italic; color: var(--mm-coral-2); }
.mm-ascent__days li::before { content: ""; position: absolute; left: calc(var(--beam-x) - 6px); top: .95em; width: 12px; height: 12px; rotate: 45deg; border: 1.5px solid var(--mm-coral-2); background: #362f7a; }
.mm-ascent__days li:last-child { font-size: clamp(1.45rem, 1.2rem + .8vw, 1.9rem); }
.mm-ascent__days li:last-child::before { left: calc(var(--beam-x) - 11px); top: .7em; width: 22px; height: 22px; border-color: #ffe2cc; background: radial-gradient(circle, #fffaf0 0 16%, #ffd6b8 34%, var(--mm-coral) 78%); box-shadow: 0 0 22px 6px rgb(240 138 108 / .6), 0 0 70px 24px rgb(240 138 108 / .25); }
.mm-days-mini { display: grid; gap: .6rem; margin: 1.5rem 0 0; padding: 0; list-style: none; counter-reset: day; }
.mm-days-mini li { counter-increment: day; display: flex; align-items: center; gap: 1rem; padding: .7rem 1rem; border-radius: var(--mm-radius); background: rgb(255 255 255 / .05); border: 1px solid var(--mm-line-light); transition: background-color .3s, transform .4s var(--mm-ease-out); }
.mm-days-mini li:hover { background: rgb(255 255 255 / .1); transform: translateX(6px); }
.mm-days-mini li::before { content: counter(day); display: grid; place-items: center; flex: none; width: 38px; height: 38px; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); background: linear-gradient(135deg, #ffd9c2, var(--mm-coral) 70%); color: #150f33; font-weight: 700; font-size: .86rem; }
.mm-sec:not(.mm-sec--night) .mm-days-mini li { background: var(--mm-paper); border-color: var(--mm-line); }

.mm-days { display: grid; gap: 1rem; counter-reset: dday; }
.mm-day { counter-increment: dday; border-radius: var(--mm-radius-l); background: var(--mm-paper); border: 1px solid var(--mm-line); overflow: hidden; transition: box-shadow .4s, border-color .4s; }
.mm-day[open] { box-shadow: var(--mm-shadow); border-color: rgb(240 138 108 / .45); }
.mm-day > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.2rem; padding: 1.25rem 1.5rem; }
.mm-day > summary::-webkit-details-marker { display: none; }
.mm-day > summary::before { content: counter(dday); display: grid; place-items: center; width: 54px; height: 54px; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); background: var(--mm-night); color: var(--mm-coral-2); font-family: var(--mm-font-display); font-size: 1.45rem; transition: background .4s, color .4s; }
.mm-day[open] > summary::before { background: linear-gradient(135deg, #ffd9c2, var(--mm-coral) 70%); color: #150f33; }
.mm-day > summary::after { content: ""; width: 12px; height: 12px; margin-right: .4rem; border: solid var(--mm-muted); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); transition: transform .4s var(--mm-ease-out); }
.mm-day[open] > summary::after { transform: rotate(-135deg); }
.mm-day__title { font-family: var(--mm-font-display); font-size: clamp(1.35rem, 1.2rem + .6vw, 1.8rem); color: var(--mm-night); line-height: 1.15; }
.mm-day__title small { display: block; font-family: var(--mm-font-display); font-style: italic; font-size: 1rem; color: var(--mm-ember); margin-bottom: .1rem; }
.mm-day__body { padding: 0 1.5rem 1.5rem; }
.mm-day[open] .mm-day__body { animation: mm-fadeup .6s var(--mm-ease-out); }
.mm-lessons { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 1rem; }
.mm-lesson { display: flex; flex-direction: column; gap: .6rem; }
.mm-lesson__meta { display: flex; justify-content: space-between; gap: .5rem; font-size: .85rem; }
.mm-lesson__meta strong { font-weight: 600; color: var(--mm-night); }
.mm-lesson__meta span { color: var(--mm-muted); white-space: nowrap; }

.mm-yt {
  position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border: 0; padding: 0; cursor: pointer;
  border-radius: var(--mm-radius); background: var(--mm-night) center / cover no-repeat; color: #fff;
}
.mm-yt::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgb(15 13 42 / .6)); transition: background .4s; }
.mm-yt::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 58px; height: 58px; margin: -29px; border-radius: 50%;
  background: rgb(255 255 255 / .9) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230f0d2a' d='M8 5.5v13l10.5-6.5z'/%3E%3C/svg%3E") 55% 50% / 24px no-repeat;
  box-shadow: 0 0 0 0 rgb(255 255 255 / .5); transition: transform .4s var(--mm-ease-out), box-shadow .6s;
}
.mm-yt:hover::after, .mm-yt:focus-visible::after { transform: scale(1.1); box-shadow: 0 0 0 12px rgb(255 255 255 / .12); }
.mm-yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mm-yt.is-playing::before, .mm-yt.is-playing::after { display: none; }
.mm-video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--mm-radius-l); overflow: hidden; box-shadow: var(--mm-shadow); background: var(--mm-night); }
.mm-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.mm-steps { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); counter-reset: step; list-style: none; padding: 0; margin: 0; }
.mm-steps li { counter-increment: step; position: relative; padding: 1.6rem 1.4rem 1.4rem; border-radius: var(--mm-radius-l); background: var(--mm-paper); border: 1px solid var(--mm-line); }
.mm-steps li::before { content: "0" counter(step); display: block; font-family: var(--mm-font-display); font-size: 2.4rem; line-height: 1; color: var(--mm-gold); margin-bottom: .6rem; }
.mm-steps strong { display: block; color: var(--mm-night); margin-bottom: .25rem; }
.mm-steps p { margin: 0; color: var(--mm-muted); font-size: .95rem; }

/* ==========================================================================
   15. Libraries
   ========================================================================== */
.mm-lib { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 260px; padding: 2rem; border-radius: var(--mm-radius-l); color: #fff; text-decoration: none; isolation: isolate; transition: transform .5s var(--mm-ease-out), box-shadow .5s; }
.mm-lib::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--_g, linear-gradient(145deg, #3a3590, #2c2663)); transition: transform 1.2s var(--mm-ease-out); }
.mm-lib::after { content: ""; position: absolute; right: -30%; top: -40%; z-index: -1; width: 80%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgb(246 217 166 / .45), transparent 65%); transition: transform 1s var(--mm-ease-out); }
.mm-lib:hover { transform: translateY(-6px); box-shadow: var(--mm-shadow); color: #fff; }
.mm-lib:hover::before { transform: scale(1.08); }
.mm-lib:hover::after { transform: translate(-10%, 15%) scale(1.2); }
.mm-lib h3 { color: #fff; margin: auto 0 .4rem; font-size: 1.9rem; }
.mm-lib p { color: rgb(255 255 255 / .75); margin: 0 0 1rem; font-size: .95rem; }
.mm-lib .mm-tag { align-self: flex-start; background: rgb(255 255 255 / .12); color: #fff; backdrop-filter: blur(6px); }
.mm-lib__go { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; font-size: .9rem; color: var(--mm-gold-2); }
.mm-lib--1 { --_g: linear-gradient(145deg, #4a3fa3, #2c2663); }
.mm-lib--2 { --_g: linear-gradient(145deg, #c07590, #5a3470); }
.mm-lib--3 { --_g: linear-gradient(145deg, #2f6488, #1f3a5e); }
.mm-lib--4 { --_g: linear-gradient(145deg, #9a7440, #4a3050); }
.mm-lib--5 { --_g: linear-gradient(145deg, #5b4cae, #3a2f78); }
.mm-lib--6 { --_g: linear-gradient(145deg, #3d8484, #1f4658); }

/* ==========================================================================
   16. Gallery + lightbox
   ========================================================================== */
.mm-gallery { columns: 3 260px; column-gap: 1rem; }
.mm-gallery a { display: block; margin-bottom: 1rem; border-radius: var(--mm-radius); overflow: hidden; break-inside: avoid; position: relative; }
.mm-gallery img { width: 100%; transition: transform 1.2s var(--mm-ease-out), filter .6s; }
.mm-gallery a:hover img { transform: scale(1.05); filter: saturate(1.15); }
.mm-lightbox { border: 0; padding: 0; background: transparent; max-width: min(94vw, 1400px); max-height: 92vh; }
.mm-lightbox::backdrop { background: rgb(10 9 30 / .88); backdrop-filter: blur(6px); }
.mm-lightbox img { max-height: 88vh; width: auto; margin: auto; border-radius: var(--mm-radius); }
.mm-lightbox__close { position: fixed; top: 1rem; right: 1rem; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgb(255 255 255 / .4); background: rgb(255 255 255 / .1); color: #fff; font-size: 1.6rem; cursor: pointer; }
.mm-lightbox[open] { animation: mm-fadeup .45s var(--mm-ease-out); }

/* ==========================================================================
   17. Visit / hours / contact
   ========================================================================== */
.mm-hours { width: 100%; font-size: .95rem; }
.mm-hours tr { border-bottom: 1px dashed var(--mm-line); }
.mm-hours tr:last-child { border-bottom: 0; }
.mm-hours th, .mm-hours td { padding: .7rem 0; text-align: left; vertical-align: top; }
.mm-hours th { font-weight: 600; color: var(--mm-night); padding-right: 1rem; white-space: nowrap; }
.mm-hours td { color: var(--mm-muted); text-align: right; }
.mm-hours tr.is-today th, .mm-hours tr.is-today td { color: var(--mm-ember); }
.mm-hours tr.is-today th::after { content: "Today"; margin-left: .5rem; padding: .1rem .55rem; border-radius: 999px; background: rgb(240 138 108 / .16); font-size: .74rem; font-weight: 600; vertical-align: middle; }
.mm-sec--night .mm-hours tr { border-color: var(--mm-line-light); }
.mm-sec--night .mm-hours th { color: #fff; }
.mm-sec--night .mm-hours td { color: rgb(255 255 255 / .65); }
.mm-contactlist { list-style: none; padding: 0; margin: 0; display: grid; gap: 1.1rem; }
.mm-contactlist li { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; align-items: start; }
.mm-contactlist .mm-icon { width: 44px; height: 44px; border-radius: 14px; }
.mm-contactlist .mm-icon svg { width: 20px; height: 20px; }
.mm-contactlist small { display: block; font-family: var(--mm-font-display); font-style: italic; font-size: 1rem; color: var(--mm-ember); }
.mm-contactlist a, .mm-contactlist span { color: var(--mm-night); font-weight: 500; text-decoration: none; }
.mm-contactlist a:hover { color: var(--mm-gold-deep); }
.mm-map { position: relative; overflow: hidden; border-radius: var(--mm-radius-l); min-height: 380px; height: 100%; box-shadow: var(--mm-shadow); background: var(--mm-sand); }
.mm-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.4) sepia(.15) contrast(1.02); }
.mm-map__pin { position: absolute; left: 1rem; bottom: 1rem; z-index: 1; padding: .8rem 1.1rem; border-radius: var(--mm-radius); background: rgb(255 253 249 / .95); box-shadow: var(--mm-shadow-s); font-size: .88rem; max-width: 280px; pointer-events: none; }
.mm-map__pin strong { display: block; color: var(--mm-night); }

.mm-donate { position: relative; overflow: hidden; border-radius: var(--mm-radius-l); padding: clamp(2rem, 5vw, 3.5rem); color: #fff; background: radial-gradient(80% 120% at 100% 0%, #7d5a9c 0%, transparent 60%), linear-gradient(135deg, #352f7c, #4a44a0); }
.mm-donate h2, .mm-donate h3 { color: #fff; }
.mm-donate p { color: rgb(255 255 255 / .78); }
.mm-donate::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 240px; height: 240px; border-radius: 50%; background: radial-gradient(circle, rgb(246 217 166 / .5), transparent 65%); animation: mm-float 8s ease-in-out infinite; }

/* ==========================================================================
   18. Person / leader
   ========================================================================== */
.mm-person { display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; grid-template-columns: 1fr; }
@media (min-width: 760px) { .mm-person { grid-template-columns: 300px 1fr; } }
.mm-person__photo { position: relative; }
.mm-person__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 200px 200px var(--mm-radius-l) var(--mm-radius-l); box-shadow: var(--mm-shadow); }
.mm-person__photo::before { content: ""; position: absolute; inset: -14px; z-index: -1; border-radius: 214px 214px 40px 40px; border: 1px solid rgb(232 181 106 / .55); }

/* ==========================================================================
   19. Timeline (about)
   ========================================================================== */
.mm-timeline { position: relative; display: grid; gap: 2rem; padding-left: 2rem; }
.mm-timeline::before { content: ""; position: absolute; left: 6px; top: .5rem; bottom: .5rem; width: 1px; background: linear-gradient(var(--mm-coral), var(--mm-violet)); }
.mm-timeline > div { position: relative; }
.mm-timeline > div::before { content: ""; position: absolute; left: calc(-2rem + 1px); top: .6rem; width: 11px; height: 11px; rotate: 45deg; background: var(--mm-ivory); border: 2px solid var(--mm-coral); box-shadow: 0 0 0 5px rgb(240 138 108 / .14); }
.mm-timeline strong { display: block; font-family: var(--mm-font-display); font-size: 1.7rem; font-weight: 500; line-height: 1.1; color: var(--mm-night); }
.mm-timeline p { margin: .3rem 0 0; color: var(--mm-muted); }

/* ==========================================================================
   20. Events (mod_ems + static fallbacks)
   ========================================================================== */
.mm-events { display: grid; gap: 1.25rem; }
.mm-modsec--mod_ems .mm-modsec__body > *:first-child { margin-top: 0; }

/* ==========================================================================
   21. Footer
   ========================================================================== */
/* The skyline rises out of the footer into the last section: the page closes the way the hero opens */
.mm-horizon { position: relative; z-index: 1; height: var(--mm-horizon-h); margin-top: calc(-1 * var(--mm-horizon-h)); line-height: 0; pointer-events: none; }
.mm-horizon__svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; overflow: visible; }
.mm-horizon__near { fill: var(--mm-night); }
.mm-horizon__win { fill: #ffd89a; fill-opacity: .5; }
.mm-horizon__warm { fill: var(--mm-coral); fill-opacity: .85; }
.mm-horizon__glow { transform-box: fill-box; transform-origin: center; animation: mm-glow 6s ease-in-out infinite; }
/* keep the last block of content clear of the skyline */
.mm-main > .mm-layout:last-child:not(:has(.mm-sec)) { padding-bottom: calc(clamp(3rem, 7vw, 5.5rem) + var(--mm-horizon-h)); }
.com-content-article__body > .mm-sec--tight:last-child { padding-bottom: calc(clamp(3rem, 6vw, 5rem) + var(--mm-horizon-h)); }
.mm-footer { position: relative; isolation: isolate; overflow: hidden; color: rgb(255 255 255 / .7); background: var(--mm-night); padding: clamp(4rem, 8vw, 6rem) 0 2rem; font-size: .95rem; }
.mm-footer__glow { position: absolute; left: 50%; top: -260px; z-index: -1; width: 900px; height: 520px; margin-left: -450px; border-radius: 50%; background: radial-gradient(ellipse, rgb(122 111 240 / .35), transparent 65%); filter: blur(20px); }
.mm-footer a { color: rgb(255 255 255 / .85); text-decoration: none; }
.mm-footer a:hover { color: var(--mm-coral-2); }
.mm-footer__grid { display: grid; gap: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 700px) { .mm-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .mm-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; } }
.mm-footer__brand h2, .mm-footer__brand .mm-footer__title { font-family: var(--mm-font-display); font-size: 2rem; font-weight: 400; color: #fff; margin-bottom: .6rem; }
.mm-footer__brand p { max-width: 36ch; }
.mm-footer__logo { width: 72px; height: 72px; border-radius: 50%; background: #fff; padding: 4px; margin-bottom: 1.2rem; box-shadow: 0 0 40px rgb(246 217 166 / .25); }
.mm-fmod__title { font-family: var(--mm-font-display); font-size: 1.3rem; font-style: italic; font-weight: 400; color: var(--mm-coral-2); margin-bottom: 1rem; }
.mm-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.mm-footer .mod-menu a { display: inline-block; transition: transform .3s var(--mm-ease-out), color .25s; }
.mm-footer .mod-menu a:hover { transform: translateX(4px); }
.mm-footer .mm-hours { font-size: .88rem; }
.mm-footer .mm-hours tr { border-color: var(--mm-line-light); }
.mm-footer .mm-hours th { color: #fff; font-weight: 500; }
.mm-footer .mm-hours td { color: rgb(255 255 255 / .6); }
.mm-footer .mm-hours th, .mm-footer .mm-hours td { padding: .35rem 0; }
.mm-social { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.4rem; }
.mm-social a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--mm-line-light); color: #fff; transition: background .3s, border-color .3s, transform .4s var(--mm-ease-out); }
.mm-social a:hover { background: var(--mm-coral); border-color: var(--mm-coral); color: #150f33; transform: translateY(-3px); }
.mm-social svg { width: 18px; height: 18px; }
.mm-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 3.5rem; padding-top: 1.6rem; border-top: 1px solid var(--mm-line-light); font-size: .82rem; color: rgb(255 255 255 / .5); }
.mm-footer__bottom p { margin: 0; }
.mm-footer__bottom .mod-menu { display: flex; flex-wrap: wrap; gap: 1.2rem; }

.mm-totop { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 40; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--mm-night); border: 1px solid rgb(255 255 255 / .22); color: #fff; box-shadow: var(--mm-shadow); opacity: 0; transform: translateY(20px); pointer-events: none; transition: opacity .4s, transform .5s var(--mm-ease-out); }
.mm-totop.is-visible { opacity: 1; transform: none; pointer-events: auto; }
@media (max-width: 700px) { .mm-totop { display: none; } }
.mm-totop span { width: 10px; height: 10px; border: solid var(--mm-gold-2); border-width: 1.5px 0 0 1.5px; transform: translateY(2px) rotate(45deg); }
.mm-totop:hover { background: var(--mm-indigo); }

/* ==========================================================================
   22. Content (articles, blogs, Joomla system output)
   ========================================================================== */
.mm-layout { padding-block: clamp(3rem, 7vw, 5.5rem); }
.mm-layout--sidebar { display: grid; gap: 3rem; }
@media (min-width: 992px) { .mm-layout--sidebar { grid-template-columns: minmax(0, 1fr) 320px; } }
.mm-component { min-width: 0; }
/* Articles made of full-width sections: let them break out of the wrapper */
.mm-layout:has(.mm-sec) { padding-block: 0; }
.mm-component .mm-sec, .mm-component .mm-bleed, .mm-component .mm-quote { width: 100vw; margin-inline: calc(50% - 50vw); }
.mm-layout--sidebar .mm-component .mm-sec { width: auto; margin-inline: 0; }
.com-content-article__body > :not(section):not(.mm-bleed):not(.mm-wide) { max-width: 760px; margin-inline: auto; }
.com-content-article__body > h2:not(.mm-h2) { margin-top: 2.5rem; }
.com-content-article__body > ul, .com-content-article__body > ol { padding-left: 1.3rem; }
.com-content-article__body li { margin-bottom: .4rem; }
.com-content-article__body li::marker { color: var(--mm-gold-deep); }
.mm-layout:not(:has(.mm-sec)) .com-content-article__body { font-size: 1.07rem; }
.page-header h1, .page-header h2 { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.item-page > .page-header:first-child { display: none; }
.article-info, .com-content-article .article-info { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 1.5rem; font-size: .85rem; color: var(--mm-muted); }
.article-info dt { display: none; }
.article-info dd { margin: 0; }
.com-content-article__navigation, .pagenavigation { max-width: 760px; margin: 3rem auto 0; }
.pagination, .com-content-category-blog__navigation .pagination, ul.pagination { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 2.5rem 0 0; justify-content: center; }
.pagination .page-link, .pagenav, .pagination a, .pagination span { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 .9rem; border-radius: 999px; border: 1px solid var(--mm-line); background: var(--mm-paper); color: var(--mm-text); text-decoration: none; font-size: .9rem; }
.pagination .active .page-link, .pagination .active span { background: var(--mm-night); color: #fff; border-color: var(--mm-night); }
.pagination .disabled .page-link { opacity: .45; }
.pagenavigation .pagination { justify-content: space-between; }
.blog-items, .com-content-category-blog__items { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.blog-item, .com-content-category-blog__item { background: var(--mm-paper); border: 1px solid var(--mm-line); border-radius: var(--mm-radius-l); padding: 1.8rem; transition: box-shadow .4s, transform .4s var(--mm-ease-out); }
.blog-item:hover { box-shadow: var(--mm-shadow); transform: translateY(-4px); }
.blog-item .item-image img, .item-image img { border-radius: var(--mm-radius); margin-bottom: 1.2rem; }
.readmore { margin-top: 1rem; }
.icon-chevron-right, .icon-chevron-left { display: none; }
.float-start, .float-left { float: left; }
.float-end, .float-right { float: right; }
.clearfix::after { content: ""; display: table; clear: both; }
.hidden, [hidden] { display: none !important; }
.list-unstyled { list-style: none; padding: 0; }

/* Forms */
.mm-input, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="url"], input[type="number"], select, textarea, .form-control, .form-select {
  display: block; width: 100%; min-height: 48px; padding: .75rem 1rem; border-radius: var(--mm-radius-s); border: 1px solid var(--mm-line);
  background: #fff; color: var(--mm-text); font: inherit; font-size: 1rem; transition: border-color .25s, box-shadow .25s;
}
textarea { min-height: 140px; }
.mm-input:focus, input:focus, select:focus, textarea:focus, .form-control:focus { outline: none; border-color: var(--mm-gold); box-shadow: 0 0 0 4px rgb(232 181 106 / .2); }
label, .form-label, .control-label { display: block; margin: 0 0 .35rem; font-weight: 600; font-size: .9rem; color: var(--mm-night); }
.control-group, .mb-3, .form-group { margin-bottom: 1.2rem; }
.form-check { display: flex; gap: .5rem; align-items: center; }
.form-check-input { width: auto; min-height: 0; }
.mm-form { display: grid; gap: .6rem; text-align: left; max-width: 420px; margin: 2rem auto 0; }
.mm-form .mm-btn { margin-top: .6rem; }
.star { color: #c0392b; }
.invalid { border-color: #c0392b !important; }

/* System messages */
joomla-alert, .alert { display: block; position: relative; padding: 1rem 1.25rem; margin: 1rem 0; border-radius: var(--mm-radius); border: 1px solid var(--mm-line); background: var(--mm-paper); box-shadow: var(--mm-shadow-s); }
joomla-alert[type="success"], .alert-success { border-color: #9ed8c7; background: #f0fbf7; }
joomla-alert[type="danger"], joomla-alert[type="error"], .alert-danger { border-color: #f0b9b3; background: #fff5f4; }
joomla-alert[type="warning"], .alert-warning { border-color: #f1d49e; background: #fffaf0; }
joomla-alert .joomla-alert--close, .alert .btn-close { position: absolute; right: .75rem; top: .6rem; border: 0; background: none; font-size: 1.4rem; cursor: pointer; color: var(--mm-muted); }
.alert-heading { font-family: var(--mm-font-body); font-size: .9rem; font-weight: 700; margin-bottom: .3rem; }
.alert-message, .alert-wrapper { margin: 0; }
#system-message-container:empty { display: none; }

/* Sidebar */
.mm-sidebar { display: grid; gap: 1.5rem; align-content: start; }
.mm-sidecard__title { font-size: 1.4rem; }

/* Contact page core component tidy */
.com-contact .contact-miscinfo, .com-contact__container { max-width: 760px; margin-inline: auto; }

/* Error / offline */
.mm-errorpage .mm-pagehero { padding-top: 4rem; }
.mm-debug { text-align: left; background: rgb(0 0 0 / .4); padding: 1rem; border-radius: var(--mm-radius); overflow: auto; font-size: .8rem; }
.mm-offline-form { background: rgb(255 255 255 / .95); color: var(--mm-text); }

/* ==========================================================================
   23. Reveal on scroll
   ========================================================================== */
/* Text is simply there; only photographs and the breathing light ease in */
.js [data-reveal="zoom"] { opacity: 0; transform: scale(.965); transition: opacity 1.2s var(--mm-ease-out), transform 1.6s var(--mm-ease-out); }
.js [data-reveal="zoom"].is-in { opacity: 1; transform: none; }

/* ==========================================================================
   24. Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js [data-reveal="zoom"] { opacity: 1; transform: none; }
  [data-split] .mm-word { opacity: 1; transform: none; filter: none; }
  .mm-breathe__label span:first-child { opacity: 1; }
  .mm-marquee__track { animation: none; }
  .mm-hero__particles { display: none; }
  @view-transition { navigation: none; }
}

/* ==========================================================================
   25. Print
   ========================================================================== */
@media print {
  .mm-header, .mm-hero__sky, .mm-pagehero__sky, .mm-hero__city, .mm-pagehero__city, .mm-totop, .mm-footer__glow { display: none !important; }
  .mm-hero, .mm-pagehero { min-height: 0; padding: 1rem 0; background: none; color: #000; }
  .mm-hero h1, .mm-pagehero__title { color: #000; }
  .js [data-reveal="zoom"] { opacity: 1; transform: none; }
}
