:root {
  --primary:#173c64;
  --primary-dark:#102d4c;
  --ink:#20364d;
  --muted:#5c6e82;
  --surface-soft:#f3f7fc;
  --paper:#fcfdff;
  --surface-tint:#e8f0f9;
  --line:#d4dfeb;
  --accent:#2d6396;
  --accent-soft:#d8e9f8;
  --font:'Inter',Arial,Helvetica,sans-serif;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:105px;
}

body {
  margin:0;
  color:var(--ink);
  font-family:var(--font);
  font-size:16px;
  line-height:1.6;
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}

body.modal-open {
  overflow:hidden;
}

button,input {
  font:inherit;
}

a {
  color:inherit;
  text-decoration:none;
}

button,a {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
  color:inherit;
}

button:focus-visible,a:focus-visible,summary:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px;
}

svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0;
}

.svg-defs {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

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

h1,h2,h3,p {
  margin:0;
}

h1,h2,h3 {
  font-weight:500;
  line-height:1.1;
  letter-spacing:-1.5px;
}

h2 {
  font-size:46px;
}

h3 {
  font-size:22px;
  letter-spacing:-.6px;
  line-height:1.3;
}

em {
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-style:italic;
}

p {
  color:var(--muted);
}

.certification-haccp-logo {
  width: 350px;
  max-width: 100%;
  height: auto;
  display: inline-block;
  border: solid thin #CADCFC;
}

.wrap {
  width:calc(100% - 96px);
  max-width:1184px;
  margin:auto;
  text-align: justify;
}

.wrap li p {
	font-size: 13px;
}

.wrap a {
	font-size: 11px;
}

.wrap h2 {
	text-align: left;
	font-size: 35px;
}

.section-pad {
  padding:100px 0;
}

.eyebrow {
  font-size:10px;
  font-weight:700;
  line-height:1.6;
  letter-spacing:1.8px;
  color:var(--primary);
  margin-bottom:24px;
}

.eyebrow h3 {
  text-align:center;
}

.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  padding:12px 20px;
  background:var(--primary);
  color:white;
  z-index:100;
}

.skip-link:focus {
  top:20px;
}

.concept-bar {
  background:var(--surface-tint);
  font-size:9px;
  letter-spacing:1.5px;
  font-weight:700;
}

.concept-bar .wrap {
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:30px;
}

.ifp-program-left {
  padding-right: 35px;
}

.concept-bar button {
  border:0;
  background:none;
  padding:3px 0;
  font-size:10px;
  letter-spacing:.1px;
  font-weight:400;
}

.concept-bar button span {
  margin-left:8px;
}

.site-header {
  background:rgba(252,253,255,.98);
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid #dfe7f0;
}

.header-inner {
  height:91px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.brand {
  display:flex;
  align-items:center;
  gap:14px;
  flex-shrink:0;
}

.brand-mark {
  font-size:43px;
  font-weight:700;
  letter-spacing:-4px;
  line-height:1;
}

.brand-mark>span {
  color:var(--accent);
}

.brand-text {
  margin:0;
  font-size:18px;
  font-weight:700;
  letter-spacing:1.3px;
  line-height:1.4;
}

.brand-text>span {
  display:block;
  font-size:11px;
  font-weight:400;
  letter-spacing:.15px;
  margin-top:5px;
  color:var(--muted);
}

.desktop-nav {
  display:flex;
  gap:16px;
  align-items:center;
  flex-wrap:nowrap;
  flex-shrink:0;
  white-space:nowrap;
  font-size:11px;
  font-weight:500;
}

.desktop-nav a {
  padding:10px 0;
  border-bottom:1px solid transparent;
}

.desktop-nav a:hover {
  border-color:var(--accent);
}

.header-phone {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:12px;
  font-weight: 600;
  border:1px solid #c0d0e0;
  border-radius:4px;
  padding:10px 14px;
  white-space:nowrap;
}

.header-phone svg {
  width:16px;
  height:16px;
}

.header-phone:hover {
  background:var(--surface-tint);
}

.menu-toggle,.mobile-nav {
  display:none;
}

.hero {
  background:var(--surface-soft);
  overflow:hidden;
  padding:15px 0 15px;
}

.hero-grid {
  display:grid;
  grid-template-columns:1.35fr .75fr;
  align-items:center;
  gap:70px;
}

.hero-copy {
  padding:15px 0;
}


.hero .eyebrow {
  font-size:9px;
  letter-spacing:1.5px;
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:25px;
}

.status-dot {
  height:6px;
  width:6px;
  border-radius:50%;
  background:var(--accent);
  flex-shrink:0;
}

h1 {
  font-size:65px;
  line-height:1.25;
  letter-spacing:-3px;
  margin-bottom:26px;
}

h1 em {
  color:var(--accent);
  letter-spacing:-2px;
}

.hero-description {
  font-size:15px;
  line-height:1.8;
  max-width:100%;
  text-align: justify;
}

.hero-description strong {
  font-weight:500;
  color:var(--ink);
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:25px;
  margin:30px 0 19px;
}

.button {
  min-height:50px;
  display:inline-flex;
  gap:20px;
  align-items:center;
  justify-content:center;
  padding:14px 22px;
  font-size:12px;
  line-height:1.5;
  font-weight:600;
  border:1px solid transparent;
  border-radius:4px;
  transition:background .18s,transform .18s,color .18s;
}

.button:hover {
  transform:translateY(-2px);
}

.button svg {
  width:18px;
  height:18px;
}

.primary {
  background:var(--primary);
  color:white;
}

.primary:hover {
  background:var(--primary-dark);
}

.light {
  background:var(--surface-soft);
  color:var(--primary);
}

.light:hover {
  background:white;
}

.outline {
  border-color:#b0c2d6;
  background:transparent;
}

.outline:hover {
  background:var(--surface-tint);
}

.hero-price {
  display:flex;
  flex-direction:column;
  gap:1px;
  white-space:nowrap;
}

.hero-price strong {
  font-size:23px;
  font-weight:500;
  letter-spacing:-.7px;
}

.hero-price small {
  font-size:10px;
  letter-spacing:0;
}

.hero-price span {
  font-size:10px;
  color:var(--muted);
}

.text-link {
  font-size:12px;
  text-decoration:underline;
  text-underline-offset:5px;
  text-decoration-color:#adc1d7;
  line-height:1.8;
}

.text-link:hover {
  text-decoration-color:var(--primary);
}

.text-link>span {
  display:inline-block;
  margin-left:8px;
}

.hero-reassurance {
  display:flex;
  gap:19px;
  margin-top:36px;
  font-size:10px;
  color:#536a81;
}

.hero-reassurance>span {
  display:flex;
  gap:5px;
  align-items:center;
}

.hero-reassurance svg {
  width:14px;
  height:14px;
}

.hero-visual {
  position:relative;
  padding-bottom:22px;
}

.photo-frame {
  height:300px;
  border-radius:110px 9px 9px 9px;
  background:#c7d7e6;
  overflow:hidden;
}

.photo-frame img {
  height:100%;
  object-fit:cover;
  object-position:63% 48%;
}

.time-stamp {
  position:absolute;
  right:-22px;
  top:3px;
  width:100px;
  height:100px;
  background:var(--accent-soft);
  border:5px solid var(--surface-soft);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  transform:rotate(8deg);
  box-shadow:0 3px 8px #173c6405;
}

.time-stamp svg {
  width:18px;
  height:18px;
}

.time-stamp strong {
  font-size:27px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:-1px;
}

.time-stamp>span {
  font-size:9px;
}

.photo-note {
  position:absolute;
  bottom:30px;
  left:-28px;
  display:flex;
  align-items:center;
  gap:13px;
  padding:12px 12px;
  background:var(--paper);
  box-shadow:0 6px 30px #173c6420;
  border-radius:5px;
}

.note-icon {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  background:var(--surface-tint);
  border-radius:50%;
}

.note-icon svg {
  width:21px;
  height:21px;
}

.photo-note strong {
  display:block;
  font-size:13px;
  font-weight:500;
}

.photo-note span:not(.note-icon) {
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:2px;
}

.visual-label {
  position:absolute;
  bottom:0;
  right:0;
  font-size:8px;
  letter-spacing:1.7px;
  color:var(--muted);
}

.facts-strip {
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:15px 0;
}

.facts-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
}

.facts-grid>div,.facts-grid>a {
  display:flex;
  flex-direction:column;
  padding:0 30px;
  border-left:1px solid var(--line);
}

.facts-grid>:first-child {
  padding-left:0;
  border:0;
}

.facts-grid>:last-child {
  padding-right:0;
}

.facts-grid strong {
  font-size:18px;
  font-weight:500;
  letter-spacing:-.4px;
  display:flex;
  gap:7px;
  align-items:center;
}

.facts-grid svg {
  width:20px;
  height:20px;
}

.facts-grid span {
  font-size:10px;
  color:var(--muted);
  margin-top:4px;
}

.facts-grid a:hover strong {
  text-decoration:underline;
  text-underline-offset:4px;
}

.audience {
  background:var(--surface-soft);
}

.audience-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:100px;
}

.section-intro>p:not(.eyebrow) {
  max-width:330px;
  font-size:14px;
  margin-top:23px;
}

.small-advice {
  display:flex;
  gap:13px;
  align-items:center;
  margin-top:30px;
  color:var(--muted);
  font-size:11px;
}

.small-advice>svg {
  width:38px;
  height:38px;
  padding:9px;
  background:#e0eaf5;
  border-radius:50%;
}

.small-advice a {
  font-size:13px;
  font-weight:600;
  line-height:2.2;
  color:var(--ink);
}

.picker-label {
  font-size:13px;
  color:var(--ink);
  margin-bottom:16px;
}

.picker-label span {
  font-size:15px;
  font-weight: 600;
  color:#CF0A74;
  margin-bottom:16px;
  text-align: center;
}
.picker-label strong { 
	font-weight: 600;
	color:#E334CA;
	text-align: center;
}

.activity-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.activity-option {
  display:flex;
  text-align:left;
  gap:10px;
  align-items:center;
  padding:16px 13px;
  border:1px solid #c9d8e8;
  background:transparent;
  min-height:84px;
  border-radius:5px;
  transition:background .2s,border-color .2s;
}

.activity-options-static {
  grid-template-columns:1fr;
}

.activity-card-static {
  width:100%;
  cursor:default;
  align-items:flex-start;
  padding:22px 25px;
  background:#F0F7F7;
  border:1px solid #c9d8e8;
}

.activity-card-static > div {
  flex:1;
  min-width:0;
}


.activity-card-static span {
  display:block;
  font-size:9px;
  font-family:var(--font);
  font-weight:500;
  line-height:1.5;
  color:#526a82;
}


.activity-card-static strong {
  display:block;
  font-family:var(--font);
  font-size:15px;
  font-weight:600;
  line-height:1.5;
  margin-bottom:10px;
}

.activity-card-static p {
  font-family:var(--font);
  font-size:14px;
  font-weight:600;
  line-height:1.7;
  color:#526a82;
  text-align: justify;
}

/* Liste d'activités : puces discrètes, indépendantes des retours à la ligne. */
.activity-card-static .activity-card-list {
  list-style:none;
  padding:0;
  margin:12px 0 0;
  display:grid;
  gap:12px;
}

.activity-card-static .activity-card-list li {
  position:relative;
  padding-left:19px;
  font-family:var(--font);
  font-size:14px;
  font-weight:500;
  line-height:1.6;
  color:#526a82;
}

.activity-card-static .activity-card-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.65em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
}

.activity-option.activity-card-static:hover {
  background:#F0F7F7;
}


.activity-option>svg {
  width:22px;
  height:22px;
  color:#5c7690;
}

.activity-option>span:not(.radio-mark) {
  font-size:12px;
  font-weight:600;
  flex:1;
  line-height:1.5;
}

.activity-option small {
  display:block;
  font-size:9px;
  font-weight:400;
  color:var(--muted);
  margin-top:4px;
}

.activity-option.selected {
  background:white;
  border-color:var(--primary);
  box-shadow:inset 0 0 0 .5px var(--primary);
}

.activity-option:hover {
  background:#fcfdffaa;
}

.radio-mark {
  width:12px;
  height:12px;
  border:1px solid #9eafc3;
  border-radius:50%;
  flex-shrink:0;
}

.selected .radio-mark {
  border:4px solid var(--primary);
}

.activity-result {
  margin-top:10px;
  padding:15px 27px;
  background:#e2edf8;
  border-radius:5px;
  min-height:223px;
  border:1px solid #c9d8e8;
}

.result-kicker {
  font-size:8px;
  letter-spacing:1.3px;
  font-weight:700;
  display:block;
  margin-bottom:9px;
}

.activity-result h3 {
  font-size:21px;
}

.activity-result p {
  font-size:12px;
  line-height:1.8;
  margin:12px 0;
  color:#526a82;
}

.activity-result .text-link {
  font-size:11px;
}

.restaurant-result {
  background:#dcebf9;
}

.orientation-note {
  font-size:10px;
  line-height:1.7;
  margin-top:14px;
}

.orientation-note a {
  text-decoration:underline;
  text-underline-offset:3px;
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:44px;
}

.section-heading>p {
  font-size:13px;
  line-height:1.8;
  padding-bottom:3px;
  max-width:350px;
}

.program-grid {
  display:grid;
  grid-template-columns:45% auto; /* Largeur de la carte de gauche, puis espace restant. */
  gap:155px;
  align-items:start;
}

.module {
  border-top:1px solid var(--line);
}

.module:last-of-type {
  border-bottom:1px solid var(--line);
}

summary {
  list-style:none;
  cursor:pointer;
}

summary::-webkit-details-marker {
  display:none;
}

.module summary {
  display:flex;
  align-items:center;
  gap:17px;
  padding:26px 0;
}

.module-number {
  font-size:13px;
  color:var(--accent);
  align-self:flex-start;
  padding-top:6px;
}

.module summary>span:nth-child(2) {
  flex:1;
}

.module-label {
  display:block;
  font-size:9px;
  letter-spacing:1.2px;
  color:var(--muted);
  margin-bottom:7px;
}

.module summary strong {
  display:block;
  font-size:19px;
  font-weight:500;
  letter-spacing:-.5px;
  line-height:1.4;
}

.plus {
  height:20px;
  width:20px;
  position:relative;
  flex-shrink:0;
  margin-left:8px;
}

.plus::before,.plus::after {
  content:"";
  position:absolute;
  left:3px;
  right:3px;
  height:1px;
  background:var(--primary);
  top:9px;
}

.plus::after {
  transform:rotate(90deg);
  transition:transform .2s;
}

details[open]>summary .plus::after {
  transform:rotate(0);
}

.module-body {
  padding:0 20px 28px 33px;
  font-size:12px;
}

.module-body p {
  line-height:1.8;
}

.module-body ul {
  padding-left:16px;
  margin:15px 0 18px;
  color:#536a81;
}

.module-body li {
  padding:3px 0;
}

.module-takeaway {
  display:flex;
  gap:9px;
  align-items:center;
  color:var(--accent);
  font-size:10px;
}

.module-takeaway svg {
  width:16px;
  height:16px;
}

.full-program {
  display:inline-block;
  margin-top:24px;
  font-size:11px;
}

.tools-note {
  background:var(--surface-soft);
  padding:24px;
  display:flex;
  gap:16px;
  margin-top:30px;
  border-radius:4px;
}

.tools-note svg {
  color:var(--accent);
}

.tools-note strong {
  font-size:13px;
  font-weight:500;
}

.tools-note p {
  font-size:11px;
  line-height:1.8;
  margin-top:6px;
}

.price-card {
  background:var(--primary);
  color:var(--surface-soft);
  padding:35px 35px 27px;
  border-radius:7px;
  position:relative;
}

.price-card::before {
  content:"";
  position:absolute;
  top:0;
  left:35px;
  right:35px;
  height:3px;
  background:var(--accent-soft);
}

.price-card .eyebrow {
  color:#c4dcf3;
  font-size:12px;
  margin-bottom:20px;
}

.price-card h3 {
  font-size:23px;
  letter-spacing:0.9px;
  line-height:1.40;
  text-align:center;
}

.price-card h4 {
  text-align:center;
  font-size:18px;
  margin-bottom:0; /* Supprime la marge par défaut sous le titre. */
}

.price-value {
  font-size:52px;
  letter-spacing:-4px;
  line-height:1.0;
  margin-top:4px; 
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
}

.price-value>span {
  font-size:36px;
  letter-spacing:-1px;
  line-height:1;
}

.price-value small {
  display:block;
  font-size:10px;
  letter-spacing:.5px;
  margin-top:6px;
}

.payment-highlight {
  font-size:12px;
  color:#b8dafa;
  margin-top:6px;
}

.price-divider {
  height:1px;
  background:#ffffff26;
  margin:24px 0;
}

.included-list {
  list-style:none;
  padding:0;
  margin:0 0 25px;
}

.included-list li {
  display:flex;
  gap:9px;
  font-size:14px;
  font-weight:600;
  align-items:center;
  margin-bottom:13px;
  color:#e3edf8;
  line-height:1.6;
}

.included-list svg {
  width:15px;
  height:15px;
  color:#c4dff6;
}

.price-card .button {
  width:100%;
  font-size:12px;
  justify-content:space-between;
  padding-left:19px;
  padding-right:19px;
}

.price-footnote {
  color:#c2d5e9;
  font-size:9px;
  text-align:center;
  line-height:1.8;
  margin:12px 0 22px;
}

