:root {
  --aeu-orange: #ff591d;
  --aeu-ink: #28342d;
  --aeu-mint: #b2d8b4;
  --aeu-cream: #f4f8f2;
  --aeu-pink: #fc9afb;
  --aeu-yellow: #f2dd60;
  --aeu-blue: #b8c8f6;
  --aeu-black: #182019;
  --aeu-brown: #2a201b;
  --aeu-blue-morning: #1d52e7;
  --aeu-green: #254527;
  --aeu-mono: "DM Mono", monospace;
  --aeu-sans: Inter, sans-serif;
  --aeu-header-h: 5.125rem;
  --aeu-header-inset: 14px;
  --aeu-gutter: clamp(1rem, 4vw, 4.25rem);
  --aeu-shell-width: 83rem;
  --aeu-grid-gap: 12px;
  --aeu-card-radius: 28px;
  --aeu-card-padding: 32px;
  --aeu-line: 1px solid var(--aeu-ink);
  --aeu-menu-font-size: 41.4px;
  --aeu-menu-font-size-mobile: 22px;
  --stk--preset--border-radius--small: 12px;
  --stk--preset--border-radius--medium: 28px;
  --stk--preset--border-radius--xx-large: 48px;
  --stk--preset--border-radius--full: 999px;
  --stk--preset--block-height--none: 0px;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  background: var(--aeu-cream);
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--aeu-cream);
  color: var(--aeu-ink);
  font-family: var(--aeu-sans);
  font-size: .95625rem;
  line-height: 1.55;
}

body.menu-open { overflow: hidden; }

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a { color: inherit; }

.aeu-main {
  position: relative;
  z-index: 1;
  background: var(--aeu-cream);
}

.aeu-front-main,
.aeu-page-main {
  padding-top: calc(var(--aeu-header-inset) + var(--aeu-header-h) + var(--aeu-grid-gap));
}

.aeu-front-main > :first-child,
.aeu-page-main > :first-child,
.aeu-front-main .entry-content > :first-child,
.aeu-page-main .entry-content > :first-child,
.aeu-front-main .wp-block-post-content > :first-child,
.aeu-page-main .wp-block-post-content > :first-child {
  margin-top: 0;
}

/* Header */
.aeu-header {
  position: fixed;
  z-index: 1000;
  inset: var(--aeu-header-inset) var(--aeu-gutter) auto;
  width: min(calc(100% - (var(--aeu-gutter) * 2)), var(--aeu-shell-width));
  height: var(--aeu-header-h);
  margin-inline: auto;
  overflow: hidden;
  border: var(--aeu-line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--aeu-cream) 88%, transparent);
  -webkit-backdrop-filter: blur(14px) saturate(130%);
  backdrop-filter: blur(14px) saturate(130%);
}

.aeu-header-inner {
  width: 100%;
  height: 100%;
  margin: auto;
  padding-inline: clamp(1rem, 2.2vw, 2rem);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  border-radius: inherit;
}

.aeu-brand {
  display: block;
  width: 3.65rem;
}

.aeu-brand img { width: 100%; }

.aeu-header-location {
  font-size: .855rem;
  text-align: center;
}

.aeu-menu-button {
  justify-self: end;
  width: 3.55rem;
  height: 3.55rem;
  padding: 0;
  border: 1px solid var(--aeu-ink);
  border-radius: 50%;
  background: var(--aeu-pink);
  display: grid;
  place-content: center;
  gap: .5rem;
  cursor: pointer;
  touch-action: manipulation;
  transition: transform .25s, background .25s;
}

.aeu-menu-button span {
  display: block;
  width: 1.55rem;
  height: 1px;
  background: var(--aeu-black);
  transform-origin: 50% 50%;
  transition: transform .3s;
}

.aeu-menu-button[aria-expanded="true"] span:first-child {
  transform: translateY(.275rem) rotate(45deg);
}

.aeu-menu-button[aria-expanded="true"] span:last-child {
  transform: translateY(-.275rem) rotate(-45deg);
}

/* Menu mosaïque. Les classes sont liées aux pages et non à leur ordre. */
.aeu-menu {
  position: fixed;
  z-index: 990;
  inset: 0;
  width: 100%;
  height: 100dvh;
  min-height: 100svh;
  padding: calc(var(--aeu-header-inset) + var(--aeu-header-h) + var(--aeu-grid-gap)) var(--aeu-grid-gap) var(--aeu-grid-gap);
  overflow-y: auto;
  visibility: hidden;
  pointer-events: none;
  background: var(--aeu-cream);
  transform: translateY(-102%);
  transition: transform .55s cubic-bezier(.75, 0, .18, 1), visibility 0s .55s;
}

