/* Contact V5: the illustrated introduction and the form share one compact stage.
   Scoped rules deliberately leave the other first-release pages untouched. */
body.p1-contact-page {
  --contact-ink:#102b36;
  --contact-copy:#426184;
  --contact-line:#e2ded5;
  --contact-paper:#faf8f5;
  background:#fcfaf6;
  overflow-x:clip;
  color:var(--contact-ink);
}
body.p1-contact-page .p1-main {max-width:1280px;padding:22px 36px 76px;position:relative;isolation:isolate;}
body.p1-contact-page .m-breadcrumb {display:none;}
body.p1-contact-page .p1-contact-flow {position:relative;}
body.p1-contact-page .p1-contact-flow::before,
body.p1-contact-page .p1-contact-flow::after {
  content:"";position:absolute;z-index:-1;pointer-events:none;
  background:url('/vendor/lfc/arc-en-ciel/images/hero-arc-peint-desktop-v10.webp') center/contain no-repeat;
}
body.p1-contact-page .p1-contact-flow::before {width:260px;height:350px;left:-180px;bottom:-75px;transform:rotate(-42deg);opacity:.58;}
body.p1-contact-page .p1-contact-flow::after {width:270px;height:440px;right:-230px;top:60px;transform:rotate(-8deg);opacity:.7;}
body.p1-contact-page .p1-contact-layout {max-width:none;grid-template-columns:320px minmax(0,1fr);gap:48px;align-items:start;}
body.p1-contact-page .p1-contact-aside {padding:18px 0 0;position:sticky;top:122px;}
body.p1-contact-page .p1-contact-aside .p1-intro-step {font-size:15px;color:var(--contact-copy);margin:0 0 17px;}
body.p1-contact-page .p1-contact-aside h2 {font-family:'LFC Baloo',sans-serif;font-size:42px;font-weight:500;line-height:1.12;letter-spacing:-.7px;color:#103e45;margin:0 0 19px;position:relative;}
body.p1-contact-page .p1-contact-aside h2::after {content:"";position:absolute;width:48px;height:52px;right:5px;top:-15px;background:url('/vendor/lfc/arc-en-ciel/svg/traits.svg') center/contain no-repeat;}
body.p1-contact-page .p1-contact-aside .p1-intro-copy {font-size:17px;line-height:1.65;max-width:none;margin:0;color:var(--contact-copy);}
body.p1-contact-page .p1-intro-art {position:relative;height:295px;margin:24px -12px 0;}
body.p1-contact-page .p1-intro-art img {display:block;width:310px;height:310px;object-fit:contain;}
body.p1-contact-page .p1-spark {display:block;width:27px;height:31px;background:center/contain no-repeat url('/vendor/lfc/arc-en-ciel/svg/etoile-beurre.svg');}
body.p1-contact-page .p1-spark-blue {background-image:url('/vendor/lfc/arc-en-ciel/svg/etoile-bleu.svg');}
body.p1-contact-page .p1-heart {font-size:31px;line-height:1;color:#ee9dcc;transform:rotate(-14deg);}
body.p1-contact-page .p1-intro-art .p1-spark-gold {position:absolute;right:0;top:-10px;transform:rotate(10deg);}
body.p1-contact-page .p1-intro-art .p1-spark-blue {position:absolute;right:-7px;bottom:14px;}
body.p1-contact-page .p1-intro-art .p1-heart {position:absolute;left:-8px;top:35px;}
body.p1-contact-page .p1-intro-bubble {position:relative;margin:-22px -4px 0 auto;width:190px;padding:26px 10px 15px;border-radius:50%;background:#f0f3e8;text-align:center;}
body.p1-contact-page .p1-intro-bubble p {font-size:13px;line-height:1.65;color:var(--contact-copy);margin:0 0 8px;max-width:none;}
body.p1-contact-page .p1-intro-bubble>span {color:#ee9dcc;font-size:21px;line-height:1;}
body.p1-contact-page [data-active-step="1"] .p1-intro-bubble,
body.p1-contact-page [data-active-step="2"] .p1-intro-bubble {width:230px;margin:-12px -4px 0 auto;padding:30px 16px 20px;}
body.p1-contact-page [data-active-step="1"] .p1-intro-bubble {background:#f9e7f2;}
body.p1-contact-page [data-active-step="2"] .p1-intro-bubble {background:#e8f1f6;}
body.p1-contact-page [data-active-step="1"] .p1-intro-bubble p,
body.p1-contact-page [data-active-step="2"] .p1-intro-bubble p {font-size:16px;}
body.p1-contact-page .p1-form-card {padding:28px 34px 30px;border-radius:20px;border:1px solid #f2f0ec;background:white;box-shadow:0 9px 32px #493d2b07;}
body.p1-contact-page .p1-form-sheet {min-width:0;}
body.p1-contact-page .p1-mobile-intro {display:none;}
body.p1-contact-page .p1-progress ol {display:flex;gap:20px;margin:0 0 28px;padding:0;}
body.p1-contact-page .p1-progress li {position:relative;flex:1;}
body.p1-contact-page .p1-progress li:not(:last-child)::after {content:"";height:1px;background:#d0dfe9;position:absolute;top:21px;left:calc(100% - 18px);width:32px;}
body.p1-contact-page .p1-progress button {font-size:12px;gap:10px;line-height:1.4;color:#547196;min-height:44px;}
body.p1-contact-page .p1-progress button>span {font-size:14px;width:34px;height:34px;color:#294965;border:1px solid #bcd0e6;}
body.p1-contact-page .p1-progress [aria-current] {color:#507b27;}
body.p1-contact-page .p1-progress [aria-current]>span {color:white;background:linear-gradient(140deg,#a5c96d,#7dac40);border-color:#91b857;}
body.p1-contact-page .p1-progress .is-complete>span {background:#c4dda1;color:#23451b;border-color:#abc879;font-size:19px;}
body.p1-contact-page .p1-required {border:0;padding:0;font-size:10px;line-height:1.6;margin:0 0 16px;color:#526b8c;}
body.p1-contact-page .p1-step h2 {font-family:'LFC Inter',Arial,sans-serif;font-size:27px;font-weight:600;line-height:1.3;letter-spacing:-.7px;color:#102539;margin:0 0 24px;text-wrap:initial;}
body.p1-contact-page .p1-fields {gap:19px 24px;align-items:start;}
body.p1-contact-page .p1-field>label,
body.p1-contact-page .p1-days legend,
body.p1-contact-page .p1-born legend,
body.p1-contact-page .p1-sex legend {font-size:14px;font-weight:500;line-height:1.5;color:#173f61;margin:0 0 7px;}
body.p1-contact-page .p1-field small {float:right;color:#526b8c;font-size:11px;line-height:21px;}
body.p1-contact-page .p1-field input,
body.p1-contact-page .p1-field select,
body.p1-contact-page .p1-field textarea {font-family:'LFC Inter',Arial,sans-serif;background:var(--contact-paper);min-height:46px;padding:10px 13px;border:1px solid var(--contact-line);border-radius:8px;font-size:15px;line-height:1.5;color:#173653;box-shadow:0 1px 2px #30261203;}
body.p1-contact-page .p1-field input::placeholder {color:#526b8c;opacity:1;}
body.p1-contact-page .p1-field input:focus,
body.p1-contact-page .p1-field select:focus,
body.p1-contact-page .p1-field textarea:focus {border-color:#84a958;}
body.p1-contact-page .p1-hint {font-size:11px;line-height:1.5;color:#526b8c;margin:7px 0 0;}
body.p1-contact-page .p1-date {position:relative;}
body.p1-contact-page .p1-date>span {display:none;pointer-events:none;position:absolute;left:14px;top:12px;color:#526b8c;font-size:14px;line-height:22px;}
body.p1-contact-page .p1-date[data-empty=true]:not(:focus-within)>span {display:block;}
body.p1-contact-page .p1-date[data-empty=true]:not(:focus-within) input::-webkit-datetime-edit {color:transparent;}
body.p1-contact-page .p1-days {margin:28px 0 0;}
body.p1-contact-page .p1-days>div {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
body.p1-contact-page .p1-days label>span:not(.p1-sr) {text-align:center;background:var(--contact-paper);padding:11px 4px;border-color:var(--contact-line);border-radius:8px;font-size:14px;min-height:46px;}
body.p1-contact-page .p1-days label>.p1-sr {border:0;padding:0;min-height:0;}
body.p1-contact-page .p1-days .p1-hint {margin:10px 0 0;}
body.p1-contact-page .p1-born {margin:0 0 23px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
body.p1-contact-page .p1-born legend {float:left;margin:0 24px 0 0;padding:11px 0;}
body.p1-contact-page .p1-born>.p1-error {width:100%;}
body.p1-contact-page .p1-choices {gap:16px;flex-wrap:nowrap;}
body.p1-contact-page .p1-choices span {border:0;background:none;display:flex;align-items:center;gap:7px;padding:10px 0;font-size:13px;min-height:44px;white-space:nowrap;}
body.p1-contact-page .p1-choices span::before {content:"";width:21px;height:21px;flex:none;border-radius:50%;border:1px solid #a1b9d2;background:white;box-shadow:inset 0 0 0 3px white;}
body.p1-contact-page .p1-choices input:checked+span {color:#23411b;background:none;}
body.p1-contact-page .p1-choices input:checked+span::before {background:#86ad4f;border-color:#789d41;}
body.p1-contact-page .p1-days input:checked+span {background:#edf3e2;border-color:#8ead5b;color:#29451d;}
body.p1-contact-page .p1-sex {padding:0;margin:0;border:0;}
body.p1-contact-page .p1-sex .p1-choices {gap:11px;}
body.p1-contact-page .p1-sex .p1-choices span {font-size:12px;gap:5px;}
body.p1-contact-page .p1-phone {display:grid;grid-template-columns:1fr 1fr;gap:16px;}
body.p1-contact-page .p1-phone select,body.p1-contact-page .p1-phone input {width:100%;}
body.p1-contact-page .p1-phone select {font-size:13px;}
body.p1-contact-page .p1-parent2,
body.p1-contact-page .p1-message {background:#f3f6ee;border:1px solid #e4e9db;padding:0;border-radius:9px;margin:22px 0 0;}
body.p1-contact-page .p1-message {background:transparent;border-color:#efeee9;margin-top:12px;}
body.p1-contact-page .p1-parent2 summary,
body.p1-contact-page .p1-message summary {display:flex;align-items:center;gap:9px;list-style:none;padding:12px 14px;font:500 12px/1.5 'LFC Inter',Arial,sans-serif;min-height:46px;}
body.p1-contact-page .p1-parent2 summary::-webkit-details-marker,
body.p1-contact-page .p1-message summary::-webkit-details-marker {display:none;}
body.p1-contact-page .p1-parent2 summary::before,
body.p1-contact-page .p1-message summary::before {content:"+";font-size:21px;line-height:1;color:#759943;}
body.p1-contact-page .p1-parent2[open]>summary::before,
body.p1-contact-page .p1-message[open]>summary::before {content:"−";}
body.p1-contact-page .p1-parent2 summary span,
body.p1-contact-page .p1-message summary span {margin-left:auto;color:#526b8c;font-size:11px;font-weight:400;}
body.p1-contact-page .p1-parent2>p {font-size:12px;line-height:1.7;padding:0 16px;margin:0 0 18px;}
body.p1-contact-page .p1-parent2>.p1-fields {padding:0 16px 18px;}
body.p1-contact-page .p1-message>.p1-field {padding:0 14px 16px;}
body.p1-contact-page .p1-data-note {font-size:11px;line-height:1.5;color:#526b8c;margin:12px 0 15px;}
body.p1-contact-page .p1-privacy {background:none;padding:0;margin:0;}
body.p1-contact-page .p1-privacy label {font-size:13px;line-height:1.65;gap:10px;color:#294f78;}
body.p1-contact-page .p1-privacy input {width:20px;height:20px;margin-top:1px;accent-color:#83a953;}
body.p1-contact-page .p1-privacy a {color:inherit;}
body.p1-contact-page .p1-actions {border:0;padding:0;margin:30px 0 0;gap:16px;}
body.p1-contact-page [data-active-step="0"] .p1-actions {margin-top:40px;}
body.p1-contact-page .p1-button {min-width:235px;min-height:50px;border:0;border-radius:10px;padding:13px 24px;background:linear-gradient(110deg,#b4d191,#aaca7f);color:#142e30;font:500 15px/1.5 'LFC Inter',Arial,sans-serif;gap:18px;box-shadow:none;}
body.p1-contact-page .p1-button:hover {background:#a2c576;}
body.p1-contact-page .p1-back {font-size:13px;color:#294a63;min-height:46px;}
body.p1-contact-page .p1-submit-note {margin:8px 0 0;text-align:right;font-size:11px;color:#526b8c;}
body.p1-contact-page .p1-call-option {text-align:center;font-size:13px;color:#526b8c;border-top:1px solid #d6e1e9;margin-top:25px;padding-top:18px;}
body.p1-contact-page .p1-call-option a {font-weight:600;color:#132f49;white-space:nowrap;}
body.p1-contact-page [data-active-step="1"] .p1-call-option,
body.p1-contact-page [data-active-step="2"] .p1-call-option {display:none;}
body.p1-contact-page .p1-field [aria-invalid=true] {border-color:#ba4848;background:#fff7f5;}
body.p1-contact-page .has-error.p1-born .p1-choices span::before {border-color:#ba4848;}
body.p1-contact-page .p1-error-summary {margin-bottom:22px;}
body.p1-contact-page .p1-privacy.has-error {padding:10px;border-radius:8px;}
@media(max-width:1100px) and (min-width:761px) {
  body.p1-contact-page .p1-main {padding-inline:26px;}
  body.p1-contact-page .p1-contact-layout {grid-template-columns:240px minmax(0,1fr);gap:30px;}
  body.p1-contact-page .p1-contact-aside h2 {font-size:36px;}
  body.p1-contact-page .p1-intro-art {height:245px;}
  body.p1-contact-page .p1-intro-art img {width:260px;height:260px;}
  body.p1-contact-page .p1-form-card {padding:24px;}
  body.p1-contact-page .p1-progress ol {gap:12px;}
  body.p1-contact-page .p1-progress button {flex-direction:column;font-size:11px;gap:6px;}
  body.p1-contact-page .p1-progress li:not(:last-child)::after {left:65%;width:75%;top:17px;}
  body.p1-contact-page .p1-fields {column-gap:14px;}
  body.p1-contact-page .p1-sex {grid-column:1/-1;}
  body.p1-contact-page .p1-intro-bubble {max-width:100%;}
}
@media(max-width:760px) {
  body.p1-contact-page {background:#fff;}
  body.p1-contact-page .p1-main {padding:8px 12px 40px;overflow:hidden;}
  body.p1-contact-page .p1-contact-layout {display:block;}
  body.p1-contact-page .p1-contact-aside {display:none;}
  body.p1-contact-page .p1-contact-flow::before,body.p1-contact-page .p1-contact-flow::after {display:none;}
  body.p1-contact-page .p1-form-card {padding:0;border:0;background:none;border-radius:0;box-shadow:none;}
  body.p1-contact-page .p1-progress ol {margin:0 6px 25px;gap:8px;}
  body.p1-contact-page .p1-progress button {flex-direction:column;gap:10px;width:100%;font-size:12px;line-height:1.5;}
  body.p1-contact-page .p1-progress button>span {width:34px;height:34px;font-size:16px;}
  body.p1-contact-page .p1-progress li:not(:last-child)::after {top:17px;left:calc(50% + 24px);width:calc(100% - 40px);}
  body.p1-contact-page .p1-form-sheet {padding:22px 22px 78px;border:1px solid #eeede8;border-radius:22px;box-shadow:0 4px 18px #483b2703;position:relative;isolation:isolate;overflow:hidden;background:#fff;}
  body.p1-contact-page .p1-form-sheet::before {content:"";position:absolute;z-index:-1;pointer-events:none;bottom:-136px;left:-115px;width:220px;height:290px;transform:rotate(-34deg);opacity:.55;background:url('/vendor/lfc/arc-en-ciel/images/hero-arc-peint-mobile-v10.webp') center/contain no-repeat;}
  body.p1-contact-page .p1-form-sheet::after {content:"♥     ✦     ★";white-space:pre;position:absolute;pointer-events:none;bottom:19px;right:28px;letter-spacing:8px;color:#edb2d3;font-size:24px;}
  body.p1-contact-page .p1-mobile-intro {display:block;text-align:center;position:relative;padding:0 12px 22px;margin-bottom:23px;border-bottom:1px solid #f1f0eb;}
  body.p1-contact-page .p1-mobile-intro h2 {font:600 26px/1.25 'LFC Inter',Arial,sans-serif;letter-spacing:-.7px;color:#152445;margin:0 0 13px;text-wrap:balance;}
  body.p1-contact-page .p1-mobile-intro p {font-size:14px;line-height:1.7;color:#526b8c;margin:0;}
  body.p1-contact-page .p1-mobile-intro .p1-heart {position:absolute;left:-6px;top:3px;font-size:24px;}
  body.p1-contact-page .p1-mobile-intro .p1-spark {position:absolute;right:-11px;top:0;width:21px;height:26px;}
  body.p1-contact-page [data-active-step="1"] .p1-mobile-intro,
  body.p1-contact-page [data-active-step="2"] .p1-mobile-intro {display:none;}
  body.p1-contact-page .p1-required {font-size:9px;line-height:1.5;margin:0 0 16px;}
  body.p1-contact-page .p1-step h2 {font-size:24px;line-height:1.3;margin:0 0 21px;color:#152445;}
  body.p1-contact-page [data-active-step="1"] .p1-step h2,
  body.p1-contact-page [data-active-step="2"] .p1-step h2 {text-align:center;font-size:26px;margin-bottom:24px;}
  body.p1-contact-page .p1-fields {grid-template-columns:1fr;gap:21px;}
  body.p1-contact-page .p1-field>label,body.p1-contact-page .p1-days legend,body.p1-contact-page .p1-born legend,body.p1-contact-page .p1-sex legend {font-size:14px;color:#182840;margin-bottom:8px;}
  body.p1-contact-page .p1-field input,body.p1-contact-page .p1-field select,body.p1-contact-page .p1-field textarea {min-height:46px;font-size:16px;}
  body.p1-contact-page .p1-date>span {font-size:16px;}
  body.p1-contact-page .p1-days {margin-top:29px;}
  body.p1-contact-page .p1-days>div {gap:7px;}
  body.p1-contact-page .p1-days label>span:not(.p1-sr) {font-size:12px;padding-inline:2px;}
  body.p1-contact-page .p1-days .p1-hint {font-style:italic;font-size:12px;margin-top:9px;}
  body.p1-contact-page .p1-born {display:block;margin:0 0 22px;}
  body.p1-contact-page .p1-born legend {float:none;margin:0 0 8px;padding:0;}
  body.p1-contact-page .p1-choices {display:grid;grid-template-columns:1fr 1fr;gap:9px;}
  body.p1-contact-page .p1-choices span {border:1px solid var(--contact-line);background:var(--contact-paper);border-radius:8px;justify-content:flex-start;padding:10px 11px;font-size:14px;min-height:46px;}
  body.p1-contact-page .p1-choices input:checked+span {background:#f4f7ec;border-color:#a0b777;}
  body.p1-contact-page .p1-sex .p1-choices {grid-template-columns:auto auto 1fr;gap:6px;}
  body.p1-contact-page .p1-sex .p1-choices span {font-size:12px;padding:10px 5px;gap:4px;}
  body.p1-contact-page .p1-sex .p1-choices span::before {width:17px;height:17px;}
  body.p1-contact-page .p1-phone {grid-template-columns:1fr;gap:7px;}
  body.p1-contact-page .p1-phone select {font-size:14px;}
  body.p1-contact-page .p1-hint {font-size:11px;}
  body.p1-contact-page .p1-parent2 summary,body.p1-contact-page .p1-message summary {padding:10px;font-size:11px;gap:7px;}
  body.p1-contact-page .p1-parent2 summary span,body.p1-contact-page .p1-message summary span {font-size:10px;margin:0 0 0 auto;}
  body.p1-contact-page .p1-privacy label {font-size:12px;line-height:1.6;color:#223650;}
  body.p1-contact-page .p1-actions {flex-wrap:nowrap;margin-top:27px;gap:12px;}
  body.p1-contact-page .p1-button {min-width:0;min-height:49px;font-size:14px;gap:10px;padding:12px 17px;}
  body.p1-contact-page [data-active-step="0"] .p1-button {width:100%;font-size:17px;}
  body.p1-contact-page [data-active-step="0"] .p1-actions {margin-top:34px;}
  body.p1-contact-page .p1-back {font-size:12px;white-space:nowrap;}
  body.p1-contact-page .p1-actions #form-submit {width:auto;order:initial;flex:1;padding-inline:10px;font-size:12px;}
  body.p1-contact-page .p1-actions:has(#form-submit:not([hidden])) #form-back {order:initial;}
  body.p1-contact-page .p1-call-option {border:0;margin-top:24px;padding:0;}
  body.p1-contact-page .p1-call-option span {display:flex;align-items:center;gap:12px;font-size:13px;}
  body.p1-contact-page .p1-call-option span::before,body.p1-contact-page .p1-call-option span::after {content:"";height:1px;background:#cfdae8;flex:1;}
  body.p1-contact-page .p1-call-option a {display:block;font-size:22px;margin:12px 0 0;text-decoration:none;}
  body.p1-contact-page .p1-submit-note {font-size:10px;margin-top:9px;text-align:center;}
}
@media(max-width:350px) {
  body.p1-contact-page .p1-main {padding-inline:8px;}
  body.p1-contact-page .p1-form-sheet {padding-inline:15px;}
  body.p1-contact-page .p1-mobile-intro h2 {font-size:24px;}
}
/* Clip only decorative overflow, outside the fully padded interaction area. */
body.p1-contact-page .p1-main {overflow:clip;}
body.p1-contact-page .p1-form-sheet {overflow:clip;}
body.p1-contact-page .p1-parent2,body.p1-contact-page .p1-message {overflow:clip;}
body.p1-contact-page .p1-progress button>span,
body.p1-contact-page .p1-days label>span:not(.p1-sr),
body.p1-contact-page .p1-choices span,
body.p1-contact-page .p1-choices span::before {transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;}
body.p1-contact-page .p1-button {transition:background-color .2s ease,box-shadow .2s ease,transform .18s ease;}
body.p1-contact-page .p1-button:hover {transform:translateY(-1px);box-shadow:0 5px 12px #6d8f3020;}
body.p1-contact-page .p1-button:active {transform:translateY(0);box-shadow:none;}
@media(prefers-reduced-motion:reduce) {
  body.p1-contact-page .p1-button:hover {transform:none;}
}
/* Tom #1886 and capture of 2026-10-10: remove useless desktop margins (review note row, gaps around the stepper and actions, empty space under the card). */
@media(min-width:761px) {
  body.p1-contact-page .p1-main {max-width:1400px;padding:30px 48px 44px;}
  body.p1-contact-page .p1-contact-aside {padding-top:10px;}
  body.p1-contact-page .p1-progress ol {margin-bottom:20px;}
  body.p1-contact-page .p1-required {margin-bottom:10px;}
  body.p1-contact-page .p1-step h2 {margin-bottom:20px;}
  body.p1-contact-page [data-active-step="0"] .p1-actions {margin-top:26px;}
  body.p1-contact-page .p1-call-option {margin-top:20px;padding-top:14px;}
  body.p1-contact-page .p1-intro-art {height:250px;margin-top:18px;}
  body.p1-contact-page .p1-intro-art img {width:270px;height:270px;}
  body.p1-contact-page .p1-intro-bubble {margin-top:-46px;}
}
/* Tom 2026-10-12, "petits bugs à gauche" (desktop): decor arcs cut by a hard edge, stars and heart floating away
   from the shrunken illustration, quote bubble covering the characters, stepper connectors detached or crossing circles. */
@media(min-width:761px) {
  html:has(> body.p1-contact-page) {overflow-x:clip;}
  body.p1-contact-page .p1-main {overflow-x:visible;overflow-y:clip;}
  body.p1-contact-page .p1-intro-art {width:fit-content;height:240px;margin:6px 0 0 -6px;}
  body.p1-contact-page .p1-intro-art .p1-spark-gold {right:6px;top:14px;}
  body.p1-contact-page .p1-intro-art .p1-spark-blue {right:-12px;bottom:58px;}
  body.p1-contact-page .p1-intro-art .p1-heart {left:-2px;top:44px;}
  body.p1-contact-page .p1-contact-flow .p1-intro-bubble {margin-top:-4px;}
  body.p1-contact-page .p1-contact-flow::before {bottom:-20px;}
}
@media(min-width:1101px) {
  body.p1-contact-page .p1-progress ol {gap:14px;}
  body.p1-contact-page .p1-progress li {display:flex;align-items:center;gap:14px;}
  body.p1-contact-page .p1-progress li:last-child {flex:0 0 auto;}
  body.p1-contact-page .p1-progress li:not(:last-child)::after {position:static;flex:1;width:auto;min-width:16px;}
}
@media(max-width:1100px) and (min-width:761px) {
  body.p1-contact-page .p1-progress button {width:100%;}
  body.p1-contact-page .p1-contact-aside h2::after {width:38px;height:42px;right:0;top:-44px;}
  body.p1-contact-page .p1-progress li:not(:last-child)::after {top:17px;left:calc(50% + 25px);width:calc(100% - 38px);}
}
/* Recette navigateur 2026-10-12 (matrice Playwright) : messages d'erreur lisibles, aucun zoom automatique d'iOS. */
body.p1-contact-page .p1-error {font-size:13px;line-height:1.5;}
body.p1-contact-page .p1-error-summary {font-size:14px;line-height:1.5;}
@media(max-width:760px) {
  /* iOS zooms into any control under 16 px: the dialling-code selects were at 14 px. */
  body.p1-contact-page .p1-phone select {font-size:16px;}
}
@media(pointer:coarse) {
  /* Same rule for phones in landscape and tablets wider than 760 px. */
  body.p1-contact-page .p1-field input,body.p1-contact-page .p1-field select,body.p1-contact-page .p1-field textarea,body.p1-contact-page .p1-phone select {font-size:16px;}
}
@media(prefers-reduced-motion:reduce) {
  /* WebKit still ran font-size/colour transitions on the step change (intro quote, buttons): nothing moves at all. */
  body.p1-contact-page .p1-contact-flow *,body.p1-contact-page .p1-contact-flow *::before,body.p1-contact-page .p1-contact-flow *::after {transition:none!important;animation:none!important;}
}

/* Common mobile scale (docs/design/revue-mobile-2026-10-12.md, validated by Tom on 2026-10-12): titles in Baloo at the
   H2 size, small print raised to 12 px and hints to 14 px, 16 px button labels. Field sizes are untouched
   (16 px minimum against the iOS zoom) and the desktop is unchanged. */
@media(max-width:600px) {
  body.p1-contact-page .p1-mobile-intro h2,
  body.p1-contact-page .p1-step h2,
  body.p1-contact-page [data-active-step="1"] .p1-step h2,
  body.p1-contact-page [data-active-step="2"] .p1-step h2 {font-family:'LFC Baloo',sans-serif;font-weight:700;font-size:var(--lfc-m-h2,clamp(25px,7vw,28px));line-height:1.15;letter-spacing:-.02em;}
  body.p1-contact-page .p1-required,body.p1-contact-page .p1-field small {font-size:12px;}
  body.p1-contact-page .p1-hint,
  body.p1-contact-page .p1-days .p1-hint {font-size:14px;line-height:1.45;}
  body.p1-contact-page .p1-message summary {font-size:14px;}
  body.p1-contact-page .p1-submit-note {font-size:12px;line-height:1.45;}
  body.p1-contact-page .p1-button {font-size:16px;}
}