.price-advice {
  display:block;
  padding-top:17px;
  border-top:1px solid #ffffff26;
  font-size:14px;
  text-align:center;
  text-decoration:none;
  color:beige;
  font-weight: 500;
}

.process {
  background:var(--surface-tint);
}

.steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
  list-style:none;
  padding:0;
  margin:50px 0 0;
}

.step-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #c2d2e3;
  padding-bottom:21px;
  margin-bottom:24px;
}

.step-top>span {
  font-family:Georgia,serif;
  font-size:24px;
  color:#42566B;
  font-style:italic;
  text-align: left;
}

.step-top svg {
  width:27px;
  height:27px;
  color:#557393;
}

.steps h3 {
  font-size:16px;
  margin-bottom:15px;
}

.steps p {
  font-size:12px;
  line-height:1.9;
  max-width:295px;
  color:#536b83;
}

.support-grid {
  display:grid;
  grid-template-columns:1fr .95fr;
  gap:125px;
  align-items:center;
}

.support-grid>div:first-child>p:not(.eyebrow) {
  font-size:14px;
  line-height:1.9;
  margin-top:26px;
  max-width:415px;
}

.support .button {
  margin-top:27px;
}

.contact-hours {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-top:13px;
  font-weight: 600;
}

.quality-block {
  border:1px solid var(--line);
  border-radius:6px;
  padding:32px 35px;
}

.quality-top {
  display:flex;
  gap:18px;
  align-items:flex-start;
}

.quality-top>svg {
  width:41px;
  height:41px;
  color:#557393;
}

.quality-top h3 {
  font-size:23px;
  letter-spacing:-.7px;
}

.quality-top p {
  font-size:12px;
  margin-top:8px;
  line-height:1.7;
}

.quality-block>.text-link {
  display:inline-block;
  margin:15px 0 0 60px;
  font-size:11px;
}

.quality-stat {
  display:flex;
  align-items:center;
  gap:22px;
  border-top:1px solid var(--line);
  padding-top:21px;
  margin-top:25px;
}

.quality-stat>strong {
  font-size:67px;
  font-weight:400;
  letter-spacing:-4px;
  line-height:1.2;
}

.quality-stat>strong>span {
  font-size:32px;
  letter-spacing:-1px;
}

.quality-stat>p {
  font-size:12px;
  color:var(--primary);
  line-height:1.7;
}

.quality-stat>p>span {
  font-size:10px;
  color:var(--muted);
}

.stat-source {
  font-size:9px;
  line-height:1.7;
  margin-top:13px;
}

.stat-source a {
  text-decoration:underline;
}

.faq {
  padding-top:85px;
  background:var(--surface-soft);
}

.faq-grid {
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:100px;
}

.faq-grid>div:first-child>p:not(.eyebrow) {
  font-size:12px;
  margin:25px 0 15px;
  line-height:1.9;
}

.faq-list {
  border-top:1px solid #c6d6e7;
}

.faq-list details {
  border-bottom:1px solid #c6d6e7;
}

.faq-list summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:13px;
  line-height:1.6;
  padding:23px 0;
  gap:25px;
}

.faq-list details>div {
  font-size:12px;
  padding:0 32px 24px 0;
  line-height:1.9;
}

.faq-list details p+p {
  margin-top:12px;
}

.faq-list details>div>a {
  font-size:10px;
  display:inline-block;
  margin-top:15px;
  text-decoration:underline;
  text-underline-offset:3px;
}

.faq-list p a {
  text-decoration:underline;
}

.closing {
  background:var(--primary);
  color:var(--surface-soft);
  padding:70px 0;
}

.closing-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:60px;
}

.closing .eyebrow {
  color:#c6dcf2;
  font-size:9px;
  margin-bottom:22px;
}

.closing h2 {
  font-size:48px;
}

.closing h2 em {
  color:#b6d7f5;
}

.closing-inner>div>p:not(.eyebrow) {
  color:#c4d7ed;
  font-size:12px;
  margin-top:20px;
  line-height:1.9;
}

.closing-action {
  text-align:right;
  font-weight: 600;
  min-width:310px;
}

.closing-action>span {
  font-size:9px;
  letter-spacing:1.8px;
  display:block;
  color:#c6dcf2;
}

.closing-action>strong {
  display:block;
  font-size:53px;
  letter-spacing:-2px;
  font-weight:400;
  margin:5px 0 12px;
}

.closing-action>strong>small {
  font-size:11px;
  letter-spacing:0;
}

.closing-action>.button {
  width:100%;
  font-size:11px;
}

.closing-action>p {
  font-size:9px!important;
  margin-top:13px!important;
}

footer {
  background:var(--paper);
  padding:47px 0 18px;
}

.footer-main {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding-bottom:35px;
}

.footer-contact {
  display:flex;
  flex-direction:column;
}

.footer-contact>a {
  font-size:16px;
}

.footer-contact>span {
  font-size:10px;
  color:var(--muted);
  margin-top:3px;
}

.footer-links {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-top:1px solid var(--line);
  padding:22px 0;
  font-size:10px;
  color:var(--muted);
}

.footer-links>div {
  display:flex;
  gap:23px;
}

.footer-links a:hover {
  text-decoration:underline;
}

.proposal-note {
  border-top:1px solid var(--line);
  padding:16px 0 0;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  font-size:8px;
  color:var(--muted);
}

.proposal-note>button {
  font-size:9px;
  border:0;
  background:none;
  padding:0;
  text-decoration:underline;
  text-underline-offset:3px;
}

.mobile-enroll {
  display:none;
}

dialog {
  max-width:820px;
  width:calc(100% - 40px);
  max-height:86vh;
  border:1px solid var(--line);
  border-radius:10px;
  padding:0;
  background:var(--paper);
  color:var(--ink);
  box-shadow:0 25px 100px #0004;
}

dialog::backdrop {
  background:#102d4c99;
  backdrop-filter:blur(4px);
}

.review-head {
  position:sticky;
  top:0;
  background:var(--paper);
  z-index:1;
  padding:18px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
}

.review-head .eyebrow {
  margin:0;
  font-size:9px;
}

.close-dialog {
  width:32px;
  height:32px;
  border:1px solid var(--line);
  background:transparent;
  border-radius:50%;
  font-size:24px;
  line-height:1;
  padding:0 0 3px;
}

.review-body {
  padding:32px 42px 42px;
}

.review-body h2 {
  font-size:40px;
  margin-bottom:24px;
}

.review-body p {
  font-size:13px;
  line-height:1.9;
}

.review-body h3 {
  font-size:20px;
  margin:30px 0 14px;
}

.palette {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin:22px 0 30px;
}

.palette>span {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
}

.palette>span::before {
  content:"";
  width:21px;
  height:21px;
  border-radius:50%;
  border:1px solid #0002;
  background:var(--swatch);
}

.review-findings {
  margin:0;
}

.review-findings>div {
  border-top:1px solid var(--line);
  padding:16px 0;
}

.review-findings dt {
  font-size:13px;
  font-weight:600;
  margin-bottom:5px;
}

.review-findings dd {
  font-size:12px;
  line-height:1.8;
  margin:0;
  color:var(--muted);
}

.review-body p+p {
  margin-top:15px;
}

.review-sources {
  display:flex;
  flex-wrap:wrap;
  gap:17px;
  font-size:10px;
  border-top:1px solid var(--line);
  padding-top:22px;
  margin-top:25px;
}

.review-sources a {
  text-decoration:underline;
}

@media(min-width:1500px) {
  .wrap {
    max-width:1240px;
  }

  .hero-grid {
    gap:100px;
  }

  h1 {
    font-size:52px;
  }

  .photo-frame {
    height:400px;
  }

}

@media(max-width:1150px) {
  .wrap {
    width:calc(100% - 64px);
  }

  .desktop-nav {
    gap:17px;
    font-size:11px;
  }

  .header-inner {
    gap:15px;
  }

  .brand-text {
    font-size:10px;
  }

  .brand-text>span {
    font-size:7px;
  }

  .header-phone {
    font-size:11px;
    padding:8px 10px;
  }

  .hero-grid {
    gap:40px;
  }

  .hero h1 {
    font-size:56px;
  }

  .hero .eyebrow {
    font-size:8px;
    letter-spacing:1.2px;
  }

  .hero-actions {
    gap:18px;
  }

  .hero-price strong {
    font-size:21px;
  }

  .hero-price span {
    font-size:8px;
  }

  .hero .button {
    font-size:11px;
    padding:13px 18px;
  }

  .photo-frame {
    height:200px;
  }

  .hero-description {
    font-size:14px;
  }

  .hero-reassurance {
    font-size:9px;
    gap:12px;
  }

  .audience-grid {
    gap:60px;
  }

  .support-grid {
    gap:80px;
  }

  .facts-grid>div,.facts-grid>a {
    padding:0 22px;
  }

  .facts-grid span {
    font-size:9px;
  }

  .activity-option {
    padding:13px 10px;
    gap:8px;
  }

  .activity-option>svg {
    width:18px;
    height:18px;
  }

  .activity-option>span:not(.radio-mark) {
    font-size:11px;
  }

  .activity-option small {
    font-size:8px;
  }

  .price-card {
    padding:30px 27px 25px;
  }

  .faq-grid {
    gap:65px;
  }

}

@media(max-width:950px) {
  .desktop-nav {
    display:none;
  }

  .header-phone {
    margin-left:auto;
  }

  .menu-toggle {
    display:flex;
    width:36px;
    height:36px;
    background:transparent;
    border:0;
    flex-direction:column;
    gap:6px;
    align-items:center;
    justify-content:center;
  }

  .menu-toggle>span {
    width:22px;
    height:1px;
    background:var(--primary);
    transition:transform .2s;
  }

  .menu-toggle[aria-expanded=true]>span:first-child {
    transform:translateY(3.5px) rotate(45deg);
  }

  .menu-toggle[aria-expanded=true]>span:last-child {
    transform:translateY(-3.5px) rotate(-45deg);
  }

  .mobile-nav:not([hidden]) {
    display:flex;
    flex-direction:column;
    padding:15px 32px 25px;
    border-top:1px solid var(--line);
    background:var(--paper);
  }

  .mobile-nav>a {
    padding:11px 0;
    border-bottom:1px solid var(--line);
    font-size:13px;
  }

  .hero-grid {
    gap:35px;
    grid-template-columns:1.2fr .8fr;
  }

  .hero h1 {
    font-size:48px;
    letter-spacing:-2px;
  }

  .hero h1 em {
    letter-spacing:-1.5px;
  }

  .hero-description {
    font-size:13px;
  }

  .hero-actions {
    gap:12px;
    flex-wrap:wrap;
  }

  .hero .text-link {
    font-size:10px;
  }

  .hero .eyebrow {
    max-width:300px;
    line-height:1.8;
  }

  .photo-frame {
    height:190px;
    border-top-left-radius:100px;
  }

  .photo-note {
    left:-15px;
    right:8px;
    padding:14px 13px;
    gap:10px;
  }

  .photo-note strong {
    font-size:11px;
  }

  .photo-note span:not(.note-icon) {
    font-size:9px;
  }

  .hero-reassurance {
    flex-direction:column;
    gap:7px;
    margin-top:25px;
  }

  .time-stamp {
    right:-10px;
    width:90px;
    height:90px;
    top:20px;
  }

  .time-stamp strong {
    font-size:24px;
  }

  .time-stamp>span {
    font-size:8px;
  }

  .facts-grid>div,.facts-grid>a {
    padding:0 14px;
  }

  .facts-grid strong {
    font-size:16px;
  }

  .facts-grid span {
    font-size:8px;
  }

  .section-pad {
    padding:75px 0;
  }

  h2 {
    font-size:39px;
  }

  .audience-grid {
    grid-template-columns:.8fr 1.2fr;
    gap:40px;
  }

  .activity-options {
    grid-template-columns:1fr;
  }

  .activity-option {
    min-height:70px;
    padding:13px 16px;
  }

  .activity-option>span:not(.radio-mark) {
    font-size:12px;
  }

  .activity-option small {
    font-size:9px;
  }

  .module summary strong {
    font-size:16px;
  }

  .module-label {
    font-size:8px;
  }

  .module summary {
    gap:11px;
  }

  .module-body {
    padding-left:26px;
  }

  .price-card {
    padding:28px 23px 23px;
  }

  .price-card h3 {
    font-size:27px;
  }

  .price-value {
    font-size:55px;
    text-align:center;
  }

  .price-card .button {
    font-size:10px;
    padding:13px 12px;
  }

  .included-list li {
    font-size:10px;
  }

  .section-heading>p {
    font-size:11px;
    max-width:260px;
  }

  .steps {
    gap:30px;
  }

  .steps h3 {
    font-size:16px;
  }

  .steps p {
    font-size:11px;
  }

  .support-grid {
    gap:45px;
  }

  .quality-block {
    padding:25px;
  }

  .quality-top {
    gap:12px;
  }

  .quality-top>svg {
    width:30px;
  }

  .quality-top h3 {
    font-size:20px;
  }

  .quality-block>.text-link {
    margin-left:42px;
  }

  .quality-stat {
    gap:17px;
  }

  .quality-stat>strong {
    font-size:55px;
  }

  .quality-stat>p {
    font-size:10px;
  }

  .faq-grid {
    gap:40px;
  }

  .faq-list summary {
    font-size:12px;
  }

  .closing h2 {
    font-size:42px;
  }

  .closing-action {
    min-width:280px;
  }

  .footer-links {
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }

}

