/*
Theme Name: NUAMÃO Gutenberg – Editor First
Theme URI: https://nuamao.com/
Author: NUAMÃO
Description: Native Gutenberg block theme for NUAMÃO. V2.9.13 updates Impressum and Datenschutz, adds LA Webhosting and removes obsolete legal/shop boilerplate.
Version: 2.9.13
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: nuamao
License: GNU General Public License v2 or later
*/

/* Deliberately minimal: layout is stored in the blocks/theme.json and remains editable. */
html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
img { max-width: 100%; height: auto; }
:where(a, button, input, textarea, select):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* V2.9.3 – keep the certification/partner logo band inside the same
   constrained content width as the surrounding Olivenöl section. */
#olivenoel > .wp-block-columns.is-not-stacked-on-mobile {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
#olivenoel > .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column {
  min-width: 0;
}
#olivenoel > .wp-block-columns.is-not-stacked-on-mobile .wp-block-image {
  margin-left: auto;
  margin-right: auto;
}


/* V2.2 responsive guard rails. These only adapt layout at smaller viewports;
   desktop spacing and typography remain controlled by Gutenberg block settings. */
@media (max-width: 900px) {
  main.wp-block-group.alignfull > .wp-block-buttons {
    justify-content: center;
    margin-bottom: 2.5rem !important;
  }

  main.wp-block-group.alignfull > .wp-block-buttons + .wp-block-columns {
    column-gap: 2rem !important;
    row-gap: 1.5rem !important;
  }
}

@media (max-width: 781px) {
  main.wp-block-group.alignfull {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  main.wp-block-group.alignfull > .wp-block-buttons {
    gap: 0.55rem !important;
    margin-bottom: 2rem !important;
  }

  main.wp-block-group.alignfull > .wp-block-buttons .wp-block-button__link {
    padding: 0.5rem 0.7rem;
    font-size: 0.78rem;
  }

  /* Hero: normal Gutenberg stacking, but with a mobile-sized vertical rhythm. */
  main.wp-block-group.alignfull > .wp-block-buttons + .wp-block-columns {
    gap: 1.25rem !important;
    margin-bottom: 2.25rem !important;
  }

  main.wp-block-group.alignfull > .wp-block-buttons + .wp-block-columns .wp-block-spacer {
    height: 2.25rem !important;
  }

  /* Certification row: six logos stay compact and readable instead of overflowing. */
  #olivenoel > .wp-block-columns.is-not-stacked-on-mobile {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem !important;
    margin-bottom: 2.5rem !important;
  }

  #olivenoel > .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column {
    min-width: 0;
    flex-basis: auto !important;
  }

  #olivenoel > .wp-block-columns.is-not-stacked-on-mobile img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 64px;
    margin-inline: auto;
    object-fit: contain;
  }

  /* Product rows: Gutenberg stacks them; reduce only the mobile rhythm. */
  #olivenoel > .wp-block-columns:not(.is-not-stacked-on-mobile) {
    gap: 1.25rem !important;
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }

  /* Keep the two portraits side by side on phones, as in the original visual language. */
  #wir > .wp-block-group > .wp-block-columns {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 1rem !important;
  }

  #wir > .wp-block-group > .wp-block-columns > .wp-block-column {
    flex: 1 1 50% !important;
    min-width: 0;
  }

  #bestellen > .wp-block-columns,
  #kontakt > .wp-block-columns {
    gap: 1.25rem !important;
  }
}

@media (max-width: 480px) {
  main.wp-block-group.alignfull > .wp-block-buttons {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  main.wp-block-group.alignfull > .wp-block-buttons > .wp-block-button,
  main.wp-block-group.alignfull > .wp-block-buttons .wp-block-button__link {
    width: 100%;
  }

  #olivenoel > .wp-block-columns.is-not-stacked-on-mobile {
    gap: 0.75rem !important;
  }

  #olivenoel > .wp-block-columns.is-not-stacked-on-mobile img {
    max-height: 54px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}


