:root {
  --zeo-background: var(--wp--preset--color--background, #fff);
  --zeo-surface-light: var(--wp--preset--color--surface-light, #f4f3f1);
  --zeo-surface-dark: var(--wp--preset--color--surface-dark, #333232);
  --zeo-text: var(--wp--preset--color--text, #333232);
  --zeo-muted: var(--wp--preset--color--muted, #666565);
  --zeo-primary: var(--wp--preset--color--primary, #333232);
  --zeo-secondary: var(--wp--preset--color--secondary, #8a8177);
  --zeo-accent: var(--wp--preset--color--accent, #a67c52);
  --zeo-border: var(--wp--preset--color--border, #ababab);
  --zeo-overlay: var(--wp--preset--color--media-overlay, #181817);
  --zeo-display-font: var(--wp--preset--font-family--display, 'Cormorant Garamond', Georgia, serif);
  --zeo-body-font: var(--wp--preset--font-family--sans, 'Avenir Next', Arial, sans-serif);
  --zeo-nav-font: var(--zeo-body-font);
  --zeo-button-font: var(--zeo-body-font);
  --zeo-header-height: 88px;
  --zeo-page-gutter: clamp(22px, 4.45vw, 72px);
  --zeo-section-space: clamp(72px, 10vw, 160px);
  --zeo-transition: 600ms cubic-bezier(.22,.61,.36,1);
  --zeo-motion-duration: 1200ms;
  --zeo-motion-ease: cubic-bezier(.445,.05,.55,.95);
  --zeo-reveal-ease: cubic-bezier(.645,.045,.355,1);
}

html { scroll-behavior: smooth; }
body { margin: 0; background: var(--zeo-background); color: var(--zeo-text); font-family: var(--zeo-body-font); }
img, video { max-width: 100%; height: auto; }
.wp-site-blocks { padding: 0; overflow-x: clip; }
.wp-site-blocks > * { margin-block-start: 0; }
.zeo-site-main { min-height: 60vh; }

/* Full-bleed visual modules should meet edge-to-edge. WordPress' global
   blockGap remains available everywhere else (editorial copy, cards, footer,
   etc.), and an explicit inline margin chosen by an editor still wins. */
.wp-block-post-content > .alignfull + .alignfull,
.zeo-section-stack > .alignfull + .alignfull,
.zeo-seamless-section + .zeo-seamless-section {
  margin-block-start: 0;
}

.zeo-section { padding-top: var(--zeo-section-space); padding-bottom: var(--zeo-section-space); }
.zeo-kicker { font-family: var(--zeo-nav-font); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.zeo-display { font-family: var(--zeo-display-font); font-weight: 400; letter-spacing: -.025em; line-height: .98; }

.zeo-site-header {
  position: relative;
  z-index: 100;
  min-height: var(--zeo-header-height);
  display: flex;
  align-items: center;
  background: rgba(245, 243, 238, .94);
  border-bottom: 1px solid color-mix(in srgb, var(--zeo-border) 38%, transparent);
  backdrop-filter: blur(12px);
  transition: background-color 400ms ease, border-color 400ms ease, backdrop-filter 400ms ease;
}
.home .wp-site-blocks > header.wp-block-template-part {
  position: absolute;
  inset: 0 0 auto;
  color: #fff;
}
.home .zeo-site-header {
  background: transparent;
  border-color: transparent;
  backdrop-filter: none;
}
.home .zeo-site-header :where(.wp-block-site-title a,.wp-block-navigation-item__content,.wp-block-navigation__responsive-container-open,.zeo-store-tools a) { color: #fff; }
.home .zeo-language-switcher { color: #fff; }
.home.is-zeo-header-scrolled .wp-site-blocks > header.wp-block-template-part { position: fixed; inset: 0 0 auto; }
.home.is-zeo-header-scrolled .zeo-site-header { min-height: 68px; color: var(--zeo-text); background: rgba(245,243,238,.94); border-color: color-mix(in srgb,var(--zeo-border) 38%,transparent); backdrop-filter: blur(12px); }
.home.is-zeo-header-scrolled .zeo-site-header :where(.wp-block-site-title a,.wp-block-navigation-item__content,.wp-block-navigation__responsive-container-open,.zeo-store-tools a) { color: var(--zeo-text); }
.home.is-zeo-header-scrolled .zeo-language-switcher { color: var(--zeo-text); }
.zeo-sticky-header .wp-site-blocks > header.wp-block-template-part {
  position: sticky;
  z-index: 1000;
  top: 0;
  transform: translate3d(0,0,0);
  transition: transform 420ms cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}
.zeo-sticky-header.is-zeo-header-hidden .wp-site-blocks > header.wp-block-template-part {
  transform: translate3d(0,calc(-100% - 2px),0);
}
body.admin-bar.zeo-sticky-header .wp-site-blocks > header.wp-block-template-part { top: 32px; }
.zeo-header-inner { width: 100%; max-width: none !important; padding-inline: 5vw; }
.zeo-header-actions { gap: clamp(14px,1.7vw,28px); }
.zeo-primary-navigation { font: 500 clamp(9px,.72vw,12px)/1 var(--zeo-nav-font); letter-spacing: .105em; }
.zeo-primary-navigation .wp-block-navigation__container { gap: clamp(17px,2vw,34px); }
.zeo-language-switcher { width: 22px; margin: 0 !important; color: inherit; }
.zeo-language-switcher .wp-block-shortcode { width: 22px; margin: 0; }
.zeo-language-switcher select { width: 22px; height: 22px; border: 0; color: inherit; background: transparent; font-size: 0; cursor: pointer; }
/* Keep the header translator functional, but present it as the same quiet
   outline icon language used by search/account/bag. */
.zeo-language-switcher .gt_switcher-popup {
  display: grid !important;
  width: 22px !important;
  height: 22px !important;
  padding: 0 !important;
  border: 0 !important;
  place-items: center;
  color: inherit !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0 !important;
}
.zeo-language-switcher .gt_switcher-popup::before {
  content: '';
  width: 20px;
  height: 20px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.5' d='M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0ZM3.6 9h16.8M3.6 15h16.8M12 3c2.1 2.4 3.2 5.4 3.2 9S14.1 18.6 12 21c-2.1-2.4-3.2-5.4-3.2-9S9.9 5.4 12 3Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.5' d='M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0ZM3.6 9h16.8M3.6 15h16.8M12 3c2.1 2.4 3.2 5.4 3.2 9S14.1 18.6 12 21c-2.1-2.4-3.2-5.4-3.2-9S9.9 5.4 12 3Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.zeo-language-switcher .gt_switcher-popup > img,
.zeo-language-switcher .gt_switcher-popup > span { display: none !important; }
/* GTranslate may also inject a second fixed control directly under body. */
body > .gtranslate_wrapper,
body > .gt_switcher_wrapper { display: none !important; }
.zeo-store-tools { display:flex;align-items:center;gap:18px; }
.zeo-store-tools a { position:relative;display:grid;width:21px;height:24px;place-items:center;color:inherit; }
.zeo-store-tools svg { width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.35; }
.zeo-store-tools__bag span { position:absolute;right:-8px;top:-6px;display:grid;min-width:15px;height:15px;padding:0 3px;place-items:center;border-radius:20px;background:currentColor;color:var(--zeo-background);font:600 9px/1 var(--zeo-body-font); }
.zeo-brand-mark { font-family: var(--zeo-display-font); font-size: clamp(26px, 2vw, 30px); letter-spacing: .09em; white-space: nowrap; }
.zeo-site-header .wp-block-navigation-item__content { transition: opacity 180ms ease, color 180ms ease; }
.zeo-site-header .wp-block-navigation-item__content:hover { opacity: .58; }
.wp-block-navigation__submenu-container { min-width: 260px !important; padding: 18px !important; border: 0 !important; box-shadow: 0 20px 50px rgba(0,0,0,.12); }

.zeo-hero {
  min-height: min(720px, calc(100vh - var(--zeo-header-height)));
  position: relative;
  overflow: hidden;
}
.zeo-hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.46)) !important; }
.zeo-hero-title { color: #fff !important; font-family: var(--zeo-display-font); font-size: clamp(58px, 9vw, 130px); line-height: .86; font-weight: 400; letter-spacing: -.045em; }
.zeo-hero-subtitle { color: #fff !important; font-size: clamp(12px, 1.1vw, 16px); letter-spacing: .12em; text-transform: uppercase; }

.zeo-feature-cover { overflow: hidden; }
.zeo-feature-cover img { transform: scale(1.001); transition: transform 1.2s var(--zeo-motion-ease), filter 600ms ease; }
.zeo-feature-cover:hover img { transform: scale(1.035); filter: saturate(1.04); }
.zeo-feature-cover .wp-block-cover__inner-container { height: 100%; display: flex; align-items: flex-end; }
.zeo-feature-copy { width: min(560px, 86vw); padding: clamp(24px, 4vw, 64px); }
.zeo-feature-copy h2, .zeo-feature-copy h3 { text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.zeo-feature-copy, .zeo-feature-copy a { color: #fff !important; }
.zeo-text-link { position: relative; display: inline-flex; gap: 10px; align-items: center; border-bottom: 0; padding-bottom: 6px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.zeo-text-link::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(1); transform-origin: left; transition: transform 400ms ease; }
.zeo-text-link:hover::after, .zeo-text-link:focus-visible::after { transform: scaleX(.42); }
.zeo-feature-copy .zeo-kicker::after { content: ''; display: block; width: 116px; height: 1px; margin-top: 24px; background: currentColor; opacity: .78; clip-path: inset(0 100% 0 0); }
.zeo-feature-copy .zeo-kicker.is-motion-visible::after { animation: zeo-motion-line-in var(--zeo-motion-duration) var(--zeo-reveal-ease) 760ms both; }

.zeo-dark-section { background: var(--zeo-surface-dark); color: var(--zeo-background) !important; }
.zeo-dark-section :where(h1,h2,h3,h4,h5,h6,p,a,cite,span) { color: var(--zeo-background) !important; }
.zeo-editorial-card { height: 100%; }
.zeo-editorial-card img { aspect-ratio: 4/5; object-fit: cover; width: 100%; filter: saturate(.82); transition: filter 400ms ease, transform 700ms ease; }
.zeo-editorial-card:hover img { filter: saturate(1); transform: scale(1.02); }
.zeo-portrait img { filter: grayscale(1); transition: filter 450ms ease; }
.zeo-portrait:hover img { filter: grayscale(0); }
.zeo-office-grid { border-top: 1px solid color-mix(in srgb, currentColor 25%, transparent); }
.zeo-office-grid > * { padding-top: 30px; }

/* Artelier-inspired motion primitives. They are class-based so an editor can
   apply them to any Gutenberg block without turning the page into fixed HTML. */
.zeo-motion-float,
.zeo-motion-fade,
.zeo-motion-line,
.zeo-motion-drop { --zeo-motion-delay: 0ms; --zeo-motion-x: -60px; }

html.zeo-motion-ready .zeo-motion-float:not(.is-motion-visible) { opacity: 0; transform: translate3d(var(--zeo-motion-x),0,0); }
html.zeo-motion-ready .zeo-motion-fade:not(.is-motion-visible) { opacity: 0; }
html.zeo-motion-ready .zeo-motion-line:not(.is-motion-visible) { opacity: 0; clip-path: inset(0 100% 0 0); }
html.zeo-motion-ready .zeo-motion-drop:not(.is-motion-visible) { opacity: 0; transform: translate3d(0,-18px,0); }

.zeo-motion-float.is-motion-visible { animation: zeo-motion-float-in var(--zeo-motion-duration) var(--zeo-motion-ease) var(--zeo-motion-delay) both; }
.zeo-motion-fade.is-motion-visible { animation: zeo-motion-fade-in var(--zeo-motion-duration) var(--zeo-motion-ease) var(--zeo-motion-delay) both; }
.zeo-motion-line.is-motion-visible { animation: zeo-motion-line-in var(--zeo-motion-duration) var(--zeo-reveal-ease) var(--zeo-motion-delay) both; }
.zeo-motion-drop.is-motion-visible { animation: zeo-motion-drop-in 900ms var(--zeo-motion-ease) var(--zeo-motion-delay) both; }

@keyframes zeo-motion-float-in { from { opacity: 0; transform: translate3d(var(--zeo-motion-x),0,0); } to { opacity: 1; transform: translate3d(0,0,0); } }
@keyframes zeo-motion-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes zeo-motion-line-in { from { opacity: 0; clip-path: inset(0 100% 0 0); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
@keyframes zeo-motion-drop-in { from { opacity: 0; transform: translate3d(0,-18px,0); } to { opacity: 1; transform: translate3d(0,0,0); } }

.zeo-carousel { position: relative; overflow: hidden; color: #fff; background: #151515; }
.zeo-carousel__viewport { position: relative; min-height: var(--zeo-carousel-height-desktop, 720px); }
.zeo-carousel__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1200ms var(--zeo-motion-ease), visibility 1200ms; }
.zeo-carousel__slide.is-active { opacity: 1; visibility: visible; }
.zeo-carousel__slide img, .zeo-carousel__slide video { width: 100%; height: 100%; object-fit: var(--zeo-carousel-fit, cover); object-position: var(--zeo-slide-position, 50% 50%); transform: scale(1.035); transition: transform 6.5s cubic-bezier(.2,.6,.2,1); }
.zeo-carousel__slide.is-slide-motion-active img,
.zeo-carousel__slide.is-slide-motion-active video { transform: scale(1); }
.zeo-carousel__slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,var(--zeo-carousel-overlay,.68))); }
.zeo-carousel__caption { position: absolute; z-index: 2; left: var(--zeo-page-gutter); right: var(--zeo-page-gutter); bottom: clamp(44px, 7vw, 96px); max-width: 650px; }
.zeo-carousel__slide .zeo-carousel__caption > * {
  --zeo-motion-x: -60px;
  opacity: 0;
  transform: translate3d(-60px,0,0);
  animation: none;
  will-change: opacity, transform;
}
.zeo-carousel__slide .zeo-carousel__caption > .zeo-text-link {
  /* CTA uses a fade-only entrance, so it must not inherit the copy's
     horizontal starting offset after the animation completes. */
  transform: none;
}
.zeo-carousel__slide.is-slide-motion-active .zeo-carousel__caption > .zeo-kicker {
  animation: zeo-motion-float-in 1200ms var(--zeo-motion-ease) 1ms both;
}
.zeo-carousel__slide.is-slide-motion-active .zeo-carousel__caption > h2,
.zeo-carousel__slide.is-slide-motion-active .zeo-carousel__caption > p:not(.zeo-kicker) {
  animation: zeo-motion-float-in 1200ms var(--zeo-motion-ease) 800ms both;
}
.zeo-carousel__slide.is-slide-motion-active .zeo-carousel__caption > .zeo-text-link {
  animation: zeo-motion-fade-in 1200ms var(--zeo-motion-ease) 1100ms both;
}
.zeo-carousel__meta { opacity: 0; }
.zeo-carousel.is-carousel-in-view .zeo-carousel__meta {
  animation: zeo-motion-fade-in 1200ms var(--zeo-motion-ease) 1ms both;
}
.zeo-carousel--content-center .zeo-carousel__caption { margin-inline: auto; text-align: center; }
.zeo-carousel--content-right .zeo-carousel__caption { margin-left: auto; text-align: right; }
.zeo-carousel__caption h2 { margin: 0 0 10px; font-family: var(--zeo-display-font); font-size: clamp(48px, 7vw, 96px); line-height: .9; font-weight: 400; }
.zeo-carousel__controls { position: absolute; z-index: 3; inset: 50% var(--zeo-page-gutter) auto; display: flex; justify-content: space-between; pointer-events: none; }
.zeo-carousel__button { width: 44px; height: 44px; border: 0; border-radius: 50%; color: #fff; background: rgba(0,0,0,.2); backdrop-filter: blur(8px); cursor: pointer; pointer-events: auto; }
.zeo-carousel__dots { position: absolute; z-index: 3; bottom: 24px; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; }
.zeo-carousel__dot { width: 24px; height: 2px; border: 0; padding: 0; background: rgba(255,255,255,.45); cursor: pointer; }
.zeo-carousel__dot { transform-origin: left; transition: width 400ms ease, background-color 400ms ease; }
.zeo-carousel__dot.is-active { width: 44px; background: #fff; }

.zeo-dynamic-grid { display: grid; grid-template-columns: repeat(var(--zeo-columns-desktop, 3), minmax(0, 1fr)); column-gap: var(--zeo-column-gap, 32px); row-gap: var(--zeo-row-gap, 48px); }
.zeo-dynamic-card__media { display: block; overflow: hidden; }
.zeo-dynamic-card__media img { width: 100%; aspect-ratio: var(--zeo-card-ratio, 4/5); object-fit: cover; transition: transform 800ms ease; }
.zeo-dynamic-card:hover img { transform: scale(1.035); }
.zeo-dynamic-card__title { font-family: var(--zeo-display-font); font-size: clamp(24px, 2.4vw, 38px); margin: 18px 0 6px; }
.zeo-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 48px; }
.zeo-filter button { border: 1px solid var(--zeo-border); background: transparent; color: inherit; padding: 10px 16px; font: 500 12px/1 var(--zeo-nav-font); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.zeo-filter button.is-active, .zeo-filter button:hover { background: var(--zeo-primary); color: var(--zeo-background); border-color: var(--zeo-primary); }

.zeo-longform { font-family: var(--zeo-display-font); font-size: clamp(20px, 2vw, 29px); line-height: 1.45; }
.zeo-longform p { margin-block: 1.4em; }
.zeo-longform .wp-block-image { margin-block: clamp(50px, 8vw, 120px); }
.zeo-closing-cta { padding: clamp(70px, 8vw, 122px) var(--zeo-page-gutter); color: #37322d; background: #f3f0e9; border-top: 1px solid rgba(55,50,45,.14); }
.zeo-closing-cta > .wp-block-group { max-width: 1440px; margin-inline: auto; gap: 42px; }
.zeo-closing-cta__eyebrow { margin: 0 0 20px; font: 600 10px/1 var(--zeo-body-font); letter-spacing: .17em; }
.zeo-closing-cta__title { max-width: 760px; margin: 0; font: 400 clamp(38px, 4.2vw, 68px)/.98 var(--zeo-display-font); letter-spacing: -.02em; }
.zeo-closing-cta__link { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid currentColor; color: inherit; font: 600 10px/1 var(--zeo-body-font); letter-spacing: .14em; text-decoration: none; }
.zeo-closing-cta__link svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.35; }
.zeo-minimal-footer { box-sizing: border-box; min-height: 0; padding: 60px var(--zeo-page-gutter) 24px; overflow-x: clip; color: #4b4742; background: #faf9f6; }
.zeo-minimal-footer .zeo-footer-inner { box-sizing: border-box; width: 100%; max-width: 1440px; min-height: 0; margin-inline: auto; }
.zeo-minimal-footer .zeo-footer-columns { width: 100%; margin: 0; gap: clamp(34px, 5vw, 82px); }
.zeo-minimal-footer .zeo-footer-column { min-width: 0; }
.zeo-minimal-footer .zeo-footer-column--intro { flex-basis: 1.65; }
.zeo-minimal-footer .zeo-footer-brand { margin: 0 0 18px; font: 400 26px/1 var(--zeo-display-font); letter-spacing: .1em; }
.zeo-minimal-footer .zeo-footer-statement { max-width: 310px; margin: 0; font: 400 21px/1.32 var(--zeo-display-font); }
.zeo-minimal-footer .zeo-footer-heading { margin: 0 0 18px; color: inherit; font: 600 10px/1 var(--zeo-body-font); letter-spacing: .15em; text-transform: uppercase; }
.zeo-minimal-footer :where(.zeo-footer-primary, .zeo-footer-secondary) { margin: 0; font: 400 12px/1.8 var(--zeo-body-font); letter-spacing: .01em; }
.zeo-minimal-footer .zeo-footer-primary { color: inherit; }
.zeo-minimal-footer .zeo-footer-secondary { color: #77716a; overflow-wrap: anywhere; }
.zeo-minimal-footer .zeo-footer-link { color: inherit; text-decoration: none; text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color 180ms ease; }
.zeo-minimal-footer .zeo-footer-link:hover, .zeo-minimal-footer .zeo-footer-link:focus-visible { color: #2f2c28; text-decoration: underline; }
.zeo-minimal-footer .zeo-footer-bottom { width: 100%; margin-top: 58px; padding-top: 18px; border-top: 1px solid rgba(75,71,66,.18); gap: 18px; color: #928d86; font: 400 10px/1.4 var(--zeo-body-font); letter-spacing: .04em; }
.zeo-minimal-footer .zeo-footer-bottom p { margin: 0; }

/* Optional core Image styles. Natural Size keeps the media intrinsic; Fill
   Frame makes the image follow the editable block frame and crop cleanly. */
.wp-block-image.is-style-zeo-natural-size img {
  width: auto;
  max-width: 100%;
  height: auto;
}
.wp-block-image.is-style-zeo-fill-frame {
  width: 100%;
  overflow: hidden;
}
.wp-block-image.is-style-zeo-fill-frame img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: var(--zeo-image-position, 50% 50%);
}

@media (max-width: 1024px) {
  :root { --zeo-header-height: 78px; --zeo-page-gutter: 32px; }
  .zeo-carousel__viewport { min-height: var(--zeo-carousel-height-tablet, 620px); }
  .zeo-dynamic-grid { grid-template-columns: repeat(var(--zeo-columns-tablet, 2), minmax(0, 1fr)); }
  .zeo-desktop-only { display: none !important; }
  .zeo-primary-navigation .wp-block-navigation__container { gap: 15px; }
  /* The compact globe remains available on touch layouts; only the duplicate
     fixed GTranslate control is suppressed above. */
  .zeo-language-switcher { display: block; flex: 0 0 22px; }
  .zeo-minimal-footer .zeo-footer-columns { gap: clamp(26px, 4vw, 48px); }
}

@media (max-width: 767px) {
  :root { --zeo-header-height: 76px; --zeo-page-gutter: 20px; --zeo-section-space: 76px; }
  body.admin-bar.zeo-sticky-header .wp-site-blocks > header.wp-block-template-part { top: 46px; }
  .zeo-site-header { min-height: var(--zeo-header-height); }
  .zeo-header-inner { flex-wrap: nowrap !important; }
  .zeo-header-actions { gap: 10px; }
  .zeo-store-tools { gap: 12px; }
  .zeo-store-tools > a:first-child { display: none; }
  .zeo-brand-mark { font-size: 25px; }
  .zeo-hero-title { font-size: clamp(52px, 19vw, 78px); }
  .zeo-feature-copy { padding: 26px 0; }
  .zeo-carousel__viewport { min-height: var(--zeo-carousel-height-mobile, 560px); }
  .zeo-carousel__caption h2 { font-size: 54px; }
  .zeo-carousel__controls { inset-inline: 14px; }
  .zeo-dynamic-grid { grid-template-columns: repeat(var(--zeo-columns-mobile, 1), minmax(0, 1fr)); }
  .zeo-mobile-stack { flex-direction: column !important; }
  .zeo-tablet-up { display: none !important; }
  .zeo-office-grid { gap: 42px !important; }
  .wp-block-navigation__responsive-container.is-menu-open { padding: 28px; background: var(--zeo-surface-dark) !important; color: var(--zeo-background) !important; }
  .zeo-minimal-footer {
    min-height: 0;
    padding: 54px 24px 26px;
    overflow-x: hidden;
  }
  .zeo-minimal-footer .zeo-footer-inner { min-height: 0; }
  .zeo-minimal-footer .zeo-footer-columns {
    display: flex;
    flex-direction: column;
    gap: 38px;
  }
  .zeo-closing-cta { padding: 66px 24px; }
  .zeo-closing-cta > .wp-block-group { align-items: flex-start; }
  .zeo-closing-cta__title { font-size: 42px; }
  .zeo-minimal-footer .zeo-footer-heading { margin-bottom: 14px; }
  .zeo-minimal-footer .zeo-footer-bottom {
    margin-top: 50px;
    padding-top: 16px;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    text-align: left;
  }
  .zeo-motion-float { --zeo-motion-x: -32px; }
}

@media (min-width: 768px) {
  .zeo-mobile-only { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .zeo-reveal, .zeo-motion-float, .zeo-motion-fade, .zeo-motion-line, .zeo-motion-drop { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .zeo-feature-copy .zeo-kicker::after { clip-path: none !important; }
  .zeo-carousel__slide img, .zeo-carousel__slide video { transform: none !important; }
  .zeo-carousel__slide .zeo-carousel__caption > *,
  .zeo-carousel__meta { opacity: 1 !important; transform: none !important; animation: none !important; }
}