.aeu-menu.is-open {
  visibility: visible;
  pointer-events: auto;
  transform: none;
  transition: transform .55s cubic-bezier(.75, 0, .18, 1), visibility 0s;
}

.aeu-mosaic-list {
  min-height: calc(100dvh - var(--aeu-header-inset) - var(--aeu-header-h) - (var(--aeu-grid-gap) * 2));
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(3, minmax(7rem, 1fr));
  grid-auto-rows: minmax(9rem, 1fr);
  grid-auto-flow: dense;
  gap: var(--aeu-grid-gap);
}

.aeu-mosaic-list li {
  min-width: 0;
  min-height: 0;
}

/* Desktop : Travaux prend la grande case d’Elisabeth, et inversement. */
.aeu-mosaic-list .aeu-menu-travaux {
  grid-column: 1 / span 2;
  grid-row: 1 / span 2;
}

.aeu-mosaic-list .aeu-menu-elisabeth {
  grid-column: 3;
  grid-row: 1;
}

.aeu-mosaic-list .aeu-menu-actualites {
  grid-column: 4;
  grid-row: 1;
}

.aeu-mosaic-list .aeu-menu-faq {
  grid-column: 3 / span 2;
  grid-row: 2;
}

.aeu-mosaic-list .aeu-menu-infos-pratiques {
  grid-column: 1 / span 2;
  grid-row: 3;
}

.aeu-mosaic-list .aeu-menu-inscription {
  grid-column: 3 / span 2;
  grid-row: 3;
}