/* V2.6 – one native Gutenberg navigation for homepage and content pages. */
.nuamao-main-navigation {
  --nuamao-nav-border: #090909;
  --nuamao-nav-color: #090909;
  --nuamao-nav-bg: #fff;
  --nuamao-nav-hover: #f2f2ef;
  --nuamao-nav-border-width: 1px;
  --nuamao-nav-radius: 0px;
  --nuamao-nav-pad-x: 0.78rem;
  --nuamao-nav-pad-y: 0.48rem;
  --nuamao-nav-gap: 0.8rem;
  font-family: var(--wp--preset--font-family--nuamao-sans);
  text-transform: uppercase;
}

/* V2.7.1: WordPress renders the desktop list inside responsive wrapper divs.
   Target the real top-level list instead of assuming it is a direct <nav> child. */
.nuamao-main-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
  gap: var(--nuamao-nav-gap) !important;
}

.nuamao-main-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item {
  border: var(--nuamao-nav-border-width) solid var(--nuamao-nav-border) !important;
  border-radius: var(--nuamao-nav-radius) !important;
  background: var(--nuamao-nav-bg) !important;
  color: var(--nuamao-nav-color) !important;
  overflow: visible;
}

.nuamao-main-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
  padding: var(--nuamao-nav-pad-y) var(--nuamao-nav-pad-x) !important;
  text-decoration: none;
  white-space: nowrap;
  color: inherit !important;
}

.nuamao-main-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item:hover,
.nuamao-main-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item:focus-within {
  background: var(--nuamao-nav-hover) !important;
}

.nuamao-main-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon {
  margin-left: -0.35rem;
  margin-right: 0.6rem;
  color: inherit;
}

.nuamao-main-navigation .wp-block-navigation__submenu-container {
  min-width: 15rem;
  padding: 0.3rem;
  background: #fff;
  border: 1px solid var(--nuamao-nav-border);
  text-transform: none;
}

.nuamao-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: 0.55rem 0.7rem;
  text-decoration: none;
}

.nuamao-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.nuamao-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
  text-decoration: underline;
}

@media (max-width: 781px) {
  .nuamao-main-navigation {
    width: 100%;
    justify-content: flex-end;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open {
    padding: 1.25rem 20px 2rem;
    background: #fff;
    color: #090909;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    align-items: stretch;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
    border: 0;
    border-bottom: 1px solid #C7C7C2;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    padding: 0.75rem 0;
    font-size: 1.05rem;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    min-width: 0;
    padding: 0 0 0.5rem 1rem;
    border: 0;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: 0.45rem 0;
    font-size: 0.95rem;
  }
}


/* V2.7 – quiet editorial deep links on the homepage. */
.nuamao-read-more {
  font-family: var(--wp--preset--font-family--nuamao-sans);
}
.nuamao-read-more a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 0.12em;
}
.nuamao-read-more a:hover,
.nuamao-read-more a:focus-visible {
  border-bottom-width: 2px;
}


/* V2.8 – optional Header-Logo + homepage slider. Both are disabled by default. */
.nuamao-header-row {
  display: flex;
  align-items: center;
  width: 100%;
  gap: var(--nuamao-logo-gap, 28px);
}
.nuamao-header-row--left { justify-content: space-between; }
.nuamao-header-row--left .nuamao-header-row__nav { flex: 1 1 auto; min-width: 0; }
.nuamao-header-row--left .nuamao-main-navigation { width: 100%; }
/* The navigation block's original bottom margin is moved to the wrapper in PHP,
   keeping sticky backgrounds compact while preserving the page's vertical rhythm. */
