/*
Theme Name: Pat2Chat
Theme URI: https://pat2chat.fr
Author: Patrick et Aurore
Description: Thème WordPress personnalisé du site Pat’2 Chat’.
Version: 1.3.33
Requires at least: 7.1
Requires PHP: 8.3
Text Domain: pat2chat
*/

/* --- Portail Ton histoire illustrée --- */
.story-hub-page { overflow: hidden; }
.story-hub-page .wp-block-group__inner-container { display: contents; }
.story-hub-hero { position: relative; display: grid; min-height: clamp(32rem, 68vh, 48rem); place-items: center; overflow: hidden; background: radial-gradient(circle at 15% 20%, rgba(232,161,38,.22), transparent 26%), radial-gradient(circle at 86% 78%, rgba(79,127,131,.2), transparent 30%), #fffaf5; }
.story-hub-hero::before,
.story-hub-hero::after { position: absolute; width: 22rem; height: 22rem; border: 2px solid rgba(79,127,131,.13); border-radius: 50%; content: ""; }
.story-hub-hero::before { top: -11rem; right: -7rem; }
.story-hub-hero::after { bottom: -15rem; left: -8rem; }
.story-hub-hero-inner { position: relative; z-index: 1; max-width: 66rem; text-align: center; }
.story-hub-hero h1 { max-width: 12ch; margin: .55rem auto 1.5rem; font-size: clamp(3.4rem, 8vw, 7.5rem); line-height: .88; letter-spacing: -.07em; }
.story-hub-lead { max-width: 49rem; margin-inline: auto; color: var(--muted); font-size: clamp(1.08rem, 1.8vw, 1.3rem); line-height: 1.75; }
.story-hub-scroll { margin-top: 2rem; }
.story-hub-scroll a { color: var(--sea); font-weight: 800; text-decoration: none; }
.story-hub-scroll a:hover { text-decoration: underline; text-underline-offset: .3rem; }
.story-hub-heading { max-width: 52rem; margin: 0 auto clamp(2.5rem, 6vw, 5rem); text-align: center; }
.story-hub-heading h2 { margin: .45rem 0 1rem; font-size: clamp(2.5rem, 5vw, 4.8rem); line-height: .95; letter-spacing: -.055em; }
.story-hub-heading > p:last-child { color: var(--muted); font-size: 1.07rem; }
.story-hub-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.2rem, 3vw, 2.5rem); }
.story-hub-card { display: flex; min-width: 0; overflow: hidden; flex-direction: column; border: 1px solid var(--line); border-radius: 2rem; background: var(--white); box-shadow: 0 1.2rem 3.2rem rgba(73,52,38,.1); }
.story-hub-card-media { margin: 0; overflow: hidden; background: #efe7df; }
.story-hub-card-media a { display: block; }
.story-hub-card-media img { display: block; width: 100%; aspect-ratio: 10 / 7; object-fit: cover; transition: transform .45s ease; }
.story-hub-card:hover .story-hub-card-media img { transform: scale(1.025); }
.story-hub-card-copy { display: flex; height: 100%; padding: clamp(1.5rem, 3.5vw, 2.8rem); flex-direction: column; align-items: flex-start; }
.story-hub-card-copy h2 { margin: .35rem 0 1rem; font-size: clamp(2.5rem, 4.5vw, 4.5rem); line-height: .92; letter-spacing: -.06em; }
.story-hub-card-copy > p:not(.eyebrow) { color: var(--muted); line-height: 1.75; }
.story-hub-best-for { margin-top: .3rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.story-hub-best-for strong { color: var(--ink); }
.story-hub-card-copy .wp-block-buttons { margin-top: auto; padding-top: 1.5rem; }
.story-hub-card-copy .wp-block-button__link,
.story-hub-cta .wp-block-button__link { display: inline-flex; min-height: 3.2rem; padding: .7rem 1.25rem; align-items: center; border: 2px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--white); font-weight: 800; text-decoration: none; transition: transform 160ms ease, box-shadow 160ms ease; }
.story-hub-card-copy .wp-block-button__link:hover,
.story-hub-cta .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 .65rem 1.4rem rgba(47,41,39,.18); }
.story-hub-card-find { background: var(--ink); color: var(--white); }
.story-hub-card-find .eyebrow { color: var(--sun); }
.story-hub-card-find h2 { color: var(--white); }
.story-hub-card-find .story-hub-card-copy > p:not(.eyebrow) { color: rgba(255,255,255,.72); }
.story-hub-card-find .story-hub-best-for { border-color: rgba(255,255,255,.16); }
.story-hub-card-find .story-hub-best-for strong { color: var(--white); }
.story-hub-card-find .wp-block-button__link { border-color: var(--sun); background: var(--sun); color: var(--ink); }
.story-hub-cta { background: var(--sea); color: var(--white); }
.story-hub-cta-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: clamp(2rem, 7vw, 7rem); }
.story-hub-cta .eyebrow { color: #d8eeee; }
.story-hub-cta h2 { max-width: 15ch; margin: .4rem 0 1rem; color: var(--white); font-size: clamp(2.3rem, 4vw, 4rem); line-height: .98; letter-spacing: -.05em; }
.story-hub-cta p:not(.eyebrow) { max-width: 46rem; color: rgba(255,255,255,.78); }
.story-hub-cta .wp-block-button__link { border-color: var(--white); background: var(--white); color: var(--ink); white-space: nowrap; }

@media (max-width: 840px) {
  .story-hub-grid,
  .story-hub-cta-inner { grid-template-columns: 1fr; }
  .story-hub-cta .wp-block-buttons { justify-content: flex-start; }
}

@media (max-width: 620px) {
  .story-hub-hero { min-height: 34rem; }
  .story-hub-hero h1 { font-size: clamp(3.2rem, 16vw, 5rem); }
  .story-hub-card { border-radius: 1.4rem; }
  .story-hub-card-copy .wp-block-button,
  .story-hub-card-copy .wp-block-button__link,
  .story-hub-cta .wp-block-button,
  .story-hub-cta .wp-block-button__link { width: 100%; text-align: center; }
  .story-hub-card-copy .wp-block-button__link,
  .story-hub-cta .wp-block-button__link { justify-content: center; }
}

.request-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, .8fr); gap: 2rem; align-items: start; }
.request-page .request-selection { background: #fff; border: 1px solid #e6d8c8; border-radius: 24px; padding: 2rem; margin-bottom: 2rem; }
.request-selection-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.request-selection-heading h2 { margin: .4rem 0; }
.request-selection-heading .button { flex-shrink: 0; background: #a95400; color: #fff; border: 2px solid #a95400; border-radius: 999px; padding: .85rem 1.25rem; font: inherit; font-weight: 700; cursor: pointer; }
.request-selection-heading .button:hover { background: #874300; }
.request-selection-heading .button:focus-visible { outline: 3px solid #365f62; outline-offset: 4px; }
.request-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid #eee2d5; }
.request-item a { font-weight: 700; }
.request-item small { display: block; color: var(--muted); margin-top: .35rem; }
.request-item > strong { white-space: nowrap; }
.request-page [data-request-totals] { padding: .5rem 0; }
.request-page .request-artist .contact-portrait { height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.request-marine-art { margin: 1.5rem 0 0; border-radius: 0; background: transparent; overflow: visible; }
.request-marine-art img { display: block; width: 100%; height: auto; object-fit: contain; }
.request-page .request-steps { font-size: .95rem; color: var(--teal, #365f62); }
.request-page .request-form { margin-top: 2rem; }
.request-page .request-form .wpforms-field[data-field-id="3"] { display: none; }
@media (max-width: 900px) {
  .request-layout { grid-template-columns: 1fr; }
  .request-page .request-artist { max-width: 480px; margin: 0 auto; }
  .request-marine-art { margin-inline: 0; }
  .request-page .request-selection { padding: 1.25rem; }
  .request-selection-heading .button { width: 100%; text-align: center; }
}
.contact-heading { max-width: 760px; margin: 0 auto 3rem; text-align: center; }
.contact-heading h1 { font-size: clamp(2.3rem, 5vw, 4.2rem); line-height: 1.1; margin: .6rem 0 1.2rem; }
.contact-heading > p:last-child { color: var(--muted); font-size: 1.1rem; line-height: 1.8; }
.contact-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 2.5rem; align-items: start; }
.contact-intro { background: var(--cream); border-radius: 24px; overflow: hidden; }
.contact-art-panel { position: relative; min-height: 390px; overflow: hidden; background: linear-gradient(145deg, #f5eadc 0%, #f8f2ea 70%); }
.contact-portrait { width: 100%; height: 390px; object-fit: contain; object-position: center center; display: block; padding: .8rem 1.5rem 0; }
.contact-chat-accent { position: absolute; width: 112px; height: 158px; object-fit: contain; right: .8rem; bottom: -1.6rem; transform: rotate(7deg); filter: drop-shadow(0 9px 9px #2f29271c); }
.contact-intro-copy { padding: 2rem; }
.contact-intro-copy h2 { margin: .6rem 0 1rem; }
.contact-intro-copy p { line-height: 1.8; }
.contact-signature { color: var(--sea); font-weight: 600; }
.contact-form-card { background: #fff; padding: clamp(1.3rem, 3vw, 3rem); border: 1px solid var(--cream); border-radius: 24px; box-shadow: 0 12px 45px #2f292708; }
.contact-form-card h2 { margin-top: 0; }
.contact-form-lead, .contact-privacy { color: var(--muted); font-size: .9rem; line-height: 1.6; }
.contact-privacy { border-top: 1px solid var(--cream); padding-top: 1.4rem; margin-top: 1.8rem; }
.contact-form-card div.wpforms-container { margin: 1.6rem 0; }
.contact-form-card div.wpforms-container .wpforms-field { padding: 0 0 1.4rem; }
.contact-form-card div.wpforms-container .wpforms-field-label { color: var(--ink); font-size: .96rem; margin-bottom: .65rem; }
.contact-form-card div.wpforms-container input[type=text],
.contact-form-card div.wpforms-container input[type=email],
.contact-form-card div.wpforms-container textarea { width: 100%; max-width: 100%; background: var(--paper); border: 1px solid #d8cec4; border-radius: 10px; color: var(--ink); font: inherit; padding: .85rem 1rem; min-height: 48px; box-shadow: none; }
.contact-form-card div.wpforms-container textarea { min-height: 180px; resize: vertical; }
.contact-form-card div.wpforms-container input:focus,
.contact-form-card div.wpforms-container textarea:focus { outline: 2px solid var(--sea); outline-offset: 2px; }
.contact-form-card div.wpforms-container button[type=submit] { background: var(--ink); color: #fff; border: 0; border-radius: 999px; padding: 1rem 1.8rem; height: auto; font: inherit; font-weight: 700; cursor: pointer; box-shadow: none; }
.contact-form-card div.wpforms-container button[type=submit]:hover { background: var(--sea); }
.contact-form-card .wpforms-confirmation-container-full { background: var(--cream); color: var(--ink); border: 1px solid var(--sea); border-radius: 14px; padding: 1.5rem; }
.contact-postcard { width: 100%; box-sizing: border-box; margin: 1.5rem 0 0; padding: 0 1rem 1rem; }
.contact-postcard img { display: block; width: 100%; height: auto; border: 1px solid var(--cream); border-radius: 18px; box-shadow: 0 12px 35px #2f29270d; }
@media (max-width: 760px) {
  .contact-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .contact-art-panel { min-height: 300px; }
  .contact-portrait { height: 300px; padding-inline: .6rem; }
  .contact-chat-accent { width: 88px; height: 125px; right: .35rem; bottom: -1.1rem; }
  .contact-heading { margin-bottom: 2rem; }
  .contact-postcard { margin-top: 1.5rem; }
}

:root {
  color-scheme: light;
  --ink: #2f2927;
  --muted: #746965;
  --paper: #fffaf5;
  --cream: #f6ecdf;
  --sun: #e8a126;
  --sun-dark: #b96b12;
  --sea: #4f7f83;
  --white: #fff;
  --line: rgba(47, 41, 39, 0.13);
  --shadow: 0 1.2rem 3rem rgba(87, 56, 38, 0.11);
  --radius: 1.5rem;
  font-family: Avenir, "Avenir Next", Montserrat, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
}

body.admin-bar .site-header { top: 32px; }

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

a { color: inherit; }

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.screen-reader-text:focus {
  z-index: 100000;
  top: 0.5rem;
  left: 0.5rem;
  width: auto;
  height: auto;
  padding: 0.75rem 1rem;
  clip: auto;
  background: var(--white);
}

.site-shell {
  width: min(75rem, calc(100% - 2rem));
  margin-inline: auto;
}

.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 250, 245, 0.96);
  backdrop-filter: blur(12px);
}

.announcement-bar {
  position: relative;
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem;
  align-items: center;
  min-height: 2.35rem;
  padding-inline: max(0.25rem, calc((100vw - 75rem) / 2));
  background: #355f63;
  color: var(--white);
}

.announcement-slides { text-align: center; }

.announcement-slide {
  margin: 0;
  font-size: clamp(0.68rem, 1.5vw, 0.79rem);
  font-weight: 700;
  letter-spacing: 0.055em;
}

.announcement-arrow {
  display: grid;
  min-width: 2rem;
  min-height: 2rem;
  padding: 0;
  place-items: center;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-size: 1.15rem;
}

.header-main {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 6.25rem;
  gap: 2rem;
}

.header-signature {
  margin: 0;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.site-branding { text-align: center; }

.site-branding a {
  display: inline-flex;
  align-items: center;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  font-weight: 700;
  letter-spacing: -0.045em;
  text-decoration: none;
}

.custom-logo,
.site-logo {
  width: auto;
  max-height: 4.8rem;
}

.site-logo-link { line-height: 0; }

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
}

.header-contact {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.header-contact:hover { color: var(--sun-dark); }

.menu-toggle {
  display: none;
  width: 2.8rem;
  height: 2.8rem;
  padding: 0;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  cursor: pointer;
  font-size: 1.2rem;
}

.menu-toggle-line {
  display: block;
  width: 1.15rem;
  height: 2px;
  margin: 0.12rem auto;
  border-radius: 999px;
  background: currentColor;
}

.header-navigation {
  border-top: 1px solid var(--line);
  background: rgba(255, 250, 245, 0.75);
}

.header-navigation nav {
  position: relative;
  display: flex;
  justify-content: center;
}

.header-social-links {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.header-social-link {
  display: grid;
  width: 2.55rem;
  height: 2.55rem;
  place-items: center;
  border: 1px solid rgba(79, 127, 131, 0.2);
  border-radius: 50%;
  background: rgba(246, 236, 223, 0.72);
  color: #355f63;
  transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}

.header-social-link:hover,
.header-social-link:focus-visible {
  transform: translateY(-2px) scale(1.04);
  background: #f2ddc2;
  color: var(--sun-dark);
}

.header-social-link svg {
  width: 1.35rem;
  height: 1.35rem;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
}

.header-social-link .instagram-classic-icon {
  fill: currentColor;
  stroke: none;
}

.header-social-link .instagram-classic-icon {
  width: 1.5rem;
  height: 1.5rem;
}

.header-social-link .facebook-icon {
  fill: currentColor;
  stroke: none;
}

.site-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 3vw, 2.35rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-menu li { position: relative; }

.header-navigation .site-menu { gap: clamp(.7rem, 1.6vw, 1.5rem); }
.header-navigation .site-menu > li { flex-shrink: 0; }
.header-navigation .site-menu > li > a { white-space: nowrap; font-size: .7rem; letter-spacing: .035em; }
.header-navigation .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: .4em;
  height: .4em;
  margin-left: .65em;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  vertical-align: .2em;
  transform: rotate(45deg);
  transition: transform 160ms ease;
}
@media (min-width: 1200px) {
  .header-navigation .menu-item-has-children:hover > a::after,
  .header-navigation .menu-item-has-children:focus-within > a::after {
    transform: rotate(225deg);
    vertical-align: 0;
  }
}
.header-navigation .site-menu > li:last-child > .sub-menu { left: auto; right: 0; transform: translateY(.4rem); }
.header-navigation .site-menu > li:last-child:hover > .sub-menu,
.header-navigation .site-menu > li:last-child:focus-within > .sub-menu { transform: translateY(0); }
.footer-contact { display: inline-block; margin-top: .5rem; color: var(--white); }
.site-footer .site-menu { flex-wrap: wrap; }

/* Le menu replié prend le relais avant que les longs libellés débordent. */
@media (min-width: 801px) and (max-width: 1199px) {
  .menu-toggle { display: grid; }
  .header-navigation { display: none; }
  .header-navigation.is-open { display: block; }
  .header-navigation .site-menu { flex-direction: column; gap: 0; }
  .header-navigation .site-menu .sub-menu { position: static; visibility: visible; opacity: 1; transform: none; border: 0; box-shadow: none; }
}

.site-menu a {
  display: block;
  padding: 0.82rem 0;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.065em;
  text-decoration: none;
  text-transform: uppercase;
}

.site-menu a:hover,
.site-menu .current-menu-item > a { color: var(--sun-dark); }

.site-menu .sub-menu {
  position: absolute;
  z-index: 10;
  top: calc(100% - 0.15rem);
  left: 50%;
  visibility: hidden;
  min-width: 14rem;
  margin: 0;
  padding: 0.65rem 1rem;
  transform: translate(-50%, 0.4rem);
  border: 1px solid var(--line);
  border-radius: 0.8rem;
  background: var(--paper);
  box-shadow: var(--shadow);
  opacity: 0;
  list-style: none;
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.site-menu li:hover > .sub-menu,
.site-menu li:focus-within > .sub-menu {
  visibility: visible;
  transform: translate(-50%, 0);
  opacity: 1;
}

.site-menu .sub-menu a {
  padding: 0.55rem 0;
  text-align: left;
}

main { min-height: 65vh; }

.hero {
  position: relative;
  overflow: hidden;
  background: var(--cream);
}

.hero-slide,
.hero-content-wrap {
  min-height: clamp(37rem, 70vh, 48rem);
}

.hero-slide {
  position: relative;
  isolation: isolate;
}

.hero-slide[hidden] { display: none; }

/* Les scènes restent entières, quelle que soit la proportion de l’écran. */
.hero-carousel .hero-slide {
  min-height: 0;
  height: auto;
  aspect-ratio: 1672 / 941;
}

.hero-carousel .hero-media img {
  display: block;
  object-fit: contain;
}

.hero-carousel .hero-controls {
  position: relative;
  inset: auto;
  transform: none;
  width: max-content;
  margin: .8rem auto;
}

.hero-media,
.hero-media::after {
  position: absolute;
  inset: 0;
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-media::after {
  content: "";
  background: linear-gradient(0deg, rgba(47, 41, 39, 0.08), transparent 28%);
}

.hero-media-placeholder {
  background:
    radial-gradient(circle at 72% 38%, rgba(232, 161, 38, 0.55), transparent 24%),
    radial-gradient(circle at 84% 70%, rgba(79, 127, 131, 0.45), transparent 28%),
    linear-gradient(135deg, #f8e8d6, #f5d7ad);
}

.hero-content-wrap {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  padding-block: clamp(3.5rem, 8vw, 6.5rem);
}

.hero-content {
  width: min(35rem, 100%);
  padding: clamp(1.7rem, 4vw, 3rem);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 1.75rem;
  background: rgba(255, 250, 245, 0.91);
  box-shadow: 0 1.5rem 4rem rgba(47, 41, 39, 0.14);
  backdrop-filter: blur(10px);
}

.eyebrow {
  margin: 0 0 0.8rem;
  color: var(--sun-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.hero h1,
.hero h2,
.archive-header h1,
.single-creation h1 {
  margin: 0;
  font-size: clamp(2.55rem, 6vw, 5rem);
  line-height: 0.96;
  letter-spacing: -0.055em;
}

.hero-copy {
  max-width: 42rem;
  margin: 1.5rem 0 2rem;
  color: var(--muted);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
}

.hero-controls {
  position: absolute;
  z-index: 3;
  right: max(1rem, calc((100% - 75rem) / 2));
  bottom: 1.4rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 999px;
  background: rgba(255, 250, 245, 0.88);
  box-shadow: 0 0.7rem 2rem rgba(47, 41, 39, 0.12);
  backdrop-filter: blur(10px);
}

.hero-arrow {
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: 1.25rem;
}

.hero-arrow:hover { background: var(--cream); }

.hero-dots {
  display: flex;
  align-items: center;
  gap: 0.42rem;
}

.hero-dot {
  width: 0.55rem;
  height: 0.55rem;
  padding: 0;
  border: 1px solid var(--ink);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}

.hero-dot[aria-current="true"] { background: var(--ink); }

.hero-slide.is-active .hero-media img { animation: hero-image-in 700ms ease both; }
.hero-slide.is-active .hero-content { animation: hero-content-in 520ms ease 80ms both; }

@keyframes hero-image-in {
  from { opacity: 0.7; }
  to { opacity: 1; }
}

@keyframes hero-content-in {
  from { transform: translateY(0.75rem); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.2rem;
  padding: 0.7rem 1.25rem;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--ink);
  color: var(--white);
  font-weight: 800;
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.button:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.65rem 1.4rem rgba(47, 41, 39, 0.18);
}

.button-secondary { background: transparent; color: var(--ink); }

.section { padding: clamp(4rem, 8vw, 7rem) 0; }
.section-alt { background: var(--cream); }

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.section-heading h2 {
  max-width: 17ch;
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.05;
  letter-spacing: -0.05em;
}

.text-link { color: var(--sun-dark); font-weight: 800; }

.creation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.1rem, 3vw, 2rem);
}

.creation-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 0.5rem 1.5rem rgba(87, 56, 38, 0.05);
}

.creation-card > a { display: block; text-decoration: none; }

.creation-card-image {
  position: relative;
  display: grid;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--cream);
  place-items: center;
}

.creation-card-image .artwork-frame {
  width: min(75%, 23rem);
  max-height: 88%;
}

.creation-card-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity 360ms ease, transform 450ms ease;
}

.creation-card:hover .creation-card-artwork { transform: scale(1.012); }

.creation-card-hover {
  position: absolute;
  inset: 0;
  z-index: 2;
  object-fit: cover !important;
  opacity: 0;
  transform: scale(1.025);
}

@media (hover: hover) and (pointer: fine) {
  .creation-card:hover .creation-card-hover,
  .creation-card:focus-within .creation-card-hover {
    opacity: 1;
    transform: scale(1);
  }
}

.artwork-frame {
  position: relative;
  display: block;
  padding: clamp(8px, 2.1vw, 18px);
  background: #b9824c;
  box-shadow: 0 0.8rem 1.8rem rgba(63, 43, 31, 0.2), inset 0 0 0 1px rgba(0, 0, 0, 0.16);
}

.artwork-frame::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0.22);
  content: '';
  pointer-events: none;
}

.artwork-frame > img { display: block; background: #fff; }

.frame-white {
  background: #fbfaf7;
  box-shadow: 0 0.8rem 1.8rem rgba(63, 43, 31, 0.17), inset 0 0 0 1px rgba(69, 61, 54, 0.18);
}

.frame-black { background: linear-gradient(135deg, #111, #353332 48%, #090909); }

.frame-wood {
  background:
    repeating-linear-gradient(102deg, rgba(255, 255, 255, 0.08) 0 2px, transparent 2px 11px),
    linear-gradient(135deg, #8f5a2d, #d5a263 48%, #9f6836);
}

.creation-card-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: var(--muted);
}

.creation-card-body { padding: 1.15rem 1.25rem 1.35rem; }
.creation-card h2,
.creation-card h3 { margin: 0; font-size: 1.2rem; line-height: 1.25; }

.creation-card-meta {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.65rem;
  color: var(--muted);
  font-size: 0.9rem;
}

.creation-price { color: var(--sun-dark); font-weight: 800; }

.about-preview-section {
  padding-block: clamp(3rem, 6vw, 5rem);
  background: var(--paper);
}

.about-preview {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(22rem, 1.08fr);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 2rem;
  background:
    radial-gradient(circle at 8% 12%, rgba(232, 161, 38, 0.14), transparent 18rem),
    var(--cream);
  box-shadow: var(--shadow);
}

.about-preview-copy {
  align-self: center;
  padding: clamp(2rem, 5vw, 4.5rem);
  color: var(--ink);
}

.about-preview-copy .eyebrow { color: var(--sun-dark); }

.about-preview-copy h2 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(2.3rem, 4vw, 4rem);
  line-height: 1.02;
  letter-spacing: -0.05em;
}

.about-preview-copy p { color: var(--muted); }
.about-preview-copy strong { color: var(--ink); }

.about-preview-lead {
  margin: 1.35rem 0 1.5rem;
  font-size: 1.2rem;
  font-weight: 800;
}

.about-preview-copy .button { margin-top: 1rem; }

.about-preview-media { min-height: 42rem; }

.about-preview-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.about-page { overflow: hidden; }

.about-hero {
  padding: clamp(4rem, 8vw, 7rem) 0;
  background:
    radial-gradient(circle at 84% 20%, rgba(232, 161, 38, 0.2), transparent 25rem),
    var(--cream);
}

.about-hero > .site-shell > h1 {
  max-width: 9ch;
  margin: 0;
  font-size: clamp(3.5rem, 9vw, 7.5rem);
  line-height: 0.9;
  letter-spacing: -0.07em;
}

.about-hero-grid {
  display: grid;
  grid-template-columns: minmax(18rem, 0.82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 6rem);
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
}

.about-hero-media { position: relative; }

.about-hero-media::before {
  position: absolute;
  z-index: 0;
  right: -1.5rem;
  bottom: -1.5rem;
  width: 72%;
  height: 72%;
  border-radius: 50%;
  background: var(--sun);
  content: '';
}

.about-hero-media img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 2rem;
  object-fit: cover;
  box-shadow: var(--shadow);
}

.about-hero-copy h2,
.about-story h2 {
  margin: 0 0 1.25rem;
  font-size: clamp(2.2rem, 4vw, 4rem);
  line-height: 1.02;
  letter-spacing: -0.05em;
}

.about-hero-copy p,
.about-story p { color: var(--muted); }

.about-story-section { background: var(--paper); }

.about-story-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.42fr);
  align-items: start;
  gap: clamp(2.5rem, 8vw, 7rem);
}

.about-story { max-width: 48rem; }

.about-story-lead {
  color: var(--ink) !important;
  font-size: 1.25rem;
  font-weight: 800;
}

.about-quote {
  margin: 2rem 0;
  padding: 1.5rem 2rem;
  border-left: 0.35rem solid var(--sea);
  border-radius: 0 1.25rem 1.25rem 0;
  background: var(--cream);
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  font-weight: 800;
  line-height: 1.35;
}

.about-signature {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
}

.about-signature img {
  width: 4.75rem;
  height: 4.75rem;
  border: 0.3rem solid var(--white);
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0.5rem 1.2rem rgba(47, 41, 39, 0.16);
}

.about-signature p { margin: 0; }

.about-illustrations {
  display: grid;
  align-content: space-around;
  gap: 2rem;
  min-height: 100%;
}

.about-illustrations img {
  width: 100%;
  max-height: 23rem;
  object-fit: contain;
  filter: drop-shadow(0 1rem 1.1rem rgba(47, 41, 39, 0.12));
}

.about-illustrations img:first-child { transform: rotate(-4deg); }
.about-illustrations img:last-child { transform: rotate(4deg); }

.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.value-card {
  padding: clamp(1.5rem, 4vw, 2.4rem);
  border-radius: var(--radius);
  background: var(--white);
}

.value-number { color: var(--sun-dark); font-size: 1.4rem; font-weight: 900; }
.value-card h3 { margin: 0.4rem 0; font-size: 1.25rem; }
.value-card p { margin: 0; color: var(--muted); }

.archive-header {
  padding: clamp(4rem, 8vw, 7rem) 0 2.5rem;
  text-align: center;
}

.archive-header h1 { font-size: clamp(2.5rem, 7vw, 5rem); }
.archive-description { max-width: 42rem; margin: 1.2rem auto 0; color: var(--muted); }
.archive-content { padding-bottom: 6rem; }

.pagination { margin-top: 3rem; text-align: center; }
.pagination .page-numbers { display: inline-block; padding: 0.45rem 0.75rem; }

/*
 * WordPress ajoute aussi la classe `single-creation` au <body> des fiches.
 * Cibler explicitement le <main> évite d'appliquer cet espacement à toute la
 * page et de repousser le bandeau d'annonce sous un grand espace vide.
 */
main.single-creation { padding: clamp(3rem, 7vw, 6rem) 0; }

.single-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
  align-items: start;
  gap: clamp(2rem, 7vw, 6rem);
}

.single-image {
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--cream);
  box-shadow: var(--shadow);
}

.single-image img { width: 100%; }
main.single-creation h1 { font-size: clamp(2.4rem, 5vw, 4.5rem); }

.creation-gallery {
  display: grid;
  min-width: 0;
  grid-template-columns: clamp(3.7rem, 6vw, 4.8rem) minmax(0, 1fr);
  grid-template-rows: auto;
  align-items: start;
  gap: 0.8rem;
}

.creation-gallery-main {
  --gallery-zoom-x: 50%;
  --gallery-zoom-y: 50%;
  position: relative;
  display: grid;
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  aspect-ratio: 4 / 5;
  padding: 0;
  overflow: hidden;
  place-items: center;
  border: 0;
  border-radius: var(--radius);
  background: var(--cream);
  cursor: pointer;
  box-shadow: var(--shadow);
}

@media (hover: hover) and (pointer: fine) {
  .creation-gallery-main.zoom-enabled,
  .creation-gallery-main.zoom-enabled * {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='13' cy='13' r='9' fill='%23fffaf5' stroke='%232f2927' stroke-width='2'/%3E%3Cpath d='M19.5 19.5 28 28M13 8.5v9M8.5 13h9' fill='none' stroke='%232f2927' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") 13 13, zoom-in;
  }

  .creation-gallery-main.zoom-enabled::after {
    position: absolute;
    right: 0.8rem;
    bottom: 0.8rem;
    z-index: 3;
    padding: 0.45rem 0.7rem;
    border-radius: 999px;
    background: rgba(255, 250, 245, 0.9);
    color: var(--ink);
    content: 'Survole pour zoomer · Clique pour agrandir';
    font-size: 0.72rem;
    font-weight: 700;
    pointer-events: none;
    box-shadow: 0 0.35rem 1rem rgba(47, 41, 39, 0.14);
    transition: opacity 160ms ease;
  }

}

.creation-gallery-main .artwork-frame {
  width: min(82%, 34rem);
  margin: clamp(1rem, 4vw, 2.5rem) auto;
  overflow: hidden;
}

.creation-gallery:not(.showing-artwork) .creation-gallery-main .artwork-frame {
  position: absolute;
  inset: 0;
  display: grid;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  place-items: center;
  background: transparent;
  box-shadow: none;
}

.creation-gallery:not(.showing-artwork) .creation-gallery-main .artwork-frame::after { display: none; }

.creation-gallery-main img {
  width: 100%;
  /* Conserver le rapport naturel de l'affiche, même dans une fenêtre basse. */
  max-height: none;
  object-fit: contain;
  background: var(--cream);
  transform-origin: var(--gallery-zoom-x) var(--gallery-zoom-y);
  transition: transform 180ms ease-out;
}

@media (hover: hover) and (pointer: fine) {
  .creation-gallery-main.zoom-enabled.is-zooming img {
    transform: scale(1.75);
    transition-duration: 80ms;
  }
}

.creation-gallery:not(.showing-artwork) .creation-gallery-main img {
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: contain;
}

.creation-thumbnails {
  display: grid;
  grid-column: 1;
  grid-row: 1;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.65rem;
  max-height: min(72vh, 44rem);
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

.creation-thumbnail {
  padding: 0;
  overflow: hidden;
  aspect-ratio: 1;
  border: 2px solid transparent;
  border-radius: 0.8rem;
  background: var(--cream);
  cursor: pointer;
}

.creation-thumbnail[aria-current="true"] { border-color: var(--sun-dark); }

.creation-thumbnail:focus-visible {
  outline: 3px solid var(--sea);
  outline-offset: 2px;
}

.creation-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.creation-lightbox {
  width: min(94vw, 80rem);
  max-width: none;
  height: min(92vh, 60rem);
  max-height: none;
  padding: 0;
  border: 0;
  border-radius: 1.2rem;
  background: #171514;
  color: #fff;
}

.creation-lightbox::backdrop { background: rgba(25, 20, 18, 0.88); }

.creation-lightbox-inner {
  position: relative;
  display: grid;
  width: 100%;
  height: 100%;
  grid-template-columns: 4rem minmax(0, 1fr) 4rem;
  align-items: center;
}

.creation-lightbox-image {
  width: 100%;
  max-height: 88vh;
  object-fit: contain;
}

.lightbox-button {
  z-index: 2;
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  margin: auto;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255,255,255,0.35);
  border-radius: 50%;
  background: rgba(255,255,255,0.12);
  color: #fff;
  font-size: 1.4rem;
  cursor: pointer;
}

.lightbox-close { position: absolute; top: 0.8rem; right: 0.8rem; }

.term-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 1rem;
}

.term-list a,
.status-badge {
  display: inline-flex;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: var(--cream);
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 800;
  text-decoration: none;
}

.single-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 2rem 0;
}

.detail {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
}

.detail-label { display: block; color: var(--muted); font-size: 0.78rem; font-weight: 800; text-transform: uppercase; }
.detail-value { font-size: 1.08rem; font-weight: 800; }
.creation-content { color: var(--muted); }
.creation-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }

.creation-formats {
  min-width: 0;
  margin: 1.8rem 0 0;
  padding: 0;
  border: 0;
}

.creation-formats legend {
  margin-bottom: 0.7rem;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.creation-format-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.creation-format-option {
  display: grid;
  gap: 0.35rem;
  padding: 1rem;
  border: 2px solid var(--line);
  border-radius: 1rem;
  background: var(--white);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.creation-format-option:hover { transform: translateY(-2px); }
.creation-format-option[aria-pressed="true"] { border-color: var(--sun-dark); background: var(--cream); }
.creation-format-option span { font-weight: 900; }
.creation-format-option small { color: var(--muted); font-size: 0.78rem; font-weight: 600; }
.creation-format-subtitle { display: block; margin-top: .25rem; }
.creation-format-option strong { color: var(--sun-dark); font-size: 1.15rem; }

.creation-selected-price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0.85rem 0 0;
  padding: 0.8rem 0.2rem 0;
  border-top: 1px solid var(--line);
}

.creation-selected-price span { color: var(--muted); font-weight: 700; }
.creation-selected-price strong { color: var(--sun-dark); font-size: 1.35rem; }

.creation-purchase-info { margin: 1.5rem 0; font-size: .9rem; line-height: 1.65; }
.creation-print-offer { padding: 1rem 1.2rem; border-left: 3px solid var(--sun-dark); border-radius: .6rem; background: var(--cream); }
.creation-print-offer p { margin: 0; }
.creation-print-offer small { display: block; margin-top: .4rem; color: var(--muted); }
.creation-production { margin-top: 1.4rem; }
.creation-production h2 { font-size: 1.05rem; margin: 0 0 .5rem; }
.creation-production p { margin: .5rem 0; }
.creation-production ul { padding-left: 1.2rem; margin: .6rem 0; }
.creation-production .creation-origin { margin-top: 1rem; font-weight: 700; }
.creation-package { margin-top: 1.3rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.creation-package h2 { margin: 0 0 .5rem; font-size: 1.05rem; }
.creation-package p { margin: 0; }
.creation-package span { color: var(--muted); }
.creation-visual-note { margin: 1.2rem 0; color: var(--muted); font-size: .85rem; }
.creation-copyright { margin: 1.2rem 0 0; padding-top: .8rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }

.creation-order-lines { margin-top: 1.2rem; }
.creation-order-line { display: grid; grid-template-columns: minmax(0, 1fr) 5.5rem minmax(5rem, auto); gap: .8rem; align-items: center; padding: .85rem 0; border-bottom: 1px solid var(--line); }
.creation-order-line[hidden] { display: none; }
.creation-order-line small { display: block; color: var(--muted); font-size: .8rem; }
.creation-order-line label { font-size: .75rem; }
.creation-order-line input { display: block; width: 100%; min-height: 44px; padding: .45rem; border: 1px solid var(--line); border-radius: .5rem; font: inherit; font-size: 1rem; background: var(--white); color: var(--ink); }
.creation-order-line > strong { text-align: right; }
.creation-actions [aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
@media (max-width: 400px) {
  .creation-order-line { grid-template-columns: minmax(0, 1fr) 4.5rem; }
  .creation-order-line > strong { grid-column: 1 / -1; }
}

.empty-state {
  padding: 4rem 1.5rem;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  color: var(--muted);
  text-align: center;
}

.site-footer {
  padding: 2.25rem 0 1.25rem;
  background: var(--ink);
  color: var(--white);
}

.footer-inner {
  display: grid;
  grid-template-columns: minmax(13rem, .85fr) minmax(0, 2.75fr) 7rem;
  align-items: center;
  gap: clamp(1rem, 2.4vw, 2.5rem);
}

.footer-brand { margin: 0; font-size: 1.25rem; font-weight: 900; }
.footer-copy { margin: 0.2rem 0 0; color: rgba(255,255,255,0.7); font-size: 0.88rem; }
.footer-navigation { width: 100%; min-width: 0; }
.footer-navigation .site-menu { justify-content: center; gap: .2rem clamp(.65rem, 1.1vw, 1.15rem); }
.site-footer .site-menu a { padding: .55rem 0; color: var(--white); font-size: clamp(.61rem, .65vw, .7rem); white-space: nowrap; }
.footer-breizh-stamp { display: grid; place-items: center; justify-self: end; }
.footer-breizh-stamp img { display: block; width: 6.75rem; height: auto; opacity: .92; filter: drop-shadow(0 .35rem .75rem rgba(0,0,0,.18)); transform: rotate(-4deg); }
.footer-legal { margin-top: 1.45rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.15); text-align: center; }
.footer-legal p { margin: 0; color: rgba(255,255,255,.62); font-size: .77rem; letter-spacing: .02em; }
.footer-legal .footer-tax-note { margin-bottom: .35rem; color: rgba(255,255,255,.78); }
.footer-policies { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem 1.3rem; margin-bottom: 1rem; }
.footer-policies a { color: rgba(255,255,255,.85); font-size: .8rem; text-underline-offset: .2em; }
.footer-policies a:hover, .footer-policies a:focus-visible { color: #fff; text-decoration: underline; }
.footer-policies [hidden] { display: none; }

.content-page {
  width: min(48rem, calc(100% - 2rem));
  margin-inline: auto;
  padding: clamp(3rem, 7vw, 6rem) 0;
}

.content-page h1 { font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 1; letter-spacing: -0.05em; }

@media (max-width: 800px) {
  body.admin-bar .site-header { top: 46px; }

  .header-main {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 4.8rem;
  }

  .header-signature,
  .header-contact { display: none; }

  .site-branding { text-align: center; }
  .site-branding .site-logo,
  .site-branding .custom-logo { max-width: min(13rem, 62vw); }

  .header-actions {
    position: static;
    gap: .4rem;
  }
  .menu-toggle { display: grid; }
  .header-navigation { display: none; }
  .header-navigation.is-open { display: block; }
  .header-navigation nav { display: block; }

  .header-social-links {
    position: static;
    justify-content: center;
    margin: 0;
    transform: none;
  }

  .header-social-link { width: 2rem; height: 2rem; }

  .header-navigation .site-menu {
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    padding: 0.65rem 0 1rem;
  }

  .header-navigation .site-menu a {
    padding: 0.65rem 0;
    text-align: center;
  }

  .site-menu .sub-menu {
    position: static;
    visibility: visible;
    min-width: 0;
    padding: 0 0 0.35rem;
    transform: none;
    border: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
  }

  .site-menu .sub-menu a { text-align: center; }

  .hero-slide,
  .hero-content-wrap { min-height: 38rem; }

  .hero-content { width: min(31rem, 92%); }
  .hero-media::after { background: linear-gradient(0deg, rgba(47, 41, 39, 0.08), transparent 28%); }

  .single-grid { grid-template-columns: 1fr; }
  .creation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-preview,
  .about-hero-grid,
  .about-story-layout { grid-template-columns: 1fr; }
  .about-preview-media { min-height: 32rem; }
  .about-preview-media img { max-height: 38rem; }
  .about-story { max-width: none; }
  .about-illustrations {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: 0;
  }
  .values-grid { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr; align-items: center; text-align: center; }
  .footer-navigation { width: 100%; }
  .site-footer .site-menu { justify-content: center; flex-wrap: wrap; }
  .footer-breizh-stamp { justify-self: center; }
  .footer-breizh-stamp img { width: 7.5rem; }
}

@media (max-width: 560px) {
  .site-shell { width: min(100% - 1.25rem, 75rem); }
  .header-main { min-height: 4.4rem; gap: 0.75rem; }
  .site-branding a { font-size: 1.45rem; }
  .announcement-bar { grid-template-columns: 2rem minmax(0, 1fr) 2rem; }

  .hero-slide,
  .hero-content-wrap { min-height: 35rem; }

  .hero-content {
    width: 100%;
    padding: 1.5rem;
    border-radius: 1.25rem;
  }

  .hero h1,
  .hero h2 { font-size: clamp(2.35rem, 12vw, 3.5rem); }

  .hero-controls {
    right: 50%;
    bottom: 0.85rem;
    transform: translateX(50%);
  }

  .creation-grid { grid-template-columns: 1fr; }
  .about-preview { border-radius: 1.25rem; }
  .about-preview-copy { padding: 1.6rem; }
  .about-preview-media { min-height: 24rem; }
  .about-preview-media img { max-height: 30rem; }
  .about-hero-media::before { right: -0.65rem; bottom: -0.65rem; }
  .about-quote { padding: 1.25rem; }
  .about-illustrations { gap: 0.5rem; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  .single-details { grid-template-columns: 1fr; }
  .creation-gallery { display: block; }
  .creation-gallery-main { grid-column: auto; grid-row: auto; }
  .creation-thumbnails {
    grid-column: auto;
    grid-row: auto;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-height: none;
    margin-top: 0.8rem;
    overflow: visible;
  }
  .creation-lightbox-inner { grid-template-columns: 3rem minmax(0, 1fr) 3rem; }
  .lightbox-button { width: 2.35rem; height: 2.35rem; }
}

/* Collection Cherche & Trouve */
.find-story-page { overflow: hidden; }
.find-story-page .wp-block-group__inner-container { display: contents; }
.find-story-page .wp-block-group,
.find-story-page .wp-block-image { margin-block: 0; }
.find-story-hero {
  position: relative;
  padding: clamp(3rem, 7vw, 6.5rem) 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(232,161,38,.2), transparent 28%),
    linear-gradient(135deg, #fffaf5 0%, #f6ecdf 100%);
}
.find-story-hero::after {
  position: absolute;
  right: -6rem;
  bottom: -7rem;
  width: 22rem;
  height: 22rem;
  border: 1px solid rgba(79,127,131,.18);
  border-radius: 50%;
  content: "";
}
.find-story-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(32rem, 1.35fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.find-story-hero-copy h1 {
  max-width: 10ch;
  margin: .65rem 0 1.35rem;
  font-size: clamp(3rem, 6vw, 6.35rem);
  line-height: .92;
  letter-spacing: -.065em;
}
.find-story-hero-lead { max-width: 38rem; color: var(--muted); font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.7; }
.find-story-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.find-story-hero-note { margin-top: 1.35rem; color: var(--muted); font-size: .88rem; }
.find-story-hero-media {
  overflow: hidden;
  padding: clamp(.65rem, 1.3vw, 1rem);
  border: 1px solid rgba(47,41,39,.08);
  border-radius: clamp(1.25rem, 3vw, 2.5rem);
  background: rgba(255,255,255,.86);
  box-shadow: var(--shadow);
  transform: rotate(1.2deg);
}
.find-story-hero-media img { display: block; width: 100%; height: auto; border-radius: calc(var(--radius) - .45rem); }
.find-story-hero-media figcaption { padding: .75rem .25rem .15rem; color: var(--muted); font-size: .82rem; text-align: center; }
.find-story-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: start;
}
.find-story-intro-grid h2,
.find-story-section-heading h2,
.find-story-details h2,
.find-story-values h2,
.find-story-cta h2 { margin: .55rem 0 1rem; font-size: clamp(2.35rem, 4.6vw, 4.8rem); line-height: 1; letter-spacing: -.045em; }
.find-story-intro-copy { color: var(--muted); font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.8; }
.find-story-intro-copy p + p { margin-top: 1.25rem; color: var(--ink); }
.find-story-pill-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.find-story-pill-grid p { margin: 0; padding: 1rem 1.25rem; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--sea); font-weight: 800; text-align: center; }
.find-story-section-heading { max-width: 49rem; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.find-story-section-heading > p:last-child { color: var(--muted); font-size: 1.05rem; }
.find-story-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 1.8rem); align-items: start; }
.find-story-example {
  overflow: hidden;
  padding: .65rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 .8rem 2.5rem rgba(87,56,38,.08);
}
.find-story-example-wide { grid-column: 1 / -1; }
.find-story-example img { display: block; width: 100%; height: auto; border-radius: calc(var(--radius) - .45rem); }
.find-story-example figcaption { padding: .85rem .55rem .35rem; color: var(--muted); font-size: .88rem; text-align: center; }
.find-story-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; counter-reset: story-step; }
.find-story-step { min-height: 17rem; padding: clamp(1.35rem, 2.5vw, 2rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.find-story-step-number { margin: 0 0 2rem; color: var(--sun-dark); font-size: 2rem; font-weight: 900; line-height: 1; }
.find-story-step h3 { margin: 0 0 .7rem; font-size: 1.25rem; }
.find-story-step > p:last-child { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.65; }
.find-story-details-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); align-items: stretch; }
.find-story-memory-card,
.find-story-trust-card { padding: clamp(1.6rem, 4vw, 3.5rem); border-radius: calc(var(--radius) + .35rem); }
.find-story-memory-card { border: 1px solid var(--line); background: var(--white); }
.find-story-trust-card { background: var(--sea); color: var(--white); }
.find-story-details h2 { font-size: clamp(2rem, 3.5vw, 3.5rem); }
.find-story-memory-card ul { padding-left: 1.25rem; }
.find-story-memory-card li + li { margin-top: .65rem; }
.find-story-warning { margin-top: 1.5rem; padding: 1rem 1.15rem; border-left: .25rem solid var(--sun); border-radius: .6rem; background: var(--cream); }
.find-story-trust-card .eyebrow { color: #f6d58f; }
.find-story-trust-card p { color: rgba(255,255,255,.82); }
.find-story-trust-line { margin-top: 2rem; padding-top: 1.35rem; border-top: 1px solid rgba(255,255,255,.28); color: var(--white) !important; }
.find-story-values-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(20rem, .8fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.find-story-values-grid > .wp-block-group:first-child > p:last-child { max-width: 43rem; color: var(--muted); font-size: 1.08rem; line-height: 1.8; }
.find-story-rights { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid rgba(232,161,38,.35); border-radius: var(--radius); background: #fff8e8; }
.find-story-rights h3 { margin-top: 0; }
.find-story-rights p { color: var(--muted); }
.find-story-cta { background: var(--ink); color: var(--white); }
.find-story-cta-inner { display: flex; flex-direction: column; align-items: center; max-width: 58rem; text-align: center; }
.find-story-cta .eyebrow { color: var(--sun); }
.find-story-cta h2 { color: var(--white); }
.find-story-cta-inner > p:not(.eyebrow) { max-width: 42rem; margin: 0 0 1.75rem; color: rgba(255,255,255,.72); font-size: 1.1rem; }
.find-story-cta .wp-block-button__link { background: var(--sun); color: var(--ink); }
.find-story-creations .find-story-section-heading { margin-inline: auto; text-align: center; }

@media (max-width: 1100px) {
  .find-story-hero-grid { grid-template-columns: minmax(0, .8fr) minmax(26rem, 1.2fr); gap: 2rem; }
  .find-story-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
  .find-story-hero-grid,
  .find-story-intro-grid,
  .find-story-details-grid,
  .find-story-values-grid { grid-template-columns: 1fr; }
  .find-story-hero-copy h1 { max-width: 12ch; }
  .find-story-hero-media { transform: none; }
  .find-story-pill-grid { grid-template-columns: repeat(2, 1fr); }
  .find-story-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .find-story-example-wide { grid-column: 1 / -1; }
  .find-story-gallery .find-story-example:last-child { grid-column: 1 / -1; width: min(100%, 30rem); justify-self: center; }
  .find-story-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .find-story-step { min-height: 0; }
}

@media (max-width: 560px) {
  .find-story-hero { padding-top: 2.5rem; }
  .find-story-actions .wp-block-button { width: 100%; }
  .find-story-actions .wp-block-button__link { width: 100%; text-align: center; }
  .find-story-pill-grid,
  .find-story-gallery,
  .find-story-steps { grid-template-columns: 1fr; }
  .find-story-example-wide,
  .find-story-gallery .find-story-example:last-child { grid-column: auto; width: 100%; }
  .find-story-step-number { margin-bottom: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-slide.is-active .hero-media img,
  .hero-slide.is-active .hero-content { animation: none; }
}

/* Collection éditoriale Bucket list. */
.bucket-list-page { overflow: hidden; }
.bucket-list-page .wp-block-group__inner-container { display: contents; }
.bucket-list-page h2 { margin: .4rem 0 1rem; font-size: clamp(2.25rem, 5vw, 4.6rem); line-height: .98; letter-spacing: -.055em; }
.bucket-list-hero { position: relative; padding: clamp(3rem, 7vw, 7rem) 0; background: linear-gradient(135deg, #fffaf5 0 48%, #f4e4d3 48% 100%); }
.bucket-list-hero::before { position: absolute; top: 8%; left: -5rem; width: 14rem; height: 14rem; border: 2px solid rgba(185, 107, 18, .18); border-radius: 50%; content: ""; }
.bucket-list-hero-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(24rem, 1.1fr); align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.bucket-list-hero-copy { position: relative; z-index: 1; }
.bucket-list-hero h1 { max-width: 11ch; margin: .6rem 0 1.5rem; font-size: clamp(3.5rem, 7vw, 7rem); line-height: .86; letter-spacing: -.07em; }
.bucket-list-hero-lead { max-width: 38rem; color: var(--muted); font-size: clamp(1.08rem, 1.8vw, 1.3rem); line-height: 1.75; }
.bucket-list-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem; margin-top: 2rem; }
.bucket-list-actions .wp-block-button__link,
.bucket-list-cta .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 3.2rem; padding: .7rem 1.25rem; border: 2px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--white); font-weight: 800; text-decoration: none; transition: transform 160ms ease, box-shadow 160ms ease; }
.bucket-list-actions .wp-block-button__link:hover,
.bucket-list-cta .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 .65rem 1.4rem rgba(47, 41, 39, .18); }
.bucket-list-actions .is-style-outline .wp-block-button__link { background: transparent; color: var(--sea); border-color: var(--sea); }
.bucket-list-text-link { color: var(--sea); font-weight: 800; text-decoration: none; }
.bucket-list-text-link:hover { text-decoration: underline; text-underline-offset: .25rem; }
.bucket-list-price-note { margin: 1.25rem 0 0; color: var(--muted); }
.bucket-list-price-note strong { color: var(--sun-dark); }
.bucket-list-hero-media { position: relative; margin: 0; padding: clamp(.65rem, 1.5vw, 1rem); border-radius: 2rem; background: var(--white); box-shadow: var(--shadow); transform: rotate(1.2deg); }
.bucket-list-hero-media::after { position: absolute; inset: 1rem -1rem -1rem 1rem; z-index: -1; border: 2px solid var(--sea); border-radius: 2rem; content: ""; }
.bucket-list-hero-media img { width: 100%; aspect-ratio: 10 / 7; border-radius: 1.35rem; object-fit: cover; }
.bucket-list-hero-media figcaption { padding: .8rem .5rem .2rem; color: var(--muted); font-size: .86rem; text-align: center; }
.bucket-list-story-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: clamp(2rem, 8vw, 8rem); }
.bucket-list-story-copy { color: var(--muted); font-size: 1.08rem; line-height: 1.8; }
.bucket-list-story-copy strong { color: var(--ink); }
.bucket-list-items { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.6rem; }
.bucket-list-items span,
.bucket-list-items li { padding: .55rem .9rem; border: 1px solid rgba(79, 127, 131, .3); border-radius: 999px; background: rgba(79, 127, 131, .08); color: var(--sea); font-size: .85rem; font-weight: 800; list-style: none; }
.bucket-list-section-heading { max-width: 48rem; margin: 0 auto clamp(2.5rem, 6vw, 5rem); text-align: center; }
.bucket-list-section-heading > p:last-child { color: var(--muted); font-size: 1.05rem; }
.bucket-list-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.bucket-list-example { grid-column: span 4; margin: 0; overflow: hidden; border-radius: 1.5rem; background: var(--white); box-shadow: 0 .8rem 2.5rem rgba(87, 56, 38, .09); }
.bucket-list-example-wide { grid-column: span 6; }
.bucket-list-example img { width: 100%; height: 100%; min-height: 18rem; aspect-ratio: 10 / 7; object-fit: cover; transition: transform .45s ease; }
.bucket-list-example:hover img { transform: scale(1.025); }
.bucket-list-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; padding: 0; margin: 0; list-style: none; counter-reset: none; }
.bucket-list-steps li,
.bucket-list-step { min-height: 18rem; padding: clamp(1.3rem, 2.5vw, 2rem); border: 1px solid var(--line); border-radius: 1.5rem; background: var(--white); }
.bucket-list-steps span,
.bucket-list-step > p:first-child { display: block; margin: 0; color: var(--sun-dark); font-size: 2.1rem; font-weight: 900; letter-spacing: -.05em; }
.bucket-list-steps h3 { margin: 2.8rem 0 .7rem; font-size: 1.35rem; }
.bucket-list-steps p { color: var(--muted); font-size: .94rem; }
.bucket-list-step > p:last-child { margin: 0; }
.bucket-list-pricing-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) repeat(2, minmax(12rem, .55fr)); gap: 1rem; align-items: stretch; }
.bucket-list-pricing-intro { padding-right: clamp(0rem, 4vw, 4rem); }
.bucket-list-pricing-intro p:last-child { max-width: 37rem; color: var(--muted); }
.bucket-list-price-card { display: flex; min-height: 18rem; padding: 1.6rem; flex-direction: column; justify-content: flex-end; border: 1px solid var(--line); border-radius: 1.5rem; background: var(--white); }
.bucket-list-price-card-color { background: var(--sea); color: var(--white); }
.bucket-list-price-card p { margin: 0 auto auto 0; font-weight: 800; }
.bucket-list-price-card > strong,
.bucket-list-price-card h3 { margin: 0; font-size: clamp(3rem, 5vw, 5rem); line-height: 1; letter-spacing: -.06em; }
.bucket-list-price-card span { color: var(--muted); font-size: .8rem; }
.bucket-list-price-card > p:last-child { margin: .2rem 0 0; color: var(--muted); font-size: .8rem; font-weight: 400; }
.bucket-list-price-card-color span { color: rgba(255,255,255,.72); }
.bucket-list-price-card-color > p:last-child { color: rgba(255,255,255,.72); }
.bucket-list-pricing-details { grid-column: 2 / 4; padding: 1.5rem 1.8rem; border-left: 4px solid var(--sun-dark); border-radius: 0 1rem 1rem 0; background: rgba(255,255,255,.58); color: var(--muted); }
.bucket-list-pricing-details p { margin: .5rem 0; }
.bucket-list-pricing-details strong { color: var(--ink); }
.bucket-list-pricing-details hr { margin: 1.2rem 0; border: 0; border-top: 1px solid var(--line); }
.bucket-list-cta { background: var(--sea); color: var(--white); text-align: center; }
.bucket-list-cta-inner { max-width: 58rem; }
.bucket-list-cta .eyebrow { color: #d8eeee; }
.bucket-list-cta h2 { margin-inline: auto; }
.bucket-list-cta p:not(.eyebrow) { max-width: 42rem; margin: 0 auto 2rem; color: rgba(255,255,255,.82); font-size: 1.08rem; }
.bucket-list-cta .button,
.bucket-list-cta .wp-block-button__link { background: var(--white); color: var(--ink); }
.bucket-list-creations .bucket-list-section-heading { margin-bottom: 2.5rem; }

@media (max-width: 900px) {
  .bucket-list-hero-grid,
  .bucket-list-story-grid { grid-template-columns: 1fr; }
  .bucket-list-hero h1 { max-width: 12ch; }
  .bucket-list-hero-media { max-width: 46rem; }
  .bucket-list-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bucket-list-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bucket-list-pricing-intro { grid-column: 1 / -1; margin-bottom: 1rem; }
  .bucket-list-pricing-details { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .bucket-list-hero { background: linear-gradient(160deg, #fffaf5 0 58%, #f4e4d3 58% 100%); }
  .bucket-list-hero h1 { font-size: clamp(3.25rem, 17vw, 5rem); }
  .bucket-list-actions { align-items: flex-start; flex-direction: column; }
  .bucket-list-example,
  .bucket-list-example-wide { grid-column: 1 / -1; }
  .bucket-list-steps,
  .bucket-list-pricing-grid { grid-template-columns: 1fr; }
  .bucket-list-pricing-intro,
  .bucket-list-pricing-details { grid-column: 1; }
  .bucket-list-price-card { min-height: 13rem; }
  .bucket-list-example img { min-height: 0; }
}

/* Collection éditoriale Tribu personnalisée. */
.tribu-page { --tribu-blue: #233f70; --tribu-gold: #e7b846; overflow: hidden; }
.tribu-page .wp-block-group__inner-container { display: contents; }
.tribu-page h2 { margin: .45rem 0 1rem; font-size: clamp(2.35rem, 5vw, 4.8rem); line-height: .98; letter-spacing: -.055em; }
.tribu-hero { position: relative; padding: clamp(3.5rem, 8vw, 7.5rem) 0; background: radial-gradient(circle at 8% 18%, rgba(231,184,70,.2) 0 8rem, transparent 8.1rem), linear-gradient(135deg, #fffaf1 0 57%, #eef3f4 57% 100%); }
.tribu-hero::after { position: absolute; right: -4rem; bottom: -5rem; width: 15rem; height: 15rem; border: 2px solid rgba(35,63,112,.12); border-radius: 50%; content: ""; }
.tribu-hero-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(24rem, 1.1fr); align-items: center; gap: clamp(2.5rem, 7vw, 7rem); }
.tribu-hero-copy { position: relative; z-index: 2; }
.tribu-hero h1 { max-width: 10ch; margin: .55rem 0 1.4rem; font-size: clamp(3.7rem, 7.5vw, 7.4rem); line-height: .86; letter-spacing: -.075em; }
.tribu-hero-lead { max-width: 38rem; color: var(--muted); font-size: clamp(1.08rem, 1.8vw, 1.32rem); line-height: 1.75; }
.tribu-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.tribu-actions .wp-block-button__link,
.tribu-cta .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 3.2rem; padding: .7rem 1.25rem; border: 2px solid var(--tribu-blue); border-radius: 999px; background: var(--tribu-blue); color: #fff; font-weight: 800; text-decoration: none; transition: transform 160ms ease, box-shadow 160ms ease; }
.tribu-actions .is-style-outline .wp-block-button__link { background: transparent; color: var(--tribu-blue); }
.tribu-actions .wp-block-button__link:hover,
.tribu-cta .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 .65rem 1.4rem rgba(35,63,112,.18); }
.tribu-hero-note { margin-top: 1.25rem; color: var(--muted); }
.tribu-hero-note strong { color: var(--sun-dark); }
.tribu-hero-stack { position: relative; min-height: clamp(30rem, 48vw, 43rem); }
.tribu-hero-card { position: absolute; width: min(56%, 24rem); margin: 0; overflow: hidden; border: .7rem solid #fff; border-radius: 1.4rem; background: #fff; box-shadow: 0 1.5rem 4rem rgba(47,41,39,.17); }
.tribu-hero-card img { display: block; width: 100%; height: auto; }
.tribu-hero-card-primary { top: 0; right: 8%; z-index: 2; transform: rotate(2.5deg); }
.tribu-hero-card-secondary { bottom: 0; left: 3%; z-index: 1; transform: rotate(-4deg); }
.tribu-section-heading { max-width: 50rem; margin: 0 auto clamp(2.5rem, 6vw, 5rem); text-align: center; }
.tribu-section-heading > p:last-child { color: var(--muted); font-size: 1.05rem; }
.tribu-model-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.2rem, 3vw, 2.25rem); }
.tribu-model-card { display: grid; grid-template-columns: minmax(11rem, .75fr) minmax(0, 1fr); align-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 1.7rem; background: var(--white); box-shadow: 0 .8rem 2.5rem rgba(87,56,38,.08); cursor: pointer; transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease; }
.tribu-model-card:hover,
.tribu-model-card:focus-visible { transform: translateY(-3px); border-color: rgba(35,63,112,.42); box-shadow: 0 1.2rem 3rem rgba(35,63,112,.13); outline: 0; }
.tribu-model-card > figure { position: relative; align-self: stretch; height: 100%; min-height: 27rem; margin: 0; overflow: hidden; background: #f8f5f0; }
.tribu-model-card > figure img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s ease; }
.tribu-model-card:hover > figure img { transform: scale(1.025); }
.tribu-model-copy { padding: clamp(1.35rem, 3vw, 2.3rem); }
.tribu-model-copy h3 { margin: .25rem 0 .8rem; color: var(--tribu-blue); font-size: clamp(1.8rem, 3vw, 2.75rem); letter-spacing: -.045em; }
.tribu-model-copy p:last-child { margin-bottom: 0; color: var(--muted); }
.tribu-model-more { display: inline-block; margin-top: 1.15rem; color: var(--tribu-blue); font-size: .88rem; font-weight: 900; }
.tribu-custom-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(2.5rem, 8vw, 8rem); }
.tribu-custom-grid > div:first-child > p:last-child { max-width: 35rem; color: var(--muted); font-size: 1.07rem; }
.tribu-custom-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding: 0; margin: 0; }
.tribu-custom-list li { display: flex; min-height: 8rem; padding: 1.2rem; flex-direction: column; justify-content: space-between; gap: .5rem; border: 1px solid rgba(35,63,112,.15); border-radius: 1.2rem; background: rgba(255,255,255,.76); list-style: none; }
.tribu-custom-list strong { color: var(--tribu-blue); font-size: 1.06rem; }
.tribu-custom-list span { color: var(--muted); font-size: .86rem; line-height: 1.45; }
.tribu-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.tribu-step { min-height: 17rem; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--line); border-radius: 1.5rem; background: var(--white); }
.tribu-step > p:first-child { margin: 0; color: var(--tribu-gold); font-size: 2.2rem; font-weight: 900; }
.tribu-step h3 { margin: 2.7rem 0 .75rem; color: var(--tribu-blue); font-size: 1.4rem; }
.tribu-step > p:last-child { margin: 0; color: var(--muted); }
.tribu-pricing-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(16rem, .75fr); align-items: stretch; gap: clamp(1rem, 4vw, 4rem); }
.tribu-pricing-copy { padding-right: clamp(0rem, 4vw, 4rem); }
.tribu-pricing-copy p:last-child { max-width: 36rem; color: var(--muted); }
.tribu-price-card { display: flex; min-height: 19rem; padding: 1.6rem; flex-direction: column; justify-content: flex-end; border: 1px solid var(--line); border-radius: 1.5rem; background: var(--white); }
.tribu-price-card-print { background: var(--tribu-blue); color: #fff; }
.tribu-price-card > p:first-child { margin: 0 auto auto 0; font-weight: 800; }
.tribu-price-card h3 { margin: 0; color: var(--sun-dark); font-size: clamp(2.8rem, 4.5vw, 4.7rem); line-height: 1; letter-spacing: -.06em; }
.tribu-price-card-print h3 { color: var(--tribu-gold); }
.tribu-price-card > p:last-child { margin: .5rem 0 0; color: var(--muted); font-size: .82rem; }
.tribu-price-card-print > p:last-child { color: rgba(255,255,255,.75); }
.tribu-cta { background: var(--tribu-blue); color: #fff; text-align: center; }
.tribu-cta-inner { max-width: 58rem; }
.tribu-cta .eyebrow { color: #f1d982; }
.tribu-cta h2 { margin-inline: auto; }
.tribu-cta p:not(.eyebrow) { max-width: 43rem; margin: 0 auto 2rem; color: rgba(255,255,255,.82); font-size: 1.08rem; }
.tribu-cta .wp-block-button__link { border-color: #fff; background: #fff; color: var(--tribu-blue); }
.tribu-creations .tribu-section-heading { margin-bottom: 2.5rem; }

.tribu-dialog { width: min(72rem, calc(100vw - 2rem)); max-height: min(90vh, 58rem); padding: 0; border: 0; border-radius: 1.7rem; background: #fffaf5; color: var(--ink); box-shadow: 0 2rem 6rem rgba(25,31,40,.28); overflow: auto; }
.tribu-dialog::backdrop { background: rgba(20,28,38,.68); backdrop-filter: blur(3px); }
.tribu-dialog-shell { position: relative; padding: clamp(1.2rem, 3vw, 2.4rem); }
.tribu-dialog-close { position: sticky; top: 0; z-index: 4; display: grid; width: 2.7rem; height: 2.7rem; margin-left: auto; border: 1px solid rgba(35,63,112,.18); border-radius: 50%; background: #fff; color: var(--tribu-blue); font: inherit; font-size: 1.7rem; line-height: 1; place-items: center; cursor: pointer; box-shadow: 0 .4rem 1.2rem rgba(35,63,112,.12); }
.tribu-dialog-page { display: grid; grid-template-columns: minmax(16rem, .78fr) minmax(0, 1.22fr); align-items: center; gap: clamp(1.5rem, 5vw, 4.5rem); min-height: 34rem; }
.tribu-dialog-page[hidden],
.tribu-dialog-model[hidden] { display: none; }
.tribu-dialog-visual figure { position: relative; max-width: 27rem; margin: 0 auto; overflow: hidden; border: .7rem solid #fff; border-radius: 1.25rem; background: #fff; box-shadow: 0 1rem 3rem rgba(35,63,112,.14); }
.tribu-dialog-visual img { display: block; width: 100%; height: auto; }
.tribu-dialog-copy h2,
.tribu-dialog-order h2 { margin: .45rem 0 1.1rem; color: var(--tribu-blue); font-size: clamp(2.4rem, 5vw, 4.7rem); line-height: .95; letter-spacing: -.055em; }
.tribu-dialog-copy > p:not(.eyebrow) { color: var(--muted); font-size: 1.03rem; }
.tribu-dialog-copy ul { display: grid; gap: .7rem; padding: 0; margin: 1.4rem 0; }
.tribu-dialog-copy li { position: relative; padding: .8rem 1rem .8rem 2.7rem; border-radius: .9rem; background: #fff; list-style: none; }
.tribu-dialog-copy li::before { position: absolute; top: .75rem; left: 1rem; color: var(--tribu-gold); content: "♥"; }
.tribu-dialog-order { grid-template-columns: minmax(0, 1.3fr) minmax(15rem, .7fr); }
.tribu-dialog-order ol { display: grid; gap: .7rem; padding: 0; margin: 1.5rem 0 0; }
.tribu-dialog-order li { display: grid; grid-template-columns: 3rem 1fr; gap: .15rem .8rem; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; list-style: none; }
.tribu-dialog-order li span { grid-row: span 2; color: var(--tribu-gold); font-size: 1.6rem; font-weight: 900; }
.tribu-dialog-order li strong { color: var(--tribu-blue); }
.tribu-dialog-order li small { color: var(--muted); font-size: .86rem; }
.tribu-dialog-price { display: flex; min-height: 23rem; padding: 1.7rem; flex-direction: column; justify-content: center; border-radius: 1.4rem; background: var(--tribu-blue); color: #fff; text-align: center; }
.tribu-dialog-price p { margin: 0; font-weight: 800; }
.tribu-dialog-price > strong { margin: 1rem 0 0; color: var(--tribu-gold); font-size: clamp(4.5rem, 8vw, 7rem); line-height: .9; letter-spacing: -.07em; }
.tribu-dialog-price > span { margin: .6rem 0 1.5rem; color: rgba(255,255,255,.75); font-size: .85rem; }
.tribu-dialog-price .button { border-color: #fff; background: #fff; color: var(--tribu-blue); }
.tribu-dialog-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; margin-top: 1rem; }
.tribu-dialog-nav button { padding: .75rem 1rem; border: 1px solid rgba(35,63,112,.25); border-radius: 999px; background: transparent; color: var(--tribu-blue); font: inherit; font-weight: 800; cursor: pointer; }
.tribu-dialog-nav button:last-child { justify-self: end; }
.tribu-dialog-nav button:disabled { opacity: .35; cursor: default; }
.tribu-dialog-nav span { color: var(--muted); font-size: .85rem; font-weight: 800; }

@media (max-width: 1000px) {
  .tribu-model-card { grid-template-columns: 1fr; }
  .tribu-model-card > figure { height: 28rem; min-height: 0; }
  .tribu-pricing-grid { grid-template-columns: minmax(0, 1fr) minmax(15rem, .65fr); }
}

@media (max-width: 820px) {
  .tribu-hero-grid,
  .tribu-custom-grid { grid-template-columns: 1fr; }
  .tribu-hero h1 { max-width: 12ch; }
  .tribu-hero-stack { width: min(100%, 42rem); margin-inline: auto; }
  .tribu-model-grid { grid-template-columns: 1fr; }
  .tribu-model-card { grid-template-columns: minmax(10rem, .7fr) minmax(0, 1fr); }
  .tribu-model-card > figure { height: 100%; min-height: 25rem; }
  .tribu-dialog-page,
  .tribu-dialog-order { grid-template-columns: 1fr; }
  .tribu-dialog-visual figure { max-width: 20rem; }
  .tribu-dialog-price { min-height: 16rem; }
}

@media (max-width: 620px) {
  .tribu-hero { background: linear-gradient(160deg, #fffaf1 0 58%, #eef3f4 58% 100%); }
  .tribu-hero h1 { font-size: clamp(3.3rem, 17vw, 5rem); }
  .tribu-actions { align-items: flex-start; flex-direction: column; }
  .tribu-hero-stack { min-height: 31rem; }
  .tribu-hero-card { width: 62%; border-width: .45rem; }
  .tribu-model-card { grid-template-columns: 1fr; }
  .tribu-model-card > figure { height: 29rem; min-height: 0; }
  .tribu-custom-list,
  .tribu-steps,
  .tribu-pricing-grid { grid-template-columns: 1fr; }
  .tribu-pricing-copy { grid-column: 1; }
  .tribu-price-card { min-height: 14rem; }
  .tribu-dialog { width: calc(100vw - 1rem); max-height: 94vh; border-radius: 1rem; }
  .tribu-dialog-shell { padding: 1rem; }
  .tribu-dialog-page { min-height: 0; }
  .tribu-dialog-copy h2,
  .tribu-dialog-order h2 { font-size: 2.45rem; }
  .tribu-dialog-nav { position: sticky; bottom: 0; padding: .75rem 0; background: #fffaf5; }
}

/* Panier de demande, indépendant d’un paiement en ligne. */
.header-basket { border: 1px solid var(--line); border-radius: 2rem; padding: .65rem .8rem; background: var(--cream); color: var(--ink); font: inherit; font-size: .8rem; font-weight: 700; white-space: nowrap; cursor: pointer; }
.header-basket span { display: inline-block; min-width: 1.4rem; padding: .1rem .3rem; border-radius: 1rem; color: var(--white); background: var(--sun-dark); }
.request-basket { width: min(850px, calc(100vw - 2rem)); max-height: 88vh; padding: clamp(1rem, 3vw, 2rem); border: 0; border-radius: 1.2rem; color: var(--ink); background: var(--white); overflow-y: auto; }
.request-basket::backdrop { background: rgb(0 0 0 / .5); }
.basket-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.basket-heading h2 { margin: 0; }
.basket-heading button { width: 44px; height: 44px; font-size: 1.8rem; background: var(--cream); border: 0; border-radius: 50%; cursor: pointer; }
.basket-line { display: grid; grid-template-columns: minmax(0, 1fr) 5.5rem auto auto; align-items: center; gap: 1rem; border-bottom: 1px solid var(--line); padding: 1rem 0; }
.basket-line small { display: block; color: var(--muted); }
.basket-line label { font-size: .75rem; }
.basket-line input { display: block; width: 100%; min-height: 44px; padding: .4rem; font: inherit; font-size: 1rem; border: 1px solid var(--line); border-radius: .4rem; }
.basket-line button, [data-contact-basket] button { min-height: 44px; padding: .5rem; font: inherit; cursor: pointer; border: 1px solid var(--line); border-radius: .4rem; background: var(--cream); color: var(--ink); }
.basket-total { font-size: 1.2rem; font-weight: 800; }
.basket-discount { color: var(--sun-dark); font-weight: 700; }
.basket-terms { font-size: .8rem; color: var(--muted); line-height: 1.6; }
.request-basket .button { margin: .3rem .3rem .3rem 0; }
button:disabled { opacity: .55; cursor: not-allowed; }
[data-contact-basket] { margin: 1rem 0; padding: 1rem; background: var(--cream); border-radius: .8rem; }
[data-contact-basket][hidden] { display: none; }
[data-contact-summary], .request-summary { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: .9rem; line-height: 1.6; }
@media (max-width: 800px) {
  .header-actions { flex-wrap: wrap; max-width: 10rem; }
  .header-basket { order: 3; flex-basis: 100%; padding: .35rem .5rem; }
  .site-branding .site-logo, .site-branding .custom-logo { max-width: min(13rem, 42vw); }
  .basket-line { grid-template-columns: minmax(0, 1fr) 5rem; gap: .6rem; }
  .basket-line > strong { grid-column: 1; }
}

/* Exemples de familles : conserver les illustrations intégrales. */
.tribu-family-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin-top:2.5rem; }
.tribu-family-grid figure { margin:0; padding:clamp(1rem,3vw,2rem); border:1px solid var(--line); border-radius:1.4rem; background:#fff; box-shadow:0 .8rem 2rem rgba(35,63,112,.06); }
.tribu-family-grid a { display:flex; align-items:center; justify-content:center; height:25rem; }
.tribu-family-grid img { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.tribu-family-grid figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem; margin-top:1.5rem; color:var(--tribu-blue); }
.tribu-family-grid figcaption span { color:var(--muted); }
@media(max-width:600px) { .tribu-family-grid { grid-template-columns:1fr; } .tribu-family-grid a { height:auto; } .tribu-family-grid img { max-height:28rem; } }

.bucket-list-price-badges { display:flex; flex-wrap:wrap; justify-content:center; gap:.65rem; margin:.9rem 0 .5rem; }
.bucket-list-price-badges > span { padding:.6rem 1rem; border-radius:999px; background:var(--ink); color:#fff; font-size:.85rem; font-weight:700; }
.bucket-list-price-badges > span:last-child { background:var(--sea); }

.bucket-preview-open { position:relative; display:block; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:zoom-in; overflow:hidden; border-radius:inherit; }
.bucket-preview-open img { transition:transform .25s ease; }
.bucket-preview-hint { position:absolute; bottom:.8rem; right:.8rem; padding:.4rem .8rem; border-radius:999px; background:rgba(255,250,245,.95); color:var(--ink); font-size:.8rem; font-weight:700; }
.bucket-preview-open:focus-visible { outline:3px solid var(--sea); outline-offset:-4px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) { .bucket-preview-open:hover img { transform:scale(1.05); } }
.bucket-preview { width:min(95vw,90rem); max-width:95vw; max-height:94vh; padding:3rem .75rem .75rem; border:0; border-radius:1rem; background:#fffaf5; }
.bucket-preview::backdrop { background:rgba(20,28,38,.8); }
.bucket-preview > img { display:block; width:100%; height:auto; max-height:calc(94vh - 4rem); object-fit:contain; }
.bucket-preview-close { position:absolute; right:.6rem; top:.4rem; width:2.3rem; height:2.3rem; border:0; border-radius:50%; background:var(--ink); color:white; font-size:1.7rem; cursor:pointer; }

.find-story-page .find-story-gallery { grid-template-columns:1fr; }
.find-story-page .find-story-gallery .find-story-example { grid-column:1 / -1; width:100%; max-width:none; }
.find-story-offer { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.find-story-offer h2 { font-size:clamp(2rem,4vw,4rem); line-height:1.05; }
@media(max-width:700px) { .find-story-offer { grid-template-columns:1fr; } }

.tribu-family-grid .bucket-preview-open { display:flex; align-items:center; justify-content:center; height:25rem; }
@media(max-width:600px) { .tribu-family-grid .bucket-preview-open { height:auto; } }

.tribu-choice-guide { margin:1.5rem 0; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:#fff; }
.tribu-choice-guide h3 { margin:0 0 1rem; color:var(--tribu-blue); }
.tribu-choice-viewport { width:100%; overflow:hidden; aspect-ratio:1368 / 665; }
.tribu-choice-bottes { aspect-ratio:1368 / 625; }
.tribu-choice-poules { aspect-ratio:1368 / 633; }
.tribu-choice-viewport img { display:block; width:100%; height:auto; }
.tribu-choice-guide p { font-size:.95rem; }

/* Navigation discrète au défilement, sans modifier la hauteur du document. */
.navigation-basket { display:none; }
.site-header.scroll-header { top:calc(var(--admin-offset, 0px) - var(--header-fold, 0px)); transition:transform .22s ease, box-shadow .22s ease; }
body.admin-bar .site-header.scroll-header { --admin-offset:32px; }
.site-header.scroll-header.is-scrolled { box-shadow:0 6px 20px rgba(45,38,33,.12); }
.site-header.scroll-header.is-scroll-hidden { transform:translateY(calc(-1 * var(--header-visible))); }
@media(min-width:1200px) {
  .scroll-header .header-navigation nav { width:calc(100% - 3rem); max-width:100rem; align-items:center; gap:1rem; }
  .scroll-header .header-navigation .site-menu { flex:1; flex-wrap:wrap; justify-content:center; column-gap:.85rem; row-gap:0; }
  .scroll-header .navigation-basket { display:block; flex-shrink:0; padding:.35rem .55rem; font-size:.7rem; visibility:hidden; }
  .scroll-header.is-scrolled .navigation-basket { visibility:visible; }
}
@media(max-width:782px) { body.admin-bar .site-header.scroll-header { --admin-offset:46px; } }
@media(max-width:600px) { body.admin-bar .site-header.scroll-header.is-scrolled { --admin-offset:0px; } }
@media(max-width:1199px) { .scroll-header .header-navigation.is-open { max-height:60vh; overflow-y:auto; } }
@media(prefers-reduced-motion:reduce) { .site-header.scroll-header { transition:none; } }

/* Shared editorial footer and curated Instagram gallery. */
.footer-atelier-banner { position:relative; overflow:hidden; background:linear-gradient(90deg,#fbe4db,#fce5da); }
.footer-atelier-banner::before { content:""; position:absolute; inset:70.1% 0 0; border-top:1px solid #4d382d; background:linear-gradient(90deg,#d4ac97,#d9b19b); }
.footer-atelier-banner img { position:relative; z-index:1; display:block; width:100%; max-width:1600px; height:auto; margin-inline:auto; }
.footer-atelier-banner-caption { position:relative; z-index:1; display:none; }
@media(max-width:760px) { .footer-atelier-banner-caption { display:block; margin:0; padding:.5rem 1rem .8rem; background:#d3ae9b; color:#2d2621; font-size:1rem; font-weight:700; text-align:center; } }
.footer-instagram { background:#fffdf9; }
.footer-instagram-heading { text-align:center; margin:0 auto 2.5rem; max-width:48rem; }
.footer-instagram-heading h2 { font-size:clamp(1.8rem,3vw,3rem); line-height:1.15; margin:.7rem 0 1rem; }
.footer-instagram-heading a { display:inline-flex; align-items:center; margin-top:.4rem; padding:.65rem 1rem; border:1px solid #c5d2cf; border-radius:999px; color:var(--color-ink,#315e62); font-weight:700; text-decoration:none; transition:background .2s ease,border-color .2s ease; }
.footer-instagram-heading a:hover { background:#edf4f1; border-color:#7eaaa5; }
.footer-instagram-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.25rem; }
.footer-instagram-grid a { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid #e9e0d6; border-radius:18px; background:#fff; color:var(--color-ink,#315e62); text-decoration:none; box-shadow:0 8px 24px rgba(45,38,33,.055); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.footer-instagram-grid img { display:block; width:100%; aspect-ratio:1; object-fit:cover; background:#f7f3ed; transition:transform .3s ease; }
.footer-instagram-grid span { display:flex; align-items:center; justify-content:space-between; gap:.5rem; min-height:3.35rem; padding:.75rem 1rem; border-top:1px solid #f0e9e1; font-size:.88rem; font-weight:700; line-height:1.2; }
.footer-instagram-grid span::after { content:'↗'; display:grid; flex:none; place-items:center; width:1.75rem; height:1.75rem; border-radius:50%; background:#edf4f1; font-size:1rem; transition:background .2s ease; }
.footer-instagram-grid a:hover { transform:translateY(-4px); border-color:#c5d2cf; box-shadow:0 16px 30px rgba(45,38,33,.11); }
.footer-instagram-grid a:hover img { transform:scale(1.025); }
.footer-instagram-grid a:hover span::after { background:#dceae6; }
.footer-instagram-grid a:focus-visible,.footer-instagram-heading a:focus-visible { outline:3px solid #bb701b; outline-offset:4px; }
.footer-social-links { display:flex!important; gap:.6rem; margin:1rem 0; }
.footer-social-links .header-social-link { color:#315e62; background:#f6ecdc; }
.footer-social-links svg { width:24px; height:24px; fill:currentColor; }
@media(max-width:760px) { .footer-instagram-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; } .footer-instagram-grid span { padding:.65rem .75rem; font-size:.8rem; } }
@media(max-width:400px) { .footer-instagram-grid span::after { width:1.5rem; height:1.5rem; } }
@media(prefers-reduced-motion:reduce) { .footer-instagram-grid a,.footer-instagram-grid img,.footer-instagram-grid span::after,.footer-instagram-heading a { transition:none; } .footer-instagram-grid a:hover { transform:none; } .footer-instagram-grid a:hover img { transform:none; } }

/* Visible ALTCHA check on the contact form. */
.contact-form-card .p2c-altcha-check {
  margin: .2rem 0 1.4rem;
}
.contact-form-card .p2c-altcha-check altcha-widget {
  display: block;
  max-width: 100%;
}
.contact-form-card .p2c-altcha-check .altcha-main {
  width: 100%;
  max-width: 20rem;
  min-height: 5.5rem;
  padding: .75rem 1rem;
  border: 1px solid #d8cec4;
  border-radius: 10px;
  background: #fffaf6;
}
.contact-form-card .p2c-altcha-check .altcha-checkbox {
  position: relative;
  width: 22px;
  height: 22px;
}
.contact-form-card .p2c-altcha-check .altcha-checkbox input {
  width: 22px;
  height: 22px;
  border: 1px solid #829392;
  border-radius: 4px;
  background: #fff;
}
.contact-form-card .p2c-altcha-check .altcha-main > div:first-child {
  width: 100%;
  gap: .75rem;
  align-items: center;
  justify-content: space-between;
}
.contact-form-card .p2c-altcha-check .altcha-main > div:first-child > div:last-child {
  flex: 0 0 auto;
  margin-left: auto;
}
.contact-form-card .p2c-altcha-check .altcha-checkbox input:checked {
  background: #62b653;
  border-color: #62b653;
}
.contact-form-card .p2c-altcha-check .altcha-checkbox input:checked + svg {
  color: #fff;
  stroke: #fff;
}

/* The 404 page introduces Aurore's Pain perdu illustration. */
.not-found-page {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 87% 17%, rgba(232,161,38,.12), transparent 22rem),
              radial-gradient(circle at 5% 90%, rgba(79,127,131,.10), transparent 25rem),
              var(--paper);
}
.not-found-layout {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(18rem,.8fr);
  align-items: center;
  gap: clamp(2rem,6vw,6rem);
  min-height: min(45rem,85vh);
  padding-block: clamp(3.5rem,7vw,6rem);
}
.not-found-copy { max-width: 38rem; }
.not-found-code {
  margin: .2rem 0 .65rem;
  color: var(--sea);
  font-size: clamp(4rem,9vw,7.5rem);
  font-weight: 800;
  line-height: .95;
  letter-spacing: -.08em;
}
.not-found-code span { color: var(--sun); font-size: .45em; vertical-align: .25em; }
.not-found-copy h1 {
  margin: 0 0 1.4rem;
  font-size: clamp(2.4rem,5.2vw,4.7rem);
  line-height: 1.04;
  letter-spacing: -.055em;
}
.not-found-copy > p:not(.eyebrow):not(.not-found-code):not(.not-found-help) {
  max-width: 34rem;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.75;
}
.not-found-copy .not-found-lead { color: var(--ink) !important; font-size: clamp(1.1rem,1.6vw,1.25rem) !important; }
.not-found-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.not-found-actions .button { gap: .55rem; }
.not-found-actions .button:focus-visible,
.not-found-help a:focus-visible { outline: 3px solid var(--sea); outline-offset: 4px; }
.not-found-help { margin-top: 1.5rem; color: var(--muted); font-size: .95rem; }
.not-found-help a { color: var(--sea); font-weight: 800; text-underline-offset: 3px; }
.not-found-art {
  justify-self: center;
  width: min(100%,25rem);
  margin: 0;
  padding: .65rem;
  transform: rotate(2deg);
  border: 1px solid #e6dbcf;
  border-radius: .5rem;
  background: #fff;
  box-shadow: 0 1.6rem 3.5rem rgba(87,56,38,.16);
}
.not-found-art img { width: 100%; height: auto; border-radius: .25rem; }
@media (max-width: 760px) {
  .not-found-layout { grid-template-columns: 1fr; min-height: 0; gap: 2.5rem; padding-block: 3.5rem 4.5rem; }
  .not-found-art { width: min(75%,19rem); transform: rotate(1deg); }
}
@media (max-width: 430px) {
  .not-found-actions { flex-direction: column; }
  .not-found-actions .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .not-found-actions .button { transition: none; }
  .not-found-actions .button:hover { transform: none; }
}