@media(max-width:700px) {
  html {
    scroll-padding-top:90px;
  }

  .wrap {
    width:calc(100% - 40px);
  }

  .concept-bar .wrap {
    min-height:29px;
  }

  .concept-bar {
    font-size:7px;
    letter-spacing:.8px;
  }

  .concept-bar button {
    font-size:8px;
  }

  .header-inner {
    height:73px;
    gap:7px;
  }

  .brand-mark {
    font-size:38px;
  }

  .brand {
    gap:11px;
  }

  .brand-text {
    font-size:9px;
    letter-spacing:.8px;
  }

  .brand-text>span {
    font-size:9px;
    letter-spacing:0;
  }

  .header-phone {
    padding:9px;
    border:0;
    margin-left:auto;
  }

  .header-phone svg {
    width:19px;
    height:19px;
  }

  .header-phone>span {
    display:none;
  }

  .menu-toggle {
    width:30px;
  }

  .hero {
    padding:37px 0 36px;
  }

  .hero-grid {
    grid-template-columns:1fr;
    gap:34px;
  }

  .hero-copy {
    padding:0;
  }

  .hero .eyebrow {
    font-size:7px;
    max-width:none;
    letter-spacing:1.2px;
    margin-bottom:22px;
  }

  .hero h1 {
    font-size:54px;
    line-height:1.02;
    letter-spacing:-2.5px;
    margin-bottom:23px;
  }

  .hero h1 em {
    letter-spacing:-1.8px;
  }

  .hero-description {
    font-size:14px;
    line-height:1.8;
    max-width:470px;
  }

  .hero-actions {
    margin:25px 0 18px;
    gap:20px;
    flex-wrap:nowrap;
  }

  .hero .button {
    font-size:11px;
    padding:13px 17px;
    gap:17px;
  }

  .hero-price strong {
    font-size:23px;
  }

  .hero-price span {
    font-size:8px;
  }

  .hero .text-link {
    font-size:10px;
  }

  .hero-reassurance {
    flex-direction:row;
    gap:16px;
    margin-top:24px;
    font-size:9px;
  }

  .hero-visual {
    padding:0 7px 21px;
  }

  .photo-frame {
    height:160px;
    border-radius:90px 6px 6px 6px;
  }

  .photo-frame img {
    object-position:60% 44%;
  }

  .photo-note {
    bottom:30px;
    left:0;
    right:auto;
    padding:15px 18px;
    gap:11px;
    max-width:90%;
  }

  .photo-note strong {
    font-size:12px;
  }

  .photo-note span:not(.note-icon) {
    font-size:9px;
  }

  .time-stamp {
    right:0;
    top:17px;
    width:93px;
    height:93px;
  }

  .visual-label {
    font-size:7px;
    letter-spacing:1.4px;
    right:8px;
  }

  .facts-strip {
    padding:15px 0;
  }

  .facts-grid {
    grid-template-columns:1fr 1fr;
    row-gap:24px;
  }

  .facts-grid>div,.facts-grid>a {
    padding:0 18px;
  }

  .facts-grid>:nth-child(odd) {
    border-left:0;
    padding-left:0;
  }

  .facts-grid strong {
    font-size:16px;
  }

  .facts-grid span {
    font-size:9px;
  }

  .facts-grid a strong {
    font-size:14px;
    gap:4px;
  }

  .facts-grid svg {
    width:16px;
    height:16px;
  }

  .facts-grid a span {
    font-size:7px;
  }

  .section-pad {
    padding:58px 0;
  }

  .eyebrow {
    font-size:8px;
    letter-spacing:1.4px;
    margin-bottom:19px;
  }

  h2 {
    font-size:37px;
    letter-spacing:-1.3px;
  }

  .audience-grid {
    grid-template-columns:1fr;
    gap:30px;
  }

  .section-intro>p:not(.eyebrow) {
    font-size:13px;
    max-width:none;
    margin-top:18px;
  }

  .section-intro>p+p {
    margin-top:12px!important;
  }

  .section-intro p {
	text-align: justify;
	}

  .section-intro h3 {
	text-align: left;
	}

  .small-advice {
    margin-top:20px;
  }

  .activity-options {
    grid-template-columns:1fr 1fr;
    gap:9px;
  }

  .activity-option {
    padding:13px 10px;
    gap:8px;
    min-height:94px;
    position:relative;
    align-items:flex-start;
  }

  .activity-option>svg {
    width:18px;
    height:18px;
    margin-top:1px;
  }

  .activity-option>span:not(.radio-mark) {
    font-size:10px;
    line-height:1.5;
  }

  .activity-option small {
    font-size:8px;
    max-width:95px;
  }

  .radio-mark {
    position:absolute;
    right:8px;
    bottom:10px;
    width:10px;
    height:10px;
  }

  .selected .radio-mark {
    border-width:3px;
  }

  .activity-result {
    padding:22px;
    margin-top:15px;
    min-height:225px;
  }

  .activity-result h3 {
    font-size:21px;
  }

  .activity-result p {
    font-size:11px;
  }

  .result-kicker {
    font-size:7px;
  }

  .orientation-note {
    font-size:9px;
  }

  .section-heading {
    flex-direction:column;
    align-items:flex-start;
    gap:22px;
    margin-bottom:30px;
  }

  .section-heading>p {
    font-size:12px;
    max-width:none;
  }

  .program-grid {
    grid-template-columns:1fr;
    gap:32px;
  }

  .module summary {
    padding:24px 0;
    gap:14px;
  }

  .module summary strong {
    font-size:17px;
  }

  .module-label {
    font-size:8px;
  }

  .module-body {
    padding-left:30px;
    font-size:12px;
  }

  .full-program {
    font-size:10px;
  }

  .tools-note {
    padding:21px;
    margin-top:25px;
  }

  .price-card {
    padding:29px 29px 24px;
  }

  .price-card h3 {
    font-size:31px;
  }

  .price-card .eyebrow {
    font-size:9px;
  }

  .price-value {
    font-size:73px;
  }

  .included-list li {
    font-size:12px;
    margin-bottom:14px;
  }

  .price-card .button {
    font-size:12px;
    padding:15px 18px;
  }

  .price-footnote {
    font-size:10px;
  }

  .price-advice {
    font-size:11px;
  }

  .steps {
    grid-template-columns:1fr;
    gap:31px;
    margin-top:30px;
  }

  .step-top {
    padding-bottom:13px;
    margin-bottom:17px;
  }

  .step-top>span {
    font-size:30px;
  }

  .steps h3 {
    font-size:19px;
    margin-bottom:9px;
  }

  .steps p {
    font-size:12px;
    max-width:none;
    line-height:1.9;
  }

  .support-grid {
    grid-template-columns:1fr;
    gap:35px;
  }

  .support-grid>div:first-child>p:not(.eyebrow) {
    font-size:13px;
    margin-top:21px;
  }

  .support .button {
    margin-top:23px;
  }

  .contact-hours {
    font-size:9px;
  }

  .quality-block {
    padding:27px;
  }

  .quality-top h3 {
    font-size:23px;
  }

  .quality-top>svg {
    width:37px;
    height:37px;
  }

  .quality-top {
    gap:17px;
  }

  .quality-block>.text-link {
    margin-left:54px;
  }

  .quality-stat>strong {
    font-size:67px;
  }

  .quality-stat>p {
    font-size:12px;
  }

  .quality-stat {
    gap:28px;
  }

  .faq-grid {
    grid-template-columns:1fr;
    gap:31px;
  }

  .faq-grid>div:first-child>p:not(.eyebrow) {
    font-size:12px;
    margin-top:20px;
  }

  .faq-list summary {
    font-size:12px;
    padding:22px 0;
    gap:15px;
  }

  .faq-list details>div {
    font-size:12px;
    padding-right:12px;
  }

  .closing {
    padding:50px 0;
  }

  .closing-inner {
    flex-direction:column;
    align-items:flex-start;
    gap:35px;
  }

  .closing h2 {
    font-size:40px;
  }

  .closing-action {
    text-align:left;
    width:100%;
    min-width:0;
    border-top:1px solid #ffffff30;
    padding-top:27px;
  }

  .closing-action>strong {
    font-size:50px;
  }

  .closing-action>p {
    text-align:center;
  }

  .closing-action>.button {
    font-size:12px;
  }

  .closing .eyebrow {
    font-size:8px;
  }

  .footer-main {
    align-items:flex-start;
    flex-wrap:wrap;
    gap:24px;
    padding-bottom:27px;
  }

  .footer-main>.brand {
    width:100%;
  }

  .footer-main>.text-link {
    margin-left:auto;
  }

  .footer-contact>a {
    font-size:16px;
  }

  .footer-links {
    font-size:8px;
    padding:21px 0;
  }

  .footer-links>div {
    gap:18px;
    flex-wrap:wrap;
  }

  .proposal-note {
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    line-height:1.8;
  }

  .proposal-note>button {
    font-size:9px;
  }

  footer {
    padding:35px 0 92px;
  }

  .mobile-enroll {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:19;
    background:rgba(252,253,255,.98);
    border-top:1px solid var(--line);
    padding:11px 20px max(11px,env(safe-area-inset-bottom));
    display:flex;
    align-items:center;
    justify-content:space-between;
    box-shadow:0 -4px 20px #173c6407;
  }

  .mobile-enroll>span {
    font-size:10px;
  }

  .mobile-enroll strong {
    font-size:20px;
    font-weight:500;
  }

  .mobile-enroll small {
    display:block;
    font-size:9px;
    color:var(--muted);
    margin-top:-2px;
  }

  .mobile-enroll .button {
    min-height:42px;
    padding:10px 17px;
    font-size:11px;
  }

  .review-head {
    padding:14px 20px;
  }

  .review-head .eyebrow {
    font-size:7px;
  }

  .review-body {
    padding:25px 23px 32px;
  }

  .review-body h2 {
    font-size:31px;
  }

  .review-body p {
    font-size:12px;
  }

  .review-body h3 {
    font-size:18px;
  }

  .review-findings dt {
    font-size:12px;
  }

  .review-findings dd {
    font-size:11px;
  }

}

@media(max-width:370px) {
  .wrap {
    width:calc(100% - 32px);
  }

  .hero h1 {
    font-size:47px;
  }

  .hero .eyebrow {
    font-size:6.5px;
    letter-spacing:.8px;
  }

  .hero-actions {
    gap:12px;
  }

  .hero .button {
    font-size:10px;
    padding:12px 13px;
    gap:9px;
  }

  .hero-price strong {
    font-size:21px;
  }

  .hero-price span {
    font-size:7px;
  }

  .hero-reassurance {
    font-size:8px;
    gap:11px;
  }

  .activity-option>svg {
    display:none;
  }

  .photo-frame {
    height:145px;
  }

  .brand-text {
    font-size:8px;
  }

  .brand-text>span {
    font-size:6px;
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }

  *,*::before,*::after {
    transition:none!important;
    animation:none!important;
  }

}

.price-card a:focus-visible,
.closing a:focus-visible {
  outline-color: var(--accent-soft);
}
@media (min-width:951px) {
  .hero h1 {
    font-size:45px;
  }
}
@media (max-width: 768px) {
  .ifp-program-left {
    padding-right: 0;
  }
}

@media (max-width: 950px) {
  .wrap h2 {
    font-size: 30px;
  }
}

@media (max-width: 700px) {
  .wrap h2 {
    font-size: 25px;
  }
}

@media (max-width: 370px) {
  .wrap h2 {
    font-size: 22px;
  }
}

.hero .hero-copy h1 {
  font-size: 35px;
}

@media (max-width: 950px) {
  .hero .hero-copy h1 {
    font-size: 40px;
  }
}

@media (max-width: 700px) {
  .hero .hero-copy h1 {
    font-size: 32px;
  }
}

