/* =========================================================
   OUIRGANE — styles du thème (front + éditeur)
   Couleurs, polices et tailles : theme.json
   ========================================================= */

:root {
  --o-ivory: var(--wp--preset--color--ivory);
  --o-limestone: var(--wp--preset--color--limestone);
  --o-sand: var(--wp--preset--color--sand);
  --o-palm: var(--wp--preset--color--palm);
  --o-palm-deep: #26312a;
  --o-ink: var(--wp--preset--color--ink);
  --o-ink-soft: var(--wp--preset--color--ink-soft);
  --o-gold: var(--wp--preset--color--gold);
  --o-gold-deep: var(--wp--preset--color--gold-deep);
  --o-night: var(--wp--preset--color--night);
  --o-white: var(--wp--preset--color--white);
  --o-line: rgb(42 35 28 / 0.14);
  --o-line-light: rgb(250 249 245 / 0.22);
  --o-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --o-header-h: 4.5rem;
  /* Marge latérale de la maquette : ≈ 92 px à 1440 px */
  --o-pad: clamp(1.25rem, 6.4vw, 6rem);
  /* Blocs éditoriaux presque bord à bord (offres, réalisations) */
  --o-wide-pad: max(clamp(1rem, 2.2vw, 2rem), calc((100vw - 100rem) / 2));
  --o-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='black' stroke-width='1.1'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4'/%3E%3C/svg%3E");
  --o-arrow-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16' fill='none' stroke='black' stroke-width='1.1'%3E%3Cpath d='M5 0v14.5M1 10.5l4 4 4-4'/%3E%3C/svg%3E");
  --o-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m7.8 12.3 2.8 2.8 5.6-6'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
html {
  scroll-padding-top: calc(var(--o-header-h) + 1rem);
}
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}
html body {
  /* Même valeur que theme.json (styles.spacing.padding) — garantit l'alignement logo / hero / sections */
  --wp--style--root--padding-left: var(--o-pad);
  --wp--style--root--padding-right: var(--o-pad);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
h1,
h2,
h3,
h4 {
  font-optical-sizing: auto;
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}
:focus-visible {
  outline: 2px solid var(--o-gold-deep);
  outline-offset: 3px;
}
/* Pas d'espacements automatiques entre les grandes zones */
.wp-site-blocks > *,
.o-main > *,
.o-main--home .wp-block-post-content > * {
  margin-block: 0;
}

.o-label {
  font-size: 0.6875rem !important;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  line-height: 1.5;
}
.o-eyebrow {
  color: var(--o-gold-deep);
}

/* Lien texte « Découvrir tous nos services → » */
.o-textlink a {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  padding-block: 0.6rem 0.5rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background: linear-gradient(currentColor, currentColor) 0 calc(100% - 0.2rem) / calc(100% - 1.75rem) 1px no-repeat;
  transition: background-size 0.4s var(--o-ease);
}
.o-textlink a::after {
  content: '';
  width: 14px;
  height: 9px;
  background: currentColor;
  -webkit-mask: var(--o-arrow) center / contain no-repeat;
  mask: var(--o-arrow) center / contain no-repeat;
  transition: transform 0.4s var(--o-ease);
}
.o-textlink a:hover {
  background-size: 35% 1px;
}
.o-textlink a:hover::after {
  transform: translateX(4px);
}

/* ---------- Boutons ---------- */
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-height: 3.25rem;
  white-space: nowrap;
  transition:
    background-color 0.45s var(--o-ease),
    color 0.45s var(--o-ease),
    border-color 0.45s var(--o-ease);
}
.o-btn-arrow .wp-block-button__link::after {
  content: '';
  flex: none;
  width: 14px;
  height: 9px;
  background: currentColor;
  -webkit-mask: var(--o-arrow) center / contain no-repeat;
  mask: var(--o-arrow) center / contain no-repeat;
  transition: transform 0.45s var(--o-ease);
}
.o-btn-arrow .wp-block-button__link:hover::after {
  transform: translateX(4px);
}
.wp-block-button.o-btn-secondary .wp-block-button__link {
  background: var(--o-white) !important;
  color: var(--o-ink) !important;
  border: 1px solid var(--o-ink) !important;
  padding: 1.05rem 1.75rem;
}
.wp-block-button.o-btn-secondary .wp-block-button__link:hover {
  background: var(--o-ink) !important;
  color: var(--o-white) !important;
}
.wp-block-button.o-btn-light .wp-block-button__link {
  background: var(--o-white);
  color: var(--o-palm);
  border-color: var(--o-white);
}
.wp-block-button.o-btn-light .wp-block-button__link:hover {
  background: var(--o-gold);
  border-color: var(--o-gold);
  color: var(--o-night);
}

