/* ===== Apolonya · design layer: the controls every block shares ===== */
.apo-x { position: relative; }

/* ---- Colours ---- */
.apo-x.x-ca { --v-gold: var(--x-ca); --v-gold-t: var(--x-ca); --v-gold-2: color-mix(in srgb, var(--x-ca) 35%, transparent); }
.apo-x.x-ct :is(h1, h2, h3, h4, h5, .apo-v-h, .apo-v-fig-v, .apo-v-mono, .apo-v-foot-name, .apo-x-cd-n) { color: var(--x-ct) !important; }
.apo-x.x-cx :is(p, li, figcaption, .apo-v-lead, .apo-v-row-text, .apo-v-fig-l) { color: var(--x-cx) !important; }
.apo-x.x-ca :is(em, .apo-v-pre, .apo-v-time, .apo-v-num, .apo-v-fig-l, .apo-v-row-arrow, .apo-v-chap-num, .apo-x-cd-l) { color: var(--x-ca) !important; }
.apo-x.x-ca .apo-v-link span::after { background: var(--x-ca) !important; }

/* ---- Fonts and sizes ---- */
.apo-x.x-font :is(h1, h2, h3, h4, .apo-v-h, .apo-v-fig-v, .apo-v-foot-name, .apo-x-cd-n) { font-family: var(--x-font) !important; }
.apo-x.x-scale :is(h1, h2, h3, .apo-v-h) { zoom: var(--x-scale); }

/* ---- Alignment ---- */
.apo-x.x-al-left { text-align: left !important; }
.apo-x.x-al-right { text-align: right !important; }
.apo-x.x-al-center { text-align: center !important; }
.apo-x.x-al-left :is(h1, h2, h3, p, .apo-v-lead) { text-align: left; }
.apo-x.x-al-right :is(h1, h2, h3, p, .apo-v-lead) { text-align: right; }
.apo-x.x-al-left .apo-v-pre, .apo-x.x-al-left .apo-v-links { justify-content: flex-start; }
.apo-x.x-al-right .apo-v-pre, .apo-x.x-al-right .apo-v-links { justify-content: flex-end; }
.apo-x.x-al-left .apo-v-pre::before { display: none; }
.apo-x.x-al-right .apo-v-pre::after { display: none; }
.apo-x.x-al-left :is(.apo-v-lead, .apo-v-orn) { margin-left: 0; margin-right: auto; }
.apo-x.x-al-right :is(.apo-v-lead, .apo-v-orn) { margin-left: auto; margin-right: 0; }

/* Text position inside the opening and the full-bleed bands */
.apo-x[class*="x-tp-"] { text-align: left; }
.apo-x[class*="x-tp-"] :is(.apo-v-band-in, .apo-v-hero-in) { max-width: 780px; padding-left: clamp(36px, 6vw, 100px); padding-right: clamp(36px, 6vw, 100px); }
.apo-x[class*="x-tp-"] .apo-v-pre, .apo-x[class*="x-tp-"] .apo-v-links { justify-content: flex-start; }
.apo-x[class*="x-tp-"] .apo-v-pre::before { display: none; }
.apo-x[class*="x-tp-"] .apo-v-lead { margin-left: 0; margin-right: 0; }
.apo-x.x-tp-c { text-align: center; place-items: center; }
.apo-x.x-tp-bl { place-items: end start; }
.apo-x.x-tp-br { place-items: end end; text-align: right; }
.apo-x.x-tp-tl { place-items: start start; }
.apo-x.x-tp-tr { place-items: start end; text-align: right; }
.apo-x.x-tp-cl { place-items: center start; }
.apo-x.x-tp-cr { place-items: center end; text-align: right; }
.apo-x.x-tp-bl :is(.apo-v-band-in, .apo-v-hero-in), .apo-x.x-tp-br :is(.apo-v-band-in, .apo-v-hero-in) { padding-bottom: clamp(56px, 10vh, 120px); }
.apo-x.x-tp-tl :is(.apo-v-band-in, .apo-v-hero-in), .apo-x.x-tp-tr :is(.apo-v-band-in, .apo-v-hero-in) { padding-top: clamp(100px, 16vh, 180px); }
.apo-x.x-tp-br .apo-v-pre, .apo-x.x-tp-tr .apo-v-pre, .apo-x.x-tp-cr .apo-v-pre, .apo-x.x-tp-br .apo-v-links, .apo-x.x-tp-tr .apo-v-links, .apo-x.x-tp-cr .apo-v-links { justify-content: flex-end; }
.apo-x.x-tp-br .apo-v-lead, .apo-x.x-tp-tr .apo-v-lead, .apo-x.x-tp-cr .apo-v-lead { margin-left: auto; }
.apo-x.x-tp-br .apo-v-pre::before, .apo-x.x-tp-tr .apo-v-pre::before, .apo-x.x-tp-cr .apo-v-pre::before { display: block; }
.apo-x.x-tp-br .apo-v-pre::after, .apo-x.x-tp-tr .apo-v-pre::after, .apo-x.x-tp-cr .apo-v-pre::after { display: none; }