/* Composants issus de la page HTML */
/* Formulaire de contact */
.ifp-contact-panel {
  background: #f3f7fc;
  border: 1px solid #d4dfeb;
  border-radius: 8px;
  padding: 32px 34px;
  min-width: 0;
  box-shadow: 0 8px 25px rgba(23,60,100,.05);
}
.ifp-contact-kicker {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: #2d6396;
  margin-bottom: 12px;
}
.ifp-contact-panel h2 {
  font-size: 32px;
  line-height: 1.18;
  letter-spacing: -1px;
  color: #20364d;
  margin: 0 0 16px;
}
.ifp-contact-panel h2 em {
  color: #2d6396;
}
.ifp-contact-intro {
  font-size: 13px;
  line-height: 1.7;
  color: #5c6e82;
  margin-bottom: 23px;
}
.ifp-contact-form {
  display: grid;
  gap: 15px;
}
.ifp-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.ifp-field label {
  font-family: var(--font,Inter,Arial,sans-serif);
  font-size: 12px;
  font-weight: 600;
  color: #20364d;
}
.ifp-field input,.ifp-field textarea {
  width: 100%;
  min-width: 0;
  background: #fff;
  border: 1px solid #c9d8e8;
  border-radius: 5px;
  color: #20364d;
  font: 400 13px/1.5 var(--font,Inter,Arial,sans-serif);
  padding: 12px 14px;
  outline: none;
}
.ifp-field input:focus,.ifp-field textarea:focus {
  border-color: #2d6396;
  box-shadow: 0 0 0 3px rgba(45,99,150,.11);
}
.ifp-field textarea {
  min-height: 96px;
  resize: vertical;
}
.ifp-contact-submit {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 0;
  border-radius: 5px;
  background: #173c64;
  color: white;
  padding: 14px 18px;
  font: 600 12px/1.5 var(--font,Inter,Arial,sans-serif);
  letter-spacing: .3px;
}
.ifp-contact-submit:hover {
  background: #102d4c;
}
.ifp-contact-disclaimer {
  font-size: 10px;
  line-height: 1.6;
  color: #5c6e82;
}
.ifp-program-details {
  background: #fcfdff;
}
.ifp-program-details .ifp-program-heading {
  margin-bottom: 34px;
}
.ifp-program-details .ifp-program-heading h2 {
  font-size: 40px;
}
@media (max-width:700px) {
  .ifp-contact-panel {
    padding: 24px 18px;
  }
  .ifp-contact-panel h2 {
    font-size: 27px;
  }
  .ifp-program-details .ifp-program-heading h2 {
    font-size: 31px;
  }
}
/* Programme detaille : deux colonnes, empilees sur mobile */
.ifp-program-details .ifp-program-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 55px;
  align-items: start;
}
.ifp-program-details .ifp-program-left,.ifp-program-details .ifp-program-right {
  min-width: 0;
}
.ifp-program-details .program-content {
  width: 100%;
  max-width: none;
  margin: 0;
}
@media (max-width:700px) {
  .ifp-program-details .ifp-program-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
/* Réorganisation : professions, accompagnement bleu, questions sur blanc */
.professions {
  background: var(--surface-soft, #f3f7fc);
}
.professions-heading {
  max-width: 850px;
  margin-bottom: 36px;
}
.professions-heading h2 {
  margin-bottom: 12px;
  font-size: clamp(25px, 3vw, 35px);
  line-height: 1.22;
}
.professions-heading h3 {
  font-size: 17px;
  letter-spacing: 0;
  color: var(--accent, #2d6396);
  margin-bottom: 18px;
}
.professions-heading > p:last-child {
  max-width: 760px;
  font-size: 14px;
  line-height: 1.8;
}
.professions-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.profession-card {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line, #d4dfeb);
  border-radius: 7px;
}
.profession-card img {
  display: block;
  width: 100%;
  aspect-ratio: 440 / 281;
  height: auto;
  object-fit: cover;
}
.profession-card-body {
  padding: 22px 22px 24px;
}
.profession-card h3 {
  font-size: 17px;
  letter-spacing: -.3px;
  margin-bottom: 12px;
}
.profession-card p {
  font-size: 12px;
  line-height: 1.75;
}
.profession-card .profession-lead {
  color: var(--ink, #20364d);
  font-weight: 600;
  margin-bottom: 7px;
}
.profession-card a {
  display: inline-block;
  margin-top: 16px;
  font-size: 12px;
  color: var(--accent, #2d6396);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.support.support-blue {
  background: var(--primary, #173c64);
  color: #f3f7fc;
}
.support-blue .eyebrow,
.support-blue h2,
.support-blue h3,
.support-blue .quality-stat > strong,
.support-blue .quality-stat > p {
  color: #f3f7fc;
}
.support-blue h2 em,
.support-blue .contact-hours {
  color: #c5def6;
}
.support-blue .support-grid > div:first-child > p:not(.eyebrow),
.support-blue .quality-top p,
.support-blue .quality-stat > p > span,
.support-blue .stat-source {
  color: #d1e0f0;
}
.support-blue .quality-block {
  border-color: rgba(255,255,255,.3);
}
.support-blue .quality-top > svg {
  color: #c5def6;
}
.support-blue .quality-block > .text-link,
.support-blue .stat-source a {
  color: #fff;
}
.support-blue .quality-stat {
  border-top-color: rgba(255,255,255,.3);
}
.support-blue .button.outline {
  border-color: #c5def6;
  color: #fff;
}
.support-blue .button.outline:hover {
  background: rgba(255,255,255,.12);
}
.faq.faq-on-white {
  background: #fff;
}
@media (max-width: 950px) {
  .professions-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .professions-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .profession-card-body {
    padding: 20px;
  }
}

/* ========================================================================== */
/* Navigation : sous-menus de l'accueil et affichage mobile */
/* ========================================================================== */
.desktop-nav .nav-dropdown {
  position: relative;
}
.desktop-nav .nav-dropdown > a {
  display: block;
  white-space: nowrap;
  padding: 12px 0;
}
.desktop-nav .nav-submenu {
  position: absolute;
  top: 100%;
  left: 0;
  width: 205px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 8px 25px rgba(23,60,100,.13);
  border-radius: 5px;
  padding: 7px 0;
  z-index: 40;
  display: none;
}
.desktop-nav .nav-submenu a {
  display: block;
  padding: 10px 12px;
  line-height: 1.45;
  white-space: normal;
  font-size: 11px;
  border: 0;
}
.desktop-nav .nav-submenu a:hover,
.desktop-nav .nav-submenu a:focus-visible {
  background: var(--surface-tint);
}
.desktop-nav .nav-dropdown:hover .nav-submenu,
.desktop-nav .nav-dropdown:focus-within .nav-submenu {
  display: block;
}
.mobile-nav .mobile-nav-group {
  color: var(--primary);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .4px;
  margin-top: 12px;
  padding: 9px 0 2px;
}
.mobile-nav > a {
  padding-left: 12px;
}
/* Le menu complet reste sur une ligne ; bascule sur le menu mobile si nécessaire. */
@media (max-width: 1150px) {
  .site-header .desktop-nav {
    display: none;
  }
  .site-header .menu-toggle {
    display: flex;
    width: 36px;
    height: 36px;
    background: transparent;
    border: 0;
    flex-direction: column;
    gap: 6px;
    align-items: center;
    justify-content: center;
  }
  .site-header .mobile-nav:not([hidden]) {
    display: flex;
    flex-direction: column;
    padding: 15px 32px 25px;
    border-top: 1px solid var(--line);
    background: var(--paper);
  }
  .site-header .mobile-nav > a {
    padding: 11px 12px;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
  }
}

/* Nettoyage des anciens styles inline */
.text-medium {
  font-weight: 500;
}
.text-semibold {
  font-weight: 600;
}
.legal-footnote {
  font-size: 9px;
}
.pink-phone-icon, .pink-phone-link {
  color:#E334CA;
  font-weight: 500;
  
}
.klarna-inline-logo {
  width: 35px;
  height: 23px;
}
.price-phone-icon {
  width: 14px;
  height: 14px;
  color: beige;
  padding-top: 3px;
}
.ifp-separator {
  border: 0;
  border-top: 1px solid #b0c2d6;
  margin: 15px auto;
  width: 60%;
}
.certification-bordered {
  border: 1px solid lightblue;
}
.section-intro-justified {
  text-align: justify;
}
/* Corrections ciblées responsive */
.program-grid > *, .audience-grid > *, .support-grid > * {
  min-width: 0;
}
.activity-options.activity-options-static {
  grid-template-columns: 1fr;
}
@media (max-width: 1150px) {
  .site-header .brand-text {
    font-size: 14px;
    letter-spacing: .5px;
  }
  .site-header .brand-text > span {
    font-size: 9px;
  }
  .desktop-nav {
    gap: 12px;
    font-size: 11px;
  }
}
@media (max-width: 950px) {
  .site-header .brand-text {
    font-size: 16px;
  }
  .site-header .brand-text > span {
    font-size: 10px;
  }
}
@media (max-width: 700px) {
  .site-header .brand-text {
    font-size: 12px;
    letter-spacing: .2px;
  }
  .site-header .brand-text > span {
    font-size: 9px;
  }
  .ifp-program-left {
    padding-right: 0;
  }
  .professions-grid {
    grid-template-columns: 1fr;
  }
  .activity-options.activity-options-static {
    grid-template-columns: 1fr;
  }
  .program-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
@media (max-width: 370px) {
  .site-header .brand-text {
    font-size: 11px;
  }
  .site-header .brand-text > span {
    font-size: 8px;
  }
}


/* ================================================================
   PAGE PACK HACCP PROFESSIONNEL — styles spécifiques
   ================================================================ */
.pack-hero { background:var(--surface-soft); }
.pack-hero-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:64px; align-items:center; }
.pack-hero-copy,.pack-hero-side,.pack-funding-grid > * { min-width:0; }
.pack-hero .pack-hero-title { font-size:clamp(31px,3.4vw,48px); line-height:1.17; letter-spacing:-1.7px; margin-bottom:24px; }
.pack-hero .pack-hero-title em,.pack-section-heading em,.pack-funding h2 em { color:var(--accent); }
.pack-intro { font-size:16px; line-height:1.8; color:var(--ink); }
.pack-hero-lead { font-size:13px; line-height:1.8; margin-top:16px; }
.pack-actions { margin-top:27px; }
.pack-actions .button { max-width:100%; text-align:left; }
.pack-actions p { font-size:11px; margin-top:14px; }
.pack-hero-side { display:grid; gap:20px; }
.pack-visual { background:white; border:1px solid var(--line); border-radius:8px; padding:22px; }
.pack-visual img { width:100%; height:auto; object-fit:contain; }
.pack-side-card { background:white; border:1px solid var(--line); padding:28px; border-radius:8px; }
.pack-side-card .eyebrow { margin-bottom:8px; }
.pack-side-card h2 { font-size:26px; line-height:1.2; margin-bottom:14px; }
.pack-side-card p:not(.eyebrow) { font-size:13px; line-height:1.8; }
.pack-side-card a { display:inline-block; margin-top:18px; }
.pack-section-heading { max-width:760px; margin-bottom:36px; }
.pack-section-heading h2,.pack-funding h2,.pack-closing h2 { font-size:clamp(28px,3vw,40px); line-height:1.19; letter-spacing:-1.1px; }
.pack-section-heading > p:last-child { font-size:14px; line-height:1.8; margin-top:18px; }
.pack-benefit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.pack-benefit { border:1px solid var(--line); background:#fff; border-radius:7px; padding:26px; }
.pack-benefit-num { display:block; color:var(--accent); font-size:13px; margin-bottom:17px; }
.pack-benefit h3 { font-size:18px; line-height:1.4; margin-bottom:12px; }
.pack-benefit p { font-size:13px; line-height:1.8; }
.pack-keyfacts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; margin-top:25px; padding:25px 0; border-top:1px solid var(--line); }
.pack-keyfacts > div { display:grid; gap:5px; }
.pack-keyfacts strong { color:var(--primary); font-size:15px; }
.pack-keyfacts span { color:var(--muted); font-size:11px; }
.pack-ifp { background:var(--surface-soft); }
.pack-proof-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.pack-proof { min-width:0; display:flex; gap:19px; background:#fff; padding:26px; border:1px solid var(--line); border-radius:7px; }
.pack-proof > svg { width:29px; height:29px; color:var(--accent); }
.pack-proof h3 { font-size:16px; letter-spacing:-.2px; margin-bottom:12px; }
.pack-proof p { font-size:13px; line-height:1.8; }
.pack-proof a { color:var(--accent); display:inline-block; text-decoration:underline; margin-top:14px; font-size:12px; }
.pack-funding-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.72fr); gap:70px; align-items:center; }
.pack-funding h2 { margin-bottom:19px; }
.pack-funding p:not(.eyebrow) { font-size:14px; line-height:1.85; margin-bottom:22px; }
.pack-call { background:var(--surface-soft); border:1px solid var(--line); padding:35px; border-radius:8px; display:flex; align-items:flex-start; flex-direction:column; }
.pack-call svg { color:var(--accent); margin-bottom:16px; }
.pack-call span { font-size:11px; letter-spacing:1px; font-weight:600; }
.pack-call a { font-size:clamp(23px,3vw,32px); color:var(--primary); font-weight:600; margin:10px 0 6px; }
.pack-call p { margin-bottom:0!important; font-size:12px!important; }
.pack-closing { background:var(--primary); color:white; }
.pack-closing-grid { display:flex; gap:40px; align-items:center; justify-content:space-between; }
.pack-closing .eyebrow { color:#d3e3f2; }
.pack-closing h2 { color:white; }
.pack-closing h2 em { color:#b6d7f5; }
.pack-closing p:not(.eyebrow) { margin-top:17px; color:#d3e3f2; font-size:13px; }
.pack-closing-grid > div:last-child { max-width:390px; min-width:0; }
.pack-closing-grid .button { width:100%; text-align:left; justify-content:space-between; }
.pack-closing-grid > div:last-child p { text-align:center; }
.pack-closing-grid > div:last-child p a { text-decoration:underline; color:white; }
@media(max-width:1150px) {
  .pack-hero-grid { gap:36px; }
  .pack-funding-grid { gap:34px; }
}
@media(max-width:950px) {
  .pack-hero-grid { grid-template-columns:1fr; }
  .pack-hero-side { grid-template-columns:1fr 1fr; align-items:stretch; }
  .pack-benefit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pack-keyfacts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .pack-hero-side,.pack-benefit-grid,.pack-keyfacts,.pack-proof-grid,.pack-funding-grid { grid-template-columns:1fr; }
  .pack-closing-grid { display:grid; grid-template-columns:1fr; }
  .pack-hero .pack-hero-title { font-size:clamp(30px,8.2vw,42px); }
  .pack-actions .button,.pack-closing-grid .button { font-size:11px; overflow-wrap:anywhere; }
  .pack-proof,.pack-benefit { padding:20px; }
  .pack-call { padding:25px; }
}

/* Fil d’Ariane et titre SEO visibles en haut de la page */
.pack-page-intro { background:var(--paper); padding:22px 0 24px; border-bottom:1px solid var(--line); }
.pack-breadcrumb ol { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 18px; font-size:12px; line-height:1.6; color:var(--muted); }
.pack-breadcrumb li:not(:last-child)::after { content:"/"; margin-left:8px; color:#90a7be; }
.pack-breadcrumb a { color:var(--accent); text-decoration:none; }
.pack-breadcrumb a:hover { text-decoration:underline; }
.pack-breadcrumb li[aria-current="page"] { color:var(--ink); font-weight:600; }
.pack-page-intro h1 { font-family:var(--font); color:var(--primary); font-size:clamp(21px,2.4vw,30px); line-height:1.25; letter-spacing:-.7px; margin:0; font-weight:700; }
@media(max-width:700px) {
  .pack-page-intro { padding:16px 0 20px; }
  .pack-breadcrumb ol { font-size:11px; gap:5px; margin-bottom:12px; }
  .pack-breadcrumb li:not(:last-child)::after { margin-left:5px; }
  .pack-page-intro h1 { font-size:22px; }
}

/* Section financement HACCP — 2 colonnes */

#service-page .financement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  align-items: start;
}

#service-page .financement-colonne {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

#service-page .financement-colonne > .section-intro {
  margin: 0;
}

#service-page .seo-info-cards {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin: 0;
  padding: 0;
}

#service-page .seo-info-cards > li {
  width: 100%;
  margin: 0;
}

#service-page #infoshaccp {
  margin-top: 18px;
}

#service-page #infoshaccp ul {
  margin: 0;
  padding-left: 20px;
}

#service-page #infoshaccp li {
  margin-bottom: 10px;
}

/* Tablettes et mobiles */
@media (max-width: 800px) {
  #service-page .financement-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* =============================================================
   Accueil : disposition des blocs de financement (ancien CSS intégré)
   ============================================================= */
/* Disposition de la section Financement uniquement : aucun changement au CSS du site. */
#service-page .financement-intros {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: 70px;
  align-items: start;
  margin-bottom: 36px;
}
#service-page .financement-intros .section-intro { min-width: 0; }
#service-page .financement-intros .section-intro > p { max-width: none; }
#service-page .financement-details-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: 36px;
  align-items: start;
}
#service-page .financement-details-gauche,
#service-page .financement-details-droite { min-width: 0; }
#service-page .financement-details-gauche .seo-info-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}
#service-page .financement-details-gauche .seo-info-cards > li {
  min-width: 0;
  width: auto;
  margin: 0;
  padding: 20px;
  background: var(--paper, #fcfdff);
  border: 1px solid var(--line, #d4dfeb);
  border-radius: 12px;
}
#service-page .financement-contact {
  min-width: 0;
  padding: 24px;
  background: #f0f7f7;
  border: 1px solid var(--line, #d4dfeb);
  border-radius: 12px;
}
#service-page .financement-contact .step-top { margin-bottom: 18px; }
#service-page .financement-contact .seo-restore-topics { margin-top: 20px; }
#service-page .financement-contact .seo-restore-topics ul {
  padding-left: 20px;
  margin: 0;
  list-style: disc;
}
#service-page .financement-contact .seo-restore-topics li { margin-bottom: 10px; }
@media (max-width: 920px) {
  #service-page .financement-details-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  #service-page .financement-intros { grid-template-columns: 1fr; gap: 26px; }
}
@media (max-width: 560px) {
  #service-page .financement-details-gauche .seo-info-cards { grid-template-columns: 1fr; }
  #service-page .financement-contact { padding: 18px; }
}


/* =============================================================
   Page demandeurs d'emploi & créateurs : formation-haccp-en-ligne.html
   CSS centralisé dans la feuille commune ; aucune règle dans le HTML.
   Tous les sélecteurs sont limités à .page-haccp-financement.
   ============================================================= */
.page-haccp-financement { overflow:clip; }
.page-haccp-financement .fin-hero { background:var(--surface-soft); padding:24px 0 68px; }
.page-haccp-financement .fin-breadcrumb ol { list-style:none; padding:0; margin:0 0 30px; display:flex; flex-wrap:wrap; gap:9px; font-size:11px; color:var(--muted); }
.page-haccp-financement .fin-breadcrumb li:not(:last-child)::after { content:"/"; margin-left:9px; color:#8aa0b7; }
.page-haccp-financement .fin-breadcrumb a:hover { text-decoration:underline; }
.page-haccp-financement .fin-breadcrumb [aria-current="page"] { color:var(--primary); font-weight:600; }
.page-haccp-financement .fin-hero-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr); align-items:center; gap:70px; }
.page-haccp-financement .fin-hero-copy { min-width:0; }
.page-haccp-financement .fin-hero-copy .eyebrow { margin-bottom:12px; }
.page-haccp-financement .fin-hero h1 { font-size: clamp(26px, 2.5vw, 34px); line-height:1.17; letter-spacing:-1.3px; margin-bottom:25px; }
.page-haccp-financement .fin-hero h2 { color:var(--accent); font-size:clamp(21px,2vw,29px); line-height:1.28; letter-spacing:-.8px; }
.page-haccp-financement .fin-update { color:var(--muted); font-size:11px; margin:15px 0 18px; }
.page-haccp-financement .fin-bullet-list { margin:0 0 18px; padding-left:20px; color:var(--ink); font-size:14px; line-height:1.85; }
.page-haccp-financement .fin-bullet-list li { padding:2px 0; }
.page-haccp-financement .fin-hero h5 { font-weight:500; font-size:14px; line-height:1.75; color:var(--ink); margin:20px 0 26px; }
.page-haccp-financement .fin-hero-cta { max-width:100%; }
.page-haccp-financement .fin-hero-art { position:relative; min-width:0; }
.page-haccp-financement .fin-hero-art .photo-frame { height:300px; }
.page-haccp-financement .fin-photo-caption { display:flex; align-items:center; gap:10px; position:absolute; left:-18px; bottom:-22px; background:var(--paper); box-shadow:0 8px 28px #173c6420; padding:14px 18px; border-radius:6px; font-size:11px; font-weight:600; color:var(--primary); }
.page-haccp-financement .fin-photo-caption svg { width:20px; height:20px; }
.page-haccp-financement .fin-introduction { background:var(--paper); }
.page-haccp-financement .fin-intro-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,.5fr); gap:90px; align-items:center; }
.page-haccp-financement .fin-intro-copy h2 { font-size:clamp(25px,2.8vw,36px); line-height:1.24; letter-spacing:-.9px; }
.page-haccp-financement .fin-intro-copy > p:not(.eyebrow):not(.fin-update) { margin:18px 0 22px; font-size:14px; line-height:1.85; }
.page-haccp-financement .fin-phone-cta { font-size:11px; }
.page-haccp-financement .fin-phone-panel { border:1px solid var(--line); background:var(--surface-soft); padding:34px 28px; border-radius:10px; display:flex; flex-direction:column; gap:16px; align-items:flex-start; }
.page-haccp-financement .fin-phone-panel .eyebrow { margin:0; }
.page-haccp-financement .fin-phone-panel strong { color:var(--primary); font-size:25px; line-height:1.2; letter-spacing:-1px; }
.page-haccp-financement .fin-form-section { background:var(--surface-tint); }
.page-haccp-financement .fin-form-grid { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:75px; align-items:start; }
.page-haccp-financement .fin-form-description h2 { font-size:clamp(24px,2.7vw,35px); line-height:1.22; letter-spacing:-.6px; }
.page-haccp-financement .fin-form-annotation { margin-top:28px; font-size:14px; line-height:1.8; }
.page-haccp-financement .fin-form-card { border:1px solid #c9d8e8; background:var(--paper); box-shadow:0 12px 35px #173c640e; border-radius:9px; padding:32px; }
.page-haccp-financement .fin-form-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.page-haccp-financement .fin-form-field { min-width:0; }
.page-haccp-financement .fin-form-field.fin-full { grid-column:1 / -1; }
.page-haccp-financement .fin-form-field label { display:block; margin-bottom:7px; color:var(--ink); font-size:11px; font-weight:700; letter-spacing:.15px; }
.page-haccp-financement .fin-form-field input { width:100%; height:48px; min-width:0; padding:12px; border:1px solid #cbd8e5; background:#fff; border-radius:5px; color:var(--ink); font-size:13px; font-family:var(--font); }
.page-haccp-financement .fin-form-field input::placeholder { color:#8192a6; font-size:11px; }
.page-haccp-financement .fin-form-field input:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.page-haccp-financement .fin-submit { width:100%; justify-content:center; margin-top:22px; text-align:center; }
.page-haccp-financement .fin-submit:disabled { opacity:.65; cursor:not-allowed; }
.page-haccp-financement .fin-offer { background:var(--paper); }
.page-haccp-financement .fin-heading-lead { font-size:clamp(22px,2.4vw,30px); line-height:1.32; margin-bottom:32px; max-width:980px; }
.page-haccp-financement .fin-offer-grid { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:50px; }
.page-haccp-financement .fin-offer-copy h4 { color:var(--ink); font-size:18px; line-height:1.45; font-weight:600; margin:0 0 20px; }
.page-haccp-financement .fin-offer-copy p { font-size:14px; line-height:1.85; }
.page-haccp-financement .fin-offer-card { border:1px solid var(--line); border-radius:8px; padding:26px 32px; background:var(--surface-soft); }
.page-haccp-financement .fin-offer-card ul { padding:0; margin:0; list-style:none; }
.page-haccp-financement .fin-offer-card li { position:relative; padding:11px 0 11px 26px; color:var(--ink); font-size:14px; line-height:1.5; border-bottom:1px solid var(--line); }
.page-haccp-financement .fin-offer-card li:last-child { border-bottom:0; }
.page-haccp-financement .fin-offer-card li::before { content:"✓"; position:absolute; left:0; color:var(--accent); font-weight:700; }
.page-haccp-financement .fin-explanations { background:var(--surface-soft); }
.page-haccp-financement .fin-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.page-haccp-financement .fin-info-card { padding:30px; background:var(--paper); border:1px solid var(--line); border-radius:8px; }
.page-haccp-financement .fin-info-card h3 { font-size:20px; line-height:1.4; margin-bottom:16px; }
.page-haccp-financement .fin-info-card p { font-size:14px; line-height:1.9; }
.page-haccp-financement .fin-info-card .text-link { display:inline-block; margin-top:15px; }
.page-haccp-financement .fin-cta-section { background:var(--primary); padding:70px 0; }
.page-haccp-financement .fin-cta-grid { display:grid; grid-template-columns:1fr auto; gap:35px; align-items:center; }
.page-haccp-financement .fin-cta-section .eyebrow { color:#c4dcf3; margin-bottom:11px; }
.page-haccp-financement .fin-cta-section h2 { font-size:clamp(26px,3vw,40px); color:#fff; }
.page-haccp-financement .fin-cta-section p:not(.eyebrow) { color:#dce9f7; font-size:14px; margin-top:12px; }
.page-haccp-financement .fin-cta-section .button { max-width:480px; }
@media(max-width:1050px) {
  .page-haccp-financement .fin-hero-grid { gap:36px; }
  .page-haccp-financement .fin-intro-grid { gap:45px; }
  .page-haccp-financement .fin-form-grid { gap:40px; }
}
@media(max-width:850px) {
  .page-haccp-financement .fin-hero-grid,
  .page-haccp-financement .fin-intro-grid,
  .page-haccp-financement .fin-form-grid { grid-template-columns:1fr; }
  .page-haccp-financement .fin-hero-art { max-width:570px; }
  .page-haccp-financement .fin-hero-art .photo-frame { height:280px; }
  .page-haccp-financement .fin-phone-panel { max-width:420px; }
  .page-haccp-financement .fin-offer-grid { gap:25px; }
}
@media(max-width:700px) {
  .page-haccp-financement .fin-hero { padding:14px 0 46px; }
  .page-haccp-financement .fin-hero h1 { font-size:26px; }
  .page-haccp-financement .fin-hero-cta { width:100%; }
  .page-haccp-financement .fin-breadcrumb ol { font-size:10px; margin-bottom:20px; }
  .page-haccp-financement .fin-hero-art .photo-frame { height:230px; }
  .page-haccp-financement .fin-photo-caption { left:0; padding:10px 14px; }
  .page-haccp-financement .fin-phone-cta { width:100%; }
  .page-haccp-financement .fin-form-card { padding:20px; }
  .page-haccp-financement .fin-offer-grid,
  .page-haccp-financement .fin-info-grid,
  .page-haccp-financement .fin-cta-grid { grid-template-columns:1fr; }
  .page-haccp-financement .fin-cta-grid .button { width:100%; }
}
@media(max-width:420px) {
  .page-haccp-financement .fin-form-fields { grid-template-columns:1fr; }
  .page-haccp-financement .fin-hero h1 { font-size:24px; }
  .page-haccp-financement .fin-form-description h2 { font-size:24px; }
  .page-haccp-financement .fin-info-card { padding:22px; }
}
/* Texte et liste du cadre CONTACT */
#service-page .financement-contact > p,
#service-page .financement-contact #infoshaccp li {
  font-size: 14px;
}

/* Adaptation sur mobile */
@media (max-width: 700px) {
  #service-page .financement-contact > p,
  #service-page .financement-contact #infoshaccp li {
    font-size: 13px;
  }
}
.quality-top > div {
  flex: 1;
  min-width: 0;
}

.quality-top .row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 200px;
  gap: 15px;
  align-items: center;
}
.quality-top .row .text-link {
  display: inline-block;
  margin-top: 12px;
}
.quality-top .row > div:last-child {
  display: flex;
  justify-content: center;
  align-items: center;
}

.quality-top .row > div:last-child img {
  width: 100%;
  max-width: 200px;
  height: auto;
  border: solid thin #8BB4F7;
}
.facts-grid {
  text-align: left;
}
.page-haccp-financement .fin-hero + .fin-introduction {
  padding: 40px 0;
}

/* Styles propres à page-obligations-haccp — regroupés depuis formation-haccp-obligatoire.css */
body.page-obligations-haccp .pack-page-intro { background:var(--paper); padding:22px 0 24px; border-bottom:1px solid var(--line); }
body.page-obligations-haccp .pack-breadcrumb ol { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0 0 18px; list-style:none; font-size:12px; color:var(--muted); }
body.page-obligations-haccp .pack-breadcrumb li:not(:last-child)::after { content:"/"; margin-left:8px; color:#90a7be; }
body.page-obligations-haccp .pack-breadcrumb a { color:var(--accent); }
body.page-obligations-haccp .pack-breadcrumb a:hover { text-decoration:underline; }
body.page-obligations-haccp .pack-breadcrumb li[aria-current="page"] { color:var(--ink); font-weight:600; }
body.page-obligations-haccp .pack-page-intro h1 { font-family:var(--font); color:var(--primary); font-size:clamp(25px,3vw,38px); letter-spacing:-.8px; line-height:1.2; }
body.page-obligations-haccp .obligation-overline { color:var(--accent); font-size:12px; font-weight:700; letter-spacing:.8px; margin-bottom:10px; }
body.page-obligations-haccp .obligation-hero { background:var(--surface-soft); }
body.page-obligations-haccp .obligation-hero-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:68px; align-items:center; }
body.page-obligations-haccp .obligation-hero-grid > *,
body.page-obligations-haccp .obligation-allergen-grid > * { min-width:0; }
body.page-obligations-haccp .obligation-hero h2,
body.page-obligations-haccp .obligation-allergen h2 { font-size:clamp(23px,2.6vw,34px); line-height:1.3; margin-bottom:18px; }
body.page-obligations-haccp .obligation-hero .obligation-subhead,
body.page-obligations-haccp .obligation-allergen .obligation-subhead { color:var(--accent); font-size:20px; letter-spacing:-.3px; margin:22px 0 14px; }
body.page-obligations-haccp .obligation-law-ref { font-weight:600; color:var(--primary); margin:0 0 14px; }
body.page-obligations-haccp .obligation-hero p:not(.eyebrow),
body.page-obligations-haccp .obligation-allergen p { line-height:1.85; font-size:14px; }
body.page-obligations-haccp .obligation-photo-frame { height:300px; border-radius:110px 9px 9px 9px; background:#d8e9f8; overflow:hidden; }
body.page-obligations-haccp .obligation-photo-frame img { width:100%; height:100%; object-fit:cover; object-position:63% 48%; }
body.page-obligations-haccp .obligation-image-caption { margin-top:9px; color:var(--muted); text-align:right; font-size:10px!important; letter-spacing:.4px; }
body.page-obligations-haccp .obligation-allergen { background:var(--paper); }
body.page-obligations-haccp .obligation-allergen-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:80px; align-items:start; }
body.page-obligations-haccp .obligation-quote { background:var(--surface-soft); border:1px solid var(--line); border-radius:7px; padding:30px; }
body.page-obligations-haccp .obligation-quote blockquote { margin:0; padding:0; border:0; }
body.page-obligations-haccp .obligation-quote blockquote p + p { margin-top:16px; }
body.page-obligations-haccp .obligation-quote .text-link { display:inline-block; margin-top:18px; color:var(--accent); }
body.page-obligations-haccp .obligation-enroll { background:var(--primary); color:var(--surface-soft); }
body.page-obligations-haccp .obligation-enroll-inner { display:flex; justify-content:space-between; align-items:center; gap:40px; }
body.page-obligations-haccp .obligation-enroll .eyebrow { color:#c6dcf2; }
body.page-obligations-haccp .obligation-enroll h2 { color:white; font-size:clamp(24px,2.8vw,36px); line-height:1.25; }
body.page-obligations-haccp .obligation-enroll .button { max-width:100%; text-align:center; }
@media (max-width:950px) {
body.page-obligations-haccp .obligation-hero-grid,
body.page-obligations-haccp .obligation-allergen-grid { grid-template-columns:1fr; gap:36px; }
body.page-obligations-haccp .obligation-photo-frame { max-width:570px; }
}
@media (max-width:700px) {
body.page-obligations-haccp .pack-page-intro { padding:17px 0 22px; }
body.page-obligations-haccp .pack-breadcrumb ol { font-size:11px; gap:5px; }
body.page-obligations-haccp .pack-breadcrumb li:not(:last-child)::after { margin-left:5px; }
body.page-obligations-haccp .obligation-photo-frame { height:190px; border-top-left-radius:85px; }
body.page-obligations-haccp .obligation-quote { padding:22px 18px; }
body.page-obligations-haccp .obligation-enroll-inner { flex-direction:column; align-items:stretch; }
body.page-obligations-haccp .obligation-enroll .button { width:100%; white-space:normal; overflow-wrap:anywhere; }
}
body.page-obligations-haccp .obligation-original-footer { margin-top:15px; padding-top:15px; border-top:1px solid var(--line); font-size:10px; }
body.page-obligations-haccp .obligation-original-footer p { margin:4px 0; }
body.page-obligations-haccp .obligation-original-footer a { text-decoration:underline; }

/* Styles propres à page-programmes-haccp — regroupés depuis haccp-en-ligne.css */
body.page-programmes-haccp .pack-page-intro { background:var(--paper);padding:24px 0;border-bottom:1px solid var(--line) }
body.page-programmes-haccp .pack-breadcrumb ol { display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 18px;font-size:12px;color:var(--muted) }
body.page-programmes-haccp .pack-breadcrumb li:not(:last-child)::after { content:"/";margin-left:8px;color:#90a7be }
body.page-programmes-haccp .pack-breadcrumb a { color:var(--accent) }
body.page-programmes-haccp .pack-page-intro h1 { font-size:clamp(27px,3.2vw,39px);line-height:1.2;letter-spacing:-.9px;color:var(--primary) }
body.page-programmes-haccp .pgm-hero { background:var(--surface-soft) }
body.page-programmes-haccp .pgm-hero-grid { display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:58px;align-items:start }
body.page-programmes-haccp .pgm-hero-grid > *,
body.page-programmes-haccp .pgm-two-col > * { min-width:0 }
body.page-programmes-haccp .pgm-hero h2 { font-size:29px;margin:0 0 12px }
body.page-programmes-haccp .pgm-hero h2 a { color:var(--primary) }
body.page-programmes-haccp .pgm-hero h3 { font-size:20px;line-height:1.5;letter-spacing:-.35px;margin-bottom:21px }
body.page-programmes-haccp .pgm-facts { margin:0;padding-left:20px;font-size:13px;line-height:1.8;color:var(--ink) }
body.page-programmes-haccp .pgm-facts li { margin:5px 0 }
body.page-programmes-haccp .pgm-note { margin-top:19px;font-size:11px;line-height:1.65 }
body.page-programmes-haccp .pgm-photo { height:300px;overflow:hidden;background:var(--accent-soft);border-radius:110px 9px 9px 9px }
body.page-programmes-haccp .pgm-photo img { width:100%;height:100%;object-fit:cover }
body.page-programmes-haccp .pgm-hero-visual > p { font-size:10px;margin-top:9px;text-align:right }
body.page-programmes-haccp .pgm-objectives,
body.page-programmes-haccp .pgm-inco { background:var(--paper) }
body.page-programmes-haccp .pgm-two-col { display:grid;grid-template-columns:1fr 1fr;gap:65px }
body.page-programmes-haccp .pgm-objectives h2,
body.page-programmes-haccp .pgm-curriculum h2,
body.page-programmes-haccp .pgm-inco h2 { font-size:clamp(25px,2.7vw,35px);margin-bottom:21px }
body.page-programmes-haccp .pgm-objectives p,
body.page-programmes-haccp .pgm-inco > .wrap > p { font-size:14px;line-height:1.85;margin:0 0 20px }
body.page-programmes-haccp .pgm-tinted { padding:30px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft) }
body.page-programmes-haccp .pgm-tinted p { font-size:13px;line-height:1.85;margin:0 0 17px }
body.page-programmes-haccp .pgm-tinted h5 { font-size:13px;line-height:1.65;letter-spacing:0;color:var(--primary) }
body.page-programmes-haccp .pgm-curriculum { background:var(--surface-soft) }
body.page-programmes-haccp .pgm-curriculum > .wrap > p { font-size:14px;margin:0 0 18px }
body.page-programmes-haccp .pgm-curriculum hr { border:0;border-top:1px solid var(--line);margin:25px 0 }
body.page-programmes-haccp .pgm-lesson { padding:25px 0;border-bottom:1px solid var(--line) }
body.page-programmes-haccp .pgm-lesson h3 { font-size:20px;margin:0 0 15px }
body.page-programmes-haccp .pgm-lesson h4 { font-size:15px;margin:19px 0 10px }
body.page-programmes-haccp .pgm-lesson p { font-size:13px;line-height:1.9;margin:0 0 13px }
body.page-programmes-haccp .pgm-legend { margin-top:25px }
body.page-programmes-haccp .pgm-legend p { font-size:11px;margin:4px 0 }
body.page-programmes-haccp .pgm-benefits { background:var(--paper) }
body.page-programmes-haccp .pgm-benefits-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px }
body.page-programmes-haccp .pgm-benefits article { border:1px solid var(--line);border-radius:7px;padding:25px;background:var(--surface-soft) }
body.page-programmes-haccp .pgm-benefits h3 { font-size:19px;margin-bottom:12px }
body.page-programmes-haccp .pgm-benefits p { font-size:13px;line-height:1.85 }
body.page-programmes-haccp .pgm-inco h2:not(:first-of-type) { margin-top:40px }
body.page-programmes-haccp .pgm-inco h3 { font-size:19px;margin-bottom:28px }
body.page-programmes-haccp .pgm-inco-parts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px }
body.page-programmes-haccp .pgm-inco-parts > div { background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;padding:22px }
body.page-programmes-haccp .pgm-inco-parts h4 { font-size:18px;color:var(--primary);margin-bottom:16px }
body.page-programmes-haccp .pgm-inco-parts p { font-size:12px;line-height:1.65;margin:0 0 10px }
body.page-programmes-haccp .pgm-contact { font-weight:600;margin-top:28px!important }
body.page-programmes-haccp .pgm-cta { background:var(--primary);color:white }
body.page-programmes-haccp .pgm-cta-row { display:flex;align-items:center;justify-content:space-between;gap:42px }
body.page-programmes-haccp .pgm-cta h2 { color:white;font-size:32px;margin-bottom:14px }
body.page-programmes-haccp .pgm-cta p { color:#d5e6f8;font-size:14px }
body.page-programmes-haccp .pgm-cta .button { max-width:100%;text-align:center }
body.page-programmes-haccp .pgm-original-footer { padding:20px 0;background:var(--paper);border-top:1px solid var(--line) }
body.page-programmes-haccp .pgm-original-footer p { font-size:10px;line-height:1.7;margin:3px 0 }
body.page-programmes-haccp .pgm-original-footer a { text-decoration:underline }
@media (max-width:950px) {
body.page-programmes-haccp .pgm-hero-grid,
body.page-programmes-haccp .pgm-two-col { grid-template-columns:1fr;gap:30px }
body.page-programmes-haccp .pgm-photo { max-width:570px }
body.page-programmes-haccp .pgm-inco-parts { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media (max-width:700px) {
body.page-programmes-haccp .pgm-photo { height:190px;border-top-left-radius:85px }
body.page-programmes-haccp .pgm-benefits-grid,
body.page-programmes-haccp .pgm-inco-parts { grid-template-columns:1fr }
body.page-programmes-haccp .pgm-cta-row { flex-direction:column;align-items:stretch }
body.page-programmes-haccp .pgm-cta .button { width:100%;white-space:normal;overflow-wrap:anywhere }
body.page-programmes-haccp .pgm-tinted { padding:20px }
body.page-programmes-haccp .pack-breadcrumb ol { font-size:11px }
}

/* Styles réservés à la page d’inscription, anciennement dans formation-haccp.css */
body.page-stage-haccp .pack-page-intro { background:var(--paper); padding:22px 0 24px; border-bottom:1px solid var(--line); }
body.page-stage-haccp .pack-breadcrumb ol { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 18px; font-size:12px; line-height:1.6; color:var(--muted); }
body.page-stage-haccp .pack-breadcrumb li:not(:last-child)::after { content:"/"; margin-left:8px; color:#90a7be; }
body.page-stage-haccp .pack-breadcrumb a { color:var(--accent); text-decoration:none; }
body.page-stage-haccp .pack-breadcrumb a:hover { text-decoration:underline; }
body.page-stage-haccp .pack-breadcrumb li[aria-current="page"] { color:var(--ink); font-weight:600; }
body.page-stage-haccp .pack-page-intro h1 { font-family:var(--font); color:var(--primary); font-size:clamp(21px,2.4vw,30px); line-height:1.25; letter-spacing:-.7px; margin:0; font-weight:700; }
@media (max-width:700px) {
body.page-stage-haccp .pack-page-intro { padding:16px 0 20px; }
body.page-stage-haccp .pack-breadcrumb ol { font-size:11px; gap:5px; margin-bottom:12px; }
body.page-stage-haccp .pack-breadcrumb li:not(:last-child)::after { margin-left:5px; }
body.page-stage-haccp .pack-page-intro h1 { font-size:22px; }
}
body.page-stage-haccp .stage-intro { background:var(--surface-soft); }
body.page-stage-haccp .stage-intro-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:65px; align-items:center; }
body.page-stage-haccp .stage-intro-copy h2 { font-size:clamp(25px,2.8vw,34px); line-height:1.25; margin-bottom:16px; }
body.page-stage-haccp .stage-intro-copy > p:not(.eyebrow) { font-size:14px; line-height:1.8; margin:17px 0; }
body.page-stage-haccp .stage-intro-copy .button { margin-top:12px; max-width:100%; }
body.page-stage-haccp .stage-photo-frame { height:300px; border-radius:110px 9px 9px 9px; overflow:hidden; background:#c7d7e6; }
body.page-stage-haccp .stage-photo-frame img { height:100%; width:100%; object-fit:cover; object-position:63% 48%; }
body.page-stage-haccp .stage-details-grid { display:grid; grid-template-columns:1fr 1fr; gap:85px; align-items:start; }
body.page-stage-haccp .stage-details h2 { font-size:clamp(24px,2.8vw,35px); line-height:1.25; margin-bottom:23px; }
body.page-stage-haccp .stage-details p { font-size:14px; line-height:1.85; }
body.page-stage-haccp .stage-included { padding-left:21px; margin-top:20px; color:var(--ink); font-size:14px; line-height:1.8; }
body.page-stage-haccp .stage-included li { margin-bottom:11px; }
body.page-stage-haccp .stage-benefit { padding:18px 0; border-top:1px solid var(--line); }
body.page-stage-haccp .stage-benefit h4 { margin:0 0 8px; font-size:15px; color:var(--primary); }
body.page-stage-haccp .stage-benefit p { font-size:13px; }
body.page-stage-haccp .stage-info { background:var(--primary); color:white; }
body.page-stage-haccp .stage-info-grid { display:flex; justify-content:space-between; align-items:center; gap:36px; }
body.page-stage-haccp .stage-info h2 { font-size:clamp(23px,2.7vw,35px); margin-bottom:16px; }
body.page-stage-haccp .stage-info p { color:#d1e0f0; font-size:14px; }
body.page-stage-haccp .stage-info .button { flex-shrink:0; max-width:100%; }
@media (max-width:950px) {
body.page-stage-haccp .stage-intro-grid,
body.page-stage-haccp .stage-details-grid { grid-template-columns:1fr; gap:36px; }
body.page-stage-haccp .stage-photo-frame { max-width:560px; }
}
@media (max-width:700px) {
body.page-stage-haccp .stage-photo-frame { height:180px; border-top-left-radius:85px; }
body.page-stage-haccp .stage-info-grid { flex-direction:column; align-items:stretch; }
body.page-stage-haccp .stage-info .button,
body.page-stage-haccp .stage-intro-copy .button { width:100%; overflow-wrap:anywhere; }
}


/* Couleur anciennement déclarée en ligne, conservée à l'identique. */
.page-haccp-financement .fin-hero-copy #stage-haccp-en-ligne + h3 { color: #536a81; }
/* ===================================================================
   AJUSTEMENTS RESPONSIVE UNIFIÉS — pages HACCP
   Correctifs exclusivement mobiles; mise en page bureau inchangée.
   Ne modifie pas la présentation du menu et du pied de page.
   =================================================================== */
@media (max-width: 950px) {
  /* Empêche les colonnes CSS Grid/Flex de pousser les cadres hors écran. */
  main .hero-grid > *, main .fin-hero-grid > *,
  main .fin-intro-grid > *, main .fin-info-grid > *,
  main .pack-hero-grid > *, main .pack-funding-grid > *,
  main .pgm-hero-grid > *, main .pgm-two-col > *,
  main .obligation-hero-grid > *, main .obligation-allergen-grid > *,
  main .stage-intro-grid > *, main .stage-details-grid > * {
    min-width: 0;
  }
  main img { max-width: 100%; height: auto; }
}
@media (max-width: 700px) {
  /* Les textes ne doivent pas être justifiés sur les écrans étroits. */
  main .wrap, main .hero-description, main p, main li,
  main .fin-hero-copy, main .fin-info-card {
    text-align: left;
  }
  /* H1 / H2 fluides, lisibles sur Xiaomi et autres téléphones. */
  main h1, main .wrap h1, main .hero .hero-copy h1,
  main .pack-hero .pack-hero-title,
  main .page-haccp-financement .fin-hero h1 {
    font-size: clamp(25px, 7.4vw, 32px);
    line-height: 1.18;
    letter-spacing: -.9px;
    overflow-wrap: break-word;
  }
  main h2, main .wrap h2,
  main .fin-hero h2, main .pgm-hero h2,
  main .obligation-hero h2, main .obligation-allergen h2 {
    font-size: clamp(21px, 6.3vw, 28px);
    line-height: 1.3;
    letter-spacing: -.5px;
    overflow-wrap: break-word;
  }
  main .pack-hero h2.pack-hero-title {
    font-size: clamp(21px, 6.3vw, 28px);
    line-height: 1.3;
  }
  body.page-programmes-haccp main .pgm-hero h2,
  body.page-programmes-haccp main .pgm-cta h2,
  body.page-programmes-haccp main .pgm-objectives h2,
  body.page-programmes-haccp main .pgm-curriculum h2,
  body.page-programmes-haccp main .pgm-inco h2 {
    font-size: clamp(21px, 6.3vw, 28px);
    line-height: 1.3;
  }
  main h3 { overflow-wrap: break-word; }
  /* Carte tarif: éviter les mots rognés et les débordements. */
  main .price-card { min-width: 0; max-width: 100%; }
  main .price-card h3 {
    font-size: clamp(18px, 5vw, 23px);
    line-height: 1.35;
    letter-spacing: 0;
    overflow-wrap: break-word;
  }
  /* Certification: l'image passe sous le texte, sans colonne fixe. */
  main .quality-top > div { flex: 1 1 auto; min-width: 0; }
  main .quality-top .row { grid-template-columns: minmax(0, 1fr); }
  main .quality-top .row > div { min-width: 0; }
  main .quality-top .row > div:last-child { justify-content: flex-start; }
  main .quality-top .row > div:last-child img { width: 100%; max-width: 200px; height: auto; }
  /* Bande fixe d'inscription: tarif et bouton demeurent dans l'écran. */
  .mobile-enroll { box-sizing: border-box; max-width: 100%; gap: 10px; }
  .mobile-enroll > span { flex: 0 0 auto; white-space: nowrap; }
  .mobile-enroll .button {
    flex: 0 1 auto; min-width: 0; max-width: 60%;
    gap: 8px; padding: 10px 12px; white-space: normal;
    text-align: center; overflow-wrap: break-word;
  }
  .mobile-enroll .button svg { width: 18px; height: 18px; }
}
@media (max-width: 370px) {
  main h1, main .wrap h1, main .hero .hero-copy h1,
  main .pack-hero .pack-hero-title { font-size: 25px; }
  main h2, main .wrap h2 { font-size: 21px; }
  .mobile-enroll { padding-inline: 12px; }
  .mobile-enroll .button { padding-inline: 9px; }
}


/* ======================================================================
   ACCUEIL HACCP — personnalisation préexistante sortie des styles inline.
   Valeurs identiques à index(7).html : aucun changement visuel bureau.
   ====================================================================== */
body.page-accueil-haccp .pink-phone-link { font-size: 18px; }
body.page-accueil-haccp .haccp-conseil-telephone { color: #E334CA; font-weight: 500; }
body.page-accueil-haccp .certification-haccp-logo { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.20); }
body.page-accueil-haccp .ifp-contact-intro { color: #E334CA; font-weight: 500; }
body.page-accueil-haccp .quality-top .row img { box-shadow: 0 4px 12px rgba(250, 250, 250, 0.40); }
body.page-accueil-haccp .haccp-savoir-faire { font-size: 20px; color: white; }

/* Menu tablette : entre 951 et 1150px, le menu mobile était activé mais
   ses traits n'étaient définis que jusqu'à 950px. Aucun changement bureau. */
@media (min-width: 951px) and (max-width: 1150px) {
  .site-header .menu-toggle > span {
    display: block; width: 22px; height: 1px;
    background: var(--primary); transition: transform .2s;
  }
  .site-header .menu-toggle[aria-expanded="true"] > span:first-child {
    transform: translateY(3.5px) rotate(45deg);
  }
  .site-header .menu-toggle[aria-expanded="true"] > span:last-child {
    transform: translateY(-3.5px) rotate(-45deg);
  }
}

/* Ajustements exclusifs aux écrans intermédiaires de l'accueil. */
@media (min-width: 701px) and (max-width: 950px) {
  body.page-accueil-haccp main .hero .hero-copy h1 {
    font-size: clamp(30px, 4vw, 36px);
    line-height: 1.17;
    letter-spacing: -.85px;
  }
  body.page-accueil-haccp main .hero-description { text-align: left; }
}
@media (max-width: 700px) {
  /* Les longues têtes des cartes d'étapes doivent rester proportionnées. */
  body.page-accueil-haccp main .steps .step-top > span {
    font-size: clamp(19px, 5.7vw, 24px);
    line-height: 1.25;
    overflow-wrap: break-word;
  }
  /* Dans la vignette de la photo, conserver le numéro entier autant que possible. */
  body.page-accueil-haccp main .photo-note strong {
    font-size: 11px;
    line-height: 1.4;
  }
}


/* ===============================================================
   ACCUEIL HACCP — vignette photo et tarifs, adaptation mobile.
   Le visuel desktop est inchangé ; les badges sortent de la photo.
   =============================================================== */
@media (max-width: 700px) {
  body.page-accueil-haccp .hero-visual {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 10px 12px;
    align-items: center;
    padding: 0;
    min-width: 0;
  }
  body.page-accueil-haccp .hero-visual .photo-frame {
    grid-column: 1 / -1;
    height: clamp(205px, 56vw, 260px);
    min-width: 0;
  }
  body.page-accueil-haccp .hero-visual .time-stamp {
    grid-column: 1;
    position: static;
    inset: auto;
    width: 76px;
    height: 76px;
    transform: none;
    border: 2px solid var(--surface-soft);
    border-radius: 50%;
    box-shadow: none;
  }
  body.page-accueil-haccp .hero-visual .time-stamp strong {
    font-size: 21px;
    line-height: 1.1;
  }
  body.page-accueil-haccp .hero-visual .time-stamp > span {
    font-size: 8px;
  }
  body.page-accueil-haccp .hero-visual .photo-note {
    grid-column: 2;
    position: static;
    inset: auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 10px;
    gap: 8px;
    box-shadow: 0 3px 14px #173c6415;
    text-align: left;
  }
  body.page-accueil-haccp .hero-visual .photo-note .note-icon {
    width: 32px;
    height: 32px;
    min-width: 32px;
  }
  body.page-accueil-haccp .hero-visual .photo-note .note-icon svg {
    width: 18px;
    height: 18px;
  }
  body.page-accueil-haccp .hero-visual .photo-note strong {
    font-size: 11px;
    line-height: 1.35;
    overflow-wrap: break-word;
  }
  body.page-accueil-haccp .hero-visual .photo-note span:not(.note-icon) {
    font-size: 9px;
    line-height: 1.45;
  }
  body.page-accueil-haccp .hero-visual .visual-label {
    grid-column: 1 / -1;
    position: static;
    inset: auto;
    justify-self: end;
    text-align: right;
    font-size: 8px;
    letter-spacing: 1px;
  }
  body.page-accueil-haccp main .price-card .price-value {
    font-size: clamp(42px, 11.5vw, 52px);
    letter-spacing: -2px;
    gap: 6px;
  }
  body.page-accueil-haccp main .price-card .price-value > span {
    font-size: clamp(24px, 6.7vw, 29px);
  }
  body.page-accueil-haccp main .price-card h4 {
    font-size: clamp(13px, 3.8vw, 16px);
    line-height: 1.4;
  }
  /* Bandeau fixe identique sur toutes les pages refondues. */
  .mobile-enroll strong { font-size: 18px; }
}
@media (max-width: 370px) {
  body.page-accueil-haccp .hero-visual {
    grid-template-columns: 68px minmax(0, 1fr);
    column-gap: 8px;
  }
  body.page-accueil-haccp .hero-visual .time-stamp {
    width: 68px;
    height: 68px;
  }
  body.page-accueil-haccp .hero-visual .photo-note {
    padding: 8px;
  }
}
@media (max-width: 1150px) {
  .site-header .header-inner .menu-toggle {
    order: -1;
    flex-shrink: 0;
  }
}
@media (max-width:1150px) {

  /* Liens du menu mobile */
  .site-header .mobile-nav > a {
    font-size:10px;
    padding:5px 12px;
    line-height:1.3;
  }

  /* Titres des rubriques */
  .site-header .mobile-nav .mobile-nav-group {
    font-size:10px;
    margin-top:5px;
    padding:4px 0 1px;
    line-height:1.3;
  }

  /* Espacement général du menu */
  .site-header .mobile-nav:not([hidden]) {
    padding:8px 20px 12px;
    max-height:calc(100dvh - 85px);
    overflow-y:auto;
  }
}
@media (max-width:1150px) {

  .menu-toggle {
    position:relative;
  }

  .menu-toggle[aria-expanded="true"] > span {
    position:absolute;
    top:50%;
    left:50%;
  }

  .menu-toggle[aria-expanded="true"] > span:first-child {
    transform:translate(-50%, -50%) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] > span:nth-child(2) {
    opacity:0;
  }

  .menu-toggle[aria-expanded="true"] > span:last-child {
    transform:translate(-50%, -50%) rotate(-45deg);
  }
}
/* ===== Inscription HACCP — mise en page spécifique à formation-haccp.php ===== */
body.page-inscription-haccp .wrap{ text-align:left; }
body.page-inscription-haccp main{ min-width:0; }
body.page-inscription-haccp .page-inscription-bandeau{
  background:var(--primary); color:white; padding:35px 0 42px;
}
body.page-inscription-haccp .page-inscription-bandeau .block{max-width:1000px;}
body.page-inscription-haccp .page-inscription-bandeau h1,
body.page-inscription-haccp .page-inscription-bandeau h2{
  color:white; font-size:clamp(25px,3vw,36px); line-height:1.22; letter-spacing:-.8px; margin:0 0 19px;
}
body.page-inscription-haccp .page-inscription-bandeau .breadcrumb{
  margin:0 0 23px; padding:0; display:flex; flex-wrap:wrap; gap:7px; list-style:none;
}
body.page-inscription-haccp .page-inscription-bandeau .breadcrumb li,
body.page-inscription-haccp .page-inscription-bandeau .breadcrumb a{font-size:12px;color:#d6e6f4;}
body.page-inscription-haccp .page-inscription-bandeau .block h4{
  font-size:14px; font-weight:400; line-height:1.75; color:antiquewhite; margin:0;
}
body.page-inscription-haccp .page-inscription-bandeau .block h4 a{color:antiquewhite;text-decoration:underline;}
body.page-inscription-haccp #contact-section{padding:55px 0 60px;}
body.page-inscription-haccp #contact-section > .container > .row:first-child{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:34px; align-items:start;
}
body.page-inscription-haccp #contact-section .page-inscription-formulaire,
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif{min-width:0;}
body.page-inscription-haccp #contact-section .page-inscription-formulaire .subtitle{
  margin:0 0 18px; font-size:clamp(22px,2.1vw,29px); line-height:1.3; letter-spacing:-.5px; color:var(--primary);
}
body.page-inscription-haccp #contact-section .page-inscription-formulaire h6{
  margin:0 0 17px; font-size:12px; font-weight:400; letter-spacing:0; line-height:1.7;
}
body.page-inscription-haccp #contact-section .page-inscription-formulaire .subtitle-des{
  margin:0 0 22px; font-size:14px; line-height:1.7;
}
body.page-inscription-haccp #Inscription-form .ifp-field{margin:0;}
body.page-inscription-haccp #Inscription-form .ifp-field input.form-control{
  display:block; width:100%; min-width:0; background:#fff; border:1px solid #c9d8e8; border-radius:5px;
  color:var(--ink); font-size:14px; line-height:1.5; padding:13px 14px; min-height:46px;
}
body.page-inscription-haccp #Inscription-form .ifp-field input.form-control:focus{
  border-color:var(--accent); outline:2px solid #2d63962e; outline-offset:0;
}
body.page-inscription-haccp #Inscription-form > .form-group{min-width:0;}
body.page-inscription-haccp #Inscription-form .form-group:has(#acceptation){
  display:block; font-size:12px; line-height:1.65; margin:7px 0;
}
body.page-inscription-haccp #Inscription-form #acceptation{
  width:17px; height:17px; margin:0 8px 0 0; vertical-align:middle; accent-color:var(--primary);
}
body.page-inscription-haccp #Inscription-form .form-group:has(#acceptation) a{
  color:var(--accent); text-decoration:underline; font-size:inherit;
}
body.page-inscription-haccp #Inscription-form #contact-submit{
  display:block; width:100%; border:0; cursor:pointer; background:var(--primary);
  color:white; border-radius:5px; font-size:13px; font-weight:600; padding:15px;
}
body.page-inscription-haccp #Inscription-form #contact-submit:hover{background:var(--primary-dark);}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .sidebar{padding-top:5px;}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author{
  background:var(--primary); border:1px solid var(--primary); border-radius:8px;
  color:#ffffff; padding:30px 29px; box-shadow:rgba(99,99,99,.2) 0 2px 8px;
}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio{min-width:0;}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio h3{
  color:#ffffff; font-size:clamp(20px,2.2vw,24px); font-weight:600;
  text-align:center; letter-spacing:-.5px; line-height:1.3; margin:0 0 12px;
}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio h4{
  font-size:16px; color:#ffffff; font-weight:600; letter-spacing:0; line-height:1.4;
  text-align:center; margin:0 0 17px;
}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio h5{
  color:#ffffff; font-size:14px; font-weight:600; text-align:center;
  letter-spacing:0; line-height:1.5; margin:0 0 16px;
}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio p{margin:0;}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio ul{
  margin:0; padding-left:20px; list-style:disc;
}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio li{
  margin:0 0 10px; font-size:13px; color:var(--surface-soft); line-height:1.7;
}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio li:nth-child(-n+3) span{color:#c4dcf3;}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio li:nth-child(5),
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio li:nth-child(11){font-weight:800;}
body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author-bio li:last-child img{
  width:35px; height:23px; display:inline-block; object-fit:contain; vertical-align:middle;
}
body.page-inscription-haccp #contact-section .address-details{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:30px;
}
body.page-inscription-haccp #contact-section .address-details > div{
  min-width:0; background:var(--surface-soft); border:1px solid var(--line); padding:22px; border-radius:7px;
}
body.page-inscription-haccp #contact-section .address-details h5{
  margin:0; font-size:13px; line-height:1.65; letter-spacing:0; font-weight:500;
}
body.page-inscription-haccp #contact-section .address-details h5 span{font-weight:700;}
body.page-inscription-haccp #contact-section .address-details h5 a{
  color:var(--accent); text-decoration:underline;
}
body.page-inscription-haccp .page-inscription-retour{text-align:center;padding:20px 0 58px;}
body.page-inscription-haccp .page-inscription-retour a{
  display:inline-block; background:var(--primary); color:white; padding:14px 24px;
  font-size:12px; font-weight:600; border-radius:5px; text-align:center;
}
body.page-inscription-haccp .footer-inscription-haccp .row.content-justify-between{
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:30px;
  align-items:start;
}
body.page-inscription-haccp .footer-inscription-haccp .copyright,
body.page-inscription-haccp .footer-inscription-haccp .row.content-justify-between > div:last-child{
  font-size:11px; line-height:1.9; color:var(--muted);
}
body.page-inscription-haccp .footer-inscription-haccp a{font-size:inherit;color:var(--accent);}
body.page-inscription-haccp .footer-inscription-haccp .copyright a:first-child{color:#02bdd5;}
@media(max-width:1150px){
  body.page-inscription-haccp .site-header .menu-toggle{order:-1;flex-shrink:0;position:relative;}
  body.page-inscription-haccp .site-header .menu-toggle[aria-expanded="true"] > span{
    position:absolute; top:50%; left:50%;
  }
  body.page-inscription-haccp .site-header .menu-toggle[aria-expanded="true"] > span:first-child{
    transform:translate(-50%,-50%) rotate(45deg);
  }
  body.page-inscription-haccp .site-header .menu-toggle[aria-expanded="true"] > span:nth-child(2){opacity:0;}
  body.page-inscription-haccp .site-header .menu-toggle[aria-expanded="true"] > span:last-child{
    transform:translate(-50%,-50%) rotate(-45deg);
  }
  body.page-inscription-haccp .site-header .mobile-nav:not([hidden]){
    max-height:calc(100dvh - 85px); overflow-y:auto;
  }
  body.page-inscription-haccp .site-header .mobile-nav > a{font-size:12px;padding:6px 12px;line-height:1.3;}
  body.page-inscription-haccp .site-header .mobile-nav .mobile-nav-group{font-size:10px;margin-top:6px;padding:4px 0 1px;}
}
@media(max-width:800px){
  body.page-inscription-haccp #contact-section > .container > .row:first-child{grid-template-columns:1fr;gap:24px;}
  body.page-inscription-haccp #contact-section .address-details{grid-template-columns:1fr;}
}
@media(max-width:700px){
  body.page-inscription-haccp .page-inscription-bandeau{padding:23px 0 27px;}
  body.page-inscription-haccp .page-inscription-bandeau h1,
  body.page-inscription-haccp .page-inscription-bandeau h2{font-size:clamp(22px,6.5vw,27px);}
  body.page-inscription-haccp .page-inscription-bandeau .block h4{font-size:12px;}
  body.page-inscription-haccp #contact-section{padding:30px 0 35px;}
  body.page-inscription-haccp #contact-section .page-inscription-formulaire{padding:24px 18px;}
  body.page-inscription-haccp #contact-section .page-inscription-recapitulatif .author{padding:24px 18px;}
  body.page-inscription-haccp #contact-section .page-inscription-formulaire .subtitle{font-size:23px;}
  body.page-inscription-haccp .footer-inscription-haccp .row.content-justify-between{grid-template-columns:1fr;gap:12px;}
}

/* ===== Validation d'inscription HACCP — uniquement cette page ===== */
body.page-validation-haccp .wrap {text-align:left;}
body.page-validation-haccp .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;}
body.page-validation-haccp .page-inscription-bandeau {background:var(--primary);color:#fff;padding:35px 0 42px;}
body.page-validation-haccp .page-inscription-bandeau h2{color:#fff;font-size:clamp(25px,3vw,36px);line-height:1.22;letter-spacing:-.8px;margin-bottom:19px;}
body.page-validation-haccp .page-inscription-bandeau .breadcrumb {display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0 0 23px;}
body.page-validation-haccp .page-inscription-bandeau .breadcrumb li,body.page-validation-haccp .page-inscription-bandeau .breadcrumb a{font-size:12px;color:#d6e6f4;}
body.page-validation-haccp .page-inscription-bandeau h4{font-size:14px;line-height:1.75;font-weight:400;color:antiquewhite;margin:0;max-width:1050px;}
body.page-validation-haccp .page-inscription-bandeau h4 a{font-size:inherit;color:antiquewhite;text-decoration:underline;}
body.page-validation-haccp .page-validation-contenu {padding:46px 0 55px;}
body.page-validation-haccp .page-validation-colonnes {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;align-items:start;}
body.page-validation-haccp .page-validation-colonnes > div {min-width:0;}
body.page-validation-haccp .page-validation-colonnes .sidebar {padding-top:5px;}
body.page-validation-haccp .page-validation-colonnes .author.widget{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:rgba(99,99,99,.14) 0 2px 8px;padding:24px;margin:0 0 22px;min-width:0;}
/* La carte PACK réutilise le bleu de la page d'inscription précédente. */
body.page-validation-haccp .page-validation-colonnes .page-inscription-recapitulatif .author.widget{background:var(--primary);border-color:var(--primary);color:#fff;padding:30px 29px;}
body.page-validation-haccp .page-validation-colonnes .page-inscription-recapitulatif .author h3{font-size:clamp(20px,2.2vw,24px);font-weight:600;color:#fff;text-align:center;line-height:1.3;letter-spacing:-.5px;margin:0 0 12px;}
body.page-validation-haccp .page-validation-colonnes .page-inscription-recapitulatif .author h4{font-size:16px;font-weight:600;color:#fff;text-align:center;letter-spacing:0;margin:0 0 17px;}
body.page-validation-haccp .page-validation-colonnes .page-inscription-recapitulatif .author h5{font-size:14px;font-weight:600;color:#fff;text-align:center;letter-spacing:0;line-height:1.5;margin:0 0 16px;}
body.page-validation-haccp .page-inscription-recapitulatif .author-bio ul{margin:0;padding-left:20px;list-style:disc;}
body.page-validation-haccp .page-inscription-recapitulatif .author-bio li{font-size:13px;line-height:1.7;color:var(--surface-soft);margin:0 0 10px;}
body.page-validation-haccp .page-inscription-recapitulatif .author-bio li:nth-child(-n+3) span{color:#c4dcf3;}
body.page-validation-haccp .page-inscription-recapitulatif .author-bio li:nth-child(5),body.page-validation-haccp .page-inscription-recapitulatif .author-bio li:nth-child(11){font-weight:800;}
body.page-validation-haccp .page-inscription-recapitulatif .author-bio li:last-child img{width:35px;height:23px;display:inline-block;object-fit:contain;vertical-align:middle;}
body.page-validation-haccp .page-inscription-recapitulatif .contact-form{padding:4px 5px;}
body.page-validation-haccp #signupForm{margin:0;}
body.page-validation-haccp #signupForm hr.invis2{border:0;margin:17px 0;}
body.page-validation-haccp #signupForm > div{font-size:13px;line-height:1.8;text-align:left;overflow-wrap:anywhere;}
body.page-validation-haccp #signupForm > div > span:first-child{font-size:13px;font-weight:600;}
body.page-validation-haccp #signupForm > div > span:nth-of-type(2){font-size:13px;font-weight:500;}
body.page-validation-haccp #signupForm > div > span:nth-of-type(3){font-size:12px;font-style:italic;font-weight:700;}
body.page-validation-haccp #signupForm a{color:var(--accent);text-decoration:underline;font-size:inherit;}
body.page-validation-haccp #signupForm span[style] {color:inherit;}
body.page-validation-haccp .page-inscription-recapitulatif .contact-form .btn{display:inline-block;background:var(--primary);padding:12px 24px;color:#fff;border-radius:5px;font-size:12px;font-weight:600;text-decoration:none;}
body.page-validation-haccp .page-validation-reglement .author h2{font-size:clamp(21px,2.2vw,27px);color:var(--primary);letter-spacing:-.6px;line-height:1.25;margin:0 0 18px;}
body.page-validation-haccp .page-validation-reglement .author h6{font-size:14px;font-weight:600;line-height:1.65;letter-spacing:0;margin:0 0 15px;color:var(--ink);}
body.page-validation-haccp .page-validation-reglement .author p,body.page-validation-haccp .page-validation-reglement .author span{font-size:13px;line-height:1.8;}
body.page-validation-haccp .page-validation-reglement .author #validationR p{font-size:13px;color:var(--ink);overflow-wrap:anywhere;}
body.page-validation-haccp .page-validation-reglement .author .row{display:flex;gap:16px;align-items:center;justify-content:space-between;}
body.page-validation-haccp .page-validation-reglement .author .row > *{min-width:0;}
body.page-validation-haccp .page-validation-reglement .author img[src$="paiement-stripe.png"]{width:100px;height:33px;object-fit:contain;}
body.page-validation-haccp .page-validation-reglement .author img[src$="klarna-button-haccp.png"]{width:90px;height:50px;object-fit:contain;}
body.page-validation-haccp #payment-element,body.page-validation-haccp #payment-method-messaging-element{min-width:0;max-width:100%;}
body.page-validation-haccp #payment-form #submitB{margin:18px 0 10px;}
body.page-validation-haccp #payment-form #submit{display:inline-block;cursor:pointer;border:0;border-radius:5px;background:var(--primary);color:white;padding:14px 18px;font-size:12px;font-weight:600;white-space:normal;}
body.page-validation-haccp #error-message{color:crimson;font-size:13px;font-weight:700;font-style:italic;}
body.page-validation-haccp .page-validation-reglement .author > span{display:block;font-size:12px;font-weight:700;font-style:italic;line-height:1.65;}
body.page-validation-haccp .validation-klarna-wrapper{min-width:0;}
body.page-validation-haccp .validation-klarna-wrapper table{width:100%;max-width:100%;}
body.page-validation-haccp .validation-klarna-wrapper td{vertical-align:middle;}
body.page-validation-haccp .validation-klarna-wrapper a{display:inline-flex;}
body.page-validation-haccp .address-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:26px 0 0;}
body.page-validation-haccp .address-details > div{min-width:0;background:var(--surface-soft);border:1px solid var(--line);border-radius:7px;padding:22px;}
body.page-validation-haccp .address-details h5{font-size:13px;line-height:1.65;font-weight:500;letter-spacing:0;margin:0;}
body.page-validation-haccp .page-validation-certification{background:var(--surface-soft);padding:34px 0 45px;text-align:center;}
body.page-validation-haccp .page-validation-certification .block h2{font-size:clamp(22px,2.6vw,32px);color:var(--primary);letter-spacing:-.6px;margin:0 0 13px;}
body.page-validation-haccp .page-validation-certification p{font-size:14px;margin:0 0 20px;}
body.page-validation-haccp .page-validation-certification img{width:297px;max-width:100%;height:auto;margin:auto;}
body.page-validation-haccp .page-validation-footer .row.content-justify-between{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:30px;}
body.page-validation-haccp .page-validation-footer .copyright,body.page-validation-haccp .page-validation-footer .row.content-justify-between > div:last-child{font-size:11px;line-height:1.9;color:var(--muted);}
body.page-validation-haccp .page-validation-footer a{color:var(--accent);font-size:inherit;}
body.page-validation-haccp .page-validation-footer .copyright a:first-child{color:#02bdd5;}
@media(max-width:950px){body.page-validation-haccp .site-header .menu-toggle{order:-1;flex-shrink:0;position:relative;}}
@media(max-width:800px){body.page-validation-haccp .page-validation-colonnes{grid-template-columns:1fr;gap:28px;}body.page-validation-haccp .address-details{grid-template-columns:1fr;}}
@media(max-width:700px){
 body.page-validation-haccp .page-inscription-bandeau{padding:23px 0 27px;}
 body.page-validation-haccp .page-inscription-bandeau h2{font-size:clamp(22px,6.5vw,27px);}
 body.page-validation-haccp .page-inscription-bandeau h4{font-size:12px;}
 body.page-validation-haccp .page-validation-contenu{padding:28px 0 38px;}
 body.page-validation-haccp .page-validation-colonnes .author.widget{padding:22px 17px;}
 body.page-validation-haccp .page-validation-colonnes .page-inscription-recapitulatif .author.widget{padding:24px 18px;}
 body.page-validation-haccp .page-validation-footer .row.content-justify-between{grid-template-columns:1fr;gap:12px;}
 body.page-validation-haccp .page-validation-reglement .author .row{flex-wrap:wrap;}
 body.page-validation-haccp .validation-klarna-wrapper table{table-layout:auto;}
}

/* Confirmation du stagiaire — détails propres à cette page. */
body.page-confirmation-haccp .page-validation-reglement .author ul{padding-left:24px;margin:15px 0;}
body.page-confirmation-haccp .page-validation-reglement .author li{font-size:13px;line-height:1.75;color:var(--ink);}
body.page-confirmation-haccp .page-validation-reglement .author .subtitle-des p{color:var(--ink);}
body.page-confirmation-haccp .page-validation-reglement .author .subtitle-des p span{font-weight:600;}

/* =========================================================
   PAGE PROFESSIONNELS DE LA RESTAURATION
   Styles ajoutes exclusivement pour haccp-formation-en-ligne.html
   Les regles existantes sont conservees a l'identique.
   ========================================================= */
.page-haccp-restauration .resto-hero { background:var(--surface-soft); padding:36px 0 70px; }
.page-haccp-restauration .resto-hero-grid { display:grid; grid-template-columns:minmax(0,1.28fr) minmax(0,.72fr); gap:75px; align-items:center; }
.page-haccp-restauration .resto-hero-text { min-width:0; }
.page-haccp-restauration .resto-hero h1 { text-align:left; font-size:clamp(29px,3.5vw,44px); line-height:1.2; letter-spacing:-1.5px; margin:0 0 16px; }
.page-haccp-restauration .resto-hero h2 { font-size:clamp(22px,2.2vw,29px); line-height:1.35; margin:0 0 16px; }
.page-haccp-restauration .resto-hero-text > p:not(.eyebrow):not(.resto-meta) { font-size:14px; line-height:1.85; margin-top:17px; text-align:justify; }
.page-haccp-restauration .resto-meta { display:flex; flex-wrap:wrap; gap:6px 16px; margin:16px 0 22px; font-size:11px; line-height:1.6; color:var(--muted); }
.page-haccp-restauration .resto-meta span { color:var(--accent); }
.page-haccp-restauration .resto-hero .button { margin-top:28px; }
.page-haccp-restauration .resto-hero-visual { position:relative; min-width:0; padding:0 15px 25px 0; }
.page-haccp-restauration .resto-hero-visual .photo-frame { height:315px; border-radius:105px 8px 8px 8px; }
.page-haccp-restauration .resto-hero-visual .photo-frame img { width:100%; height:100%; object-fit:cover; }
.page-haccp-restauration .resto-content-section { background:var(--paper); }
.page-haccp-restauration .resto-content-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(250px,.7fr); gap:65px; align-items:start; }
.page-haccp-restauration .resto-articles { min-width:0; }
.page-haccp-restauration .resto-article { padding:0 0 48px; margin:0 0 48px; border-bottom:1px solid var(--line); }
.page-haccp-restauration .resto-article:last-child { border-bottom:0; margin-bottom:0; padding-bottom:0; }
.page-haccp-restauration .resto-article h2 { font-size:clamp(23px,2.6vw,31px); line-height:1.35; }
.page-haccp-restauration .resto-article .text-link { display:inline-block; margin-top:24px; color:var(--primary); font-size:12px; font-weight:600; }
.page-haccp-restauration .resto-aside { min-width:0; position:sticky; top:118px; }
.page-haccp-restauration .resto-contact-panel { padding:30px; border-radius:8px; border:1px solid var(--line); background:var(--surface-soft); }
.page-haccp-restauration .resto-contact-panel h3 { font-size:28px; font-weight:600; letter-spacing:-1px; }
.page-haccp-restauration .resto-contact-panel h3 a:hover { text-decoration:underline; }
.page-haccp-restauration .resto-contact-panel > p:not(.eyebrow) { font-size:13px; line-height:1.8; margin-top:16px; }
.page-haccp-restauration .resto-contact-divider { border-top:1px solid var(--line); padding-top:20px; font-size:11px!important; font-weight:700; letter-spacing:.3px; color:var(--primary); }
.page-haccp-restauration .resto-contact-panel .button { width:100%; font-size:11px; line-height:1.4; margin-top:18px; padding:14px; }
.page-haccp-restauration .resto-contact-panel .button svg { width:16px; height:16px; }
.page-haccp-restauration .resto-links-panel { border:1px solid var(--line); border-radius:8px; background:#fff; padding:26px 30px; margin-top:24px; }
.page-haccp-restauration .resto-links-panel h3 { font-size:21px; margin-bottom:18px; }
.page-haccp-restauration .resto-links-panel ul { padding:0; margin:0; list-style:none; }
.page-haccp-restauration .resto-links-panel li { border-top:1px solid var(--line); padding:12px 0; }
.page-haccp-restauration .resto-links-panel a { display:block; }
.page-haccp-restauration .resto-links-panel strong { display:block; font-size:13px; font-weight:600; line-height:1.5; }
.page-haccp-restauration .resto-links-panel a:hover strong { text-decoration:underline; text-underline-offset:3px; }
.page-haccp-restauration .resto-links-panel span { font-size:11px; color:var(--muted); }
.page-haccp-restauration .resto-final { background:var(--primary); color:var(--surface-soft); }
.page-haccp-restauration .resto-final-grid { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:45px; }
.page-haccp-restauration .resto-final h2 { font-size:clamp(28px,3vw,40px); }
.page-haccp-restauration .resto-final p:not(.eyebrow) { font-size:14px; line-height:1.9; margin-top:17px; color:#dce9f7; }
.page-haccp-restauration .resto-final .button { max-width:440px; text-align:center; }
@media(max-width:1030px) {
  .page-haccp-restauration .resto-hero-grid { gap:35px; }
  .page-haccp-restauration .resto-content-grid { gap:36px; }
  .page-haccp-restauration .resto-contact-panel, .page-haccp-restauration .resto-links-panel { padding:22px; }
}
@media(max-width:800px) {
  .page-haccp-restauration .resto-hero-grid { grid-template-columns:1fr; }
  .page-haccp-restauration .resto-hero-visual { max-width:510px; }
  .page-haccp-restauration .resto-hero-visual .photo-frame { height:250px; }
  .page-haccp-restauration .resto-content-grid { grid-template-columns:1fr; }
  .page-haccp-restauration .resto-aside { position:static; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
  .page-haccp-restauration .resto-links-panel { margin:0; }
  .page-haccp-restauration .resto-final-grid { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .page-haccp-restauration .resto-hero { padding:26px 0 55px; }
  .page-haccp-restauration .resto-hero h1 { font-size:31px; }
  .page-haccp-restauration .resto-hero h2 { font-size:24px; }
  .page-haccp-restauration .resto-hero-visual .photo-frame { height:205px; }
  .page-haccp-restauration .resto-aside { grid-template-columns:1fr; }
  .page-haccp-restauration .resto-article { padding-bottom:36px; margin-bottom:36px; }
  .page-haccp-restauration .resto-article h2 { font-size:24px; }
  .page-haccp-restauration .resto-final .button { width:100%; }
}

/* Ajustements locaux sans modifier les autres pages. */
body.page-restaurateurs-haccp .page-haccp-restauration .resto-content-grid a.text-link {font-size:12px;}
body.page-restaurateurs-haccp .page-haccp-restauration .resto-contact-panel a.button {font-size:11px;}
body.page-restaurateurs-haccp .page-haccp-restauration .resto-final .button {font-size:11px;}
body.page-restaurateurs-haccp .page-haccp-restauration .resto-hero-visual .photo-frame {max-width:100%;}
@media (max-width:1150px) {
  /* Les trois traits sont superposes autour du meme centre pour le X. */
  body.page-restaurateurs-haccp .site-header .menu-toggle[aria-expanded="true"] > span:first-child {transform:translate(-50%,-50%) rotate(45deg);}
  body.page-restaurateurs-haccp .site-header .menu-toggle[aria-expanded="true"] > span:nth-child(2) {opacity:0;}
  body.page-restaurateurs-haccp .site-header .menu-toggle[aria-expanded="true"] > span:last-child {transform:translate(-50%,-50%) rotate(-45deg);}
}
@media (max-width:700px) {
  body.page-restaurateurs-haccp .page-haccp-restauration .resto-hero h1 {font-size:clamp(26px,7.2vw,31px);}
  body.page-restaurateurs-haccp .page-haccp-restauration .resto-final .button {max-width:none;}
  body.page-restaurateurs-haccp .page-haccp-restauration .resto-contact-panel .button {white-space:normal;overflow-wrap:anywhere;}
}

/* ============================================================
   CONTACT — CHARTE DU SITE, SUR LE HTML ORIGINAL UNIQUEMENT.
   Les IDs, contenus et scripts du formulaire restent inchangés.
   Un seul fichier CSS personnalisé pour toutes les pages.
   ============================================================ */
body.page-contact-original {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
}
body:is(.page-contact-original,.page-confirmation-original) .container {
  width: calc(100% - 96px);
  max-width: 1184px;
  padding: 0;
  margin-right: auto;
  margin-left: auto;
}
/* En-tête et menus Bootstrap conservés, seul leur habillage change. */
body:is(.page-contact-original,.page-confirmation-original) .top-bar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(252,253,255,.98);
  border-bottom: 1px solid #dfe7f0;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .row { margin: 0; }
body:is(.page-contact-original,.page-confirmation-original) .top-bar .col-lg-12 { padding: 0; width: 100%; max-width: none; flex: none; }
body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 91px;
  padding: 0;
  margin: 0;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  gap: 20px;
  background: transparent !important;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand {
  display: block;
  flex: 0 0 auto;
  padding: 0;
  margin: 0;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand h1 {
  margin: 0;
  font-family: var(--font);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 1.2px;
  line-height: 1.4;
  text-transform: uppercase;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand h6 {
  margin: 4px 0 0;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--muted);
  letter-spacing: 0;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand h6 strong { color: var(--primary); font-weight: 650; }
body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-collapse {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-end;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-nav {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 21px;
  padding: 0;
  margin: 0;
  list-style: none;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .nav-item { position: relative; padding: 0; margin: 0; list-style: none; }
body:is(.page-contact-original,.page-confirmation-original) .top-bar .nav-link {
  display: block;
  padding: 14px 0;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--ink);
  white-space: nowrap;
  text-transform: uppercase;
  border: 0;
  border-bottom: 1px solid transparent;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .nav-link:hover,
body:is(.page-contact-original,.page-confirmation-original) .top-bar .nav-link:focus-visible { color: var(--primary); border-bottom-color: var(--accent); }
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown-toggle::after { border: solid var(--primary); border-width: 0 1px 1px 0; padding: 2px; transform: rotate(45deg); margin: 0 0 2px 7px; vertical-align: middle; display: inline-block; content: ''; }
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 216px;
  max-width: 285px;
  padding: 7px 0;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 8px 25px rgba(23,60,100,.13);
  z-index: 200;
  display: none;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown-item {
  display: block;
  padding: 10px 13px;
  font-size: 11px;
  line-height: 1.5;
  white-space: normal;
  color: var(--ink);
  border: 0;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown-item:hover,
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown-item:focus-visible { background: var(--surface-tint); }
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown.show > .dropdown-menu,
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown-menu.show,
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown:hover > .dropdown-menu,
body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown:focus-within > .dropdown-menu { display: block; }
body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-toggler {
  display: none;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  padding: 5px;
  margin: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
}
body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-toggler-icon {
  display: block;
  width: 22px;
  height: 18px;
  margin: auto;
  background: linear-gradient(var(--primary),var(--primary)) center top / 22px 1px no-repeat,
              linear-gradient(var(--primary),var(--primary)) center / 22px 1px no-repeat,
              linear-gradient(var(--primary),var(--primary)) center bottom / 22px 1px no-repeat;
}
/* Bandeau de titre, dans le ton bleu marine des pages refondues. */
body.page-contact-original .global-page-header {
  background: var(--primary);
  padding: 47px 0 48px;
  color: var(--surface-soft);
  text-align: left;
}
body.page-contact-original .global-page-header .row { margin: 0; }
body.page-contact-original .global-page-header .col-md-12 { padding: 0; width: 100%; max-width: none; flex: none; }
body.page-contact-original .global-page-header .block { margin: 0; }
body.page-contact-original .global-page-header h2 {
  font-family: var(--font);
  font-size: clamp(30px, 3.6vw, 43px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -1.5px;
  color: #fff;
  text-align: left;
  margin: 0 0 18px;
}
body.page-contact-original .global-page-header .breadcrumb {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
  background: transparent;
  color: #d8e9f8;
  font-size: 11px;
}
body.page-contact-original .global-page-header .breadcrumb li { margin: 0; padding: 0; }
body.page-contact-original .global-page-header .breadcrumb a { color: #d8e9f8; font-size: 11px; }
body.page-contact-original .global-page-header .breadcrumb a:hover { text-decoration: underline; }
/* Formulaire d'origine, cinq champs et bouton inchangés. */
body.page-contact-original #contact-section { padding: 62px 0 68px; background: var(--paper); }
body.page-contact-original #contact-section > .container > .row:first-child {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .88fr);
  gap: 46px;
  margin: 0;
}
body.page-contact-original #contact-section > .container > .row:first-child > .col-md-6 {
  width: 100%;
  max-width: none;
  flex: none;
  min-width: 0;
  margin: 0 !important;
  padding: 0;
}
body.page-contact-original #contact-section .block,
body.page-contact-original #contact-section .map-area {
  min-width: 0;
  padding: 33px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  height: 100%;
}
body.page-contact-original #contact-section .map-area { background: var(--surface-soft); }
body.page-contact-original #contact-section .subtitle {
  margin: 0 0 15px;
  font-size: clamp(21px, 2.3vw, 29px);
  font-family: var(--font);
  letter-spacing: -.7px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink);
}
body.page-contact-original #contact-section .subtitle-des {
  margin: 0 0 24px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.8;
  color: var(--primary);
}
/* La phrase rose d'origine garde son texte et son attribut style. */
body.page-contact-original #contact-section .map-area .subtitle-des { margin-bottom: 20px; }
body.page-contact-original #contact-section #contact-form { display: grid; gap: 15px; margin: 0; }
body.page-contact-original #contact-section #contact-form .form-group { margin: 0; }
body.page-contact-original #contact-section #contact-form .form-control {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 49px;
  padding: 13px 15px;
  border-radius: 5px;
  background: var(--paper);
  border: 1px solid #c9d8e8;
  color: var(--ink);
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.5;
  box-shadow: none;
}
body.page-contact-original #contact-section #contact-form textarea.form-control { min-height: 144px; resize: vertical; }
body.page-contact-original #contact-section #contact-form .form-control:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent);
}
body.page-contact-original #contact-section #contact-submit,
body.page-contact-original #call-to-action .btn-contact {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 50px;
  padding: 14px 22px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: var(--primary);
  color: #fff;
  font-family: var(--font);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  white-space: normal;
  text-decoration: none;
  transition: background .18s, transform .18s;
}
body.page-contact-original #contact-section #contact-submit { width: 100%; }
body.page-contact-original #contact-section #contact-submit:hover { background: var(--primary-dark); }
body.page-contact-original #contact-section .map iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 360px;
  border: 1px solid var(--line) !important;
  border-radius: 6px;
  background: var(--surface-tint);
}
/* Les deux blocs téléphoniques et le CTA gardent leurs textes. */
body.page-contact-original #contact-section .address-details {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px;
  margin: 26px 0 0;
}
body.page-contact-original #contact-section .address-details > div { max-width: none; width: 100%; flex: none; padding: 0; }
body.page-contact-original #contact-section .address-details .address,
body.page-contact-original #contact-section .address-details .phone {
  min-height: 112px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  padding: 24px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
  border-radius: 7px;
}
body.page-contact-original #contact-section .address-details i {
  font-size: 30px;
  color: var(--accent);
  flex: 0 0 auto;
}
body.page-contact-original #contact-section .address-details h5 {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 500;
  color: var(--primary);
}
body.page-contact-original #call-to-action {
  background: var(--primary);
  color: var(--surface-soft);
  padding: 68px 0;
  text-align: left;
}
body.page-contact-original #call-to-action .row { margin: 0; }
body.page-contact-original #call-to-action .col-md-12 { max-width: none; padding: 0; flex: none; }
body.page-contact-original #call-to-action .block {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  grid-template-areas: 'title button' 'description button';
  column-gap: 48px;
  align-items: center;
}
body.page-contact-original #call-to-action h2 {
  grid-area: title;
  margin: 0 0 14px;
  color: #fff;
  font-size: clamp(29px,3vw,41px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -1px;
}
body.page-contact-original #call-to-action p {
  grid-area: description;
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: #dce9f7;
}
body.page-contact-original #call-to-action .btn-contact {
  grid-area: button;
  max-width: 450px;
  background: var(--surface-soft);
  color: var(--primary);
}
body.page-contact-original #call-to-action .btn-contact:hover { background: #fff; transform: translateY(-2px); }
body.page-contact-original #footer { background: var(--paper); padding: 42px 0 24px; border-top: 1px solid var(--line); }
body.page-contact-original #footer .row { display: grid; grid-template-columns: 1.7fr 1fr; gap: 28px; margin: 0; }
body.page-contact-original #footer .row > div { padding: 0; width: 100%; max-width: none; flex: none; text-align: left !important; }
body.page-contact-original #footer p,
body.page-contact-original #footer span { font-size: 11px; line-height: 1.9; color: var(--muted); }
body.page-contact-original #footer a { color: var(--primary); text-decoration: none; }
body.page-contact-original #footer a:hover { text-decoration: underline; }
body.page-contact-original #footer .col-md-4 > span,
body.page-contact-original #footer .col-md-4 > a { font-size: 12px; }
@media (max-width: 1150px) {
  body:is(.page-contact-original,.page-confirmation-original) .container { width: calc(100% - 64px); }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar { flex-wrap: wrap; min-height: 82px; column-gap: 12px; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-toggler { display: flex; order: -1; align-items: center; justify-content: center; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand { order: 0; margin-right: auto; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-collapse { order: 2; flex-basis: 100%; width: 100%; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-collapse:not(.show) { display: none !important; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-collapse.show { display: block !important; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar-nav { display: flex; flex-direction: column; gap: 0; align-items: stretch; padding: 8px 0 14px; max-height: calc(100dvh - 100px); overflow-y: auto; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .nav-link { padding: 9px 12px; border-bottom: 1px solid var(--line); font-size: 12px; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown-menu { position: static !important; float: none; width: 100%; max-width: none; box-shadow: none; border: 0; background: var(--surface-soft); padding: 4px 8px; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown-item { font-size: 11px; padding: 9px 16px; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown:not(.show) > .dropdown-menu { display: none; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .dropdown.show > .dropdown-menu { display: block; }
  body.page-contact-original #contact-section > .container > .row:first-child { gap: 25px; }
  body.page-contact-original #contact-section .block,
  body.page-contact-original #contact-section .map-area { padding: 25px; }
  body.page-contact-original #call-to-action .block { grid-template-columns: 1fr; grid-template-areas: 'title' 'description' 'button'; gap: 16px; }
}
@media (max-width: 740px) {
  body:is(.page-contact-original,.page-confirmation-original) .container { width: calc(100% - 40px); }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .navbar { min-height: 73px; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand h1 { font-size: 13px; letter-spacing: .6px; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand h6 { font-size: 9px; max-width: 250px; white-space: normal; }
  body.page-contact-original .global-page-header { padding: 32px 0 36px; }
  body.page-contact-original .global-page-header h2 { font-size: clamp(27px, 6.6vw, 35px); }
  body.page-contact-original #contact-section { padding: 38px 0 44px; }
  body.page-contact-original #contact-section > .container > .row:first-child { grid-template-columns: 1fr; gap: 23px; }
  body.page-contact-original #contact-section .block,
  body.page-contact-original #contact-section .map-area { padding: 22px; }
  body.page-contact-original #contact-section .subtitle { font-size: clamp(21px,5.5vw,27px); }
  body.page-contact-original #contact-section .map iframe { height: 290px; }
  body.page-contact-original #contact-section .address-details { grid-template-columns: 1fr; gap: 14px; }
  body.page-contact-original #call-to-action { padding: 48px 0; }
  body.page-contact-original #footer .row { grid-template-columns: 1fr; gap: 15px; }
}
@media (max-width: 380px) {
  body:is(.page-contact-original,.page-confirmation-original) .container { width: calc(100% - 28px); }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand h1 { font-size: 11px; }
  body:is(.page-contact-original,.page-confirmation-original) .top-bar .site-brand h6 { font-size: 8px; }
  body.page-contact-original #contact-section .block,
  body.page-contact-original #contact-section .map-area { padding: 19px 16px; }
  body.page-contact-original #contact-section .address-details .address,
  body.page-contact-original #contact-section .address-details .phone { padding: 17px; }
}

/* ===== Confirmation HACCP — habillage du HTML original, PHP/JS inchangés ===== */
body.page-confirmation-original #contact-section .page-validation-colonnes{margin:0;}
body.page-confirmation-original #contact-section .page-validation-colonnes > .col-md-6{
  flex:none;width:100%;max-width:none;padding:0;min-width:0;
}
body.page-confirmation-original #contact-section .page-validation-reglement{
  padding:26px 27px 30px;background:#fff;border:1px solid var(--line);
  border-radius:8px;box-shadow:0 2px 8px rgba(99,99,99,.14);
}
body.page-confirmation-original #contact-section .page-validation-reglement .subtitle{
  color:var(--primary);font-size:clamp(22px,2.2vw,29px);letter-spacing:-.5px;
  margin:0 0 18px;line-height:1.3;
}
body.page-confirmation-original #contact-section .page-validation-reglement li{
  color:var(--ink);font-size:13px;line-height:1.75;margin-bottom:7px;
}
body.page-confirmation-original #contact-section .page-validation-reglement .subtitle-des p{
  color:var(--ink);line-height:1.8;font-size:13px;margin-top:12px;
}
body.page-confirmation-original .page-inscription-recapitulatif .sidebar{padding-top:0!important;}
body.page-confirmation-original .page-inscription-recapitulatif .author.widget{
  background:var(--primary);border-color:var(--primary);color:#fff;
}
body.page-confirmation-original .page-inscription-recapitulatif .author.widget h3,
body.page-confirmation-original .page-inscription-recapitulatif .author.widget h4,
body.page-confirmation-original .page-inscription-recapitulatif .author.widget h5{color:#fff;}
body.page-confirmation-original .page-inscription-recapitulatif .author.widget li{color:var(--surface-soft);}
body.page-confirmation-original .page-inscription-recapitulatif .author.widget li:nth-child(-n+3) span{color:#c4dcf3;}
body.page-confirmation-original .page-validation-colonnes .author-bio ul{padding-left:19px;}
body.page-confirmation-original #contact-section .address-details{margin-left:0;margin-right:0;}
body.page-confirmation-original .page-validation-certification .row,
body.page-confirmation-original .page-validation-footer .row{margin-left:0;margin-right:0;}
body.page-confirmation-original .page-validation-footer .row > div{max-width:none;width:auto;flex:none;padding:0;}
@media(max-width:800px){
  body.page-confirmation-original #contact-section .page-validation-reglement{padding:22px 18px;}
}