/* ---------- En-tête ---------- */
.o-site-header {
  position: sticky;
  top: var(--wp-admin--admin-bar--height, 0px);
  z-index: 50;
}
.o-header {
  background: var(--o-ivory);
  transition:
    box-shadow 0.4s var(--o-ease),
    background-color 0.4s var(--o-ease);
}
.o-site-header.is-scrolled .o-header {
  background: rgb(245 240 232 / 0.95);
  box-shadow: 0 1px 0 var(--o-line);
}
.o-header__inner {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
  height: var(--o-header-h);
}
.o-logo {
  justify-self: start;
  margin: 0;
  font-variation-settings: 'opsz' 72;
  font-size: clamp(1.375rem, 1.1rem + 0.7vw, 1.75rem) !important;
}
.o-logo a {
  color: var(--o-ink);
}
.o-nav {
  justify-self: center;
}
.o-nav .wp-block-navigation__container {
  gap: clamp(1.5rem, 2.8vw, 3.25rem);
}
.o-nav .wp-block-navigation-item__content {
  position: relative;
  padding-block: 0.75rem;
  color: var(--o-ink);
}
.o-nav .wp-block-navigation__container .wp-block-navigation-item__content::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.45rem;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.45s var(--o-ease);
}
.o-nav .wp-block-navigation__container .wp-block-navigation-item__content:hover::after,
.o-nav .wp-block-navigation__container .wp-block-navigation-item__content[aria-current='page']::after {
  transform: scaleX(1);
  transform-origin: left;
}
/* Menu mobile plein écran */
.o-nav .wp-block-navigation__responsive-container-open svg,
.o-nav .wp-block-navigation__responsive-container-close svg {
  width: 28px;
  height: 28px;
}
.o-nav .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--o-ivory) !important;
  color: var(--o-ink) !important;
  padding: 1.5rem var(--o-pad) 2.5rem;
}
.o-nav .is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: 4rem !important;
}
.o-nav .is-menu-open .wp-block-navigation__container {
  gap: 0 !important;
  width: 100%;
  align-items: stretch !important;
}
.o-nav .is-menu-open .wp-block-navigation-item {
  width: 100%;
  border-bottom: 1px solid var(--o-line);
}
.o-nav .is-menu-open .wp-block-navigation-item__content {
  display: block;
  width: 100%;
  padding: 0.9rem 0 !important;
  font-family: var(--wp--preset--font-family--serif);
  font-size: clamp(1.625rem, 6vw, 2.25rem);
  font-weight: 350;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.2;
}
.o-nav .is-menu-open .wp-block-navigation-item__content[aria-current='page'] {
  color: var(--o-gold-deep);
}
.o-nav .is-menu-open .wp-block-navigation-item__content::after {
  display: none;
}
/* Le bloc Navigation passe en menu burger à 600 px : on étend ce mode jusqu'à 1023 px
   (à 768 px, les six liens ne tiennent pas sur une ligne à côté du logo). */
