/*
Theme Name: Action Bible
Theme URI: https://www.theactionbible.com/
Author: The Action Bible
Description: Elementor-first presentation theme for The Action Bible migration.
Version: 0.1.0
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: action-bible
*/

:root {
	--ab-red: #c5161d;
	--ab-yellow: #ffbc1c;
	--ab-blue: #00b5ff;
	--ab-pink: #dc5a90;
	--ab-orange: #da7100;
	--ab-green: #47b045;
	--ab-purple: #884f9f;
	--ab-ink: #161616;
	--ab-paper: #fff;
	--ab-blue-gray: #ebeeef;
	--ab-site-width: 1200px;
	--ab-gutter: clamp(1rem, 4vw, 2.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ab-ink); background: var(--ab-paper); font-family: Arial, Helvetica, sans-serif; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
.ab-site-width { width: min(100% - (2 * var(--ab-gutter)), var(--ab-site-width)); margin-inline: auto; }
.ab-site-main { min-height: 60vh; }
.ab-fallback-header, .ab-fallback-footer { padding: 1rem var(--ab-gutter); background: #111; color: #fff; }
.ab-fallback-header__inner, .ab-fallback-footer__inner { width: min(100%, var(--ab-site-width)); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.ab-fallback-header a, .ab-fallback-footer a { color: inherit; text-decoration: none; }
.ab-fallback-nav { display: flex; gap: 1rem; flex-wrap: wrap; }
.ab-page { width: min(100% - (2 * var(--ab-gutter)), var(--ab-site-width)); margin: 0 auto; padding-block: 3rem; }
.ab-button { display: inline-flex; padding: .8rem 1.2rem; border-radius: .35rem; background: var(--ab-ink); color: #fff; text-decoration: none; font-weight: 700; }
.ab-product-retailers { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; margin-top: 2rem; }
.ab-product-retailers .ab-button.ab-product-retailer { align-items: center; justify-content: center; border: 2px solid #086fb7; border-radius: .65rem; text-align: center; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.ab-product-retailers .ab-button.ab-product-retailer--primary { flex: 1 0 100%; min-height: 64px; padding: 1rem 2rem; background: #086fb7; color: #fff; font-size: clamp(1.05rem, 2vw, 1.3rem); }
.ab-product-retailers .ab-button.ab-product-retailer--secondary { flex: 0 0 calc((100% - .75rem) / 2); min-width: 0; min-height: 50px; box-sizing: border-box; padding: .75rem 1.15rem; background: transparent; color: #086fb7; }
.ab-product-retailers .ab-button.ab-product-retailer--primary:hover,
.ab-product-retailers .ab-button.ab-product-retailer--primary:focus-visible { border-color: #020202; background: #020202; color: #fff; }
.ab-product-retailers .ab-button.ab-product-retailer--secondary:hover,
.ab-product-retailers .ab-button.ab-product-retailer--secondary:focus-visible { background: #086fb7; color: #fff; }
.ab-product-single__image { display: block; width: min(100%, 560px); height: auto; margin-inline: auto; }
.ab-product-single__title { margin: 0; font-size: clamp(2.25rem, 5vw, 4rem); line-height: 1.05; }
.ab-product-single__content { line-height: 1.65; }
.ab-configuration-message { margin: 2rem auto; width: min(100% - (2 * var(--ab-gutter)), 760px); padding: 1rem 1.25rem; border: 2px solid #dba617; background: #fff8d9; }

/* Full-screen Adventure application. Elementor controls the placement of the
 * dynamic shortcode surfaces; these rules preserve the supplied Next app's
 * interaction shell and keep games isolated from the public site chrome. */
.ab-application-document { --ab-admin-offset: 0px; min-height: 100vh; overflow-x: hidden; background: #020202; }
.ab-application-document.admin-bar { --ab-admin-offset: 32px; min-height: calc(100vh - var(--ab-admin-offset)); }
.ab-application-document.admin-bar .ab-adventure-app { min-height: calc(100vh - 32px); }
.ab-adventure-app { --ab-app-header-height: 80px; position: relative; min-height: 100vh; overflow: hidden; background: #020202; color: #fff; font-family: var(--ab-source-sans, Arial, sans-serif); }
.ab-adventure-app button, .ab-adventure-app a { font: inherit; }
.ab-app-stage, .ab-app-stage > .elementor, .ab-app-stage > .elementor > .elementor-element, .ab-app-stage .e-con.e-parent:not(.ab-home-email) { width: 100%; max-width: none; margin: 0; padding: 0; }
.ab-app-stage .elementor-widget-shortcode, .ab-app-stage .elementor-widget-shortcode > .elementor-widget-container, .ab-app-stage .elementor-shortcode { width: 100%; min-width: 100%; }
.ab-elementor-dynamic-surface,
.ab-elementor-dynamic-surface > .elementor-widget-container,
.ab-elementor-dynamic-surface .elementor-shortcode { width: 100%; min-width: 0; }
.ab-app-stage .ab-elementor-dynamic-surface,
.ab-app-stage .ab-elementor-dynamic-surface > .elementor-widget-container,
.ab-app-stage .ab-elementor-dynamic-surface .elementor-shortcode { width: 100%; min-width: 100%; }
.ab-app-header { position: relative; z-index: 100; width: 100%; }
.ab-app-header--menu { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: var(--ab-app-header-height); padding: 0 30px; background: #020202; }
.ab-app-header__logo { display: block; width: 191px; }
.ab-app-header__logo img { display: block; width: 100%; filter: brightness(0) invert(1); }
.ab-app-header__back { display: inline-flex; align-items: center; justify-self: start; gap: 8px; width: fit-content; color: #fff; font: 18px/1 var(--ab-source-title, Impact, sans-serif); letter-spacing: 1px; text-decoration: none; text-transform: uppercase; }
.ab-app-header__back span { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; color: #020202; line-height: 0; }
.ab-app-header__back span svg { display: block; width: 10px; height: 10px; fill: currentColor; }
.ab-app-header__back .ab-app-header__back-context { display: inline; width: auto; height: auto; border-radius: 0; background: transparent; color: inherit; font: inherit; }
.ab-app-header__themes { justify-self: end; border: 0; background: transparent; color: #fff; font: 18px/1 var(--ab-source-title, Impact, sans-serif) !important; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; }
.ab-app-header--branch { height: 42px; background: #fff; color: #020202; }
.ab-app-header--branch .ab-app-header__back { position: absolute; inset: 0 auto 0 30px; color: #020202; }
.ab-app-header--branch .ab-app-header__back span { background: #020202; color: #fff; }
.ab-app-header__tools { display: flex; align-items: center; justify-content: flex-end; gap: 24px; height: 42px; padding: 0 30px; }
.ab-app-header__tools button { display: inline-flex; align-items: center; gap: 8px; border: 0; background: transparent; color: #020202; font: 18px/1 var(--ab-source-title, Impact, sans-serif) !important; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; }
.ab-app-tool-icon { position: relative; display: grid; place-items: center; width: 21px; height: 21px; border: 2px solid currentColor; border-radius: 50%; font: 700 13px/1 Arial,sans-serif; }
[data-ab-sound-toggle].is-muted .ab-app-tool-icon::after { position: absolute; width: 2px; height: 22px; background: currentColor; content: ""; transform: rotate(-45deg); }
.ab-app-help { position: relative; z-index: 90; padding: 20px 30px; background: #fff; color: #020202; line-height: 1.5; }
.ab-app-theme-drawer { position: fixed; z-index: 500; inset: 0; overflow-y: auto; padding: 70px 24px 40px; background: rgba(2,2,2,.985); color: #fff; text-align: center; }
.ab-app-theme-drawer__close { position: absolute; top: 18px; right: 24px; border: 0; background: transparent; color: #fff; font-size: 44px !important; cursor: pointer; }
.ab-app-theme-drawer h2 { margin: 0 0 35px; font: 48px/1 var(--ab-source-title, Impact, sans-serif); text-transform: uppercase; }
.ab-app-theme-drawer__grid { display: grid; grid-template-columns: repeat(7, minmax(95px, 135px)); justify-content: center; gap: 22px; }
.ab-app-theme-drawer__grid a { color: #fff; text-decoration: none; text-transform: uppercase; }
.ab-app-theme-drawer__grid img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
.ab-app-theme-drawer__grid span { display: block; margin-top: 8px; }
.ab-app-theme-drawer__site { display: inline-block; margin-top: 42px; border-bottom: 1px solid; text-decoration: none; }

.ab-adventure-menu { width: min(calc(100% - 40px), 403px); margin: 0 auto; padding: 30px 0 22px; }
.ab-adventure-menu__header { display: flex; align-items: center; gap: 20px; margin-bottom: 25px; text-align: left; }
.ab-adventure-menu__badge { flex: 0 0 69px; }
.ab-adventure-menu__badge img { display: block; width: 69px; height: 69px; object-fit: contain; }
.ab-adventure-menu__verse { margin: 0 0 5px; color: #fff; font-size: 16px; line-height: 1.35; text-transform: uppercase; }
.ab-adventure-menu__header h1 { margin: 0; color: var(--ab-app-accent); font: 24px/1.15 var(--ab-source-title, Impact, sans-serif); letter-spacing: 1px; text-transform: uppercase; }
.ab-adventure-menu__options { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; align-items: stretch; margin-bottom: 84px; padding-top: 50px; }
.ab-adventure-menu__steps { display: flex; flex-direction: column; gap: 60px; }
.ab-adventure-card { position: relative; display: block; width: 100%; min-height: 0; padding: 0; overflow: visible; border: 0; border-radius: 8px; background: #222; color: #fff; text-align: left; text-decoration: none; box-shadow: none; cursor: pointer; }
.ab-adventure-card > .ab-adventure-card__image,
.ab-adventure-card > .ab-adventure-card__placeholder { display: block; width: 100%; aspect-ratio: 720/400; border: 2px solid #fff; border-radius: 8px; object-fit: cover; }
.ab-adventure-card__placeholder { background: linear-gradient(135deg,#333,#111); }
.ab-adventure-card__label { position: absolute; z-index: 2; top: -44px; left: -28px; padding: 0; background: transparent; color: #fff; font: clamp(38px, 7vw, 56px)/1 var(--ab-source-title, Impact, sans-serif); letter-spacing: 1px; text-shadow: -1px -1px 0 #020202, 1px -1px 0 #020202, -1px 1px 0 #020202, 4px 6px 0 #020202; text-transform: uppercase; transform: rotate(-7deg); transform-origin: left center; }
.ab-adventure-card__icon { position: absolute; z-index: 3; bottom: -10px; left: -10px; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 4px; border: 1px solid var(--ab-app-accent); border-radius: 50%; background: var(--ab-app-texture) center/cover, var(--ab-app-accent); }
.ab-adventure-card__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ab-adventure-menu__progress { display: none !important; }
.ab-adventure-menu__progress li { position: relative; width: 12px; height: 12px; border: 2px solid var(--ab-app-accent); border-radius: 50%; background: var(--ab-app-accent); }
.ab-adventure-menu__progress li:not(:last-child)::after { content: ""; position: absolute; top: 10px; left: 3px; width: 2px; height: calc((100% + 60px) * 2.5); background: var(--ab-app-accent); }
.ab-adventure-menu__copyright { margin: 0; color: #929292; font-size: 10px; line-height: 1.6; }
.ab-adventure-media-modal { width: min(92vw, 960px); max-width: 960px; padding: 0; border: 0; background: #020202; color: #fff; box-shadow: 0 25px 80px rgba(0,0,0,.65); }
.ab-adventure-media-modal::backdrop { background: rgba(0,0,0,.84); }
.ab-adventure-media-modal__close { position: absolute; z-index: 2; top: 8px; right: 12px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: #020202; font-size: 0 !important; line-height: 0; cursor: pointer; }
.ab-adventure-media-modal__close::before,
.ab-adventure-media-modal__close::after { position: absolute; top: 50%; left: 50%; width: 20px; height: 3px; border-radius: 999px; background: currentColor; content: ""; transform: translate(-50%,-50%) rotate(45deg); }
.ab-adventure-media-modal__close::after { transform: translate(-50%,-50%) rotate(-45deg); }
.ab-adventure-media-modal iframe { display: block; width: 100%; aspect-ratio: 16/9; border: 0; }
.ab-adventure-media-modal audio { display: block; width: min(90%, 680px); margin: 100px auto; }

.ab-adventure-app--devotional { background: var(--ab-dev-bg); }
.ab-devotional { position: relative; width: 100%; height: calc(100vh - 42px); overflow: hidden; background: var(--ab-dev-bg); color: var(--ab-dev-body-text); }
.ab-devotional__pages, .ab-devotional__page { width: 100%; height: 100%; }
.ab-devotional__page { overflow-y: auto; background-color: var(--ab-dev-bg); background-image: var(--ab-devotional-art); background-position: top center; background-repeat: no-repeat; background-size: 1010px auto; }
.ab-devotional__page.is-prayer { background-color: #fff; background-size: cover; color: var(--ab-prayer-body-text); }
.ab-devotional__content-wrap { width: min(calc(100% - 44px), 400px); margin: 0 auto; padding: 170px 8px 110px; font-size: 18px; line-height: 1.35; }
.ab-devotional__label { width: 135px; margin: 0 0 30px; padding: 4px 8px 3px; border-radius: 14px; background: var(--ab-dev-head-bg); color: var(--ab-dev-head-text); font: 20px/1 var(--ab-source-title, Impact, sans-serif); letter-spacing: 2px; text-align: center; text-transform: uppercase; }
.ab-devotional__page.is-prayer .ab-devotional__label { background: var(--ab-prayer-head-bg); color: var(--ab-prayer-head-text); }
.ab-devotional h2 { margin: 0 0 15px; font-size: 18px; line-height: 1.35; text-transform: uppercase; }
.ab-devotional__content-wrap p { margin: 0 0 20px; }
.ab-devotional__page h2 + .ab-devotional__content { padding-left: 10px; border-left: 2px solid var(--ab-dev-border); }
.ab-devotional__answer { margin-top: 30px; }
.ab-devotional__answer summary { color: var(--ab-dev-head-text); font: 20px/1 var(--ab-source-title, Impact, sans-serif); letter-spacing: 2px; text-transform: uppercase; cursor: pointer; }
.ab-devotional__navigate { position: absolute; z-index: 4; top: 0; bottom: 65px; width: 50%; border: 0; background: transparent; cursor: pointer; }
.ab-devotional__navigate--previous { left: 0; cursor: w-resize; }
.ab-devotional__navigate--next { right: 0; cursor: e-resize; }
.ab-devotional__content-wrap, .ab-devotional__answer { position: relative; z-index: 5; }
.ab-devotional__progress { position: absolute; z-index: 6; right: 5vw; bottom: 24px; left: 5vw; display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
.ab-devotional__progress li { display: flex; align-items: center; }
.ab-devotional__progress li:not(:last-child) { flex: 1 1 auto; }
.ab-devotional__progress li:last-child { flex: 0 0 auto; }
.ab-devotional__progress li:not(:last-child)::after { content: ""; flex: 1; height: 2px; margin: 0 3px; background: repeating-linear-gradient(90deg,var(--ab-dev-progress) 0 3px,transparent 3px 9px); }
.ab-devotional__progress li.is-complete:not(:last-child)::after { background: var(--ab-dev-progress); }
.ab-devotional__progress button { width: 22px; height: 22px; padding: 0; border: 2px solid var(--ab-dev-progress); border-radius: 50%; background: transparent; cursor: pointer; }
.ab-devotional__progress button.is-complete { background: var(--ab-dev-progress); }
.ab-devotional.is-prayer .ab-devotional__progress li:not(:last-child)::after { background: repeating-linear-gradient(90deg,var(--ab-prayer-progress) 0 3px,transparent 3px 9px); }
.ab-devotional.is-prayer .ab-devotional__progress li.is-complete:not(:last-child)::after { background: var(--ab-prayer-progress); }
.ab-devotional.is-prayer .ab-devotional__progress button { border-color: var(--ab-prayer-progress); }
.ab-devotional.is-prayer .ab-devotional__progress button.is-complete { background: var(--ab-prayer-progress); }

/* Alternate client-review devotional: horizontal chapters on desktop. */
.ab-devotional--scroll { isolation: isolate; }
.ab-devotional--scroll .ab-devotional__backgrounds { position: absolute; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; }
.ab-devotional--scroll .ab-devotional__background { position: absolute; inset: 0; background-color: var(--ab-dev-bg); background-position: top center; background-repeat: no-repeat; background-size: 1010px auto; opacity: 0; transition: opacity .55s ease; }
.ab-devotional--scroll .ab-devotional__background.is-prayer { background-color: #fff; background-size: cover; }
.ab-devotional--scroll .ab-devotional__background.is-active { opacity: 1; }
.ab-devotional-audio { position: absolute; z-index: 9; bottom: 18px; left: 50%; display: grid; grid-template-columns: 48px 92px minmax(160px,1fr) auto; align-items: center; gap: 12px; width: min(calc(100% - 32px),760px); min-height: 72px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.76); border-radius: 14px; background: rgba(2,2,2,.82); color: #fff; transform: translateX(-50%); box-shadow: 0 8px 30px rgba(0,0,0,.3); backdrop-filter: blur(8px); }
.ab-devotional-audio__toggle { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: #fff; color: #020202; line-height: 0; cursor: pointer; }
.ab-devotional-audio__toggle svg { display: block; width: 24px; height: 24px; fill: currentColor; }
.ab-devotional-audio__pause, .ab-devotional-audio.is-playing .ab-devotional-audio__play { display: none !important; }
.ab-devotional-audio.is-playing .ab-devotional-audio__pause { display: block !important; }
.ab-devotional-audio__bars { display: flex; align-items: center; justify-content: center; gap: 3px; height: 36px; }
.ab-devotional-audio__bars span { width: 4px; height: 100%; border-radius: 4px; background: var(--ab-app-accent); transform: scaleY(var(--ab-bar-rest,.3)); transform-origin: center; transition: transform 80ms linear; }
.ab-devotional-audio__bars span:nth-child(4n+1) { --ab-bar-rest: .24; }
.ab-devotional-audio__bars span:nth-child(4n+2) { --ab-bar-rest: .48; }
.ab-devotional-audio__bars span:nth-child(4n+3) { --ab-bar-rest: .72; }
.ab-devotional-audio__bars span:nth-child(4n) { --ab-bar-rest: .4; }
.ab-devotional-audio.is-playing:not(.has-live-levels) .ab-devotional-audio__bars span { animation: abDevotionalAudioFallback .72s ease-in-out infinite alternate; animation-delay: calc(var(--ab-bar-index) * -61ms); }
.ab-devotional-audio__details { min-width: 0; }
.ab-devotional-audio__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 5px; }
.ab-devotional-audio__heading span { color: #fff; font: 15px/1 var(--ab-source-title,Impact,sans-serif); letter-spacing: 1px; text-transform: uppercase; }
.ab-devotional-audio__heading strong { overflow: hidden; font-size: 12px; font-weight: 600; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.ab-devotional-audio__timeline { display: block; line-height: 0; }
.ab-devotional-audio__timeline input { width: 100%; height: 18px; margin: 0; padding: 0; appearance: none; background: transparent; cursor: pointer; }
.ab-devotional-audio__timeline input::-webkit-slider-runnable-track { height: 4px; border-radius: 4px; background: linear-gradient(90deg,var(--ab-app-accent) 0 var(--ab-audio-progress,0%),rgba(255,255,255,.35) var(--ab-audio-progress,0%) 100%); }
.ab-devotional-audio__timeline input::-moz-range-track { height: 4px; border-radius: 4px; background: rgba(255,255,255,.35); }
.ab-devotional-audio__timeline input::-moz-range-progress { height: 4px; border-radius: 4px; background: var(--ab-app-accent); }
.ab-devotional-audio__timeline input::-webkit-slider-thumb { width: 15px; height: 15px; margin-top: -5.5px; border: 2px solid #020202; border-radius: 50%; appearance: none; background: var(--ab-app-accent); box-shadow: 0 0 0 1px #fff; }
.ab-devotional-audio__timeline input::-moz-range-thumb { width: 15px; height: 15px; border: 2px solid #020202; border-radius: 50%; background: var(--ab-app-accent); box-shadow: 0 0 0 1px #fff; }
.ab-devotional-audio__time { min-width: 74px; color: #fff; font: 11px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace; font-variant-numeric: tabular-nums; text-align: right; }
@keyframes abDevotionalAudioFallback { 0% { transform: scaleY(.18); } 35% { transform: scaleY(.82); } 70% { transform: scaleY(.38); } 100% { transform: scaleY(1); } }
.ab-devotional--scroll .ab-devotional__pages { position: relative; z-index: 1; display: flex; height: calc(100% - 150px); overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.ab-devotional--scroll .ab-devotional__pages::-webkit-scrollbar { display: none; }
.ab-devotional--scroll .ab-devotional__page { flex: 0 0 100%; background-color: transparent; background-image: none; scroll-snap-align: start; scroll-snap-stop: always; }
.ab-devotional__navigate svg { display: none; }
.ab-devotional--scroll .ab-devotional__navigate { z-index: 7; top: 50%; bottom: auto; display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: rgba(2,2,2,.68); color: #fff; line-height: 0; transform: translateY(-50%); cursor: pointer; box-shadow: 0 5px 18px rgba(0,0,0,.34); backdrop-filter: blur(4px); }
.ab-devotional--scroll .ab-devotional__navigate--previous { left: clamp(14px,3vw,46px); }
.ab-devotional--scroll .ab-devotional__navigate--next { right: clamp(14px,3vw,46px); }
.ab-devotional--scroll .ab-devotional__navigate svg { display: block; width: 22px; height: 22px; fill: currentColor; }
.ab-devotional--scroll .ab-devotional__navigate:disabled { opacity: .28; cursor: default; }
.ab-devotional--scroll .ab-devotional__progress { bottom: 112px; }
.ab-devotional--scroll .ab-devotional__content-wrap { padding-bottom: 48px; }

.ab-adventure-app--game .ab-app-stage, .ab-adventure-app--activity .ab-app-stage { min-height: calc(100vh - 42px); background: var(--ab-dev-bg); }
.ab-adventure-game, .ab-adventure-activity { min-height: calc(100vh - 42px); padding: clamp(20px,4vw,50px); }
.ab-adventure-game--unity { padding: 0; background: #020202; }
.ab-adventure-game .abug-wrap { width: 100%; max-width: 1280px; margin: 0 auto; }
.ab-adventure-app--game { height: calc(100dvh - var(--ab-admin-offset)); min-height: 0; }
.ab-adventure-app--game .ab-app-stage { height: calc(100% - 42px); min-height: 0; overflow: hidden; }
.ab-adventure-app--game .ab-app-stage > .elementor,
.ab-adventure-app--game .ab-app-stage > .elementor > .elementor-element,
.ab-adventure-app--game .ab-app-stage .elementor-widget-shortcode,
.ab-adventure-app--game .ab-app-stage .elementor-widget-shortcode > .elementor-widget-container,
.ab-adventure-app--game .ab-app-stage .elementor-shortcode,
.ab-adventure-app--game .ab-app-stage .ab-elementor-dynamic-surface,
.ab-adventure-app--game .ab-app-stage .ab-elementor-dynamic-surface > .elementor-widget-container,
.ab-adventure-app--game .ab-app-stage .ab-elementor-dynamic-surface .elementor-shortcode,
.ab-adventure-app--game .ab-adventure-game,
.ab-adventure-app--game .ab-adventure-game .abug-wrap,
.ab-adventure-app--game .ab-adventure-game .abug-stage { width: 100%; max-width: none; height: 100%; min-height: 0; margin: 0; padding: 0; }
.ab-adventure-app--game .ab-adventure-game .abug-topbar { display: none; }
.ab-adventure-app--game .ab-adventure-game .abug-stage { aspect-ratio: auto; border-radius: 0; }
.ab-adventure-app--game .ab-adventure-game .abug-canvas { width: 100% !important; height: 100% !important; }
.ab-adventure-activity--word-search .abws, .ab-adventure-activity--crossword .abcw-game { width: min(100%, 1200px); margin: 0 auto; }
.ab-match-activity { background: var(--ab-dev-bg); color: #fff; }
.ab-match-activity h1 { margin: 0 0 30px; padding-top: 25px; font: 42px/1 var(--ab-source-title, Impact, sans-serif); text-align: center; text-transform: uppercase; }
.ab-match-activity__items { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; width: min(100%,1100px); margin: 0 auto; }
.ab-match-activity__items button { overflow: hidden; padding: 0; border: 3px solid transparent; background: transparent; cursor: pointer; }
.ab-match-activity__items img { display: block; width: 100%; aspect-ratio: 800/533; object-fit: cover; }
.ab-match-activity__items button.is-complete { filter: grayscale(1); opacity: .55; }
.ab-match-activity__status { text-align: center; }
.ab-downloadable-activity { position: relative; min-height: calc(100vh - 42px); padding: 0; overflow: hidden; background: #dbf9f2; color: #020202; }
.ab-downloadable-activity__scene { position: absolute; inset: 0 0 76px; background-image: var(--ab-activity-background); background-position: center top; background-size: auto 200vh; animation: abActivityScroll 30s linear infinite; }
.ab-downloadable-activity__bar { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: space-between; padding: 12px 17px; background: #dbf9f2; }
.ab-downloadable-activity__bar div { display: flex; flex-direction: column; }
.ab-downloadable-activity__bar small { opacity: .55; font: 15px/1 var(--ab-source-title,Impact,sans-serif); text-transform: uppercase; }
.ab-downloadable-activity__bar strong { font: 28px/1.1 var(--ab-source-title,Impact,sans-serif); text-transform: uppercase; }
.ab-downloadable-activity__bar button { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: #020202; color: #fff; line-height: 0; cursor: pointer; }
.ab-downloadable-activity__bar button svg { display: block; width: 18px; height: 18px; fill: currentColor; }
.ab-downloadable-activity__drawer { position: absolute; z-index: 2; inset: 0; overflow-y: auto; padding-bottom: 58px; background: #dbf9f2; }
.ab-downloadable-activity__inner { width: min(calc(100% - 40px), 400px); margin: 0 auto; padding: 60px 0 40px; }
.ab-downloadable-activity__images { display: flex; gap: 18px; overflow-x: auto; padding: 18px; background: #fff; scroll-snap-type: x mandatory; }
.ab-downloadable-activity__images img { flex: 0 0 100%; scroll-snap-align: center; }
.ab-downloadable-activity__inner h1 { margin: 28px 0 15px; }
.ab-downloadable-activity__download { position: fixed; z-index: 4; right: 0; bottom: 0; left: 0; padding: 19px; background: #020202; color: #fff; text-align: center; text-decoration: none; text-transform: uppercase; }
@keyframes abActivityScroll { from { background-position:center top; } to { background-position:center bottom; } }

.ab-loop-card[id^="adventure-"] { scroll-margin-top: 130px; }

@media (max-width: 782px) {
	.ab-application-document.admin-bar { --ab-admin-offset: 46px; }
	.ab-application-document.admin-bar .ab-adventure-app { min-height: calc(100vh - 46px); }
}
@media (max-width: 767px) {
	.ab-adventure-app { --ab-app-header-height: 58px; }
	/* Keep bottom-docked controls inside Safari's changing visual viewport. */
	.ab-devotional { height: calc(100svh - 42px); height: calc(100dvh - 42px); }
	.ab-app-header--menu { padding: 0 16px; }
	.ab-app-header__logo { width: 130px; }
	.ab-app-header__back { font-size: 15px; }
	.ab-app-header__back .ab-app-header__back-context { display: none; }
	.ab-app-header__themes { font-size: 15px !important; }
	.ab-app-header--branch .ab-app-header__back { left: 16px; }
	.ab-app-header__tools { gap: 10px; padding: 0 16px; }
	.ab-app-header__tools button { font-size: 15px !important; }
	.ab-app-theme-drawer__grid { grid-template-columns: repeat(2,minmax(110px,150px)); }
	.ab-adventure-menu { width: min(calc(100% - 44px),403px); padding-top: 20px; }
	.ab-adventure-card__label { top: -32px; left: -14px; font-size: 38px; }
	.ab-devotional__content-wrap { padding-top: 150px; }
	.ab-devotional__progress { right: 22px; left: 22px; }
	.ab-devotional--scroll .ab-devotional__pages { flex-direction: column; height: calc(100% - 88px); overflow-x: hidden; overflow-y: auto; scroll-snap-type: y mandatory; overscroll-behavior-x: auto; overscroll-behavior-y: contain; }
	.ab-devotional-audio { bottom: calc(12px + env(safe-area-inset-bottom,0px)); grid-template-columns: 42px 52px minmax(0,1fr) auto; gap: 8px; width: calc(100% - 24px); min-height: 64px; padding: 8px 10px; border-radius: 12px; }
	.ab-devotional-audio__toggle { width: 40px; height: 40px; }
	.ab-devotional-audio__toggle svg { width: 21px; height: 21px; }
	.ab-devotional-audio__bars { gap: 2px; height: 30px; }
	.ab-devotional-audio__bars span { width: 3px; }
	.ab-devotional-audio__heading span { display: block; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
	.ab-devotional-audio__heading strong { display: none; }
	.ab-devotional-audio__time { min-width: 64px; font-size: 9px; }
	.ab-devotional--scroll .ab-devotional__page { flex: 0 0 auto; min-height: 100%; height: auto; overflow: visible; }
	.ab-devotional--scroll .ab-devotional__page:not(:last-child)::after { display: block; height: clamp(96px,18vh,150px); content: ""; pointer-events: none; }
	.ab-devotional--scroll .ab-devotional__page.is-long-step:not(:last-child)::after { height: clamp(168px,30vh,250px); }
	.ab-devotional--scroll .ab-devotional__content-wrap { width: min(calc(100% - 72px),400px); margin-right: auto; margin-left: 22px; padding-bottom: 48px; }
	.ab-devotional--scroll .ab-devotional__navigate { display: none; }
	.ab-devotional--scroll .ab-devotional__progress { top: 50%; right: 14px; bottom: auto; left: auto; flex-direction: column; transform: translateY(-50%); }
	.ab-devotional--scroll .ab-devotional__progress li:not(:last-child) { flex: 0 0 auto; flex-direction: column; }
	.ab-devotional--scroll .ab-devotional__progress li:not(:last-child)::after { flex: 0 0 28px; width: 2px; height: 28px; margin: 3px 0; background: repeating-linear-gradient(180deg,var(--ab-dev-progress) 0 3px,transparent 3px 9px); }
	.ab-devotional--scroll .ab-devotional__progress li.is-complete:not(:last-child)::after { background: var(--ab-dev-progress); }
	.ab-devotional--scroll.is-prayer .ab-devotional__progress li:not(:last-child)::after { background: repeating-linear-gradient(180deg,var(--ab-prayer-progress) 0 3px,transparent 3px 9px); }
	.ab-devotional--scroll.is-prayer .ab-devotional__progress li.is-complete:not(:last-child)::after { background: var(--ab-prayer-progress); }
	.ab-adventure-game, .ab-adventure-activity { padding: 18px; }
	.ab-adventure-game--unity, .ab-downloadable-activity { padding: 0; }
	.ab-match-activity__items { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

.ab-theme-hero { padding: clamp(3rem, 8vw, 8rem) 0; color: #fff; background-color: var(--ab-theme-color, var(--ab-ink)); background-size: cover; }
.ab-theme-hero__inner { width: min(100% - (2 * var(--ab-gutter)), var(--ab-site-width)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .8fr); align-items: center; gap: 2rem; }
.ab-theme-hero h1 { font-size: clamp(3rem, 10vw, 8rem); margin: 0; }
.ab-theme-content, .ab-theme-adventures { width: min(100% - (2 * var(--ab-gutter)), var(--ab-site-width)); margin: 0 auto; padding-block: 3rem; }
.ab-adventure-grid, .ab-product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 1.5rem; }
.ab-loop-card { display: block; border-radius: 1rem; overflow: hidden; background: #fff; color: inherit; text-decoration: none; box-shadow: 0 10px 28px rgba(0,0,0,.14); }
.ab-loop-card__content { padding: 1rem 1.15rem 1.25rem; }
.ab-loop-card h2, .ab-loop-card h3 { margin: .25rem 0 0; }

/* ================================================================
 * Elementor Adventure Theme archive (template 1050)
 * Five native Elementor sections; shortcodes only bridge current-term ACF.
 * ================================================================ */
body.tax-adventure_theme #ab-theme-archive { overflow: hidden; width: 100%; max-width: none; background: #fff; }
body.tax-adventure_theme .ab-theme-template { overflow: hidden; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; background: #fff; }
body.tax-adventure_theme .ab-theme-template > .e-con { display: block !important; width: 100% !important; max-width: none !important; }
body.tax-adventure_theme #ab-theme-archive,
body.tax-adventure_theme .ab-theme-template,
body.tax-adventure_theme #ab-theme-archive > .e-con,
body.tax-adventure_theme .ab-theme-template > .e-con,
body.tax-adventure_theme #ab-theme-archive .elementor-widget-shortcode,
body.tax-adventure_theme #ab-theme-archive .elementor-widget-shortcode > .elementor-widget-container,
body.tax-adventure_theme #ab-theme-archive .elementor-shortcode { min-width: 0; }

.ab-theme-template__hero { width: 100% !important; max-width: none !important; padding: 0 !important; }
.ab-theme-template__hero .elementor-widget-shortcode,
.ab-theme-template__hero .elementor-widget-container { width: 100%; }
.ab-theme-live-hero { width: 100%; min-height: 718px; margin: 0; background-color: var(--ab-current-theme-page,#161616); background-position: center; background-size: cover; color: #fff; }
.ab-theme-live-hero__inner { display: flex; align-items: flex-end; justify-content: space-between; width: min(100%,1400px); min-height: 718px; margin: 0 auto; padding: 60px 30px; }
.ab-theme-live-hero__heading { display: flex; align-items: center; gap: 34px; padding-bottom: 120px; }
.ab-theme-live-hero__badge { display: block; width: 163px; height: 163px; margin: 0; object-fit: contain; }
.ab-theme-live-hero h1 { margin: 0; color: #fff; font: 400 96px/1 var(--ab-source-title); text-transform: uppercase; }
.ab-theme-live-hero__character { flex: 0 0 33.333%; align-self: stretch; display: flex; align-items: flex-end; justify-content: center; }
.ab-theme-live-hero__character img { display: block; width: auto; max-width: 300px; max-height: 590px; margin: 0 auto; object-fit: contain; }

.ab-theme-template__details { padding: 70px 30px !important; background: #fff; color: #020202; }
.ab-theme-template__details-inner { display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: flex-start !important; gap: 0 !important; width: min(100%,1340px) !important; max-width: 1340px !important; margin: 0 auto !important; padding: 0 !important; }
.ab-theme-template__details-copy { flex: 1 1 auto !important; width: auto !important; padding: 0 60px 0 114px !important; }
.ab-theme-template__details-story { flex: 0 0 33.333% !important; width: 33.333% !important; padding: 0 !important; }
.ab-theme-definition-attributes h2 { margin: 0 0 30px; font: 400 36px/40px var(--ab-source-title); text-transform: uppercase; }
.ab-theme-definition-attributes h2:not(:first-child) { margin-top: 42px; }
.ab-theme-definition-attributes h2 span { border-bottom: 2px solid var(--ab-current-theme-page); }
.ab-theme-definition-attributes p { margin: 0 0 25px; font-size: 16px; line-height: 25px; }
.ab-theme-definition-attributes__definition p { margin-bottom: 25px; }
.ab-theme-story-card { position: relative; min-height: 379px; padding: 30px 30px 60px; border-radius: 8px; background: var(--ab-current-theme); color: #fff; }
.ab-theme-story-card h3 { margin: 0 0 15px; font-size: 15px; font-weight: 700; line-height: 24px; text-decoration: underline; text-transform: uppercase; }
.ab-theme-story-card ul { margin: 0; padding-left: 18px; font-size: 14px; line-height: 25px; }
.ab-theme-story-card img { position: absolute; right: -15px; bottom: -30px; width: 120px; height: 120px; object-fit: contain; }

.ab-theme-template__adventures { padding: 80px 50px !important; background-color: var(--ab-current-theme-page); background-image: var(--ab-current-theme-texture); background-repeat: repeat-y; background-size: 100% auto; color: #fff; }
.ab-theme-template__adventures > .elementor-widget { display: block !important; width: min(100%,1340px) !important; max-width: 1340px !important; margin-inline: auto !important; }
.ab-theme-adventures-heading { margin: 0 0 80px; color: #fff; font: 400 36px/40px var(--ab-source-title); text-align: center; text-transform: uppercase; }
.ab-adventure-theme-featured { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 50px; margin-bottom: 130px; }
.ab-adventure-theme-cards { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 50px; }
.ab-adventure-theme-item[hidden] { display: none !important; }
.ab-adventure-theme-list .ab-loop-card { display: block; overflow: hidden; border: 3px solid #fff; border-radius: 8px; background: #fff; color: #161616; text-decoration: none; box-shadow: none; }
.ab-adventure-theme-list .ab-loop-card:hover { transform: none; box-shadow: none; }
.ab-adventure-theme-list .ab-loop-card img { display: block; width: 100%; height: auto; aspect-ratio: 720/400; object-fit: cover; }
.ab-adventure-theme-list .ab-loop-card__content { padding: 15px 20px 20px; }
.ab-adventure-theme-list .ab-loop-card__content > div { margin-bottom: 10px; font-size: 10px; line-height: 12px; }
.ab-adventure-theme-list .ab-loop-card h3 { margin: 0; font-size: 16px; font-weight: 700; line-height: 18px; }
.ab-adventure-theme-featured .ab-loop-card__content > div { font-size: 12px; line-height: 16px; }
.ab-adventure-theme-featured .ab-loop-card h3 { font-size: 20px; line-height: 24px; }
.ab-adventure-theme-action { display: flex; justify-content: center; margin-top: 64px; }
.ab-adventure-theme-action[hidden] { display: none !important; }
.ab-adventure-theme-action button { width: min(100%,360px); padding: 10px 20px; border: 0; border-radius: 50px; background: #020202; color: #fff; font-size: 14px; font-weight: 700; line-height: 24px; text-transform: uppercase; cursor: pointer; }

.ab-theme-template__resources { padding: 140px 30px !important; background: #fff; color: #020202; }
.ab-theme-template__resources > .e-con { width: min(100%,1340px) !important; max-width: 1340px !important; margin-inline: auto !important; padding: 0 !important; }
.ab-theme-template__resources-heading { margin-bottom: 120px; text-align: center; }
.ab-theme-template__resources-heading h2 { margin: 0 0 20px !important; font: 400 36px/40px var(--ab-source-title) !important; text-transform: uppercase; }
.ab-theme-template__resources-heading p { margin: 0; font-size: 14px; line-height: 18px; }
.ab-theme-template__resources-grid { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 50px !important; width: 100% !important; padding: 0 !important; }
.ab-theme-template__resource { flex: 0 0 calc(50% - 25px) !important; width: calc(50% - 25px) !important; padding: 0 !important; }
.ab-theme-spotify { display: block; width: 100%; height: 668px; border: 0; border-radius: 8px; }
.ab-theme-poster { position: relative; display: flex; align-items: center; justify-content: center; height: 100%; color: #fff; text-decoration: none; }
.ab-theme-poster span { position: absolute; z-index: 1; top: 50%; left: 50%; min-width: 172px; padding: 10px 20px; border-radius: 50px; background: #020202; color: #fff; font-size: 14px; font-weight: 700; line-height: 24px; text-align: center; text-transform: uppercase; transform: translate(-50%,-50%); }
.ab-theme-poster img { display: block; width: 100%; height: 100%; min-height: 668px; border-radius: 8px; object-fit: cover; }

.ab-theme-template__more { overflow: hidden; padding: 140px 30px !important; background: #020202; color: #fff; }
.ab-theme-template__more > .e-con { width: min(100%,1340px) !important; max-width: 1340px !important; margin-inline: auto !important; padding: 0 !important; }
.ab-theme-template__more-heading { margin-bottom: 60px; text-align: center; }
.ab-theme-template__more-heading h2 { margin: 0 !important; color: #fff !important; font: 400 36px/40px var(--ab-source-title) !important; text-transform: uppercase; }
.ab-theme-template__more-heading p { margin: 0; color: #fff; font-size: 14px; line-height: 18px; }
.ab-theme-template__more .elementor-widget-shortcode { width: 100%; }

@media (max-width:1199px) {
	.ab-adventure-theme-cards { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; }
	.ab-theme-template__details-copy { padding-left: 0 !important; }
	.ab-theme-template__resources-grid { flex-direction: column !important; }
	.ab-theme-template__resource { flex-basis: auto !important; width: 100% !important; }
}
@media (max-width:809px) {
	.ab-theme-live-hero { min-height: 430px; }
	.ab-theme-live-hero__inner { align-items: center; min-height: 430px; padding: 20px 0; }
	.ab-theme-live-hero__heading { padding-bottom: 0; }
	.ab-theme-live-hero__badge { width: 120px; height: 120px; }
	.ab-theme-live-hero h1 { font-size: 70px; }
	.ab-theme-live-hero__character { flex-basis: 25%; align-self: center; }
	.ab-theme-live-hero__character img { max-width: none; max-height: 380px; }
	.ab-theme-template__details-inner { flex-direction: column !important; gap: 60px !important; }
	.ab-theme-template__details-copy { padding: 0 !important; }
	.ab-theme-template__details-story { flex-basis: auto !important; width: 100% !important; }
	.ab-adventure-theme-featured { gap: 25px; margin-bottom: 25px; }
	.ab-adventure-theme-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.ab-theme-spotify { height: 400px; }
	.ab-theme-poster img { min-height: 400px; }
}
@media (max-width:599px) {
	.ab-theme-live-hero { min-height: 340px; }
	.ab-theme-live-hero__inner { width: calc(100% - 40px); min-height: 340px; }
	.ab-theme-live-hero__heading { display: block; }
	.ab-theme-live-hero__badge { width: 80px; height: 80px; margin-bottom: 10px; }
	.ab-theme-live-hero h1 { font-size: 60px; }
	.ab-theme-live-hero__character { flex: 0 0 150px; }
	.ab-theme-live-hero__character img { max-height: 300px; }
	.ab-theme-template__details { padding: 60px 22px !important; }
	.ab-theme-template__adventures { padding: 80px 22px !important; }
	.ab-theme-adventures-heading { margin-bottom: 55px; }
	.ab-adventure-theme-featured { grid-template-columns: minmax(0,1fr); margin-bottom: 80px; }
	.ab-adventure-theme-cards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
	.ab-adventure-theme-list .ab-loop-card__content { padding: 12px 10px 15px; }
	.ab-theme-template__resources { padding: 80px 22px 100px !important; }
	.ab-theme-template__resources-heading { margin-bottom: 80px; }
	.ab-theme-template__more { padding: 100px 0 !important; }
}

.ab-house-division {
	width: min(100% - (2 * var(--ab-gutter)), 460px);
	margin: 0 auto;
	padding: clamp(2.5rem, 7vw, 5rem) 0;
}
.ab-house-division h1 { margin: 0 0 2rem; text-align: center; }
.ab-house-division__choices { display: grid; gap: 3rem; }
.ab-house-division__card {
	overflow: hidden;
	border: 2px solid #fff;
	border-radius: .75rem;
	background: #111;
	box-shadow: 0 12px 28px rgba(0,0,0,.2);
}
.ab-house-division__card img { display: block; width: 100%; }
.ab-house-division__card h2 { margin: 0; }
.ab-house-division__card h2 a {
	display: block;
	padding: 1rem;
	color: #fff;
	text-align: center;
	text-decoration: none;
}

.ab-nav-index {
	width: min(100% - (2 * var(--ab-gutter)), var(--ab-site-width));
	margin: 0 auto;
	padding: clamp(3rem, 7vw, 6rem) 0;
}
.ab-nav-index__intro { max-width: 48rem; margin: 0 auto 2.5rem; text-align: center; }
.ab-nav-index__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 1.25rem;
}
.ab-nav-index__card {
	overflow: hidden;
	border-radius: .75rem;
	background: #111;
	box-shadow: 0 10px 28px rgba(0,0,0,.18);
}
.ab-nav-index__card img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.ab-nav-index__card h2 { margin: 0; }
.ab-nav-index__card h2 a { display: block; padding: .9rem 1rem 1rem; color: #fff; text-align: center; text-decoration: none; }

/* Elementor Theme Builder guardrails. Atomic layout styles are deliberately
 * supplemented here so the public navigation and archive layouts remain
 * bounded even when an Elementor responsive class has not been generated. */
.elementor-location-header #ab-site-header,
.elementor-location-footer #ab-site-footer {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	background: #020202;
}
.elementor-location-header #ab-site-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	padding: 1.875rem;
}
.elementor-location-header #ab-site-header .elementor-widget-image img {
	display: block;
	width: 191px;
	max-width: 100%;
	height: auto;
}
.elementor-location-header #ab-site-header .elementor-item,
.elementor-location-footer #ab-site-footer .elementor-item { color: #fff; }
.elementor-location-header #ab-site-header .elementor-item:hover,
.elementor-location-footer #ab-site-footer .elementor-item:hover { color: #89cde4; }
.elementor-location-footer #ab-site-footer {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1.375rem;
	padding: 3rem 1.875rem;
}
.elementor-location-footer #ab-site-footer .elementor-widget-image img {
	display: block;
	width: 360px;
	max-width: 100%;
	height: auto;
}

body.tax-adventure_theme,
body.post-type-archive-ab_product { overflow-x: hidden; }
#ab-product-archive,
#ab-theme-archive,
#ab-theme-archive-hero,
#ab-theme-archive-content {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}
#ab-product-archive,
#ab-theme-archive-content { margin-inline: auto; }
#ab-theme-archive { overflow: hidden; }
#ab-theme-archive-hero { background: #020202; }
#ab-theme-archive,
#ab-theme-archive > .e-con,
#ab-theme-archive > [data-e-type="e-flexbox"],
#ab-theme-archive-hero,
#ab-theme-archive-content {
	display: block !important;
	flex: none !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
}
#ab-theme-archive-hero {
	padding: clamp(3rem, 8vw, 6rem) var(--ab-gutter) !important;
	text-align: center;
}
#ab-theme-archive-content {
	padding: clamp(2.5rem, 6vw, 4rem) var(--ab-gutter) !important;
	max-width: calc(var(--ab-site-width) + (2 * var(--ab-gutter))) !important;
}
.ab-elementor-theme-hero { width: min(100%, 760px); margin: 0 auto; }
.ab-elementor-theme-hero h1 {
	margin: 0;
	color: #fff;
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(2.75rem, 8vw, 5rem);
	font-weight: 800;
	line-height: .96;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.ab-elementor-theme-hero p {
	max-width: 44rem;
	margin: 1rem auto 0;
	color: #fff;
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(1rem, 2vw, 1.125rem);
	line-height: 1.45;
}
#ab-theme-archive-content > *,
#ab-theme-archive-hero > * { min-width: 0; }
#ab-product-archive .elementor-posts-container,
#ab-theme-archive-content .elementor-posts-container {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ab-adventure-theme-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.875rem;
	width: 100%;
}
.ab-adventure-theme-grid .ab-loop-card {
	border: 1px solid #e5e5e5;
	border-radius: 0;
	box-shadow: none;
	transition: transform .2s ease, box-shadow .2s ease;
}
.ab-adventure-theme-grid .ab-loop-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 30px rgba(2,2,2,.12);
}
.ab-adventure-theme-grid .ab-loop-card img {
	display: block;
	width: 100%;
	aspect-ratio: 1.5 / 1;
	object-fit: cover;
}
.ab-adventure-theme-grid .ab-loop-card__content { padding: 1.25rem; }
.ab-adventure-theme-grid .ab-loop-card h3 { font-size: 1.3rem; line-height: 1.05; }
.ab-adventure-theme-grid__empty { margin: 0; }

/* Term-aware archive shortcode surfaces. They are intentionally plain HTML
 * inside Elementor Shortcode widgets, keeping content editable in ACF while
 * preserving the legacy /themes/{slug}/ taxonomy route. */
.ab-elementor-theme-hero--rich {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(180px, .55fr);
	align-items: center;
	gap: clamp(1.5rem, 5vw, 5rem);
	width: min(100%, var(--ab-site-width));
	min-height: 330px;
	margin: 0 auto;
	padding: clamp(1.5rem, 5vw, 4rem);
	background-color: var(--ab-current-theme, #161616);
	background-position: center;
	background-size: cover;
	border-radius: 1rem;
	text-align: left;
}
.ab-elementor-theme-hero--rich h1,
.ab-elementor-theme-hero--rich p { text-align: left; }
.ab-elementor-theme-hero__badge { display: block; width: clamp(70px, 11vw, 130px); height: auto; margin-bottom: 1rem; }
.ab-elementor-theme-hero__character { align-self: end; text-align: center; }
.ab-elementor-theme-hero__character img { display: block; max-height: 360px; width: auto; max-width: 100%; margin: 0 auto; object-fit: contain; }
.ab-theme-details { padding: clamp(2rem, 5vw, 4rem); background-color: #f4f4f4; background-position: center; background-size: cover; }
.ab-theme-details__intro { max-width: 760px; margin-bottom: 2rem; }
.ab-theme-details h2,
.ab-theme-resources h2,
.ab-more-themes h2 { margin: 0 0 .75rem; font-size: clamp(1.6rem, 3vw, 2.25rem); line-height: 1; text-transform: uppercase; }
.ab-theme-details p { margin: 0; font-size: 1.075rem; line-height: 1.55; }
.ab-theme-details__columns,
.ab-theme-resources__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); }
.ab-theme-details__panel { padding: clamp(1.25rem, 3vw, 2rem); background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.1); }
.ab-theme-details__panel ul { display: grid; gap: .8rem; margin: 0; padding-left: 1.25rem; }
.ab-theme-details__panel li { line-height: 1.4; }
.ab-theme-resources,
.ab-more-themes { padding: clamp(2.5rem, 6vw, 5rem) 0; }
.ab-theme-resources__grid { align-items: stretch; margin-top: 1.5rem; }
.ab-theme-resources iframe { width: 100%; min-height: 352px; border: 0; border-radius: 12px; }
.ab-theme-resources__poster { position: relative; display: block; overflow: hidden; min-height: 100%; background: #111; color: #fff; text-decoration: none; }
.ab-theme-resources__poster span { position: absolute; z-index: 1; top: 1rem; left: 1rem; padding: .65rem .9rem; background: var(--ab-ink); font-weight: 800; text-transform: uppercase; }
.ab-theme-resources__poster img { display: block; width: 100%; height: 100%; min-height: 352px; object-fit: cover; transition: transform .2s ease; }
.ab-theme-resources__poster:hover img { transform: scale(1.03); }
.ab-more-themes { text-align: center; }
.ab-more-themes > p { margin: 0 auto 1.5rem; }
.ab-more-themes__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.ab-more-themes__grid a { position: relative; display: block; overflow: hidden; min-height: 200px; background: #161616; color: #fff; text-decoration: none; }
.ab-more-themes__grid img { display: block; width: 100%; height: 100%; aspect-ratio: .76; object-fit: cover; transition: transform .2s ease; }
.ab-more-themes__grid a:hover img { transform: scale(1.04); }
.ab-more-themes__grid span { position: absolute; right: 0; bottom: 0; left: 0; padding: 1rem; background: linear-gradient(transparent, rgba(0,0,0,.86)); font-weight: 800; text-align: left; }

@media (max-width: 760px) {
	.ab-fallback-header__inner, .ab-fallback-footer__inner { align-items: flex-start; flex-direction: column; }
	.ab-theme-hero__inner { grid-template-columns: 1fr; }
	.elementor-location-header #ab-site-header {
		position: relative;
		min-height: 64px;
		padding: .75rem 1.25rem;
	}
	.elementor-location-header #ab-site-header .elementor-widget-nav-menu {
		position: absolute;
		z-index: 2;
		left: 1.25rem;
		top: 50%;
		width: auto;
		max-width: calc(100vw - 2.5rem);
		transform: translateY(-50%);
	}
	.elementor-location-header #ab-site-header .elementor-nav-menu--dropdown,
	.elementor-location-header #ab-site-header .elementor-nav-menu--dropdown > ul {
		width: calc(100vw - 2.5rem) !important;
		max-width: calc(100vw - 2.5rem) !important;
	}
	.elementor-location-header #ab-site-header .elementor-nav-menu--main { display: none !important; }
	.elementor-location-header #ab-site-header .elementor-menu-toggle {
		display: block;
		color: #fff;
	}
	.elementor-location-header #ab-site-header .elementor-widget-image {
		width: 130px;
		margin: 0 auto;
	}
	.elementor-location-header #ab-site-header .elementor-widget-image img { width: 130px; }
	.elementor-location-footer #ab-site-footer { padding: 2rem 1.25rem; }
	.elementor-location-footer #ab-site-footer .elementor-menu-toggle,
	.elementor-location-footer #ab-site-footer .elementor-nav-menu--dropdown { display: none !important; }
	.elementor-location-footer #ab-site-footer .elementor-nav-menu--main { display: block !important; }
	.elementor-location-footer #ab-site-footer .elementor-nav-menu--main > ul {
		display: flex !important;
		flex-wrap: wrap;
		justify-content: center;
		gap: .75rem 1rem;
	}
	.elementor-location-footer #ab-site-footer .elementor-widget-image { width: 180px; }
	.elementor-location-footer #ab-site-footer .elementor-widget-image img { width: 180px; }
	#ab-product-archive,
	#ab-theme-archive-content { padding-inline: 1.25rem !important; }
	#ab-theme-archive-hero { padding: 2.25rem 1.25rem !important; }
	.ab-elementor-theme-hero h1 { font-size: clamp(2.25rem, 12vw, 3.25rem) !important; }
	.ab-elementor-theme-hero p { max-width: 19rem; }
	.ab-elementor-theme-hero--rich { grid-template-columns: minmax(0, 1fr) minmax(110px, .42fr); min-height: 240px; padding: 1.25rem; }
	.ab-elementor-theme-hero--rich h1 { font-size: clamp(2rem, 10vw, 3rem) !important; }
	.ab-elementor-theme-hero--rich p { max-width: none; }
	.ab-elementor-theme-hero__character img { max-height: 220px; }
	.ab-theme-details { padding: 1.5rem; }
	.ab-theme-details__columns,
	.ab-theme-resources__grid { grid-template-columns: minmax(0, 1fr); }
	.ab-theme-resources iframe,
	.ab-theme-resources__poster img { min-height: 300px; }
	.ab-more-themes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .875rem; }
	#ab-product-archive .elementor-posts-container,
	#ab-theme-archive-content .elementor-posts-container,
	.ab-adventure-theme-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ================================================================
 * Source-faithful global header and homepage
 * ================================================================ */
@font-face {
	font-family: "bignoodletitlingregular";
	src: url("../action-bible-main-source-code/next/public/fonts/big_noodle_titling-webfont.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 400;
}

:root {
	--ab-black: #020202;
	--ab-light-blue: #89cde4;
	--ab-source-width: 1110px;
	--ab-source-sans: "sweet-sans-pro", Arial, sans-serif;
	--ab-source-title: "bignoodletitlingregular", Impact, sans-serif;
}

body {
	font-family: var(--ab-source-sans);
	font-weight: 500;
}

body.mobile-is-open { overflow: hidden; }

.elementor-location-header,
.elementor-location-header > .elementor,
.elementor-location-header .elementor-shortcode,
.elementor-location-header .ab-header-builder-surface,
.elementor-location-header .ab-header-builder-surface > .e-con-inner {
	position: relative;
	z-index: 900;
	width: 100%;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.ab-announcement {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60px;
	padding: 12px 22px;
	background: #eef2fa;
	font-family: var(--ab-source-sans);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
}

.ab-announcement a { color: #086fb7; text-decoration: underline; }

.ab-source-header {
	position: relative;
	z-index: 900;
	min-height: 132px;
	padding: 30px;
	background: var(--ab-black);
	color: #fff;
	font-family: var(--ab-source-sans);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: -.035em;
	line-height: 20px;
	text-align: center;
	text-transform: uppercase;
}

.ab-source-header a { color: #fff; text-decoration: none; }
.ab-source-header__logo { display: inline-block; }
.ab-source-header__logo img { display: block; width: 191px; height: auto; }
.ab-source-header__menu { margin-top: 15px; }
.ab-source-header__menu ul { display: flex; justify-content: center; gap: 40px; margin: 0; padding: 0; list-style: none; }
.ab-source-header__menu li { position: relative; margin: 0; padding: 0; cursor: pointer; }
.ab-source-header__menu a { display: block; }
.ab-source-header__menu .current-menu-item > a::after,
.ab-source-header__menu .ab-header-themes-toggle > a[aria-expanded="true"]::after {
	position: absolute;
	bottom: -8px;
	left: 0;
	width: 100%;
	height: 2px;
	background: var(--ab-light-blue);
	content: "";
}

.ab-mobile-menu-toggle {
	display: none;
	position: absolute;
	top: 30px;
	left: 30px;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 0;
	fill: #fff;
	cursor: pointer;
	background: transparent !important;
}
.ab-mobile-menu-toggle svg { width: 100%; height: 100%; }
.ab-menu-close-icon { display: none; padding: 5px; border-radius: 50%; background: #000; }
.ab-source-header.is-menu-open .ab-menu-open-icon { display: none; }
.ab-source-header.is-menu-open .ab-menu-close-icon { display: block; }

.ab-theme-drawer {
	--ab-drawer-overlay: rgba(0,0,0,.53);
	display: none;
	position: absolute;
	z-index: 1000;
	top: 100%;
	left: 0;
	flex-direction: column;
	width: 100%;
	height: calc(100vh - 132px);
	background-color: var(--ab-black);
	background-image: linear-gradient(var(--ab-drawer-overlay),var(--ab-drawer-overlay)), var(--ab-drawer-background);
	background-position: center;
	background-size: cover;
	color: #fff;
}
.ab-source-header.is-drawer-open .ab-theme-drawer { display: flex; }
.ab-theme-drawer__close {
	position: absolute;
	z-index: 3;
	top: 22px;
	right: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 44px;
	padding: 10px 14px 10px 17px;
	border: 1px solid rgba(255,255,255,.7);
	border-radius: 999px;
	background: rgba(0,0,0,.72);
	color: #fff;
	font: 700 12px/1 var(--ab-source-sans);
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
}
.ab-theme-drawer__close svg { width: 16px; height: 16px; fill: currentColor; }
.ab-theme-drawer__close:hover,
.ab-theme-drawer__close:focus-visible { border-color: #fff; background: #020202; outline: 2px solid #fff; outline-offset: 3px; }
.ab-theme-drawer__box { flex: 1; padding: 50px 30px; overflow-y: auto; }
.ab-theme-drawer__heading { margin: 0 0 64px; font-size: 13px; font-weight: 400; text-transform: lowercase; text-align:center; }
.ab-theme-drawer__items { display: flex; flex-wrap: wrap; justify-content: center; row-gap: 64px; max-width: 715px; margin: 0 auto; }
.ab-theme-drawer__theme { display: flex; flex: 0 0 25%; align-items: center; flex-direction: column; gap: 15px; font-size: 14px; font-weight: 400; }
.ab-theme-drawer__theme img { display: block; width: 78px; height: 78px; object-fit: contain; }
.ab-theme-drawer__back { display: none; align-items: center; justify-content: center; gap: 10px; min-height: 60px; padding: 20px 30px; border: 0; background: #000; color: #fff; font: 700 14px/1 var(--ab-source-sans); text-transform: uppercase; }
.ab-theme-drawer__back svg { width: 11px; height: 10px; fill: currentColor; }

/* Elementor leaves every individual control editable; these classes only
 * provide the source design's spacing, ordering and responsive behavior. */
.elementor-1144 .elementor-element.ab-home-full,
.elementor-1144 .elementor-element.ab-home-full > .e-con-inner {
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
	gap: 0 !important;
}
.elementor-1144 .elementor-widget-heading .elementor-heading-title,
.ab-home-heading {
	font-family: var(--ab-source-title) !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
}
.elementor-1144 .elementor-widget-text-editor { font-family: var(--ab-source-sans); }
.ab-home-section { width: 100% !important; max-width: none !important; }
.ab-home-section:not(.ab-home-email) > .e-con-inner { width: min(calc(100% - 44px), var(--ab-source-width)); max-width: var(--ab-source-width) !important; margin: 0 auto; padding: 0 !important; }

.ab-home-hero,
.ab-home-hero > .e-con-inner,
.ab-home-hero .elementor-widget-slides,
.ab-home-hero .elementor-widget-container,
.ab-home-hero .elementor-swiper { width: 100% !important; max-width: none !important; }
.ab-home-hero .elementor-slide-heading,
.ab-home-hero .elementor-slide-description,
.ab-home-hero .elementor-slide-button,
.ab-home-hero .swiper-pagination { display: none !important; }
.ab-home-hero .swiper-slide,
.ab-home-hero .swiper-slide-bg { min-height: clamp(260px, 41.6vw, 599px) !important; }
.ab-home-hero .swiper-slide-bg { background-size: cover !important; }
.ab-home-hero .elementor-swiper-button { opacity: 0; transition: opacity .2s ease; }
.ab-home-hero:hover .elementor-swiper-button,
.ab-home-hero:focus-within .elementor-swiper-button { opacity: 1; }

.ab-home-featured { padding: 110px 22px; }
.ab-home-featured > .e-con-inner { display: flex !important; flex-direction: column !important; gap: 0 !important; }
.ab-featured-band { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 47px !important; width: 100% !important; max-width: var(--ab-source-width) !important; min-height: 354px; margin-inline: auto !important; padding: 30px !important; }
.ab-featured-band--blue { background: #377bb8; color: #fff; }
.ab-featured-band--plain { flex-direction: row-reverse !important; padding: 90px 0 !important; text-align: right; }
.ab-featured-band--purple { background: #9d55b8; color: #fff; }
.ab-featured-band__image { flex: 0 0 286px !important; width: 286px !important; }
.ab-featured-band__image img { display: block; width: 286px; height: 286px; object-fit: contain; }
.ab-featured-band__copy { flex: 1 1 auto !important; width: auto !important; }
.ab-featured-band h2 { margin: 0 0 28px !important; color: inherit !important; font: 400 56px/60px var(--ab-source-title) !important; text-transform: uppercase; }
.ab-featured-band p { margin: 0 0 34px; font-size: 16px; line-height: 28px; }
.ab-featured-band--blue .elementor-widget-text-editor,
.ab-featured-band--purple .elementor-widget-text-editor { color: #fff !important; }
.ab-featured-band--plain .elementor-widget,
.ab-featured-band--plain .elementor-widget-container { text-align: right; }
.ab-featured-band .elementor-button { min-width: 181px; padding: 11px 32px; border-radius: 25px; background: #020202 !important; color: #fff !important; font: 700 14px/14px var(--ab-source-sans); text-transform: uppercase; }
.ab-featured-new { margin: 0 0 -3px !important; font-size: 14px !important; font-weight: 800; letter-spacing: .07em; line-height: 30px !important; text-transform: uppercase; }

.ab-home-themes { overflow: hidden; padding: 110px 30px 120px; background: #020202; color: #fff; }
.ab-home-themes > .e-con-inner { width: 100%; max-width: none !important; }
.ab-home-themes h2 { margin: 0; color: #fff !important; font: 400 36px/40px var(--ab-source-title) !important; text-align: center; text-transform: uppercase; }
.ab-home-themes .ab-home-theme-intro { margin: 0 0 60px; color: #fff; font-size: 14px; line-height: 18px; text-align: center; }
.ab-home-themes .elementor-widget-shortcode { width: 100%; }
.ab-theme-carousel { position: relative; width: 100%; height: 560px; overflow: hidden; outline: 0; user-select: none; touch-action: pan-y; }
.ab-theme-carousel__stage { position: relative; width: min(100%, 1110px); height: 100%; margin: 0 auto; }
.ab-theme-carousel__card {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: calc(20 - var(--ab-card-abs));
	display: block;
	width: 393px;
	height: 520px;
	overflow: hidden;
	transform: translate(calc(-50% + (var(--ab-card-distance) * 110px)), -50%) scale(calc(1 - (var(--ab-card-abs) * .105)));
	opacity: calc(1 - (var(--ab-card-abs) * .15));
	transition: transform .45s ease, opacity .45s ease;
}
.ab-theme-carousel__card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ab-theme-carousel__control { position: absolute; z-index: 60; top: 50%; display: grid; place-items: center; width: 56px; height: 70px; padding: 0; border: 0; background: transparent !important; color: #fff; line-height: 0; transform: translateY(-50%); cursor: pointer; }
.ab-theme-carousel__control svg { display: block; width: 38px; height: 38px; fill: currentColor; }
.ab-theme-carousel__control--previous { left: max(0px, calc((100% - var(--ab-source-width, 1110px)) / 2)); }
.ab-theme-carousel__control--next { right: max(0px, calc((100% - var(--ab-source-width, 1110px)) / 2)); }

.ab-home-email h2 { margin: 0 0 26px !important; font: 400 36px/40px var(--ab-source-title) !important; text-transform: uppercase; }
.ab-home-email p { margin: 0 0 26px; font-size: 16px; line-height: 28px; }
.ab-home-email__copy img { display: block; width: 100%; height: auto; }
.ab-home-email .ab-email-club-signup { padding: 0; background: transparent; box-shadow: none; }
.ab-home-email .ab-email-club-signup h2,
.ab-home-email .ab-email-club-signup > p { display: none; }
.ab-home-email .hs-form label { display: block; margin-bottom: 5px; text-transform: uppercase; }
.ab-home-email .hs-form input[type="text"],
.ab-home-email .hs-form input[type="email"],
.ab-home-email .hs-form input[type="tel"],
.ab-home-email .hs-form select,
.ab-home-email .hs-form textarea { display: block; width: 100% !important; min-height: 50px; margin-bottom: 24px; padding: 0 15px; border: 0; border-radius: 0; background: #f2f2f2; color: #020202; font: 500 15px/1.4 var(--ab-source-sans); }
.ab-home-email .hs-form textarea { min-height: 110px; padding-block: 12px; }
.ab-home-email .hs-form input[type="submit"] { width: 100%; height: 50px; padding: 10px 0; border: 0; border-radius: 25px; background: #0066ff !important; color: #fff !important; font: 700 14px/1 var(--ab-source-sans); text-transform: uppercase; }
.ab-home-email .hs-richtext { margin-bottom: 20px; font-size: 12px; line-height: 18px; }

.ab-home-parallax-section,
.ab-home-parallax-section > .e-con-inner,
.ab-home-parallax-section .elementor-widget-shortcode,
.ab-home-parallax-section .elementor-shortcode { width: 100% !important; max-width: none !important; }
.ab-home-parallax { position: relative; width: 100%; aspect-ratio: 1920 / 960; overflow: hidden; background: #dff4fa; }
.ab-home-parallax img { position: absolute; top: 0; left: 0; display: block; width: 100%; max-width: none; will-change: transform; }
.ab-home-parallax__background,
.ab-home-parallax__grass { transform: none !important; }

.ab-home-yippee { align-items: center !important; gap: 45px !important; padding: 160px max(30px, calc((100vw - 1110px) / 2)) 40px !important; }
.ab-home-yippee > .e-con-inner { display: flex !important; flex-direction: row-reverse !important; align-items: center !important; gap: 45px !important; width: min(100%, var(--ab-source-width)); max-width: var(--ab-source-width) !important; }
.ab-home-yippee__image { flex: 0 0 calc(33.333% - 30px) !important; max-width: 340px !important; }
.ab-home-yippee__copy { flex: 1 1 auto !important; }
.ab-home-yippee__image img { display: block; width: 100%; height: auto; }
.ab-home-yippee p { margin: 0 0 34px; font-size: 18px; line-height: 30px; }
.ab-home-yippee .elementor-button { min-width: 180px; padding: 12px 40px; border-radius: 25px; background: #020202 !important; color: #fff !important; font-weight: 700; text-transform: uppercase; }

.ab-home-store { padding: 120px max(30px, calc((100vw - 1110px) / 2)) !important; }
.ab-home-store > .e-con-inner { width: min(100%, var(--ab-source-width)); max-width: var(--ab-source-width) !important; }
.ab-home-store h2 { margin: 0 0 40px !important; font: 400 36px/40px var(--ab-source-title) !important; text-align: center; text-transform: uppercase; }
.ab-home-products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 45px; width: 100%; margin-bottom: 30px; }
.ab-home-product { display: flex; min-width: 0; flex-direction: column; }
.ab-home-product__image { display: flex; width: 100%; aspect-ratio: 1; margin-bottom: 10px; padding: clamp(24px, 8%, 46px); align-items: center; justify-content: center; overflow: hidden; background: #f1f2f3; }
.ab-home-product__image img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.ab-home-product__title { min-height: 68px; padding-bottom: 20px; color: #020202; font-size: 16px; line-height: 24px; text-decoration: none; }
.ab-home-product__button { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 42px; margin-top: auto; border: 1px solid #020202; border-radius: 25px; color: #020202; font-size: 13px; font-weight: 700; text-decoration: none; text-transform: uppercase; transition: .2s ease; }
.ab-home-product__button:hover { background: #020202; color: #fff; }
.ab-home-store__button { display: flex; justify-content: center; }
.ab-home-store__button .elementor-button { min-width: 181px; padding: 12px 40px; border-radius: 25px; background: #020202 !important; color: #fff !important; font-weight: 700; text-transform: uppercase; }

@media (max-width: 1100px) {
	.ab-theme-drawer__close { display: none; }
	.ab-source-header { padding: 30px 22px; }
	.ab-mobile-menu-toggle { display: block; }
	.ab-source-header__menu { display: none; position: absolute; z-index: 990; top: 100%; left: 0; width: 100%; height: calc(100vh - 96px); margin: 0; padding: 60px 30px; background-color: #020202; background-image: linear-gradient(rgba(0,0,0,.53),rgba(0,0,0,.53)), url("../action-bible-main-source-code/next/public/images/theme-menu-background.jpg"); background-position: center; background-size: cover; }
	.ab-source-header.is-menu-open .ab-source-header__menu { display: block; }
	.ab-source-header__menu ul { display: grid; gap: 35px; }
	.ab-source-header__menu .current-menu-item > a::after,
	.ab-source-header__menu .ab-header-themes-toggle > a[aria-expanded="true"]::after { left: 50%; width: 28px; transform: translateX(-50%); }
	.ab-source-header.is-drawer-open .ab-source-header__menu { display: none; }
	.ab-theme-drawer { height: calc(100vh - 96px); }
	.ab-theme-drawer__back { display: flex; }
}

@media (max-width: 991px) {
	.ab-home-themes { padding: 80px 0; }
	.ab-home-yippee { padding-top: 120px !important; }
	.ab-home-store { padding: 80px 30px !important; }
	.ab-home-products { gap: 30px; }
}

@media (max-width: 809px) {
	.ab-featured-band__image { flex-basis: 200px !important; width: 200px !important; }
	.ab-featured-band__image img { width: 200px; height: 200px; }
	.ab-featured-band h2 { font-size: 36px !important; line-height: 1.1 !important; }
	.ab-theme-carousel { height: 340px; }
	.ab-theme-carousel__card { width: 175px; height: 288px; transform: translate(calc(-50% + (var(--ab-card-distance) * 58px)), -50%) scale(calc(1 - (var(--ab-card-abs) * .105))); }
	.ab-theme-carousel__control { width: 45px; font-size: 55px; }
	.ab-home-yippee { display: block !important; padding: 80px 22px !important; }
	.ab-home-yippee > .e-con-inner { display: block !important; text-align: center; }
	.ab-home-yippee__image { flex: 0 0 100% !important; width: 100% !important; max-width: 340px !important; margin: 0 auto 60px; }
	.ab-home-yippee__copy { flex: 0 0 100% !important; width: 100% !important; }
	.ab-home-store { padding: 80px 22px !important; }
	.ab-home-products { grid-template-columns: 1fr; text-align: center; }
	.ab-home-product { max-width: 340px; margin: 0 auto 45px; }
}

@media (max-width: 599px) {
	.ab-announcement { min-height: 46px; padding: 8px 16px; font-size: 12px; }
	.ab-source-header { min-height: 46px; padding: 12px 62px; }
	.ab-source-header__logo img { width: 130px; height: 22px; }
	.ab-mobile-menu-toggle { top: 8px; left: 20px; width: 30px; height: 30px; }
	.ab-source-header__menu,
	.ab-theme-drawer { height: calc(100vh - 46px); }
	.ab-theme-drawer__box { padding: 30px 10px; }
	.ab-theme-drawer__heading { margin-bottom: 30px; }
	.ab-theme-drawer__items { justify-content: flex-start; row-gap: 32px; }
	.ab-theme-drawer__theme { flex-basis: 50%; }
	.ab-theme-drawer__theme img { width: 75px; height: 75px; }
	.ab-home-hero .swiper-slide,
	.ab-home-hero .swiper-slide-bg { min-height: 162px !important; height: 162px !important; }
	.ab-home-hero,
	.ab-home-hero > .e-con-inner,
	.ab-home-hero .elementor-widget-slides,
	.ab-home-hero .elementor-widget-container,
	.ab-home-hero .elementor-swiper,
	.ab-home-hero .swiper,
	.ab-home-hero .swiper-wrapper { min-height: 162px !important; height: 162px !important; }
	.ab-home-featured { padding: 80px 22px; }
	.ab-featured-band { display: block !important; min-height: 0; padding: 30px !important; text-align: center; }
	.ab-featured-band--plain { padding: 60px 0 !important; }
	.ab-featured-band--plain .elementor-widget,
	.ab-featured-band--plain .elementor-widget-container { text-align: center; }
	.ab-featured-band__image { width: 200px !important; margin: 0 auto 20px; }
	.ab-featured-band h2 { margin-bottom: 20px !important; }
	.ab-featured-band p { line-height: 24px; }
	.ab-home-themes h2,
	.ab-home-email h2,
	.ab-home-store h2 { font-size: 28px !important; line-height: 1.1 !important; }
	.ab-home-themes .ab-home-theme-intro { margin-bottom: 35px; }
	.ab-theme-carousel { height: 315px; }
	.ab-theme-carousel__control { width: 35px; }
	.ab-home-email__copy { text-align: left; }
	.ab-home-yippee p { font-size: 16px; line-height: 26px; }
}

/* Native Elementor Theme Builder header. The announcement, logo and Nav Menu
 * remain individually editable; only the repeating theme drawer is dynamic. */
.elementor-location-header .ab-header-announcement {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 60px;
	padding: 12px 22px !important;
	background: #eef2fa;
	text-align: center;
}
.elementor-location-header .ab-header-announcement .elementor-widget-text-editor,
.elementor-location-header .ab-header-announcement .elementor-widget-container { margin: 0; color: #086fb7; font: 700 16px/1.35 var(--ab-source-sans); }
.elementor-location-header .ab-header-announcement p { margin: 0; }
.elementor-location-header .ab-header-announcement a { color: #086fb7; text-decoration: underline; }
.elementor-location-header .ab-header-shell {
	position: relative;
	z-index: 900;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 15px !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 132px;
	padding: 30px !important;
	background: #020202;
}
.elementor-location-header .ab-header-shell .ab-header-logo { order: 1; width: 191px; margin: 0 auto; }
.elementor-location-header .ab-header-shell .ab-header-logo img { display: block; width: 191px; height: auto; }
.elementor-location-header .ab-header-shell .ab-header-menu { order: 2; width: auto; }
.elementor-location-header .ab-header-shell .ab-header-menu .elementor-nav-menu--main > ul { gap: 40px; }
.elementor-location-header .ab-header-shell .ab-header-menu .elementor-item { padding: 0 !important; color: #fff; font: 700 14px/20px var(--ab-source-sans); letter-spacing: -.035em; text-transform: uppercase; }
.elementor-location-header .ab-header-shell .ab-header-menu .elementor-item::after { bottom: -8px; height: 2px; }
.elementor-location-header .ab-header-shell .elementor-widget-shortcode,
.elementor-location-header .ab-header-shell .elementor-widget-ab-theme-menu { position: static; order: 3; }
.elementor-location-header .ab-header-shell .elementor-widget-shortcode .elementor-shortcode { position: static !important; }
.elementor-location-header .ab-header-shell .elementor-widget-ab-theme-menu > .elementor-widget-container { position: static !important; }
.elementor-location-header .ab-header-shell .ab-header-controller {
	display: none;
	position: absolute;
	z-index: 1100;
	top: 30px;
	left: 30px;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fff;
	fill: currentColor;
	cursor: pointer;
}
.elementor-location-header .ab-header-shell .ab-header-controller svg { display: block; width: 30px; height: 30px; fill: #fff; }
.elementor-location-header .ab-header-shell .ab-header-controller__close { display: none !important; padding: 5px; border-radius: 50%; background: #020202; }
.elementor-location-header .ab-header-shell.is-menu-open .ab-header-controller__open { display: none !important; }
.elementor-location-header .ab-header-shell.is-menu-open .ab-header-controller__close { display: block !important; }
.elementor-location-header .ab-header-shell .ab-theme-drawer { top: 100%; height: calc(100vh - 132px); }
.elementor-location-header .ab-header-shell.is-drawer-open .ab-theme-drawer { display: flex; }

@media (min-width: 1101px) {
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-menu-toggle,
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-nav-menu--dropdown { display: none !important; }
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-nav-menu--main { display: block !important; }
}

@media (max-width: 1100px) {
	.elementor-location-header .ab-header-shell { min-height: 72px; padding: 14px 64px !important; gap: 0 !important; }
	.elementor-location-header .ab-header-shell .ab-header-logo,
	.elementor-location-header .ab-header-shell .ab-header-logo img { width: 160px; }
	.elementor-location-header .ab-header-shell .ab-header-menu { position: static; z-index: 10; width: 0; }
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-nav-menu--main { display: none !important; }
	.elementor-location-header .ab-header-shell .ab-header-controller { top: 50%; left: 22px; display: flex; transform: translateY(-50%); }
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-menu-toggle { display: none !important; }
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-nav-menu--dropdown { position: absolute; top: 100% !important; left: 0 !important; width: 100vw !important; height: calc(100vh - 72px) !important; min-height: calc(100vh - 72px) !important; max-height: calc(100vh - 72px) !important; margin: 0 !important; padding: 60px 30px; overflow-y: auto !important; background-color: #020202; background-image: linear-gradient(rgba(0,0,0,.53),rgba(0,0,0,.53)), url("../action-bible-main-source-code/next/public/images/theme-menu-background.jpg"); background-position: center; background-size: cover; }
	.elementor-location-header .ab-header-shell:not(.is-menu-open) .ab-header-menu .elementor-nav-menu--dropdown,
	.elementor-location-header .ab-header-shell.is-drawer-open .ab-header-menu .elementor-nav-menu--dropdown { display: none !important; }
	.elementor-location-header .ab-header-shell.is-menu-open:not(.is-drawer-open) .ab-header-menu .elementor-nav-menu--dropdown { display: block !important; transform: none !important; }
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-nav-menu--dropdown ul { display: grid; gap: 35px; background: transparent; }
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-nav-menu--dropdown .elementor-item { display: flex; justify-content: center; padding: 0 !important; background: transparent; color: #fff; }
	.elementor-location-header .ab-header-shell.is-drawer-open .ab-header-menu .elementor-nav-menu--dropdown { display: none !important; }
	.elementor-location-header .ab-header-shell .ab-theme-drawer { height: calc(100vh - 72px); }
}

@media (max-width: 599px) {
	.elementor-location-header .ab-header-announcement { min-height: 46px; padding: 8px 16px !important; }
	.elementor-location-header .ab-header-announcement .elementor-widget-text-editor,
	.elementor-location-header .ab-header-announcement .elementor-widget-container { font-size: 12px; }
	.elementor-location-header .ab-header-shell { min-height: 54px; padding: 12px 62px !important; }
	.elementor-location-header .ab-header-shell .ab-header-logo { width: 130px; }
	.elementor-location-header .ab-header-shell .ab-header-logo img { width: 130px; height: 22px; object-fit: contain; }
	.elementor-location-header .ab-header-shell .ab-header-controller { left: 20px; }
	.elementor-location-header .ab-header-shell .ab-header-controller__open { width: 25px; height: 25px; }
	.elementor-location-header .ab-header-shell .ab-header-menu .elementor-nav-menu--dropdown { height: calc(100vh - 54px) !important; min-height: calc(100vh - 54px) !important; max-height: calc(100vh - 54px) !important; }
	.elementor-location-header .ab-header-shell .ab-theme-drawer { height: calc(100vh - 54px); }
}

/* Native Elementor footer matching the source site's two-tier footer. */
.elementor-location-footer .ab-footer-main,
.elementor-location-footer .ab-footer-bottom {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
}
.elementor-location-footer .ab-footer-main {
	align-items: center !important;
	gap: 20px !important;
	padding: 48px 30px 64px !important;
	background: #020202;
	color: #fff;
	text-align: center;
	text-transform: uppercase;
}
.elementor-location-footer .ab-footer-logo { width: 191px; margin: 0 auto; }
.elementor-location-footer .ab-footer-logo img { display: block; width: 191px !important; max-width: none !important; height: auto; }
.elementor-location-footer .ab-footer-menu .elementor-nav-menu--main > ul { gap: 32px; }
.elementor-location-footer .ab-footer-menu .elementor-menu-toggle,
.elementor-location-footer .ab-footer-menu .elementor-nav-menu--dropdown { display: none !important; }
.elementor-location-footer .ab-footer-menu .elementor-item { padding: 0 !important; color: #fff !important; font: 400 14px/1.4 var(--ab-source-sans); text-transform: uppercase; }
.elementor-location-footer .ab-footer-menu .elementor-item:hover { color: var(--ab-light-blue) !important; }
.elementor-location-footer .ab-footer-divider { width: 100%; margin: 21px 0 23px; }
.elementor-location-footer .ab-footer-divider .elementor-divider { padding: 0; }
.elementor-location-footer .ab-footer-themes {
	width: 100% !important;
}
.elementor-location-footer .ab-footer-themes .elementor-shortcode,
.elementor-location-footer .ab-theme-badge-list--footer {
	display: flex !important;
	flex-flow: row wrap !important;
	justify-content: center !important;
	gap: 32px !important;
	width: 100% !important;
}
.elementor-location-footer .ab-theme-badge-list__item { display: flex; align-items: center; gap: 8px; color: #fff; font: 400 14px/1.4 var(--ab-source-sans); text-decoration: none; }
.elementor-location-footer .ab-theme-badge-list__item img { display: block; width: 48px; height: 48px; object-fit: contain; }
.elementor-location-footer .ab-footer-theme { display: flex !important; flex: 0 0 auto !important; flex-direction: row !important; align-items: center !important; gap: 8px !important; width: auto !important; }
.elementor-location-footer .ab-footer-theme .elementor-widget-image { width: 48px; }
.elementor-location-footer .ab-footer-theme img { display: block; width: 48px; height: 48px; object-fit: contain; }
.elementor-location-footer .ab-footer-theme .elementor-widget-heading { width: auto; }
.elementor-location-footer .ab-footer-theme .elementor-heading-title,
.elementor-location-footer .ab-footer-theme .elementor-heading-title a { color: #fff; font: 400 14px/1.4 var(--ab-source-sans); text-decoration: none; }
.elementor-location-footer .ab-footer-bottom {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 24px !important;
	padding: 15px 30px !important;
	background: #fff;
	color: #616161;
}
.elementor-location-footer .ab-footer-legal { width: auto; }
.elementor-location-footer .ab-footer-legal p { margin: 0; color: #616161; font: 500 13px/30px var(--ab-source-sans); }
.elementor-location-footer .ab-footer-legal a { color: #616161; text-decoration: none; }
.elementor-location-footer .ab-footer-legal span { display: inline-block; margin: 0 8px; }
.elementor-location-footer .ab-footer-social { width: auto; }
.elementor-location-footer .ab-footer-social .elementor-social-icon { width: 20px; height: 20px; background: transparent !important; color: #020202 !important; font-size: 20px; }

@media (max-width: 1023px) {
	.elementor-location-footer .ab-footer-menu .elementor-nav-menu--main > ul { display: flex; flex-direction: column; align-items: center; gap: 20px; }
	.elementor-location-footer .ab-footer-menu .elementor-nav-menu--main > ul > li { width: 100%; }
	.elementor-location-footer .ab-footer-menu .elementor-nav-menu--main .elementor-item { justify-content: center; width: 100%; text-align: center; }
	.elementor-location-footer .ab-theme-badge-list--footer { justify-content: space-around !important; gap: 35px 20px !important; }
	.elementor-location-footer .ab-theme-badge-list__item { flex: 0 0 20%; flex-direction: column; }
	.elementor-location-footer .ab-footer-theme { flex: 0 0 20% !important; flex-direction: column !important; }
}

@media (max-width: 809px) {
	.elementor-location-footer .ab-footer-main { padding: 48px 22px 54px !important; }
	.elementor-location-footer .ab-footer-bottom { flex-direction: column !important; gap: 20px !important; }
	.elementor-location-footer .ab-footer-legal { width: 100%; text-align: center; }
	.elementor-location-footer .ab-footer-legal span { display: block; height: 10px; opacity: 0; }
	.elementor-location-footer .ab-theme-badge-list__item { flex-basis: 25%; }
}

/* Source-backed static Elementor pages. */
.ab-static-section,
.ab-static-hero,
.ab-static-parallax,
.ab-about-coverflow,
.ab-media-page,
.ab-theme-index {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	min-width: 0;
}
.ab-static-section {
	padding: 85px max(30px, calc((100vw - 1200px) / 2)) !important;
}
.ab-static-row { display: flex !important; flex-direction: row !important; min-width: 0; }
.ab-static-row > .e-con-inner { display: flex !important; flex-direction: row !important; width: 100%; max-width: none !important; }
.ab-static-row > *, .ab-static-row > .e-con-inner > * { min-width: 0; }
.ab-static-hero {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 400px;
	padding: 120px max(30px, calc((100vw - 1200px) / 2)) !important;
	background-position: bottom center !important;
	background-size: cover !important;
}
.ab-static-hero__graphic { width: min(400px, 100%); margin-right: auto; }
.ab-static-hero__graphic img { display: block; width: 100% !important; height: auto; }
.ab-static-section h1,
.ab-static-section h2,
.ab-media-page h1,
.ab-media-page h2,
.ab-theme-index h1 { font-family: var(--ab-source-title) !important; font-weight: 400 !important; text-transform: uppercase; }
.ab-static-section h1 { margin: 0 0 30px; font-size: clamp(42px, 4.4vw, 68px) !important; line-height: 1.08 !important; }
.ab-static-section h2,
.ab-media-page h1,
.ab-media-page h2 { margin: 45px 0 24px; font-size: clamp(34px, 3vw, 48px) !important; line-height: 1.1 !important; }
.ab-static-section h3 { font-family: var(--ab-source-title) !important; font-size: 28px !important; font-weight: 400 !important; line-height: 1.15 !important; text-transform: uppercase; }
.ab-static-section p,
.ab-media-page p { font: 400 18px/30px var(--ab-source-sans); }
.ab-static-section cite,
.ab-media-page cite { font-style: italic; }

.ab-about-intro { align-items: flex-start !important; justify-content: space-between !important; gap: 8% !important; }
.ab-about-copy { flex: 0 1 58% !important; width: 58%; }
.ab-about-copy h2:first-of-type { margin-top: 50px; }
.ab-about-copy p { margin: 0 0 25px; }
.ab-about-cover { flex: 0 1 32% !important; width: 32%; }
.ab-about-cover img { display: block; width: 100%; height: auto; }

.ab-static-timeline { align-items: flex-start !important; gap: 0 !important; padding-top: 0 !important; padding-bottom: 150px !important; }
.ab-static-timeline__years { position: relative; flex: 0 0 50% !important; width: 50%; gap: 2px !important; padding-left: 15%; }
.ab-static-timeline__years::after { position: absolute; z-index: 0; top: 29px; bottom: 29px; left: calc(30% + 13px); width: 2px; background: #85964f; content: ""; }
.ab-timeline-year { position: relative; z-index: 1; width: auto; }
.ab-timeline-year .elementor-button { display: flex; align-items: center; justify-content: flex-start; gap: 15px; min-height: 58px; padding: 0 !important; border: 0 !important; background: transparent !important; color: #020202 !important; font: 700 22px/28px var(--ab-source-sans); }
.ab-timeline-year .elementor-button::before { display: block; flex: 0 0 28px; width: 28px; height: 28px; border: 2px solid #85964f; border-radius: 50%; background: #fff; content: ""; }
.ab-timeline-year.is-active .elementor-button::before { background: #85964f; }
.ab-static-timeline__slides { flex: 0 0 50% !important; width: 50%; }
.ab-timeline-slide { display: none !important; width: min(100%, 464px) !important; }
.ab-timeline-slide.is-active { display: flex !important; }
.ab-timeline-slide img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.ab-timeline-slide p { min-height: 40px; margin: 20px 0 0; }

.ab-static-parallax { min-height: max(400px, 50vh); background-size: cover !important; }
.ab-static-parallax:not(.ab-about-break-2) { background-position: bottom center !important; }
.ab-about-illustrator { align-items: center !important; justify-content: center !important; gap: 80px !important; padding-top: 150px !important; padding-bottom: 150px !important; }
.ab-about-illustrator__image { flex: 0 1 400px !important; width: 400px; }
.ab-about-illustrator__image img { display: block; width: 100%; border-radius: 0; }
.ab-about-illustrator__copy { flex: 0 1 460px !important; width: 460px; }
.ab-about-illustrator__copy h2 { margin-top: 0; }

.ab-about-coverflow {
	--ab-cover-width: 350px;
	--ab-cover-height: 575px;
	position: relative;
	display: block !important;
	min-height: 815px !important;
	padding: 120px 0 !important;
	overflow: hidden !important;
	background: #020202;
}
.ab-about-coverflow > .elementor-widget-html { position: static; }
.ab-coverflow-stage { position: relative; width: 100% !important; max-width: 1110px !important; height: var(--ab-cover-height) !important; min-height: var(--ab-cover-height) !important; margin: 0 auto; outline: 0; touch-action: pan-y; }
.ab-coverflow-card {
	position: absolute !important;
	top: 50%;
	left: var(--ab-cover-position, 50%);
	width: var(--ab-cover-width) !important;
	height: var(--ab-cover-height);
	transform: translate(-50%, -50%) scale(var(--ab-cover-scale, 1));
	transition: left .3s ease, transform .3s ease, opacity .3s ease;
	opacity: var(--ab-cover-opacity, 1);
	will-change: left, transform, opacity;
}
.ab-coverflow-card.is-active { z-index: 100 !important; opacity: 1; }
.ab-coverflow-card a { display: block; width: 100%; height: 100%; }
.ab-coverflow-card img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; }
.ab-coverflow-control { position: absolute; z-index: 120; top: calc(120px + (var(--ab-cover-height) / 2)); width: 50px; height: 50px; padding: 0; border: 0; background: transparent; color: #fff; transform: translateY(-50%); cursor: pointer; }
.ab-coverflow-control svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.ab-coverflow-control--previous { left: max(20px, calc((100% - var(--ab-source-width, 1110px)) / 2)); }
.ab-coverflow-control--next { right: max(20px, calc((100% - var(--ab-source-width, 1110px)) / 2)); }
.ab-coverflow-view { display: flex; justify-content: center; margin: 40px auto 0; }
.ab-coverflow-view .elementor-button { min-width: 250px; border: 1px solid #fff !important; border-radius: 25px; background: transparent !important; color: #fff !important; font-weight: 700; text-transform: uppercase; }

.ab-about-global { align-items: flex-start !important; justify-content: space-between !important; gap: 8% !important; }
.ab-about-global__copy { flex: 0 1 50% !important; width: 50%; }
.ab-about-global__copy h2 { margin-top: 0; }
.ab-about-global__quotes { flex: 0 1 38% !important; width: 38%; }
.ab-about-global blockquote { margin: 0 0 28px; }
.ab-about-global blockquote p { margin: 0 0 4px; }
.ab-about-global blockquote footer { font-weight: 700; }

.ab-handbook-content { min-height: 260px; padding-left: max(30px, calc((100vw - 972px) / 2)) !important; }
.ab-handbook-content h1 { margin-bottom: 15px; }

.ab-media-page { padding: 90px max(30px, calc((100vw - 1200px) / 2)) 76px !important; background-position: center top !important; background-size: 100% auto !important; }
.ab-media-page h1 { margin-top: 0; }
.ab-media-page > .elementor-widget-text-editor { margin-bottom: 25px; }
.ab-media-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px !important; width: 100% !important; margin-bottom: 45px; }
.ab-media-grid > .e-con-inner { display: contents !important; }
.ab-media-grid > *, .ab-media-grid > .e-con-inner > * { width: auto !important; min-width: 0; }
.ab-media-grid .elementor-wrapper { aspect-ratio: 16 / 9; }
.ab-media-extra-video { display: none !important; }
.ab-media-page.is-expanded .ab-media-extra-video { display: block !important; }
.ab-media-show-more { display: flex; justify-content: center; margin: 0 0 110px; }
.ab-media-show-more .elementor-button { width: min(100%, 360px); border: 1px solid #020202 !important; border-radius: 25px; background: transparent !important; color: #020202 !important; font-weight: 700; text-transform: uppercase; }
.ab-media-page.is-expanded .ab-media-show-more { display: none; }
.ab-spotify-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 40px; }
.ab-spotify-grid iframe { display: block; width: 100%; border-radius: 12px; }

/* Structured Elementor editorial widgets: slides, timeline, video library. */
.ab-media-slideshow { position: relative; width: 100%; height: 760px; min-height: 360px; overflow: hidden; background: #020202; color: #fff; isolation: isolate; }
.ab-media-slideshow--proportional { height: auto !important; min-height: 0; aspect-ratio: var(--ab-slide-aspect, 3000 / 1248); }
.ab-media-slideshow__slides,
.ab-media-slide,
.ab-media-slide__media { position: absolute; inset: 0; width: 100%; height: 100%; }
.ab-media-slide { z-index: 1; animation: ab-media-slide-in .45s ease both; }
.ab-media-slide[hidden] { display: none !important; }
.ab-media-slide::after { position: absolute; z-index: 2; inset: 0; pointer-events: none; content: ""; }
.ab-media-slide__media img,
.ab-media-slide__media video,
.ab-media-slide__media iframe { display: block; width: 100%; height: 100% !important; border: 0; object-fit: cover; }
.ab-media-slideshow--proportional .ab-media-slide__media img,
.ab-media-slideshow--proportional .ab-media-slide__media video { object-fit: contain; }
.ab-media-slide__copy { position: absolute; z-index: 4; inset: auto 0 0; display: flex; justify-content: center; padding: clamp(38px, 7vw, 100px) 30px; pointer-events: none; }
.ab-media-slide__copy > div { width: min(100%, 1200px); }
.ab-media-slide__copy h2 { max-width: 820px; margin: 0 0 12px; color: inherit; font: 400 clamp(42px, 6.4vw, 92px)/.95 var(--ab-source-title); text-transform: uppercase; text-shadow: 0 4px 18px rgba(0,0,0,.75); }
.ab-media-slide__copy p { max-width: 680px; margin: 0 0 20px; font-size: clamp(17px, 1.8vw, 24px); text-shadow: 0 2px 10px #000; }
.ab-media-slide__copy a,
.ab-media-slide__copy button { pointer-events: auto; }
.ab-media-slide__cover-link { position: absolute; z-index: 3; inset: 0; }
.ab-media-slide__play,
.ab-media-play { display: grid; place-items: center; border-radius: 50%; background: #fff; color: #020202; }
.ab-media-slide__play { position: absolute; z-index: 5; top: 50%; left: 50%; width: 86px; height: 86px; border: 0; font-size: 32px; transform: translate(-50%,-50%); cursor: pointer; }
.ab-media-play { position: absolute; top: 50%; left: 50%; width: 70px; height: 70px; font-size: 25px; transform: translate(-50%,-50%); box-shadow: 0 5px 25px rgba(0,0,0,.35); }
.ab-media-slideshow__arrow { position: absolute; z-index: 7; top: 50%; display: grid; place-items: center; width: 58px; height: 76px; padding: 0; border: 0; background: rgba(0,0,0,.32); color: #fff; line-height: 0; transform: translateY(-50%); cursor: pointer; }
.ab-media-slideshow__arrow svg { display: block; width: 34px; height: 34px; fill: currentColor; }
/* Keep full-bleed slides, but align navigation with the site's content column. */
.ab-media-slideshow__arrow--prev,
.ab-home-hero .elementor-swiper-button-prev { left: max(0px, calc((100% - var(--ab-source-width, 1110px)) / 2)); }
.ab-media-slideshow__arrow--next,
.ab-home-hero .elementor-swiper-button-next { right: max(0px, calc((100% - var(--ab-source-width, 1110px)) / 2)); }
.ab-media-slideshow__dots { position: absolute; z-index: 7; right: 0; bottom: 25px; left: 0; display: flex; justify-content: center; gap: 10px; }
.ab-media-slideshow__dots button { width: 12px; height: 12px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: transparent; cursor: pointer; }
.ab-media-slideshow__dots button.is-active { background: #fff; }
@keyframes ab-media-slide-in { from { opacity: 0; } to { opacity: 1; } }

/* Keep Elementor's responsive container calculations in normal document flow.
 * The slideshow owns its height; the following section must never paint over it. */
.elementor-1144 .ab-home-hero {
	display: block !important;
	height: auto !important;
	min-height: 0 !important;
	overflow: hidden !important;
}
.elementor-1144 .ab-home-hero .elementor-widget-ab-home-media-slideshow,
.elementor-1144 .ab-home-hero .elementor-widget-ab-home-media-slideshow > .elementor-widget-container {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
}
.elementor-1144 .ab-home-featured {
	position: relative !important;
	z-index: 1;
	clear: both;
	margin-top: 0 !important;
	transform: none !important;
}

.ab-content-modal { width: min(94vw, 1180px); max-width: 1180px; padding: 0; border: 0; background: #020202; color: #fff; overflow: visible; }
.ab-content-modal::backdrop { background: rgba(0,0,0,.86); }
.ab-content-modal__mount { width: 100%; min-height: min(70vh, 700px); }
.ab-content-modal__mount iframe,
.ab-content-modal__mount video,
.ab-content-modal__mount img { display: block; width: 100%; height: min(80vh, 760px); border: 0; object-fit: contain; }
.ab-content-modal__close { position: absolute; z-index: 3; top: -20px; right: -20px; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: #020202; color: #fff; font: 300 34px/1 Arial,sans-serif; cursor: pointer; }

.ab-editorial-timeline { display: flex; width: min(100%, 1200px); margin-inline: auto; }
.ab-editorial-timeline .ab-static-timeline__years { display: flex; flex-direction: column; }
.ab-editorial-timeline .ab-timeline-year.elementor-button { display: flex; align-items: center; justify-content: flex-start; gap: 15px; min-height: 58px; padding: 0 !important; border: 0 !important; background: transparent !important; color: #020202 !important; font: 700 22px/28px var(--ab-source-sans); cursor: pointer; }
.ab-editorial-timeline .ab-timeline-year.elementor-button::before { display: block; flex: 0 0 28px; width: 28px; height: 28px; border: 2px solid var(--ab-timeline-accent, #85964f); border-radius: 50%; background: #fff; content: ""; }
.ab-editorial-timeline .ab-timeline-year.is-active::before { background: var(--ab-timeline-accent, #85964f); }
.ab-editorial-timeline .ab-static-timeline__years::after { background: var(--ab-timeline-accent, #85964f); }
.ab-editorial-timeline .ab-timeline-slide { flex-direction: column; }
.ab-editorial-timeline .ab-timeline-slide__copy h2 { margin: 24px 0 8px; }
.ab-editorial-timeline .ab-timeline-slide__copy p { min-height: 0; }
.ab-editorial-timeline .ab-timeline-slide__media { position: relative; min-height: 1px; overflow: hidden; background: #020202; }
.ab-timeline-video-button-wrap { display: flex; width: 100%; margin-top: 20px; }
.ab-timeline-video-trigger--button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; cursor: pointer; }
.ab-timeline-video-overlay { position: absolute; z-index: 2; inset: 0; display: flex; align-items: center; justify-content: center; width: 100%; padding: 16px; border: 0; background: transparent; cursor: pointer; }
.ab-timeline-video-overlay__content { position: relative; display: grid; place-items: center; max-width: 100%; }
.ab-timeline-video-preview,
.ab-timeline-video-play { grid-area: 1 / 1; }
.ab-timeline-video-preview { display: block; width: 210px; max-width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border: 2px solid rgba(255,255,255,.9); background: #020202; box-shadow: 0 8px 24px rgba(0,0,0,.42); }
.ab-editorial-timeline .ab-timeline-video-preview img,
.ab-editorial-timeline .ab-timeline-video-preview video { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 9; border: 0; object-fit: cover; }
.ab-timeline-video-play { position: relative; z-index: 2; display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: #fff; color: #020202; box-shadow: 0 5px 22px rgba(0,0,0,.42); transition: transform .2s ease, box-shadow .2s ease; }
.ab-timeline-video-play svg { display: block; width: 42%; height: 42%; margin-left: 5%; fill: currentColor; }
.ab-timeline-video-overlay:hover .ab-timeline-video-play,
.ab-timeline-video-overlay:focus-visible .ab-timeline-video-play { transform: scale(1.08); box-shadow: 0 7px 28px rgba(0,0,0,.55); }

/* Product media stays ACF-driven while its position and styling remain Elementor-controlled. */
.ab-product-gallery { width: min(100%, 620px); margin-inline: auto; }
.ab-product-gallery__stage { position: relative; display: grid; place-items: center; min-height: 420px; background: var(--ab-blue-gray,#f1f2f3); }
.ab-product-gallery__item { position: relative; width: 100%; min-height: 420px; padding: 28px; border: 0; background: transparent; cursor: zoom-in; }
.ab-product-gallery__item[hidden] { display: none !important; }
.ab-product-gallery__item img,
.ab-product-gallery__item video { display: block; width: 100%; height: 100%; max-height: 650px; margin: auto; object-fit: contain; }
.ab-product-gallery__thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.ab-product-gallery__thumb { position: relative; aspect-ratio: 1; padding: 6px; border: 2px solid transparent; background: #f1f2f3; cursor: pointer; }
.ab-product-gallery__thumb.is-active { border-color: #020202; }
.ab-product-gallery__thumb img,
.ab-product-gallery__thumb video { display: block; width: 100%; height: 100%; object-fit: contain; }
.ab-product-gallery__thumb span { position: absolute; top: 50%; left: 50%; color: #fff; font-size: 21px; transform: translate(-50%,-50%); text-shadow: 0 2px 5px #000; }
.ab-product-video { margin-top: 34px; }
.ab-product-video h2 { font-family: var(--ab-source-title); font-size: clamp(30px, 3vw, 46px); text-transform: uppercase; }
.ab-product-video__trigger { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; overflow: hidden; border: 0; background: #020202; cursor: pointer; }
.ab-product-video__trigger img { display: block; width: 100%; height: 100%; object-fit: cover; }

.ab-about-product-gallery .ab-coverflow-view .ab-button { min-width: 250px; padding: 13px 35px; border: 1px solid #fff !important; border-radius: 25px; background: transparent !important; color: #fff !important; text-align: center; font-weight: 700; text-transform: uppercase; }
.ab-about-product-gallery .ab-coverflow-card a { display: block; width: 100%; height: 100%; }
.elementor .ab-about-product-gallery .ab-coverflow-card img { width: 100%; height: 100%; object-fit: cover; }

/* Redesigned, repeatable Videos page library. */
.ab-video-library { --ab-video-accent: #086fb7; width: 100%; }
.ab-video-library__filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 34px; }
.ab-video-library__filters button { padding: 10px 20px; border: 1px solid #020202; border-radius: 999px; background: #fff; color: #020202; cursor: pointer; }
.ab-video-library__filters button.is-active { border-color: var(--ab-video-accent); background: var(--ab-video-accent); color: #fff; }
.ab-video-library__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.ab-video-card { overflow: hidden; background: #f1f2f3; }
.ab-video-card.is-featured { grid-column: span 2; grid-row: span 2; }
.ab-video-card__media { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; overflow: hidden; border: 0; background: #020202; cursor: pointer; }
.ab-video-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.ab-video-card__media:hover img { transform: scale(1.035); }
.ab-video-card__copy { padding: 20px 22px 24px; }
.ab-video-card__copy > span { color: var(--ab-video-accent); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ab-video-card h3 { margin: 6px 0 0; font-size: clamp(20px, 2vw, 30px); line-height: 1.13; }
.ab-video-card p { margin: 10px 0 0; }
.ab-video-library__playlists { margin-top: 100px; }
.ab-video-library__playlists > h2 { margin-bottom: 8px; font-family: var(--ab-source-title); font-size: clamp(44px, 6vw, 76px); text-transform: uppercase; }
.ab-video-library__playlists > p { margin: 0 0 30px; }
.ab-video-library__playlists .ab-spotify-grid { display: grid; gap: 25px; }
.ab-video-library__playlists article h3 { margin: 0 0 12px; }

/* WordPress menus remain natively manageable; presentation is chosen per item. */
.ab-menu-item--button > a { padding: 11px 22px !important; border: 1px solid currentColor; border-radius: 999px; }
.ab-menu-item--decorative > a,
.ab-menu-item--decorative > span { pointer-events: none; opacity: .72; }

/* Parallax assets are deliberately locked into a static composition sitewide. */
[data-ab-parallax] img,
.ab-static-parallax,
.ab-home-parallax img { transform: none !important; will-change: auto !important; background-attachment: scroll !important; }

@media (max-width: 900px) {
	.ab-media-slideshow { height: 580px; }
	.ab-media-slide__copy { padding: 45px 24px; }
	.ab-video-library__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ab-video-card.is-featured { grid-column: span 2; grid-row: auto; }
	.ab-product-gallery__stage,
	.ab-product-gallery__item { min-height: 340px; }
	.elementor .ab-about-product-gallery .ab-coverflow-card img { width: 100%; height: 100%; }
}

@media (max-width: 600px) {
	.ab-media-slideshow { height: 420px; }
	.ab-media-slide__copy h2 { font-size: 40px; }
	.ab-media-slideshow__arrow { width: 42px; height: 58px; font-size: 48px; }
	.ab-content-modal__close { top: -10px; right: -4px; }
	.ab-editorial-timeline { flex-direction: column !important; padding-bottom: 70px !important; }
	.ab-editorial-timeline .ab-static-timeline__years { flex: none !important; flex-direction: row; width: 100% !important; padding: 0 0 18px !important; overflow-x: auto; }
	.ab-editorial-timeline .ab-static-timeline__years::after { display: none; }
	.ab-editorial-timeline .ab-timeline-year.elementor-button { flex: 0 0 auto; min-height: 40px; padding: 7px 14px !important; border: 1px solid var(--ab-timeline-accent, #85964f) !important; border-radius: 999px; font-size: 16px; }
	.ab-editorial-timeline .ab-timeline-year.elementor-button::before { display: none; }
	.ab-editorial-timeline .ab-static-timeline__slides { width: 100% !important; }
	.ab-video-library__grid { grid-template-columns: minmax(0, 1fr); }
	.ab-video-card.is-featured { grid-column: auto; }
	.ab-product-gallery__thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.ab-resources-layout { align-items: flex-start !important; justify-content: space-between !important; gap: 7% !important; padding-top: 0 !important; }
.ab-resources-main { flex: 0 1 63% !important; width: 63%; padding: 70px 0 0 !important; }
.ab-resources-main > .elementor-widget-text-editor { max-width: 600px; }
.ab-resources-main > .elementor-widget-heading:nth-of-type(2) { margin-top: 80px; }
.ab-resource-list { width: 100%; }
.ab-resource-card { display: flex !important; flex-direction: row !important; align-items: center !important; }
.ab-resource-card__copy { flex: 1 1 44% !important; width: 44%; }
.ab-resource-card__copy h3 { max-width: 266px; margin: 0; font: 700 22px/28px var(--ab-source-sans) !important; text-transform: none !important; }
.ab-resource-card__image { flex: 1 1 56% !important; width: 56%; }
.elementor .ab-resource-card__image img { display: block; width: 80%; max-width: 320px; height: auto; margin-inline: auto; border-radius: 32px; }
.ab-resources-form { position: sticky !important; top: 20px; flex: 0 1 30% !important; width: 30%; padding: 70px 0 30px !important; align-self: flex-start; }
.ab-resources-layout { overflow: visible !important; }
.ab-resources-layout .ab-email-club-signup { padding: 0; background: transparent; box-shadow: none; }
.ab-resources-layout .ab-email-club-signup > h2 { display: none; }
.ab-resources-main > .elementor-widget-heading h1 { max-width: 600px; font-size: 56px !important; line-height: 60px !important; margin: 0; }
.ab-resources-main > .elementor-widget-heading h2 { font-size: 36px !important; line-height: 40px !important; margin: 60px 0; }
/* Resource gaps, margins and padding are editable in the page's Elementor containers. */
/* This specific Email Club form is shared by Resources and the homepage. */
.elementor .hs-form-51945401-337c-41a5-ac4c-a96f7942cdf0 label { display: block; color: #020202; font: 500 16px/26px var(--ab-source-sans); text-transform: none; margin: 0; }
.elementor .hs-form-51945401-337c-41a5-ac4c-a96f7942cdf0 .hs-input:not([type="checkbox"]):not([type="radio"]) { box-sizing: border-box; display: block; width: 100% !important; height: 50px; min-height: 50px; margin: 0 0 24px; padding: 0 15px; border: 0; border-radius: 0; background: #f2f2f2; color: #020202; font: 500 15px/15px var(--ab-source-sans); }
.elementor .hs-form-51945401-337c-41a5-ac4c-a96f7942cdf0 .hs-richtext { margin-bottom: 20px; color: #020202; font: 400 12px/18px var(--ab-source-sans); }
.elementor .hs-form-51945401-337c-41a5-ac4c-a96f7942cdf0 .hs-richtext p { font: inherit; margin: 0; }
.elementor .hs-form-51945401-337c-41a5-ac4c-a96f7942cdf0 input[type="submit"] { width: 100%; height: 50px; padding: 10px 0; border: 0; border-radius: 25px; background: #0066ff !important; color: #fff !important; font: 700 14px/14px var(--ab-source-sans); text-transform: uppercase; }
.ab-about-product-gallery .ab-coverflow-view .ab-button { display: inline-flex; align-items: center; justify-content: center; }
.elementor-widget-ab-about-product-gallery { margin-bottom: 0 !important; }
.ab-about-break-2 { margin-top: 0 !important; }

.ab-theme-index { padding-top: 100px !important; padding-bottom: 120px !important; text-align: center; }
.ab-theme-index h1 { margin: 0; font-size: clamp(52px, 7vw, 92px) !important; }
.ab-theme-index > .elementor-widget-text-editor { margin: 10px auto 50px; }
.ab-theme-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; width: 100%; }
.ab-theme-card-grid__item { position: relative; display: block; min-width: 0; overflow: hidden; background: #020202; color: #fff; text-decoration: none; }
.ab-theme-card-grid__item img { display: block; width: 100%; aspect-ratio: 393 / 520; object-fit: cover; transition: transform .3s ease; }
.ab-theme-card-grid__item span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ab-theme-card-grid__item:hover img { transform: scale(1.035); }

@media (max-width: 1023px) {
	.ab-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ab-theme-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ab-resources-main { padding-left: 0; }
	.ab-resources-form { padding-right: 0; }
}

@media (max-width: 809px) {
	.ab-static-section { padding: 80px 22px !important; }
	.ab-static-hero { min-height: 310px; padding: 80px 22px !important; }
	.ab-static-hero__graphic { width: 200px; }
	.ab-static-row, .ab-static-row > .e-con-inner { flex-direction: column !important; }
	.ab-about-copy, .ab-about-cover, .ab-about-global__copy, .ab-about-global__quotes,
	.ab-resources-main, .ab-resources-form { flex: 0 1 auto !important; width: 100% !important; max-width: none !important; }
	.ab-about-cover { order: -1; width: min(100%, 300px) !important; margin-bottom: 30px; }
	.ab-static-timeline, .ab-static-timeline > .e-con-inner { flex-direction: row !important; }
	.ab-static-timeline__years { flex: 0 0 40% !important; width: 40%; padding-left: 0; }
	.ab-static-timeline__years::after { /* left: 13px; */ }
	.ab-static-timeline__slides { flex: 0 0 60% !important; width: 60%; }
	.ab-about-illustrator { gap: 40px !important; }
	.ab-about-illustrator__image, .ab-about-illustrator__copy { width: 100%; max-width: 460px; }
	.ab-about-coverflow { --ab-cover-width: 175px; --ab-cover-height: 288px; min-height: 528px !important; padding: 80px 0 !important; }
	.ab-coverflow-stage { height: var(--ab-cover-height) !important; min-height: var(--ab-cover-height) !important; }
	.ab-coverflow-card { width: var(--ab-cover-width) !important; height: var(--ab-cover-height); }
	.ab-coverflow-card img { width: 100%; height: 100%; }
	.ab-coverflow-control { top: calc(80px + (var(--ab-cover-height) / 2)); width: 36px; height: 36px; }
	.ab-media-page { padding: 70px 22px !important; }
	.ab-resources-layout { padding-top: 0 !important; }
	.ab-resources-main { padding-top: 60px !important; }
	.ab-resources-form { position: static !important; padding: 50px 30px !important; box-shadow: 4px 4px 12px rgba(0,0,0,.28); }
}

@media (max-width: 599px) {
	.ab-static-section h1 { font-size: 42px !important; }
	.ab-resources-main > .elementor-widget-heading h1 { font-size: 42px !important; line-height: 46px !important; }
	.ab-static-section h2, .ab-media-page h1, .ab-media-page h2 { font-size: 34px !important; }
	.ab-static-section p, .ab-media-page p { font-size: 16px; line-height: 27px; }
	.ab-static-parallax { min-height: 40vh; }
	.ab-static-timeline { padding-left: 14px !important; padding-right: 14px !important; }
	.ab-static-timeline__years { flex: 0 0 130px !important; width: 130px; padding-top: 75px; }
	.ab-static-timeline__slides { flex: 1 1 auto !important; width: calc(100% - 130px); }
	.ab-timeline-year .elementor-button { min-height: 49px; gap: 10px; font-size: 18px; }
	.ab-timeline-year .elementor-button::before { flex-basis: 19px; width: 19px; height: 19px; }
	.ab-static-timeline__years::after { left: 18.5px; }
	.ab-media-grid, .ab-spotify-grid { grid-template-columns: minmax(0, 1fr); }
	.ab-resource-card, .ab-resource-card > .e-con-inner { flex-direction: column !important; }
	.ab-resource-card__copy, .ab-resource-card__image { width: 100% !important; }
	.ab-theme-card-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* Keep the new Elementor timeline stacked after the legacy static-page rules. */
@media (max-width: 809px) {
	.ab-static-timeline.ab-editorial-timeline { display: flex !important; flex-direction: column !important; width: 100% !important; max-width: 100%; padding-right: 14px !important; padding-left: 14px !important; overflow: hidden; }
	.ab-static-timeline.ab-editorial-timeline .ab-static-timeline__years { display: flex; flex: 0 0 auto !important; flex-direction: row; gap: 8px !important; width: 100% !important; padding: 0 0 18px !important; overflow-x: auto; overscroll-behavior-inline: contain; }
	.ab-static-timeline.ab-editorial-timeline .ab-static-timeline__years::after { display: none; }
	.ab-static-timeline.ab-editorial-timeline .ab-timeline-year.elementor-button { flex: 0 0 auto; width: auto; min-height: 40px; padding: 7px 14px !important; border: 1px solid var(--ab-timeline-accent, #85964f) !important; border-radius: 999px; font-size: 16px; }
	.ab-static-timeline.ab-editorial-timeline .ab-timeline-year.elementor-button::before { display: none; }
	.ab-static-timeline.ab-editorial-timeline .ab-static-timeline__slides { flex: 0 1 auto !important; width: 100% !important; }
	.ab-static-timeline.ab-editorial-timeline .ab-timeline-slide { width: 100% !important; }
}
