
/* Local reliability, accessibility and responsive corrections. */
html { overflow-x: clip; }
body { overflow-x: clip; min-width: 0; }
main, header, footer, section, article, aside, nav, div { min-width: 0; }
img, svg, video, canvas { max-width: 100%; }
img { height: auto; }
:root {
  --font-family-body: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-family-heading: Georgia, "Times New Roman", serif;
  --color-on-primary: #19120e;
  --color-on-accent: #19120e;
}
main > section:not(.galerie-realisations):not(.hero-accueil):not(.hero-section):not(.hero-prestations):not(.hero-contact-section) { padding-top: clamp(4rem, 7vw, 6.5rem); padding-bottom: clamp(4rem, 7vw, 6.5rem); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(251, 247, 242, .94);
  box-shadow: 0 1px 0 rgba(81, 68, 61, .12), 0 8px 28px rgba(81, 68, 61, .06);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.navigation-wrapper {
  position: relative;
  display: block;
  padding: .75rem 0;
  border-bottom: 0;
  background: transparent;
}
.navigation-container { min-height: 46px; }
.navigation-brand { gap: .65rem; }
.navigation-brand .section-title { font-size: 1.3rem; line-height: 1; }
.navigation-logo-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-primary) 14%, transparent);
}
.navigation-desktop-links { gap: .35rem; }
.navigation-desktop-links .navigation-link {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: .45rem .8rem;
  border-radius: 999px;
}
.navigation-desktop-links .navigation-link::after { display: none; }
.navigation-desktop-links .navigation-link:hover,
.navigation-desktop-links a[aria-current="page"] .navigation-link {
  color: #334221;
  background: color-mix(in srgb, var(--color-primary) 15%, transparent);
}
.navigation-desktop-links .btn-sm { padding: .65rem 1.15rem; border-radius: 999px; }
.btn, button, input, select, textarea { max-width: 100%; }
.btn { color: inherit; text-align: center; white-space: normal; }
.btn-primary { color: #19120e; }
.btn-secondary { color: #fff; }
.btn-accent { color: #19120e; }
.btn-outline { color: #334221; }
.footer-root { color: #f8f6f2; background: #3f3530; }
.footer-root .footer-heading, .footer-root .footer-nav-link, .footer-root .footer-contact-link, .footer-root .section-content, .footer-root .footer-copyright { color: #f8f6f2; opacity: 1; }
.footer-root .footer-contact-item { color: #f8f6f2; }
.footer-root .footer-brand-name, .footer-root .footer-social-icon { color: #dfe9c9; }
.footer-root .footer-divider { background: rgba(255,255,255,.28); }
.footer-social-links [role="img"] { cursor: default; }
.footer-legal { flex-wrap: wrap; }
.footer-nav-list { padding-left: 0; }
.reveal-item { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.reveal-item.is-visible { opacity: 1; transform: translateY(0); }
.form-input, .form-textarea, select { width: 100%; }
.form-label-checkbox a { text-decoration: underline; font-weight: 600; }
.site-form-feedback-elm1, .site-form-feedback-elm2, .contact-site-form-feedback-elm1, .contact-site-form-feedback-elm2 { display: none; }
:focus-visible { outline: 3px solid #5f7544; outline-offset: 3px; }

@media (max-width: 991px) {
  .footer-grid { flex-wrap: wrap; }
  .footer-column { min-width: min(100%, 260px); }
  .panel-layout, .steps-horizontal, .cta-info { flex-direction: column; }
  .steps-horizontal::before { display: none; }
  .evenementiel-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  :root {
    --font-size-4xl: clamp(2rem, 9vw, 2.65rem);
    --font-size-3xl: clamp(1.65rem, 7vw, 2.1rem);
    --font-size-2xl: clamp(1.35rem, 5.5vw, 1.65rem);
  }
  .navigation-container, .navigation-mobile-header, .navigation-mobile-content,
  .footer-container, [class$="-container"] { padding-left: max(1rem, env(safe-area-inset-left)); padding-right: max(1rem, env(safe-area-inset-right)); }
  main > section:not(.galerie-realisations):not(.hero-accueil):not(.hero-section):not(.hero-prestations):not(.hero-contact-section) { padding-top: 3.75rem; padding-bottom: 3.75rem; }
  main h1, main h2, main h3, .hero-title, .section-title, .section-subtitle { text-align: center; overflow-wrap: anywhere; }
  .hero-contact-card, .contact-form-card, .cta-card-wrapper, .commandes-form-teaser { padding: 1.5rem; }
  .hero-accueil-content, .hero-content-region, .hero-prestations-content, .hero-contact-container { text-align: center; }
  .hero-accueil-actions, .hero-prestations-actions, .cta-buttons { width: 100%; flex-direction: column; align-items: stretch; }
  .hero-accueil-actions a, .hero-prestations-actions a, .cta-buttons a, .hero-contact-actions a { width: 100%; }
  .hero-accueil-actions .btn, .hero-prestations-actions .btn, .cta-buttons .btn, .hero-contact-actions .btn { width: 100%; justify-content: center; }
  .catalogue-grid, .services-galerie-grid, .evenementiel-steps, .form-grid, .practical-info-grid { grid-template-columns: 1fr !important; }
  .footer-grid { flex-direction: column; gap: 2.5rem; }
  .footer-column, .footer-brand-tagline { max-width: 100%; min-width: 0; text-align: center; }
  .footer-social-links, .footer-contact-item { justify-content: center; }
  .footer-nav-list, .footer-contact-info { align-items: center; }
  .services-avis-card, .avis-card { flex-basis: min(88vw, 360px); }
  .panel-layout { padding: 1.25rem; }
  .panel-image img { height: auto; max-height: 360px; }
  .contact-form-element, .form-group { min-width: 0; }
  .navigation-mobile-link { font-size: clamp(1.5rem, 8vw, 2rem); text-align: center; }
  .navigation-wrapper { padding-top: .65rem; padding-bottom: .65rem; }
  .navigation-container { min-height: 44px; }
}

@media (max-width: 480px) {
  .navigation-container { padding-left: 1rem; padding-right: 1rem; }
  .navigation-brand .section-title { font-size: 1.05rem; }
  .hero-contact-card, .contact-form-card, .cta-card-wrapper { padding: 1.25rem; border-radius: 20px; }
  .tab-triggers { flex-direction: column; }
  .tab-trigger { width: 100%; }
  .services-avis-rail, .avis-rail { padding-left: 1rem; padding-right: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal-item { opacity: 1; transform: none; }
}