@media (max-width: 1023px) {
  .o-header__inner {
    grid-template-columns: 1fr auto;
  }
  .o-nav {
    justify-self: end;
  }
  .o-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
  .o-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }
  .o-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    display: flex !important;
  }
}
/* Cible tactile confortable pour le bouton burger */
.o-nav .wp-block-navigation__responsive-container-open,
.o-nav .wp-block-navigation__responsive-container-close {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}

/* ---------- Hero ---------- */
/* Proportions de la maquette : hero ≈ 36 % de la largeur (≈ 517 px à 1440 px) */
.o-hero.wp-block-cover {
  min-height: clamp(30rem, 36vw, 44rem) !important;
  padding: clamp(2.5rem, 4vw, 4rem) var(--o-pad) clamp(2rem, 3vw, 3rem) !important;
  align-items: center;
  color: var(--o-white);
}
/* Étalonnage chaud, plus proche de l'ambiance de la maquette */
.o-hero .wp-block-cover__image-background {
  filter: sepia(0.16) saturate(1.06) brightness(0.98);
}
.o-hero .wp-block-cover__inner-container {
  width: 100% !important;
  max-width: 88rem;
  margin-inline: auto !important;
}
.o-hero .wp-block-cover__inner-container > * {
  max-width: 46rem;
  margin-left: 0 !important;
}
/* Voile chaud à gauche pour la lisibilité, image intacte à droite */
.o-hero .wp-block-cover__background {
  opacity: 1 !important;
  background:
    linear-gradient(
      90deg,
      rgb(88 66 45 / 0.8) 0%,
      rgb(104 80 57 / 0.66) 28%,
      rgb(122 96 70 / 0.42) 48%,
      rgb(130 104 78 / 0.08) 70%,
      rgb(130 104 78 / 0) 82%
    ),
    linear-gradient(0deg, rgb(42 35 28 / 0.2), rgb(42 35 28 / 0) 32%),
    rgb(176 138 98 / 0.1) !important;
}
.o-hero__eyebrow {
  color: rgb(250 249 245 / 0.82);
  margin-bottom: clamp(1rem, 2vw, 1.5rem) !important;
}
.o-hero__title {
  margin-top: 0 !important;
  /* ≈ 51 px à 1440 px (maquette), 36 px minimum sur mobile */
  font-size: clamp(2.25rem, 0.9rem + 2.55vw, 3.5rem) !important;
  font-weight: 330;
  line-height: 1.04;
  letter-spacing: -0.018em;
  text-wrap: initial;
}
.o-hero__text {
  max-width: 25rem !important;
  margin-top: clamp(1rem, 1.6vw, 1.5rem) !important;
  font-size: clamp(1rem, 0.95rem + 0.15vw, 1.0625rem);
  line-height: 1.6;
  color: rgb(250 249 245 / 0.92);
}
.o-hero__ctas {
  gap: 0.75rem 1rem;
  margin-top: clamp(1.5rem, 2.4vw, 2.25rem) !important;
}
.o-hero__scroll {
  margin-top: clamp(1.75rem, 3vw, 2.75rem) !important;
}
.o-hero__scroll a {
  display: inline-flex;
  align-items: flex-end;
  gap: 0.75rem;
  padding: 0.5rem 1.5rem 0.1rem 0;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgb(250 249 245 / 0.85);
  background: linear-gradient(currentColor, currentColor) 1.35rem 100% / calc(100% - 1.35rem) 1px no-repeat;
}
.o-hero__scroll a::before {
  content: '';
  width: 9px;
  height: 22px;
  background: currentColor;
  -webkit-mask: var(--o-arrow-down) center / contain no-repeat;
  mask: var(--o-arrow-down) center / contain no-repeat;
}
@media (prefers-reduced-motion: no-preference) {
  .o-hero .wp-block-cover__inner-container > * {
    animation: o-hero-in 1.3s var(--o-ease) both;
  }
  .o-hero .wp-block-cover__inner-container > :nth-child(1) { animation-delay: 0.15s; }
  .o-hero .wp-block-cover__inner-container > :nth-child(2) { animation-delay: 0.3s; }
  .o-hero .wp-block-cover__inner-container > :nth-child(3) { animation-delay: 0.5s; }
  .o-hero .wp-block-cover__inner-container > :nth-child(4) { animation-delay: 0.65s; }
  .o-hero .wp-block-cover__inner-container > :nth-child(5) { animation-delay: 1s; }
  .o-hero .wp-block-cover__image-background {
    animation: o-hero-zoom 2.4s var(--o-ease) both;
  }
}
@keyframes o-hero-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
}
@keyframes o-hero-zoom {
  from {
    transform: scale(1.05);
  }
}
@media (max-width: 767px) {
  .o-hero.wp-block-cover {
    min-height: min(calc(100svh - var(--o-header-h)), 46rem) !important;
    align-items: flex-end;
    padding-bottom: 2.5rem;
  }
  .o-hero .wp-block-cover__background {
    background: linear-gradient(180deg, rgb(42 35 28 / 0.12) 0%, rgb(84 64 44 / 0.5) 26%, rgb(76 58 40 / 0.72) 52%, rgb(62 48 34 / 0.86) 100%) !important;
  }
  .o-hero__ctas {
    flex-direction: column;
    align-items: stretch !important;
  }
  .o-hero__ctas .wp-block-button,
  .o-hero__ctas .wp-block-button__link {
    width: 100%;
  }
}

