/* Accueil Uto’Pistes — généré par accueil-styles-build.php ; modifier les sources. */

/* Source : polices.css */
/* DM Sans et Fraunces : fichiers originaux Google Fonts, licences SIL OFL dans polices/. */
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(polices/dm-sans-latin-ext-a5d38fe99f93.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(polices/dm-sans-latin-9fea608a947e.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(polices/dm-sans-latin-ext-a5d38fe99f93.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(polices/dm-sans-latin-9fea608a947e.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(polices/dm-sans-latin-ext-a5d38fe99f93.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(polices/dm-sans-latin-9fea608a947e.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(polices/dm-sans-latin-ext-a5d38fe99f93.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(polices/dm-sans-latin-9fea608a947e.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(polices/fraunces-vietnamese-f18853f63a87.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(polices/fraunces-latin-ext-a2930b27d13a.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(polices/fraunces-latin-7234ed860a9c.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 650;
  font-display: swap;
  src: url(polices/fraunces-vietnamese-f18853f63a87.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 650;
  font-display: swap;
  src: url(polices/fraunces-latin-ext-a2930b27d13a.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 650;
  font-display: swap;
  src: url(polices/fraunces-latin-7234ed860a9c.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Source : styles.css */
:root {
  --forest: #173a32;
  --forest-dark: #0d2b24;
  --cream: #f4eedf;
  --paper: #fbf8ee;
  --sun: #efad3f;
  --terracotta: #d86f4c; --terracotta-ink:#a0472e;
  --sage: #8fab80;
  --sky: #a9cbd0;
  --mint: #c7d8be;
  --ink: #173a32;
  --muted: #53655f;
  --line: rgba(23, 58, 50, .18);
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'DM Sans', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.6; overflow-x: hidden; }
a { color: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: -100px; left: 1rem; padding: .8rem 1rem; background: var(--sun); color: var(--forest-dark); }
.skip-link:focus { top: 1rem; }

.site-header {
  position: absolute;
  z-index: 50;
  inset: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1240px, calc(100% - 3rem));
  margin: 0 auto;
  padding: 1.65rem 0;
  color: var(--cream);
}

.brand { display: inline-flex; align-items: center; gap: .65rem; font-size: 1.05rem; letter-spacing: .1em; text-decoration: none; }
.brand strong { font-weight: 700; }
.brand-wording { display: inline-flex; flex-wrap: wrap; gap: .15rem .38rem; align-items: baseline; }
.brand-wording small { font-size: .56rem; font-weight: 600; letter-spacing: .075em; opacity: .72; text-transform: uppercase; }
.brand-mark { display: grid; width: 2rem; height: 2rem; border-radius: 50%; background: var(--sun); color: var(--forest); font-size: .85rem; place-items: center; }
.site-header nav { display: flex; align-items: center; gap: clamp(.65rem,1.25vw,1.3rem); }
.site-header nav a { font-size: .76rem; font-weight: 600; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.site-header nav > a:not(.nav-button) { --nav-tilt: -1.35deg; position: relative; display: inline-block; opacity: .72; transform: translateY(0) rotate(0) scale(1); transform-origin: center bottom; transition: color .25s ease, opacity .25s ease, transform .28s cubic-bezier(.2,.8,.2,1); }
.site-header nav > a:nth-child(even):not(.nav-button) { --nav-tilt: 1.35deg; }
.site-header nav > a:not(.nav-button)::after { position: absolute; right: 0; bottom: -.38rem; left: 0; height: 3px; border-radius: 50%; background: linear-gradient(90deg,var(--terracotta),var(--sun)); content: ""; transform: rotate(-1.5deg) scaleX(0); transform-origin: left center; transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.site-header nav > a:not(.nav-button)[aria-current="page"] { opacity: 1; }
.site-header nav > a:not(.nav-button):is(:hover,:focus-visible) { opacity: 1; transform: translateY(-3px) rotate(var(--nav-tilt)) scale(1.055); }
.site-header nav > a:not(.nav-button):is(:hover,:focus-visible,[aria-current="page"])::after { transform: rotate(-1.5deg) scaleX(1); }
.site-header nav > a:not(.nav-button):focus-visible { border-radius: 3px; outline: 2px solid var(--sun); outline-offset: 7px; }
.site-header .brand { transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.site-header .brand .brand-mark { transition: box-shadow .3s ease, transform .42s cubic-bezier(.2,.8,.2,1); }
.site-header .brand:is(:hover,:focus-visible) { transform: translateY(-2px) scale(1.025); }
.site-header .brand:is(:hover,:focus-visible) .brand-mark { box-shadow: 0 0 0 5px rgba(239,173,63,.16); transform: rotate(24deg) scale(1.1); }
.site-header .brand:focus-visible { border-radius: 3px; outline: 2px solid var(--sun); outline-offset: 6px; }
.nav-button { position: relative; display: inline-flex; align-items: center; border: 1px solid rgba(244,238,223,.45); border-radius: 999px; padding: .7rem 1rem; transform: translateY(0) rotate(0); transition: background .25s ease, box-shadow .25s ease, color .25s ease, transform .28s cubic-bezier(.2,.8,.2,1); }
.site-header nav > .nav-family-link { border: 1px solid rgba(244,238,223,.35); border-radius: 999px; padding: .48rem .7rem; background: var(--sky); color: var(--forest-dark); opacity: 1; }
.site-header nav > .nav-family-link::after { display: none; }
.site-header nav > .nav-family-link:is(:hover,:focus-visible) { background: var(--cream); color: var(--forest-dark); }
.nav-button::after { display: inline-block; margin-left: .45rem; content: "\2192"; transition: transform .25s ease; }
.nav-button[aria-current="page"] { border-color: var(--sun); background: rgba(244,238,223,.1); }
.nav-button:is(:hover,:focus-visible) { background: var(--cream); color: var(--forest); box-shadow: 3px 4px 0 rgba(13,43,36,.18); transform: translateY(-3px) rotate(1deg) scale(1.035); }
.nav-button:is(:hover,:focus-visible)::after { transform: translateX(4px); }
.nav-button:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }
.menu-toggle { display: none; border: 0; background: transparent; transition: background .25s ease, transform .28s cubic-bezier(.2,.8,.2,1); }
.menu-toggle:is(:hover,:focus-visible) { background: rgba(244,238,223,.1); transform: rotate(7deg) scale(1.06); }
.menu-toggle:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }

.back-to-top { position: fixed; z-index: 45; right: clamp(1rem,2.2vw,2rem); bottom: clamp(1rem,2.2vw,2rem); display: grid; width: 52px; height: 52px; border: 2px solid var(--forest-dark); border-radius: 50%; padding: 0; background: var(--sun); color: var(--forest-dark); box-shadow: 5px 6px 0 rgba(13,43,36,.2); font: 700 1.35rem/1 var(--sans); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(14px) rotate(7deg); transition: opacity .22s ease, visibility .22s ease, transform .22s ease, box-shadow .22s ease; place-items: center; pointer-events: none; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0) rotate(3deg); pointer-events: auto; }
.back-to-top:hover { box-shadow: 2px 3px 0 rgba(13,43,36,.24); transform: translateY(-3px) rotate(-4deg); }
.back-to-top:focus-visible { outline: 4px solid var(--cream); outline-offset: 3px; }

.hero {
  position: relative;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  align-items: center;
  min-height: 100vh;
  padding: 10.2rem max(6vw, calc((100vw - 1240px) / 2)) 8.5rem;
  background: var(--forest);
  color: var(--cream);
  overflow: hidden;
}

.hero::before { content: ''; position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; opacity: .38; pointer-events: none; }
.hero-copy { position: relative; z-index: 5; align-self: center; max-width: 700px; padding-bottom: 2rem; }
.hero-recruitment-link { display: inline-flex; gap: .65rem; align-items: center; margin-bottom: 1.15rem; border: 2px solid rgba(244,238,223,.68); border-radius: 999px; padding: .48rem .78rem .48rem .5rem; background: var(--sky); color: var(--forest-dark); box-shadow: 0 9px 24px rgba(0,0,0,.18); font-size: .68rem; font-weight: 800; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; transition: filter .22s ease, box-shadow .22s ease, transform .22s ease; }
.hero-recruitment-link span { border-radius: 999px; padding: .38rem .55rem; background: var(--forest-dark); color: var(--cream); font-size: .58rem; letter-spacing: .08em; }
.hero-recruitment-link b { color: var(--forest-dark); font-size: .9rem; transition: transform .22s ease; }
.hero-recruitment-link:hover, .hero-recruitment-link:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; filter: brightness(1.06); box-shadow: 0 13px 30px rgba(0,0,0,.24); transform: translateY(-3px) rotate(-.4deg); }
.hero-recruitment-link:hover b, .hero-recruitment-link:focus-visible b { transform: translateX(4px); }
.eyebrow { margin: 0 0 1.35rem; font-size: .71rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.section-kicker { display: inline-flex; align-items: center; gap: .7rem; margin-bottom: 1.15rem; font-size: clamp(.86rem,1.1vw,1rem); font-weight: 800; letter-spacing: .135em; line-height: 1.25; }
.section-kicker::before { display: block; flex: 0 0 auto; width: 1.8rem; height: 3px; border-radius: 999px; background: currentColor; content: ""; transform: rotate(-3deg); }
.hero .eyebrow { color: var(--mint); }
h1, h2, h3 { margin-top: 0; font-family: var(--serif); font-weight: 500; line-height: 1.03; }
h1 { margin-bottom: 1.6rem; font-size: clamp(3.55rem, 6.25vw, 6.6rem); letter-spacing: -.055em; }
h1 em { color: var(--sun); font-weight: 500; }
.hero-intro { max-width: 610px; margin: 0 0 2.4rem; color: rgba(244,238,223,.78); font-size: clamp(1rem, 1.25vw, 1.16rem); }
.hero-actions { display: flex; align-items: center; gap: 1.8rem; }
.button { display: inline-flex; align-items: center; gap: 1.1rem; border-radius: 999px; padding: .9rem 1rem .9rem 1.35rem; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, background .2s ease; }
.button span { display: grid; width: 2.15rem; height: 2.15rem; border-radius: 50%; place-items: center; }
.button:hover { transform: translateY(-3px); }
.button-sun { background: var(--sun); color: var(--forest-dark); }
.button-sun span { background: var(--forest-dark); color: var(--cream); }
.button-outline { border: 1px solid currentColor; background: transparent; color: var(--forest); }
.simple-link { border-bottom: 1px solid rgba(244,238,223,.5); padding: .35rem 0; font-size: .76rem; font-weight: 600; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }

.hero-visual { position: relative; z-index: 2; align-self: center; min-height: 610px; padding: 1.5rem 0 0 5rem; }
.illustration-card { position: relative; width: min(100%, 480px); margin: 0 0 0 auto; border: 10px solid var(--cream); background: var(--cream); box-shadow: 0 28px 55px rgba(7,30,24,.34); transform: rotate(1.6deg); }
.illustration-card::before { content: ''; position: absolute; z-index: 2; inset: -10px; border: 1px solid rgba(23,58,50,.22); pointer-events: none; }
.illustration-card img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.paper-tape { position: absolute; z-index: 5; width: 94px; height: 25px; background: rgba(239,173,63,.82); box-shadow: 0 2px 5px rgba(73,43,22,.18); }
.tape-top { top: -19px; left: 44%; transform: rotate(-5deg); }
.illustration-caption { display: block; padding: .7rem .4rem .3rem; color: var(--forest); font-family: var(--serif); font-size: .82rem; font-style: italic; letter-spacing: .035em; text-align: center; }
.hero-logo { position: absolute; z-index: 8; top: 3%; left: 0; width: clamp(180px, 17vw, 245px); aspect-ratio: 1; border-radius: 50%; padding: .45rem; background: var(--cream); box-shadow: 0 18px 38px rgba(7,30,24,.32); transform: rotate(-7deg); }
.hero-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hero-logo::after { content: ''; position: absolute; inset: 5px; border: 2px dashed rgba(216,111,76,.48); border-radius: 50%; pointer-events: none; }
.drawn-star { position: absolute; z-index: 9; color: var(--sun); font-size: 1.7rem; line-height: 1; filter: drop-shadow(0 3px 3px rgba(5,29,22,.25)); }
.star-one { top: 4%; right: 0; transform: rotate(13deg); }
.star-two { bottom: 10%; left: 11%; color: var(--terracotta); font-size: 1.25rem; }
.orange-doodle { position: absolute; z-index: 9; right: -1%; bottom: 3%; color: var(--terracotta); font-family: var(--serif); font-size: 3rem; font-weight: 700; transform: rotate(-18deg); }

.hero-badges { position: absolute; z-index: 10; right: max(6vw, calc((100vw - 1240px) / 2)); bottom: 1.35rem; left: max(6vw, calc((100vw - 1240px) / 2)); display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; border-top: 1px solid rgba(244,238,223,.2); padding-top: 1rem; background: transparent; }
.hero-badges span { display: block; padding: .1rem .2rem; color: var(--cream); font-family: var(--serif); font-size: clamp(.82rem,1.15vw,1.08rem); font-weight: 650; letter-spacing: .025em; line-height: 1.2; text-align: center; text-transform: uppercase; animation: manifesto-in .75s both; }
.hero-badges span:nth-child(1) { color: var(--sun); animation-delay: .1s; }
.hero-badges span:nth-child(2) { color: var(--cream); animation-delay: .2s; }
.hero-badges span:nth-child(3) { color: var(--mint); animation-delay: .3s; }
.hero-badges span:nth-child(4) { color: var(--sky); animation-delay: .4s; }

.experience { padding: clamp(6rem, 10vw, 10rem) max(5vw, calc((100vw - 1240px) / 2)) 0; background: var(--paper); }
.experience-heading { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: end; margin-bottom: 5.5rem; }
.terracotta { color: var(--terracotta-ink); }
h2 { margin-bottom: 0; font-size: clamp(3rem, 5vw, 5.3rem); letter-spacing: -.05em; }
h2 em { color: var(--terracotta-ink); font-weight: 500; }
.lead { margin: 0 0 .5rem; color: var(--muted); font-size: 1.08rem; }

.worlds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.world { display: flex; flex-direction: column; min-height: 610px; border-radius: 2px; overflow: hidden; box-shadow: 0 13px 30px rgba(27,54,46,.08); transition: transform .25s ease, box-shadow .25s ease; }
.world:hover { transform: translateY(-6px); }
.world:hover { box-shadow: 0 20px 42px rgba(27,54,46,.15); }
.world-illustration { position: relative; flex: 0 0 auto; aspect-ratio: 4 / 3; overflow: hidden; background: #f5ead3; }
.world-illustration::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 12px; background: inherit; content: ""; clip-path: polygon(0 54%,8% 35%,16% 63%,25% 39%,34% 58%,43% 31%,52% 62%,62% 36%,71% 59%,80% 34%,90% 57%,100% 38%,100% 100%,0 100%); }
.world-illustration img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.world:hover .world-illustration img { transform: scale(1.025); }
.decor-vegetable { display: block; pointer-events: none; user-select: none; }
.world-number { position: absolute; top: 1rem; left: 1rem; display: grid; width: 42px; height: 42px; border: 2px solid var(--forest-dark); border-radius: 50%; background: var(--cream); color: var(--forest-dark); font-size: .7rem; font-weight: 800; letter-spacing: .08em; place-items: center; transform: rotate(-5deg); }
.world-copy { position: relative; z-index: 2; display: flex; flex: 1; flex-direction: column; justify-content: flex-end; padding: 1.8rem 1.7rem 2rem; }
.world-copy .eyebrow { margin-bottom: .7rem; }
.world h3 { margin-bottom: 1rem; font-size: clamp(2rem, 3vw, 3rem); letter-spacing: -.035em; }
.world p:last-child { margin: 0; max-width: 350px; }
.world-circus { background: var(--terracotta); color: #09221d; }
.world-garden { background: var(--sage); color: var(--forest-dark); }
.world-together { background: var(--sun); color: var(--forest-dark); }

.home-film { position: relative; display: grid; grid-template-columns: .68fr 1.32fr; gap: clamp(2rem,5vw,5rem); align-items: center; margin-top: clamp(4rem,7vw,7rem); border-radius: 40px 10px 40px 10px; padding: clamp(2rem,5vw,4.5rem); background: var(--sky); color: var(--forest-dark); overflow: hidden; }
.home-film::after { position: absolute; right: -3rem; bottom: -5rem; width: 14rem; height: 14rem; border: 2px dashed rgba(23,58,50,.22); border-radius: 50%; content: ""; }
.home-film-copy { position: relative; z-index: 2; }
.home-film-copy .eyebrow { margin-bottom: .8rem; color: var(--forest); }
.home-film-copy h3 { margin-bottom: 1.4rem; font-size: clamp(2.7rem,4.6vw,5rem); letter-spacing: -.045em; }
.home-film-copy h3 em { color: var(--terracotta-ink); font-weight: 500; }
.home-film-copy > p:not(.eyebrow) { margin: 0 0 1.8rem; color: #35544d; }
.home-film-link { display: inline-flex; gap: .7rem; align-items: center; border-bottom: 2px solid var(--forest); padding-bottom: .25rem; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }

.video-player { position: relative; aspect-ratio: 16 / 9; background: var(--forest-dark); overflow: hidden; }
.video-player img, .video-player iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: cover; }
.video-player.video-embed::after { display: none; }
.video-player img { opacity: .88; transition: opacity .25s ease, transform .55s cubic-bezier(.2,.7,.2,1); }
.video-player::after { position: absolute; inset: 0; background: linear-gradient(180deg,transparent 45%,rgba(5,25,20,.58)); content: ""; pointer-events: none; }
.video-player:hover img { opacity: 1; transform: scale(1.025); }
.video-player.is-playing::after { display: none; }
.video-play { position: absolute; z-index: 2; right: 1.25rem; bottom: 1.25rem; display: inline-flex; gap: .75rem; align-items: center; border: 0; border-radius: 999px; padding: .55rem 1rem .55rem .55rem; background: var(--cream); color: var(--forest-dark); font: 800 .68rem/1 var(--sans); letter-spacing: .07em; text-transform: uppercase; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.video-play:hover { background: var(--sun); transform: rotate(-1.5deg) scale(1.02); }
.video-play:focus-visible { outline: 3px solid var(--sun); outline-offset: 4px; }
.video-play-icon { display: grid; width: 35px; height: 35px; border-radius: 50%; background: var(--terracotta); color: #fff; font-size: .72rem; place-items: center; padding-left: 2px; }
.video-player-feature { z-index: 1; border: 8px solid var(--cream); border-radius: 8px 28px 8px 28px; transform: rotate(1.4deg); }

.garden-thread { position: relative; width: min(520px,72vw); height: 70px; margin: 4.5rem auto -5.5rem; border-top: 2px dashed rgba(216,111,76,.55); border-radius: 50%; transform: rotate(-2.5deg); }
.garden-thread::before { position: absolute; top: -6px; left: 12%; width: 10px; height: 10px; border-radius: 50%; background: var(--sun); content: ""; }
.garden-thread span { position: absolute; top: -18px; right: 12%; color: var(--terracotta); font-size: 1.2rem; }
.garden-thread .decor-carrot { position: absolute; z-index: 2; top: -4.2rem; left: 42%; width: clamp(105px,11vw,145px); height: auto; transform: rotate(-16deg); }
.scatter-star { position: absolute; z-index: 4; display: block; color: var(--sun); line-height: 1; pointer-events: none; animation: star-wink 4.8s ease-in-out infinite; }
.experience-star-one { top: -2.7rem; left: -2rem; font-size: 1.8rem; transform: rotate(-12deg); }
.experience-star-two { right: 40%; bottom: -2.2rem; color: var(--terracotta); font-size: .9rem; animation-delay: -1.6s; }
.compass-strip { position: relative; z-index: 2; width: 100vw; margin-top: clamp(8rem,12vw,12rem); margin-left: calc(50% - 50vw); padding: clamp(5.5rem,8vw,8rem) max(5vw,calc((100vw - 1240px) / 2)) clamp(5rem,8vw,7rem); background: radial-gradient(circle at 8% 24%,rgba(239,173,63,.11),transparent 24%),radial-gradient(circle at 92% 78%,rgba(169,203,208,.1),transparent 26%),var(--forest-dark); color: var(--cream); overflow: visible; }
.compass-strip::before { position: absolute; z-index: 0; top: -67px; right: 0; left: 0; height: 68px; background: var(--forest-dark); clip-path: polygon(0 74%,7% 58%,15% 70%,23% 50%,32% 67%,41% 45%,50% 63%,60% 48%,70% 68%,80% 51%,90% 65%,100% 43%,100% 100%,0 100%); content: ""; pointer-events: none; }
.decor-tomatoes { position: absolute; z-index: 3; top: -112px; right: max(4vw,calc((100vw - 1280px) / 2)); width: clamp(115px,13vw,178px); height: auto; transform: rotate(9deg); }
.decor-zucchini { position: absolute; z-index: 3; bottom: -58px; left: max(2vw,calc((100vw - 1380px) / 2)); width: clamp(135px,15vw,205px); height: auto; transform: rotate(-7deg); }
.compass-strip.is-visible .decor-tomatoes { animation: vegetable-pop .75s .25s both; }
.compass-strip.is-visible .decor-zucchini { animation: vegetable-pop .75s .55s both; }
.compass-star-one { top: 7%; right: 3%; font-size: 2.1rem; }
.compass-star-two { bottom: 12%; left: 2.5%; color: var(--sky); font-size: 1rem; animation-delay: -2.4s; }
.compass-heading { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr .78fr; gap: 4rem; align-items: end; margin-bottom: clamp(2.5rem,5vw,4.5rem); }
.compass-heading .eyebrow { margin-bottom: .8rem; color: var(--sun); }
.compass-heading h3 { max-width: 560px; margin: 0; font-size: clamp(2.5rem,4.5vw,4.8rem); letter-spacing: -.045em; }
.compass-heading > p { max-width: 440px; margin: 0 0 .55rem; color: rgba(244,238,223,.72); font-size: 1.04rem; }
.compass-layout { position: relative; z-index: 1; width: min(100%,1160px); margin: 0 auto; }
.compass-rose { position: relative; min-height: clamp(650px,63vw,760px); isolation: isolate; }
.compass-rose::before, .compass-rose::after { position: absolute; z-index: -1; top: 50%; left: 50%; border-color: rgba(239,173,63,.34); border-style: dashed; content: ""; pointer-events: none; }
.compass-rose::before { width: 2px; height: 78%; border-width: 0 0 0 2px; transform: translate(-1px,-50%); }
.compass-rose::after { width: 82%; height: 2px; border-width: 2px 0 0; transform: translate(-50%,-1px); }
.compass-art { position: absolute; z-index: 2; top: 50%; left: 50%; width: clamp(340px,40vw,470px); isolation: isolate; margin: 0; padding: clamp(.25rem,.8vw,.8rem); background: transparent; transform: translate(-50%,-50%) rotate(-2.8deg); transform-origin: center; }
.compass-art::before { position: absolute; z-index: 0; inset: -1% -2% 0; border-radius: 47% 53% 44% 56% / 53% 43% 57% 47%; background: rgba(251,248,238,.97); content: ""; transform: rotate(3.5deg); }
.compass-art::after { position: absolute; z-index: 0; inset: 1% -3% -2% 1%; border: 2px dashed rgba(239,173,63,.58); border-radius: 53% 47% 56% 44% / 46% 58% 42% 54%; content: ""; transform: rotate(-2.5deg); }
.compass-art img { position: relative; z-index: 1; display: block; width: 100%; height: auto; }
.compass-strip.is-visible .compass-art { animation: compass-float 5s ease-in-out 1s infinite; }
.compass-instruction { display: flex; justify-content: center; align-items: center; gap: .65rem; margin: 0 0 1.5rem; color: rgba(244,238,223,.68); font-size: .8rem; text-align: center; }
.compass-instruction span { display: grid; flex: 0 0 auto; width: 27px; height: 27px; border-radius: 50%; background: var(--sun); color: var(--forest); font-size: .62rem; place-items: center; }
.compass-points { position: absolute; z-index: 4; inset: 0; margin: 0; padding: 0; list-style: none; }
.compass-points li { position: absolute; width: clamp(230px,25vw,300px); color: var(--forest-dark); }
.compass-point-north { top: 0; left: 50%; transform: translateX(-50%) rotate(-1.2deg); }
.compass-point-west { top: 50%; left: 0; transform: translateY(-50%) rotate(-1deg); }
.compass-point-east { top: 50%; right: 0; transform: translateY(-50%) rotate(1deg); }
.compass-point-south { bottom: 0; left: 50%; transform: translateX(-50%) rotate(.8deg); }
.compass-points button { position: relative; display: grid; grid-template-columns: 48px minmax(0,1fr) 34px; gap: .15rem .8rem; align-items: center; width: 100%; min-height: 116px; border: 6px solid rgba(251,248,238,.96); border-radius: 48% 52% 47% 53% / 18% 22% 18% 22%; padding: .9rem 1rem; color: inherit; font: inherit; text-align: left; cursor: pointer; filter: drop-shadow(0 13px 14px rgba(0,0,0,.16)); transition: filter .25s ease, transform .25s cubic-bezier(.2,.75,.2,1); }
.compass-point-north button, .compass-point-south button { border-radius: 24% 76% 28% 72% / 48% 44% 56% 52%; }
.compass-points li:nth-child(1) button { background: var(--terracotta); }
.compass-points li:nth-child(2) button { background: var(--sage); }
.compass-points li:nth-child(3) button { background: var(--sun); }
.compass-points li:nth-child(4) button { background: var(--sky); }
.compass-points button:hover { filter: drop-shadow(0 18px 18px rgba(0,0,0,.22)) saturate(1.06); transform: translateY(-5px) scale(1.025); }
.compass-points button:focus-visible { outline: 3px solid var(--sun); outline-offset: 4px; }
.compass-point-symbol { display: grid; grid-row: 1 / 4; width: 45px; height: 45px; border: 1px dashed rgba(13,43,36,.48); border-radius: 50%; font-family: var(--serif); font-size: 1.25rem; font-weight: 700; place-items: center; }
.compass-index { grid-column: 2; font-size: .56rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.compass-points strong { grid-column: 2; font-family: var(--serif); font-size: clamp(1.35rem,2vw,1.75rem); font-weight: 650; line-height: 1; }
.compass-summary { grid-column: 2; margin-top: .2rem; font-size: .7rem; line-height: 1.3; }
.compass-action { display: contents; font-size: 0; }
.compass-action b { display: grid; grid-column: 3; grid-row: 1 / 4; width: 31px; height: 31px; border: 0; border-radius: 50%; background: rgba(255,255,255,.42); font-size: 1rem; font-weight: 400; place-items: center; transition: transform .2s ease, background .2s ease; }
.compass-points button:hover .compass-action b { transform: rotate(90deg); }
.compass-strip.is-visible .compass-points li { animation: compass-card-in .65s both; }
.compass-strip.is-visible .compass-points li:nth-child(2) { animation-delay: .1s; }
.compass-strip.is-visible .compass-points li:nth-child(3) { animation-delay: .2s; }
.compass-strip.is-visible .compass-points li:nth-child(4) { animation-delay: .3s; }

.compass-dialog { width: min(660px,calc(100% - 2rem)); max-height: calc(100vh - 2rem); border: 0; border-radius: 4px; padding: 0; background: transparent; color: var(--forest-dark); overflow: auto; }
.compass-dialog::backdrop { background: rgba(6,28,23,.76); backdrop-filter: blur(5px); }
.compass-dialog[open] { animation: dialog-in .3s cubic-bezier(.2,.75,.25,1) both; }
.compass-dialog-card { position: relative; border: 1px solid rgba(244,238,223,.65); border-top: 8px solid var(--detail-color); border-radius: 18px 6px 18px 6px; padding: clamp(2rem,5vw,3.7rem); background: var(--paper); }
.detail-sanctuaire { --detail-color: var(--terracotta); }
.detail-robustesse { --detail-color: var(--sage); }
.detail-intention { --detail-color: var(--sun); }
.detail-attention { --detail-color: var(--sky); }
.compass-dialog-close { position: absolute; top: 1rem; right: 1rem; display: grid; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--forest); font-size: 1.5rem; line-height: 1; cursor: pointer; place-items: center; transition: transform .2s ease, background .2s ease; }
.compass-dialog-close:hover { background: var(--cream); transform: rotate(90deg); }
.compass-dialog-direction { margin: 0 0 1rem; color: var(--terracotta-ink); font-size: .66rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.compass-dialog h4 { margin: 0 3rem .25rem 0; font-family: var(--serif); font-size: clamp(2.6rem,7vw,4.4rem); font-weight: 500; line-height: 1; }
.compass-dialog-intro { margin: 0 0 2rem !important; color: var(--muted); font-family: var(--serif); font-size: 1.2rem; font-style: italic; }
.compass-dialog-card > p:not(.compass-dialog-direction):not(.compass-dialog-intro):not(.compass-dialog-signature) { margin: 0 0 1rem; }
.compass-dialog-signature { margin: 2.2rem 0 0; border-top: 1px dashed var(--line); padding-top: 1.2rem; color: var(--terracotta-ink); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.colos { position: relative; min-height: 100vh; background: var(--cream); }
.colos-main { position: relative; display: grid; grid-template-columns: .92fr 1.08fr; align-items: start; }
.next-season { position: sticky; top: 0; align-self: start; display: flex; flex-direction: column; justify-content: center; min-height: 100vh; padding: clamp(5rem,8vh,7rem) max(5vw, calc((100vw - 1240px) / 2)); padding-right: clamp(3rem, 6vw, 7rem); background: var(--forest); color: var(--cream); overflow: hidden; }
.next-season::after { content: '2027'; position: absolute; right: -3vw; bottom: -4vw; color: rgba(244,238,223,.035); font-family: var(--serif); font-size: 19vw; font-weight: 650; line-height: .8; }
.season-label { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.6rem; color: var(--mint); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.season-label span { width: 8px; height: 8px; border-radius: 50%; background: var(--sun); box-shadow: 0 0 0 6px rgba(239,173,63,.14); }
.next-season h2 { position: relative; z-index: 2; margin-bottom: 1.5rem; font-size: clamp(3rem,4.6vw,5rem); }
.next-season > p:not(.season-label):not(.aid-note) { position: relative; z-index: 2; max-width: 590px; margin: 0 0 2.2rem; color: rgba(244,238,223,.72); }
.button-dark { position: relative; z-index: 2; align-self: flex-start; background: var(--sun); color: var(--forest-dark); }
.button-dark span { background: var(--forest-dark); color: var(--cream); }
.aid-support { position: relative; z-index: 2; width: min(100%,520px); margin-top: 1.5rem; }
.aid-note { max-width: 480px; margin: 0 0 .8rem; color: rgba(244,238,223,.62); font-size: .7rem; letter-spacing: .025em; }
.aid-logos { display: flex; flex-wrap: wrap; gap: .55rem; align-items: stretch; }
.aid-logo { display: flex; flex: 1 1 145px; align-items: center; justify-content: center; min-height: 72px; border: 1px solid rgba(244,238,223,.18); border-radius: 14px 5px 14px 5px; padding: .65rem .75rem; background: rgba(251,248,238,.96); }
.aid-logo img { display: block; width: 100%; max-width: 155px; height: 45px; object-fit: contain; }
.aid-logo-vacaf { flex-basis: 76px; }
.aid-logo-vacaf img { width: auto; max-width: 58px; height: 62px; }

.registration { padding: clamp(6rem, 9vw, 9rem) max(5vw, calc((100vw - 1240px) / 2)) 10rem clamp(3rem, 6vw, 7rem); }
.steps { margin: 0 0 6rem; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 3.8rem 1fr; gap: 1rem; border-top: 1px solid var(--line); padding: 1.7rem 0; }
.steps li:last-child { border-bottom: 1px solid var(--line); }
.steps li > span { display: grid; width: 2.65rem; height: 2.65rem; border: 1px solid var(--terracotta); border-radius: 50%; color: var(--terracotta-ink); font-family: var(--serif); place-items: center; }
.steps strong { font-family: var(--serif); font-size: 1.3rem; font-weight: 500; }
.steps p { margin: .3rem 0 0; color: var(--muted); font-size: .9rem; }
.steps .steps-terms { margin-top: .9rem; border: 0; border-radius: 18px 5px 18px 5px; padding: 1.45rem; background: var(--sun); box-shadow: 7px 8px 0 rgba(23,58,50,.11); transform: rotate(-.45deg); }
.steps .steps-terms > span { border-color: var(--forest-dark); background: var(--forest-dark); color: var(--cream); }
.steps .steps-terms p { color: rgba(13,43,36,.75); }
.steps-terms-link { display: inline-flex; align-items: center; gap: .75rem; margin-top: 1rem; border-radius: 999px; padding: .72rem .8rem .72rem 1rem; background: var(--forest-dark); color: var(--cream); font-size: .69rem; font-weight: 800; letter-spacing: .075em; line-height: 1.2; text-decoration: none; text-transform: uppercase; transition: background .22s ease, transform .22s ease; }
.steps-terms-link b { display: grid; flex: 0 0 auto; width: 2rem; height: 2rem; border-radius: 50%; background: var(--terracotta); color: #fff; font-size: 1rem; font-weight: 500; letter-spacing: 0; place-items: center; transition: transform .22s ease; }
.steps-terms-link:hover { background: var(--terracotta); transform: translateY(-2px) rotate(.5deg); }
.steps-terms-link:hover b { transform: translateX(3px); }
.steps-terms-link:focus-visible { outline: 3px solid var(--forest-dark); outline-offset: 3px; }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-of-type { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; gap: 2rem; padding: 1.25rem 0; cursor: pointer; font-family: var(--serif); font-size: 1.1rem; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary span { color: var(--terracotta-ink); font-family: var(--sans); transition: transform .2s; }
.faq details[open] summary span { transform: rotate(45deg); }
.faq details p { margin: -.2rem 2rem 1.5rem 0; color: var(--muted); font-size: .9rem; }
.faq-link { display: inline-flex; align-items: center; gap: 1rem; max-width: 100%; margin-top: 1.75rem; border: 1px solid var(--forest); border-radius: 999px; padding: .72rem .75rem .72rem 1.25rem; background: var(--forest); color: var(--cream); font-size: .76rem; font-weight: 700; letter-spacing: .075em; line-height: 1.25; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease; }
.faq-link span { display: grid; flex: 0 0 auto; width: 2.15rem; height: 2.15rem; border-radius: 50%; background: var(--sun); color: var(--forest-dark); font-size: 1rem; letter-spacing: 0; place-items: center; transition: transform .2s ease; }
.faq-link:hover { background: var(--terracotta); color: var(--cream); transform: translateY(-3px); }
.faq-link:hover span { transform: translateX(3px); }
.faq-link:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }

.closing-slogan { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; min-height: 72vh; border-top: 10px solid var(--sun); padding: clamp(6rem,10vw,10rem) max(6vw,calc((100vw - 1120px) / 2)) 14rem; background: var(--forest-dark); color: var(--cream); text-align: center; overflow: hidden; }
.closing-slogan::before { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); content: ""; mix-blend-mode: soft-light; opacity: .35; pointer-events: none; }
.slogan-layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(190px,270px) minmax(0,1fr); gap: clamp(2.5rem,6vw,6rem); align-items: center; width: min(100%,1180px); margin: 0 auto; }
.slogan-logo-wrap { position: relative; width: 100%; aspect-ratio: 1; border: 2px dashed rgba(216,111,76,.55); border-radius: 50%; padding: .65rem; background: var(--cream); transform: rotate(-6deg); }
.slogan-logo-wrap img { display: block; width: 100%; height: 100%; object-fit: contain; }
.slogan-tape { position: absolute; z-index: 3; top: -15px; left: 50%; width: 105px; height: 27px; background: rgba(239,173,63,.9); transform: translateX(-50%) rotate(4deg); }
.slogan-copy { text-align: left; }
.slogan-doodle { position: absolute; color: var(--sun); font-size: clamp(2rem,4vw,4rem); opacity: .7; }
.slogan-doodle-one { top: 20%; left: 8%; transform: rotate(-12deg); }
.slogan-doodle-two { right: 8%; bottom: 28%; color: var(--terracotta); transform: rotate(9deg); }
.slogan-kicker { position: relative; margin: 0 0 1.2rem; color: var(--mint); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.slogan-opening { position: relative; margin: 0 0 2rem; font-family: var(--serif); font-size: clamp(2.8rem,6vw,6.2rem); line-height: .95; }
.slogan-words { position: relative; display: grid; grid-template-columns: repeat(2,max-content); justify-content: flex-start; gap: .8rem 1rem; width: max-content; max-width: 100%; margin: 0; }
.slogan-word { display: inline-flex; align-items: center; gap: .65rem; border: 2px solid var(--cream); border-radius: 999px; padding: .55rem 1.25rem .68rem; font-family: var(--serif); font-size: clamp(1.45rem,3.1vw,3rem); line-height: 1; box-shadow: 6px 7px 0 rgba(0,0,0,.2); }
.slogan-word > span { font-family: var(--sans); font-size: .55em; }
.slogan-bellies { background: var(--sun); color: var(--forest-dark); transform: rotate(-2deg); }
.slogan-hearts { background: var(--terracotta); color: var(--cream); transform: rotate(1.5deg); }
.slogan-minds { grid-column: 1 / -1; justify-self: center; background: var(--sage); color: var(--forest-dark); transform: rotate(-1deg); }
.closing-slogan.is-visible .slogan-word { animation: slogan-float 3.6s ease-in-out infinite; }
.closing-slogan.is-visible .slogan-hearts { animation-delay: -.8s; }
.closing-slogan.is-visible .slogan-minds { animation-delay: -1.6s; }

footer { position: absolute; z-index: 5; right: max(5vw, calc((100vw - 1240px) / 2)); bottom: 2rem; left: max(5vw, calc((100vw - 1240px) / 2)); display: grid; grid-template-columns: 1fr 1fr .6fr; gap: 2rem; align-items: end; border-top: 1px solid rgba(244,238,223,.16); padding-top: 1.3rem; color: rgba(244,238,223,.56); pointer-events: none; }
footer .brand, footer a { color: var(--cream); pointer-events: auto; }
footer p { margin: 0; font-size: .67rem; letter-spacing: .05em; line-height: 1.55; text-transform: uppercase; }
.footer-links { display: flex; flex-direction: column; align-items: flex-end; gap: .4rem; }
.footer-links a { font-size: .69rem; font-weight: 600; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.footer-copyright { grid-column: 1 / -1; border-top: 1px solid rgba(244,238,223,.12); padding-top: .85rem; color: rgba(244,238,223,.5); font-size: .61rem; letter-spacing: .075em; text-align: center; }
.footer-copyright time { font: inherit; }

/* Page FAQ */
.button .button-label { display: inline; width: auto; height: auto; border-radius: 0; background: transparent; place-items: initial; }
.faq-page { background: var(--paper); }
.faq-page [hidden] { display: none !important; }

.faq-hero {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  min-height: 83vh;
  padding: 10.5rem max(6vw,calc((100vw - 1240px) / 2)) 7rem;
  background: var(--forest);
  color: var(--cream);
  overflow: hidden;
}
.faq-hero::before { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); content: ""; mix-blend-mode: soft-light; opacity: .38; pointer-events: none; }
.faq-hero::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 44px; background: var(--paper); clip-path: polygon(0 82%,7% 55%,14% 76%,23% 49%,32% 72%,41% 43%,50% 69%,59% 47%,69% 73%,79% 50%,89% 70%,100% 42%,100% 100%,0 100%); content: ""; }
.faq-hero-copy { position: relative; z-index: 3; max-width: 720px; }
.faq-hero-copy .eyebrow { color: var(--mint); }
.faq-hero-copy h1 { margin-bottom: 1.7rem; font-size: clamp(3.7rem,6.6vw,7.2rem); }
.faq-hero-copy h1 em { color: var(--sun); }
.faq-hero-copy > p:not(.eyebrow) { max-width: 640px; margin: 0 0 2.2rem; color: rgba(244,238,223,.76); font-size: clamp(1rem,1.3vw,1.18rem); }
.faq-hero-visual { position: relative; z-index: 2; min-height: 485px; }
.faq-postcard { position: absolute; top: 5%; right: 1%; width: min(90%,430px); margin: 0; border: 9px solid var(--cream); background: var(--cream); box-shadow: 0 25px 55px rgba(5,29,22,.32); transform: rotate(3deg); }
.faq-postcard img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.faq-postcard figcaption { padding: .75rem .4rem .35rem; color: var(--forest); font-family: var(--serif); font-size: .88rem; font-style: italic; text-align: center; }
.faq-postcard .paper-tape { top: -18px; left: 40%; transform: rotate(-5deg); }
.faq-logo-stamp { position: absolute; z-index: 4; right: -2%; bottom: -1%; width: clamp(145px,15vw,205px); aspect-ratio: 1; border-radius: 50%; padding: .4rem; background: var(--cream); transform: rotate(-8deg); }
.faq-logo-stamp img { display: block; width: 100%; height: 100%; object-fit: contain; }
.faq-logo-stamp::after { position: absolute; inset: 5px; border: 2px dashed rgba(216,111,76,.48); border-radius: 50%; content: ""; }
.faq-big-question { position: absolute; z-index: 4; bottom: -2%; left: 5%; color: var(--sun); font-family: var(--serif); font-size: clamp(8rem,17vw,15rem); font-weight: 650; line-height: .75; opacity: .92; transform: rotate(-9deg); }
.faq-star-one { top: 1%; left: 8%; }
.faq-star-two { top: 12%; right: -2%; color: var(--terracotta); font-size: 1rem; }

.faq-tools { padding: clamp(6rem,9vw,9rem) max(5vw,calc((100vw - 1240px) / 2)) clamp(4rem,7vw,6rem); }
.faq-tools-heading { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(3rem,8vw,8rem); align-items: end; }
.faq-tools-heading h2 { font-size: clamp(3rem,5vw,5.3rem); }
.faq-tools-heading h2 em { color: var(--terracotta-ink); }
.faq-search-wrap { padding-bottom: .6rem; }
.faq-search-wrap label { display: block; margin-bottom: .65rem; color: var(--muted); font-family: var(--serif); font-size: 1rem; }
.faq-search-field { display: flex; align-items: center; gap: .8rem; border-bottom: 2px solid var(--forest); padding: .75rem .15rem; }
.faq-search-field > span { color: var(--terracotta-ink); font-size: 1.65rem; line-height: 1; transform: rotate(-10deg); }
.faq-search-field input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--forest); font: 500 1rem var(--sans); }
.faq-search-field input::placeholder { color: var(--muted); opacity: 1; }
.faq-search-field:focus-within { outline: 3px solid var(--forest); outline-offset: 4px; }
.faq-search-status { margin: .55rem 0 0; color: var(--terracotta-ink); font-size: .69rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.faq-chapters { display: grid; grid-template-columns: repeat(3,1fr); gap: .7rem; margin-top: clamp(3rem,6vw,5rem); }
.faq-chapters a { display: flex; align-items: center; gap: .75rem; min-height: 68px; border: 1px solid var(--line); border-radius: 18px 5px 18px 5px; padding: .85rem 1rem; background: rgba(244,238,223,.58); font-size: .78rem; font-weight: 700; letter-spacing: .035em; text-decoration: none; transition: transform .2s ease, background .2s ease; }
.faq-chapters a:nth-child(even) { border-radius: 5px 18px 5px 18px; }
.faq-chapters a:hover { background: var(--cream); transform: translateY(-3px) rotate(-.4deg); }
.faq-chapters span { display: grid; flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: var(--forest); color: var(--cream); font-family: var(--serif); font-size: .72rem; place-items: center; }

.faq-directory { background: var(--cream); }
.faq-category { --faq-accent: var(--terracotta); display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: clamp(3rem,8vw,8rem); border-top: 1px solid var(--line); padding: clamp(5rem,8vw,8rem) max(5vw,calc((100vw - 1240px) / 2)); scroll-margin-top: 1rem; }
.faq-category:nth-child(even) { background: rgba(251,248,238,.76); }
.faq-category-sage { --faq-accent: var(--sage); }
.faq-category-sun { --faq-accent: var(--sun); }
.faq-category-sky { --faq-accent: var(--sky); }
.faq-category-terracotta { --faq-accent: var(--terracotta); }
.faq-category-garden { --faq-accent: #66845f; }
.faq-category-garden .faq-category-number { background: var(--sage); }
.faq-category-heading { position: sticky; top: 2rem; align-self: start; }
.faq-category-heading .eyebrow { margin-bottom: .65rem; color: var(--terracotta-ink); }
.faq-category-heading h2 { font-size: clamp(2.65rem,4.2vw,4.7rem); }
.faq-category-number { display: grid; width: 56px; height: 56px; margin-bottom: 2rem; border: 2px solid var(--forest); border-radius: 50%; background: var(--faq-accent); color: #09221d; font-family: var(--serif); font-size: 1.05rem; place-items: center; transform: rotate(-6deg); }
.faq-category-doodle { display: block; margin: 2.3rem 0 0 1rem; color: var(--faq-accent); font-family: var(--serif); font-size: 3.2rem; font-weight: 650; line-height: 1; transform: rotate(-12deg); }
.faq-list { border-bottom: 1px solid var(--line); }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list summary { display: grid; grid-template-columns: 1fr 43px; gap: 1.5rem; align-items: center; min-height: 84px; padding: 1.25rem .25rem 1.25rem 0; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-question { font-family: var(--serif); font-size: clamp(1.12rem,1.65vw,1.42rem); font-weight: 500; line-height: 1.25; }
.faq-toggle { display: grid; width: 40px; height: 40px; border: 1px solid var(--forest); border-radius: 50%; color: var(--forest); font-size: 1.35rem; font-weight: 400; line-height: 1; place-items: center; transition: transform .22s ease, background .22s ease; }
.faq-list summary:hover .faq-toggle { background: var(--faq-accent); transform: rotate(12deg); }
.faq-list details[open] .faq-toggle { background: var(--faq-accent); transform: rotate(45deg); }
.faq-answer { padding: .1rem clamp(1rem,4vw,4rem) 2.5rem 0; color: #425d56; font-size: .94rem; }
.faq-answer p { margin: 0 0 1rem; }
.faq-answer p:last-child { margin-bottom: 0; }
.faq-answer ul, .faq-answer ol { margin: .8rem 0 1.25rem; padding-left: 1.25rem; }
.faq-answer li { margin: .5rem 0; padding-left: .3rem; }
.faq-answer a { color: var(--forest); font-weight: 700; text-decoration-color: var(--terracotta); text-underline-offset: .18em; }
.faq-answer h3 { margin: 2rem 0 .55rem; color: var(--forest); font-size: 1.25rem; font-weight: 650; }
.faq-timeline { display: grid; gap: .1rem; padding-left: 0 !important; list-style: none; }
.faq-timeline li { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; border-top: 1px dashed var(--line); margin: 0; padding: .8rem 0; }
.faq-timeline strong { color: var(--forest); font-family: var(--serif); }
.faq-downloads { padding: 0 !important; list-style: none; }
.faq-downloads li { margin: .5rem 0; padding: 0; }
.faq-downloads a { display: flex; justify-content: space-between; gap: 1rem; border: 1px solid var(--line); border-radius: 14px 4px 14px 4px; padding: .8rem 1rem; background: var(--paper); text-decoration: none; }
.faq-downloads a span { flex: 0 0 auto; color: var(--terracotta-ink); font-size: .68rem; letter-spacing: .08em; }
.faq-note { border-left: 5px solid var(--sun); border-radius: 0 9px 9px 0; padding: 1rem 1.1rem; background: rgba(239,173,63,.13); color: var(--forest); }
.faq-terms h3 { border-top: 1px dashed var(--line); padding-top: 1.25rem; }

.faq-contact { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,9vw,9rem); align-items: center; padding: clamp(6rem,10vw,10rem) max(6vw,calc((100vw - 1120px) / 2)); background: var(--forest-dark); color: var(--cream); overflow: hidden; }
.faq-contact::before { position: absolute; inset: 0; background: radial-gradient(circle at 15% 20%,rgba(239,173,63,.12),transparent 26%),radial-gradient(circle at 90% 75%,rgba(169,203,208,.11),transparent 25%); content: ""; }
.faq-contact > div { position: relative; z-index: 2; }
.faq-contact .eyebrow { color: var(--mint); }
.faq-contact h2 em { color: var(--sun); }
.faq-contact-copy > p { max-width: 520px; margin: 0 0 2rem; color: rgba(244,238,223,.74); }
.faq-contact-actions { display: flex; align-items: center; gap: 1.5rem; }
.faq-phone { border-bottom: 1px solid rgba(244,238,223,.45); color: var(--cream); font-family: var(--serif); font-size: 1.15rem; text-decoration: none; }
.faq-footer { position: relative; right: auto; bottom: auto; left: auto; display: grid; grid-template-columns: 1fr 1fr .6fr; min-height: 190px; border-top: 1px solid rgba(244,238,223,.14); padding: 3.5rem max(5vw,calc((100vw - 1240px) / 2)); background: var(--forest-dark); color: rgba(244,238,223,.56); pointer-events: auto; }

/* Page vidéos */
.video-page { background: var(--paper); }
.video-page .site-header nav, .photo-page .site-header nav { gap: 1rem; }
.video-page [hidden] { display: none !important; }
.video-hero { position: relative; display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(3rem,7vw,7rem); align-items: center; min-height: 100vh; padding: 10rem max(5vw,calc((100vw - 1240px) / 2)) 7rem; background: var(--forest); color: var(--cream); overflow: hidden; }
.video-hero::before { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); content: ""; mix-blend-mode: soft-light; opacity: .38; pointer-events: none; }
.video-hero::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 46px; background: var(--paper); clip-path: polygon(0 82%,8% 55%,17% 74%,26% 47%,36% 71%,45% 43%,55% 70%,65% 49%,75% 73%,85% 47%,93% 67%,100% 44%,100% 100%,0 100%); content: ""; }
.video-hero-copy, .video-hero-feature { position: relative; z-index: 2; }
.video-hero-copy .eyebrow { color: var(--mint); }
.video-hero-copy h1 { margin-bottom: 1.7rem; font-size: clamp(3.65rem,6.2vw,6.9rem); }
.video-hero-copy h1 em { color: var(--sun); }
.video-hero-copy > p:not(.eyebrow) { max-width: 590px; margin: 0 0 2rem; color: rgba(244,238,223,.76); font-size: 1.06rem; }
.video-hero-feature { border: 9px solid var(--cream); border-radius: 9px 32px 9px 32px; background: var(--cream); color: var(--forest-dark); }
.video-player-hero { border-radius: 2px 20px 2px 2px; }
.video-hero-caption { padding: 1.5rem 1.7rem 1.7rem; }
.video-hero-caption > p:first-child { display: flex; justify-content: space-between; margin: 0 0 .6rem; color: var(--terracotta-ink); font-size: .65rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.video-hero-caption h2 { margin: 0 0 .65rem; font-size: clamp(2rem,3.4vw,3.5rem); }
.video-hero-caption > p:last-child { max-width: 620px; margin: 0; color: var(--muted); font-size: .88rem; }
.video-gallery { padding: clamp(6rem,9vw,9rem) max(5vw,calc((100vw - 1240px) / 2)) clamp(7rem,10vw,10rem); }
.video-gallery-heading { display: grid; grid-template-columns: 1fr .78fr; gap: clamp(3rem,8vw,8rem); align-items: end; margin-bottom: 3.5rem; }
.video-gallery-heading > p { max-width: 520px; margin: 0 0 .6rem; color: var(--muted); font-size: 1.06rem; }
.video-filters { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: .8rem; }
.video-filters button { border: 1px solid var(--line); border-radius: 999px; padding: .72rem 1rem; background: transparent; color: var(--forest); font: 700 .7rem/1 var(--sans); letter-spacing: .045em; cursor: pointer; transition: background .2s ease, color .2s ease, transform .2s ease; }
.video-filters button:hover { transform: translateY(-2px); }
.video-filters button.is-active { border-color: var(--forest); background: var(--forest); color: var(--cream); }
.video-filters button:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
.video-filter-status { margin: 0 0 2.4rem; color: var(--muted); font-size: .68rem; }
.video-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(1.2rem,2.2vw,2rem); }
.video-empty { max-width: 620px; margin: 3rem auto 0; padding: 2.5rem 1rem; color: var(--muted); text-align: center; }
.video-empty > span { display: block; color: var(--terracotta); font-size: 3.5rem; line-height: 1; }
.video-empty h3 { margin: .8rem 0 .4rem; color: var(--forest); font-size: clamp(1.8rem,3vw,2.6rem); }
.video-empty p { margin: 0; }
.video-card { min-width: 0; border: 1px solid var(--line); border-radius: 18px 5px 18px 5px; background: #fffdf7; overflow: hidden; }
.video-card:nth-child(3n+2) { border-radius: 5px 18px 5px 18px; }
.video-card .video-player { border-bottom: 1px solid var(--line); }
.video-card .video-play { right: .9rem; bottom: .9rem; padding: .45rem .8rem .45rem .45rem; }
.video-card .video-play-icon { width: 30px; height: 30px; }
.video-card-copy { padding: 1.25rem 1.25rem 1.5rem; }
.video-card-copy > p:first-child { display: flex; justify-content: space-between; gap: .8rem; margin: 0 0 .7rem; color: var(--terracotta-ink); font-size: .59rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.video-card-copy h3 { margin: 0 0 .75rem; font-size: clamp(1.55rem,2.2vw,2.05rem); line-height: 1.08; }
.video-card-copy > p:last-child { margin: 0; color: var(--muted); font-size: .83rem; line-height: 1.55; }
.video-closing { display: grid; grid-template-columns: 1fr .75fr; gap: clamp(3rem,8vw,8rem); align-items: end; padding: clamp(6rem,9vw,9rem) max(5vw,calc((100vw - 1240px) / 2)); background: var(--terracotta); color: #09221d; }
.video-closing .eyebrow { color: #09221d; }
.video-closing h2 em { color: var(--forest-dark); }
.video-closing > div:last-child > p { max-width: 530px; margin: 0 0 2rem; }
.video-footer { border-top-color: rgba(244,238,223,.18); }

/* Page photos */
.photo-page { background: var(--paper); }
.photo-page [hidden] { display: none !important; }
.photo-hero { position: relative; display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(3rem,7vw,7rem); align-items: center; min-height: 100vh; padding: 10rem max(5vw,calc((100vw - 1240px) / 2)) 7rem; background: var(--forest); color: var(--cream); overflow: hidden; }
.photo-hero::before { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); content: ""; mix-blend-mode: soft-light; opacity: .38; pointer-events: none; }
.photo-hero::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 46px; background: var(--paper); clip-path: polygon(0 80%,8% 56%,17% 75%,27% 48%,36% 71%,46% 44%,56% 69%,66% 50%,76% 73%,86% 48%,94% 68%,100% 45%,100% 100%,0 100%); content: ""; }
.photo-hero-copy, .photo-hero-collage { position: relative; z-index: 2; }
.photo-hero-copy .eyebrow { color: var(--mint); }
.photo-hero-copy h1 { margin-bottom: 1.7rem; font-size: clamp(3.8rem,6.4vw,7.1rem); }
.photo-hero-copy h1 em { color: var(--sun); }
.photo-hero-copy > p:not(.eyebrow) { max-width: 560px; margin: 0 0 2.1rem; color: rgba(244,238,223,.76); font-size: 1.06rem; }
.photo-hero-collage { min-height: 570px; }
.photo-polaroid { position: absolute; margin: 0; border: 8px solid var(--cream); padding-bottom: 2.2rem; background: var(--cream); }
.photo-polaroid img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-polaroid .paper-tape { top: -16px; left: 40%; width: 90px; }
.photo-polaroid-one { top: 3%; right: 5%; width: 56%; height: 63%; transform: rotate(5deg); }
.photo-polaroid-two { bottom: 1%; left: 4%; width: 49%; height: 55%; transform: rotate(-6deg); }
.photo-polaroid-three { right: 0; bottom: 0; width: 42%; height: 43%; transform: rotate(2deg); }
.photo-hero-star { position: absolute; z-index: 5; color: var(--sun); line-height: 1; animation: star-wink 4.8s ease-in-out infinite; }
.photo-hero-star-one { top: 3%; left: 9%; font-size: 2rem; }
.photo-hero-star-two { right: 3%; bottom: 12%; color: var(--terracotta); font-size: 1.2rem; animation-delay: -1.8s; }
.photo-album { min-height: 70vh; padding: clamp(6rem,9vw,9rem) max(5vw,calc((100vw - 1240px) / 2)) clamp(7rem,10vw,10rem); }
.photo-album-heading { display: grid; grid-template-columns: 1fr .78fr; gap: clamp(3rem,8vw,8rem); align-items: end; margin-bottom: 3.5rem; }
.photo-album-heading > p { max-width: 520px; margin: 0 0 .6rem; color: var(--muted); font-size: 1.06rem; }
.photo-filters { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: 1.25rem; }
.photo-filters button { border: 1px solid var(--line); border-radius: 999px; padding: .72rem 1rem; background: transparent; color: var(--forest); font: 700 .7rem/1 var(--sans); letter-spacing: .045em; cursor: pointer; transition: background .2s ease, color .2s ease, transform .2s ease; }
.photo-filters button:hover { transform: translateY(-2px); }
.photo-filters button.is-active { border-color: var(--forest); background: var(--forest); color: var(--cream); }
.photo-filters button:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
.photo-album-note { display: flex; gap: .85rem; align-items: center; width: fit-content; margin: 0 0 1rem; border-radius: 18px 5px 18px 5px; padding: .85rem 1rem; background: rgba(169,203,208,.28); color: #35544d; }
.photo-album-note > span { display: grid; flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: var(--sun); color: var(--forest); font-size: .68rem; place-items: center; }
.photo-album-note p { margin: 0; font-size: .75rem; }
.photo-status { margin: 0 0 2.4rem; color: var(--muted); font-size: .68rem; }
.photo-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(.8rem,1.4vw,1.2rem); }
.photo-card, .photo-card-wide, .photo-card-portrait, .photo-card-square { grid-column: auto; grid-row: auto; min-width: 0; aspect-ratio: 1; animation: photo-card-in .65s both; animation-delay: var(--photo-delay,0ms); }
.photo-open { position: relative; width: 100%; height: 100%; border: 0; border-radius: 22px; padding: 0; background: #fffdf7; color: #fff; cursor: zoom-in; overflow: hidden; transition: border-radius .25s ease, transform .3s ease; }
.photo-card:nth-child(even) .photo-open { border-radius: 22px; }
.photo-open:hover { border-radius: 17px; transform: translateY(-5px); }
.photo-open:focus-visible { outline: 4px solid var(--sun); outline-offset: 4px; }
.photo-open > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .3s ease; }
.photo-open:hover > img { filter: saturate(1.05); transform: scale(1.035); }
.photo-card-overlay { position: absolute; inset: auto 0 0; display: grid; grid-template-columns: 1fr auto; gap: .3rem .7rem; align-items: end; padding: 3.8rem 1rem .9rem; background: linear-gradient(180deg,transparent,rgba(6,31,24,.84)); text-align: left; }
.photo-card-overlay small { grid-column: 1; color: var(--sun); font-size: .58rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.photo-card-overlay strong { grid-column: 1; max-width: 34rem; font-family: var(--serif); font-size: clamp(.95rem,1.35vw,1.18rem); font-weight: 500; line-height: 1.16; }
.photo-card-overlay b { grid-column: 2; grid-row: 1 / span 2; display: grid; width: 34px; height: 34px; border-radius: 50%; background: var(--cream); color: var(--forest); font-size: .9rem; font-weight: 500; place-items: center; transition: transform .25s ease; }
.photo-open:hover .photo-card-overlay b { transform: rotate(45deg); }
.photo-empty { max-width: 620px; margin: 4rem auto 0; padding: 3rem 2rem; text-align: center; }
.photo-empty > span { display: block; color: var(--terracotta); font-size: 4rem; }
.photo-empty h3 { margin-bottom: .7rem; font-size: 2.2rem; }
.photo-empty p { margin: 0; color: var(--muted); }
.photo-lightbox { width: 100vw; max-width: none; height: 100vh; max-height: none; border: 0; padding: 0; background: rgba(5,24,19,.96); color: var(--cream); overflow: hidden; }
.photo-lightbox::backdrop { background: rgba(5,24,19,.96); }
.photo-lightbox[open] { animation: lightbox-in .25s ease both; }
.photo-lightbox-inner { position: relative; display: grid; grid-template-columns: 60px minmax(0,1fr) 60px; gap: 1rem; align-items: center; width: 100%; height: 100%; padding: 3rem clamp(1rem,4vw,4rem); }
.photo-lightbox figure { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; height: 100%; margin: 0; }
.photo-lightbox figure img { display: block; max-width: 100%; max-height: calc(100vh - 9rem); border: 7px solid var(--cream); object-fit: contain; }
.photo-lightbox figcaption { display: flex; justify-content: space-between; gap: 2rem; width: min(100%,1100px); padding-top: .8rem; color: rgba(244,238,223,.82); font-family: var(--serif); font-size: .96rem; }
.photo-lightbox figcaption small { flex: 0 0 auto; color: var(--sun); font-family: var(--sans); font-size: .65rem; font-weight: 800; letter-spacing: .08em; }
.photo-lightbox-close, .photo-lightbox-nav { display: grid; border: 1px solid rgba(244,238,223,.35); border-radius: 50%; background: transparent; color: var(--cream); cursor: pointer; place-items: center; transition: background .2s ease, color .2s ease, transform .2s ease; }
.photo-lightbox-close:hover, .photo-lightbox-nav:hover { background: var(--sun); color: var(--forest); transform: rotate(-5deg); }
.photo-lightbox-close:focus-visible, .photo-lightbox-nav:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }
.photo-lightbox-close { position: absolute; z-index: 4; top: 1.2rem; right: 1.2rem; width: 46px; height: 46px; font-size: 1.6rem; }
.photo-lightbox-nav { width: 54px; height: 54px; font-size: 1.25rem; }
.photo-closing { display: grid; grid-template-columns: 1fr .75fr; gap: clamp(3rem,8vw,8rem); align-items: end; padding: clamp(6rem,9vw,9rem) max(5vw,calc((100vw - 1240px) / 2)); background: var(--sky); color: var(--forest-dark); }
.photo-closing .eyebrow { color: var(--forest-dark); }
.photo-closing h2 em { color: var(--terracotta-ink); }
.photo-closing > div:last-child > p { max-width: 530px; margin: 0 0 2rem; }
.photo-closing .button-dark { background: var(--forest); color: var(--cream); }
.photo-footer { border-top-color: rgba(244,238,223,.18); }

@keyframes photo-card-in { from { opacity: 0; translate: 0 24px; } to { opacity: 1; translate: 0 0; } }
@keyframes lightbox-in { from { opacity: 0; } to { opacity: 1; } }

/* Gestion privée des photos */
.photo-admin-page { min-height: 100vh; background: var(--cream); }
.photo-admin-header { display: flex; align-items: center; justify-content: space-between; min-height: 84px; padding: 1.2rem max(5vw,calc((100vw - 1240px) / 2)); background: var(--forest-dark); color: var(--cream); }
.photo-admin-header > a:last-child { border-bottom: 1px solid rgba(244,238,223,.45); font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.photo-admin-main { display: grid; grid-template-columns: minmax(320px,.68fr) minmax(0,1.32fr); min-height: calc(100vh - 84px); }
.photo-admin-intro { position: sticky; top: 0; align-self: start; min-height: calc(100vh - 84px); padding: clamp(4rem,8vw,8rem) clamp(2rem,5vw,6rem) 5rem max(5vw,calc((100vw - 1240px) / 2)); background: var(--forest); color: var(--cream); }
.photo-admin-intro h1 { margin-bottom: 1.5rem; font-size: clamp(3.5rem,5vw,5.8rem); }
.photo-admin-intro h1 em { color: var(--sun); }
.photo-admin-intro > p:last-child { max-width: 470px; color: rgba(244,238,223,.72); }
.photo-admin-panel, .photo-admin-dashboard { padding: clamp(4rem,7vw,7rem) max(5vw,calc((100vw - 1240px) / 2)) 7rem clamp(2rem,5vw,6rem); }
.photo-admin-panel { align-self: center; max-width: 760px; }
.photo-admin-panel h2, .photo-admin-dashboard h2 { margin-bottom: 1rem; font-size: clamp(2.5rem,4vw,4.2rem); }
.photo-admin-panel > p:not(.eyebrow) { max-width: 560px; color: var(--muted); }
.photo-admin-panel form { display: grid; gap: .65rem; margin-top: 2rem; }
.photo-admin-panel label, .photo-upload-fields > label:not(.form-consent), .photo-admin-edit > label { color: var(--forest); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.photo-admin-panel input, .photo-upload-fields input, .photo-upload-fields select, .photo-admin-edit input, .photo-admin-edit select { width: 100%; min-height: 50px; border: 1px solid rgba(23,58,50,.28); border-radius: 13px 4px 13px 4px; padding: .75rem .9rem; background: rgba(255,255,255,.7); color: var(--forest); font: 500 .95rem var(--sans); }
.photo-admin-panel .contact-submit { justify-content: space-between; width: min(100%,340px); margin-top: .8rem; }
.photo-admin-setup { margin-top: 2rem; border-left: 5px solid var(--sun); padding: 1rem 1.1rem; background: rgba(239,173,63,.12); }
.photo-admin-setup p { margin: .25rem 0 0; color: var(--muted); font-size: .82rem; }
.photo-admin-message { min-height: 1.5rem; margin: 1rem 0; color: var(--forest); font-size: .8rem; font-weight: 650; }
.photo-admin-message.is-error { color: #a43e2d; }
.photo-admin-dashboard > header, .photo-admin-library > header { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.photo-admin-dashboard > header h2, .photo-admin-library > header h2 { margin: 0; }
.photo-admin-logout { border: 1px solid var(--line); border-radius: 999px; padding: .7rem 1rem; background: transparent; color: var(--forest); font: 700 .7rem var(--sans); cursor: pointer; }
.photo-upload-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; border: 1px solid var(--line); border-radius: 24px 7px 24px 7px; padding: clamp(1rem,2vw,1.8rem); background: var(--paper); }
.photo-drop-zone { position: relative; display: grid; min-height: 290px; border: 2px dashed rgba(23,58,50,.28); border-radius: 18px 5px 18px 5px; padding: 1.5rem; place-items: center; text-align: center; }
.photo-drop-zone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.photo-drop-zone label { display: grid; cursor: pointer; place-items: center; }
.photo-drop-zone label > span { display: grid; width: 58px; height: 58px; margin-bottom: 1rem; border-radius: 50%; background: var(--sun); color: var(--forest); font-size: 1.7rem; place-items: center; }
.photo-drop-zone label strong { font-family: var(--serif); font-size: 1.5rem; }
.photo-drop-zone label small { max-width: 300px; margin-top: .5rem; color: var(--muted); font-size: .68rem; font-weight: 500; }
.photo-drop-zone > p { margin: 1rem 0 0; color: var(--terracotta-ink); font-size: .72rem; font-weight: 700; }
.photo-upload-fields { display: flex; flex-direction: column; }
.photo-upload-fields > label:not(.form-consent) { margin: .6rem 0 .35rem; }
.photo-upload-fields label small { color: var(--muted); font-weight: 500; text-transform: none; }
.photo-upload-fields .form-consent { margin: 1rem 0; }
.photo-upload-fields .contact-submit { justify-content: space-between; width: 100%; margin-top: auto; }
.photo-admin-library { margin-top: 5rem; border-top: 1px solid var(--line); padding-top: 4rem; }
.photo-admin-library > header > p { max-width: 330px; margin: 0; color: var(--muted); font-size: .78rem; }
.photo-admin-list { display: grid; gap: 1rem; }
.photo-admin-card { display: grid; grid-template-columns: minmax(170px,.48fr) minmax(0,1.52fr); gap: 1.2rem; border: 1px solid var(--line); border-radius: 16px 5px 16px 5px; padding: .8rem; background: var(--paper); }
.photo-admin-card > img { width: 100%; height: 100%; min-height: 210px; border-radius: 10px 3px 10px 3px; object-fit: cover; }
.photo-admin-edit { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1rem; align-content: start; padding: .4rem .4rem .4rem 0; }
.photo-admin-edit > label { display: grid; gap: .35rem; }
.photo-admin-choices { grid-column: 1 / -1; display: flex; gap: 1.5rem; padding: .4rem 0; }
.photo-admin-choices label { font-size: .75rem; font-weight: 650; }
.photo-admin-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .4rem; }
.photo-admin-actions button { border: 1px solid var(--line); border-radius: 999px; padding: .6rem .8rem; background: var(--cream); color: var(--forest); font: 700 .68rem var(--sans); cursor: pointer; }
.photo-admin-actions button[type="submit"] { margin-left: auto; background: var(--forest); color: var(--cream); }
.photo-admin-actions button.is-danger { border-color: rgba(164,62,45,.3); color: #a43e2d; }
.photo-admin-actions button:disabled { cursor: default; opacity: .35; }
.photo-admin-empty { padding: 3rem 1rem; color: var(--muted); text-align: center; }
.photo-admin-empty span { display: block; color: var(--terracotta); font-size: 3rem; }

/* Page agenda */
.agenda-page { background: var(--paper); }
.agenda-page [hidden] { display: none !important; }
.agenda-hero { position: relative; display: grid; grid-template-columns: 1fr .72fr; gap: clamp(3rem,8vw,8rem); align-items: center; min-height: 82vh; padding: 10rem max(5vw,calc((100vw - 1240px) / 2)) 7rem; background: var(--forest); color: var(--cream); overflow: hidden; }
.agenda-hero::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 46px; background: var(--paper); clip-path: polygon(0 78%,9% 51%,18% 76%,28% 48%,38% 72%,49% 45%,59% 74%,70% 48%,81% 72%,91% 49%,100% 68%,100% 100%,0 100%); content: ""; }
.agenda-hero-copy, .agenda-hero-calendar { position: relative; z-index: 2; }
.agenda-hero-copy .eyebrow { color: var(--mint); }
.agenda-hero-copy h1 { margin-bottom: 1.5rem; font-size: clamp(3.8rem,6.5vw,7.2rem); }
.agenda-hero-copy h1 em { color: var(--sun); }
.agenda-hero-copy > p:not(.eyebrow) { max-width: 630px; margin: 0 0 2rem; color: rgba(244,238,223,.76); font-size: 1.05rem; }
.agenda-hero-calendar { justify-self: center; width: min(100%,430px); aspect-ratio: 1.08; border: 8px solid var(--cream); border-radius: 12px 34px 12px 34px; padding: clamp(2rem,4vw,3.4rem); background: var(--sun); color: var(--forest-dark); transform: rotate(3deg); }
.agenda-hero-calendar::before { position: absolute; top: 23%; right: 9%; left: 9%; border-top: 2px dashed rgba(23,58,50,.35); content: ""; }
.agenda-calendar-pin { position: absolute; top: -24px; left: 16%; width: 92px; height: 38px; background: var(--terracotta); opacity: .9; transform: rotate(-5deg); }
.agenda-hero-calendar > p { margin: 17% 0 1.5rem; font-family: var(--serif); font-size: clamp(2.5rem,4.4vw,4.5rem); line-height: .92; }
.agenda-hero-calendar > p strong { font-weight: 500; font-style: italic; }
.agenda-calendar-lines { display: grid; gap: .8rem; }
.agenda-calendar-lines i { display: block; width: 88%; border-top: 2px solid rgba(23,58,50,.28); transform: rotate(-1deg); }
.agenda-calendar-lines i:nth-child(2) { width: 67%; transform: rotate(1deg); }
.agenda-calendar-lines i:nth-child(3) { width: 79%; }
.agenda-calendar-star { position: absolute; right: 9%; bottom: 8%; color: var(--terracotta); font-size: 2.4rem; animation: star-wink 4.8s ease-in-out infinite; }
.agenda-upcoming { min-height: 65vh; padding: clamp(6rem,9vw,9rem) max(5vw,calc((100vw - 1240px) / 2)); }
.agenda-heading { display: grid; grid-template-columns: 1fr .75fr; gap: clamp(3rem,8vw,8rem); align-items: end; margin-bottom: 3rem; }
.agenda-heading > p { max-width: 520px; margin: 0 0 .6rem; color: var(--muted); font-size: 1.05rem; }
.agenda-filters { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: .8rem; }
.agenda-filters button { border: 1px solid var(--line); border-radius: 999px; padding: .72rem 1rem; background: transparent; color: var(--forest); font: 700 .7rem/1 var(--sans); letter-spacing: .04em; cursor: pointer; transition: .2s; }
.agenda-filters button:hover { transform: translateY(-2px); }
.agenda-filters button.is-active { border-color: var(--forest); background: var(--forest); color: var(--cream); }
.agenda-filters button:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
.agenda-status { margin: 0 0 2rem; color: var(--muted); font-size: .72rem; }
.agenda-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1rem,2vw,1.6rem); }
.agenda-card { --agenda-accent: var(--sun); display: flex; flex-direction: column; min-height: 390px; border: 1px solid var(--line); border-radius: 28px 7px 28px 7px; background: #fffdf7; overflow: hidden; }
.agenda-card:nth-child(even) { border-radius: 7px 28px 7px 28px; }
.agenda-card-colos { --agenda-accent: var(--terracotta); }
.agenda-card-chantiers { --agenda-accent: var(--sage); }
.agenda-card-spectacles { --agenda-accent: var(--sun); }
.agenda-card-rencontres { --agenda-accent: var(--sky); }
.agenda-card.is-featured { grid-column: 1 / -1; min-height: 340px; }
.agenda-card-top { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; border-bottom: 1px solid rgba(23,58,50,.13); padding: 1.3rem; background: var(--agenda-accent); }
.agenda-date { display: grid; width: min-content; min-width: 94px; color: var(--forest-dark); line-height: 1; }
.agenda-date strong { font-family: var(--serif); font-size: clamp(2.3rem,4vw,4rem); font-weight: 500; white-space: nowrap; }
.agenda-date span { margin-top: .25rem; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.agenda-date small { margin-top: .25rem; font-size: .72rem; font-weight: 650; }
.agenda-card-meta { display: flex; flex-direction: column; gap: .55rem; align-items: flex-end; color: var(--forest-dark); font-size: .63rem; font-weight: 800; letter-spacing: .07em; text-align: right; text-transform: uppercase; }
.agenda-badge { border: 1px solid currentColor; border-radius: 999px; padding: .45rem .62rem; background: rgba(255,255,255,.45); }
.agenda-badge-full, .agenda-badge-cancelled { background: var(--forest-dark); color: var(--cream); }
.agenda-card-copy { flex: 1; padding: 1.5rem 1.5rem .8rem; }
.agenda-card-copy h3 { margin: 0 0 .75rem; font-size: clamp(2rem,3.5vw,3.3rem); line-height: 1; }
.agenda-card-copy > p { color: var(--muted); font-size: .9rem; }
.agenda-card-copy .agenda-card-info { color: var(--terracotta-ink); font-size: .72rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.agenda-card-actions { display: flex; flex-wrap: wrap; gap: .7rem; padding: 0 1.5rem 1.5rem; }
.agenda-card-actions .button { width: fit-content; }
.agenda-more-button { appearance: none; cursor: pointer; font: 700 .72rem/1 var(--sans); text-transform: uppercase; }
.agenda-empty { max-width: 680px; margin: 3rem auto 0; padding: 3rem 2rem; text-align: center; }
.agenda-empty > span { display: block; color: var(--terracotta); font-size: 4rem; }
.agenda-empty h3 { margin: 0 0 .7rem; font-size: clamp(2rem,4vw,3rem); }
.agenda-empty p { color: var(--muted); }
.agenda-empty .button { margin-top: 1rem; }
.agenda-past { padding: clamp(6rem,9vw,9rem) max(5vw,calc((100vw - 1240px) / 2)); background: var(--forest); color: var(--cream); }
.agenda-past-heading { display: grid; grid-template-columns: .45fr 1fr; gap: 3rem; align-items: end; margin-bottom: 3rem; }
.agenda-past-heading .eyebrow { color: var(--mint); }
.agenda-past-heading h2 { margin: 0; font-size: clamp(3rem,6vw,6rem); }
.agenda-past-heading h2 em { color: var(--sun); }
.agenda-past-list { display: grid; }
.agenda-past-item { --agenda-accent: var(--sun); display: grid; grid-template-columns: minmax(105px,.24fr) 1fr; gap: clamp(1.5rem,4vw,4rem); align-items: center; border-top: 1px solid rgba(244,238,223,.2); padding: 1.35rem .3rem; color: var(--cream); }
.agenda-past-item:last-child { border-bottom: 1px solid rgba(244,238,223,.2); }
.agenda-past-item .agenda-date { color: var(--agenda-accent); }
.agenda-past-item .agenda-date strong { font-size: clamp(1.7rem,3vw,2.7rem); }
.agenda-past-item small { color: var(--agenda-accent); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.agenda-past-item h3 { margin: .2rem 0; color: var(--cream); font-size: clamp(1.5rem,3vw,2.5rem); }
.agenda-past-item p { margin: 0; color: rgba(244,238,223,.62); font-size: .78rem; }
.agenda-past-empty { color: var(--cream); }
.agenda-footer { border-top-color: rgba(244,238,223,.18); }

.agenda-dialog { width: min(1000px,calc(100% - 2rem)); max-height: calc(100vh - 2rem); border: 0; border-radius: 32px 8px 32px 8px; padding: 0; background: var(--paper); color: var(--forest); box-shadow: 0 28px 90px rgba(5,27,22,.35); overflow: auto; }
.agenda-dialog::backdrop { background: rgba(7,29,24,.78); backdrop-filter: blur(5px); }
.agenda-dialog[open] { animation: agenda-dialog-in .28s ease-out; }
.agenda-dialog-card { position: relative; display: grid; grid-template-columns: 1fr; }
.agenda-dialog-card.has-image { grid-template-columns: 1fr; }
.agenda-dialog-image-wrap { display: grid; width: 100%; max-height: 68vh; padding: clamp(.7rem,2vw,1.2rem); background: var(--forest-dark); overflow: hidden; place-items: center; }
.agenda-dialog-image-wrap img { display: block; width: auto; max-width: 100%; height: auto; max-height: calc(68vh - 2.4rem); object-fit: contain; }
.agenda-dialog-copy { align-self: center; padding: clamp(2.3rem,5vw,5rem); }
.agenda-dialog-copy h2 { margin: .3rem 0 .8rem; font-size: clamp(2.8rem,5vw,5rem); line-height: .94; }
.agenda-dialog-meta { color: var(--terracotta-ink); font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.agenda-dialog-details { margin-top: 1.8rem; color: var(--muted); font-size: 1rem; line-height: 1.72; white-space: pre-line; }
.agenda-dialog-actions { margin-top: 2rem; }
.agenda-dialog-close { position: absolute; z-index: 3; top: 1rem; right: 1rem; display: grid; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--sun); color: var(--forest-dark); font: 400 1.8rem/1 var(--sans); cursor: pointer; place-items: center; transition: transform .2s ease, background .2s ease; }
.agenda-dialog-close:hover { background: var(--terracotta); transform: rotate(7deg) scale(1.05); }
.agenda-dialog-close:focus-visible { outline: 3px solid var(--forest); outline-offset: 3px; }

@keyframes agenda-dialog-in {
  from { opacity: 0; transform: translateY(18px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Gestion privée de l’agenda */
.agenda-admin-page { min-height: 100vh; background: var(--cream); }
.photo-admin-header nav { display: flex; gap: 1rem; }
.photo-admin-header nav a { border-bottom: 1px solid rgba(244,238,223,.42); color: var(--cream); font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.agenda-admin-main { display: grid; grid-template-columns: minmax(320px,.6fr) minmax(0,1.4fr); min-height: calc(100vh - 84px); }
.agenda-admin-intro { position: sticky; top: 0; align-self: start; min-height: calc(100vh - 84px); padding: clamp(4rem,8vw,8rem) clamp(2rem,5vw,6rem) 5rem max(5vw,calc((100vw - 1240px) / 2)); background: var(--terracotta); color: #fff9ee; }
.agenda-admin-intro .eyebrow { color: var(--sun); }
.agenda-admin-intro h1 { margin-bottom: 1.5rem; font-size: clamp(3.4rem,5vw,5.8rem); }
.agenda-admin-intro h1 em { color: var(--forest-dark); }
.agenda-admin-intro > p:last-child { max-width: 470px; }
.agenda-admin-dashboard { padding: clamp(4rem,7vw,7rem) max(5vw,calc((100vw - 1240px) / 2)) 7rem clamp(2rem,5vw,6rem); }
.agenda-admin-dashboard > header, .agenda-admin-library > header { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.agenda-admin-dashboard > header h2, .agenda-admin-library > header h2 { margin: 0; font-size: clamp(2.5rem,4vw,4.2rem); }
.agenda-event-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 1.3rem; border: 1px solid var(--line); border-radius: 24px 7px 24px 7px; padding: clamp(1.2rem,3vw,2rem); background: var(--paper); }
.agenda-event-form > div { display: grid; align-content: start; gap: .4rem; }
.agenda-event-form label { color: var(--forest); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.agenda-event-form label small { color: var(--muted); font-weight: 500; text-transform: none; }
.agenda-event-form input, .agenda-event-form select, .agenda-event-form textarea { width: 100%; min-height: 50px; border: 1px solid rgba(23,58,50,.28); border-radius: 13px 4px 13px 4px; padding: .75rem .9rem; background: rgba(255,255,255,.72); color: var(--forest); font: 500 .95rem/1.45 var(--sans); }
.agenda-event-form textarea { min-height: 125px; resize: vertical; }
.agenda-details-field textarea { min-height: 260px; }
.agenda-field-help { margin: 0; color: var(--muted); font-size: .7rem; }
.agenda-image-selection { margin: .15rem 0 0; color: var(--terracotta-ink); font-size: .72rem; font-weight: 750; }
.agenda-image-field > input[type="file"] { padding: .55rem; background: rgba(255,255,255,.72); }
.agenda-image-field > input[type="file"]::file-selector-button { border: 0; border-radius: 999px; margin-right: .8rem; padding: .65rem .85rem; background: var(--forest); color: var(--cream); font: 700 .68rem var(--sans); cursor: pointer; }
.agenda-current-image { display: grid; grid-template-columns: 150px 1fr; gap: 1rem; align-items: center; margin-top: .6rem; border: 1px dashed var(--line); border-radius: 16px 5px 16px 5px; padding: .8rem; }
.agenda-current-image[hidden] { display: none; }
.agenda-current-image img { width: 150px; height: 100px; border-radius: 10px 3px 10px 3px; object-fit: cover; }
.agenda-current-image label { display: flex; flex-direction: row; gap: .6rem; align-items: center; text-transform: none; }
.agenda-current-image input { width: 20px; min-height: 20px; accent-color: var(--terracotta); }
.agenda-event-form input:focus, .agenda-event-form select:focus, .agenda-event-form textarea:focus { border-color: var(--forest); outline: 2px solid var(--forest); outline-offset: 3px; box-shadow: 0 0 0 4px rgba(216,111,76,.12); }
.agenda-field-wide { grid-column: 1 / -1; }
.agenda-admin-options { display: flex !important; flex-direction: row; gap: 1.7rem !important; }
.agenda-admin-options label { display: flex; gap: .55rem; align-items: center; font-size: .75rem; letter-spacing: 0; text-transform: none; }
.agenda-admin-options input { width: 20px; min-height: 20px; accent-color: var(--terracotta); }
.agenda-admin-form-actions { display: flex !important; flex-direction: row; flex-wrap: wrap; gap: .8rem !important; }
.agenda-cancel-edit { border: 1px solid var(--line); border-radius: 999px; padding: .8rem 1rem; background: transparent; color: var(--forest); font: 700 .7rem var(--sans); cursor: pointer; }
.agenda-admin-library { margin-top: 5rem; border-top: 1px solid var(--line); padding-top: 4rem; }
.agenda-admin-list { display: grid; gap: .8rem; }
.agenda-admin-item { --agenda-accent: var(--sun); display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; border-left: 8px solid var(--agenda-accent); border-radius: 4px 15px 4px 15px; padding: 1.1rem 1.2rem; background: var(--paper); }
.agenda-admin-item p { margin: 0 0 .3rem; color: var(--muted); font-size: .7rem; }
.agenda-admin-item h3 { margin: 0; font-size: 1.45rem; }
.agenda-admin-item .agenda-admin-item-state { margin-top: .4rem; color: var(--terracotta-ink); font-weight: 700; }
.agenda-admin-item-actions { display: flex; flex: 0 0 auto; gap: .5rem; }
.agenda-admin-item-actions button { border: 1px solid var(--line); border-radius: 999px; padding: .62rem .8rem; background: var(--cream); color: var(--forest); font: 700 .68rem var(--sans); cursor: pointer; }
.agenda-admin-item-actions button.is-danger { color: #a43e2d; }
.agenda-admin-item-actions button.is-duplicate { border-color: rgba(216,111,76,.35); background: rgba(216,111,76,.08); color: var(--terracotta-ink); }
.agenda-admin-item-actions button:disabled { cursor: default; opacity: .35; }

/* Gestion privée des vidéos */
.video-admin-page { min-height: 100vh; background: var(--cream); }
.video-admin-intro { background: var(--sky); color: var(--forest-dark); }
.video-admin-intro .eyebrow { color: var(--forest-dark); }
.video-admin-intro h1 em { color: var(--terracotta-ink); }
.video-entry-form fieldset { min-width: 0; border: 0; margin: 0; padding: 0; }
.video-entry-form fieldset legend, .video-entry-form .video-field-label { margin-bottom: .55rem; color: var(--forest); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.video-category-options { display: flex; flex-wrap: wrap; gap: .65rem; }
.video-category-options label { display: flex; gap: .5rem; align-items: center; border: 1px solid var(--line); border-radius: 999px; padding: .65rem .85rem; background: rgba(255,255,255,.52); font-size: .72rem; letter-spacing: 0; cursor: pointer; text-transform: none; }
.video-category-options input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--terracotta); }
.video-admin-preview { aspect-ratio: 16 / 9; border-radius: 18px 5px 18px 5px; background: var(--forest-dark); overflow: hidden; }
.video-admin-preview[hidden] { display: none; }
.video-admin-preview iframe { display: block; width: 100%; height: 100%; border: 0; }
.video-admin-item { display: grid; grid-template-columns: 180px minmax(0,1fr) auto; gap: 1.2rem; align-items: center; border-left: 8px solid var(--sky); border-radius: 4px 15px 4px 15px; padding: .9rem; background: var(--paper); }
.video-admin-item > img { width: 180px; aspect-ratio: 16 / 9; border-radius: 10px 3px 10px 3px; object-fit: cover; }
.video-admin-item p { margin: 0 0 .3rem; color: var(--muted); font-size: .7rem; }
.video-admin-item h3 { margin: 0; font-size: 1.35rem; line-height: 1.15; }
.video-admin-item .agenda-admin-item-state { margin-top: .45rem; color: var(--terracotta-ink); font-weight: 700; }
.video-admin-item-actions { flex-wrap: wrap; justify-content: flex-end; max-width: 245px; }
.video-sort-controls { max-width: 29rem; text-align: right; }
.video-sort-controls p { margin: 0 0 .65rem; color: var(--muted); line-height: 1.5; }
.video-sort-controls p:last-child { margin: .65rem 0 0; font-size: .75rem; }
.video-sort-controls .agenda-cancel-edit { display: inline-flex; }

/* Conditions générales de vente */
.terms-page { background: var(--paper); }
.terms-hero { position: relative; display: grid; grid-template-columns: 1fr .62fr; gap: clamp(3rem,8vw,8rem); align-items: center; min-height: 82vh; padding: 10.5rem max(6vw,calc((100vw - 1240px) / 2)) 8rem; background: var(--forest); color: var(--cream); overflow: hidden; }
.terms-hero::before { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); content: ""; mix-blend-mode: soft-light; opacity: .36; pointer-events: none; }
.terms-hero::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 48px; background: var(--paper); clip-path: polygon(0 78%,8% 54%,17% 75%,27% 46%,37% 72%,47% 45%,57% 73%,67% 48%,77% 72%,87% 47%,94% 68%,100% 44%,100% 100%,0 100%); content: ""; }
.terms-hero-copy, .terms-hero-card { position: relative; z-index: 2; }
.terms-hero-copy .eyebrow { color: var(--mint); }
.terms-hero-copy h1 { margin-bottom: 1.7rem; font-size: clamp(3.5rem,6vw,6.7rem); }
.terms-hero-copy h1 em { color: var(--sun); }
.terms-hero-copy > p:not(.eyebrow) { max-width: 660px; margin: 0 0 2rem; color: rgba(244,238,223,.76); font-size: 1.05rem; }
.terms-hero-card { border: 8px solid var(--cream); border-radius: 6px 24px 6px 24px; padding: clamp(2rem,4vw,3.2rem); background: var(--paper); color: var(--forest-dark); box-shadow: 18px 22px 0 rgba(13,43,36,.2); transform: rotate(1.8deg); }
.terms-card-tape { position: absolute; top: -22px; left: 50%; width: 112px; height: 31px; background: rgba(239,173,63,.88); transform: translateX(-50%) rotate(-4deg); }
.terms-hero-card ul { display: grid; gap: 1.2rem; margin: 0; padding: 0; list-style: none; }
.terms-hero-card li { border-top: 1px solid var(--line); padding-top: 1.1rem; }
.terms-hero-card strong { display: block; color: var(--terracotta-ink); font-family: var(--serif); font-size: clamp(1.8rem,3vw,2.8rem); font-weight: 650; line-height: 1; }
.terms-hero-card li span { display: block; margin-top: .35rem; color: var(--muted); font-size: .78rem; line-height: 1.4; }
.terms-content { display: grid; grid-template-columns: minmax(220px,280px) minmax(0,820px); gap: clamp(3rem,7vw,7rem); justify-content: center; padding: clamp(5rem,8vw,8rem) max(5vw,calc((100vw - 1240px) / 2)); }
.terms-toc { position: sticky; top: 2rem; align-self: start; border: 1px solid var(--line); border-radius: 15px 4px 15px 4px; padding: 1.5rem; background: rgba(255,253,247,.84); }
.terms-toc > p { margin: 0 0 .8rem; color: var(--terracotta-ink); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.terms-toc ol { display: grid; gap: .42rem; margin: 0; padding-left: 1.4rem; }
.terms-toc li { color: var(--terracotta-ink); font-size: .72rem; }
.terms-toc a { color: var(--forest); text-decoration-color: rgba(23,58,50,.25); text-underline-offset: 3px; }
.terms-toc a:hover { color: var(--terracotta-ink); text-decoration-color: currentColor; }
.terms-intro { margin: 0 0 3.5rem; border-left: 7px solid var(--sun); border-radius: 3px 14px 3px 14px; padding: 1.5rem 1.7rem; background: var(--mint); color: var(--forest-dark); font-family: var(--serif); font-size: 1.22rem; line-height: 1.45; }
.terms-article { scroll-margin-top: 2rem; border-top: 1px solid var(--line); padding: 3.4rem 0; }
.terms-article header { display: grid; grid-template-columns: 3.2rem 1fr; gap: 1rem; align-items: start; margin-bottom: 1.5rem; }
.terms-article header > span { display: grid; width: 2.65rem; height: 2.65rem; border: 1px solid var(--terracotta); border-radius: 50%; color: var(--terracotta-ink); font-family: var(--serif); place-items: center; }
.terms-article h2 { margin: 0; font-size: clamp(2rem,4vw,3.35rem); }
.terms-article p, .terms-article li, .terms-article address { color: var(--muted); font-size: 1rem; line-height: 1.75; }
.terms-article strong { color: var(--forest-dark); }
.terms-article address { border-radius: 12px 3px 12px 3px; padding: 1.1rem 1.3rem; background: var(--cream); font-style: normal; }
.terms-process { display: grid; gap: .8rem; padding-left: 1.4rem; }
.terms-documents { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem 1.2rem; padding: 0; list-style: none; }
.terms-documents li { border: 1px solid var(--line); border-radius: 10px 3px 10px 3px; padding: .9rem 1rem; background: #fffdf7; }
.terms-cancellation { margin-top: 1rem; border: 0; border-radius: 22px 6px 22px 6px; padding: clamp(2rem,5vw,3.5rem); background: var(--forest-dark); color: var(--cream); }
.terms-cancellation header > span { border-color: var(--sun); color: var(--sun); }
.terms-cancellation h2 { color: var(--cream); }
.terms-warning { border-left: 5px solid var(--terracotta); padding-left: 1rem; color: rgba(244,238,223,.76) !important; }
.terms-warning strong { color: var(--sun); }
.terms-cancellation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; margin-top: 2rem; }
.terms-cancellation-grid > div { border: 1px solid rgba(244,238,223,.18); border-radius: 12px 4px 12px 4px; padding: 1.2rem; background: rgba(244,238,223,.06); }
.terms-cancellation-grid strong { display: block; color: var(--sun); font-family: var(--serif); font-size: 2.1rem; font-weight: 650; line-height: 1; }
.terms-cancellation-grid span { display: block; margin-top: .5rem; color: rgba(244,238,223,.7); font-size: .76rem; line-height: 1.45; }
.terms-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; margin-top: 4rem; border-radius: 20px 5px 20px 5px; padding: clamp(2rem,5vw,4rem); background: var(--terracotta); color: #09221d; }
.terms-contact .eyebrow { color: #09221d; }
.terms-contact h2 { margin: 0; font-size: clamp(2.5rem,4.5vw,4rem); }
.terms-contact h2 em { color: var(--forest-dark); }
.terms-contact > div:last-child > p { margin: 0 0 1.5rem; }
.terms-footer { border-top-color: rgba(244,238,223,.18); }

/* Page contact */
.contact-page { background: var(--paper); }
.contact-page .site-header { width: 100%; padding-right: max(5vw,calc((100vw - 1240px) / 2)); padding-left: max(5vw,calc((100vw - 1240px) / 2)); background: rgba(13,43,36,.96); box-shadow: 0 1px 0 rgba(244,238,223,.12); backdrop-filter: blur(8px); }
.contact-main { overflow: hidden; }
.contact-shell { display: grid; grid-template-columns: minmax(0,.86fr) minmax(560px,1.14fr); min-height: 100vh; }
.contact-intro { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 10.5rem clamp(3rem,6vw,7rem) 7rem max(6vw,calc((100vw - 1240px) / 2)); background: var(--forest); color: var(--cream); overflow: hidden; }
.contact-intro::before { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); content: ""; mix-blend-mode: soft-light; opacity: .38; pointer-events: none; }
.contact-intro > * { position: relative; z-index: 2; }
.contact-intro .eyebrow { color: var(--mint); }
.contact-intro h1 { margin-bottom: 1.7rem; font-size: clamp(3.5rem,5.5vw,6.2rem); }
.contact-intro h1 em { color: var(--sun); }
.contact-lead { max-width: 590px; margin: 0 0 2.7rem; color: rgba(244,238,223,.76); font-size: 1.02rem; }
.contact-details { display: grid; gap: .7rem; max-width: 520px; }
.contact-details > a, .contact-details > div { display: grid; grid-template-columns: 42px 1fr; gap: .9rem; align-items: start; border-top: 1px solid rgba(244,238,223,.17); padding: .9rem 0 0; color: var(--cream); font-family: var(--serif); font-size: 1rem; line-height: 1.35; text-decoration: none; }
.contact-details > a > span:first-child, .contact-details > div > span:first-child { display: grid; width: 35px; height: 35px; border-radius: 50%; background: var(--sun); color: var(--forest-dark); font-family: var(--sans); font-size: .83rem; font-weight: 800; place-items: center; transform: rotate(-4deg); }
.contact-details small { display: block; margin-bottom: .08rem; color: var(--mint); font-family: var(--sans); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.contact-details a:hover > span:first-child { transform: rotate(5deg) scale(1.06); }
.contact-logo-stamp { z-index: 3; width: clamp(145px,14vw,190px); aspect-ratio: 1; margin: 0 auto 2.2rem; border-radius: 50%; padding: .3rem; background: var(--cream); transform: rotate(-4deg); }
.contact-logo-stamp img { display: block; width: 100%; height: 100%; object-fit: contain; }
.contact-logo-stamp::after { position: absolute; inset: 5px; border: 2px dashed rgba(216,111,76,.5); border-radius: 50%; content: ""; }
.contact-star { position: absolute; z-index: 1; color: var(--sun); font-size: 1.8rem; line-height: 1; animation: star-wink 4.8s ease-in-out infinite; }
.contact-star-one { top: 17%; right: 8%; }
.contact-star-two { right: 26%; bottom: 12%; color: var(--terracotta); font-size: 1rem; animation-delay: -2s; }

.contact-form-panel { position: relative; padding: 10.5rem max(6vw,calc((100vw - 1240px) / 2)) 7rem clamp(3.2rem,6vw,7rem); background: var(--paper); }
.contact-form-panel::before { position: absolute; top: 13%; right: -20px; color: rgba(216,111,76,.08); font-family: var(--serif); font-size: 20rem; font-weight: 650; line-height: 1; content: "?"; transform: rotate(8deg); pointer-events: none; }
.contact-form-heading, .contact-form { position: relative; z-index: 2; }
.contact-form-heading { max-width: 760px; margin-bottom: 3rem; }
.contact-form-heading h2 { margin-bottom: 1rem; font-size: clamp(2.8rem,4vw,4.7rem); }
.contact-form-heading h2 em { color: var(--terracotta-ink); }
.contact-form-heading > p:last-child { margin: 0; color: var(--muted); font-size: .88rem; }
.contact-form { max-width: 820px; }
.form-grid { display: grid; gap: 1.2rem; }
.form-grid-two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.form-field { margin-bottom: 1.35rem; }
.form-field label { display: block; margin-bottom: .48rem; color: var(--forest); font-size: .78rem; font-weight: 700; letter-spacing: .035em; }
.form-field label > span { color: var(--terracotta-ink); }
.form-field label small { color: var(--muted); font-size: .7rem; font-weight: 500; }
.form-field input, .form-field select, .form-field textarea { display: block; width: 100%; border: 1px solid rgba(23,58,50,.3); border-radius: 13px 4px 13px 4px; padding: .82rem .95rem; background: rgba(255,255,255,.62); color: var(--forest-dark); font: 500 1rem/1.45 var(--sans); transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.form-field input, .form-field select { min-height: 52px; }
.form-field textarea { min-height: 180px; resize: vertical; }
.form-field input:hover, .form-field select:hover, .form-field textarea:hover { border-color: rgba(23,58,50,.55); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--forest); outline: 2px solid var(--forest); outline-offset: 3px; background: #fff; box-shadow: 0 0 0 4px rgba(216,111,76,.12); }
.form-field input:disabled { cursor: wait; opacity: .58; }
.form-help { margin: .45rem 0 0; color: var(--muted); font-size: .72rem; }
.contact-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-security { display: grid; grid-template-columns: minmax(220px,.8fr) 1.2fr; gap: 1.5rem; align-items: center; border: 1px dashed rgba(23,58,50,.28); border-radius: 22px 7px 22px 7px; margin: .2rem 0 1.35rem; padding: 1.15rem; background: rgba(199,216,190,.24); }
.form-security .form-field { margin: 0; }
.form-security > p { display: flex; align-items: center; gap: .65rem; margin: 0; color: var(--muted); font-size: .75rem; }
.form-security > p span { display: grid; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; background: var(--sage); color: var(--forest-dark); font-weight: 800; place-items: center; }
.captcha-field input { max-width: 130px; }
.form-consent { display: grid; grid-template-columns: 22px 1fr; gap: .7rem; align-items: start; margin: 0 0 1.7rem; color: var(--muted); cursor: pointer; font-size: .76rem; line-height: 1.45; }
.form-consent input { width: 20px; height: 20px; margin: .05rem 0 0; accent-color: var(--terracotta); }
.form-consent strong { color: var(--terracotta-ink); }
.form-privacy { max-width: 720px; margin: -1rem 0 1.7rem 2.7rem; color: var(--muted); font-size: .67rem; line-height: 1.5; }
.form-privacy a { color: var(--forest); font-weight: 700; text-underline-offset: .15em; }
.contact-submit-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; }
.contact-submit { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 1rem; border: 0; border-radius: 999px; padding: .72rem .75rem .72rem 1.25rem; background: var(--forest); color: var(--cream); font: 700 .76rem/1.2 var(--sans); letter-spacing: .075em; text-transform: uppercase; cursor: pointer; transition: transform .2s ease, background .2s ease, opacity .2s ease; }
.contact-submit b { display: grid; width: 2.15rem; height: 2.15rem; border-radius: 50%; background: var(--sun); color: var(--forest-dark); font-size: 1rem; font-weight: 500; place-items: center; transition: transform .2s ease; }
.contact-submit:hover:not(:disabled) { background: var(--terracotta-ink); transform: translateY(-3px); }
.contact-submit:hover:not(:disabled) b { transform: translateX(3px); }
.contact-submit:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }
.contact-submit:disabled { cursor: wait; opacity: .52; }
.contact-submit.is-sending b { animation: contact-arrow 1s ease-in-out infinite; }
.contact-status { max-width: 370px; margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.4; }
.contact-status.is-error { color: #a64d35; }
.contact-status.is-success { color: #46703d; font-weight: 700; }
.contact-alert { position: relative; z-index: 2; border-left: 5px solid var(--sun); padding: 1rem; background: rgba(239,173,63,.14); }

.contact-next { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); background: var(--cream); }
.contact-next > a { display: flex; justify-content: space-between; gap: clamp(1rem,2vw,2rem); align-items: center; min-width: 0; min-height: 170px; border-top: 1px solid var(--line); padding: 2.5rem clamp(1.2rem,3vw,3rem); font-family: var(--serif); font-size: clamp(1.25rem,2vw,1.8rem); line-height: 1.15; text-decoration: none; transition: background .2s ease; }
.contact-next > a > span { min-width: 0; overflow-wrap: anywhere; }
.contact-next > a:not(:last-child) { border-right: 1px solid var(--line); }
.contact-next > a:hover { background: var(--sun); }
.contact-next small { display: block; margin-bottom: .45rem; color: var(--terracotta-ink); font-family: var(--sans); font-size: .64rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.contact-next b { display: grid; flex: 0 0 auto; width: 48px; height: 48px; border: 1px solid var(--forest); border-radius: 50%; font-family: var(--sans); font-size: 1rem; place-items: center; transition: transform .2s ease; }
.contact-next a:hover b { transform: translateX(4px) rotate(-4deg); }
.contact-footer { border-top-color: rgba(244,238,223,.14); }

/* Page candidature */
.candidate-page { background: var(--paper); }
.candidate-page .site-header { width: 100%; padding-right: max(5vw,calc((100vw - 1240px) / 2)); padding-left: max(5vw,calc((100vw - 1240px) / 2)); background: rgba(13,43,36,.97); box-shadow: 0 1px 0 rgba(244,238,223,.12); backdrop-filter: blur(8px); }
.candidate-main { overflow: hidden; }
.candidate-hero { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(360px,.72fr); gap: clamp(3rem,7vw,7rem); align-items: center; min-height: 92vh; padding: 10rem max(6vw,calc((100vw - 1240px) / 2)) 7rem; background: var(--forest); color: var(--cream); }
.candidate-hero-copy { max-width: 720px; }
.candidate-hero-copy .eyebrow { color: var(--mint); }
.candidate-hero h1 { margin-bottom: 1.8rem; font-size: clamp(3.8rem,6.3vw,7rem); }
.candidate-hero h1 em { color: var(--sun); }
.candidate-hero-copy > p:not(.eyebrow) { max-width: 660px; margin: 0 0 2.2rem; color: rgba(244,238,223,.78); font-size: 1.05rem; line-height: 1.7; }
.candidate-hero-card { position: relative; border: 9px solid var(--cream); border-radius: 32px 8px 32px 8px; padding: clamp(2.1rem,4vw,3.6rem); background: var(--sky); color: var(--forest-dark); transform: rotate(1.2deg); box-shadow: 0 26px 55px rgba(0,0,0,.19); }
.candidate-hero-card h2 { margin: 0 0 1rem; font-size: clamp(2.4rem,3.8vw,4.1rem); }
.candidate-hero-card > p:not(.eyebrow) { color: rgba(13,43,36,.76); font-size: .94rem; }
.candidate-hero-card ul { display: grid; gap: .8rem; margin: 1.6rem 0 0; padding: 0; list-style: none; }
.candidate-hero-card li { position: relative; padding-left: 1.6rem; font-size: .8rem; font-weight: 650; line-height: 1.45; }
.candidate-hero-card li::before { position: absolute; left: 0; color: var(--terracotta-ink); content: "✓"; font-weight: 900; }
.candidate-card-star { position: absolute; top: -1.6rem; right: 1.4rem; color: var(--sun); font-size: 3.5rem; animation: star-wink 4.8s ease-in-out infinite; }

.candidate-form-section { padding: clamp(5rem,8vw,8rem) max(6vw,calc((100vw - 1240px) / 2)) 8rem; background: var(--cream); }
.candidate-form-heading { max-width: 860px; margin-bottom: 3.5rem; }
.candidate-form-heading h2 { margin: 0 0 .9rem; font-size: clamp(3rem,5vw,5.3rem); }
.candidate-form-heading > p:last-child { max-width: 650px; margin: 0; color: var(--muted); }
.candidate-progress { position: sticky; z-index: 4; top: 74px; max-width: 980px; margin: 0 auto 2rem; border: 1px solid rgba(23,58,50,.13); border-radius: 18px 5px 18px 5px; padding: 1rem 1.15rem .9rem; background: rgba(255,253,247,.95); box-shadow: 0 12px 28px rgba(13,43,36,.08); backdrop-filter: blur(9px); scroll-margin-top: 6rem; }
.candidate-progress-track { height: 5px; border-radius: 999px; background: rgba(23,58,50,.1); overflow: hidden; }
.candidate-progress-track span { display: block; width: 16.66%; height: 100%; border-radius: inherit; background: var(--terracotta); transition: width .35s ease; }
.candidate-progress > p { display: flex; justify-content: space-between; gap: 1rem; margin: .7rem 0 0; color: var(--muted); font-size: .72rem; }
.candidate-progress > p strong { color: var(--forest); }
.candidate-progress ol { display: flex; justify-content: space-between; margin: .8rem 0 0; padding: 0; list-style: none; }
.candidate-progress li { display: grid; width: 28px; height: 28px; border: 1px solid rgba(23,58,50,.2); border-radius: 50%; color: var(--muted); font-size: .66rem; font-weight: 800; place-items: center; transition: .2s ease; }
.candidate-progress li.is-active { border-color: var(--terracotta-ink); background: var(--terracotta-ink); color: #fff; transform: scale(1.08); }
.candidate-progress li.is-done { border-color: var(--sage); background: var(--sage); color: var(--forest-dark); }
.candidate-form { max-width: 980px; margin: 0 auto; }
.candidate-step { min-width: 0; border: 0; border-radius: 26px 7px 26px 7px; margin: 0; padding: clamp(2rem,5vw,4.5rem); background: var(--paper); box-shadow: 0 18px 50px rgba(23,58,50,.08); }
.candidate-step[hidden] { display: none; }
.candidate-step.is-active { animation: candidate-step-in .42s cubic-bezier(.2,.75,.2,1); }
.candidate-step legend { display: flex; gap: .9rem; align-items: center; width: 100%; margin: 0 0 .8rem; padding: 0; color: var(--forest-dark); font-family: var(--serif); font-size: clamp(2rem,4vw,3.25rem); font-weight: 650; line-height: 1.05; }
.candidate-step legend span { display: grid; flex: 0 0 auto; width: 48px; height: 48px; border: 1px solid var(--terracotta); border-radius: 50%; color: var(--terracotta-ink); font: 700 .78rem var(--sans); place-items: center; transform: rotate(-4deg); }
.candidate-step-intro { max-width: 720px; margin: 0 0 2.5rem; color: var(--muted); font-size: .88rem; line-height: 1.65; }
.candidate-field-wide { grid-column: 1 / -1; }
.candidate-step .form-field textarea { min-height: 128px; }
.candidate-question-group { margin: 0 0 1.7rem; border: 1px solid rgba(23,58,50,.14); border-radius: 18px 5px 18px 5px; padding: 1.25rem; background: rgba(244,238,223,.38); }
.candidate-question-group.has-error { border-color: #a64d35; box-shadow: 0 0 0 3px rgba(166,77,53,.08); }
.candidate-question { margin: 0 0 1rem; color: var(--forest); font-size: .8rem; font-weight: 750; letter-spacing: .02em; }
.candidate-question > span { color: var(--terracotta-ink); }
.candidate-check-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; }
.candidate-check-grid label, .candidate-radio-row label { display: flex; gap: .6rem; align-items: center; min-height: 48px; border: 1px solid rgba(23,58,50,.16); border-radius: 11px 4px 11px 4px; padding: .65rem .8rem; background: #fffdf7; color: var(--forest-dark); font-size: .76rem; font-weight: 650; cursor: pointer; }
.candidate-check-grid label:hover, .candidate-radio-row label:hover { border-color: var(--terracotta); background: rgba(239,173,63,.1); }
.candidate-check-grid input, .candidate-radio-row input { flex: 0 0 auto; width: 19px; height: 19px; accent-color: var(--terracotta); }
.candidate-group-error { margin: .8rem 0 0; color: #a64d35; font-size: .72rem; font-weight: 700; }
.candidate-cert-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.candidate-cert-card { border-top: 5px solid var(--sky); border-radius: 5px 15px 5px 15px; padding: 1rem; background: var(--cream); }
.candidate-cert-card:nth-child(2) { border-top-color: var(--sage); }
.candidate-cert-card:nth-child(3) { border-top-color: var(--sun); }
.candidate-radio-row { display: flex; flex-wrap: wrap; gap: .55rem; }
.candidate-radio-row label { flex: 1 1 90px; }
.candidate-cert-card .form-field { margin: .9rem 0 0; }
.candidate-cert-card .form-field input { min-height: 46px; background: var(--paper); }
.candidate-review { position: relative; margin-bottom: 2rem; border-left: 7px solid var(--terracotta); border-radius: 5px 18px 5px 18px; padding: 1.5rem 1.7rem; background: var(--mint); }
.candidate-review h3 { margin: 0 0 .25rem; font-size: 2.25rem; }
.candidate-review > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: .82rem; }
.candidate-review ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .45rem 1rem; margin: 1.3rem 0; padding: 0; list-style: none; }
.candidate-review li { position: relative; padding-left: 1.35rem; color: var(--forest-dark); font-size: .75rem; }
.candidate-review li::before { position: absolute; left: 0; color: var(--terracotta-ink); content: "✓"; font-weight: 900; }
.candidate-review-back { border: 0; border-bottom: 1px solid currentColor; padding: 0 0 .12rem; background: transparent; color: var(--forest); font: 700 .7rem var(--sans); cursor: pointer; }
.candidate-commitments { margin-bottom: 2rem; }
.candidate-commitments .form-consent { margin-bottom: .85rem; border: 1px solid rgba(23,58,50,.12); border-radius: 12px 4px 12px 4px; padding: 1rem; background: #fffdf7; }
.candidate-no-upload { border-left: 5px solid var(--sun); margin: 1.6rem 0 0; padding: .9rem 1rem; background: rgba(239,173,63,.12); color: var(--muted); font-size: .74rem; line-height: 1.5; }
.candidate-no-upload strong { color: var(--forest-dark); }
.candidate-step-status { display: none; margin: 1rem 0 0; border-left: 4px solid #a64d35; padding: .7rem .9rem; background: rgba(166,77,53,.08); color: #8b3525; font-size: .76rem; font-weight: 700; }
.candidate-step-status.is-visible { display: block; }
.candidate-form-actions { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-top: 1.4rem; }
.candidate-form-actions [hidden] { display: none !important; }
.candidate-secondary { border: 1px solid rgba(23,58,50,.28); border-radius: 999px; padding: .92rem 1.2rem; background: transparent; color: var(--forest); font: 700 .72rem var(--sans); letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.candidate-form-actions .contact-submit { margin-left: auto; }
.candidate-status { max-width: none; margin: 1rem 0 0; }
.candidate-status.is-success { border-left: 6px solid #46703d; border-radius: 4px 14px 4px 14px; padding: 1.2rem; background: rgba(70,112,61,.1); font-size: .85rem; }
.candidate-status.is-error { border-left: 6px solid #a64d35; border-radius: 4px 14px 4px 14px; padding: 1rem; background: rgba(166,77,53,.08); }
.candidate-footer { border-top-color: rgba(244,238,223,.14); }

@keyframes candidate-step-in {
  from { opacity: 0; transform: translateY(15px); }
}

@keyframes contact-arrow {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}

@keyframes compass-float {
  0%,100% { translate: 0 0; rotate: 0deg; }
  50% { translate: 0 -5px; rotate: .35deg; }
}
@keyframes compass-card-in {
  from { opacity: 0; transform: translateY(18px) rotate(0); }
}
@keyframes dialog-in {
  from { opacity: 0; transform: translateY(18px) scale(.97); }
}
@keyframes slogan-float {
  0%,100% { translate: 0 0; }
  50% { translate: 0 -7px; }
}
@keyframes manifesto-in {
  from { opacity: 0; transform: translateY(10px); }
}
@keyframes vegetable-pop {
  from { opacity: 0; scale: .78; translate: 0 14px; }
}
@keyframes star-wink {
  0%,100% { scale: 1; rotate: 0deg; opacity: .72; }
  50% { scale: 1.18; rotate: 12deg; opacity: 1; }
}
@keyframes nav-menu-arrive {
  from { opacity: 0; translate: 0 18px; }
}

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.world:nth-child(2) { transition-delay: .1s; }
.world:nth-child(3) { transition-delay: .2s; }

@media (max-width: 1100px) {
  .menu-toggle { position: relative; z-index: 3; display: grid; gap: 4px; width: 42px; height: 42px; border: 1px solid rgba(244,238,223,.35); border-radius: 50%; padding: 11px; }
  .menu-toggle > span:not(.sr-only) { display: block; width: 100%; height: 1px; background: var(--cream); transition: .2s; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-header nav { position: fixed; inset: 0; display: none; flex-direction: column; justify-content: center; gap: 1.65rem; background: var(--forest-dark); }
  .site-header nav.is-open { display: flex; }
  .site-header nav.is-open > a { animation: nav-menu-arrive .48s cubic-bezier(.2,.8,.2,1) backwards; }
  .site-header nav.is-open > a:nth-child(2) { animation-delay: .04s; }
  .site-header nav.is-open > a:nth-child(3) { animation-delay: .08s; }
  .site-header nav.is-open > a:nth-child(4) { animation-delay: .12s; }
  .site-header nav.is-open > a:nth-child(5) { animation-delay: .16s; }
  .site-header nav.is-open > a:nth-child(6) { animation-delay: .2s; }
  .site-header nav.is-open > a:nth-child(7) { animation-delay: .24s; }
  .site-header nav.is-open > a:nth-child(8) { animation-delay: .28s; }
  .site-header nav a { font-family: var(--serif); font-size: 1.35rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
  .nav-button { font-family: var(--sans) !important; font-size: .75rem !important; letter-spacing: .08em !important; text-transform: uppercase !important; }
}

@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; padding-top: 10rem; padding-bottom: 10rem; }
  .hero-copy { max-width: 750px; }
  .hero-visual { width: min(100%,720px); min-height: 650px; margin: 2rem auto 0; padding-left: 6rem; }
  .illustration-card { width: min(100%,490px); }
  .hero-logo { width: 225px; }
  .hero-badges { grid-template-columns: repeat(2, 1fr); gap: .8rem 1.4rem; }
  .experience-heading { grid-template-columns: 1fr; gap: 2rem; }
  .worlds { grid-template-columns: 1fr 1fr; }
  .world:last-child { grid-column: 1 / -1; }
  .world:last-child .world-illustration { aspect-ratio: 16 / 7; }
  .world:last-child .world-illustration img { object-position: center 45%; }
  .compass-heading { grid-template-columns: 1fr .65fr; gap: 2rem; }
  .compass-rose { min-height: 650px; }
  .compass-art { width: min(42vw,390px); }
  .compass-points li { width: min(27vw,245px); }
  .colos-main { display: block; }
  .next-season { position: relative; min-height: auto; padding-bottom: 13rem; }
  .next-season::after { font-size: 34vw; }
  .registration { padding-bottom: 17rem; }
  footer { grid-template-columns: 1fr 1fr; pointer-events: auto; }
  .footer-links { align-items: start; }
  .faq-hero { grid-template-columns: 1fr; min-height: auto; padding-bottom: 6rem; }
  .faq-hero-copy { max-width: 760px; }
  .faq-hero-visual { width: min(100%,680px); min-height: 470px; margin: 3rem auto 0; }
  .faq-tools-heading { grid-template-columns: 1fr; gap: 2.5rem; }
  .faq-search-wrap { max-width: 620px; }
  .faq-category { grid-template-columns: 1fr; gap: 2.5rem; }
  .faq-category-heading { position: relative; top: auto; display: grid; grid-template-columns: 68px 1fr auto; gap: 1rem; align-items: center; }
  .faq-category-number { margin: 0; }
  .faq-category-doodle { margin: 0; }
  .faq-footer { grid-template-columns: 1fr 1fr; }
  .home-film { grid-template-columns: 1fr; }
  .video-hero { grid-template-columns: 1fr; min-height: auto; padding-bottom: 8rem; }
  .video-hero-copy { max-width: 780px; }
  .video-hero-feature { width: min(100%,820px); }
  .video-gallery-heading { grid-template-columns: 1fr; gap: 2rem; }
  .video-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .video-closing { grid-template-columns: 1fr; }
  .photo-hero { grid-template-columns: 1fr; min-height: auto; padding-bottom: 8rem; }
  .photo-hero-copy { max-width: 760px; }
  .photo-hero-collage { width: min(100%,760px); min-height: 560px; }
  .photo-album-heading { grid-template-columns: 1fr; gap: 2rem; }
  .photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .photo-closing { grid-template-columns: 1fr; }
  .photo-admin-main { grid-template-columns: 1fr; }
  .photo-admin-intro { position: relative; min-height: 0; padding: 5rem max(6vw,calc((100vw - 1240px) / 2)); }
  .photo-admin-panel, .photo-admin-dashboard { padding-left: max(6vw,calc((100vw - 1240px) / 2)); }
  .agenda-hero { grid-template-columns: 1fr; min-height: auto; padding-bottom: 8rem; }
  .agenda-hero-copy { max-width: 780px; }
  .agenda-hero-calendar { width: min(100%,430px); margin: 2rem auto 0; }
  .agenda-heading, .agenda-past-heading { grid-template-columns: 1fr; gap: 2rem; }
  .agenda-admin-main { grid-template-columns: 1fr; }
  .agenda-admin-intro { position: relative; min-height: 0; padding: 5rem max(6vw,calc((100vw - 1240px) / 2)); }
  .agenda-admin-dashboard { padding-left: max(6vw,calc((100vw - 1240px) / 2)); }
  .terms-hero { grid-template-columns: 1fr; min-height: auto; padding-bottom: 8rem; }
  .terms-hero-copy { max-width: 780px; }
  .terms-hero-card { width: min(100%,620px); }
  .terms-content { grid-template-columns: 1fr; }
  .terms-toc { position: relative; top: auto; }
  .terms-toc ol { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem 1.5rem; }
  .contact-page .site-header { width: 100%; padding-right: 1.5rem; padding-left: 1.5rem; }
  .contact-shell { grid-template-columns: 1fr; }
  .contact-intro { min-height: 760px; padding-right: max(6vw,calc((100vw - 1240px) / 2)); }
  .contact-form-panel { padding-top: 7rem; padding-left: max(6vw,calc((100vw - 1240px) / 2)); }
  .contact-next { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .contact-next > a:nth-child(2) { border-right: 0; }
  .contact-next > a:last-child { grid-column: 1 / -1; }
  .candidate-page .site-header { width: 100%; padding-right: 1.5rem; padding-left: 1.5rem; }
  .candidate-hero { grid-template-columns: 1fr; min-height: auto; padding-top: 10rem; }
  .candidate-hero-copy { max-width: 800px; }
  .candidate-hero-card { width: min(100%,720px); }
  .candidate-check-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .candidate-cert-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .site-header { width: calc(100% - 2rem); }
  .menu-toggle { position: relative; z-index: 3; display: grid; gap: 4px; width: 38px; height: 38px; border: 1px solid rgba(244,238,223,.35); border-radius: 50%; padding: 10px; }
  .menu-toggle > span:not(.sr-only) { display: block; width: 100%; height: 1px; background: var(--cream); transition: .2s; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
  .site-header nav { position: fixed; inset: 0; display: none; flex-direction: column; justify-content: center; gap: 2rem; background: var(--forest-dark); }
  .site-header nav.is-open { display: flex; }
  .site-header nav a { font-family: var(--serif); font-size: 1.6rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
  .nav-button { font-family: var(--sans) !important; font-size: .75rem !important; letter-spacing: .08em !important; text-transform: uppercase !important; }
  .hero { min-height: auto; padding: 9rem 1.2rem 12rem; }
  h1 { font-size: clamp(3.2rem, 16vw, 4.7rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.3rem; }
  .hero-visual { width: 100%; min-height: 540px; margin-top: 2.5rem; padding: 1rem 0 0 2.2rem; }
  .illustration-card { width: min(100%,385px); border-width: 7px; }
  .illustration-card::before { inset: -7px; }
  .illustration-caption { font-size: .68rem; }
  .hero-logo { top: 0; left: -1rem; width: 155px; padding: .3rem; }
  .drawn-star { font-size: 1.2rem; }
  .star-one { right: -.3rem; }
  .star-two { bottom: 8%; left: 2%; }
  .orange-doodle { right: -.5rem; bottom: 0; font-size: 2.2rem; }
  .hero-badges { right: 1.2rem; bottom: 1.2rem; left: 1.2rem; gap: .7rem 1rem; padding-top: .8rem; }
  .hero-badges span { padding: .1rem; font-size: clamp(.72rem,3.4vw,.88rem); letter-spacing: .015em; }
  .experience { padding-right: 1.2rem; padding-left: 1.2rem; }
  .experience-heading { margin-bottom: 3.5rem; }
  .experience-star-one { top: -2rem; left: .25rem; }
  .experience-star-two { right: 6%; bottom: -1.8rem; }
  .worlds { display: block; }
  .world, .world:last-child { min-height: 0; margin-bottom: 1.2rem; }
  .world:last-child .world-illustration { aspect-ratio: 4 / 3; }
  .world-copy { min-height: 270px; }
  .garden-thread { width: 74vw; height: 55px; margin: 4rem auto -3.2rem; }
  .garden-thread .decor-carrot { top: -3.2rem; left: 34%; width: 104px; }
  .compass-strip { margin-top: 6rem; margin-left: calc(50% - 50vw); padding: 5rem 1.2rem 4.5rem; }
  .compass-strip::before { top: -45px; height: 46px; }
  .decor-tomatoes { top: -78px; right: .5rem; width: 116px; }
  .decor-zucchini { bottom: -40px; left: -.35rem; width: 128px; }
  .compass-star-one { top: 2.5rem; right: 1rem; font-size: 1.4rem; }
  .compass-star-two { bottom: 7%; left: .7rem; }
  .compass-heading { grid-template-columns: 1fr; gap: 1.2rem; }
  .compass-heading > p { font-size: .95rem; }
  .compass-instruction { justify-content: flex-start; text-align: left; }
  .compass-rose { display: grid; min-height: 0; }
  .compass-rose::before, .compass-rose::after { display: none; }
  .compass-art { position: relative; top: auto; left: auto; width: min(86vw,390px); margin: .8rem auto 2.6rem; transform: rotate(-2.8deg); }
  .compass-points { position: relative; inset: auto; display: grid; grid-template-columns: 1fr; gap: 1rem; }
  .compass-points li, .compass-point-north, .compass-point-west, .compass-point-east, .compass-point-south { position: relative; top: auto; right: auto; bottom: auto; left: auto; width: 100%; transform: none; }
  .compass-points li:nth-child(odd) { transform: rotate(-.6deg); }
  .compass-points li:nth-child(even) { transform: rotate(.6deg); }
  .compass-points button, .compass-point-north button, .compass-point-south button { min-height: 112px; border-width: 5px; border-radius: 24% 76% 28% 72% / 48% 44% 56% 52%; aspect-ratio: auto; }
  .compass-dialog { width: calc(100% - 1rem); max-height: calc(100vh - 1rem); }
  .compass-dialog-card { padding: 2.4rem 1.4rem 2rem; }
  .next-season { padding: 6rem 1.2rem 12rem; }
  .registration { padding: 5rem 1.2rem 20rem; }
  .steps { margin-bottom: 5rem; }
  .closing-slogan { min-height: 76vh; padding: 8rem 1.2rem 18rem; }
  .slogan-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .slogan-logo-wrap { width: min(58vw,220px); margin: 0 auto; }
  .slogan-copy { text-align: center; }
  .slogan-opening { font-size: clamp(3rem,14vw,4.7rem); }
  .slogan-words { grid-template-columns: repeat(2,max-content); justify-content: center; margin: 0 auto; }
  .slogan-word { padding: .5rem .8rem .62rem; font-size: clamp(1.4rem,6.8vw,2.6rem); }
  footer { right: 1.2rem; bottom: 1.5rem; left: 1.2rem; grid-template-columns: 1fr; gap: 1rem; }
  .footer-links { flex-direction: row; gap: 1rem; }
  .faq-hero { padding: 9rem 1.2rem 5.5rem; }
  .faq-hero-copy h1 { font-size: clamp(3.2rem,16vw,4.8rem); }
  .faq-hero-visual { min-height: 390px; }
  .faq-postcard { right: 0; width: 88%; border-width: 7px; }
  .faq-logo-stamp { right: 0; bottom: 0; width: 140px; }
  .faq-big-question { left: -1%; bottom: 2%; font-size: 9rem; }
  .faq-tools { padding: 5rem 1.2rem 4rem; }
  .faq-chapters { grid-template-columns: 1fr; }
  .faq-category { grid-template-columns: minmax(0,1fr); gap: 2rem; padding: 4.5rem 1.2rem; }
  .faq-category-heading { grid-template-columns: 54px minmax(0,1fr); }
  .faq-category-heading > div { grid-column: 1 / -1; min-width: 0; overflow-wrap: anywhere; }
  .faq-category-number { width: 48px; height: 48px; }
  .faq-category-heading h2 { font-size: clamp(2.5rem,12vw,3.7rem); }
  .faq-category-doodle { display: none; }
  .faq-list summary { grid-template-columns: 1fr 38px; gap: .8rem; min-height: 78px; }
  .faq-toggle { width: 36px; height: 36px; }
  .faq-answer { padding-right: .25rem; }
  .section-kicker { font-size: .86rem; letter-spacing: .1em; }
  .faq-link { width: 100%; justify-content: space-between; padding-left: 1.05rem; font-size: .7rem; }
  .faq-timeline li { grid-template-columns: 1fr; gap: .15rem; }
  .faq-contact { grid-template-columns: 1fr; gap: 2rem; padding: 6rem 1.2rem 9rem; }
  .faq-contact-actions { align-items: flex-start; flex-direction: column; }
  .faq-footer { position: relative; right: auto; bottom: auto; left: auto; grid-template-columns: 1fr; gap: 1.2rem; min-height: 0; padding: 3rem 1.2rem; }
  .home-film { margin-top: 3.5rem; border-radius: 24px 7px 24px 7px; padding: 2rem 1.2rem 2.4rem; }
  .home-film-copy h3 { font-size: clamp(2.8rem,13vw,4rem); }
  .video-player-feature { border-width: 6px; }
  .video-play { right: .7rem; bottom: .7rem; padding: .45rem .75rem .45rem .45rem; font-size: .6rem; }
  .video-play-icon { width: 30px; height: 30px; }
  .video-page .site-header { width: calc(100% - 2rem); }
  .video-hero { padding: 9rem 1.2rem 6rem; }
  .video-hero-copy h1 { font-size: clamp(3.2rem,15.5vw,4.8rem); }
  .video-hero-feature { border-width: 6px; }
  .video-hero-caption { padding: 1.2rem 1rem 1.35rem; }
  .video-gallery { padding: 5.5rem 1.2rem 6rem; }
  .video-gallery-heading h2 { font-size: clamp(3rem,14vw,4.4rem); }
  .video-filters { flex-wrap: nowrap; margin-right: -1.2rem; padding: .15rem 1.2rem .6rem 0; overflow-x: auto; scrollbar-width: none; }
  .video-filters::-webkit-scrollbar { display: none; }
  .video-filters button { flex: 0 0 auto; }
  .video-grid { grid-template-columns: 1fr; }
  .video-card-copy > p:first-child { font-size: .62rem; }
  .video-closing { padding: 5.5rem 1.2rem; }
  .photo-page .site-header { width: calc(100% - 2rem); }
  .photo-hero { padding: 9rem 1.2rem 6rem; }
  .photo-hero-copy h1 { font-size: clamp(3.3rem,16vw,4.9rem); }
  .photo-hero-collage { min-height: 410px; margin-top: 1.5rem; }
  .photo-polaroid { border-width: 5px; padding-bottom: 1.5rem; }
  .photo-polaroid-one { width: 60%; height: 60%; }
  .photo-polaroid-two { width: 55%; height: 52%; }
  .photo-polaroid-three { width: 45%; height: 40%; }
  .photo-album { padding: 5.5rem 1.2rem 6rem; }
  .photo-album-heading h2 { font-size: clamp(3rem,14vw,4.4rem); }
  .photo-filters { flex-wrap: nowrap; margin-right: -1.2rem; padding: .15rem 1.2rem .6rem 0; overflow-x: auto; scrollbar-width: none; }
  .photo-filters::-webkit-scrollbar { display: none; }
  .photo-filters button { flex: 0 0 auto; }
  .photo-grid { grid-template-columns: 1fr; }
  .photo-card, .photo-card-wide, .photo-card-portrait, .photo-card-square { grid-column: auto; grid-row: auto; aspect-ratio: 1; }
  .photo-card-overlay strong { font-size: 1.15rem; }
  .photo-lightbox-inner { grid-template-columns: 1fr; padding: 4rem .75rem 5rem; }
  .photo-lightbox figure img { max-height: calc(100vh - 11rem); border-width: 4px; }
  .photo-lightbox-nav { position: absolute; z-index: 4; bottom: 1rem; width: 46px; height: 46px; }
  .photo-lightbox-prev { left: calc(50% - 58px); }
  .photo-lightbox-next { right: calc(50% - 58px); }
  .photo-lightbox figcaption { padding: .7rem .35rem 0; font-size: .82rem; }
  .photo-closing { padding: 5.5rem 1.2rem; }
  .photo-admin-header { padding: 1rem 1.2rem; }
  .photo-admin-header nav { align-items: flex-end; flex-direction: column; gap: .45rem; }
  .photo-admin-intro { padding: 4.5rem 1.2rem; }
  .photo-admin-panel, .photo-admin-dashboard { padding: 4.5rem 1.2rem; }
  .photo-admin-dashboard > header, .photo-admin-library > header { align-items: flex-start; flex-direction: column; }
  .photo-upload-form { grid-template-columns: 1fr; }
  .photo-admin-card { grid-template-columns: 1fr; }
  .photo-admin-card > img { max-height: 320px; }
  .photo-admin-edit { grid-template-columns: 1fr; padding-right: .4rem; }
  .photo-admin-edit > *, .photo-admin-choices, .photo-admin-actions { grid-column: 1; }
  .photo-admin-actions button[type="submit"] { margin-left: 0; }
  .agenda-page .site-header { width: calc(100% - 2rem); }
  .agenda-hero { padding: 9rem 1.2rem 6rem; }
  .agenda-hero-copy h1 { font-size: clamp(3.2rem,15.5vw,4.8rem); }
  .agenda-hero-calendar { width: min(92%,360px); border-width: 6px; }
  .agenda-upcoming { padding: 5.5rem 1.2rem 6rem; }
  .agenda-heading { margin-bottom: 2rem; }
  .agenda-heading h2, .agenda-past-heading h2 { font-size: clamp(3rem,14vw,4.4rem); }
  .agenda-filters { flex-wrap: nowrap; margin-right: -1.2rem; padding: .15rem 1.2rem .6rem 0; overflow-x: auto; scrollbar-width: none; }
  .agenda-filters::-webkit-scrollbar { display: none; }
  .agenda-filters button { flex: 0 0 auto; }
  .agenda-grid { grid-template-columns: 1fr; }
  .agenda-card.is-featured { grid-column: auto; }
  .agenda-card-top { padding: 1.1rem; }
  .agenda-date { min-width: 82px; }
  .agenda-date strong { font-size: 2.3rem; }
  .agenda-card-copy, .agenda-card-actions { padding-right: 1.2rem; padding-left: 1.2rem; }
  .agenda-empty { padding: 2rem .5rem; }
  .agenda-past { padding: 5.5rem 1.2rem 6rem; }
  .agenda-past-item { grid-template-columns: 82px 1fr; gap: 1rem; }
  .agenda-past-item .agenda-date strong { font-size: 1.6rem; }
  .agenda-admin-intro, .agenda-admin-dashboard { padding: 4.5rem 1.2rem; }
  .agenda-admin-dashboard > header, .agenda-admin-library > header { align-items: flex-start; flex-direction: column; }
  .video-sort-controls { max-width: none; text-align: left; }
  .agenda-event-form { grid-template-columns: 1fr; }
  .agenda-field-wide { grid-column: 1; }
  .agenda-admin-item { align-items: flex-start; flex-direction: column; }
  .agenda-admin-item-actions { flex-wrap: wrap; }
  .video-admin-item { grid-template-columns: 140px minmax(0,1fr); }
  .video-admin-item > img { width: 140px; }
  .video-admin-item-actions { grid-column: 1 / -1; justify-content: flex-start; max-width: none; }
  .agenda-dialog { width: calc(100% - 1rem); max-height: calc(100vh - 1rem); border-radius: 22px 6px 22px 6px; }
  .agenda-dialog-card.has-image { grid-template-columns: 1fr; }
  .agenda-dialog-image-wrap { max-height: 58vh; padding: .55rem; }
  .agenda-dialog-image-wrap img { width: auto; max-width: 100%; height: auto; max-height: calc(58vh - 1.1rem); object-fit: contain; }
  .agenda-dialog-copy { padding: 2.5rem 1.3rem 2rem; }
  .agenda-dialog-copy h2 { padding-right: 2.5rem; font-size: clamp(2.6rem,12vw,4rem); }
  .agenda-dialog-close { top: .7rem; right: .7rem; }
  .agenda-current-image { grid-template-columns: 1fr; }
  .agenda-current-image img { width: 100%; height: 180px; }
  .terms-hero { padding: 9rem 1.2rem 6rem; }
  .terms-hero-copy h1 { font-size: clamp(3.15rem,14.5vw,4.8rem); }
  .terms-hero-card { border-width: 6px; padding: 2rem 1.3rem; }
  .terms-content { gap: 3rem; padding: 5rem 1.2rem; }
  .terms-toc ol { grid-template-columns: 1fr; }
  .terms-intro { padding: 1.3rem; font-size: 1.08rem; }
  .terms-article { padding: 2.7rem 0; }
  .terms-article header { grid-template-columns: 2.75rem 1fr; gap: .75rem; }
  .terms-article header > span { width: 2.35rem; height: 2.35rem; }
  .terms-documents, .terms-cancellation-grid, .terms-contact { grid-template-columns: 1fr; }
  .terms-cancellation { padding: 2rem 1.2rem; }
  .terms-contact { gap: 1.5rem; }
  .contact-page .site-header { width: 100%; padding-right: 1.2rem; padding-left: 1.2rem; }
  .contact-intro { min-height: 700px; padding: 9rem 1.2rem 8rem; }
  .contact-intro h1 { font-size: clamp(3.15rem,15vw,4.7rem); }
  .contact-logo-stamp { width: 140px; margin-bottom: 1.8rem; }
  .contact-form-panel { padding: 5.5rem 1.2rem; }
  .contact-form-heading { margin-bottom: 2.4rem; }
  .form-grid-two, .form-security { grid-template-columns: 1fr; gap: 0; }
  .form-security > p { margin-top: 1rem; }
  .contact-submit-row { align-items: stretch; flex-direction: column; }
  .form-privacy { margin-left: 0; }
  .contact-submit { justify-content: space-between; width: 100%; }
  .contact-next { grid-template-columns: 1fr; }
  .contact-next > a:last-child { grid-column: auto; }
  .contact-next > a { min-height: 145px; padding: 2rem 1.2rem; }
  .contact-next > a:not(:last-child) { border-right: 0; }
  .candidate-page .site-header { width: 100%; padding-right: 1.2rem; padding-left: 1.2rem; }
  .candidate-hero { gap: 3rem; padding: 9rem 1.2rem 5.5rem; }
  .candidate-hero h1 { font-size: clamp(3.15rem,15vw,4.8rem); }
  .candidate-hero-card { border-width: 6px; padding: 2rem 1.3rem; transform: none; }
  .candidate-form-section { padding: 5rem 1.2rem 6rem; }
  .candidate-progress { top: 70px; margin-right: -.3rem; margin-left: -.3rem; padding: .85rem; }
  .candidate-progress > p { font-size: .66rem; }
  .candidate-step { padding: 2rem 1rem; }
  .candidate-step legend { align-items: flex-start; font-size: clamp(2rem,10vw,2.85rem); }
  .candidate-step legend span { width: 42px; height: 42px; }
  .candidate-check-grid, .candidate-review ul { grid-template-columns: 1fr; }
  .candidate-check-grid label { min-height: 46px; }
  .candidate-form-actions { align-items: stretch; flex-direction: column-reverse; }
  .candidate-form-actions .contact-submit, .candidate-secondary { justify-content: space-between; width: 100%; margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .site-header nav.is-open > a { animation: none !important; }
  .site-header nav > a:not(.nav-button):is(:hover,:focus-visible), .site-header .brand:is(:hover,:focus-visible), .site-header .brand:is(:hover,:focus-visible) .brand-mark, .nav-button:is(:hover,:focus-visible), .nav-button:is(:hover,:focus-visible)::after, .menu-toggle:is(:hover,:focus-visible), .hero-recruitment-link:is(:hover,:focus-visible), .hero-recruitment-link:is(:hover,:focus-visible) b { transform: none; }
}

@media (max-width: 390px) {
  .video-admin-item { grid-template-columns: 1fr; }
  .video-admin-item > img { width: 100%; }
  .slogan-words { column-gap: .45rem; }
  .slogan-word { padding: .42rem .55rem .54rem; font-size: clamp(1.22rem,6.2vw,1.5rem); }
}

/* Source : videos-confidentialite.css */
/* Local placeholder, shared by public videos, previews and the team forum. */
.uto-video,.video-player.uto-video{box-sizing:border-box;position:relative;aspect-ratio:auto;min-width:0;background:#0d2b24;color:#fbf8ee;font-family:var(--sans,'DM Sans',Arial,sans-serif);overflow:hidden}
.uto-video-prompt{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;min-height:16rem;padding:1.4rem;text-align:center;background:radial-gradient(circle at 12% 18%,#c7d8be18 0 12%,transparent 12.5%),#173a32}
.uto-video-icon{display:grid;place-items:center;width:3.4rem;height:3.4rem;border-radius:50%;background:#efad3f;color:#0d2b24;font-size:1.2rem;padding-left:.2rem}
.uto-video .uto-video-label{margin:0;color:#fbf8ee;font-size:.875rem;line-height:1.45}
.uto-video .uto-video-open,.uto-video .uto-video-withdraw,.uto-video-dialog .uto-video-choice{box-sizing:border-box;min-height:44px;max-width:100%;border:2px solid currentColor;border-radius:12px;padding:.6rem 1rem;font:700 .9375rem/1.4 var(--sans,'DM Sans',Arial,sans-serif);cursor:pointer;white-space:normal;overflow-wrap:anywhere}
.uto-video .uto-video-open{background:#efad3f;color:#0d2b24;border-color:#efad3f}
.uto-video a{color:#fbf8ee;font-size:.875rem;line-height:1.5;text-decoration:underline;text-underline-offset:.18em;overflow-wrap:anywhere}
.uto-video :is(button,a):focus-visible{outline:3px solid #fbf8ee;outline-offset:4px}
.uto-video .uto-video-frame{aspect-ratio:16/9;background:#0d2b24}
.uto-video .uto-video-frame iframe{display:block;width:100%;height:100%;min-height:0;border:0;aspect-ratio:16/9}
.uto-video-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;padding:1rem}
.uto-video .uto-video-status{flex-basis:100%;margin:0;color:#fbf8ee;font-size:.875rem}
.uto-video .uto-video-withdraw{background:#fbf8ee;color:#173a32}
.uto-video-dialog{box-sizing:border-box;width:min(38rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:1.5rem;border:2px solid #173a32;border-radius:20px;background:#fbf8ee;color:#173a32;font:400 1rem/1.6 var(--sans,'DM Sans',Arial,sans-serif);overflow:auto}
.uto-video-dialog::backdrop{background:#0d2b24bb}
.uto-video-dialog h2{font:500 clamp(1.5rem,4vw,2rem)/1.2 var(--serif,'Fraunces',Georgia,serif);margin:0 0 1rem;color:#173a32}
.uto-video-dialog p{margin:0 0 1rem}
.uto-video-dialog .uto-video-links{display:flex;flex-direction:column;gap:.4rem}
.uto-video-dialog a{color:#173a32;text-decoration:underline;text-underline-offset:.18em}
.uto-video-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.uto-video-dialog .uto-video-choice{flex:1 1 13rem;background:#173a32;color:#fbf8ee;border-color:#173a32}
.uto-video-dialog :is(button,a):focus-visible{outline:3px solid #173a32;outline-offset:4px}
section.uto-video-dialog{position:fixed;inset:1rem;margin:auto;z-index:2000;height:max-content;box-shadow:0 0 0 100vmax #0d2b24bb}
.video-admin-thumbnail{display:grid;place-items:center;min-height:100px;border-radius:12px;background:#173a32;color:#efad3f;font-size:2rem}
.video-admin-preview{aspect-ratio:auto}
@media(max-width:600px){.uto-video-prompt{padding:1.1rem;min-height:17rem}.uto-video-dialog{padding:1.1rem}.uto-video-controls{align-items:stretch;flex-direction:column}.uto-video-controls button{width:100%}}

/* Source : site-ui.css */
/* Interface commune à charger sur chaque page actuelle et future. */
:root {
  --uto-ui-radius: 12px;
  --uto-ui-control-height: 44px;
  --uto-ui-ink: #173a32;
  --uto-ui-line: #c4d2c6;
  --uto-ui-surface: #f4f7ee;
  --uto-ui-error: #842b20;
  --uto-ui-error-surface: #fff3ef;
  --uto-ui-warning: #654d10;
  --uto-ui-warning-surface: #fff8e1;
  --uto-ui-success: #1b5338;
  --uto-ui-success-surface: #edf7ee;
}

/* Shared component rules; each module keeps its action colours and semantics. */
:root body :is(.button, .family-button, .eq-button, .rec-button, .candidate-secondary, .admin-task-link) {
  box-sizing: border-box;
  min-height: var(--uto-ui-control-height);
  max-width: 100%;
  border-radius: var(--uto-ui-radius);
  font-size: .875rem;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
}

:root body :is(.button, .family-button, .eq-button, .rec-button, .candidate-secondary, .admin-task-link):is(:disabled, [aria-disabled="true"]) {
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

:root body :is(.family-message, .eq-notice, .rec-notice, .nl-alert, .cp-alert, .uw-alert, .ub-alert, .photo-admin-message, .contact-status):not(:empty) {
  box-sizing: border-box;
  max-width: 100%;
  margin: 1rem 0;
  border: 1px solid var(--uto-ui-line);
  border-inline-start-width: 4px;
  border-radius: var(--uto-ui-radius);
  padding: .85rem 1rem;
  background: var(--uto-ui-surface);
  color: var(--uto-ui-ink);
  font-size: .9375rem;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

:root body :is(.family-message, .eq-notice, .rec-notice, .nl-alert, .cp-alert, .uw-alert, .ub-alert, .photo-admin-message, .contact-status):is(.error, .is-error, .rec-error, .nl-error, .cp-error, .uw-error, .ub-error) {
  border-color: #bb675c;
  background: var(--uto-ui-error-surface);
  color: var(--uto-ui-error);
}

:root body :is(.family-message, .eq-notice, .rec-notice, .nl-alert, .cp-alert, .uw-alert, .ub-alert, .photo-admin-message, .contact-status):is(.success, .is-success, .nl-success, .cp-success, .uw-success, .ub-success) {
  border-color: #7caa8b;
  background: var(--uto-ui-success-surface);
  color: var(--uto-ui-success);
}

:root body :is(.family-message, .eq-notice, .rec-notice, .nl-alert, .cp-alert, .uw-alert, .ub-alert):is(.warning, .is-warning) {
  border-color: #c5a24a;
  background: var(--uto-ui-warning-surface);
  color: var(--uto-ui-warning);
}

:root body :is(.family-message, .eq-notice, .rec-notice, .contact-status) a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .18em;
}

:root body :is(.admin-empty, .family-empty, .eq-empty, .rec-empty, .photo-admin-empty, .photo-empty, .video-empty, .agenda-empty) {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px dashed var(--uto-ui-line);
  border-radius: var(--uto-ui-radius);
  background: #fffdf7;
  color: var(--uto-ui-ink);
  line-height: 1.6;
  overflow-wrap: anywhere;
}

:root body :is(.admin-empty, .family-empty, .eq-empty, .rec-empty, .photo-admin-empty, .photo-empty, .video-empty, .agenda-empty) :is(h2, h3) {
  margin-top: 0;
  font-size: clamp(1.3rem, 2.5vw, 1.65rem);
  line-height: 1.3;
}

:root body :is(.admin-table-wrap, .eq-table-wrap, .eq-org-table-wrap, .rec-table-wrap, .uf-table-scroll, .budget-table-wrap, .budget-dashboard-table-wrap) {
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  border-radius: var(--uto-ui-radius);
}

.uto-table-hint {
  margin: .7rem 0 .4rem;
  color: #53655f;
  font-size: .875rem;
  line-height: 1.5;
}
.uto-table-hint[hidden] { display: none; }
:root body .uto-scrollable-table:focus-visible {
  outline: 3px solid #842b20;
  outline-offset: 3px;
}

:root body :is(.admin-sidebar, .family-topbar, .photo-admin-header) :is(a, summary, button) {
  overflow-wrap: anywhere;
}
:root body .admin-sidebar :is(a, summary) { min-height: var(--uto-ui-control-height); }
.maintenance-banner { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; }
.maintenance-banner-copy { flex: 1 1 20rem; }
.maintenance-banner-actions { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.maintenance-banner-actions a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: .2em; }

@media print {
  .uto-table-hint { display: none !important; }
  :root body :is(.admin-table-wrap, .eq-table-wrap, .eq-org-table-wrap, .rec-table-wrap, .uf-table-scroll, .budget-table-wrap, .budget-dashboard-table-wrap) { overflow: visible; }
}

.family-topbar,
.photo-admin-header {
  position: relative;
  z-index: 900;
  top: auto;
  isolation: isolate;
  box-shadow: 0 1px 0 rgba(244, 238, 223, .14), 0 9px 24px rgba(13, 43, 36, .13);
}

.family-topbar ~ main [id],
.photo-admin-header ~ main [id] {
  scroll-margin-top: 1rem;
}

.photo-admin-header nav {
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.photo-admin-header nav a[aria-current="page"] {
  border-bottom-color: var(--sun, #efad3f);
  color: var(--sun, #efad3f);
}

.photo-admin-header nav form {
  margin: 0;
}

.photo-admin-header nav button {
  border: 0;
  border-bottom: 1px solid rgba(244, 238, 223, .42);
  padding: 0;
  background: transparent;
  color: var(--cream, #f4eedf);
  font-family: var(--sans, Arial, sans-serif);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
}

.photo-admin-header ~ main .photo-admin-intro,
.photo-admin-header ~ main .agenda-admin-intro {
  top: 1rem;
}

.back-to-top {
  position: fixed;
  z-index: 850;
  right: calc(clamp(1rem, 2.2vw, 2rem) + env(safe-area-inset-right, 0px));
  bottom: calc(clamp(1rem, 2.2vw, 2rem) + env(safe-area-inset-bottom, 0px));
  display: grid;
  width: 52px;
  height: 52px;
  border: 2px solid var(--forest-dark, #0d2b24);
  border-radius: 50%;
  padding: 0;
  background: var(--sun, #efad3f);
  color: var(--forest-dark, #0d2b24);
  box-shadow: 5px 6px 0 rgba(13, 43, 36, .2);
  font-family: var(--sans, Arial, sans-serif);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px) rotate(7deg);
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease, box-shadow .22s ease;
  place-items: center;
  pointer-events: none;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) rotate(3deg);
  pointer-events: auto;
}

.back-to-top:hover {
  box-shadow: 2px 3px 0 rgba(13, 43, 36, .24);
  transform: translateY(-3px) rotate(-4deg);
}

.back-to-top:focus-visible {
  outline: 4px solid var(--cream, #f4eedf);
  outline-offset: 3px;
}

@media (max-width: 720px) {
  .family-topbar,
  .photo-admin-header {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: .75rem;
  }

  .family-topbar nav,
  .photo-admin-header nav {
    align-items: center;
    flex: 0 0 100%;
    flex-flow: row nowrap;
    justify-content: flex-start;
    gap: .85rem;
    width: 100%;
    padding-bottom: .35rem;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .family-topbar nav > *,
  .photo-admin-header nav > * {
    flex: 0 0 auto;
  }

  .photo-admin-header ~ main .photo-admin-intro,
  .photo-admin-header ~ main .agenda-admin-intro {
    top: auto;
  }

  .back-to-top {
    width: 48px;
    height: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .back-to-top {
    transition: none;
  }
}

@media print {
  .family-topbar,
  .photo-admin-header {
    position: static;
    box-shadow: none;
  }

  .back-to-top {
    display: none !important;
  }
}

/* Source : accueil-navigation.css */
/* Trois accès aux espaces, regroupés dans le menu de l’accueil. */
.home-site-header{gap:1.25rem;width:min(1360px,calc(100% - 3rem))}
.home-site-header .brand{flex:0 0 auto}
.home-site-header .brand-mark{flex:0 0 2rem}
.home-site-header .brand-wording{display:grid;grid-template-columns:auto auto;gap:.1rem .3rem}
.home-site-header .brand-wording small{grid-column:1 / -1}
.home-site-header nav{flex-wrap:nowrap;justify-content:flex-end;gap:.65rem .65rem}
.home-site-header nav>a{white-space:nowrap}
.home-site-header nav a.nav-family-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.home-site-header nav a.nav-team-link{background:var(--mint,#c7d8be)}
.home-site-header nav a.nav-team-link:is(:hover,:focus-visible){background:var(--cream,#f4eedf)}
.home-site-header nav a.nav-kids-link{background:var(--sun,#efad3f);color:var(--forest-dark,#0d2b24)}
.home-site-header nav a.nav-kids-link:is(:hover,:focus-visible){background:var(--cream,#f4eedf)}
/* Allow the complete menu to scroll on narrow or short screens. */
@media(max-width:1250px){
 .home-site-header .menu-toggle{position:relative;z-index:3;display:grid;gap:4px;flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(244,238,223,.35);border-radius:50%;padding:11px}
 .home-site-header .menu-toggle>span:not(.sr-only){display:block;width:100%;height:1px;background:var(--cream);transition:.2s}
 .home-site-header .menu-toggle[aria-expanded="true"]>span:nth-child(1){transform:translateY(6px) rotate(45deg)}
 .home-site-header .menu-toggle[aria-expanded="true"]>span:nth-child(2){opacity:0}
 .home-site-header .menu-toggle[aria-expanded="true"]>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
 .home-site-header nav{position:fixed;inset:0;display:none;flex-direction:column;justify-content:flex-start;gap:1rem;padding:5rem 1rem 2rem;background:var(--forest-dark);overflow-y:auto;overscroll-behavior:contain}
 .home-site-header nav.is-open{display:flex}
 .home-site-header nav>a{flex:0 0 auto;max-width:100%;white-space:normal;text-align:center;font-family:var(--serif);font-size:1.35rem;font-weight:500;letter-spacing:0;text-transform:none}
 .home-site-header nav a.nav-family-link{min-width:min(16rem,100%)}
}
/* Footer links must wrap instead of widening the whole mobile page. */
.home-page footer>*{min-width:0}
.home-page .footer-links{flex-wrap:wrap}
.home-page .footer-brand .brand-mark{flex:0 0 2rem}
.home-page .footer-brand .brand-wording{min-width:0}

/* Une invitation légère, intégrée à la rubrique des prochaines colos. */
.home-page .home-kids-invitation{position:relative;z-index:2;display:flex;align-items:center;gap:1rem;max-width:590px;margin:.5rem 0 1.8rem;padding:1.1rem 0 .3rem;border-top:1px solid rgba(244,238,223,.26);color:var(--cream,#f4eedf);text-decoration:none}
.home-kids-invitation>span{min-width:0;flex:1}
.home-kids-invitation strong{display:block;margin-bottom:.3rem;color:var(--sun,#efad3f);font-family:var(--serif,Georgia,serif);font-size:1.65rem;font-weight:500;line-height:1.2}
.home-kids-invitation>span>span{display:block;font-size:.9rem;line-height:1.5}
.home-kids-invitation>b{flex:0 0 auto;font-size:1.5rem;color:var(--sun,#efad3f)}
.home-kids-invitation:hover>span>span{text-decoration:underline;text-underline-offset:4px}
.home-kids-invitation:focus-visible{outline:3px solid var(--sun,#efad3f);outline-offset:6px;border-radius:2px}
@media(max-width:720px){.home-site-header{width:calc(100% - 2rem)}}

/* Étiquettes illustrées des trois espaces. */
.home-site-header nav a.nav-family-link{--space-color:var(--sky,#a9cbd0);--space-tilt:-1deg;position:relative;display:inline-flex;justify-content:flex-start;align-items:center;gap:.5rem;min-height:58px;padding:.55rem .72rem;border:1px solid rgba(255,255,255,.48);border-radius:17px 7px 17px 7px;background:var(--space-color);color:var(--forest-dark,#0d2b24);box-shadow:0 4px 0 rgba(4,25,20,.35),inset 0 1px 0 rgba(255,255,255,.22);opacity:1;transform:rotate(var(--space-tilt));text-transform:none;letter-spacing:0;white-space:nowrap;line-height:1;isolation:isolate;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.home-site-header nav a.nav-team-link{--space-color:var(--mint,#c7d8be);--space-tilt:1deg;border-radius:7px 17px 7px 17px}
.home-site-header nav a.nav-kids-link{--space-color:var(--sun,#efad3f);--space-tilt:-.8deg}
.home-site-header nav a.nav-family-link::before{content:"";position:absolute;inset:4px;border:1px dashed currentColor;border-radius:12px 4px 12px 4px;opacity:.2;pointer-events:none;z-index:-1}
.home-site-header nav a.nav-team-link::before{border-radius:4px 12px 4px 12px}
.home-site-header nav a.nav-family-link::after{display:none}
.home-site-header .space-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:32px;transform:rotate(-4deg);transition:transform .2s ease}
.home-site-header .space-icon svg{display:block;width:28px;height:28px;overflow:visible}
.home-site-header .space-wording{display:block;text-align:left;min-width:0}
.home-site-header .space-wording>span{display:block;margin-bottom:4px;font-family:var(--sans,Arial,sans-serif);font-size:.54rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1}
.home-site-header .space-wording>strong{display:block;font-family:var(--serif,Georgia,serif);font-size:1.05rem;font-weight:500;letter-spacing:-.02em;line-height:1.1}
.home-site-header .space-arrow{align-self:flex-end;margin:0 0 .2rem .05rem;font-family:var(--sans,Arial,sans-serif);font-size:.8rem;line-height:1;opacity:.65;transition:transform .2s ease,opacity .2s ease}
.home-site-header nav a.nav-family-link:is(:hover,:focus-visible){background:var(--space-color);color:var(--forest-dark,#0d2b24);transform:translateY(-3px) rotate(0);box-shadow:0 7px 0 rgba(4,25,20,.28),inset 0 1px 0 rgba(255,255,255,.35)}
.home-site-header nav a.nav-family-link:is(:hover,:focus-visible) .space-icon{transform:rotate(3deg)}
.home-site-header nav a.nav-family-link:is(:hover,:focus-visible) .space-arrow{transform:translate(1px,-1px);opacity:1}
.home-site-header nav a.nav-family-link:focus-visible{outline:3px solid var(--cream,#f4eedf);outline-offset:5px}
.home-site-header nav a.nav-family-link:active{transform:translateY(1px);box-shadow:0 2px 0 rgba(4,25,20,.35)}
@media(max-width:1250px){
 .home-site-header nav a.nav-family-link{width:min(17rem,100%);min-width:0;min-height:65px;gap:.8rem;padding:.7rem 1rem;flex-shrink:0}
 .home-site-header .space-icon,.home-site-header .space-icon svg{width:32px;height:32px;flex-basis:32px}
 .home-site-header .space-wording{flex:1}
 .home-site-header .space-wording>strong{font-size:1.3rem}
 .home-site-header .space-wording>span{font-size:.62rem}
 .home-site-header .space-arrow{font-size:1rem;align-self:center}
}
@media(prefers-reduced-motion:reduce){
 .home-site-header nav a.nav-family-link,.home-site-header nav a.nav-family-link:is(:hover,:focus-visible,:active),.home-site-header .space-icon,.home-site-header nav a.nav-family-link:is(:hover,:focus-visible) .space-icon,.home-site-header .space-arrow,.home-site-header nav a.nav-family-link:is(:hover,:focus-visible) .space-arrow{transition:none;transform:none}
}

/* Le pied de page suit le slogan sur téléphone, quelle que soit la hauteur des liens. */
@media(max-width:720px){
 .home-page .closing-slogan{min-height:0;padding-bottom:3rem}
 .home-page .closing-slogan+footer{position:relative;inset:auto;margin:0;padding:1.5rem 1.2rem calc(5rem + env(safe-area-inset-bottom,0px));background:var(--forest-dark);pointer-events:auto}
 .home-page .footer-brand{align-items:center;justify-self:start;max-width:100%}
 .home-page .footer-brand .brand-wording{display:grid;grid-template-columns:auto auto;gap:.25rem .3rem}
 .home-page .footer-brand .brand-wording small{grid-column:1 / -1;line-height:1.5}
}

/* Source : accueil-public.css */
.home-rich{overflow-wrap:anywhere}.home-rich>p:first-child{margin-top:0}.home-rich>p:last-child{margin-bottom:0}.home-rich p{color:inherit}.home-rich ul,.home-rich ol{padding-left:1.4em;margin:1em 0}.home-rich li{margin:.35em 0}.home-rich a{text-decoration:underline;color:inherit;text-underline-offset:3px}.hero-intro.home-rich{max-width:610px;margin:0 0 2.4rem;color:rgba(244,238,223,.88);font-size:clamp(1rem,1.25vw,1.16rem)}.experience-heading>.home-rich{margin:0 0 .5rem;color:var(--muted);font-size:1.08rem}.world-copy>.home-rich{margin:1em 0}.compass-heading>.home-rich{max-width:520px}.compass-dialog-card>.home-rich{margin:0 0 1rem}.compass-dialog-card>.home-rich>p{margin:0 0 1rem}.next-season>.home-rich{position:relative;z-index:2;max-width:590px;margin:0 0 2.2rem;color:rgba(244,238,223,.88)}.steps li>div>.home-rich{margin:.5em 0;color:inherit}.faq details>.home-rich{margin:-.2rem 2rem 1.5rem 0;color:var(--muted);font-size:.9rem}.faq details>.home-rich p{margin:0 0 .8em}.hero h1,.experience h2,.next-season h2,.world h3{overflow-wrap:break-word}.hero-badges span{overflow-wrap:anywhere}

/* Source : accueil-fluide.css */
/* Accueil : orienter, choisir une date, découvrir le quotidien. */
#prochaines-colos,#premiere-colo{scroll-margin-top:7rem}
.home-next{padding:4.5rem max(1.5rem,calc((100vw - 1320px)/2));background:var(--cream,#f4eedf);display:grid;gap:2rem}
.home-next .next-season{position:relative;top:auto;min-height:0;border-radius:32px;padding:2.6rem;overflow:hidden}
.home-next .next-season h2{font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.08;max-width:850px}
.home-next .next-season>.home-rich{max-width:850px;margin-bottom:1.2rem}
.home-next .opening-countdown{margin-top:1.2rem}
.home-next .home-kids-invitation{margin-top:1.2rem}
.home-next .aid-support{margin-top:1.2rem}
.home-dates>.eyebrow{margin-bottom:1.2rem}
.home-colo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-bottom:1.5rem}
.home-colo-card{display:flex;flex-direction:column;gap:.8rem;padding:1.7rem;border:1px solid #bccabb;border-radius:24px;background:#fffdf6;min-width:0}
.home-colo-card:nth-child(2){background:#e3ece4}.home-colo-card:nth-child(3){background:#f8e4b8}
.home-colo-card :is(h3,h4){font-family:var(--serif,Georgia,serif);font-weight:500;font-size:1.7rem;line-height:1.15;margin:0;overflow-wrap:anywhere}
.home-colo-card p{margin:0;line-height:1.5}.home-colo-date{font-weight:750}.home-colo-card a{margin-top:auto;padding-top:.6rem;color:var(--forest,#183e32);text-decoration:underline;text-underline-offset:4px;font-weight:700}
.home-colo-summary{color:#4c6258}.home-colo-grid>p{grid-column:1/-1}
.home-first{padding:3.5rem max(1.5rem,calc((100vw - 1320px)/2)) 4.5rem;background:#e7eddf}
.home-first-heading{max-width:740px;margin-bottom:2rem}.home-first h2{font-size:clamp(2.3rem,4.4vw,4rem);line-height:1.06;margin:.7rem 0 1.2rem}.home-first h2 em{color:var(--terracotta-ink,#a0472e)}
.home-first-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}.home-first-grid article{border-top:1px solid #a9bca6;padding-top:1.3rem}.home-first-icon{font-size:2.1rem;color:#a64c2b}.home-first h3{font-size:1.5rem;line-height:1.2;margin:.7rem 0}.home-first-grid .home-rich{line-height:1.6;color:#425d4c}
.home-first-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:2rem}
body:has(.home-next) .colos-main{display:block}body:has(.home-next) .colos .registration{max-width:1000px;margin:auto}
@media(max-width:900px){.home-first-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-colo-grid{grid-template-columns:1fr}.home-next{padding:2.5rem 1.2rem}.home-next .next-season{padding:1.8rem}.home-first{padding:2.5rem 1.2rem}}
@media(max-width:600px){body:has(.home-next) .hero{padding-bottom:2.5rem;gap:2rem}body:has(.home-next) .hero h1{font-size:clamp(2.9rem,12vw,4.2rem)}body:has(.home-next) .hero-intro{font-size:1.05rem;margin-bottom:1.5rem}.home-first-grid{grid-template-columns:1fr;gap:1.3rem}.home-first-grid article{display:grid;grid-template-columns:2.2rem 1fr;column-gap:.7rem}.home-first-grid h3{margin:.3rem 0 .5rem}.home-first-grid .home-rich{grid-column:2}.home-next .next-season{padding:1.5rem 1.1rem}.home-first-actions{align-items:stretch;flex-direction:column}.home-colo-card{padding:1.3rem}body:has(.home-next) .experience,body:has(.home-next) .colos{padding-top:3rem;padding-bottom:3rem}}
@media(prefers-reduced-motion:reduce){.home-first *,.home-next *{scroll-behavior:auto}}

@media(min-width:1100px){.home-next{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start}.home-colo-grid{grid-template-columns:1fr}.home-colo-card{padding:1.4rem}.home-dates{padding-top:1rem}.home-next .next-season h2{font-size:3rem}}
.home-next .next-season::after{pointer-events:none}.home-next .next-season>.home-rich,.home-next .next-season>p{max-width:100%}
body:has(.home-next) .registration{padding:3rem 1.2rem}

/* Prochaines aventures : titre libre, petit compte à rebours et billets de colo. */
.home-next.home-next-playful{display:flex;flex-direction:column;gap:2rem;position:relative;background:var(--paper,#fbf8ee);padding-top:3.5rem;padding-bottom:3.5rem}
.home-season-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px);align-items:center;gap:3rem}
.home-next-playful .next-season{display:block;padding:0!important;background:none;color:var(--forest);border-radius:0;overflow:visible;min-height:0}
.home-next-playful .next-season::after{content:none}
.home-next-playful .season-label{color:#a64c2b;margin:0 0 1rem}.home-next-playful .season-label span{box-shadow:0 0 0 5px #efad3f24}
.home-next-playful .next-season h2{color:var(--forest);font-size:clamp(2.4rem,4.7vw,4.3rem);max-width:850px;margin:0 0 1.1rem;letter-spacing:-.035em}
.home-next-playful .next-season>.home-rich,.home-next-playful .next-season>p:not(.season-label){color:#52665d;font-size:1rem;max-width:760px;margin:0;line-height:1.6}
.home-season-art{position:relative;margin:0;transform:rotate(3deg);padding:9px 9px 0;background:#fffdf6;border:1px solid #d9d5c5;box-shadow:5px 8px 0 #173a3210;border-radius:5px}
.home-season-art::before{content:'';position:absolute;z-index:1;width:85px;height:22px;background:#efad3fa6;left:calc(50% - 42px);top:-10px;transform:rotate(-7deg)}
.home-season-art img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}.home-season-art figcaption{padding:10px 2px 12px;text-align:center;font:600 .8rem/1.4 var(--sans)}
.home-next-playful .opening-countdown{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(230px,.9fr) minmax(170px,.7fr);align-items:center;gap:1.4rem;width:100%;max-width:none;margin:0;padding:1.3rem 1.5rem;border:0;border-radius:22px;background:#e8eddf;box-shadow:0 4px 0 #173a3209}
.home-next-playful .opening-countdown .opening-date{font-size:clamp(1.4rem,2.4vw,1.9rem)}
.home-next-playful .opening-countdown .opening-zone{font-size:.75rem}
.home-next-playful .opening-clock dl{gap:.5rem}.home-next-playful .opening-clock dl>div{background:#fffdf6;border-radius:12px;padding:.7rem .2rem;box-shadow:0 3px 0 #173a3210}.home-next-playful .opening-clock dl>div:first-child{background:#f6c866}
.home-next-playful .opening-clock dd{font-size:1.7rem}.home-next-playful .opening-clock dt{font-size:.65rem}
.home-next-playful .opening-links{grid-column:auto;align-items:stretch;flex-direction:column;gap:.3rem}.home-next-playful .opening-link{background:var(--forest);border-color:var(--forest)}.home-next-playful .opening-calendar{justify-content:center;font-size:.7rem}
.home-next-playful .home-dates{padding:0;min-width:0}.home-next-playful .home-dates>.eyebrow{margin:0 0 1.3rem}
.home-next-playful .home-colo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-bottom:1.3rem}
.home-next-playful .home-colo-grid[data-count="1"]{grid-template-columns:1fr}.home-next-playful .home-colo-grid[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-next-playful .home-colo-card{display:flex;flex-direction:column;gap:0;padding:0;border:1px solid #d7c597;border-radius:22px;background:#fff6de;box-shadow:5px 6px 0 #173a3210;overflow:hidden}
.home-ticket-stub{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.6rem;background:#f7c55f;padding:1.1rem;border-bottom:2px dashed #a9833e66;text-align:center}
.home-ticket-star{font-size:2rem}.home-ticket-label{font-size:.75rem;font-weight:700}.home-ticket-days{font-family:var(--serif);font-size:2rem;line-height:1}
.home-ticket-body{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;padding:1.5rem;flex:1;min-width:0}.home-ticket-body .eyebrow{font-size:.62rem;line-height:1.5;letter-spacing:.08em;color:#80532e}
.home-next-playful .home-colo-card :is(h3,h4){font-size:clamp(1.7rem,2.4vw,2.3rem)}.home-ticket-place{font-size:.85rem;color:#52665d}.home-colo-date{font-size:.95rem}
.home-next-playful .home-colo-card a.home-ticket-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;margin-top:auto;padding:.7rem 1.15rem;background:var(--forest);border-radius:99px;color:#fff9e8;font-size:.85rem;text-decoration:none}
.home-ticket-button:hover{background:#285848!important}.home-ticket-button:focus-visible,.home-agenda-link:focus-visible{outline:3px solid #a64c2b;outline-offset:4px}
.home-next-playful .home-colo-card:nth-child(2){background:#eaf1ec;border-color:#b7cbbd}.home-colo-card:nth-child(2) .home-ticket-stub{background:#afc9b7;border-color:#58796866}.home-next-playful .home-colo-card:nth-child(3){background:#e8f0f1;border-color:#b6ccce}.home-colo-card:nth-child(3) .home-ticket-stub{background:#a9cacf;border-color:#527c8466}
.home-next-playful .home-colo-grid[data-count="1"] .home-colo-card{display:grid;grid-template-columns:190px minmax(0,1fr)}
.home-colo-grid[data-count="1"] .home-ticket-stub{border-bottom:0;border-right:2px dashed #a9833e66;flex-direction:column;gap:.4rem;padding:1.7rem 1rem}.home-colo-grid[data-count="1"] .home-ticket-days{font-size:4rem}.home-colo-grid[data-count="1"] .home-ticket-star{font-size:2.7rem}
.home-season-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:2rem;padding-top:1.7rem;border-top:1px solid #d6ddca}
.home-next-playful .home-kids-invitation{margin:0;padding:1.2rem 1.4rem;background:#f6e4d8;border:0;border-radius:19px;color:var(--forest)}
.home-next-playful .home-kids-invitation strong{color:var(--forest);font-size:1.55rem}.home-next-playful .home-kids-invitation span span{color:#52665d;font-size:.85rem}.home-next-playful .home-kids-invitation>b{color:#a64c2b}
.home-next-playful .aid-support{margin:0;max-width:none;width:100%}.home-next-playful .aid-note{color:#52665d;font-size:.7rem;margin-bottom:.6rem}.home-next-playful .aid-logos{gap:.7rem;align-items:center}.home-next-playful .aid-logo{flex:0 1 115px;background:transparent;border:0;min-height:0;padding:0}.home-next-playful .aid-logo img{height:35px;max-width:115px}.home-next-playful .aid-logo-vacaf{flex-basis:40px}.home-next-playful .aid-logo-vacaf img{height:40px;max-width:40px}
@media(max-width:1000px){.home-next-playful .opening-countdown{grid-template-columns:minmax(0,1fr) minmax(220px,1fr)}.home-next-playful .opening-links{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-start;gap:1rem}.home-next-playful .home-colo-grid{grid-template-columns:1fr}.home-next-playful .home-colo-grid[data-count="2"]{grid-template-columns:1fr}.home-season-heading{gap:1.5rem;grid-template-columns:1fr 180px}}
@media(max-width:620px){.home-next.home-next-playful{padding:2.7rem 1.2rem;gap:1.7rem}.home-season-heading{grid-template-columns:1fr;gap:1rem}.home-season-art{display:none}.home-next-playful .next-season h2{font-size:2.6rem}.home-next-playful .opening-countdown{grid-template-columns:1fr;gap:1rem;padding:1.2rem}.home-next-playful .opening-links{grid-column:auto;align-items:stretch;flex-direction:column;gap:.3rem}.home-season-bottom{grid-template-columns:1fr;gap:1.5rem}.home-next-playful .home-colo-grid[data-count="1"] .home-colo-card{display:flex}.home-colo-grid[data-count="1"] .home-ticket-stub{flex-direction:row;border-right:0;border-bottom:2px dashed #a9833e66;padding:1rem;gap:.6rem}.home-colo-grid[data-count="1"] .home-ticket-days{font-size:2rem}.home-colo-grid[data-count="1"] .home-ticket-star{font-size:1.8rem}.home-ticket-body{padding:1.3rem}.home-next-playful .home-kids-invitation{padding:1rem}.home-next-playful .home-colo-card :is(h3,h4){font-size:1.9rem}}

.home-next-playful .opening-countdown.is-reached{grid-template-columns:minmax(0,1fr) auto}@media(max-width:620px){.home-next-playful .opening-countdown.is-reached{grid-template-columns:1fr}}

/* Le cadre fixe le format, indépendamment des dimensions HTML ou du fichier. */
.home-season-art{width:100%;max-width:260px;min-width:0;justify-self:end;box-sizing:border-box}
.home-season-photo{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;border-radius:2px}
.home-season-art .home-season-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:100%;object-fit:cover;object-position:center;aspect-ratio:auto}

/* Petite image à gauche du titre, sur les écrans où elle est affichée. */
@media(min-width:621px){
 .home-season-heading{grid-template-columns:minmax(180px,260px) minmax(0,1fr)}
 .home-season-heading>.home-season-art{grid-column:1;grid-row:1;justify-self:start}
 .home-season-heading>.next-season{grid-column:2;grid-row:1;min-width:0}
}
@media(min-width:621px) and (max-width:1000px){.home-season-heading{grid-template-columns:180px minmax(0,1fr)}}

/* Ajout au calendrier : action visible et facile à toucher. */
.home-next-playful .opening-countdown .opening-calendar{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.15rem;border:2px solid #e8ae39;border-radius:999px;background:#f5c75e;color:#173a32;font-size:.95rem;font-weight:750;line-height:1.35;text-align:center;text-decoration:none;box-sizing:border-box;box-shadow:0 3px 0 #b17d2420}
.home-next-playful .opening-countdown .opening-calendar:hover{background:#ffda81;border-color:#d29b2e}
.home-next-playful .opening-countdown .opening-calendar:focus-visible{outline:3px solid #173a32;outline-offset:4px}
.home-next-playful .opening-countdown .opening-links{gap:.75rem}
@media(max-width:620px){.home-next-playful .opening-countdown .opening-calendar{width:100%;font-size:1rem}}

/* Deux rendez-vous distincts : toute l’année, puis les vacances en colo. */
.home-rendezvous,.home-colo-area{width:100%;min-width:0;scroll-margin-top:10rem}
.home-agenda-heading{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.4rem}
.home-agenda-heading .eyebrow{font-size:.72rem;margin:0 0 .65rem;line-height:1.5}
.home-agenda-heading h3{font:500 clamp(1.9rem,3.2vw,2.7rem)/1.1 var(--serif,Georgia,serif);letter-spacing:-.025em;margin:0;color:#173a32}
.home-agenda-heading p:not(.eyebrow){margin:.7rem 0 0;color:#52665d;line-height:1.6}
.home-agenda-heading>.simple-link{white-space:nowrap;margin-bottom:.2rem}
.home-colo-area{padding-top:2.5rem;border-top:1px solid #d3ddca;margin-top:.5rem}
.home-colo-area .home-dates{padding-top:1.5rem}
.home-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem}
.home-event-grid[data-count="1"]{grid-template-columns:1fr}.home-event-grid[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-event-card{--event-accent:#39778a;--event-paper:#eef4f2;display:flex;flex-direction:column;position:relative;min-width:0;overflow:hidden;border:1px solid #cadbd4;border-top:5px solid var(--event-accent);border-radius:22px;background:var(--event-paper);box-shadow:0 5px 0 #173a3208}
.home-event-chantiers{--event-accent:#a55337;--event-paper:#fff0e3}.home-event-spectacles{--event-accent:#b8892b;--event-paper:#fff4d9}
.home-event-body{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;padding:1.6rem;flex:1;min-width:0}
.home-event-top{display:flex;justify-content:space-between;align-items:center;gap:.7rem;width:100%;flex-wrap:wrap}
.home-event-kind{font-size:.75rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#3b5e57}
.home-event-status{font-size:.74rem;font-weight:750;padding:.28rem .65rem;border-radius:30px;background:#fffdf6;color:#71532b;line-height:1.6}
.home-event-status-open{color:#1e6143;background:#e0edda}.home-event-status-full{color:#8e402b;background:#f6dfcd}
.home-event-date{font-size:.9rem;font-weight:750;line-height:1.5;color:#173a32}
.home-event-body h4{font:500 clamp(1.65rem,2.7vw,2.35rem)/1.15 var(--serif,Georgia,serif);letter-spacing:-.02em;margin:0;overflow-wrap:anywhere}
.home-event-place,.home-event-summary{font-size:.9rem;line-height:1.65;margin:0;color:#49625b;max-width:900px}
.home-event-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;margin-top:auto;border:1px solid #173a32;border-radius:30px;color:#173a32;text-decoration:none;font-size:.87rem;font-weight:750;line-height:1.5}
.home-event-link:hover{background:#173a32;color:#fffdf6}.home-event-link:focus-visible{outline:3px solid #a55337;outline-offset:4px}
.home-event-image{width:100%;height:190px;object-fit:cover;order:-1}.home-event-grid[data-count="1"] .home-event-card.has-image{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,28%)}
.home-event-grid[data-count="1"] .home-event-card.has-image .home-event-image{order:0;height:100%;min-height:240px;max-height:400px;align-self:center;border-radius:18px 0 0 18px}
.home-agenda-empty{grid-column:1/-1;margin:0;padding:1.4rem;border:1px dashed #c4d3c2;border-radius:18px;color:#52665d}
/* Cirque, potager et vie collective : un arrondi commun à la photo et au fond coloré. */
.home-page .worlds>.world{--world-radius:clamp(22px,2vw,28px);border-radius:var(--world-radius);overflow:hidden}
.home-page .worlds>.world .world-illustration{border-radius:var(--world-radius) var(--world-radius) 0 0}
@media(max-width:1000px){.home-event-grid,.home-event-grid[data-count="2"]{grid-template-columns:1fr}.home-event-body{padding:1.4rem}}
@media(max-width:620px){.home-agenda-heading{gap:1rem}.home-colo-area{padding-top:1.8rem}.home-event-grid[data-count="1"] .home-event-card.has-image{display:flex}.home-event-grid[data-count="1"] .home-event-card.has-image .home-event-image{order:-1;height:190px;min-height:0;border-radius:0}.home-event-body{padding:1.2rem}.home-event-body h4{font-size:1.85rem}.home-event-link{white-space:normal;text-align:center}.home-event-place{overflow-wrap:anywhere}}

/* Source : boussole-stable.css */
/* Réserver l’image avant son décodage et séparer le centrage des animations. */
.compass-rose{display:grid;place-items:center}
.compass-rose .compass-art{position:relative;top:auto;left:auto;margin:0;aspect-ratio:1 / 1;transform:rotate(-2.8deg);translate:none;rotate:none;animation:none}
.compass-rose .compass-art img{width:100%;height:auto;aspect-ratio:1 / 1;object-fit:contain}
.compass-strip.is-visible .compass-art{animation:none}
/* L’apparition ne doit pas remplacer les translations qui placent les repères. */
.compass-strip.is-visible .compass-points li{animation-name:compass-stable-appear}
@keyframes compass-stable-appear{from{opacity:0}to{opacity:1}}
@media(max-width:720px){
 .compass-rose{place-items:initial}
 .compass-rose .compass-art{margin:.8rem auto 2.6rem}
 .compass-rose .compass-points{width:100%}
}
@media(prefers-reduced-motion:reduce){.compass-strip.is-visible .compass-points li{animation:none}}

/* La liste couvre toute la rose : seuls ses boutons doivent capter les clics. */
.compass-rose .compass-points{pointer-events:none}
.compass-rose .compass-points button{pointer-events:auto}
.compass-rose .compass-art::before,.compass-rose .compass-art::after{pointer-events:none}
.compass-rose .compass-image-link{position:relative;z-index:1;display:block;border-radius:45%;cursor:pointer}
.compass-rose .compass-image-link:focus-visible{outline:3px solid var(--sun,#efad3f);outline-offset:8px}
/* Le lien reste dans le flux, sous la rose et ses quatre repères. */
.compass-page-action{position:relative;margin:2rem 0 0;text-align:center}
.compass-page-link{display:inline-flex;align-items:center;justify-content:center;gap:1rem;max-width:100%;min-height:68px;padding:1rem 1.4rem;border:2px solid var(--sun,#efad3f);border-radius:18px;background:var(--sun,#efad3f);color:var(--forest-dark,#0d2b24);text-decoration:none;line-height:1.4;box-shadow:0 5px 0 #0002;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}
.compass-page-link .compass-page-wording{display:grid;gap:.15rem}
.compass-page-link strong{font-size:1rem;font-weight:800}
.compass-page-link small{font-size:.8rem}
.compass-page-link .compass-page-arrow{flex:0 0 auto;font-size:1.5rem}
.compass-page-link:hover{background:var(--cream,#f4eedf);border-color:var(--cream,#f4eedf);color:var(--forest-dark,#0d2b24);box-shadow:0 7px 0 #0002}
.compass-page-link:focus-visible{outline:3px solid var(--cream,#f4eedf);outline-offset:5px}
@media(max-width:720px){.compass-page-link{width:100%;gap:.65rem;padding:1rem}.compass-page-action{margin-top:1.5rem}}
@media(prefers-reduced-motion:reduce){.compass-page-link{transition:none}}

/* Source : accueil-decors.css */
/* Illustrations libres dans les marges, comme les légumes existants. */
body.home-page .experience,body.home-page .colos,.home-first,.home-next{position:relative}
.home-free-decor{position:absolute;display:block;z-index:2;width:clamp(100px,9vw,120px);height:auto;aspect-ratio:1;object-fit:contain;pointer-events:none;user-select:none;filter:drop-shadow(2px 5px 3px #173a3214);border:0;background:none}
.home-free-juggling{top:-14px;right:5%;transform:rotate(13deg)}
body.home-page .experience{padding-top:105px}
.home-free-garden{top:-30px;left:auto;right:5%;transform:rotate(-9deg)}
body.home-page .colos{padding-top:48px}
.home-free-stars{position:absolute;top:15px;left:4%;display:flex;align-items:center;gap:17px;pointer-events:none;user-select:none;color:#c38b26;line-height:1}
.home-free-stars i{font-style:normal;font-size:24px;transform:rotate(-12deg)}.home-free-stars i:nth-child(2){font-size:15px;transform:translateY(12px) rotate(8deg)}.home-free-stars i:nth-child(3){font-size:10px;transform:translateY(-6px)}
.home-first>.home-free-stars{left:auto;right:4%;color:#b36342}
@media(max-width:720px){.home-free-decor{width:82px}body.home-page .experience{padding-top:78px}body.home-page .colos{padding-top:28px}.home-free-juggling{top:-8px;right:5%}.home-free-garden{top:-14px;left:auto;right:5%}.home-free-stars{gap:10px;top:12px}.home-free-stars i{font-size:18px}.home-free-stars i:nth-child(2){font-size:12px}.home-free-stars i:nth-child(3){font-size:8px}}
@media print{.home-free-decor,.home-free-stars{display:none}body.home-page .experience,body.home-page .colos{padding-top:2rem}}
/* Même étoile à quatre branches que près des tomates, dans les marges existantes. */
.home-wink-star{position:absolute;display:block;z-index:2;width:1em;height:1em;font:400 25px/1 Georgia,serif;pointer-events:none;user-select:none;transform-origin:center;animation:star-wink var(--star-time,4.8s) ease-in-out var(--star-delay,0s) infinite}
.star-color-gold{color:#dda836}.star-color-clay{color:#d47750}.star-color-sage{color:#8fab80}.star-color-blue{color:#91bfc5}.star-color-cream{color:#fff2cb}
.star-place-hero{left:2%;bottom:18px;font-size:22px}
.star-place-next-left{left:2%;top:16px;font-size:21px}.star-place-next-right{right:2%;top:22px;font-size:14px}
.star-place-first{right:3%;top:15px;font-size:24px}
.star-place-experience{left:7%;top:22px;font-size:19px}
.star-place-film{right:16px;top:12px;font-size:18px}
.star-place-colos{left:3%;top:18px;font-size:21px}
.star-place-closing-left{left:4%;top:30px;font-size:26px}.star-place-closing-right{right:5%;top:55px;font-size:17px}
@media(max-width:720px){.home-wink-star{font-size:16px}.star-place-next-right,.star-place-closing-right{display:none}.star-place-film{font-size:12px;right:9px;top:8px}.star-place-colos{font-size:14px;top:14px}.star-place-hero{font-size:14px;bottom:10px}.star-place-experience{top:16px}}
@media(prefers-reduced-motion:reduce){.home-wink-star{animation:none}}
@media print{.home-wink-star{display:none}}

/* Source : pied-de-page.css */
/* Public footer: follows the page in normal flow, independently of slogan height. */
.uto-footer,.home-page .closing-slogan + .uto-footer{position:relative;inset:auto;display:block;margin:0;min-height:0;padding:3.5rem max(5vw,calc((100vw - 1240px)/2)) 1.5rem;border:0;background:#0e2c24;color:#eee8d7;pointer-events:auto;text-align:left;z-index:3}
.uto-footer-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr 1.2fr;gap:clamp(1.5rem,3.5vw,3.5rem);padding-top:2.4rem;border-top:1px solid #ffffff26;align-items:start}
.uto-footer-grid>*{min-width:0}
.uto-footer .uto-footer-brand{display:inline-flex;align-items:center;gap:.65rem;font:700 1.9rem/1.1 var(--serif,Georgia,serif);text-decoration:none;color:#fbf5e7;white-space:nowrap}
.uto-footer-brand>span{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:#f1b13a;color:#163a31;font:1.15rem/1 sans-serif}
.uto-footer p,.uto-footer address{font:400 .94rem/1.65 var(--sans,sans-serif);letter-spacing:0;text-transform:none;color:#c9d2c3;margin:0}
.uto-footer .uto-footer-association{font-size:.8rem;margin:.6rem 0 1.4rem}
.uto-footer address{font-style:normal}
.uto-footer a{color:inherit;overflow-wrap:anywhere;text-underline-offset:.3em}
.uto-footer .uto-footer-phone{display:inline-flex;align-items:center;min-height:44px;font:600 1rem/1.4 var(--sans,sans-serif);color:#fbf5e7}
.uto-footer h2{margin:0 0 1rem;font:600 1.25rem/1.25 var(--serif,Georgia,serif);letter-spacing:0;text-transform:none;color:#f5cd74}
.uto-footer-nav{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.uto-footer-nav>a{display:flex;align-items:center;min-height:44px;padding:.25rem 0;font:400 .96rem/1.4 var(--sans,sans-serif);text-decoration:none;letter-spacing:0;text-transform:none}
.uto-footer-nav>a:hover,.uto-footer-contact:hover{color:#f5cd74;text-decoration:underline}
.uto-footer .uto-footer-facebook{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:1.15rem 0 .5rem;padding:.8rem 1rem;min-height:48px;border-radius:18px;background:#b6d2d6;color:#153a31;font:700 .88rem/1.4 var(--sans,sans-serif);text-decoration:none}
.uto-footer-facebook>span:last-child{font-size:1.25rem;flex-shrink:0}
.uto-footer .uto-footer-facebook:hover{background:#d3e6e8}
.uto-footer-contact{display:inline-flex;align-items:center;min-height:44px;font:400 .92rem/1.4 var(--sans,sans-serif);text-decoration:none}
.uto-footer a:focus-visible{outline:2px solid #f5cd74;outline-offset:4px;border-radius:4px}
.uto-footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 2rem;margin-top:2.4rem;padding-top:1rem;border-top:1px solid #ffffff26}
.uto-footer-bottom p{font-size:.78rem}
.uto-footer-bottom nav{display:flex;flex-wrap:wrap;gap:.5rem 1.3rem}
.uto-footer-bottom a{display:inline-flex;align-items:center;min-height:44px;font:400 .78rem/1.4 var(--sans,sans-serif);text-decoration:none}
.uto-footer-bottom a:hover{text-decoration:underline}
/* Leave room for the slogan itself instead of reserving a guessed footer height. */
.home-page .closing-slogan{display:block;min-height:0;padding:5rem max(5vw,calc((100vw - 1240px)/2)) 1.5rem}
.home-page .slogan-layout{width:min(100%,1060px);grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);padding:0;margin:0 auto}
.home-page .slogan-logo-wrap{width:100%;margin:0}
.home-page .slogan-opening{font-size:clamp(2.5rem,4.5vw,4.5rem);line-height:1.05;margin-bottom:1.7rem}
.home-page .slogan-words{display:flex;flex-wrap:wrap;width:auto;justify-content:flex-start;gap:.85rem}
.home-page .slogan-word{font-size:clamp(1.5rem,2.45vw,2.2rem);padding:.55rem .9rem .65rem;white-space:nowrap}
.home-page .slogan-doodle-two{right:2%;bottom:8%;font-size:2rem;opacity:.35}
.home-page .slogan-doodle-one{left:3%;top:15%;font-size:2.5rem}
@media(min-width:861px){.uto-footer-bottom{padding-right:3.5rem}}
@media(max-width:1050px){.uto-footer-grid{grid-template-columns:1fr 1fr;gap:2rem 3rem}.uto-footer-social{max-width:360px}}
@media(max-width:700px){
 .uto-footer,.home-page .closing-slogan + .uto-footer{padding:2rem 1.3rem calc(5rem + env(safe-area-inset-bottom,0px))}
 .uto-footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem 1rem;padding-top:2rem}
 .uto-footer-identity,.uto-footer-social{grid-column:1 / -1}
 .uto-footer .uto-footer-association{margin-bottom:.9rem}
 .uto-footer h2{font-size:1.14rem}.uto-footer-nav>a{font-size:.9rem}
 .uto-footer-social{max-width:none;padding:1.5rem 0 0;border-top:1px solid #ffffff26}
 .uto-footer .uto-footer-facebook{max-width:330px}
 .uto-footer-bottom{margin-top:1.5rem;display:block}.uto-footer-bottom nav{margin-top:.5rem;gap:0 1rem}
 .home-page .closing-slogan{padding:4rem 1.3rem 1.5rem}
 .home-page .slogan-layout{grid-template-columns:1fr;gap:2rem}
 .home-page .slogan-logo-wrap{width:150px;margin:0 auto}
 .home-page .slogan-tape{width:70px;height:20px;top:-10px}
 .home-page .slogan-copy{text-align:center}.home-page .slogan-kicker{font-size:.65rem;margin-bottom:1rem}
 .home-page .slogan-opening{font-size:clamp(2.5rem,9vw,3.5rem);line-height:1.1}
 .home-page .slogan-words{justify-content:center;gap:.75rem .5rem}
 .home-page .slogan-word{font-size:clamp(1.25rem,5.4vw,1.8rem);padding:.5rem .65rem .6rem;gap:.4rem}
}
@media(prefers-reduced-motion:reduce){.home-page .closing-slogan .slogan-word{animation:none}}

/* Footer organisation — 01/10/2026. These rules only affect the footer. */
.uto-footer,.home-page .closing-slogan + .uto-footer {
  padding:2.25rem max(5vw,calc((100vw - 1240px)/2)) 1.4rem;
}
.uto-footer .uto-footer-grid {
  grid-template-columns:minmax(0,1.12fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.16fr);
  gap:clamp(1.25rem,2.6vw,2.5rem);
  padding-top:1.9rem;
}
.uto-footer .uto-footer-brand {font-size:1.75rem;min-height:44px;white-space:normal}
.uto-footer .uto-footer-brand>span {flex:none}
.uto-footer .uto-footer-association {margin:.4rem 0 1rem}
.uto-footer address {font-size:.88rem;line-height:1.6}
.uto-footer .uto-footer-phone {margin-top:.25rem}
.uto-footer .uto-footer-contact {
  display:flex;width:fit-content;gap:.5rem;min-height:44px;
  color:#f5cd74;font-size:.9rem;font-weight:600;
}
footer.uto-footer .uto-footer-grid h2 {margin:.45rem 0 .75rem;font-size:1.2rem;line-height:1.3}
.uto-footer .uto-footer-nav>a {min-height:44px;box-sizing:border-box;padding:.45rem 0;font-size:.91rem}
.uto-footer .uto-footer-social {max-width:none;padding:0;border:0}
.uto-footer .uto-footer-social>p {font-size:.85rem;line-height:1.6}
footer.uto-footer a.uto-footer-newsletter {
  display:flex;align-items:center;justify-content:space-between;gap:.65rem;
  min-height:48px;box-sizing:border-box;margin:.9rem 0 .1rem;padding:.7rem .95rem;
  border:1px solid #f5cd74;border-radius:12px;background:#f5cd74;color:#173a32;
  font:700 .88rem/1.4 var(--sans,sans-serif);text-decoration:none;
}
footer.uto-footer a.uto-footer-newsletter:hover {background:#ffe1a0;border-color:#ffe1a0}
footer.uto-footer a.uto-footer-newsletter>span:last-child {flex:none;font-size:1.15rem}
.uto-footer .uto-footer-facebook {
  display:flex;justify-content:flex-start;gap:.5rem;min-height:44px;max-width:none;
  box-sizing:border-box;margin:0;padding:.45rem 0;border:0;border-radius:0;
  background:transparent;color:#c9d2c3;font:400 .85rem/1.4 var(--sans,sans-serif);
}
.uto-footer .uto-footer-facebook:hover {background:transparent;color:#f5cd74;text-decoration:underline}
.uto-footer .uto-footer-facebook>span[aria-hidden] {font-size:1rem;flex:none}
.uto-footer .uto-footer-help {display:flex;flex-wrap:wrap;gap:0 1rem;margin:0}
.uto-footer .uto-footer-help a {
  display:inline-flex;align-items:center;min-height:44px;
  font:400 .82rem/1.4 var(--sans,sans-serif);text-decoration:underline;
}
.uto-footer .uto-footer-help a:hover {color:#f5cd74}
.uto-footer .uto-footer-bottom {
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:.1rem 1.5rem;margin-top:1.8rem;padding:1rem 0 0;
}
.uto-footer .uto-footer-bottom>p {font-size:.75rem;line-height:1.6}
.uto-footer .uto-footer-bottom nav {justify-content:flex-end;gap:0 1.3rem;margin:0}
.uto-footer .uto-footer-bottom a {font-size:.75rem}
.uto-footer .uto-footer-bottom>.association-identite {
  display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .6rem;grid-column:1/-1;
  width:100%;margin:0;font:400 .75rem/1.6 var(--sans,sans-serif);color:#c9d2c3;
  font-variant-numeric:tabular-nums;
}
.uto-footer .uto-footer-sr-only {
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
  margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;border:0!important;
}
.uto-footer a:focus-visible {outline:2px solid #f5cd74;outline-offset:4px;border-radius:4px}
@media(max-width:1050px) {
  .uto-footer .uto-footer-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:1.7rem 2.5rem}
  .uto-footer .uto-footer-grid>* {grid-column:auto}
  .uto-footer .uto-footer-bottom {grid-template-columns:minmax(0,1fr)}
  .uto-footer .uto-footer-bottom nav {justify-content:flex-start}
}
@media(max-width:700px) {
  .uto-footer,.home-page .closing-slogan + .uto-footer {padding:1.5rem 1.3rem calc(5rem + env(safe-area-inset-bottom,0px))}
  .uto-footer .uto-footer-grid {grid-template-columns:minmax(0,1fr);gap:1.25rem;padding-top:1.5rem}
  .uto-footer .uto-footer-grid>* {grid-column:auto}
  .uto-footer .uto-footer-grid>*+* {padding-top:1.2rem;border-top:1px solid #ffffff26}
  footer.uto-footer .uto-footer-grid h2 {margin:0 0 .5rem;font-size:1.15rem}
  .uto-footer .uto-footer-nav {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;align-items:stretch}
  .uto-footer .uto-footer-nav h2 {grid-column:1/-1}
  .uto-footer .uto-footer-nav>a {font-size:.88rem}
  footer.uto-footer a.uto-footer-newsletter {max-width:360px}
  .uto-footer .uto-footer-bottom {margin-top:1.25rem;padding-top:.9rem;gap:.2rem}
  .uto-footer .uto-footer-bottom nav {gap:0 1rem}
}
@media(max-width:359px) {
  .uto-footer .uto-footer-nav {grid-template-columns:minmax(0,1fr)}
}

/* Source : accueil-entete.css */
/* Accueil : deux lignes lisibles, puis une présentation dans le flux de la page. */
.home-page .home-site-header {
  position: relative;
  inset: auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0 1.5rem;
  width: 100%;
  margin: 0;
  padding: 0 max(6vw, calc((100vw - 1240px) / 2));
  background: var(--forest);
}
.home-page .home-site-header > .brand { grid-area: 2 / 1; margin: 1.2rem 0; }
.home-page .home-site-header nav { position: static; display: contents; padding: 0; background: transparent; }
.home-access-row { grid-area: 1 / 1 / auto / -1; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: .75rem 0 1rem; border-bottom: 1px solid rgba(244,238,223,.17); }
.home-access-label { color: var(--mint); font: italic 1.05rem/1.3 var(--serif); }
.home-spaces { display: flex; flex-wrap: wrap; min-width: 0; align-items: center; justify-content: flex-end; gap: .8rem; }
.home-page .home-site-header nav a.nav-family-link { flex: 0 0 auto; width: auto; min-width: 0; min-height: 52px; padding: .5rem .75rem; gap: .5rem; }
.home-page .home-site-header .space-icon,
.home-page .home-site-header .space-icon svg { width: 25px; height: 28px; flex-basis: 25px; }
.home-page .home-site-header .space-wording { flex: initial; }
.home-page .home-site-header .space-wording > span { font-size: .54rem; }
.home-page .home-site-header .space-wording > strong { font-size: 1.12rem; }
.home-page .home-site-header .space-arrow { align-self: center; font-size: .9rem; }
.home-page .home-site-header nav .home-recruitment-link { display: grid; gap: .25rem; margin: 0 .2rem 0 0; padding: .45rem .6rem; color: var(--cream); text-transform: none; letter-spacing: 0; line-height: 1.3; }
.home-recruitment-link > span { color: var(--mint); font-size: .68rem; font-weight: 400; }
.home-recruitment-link > strong { font-size: .81rem; font-weight: 650; }
.home-recruitment-link b { margin-left: .3rem; color: var(--sun); }
.home-recruitment-link:hover strong { text-decoration: underline; text-underline-offset: 4px; }
.home-public-row { grid-area: 2 / 2; display: flex; align-items: center; justify-content: flex-end; gap: clamp(1rem, 2vw, 2rem); padding: .9rem 0; }
.home-public-row > a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
.home-page .home-site-header .home-public-row > a:not(.nav-button) { color: var(--cream); font: 650 .8rem/1.4 var(--sans); letter-spacing: .07em; text-transform: uppercase; }
.home-public-row > a:not(.nav-button):hover { color: var(--sun); text-decoration: underline; text-underline-offset: 6px; }
.home-page .home-site-header .home-public-row > .nav-button { border-color: var(--sun); padding: .75rem 1.2rem; background: var(--sun); color: var(--forest-dark); font-weight: 750; }
.home-public-row > .nav-button:hover { background: var(--cream); }
.home-page .home-site-header a:focus-visible,
.home-menu-toggle:focus-visible { outline: 3px solid var(--sun); outline-offset: 5px; }
.home-page .home-site-header .home-mobile-colos,
.home-menu-toggle { display: none; }

/* La hauteur suit les textes et la photo, y compris après une modification dans l’administration. */
.home-page .hero { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 2.8rem 4rem; min-height: 0; padding: 2.6rem max(6vw, calc((100vw - 1240px) / 2)) 2rem; }
.home-page .hero-copy { min-width: 0; padding-bottom: 0; }
.home-page .hero h1 { font-size: clamp(3.25rem, 5.5vw, 6rem); }
.home-page .hero-intro { margin-bottom: 1.8rem; }
.home-page .hero-actions { flex-wrap: wrap; gap: .9rem 1.5rem; }
.home-page .hero-visual { width: 100%; min-width: 0; min-height: 0; margin: 0; padding: 1rem .5rem .6rem 1rem; }
.home-page .hero .illustration-card { width: min(100%, 440px); margin: 0 0 0 auto; }
.home-page .hero .illustration-card > img { height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.home-page .hero-logo { top: -1.35rem; left: -1.6rem; width: clamp(88px, 8vw, 120px); padding: .3rem; box-shadow: 0 7px 18px rgba(7,30,24,.23); pointer-events: none; }
.home-page .hero .hero-logo img { aspect-ratio: 1; height: 100%; }
.home-page .hero-visual .star-one { top: 1.2rem; right: -.3rem; }
.home-page .hero-visual .star-two { bottom: -.6rem; left: 0; }
.home-page .hero-visual .orange-doodle { right: -.5rem; bottom: -1rem; font-size: 2rem; }
.home-page .hero-badges { position: relative; inset: auto; grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: .2rem 0 0; padding-top: 1.15rem; }
.home-page .hero-badges span { align-self: center; overflow-wrap: normal; font-size: clamp(.82rem, 1.1vw, 1rem); }

@media (max-width: 1000px) {
  .home-page .home-site-header { grid-template-columns: minmax(0, 1fr) auto auto; column-gap: .7rem; padding: .8rem 1.2rem; }
  .home-page .home-site-header > .brand { grid-area: 1 / 1; margin: 0; }
  .home-page .home-site-header .home-mobile-colos { display: inline-flex; grid-area: 1 / 2; align-items: center; justify-content: center; gap: .4rem; min-height: 44px; padding: .55rem .9rem; border-radius: 999px; background: var(--sun); color: var(--forest-dark); font-size: .8rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
  .home-page .home-site-header nav { position: static; display: flex; grid-column: 1 / -1; flex-direction: column; align-items: stretch; gap: 1.5rem; margin-top: 1rem; padding: 1rem 0; background: var(--forest); overflow: visible; }
  .home-access-row { display: block; padding: 0 0 1.5rem; }
  .home-access-label { display: block; margin-bottom: 1rem; text-align: center; }
  .home-spaces { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: .85rem; }
  .home-page .home-site-header nav a.nav-family-link { justify-content: flex-start; min-height: 66px; width: 100%; padding: .7rem; }
  .home-page .home-site-header .space-wording { flex: 1; }
  .home-page .home-site-header .space-wording > strong { font-size: 1.3rem; }
  .home-page .home-site-header nav .home-recruitment-link { order: 1; align-content: center; gap: .4rem; margin: 0; padding: .6rem .7rem; border: 1px dashed rgba(244,238,223,.45); border-radius: 7px 17px 7px 17px; }
  .home-recruitment-link > span { font-size: .72rem; }
  .home-recruitment-link > strong { font-size: .9rem; }
  .home-public-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1rem; padding: 0; }
  .home-public-row > a { justify-content: center; }
  .home-page .home-site-header .home-public-row > a:not(.nav-button) { font: 500 1.3rem/1.3 var(--serif); letter-spacing: 0; text-transform: none; }
  .home-public-row > .nav-button { grid-column: 1 / -1; margin-top: .6rem; }
  :where(html.uto-home-menu-ready) .home-page .home-site-header:not(.is-enhanced) .home-menu-toggle,
  .home-page .home-site-header.is-enhanced .home-menu-toggle { position: relative; z-index: 62; display: grid; grid-area: 1 / 3; justify-items: center; gap: 3px; width: 48px; min-height: 48px; padding: 8px 5px 4px; border: 1px solid rgba(244,238,223,.4); border-radius: 12px; background: var(--forest); color: var(--cream); cursor: pointer; }
  .home-menu-icon { display: grid; gap: 4px; width: 19px; }
  .home-menu-icon i { display: block; height: 1px; width: 100%; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
  .home-menu-label { font: 600 .58rem/1.2 var(--sans); }
  .home-menu-toggle[aria-expanded="true"] .home-menu-icon i:nth-child(1) { transform: translateY(5px) rotate(45deg); }
  .home-menu-toggle[aria-expanded="true"] .home-menu-icon i:nth-child(2) { opacity: 0; }
  .home-menu-toggle[aria-expanded="true"] .home-menu-icon i:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
  :where(html.uto-home-menu-ready) .home-page .home-site-header:not(.is-enhanced) nav,
  .home-page .home-site-header.is-enhanced nav { display: none; }
  :where(html.uto-home-menu-ready) .home-page .home-site-header:not(.is-enhanced) nav.is-open,
  .home-page .home-site-header.is-enhanced nav.is-open { position: fixed; z-index: 61; inset: 0; display: flex; justify-content: flex-start; gap: 1.5rem; margin: 0; padding: 6rem max(1.2rem, calc((100vw - 560px) / 2)) calc(2rem + env(safe-area-inset-bottom, 0px)); background: var(--forest); overflow-y: auto; overscroll-behavior: contain; }
  .home-page .home-site-header.is-menu-open > .brand { position: relative; z-index: 62; }
  .home-page .home-site-header.is-menu-open .home-menu-toggle { position: fixed; top: max(.8rem, env(safe-area-inset-top, 0px)); right: 1.2rem; }
  .home-page .hero { column-gap: 2.5rem; }
}
@media (max-width: 820px) {
  .home-page .hero { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding: 2.2rem 1.2rem 2rem; }
  .home-page .hero-copy { width: 100%; max-width: 650px; margin: 0 auto; }
  .home-page .hero h1 { font-size: clamp(3.1rem, 8vw, 4.8rem); }
  .home-page .hero-visual { max-width: 440px; margin: .5rem auto 0; padding: 1rem .8rem .5rem 1rem; }
  .home-page .hero .illustration-card { width: 100%; border-width: 7px; }
  .home-page .hero .illustration-card::before { inset: -7px; }
  .home-page .hero-logo { width: 92px; left: -1rem; }
}
@media (max-width: 600px) {
  .home-page .home-site-header { padding: .75rem 1rem; column-gap: .55rem; }
  .home-page .home-site-header .brand { font-size: .9rem; gap: .45rem; }
  .home-page .home-site-header .brand-wording { gap: .1rem .2rem; }
  .home-page .home-site-header .brand-wording small { font-size: .47rem; letter-spacing: .035em; }
  .home-page .home-site-header .brand-mark { width: 1.7rem; height: 1.7rem; flex-basis: 1.7rem; }
  .home-page .home-site-header .home-mobile-colos { font-size: .75rem; padding: .55rem .75rem; }
  .home-page .hero-badges { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem .6rem; }
  .home-page .hero-actions { align-items: flex-start; }
}
@media (max-width: 360px) {
  .home-page .home-site-header .brand-mark { display: none; }
  .home-page .home-site-header nav .space-icon { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home-menu-icon i { transition: none; }
}
/* Une vraie invitation à candidater, distincte de l’espace de connexion des équipes. */
.home-page .home-site-header nav .home-recruitment-link { min-height: 58px; align-content: center; padding: .55rem 1rem; border: 1px solid rgba(244,238,223,.7); border-radius: 22px 8px 22px 8px; background: #e99b7b; color: var(--forest-dark); box-shadow: 0 4px 0 rgba(4,25,20,.3); }
.home-page .home-recruitment-link > span { color: var(--forest-dark); font: 750 .57rem/1.2 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.home-page .home-recruitment-link > strong { font: 650 1.05rem/1.25 var(--serif); }
.home-page .home-recruitment-link b { color: var(--forest-dark); }
.home-page .home-site-header nav .home-recruitment-link:hover { background: #f1b399; }

/* Source : public-entete-fixe.css */
/* Le menu défile avec la page ; aucun contenu ne passe sous lui. */
html{--public-header-height:0px;overflow-x:hidden;scroll-padding-top:1rem}
body{overflow-x:visible}
@supports(overflow-x:clip){html{overflow-x:clip}}
body .site-header.home-site-header{position:relative;top:auto;width:100%;z-index:900;background:var(--forest,#173a32);box-shadow:0 1px 0 rgba(244,238,223,.14)}
.home-page #prochaines-colos,.home-page #premiere-colo,.photo-page #album-title{scroll-margin-top:0}
.home-site-header~main .candidate-progress{scroll-margin-top:1rem;top:.75rem}
@media(min-width:981px){.home-site-header~main .faq-category-heading,.home-site-header~main .terms-toc{top:1.25rem}}
@media print{html{scroll-padding-top:0;overflow:visible}body .site-header.home-site-header{position:static;box-shadow:none}}

/* Source : accueil-diaporama.css */
.home-page .hero { --home-photo-height: clamp(350px, calc(48.4vw - 90px), 525px); grid-template-columns: minmax(0,.38fr) minmax(0,.62fr); grid-template-areas: "heading visual" "details visual" "badges badges"; grid-template-rows: 1fr 1fr auto; gap: 0 clamp(1.5rem,2.5vw,2.5rem); }
.home-page .hero .illustration-card { --home-frame-radius: 28px; --home-photo-radius: 22px; width: 100%; border-width: 6px; border-radius: var(--home-frame-radius); }
.home-page .hero .illustration-card::before { inset: -6px; border-radius: inherit; }
.home-page .hero .illustration-card > img,
.home-page .hero .home-slideshow-stage { border-radius: var(--home-photo-radius); }
.home-page .hero .illustration-card > img { height: var(--home-photo-height); aspect-ratio: auto; }
.home-slideshow { position: relative; }
.home-slideshow-stage { position: relative; height: var(--home-photo-height); width: 100%; overflow: hidden; background: #173a32; }
.home-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; pointer-events: none; }
.home-slide.is-current { opacity: 1; visibility: visible; z-index: 2; }
.home-page .hero .home-slide img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
.home-slideshow[data-effect=fade] .home-slide,
.home-slideshow[data-effect=zoom] .home-slide { transition: opacity .7s ease, visibility .7s; }
.home-slideshow[data-effect=slide] .home-slide { transform: translateX(100%); transition: transform .65s ease, opacity .65s, visibility .65s; }
.home-slideshow[data-effect=slide] .home-slide.is-current { transform: translateX(0); }
.home-slideshow[data-effect=slide] .home-slide.is-previous { transform: translateX(-100%); }
.home-slideshow[data-effect=zoom] .home-slide img { transform: scale(1); }
.home-slideshow[data-effect=zoom] .home-slide.is-current img { animation: home-photo-zoom var(--slide-duration,6s) linear both; animation-play-state: paused; }
.home-slideshow[data-effect=zoom].is-playing .home-slide.is-current img { animation-play-state: running; }
@keyframes home-photo-zoom { to { transform: scale(1.06); } }
.home-slideshow-controls { position: static; display: flex; justify-content: center; padding: 0 .3rem .15rem; color: #173a32; }
.home-slideshow-controls[hidden] { display: none; }
.home-slideshow-controls [data-slide-play] { min-height: 44px; border: 0; padding: .3rem .6rem; border-radius: 3px; background: transparent; color: #475e55; font: 500 .75rem/1.3 var(--sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.home-slideshow-controls button:hover { color: #173a32; }
.home-slideshow-controls button:focus-visible { outline: 3px solid #a64725; outline-offset: 3px; }
.home-page .hero .illustration-caption { display: block; min-height: 2.5rem; padding: .95rem .7rem .4rem; color: #102f27; font-family: var(--sans); font-size: clamp(1.0625rem,1.5vw,1.25rem); font-weight: 700; font-style: normal; line-height: 1.45; letter-spacing: .01em; text-align: center; overflow-wrap: anywhere; }
/* Un titre et une introduction compacts à gauche, la photo sur toute la colonne droite. */
.home-page .hero .hero-copy { grid-area: heading; align-self: end; width: 100%; max-width: none; margin: 0; padding: 0; }
.home-page .hero .hero-copy h1 { margin-bottom: 1.25rem; font-size: clamp(2.75rem,4.15vw,4.4rem); line-height: 1.06; }
.home-page .hero .eyebrow { margin-bottom: 1rem; }
.home-page .hero .hero-details { position: relative; z-index: 5; grid-area: details; align-self: start; min-width: 0; }
.home-page .hero .hero-intro { margin: 0 0 1.4rem; font-size: clamp(1rem,1.15vw,1.1rem); line-height: 1.65; }
.home-page .hero .hero-actions { flex-direction: column; align-items: flex-start; gap: .85rem; }
.home-page .hero .hero-actions .button { max-width: 100%; gap: .7rem; padding: .85rem 1rem; }
.home-page .hero .hero-actions .button span { flex-shrink: 0; }
.home-page .hero .hero-visual { grid-area: visual; align-self: center; max-width: none; margin: 0; padding: 1rem .5rem .6rem .7rem; }
.home-page .hero .hero-logo { width: clamp(72px,6vw,88px); top: -.8rem; left: -.8rem; }
.home-page .hero .hero-badges { grid-area: badges; margin: 2rem 0 0; }
@media(max-width:900px) {
  .home-page .hero { grid-template-columns: minmax(0,1fr); grid-template-areas: "heading" "visual" "details" "badges"; grid-template-rows: auto; gap: 1.4rem; padding: 2.2rem 1.2rem 2rem; --home-photo-height: clamp(280px,85vw,460px); }
  .home-page .hero .hero-copy, .home-page .hero .hero-details { width: 100%; max-width: 650px; margin: 0 auto; }
  .home-page .hero .hero-copy h1 { margin-bottom: 0; font-size: clamp(2.8rem,7.5vw,4.2rem); }
  .home-page .hero .hero-visual { width: 100%; max-width: 650px; margin: 0 auto; }
  .home-page .hero .illustration-card { --home-frame-radius: 24px; --home-photo-radius: 18px; }
  .home-page .hero .hero-logo { width: 72px; }
  .home-page .hero .hero-actions { flex-direction: row; align-items: center; gap: .85rem 1.25rem; }
  .home-page .hero .hero-badges { margin: .3rem 0 0; }
}
@media(prefers-reduced-motion:reduce){.home-slideshow .home-slide,.home-slideshow .home-slide img{transition:none!important;animation:none!important}}

/* STYLE RETENU — PHOTO SOUVENIR DE COLO
   Le cadre et toutes ses photos retrouvent ensemble l'angle de l'ancien bloc.
   La rotation du parent conserve les dimensions et les effets du diaporama. */
.home-page .hero .illustration-card {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: rotate(1.6deg);
  overflow: visible;
}
.home-page .hero .illustration-card::before {
  z-index: -1;
  inset: 18px -10px -10px 14px;
  border: 0;
  border-radius: 32px 26px 36px 28px;
  background: rgba(5,29,22,.2);
  box-shadow: 0 24px 46px rgba(5,29,22,.24);
  transform: rotate(-.8deg);
}
.home-page .hero .paper-tape {
  top: -12px;
  left: 61%;
  width: 106px;
  height: 24px;
  border-radius: 2px;
  background: rgba(239,173,63,.9);
  transform: rotate(-3deg);
}
.home-page .hero .home-slideshow {
  z-index: 2;
  margin-bottom: 2.4rem;
  filter: drop-shadow(0 18px 22px rgba(5,29,22,.2));
}
.home-page .hero .home-slideshow::after {
  content: '';
  position: absolute;
  z-index: 7;
  bottom: -3px;
  left: -12px;
  width: 78px;
  height: 21px;
  border-radius: 2px;
  background: rgba(216,111,76,.82);
  box-shadow: 0 2px 5px rgba(73,43,22,.16);
  transform: rotate(7deg);
  pointer-events: none;
}
.home-page .hero .home-slideshow-stage,
.home-page .hero .illustration-card > img {
  box-sizing: border-box;
  border: 5px solid #f4eedf;
  border-radius: 30px 24px 32px 26px;
  box-shadow: 0 0 0 1px rgba(23,58,50,.16);
}
.home-page .hero .illustration-caption {
  position: absolute;
  z-index: 8;
  right: auto;
  bottom: -1.45rem;
  left: 50%;
  display: block;
  width: max-content;
  max-width: calc(100% - 5rem);
  min-height: 0;
  padding: .62rem 1.15rem;
  border: 2px solid #f4eedf;
  border-radius: 999px;
  background: #f3ae3f;
  box-shadow: 0 8px 16px rgba(5,29,22,.22);
  color: #102f27;
  font-size: clamp(.82rem,1.1vw,1rem);
  line-height: 1.25;
  text-align: center;
  transform: translateX(-50%) rotate(-1.1deg);
}
.home-page .hero .home-slideshow-controls {
  position: absolute;
  z-index: 10;
  top: .75rem;
  right: .75rem;
  padding: 0;
}
.home-page .hero .home-slideshow-controls [data-slide-play] {
  width: 44px;
  min-height: 44px;
  padding: 0;
  border: 2px solid #f4eedf;
  border-radius: 50%;
  background: rgba(244,238,223,.92);
  box-shadow: 0 5px 13px rgba(5,29,22,.24);
  color: #173a32;
  font-size: 0;
  line-height: 1;
  text-decoration: none;
  backdrop-filter: blur(5px);
}
.home-page .hero .home-slideshow-controls [data-slide-play]::before { content: '▶'; font-size: .9rem; }
.home-page .hero .home-slideshow.is-playing .home-slideshow-controls [data-slide-play]::before { content: 'Ⅱ'; font-size: 1rem; font-weight: 800; letter-spacing: -.12em; }
.home-page .hero .hero-logo {
  top: -.65rem;
  left: -.65rem;
  padding: .22rem;
  border: 3px solid #f4eedf;
  box-shadow: 0 8px 18px rgba(5,29,22,.24);
  transform: rotate(-8deg);
}
.home-page .hero .hero-logo::after { inset: 4px; border-width: 1.5px; }
@media(max-width:900px) {
  .home-page .hero .illustration-card { transform: rotate(1.2deg); }
  .home-page .hero .illustration-caption { bottom: -1.25rem; max-width: calc(100% - 3rem); padding: .55rem .9rem; font-size: .78rem; }
  .home-page .hero .home-slideshow-controls { top: .55rem; right: .55rem; }
  .home-page .hero .home-slideshow-controls [data-slide-play] { width: 42px; min-height: 42px; }
}

/* Source : accueil-titre.css */
/* Uto’Pistes — le titre grandit, puis son trait se dessine une seule fois.
   Le titre reste éditable dans l’administration. Seule sa partie en italique
   reçoit l’effet ; les dimensions du texte ne sont jamais animées. */

/* Le titre a sa propre apparition, indépendante du script de défilement.
   Il reste également lisible lorsque JavaScript est désactivé. */
.home-page .hero .hero-copy.reveal {
  opacity: 1;
  transform: none;
  transition: none;
}

.home-page #hero-title em {
  position: relative;
  display: inline-block;
  max-width: 100%;
  transform-origin: left bottom;
}

/* Un trait courbe, sans espace ajouté au texte ni à la grille de la page. */
.home-page #hero-title em::after {
  content: "";
  position: absolute;
  right: .04em;
  bottom: -.09em;
  left: .02em;
  height: .16em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M5 17 C72 5 158 6 295 11' fill='none' stroke='%23efad3f' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  pointer-events: none;
}

/* Pas de boucle, pas de relance au défilement ou au survol.
   Sans autorisation de mouvement, le titre et son trait sont déjà en place. */
@media (prefers-reduced-motion: no-preference) {
  .home-page #hero-title {
    animation: uto-title-appear .65s ease-out .05s 1 backwards;
  }

  .home-page #hero-title em {
    animation: uto-title-grow 1s cubic-bezier(.22,.7,.3,1) .2s 1 backwards;
  }

  .home-page #hero-title em::after {
    animation: uto-title-underline .8s ease-in-out 1.2s 1 backwards;
  }
}

@keyframes uto-title-appear {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes uto-title-grow {
  0% { transform: scale(.94); }
  75% { transform: scale(1.015); }
  100% { transform: scale(1); }
}

@keyframes uto-title-underline {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0); }
}

/* Les titres de rubrique et d’entrée de page reprennent cet effet à leur première apparition.
   Ils restent visibles avant le déclenchement et sans JavaScript. */
.uto-section-title {
  --uto-title-accent: var(--terracotta, #d86f4c);
  position: relative;
  transform-origin: left bottom;
}
.home-page #compass-title.uto-section-title {
  --uto-title-accent: var(--sun, #efad3f);
}
.uto-section-title em {
  position: relative;
  display: inline-block;
  max-width: 100%;
  transform-origin: left bottom;
}
.uto-section-title:not(.has-title-emphasis)::after,
.uto-section-title em::after {
  content: "";
  position: absolute;
  left: .02em;
  bottom: -.09em;
  width: min(70%, 15rem);
  height: .16em;
  background: var(--uto-title-accent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M5 17 C72 5 158 6 295 11' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M5 17 C72 5 158 6 295 11' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  pointer-events: none;
}
.uto-section-title em::after {
  right: .04em;
  width: auto;
  background: currentColor;
}

@media (prefers-reduced-motion: no-preference) {
  .uto-section-title.is-title-visible {
    animation: uto-title-appear .65s ease-out 1 backwards;
  }
  .uto-section-title.is-title-visible:not(.has-title-emphasis) {
    animation: uto-title-appear .65s ease-out 1 backwards,
      uto-section-title-grow 1s cubic-bezier(.22,.7,.3,1) .15s 1 backwards;
  }
  .uto-section-title.is-title-visible em {
    animation: uto-title-grow 1s cubic-bezier(.22,.7,.3,1) .15s 1 backwards;
  }
  .uto-section-title.is-title-visible:not(.has-title-emphasis)::after,
  .uto-section-title.is-title-visible em::after {
    animation: uto-title-underline .8s ease-in-out 1.15s 1 backwards;
  }
}

@keyframes uto-section-title-grow {
  0% { transform: scale(.98); }
  75% { transform: scale(1.008); }
  100% { transform: scale(1); }
}

/* Source : boutique-acces.css */
/* Accès boutique et invitation sur les deux versions de l’accueil. */
.home-site-header .home-public-row>.nav-boutique{color:var(--sun)}
@media(min-width:1001px) and (max-width:1250px){.home-site-header .home-public-row{gap:clamp(9px,1.2vw,16px)}.home-site-header .home-public-row>.nav-button{padding:.75rem .8rem}}
.ub-home-teaser{position:relative;display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:30px;max-width:1240px;width:calc(100% - 12vw);padding:clamp(28px,4vw,52px);margin:50px auto 25px;background:var(--forest);color:var(--cream);border-radius:20px;isolation:isolate;overflow:hidden}
.ub-home-teaser .eyebrow{color:var(--mint);font-size:.72rem;margin:0 0 18px}.ub-home-teaser h2{font:500 clamp(2rem,3.5vw,3rem)/1.15 var(--serif);letter-spacing:-.035em;margin:0 0 20px}.ub-home-teaser h2 em{color:var(--sun)}.ub-home-teaser p:not(.eyebrow){max-width:440px;font-size:.95rem;line-height:1.8;margin:0 0 25px;color:#e7edde}
.ub-home-teaser .button{font-size:.82rem}.ub-home-teaser-image{display:block;max-width:280px;width:100%;justify-self:center;transform:rotate(3deg)}.ub-home-teaser-image img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.ub-home-teaser-star{position:absolute;right:-20px;bottom:-68px;font-size:260px;line-height:1;color:rgba(199,216,190,.06);z-index:-1}
@media(max-width:620px){.ub-home-teaser{grid-template-columns:1fr;gap:28px}.ub-home-teaser-image{width:78%;max-width:250px;grid-row:2}.ub-home-teaser .button{font-size:.76rem;padding:16px;white-space:normal}.ub-home-teaser h2{font-size:2.2rem}}

/* Source : entraide-acces.css */
/* Huit liens publics, avec la même navigation sur toutes les pages. */
.home-site-header .home-public-row>.nav-entraide{color:#f4eedf}
@media(min-width:1001px) and (max-width:1240px){
 .home-site-header{padding-inline:2vw;column-gap:1rem}
 .home-site-header .home-public-row{gap:clamp(7px,.8vw,11px)}
 .home-site-header .home-public-row>a:not(.nav-button){font-size:.72rem;letter-spacing:.03em}
 .home-site-header .home-public-row>.nav-button{font-size:.72rem;padding:.75rem .8rem;letter-spacing:.02em}
}

/* Source : lettres-acces.css */
/* Un accès permanent à la lettre dans les menus publics, ordinateur et mobile. */
.home-site-header .home-public-row{flex-wrap:wrap;column-gap:clamp(8px,.8vw,14px);row-gap:6px}
@media(min-width:1001px){.home-site-header .home-public-row>a:not(.nav-button){font-size:.75rem;letter-spacing:.025em}.home-site-header .home-public-row>.nav-button{font-size:.75rem;letter-spacing:.025em;padding:.75rem .9rem}}
/* L'accueil définit aussi la couleur de ses liens : garder ici la priorité du bouton. */
.home-site-header .home-public-row>a.nav-newsletter,
.home-page .home-site-header .home-public-row>a.nav-newsletter{padding:.5rem .65rem;border:1px solid #d6dfcb;border-radius:8px;background:#edf0e4;color:#173a32;letter-spacing:.025em;text-decoration:none}
.home-site-header .home-public-row>a.nav-newsletter:is(:hover,:focus-visible),
.home-page .home-site-header .home-public-row>a.nav-newsletter:is(:hover,:focus-visible){background:#f5cd74;color:#0d2b24}
.home-site-header .home-public-row>a.nav-newsletter[aria-current="page"],
.home-page .home-site-header .home-public-row>a.nav-newsletter[aria-current="page"]{background:#f5cd74;border-color:#f5cd74;text-decoration:underline;text-underline-offset:4px}
.uto-footer a.uto-footer-newsletter{color:#f5cd74;font-weight:700}
@media(min-width:1001px) and (max-width:1320px){
 .home-site-header{padding-inline:2.5vw;column-gap:1rem}
 .home-site-header .home-public-row{column-gap:9px}
 .home-site-header .home-public-row>a:not(.nav-button){font-size:.71rem;letter-spacing:.015em}
 .home-site-header .home-public-row>.nav-button{font-size:.72rem;letter-spacing:.015em;padding:.7rem .8rem}
}
@media(max-width:1000px){.home-site-header .home-public-row>a.nav-newsletter,.home-page .home-site-header .home-public-row>a.nav-newsletter{padding:.6rem .5rem;letter-spacing:0}.home-site-header .home-public-row{gap:.6rem 1rem}}

/* Source : accueil-dates.css */
/* Accueil : les séjours d’abord, puis les autres rendez-vous. */
.home-page .home-next-simple .home-dates-heading .home-all-link{white-space:normal;max-width:100%}
.home-page .home-next-simple .home-dates-heading .home-all-link>span:first-child{min-width:0}
.home-page .home-next-simple .home-dates-heading .home-all-link>span[aria-hidden]{flex-shrink:0}
.home-next.home-next-simple{--home-dates-gutter:max(1.25rem,calc((100vw - 1240px)/2));display:block;padding:0;background:var(--paper,#fbf8ee)}
.home-next-simple .home-colo-area{width:100%;padding:3.5rem var(--home-dates-gutter) 2.75rem;margin:0;border:0;border-radius:0;min-width:0;background:#f8edc9;color:#173a32}
.home-next-simple #colos-et-inscriptions,.home-next-simple #prochains-rendez-vous{scroll-margin-top:1rem}
.home-next-simple .home-dates-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem 2rem;margin:0 0 1.5rem;flex-wrap:wrap}
.home-next-simple .home-dates-heading h2{font:500 clamp(1.9rem,3.3vw,2.8rem)/1.12 var(--serif,Georgia,serif);letter-spacing:-.035em;margin:0;max-width:900px;color:#173a32}
.home-next-simple .home-dates-heading .simple-link{font-size:.8rem;line-height:1.5;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;gap:.45rem}
.home-next-simple .home-colo-area .home-dates-heading{align-items:flex-start;gap:1rem 2rem;margin-bottom:1.8rem}
.home-next-simple .home-colo-heading-copy{min-width:0;flex:1 1 350px}
.home-next-simple .home-colo-kicker{margin:0 0 .65rem;color:#975335;font-size:.7rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
.home-next-simple .home-colo-area .home-dates-heading h2,.home-next-simple .home-rendezvous .home-dates-heading h2{color:#173a32;--uto-title-accent:#bf714a}
.home-next-simple .home-colo-intro{margin:.9rem 0 0;color:#465f4f;font-size:.9rem;line-height:1.5}
.home-next-simple .home-colo-area .home-dates-heading .simple-link{color:#173a32;border-color:#975335;margin-top:1.65rem}
.home-next-simple .home-colo-area .home-dates-heading .simple-link:hover{color:#975335}
.home-next-simple .home-date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;min-width:0}
.home-next-simple .home-date-grid[data-count="1"]{grid-template-columns:1fr}
.home-next-simple .home-date-grid[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-next-simple .home-date-card{--date-accent:#efad3f;display:flex;flex-direction:column;min-width:0;border:1px solid #d5ddcc;border-radius:22px;overflow:hidden;background:#fffdf7;box-shadow:0 4px 0 #173a3207}
/* Une illustration encadrée, avec ses propres arrondis et sans recadrage. */
.home-next-simple .home-date-media{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;aspect-ratio:4/3;max-height:360px;padding:1rem 1rem 0;background:none;box-sizing:border-box}
.home-next-simple .home-date-image{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:center;border:4px solid #fffdf7;border-radius:20px;box-shadow:0 5px 18px #173a321c;box-sizing:border-box}
.home-next-simple .home-date-body{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.5rem;min-width:0;flex:1}
.home-next-simple .home-date-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1rem;flex-wrap:wrap;width:100%}
.home-next-simple .home-date-kind{font-size:.7rem;line-height:1.5;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:#586658}
.home-next-simple .home-date-status{margin-inline-start:auto;padding:.22rem .65rem;border-radius:30px;background:#f6ebce;color:#765025;font-size:.74rem;font-weight:700;line-height:1.4}
.home-next-simple .status-open{background:#e4efdf;color:#24573b}.home-next-simple .status-full{background:#f6e3d9;color:#8f3b25}
.home-next-simple .home-date-body h3{margin:.15rem 0;font:500 clamp(1.45rem,2.5vw,2.05rem)/1.12 var(--serif,Georgia,serif);letter-spacing:-.025em;color:#173a32;overflow-wrap:anywhere}
.home-next-simple .home-date-date{font-size:.95rem;line-height:1.5;font-weight:750;color:#173a32}
.home-next-simple .home-date-place{font-size:.8rem;line-height:1.5;color:#52665d;margin:0;overflow-wrap:anywhere}
.home-next-simple .home-date-summary{font-size:.92rem;line-height:1.55;color:#425d52;margin:0 0 .3rem;max-width:780px;overflow-wrap:anywhere}
.home-next-simple .home-date-link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.6rem 1.1rem;margin-top:auto;border:1px solid #173a32;border-radius:30px;background:#173a32;color:#fffdf7;font-size:.85rem;font-weight:750;line-height:1.5;text-decoration:none;text-align:center}
.home-next-simple .home-date-link:hover{background:#285848;border-color:#285848}
.home-next-simple .home-camp-grid .home-date-card{border-color:#e2d7b6;box-shadow:0 4px 12px #71582d0b}
.home-next-simple .home-camp-grid .home-date-link{background:#efad3f;border-color:#efad3f;color:#173a32}
.home-next-simple .home-camp-grid .home-date-link:hover{background:#ffcd68;border-color:#ffcd68}
.home-next-simple .home-date-link:focus-visible,.home-next-simple .home-dates-heading a:focus-visible{outline:3px solid #ad4b30;outline-offset:4px}
.home-next-simple .home-date-grid[data-count="1"] .home-date-card.has-image{display:grid;grid-template-columns:minmax(230px,28%) minmax(0,1fr)}
.home-next-simple .home-date-grid[data-count="1"] .home-date-media{height:auto;min-height:0;max-height:none;aspect-ratio:auto;align-self:center;padding:1rem 0 1rem 1rem}
.home-next-simple .home-date-grid[data-count="1"] .home-date-image{max-height:340px;min-height:0}
.home-next-simple .home-dates-empty{grid-column:1/-1;padding:1.25rem;margin:0;border:1px dashed #c1cdb9;border-radius:18px;line-height:1.6;color:#52665d}
.home-next-simple .home-camp-grid .home-dates-empty{color:#465f4f;border-color:#baa878}

/* L’annonce reste secondaire par rapport aux cartes des séjours. */
.home-next-simple .home-opening-note{display:flex;justify-content:space-between;align-items:center;gap:.8rem 1.5rem;flex-wrap:wrap;margin:1rem 0 0;padding:.85rem 1.2rem;border:0;border-radius:16px;background:#fff9e7;box-shadow:none;width:100%;max-width:none}
.home-next-simple .home-opening-note .opening-copy{display:grid;grid-template-columns:auto auto;gap:.1rem .6rem;align-items:baseline;min-width:0}
.home-next-simple .home-opening-note .opening-kicker{grid-column:1/-1;margin:0;color:#536450;font:700 .75rem/1.5 var(--sans,Arial,sans-serif);letter-spacing:0;text-transform:none}
.home-next-simple .home-opening-note .opening-date{font:700 clamp(1.15rem,2.2vw,1.65rem)/1.3 var(--serif,Georgia,serif);letter-spacing:0;color:#173a32;min-width:0}
.home-next-simple .home-opening-note .opening-zone{display:block;margin:0;font-size:.7rem;line-height:1.5;color:#536450}
.home-next-simple .home-opening-note .opening-clock{min-width:0}
.home-next-simple .home-opening-note .opening-clock dl{display:flex;align-items:baseline;gap:.6rem;margin:0}
.home-next-simple .home-opening-note .opening-clock dl>div{display:flex;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:.2rem;padding:0;background:none;box-shadow:none;border:0;border-radius:0;min-width:0}
.home-next-simple .home-opening-note .opening-clock dd{font:600 .82rem/1.5 var(--sans,Arial,sans-serif);margin:0;font-variant-numeric:tabular-nums}
.home-next-simple .home-opening-note .opening-clock dt{font:500 .72rem/1.5 var(--sans,Arial,sans-serif);text-transform:none}
.home-next-simple .home-opening-note .opening-clock .home-opening-seconds{display:none}
.home-next-simple .home-opening-note .opening-links{display:flex;flex:0 0 auto;gap:0;margin:0;grid-column:auto}
.home-next-simple .home-opening-note .opening-calendar{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .9rem;border:1px solid #b5c3ac;border-radius:30px;background:transparent;color:#173a32;font:650 .8rem/1.4 var(--sans,Arial,sans-serif);text-decoration:none}
.home-next-simple .home-opening-note .opening-calendar:hover{background:#e0e8d6}
.home-next-simple .home-opening-note.is-reached{display:none}

.home-next-simple .home-rendezvous{width:100%;margin:0;padding:3rem var(--home-dates-gutter);border-top:0}
.home-next-simple .home-meeting-grid .home-date-card{border-top:4px solid var(--date-accent);box-shadow:none}
.home-next-simple .home-date-rencontres{--date-accent:#6898a2;background:#f1f6f3}.home-next-simple .home-date-chantiers{--date-accent:#c78560;background:#fff4e9}.home-next-simple .home-date-spectacles{--date-accent:#e1b04e;background:#fff7e0}
.home-next-simple .home-meeting-grid .home-date-body{gap:.5rem;padding:1.2rem 1.4rem}
.home-next-simple .home-meeting-grid .home-date-body h3{font-size:clamp(1.4rem,2.2vw,1.85rem)}
.home-next-simple .home-meeting-grid .home-date-link{background:transparent;color:#173a32}.home-next-simple .home-meeting-grid .home-date-link:hover{background:#173a32;color:#fffdf7}
.home-next-simple .home-meeting-grid[data-count="1"] .home-date-card:not(.has-image) .home-date-body{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:2rem}
.home-next-simple .home-meeting-grid[data-count="1"] .home-date-card:not(.has-image) .home-date-body>*{grid-column:1}
.home-next-simple .home-meeting-grid[data-count="1"] .home-date-card:not(.has-image) .home-date-meta{grid-column:1/-1}
.home-next-simple .home-meeting-grid[data-count="1"] .home-date-card:not(.has-image) .home-date-link{grid-column:2;grid-row:2/7;align-self:center;margin:0}

.home-next-simple .home-dates-footer{display:flex;align-items:center;justify-content:space-between;gap:1.5rem 3rem;padding-top:1.6rem;margin-top:1.8rem;border-top:1px solid #d5ddcc}
.home-next-simple .home-kids-invitation{display:flex;align-items:center;gap:1.4rem;min-width:0;margin:0;padding:.5rem 0;background:none;border:0;color:#173a32;text-decoration:none;flex-shrink:0}
.home-next-simple .home-kids-invitation>span{display:grid;gap:.15rem}.home-next-simple .home-kids-invitation strong{font-size:1rem;color:#173a32;font-family:var(--sans,Arial,sans-serif)}
.home-next-simple .home-kids-invitation span span{font-size:.8rem;color:#52665d}.home-next-simple .home-kids-invitation>b{color:#a55337;font-size:1.3rem}
.home-next-simple .aid-support{margin:0;max-width:510px;min-width:0}
.home-next-simple .aid-note{font-size:.7rem;line-height:1.5;color:#52665d;margin:0 0 .45rem}
.home-next-simple .aid-logos{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.home-next-simple .aid-logo{flex:0 1 105px;min-height:0;padding:0;background:none;border:0}.home-next-simple .aid-logo img{max-width:105px;height:30px}.home-next-simple .aid-logo-vacaf{flex-basis:32px}.home-next-simple .aid-logo-vacaf img{max-width:32px;height:32px}
/* Le coin des enfants et les aides appartiennent au même ensemble que les colos. */
.home-next-simple .home-colo-area .home-dates-footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;border-color:#d9caa1;margin-top:1.5rem;padding-top:1.35rem}
.home-next-simple .home-colo-area .home-kids-invitation{color:#173a32;flex-shrink:1;padding:0}
.home-next-simple .home-colo-area .home-kids-invitation strong{color:#173a32}
.home-next-simple .home-colo-area .home-kids-invitation span span{color:#465f4f}
.home-next-simple .home-colo-area .home-kids-invitation>b{color:#975335}
.home-next-simple .home-colo-area .home-kids-invitation:hover strong{color:#975335}
.home-next-simple .home-colo-area .aid-title{margin:0 0 .25rem;color:#173a32;font:700 1rem/1.5 var(--sans,Arial,sans-serif)}
.home-next-simple .home-colo-area .aid-note{color:#465f4f}
.home-next-simple .home-colo-area .aid-logos{display:flex;width:max-content;max-width:100%;padding:.55rem .75rem;border-radius:13px;background:#fffdf7}
.home-next-simple .home-colo-area .aid-logo{width:105px;flex:0 0 auto}
.home-next-simple .home-colo-area .aid-logo-vacaf{width:32px}
.home-next-simple .home-colo-area .home-dates-heading a:focus-visible,.home-next-simple .home-colo-area .home-kids-invitation:focus-visible{outline:3px solid #985233;outline-offset:5px;border-radius:4px}
@media(max-width:1000px){.home-next-simple .home-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-next-simple .home-date-grid[data-count="1"]{grid-template-columns:1fr}.home-next-simple .home-dates-footer{gap:1.5rem}.home-next-simple .home-opening-note{gap:.6rem 1rem}.home-next-simple .home-opening-note .opening-copy{grid-template-columns:1fr}}
@media(max-width:620px){
 .home-next.home-next-simple{--home-dates-gutter:1.15rem;padding:0}
 .home-next-simple .home-colo-area{padding:2.2rem var(--home-dates-gutter) 2rem;border-radius:0}
 .home-next-simple .home-colo-area .home-dates-heading{gap:.5rem;margin-bottom:1.35rem}
 .home-next-simple .home-colo-heading-copy{flex-basis:100%}
 .home-next-simple .home-colo-area .home-dates-heading .simple-link{margin-top:.15rem}
 .home-next-simple .home-colo-kicker{font-size:.65rem;letter-spacing:.09em}
 .home-next-simple .home-colo-intro{font-size:.85rem}
 .home-next-simple #colos-et-inscriptions,.home-next-simple #prochains-rendez-vous{scroll-margin-top:1rem}
 .home-next-simple .home-dates-heading{gap:.3rem 1rem;margin-bottom:1.1rem}.home-next-simple .home-dates-heading h2{font-size:2rem}
 .home-next-simple .home-date-grid,.home-next-simple .home-date-grid[data-count="2"]{grid-template-columns:1fr;gap:1rem}
 .home-next-simple .home-date-grid[data-count="1"] .home-date-card.has-image{display:flex}
 .home-next-simple .home-date-grid[data-count="1"] .home-date-media,.home-next-simple .home-date-media{width:100%;height:auto;min-height:0;max-height:280px;aspect-ratio:4/3;padding:.85rem .85rem 0}
 .home-next-simple .home-date-image{border-radius:16px}
 .home-next-simple .home-date-grid[data-count="1"] .home-date-image{min-height:0;height:auto;max-height:100%}
 .home-next-simple .home-date-body,.home-next-simple .home-meeting-grid .home-date-body{padding:1.15rem;gap:.55rem}
 .home-next-simple .home-date-body h3{font-size:1.7rem}.home-next-simple .home-date-link{font-size:.85rem}
 .home-next-simple .home-opening-note{padding:.8rem 1rem;gap:.5rem 1rem}.home-next-simple .home-opening-note .opening-copy{width:100%}
 .home-next-simple .home-opening-note .opening-clock dl{gap:.45rem}.home-next-simple .home-opening-note .opening-clock dd{font-size:.8rem}
 .home-next-simple .home-opening-note .opening-calendar{padding:.45rem .7rem;font-size:.75rem}
 .home-next-simple .home-rendezvous{margin:0;padding:2.2rem var(--home-dates-gutter)}
 .home-next-simple .home-meeting-grid[data-count="1"] .home-date-card:not(.has-image) .home-date-body{display:flex}
 .home-next-simple .home-meeting-grid[data-count="1"] .home-date-card:not(.has-image) .home-date-link{align-self:flex-start;margin-top:.2rem}
 .home-next-simple .home-dates-footer{align-items:flex-start;flex-direction:column;gap:1.2rem}.home-next-simple .home-kids-invitation{flex-shrink:1;max-width:100%}
 .home-next-simple .home-colo-area .home-dates-footer{grid-template-columns:1fr}
 .home-next-simple .home-colo-area .aid-logos{gap:.5rem;padding:.55rem .5rem}
 .home-next-simple .home-colo-area .aid-logo{width:88px}
 .home-next-simple .home-colo-area .aid-logo-vacaf{width:28px}
}

/* Les repères utiles au choix du séjour, juste avant sa présentation. */
.home-camp-facts{display:flex;flex-wrap:wrap;gap:.6rem 2rem;width:100%;margin:.3rem 0 0;padding:.7rem 0;border-top:1px solid #dce0d0;color:#173a32}
.home-camp-facts>div{min-width:0}
.home-camp-facts dt{font:500 .75rem/1.5 var(--sans,Arial,sans-serif);color:#536450}
.home-camp-facts dd{margin:0;font:750 1rem/1.5 var(--sans,Arial,sans-serif);overflow-wrap:anywhere}
.home-next-simple .home-camp-price-note{font-size:.75rem;line-height:1.5;color:#536450;margin:0 0 .2rem}
.home-next-simple .aid-links{display:flex;flex-wrap:wrap;gap:.2rem 1.2rem;margin-top:.6rem}
.home-next-simple .aid-links a{display:inline-flex;align-items:center;min-height:44px;color:#173a32;font-size:.83rem;font-weight:700;line-height:1.4;text-decoration:underline;text-underline-offset:4px}
.home-next-simple .aid-links a:focus-visible{outline:3px solid #985233;outline-offset:4px}
.home-next-simple .home-opening-note .opening-clock{color:#52634e}
.home-next-simple .home-opening-note .opening-copy{row-gap:.25rem}

/* Un accès aux jeux aussi identifiable que l’étiquette « Espace enfants » du menu. */
.home-next-simple .home-kids-button{position:relative;isolation:isolate;display:grid;grid-template-columns:36px minmax(0,1fr) 24px;align-items:center;gap:.85rem;justify-self:start;width:fit-content;max-width:100%;min-height:100px;margin:0;padding:1.05rem 1.15rem;border:1px solid #c68a27;border-radius:22px 9px 22px 9px;background:var(--sun,#efad3f);color:var(--forest-dark,#0d2b24);box-shadow:0 4px 0 #ad79373b,inset 0 1px 0 #ffffff45;text-decoration:none;text-align:left;transform:rotate(-.6deg);transition:transform .2s ease,box-shadow .2s ease}
.home-next-simple .home-kids-button::before{content:"";position:absolute;inset:5px;border:1px dashed #0d2b2440;border-radius:17px 5px 17px 5px;pointer-events:none;z-index:-1}
.home-next-simple .home-kids-button-icon{display:grid;place-items:center;width:36px;height:40px;transform:rotate(-4deg)}
.home-next-simple .home-kids-button-icon svg{display:block;width:36px;height:36px}
.home-next-simple .home-kids-button-copy{display:grid;gap:.3rem;min-width:0}
.home-next-simple .home-kids-button-kicker{font:750 .65rem/1.3 var(--sans,Arial,sans-serif);letter-spacing:.1em;text-transform:uppercase}
.home-next-simple .home-kids-button strong{margin:0;color:inherit;font:500 clamp(1.35rem,2vw,1.6rem)/1.15 var(--serif,Georgia,serif);letter-spacing:-.02em}
.home-next-simple .home-kids-button-description{font:500 .8rem/1.4 var(--sans,Arial,sans-serif);color:inherit}
.home-next-simple .home-kids-button-arrow{display:grid;place-items:center;align-self:center;width:24px;font:600 1.35rem/1 var(--sans,Arial,sans-serif);transition:transform .2s ease}
.home-next-simple .home-kids-button:is(:hover,:focus-visible){color:var(--forest-dark,#0d2b24);transform:translateY(-2px) rotate(0);box-shadow:0 6px 0 #ad79373b,inset 0 1px 0 #ffffff60}
.home-next-simple .home-kids-button:is(:hover,:focus-visible) .home-kids-button-arrow{transform:translate(1px,-1px)}
.home-next-simple .home-kids-button:focus-visible{outline:3px solid #173a32;outline-offset:5px}
.home-next-simple .home-kids-button:active{transform:translateY(1px);box-shadow:0 2px 0 #ad79373b}
@media(max-width:620px){.home-next-simple .home-kids-button{grid-template-columns:30px minmax(0,1fr) 20px;gap:.65rem;padding:1rem;transform:none}.home-next-simple .home-kids-button-icon,.home-next-simple .home-kids-button-icon svg{width:30px;height:30px}.home-next-simple .home-kids-button-arrow{width:20px}}
@media(prefers-reduced-motion:reduce){.home-next-simple .home-kids-button,.home-next-simple .home-kids-button:is(:hover,:focus-visible,:active),.home-next-simple .home-kids-button-arrow,.home-next-simple .home-kids-button:is(:hover,:focus-visible) .home-kids-button-arrow{transition:none;transform:none}}

/* Colos : une carte mise en avant seule, deux ou trois colonnes ensuite. */
.home-page .home-next-simple .home-colo-area[data-count="1"]>.home-dates-heading,
.home-page .home-next-simple .home-colo-area[data-count="1"]>.home-camp-grid,
.home-page .home-next-simple .home-colo-area[data-count="1"]>.home-dates-footer{max-width:1080px;margin-inline:auto}
.home-page .home-next-simple .home-camp-grid .home-date-card{border:1px solid #ded6bf;border-radius:24px;background:#fffdf7;box-shadow:0 8px 28px #71582d0a}
.home-page .home-next-simple .home-camp-grid .home-date-media{align-items:flex-start;aspect-ratio:3/2;max-height:260px;padding:1.1rem 1.1rem 0}
.home-page .home-next-simple .home-camp-grid .home-date-image{width:auto;height:auto;max-width:100%;max-height:100%;border:0;border-radius:16px;object-fit:contain;object-position:top center;box-shadow:none}
.home-page .home-next-simple .home-camp-grid .home-date-body{padding:1.4rem;gap:.65rem}
.home-page .home-next-simple .home-camp-grid .home-date-meta{gap:.45rem .7rem}
.home-page .home-next-simple .home-camp-grid .home-date-kind{color:#8a5632;font-size:.66rem;letter-spacing:.08em}
.home-page .home-next-simple .home-camp-grid .home-date-status{font-size:.72rem}
.home-page .home-next-simple .home-camp-grid .home-date-body h3{margin:0;font-size:clamp(1.6rem,2.2vw,2rem);line-height:1.15;text-wrap:pretty}
.home-page .home-next-simple .home-camp-grid .home-camp-facts{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.15fr) minmax(0,1fr);gap:.5rem .7rem;width:100%;margin:.1rem 0 0;padding:0;border:0}
.home-page .home-next-simple .home-camp-grid .home-camp-facts dt{color:#536450;font:500 .72rem/1.5 var(--sans,Arial,sans-serif)}
.home-page .home-next-simple .home-camp-grid .home-camp-facts dd{margin:0;color:#173a32;font:750 .95rem/1.5 var(--sans,Arial,sans-serif)}
.home-page .home-next-simple .home-camp-grid .home-camp-dates{grid-column:1/-1;padding-bottom:.65rem;margin-bottom:.1rem;border-bottom:1px solid #e5e6d9}
.home-page .home-next-simple .home-camp-grid .home-camp-dates dd{font-size:1.02rem;line-height:1.45}
.home-page .home-next-simple .home-camp-grid .home-date-place{font-size:.78rem}
.home-page .home-next-simple .home-camp-grid .home-camp-price-note{font-size:.7rem;line-height:1.5;margin:-.2rem 0 0;color:#586550}
.home-page .home-next-simple .home-camp-grid .home-date-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.87rem;line-height:1.5;margin:.05rem 0 .15rem}
.home-page .home-next-simple .home-camp-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem 1rem;width:100%;margin-top:auto;padding-top:.35rem}
.home-page .home-next-simple .home-camp-actions .home-date-link{gap:.65rem;max-width:100%;margin:0;padding:.7rem 1.15rem;min-height:46px;font-size:.83rem;line-height:1.4}
.home-page .home-next-simple .home-camp-actions .home-date-link>span{flex-shrink:0}
.home-page .home-next-simple .home-camp-more{display:inline-flex;align-items:center;min-height:44px;font-size:.78rem;line-height:1.4;text-underline-offset:4px;color:#345845}
.home-page .home-next-simple .home-camp-more:focus-visible{outline:3px solid #985233;outline-offset:4px;border-radius:3px}
.home-page .home-next-simple .home-date-grid .home-date-opening{gap:.55rem;margin:.15rem 0 0;padding:.7rem .8rem;border:1px solid #e8ddba;border-radius:12px;background:#faf3df}
.home-page .home-next-simple .home-date-opening .event-opening-icon{width:20px;height:20px;flex-basis:20px;margin-top:.1rem}
.home-page .home-next-simple .home-date-opening .event-opening-copy{display:flex;flex-flow:row wrap;align-items:center;gap:.4rem .7rem;flex:1;min-width:0}
.home-page .home-next-simple .home-opening-text{flex:1 1 205px;min-width:0;font-size:.77rem;line-height:1.5}
.home-page .home-next-simple .home-date-opening .event-opening-label{display:inline;color:#624719;font-size:inherit;font-weight:500;line-height:inherit}
.home-page .home-next-simple .home-date-opening .event-opening-date{display:inline;color:#173a32;font-size:inherit;font-weight:750;line-height:inherit;letter-spacing:0}
.home-page .home-next-simple .home-date-opening .event-opening-time{display:block;color:#586550;font-size:.7rem;line-height:1.5}
.home-page .home-next-simple .home-date-opening .event-opening-calendar{flex:0 1 auto;align-self:center;gap:.4rem;margin:0;padding:.4rem .65rem;min-height:44px;border-color:#d5c799;background:transparent;font-size:.72rem}
.home-page .home-next-simple .home-date-opening .event-opening-calendar:hover{background:#f3e6bc;border-color:#a18a4e}
.home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-card.has-image{display:grid;grid-template-columns:minmax(0,39%) minmax(0,1fr)}
.home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-media{align-self:start;aspect-ratio:auto;max-height:none;padding:1.5rem 0 1.5rem 1.5rem}
.home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-image{width:100%;height:auto;max-height:440px;object-position:top center}
.home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-body{padding:1.5rem 1.7rem 1.5rem 1.5rem}
@media(min-width:1001px){.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-camp-actions .home-date-link{width:100%}}
@media(max-width:760px){
 .home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-card.has-image{display:flex}
 .home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-media{width:100%;aspect-ratio:3/2;max-height:310px;padding:1.1rem 1.1rem 0}
 .home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-image{width:auto;height:auto;max-height:100%}
 .home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-body{padding:1.4rem}
}
@media(max-width:620px){
 .home-page .home-next-simple .home-camp-grid .home-date-card{border-radius:20px}
 .home-page .home-next-simple .home-camp-grid .home-date-media,
 .home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-media{aspect-ratio:3/2;max-height:260px;padding:1rem 1rem 0}
 .home-page .home-next-simple .home-camp-grid .home-date-body,
 .home-page .home-next-simple .home-camp-grid[data-count="1"] .home-date-body{padding:1.15rem;gap:.65rem}
 .home-page .home-next-simple .home-camp-grid .home-date-body h3{font-size:1.65rem}
 .home-page .home-next-simple .home-camp-grid .home-camp-facts{gap:.5rem .6rem}
 .home-page .home-next-simple .home-camp-actions{gap:.25rem;width:100%}
 .home-page .home-next-simple .home-camp-actions .home-date-link{width:100%}
 .home-page .home-next-simple .home-camp-more{justify-content:center;width:100%}
}

/* Les autres rendez-vous suivent les mêmes repères, avec leur couleur de catégorie. */
.home-page .home-next-simple .home-rendezvous[data-count="1"]>.home-dates-heading,
.home-page .home-next-simple .home-rendezvous[data-count="1"]>.home-meeting-grid{max-width:1080px;margin-inline:auto}
.home-page .home-next-simple .home-meeting-grid .home-date-card{border-radius:24px;border-top:3px solid var(--date-accent);box-shadow:0 8px 28px #173a3207}
.home-page .home-next-simple .home-meeting-grid .home-date-media{align-items:flex-start;aspect-ratio:3/2;max-height:240px;padding:1.1rem 1.1rem 0}
.home-page .home-next-simple .home-meeting-grid .home-date-image{width:auto;height:auto;max-width:100%;max-height:100%;border:0;border-radius:16px;object-fit:contain;object-position:top center;box-shadow:none}
.home-page .home-next-simple .home-meeting-grid .home-date-body{padding:1.25rem 1.4rem 1.4rem;gap:.65rem}
.home-page .home-next-simple .home-meeting-grid .home-date-meta{gap:.4rem .7rem}
.home-page .home-next-simple .home-meeting-grid .home-date-kind{font-size:.66rem;letter-spacing:.06em;color:#526452}
.home-page .home-next-simple .home-meeting-grid .home-date-status{font-size:.72rem}
.home-page .home-next-simple .home-meeting-grid .home-date-body h3{font-size:clamp(1.5rem,2vw,1.85rem);line-height:1.15;margin:0;text-wrap:pretty}
.home-page .home-next-simple .home-meeting-grid .home-date-date{font-size:1.02rem;line-height:1.45}
.home-page .home-next-simple .home-meeting-grid .home-date-place{width:100%;padding-bottom:.65rem;border-bottom:1px solid #173a321c;font-size:.78rem;line-height:1.5}
.home-page .home-next-simple .home-meeting-grid .home-date-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.87rem;line-height:1.5;margin:.05rem 0 .15rem}
.home-page .home-next-simple .home-meeting-bottom{width:100%;margin-top:auto;padding-top:.35rem;display:grid;gap:.65rem}
.home-page .home-next-simple .home-meeting-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%}
.home-page .home-next-simple .home-meeting-actions .home-date-link{gap:.65rem;min-height:46px;max-width:100%;margin:0;padding:.7rem 1.15rem;font-size:.83rem;line-height:1.4;background:#173a32;border-color:#173a32;color:#fffdf7}
.home-page .home-next-simple .home-meeting-actions .home-date-link:hover{background:#285848;border-color:#285848}
.home-page .home-next-simple .home-meeting-actions .home-date-link>span{flex-shrink:0}
.home-page .home-next-simple .home-meeting-more{display:inline-flex;align-items:center;min-height:44px;font-size:.78rem;line-height:1.4;text-underline-offset:4px;color:#345845}
.home-page .home-next-simple .home-meeting-more:focus-visible{outline:3px solid #985233;outline-offset:4px;border-radius:3px}
.home-page .home-next-simple .home-meeting-grid .home-date-opening{margin:0;background:#fffdf7b3;border-color:#173a3226}
.home-page .home-next-simple .home-meeting-grid .home-date-opening .event-opening-icon{stroke:#526452}
.home-page .home-next-simple .home-meeting-grid .home-date-opening .event-opening-label{color:#526452}
.home-page .home-next-simple .home-meeting-grid .home-opening-text{flex-basis:auto}
.home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-card.has-image{display:grid;grid-template-columns:minmax(0,39%) minmax(0,1fr)}
.home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-media{align-self:start;aspect-ratio:auto;max-height:none;padding:1.5rem 0 1.5rem 1.5rem}
.home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-image{width:auto;height:auto;max-height:330px}
.home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-body{padding:1.5rem 1.7rem 1.5rem 1.5rem}
.home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-card:not(.has-image) .home-date-body{display:flex}
@media(min-width:621px){
 .home-page .home-next-simple .home-meeting-grid:not([data-count="1"]) .home-date-summary{min-height:3em}
 .home-page .home-next-simple .home-meeting-grid:not([data-count="1"]) .home-meeting-actions .home-date-link{width:100%}
}
@media(max-width:760px){
 .home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-card.has-image{display:flex}
 .home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-media{width:100%;aspect-ratio:3/2;max-height:280px;padding:1.1rem 1.1rem 0}
 .home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-image{width:auto;height:auto;max-height:100%}
 .home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-body{padding:1.4rem}
}
@media(max-width:620px){
 .home-page .home-next-simple .home-meeting-grid .home-date-card{border-radius:20px}
 .home-page .home-next-simple .home-meeting-grid .home-date-media,
 .home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-media{aspect-ratio:3/2;max-height:240px;padding:1rem 1rem 0}
 .home-page .home-next-simple .home-meeting-grid .home-date-body,
 .home-page .home-next-simple .home-meeting-grid[data-count="1"] .home-date-body{padding:1.15rem;gap:.6rem}
 .home-page .home-next-simple .home-meeting-grid .home-date-body h3{font-size:1.65rem}
 .home-page .home-next-simple .home-meeting-actions .home-date-link{width:100%}
 .home-page .home-next-simple .home-meeting-more{width:100%;justify-content:center}
}

/* Capacité et places restantes, à côté de la photo de chaque colo. */
.home-page .home-next-simple .home-camp-grid .home-date-media.has-availability{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,.6fr);gap:clamp(.7rem,1.5vw,1.3rem);align-items:center;aspect-ratio:auto;max-height:none}
.home-page .home-next-simple .home-camp-grid .home-date-media.has-availability .home-date-image{width:100%;height:auto;max-height:260px;object-fit:contain;align-self:center}
.home-page .home-next-simple .home-camp-availability{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;width:100%;max-width:190px;min-width:0;justify-self:center;box-sizing:border-box;padding:1.1rem .8rem;border:1px solid #c8d9c6;border-radius:18px;background:#edf4e9;color:#173a32;text-align:center;overflow-wrap:anywhere}
.home-page .home-next-simple .home-camp-capacity{display:block;width:100%;padding-bottom:.6rem;margin-bottom:.15rem;border-bottom:1px solid #c8d9c6;color:#426045;font:650 .78rem/1.4 var(--sans,Arial,sans-serif)}
.home-page .home-next-simple .home-camp-stock{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-width:0}
.home-page .home-next-simple .home-camp-remaining{display:block;font:800 clamp(2.5rem,4vw,3.4rem)/1 var(--sans,Arial,sans-serif);font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.home-page .home-next-simple .home-camp-remaining-label{font:700 .86rem/1.35 var(--sans,Arial,sans-serif)}
.home-page .home-next-simple .home-camp-availability-note{display:block;margin-top:.15rem;color:#426045;font:500 .7rem/1.45 var(--sans,Arial,sans-serif)}
.home-page .home-next-simple .home-camp-availability-state{font:750 1.1rem/1.35 var(--sans,Arial,sans-serif)}
.home-page .home-next-simple .home-camp-availability:is(.is-full,.is-closed){background:#f0f2ed;border-color:#d1d8cc}
.home-page .home-next-simple .home-camp-grid .home-date-media.is-image-unavailable{grid-template-columns:1fr}
@media(max-width:620px){
 .home-page .home-next-simple .home-camp-grid .home-date-media.has-availability{grid-template-columns:minmax(0,1fr) minmax(105px,.6fr);gap:.7rem}
 .home-page .home-next-simple .home-camp-availability{padding:.85rem .55rem;border-radius:14px;gap:.35rem}
 .home-page .home-next-simple .home-camp-capacity{font-size:.72rem;padding-bottom:.45rem}
 .home-page .home-next-simple .home-camp-remaining{font-size:2.5rem}
 .home-page .home-next-simple .home-camp-remaining-label{font-size:.78rem}
 .home-page .home-next-simple .home-camp-availability-note{font-size:.68rem}
}
/* Trois cartes : le bandeau passe sous l’image pour lui laisser sa largeur. */
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-date-media.has-availability{grid-template-columns:1fr;gap:.9rem}
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-date-media.has-availability .home-date-image{width:auto;max-width:100%;max-height:240px;justify-self:center}
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-camp-availability{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:.15rem .8rem;max-width:none;padding:.7rem .8rem;border-radius:14px}
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-camp-capacity{display:flex;align-items:center;justify-content:center;align-self:stretch;grid-column:1;grid-row:1/span 2;width:auto;margin:0;padding:.25rem .7rem .25rem 0;border-bottom:0;border-right:1px solid #c8d9c6}
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-camp-stock{grid-column:2;flex-direction:row;gap:.45rem}
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-camp-remaining{font-size:1.9rem;letter-spacing:-.02em}
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-camp-remaining-label{font-size:.76rem;text-align:left}
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-camp-availability-note{grid-column:2;margin:0}
.home-page .home-next-simple .home-camp-grid[data-count="3"] .home-camp-availability-state{grid-column:2;font-size:.9rem}
@media(max-width:760px){
 .home-page .home-next-simple .home-camp-grid .home-date-media.has-availability{grid-template-columns:1fr;gap:.9rem}
 .home-page .home-next-simple .home-camp-grid .home-date-media.has-availability .home-date-image{width:auto;max-width:100%;max-height:240px;justify-self:center}
 .home-page .home-next-simple .home-camp-availability{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:.15rem .8rem;max-width:none;padding:.7rem .8rem;border-radius:14px}
 .home-page .home-next-simple .home-camp-capacity{display:flex;align-items:center;justify-content:center;align-self:stretch;grid-column:1;grid-row:1/span 2;width:auto;margin:0;padding:.25rem .7rem .25rem 0;border-bottom:0;border-right:1px solid #c8d9c6}
 .home-page .home-next-simple .home-camp-stock{grid-column:2;flex-direction:row;gap:.45rem}
 .home-page .home-next-simple .home-camp-remaining{font-size:1.9rem;letter-spacing:-.02em}
 .home-page .home-next-simple .home-camp-remaining-label{font-size:.76rem;text-align:left}
 .home-page .home-next-simple .home-camp-availability-note{grid-column:2;margin:0}
 .home-page .home-next-simple .home-camp-availability-state{grid-column:2;font-size:.9rem}
}

/* Source : accueil-visibilite.css */
/* Les commandes restent lisibles, avec ou sans JavaScript. */
.home-admin .home-card-top{flex-wrap:wrap}
.home-admin .home-visibility-pill.is-visible{background:#e5efdf;color:#285333}
.home-admin .home-visibility-pill.is-paused{background:#eeeae2;color:#5b5549}
.home-admin .home-block-pending{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.4rem .6rem;font-size:.85rem}
.home-admin .home-block-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin-top:auto;padding-top:.45rem}
.home-admin .home-block-actions form{margin:0}
.home-admin .home-block-actions .home-button{min-height:44px;padding:.65rem .85rem;font-size:.9rem}
.home-admin .home-visibility-setting{padding:1.2rem;margin:1.5rem 0;border:1px solid #bfceb8;border-radius:14px;background:#f0f4e9}
.home-admin .home-visibility-setting label{display:flex;align-items:center;gap:.75rem;margin:0;font-size:1.1rem;font-weight:750;cursor:pointer}
.home-admin .home-visibility-setting input[type=checkbox]{appearance:auto;display:block;flex:0 0 24px;width:24px;height:24px;margin:0;accent-color:#285333;cursor:pointer}
.home-admin .home-visibility-setting input:focus-visible{outline:3px solid #b66236;outline-offset:4px}
.home-admin .home-visibility-setting p{margin:.65rem 0 0;font-size:.9rem}
/* Les blocs retirés côté serveur ne laissent pas de colonne ou d'espace vide. */
.home-page .home-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.home-page.home-without-hero-photos .hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "details" "badges";grid-template-rows:auto;gap:1.4rem}
.home-page.home-without-hero-photos .hero-copy,.home-page.home-without-hero-photos .hero-details{max-width:900px}
.home-page.home-worlds-1 .worlds{grid-template-columns:minmax(0,1fr)}
.home-page.home-worlds-2 .worlds{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-page.home-without-steps .registration>.faq-preview{margin-top:0}
.home-page.home-without-registration .colos{padding-top:0}

/* Source : agenda-calendrier.css */
/* L’ouverture des inscriptions se distingue des dates de l’événement. */
.event-opening{display:flex;align-items:flex-start;gap:.85rem;width:100%;min-width:0;box-sizing:border-box;margin:1rem 0;padding:1rem 1.15rem;border:1px solid #e0c47b;border-left:5px solid #eab043;border-radius:18px;background:#fff2ca;color:#173a32;text-align:left}
.event-opening-icon{flex:0 0 28px;width:28px;height:28px;margin-top:.1rem;fill:none;stroke:#80511b;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.event-opening-copy{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.event-opening .event-opening-label{font-size:.83rem;font-weight:700;line-height:1.4;color:#624719}
.event-opening .event-opening-date{display:block;font-family:var(--sans,Arial,sans-serif);font-size:clamp(1.25rem,1.65vw,1.55rem);font-weight:800;line-height:1.25;letter-spacing:-.025em;color:#173a32;overflow-wrap:anywhere}
.event-opening .event-opening-time{font-size:.85rem;font-weight:500;line-height:1.5;color:#425548}
.event-opening .event-opening-calendar{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;gap:.65rem;min-height:44px;max-width:100%;box-sizing:border-box;margin-top:.5rem;padding:.5rem .9rem;border:1px solid #b29a59;border-radius:999px;background:#fffaf0;color:#173a32;font:700 .85rem/1.4 var(--sans,Arial,sans-serif);text-align:center;text-decoration:none;overflow-wrap:anywhere}
.event-opening .event-opening-calendar:hover{background:#faeabc;border-color:#80511b}
.event-opening .event-opening-calendar:focus-visible{outline:3px solid #173a32;outline-offset:3px}
.event-opening-calendar>span{flex-shrink:0;font-size:1.15rem;line-height:1}
.home-next-simple .event-opening{margin:.35rem 0 .55rem}
.agenda-registration-info{margin:1rem 0;color:#173a32}
.agenda-registration-info p{font-size:.95rem;line-height:1.6;margin:.5rem 0}
.agenda-registration-info>.agenda-badge{display:inline-block}
.agenda-page .agenda-card-meta{min-width:0}
.agenda-page .agenda-badge,.home-next-simple .home-date-status{max-width:100%;font-size:.8rem;font-weight:750;line-height:1.4;letter-spacing:0;text-transform:none;text-align:center;white-space:normal}
.agenda-badge-soon,.home-next-simple .home-date-status.status-soon{background:#faeabc;color:#644717;border-color:#d7b762}
.agenda-badge-closed,.home-date-status.status-closed{background:#efe6dc;color:#6c503c}
.agenda-event-form,.agenda-event-form>*{min-width:0}
.agenda-event-form input,.agenda-event-form select,.agenda-event-form textarea{min-width:0;max-width:100%}
.agenda-event-form .rn-panel{margin-bottom:0;overflow-wrap:anywhere}
.agenda-event-form .rn-panel h3{font-family:var(--serif,Georgia,serif);font-size:1.55rem;margin:.3rem 0 1rem}
.agenda-event-form .rn-toggle{display:flex;align-items:flex-start;gap:12px;letter-spacing:0;text-transform:none;line-height:1.5;margin:18px 0;font-size:.95rem}
.agenda-event-form .rn-toggle input{width:22px;height:22px;min-height:0;flex:0 0 22px;padding:0;margin:0;accent-color:#173a32}
.agenda-event-form [hidden]{display:none!important}
@media(max-width:420px){.agenda-event-form{padding:1rem}.agenda-event-form .rn-panel{padding:1rem}.agenda-event-form .rn-fields{grid-template-columns:minmax(0,1fr)}.agenda-event-form input[type=datetime-local]{font-size:.85rem;padding:.6rem .35rem}}
@media(max-width:480px){.event-opening{gap:.65rem;padding:.85rem .8rem;border-radius:14px}.event-opening-icon{flex-basis:23px;width:23px;height:23px}.event-opening .event-opening-date{font-size:1.3rem}.agenda-page .agenda-card-top{flex-wrap:wrap}.agenda-page .agenda-card-meta{margin-left:auto}.agenda-page .agenda-badge{font-size:.78rem}.agenda-page .agenda-card-meta .agenda-badge{max-width:150px}}

/* Source : association-identite.css */
/* Association identifiers shared by the public site, portals and applications. */
footer .association-identite {
  box-sizing: border-box;
  flex: 0 0 100%;
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: .65rem 0 0;
  padding: 0;
  border: 0;
  color: inherit;
  font: 400 .8125rem/1.6 var(--sans, Arial, sans-serif);
  letter-spacing: 0;
  text-transform: none;
}
.association-identite > span {
  display: inline-block;
  margin: 0;
  white-space: nowrap;
}
.family-footer,
.team-footer,
.guide-footer > div {
  flex-wrap: wrap;
}
footer.association-footer {
  position: relative;
  inset: auto;
  z-index: auto;
  display: block;
  box-sizing: border-box;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 1.4rem clamp(1rem, 4vw, 3rem);
  border: 0;
  background: #0d2b24;
  color: #f4eedf;
  text-align: left;
  pointer-events: auto;
}
footer.association-footer > p {
  margin: 0;
  font: 400 .8125rem/1.6 var(--sans, Arial, sans-serif);
  letter-spacing: 0;
  text-transform: none;
}
footer.association-footer > .association-identite { margin-top: .45rem; }
.admin-workspace > footer.association-footer { margin-left: var(--admin-sidebar-width, 260px); }
@media (max-width: 800px) {
  .admin-workspace > footer.association-footer { margin-left: 0; }
}
@media (max-width: 480px) {
  .association-identite > span { display: block; }
  .association-identite > .association-identite-separator { display: none; }
}

/* Source : accueil-menu.css */
/* Menu public commun : seuls les éléments de la ligne compacte sont ciblés. */
.home-site-header .home-public-row.home-public-compact{gap:8px clamp(14px,1.5vw,24px);min-width:0}
.home-site-header .home-public-row.home-public-compact>a:not(.nav-button),
.home-site-header .home-public-compact .home-dropdown>summary{font:600 .9rem/1.4 var(--sans,Arial,sans-serif);letter-spacing:0;text-transform:none;color:var(--cream,#f4eedf)}
.home-site-header .home-public-row.home-public-compact>.nav-button{font-size:.88rem;letter-spacing:0;text-transform:none;padding:.8rem 1.1rem}
.home-site-header .home-public-compact .home-dropdown{position:relative;flex:0 0 auto;min-width:0;border:0;margin:0;padding:0}
.home-site-header .home-public-compact .home-dropdown>summary{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:44px;padding:10px 0;list-style:none;cursor:pointer;white-space:nowrap}
.home-public-compact .home-dropdown>summary::-webkit-details-marker{display:none}
.home-public-compact .home-dropdown-chevron{display:block;flex:0 0 7px;width:7px;height:7px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:translateY(-2px) rotate(45deg)}
.home-public-compact .home-dropdown[open]>summary>.home-dropdown-chevron{transform:translateY(2px) rotate(225deg)}
.home-site-header .home-public-compact .home-dropdown>summary:hover,
.home-site-header .home-public-compact .home-dropdown[open]>summary{color:var(--sun,#efad3f)}
.home-public-compact .home-dropdown>summary:focus-visible{outline:3px solid var(--sun,#efad3f);outline-offset:4px;border-radius:5px}
.home-public-compact .home-dropdown-panel{position:absolute;z-index:5;top:calc(100% + 5px);left:-16px;min-width:230px;max-width:min(320px,calc(100vw - 40px));padding:8px;background:#fffdf6;border:1px solid #d9dfcf;border-radius:14px;box-shadow:0 14px 35px #08271d26}
.home-site-header .home-public-compact .home-dropdown-panel>a{display:flex;align-items:center;min-height:44px;padding:11px 14px;border:0;border-radius:8px;background:transparent;color:#173a32;opacity:1;font:500 .95rem/1.4 var(--sans,Arial,sans-serif);letter-spacing:0;text-transform:none;text-decoration:none;white-space:normal;overflow-wrap:anywhere}
.home-site-header .home-public-compact .home-dropdown-panel>a:hover{background:#edf2e7;color:#173a32;text-decoration:none}
.home-site-header .home-public-compact .home-dropdown-panel>a:focus-visible{background:#edf2e7;outline:2px solid #416a51;outline-offset:-2px}
/* La rubrique et le lien consultés restent repérables lorsque le menu est replié. */
.home-site-header .home-public-compact .home-dropdown.is-current>summary{color:var(--sun,#efad3f);text-decoration:underline;text-underline-offset:6px}
.home-site-header .home-public-compact .home-dropdown-panel>a[aria-current="page"]{background:#edf2e7;font-weight:650;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){
 .home-site-header .home-public-row.home-public-compact{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0}
 .home-site-header .home-public-compact .home-dropdown{width:100%;border-bottom:1px solid #f4eedf26}
 .home-site-header .home-public-row.home-public-compact>a:not(.nav-button),
 .home-site-header .home-public-compact .home-dropdown>summary{width:100%;min-height:52px;justify-content:space-between;padding:14px 0;white-space:normal;font:500 1.3rem/1.35 var(--serif,Georgia,serif)}
 .home-site-header .home-public-row.home-public-compact>a:not(.nav-button){border-bottom:1px solid #f4eedf26}
 .home-public-compact .home-dropdown-panel{position:static;min-width:0;max-width:none;margin:0 0 15px;padding:6px;box-shadow:none}
 .home-site-header .home-public-row.home-public-compact>.nav-button{justify-content:center;margin-top:22px;min-height:48px;font-size:.95rem;white-space:normal;text-align:center}
}