.aeu-mosaic-list a {
  width: 100%;
  height: 100%;
  padding: clamp(1rem, 2.5vw, 2.5rem);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  border: 1px solid var(--aeu-ink);
  border-radius: var(--aeu-card-radius);
  background: var(--aeu-tile-color, #fff);
  color: var(--aeu-ink);
  font: 500 var(--aeu-menu-font-size)/1 var(--aeu-mono);
  letter-spacing: -.03em;
  overflow-wrap: anywhere;
  text-decoration: none;
  transition: transform .25s;
}

.aeu-mosaic-list .aeu-menu-travaux a {
  font-size: clamp(2rem, 4.5vw, 5.175rem);
}

.aeu-mosaic-list .aeu-menu-elisabeth a {
  align-items: flex-start;
  font-size: clamp(.8rem, .99vw, .9rem);
  letter-spacing: 0;
}

.aeu-mosaic-list .aeu-menu-actualites a,
.aeu-mosaic-list .aeu-menu-infos-pratiques a {
  color: var(--aeu-cream);
}

@media (hover: hover) and (pointer: fine) {
  .aeu-menu-button:hover { transform: rotate(6deg) scale(1.04); }
  .aeu-mosaic-list a:hover { transform: scale(.975); }
}

/* Châssis des pages Stackable. Les valeurs visuelles restent dans les blocs. */
.aeu-front-main > .wp-block-stackable-columns,
.aeu-page-main > .wp-block-stackable-columns {
  margin-block: 0;
}

.aeu-section,
.aeu-work-carousel-section,
.aeu-prices-grid {
  width: 100%;
  min-height: 0;
  margin-bottom: var(--aeu-grid-gap);
  scroll-margin-top: calc(var(--aeu-header-h) + var(--aeu-header-inset));
}

:where(.aeu-section, .aeu-work-carousel-section, .aeu-prices-grid) > .stk-row {
  width: min(calc(100% - (var(--aeu-gutter) * 2)), var(--aeu-shell-width));
  margin-inline: auto;
  gap: var(--aeu-grid-gap);
}

.aeu-section > .stk-row > .stk-column,
.aeu-work-carousel-section > .stk-row > .stk-column,
.aeu-prices-grid > .stk-row > .stk-column {
  min-width: 0;
}

.aeu-section-inner { width: 100%; }

/* Typographie de secours. Les règles uniques générées par Stackable priment. */
.aeu-kicker .stk-block-text__text {
  margin: 0 0 1rem;
  color: var(--aeu-ink);
  font: 400 .73125rem/1.2 var(--aeu-sans);
  letter-spacing: 0;
  text-transform: none;
}

.aeu-display .stk-block-heading__text {
  margin: 0 0 clamp(1.5rem, 4vw, 3rem);
  color: var(--aeu-ink);
  font-family: var(--aeu-mono);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.03em;
}

.aeu-tech-name .stk-block-heading__text { letter-spacing: -.025em; }

.aeu-lead .stk-block-text__text {
  max-width: 38rem;
  color: var(--aeu-ink);
}

.aeu-kicker + .aeu-display,
.aeu-kicker + .stk-block-heading,
.aeu-display + .aeu-lead,
.stk-block-heading + .stk-block-text {
  margin-top: 0;
}

.aeu-button .stk-button-group { justify-content: flex-start; }

.aeu-button .stk-button {
  border: 1px solid var(--aeu-ink);
  box-shadow: none;
}

.aeu-secondary-link .stk-button,
.aeu-secondary-link .stk-button:hover {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.aeu-secondary-link .stk-button__inner-text {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .24em;
}

.aeu-parallax { translate: 0 var(--aeu-parallax-y, 0); }

.aeu-js .aeu-reveal {
  opacity: 0;
  transform: translateY(2.5rem);
  transition: opacity .8s, transform .8s cubic-bezier(.2, .75, .25, 1);
}

.aeu-js .aeu-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Accueil — hero */
.aeu-hero > .stk-row > .aeu-hero-inner {
  min-height: calc(100svh - var(--aeu-header-h) - var(--aeu-header-inset) - (var(--aeu-grid-gap) * 2));
  display: grid;
  place-items: center;
}

.aeu-hero-inner > .stk-column-wrapper > .stk-block-content {
  width: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.aeu-hero-logo {
  width: 100%;
  max-width: 31.25rem;
  margin-inline: auto;
}

.aeu-hero-logo figure,
.aeu-hero-logo .stk-img-wrapper {
  width: 100%;
  margin: 0;
}

.aeu-hero-logo img {
  width: 100%;
  height: auto;
}

.aeu-hero-place .stk-block-text__text {
  margin: .3rem 0;
  color: var(--aeu-pink);
  text-align: center;
}

/* Paires texte / média. La carte texte détermine la hauteur de la ligne. */
.aeu-place > .stk-row,
.aeu-approach > .stk-row,
.aeu-elisabeth > .stk-row,
.aeu-two-col > .stk-row {
  align-items: stretch;
}

.aeu-place > .stk-row > .stk-column,
.aeu-approach > .stk-row > .stk-column,
.aeu-elisabeth > .stk-row > .stk-column,
.aeu-two-col > .stk-row > .stk-column {
  height: auto;
  align-self: stretch;
}

.aeu-place-copy > .stk-column-wrapper > .stk-block-content,
.aeu-approach-copy > .stk-column-wrapper > .stk-block-content,
.aeu-elisabeth-copy > .stk-column-wrapper > .stk-block-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.aeu-place-media,
.aeu-approach-media,
.aeu-elisabeth-media,
.aeu-two-col > .stk-row > .stk-column:has(.aeu-portrait) {
  min-width: 0;
  padding: 0;
  overflow: hidden;
}

@media (min-width: 1024px) {
  .aeu-place-media,
  .aeu-approach-media,
  .aeu-elisabeth-media,
  .aeu-two-col > .stk-row > .stk-column:has(.aeu-portrait) {
    position: relative;
  }

  .aeu-place-media > .stk-column-wrapper,
  .aeu-approach-media > .stk-column-wrapper,
  .aeu-elisabeth-media > .stk-column-wrapper,
  .aeu-two-col > .stk-row > .stk-column:has(.aeu-portrait) > .stk-column-wrapper {
    position: absolute;
    inset: 0;
  }
}

.aeu-approach-media > .stk-column-wrapper,
.aeu-approach-media > .stk-column-wrapper > .stk-block-content,
.aeu-elisabeth-media > .stk-column-wrapper,
.aeu-elisabeth-media > .stk-column-wrapper > .stk-block-content,
.aeu-two-col > .stk-row > .stk-column:has(.aeu-portrait) > .stk-column-wrapper,
.aeu-two-col > .stk-row > .stk-column:has(.aeu-portrait) > .stk-column-wrapper > .stk-block-content,
.aeu-feature-work,
.aeu-feature-work figure,
.aeu-feature-work .stk-img-wrapper,
.aeu-portrait,
.aeu-portrait figure,
.aeu-portrait .stk-img-wrapper {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: none;
  max-height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.aeu-feature-work img,
.aeu-portrait img {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: none;
  max-height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

/* Carrousel du lieu : hauteur égale à la carte texte, sans bande blanche. */
.aeu-place-media > .stk-column-wrapper,
.aeu-place-media > .stk-column-wrapper > .stk-block-content,
.aeu-place-media .aeu-place-carousel,
.aeu-place-media .stk-block-carousel__content-wrapper,
.aeu-place-media .stk-block-carousel__slider,
.aeu-place-media .aeu-place-slide,
.aeu-place-media .aeu-place-slide > .stk-column-wrapper,
.aeu-place-media .aeu-place-slide > .stk-column-wrapper > .stk-block-content,
.aeu-place-media .aeu-place-slide-image,
.aeu-place-media .aeu-place-slide-image figure,
.aeu-place-media .aeu-place-slide-image .stk-img-wrapper {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
}

.aeu-place-media .aeu-place-carousel {
  position: relative;
  overflow: hidden;
}

.aeu-place-media .aeu-place-slide-image img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
  object-position: center;
}

.aeu-place-carousel .stk-block-carousel__dots {
  position: absolute;
  z-index: 8;
  left: 50%;
  bottom: 14px;
  margin: 0;
  transform: translateX(-50%);
}

.aeu-place-carousel .stk-block-carousel__dot::before { background: #b0b0b0; }

.aeu-place-carousel .stk-block-carousel__dot.stk-block-carousel__dot--active::before {
  width: 24px;
  background: var(--aeu-black);
}

/* Techniques */
.aeu-tech-cloud { background: var(--aeu-pink); }

.aeu-tech-cloud > .stk-column-wrapper > .stk-block-content {
  min-height: clamp(31rem, 58vw, 48rem);
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(6, 1fr);
  align-items: center;
}

.aeu-tech-name {
  width: max-content;
  max-width: 100%;
  translate: var(--aeu-tech-parallax-x, 0) var(--aeu-tech-parallax-y, 0);
  transition: translate 90ms linear;
  will-change: translate;
}

.aeu-tech-name .stk-block-heading__text {
  margin: 0;
  white-space: nowrap;
}

.aeu-tech-name:nth-child(1) { grid-area: 1 / 1 / 2 / 6; transform: rotate(-7deg); }
.aeu-tech-name:nth-child(2) { grid-area: 1 / 8 / 2 / 13; transform: rotate(5deg); }
.aeu-tech-name:nth-child(3) { grid-area: 3 / 2 / 4 / 6; transform: rotate(7deg); }
.aeu-tech-name:nth-child(4) { grid-area: 2 / 6 / 3 / 11; transform: rotate(-3deg); }
.aeu-tech-name:nth-child(5) { grid-area: 4 / 8 / 5 / 13; transform: rotate(8deg); }
.aeu-tech-name:nth-child(6) { grid-area: 5 / 1 / 6 / 7; transform: rotate(-4deg); }
.aeu-tech-name:nth-child(7) { grid-area: 6 / 7 / 7 / 12; transform: rotate(4deg); }
.aeu-tech-name:nth-child(8) { grid-area: 4 / 3 / 5 / 8; transform: rotate(-9deg); }

.aeu-tech-name:nth-child(1) .stk-block-heading__text,
.aeu-tech-name:nth-child(6) .stk-block-heading__text { color: var(--aeu-orange); }
.aeu-tech-name:nth-child(2) .stk-block-heading__text { color: var(--aeu-blue-morning); }
.aeu-tech-name:nth-child(3) .stk-block-heading__text,
.aeu-tech-name:nth-child(7) .stk-block-heading__text { color: var(--aeu-yellow); }
.aeu-tech-name:nth-child(4) .stk-block-heading__text,
.aeu-tech-name:nth-child(5) .stk-block-heading__text { color: var(--aeu-cream); }
.aeu-tech-name:nth-child(8) .stk-block-heading__text { color: var(--aeu-mint); }

/* Cours d’essai */
.aeu-trial-inner {
  position: relative;
  width: 100%;
  min-height: min(44rem, calc(100svh - var(--aeu-header-h) - var(--aeu-header-inset) - (var(--aeu-grid-gap) * 2)));
  background: var(--aeu-mint);
}

.aeu-trial-inner > .stk-column-wrapper > .stk-block-content {
  position: relative;
  min-height: inherit;
}

.aeu-trial-ring {
  position: absolute;
  z-index: 2;
  inset: 0 auto auto 50%;
  width: min(47.5rem, 88vw);
  transform: translateX(-50%);
}

.aeu-trial-ring figure,
.aeu-trial-ring .stk-img-wrapper,
.aeu-trial-ring img,
.aeu-trial-star figure,
.aeu-trial-star .stk-img-wrapper,
.aeu-trial-star img {
  width: 100%;
  height: auto;
  margin: 0;
}

.aeu-trial-star {
  position: absolute;
  z-index: 1;
  top: clamp(9rem, 16vw, 11.5rem);
  left: 50%;
  width: min(22rem, 44vw);
  transform: translateX(-50%);
}

.aeu-trial-star img {
  transform-origin: 50% 50%;
  animation: aeu-star-spin 16s linear infinite;
}

.aeu-trial-button {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 0;
  margin: 0;
  white-space: nowrap;
  transform: translateX(-50%);
}

@keyframes aeu-star-spin { to { transform: rotate(360deg); } }

/* Travaux — le carrousel Stackable natif n’est pas remplacé. */
.aeu-works-head > .stk-row > .stk-column > .stk-column-wrapper > .stk-block-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(8px, 1vw, 16px);
}

.aeu-works-head .aeu-display,
.aeu-works-head .aeu-gallery-hint {
  width: auto;
  max-width: none;
  margin-inline: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.aeu-works-head .aeu-gallery-hint { margin-top: 4px; }

.aeu-gallery-hint .stk-block-text__text,
.aeu-work-caption .stk-block-text__text { font-family: var(--aeu-mono); }

.aeu-carousel-shell,
.aeu-stackable-carousel {
  width: 100%;
  min-width: 0;
}

.aeu-carousel-shell { padding: 0; }

.aeu-carousel-slide > .stk-column-wrapper > .stk-block-content {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.aeu-carousel-image {
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.aeu-carousel-image figure,
.aeu-carousel-image .stk-img-wrapper {
  width: 100%;
  height: auto;
  margin: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.aeu-carousel-image img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100svh - 12rem);
  object-fit: contain;
  object-position: center;
  transform: none;
  border: var(--aeu-line);
  border-radius: var(--aeu-card-radius);
}

.aeu-work-caption .stk-block-text__text {
  margin: .8rem .25rem 0;
  color: var(--aeu-ink);
}

.aeu-work-carousel .stk-block-carousel__dots {
  justify-content: center;
  margin-top: 1rem;
}

.aeu-work-carousel .stk-block-carousel__button {
  border: 0;
  background: transparent;
  box-shadow: none;
}

/* Tarifs */
.aeu-price-card { min-height: 22rem; }

.aeu-price-card h3 {
  margin-top: 0;
  letter-spacing: -.015em;
}

.aeu-price-card p { margin-bottom: 0; }

.aeu-price-intro,
.aeu-price-intro::before { background: var(--aeu-cream); }

/* Pages secondaires */
.aeu-page-hero > .stk-row > .stk-column > .stk-column-wrapper > .stk-block-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: clamp(12px, 1.5vw, 22px);
}

.aeu-page-hero .aeu-display,
.aeu-page-hero .aeu-lead {
  width: 100%;
  max-width: 48rem;
  margin-inline: 0;
  padding: 0;
}

.aeu-faq-grid > .stk-row {
  max-width: min(calc(100% - (var(--aeu-gutter) * 2)), 64rem);
  align-items: start;
}

.aeu-faq-card {
  width: 100%;
  min-height: 0;
  transition: background-color .35s, transform .35s;
}

.aeu-faq-card:has(details[open]) { transform: translateX(.5rem); }

.aeu-faq-details {
  height: auto;
  overflow: visible;
  transition: height .45s cubic-bezier(.22, .75, .24, 1);
}

.aeu-faq-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  list-style: none;
  font-family: var(--aeu-mono);
  font-size: clamp(.945rem, 1.53vw, 1.215rem);
  font-weight: 500;
  line-height: 1.3;
  cursor: pointer;
}

.aeu-faq-details summary::-webkit-details-marker { display: none; }

.aeu-faq-details summary::after {
  content: "+";
  flex: 0 0 auto;
  width: 2.2rem;
  height: 2.2rem;
  border: var(--aeu-line);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font: 400 1.35rem/1 var(--aeu-mono);
  transition: transform .35s, background .35s;
}

.aeu-faq-details[open] summary::after {
  content: "−";
  background: var(--aeu-cream);
  transform: rotate(180deg);
}

.aeu-faq-details p {
  max-width: 52rem;
  margin: 1.35rem 0 0;
}

.aeu-info-simple-section > .stk-row {
  width: min(calc(100% - (var(--aeu-gutter) * 2)), var(--aeu-shell-width));
}

.aeu-info-simple {
  width: 100%;
  max-width: none;
}

.aeu-info-simple h2 {
  margin-top: 0;
  letter-spacing: -.015em;
}

.aeu-news-image figure,
.aeu-news-image .stk-img-wrapper {
  width: 100%;
  margin: 0;
}

.aeu-news-image img {
  width: 100%;
  height: auto;
  border-radius: var(--aeu-card-radius);
}

/* Actualités WordPress et articles */
.aeu-posts-hero,
.aeu-posts-grid,
.aeu-post-pagination,
.aeu-single-post,
.aeu-archive,
.aeu-404 {
  width: min(calc(100% - (var(--aeu-gutter) * 2)), var(--aeu-shell-width));
  margin-inline: auto;
}

.aeu-posts-hero > div,
.aeu-post-card,
.aeu-single-post,
.aeu-archive,
.aeu-404 {
  padding: var(--aeu-card-padding);
  border: var(--aeu-line);
  border-radius: var(--aeu-card-radius);
  background: var(--aeu-cream);
}

.aeu-posts-hero h1,
.aeu-single-post h1,
.aeu-archive h1 {
  margin: 1rem 0;
  font-family: var(--aeu-mono);
  font-weight: 500;
  font-size: clamp(2.7rem, 5.85vw, 5.85rem);
  line-height: .95;
  letter-spacing: -.03em;
}

.aeu-posts-grid {
  padding: var(--aeu-grid-gap) 0;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--aeu-grid-gap);
}

.aeu-post-card {
  grid-column: span 5;
  margin: 0;
}

.aeu-post-card:nth-child(even) { grid-column: span 7; }

.aeu-post-image {
  display: block;
  overflow: hidden;
  border-radius: var(--aeu-card-radius);
}

.aeu-post-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.aeu-post-date,
.aeu-post-more {
  font-family: var(--aeu-mono);
  font-size: .78rem;
}

.aeu-post-card h2 {
  font-family: var(--aeu-mono);
  font-weight: 500;
  font-size: clamp(1.44rem, 2.7vw, 2.43rem);
  line-height: 1.05;
  letter-spacing: -.025em;
}

.aeu-post-card h2 a,
.aeu-footer-bottom a { text-decoration: none; }

.aeu-single-post,
.aeu-archive,
.aeu-404 { margin-bottom: var(--aeu-grid-gap); }

.aeu-single-image {
  width: 100%;
  margin: 2rem 0;
  border-radius: var(--aeu-card-radius);
}

.aeu-single-content > * + * { margin-top: 1.2em; }

.aeu-post-pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: .5rem;
  padding: 0 0 var(--aeu-grid-gap);
}

.aeu-post-pagination a,
.aeu-post-pagination span {
  min-width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  border: var(--aeu-line);
  border-radius: 50%;
}

.aeu-post-pagination .current { background: var(--aeu-orange); }

/* Footer */
.aeu-footer {
  position: relative;
  z-index: 2;
  padding: 0 var(--aeu-gutter) var(--aeu-gutter);
  overflow: hidden;
  background: var(--aeu-cream);
  color: var(--aeu-cream);
}

.aeu-footer-stage,
.aeu-footer-bottom {
  width: min(100%, var(--aeu-shell-width));
  margin-inline: auto;
  border: var(--aeu-line);
  border-radius: var(--aeu-card-radius);
}

.aeu-footer-stage {
  padding: clamp(4rem, 8vw, 7rem) var(--aeu-card-padding);
  overflow: hidden;
  background: var(--aeu-ink);
}

.aeu-footer-content {
  position: relative;
  max-width: 60rem;
  margin-inline: auto;
  text-align: center;
}

.aeu-footer-content .aeu-kicker {
  color: var(--aeu-cream);
  font-family: var(--aeu-mono);
  font-size: .73125rem;
  letter-spacing: 0;
  text-transform: none;
}

.aeu-footer-content h2 {
  margin: 1rem 0 2.5rem;
  color: var(--aeu-cream);
  font: 500 clamp(2.7rem, 5.4vw, 4.95rem)/.95 var(--aeu-mono);
  letter-spacing: -.03em;
}

.aeu-footer-actions,
.aeu-footer-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.aeu-footer-actions { gap: .8rem; }

.aeu-footer-actions a {
  display: inline-block;
  padding: 1rem 1.25rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  background: var(--aeu-cream);
  color: var(--aeu-black);
  font: .81rem var(--aeu-mono);
  text-decoration: none;
}

.aeu-footer-links {
  gap: clamp(1rem, 3vw, 2.5rem);
  margin-top: 2rem;
  font: .738rem var(--aeu-mono);
}

.aeu-footer-links a { text-underline-offset: .3em; }

.aeu-footer-bee {
  width: min(26rem, 58vw);
  margin: clamp(3rem, 7vw, 6rem) auto 0;
}

.aeu-footer-bee img {
  width: 100%;
  height: auto;
}

.aeu-footer-bottom {
  min-height: 6rem;
  margin-top: var(--aeu-grid-gap);
  padding: 1rem clamp(1rem, 2.5vw, 2rem);
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  gap: 2rem;
  align-items: center;
  background: var(--aeu-cream);
  color: var(--aeu-ink);
  font-size: .738rem;
}

.aeu-footer-bottom img {
  width: 3.7rem;
  height: auto;
}

/* 404 */
.aeu-404 {
  min-height: calc(100svh - var(--aeu-header-h) - var(--aeu-header-inset) - (var(--aeu-grid-gap) * 2));
  display: grid;
  grid-template-columns: minmax(14rem, .8fr) minmax(0, 1.2fr);
  gap: clamp(2rem, 8vw, 8rem);
  align-items: center;
  background: var(--aeu-mint);
  overflow: hidden;
}

.aeu-404-visual {
  position: relative;
  display: grid;
  place-items: center;
}

.aeu-404-visual::before {
  content: "404";
  position: absolute;
  color: var(--aeu-pink);
  opacity: .72;
  font: 500 clamp(7.2rem, 21.6vw, 21.6rem)/1 var(--aeu-mono);
  letter-spacing: -.03em;
}

.aeu-404-visual img {
  position: relative;
  z-index: 1;
  width: min(26rem, 80%);
}

.aeu-404-copy {
  position: relative;
  z-index: 2;
  max-width: 42rem;
}

.aeu-404-copy h1 {
  margin: .5rem 0 1.5rem;
  font: 500 clamp(2.7rem, 6.3vw, 6.3rem)/.95 var(--aeu-mono);
  letter-spacing: -.03em;
}

.aeu-inline-button {
  display: inline-flex;
  margin-top: 1rem;
  padding: .95rem 1.3rem;
  border: var(--aeu-line);
  border-radius: 999px;
  background: var(--aeu-orange);
  font: 400 .828rem var(--aeu-mono);
  text-decoration: none;
}

@media (max-width: 800px) {
  :root {
    --aeu-header-h: 4.8rem;
    --aeu-header-inset: 8px;
    --aeu-gutter: .65rem;
    --aeu-grid-gap: 10px;
    --aeu-card-radius: 20px;
    --aeu-card-padding: 20px;
  }

  body { font-size: 1.0625rem; }

  .aeu-header {
    inset-inline: .65rem;
    width: calc(100% - 1.3rem);
  }

  .aeu-header-inner {
    grid-template-columns: 1fr auto 1fr;
    padding-inline: .75rem;
  }

  .aeu-header-location {
    display: block;
    font-size: clamp(.65rem, 2.6vw, .82rem);
    white-space: nowrap;
  }

  .aeu-faq-details summary {
    font-size: clamp(1.05rem, 1.7vw, 1.35rem);
  }

  .aeu-posts-hero h1,
  .aeu-single-post h1,
  .aeu-archive h1 {
    font-size: clamp(3rem, 6.5vw, 6.5rem);
  }

  .aeu-post-card h2 {
    font-size: clamp(1.6rem, 3vw, 2.7rem);
  }

  .aeu-brand { width: 3.4rem; }

  .aeu-menu-button {
    width: 3.25rem;
    height: 3.25rem;
  }

  .aeu-mosaic-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(6, minmax(5rem, 1fr));
  }

  /* Mobile inchangé : l’ordre visuel d’origine est conservé. */
  .aeu-mosaic-list .aeu-menu-elisabeth {
    grid-column: 3 / span 2;
    grid-row: 1 / span 2;
  }

  .aeu-mosaic-list .aeu-menu-travaux {
    grid-column: 1 / span 2;
    grid-row: 1 / span 3;
  }

  .aeu-mosaic-list .aeu-menu-actualites {
    grid-column: 3 / span 2;
    grid-row: 3;
  }

  .aeu-mosaic-list .aeu-menu-faq {
    grid-column: 1;
    grid-row: 4 / span 2;
  }

  .aeu-mosaic-list .aeu-menu-infos-pratiques {
    grid-column: 1 / span 4;
    grid-row: 6;
  }

  .aeu-mosaic-list .aeu-menu-inscription {
    grid-column: 2 / span 3;
    grid-row: 4 / span 2;
  }

  .aeu-mosaic-list a,
  .aeu-mosaic-list .aeu-menu-elisabeth a,
  .aeu-mosaic-list .aeu-menu-travaux a {
    padding: .8rem;
    align-items: flex-end;
    border-radius: 1rem;
    font-size: var(--aeu-menu-font-size-mobile);
    letter-spacing: -.03em;
  }

  .aeu-mosaic-list .aeu-menu-travaux a {
    font-size: clamp(1.8rem, 9vw, 3rem);
  }

  :where(.aeu-section, .aeu-work-carousel-section, .aeu-prices-grid) > .stk-row,
  .aeu-posts-hero,
  .aeu-posts-grid,
  .aeu-post-pagination,
  .aeu-single-post,
  .aeu-archive,
  .aeu-404 {
    width: calc(100% - 1.3rem);
  }

  .aeu-approach-media { order: 1; }
  .aeu-approach-copy { order: 2; }

  .aeu-place-media,
  .aeu-place-media .aeu-place-carousel,
  .aeu-approach-media,
  .aeu-elisabeth-media,
  .aeu-two-col > .stk-row > .stk-column:has(.aeu-portrait) {
    width: 100%;
    height: min(72svh, 38rem);
    min-height: 24rem;
    max-height: calc(100svh - 20px);
  }

  .aeu-feature-work,
  .aeu-feature-work figure,
  .aeu-feature-work .stk-img-wrapper,
  .aeu-feature-work img,
  .aeu-portrait,
  .aeu-portrait figure,
  .aeu-portrait .stk-img-wrapper,
  .aeu-portrait img {
    width: 100%;
    height: 100%;
  }

  .aeu-tech-cloud > .stk-column-wrapper > .stk-block-content { min-height: 32rem; }
  .aeu-trial-inner { min-height: 33rem; }
  .aeu-trial-ring { width: min(32.5rem, 92vw); }

  .aeu-trial-star {
    top: clamp(7rem, 25vw, 9.5rem);
    width: min(14rem, 47vw);
  }

  .aeu-trial-button { bottom: .25rem; }
  .aeu-carousel-image img { max-height: calc(100svh - 10rem); }

  .aeu-posts-grid { grid-template-columns: 1fr; }

  .aeu-price-card { min-height: 0; }
  .aeu-faq-card:has(details[open]) { transform: none; }

  .aeu-post-card,
  .aeu-post-card:nth-child(even) { grid-column: 1; }

  .aeu-footer { padding: 0 .65rem .65rem; }

  .aeu-footer-bottom {
    grid-template-columns: 1fr;
    gap: .7rem;
    text-align: center;
  }

  .aeu-footer-bottom img { margin-inline: auto; }

  .aeu-404 {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .aeu-404-visual img { width: min(17rem, 58vw); }

  .aeu-404-copy,
  .aeu-404-copy p { margin-inline: auto; }
}

@media (max-width: 480px) {
  .aeu-footer-content h2 { font-size: clamp(3.2rem, 17vw, 5.5rem); }
}

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

  .aeu-menu,
  .aeu-faq-details,
  .aeu-faq-details summary::after,
  .aeu-faq-card { transition: none; }

  .aeu-js .aeu-reveal {
    opacity: 1;
    transform: none;
  }

  .aeu-trial-star img { animation: none; }

  .aeu-tech-name {
    translate: 0 0;
    transition: none;
    will-change: auto;
  }
}

/* L’éditeur de blocs garde le même châssis sans le header fixe. */
.editor-styles-wrapper .aeu-front-main,
.editor-styles-wrapper .aeu-page-main,
.block-editor-block-list__layout.aeu-front-main,
.block-editor-block-list__layout.aeu-page-main {
  padding-top: 0;
}