/* ---------- Introduction ---------- */
.o-intro {
  column-gap: clamp(1.5rem, 3.5vw, 3.5rem) !important;
  /* Maquette : l'image affleure presque le hero et les offres */
  padding-block: clamp(1rem, 1.4vw, 1.5rem);
  margin-block: 0 !important;
}
.o-intro__title {
  margin-top: 1rem !important;
  /* 3 lignes de la maquette tenues jusqu'à 1024 px */
  font-size: clamp(1.75rem, 3vw, 2.75rem) !important;
  line-height: 1.12;
  text-wrap: initial;
}
.o-intro__body {
  max-width: 30rem;
  margin-top: 1.25rem !important;
  color: var(--o-ink-soft);
}
.o-rule::after {
  content: '';
  display: block;
  width: 1.75rem;
  height: 1px;
  margin-top: 1.25rem;
  background: var(--o-gold);
}
.o-intro .wp-block-image {
  margin: 0;
}
.o-intro__aside {
  font-size: 0.625rem !important;
  letter-spacing: 0.2em;
  line-height: 1.9;
}
.o-intro__aside::before {
  content: '';
  display: block;
  width: 1.75rem;
  height: 1px;
  margin-bottom: 0.9rem;
  background: var(--o-gold);
}
@media (max-width: 781px) {
  .o-intro {
    padding-block: clamp(2.5rem, 2rem + 2vw, 4rem);
    row-gap: 1.5rem;
  }
  /* Les <br> sont conservés : les masquer collait les mots (« entreun »). */
  .o-intro__title {
    font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.25rem) !important;
  }
}