/* ---- Layout ---- */
.apo-vow.x-minh { height: auto !important; }
.apo-vow.x-maxw > [class*="-in"] { max-width: var(--x-maxw) !important; margin-left: auto; margin-right: auto; }
@media (max-width: 900px) { .x-hide-m { display: none !important; } }
@media (min-width: 901px) { .x-hide-d { display: none !important; } }

/* ---- Background image or video behind the content ---- */
.apo-x.x-hasbg { overflow: hidden; }
.apo-x-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.apo-x-bg :is(img, video) { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.apo-x.x-hasbg > :not(.apo-x-bg):not(.apo-x-div):not(.apo-x-sound):not([class*="-media"]):not([class*="-veil"]):not(.apo-v-frame):not(.apo-v-reel) { position: relative; z-index: 1; }
.apo-x.x-veil :is(.apo-v-band-veil, .apo-v-hero-veil) { background: color-mix(in srgb, var(--x-veil) calc(var(--x-veil-o) * 1%), transparent) !important; }
.apo-x.x-veil .apo-x-bg::after { content: ''; position: absolute; inset: 0; background: color-mix(in srgb, var(--x-veil) calc(var(--x-veil-o) * 1%), transparent); }

/* ---- Photo and video mood ---- */
.apo-x.x-f-warm :is(img, video) { filter: sepia(.26) saturate(1.18) contrast(1.02) brightness(1.02); }
.apo-x.x-f-soft :is(img, video) { filter: saturate(.88) contrast(.94) brightness(1.05); }
.apo-x.x-f-bw :is(img, video) { filter: grayscale(1) contrast(1.05); }
.apo-x.x-f-sepia :is(img, video) { filter: sepia(.8); }
.apo-x.x-f-vivid :is(img, video) { filter: saturate(1.35) contrast(1.06); }
.apo-x.x-f-blur :is(img, video) { filter: blur(4px); transform: scale(1.04); }
.apo-x.x-f-dim :is(img, video) { filter: brightness(.78); }
.apo-x.x-f-bright :is(img, video) { filter: brightness(1.12) saturate(1.05); }
.apo-x.x-pos :is(img, video) { object-position: var(--x-pos) !important; }
@keyframes apo-x-kb { from { transform: scale(1); } to { transform: scale(1.09); } }
.apo-x.x-kb-on :is(.apo-v-hero-media, .apo-v-band-media, .apo-v-arch-frame, .apo-x-bg) img { animation: apo-x-kb 26s ease-in-out infinite alternate; }
.apo-x.x-kb-off :is(.apo-v-hero-media, .apo-v-band-media) img { animation: none !important; }
.apo-x.x-noframe .apo-v-frame { display: none !important; }
.apo-x.x-frame-c .apo-v-frame { border-color: var(--x-frame) !important; }
.apo-x-mobimg { display: none; }
@media (max-width: 900px) {
  .x-novid-m video { display: none !important; }
  .x-novid-m .apo-x-mobimg { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
}
.apo-x-sound { position: absolute; right: 24px; bottom: 22px; z-index: 6; min-height: 44px; padding: 0 18px; border: 1px solid rgba(255, 255, 255, .85); background: rgba(47, 41, 35, .3); color: #fff; font: 400 10.5px/1 'Jost', system-ui, sans-serif; letter-spacing: .3em; text-transform: uppercase; cursor: pointer; backdrop-filter: blur(6px); }
.apo-x-sound[aria-pressed="true"] { background: #fff; color: #2f2923; }

/* ---- Appearance on scroll ---- */
.apo-x[class*="x-an-"] [data-v-reveal] { transition-property: opacity, transform, filter; }
.apo-x.x-an-fade [data-v-reveal] { transform: none; }
.apo-x.x-an-zoom [data-v-reveal] { transform: scale(.94); }
.apo-x.x-an-left [data-v-reveal] { transform: translateX(-70px); }
.apo-x.x-an-right [data-v-reveal] { transform: translateX(70px); }
.apo-x.x-an-blur [data-v-reveal] { transform: translateY(18px); filter: blur(12px); }
.apo-x.x-an-none [data-v-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; filter: none; }
.apo-x[class*="x-an-"] [data-v-reveal].is-in { opacity: 1; transform: none; filter: none; }
.apo-x.x-dur [data-v-reveal] { transition-duration: var(--x-dur); }
.apo-x.x-delay [data-v-reveal] { transition-delay: var(--x-delay) !important; }

/* ---- Titles that arrive word by word ---- */
.apo-v-w { display: inline-block; opacity: 0; transform: translateY(.55em); transition: opacity .8s ease, transform .9s cubic-bezier(.22, .61, .36, 1); transition-delay: calc(var(--i, 0) * 70ms); }
.apo-v-wd { display: inline-block; white-space: nowrap; }
.is-split-in .apo-v-w { opacity: 1; transform: none; }
.apo-static .apo-v-w { opacity: 1; transform: none; }

/* ---- Shape dividers ---- */
.apo-x-div { position: absolute; left: 0; right: 0; height: clamp(30px, 5vw, 80px); line-height: 0; pointer-events: none; z-index: 3; color: var(--x-div, #fbf8f3); }
.apo-x-div svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.apo-x-div-top { top: -1px; transform: scaleY(-1); }
.apo-x-div-bot { bottom: -1px; }

/* ---- Page extras ---- */
.apo-x-extras { display: contents; }
.apo-x-progress { position: fixed; left: 0; right: 0; top: 0; height: 3px; z-index: 100000; pointer-events: none; }
.apo-x-progress i { display: block; width: 100%; height: 100%; background: var(--x-pc, #85692f); transform-origin: left; transform: scaleX(0); }
.apo-x-cta { position: fixed; bottom: 26px; z-index: 9990; display: inline-flex; align-items: center; min-height: 52px; padding: 0 30px; background: var(--x-cc, #85692f); border: 1px solid var(--x-cc, #85692f); color: #fff; font: 400 11.5px/1 'Jost', system-ui, sans-serif; letter-spacing: .32em; text-transform: uppercase; text-decoration: none; box-shadow: 0 18px 40px -22px rgba(47, 41, 35, .6); opacity: 0; transform: translateY(24px); pointer-events: none; transition: opacity .5s, transform .6s cubic-bezier(.22, .61, .36, 1), background .4s, color .4s; }
.apo-x-cta.is-on { opacity: 1; transform: none; pointer-events: auto; }
.apo-x-cta-right { right: 26px; }
.apo-x-cta-left { left: 26px; }
.apo-x-cta-center { left: 50%; margin-left: -110px; }
.apo-x-cta-outline { background: rgba(251, 248, 243, .95); color: var(--x-cc, #85692f); }
.apo-x-cta:hover { background: transparent; color: var(--x-cc, #85692f); }
.apo-x-cta-outline:hover { background: var(--x-cc, #85692f); color: #fff; }
.apo-x-top { position: fixed; left: 22px; bottom: 26px; z-index: 9990; width: 48px; height: 48px; border-radius: 50%; border: 1px solid #dccfb2; background: rgba(251, 248, 243, .95); color: #2f2923; display: grid; place-items: center; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .5s; }
.apo-x-top.is-on { opacity: 1; pointer-events: auto; }
.apo-x-bar { position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 99990; padding: 10px 52px; background: var(--x-bc, #85692f); color: #fff; text-align: center; font: 400 12px/1.5 'Jost', system-ui, sans-serif; letter-spacing: .16em; }
.apo-x-bar a { margin-left: 16px; color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.apo-x-bar button { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border: 0; background: none; color: #fff; font-size: 22px; cursor: pointer; }
body.x-has-bar #header-outer { margin-top: var(--x-bar-h, 0px) !important; }

/* ---- Countdown ---- */
.apo-v-count { padding: var(--v-pad); text-align: center; }
.apo-v-count-in { max-width: 1000px; margin: 0 auto; }
.apo-x-cd { display: flex; justify-content: center; flex-wrap: wrap; gap: clamp(18px, 4vw, 60px); margin-top: 44px; }
.apo-x-cd-c { min-width: 92px; text-align: center; }
.apo-x-cd-c + .apo-x-cd-c { padding-left: clamp(18px, 4vw, 60px); border-left: 1px solid var(--v-gold-2); }
.apo-x-cd-n { display: block; font-family: var(--v-serif); font-weight: 400; font-size: clamp(46px, 7vw, 100px); line-height: 1; color: var(--v-ink); font-variant-numeric: tabular-nums; }
.apo-x-cd-l { display: block; margin-top: 12px; font: 400 10.5px/1 var(--v-sans); letter-spacing: .34em; text-transform: uppercase; color: var(--v-gold-t); }
.apo-v-count.is-done .apo-x-cd { display: none; }
.apo-x-done { font-family: var(--v-serif); font-style: italic; font-size: clamp(30px, 4vw, 60px); color: var(--v-gold-t); margin-top: 40px; }
@media (max-width: 900px) { .apo-x-cta-center { margin-left: -100px; } .apo-x-cta { min-height: 48px; padding: 0 22px; } }
@media (prefers-reduced-motion: reduce) { .apo-x.x-kb-on img { animation: none !important; } .apo-v-w { transition: none; opacity: 1; transform: none; } }

/* No theme demo footer on any Apolonya page */
body.apo-has-sections #footer-outer, body.apo-has-sections #call-to-action, body.apo-has-sections .nectar-global-section.before-footer { display: none !important; }
