
/* Shared visual language: identical component rules across all page templates. */
:root {
  --orange: #f76009;
  --orange-dark: #ad3e00;
  --orange-hover: #873000;
  --orange-soft: #fff0df;
  --body-font: system-ui, -apple-system, "Segoe UI", sans-serif;
  --handwriting: "Gochi Hand", "Comic Sans MS", cursive;
}
body :is(main, .footer-venues, .site-footer) :is(h1, h2, h3),
.footer-establishments-copy > strong {
  font-family: var(--handwriting) !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.12;
  text-wrap: balance;
}
body :is(.eyebrow, .site-type, .registration-tag),
.footer-establishments-copy > span {
  font-family: var(--body-font);
  font-size: .75rem;
  font-weight: 750;
  letter-spacing: .06em;
  line-height: 1.3;
  text-transform: none;
  color: var(--orange-dark);
}
body .eyebrow, body .registration-tag {
  padding: 7px 14px;
  border: 1px solid #f6c79f;
  border-radius: 999px;
  background: var(--orange-soft);
}
body :is(.button, .wp-block-button__link),
body .menu .button.is-active {
  background: var(--orange-dark);
  border-color: var(--orange-dark);
  color: white;
  box-shadow: 0 7px 18px rgb(173 62 0 / 18%);
  font-family: inherit;
  font-weight: 750;
  border-radius: 999px;
}
body :is(.button, .wp-block-button__link):hover,
body .menu .button:hover, body .menu .button.is-active:hover {
  background: var(--orange-hover);
  border-color: var(--orange-hover);
  color: white;
  box-shadow: 0 9px 22px rgb(173 62 0 / 23%);
}
body .button.alt { background: transparent; color: var(--orange-dark); border-color: var(--orange-dark); box-shadow: none; }
body .button.alt:hover { background: var(--orange-dark); color: white; }
body :is(.text-link, .news-card-link, .breadcrumbs a, .nursery-facts a, .contact-details a) { color: var(--orange-dark); }
body :is(.icon, .solution-cards .card:nth-child(2) .icon, .solution-cards .card:nth-child(3) .icon) { background: var(--orange); color: #16324b; }
body :is(.approach-icon, .section-number, .activity-grid article > span, .about-expertise span, .charter-head > span, .value-grid span, .footer-card-arrow) {
  background: var(--orange-soft); color: var(--orange-dark); border-radius: 12px;
}
body :is(.section-number, .activity-grid article > span, .about-expertise span, .charter-head > span, .value-grid span) {
  font-family: var(--handwriting); font-size: 1.25rem; font-weight: 400; letter-spacing: 0;
}
body :is(.nursery-note, .soft-callout, .publication-status, .news-single-summary) {
  background: var(--orange-soft); border-left: 5px solid var(--orange); border-radius: 0 20px 20px 0;
}
body :is(.opening-announcement-card, .club-vacances-feature) { background: var(--orange-soft); }
body .opening-announcement-logo { box-shadow: 0 0 0 5px #ffd6b3; }
body .footer-establishment-logos > a::before { background: var(--orange); }
body .footer-establishment-logos > a:hover .footer-card-arrow { background: var(--orange-dark); color: white; }
body :is(.source-gallery figcaption, .footer-handwritten-note) { font-family: var(--handwriting); color: var(--orange-dark); font-size: 1.35rem; font-style: normal; }
body .page-qui-sommes-nous .classic-quote { font-family: var(--handwriting); font-style: normal; }
body :is(.registration-card, .registration-card:nth-child(2), .registration-card:nth-child(3)) { background: #fffaf4; border: 1px solid #f4dac4; }
body .registration-card h3 { font-size: 2rem; }
body .prose h3 { font-size: clamp(1.5rem, 2.2vw, 1.9rem); }
body .prose h2 { font-size: clamp(2rem, 3.5vw, 2.7rem); }
body .menu a.is-active:not(.button), body .menu a:hover { color: var(--orange-dark); }
body .submenu a.is-active { background: var(--orange-soft); color: var(--orange-dark); }
body :is(a, button, input, textarea, select):focus-visible { outline: 3px solid var(--orange-dark); outline-offset: 4px; }
body .site-footer a:focus-visible { outline-color: #ffb77d; }
@media (max-width: 700px) {
  body .page-hero h1 { font-size: clamp(2.6rem, 11vw, 4rem); }
  body .hero :is(h1,h2) { font-size: clamp(2.5rem, 10vw, 3.6rem); }
  body .hero-title-lock { white-space: normal; }
}

/* Review: calm card surfaces and functional labels in the body typeface. */
@media (min-width: 1101px) {
  .site-header::before { width: max(490px, calc((100vw - 1180px) / 2 + 490px)); }
}
body main :is(.activity-grid, .psu-simulator) h3 {
  font-family: var(--body-font) !important;
  font-weight: 750 !important;
  font-size: 1.12rem;
  line-height: 1.4;
  text-wrap: initial;
}
body :is(.nursery-value-grid, .activity-grid) article,
body :is(.nursery-value-grid, .activity-grid) article:nth-child(even) {
  background: #fffaf4;
  border: 1px solid #efdfd0;
}
body .site-footer .footer-instagram {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  margin: 0 0 12px;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 12px;
  color: #fff;
  background: rgba(255,255,255,.06);
  font-size: .9rem;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}
body .site-footer .footer-instagram:hover {
  background: rgba(255,255,255,.14);
  border-color: #ffb77d;
  color: #fff;
}
.footer-instagram svg { width: 19px; height: 19px; flex: 0 0 19px; }


/* Accessibility: visible keyboard focus, bypass link and reduced motion. */
.skip-link{position:fixed;top:8px;left:8px;z-index:10000;padding:12px 18px;background:#16324b;color:#fff;transform:translateY(-180%);border-radius:8px}
.skip-link:focus{transform:none}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #16324b;outline-offset:4px;box-shadow:0 0 0 6px #fff}
#main-content:focus{outline:none}
.map-privacy-note{color:#16324b;font-size:1rem;line-height:1.6}
.nursery-location-map,.contact-map{padding:20px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px}
.hero-slider-pause{font-size:.875rem;min-height:44px;white-space:normal}
.hero-slider-controls{flex-wrap:wrap}
#contact-privacy,#contact-required{font-size:1rem;line-height:1.6;color:#16324b}
#contact-privacy a{text-decoration:underline}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}

.contact-hours strong{color:#17695d!important}
.prose small{color:#405765}

/* Let content wrap within narrow grid columns (320 CSS pixels). */
.page-content-grid>*,.contact-location,.contact-location-body,.contact-form-section>*{min-width:0}
.prose{overflow-wrap:anywhere}
.prose .button{white-space:normal;max-width:100%}
.contact-form input,.contact-form select,.contact-form textarea{min-width:0;max-width:100%}

.contact-feedback{grid-column:1/-1}
.contact-feedback:focus{outline:3px solid #16324b;outline-offset:4px}
.contact-feedback[hidden]{display:none}
.contact-feedback a{text-decoration:underline}
.contact-field-error{display:block;color:#981d38;font-size:.95rem;font-weight:600}
.contact-form [aria-invalid="true"]{border:2px solid #981d38}
.contact-form button:disabled{opacity:.7;cursor:wait}