/* ---------- Deux offres ---------- */
.o-offers {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.75rem, 1vw, 1rem);
  padding: clamp(0.5rem, 1vw, 1rem) var(--o-wide-pad) !important;
}
.o-offers > * {
  margin: 0 !important;
}
.o-offer {
  position: relative;
  overflow: hidden;
  min-height: clamp(17rem, 21vw, 21rem);
}
@media (min-width: 601px) {
  .o-offer.wp-block-media-text {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) !important;
  }
}
.o-offer .wp-block-media-text__content {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  padding: clamp(1.5rem, 2.2vw, 2.25rem) clamp(1.5rem, 2.4vw, 2.5rem) !important;
}
.o-offer .wp-block-media-text__content > * {
  margin: 0;
}
.o-offer__title {
  font-size: clamp(1.625rem, 1.2rem + 0.9vw, 2.125rem) !important;
  white-space: nowrap;
  line-height: 1.1;
}
.o-offer__text {
  max-width: 19rem;
  margin-top: 0.6rem !important;
  font-size: 0.9375rem;
  line-height: 1.55;
  opacity: 0.85;
}
.o-checklist {
  list-style: none;
  padding: 0;
  margin-top: clamp(1rem, 1.6vw, 1.5rem) !important;
  display: grid;
  gap: 0.55rem;
  font-size: 0.8125rem;
}
.o-checklist li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.o-checklist li::before {
  content: '';
  flex: none;
  width: 17px;
  height: 17px;
  background: currentColor;
  opacity: 0.85;
  -webkit-mask: var(--o-check) center / contain no-repeat;
  mask: var(--o-check) center / contain no-repeat;
}
.o-offer__cta {
  margin-top: auto !important;
  padding-top: clamp(1.25rem, 2vw, 1.75rem);
}
.o-offer__cta a {
  display: inline-flex;
  align-items: center;
  gap: 1.25rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.8;
  text-transform: uppercase;
}
.o-offer__cta a::before {
  content: '';
  flex: none;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: var(--o-arrow-ivory) center / 15px auto no-repeat;
  transition:
    background-color 0.45s var(--o-ease),
    border-color 0.45s var(--o-ease);
}
.o-offer--palm {
  --o-arrow-ivory: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23F5F0E8' stroke-width='1.1'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4'/%3E%3C/svg%3E");
}
.o-offer--sand {
  --o-arrow-ivory: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%232A231C' stroke-width='1.1'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4'/%3E%3C/svg%3E");
}
.o-offer:hover .o-offer__cta a::before {
  background-color: var(--o-gold);
  border-color: var(--o-gold);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%2317150F' stroke-width='1.1'%3E%3Cpath d='M0 5h14.5M10.5 1l4 4-4 4'/%3E%3C/svg%3E");
}
/* Toute la carte est cliquable */
.o-offer__cta a::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.o-offer__cta a:focus-visible {
  outline: none;
}
.o-offer__cta a:focus-visible::after {
  outline: 2px solid var(--o-gold);
  outline-offset: -4px;
}
.o-offer .wp-block-media-text__media img {
  transition: transform 1.2s var(--o-ease);
}
.o-offer:hover .wp-block-media-text__media img {
  transform: scale(1.04);
}
@media (max-width: 1023px) {
  .o-offers {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .o-offer .wp-block-media-text__media {
    aspect-ratio: 16 / 10;
    min-height: 0 !important;
  }
  .o-offer__title {
    white-space: normal;
  }
}

/* ---------- En-têtes de section ---------- */
.o-section-head {
  align-items: baseline !important;
  gap: 0.75rem 2rem;
}
.o-section-head > * {
  margin: 0 !important;
}
.o-section-title {
  font-size: clamp(1.75rem, 1.4rem + 1vw, 2.375rem) !important;
}

/* ---------- Six expertises ---------- */
.o-expertises {
  padding-block: clamp(1.5rem, 2.2vw, 2.25rem) clamp(1rem, 1.6vw, 1.75rem);
}
.o-exp-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-top: clamp(0.5rem, 1vw, 1rem) !important;
}
.o-exp {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  margin: 0 !important;
  padding: 1rem 0.75rem;
  text-align: center;
}
.o-exp + .o-exp::before {
  content: '';
  position: absolute;
  left: 0;
  top: 22%;
  height: 56%;
  width: 1px;
  background: var(--o-line);
}
.o-exp__icon {
  margin: 0 !important;
  transition: transform 0.6s var(--o-ease);
}
.o-exp:hover .o-exp__icon {
  transform: translateY(-4px);
}
.o-exp__label {
  margin: 0 !important;
  font-size: 0.9375rem;
  line-height: 1.45;
}
.o-exp__label a::after {
  content: '';
  position: absolute;
  inset: 0;
}
.o-exp:hover .o-exp__label a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
@media (max-width: 1023px) {
  .o-exp-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 0.5rem;
  }
  .o-exp:nth-child(3n + 1)::before {
    display: none;
  }
}
@media (max-width: 639px) {
  .o-exp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--o-line);
  }
  .o-exp {
    border-bottom: 1px solid var(--o-line);
    padding-inline: 0.4rem;
  }
  .o-exp__label {
    font-size: 0.875rem;
  }
  .o-exp::before {
    display: none;
  }
  .o-exp:nth-child(2n)::before {
    display: block;
    top: 15%;
    height: 70%;
  }
}

