/* Geometry and interactions not provided by native Elementor controls. */
body.home { overflow-x: clip; }
.elementor-10 { overflow-x: clip; }
.elementor-10 .e-con, .elementor-17 .e-con, .elementor-50 .e-con { min-width: 0; }
.elementor-10 .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-10 .elementor-widget-text-editor a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.mappa-decoration { pointer-events: none; }
.mappa-decoration img { display: block; }
.mappa-hero-section { overflow: clip; background-image: linear-gradient(to bottom, var(--e-global-color-e6cb87e, #faf1e2) 0 var(--hero-split, 660px), transparent var(--hero-split, 660px)); }
.mappa-giving-section { background-image: linear-gradient(to bottom, transparent 0 var(--giving-split, 390px), #cbb2eb var(--giving-split, 390px)); }
.mappa-play-section { background-image: linear-gradient(to bottom, transparent 0 48%, var(--e-global-color-754d7da, #30724e) 48%); }
.mappa-hero-frame { transform: rotate(-3deg); }
.mappa-hero-brand { transform: rotate(3deg); }
.mappa-hero-video .elementor-wrapper, .mappa-phone-video .elementor-wrapper { border-radius: 28px; overflow: hidden; }
.mappa-hero-video video, .mappa-phone-video video { object-fit: cover; }
.elementor-10 .mappa-hero-video.is-fullscreen video { object-fit: contain; background: #000; }
/* Override Elementor's responsive hiding while this widget owns fullscreen. */
.mappa-hero-video.is-fullscreen { display: block !important; }
.mappa-hero-fullscreen {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%) rotate(3deg);
  display: grid; place-items: center; color: #fff; background: none; border: 0; padding: 16px;
  cursor: pointer; z-index: 5; line-height: 1; box-shadow: none;
}
.mappa-hero-fullscreen:hover, .mappa-hero-fullscreen:focus, .mappa-hero-fullscreen:active { background: none; color: #fff; }
.mappa-hero-fullscreen svg { width: 64px; height: 64px; fill: currentColor; filter: drop-shadow(0 2px 6px #0003); }
.mappa-hero-fullscreen span { position: absolute; top: 100%; white-space: nowrap; opacity: 0; font-family: 'New-Spirit-Medium', Georgia, serif; font-size: 40px; font-weight: 400; letter-spacing: 0; transition: opacity .2s; }
.mappa-hero-video:hover .mappa-hero-fullscreen span, .mappa-hero-fullscreen:focus-visible span { opacity: 1; }
.mappa-hero-fullscreen:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 4px; }
.mappa-portrait img { aspect-ratio: 4 / 5; object-fit: cover; }
.mappa-square img { aspect-ratio: 1; object-fit: cover; }
.mappa-landscape img { aspect-ratio: 16 / 9; object-fit: cover; }
.mappa-book-photo img { aspect-ratio: 3 / 4; object-fit: cover; object-position: center; }
.mappa-portrait img, .mappa-square img, .mappa-landscape img, .mappa-book-photo img { width: 100%; display: block; }
.mappa-feature-box .elementor-image-box-img { height: 90px; display: flex; align-items: center; }
.mappa-feature-box .elementor-image-box-img img { width: 100%; max-height: 90px; object-fit: contain; }
@media (min-width: 768px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .elementor-10 .elementor-element-19da5c79 > .e-con {
    transition: padding-top .4s ease, margin-bottom .4s ease;
  }
  .elementor-10 .elementor-element-19da5c79 > .e-con:hover {
    padding-top: calc(var(--padding-top, 50px) + 40px);
    margin-bottom: calc(var(--margin-bottom, 0px) - 40px);
  }
}
.mappa-wave { width: 100%; height: 160px; overflow: hidden; }
.mappa-wave canvas { width: 100%; height: 100%; display: block; }
.mappa-order-wrap { position: fixed; bottom: max(24px, env(safe-area-inset-bottom)); left: 50%; width: max-content; max-width: calc(100% - 32px); transform: translateX(-50%); z-index: 1000; }
.mappa-order-button .elementor-button { white-space: nowrap; box-shadow: 0 2px 8px #0002; }
.elementor-10 .mappa-cheatsheet .elementor-button { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 44px; }
.mappa-moments-track { position: relative; }
.mappa-moments-track.is-scrolling .mappa-moments-sticky { position: sticky; top: 32px; }
.mappa-moment-images { position: relative; align-self: stretch; }
.mappa-moment-photo { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; visibility: hidden; transition: opacity .28s; }
.mappa-moment-photo.is-active { opacity: 1; visibility: visible; }
.mappa-moment-photo > .elementor-widget-container { height: 100%; }
.mappa-moment-photo img { display: block; width: 100%; height: 100%; min-height: 0; aspect-ratio: 4 / 5; object-fit: cover; }
.mappa-accordion .e-n-accordion { gap: 0; }
.mappa-accordion .e-n-accordion-item { border-radius: 24px; overflow: hidden; background: var(--moment-color); }
.mappa-accordion .e-n-accordion-item:nth-child(1) { --moment-color: #e0a032; }
.mappa-accordion .e-n-accordion-item:nth-child(2) { --moment-color: #0069b2; }
.mappa-accordion .e-n-accordion-item:nth-child(3) { --moment-color: #5d3283; }
.mappa-accordion .e-n-accordion-item:nth-child(4) { --moment-color: #a84325; }
.mappa-accordion .e-n-accordion-item:nth-child(5) { --moment-color: #ce106a; }
.mappa-accordion .e-n-accordion-item:nth-child(6) { --moment-color: #f98092; }
.mappa-accordion .e-n-accordion-item-title { background: var(--moment-color); }
.mappa-accordion .e-n-accordion-item-title-text { display: flex; align-items: baseline; gap: .25em; }
.mappa-step-number { flex: 0 0 auto; }
.mappa-accordion .e-n-accordion-item-title-header { min-width: 0; }
.mappa-accordion .e-n-accordion-item-title-icon { flex-shrink: 0; }
.mappa-loop { width: 146%; max-width: none; pointer-events: none; }
.mappa-loop svg { width: 100%; display: block; overflow: visible; }
.mappa-loop path { fill: none; stroke: #3f8ce8; stroke-width: 10px; stroke-linecap: round; stroke-dasharray: 1500; animation: mappa-draw 7s ease-in-out infinite; }
.mappa-future-card { overflow: visible; }
.mappa-footer a { text-decoration: none; }
.mappa-footer a:hover, .mappa-footer a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }
.mappa-drift-y { translate: 0 var(--drift-y, 0); }
.mappa-drift-x { translate: var(--drift-x, 0) 0; }
@keyframes mappa-draw { 0% { stroke-dashoffset: 1500; } 55%, 90% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -1500; } }
@media (max-width: 1024px) {
  .mappa-loop { width: 125%; }
  .mappa-drift-x, .mappa-drift-y { translate: none; }
}
@media (max-width: 767px) {
  .mappa-hero-fullscreen svg { width: 54px; height: 54px; }
  .mappa-hero-fullscreen span { display: none; }
  .mappa-feature-box .elementor-image-box-img { margin-left: auto; margin-right: auto; }
  .mappa-wave { height: 110px; }
  .mappa-moment-images { aspect-ratio: 4 / 3; }
  .mappa-moment-photo img { aspect-ratio: 4 / 3; }
  .mappa-accordion .e-n-accordion-item { border-radius: 16px; }
  .mappa-moments-track.is-mobile-story .mappa-moments-sticky { top: 16px; }
  .is-mobile-story .mappa-moment-images { height: clamp(64px, calc(100svh - var(--moment-other-height, 580px)), 310px); aspect-ratio: auto; }
  .is-mobile-story .mappa-accordion .e-n-accordion-item { border-radius: 16px; }
  .is-mobile-story .mappa-accordion .e-n-accordion-item:first-child { border-radius: 0 0 16px 16px; }
  .is-mobile-story .e-n-accordion-item[open] > .e-con { min-height: var(--moment-content-height, 70px); }
  .mappa-loop { width: 105%; }
  .mappa-footer-credit .elementor-image-box-wrapper { display: flex; align-items: center; gap: 18px; }
  .mappa-footer-credit.elementor-position-right .elementor-image-box-wrapper { flex-direction: row-reverse; }
  .mappa-footer-credit .elementor-image-box-img { flex-shrink: 0; margin: 0; }
  .mappa-order-wrap { bottom: max(18px, env(safe-area-inset-bottom)); }
}
@media (max-width: 767px) and (max-height: 740px) {
  .is-mobile-story .e-n-accordion-item-title { padding-top: 12px; padding-bottom: 12px; }
}
@media (max-width: 767px) and (max-height: 600px) {
  .is-mobile-story .e-n-accordion-item-title { padding-top: 5px; padding-bottom: 5px; }
  .elementor-10 .is-mobile-story .mappa-moment-images .mappa-decoration { width: 44px; top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .mappa-loop path { animation: none; stroke-dashoffset: 0; }
  .mappa-moment-photo, .mappa-hero-fullscreen span { transition: none; }
  .mappa-drift-x, .mappa-drift-y { translate: none; }
}