.nuamao-header-row .nuamao-main-navigation { margin-bottom: 0 !important; }
.nuamao-header-row--above { flex-direction: column; align-items: center; }
.nuamao-header-row--above .nuamao-header-row__nav { width: 100%; }
.nuamao-header-logo-link,
.nuamao-header-logo { display: inline-flex; flex: 0 0 auto; line-height: 0; }
.nuamao-header-logo-link { text-decoration: none; }
.nuamao-header-logo__image {
  display: block;
  width: min(var(--nuamao-logo-width, 150px), 34vw);
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* V2.8.1 – optional sticky main navigation. The backdrop is translucent while
   navigation text, logo and menu frames stay fully opaque. */
.nuamao-header-row--sticky {
  position: sticky;
  top: 0;
  z-index: 1000;
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
  background: rgba(255, 255, 255, var(--nuamao-sticky-alpha, 0.92));
  -webkit-backdrop-filter: blur(9px);
  backdrop-filter: blur(9px);
}
body.admin-bar .nuamao-header-row--sticky { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .nuamao-header-row--sticky { top: 46px; }
}

/* V2.9.1 – once the row is actually stuck, keep only the navigation visible.
   The normal page header still shows the configured logo before scrolling. */
.nuamao-header-row--sticky.is-stuck {
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}
.nuamao-header-row--sticky.is-stuck > .nuamao-header-logo-link,
.nuamao-header-row--sticky.is-stuck > .nuamao-header-logo {
  display: none !important;
}
.nuamao-header-row--sticky.is-stuck .nuamao-header-row__nav {
  width: 100%;
  flex: 1 1 100%;
}

.nuamao-home-slider {
  position: relative;
  width: 100% !important;
  height: var(--nuamao-slider-height, 520px);
  margin-top: clamp(1.5rem, 3vw, 3rem) !important;
  margin-bottom: clamp(1.5rem, 3vw, 3rem) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: hidden;
  background: #f2f2ef;
}
/* WordPress constrained-layout CSS assigns max-width to every direct child. The
   explicit modes below intentionally override that rule so the backend width
   choice actually changes the rendered slider. */
.nuamao-home-slider--wide {
  max-width: var(--wp--style--global--wide-size, 1240px) !important;
}
.nuamao-home-slider--content {
  max-width: var(--wp--style--global--content-size, 940px) !important;
}
.nuamao-home-slider--custom {
  max-width: var(--nuamao-slider-max, 1240px) !important;
}
.nuamao-home-slider__viewport,
.nuamao-home-slider__slide { position: absolute; inset: 0; }
.nuamao-home-slider__slide {
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--nuamao-slider-transition, 600ms) ease, visibility var(--nuamao-slider-transition, 600ms) ease;
}
.nuamao-home-slider__slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.nuamao-home-slider__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: var(--nuamao-slider-fit, cover);
}
.nuamao-home-slider__arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: 0;
  background: rgba(255,255,255,.82);
  color: #090909;
  font: 400 32px/38px Arial, Helvetica, sans-serif;
  cursor: pointer;
}
.nuamao-home-slider__arrow--prev { left: 16px; }
.nuamao-home-slider__arrow--next { right: 16px; }
.nuamao-home-slider__dots {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  padding: 7px 9px;
  background: rgba(255,255,255,.72);
}
.nuamao-home-slider__dot {
  width: 9px;
  height: 9px;
  min-width: 9px;
  padding: 0;
  border: 1px solid #090909;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}
.nuamao-home-slider__dot.is-active { background: #090909; }

@media (max-width: 781px) {
  .nuamao-header-logo__image { width: var(--nuamao-logo-mobile-width, 110px); }
  .nuamao-header-row--left { gap: min(var(--nuamao-logo-gap, 28px), 18px); }
  .nuamao-header-row--left .wp-block-navigation__responsive-container-open { margin-left: auto; }
  .nuamao-home-slider { height: var(--nuamao-slider-mobile-height, 390px); margin-block: 1.5rem; }
  .nuamao-home-slider__arrow { width: 38px; height: 38px; font-size: 28px; line-height: 34px; }
  .nuamao-home-slider__arrow--prev { left: 10px; }
  .nuamao-home-slider__arrow--next { right: 10px; }
  .nuamao-home-slider__dots { bottom: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .nuamao-home-slider__slide { transition: none; }
}


/* V2.9 – NUAMÃO / STUDIO editorial collaboration page. */
.nuamao-studio-page {
  --nuamao-studio-line: #C7C7C2;
  --nuamao-studio-muted: #76766f;
}
.nuamao-studio-kicker {
  margin-bottom: 0.65rem;
  font-family: var(--wp--preset--font-family--nuamao-sans);
  font-size: 0.76rem;
  line-height: 1.25;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.nuamao-studio-number {
  margin: 0 0 0.35rem;
  color: var(--nuamao-studio-line);
  font-family: var(--wp--preset--font-family--nuamao-serif);
  font-size: clamp(3.2rem, 8vw, 6.8rem);
  font-weight: 400;
  line-height: 0.9;
}
.nuamao-studio-hero-image img,
.nuamao-studio-project-image img {
  display: block;
  width: 100%;
  height: auto;
}
.nuamao-studio-hero-image img {
  max-height: 760px;
  object-fit: cover;
}
.nuamao-studio-statement {
  margin-top: 2.25rem;
  padding-left: 1.25rem;
  border-left: 1px solid var(--nuamao-studio-line);
  font-size: 1.15em;
}
.nuamao-studio-project--text {
  max-width: 940px;
}
.nuamao-studio-card {
  padding-top: 1.1rem;
  border-top: 1px solid var(--nuamao-studio-line);
}
.nuamao-studio-card h3 {
  margin-top: 0;
}
.nuamao-studio-open-call .wp-block-button__link {
  background: transparent;
}
@media (max-width: 900px) {
  .nuamao-studio-hero,
  .nuamao-studio-project > .wp-block-columns,
  .nuamao-studio-image-pair,
  .nuamao-studio-cards {
    flex-wrap: wrap !important;
  }
  .nuamao-studio-hero > .wp-block-column,
  .nuamao-studio-project > .wp-block-columns > .wp-block-column,
  .nuamao-studio-image-pair > .wp-block-column,
  .nuamao-studio-cards > .wp-block-column {
    flex-basis: 100% !important;
  }
  .nuamao-studio-hero {
    margin-bottom: 3.5rem !important;
  }
  .nuamao-studio-project,
  .nuamao-studio-manifest,
  .nuamao-studio-development {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }
}


/* V2.9.2 – iOS/mobile navigation overlay hardening.
   Mobile Safari can treat fixed descendants of a backdrop-filtered sticky
   element as if they were constrained by that header. On small screens the
   sticky row therefore drops the blur while the menu overlay itself gets an
   explicit viewport-sized fixed layer. */
@media (max-width: 781px) {
  .nuamao-header-row--sticky {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    z-index: 100000 !important;
    padding: max(1.25rem, env(safe-area-inset-top)) 20px max(2rem, env(safe-area-inset-bottom)) !important;
    background: #fff !important;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    width: 100% !important;
    max-width: 44rem;
    margin: 0 auto;
    padding-top: 4.25rem;
    align-items: stretch !important;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    width: 100% !important;
    gap: 0 !important;
    align-items: stretch !important;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
    width: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #c7c7c2 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
    width: 100%;
    padding: 1rem 0 !important;
    text-align: left;
    background: transparent !important;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .nuamao-main-navigation .wp-block-navigation__responsive-container-close {
    top: max(1.25rem, env(safe-area-inset-top));
    right: 20px;
  }
}

/* V2.9.4 – five minimal, selectable logo animations.
   These mirror the five NUAMÃO comparison variants and work with whichever
   Media Library logo is selected. The existing vector trace remains available
   as a deliberately stronger optional sixth mode. */
.nuamao-header-logo--animated {
  position: relative;
  will-change: opacity, transform, filter, clip-path;
}

/* 01 – Soft Fade */
.nuamao-header-logo--motion-fade {
  opacity: 0;
  animation: nuamao-logo-fade var(--nuamao-logo-motion-duration, 800ms) cubic-bezier(.22,.74,.18,1) var(--nuamao-logo-motion-delay, 100ms) forwards;
}

/* 02 – Fade + 4 px rise */
.nuamao-header-logo--motion-fade_up {
  opacity: 0;
  transform: translateY(4px);
  transform-origin: center;
  animation: nuamao-logo-fade-up var(--nuamao-logo-motion-duration, 900ms) cubic-bezier(.22,.74,.18,1) var(--nuamao-logo-motion-delay, 100ms) forwards;
}

/* 03 – Soft scale from 98.5% */
.nuamao-header-logo--motion-soft_scale {
  opacity: 0;
  transform: scale(.985);
  transform-origin: center;
  animation: nuamao-logo-soft-scale var(--nuamao-logo-motion-duration, 900ms) cubic-bezier(.22,.74,.18,1) var(--nuamao-logo-motion-delay, 100ms) forwards;
}

/* 04 – Quiet left-to-right reveal, without the previous tracing edge. */
.nuamao-header-logo--motion-soft_reveal {
  opacity: .72;
  clip-path: inset(0 100% 0 0);
  animation: nuamao-logo-soft-reveal var(--nuamao-logo-motion-duration, 950ms) cubic-bezier(.4,0,.2,1) var(--nuamao-logo-motion-delay, 100ms) forwards;
}

/* 05 – Minimal focus transition. */
.nuamao-header-logo--motion-soft_focus {
  opacity: 0;
  filter: blur(1.6px);
  animation: nuamao-logo-soft-focus var(--nuamao-logo-motion-duration, 950ms) cubic-bezier(.22,.74,.18,1) var(--nuamao-logo-motion-delay, 100ms) forwards;
}

.nuamao-header-logo--vector-animated {
  display: inline-flex;
}
.nuamao-header-logo__vector {
  display: block;
  width: var(--nuamao-logo-width, 150px);
  height: auto;
  overflow: visible;
  color: #090909;
}
.nuamao-logo-vector__ring,
.nuamao-logo-vector__mark {
  fill: currentColor;
  fill-opacity: 0;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}
.nuamao-logo-vector__ring {
  stroke-width: 1.5;
  animation:
    nuamao-vector-draw var(--nuamao-logo-ring-duration, 790ms) cubic-bezier(.4,0,.2,1) var(--nuamao-logo-motion-delay, 120ms) forwards,
    nuamao-vector-fill var(--nuamao-logo-ring-fill-duration, 310ms) ease-out var(--nuamao-logo-ring-fill-delay, 670ms) forwards;
}
.nuamao-logo-vector__mark {
  stroke-width: 1.15;
  animation:
    nuamao-vector-draw var(--nuamao-logo-mark-duration, 680ms) cubic-bezier(.4,0,.2,1) var(--nuamao-logo-mark-delay, 380ms) forwards,
    nuamao-vector-fill var(--nuamao-logo-mark-fill-duration, 330ms) ease-out var(--nuamao-logo-mark-fill-delay, 800ms) forwards;
}

.nuamao-hero-intro--animated {
  opacity: 0;
  transform: translateY(var(--nuamao-text-motion-distance, 14px));
  animation: nuamao-intro-rise var(--nuamao-text-motion-duration, 1100ms) cubic-bezier(.22,.74,.18,1) var(--nuamao-text-motion-delay, 420ms) forwards;
  will-change: opacity, transform;
}

@keyframes nuamao-logo-fade {
  to { opacity: 1; }
}
@keyframes nuamao-logo-fade-up {
  to { opacity: 1; transform: translateY(0); }
}
@keyframes nuamao-logo-soft-scale {
  to { opacity: 1; transform: scale(1); }
}
@keyframes nuamao-logo-soft-reveal {
  to { opacity: 1; clip-path: inset(0 0 0 0); }
}
@keyframes nuamao-logo-soft-focus {
  to { opacity: 1; filter: blur(0); }
}
@keyframes nuamao-vector-draw {
  from { stroke-dashoffset: 1; }
  to   { stroke-dashoffset: 0; }
}
@keyframes nuamao-vector-fill {
  from { fill-opacity: 0; }
  to   { fill-opacity: 1; }
}
@keyframes nuamao-intro-rise {
  from { opacity: 0; transform: translateY(var(--nuamao-text-motion-distance, 14px)); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 781px) {
  .nuamao-header-logo__vector {
    width: var(--nuamao-logo-mobile-width, 110px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .nuamao-header-logo--animated,
  .nuamao-header-logo--vector-animated,
  .nuamao-hero-intro--animated,
  .nuamao-logo-vector__ring,
  .nuamao-logo-vector__mark {
    animation: none !important;
  }
  .nuamao-header-logo--animated {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
  }
  .nuamao-logo-vector__ring,
  .nuamao-logo-vector__mark {
    fill-opacity: 1 !important;
    stroke-dashoffset: 0 !important;
  }
  .nuamao-hero-intro--animated {
    opacity: 1 !important;
    transform: none !important;
  }
}


/* V2.9.5 – active navigation state + global editable footer. */
.nuamao-main-navigation {
  --nuamao-nav-active-bg: #f2f2ef;
  --nuamao-nav-active-text: #090909;
}

/* Active-state selectors are emitted from the saved Design settings, so the feature can be switched off completely. */

.nuamao-site-footer {
  width: 100%;
  margin-top: clamp(3rem, 7vw, 6rem);
  padding: 0 clamp(18px, 2.8vw, 42px);
  font-family: var(--wp--preset--font-family--nuamao-sans);
}
.nuamao-site-footer__inner {
  width: 100%;
  max-width: var(--wp--style--global--wide-size, 1240px);
  margin: 0 auto;
  padding: 1.4rem 0 1.7rem;
  border-top: 1px solid #c7c7c2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2rem;
}
.nuamao-footer-navigation {
  margin: 0;
  text-transform: uppercase;
}
.nuamao-footer-navigation .wp-block-navigation__container {
  gap: .7rem 1.15rem;
}
.nuamao-footer-navigation .wp-block-navigation-item__content {
  padding: .15rem 0;
  color: #090909;
  text-decoration: none;
}
.nuamao-footer-navigation .wp-block-navigation-item__content:hover,
.nuamao-footer-navigation .wp-block-navigation-item__content:focus-visible,
.nuamao-footer-navigation .wp-block-navigation-item__content[aria-current="page"],
.nuamao-footer-navigation .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
  text-decoration: underline;
  text-underline-offset: .24em;
}
.nuamao-site-footer__copyright {
  flex: 0 0 auto;
  margin: 0;
  font-size: .78rem;
  line-height: 1.4;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
}

@media (max-width: 781px) {
  .nuamao-site-footer__inner {
    align-items: flex-start;
    flex-direction: column;
    padding-top: 1.25rem;
  }
  .nuamao-footer-navigation,
  .nuamao-footer-navigation .wp-block-navigation__container {
    width: 100%;
  }
  .nuamao-footer-navigation .wp-block-navigation__container {
    align-items: flex-start;
  }
}


/* V2.9.6 – robust active-page classes added by nuamao-active-nav.js.
   This does not rely on WordPress emitting aria-current/current-menu-item or on :has(). */
.nuamao-main-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item.nuamao-current-menu-item,
.nuamao-main-navigation .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item.nuamao-current-ancestor {
  background: var(--nuamao-nav-active-bg, #f2f2ef) !important;
  color: var(--nuamao-nav-active-text, #090909) !important;
}
.nuamao-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.nuamao-current-menu-item > .wp-block-navigation-item__content {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .22em;
}
.nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.nuamao-current-menu-item,
.nuamao-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.nuamao-current-ancestor {
  background: var(--nuamao-nav-active-bg, #f2f2ef) !important;
  color: var(--nuamao-nav-active-text, #090909) !important;
}


/* V2.9.12 – keep the same header/navigation geometry and typography on every
   page. Gutenberg page groups can carry their own inherited font weight and
   constrained width; neither should change the global NUAMÃO header. */
.nuamao-main-navigation {
  font-weight: 400;
  line-height: 1.2;
}
.nuamao-main-navigation .wp-block-navigation-item__content,
.nuamao-main-navigation .wp-block-navigation__submenu-icon {
  font-weight: 400;
  line-height: 1.2;
}

/* Preserve the intentionally stronger active item inside the Olivenöl submenu. */
.nuamao-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.nuamao-current-menu-item > .wp-block-navigation-item__content,
.nuamao-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.nuamao-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content[aria-current="page"] {
  font-weight: 700;
}

/* The custom header wrapper is inserted around a native alignwide Navigation.
   When that wrapper sits inside a 940px post-content container, WordPress does
   not always give a custom div the same alignwide breakout as a core block.
   These desktop rules reproduce the 1240px wide alignment independently of
   the page template, preventing the logo/menu from shifting between pages. */
@media (min-width: 782px) {
  .nuamao-header-row.alignwide {
    --nuamao-header-side-space: clamp(18px, 2.8vw, 42px);
    --nuamao-header-half-width: min(620px, calc(50vw - var(--nuamao-header-side-space)));
    width: min(1240px, calc(100vw - var(--nuamao-header-side-space) - var(--nuamao-header-side-space))) !important;
    max-width: none !important;
    margin-left: calc(50% - var(--nuamao-header-half-width)) !important;
    margin-right: calc(50% - var(--nuamao-header-half-width)) !important;
  }
}