/* ---------- Réalisations ---------- */
.o-projects {
  background: #f8f4ee;
  padding: clamp(1.5rem, 2.2vw, 2.25rem) var(--o-wide-pad) 0 !important;
}
.o-projects > .o-section-head {
  padding-inline: max(0px, calc(var(--o-pad) - clamp(1rem, 2.2vw, 2rem)));
}
.o-projects__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 1.08fr);
  gap: clamp(0.75rem, 1vw, 1rem);
  align-items: start;
  margin-top: clamp(1rem, 2vw, 1.5rem) !important;
  padding-bottom: clamp(1rem, 1.5vw, 1.25rem);
}
.o-projects__grid > * {
  margin: 0 !important;
}
.o-project-grid {
  gap: clamp(0.75rem, 1vw, 1rem) !important;
}
.o-project-img {
  overflow: hidden;
  margin: 0 !important;
}
.o-project-img img {
  transition: transform 1.2s var(--o-ease);
}
.o-project-img:hover img {
  transform: scale(1.05);
}
.o-project-name {
  margin-top: 0.9rem !important;
  font-family: var(--wp--preset--font-family--sans) !important;
  font-size: 0.875rem !important;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.4;
}
.o-project-loc,
.o-project-loc p {
  margin: 0 !important;
  font-size: 0.8125rem;
  color: var(--o-ink-soft);
}
.o-projects__empty-img {
  margin: 0 !important;
}
/* Bandeau d'attente : même hauteur que les vignettes de la maquette (≈ 200 px à 1440 px) */
@media (min-width: 1024px) {
  .o-projects__empty-img img {
    aspect-ratio: 4.2 / 1 !important;
    object-position: 50% 42%;
  }
}
.o-projects__empty-caption {
  margin-top: 0.9rem !important;
  font-size: 0.875rem;
  color: var(--o-ink-soft);
}
.o-projects__empty-caption strong {
  display: inline-block;
  margin-right: 1.5rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--o-gold-deep);
}
.o-projects__panel {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.1rem;
  padding: clamp(1.5rem, 2.4vw, 2.25rem);
}
.o-projects__panel > * {
  margin: 0 !important;
}
.o-projects__panel-title {
  font-size: 0.75rem !important;
  letter-spacing: 0.22em;
  line-height: 1.9;
}
.o-projects__panel-text {
  max-width: 22rem;
  font-size: 0.875rem;
  line-height: 1.6;
  opacity: 0.85;
}
.o-projects__panel .wp-block-buttons {
  margin-top: 0.5rem !important;
}
@media (max-width: 1023px) {
  .o-projects__grid {
    grid-template-columns: 1fr;
    row-gap: 1.75rem;
  }
  .o-project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 639px) {
  .o-project-grid {
    grid-template-columns: 1fr !important;
  }
  .o-projects__empty-img img {
    aspect-ratio: 16 / 10 !important;
  }
  .o-projects__empty-caption strong {
    display: block;
    margin: 0 0 0.25rem;
  }
}

/* ---------- Appel à contact ---------- */
.o-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(120% 140% at 0% 0%, #efe6d8 0%, rgb(239 230 216 / 0) 55%),
    linear-gradient(100deg, var(--o-limestone) 0%, var(--o-sand) 100%);
  padding-block: clamp(2rem, 2.6vw, 2.75rem);
}
.o-cta__img {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: -1;
  width: 42%;
  max-width: none !important;
  margin: 0 !important;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 45%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 45%);
}
.o-cta__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 38%;
  /* Image temporaire ramenée dans la palette chaude */
  filter: saturate(0.28) sepia(0.2) brightness(1.04);
}
.o-cta__cols {
  margin-block: 0 !important;
  column-gap: clamp(1.5rem, 3vw, 3rem) !important;
}
.o-cta__title {
  margin-top: 0.5rem !important;
  font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.5rem) !important;
}
.o-cta__body {
  margin-top: 0.5rem !important;
  font-size: 0.9375rem;
  color: var(--o-ink-soft);
}
@media (max-width: 781px) {
  .o-cta {
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
  }
  .o-cta__cols {
    order: 1;
    padding-bottom: 2.5rem;
  }
  .o-cta__img {
    order: 2;
    position: relative;
    inset: auto;
    width: auto;
    height: 14rem;
    margin-inline: calc(var(--wp--style--root--padding-left, 1.25rem) * -1) !important;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 50%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 50%);
  }
}

/* ---------- Pages intérieures ---------- */
.o-page-hero {
  padding-block: clamp(3rem, 6vw, 6rem) clamp(2rem, 4vw, 3.5rem);
}
.o-page-hero > * {
  margin-block: 0;
}
.o-page-title {
  margin-top: 0.75rem !important;
  font-size: var(--wp--preset--font-size--display) !important;
}
.o-page-content,
.o-section,
.o-404 {
  padding-block: clamp(2.5rem, 2rem + 2vw, 4rem);
}
.o-stub .wp-block-buttons {
  margin-top: 1.75rem;
}

/* ---------- Pied de page ---------- */
.o-footer {
  padding-top: clamp(3.5rem, 2.5rem + 4vw, 6.5rem);
  color: rgb(245 240 232 / 0.78);
  font-size: 0.875rem;
}
.o-footer a {
  color: inherit;
  transition: color 0.3s var(--o-ease);
}
.o-footer a:hover {
  color: var(--o-gold);
}
.o-footer__top {
  gap: clamp(2rem, 4vw, 4rem) !important;
  padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem);
  margin-block: 0 !important;
}
.o-footer__logo {
  margin: 0;
  font-variation-settings: 'opsz' 72;
}
.o-footer__logo a,
.o-footer__logo {
  color: var(--o-ivory) !important;
}
.o-footer__about {
  max-width: 32ch;
  margin-top: 1.25rem !important;
  line-height: 1.7;
}
.o-footer__title {
  margin-bottom: 1.25rem !important;
  color: var(--o-gold);
}
.o-footer__list {
  list-style: none;
  padding: 0;
  margin: 0 !important;
  display: grid;
  gap: 0.25rem;
}
.o-footer__list a {
  display: inline-block;
  padding-block: 0.3rem;
}
.o-footer .o-textlink a {
  color: var(--o-ivory);
}
.o-footer__bottom {
  margin-block: 0 !important;
  padding-block: 1.5rem;
  border-top: 1px solid var(--o-line-light);
  font-size: 0.75rem;
  letter-spacing: 0.02em;
}
.o-footer__bottom p {
  margin: 0;
}
.o-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 2rem;
}
.o-footer__legal a {
  display: inline-block;
  padding-block: 0.4rem;
}

/* ---------- Apparitions au défilement ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js [data-o-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition:
      opacity 1s var(--o-ease),
      transform 1s var(--o-ease);
    transition-delay: var(--o-delay, 0ms);
  }
  .js [data-o-reveal].is-visible {
    opacity: 1;
    transform: none;
  }
}
