/* V100 — expérience invités et configuration dédiée. */
/* V99 — design system site invités + configuration back office               */
/* ========================================================================== */
:root{
  --guest-blue:#18347B;
  --guest-green:#88952C;
  --guest-gold:#D8A82D;
  --guest-terracotta:#E29035;
  --guest-orange:#F06F16;
  --guest-ivory:#FCF8F1;
  --guest-paper:#FFFDF8;
  --guest-ink:#18347B;
  --guest-line:rgba(24,52,123,.16);
  --guest-radius:16px;
  --guest-serif:'Didot LP','Didot','Bodoni 72','Bodoni MT','Baskerville','Times New Roman',serif;
  --guest-script:'Citadel Script','Snell Roundhand','Apple Chancery','Segoe Script','Brush Script MT',cursive;
}

/* Autocomplétion d'adresse — commune au back et au front. */
.address-autocomplete-results{
  position:absolute;
  z-index:2500;
  top:calc(100% + 6px);
  left:0;
  right:0;
  max-height:280px;
  overflow:auto;
  padding:6px;
  border:1px solid #d8dde6;
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 42px rgba(21,30,48,.16);
}
.address-autocomplete-results[hidden]{display:none!important}
.address-autocomplete-option{
  width:100%;
  padding:10px 11px;
  display:grid;
  gap:2px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#202738;
  text-align:left;
  cursor:pointer;
}
.address-autocomplete-option:hover,.address-autocomplete-option.is-active{background:#f3f6fb}
.address-autocomplete-option strong{font-size:12px;font-weight:700;line-height:1.35}
.address-autocomplete-option small{color:#6f7787;font-size:10px;line-height:1.35}

/* Back office : écran Site invités, structure stable et lisible. */
.guest-portal-modal-v99{
  width:min(1040px,calc(100vw - 24px))!important;
  max-width:1040px!important;
  max-height:calc(100svh - 24px)!important;
  overflow:hidden!important;
  border-radius:18px!important;
}
.guest-portal-v99-head{
  padding:20px 22px!important;
  align-items:flex-start!important;
  border-bottom:1px solid var(--jj-line)!important;
}
.guest-portal-v99-head h3{margin:3px 0 0!important;font-size:24px!important}
.guest-portal-v99-head p{margin:5px 0 0!important;color:var(--muted)!important;font-size:12px!important}
.guest-portal-v99-head-actions{display:flex!important;align-items:center!important;gap:8px!important}
.guest-portal-v99-body{display:grid!important;gap:12px!important;padding:16px 20px 22px!important;background:#f6f5f2!important}
.portal-v99-card,.portal-v99-links{
  border:1px solid var(--jj-line)!important;
  border-radius:14px!important;
  background:#fff!important;
}
.portal-v99-card{padding:18px!important}
.portal-v99-card-primary{border-color:#d4ddec!important;box-shadow:0 8px 24px rgba(24,52,123,.04)!important}
.portal-v99-card-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:16px!important;margin-bottom:14px!important}
.portal-v99-card-head small,.portal-v99-links summary small{display:block!important;margin-bottom:3px!important;color:var(--blue)!important;font-size:9px!important;font-weight:850!important;letter-spacing:.1em!important;text-transform:uppercase!important}
.portal-v99-card-head strong,.portal-v99-links summary strong{display:block!important;font-size:15px!important}
.portal-v99-card-head>span{color:var(--muted)!important;font-size:10.5px!important}
.portal-v99-visibility-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important}
.portal-v99-group{min-width:0;padding:13px;border:1px solid #ebe8e2;border-radius:12px;background:#fcfbf9}
.portal-v99-group h4{margin:0 0 8px!important;color:var(--muted)!important;font-size:10px!important;letter-spacing:.08em!important;text-transform:uppercase!important}
.portal-v99-switch,.portal-v99-fixed{
  position:relative!important;
  min-height:58px!important;
  padding:9px 10px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  border-top:1px solid #eeeae5!important;
}
.portal-v99-group>:nth-child(2){border-top:0!important}
.portal-v99-switch{cursor:pointer!important}
.portal-v99-switch>span,.portal-v99-fixed>span{min-width:0!important;display:grid!important;gap:2px!important}
.portal-v99-switch strong,.portal-v99-fixed strong{font-size:12px!important}
.portal-v99-switch small,.portal-v99-fixed small{color:var(--muted)!important;font-size:10px!important;line-height:1.35!important}
.portal-v99-switch input{position:absolute!important;opacity:0!important;pointer-events:none!important}
.portal-v99-switch i{
  position:relative!important;
  width:42px!important;
  height:24px!important;
  flex:0 0 42px!important;
  border-radius:999px!important;
  background:#ddd9d3!important;
  transition:.16s ease!important;
}
.portal-v99-switch i::after{
  content:''!important;
  position:absolute!important;
  top:3px!important;left:3px!important;
  width:18px!important;height:18px!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:0 1px 4px rgba(0,0,0,.18)!important;
  transition:.16s ease!important;
}
.portal-v99-switch input:checked+i{background:var(--blue)!important}
.portal-v99-switch input:checked+i::after{transform:translateX(18px)!important}
.portal-v99-switch:focus-within i{outline:3px solid rgba(20,87,200,.12)!important;outline-offset:2px!important}
.portal-v99-fixed b{padding:5px 8px;border-radius:999px;background:#eef2e3;color:#66711f;font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.portal-v99-publication-grid{display:grid!important;grid-template-columns:1.15fr 1fr 1fr!important;gap:10px!important}
.portal-v99-publication-grid .field{margin:0!important}
.portal-v99-state{display:flex!important;gap:8px!important;align-items:center!important;flex-wrap:wrap!important;margin-top:12px!important;padding-top:12px!important;border-top:1px solid #eeeae5!important;font-size:11px!important}
.portal-v99-state span{color:var(--muted)!important}
.portal-v99-source-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
.portal-v99-source{min-height:64px!important;padding:12px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;border:1px solid #e7e4de!important;border-radius:11px!important;background:#fff!important;color:var(--text)!important;text-align:left!important;cursor:pointer!important}
.portal-v99-source:hover{border-color:#d1d9e6!important;background:#fafbfd!important}
.portal-v99-source span{display:grid!important;gap:3px!important}.portal-v99-source strong{font-size:12px!important}.portal-v99-source small{color:var(--muted)!important;font-size:10.5px!important}.portal-v99-source b{color:var(--blue)!important;font-size:17px!important}
.portal-v99-details{margin-top:12px!important;padding-top:10px!important;border-top:1px solid #eeeae5!important}.portal-v99-details summary{cursor:pointer!important;color:var(--muted)!important;font-size:11px!important;font-weight:750!important}.portal-v99-details .field{margin-top:10px!important}
.portal-v99-links{overflow:hidden!important}.portal-v99-links summary{min-height:64px!important;padding:13px 17px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;cursor:pointer!important;list-style:none!important}.portal-v99-links summary::-webkit-details-marker{display:none!important}.portal-v99-links summary>span{color:var(--blue)!important;font-size:10px!important;font-weight:800!important;text-transform:uppercase!important}.portal-v99-links-body{padding:0 17px 17px!important;border-top:1px solid #eeeae5!important}.guest-portal-v99-footer{padding:11px 20px!important;border-top:1px solid var(--jj-line)!important}

/* Front office V99 : reset local, aucun héritage des anciens thèmes. */
#publicGate.v99-active{
  --g-blue:#18347B;
  --g-green:#88952C;
  --g-gold:#D8A82D;
  --g-terracotta:#E29035;
  --g-orange:#F06F16;
  --g-ivory:#FCF8F1;
  --g-paper:#FFFDF8;
  --g-line:rgba(24,52,123,.15);
  --g-serif:'Didot LP','Didot','Bodoni 72','Bodoni MT','Baskerville','Times New Roman',serif;
  --g-script:'Citadel Script','Snell Roundhand','Apple Chancery','Segoe Script','Brush Script MT',cursive;
  --g-sans:'DM Sans',Arial,Helvetica,sans-serif;
  position:fixed!important;
  inset:0!important;
  z-index:1000!important;
  display:block!important;
  overflow:auto!important;
  padding:0!important;
  background:var(--g-ivory)!important;
  color:#24334e!important;
  scroll-behavior:smooth!important;
}
#publicGate.v99-active .public-shell,#publicGate.v99-active #publicContent{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important}
#publicGate.v99-active .v99-site{width:100%!important;min-height:100%!important;background:var(--g-ivory)!important;font-family:'DM Sans',Arial,Helvetica,sans-serif!important}
#publicGate.v99-active .v99-skip{position:absolute!important;left:16px!important;top:-80px!important;z-index:500!important;padding:10px 14px!important;border-radius:8px!important;background:var(--g-blue)!important;color:#fff!important}.v99-skip:focus{top:10px!important}
#publicGate.v99-active .v99-nav{
  position:sticky!important;top:0!important;z-index:150!important;
  min-height:70px!important;padding:0 clamp(18px,4vw,64px)!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:24px!important;
  border-bottom:1px solid var(--g-line)!important;background:rgba(251,247,237,.96)!important;
  backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;
}
#publicGate.v99-active .v99-brand{flex:0 0 auto!important;color:var(--g-blue)!important;text-decoration:none!important;font-family:var(--g-serif)!important;font-size:18px!important;letter-spacing:.04em!important;white-space:nowrap!important}
#publicGate.v99-active .v99-brand span{font-family:var(--g-script)!important;font-size:1.15em!important;font-weight:400!important;text-transform:lowercase!important}
#publicGate.v99-active .v99-nav>div{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important;flex-wrap:wrap!important}
#publicGate.v99-active .v99-nav>div a{min-height:38px!important;padding:0 13px!important;display:inline-flex!important;align-items:center!important;border:1px solid transparent!important;border-radius:999px!important;color:var(--g-blue)!important;background:transparent!important;text-decoration:none!important;font-size:11px!important;font-weight:800!important;transition:.15s ease!important}
#publicGate.v99-active .v99-nav>div a:hover,#publicGate.v99-active .v99-nav>div a:focus-visible{border-color:var(--g-line)!important;background:#fff!important;outline:0!important}
#publicGate.v99-active .v99-nav>div a.is-active{background:var(--g-blue)!important;color:#fff!important;border-color:var(--g-blue)!important}
#publicGate.v99-active .v99-hero{min-height:480px!important;padding:72px 22px 80px!important;display:grid!important;place-items:center!important;border-bottom:1px solid var(--g-line)!important;background:var(--g-ivory)!important;scroll-margin-top:84px!important}
#publicGate.v99-active .v99-hero>div{width:min(1050px,100%)!important;text-align:center!important}
#publicGate.v99-active .v99-hero h1{margin:0!important;display:flex!important;align-items:baseline!important;justify-content:center!important;gap:clamp(12px,2vw,28px)!important;color:var(--g-blue)!important;font-family:var(--g-serif)!important;font-size:clamp(44px,6.4vw,92px)!important;font-weight:400!important;line-height:1!important;letter-spacing:.16em!important;text-transform:uppercase!important}
#publicGate.v99-active .v99-hero h1 em{font-family:var(--g-script)!important;font-size:.55em!important;font-style:normal!important;font-weight:400!important;letter-spacing:0!important;text-transform:lowercase!important}
#publicGate.v99-active .v99-hero p{margin:24px 0 0!important;color:var(--g-blue)!important;font-family:var(--g-serif)!important;font-size:clamp(14px,1.4vw,20px)!important;letter-spacing:.02em!important}
#publicGate.v99-active .v99-hero strong{display:block!important;margin-top:20px!important;color:var(--g-blue)!important;font-family:var(--g-serif)!important;font-size:clamp(17px,2vw,28px)!important;font-weight:400!important;letter-spacing:.24em!important;text-transform:uppercase!important}
#publicGate.v99-active .v99-section{scroll-margin-top:84px!important;border-bottom:1px solid var(--g-line)!important;background:var(--g-paper)!important}
#publicGate.v99-active .v99-section-soft{background:#F7F5EB!important}
#publicGate.v99-active .v99-section-blue{background:var(--g-blue)!important;color:#fff!important}
#publicGate.v99-active .v99-shell{width:min(1360px,100%)!important;margin:0 auto!important;padding:clamp(54px,7vw,92px) clamp(20px,5vw,70px)!important}
#publicGate.v99-active .v99-section-head{margin:0 0 28px!important;padding:0 0 16px!important;display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:20px!important;border-bottom:1px solid var(--g-line)!important}
#publicGate.v99-active .v99-section-head h2{margin:0!important;color:var(--g-blue)!important;font-family:var(--g-serif)!important;font-size:clamp(34px,4vw,56px)!important;font-weight:400!important;line-height:1.04!important}
#publicGate.v99-active .v99-section-head small{color:var(--g-gold)!important;font-size:11px!important;font-weight:800!important}
#publicGate.v99-active .v99-section-blue .v99-section-head{border-color:rgba(255,255,255,.2)!important}#publicGate.v99-active .v99-section-blue .v99-section-head h2{color:#fff!important}#publicGate.v99-active .v99-section-blue .v99-section-head small{color:#F3D56E!important}
#publicGate.v99-active .v99-people{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))!important;gap:16px!important}
#publicGate.v99-active .v99-person{min-width:0!important;padding:20px!important;border:1px solid var(--g-line)!important;border-radius:var(--guest-radius)!important;background:#fff!important;box-shadow:0 12px 30px rgba(24,52,123,.05)!important}
#publicGate.v99-active .v99-person.is-companion{border-color:rgba(136,149,44,.44)!important}
#publicGate.v99-active .v99-section-blue .v99-person{border-color:rgba(255,255,255,.22)!important;background:rgba(255,255,255,.98)!important;color:#24334e!important}
#publicGate.v99-active .v99-person-head{margin-bottom:14px!important;padding-bottom:12px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;border-bottom:1px solid rgba(24,52,123,.1)!important}
#publicGate.v99-active .v99-person-head h3{margin:0!important;color:var(--g-blue)!important;font-family:var(--g-serif)!important;font-size:29px!important;font-weight:400!important;line-height:1.1!important}
#publicGate.v99-active .v99-choice{display:grid!important;gap:8px!important}.v99-choice-three{grid-template-columns:repeat(3,1fr)!important}.v99-choice-two{grid-template-columns:repeat(2,1fr)!important}
#publicGate.v99-active .v99-choice label{cursor:pointer!important}.v99-choice input{position:absolute!important;opacity:0!important;pointer-events:none!important}
#publicGate.v99-active .v99-choice span{min-height:50px!important;padding:10px 12px!important;display:flex!important;align-items:center!important;justify-content:center!important;border:1px solid var(--g-line)!important;border-radius:12px!important;background:#fffdf8!important;color:var(--g-blue)!important;font-size:13px!important;font-weight:800!important;transition:.15s ease!important}
#publicGate.v99-active .v99-choice label:hover span{transform:translateY(-1px)!important;border-color:rgba(24,52,123,.3)!important}
#publicGate.v99-active .v99-choice input:focus-visible+span{outline:3px solid rgba(24,52,123,.16)!important;outline-offset:2px!important}
#publicGate.v99-active .v99-choice input:checked+span{background:var(--g-blue)!important;color:#fff!important;border-color:var(--g-blue)!important;box-shadow:0 8px 18px rgba(24,52,123,.16)!important}
#publicGate.v99-active .v99-choice-three label:nth-child(2) input:checked+span{background:var(--g-gold)!important;border-color:var(--g-gold)!important;color:#3f3109!important}
#publicGate.v99-active .v99-choice-three label:nth-child(3) input:checked+span,#publicGate.v99-active .v99-choice-two label:nth-child(2) input:checked+span{background:var(--g-orange)!important;border-color:var(--g-orange)!important;color:#fff!important}
#publicGate.v99-active .v99-contact,#publicGate.v99-active .v99-details{margin-top:13px!important;border:1px solid rgba(24,52,123,.12)!important;border-radius:12px!important;background:#fffdf8!important;overflow:visible!important}
#publicGate.v99-active .v99-contact summary,#publicGate.v99-active .v99-details summary{min-height:48px!important;padding:0 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;color:var(--g-blue)!important;cursor:pointer!important;font-size:12px!important;font-weight:800!important;list-style:none!important}.v99-contact summary::-webkit-details-marker,.v99-details summary::-webkit-details-marker{display:none!important}
#publicGate.v99-active .v99-contact summary small{color:var(--g-orange)!important;font-size:9px!important;text-transform:uppercase!important;letter-spacing:.06em!important}
#publicGate.v99-active .v99-contact-body,#publicGate.v99-active .v99-details-body{padding:0 14px 14px!important}
#publicGate.v99-active .v99-fields{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}.v99-field-wide{grid-column:1/-1!important}
#publicGate.v99-active .field{margin:0!important}#publicGate.v99-active .fl{display:block!important;margin-bottom:6px!important;color:var(--g-blue)!important;font-size:10px!important;font-weight:800!important;letter-spacing:.04em!important}
#publicGate.v99-active input,#publicGate.v99-active select,#publicGate.v99-active textarea{width:100%!important;min-height:46px!important;padding:10px 12px!important;border:1px solid rgba(24,52,123,.18)!important;border-radius:10px!important;background:#fff!important;color:#263451!important;font:400 13px/1.35 'DM Sans',Arial,Helvetica,sans-serif!important;box-shadow:none!important}
#publicGate.v99-active input:focus,#publicGate.v99-active select:focus,#publicGate.v99-active textarea:focus{border-color:var(--g-blue)!important;outline:3px solid rgba(24,52,123,.1)!important;outline-offset:0!important}
#publicGate.v99-active .v99-copy-contact{margin-bottom:10px!important}
#publicGate.v99-active .v99-submit{display:flex!important;justify-content:flex-end!important;margin-top:18px!important}
#publicGate.v99-active .v99-button{min-height:46px!important;padding:0 20px!important;border:1px solid var(--g-blue)!important;border-radius:999px!important;background:var(--g-blue)!important;color:#fff!important;cursor:pointer!important;font-size:12px!important;font-weight:850!important;letter-spacing:.04em!important}.v99-button:hover{transform:translateY(-1px)!important}.v99-button:disabled{opacity:.55!important;cursor:wait!important}.v99-button-orange{background:var(--g-orange)!important;border-color:var(--g-orange)!important}
#publicGate.v99-active .v99-companion-adder,#publicGate.v99-active .v99-companion-state{margin-top:16px!important;padding:14px 16px!important;border:1px dashed rgba(136,149,44,.55)!important;border-radius:12px!important;background:rgba(136,149,44,.07)!important;color:var(--g-blue)!important}
#publicGate.v99-active .v99-companion-adder summary{cursor:pointer!important;font-size:12px!important;font-weight:800!important}.v99-companion-adder form{margin-top:12px!important;display:grid!important;grid-template-columns:1fr auto!important;gap:10px!important;align-items:end!important}.v99-remove-companion{padding:5px 0!important;border:0!important;background:transparent!important;color:var(--g-orange)!important;cursor:pointer!important;font-size:10px!important;font-weight:800!important}
#publicGate.v99-active .v99-program{display:grid!important;gap:0!important}.v99-program-row{display:grid!important;grid-template-columns:150px minmax(0,1fr)!important;gap:28px!important;padding:22px 0!important;border-bottom:1px solid var(--g-line)!important}.v99-program-row:last-child{border-bottom:0!important}.v99-program-row time{padding-top:4px!important;color:var(--g-terracotta)!important;font-family:var(--g-serif)!important;font-size:13px!important;letter-spacing:.05em!important}.v99-program-row h3{margin:0!important;color:var(--g-blue)!important;font-family:var(--g-serif)!important;font-size:26px!important;font-weight:400!important}.v99-program-row p{margin:6px 0 0!important;color:#5f6a7e!important;font-size:12px!important;line-height:1.55!important}.v99-program-row .v99-address-line{font-weight:700!important}.v99-program-row a{display:inline-block!important;margin-top:8px!important;color:var(--g-orange)!important;font-size:11px!important;font-weight:800!important;text-decoration:none!important}
#publicGate.v99-active .v99-lodgings{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important;gap:14px!important}.v99-lodging{min-width:0!important;padding:18px!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;gap:16px!important;border:1px solid var(--g-line)!important;border-radius:14px!important;background:#fff!important}.v99-lodging small{color:var(--g-green)!important;font-size:10px!important;font-weight:850!important;text-transform:uppercase!important;letter-spacing:.05em!important}.v99-lodging h3{margin:7px 0 0!important;color:var(--g-blue)!important;font-family:var(--g-serif)!important;font-size:25px!important;font-weight:400!important}.v99-lodging p{margin:7px 0 0!important;color:#626d7e!important;font-size:12px!important;line-height:1.55!important}.v99-lodging a{align-self:flex-start!important;padding-bottom:2px!important;color:var(--g-orange)!important;border-bottom:1px solid currentColor!important;text-decoration:none!important;font-size:11px!important;font-weight:800!important}
#publicGate.v99-active .v99-empty{padding:20px!important;border:1px dashed var(--g-line)!important;border-radius:12px!important;color:#687187!important;text-align:center!important;font-size:12px!important}
#publicGate.v99-active .public-result{margin-top:12px!important;padding:11px 12px!important;border-radius:10px!important;background:#f4f5f7!important;color:#5d6676!important;font-size:11px!important}.v99-section-blue .public-result{background:rgba(255,255,255,.92)!important}.public-success{border:1px solid rgba(136,149,44,.35)!important;background:#f5f7ed!important;color:#56621d!important}
#publicGate.v99-active .v99-footer{min-height:150px!important;padding:46px 20px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;background:var(--g-ivory)!important;color:var(--g-blue)!important;font-family:var(--g-serif)!important;font-size:20px!important;letter-spacing:.06em!important}.v99-footer em{font-family:var(--g-script)!important;font-size:1.3em!important;font-style:normal!important}
#publicGate.v99-active .address-autocomplete-results{z-index:400!important}

@media(max-width:900px){
  .portal-v99-visibility-grid,.portal-v99-source-grid{grid-template-columns:1fr!important}
  .portal-v99-publication-grid{grid-template-columns:1fr 1fr!important}.portal-v99-publication-grid>:first-child{grid-column:1/-1!important}
  #publicGate.v99-active .v99-nav{display:block!important;padding:8px 14px 0!important}.v99-brand{height:34px!important;display:flex!important;align-items:center!important;justify-content:center!important}.v99-nav>div{overflow-x:auto!important;flex-wrap:nowrap!important;justify-content:flex-start!important;scrollbar-width:none!important}.v99-nav>div::-webkit-scrollbar{display:none!important}.v99-nav>div a{flex:0 0 auto!important;min-height:52px!important}
}
@media(max-width:680px){
  .guest-portal-modal-v99{width:calc(100vw - 12px)!important;max-height:calc(100svh - 12px)!important}.guest-portal-v99-head{padding:15px!important}.guest-portal-v99-head-actions .btn{display:none!important}.guest-portal-v99-body{padding:10px!important}.portal-v99-card{padding:13px!important}.portal-v99-publication-grid{grid-template-columns:1fr!important}.portal-v99-publication-grid>:first-child{grid-column:auto!important}.guest-portal-v99-footer{padding:9px 14px!important}
  #publicGate.v99-active .v99-hero{min-height:400px!important;padding:58px 16px 62px!important}.v99-hero h1{display:grid!important;gap:7px!important;font-size:46px!important;letter-spacing:.11em!important}.v99-hero h1 em{font-size:.55em!important}.v99-hero strong{font-size:15px!important;letter-spacing:.16em!important}
  #publicGate.v99-active .v99-shell{padding:48px 14px!important}.v99-section-head{align-items:flex-start!important;flex-direction:column!important;gap:8px!important}.v99-section-head h2{font-size:36px!important}
  #publicGate.v99-active .v99-people{grid-template-columns:1fr!important}.v99-person{padding:16px!important}.v99-choice-three{grid-template-columns:1fr!important}.v99-fields{grid-template-columns:1fr!important}.v99-field-wide{grid-column:auto!important}.v99-program-row{grid-template-columns:1fr!important;gap:6px!important}.v99-companion-adder form{grid-template-columns:1fr!important}.v99-companion-adder .v99-button{width:100%!important}
}
@media(prefers-reduced-motion:reduce){#publicGate.v99-active{scroll-behavior:auto!important}#publicGate.v99-active *,#publicGate.v99-active *::before,#publicGate.v99-active *::after{transition:none!important;animation:none!important}}

/* ========================================================================== */
/* V101 · mobile-first refinement + back-office guest analytics              */
/* ========================================================================== */
#page-guests .guest-site-settings-cta{
  border-color:#18347B!important;background:#18347B!important;color:#fff!important;
}
#page-guests .guest-site-settings-cta:hover,#page-guests .guest-site-settings-cta:focus-visible{
  background:#F06F16!important;border-color:#F06F16!important;
}
#page-guests .guest-analytics-v101{
  margin:18px 0 22px!important;padding:18px!important;border:1px solid var(--jj-line)!important;border-radius:14px!important;background:#fff!important;
}
#page-guests .guest-analytics-head-v101{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:18px!important;margin-bottom:14px!important}
#page-guests .guest-analytics-head-v101 h3{margin:4px 0 4px!important;font-size:20px!important}
#page-guests .guest-analytics-head-v101 p{margin:0!important;color:var(--muted)!important;font-size:11px!important;line-height:1.5!important}
#page-guests .guest-analytics-head-v101>strong{flex:0 0 auto!important;padding:8px 11px!important;border-radius:999px!important;background:var(--blue-bg)!important;color:var(--blue)!important;font-size:11px!important}
#page-guests .guest-analytics-filters-v101{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}
#page-guests .guest-analytics-presets-v101{display:flex!important;gap:7px!important;flex-wrap:wrap!important;margin-top:12px!important}
#page-guests .guest-analytics-presets-v101 button{min-height:34px!important;padding:0 11px!important;border:1px solid var(--jj-line)!important;border-radius:999px!important;background:#faf9f7!important;color:var(--text)!important;cursor:pointer!important;font-size:10.5px!important;font-weight:700!important}
#page-guests .guest-analytics-presets-v101 button:hover,#page-guests .guest-analytics-presets-v101 button:focus-visible{border-color:#18347B!important;color:#18347B!important;outline:0!important}
#page-guests .guest-analytics-results-v101{margin-top:14px!important}
#page-guests .guest-analytics-breakdown-v101{border-top:1px solid var(--jj-line)!important;padding-top:12px!important}
#page-guests .guest-analytics-breakdown-v101 summary{cursor:pointer!important;color:#18347B!important;font-weight:750!important;font-size:11px!important}
#page-guests .guest-analytics-breakdown-v101>div{display:grid!important;gap:7px!important;margin-top:10px!important}
#page-guests .guest-analytics-person-v101{display:grid!important;grid-template-columns:minmax(160px,1fr) minmax(0,2fr) auto!important;gap:12px!important;align-items:center!important;padding:9px 10px!important;border:1px solid #ece8e4!important;border-radius:9px!important;background:#fffdf9!important}
#page-guests .guest-analytics-person-v101 strong{font-size:12px!important}.guest-analytics-person-v101 span{min-width:0!important;color:var(--muted)!important;font-size:10.5px!important;overflow-wrap:anywhere!important}

/* La personnalisation du mini-site est volontairement la première carte et la plus lisible. */
#guestPortalOverlay .portal-v99-card-primary{
  border:1px solid rgba(24,52,123,.28)!important;
  background:linear-gradient(180deg,#fbfcff,#fff)!important;
  box-shadow:0 12px 28px rgba(24,52,123,.07)!important;
}
#guestPortalOverlay .portal-v99-card-primary .portal-v99-card-head strong{color:#18347B!important;font-size:17px!important}
#guestPortalOverlay .portal-v99-card-primary .portal-v99-group h4{color:#18347B!important}

/* Le mini-site ne doit jamais provoquer de scroll horizontal, y compris sur 320px. */
#publicGate.v99-active,#publicGate.v99-active .v99-site,#publicGate.v99-active main,#publicGate.v99-active section{
  max-width:100%!important;overflow-x:clip!important;
}
#publicGate.v99-active .v99-nav-links{min-width:0!important}
#publicGate.v99-active .v99-address-line,#publicGate.v99-active .v99-lodging p,#publicGate.v99-active .field,#publicGate.v99-active input,#publicGate.v99-active select,#publicGate.v99-active textarea{min-width:0!important;max-width:100%!important}
#publicGate.v99-active .address-autocomplete-results{max-height:min(280px,42svh)!important;overflow-y:auto!important;overscroll-behavior:contain!important}

@media(max-width:1050px){
  #page-guests .guest-analytics-filters-v101{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  #page-guests .guest-analytics-v101{padding:14px!important}
  #page-guests .guest-analytics-head-v101{flex-direction:column!important;gap:8px!important}
  #page-guests .guest-analytics-filters-v101{grid-template-columns:1fr!important}
  #page-guests .guest-analytics-person-v101{grid-template-columns:1fr!important;gap:4px!important}
  #page-guests .guest-analytics-person-v101 .btn{justify-self:start!important}

  #publicGate.v99-active .v99-nav{
    display:grid!important;grid-template-columns:1fr!important;gap:0!important;
    min-height:0!important;padding:8px 0 0!important;background:rgba(251,247,237,.985)!important;
  }
  #publicGate.v99-active .v99-brand{
    width:100%!important;height:38px!important;padding:0 16px!important;display:flex!important;align-items:center!important;justify-content:center!important;
    font-size:16px!important;text-align:center!important;
  }
  #publicGate.v99-active .v99-nav-links{
    width:100%!important;padding:0 10px 7px!important;display:flex!important;gap:6px!important;overflow-x:auto!important;overflow-y:hidden!important;
    flex-wrap:nowrap!important;justify-content:flex-start!important;scrollbar-width:none!important;scroll-snap-type:x proximity!important;-webkit-overflow-scrolling:touch!important;
  }
  #publicGate.v99-active .v99-nav-links::-webkit-scrollbar{display:none!important}
  #publicGate.v99-active .v99-nav-links a{
    flex:0 0 auto!important;min-height:44px!important;padding:0 14px!important;scroll-snap-align:center!important;font-size:10px!important;white-space:nowrap!important;
  }
  #publicGate.v99-active .v99-hero{min-height:330px!important;padding:50px 18px 52px!important;scroll-margin-top:96px!important}
  #publicGate.v99-active .v99-hero h1{display:grid!important;grid-template-columns:1fr!important;gap:2px!important;font-size:clamp(38px,12vw,58px)!important;letter-spacing:.11em!important}
  #publicGate.v99-active .v99-hero h1 em{margin:2px 0!important;font-size:.52em!important}
  #publicGate.v99-active .v99-hero p{margin-top:16px!important;font-size:14px!important}
  #publicGate.v99-active .v99-hero strong{margin-top:12px!important;font-size:14px!important;line-height:1.5!important;letter-spacing:.12em!important}
  #publicGate.v99-active .v99-section{scroll-margin-top:100px!important}
  #publicGate.v99-active .v99-shell{padding:40px 14px!important}
  #publicGate.v99-active .v99-section-head{margin-bottom:20px!important;padding-bottom:12px!important;align-items:flex-start!important;flex-direction:column!important;gap:6px!important}
  #publicGate.v99-active .v99-section-head h2{font-size:clamp(30px,9vw,40px)!important;line-height:1.08!important}
  #publicGate.v99-active .v99-people{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
  #publicGate.v99-active .v99-person{padding:15px!important;border-radius:14px!important;box-shadow:0 8px 20px rgba(24,52,123,.04)!important}
  #publicGate.v99-active .v99-person-head{margin-bottom:12px!important;padding-bottom:10px!important}
  #publicGate.v99-active .v99-person-head h3{font-size:25px!important}
  #publicGate.v99-active .v99-choice{gap:7px!important}
  #publicGate.v99-active .v99-choice-three{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #publicGate.v99-active .v99-choice-two{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #publicGate.v99-active .v99-choice span{min-height:48px!important;padding:8px 5px!important;font-size:12px!important}
  #publicGate.v99-active .v99-contact summary,#publicGate.v99-active .v99-details summary{min-height:48px!important;padding:0 12px!important}
  #publicGate.v99-active .v99-contact-body,#publicGate.v99-active .v99-details-body{padding:0 12px 12px!important}
  #publicGate.v99-active .v99-fields{grid-template-columns:minmax(0,1fr)!important;gap:9px!important}
  #publicGate.v99-active .v99-field-wide{grid-column:auto!important}
  #publicGate.v99-active input,#publicGate.v99-active select,#publicGate.v99-active textarea{min-height:48px!important;font-size:16px!important}
  #publicGate.v99-active .v99-submit{justify-content:stretch!important;margin-top:16px!important}
  #publicGate.v99-active .v99-submit .v99-button{width:100%!important;min-height:50px!important}
  #publicGate.v99-active .v99-companion-adder form{grid-template-columns:1fr!important}.v99-companion-adder .v99-button{width:100%!important}
  #publicGate.v99-active .v99-program-row{grid-template-columns:1fr!important;gap:5px!important;padding:18px 0!important}
  #publicGate.v99-active .v99-program-row time{font-size:12px!important}
  #publicGate.v99-active .v99-program-row h3{font-size:24px!important}
  #publicGate.v99-active .v99-lodgings{grid-template-columns:minmax(0,1fr)!important;gap:11px!important}
  #publicGate.v99-active .v99-lodging{padding:15px!important}
  #publicGate.v99-active .v99-footer{min-height:110px!important;padding:34px 16px!important;font-size:16px!important;flex-wrap:wrap!important;text-align:center!important}
}
@media(max-width:360px){
  #publicGate.v99-active .v99-choice-three{grid-template-columns:1fr!important}
  #publicGate.v99-active .v99-nav-links a{padding-inline:11px!important;font-size:9.5px!important}
  #publicGate.v99-active .v99-hero{min-height:300px!important;padding-inline:12px!important}
}
#page-guests .guest-analytics-filters-v101{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}
#page-guests .guest-analytics-results-v101>details{margin-top:12px!important;padding-top:12px!important;border-top:1px solid var(--jj-line)!important}
#page-guests .guest-analytics-results-v101>details>summary{cursor:pointer!important;color:#18347B!important;font-size:11px!important;font-weight:750!important}
/* Les radios visuellement remplacés par leurs boutons ne doivent jamais élargir le viewport. */
#publicGate.v99-active .v99-choice input{
  position:absolute!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;
  margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v99-nav>div.v99-nav-links{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;overflow-x:auto!important}
  #publicGate.v99-active .v99-nav>div.v99-nav-links a{flex:0 0 auto!important;min-height:44px!important;white-space:nowrap!important}
}

/* ========================================================================== */
/* V103 — contraste renforcé de la réponse définitive                         */
/* ========================================================================== */
/* La rubrique RSVP n'utilise plus un grand fond bleu : cela évite tout
   bleu-sur-bleu dans les labels, aides, états et contrôles imbriqués. */
#publicGate.v99-active .v99-section-blue{
  background:linear-gradient(180deg,#FCF8F1 0%,#F7F6F0 100%)!important;
  color:#27334e!important;
}
#publicGate.v99-active .v99-section-blue .v99-section-head{
  border-color:rgba(24,52,123,.16)!important;
}
#publicGate.v99-active .v99-section-blue .v99-section-head h2{
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v99-section-blue .v99-section-head small{
  color:#9A7210!important;
}
#publicGate.v99-active .v99-section-blue .v99-person{
  border-color:rgba(24,52,123,.15)!important;
  background:#fff!important;
  color:#27334e!important;
  box-shadow:0 14px 34px rgba(24,52,123,.06)!important;
}
#publicGate.v99-active .v99-section-blue .v99-person-head{
  border-color:rgba(24,52,123,.10)!important;
}
#publicGate.v99-active .v99-section-blue .v99-person-head h3,
#publicGate.v99-active .v99-section-blue .fl,
#publicGate.v99-active .v99-section-blue .v99-contact summary,
#publicGate.v99-active .v99-section-blue .v99-details summary,
#publicGate.v99-active .v99-section-blue .v99-companion-adder,
#publicGate.v99-active .v99-section-blue .v99-companion-state{
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v99-section-blue .v99-contact,
#publicGate.v99-active .v99-section-blue .v99-details{
  border-color:rgba(24,52,123,.13)!important;
  background:#FFFCF5!important;
}
#publicGate.v99-active .v99-section-blue input,
#publicGate.v99-active .v99-section-blue select,
#publicGate.v99-active .v99-section-blue textarea{
  border-color:rgba(24,52,123,.20)!important;
  background:#fff!important;
  color:#263451!important;
}
#publicGate.v99-active .v99-section-blue input:focus,
#publicGate.v99-active .v99-section-blue select:focus,
#publicGate.v99-active .v99-section-blue textarea:focus{
  border-color:var(--g-orange)!important;
  outline:3px solid rgba(240,111,22,.12)!important;
}
/* Choix RSVP : repos clair, oui vert, non orange. */
#publicGate.v99-active .v99-section-blue .v99-choice span{
  border-color:rgba(24,52,123,.16)!important;
  background:#fff!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v99-section-blue .v99-choice label:hover span{
  border-color:var(--g-terracotta)!important;
  background:#FFF9F2!important;
}
#publicGate.v99-active .v99-section-blue .v99-choice input:focus-visible+span{
  outline:3px solid rgba(240,111,22,.16)!important;
}
#publicGate.v99-active .v99-section-blue .v99-choice label:first-child input:checked+span{
  border-color:var(--g-green)!important;
  background:var(--g-green)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(136,149,44,.18)!important;
}
#publicGate.v99-active .v99-section-blue .v99-choice label:last-child input:checked+span{
  border-color:var(--g-orange)!important;
  background:var(--g-orange)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(240,111,22,.18)!important;
}
#publicGate.v99-active .v99-section-blue .v99-companion-adder,
#publicGate.v99-active .v99-section-blue .v99-companion-state{
  border-color:rgba(136,149,44,.46)!important;
  background:rgba(136,149,44,.08)!important;
}
#publicGate.v99-active .v99-section-blue .public-result{
  border:1px solid rgba(24,52,123,.10)!important;
  background:#fff!important;
  color:#5d6676!important;
}
#publicGate.v99-active .v99-section-blue .public-success{
  border-color:rgba(136,149,44,.38)!important;
  background:#F4F7E9!important;
  color:#4D5B17!important;
}


/* ========================================================================== */
/* V104 — hero plus compact sur mobile + illustration des écuries             */
/* ========================================================================== */
#publicGate.v99-active .v99-hero{
  min-height:420px!important;
  padding:58px 22px 54px!important;
}
#publicGate.v99-active .v99-hero>div{
  display:grid!important;
  justify-items:center!important;
}
#publicGate.v99-active .v99-hero-figure{
  margin:26px auto 0!important;
  width:min(680px,92%)!important;
}
#publicGate.v99-active .v99-hero-image{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:255px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 10px 24px rgba(24,52,123,.10))!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v99-hero{
    min-height:0!important;
    padding:34px 16px 30px!important;
    scroll-margin-top:94px!important;
  }
  #publicGate.v99-active .v99-hero>div{
    width:min(100%,540px)!important;
  }
  #publicGate.v99-active .v99-hero h1{
    gap:0!important;
    font-size:clamp(34px,11.5vw,52px)!important;
    letter-spacing:.095em!important;
  }
  #publicGate.v99-active .v99-hero p{
    margin-top:12px!important;
    font-size:13px!important;
  }
  #publicGate.v99-active .v99-hero strong{
    margin-top:10px!important;
    font-size:13px!important;
    line-height:1.45!important;
    letter-spacing:.10em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    margin-top:18px!important;
    width:min(100%,350px)!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:168px!important;
  }
  #publicGate.v99-active .v99-shell{
    padding:30px 14px!important;
  }
  #publicGate.v99-active .v99-section-head{
    margin-bottom:18px!important;
  }
}
@media(max-width:360px){
  #publicGate.v99-active .v99-hero{
    padding:28px 12px 24px!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:144px!important;
  }
}

/* Back office invités sur mobile : blocs plus compacts et sans vide parasite. */
@media(max-width:760px){
  #page-guests .guest-list-v2 .guest-family-head{
    padding:14px!important;
    gap:10px!important;
  }
  #page-guests .guest-list-v2 .guest-family-head-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    align-items:stretch!important;
  }
  #page-guests .guest-list-v2 .household-rsvp-code{
    grid-column:1 / -1!important;
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    padding:10px 12px!important;
    border:1px solid var(--jj-line)!important;
    border-radius:12px!important;
    background:#fff!important;
  }
  #page-guests .guest-list-v2 .household-rsvp-code small{
    margin:0!important;
  }
  #page-guests .guest-list-v2 .household-rsvp-code code{
    font-size:13px!important;
  }
  #page-guests .guest-list-v2 .guest-family-head-actions .btn{
    width:100%!important;
    justify-content:center!important;
  }
  #page-guests .guest-list-v2 .guest-item{
    padding:12px 14px!important;
    gap:10px!important;
  }
  #page-guests .guest-person-sub{
    margin-top:3px!important;
  }
}


/* ========================================================================== */
/* V105 — back office mobile : suppression de l'espace vide dans les foyers   */
/* ========================================================================== */
@media(max-width:760px){
  #page-guests .guest-list-v2 .guest-family,
  #page-guests .guest-family{
    overflow:hidden!important;
  }
  #page-guests .guest-list-v2 .guest-family-head,
  #page-guests .guest-family-head{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:start!important;
    align-content:start!important;
    justify-content:start!important;
    gap:12px!important;
    min-height:0!important;
    height:auto!important;
    padding:14px!important;
  }
  #page-guests .guest-list-v2 .guest-family-heading,
  #page-guests .guest-family-heading{
    min-height:0!important;
    margin:0!important;
  }
  #page-guests .guest-list-v2 .guest-family-head-actions,
  #page-guests .guest-family-head-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    align-items:stretch!important;
    align-content:start!important;
    justify-content:stretch!important;
    gap:8px!important;
    margin:0!important;
  }
  #page-guests .guest-list-v2 .household-rsvp-code,
  #page-guests .household-rsvp-code{
    grid-column:1 / -1!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:10px 12px!important;
    justify-content:space-between!important;
  }
  #page-guests .guest-list-v2 .guest-family-head-actions .btn,
  #page-guests .guest-family-head-actions .btn{
    width:100%!important;
    min-height:44px!important;
    margin:0!important;
    justify-content:center!important;
  }
  #page-guests .guest-list-v2 .guest-family-members,
  #page-guests .guest-family-members{
    padding-top:0!important;
  }
}


/* ========================================================================== */
/* V106 — mini-site invités : hero plus harmonieux + nouvelle image écuries  */
/* ========================================================================== */
#publicGate.v99-active .v99-hero{
  min-height:auto!important;
  padding:52px 22px 44px!important;
}
#publicGate.v99-active .v99-hero>div{
  width:min(1120px,100%)!important;
  display:grid!important;
  justify-items:center!important;
}
#publicGate.v99-active .v99-hero h1{
  gap:clamp(8px,1.4vw,18px)!important;
  font-size:clamp(42px,5.4vw,82px)!important;
  letter-spacing:.12em!important;
  line-height:.96!important;
}
#publicGate.v99-active .v99-hero h1 em{
  font-size:.5em!important;
}
#publicGate.v99-active .v99-hero p{
  margin-top:18px!important;
  font-size:clamp(15px,1.15vw,20px)!important;
}
#publicGate.v99-active .v99-hero strong{
  margin-top:14px!important;
  font-size:clamp(20px,2vw,31px)!important;
  letter-spacing:.18em!important;
  line-height:1.35!important;
}
#publicGate.v99-active .v99-hero-figure{
  margin:20px auto 0!important;
  width:min(760px,78vw)!important;
}
#publicGate.v99-active .v99-hero-image{
  width:100%!important;
  height:auto!important;
  max-height:360px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 12px 24px rgba(24,52,123,.08))!important;
}

@media(max-width:900px){
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(40px,7.8vw,64px)!important;
    letter-spacing:.105em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(640px,88vw)!important;
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero{
    min-height:auto!important;
    padding:26px 14px 20px!important;
    scroll-margin-top:94px!important;
  }
  #publicGate.v99-active .v99-hero>div{
    width:min(100%,430px)!important;
  }
  #publicGate.v99-active .v99-hero h1{
    gap:0!important;
    font-size:clamp(34px,11vw,50px)!important;
    letter-spacing:.085em!important;
  }
  #publicGate.v99-active .v99-hero h1 em{
    margin:0!important;
    font-size:.5em!important;
  }
  #publicGate.v99-active .v99-hero p{
    margin-top:10px!important;
    font-size:13px!important;
  }
  #publicGate.v99-active .v99-hero strong{
    margin-top:8px!important;
    font-size:14px!important;
    letter-spacing:.11em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    margin-top:14px!important;
    width:min(100%,340px)!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:220px!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active .v99-hero{
    padding:22px 12px 18px!important;
  }
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(30px,10.2vw,42px)!important;
    letter-spacing:.075em!important;
  }
  #publicGate.v99-active .v99-hero strong{
    font-size:13px!important;
    letter-spacing:.09em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(100%,300px)!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:184px!important;
  }
}


/* ========================================================================== */
/* V107 — proportions du header proches de la PJ + header mobile plus serré   */
/* ========================================================================== */
#publicGate.v99-active .v99-hero{
  min-height:auto!important;
  padding:44px 22px 36px!important;
}
#publicGate.v99-active .v99-hero>div{
  width:min(1320px,100%)!important;
}
#publicGate.v99-active .v99-hero h1{
  gap:clamp(10px,1vw,16px)!important;
  font-size:clamp(68px,8.4vw,126px)!important;
  letter-spacing:.14em!important;
  line-height:.9!important;
}
#publicGate.v99-active .v99-hero h1 em{
  font-size:.37em!important;
  line-height:1!important;
  transform:translateY(6px)!important;
}
#publicGate.v99-active .v99-hero p{
  margin-top:24px!important;
  font-size:clamp(16px,1.75vw,28px)!important;
  letter-spacing:.01em!important;
}
#publicGate.v99-active .v99-hero strong{
  margin-top:18px!important;
  font-size:clamp(26px,2.8vw,48px)!important;
  letter-spacing:.23em!important;
  line-height:1.22!important;
}
#publicGate.v99-active .v99-hero-figure{
  margin-top:18px!important;
  width:min(620px,42vw)!important;
}
#publicGate.v99-active .v99-hero-image{
  max-height:430px!important;
}

@media(max-width:1024px){
  #publicGate.v99-active .v99-hero{
    padding:36px 18px 30px!important;
  }
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(54px,8.2vw,92px)!important;
    letter-spacing:.12em!important;
  }
  #publicGate.v99-active .v99-hero p{
    margin-top:18px!important;
    font-size:clamp(15px,1.8vw,22px)!important;
  }
  #publicGate.v99-active .v99-hero strong{
    margin-top:14px!important;
    font-size:clamp(20px,3vw,34px)!important;
    letter-spacing:.18em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(520px,54vw)!important;
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero{
    padding:24px 14px 18px!important;
  }
  #publicGate.v99-active .v99-hero>div{
    width:min(100%,410px)!important;
  }
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(33px,10.4vw,47px)!important;
    letter-spacing:.07em!important;
    gap:1px!important;
  }
  #publicGate.v99-active .v99-hero h1 em{
    transform:none!important;
    font-size:.42em!important;
    margin:1px 0 0!important;
  }
  #publicGate.v99-active .v99-hero p{
    margin-top:10px!important;
    font-size:13px!important;
  }
  #publicGate.v99-active .v99-hero strong{
    margin-top:8px!important;
    font-size:14px!important;
    letter-spacing:.11em!important;
    line-height:1.35!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    margin-top:12px!important;
    width:min(100%,336px)!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:210px!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active .v99-hero{
    padding:20px 12px 16px!important;
  }
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(29px,10vw,40px)!important;
    letter-spacing:.06em!important;
  }
  #publicGate.v99-active .v99-hero p{font-size:12.5px!important}
  #publicGate.v99-active .v99-hero strong{
    font-size:13px!important;
    letter-spacing:.085em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(100%,290px)!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:176px!important;
  }
}

/* Back office mobile : réduire l'espace entre le nom du foyer et le code du lien */
@media(max-width:760px){
  #page-guests .guest-list-v2 .guest-family-head,
  #page-guests .guest-family-head{
    gap:8px!important;
    padding:12px!important;
  }
  #page-guests .guest-list-v2 .guest-family-heading,
  #page-guests .guest-family-heading{
    display:grid!important;
    gap:2px!important;
  }
  #page-guests .guest-list-v2 .guest-family-title,
  #page-guests .guest-family-title{
    margin:0!important;
    line-height:1.18!important;
  }
  #page-guests .guest-list-v2 .guest-family-meta,
  #page-guests .guest-family-meta{
    margin-top:0!important;
    line-height:1.22!important;
  }
  #page-guests .guest-list-v2 .guest-family-head-actions,
  #page-guests .guest-family-head-actions{
    gap:6px!important;
    margin-top:0!important;
  }
  #page-guests .guest-list-v2 .household-rsvp-code,
  #page-guests .household-rsvp-code{
    padding:8px 10px!important;
  }
}


/* ========================================================================== */
/* V108 — finitions : proportions proches du faire-part + vrai cache-busting */
/* ========================================================================== */
#publicGate.v99-active .v99-hero{
  min-height:auto!important;
  padding:38px 20px 30px!important;
}
#publicGate.v99-active .v99-hero>div{
  width:min(1040px,100%)!important;
  margin:0 auto!important;
}
#publicGate.v99-active .v99-hero h1{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:clamp(7px,.9vw,14px)!important;
  font-size:clamp(54px,6.1vw,88px)!important;
  line-height:.94!important;
  letter-spacing:.13em!important;
  white-space:nowrap!important;
}
#publicGate.v99-active .v99-hero h1 span{
  white-space:nowrap!important;
}
#publicGate.v99-active .v99-hero h1 em{
  margin:0!important;
  transform:none!important;
  font-size:.39em!important;
  line-height:1!important;
}
#publicGate.v99-active .v99-hero p{
  margin-top:20px!important;
  font-size:clamp(14px,1.35vw,19px)!important;
  line-height:1.25!important;
}
#publicGate.v99-active .v99-hero strong{
  margin-top:14px!important;
  font-size:clamp(20px,2.05vw,30px)!important;
  line-height:1.2!important;
  letter-spacing:.21em!important;
}
#publicGate.v99-active .v99-hero-figure{
  width:min(720px,68vw)!important;
  margin:16px auto 0!important;
}
#publicGate.v99-active .v99-hero-image{
  width:100%!important;
  max-height:390px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 9px 18px rgba(24,52,123,.07))!important;
}

@media(max-width:900px){
  #publicGate.v99-active .v99-hero{
    padding:30px 16px 24px!important;
  }
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(42px,7.4vw,64px)!important;
    letter-spacing:.105em!important;
  }
  #publicGate.v99-active .v99-hero p{
    margin-top:15px!important;
  }
  #publicGate.v99-active .v99-hero strong{
    margin-top:10px!important;
    font-size:clamp(17px,2.5vw,23px)!important;
    letter-spacing:.17em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(610px,76vw)!important;
    margin-top:14px!important;
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero{
    padding:22px 12px 16px!important;
  }
  #publicGate.v99-active .v99-hero>div{
    width:min(100%,430px)!important;
  }
  #publicGate.v99-active .v99-hero h1{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:4px!important;
    font-size:clamp(27px,8vw,36px)!important;
    letter-spacing:.055em!important;
    line-height:1!important;
  }
  #publicGate.v99-active .v99-hero h1 em{
    font-size:.46em!important;
  }
  #publicGate.v99-active .v99-hero p{
    margin-top:10px!important;
    font-size:12.5px!important;
  }
  #publicGate.v99-active .v99-hero strong{
    margin-top:7px!important;
    font-size:13px!important;
    line-height:1.3!important;
    letter-spacing:.10em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(100%,345px)!important;
    margin-top:10px!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:218px!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(24px,7.7vw,30px)!important;
    letter-spacing:.045em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(100%,300px)!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:185px!important;
  }
}

/* Mobile back office : nom du foyer et accès public rapprochés. */
@media(max-width:760px){
  #page-guests .guest-list-v2 .guest-family-head,
  #page-guests .guest-family-head{
    gap:5px!important;
    padding:11px 12px!important;
  }
  #page-guests .guest-family-heading{
    margin-bottom:0!important;
  }
  #page-guests .guest-family-title{
    margin:0!important;
    line-height:1.12!important;
  }
  #page-guests .guest-family-meta{
    margin:1px 0 0!important;
    line-height:1.15!important;
  }
  #page-guests .guest-family-head-actions{
    margin-top:3px!important;
    gap:6px!important;
  }
  #page-guests .household-rsvp-code{
    min-height:38px!important;
    padding:7px 9px!important;
  }
}


/* ========================================================================== */
/* V109 — header du mini-site : proportions plus proches du PDF               */
/* ========================================================================== */
#publicGate.v99-active .v99-hero{
  min-height:auto!important;
  padding:34px 18px 22px!important;
}
#publicGate.v99-active .v99-hero>div{
  width:min(1180px,100%)!important;
  margin:0 auto!important;
}
#publicGate.v99-active .v99-hero h1{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:clamp(6px,.75vw,12px)!important;
  font-size:clamp(62px,6.6vw,108px)!important;
  line-height:.92!important;
  letter-spacing:.145em!important;
}
#publicGate.v99-active .v99-hero h1 em{
  font-size:.31em!important;
  line-height:1!important;
  margin:0 0.06em!important;
}
#publicGate.v99-active .v99-hero p{
  margin-top:18px!important;
  font-size:clamp(12px,1.05vw,17px)!important;
  line-height:1.25!important;
  letter-spacing:.01em!important;
}
#publicGate.v99-active .v99-hero strong{
  margin-top:12px!important;
  font-size:clamp(22px,2.15vw,34px)!important;
  line-height:1.2!important;
  letter-spacing:.205em!important;
}
#publicGate.v99-active .v99-hero-figure{
  width:min(650px,38vw)!important;
  margin:12px auto 0!important;
}
#publicGate.v99-active .v99-hero-image{
  max-height:360px!important;
}

@media(max-width:1200px){
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(54px,7vw,92px)!important;
    letter-spacing:.125em!important;
  }
  #publicGate.v99-active .v99-hero p{
    font-size:clamp(12px,1.2vw,16px)!important;
  }
  #publicGate.v99-active .v99-hero strong{
    font-size:clamp(20px,2.25vw,30px)!important;
    letter-spacing:.18em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(590px,46vw)!important;
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero{
    padding:20px 12px 14px!important;
  }
  #publicGate.v99-active .v99-hero>div{
    width:min(100%,390px)!important;
  }
  #publicGate.v99-active .v99-hero h1{
    gap:2px!important;
    font-size:clamp(28px,8.6vw,38px)!important;
    letter-spacing:.06em!important;
    line-height:1!important;
  }
  #publicGate.v99-active .v99-hero h1 em{
    font-size:.36em!important;
    margin:0 .08em!important;
  }
  #publicGate.v99-active .v99-hero p{
    margin-top:8px!important;
    font-size:12px!important;
  }
  #publicGate.v99-active .v99-hero strong{
    margin-top:6px!important;
    font-size:13px!important;
    line-height:1.3!important;
    letter-spacing:.11em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(100%,320px)!important;
    margin-top:8px!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:198px!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(24px,8.3vw,32px)!important;
    letter-spacing:.05em!important;
  }
  #publicGate.v99-active .v99-hero p{font-size:11.5px!important}
  #publicGate.v99-active .v99-hero strong{
    font-size:12.5px!important;
    letter-spacing:.09em!important;
  }
  #publicGate.v99-active .v99-hero-figure{
    width:min(100%,286px)!important;
  }
  #publicGate.v99-active .v99-hero-image{
    max-height:176px!important;
  }
}


/* ========================================================================== */
/* V110 — ajout du lieu sous l'illustration                                   */
/* ========================================================================== */
#publicGate.v99-active .v99-hero-place{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  margin-top:10px!important;
  color:var(--g-blue)!important;
  font-family:var(--g-serif)!important;
  font-size:clamp(13px,1.15vw,17px)!important;
  line-height:1.3!important;
  letter-spacing:.02em!important;
}
#publicGate.v99-active .v99-hero-place-icon{
  width:28px!important;
  height:28px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1.5px solid rgba(24,52,123,.28)!important;
  border-radius:999px!important;
  color:var(--g-blue)!important;
  font-size:16px!important;
  line-height:1!important;
  transform:translateY(-1px)!important;
  background:rgba(255,255,255,.32)!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v99-hero-place{
    gap:8px!important;
    margin-top:8px!important;
    font-size:12px!important;
  }
  #publicGate.v99-active .v99-hero-place-icon{
    width:24px!important;
    height:24px!important;
    font-size:14px!important;
  }
}


/* ========================================================================== */
/* V111 — réduire le titre pour l'aligner visuellement à la largeur de l'image */
/* ========================================================================== */
#publicGate.v99-active .v99-hero h1{
  width:min(650px,38vw)!important;
  margin:0 auto!important;
  justify-content:space-between!important;
  gap:0!important;
  font-size:clamp(46px,5.25vw,82px)!important;
  letter-spacing:.12em!important;
}
#publicGate.v99-active .v99-hero h1 span{
  flex:1 1 auto!important;
}
#publicGate.v99-active .v99-hero h1 span:first-child{
  text-align:left!important;
}
#publicGate.v99-active .v99-hero h1 span:last-child{
  text-align:right!important;
}
#publicGate.v99-active .v99-hero h1 em{
  flex:0 0 auto!important;
  font-size:.30em!important;
  margin:0 .05em!important;
}
#publicGate.v99-active .v99-hero strong{
  font-size:clamp(18px,1.6vw,25px)!important;
  letter-spacing:.17em!important;
}

@media(max-width:1200px){
  #publicGate.v99-active .v99-hero h1{
    width:min(590px,46vw)!important;
    font-size:clamp(42px,5.9vw,70px)!important;
    letter-spacing:.105em!important;
  }
  #publicGate.v99-active .v99-hero strong{
    font-size:clamp(17px,1.9vw,22px)!important;
    letter-spacing:.14em!important;
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero h1{
    width:min(100%,320px)!important;
    font-size:clamp(25px,7.6vw,33px)!important;
    letter-spacing:.048em!important;
  }
  #publicGate.v99-active .v99-hero h1 em{
    font-size:.34em!important;
    margin:0 .06em!important;
  }
  #publicGate.v99-active .v99-hero strong{
    font-size:12px!important;
    letter-spacing:.09em!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active .v99-hero h1{
    width:min(100%,286px)!important;
    font-size:clamp(22px,7.2vw,28px)!important;
    letter-spacing:.04em!important;
  }
  #publicGate.v99-active .v99-hero strong{
    font-size:11.5px!important;
    letter-spacing:.08em!important;
  }
}


/* ========================================================================== */
/* V112 — header plus aéré + repère de lieu en emoji                          */
/* ========================================================================== */
#publicGate.v99-active .v99-hero{
  min-height:auto!important;
  padding-top:64px!important;
  padding-bottom:56px!important;
}
#publicGate.v99-active .v99-hero-place{
  margin-top:14px!important;
}
#publicGate.v99-active .v99-hero-place-icon{
  width:auto!important;
  height:auto!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:inherit!important;
  font-size:18px!important;
  line-height:1!important;
  transform:none!important;
}

@media(max-width:1200px){
  #publicGate.v99-active .v99-hero{
    padding-top:52px!important;
    padding-bottom:46px!important;
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero{
    padding-top:38px!important;
    padding-bottom:34px!important;
  }
  #publicGate.v99-active .v99-hero-place{
    margin-top:10px!important;
  }
  #publicGate.v99-active .v99-hero-place-icon{
    font-size:16px!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active .v99-hero{
    padding-top:32px!important;
    padding-bottom:28px!important;
  }
}


/* ========================================================================== */
/* V113 — titre Pauline et Romain plus petit et réellement centré             */
/* ========================================================================== */
#publicGate.v99-active .v99-hero h1{
  width:auto!important;
  max-width:min(560px,34vw)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  display:flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:clamp(5px,.55vw,9px)!important;
  font-size:clamp(39px,4.35vw,68px)!important;
  letter-spacing:.105em!important;
  text-align:center!important;
  white-space:nowrap!important;
}
#publicGate.v99-active .v99-hero h1 span{
  flex:0 0 auto!important;
  text-align:center!important;
}
#publicGate.v99-active .v99-hero h1 span:first-child,
#publicGate.v99-active .v99-hero h1 span:last-child{
  text-align:center!important;
}
#publicGate.v99-active .v99-hero h1 em{
  flex:0 0 auto!important;
  margin:0 .02em!important;
  font-size:.31em!important;
}

@media(max-width:1200px){
  #publicGate.v99-active .v99-hero h1{
    max-width:min(520px,44vw)!important;
    font-size:clamp(36px,4.9vw,58px)!important;
    letter-spacing:.09em!important;
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero h1{
    max-width:min(100%,292px)!important;
    font-size:clamp(23px,6.9vw,30px)!important;
    letter-spacing:.038em!important;
    gap:3px!important;
  }
  #publicGate.v99-active .v99-hero h1 em{
    font-size:.34em!important;
    margin:0 .03em!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active .v99-hero h1{
    max-width:min(100%,264px)!important;
    font-size:clamp(21px,6.6vw,26px)!important;
    letter-spacing:.032em!important;
  }
}


/* ========================================================================== */
/* V114 — échelle typographique cohérente + menu mobile dépliable             */
/* ========================================================================== */
#publicGate.v99-active{
  --v114-body:clamp(14px,.92vw,16px);
  --v114-small:clamp(11px,.72vw,12px);
  --v114-label:clamp(10px,.66vw,11px);
  --v114-card-title:clamp(22px,1.7vw,27px);
  --v114-section-title:clamp(34px,3vw,46px);
  --v114-nav:12px;
}
#publicGate.v99-active .v99-site{
  font-size:var(--v114-body)!important;
  line-height:1.55!important;
}
#publicGate.v99-active .v99-brand{
  font-size:17px!important;
  line-height:1.2!important;
}
#publicGate.v99-active .v99-nav-links a{
  font-size:var(--v114-nav)!important;
  line-height:1.2!important;
}
#publicGate.v99-active .v99-section-head h2{
  font-size:var(--v114-section-title)!important;
  line-height:1.06!important;
}
#publicGate.v99-active .v99-section-head small,
#publicGate.v99-active .v99-lodging small,
#publicGate.v99-active .fl{
  font-size:var(--v114-label)!important;
}
#publicGate.v99-active .v99-person-head h3,
#publicGate.v99-active .v99-program-row h3,
#publicGate.v99-active .v99-lodging h3{
  font-size:var(--v114-card-title)!important;
  line-height:1.12!important;
}
#publicGate.v99-active .v99-program-row p,
#publicGate.v99-active .v99-lodging p,
#publicGate.v99-active .v99-empty,
#publicGate.v99-active .v99-hero-place,
#publicGate.v99-active .v99-companion-adder,
#publicGate.v99-active .v99-companion-state{
  font-size:var(--v114-small)!important;
  line-height:1.55!important;
}
#publicGate.v99-active .v99-program-row time,
#publicGate.v99-active .v99-choice span,
#publicGate.v99-active .v99-contact summary,
#publicGate.v99-active .v99-details summary,
#publicGate.v99-active .v99-button{
  font-size:clamp(12px,.8vw,13px)!important;
}
#publicGate.v99-active input,
#publicGate.v99-active select,
#publicGate.v99-active textarea{
  font-size:14px!important;
  line-height:1.35!important;
}
#publicGate.v99-active .v99-footer{
  font-size:18px!important;
  line-height:1.3!important;
}

/* Structure de navigation desktop. */
#publicGate.v99-active .v114-nav-top{
  display:contents!important;
}
#publicGate.v99-active .v114-menu-toggle{
  display:none!important;
}

@media(max-width:760px){
  #publicGate.v99-active{
    --v114-body:15px;
    --v114-small:12.5px;
    --v114-label:11px;
    --v114-card-title:24px;
    --v114-section-title:34px;
    --v114-nav:14px;
  }
  #publicGate.v99-active .v99-nav{
    display:block!important;
    min-height:0!important;
    padding:0!important;
    border-bottom:1px solid var(--g-line)!important;
  }
  #publicGate.v99-active .v114-nav-top{
    min-height:58px!important;
    padding:0 14px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
  }
  #publicGate.v99-active .v99-brand{
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    padding:0!important;
    justify-content:flex-start!important;
    font-size:15px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  #publicGate.v99-active .v114-menu-toggle{
    min-width:94px!important;
    min-height:40px!important;
    padding:0 12px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    flex:0 0 auto!important;
    border:1px solid rgba(24,52,123,.18)!important;
    border-radius:999px!important;
    background:#fff!important;
    color:var(--g-blue)!important;
    cursor:pointer!important;
    font:800 12px/1 'DM Sans',Arial,Helvetica,sans-serif!important;
  }
  #publicGate.v99-active .v114-menu-toggle:focus-visible{
    outline:3px solid rgba(24,52,123,.15)!important;
    outline-offset:2px!important;
  }
  #publicGate.v99-active .v114-menu-chevron{
    font-size:18px!important;
    line-height:1!important;
    transition:transform .16s ease!important;
  }
  #publicGate.v99-active .v99-nav.is-menu-open .v114-menu-chevron{
    transform:rotate(180deg)!important;
  }
  #publicGate.v99-active .v99-nav-links,
  #publicGate.v99-active .v99-nav>div.v99-nav-links{
    width:100%!important;
    max-height:0!important;
    padding:0 14px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    overflow:hidden!important;
    opacity:0!important;
    visibility:hidden!important;
    transition:max-height .2s ease,opacity .15s ease,padding .2s ease!important;
    background:var(--g-ivory)!important;
  }
  #publicGate.v99-active .v99-nav.is-menu-open .v99-nav-links,
  #publicGate.v99-active .v99-nav.is-menu-open>div.v99-nav-links{
    max-height:340px!important;
    padding:4px 14px 12px!important;
    opacity:1!important;
    visibility:visible!important;
  }
  #publicGate.v99-active .v99-nav-links a,
  #publicGate.v99-active .v99-nav>div.v99-nav-links a{
    width:100%!important;
    min-height:46px!important;
    padding:0 10px!important;
    display:flex!important;
    justify-content:space-between!important;
    border:0!important;
    border-top:1px solid rgba(24,52,123,.10)!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--g-blue)!important;
    white-space:normal!important;
    font-size:var(--v114-nav)!important;
    text-align:left!important;
  }
  #publicGate.v99-active .v99-nav-links a::after{
    content:'→'!important;
    color:var(--g-terracotta)!important;
    font-size:15px!important;
  }
  #publicGate.v99-active .v99-nav-links a.is-active{
    background:transparent!important;
    color:var(--g-orange)!important;
    border-color:rgba(24,52,123,.10)!important;
  }
  #publicGate.v99-active .v99-nav-links a.is-active::after{
    color:var(--g-orange)!important;
  }
  #publicGate.v99-active .v99-section-head h2{
    font-size:var(--v114-section-title)!important;
  }
  #publicGate.v99-active .v99-person-head h3,
  #publicGate.v99-active .v99-program-row h3,
  #publicGate.v99-active .v99-lodging h3{
    font-size:var(--v114-card-title)!important;
  }
  #publicGate.v99-active input,
  #publicGate.v99-active select,
  #publicGate.v99-active textarea{
    font-size:16px!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active{
    --v114-section-title:31px;
    --v114-card-title:22px;
  }
  #publicGate.v99-active .v114-nav-top{
    min-height:56px!important;
    padding-inline:10px!important;
  }
  #publicGate.v99-active .v99-brand{
    font-size:14px!important;
  }
  #publicGate.v99-active .v114-menu-toggle{
    min-width:86px!important;
    min-height:38px!important;
    padding-inline:10px!important;
  }
}


/* ========================================================================== */
/* V115 — navigation bleu profond + rythme de lecture plus confortable        */
/* ========================================================================== */

/* Navigation : un bandeau bleu cohérent avec la charte du mariage. */
#publicGate.v99-active .v99-nav{
  background:#18347B!important;
  border-bottom:1px solid rgba(255,255,255,.14)!important;
  box-shadow:0 8px 24px rgba(24,52,123,.10)!important;
}
#publicGate.v99-active .v99-brand{
  color:#FCF8F1!important;
  font-family:var(--g-serif)!important;
  font-weight:400!important;
  letter-spacing:.035em!important;
}
#publicGate.v99-active .v99-brand:hover,
#publicGate.v99-active .v99-brand:focus-visible{
  color:#fff!important;
  outline:none!important;
}
#publicGate.v99-active .v99-nav-links a,
#publicGate.v99-active .v99-nav>div.v99-nav-links a{
  color:#FCF8F1!important;
}
#publicGate.v99-active .v99-nav-links a:hover,
#publicGate.v99-active .v99-nav-links a:focus-visible,
#publicGate.v99-active .v99-nav>div.v99-nav-links a:hover,
#publicGate.v99-active .v99-nav>div.v99-nav-links a:focus-visible{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(255,255,255,.18)!important;
  color:#fff!important;
  outline:none!important;
}
#publicGate.v99-active .v99-nav-links a.is-active,
#publicGate.v99-active .v99-nav>div.v99-nav-links a.is-active{
  background:#FCF8F1!important;
  border-color:#FCF8F1!important;
  color:#18347B!important;
}

/* Rythme général : davantage d'air, mais sans rallonger inutilement la page. */
#publicGate.v99-active .v99-site{
  line-height:1.62!important;
}
#publicGate.v99-active .v99-shell{
  padding-top:clamp(58px,6vw,82px)!important;
  padding-bottom:clamp(58px,6vw,82px)!important;
}
#publicGate.v99-active .v99-section-head{
  margin-bottom:34px!important;
  padding-bottom:18px!important;
}
#publicGate.v99-active .v99-section-head h2{
  letter-spacing:-.012em!important;
}
#publicGate.v99-active .v99-section-head small{
  margin-top:4px!important;
  line-height:1.45!important;
}
#publicGate.v99-active .v99-people{
  gap:20px!important;
}
#publicGate.v99-active .v99-person{
  padding:24px!important;
}
#publicGate.v99-active .v99-person-head{
  margin-bottom:18px!important;
  padding-bottom:14px!important;
}
#publicGate.v99-active .v99-choice{
  gap:10px!important;
}
#publicGate.v99-active .v99-choice span{
  min-height:52px!important;
  padding:11px 14px!important;
}
#publicGate.v99-active .v99-contact,
#publicGate.v99-active .v99-details{
  margin-top:16px!important;
}
#publicGate.v99-active .v99-contact summary,
#publicGate.v99-active .v99-details summary{
  min-height:52px!important;
  padding-inline:16px!important;
}
#publicGate.v99-active .v99-contact-body,
#publicGate.v99-active .v99-details-body{
  padding:2px 16px 18px!important;
}
#publicGate.v99-active .v99-fields{
  gap:14px!important;
}
#publicGate.v99-active .fl{
  margin-bottom:7px!important;
}
#publicGate.v99-active input,
#publicGate.v99-active select,
#publicGate.v99-active textarea{
  min-height:48px!important;
  padding:11px 13px!important;
}
#publicGate.v99-active .v99-submit{
  margin-top:24px!important;
}
#publicGate.v99-active .v99-button{
  min-height:48px!important;
  padding-inline:24px!important;
}
#publicGate.v99-active .v99-companion-adder,
#publicGate.v99-active .v99-companion-state{
  margin-top:20px!important;
  padding:17px 18px!important;
}
#publicGate.v99-active .v99-program-row{
  padding-top:24px!important;
  padding-bottom:24px!important;
  gap:24px!important;
}
#publicGate.v99-active .v99-program-row p{
  margin-top:7px!important;
  max-width:72ch!important;
}
#publicGate.v99-active .v99-lodgings{
  gap:18px!important;
}
#publicGate.v99-active .v99-lodging{
  padding:22px!important;
}
#publicGate.v99-active .v99-lodging h3{
  margin-top:5px!important;
  margin-bottom:8px!important;
}
#publicGate.v99-active .v99-lodging p{
  margin-top:6px!important;
  max-width:62ch!important;
}
#publicGate.v99-active .v99-empty{
  padding:22px 0!important;
}
#publicGate.v99-active .v99-footer{
  padding-top:44px!important;
  padding-bottom:44px!important;
}

@media(max-width:760px){
  #publicGate.v99-active .v99-nav{
    background:#18347B!important;
    border-bottom-color:rgba(255,255,255,.12)!important;
  }
  #publicGate.v99-active .v114-nav-top{
    min-height:62px!important;
    padding:0 14px!important;
  }
  #publicGate.v99-active .v99-brand{
    color:#FCF8F1!important;
    font-size:15px!important;
  }
  #publicGate.v99-active .v114-menu-toggle{
    min-width:92px!important;
    min-height:40px!important;
    border-color:rgba(255,255,255,.28)!important;
    background:rgba(255,255,255,.08)!important;
    color:#FCF8F1!important;
  }
  #publicGate.v99-active .v114-menu-toggle:hover,
  #publicGate.v99-active .v114-menu-toggle:focus-visible{
    background:rgba(255,255,255,.14)!important;
    color:#fff!important;
    outline:2px solid rgba(216,168,45,.65)!important;
    outline-offset:2px!important;
  }
  #publicGate.v99-active .v114-menu-chevron{
    color:#D8A82D!important;
  }
  #publicGate.v99-active .v99-nav-links,
  #publicGate.v99-active .v99-nav>div.v99-nav-links{
    background:#18347B!important;
  }
  #publicGate.v99-active .v99-nav.is-menu-open .v99-nav-links,
  #publicGate.v99-active .v99-nav.is-menu-open>div.v99-nav-links{
    padding:4px 14px 14px!important;
  }
  #publicGate.v99-active .v99-nav-links a,
  #publicGate.v99-active .v99-nav>div.v99-nav-links a{
    min-height:50px!important;
    padding:0 8px!important;
    border-top-color:rgba(255,255,255,.14)!important;
    color:#FCF8F1!important;
  }
  #publicGate.v99-active .v99-nav-links a::after{
    color:#D8A82D!important;
  }
  #publicGate.v99-active .v99-nav-links a.is-active{
    background:rgba(255,255,255,.10)!important;
    color:#F6D56A!important;
    border-color:rgba(255,255,255,.14)!important;
  }
  #publicGate.v99-active .v99-nav-links a.is-active::after{
    color:#F06F16!important;
  }

  #publicGate.v99-active .v99-shell{
    padding-top:42px!important;
    padding-bottom:42px!important;
  }
  #publicGate.v99-active .v99-section-head{
    margin-bottom:24px!important;
    padding-bottom:14px!important;
  }
  #publicGate.v99-active .v99-person{
    padding:18px!important;
  }
  #publicGate.v99-active .v99-person-head{
    margin-bottom:15px!important;
    padding-bottom:12px!important;
  }
  #publicGate.v99-active .v99-choice{
    gap:8px!important;
  }
  #publicGate.v99-active .v99-choice span{
    min-height:50px!important;
    padding:9px 8px!important;
  }
  #publicGate.v99-active .v99-contact,
  #publicGate.v99-active .v99-details{
    margin-top:14px!important;
  }
  #publicGate.v99-active .v99-contact-body,
  #publicGate.v99-active .v99-details-body{
    padding:2px 12px 14px!important;
  }
  #publicGate.v99-active .v99-fields{
    gap:11px!important;
  }
  #publicGate.v99-active .v99-companion-adder,
  #publicGate.v99-active .v99-companion-state{
    margin-top:16px!important;
    padding:14px!important;
  }
  #publicGate.v99-active .v99-program-row{
    padding-top:20px!important;
    padding-bottom:20px!important;
  }
  #publicGate.v99-active .v99-lodging{
    padding:18px!important;
  }
  #publicGate.v99-active .v99-footer{
    padding-top:34px!important;
    padding-bottom:34px!important;
  }
}


/* ========================================================================== */
/* V116 — titre distinct du menu + échelle typographique unifiée              */
/* ========================================================================== */
#publicGate.v99-active{
  --v116-xs:11px;
  --v116-sm:13px;
  --v116-body:15px;
  --v116-control:14px;
  --v116-nav-title:17px;
  --v116-card-title:24px;
  --v116-section-title:40px;
}

/* Titre du site : identité fixe, indépendante des liens de navigation. */
#publicGate.v99-active .v114-nav-top{
  min-width:0!important;
}
#publicGate.v99-active .v99-brand{
  flex:0 1 auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  color:#FCF8F1!important;
  font-family:var(--g-serif)!important;
  font-size:var(--v116-nav-title)!important;
  font-weight:400!important;
  line-height:1.15!important;
  letter-spacing:.025em!important;
  text-decoration:none!important;
  cursor:default!important;
  white-space:nowrap!important;
}
#publicGate.v99-active .v99-brand:hover,
#publicGate.v99-active .v99-brand:focus{
  color:#FCF8F1!important;
}

/* Échelle commune du mini-site. */
#publicGate.v99-active .v99-site{
  font-size:var(--v116-body)!important;
  line-height:1.62!important;
}
#publicGate.v99-active .v99-nav-links a,
#publicGate.v99-active .v99-nav>div.v99-nav-links a{
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:750!important;
}
#publicGate.v99-active .v99-hero h1{
  font-size:clamp(42px,4.7vw,66px)!important;
  line-height:.98!important;
}
#publicGate.v99-active .v99-hero h1 em{
  font-size:.32em!important;
}
#publicGate.v99-active .v99-hero p{
  font-size:clamp(13px,.95vw,15px)!important;
  line-height:1.35!important;
}
#publicGate.v99-active .v99-hero strong{
  font-size:clamp(17px,1.45vw,22px)!important;
  line-height:1.3!important;
}
#publicGate.v99-active .v99-hero-place{
  font-size:var(--v116-sm)!important;
  line-height:1.45!important;
}
#publicGate.v99-active .v99-section-head h2{
  font-size:var(--v116-section-title)!important;
  line-height:1.08!important;
  letter-spacing:-.012em!important;
}
#publicGate.v99-active .v99-section-head small,
#publicGate.v99-active .fl,
#publicGate.v99-active .v99-lodging small{
  font-size:var(--v116-xs)!important;
  line-height:1.4!important;
}
#publicGate.v99-active .v99-person-head h3,
#publicGate.v99-active .v99-program-row h3,
#publicGate.v99-active .v99-lodging h3{
  font-size:var(--v116-card-title)!important;
  line-height:1.16!important;
}
#publicGate.v99-active .v99-program-row p,
#publicGate.v99-active .v99-lodging p,
#publicGate.v99-active .v99-empty,
#publicGate.v99-active .v99-companion-adder,
#publicGate.v99-active .v99-companion-state{
  font-size:var(--v116-sm)!important;
  line-height:1.6!important;
}
#publicGate.v99-active .v99-program-row time,
#publicGate.v99-active .v99-choice span,
#publicGate.v99-active .v99-contact summary,
#publicGate.v99-active .v99-details summary,
#publicGate.v99-active .v99-button,
#publicGate.v99-active .v114-menu-toggle{
  font-size:var(--v116-sm)!important;
  line-height:1.2!important;
}
#publicGate.v99-active input,
#publicGate.v99-active select,
#publicGate.v99-active textarea{
  font-size:var(--v116-control)!important;
  line-height:1.4!important;
}
#publicGate.v99-active .v99-footer{
  font-size:17px!important;
  line-height:1.35!important;
}

/* Un rythme vertical homogène entre les contenus. */
#publicGate.v99-active .v99-section-head{margin-bottom:30px!important}
#publicGate.v99-active .v99-person-head{margin-bottom:16px!important}
#publicGate.v99-active .v99-program-row p,
#publicGate.v99-active .v99-lodging p{margin-bottom:0!important}

@media(max-width:760px){
  #publicGate.v99-active{
    --v116-xs:11px;
    --v116-sm:12.5px;
    --v116-body:14.5px;
    --v116-control:16px;
    --v116-nav-title:15px;
    --v116-card-title:22px;
    --v116-section-title:31px;
  }
  #publicGate.v99-active .v114-nav-top{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    min-height:62px!important;
    padding:0 14px!important;
    gap:10px!important;
  }
  #publicGate.v99-active .v99-brand{
    width:auto!important;
    max-width:calc(100% - 102px)!important;
    height:auto!important;
    justify-content:flex-start!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  #publicGate.v99-active .v114-menu-toggle{
    flex:0 0 auto!important;
  }
  #publicGate.v99-active .v99-hero h1{
    font-size:clamp(25px,7.4vw,32px)!important;
    line-height:1!important;
  }
  #publicGate.v99-active .v99-hero p{
    font-size:12px!important;
  }
  #publicGate.v99-active .v99-hero strong{
    font-size:12px!important;
  }
  #publicGate.v99-active .v99-section-head{
    margin-bottom:22px!important;
  }
  #publicGate.v99-active .v99-nav-links a,
  #publicGate.v99-active .v99-nav>div.v99-nav-links a{
    font-size:13px!important;
  }
  #publicGate.v99-active .v99-footer{
    font-size:15px!important;
  }
}

@media(max-width:360px){
  #publicGate.v99-active{
    --v116-nav-title:14px;
    --v116-section-title:29px;
    --v116-card-title:21px;
  }
  #publicGate.v99-active .v99-brand{
    max-width:calc(100% - 94px)!important;
  }
}


/* ========================================================================== */
/* V117 — titre du mini-site aligné à gauche sur mobile                       */
/* ========================================================================== */
@media(max-width:760px){
  #publicGate.v99-active .v114-nav-top{
    justify-content:flex-start!important;
  }
  #publicGate.v99-active .v99-brand{
    display:block!important;
    flex:1 1 auto!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    margin:0 auto 0 0!important;
    padding:0!important;
    text-align:left!important;
    justify-content:flex-start!important;
  }
  #publicGate.v99-active .v114-menu-toggle{
    flex:0 0 auto!important;
    margin-left:auto!important;
  }
}


/* ========================================================================== */
/* V119 — identité modifiable depuis le mini-site                             */
/* ========================================================================== */
#publicGate.v99-active .v119-identity{
  margin:12px 0 16px!important;
  border:1px solid rgba(24,52,123,.10)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.46)!important;
  overflow:hidden!important;
}
#publicGate.v99-active .v119-identity>summary{
  padding:10px 12px!important;
  cursor:pointer!important;
  color:var(--g-blue)!important;
  font-size:13px!important;
  font-weight:600!important;
  list-style:none!important;
}
#publicGate.v99-active .v119-identity>summary::-webkit-details-marker{display:none!important}
#publicGate.v99-active .v119-identity>summary::after{
  content:'+'!important;
  float:right!important;
  font-size:16px!important;
  font-weight:400!important;
  line-height:1!important;
}
#publicGate.v99-active .v119-identity[open]>summary::after{content:'−'!important}
#publicGate.v99-active .v119-identity-body{
  padding:2px 12px 12px!important;
}
#publicGate.v99-active .v119-identity .v99-fields{
  gap:10px!important;
}
#publicGate.v99-active .v119-identity-help{
  display:block!important;
  margin-top:7px!important;
  color:#667085!important;
  font-size:11.5px!important;
  line-height:1.45!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v119-identity{
    margin:10px 0 14px!important;
  }
  #publicGate.v99-active .v119-identity>summary{
    padding:10px!important;
    font-size:12.5px!important;
  }
  #publicGate.v99-active .v119-identity-body{
    padding:2px 10px 10px!important;
  }
}


/* ========================================================================== */
/* V120 — note discrète sur les enfants, inspirée du Save the Date            */
/* ========================================================================== */
#publicGate.v99-active .v120-children-note{
  margin:0!important;
  padding:0 clamp(18px,4vw,56px) clamp(30px,4vw,48px)!important;
  background:var(--g-paper)!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v120-children-note-inner{
  width:min(880px,100%)!important;
  margin:0 auto!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:14px!important;
  padding:18px 22px!important;
  border:1px solid rgba(24,52,123,.13)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.42)!important;
}
#publicGate.v99-active .v120-children-note-icon{
  flex:0 0 auto!important;
  font-size:20px!important;
  line-height:1.35!important;
}
#publicGate.v99-active .v120-children-note p{
  margin:0!important;
  color:#44506b!important;
  font-family:var(--g-sans)!important;
  font-size:14px!important;
  line-height:1.7!important;
}
#publicGate.v99-active .v120-children-note p strong{
  display:block!important;
  margin:0 0 3px!important;
  color:var(--g-blue)!important;
  font-size:14px!important;
  font-weight:700!important;
  line-height:1.35!important;
}
#publicGate.v99-active .v120-children-note p span{
  display:block!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v120-children-note{
    padding:0 12px 28px!important;
  }
  #publicGate.v99-active .v120-children-note-inner{
    gap:10px!important;
    padding:14px 15px!important;
    border-radius:12px!important;
  }
  #publicGate.v99-active .v120-children-note-icon{
    font-size:18px!important;
  }
  #publicGate.v99-active .v120-children-note p,
  #publicGate.v99-active .v120-children-note p strong{
    font-size:12.5px!important;
  }
  #publicGate.v99-active .v120-children-note p{
    line-height:1.6!important;
  }
}


/* ========================================================================== */
/* V121 — édition d'identité par petit crayon + bandeau enfants pleine largeur */
/* ========================================================================== */
#publicGate.v99-active .v99-person-head{
  align-items:flex-start!important;
}
#publicGate.v99-active .v121-person-title{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  min-width:0!important;
}
#publicGate.v99-active .v121-person-title h3{
  margin:0!important;
}
#publicGate.v99-active .v121-person-actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin-left:auto!important;
}
#publicGate.v99-active .v121-edit-name{
  flex:0 0 auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:34px!important;
  height:34px!important;
  padding:0!important;
  border:1px solid rgba(24,52,123,.18)!important;
  border-radius:999px!important;
  background:#fff!important;
  color:var(--g-blue)!important;
  box-shadow:none!important;
  font-size:15px!important;
  line-height:1!important;
  cursor:pointer!important;
  transition:background-color .18s ease,border-color .18s ease,transform .18s ease!important;
}
#publicGate.v99-active .v121-edit-name:hover{
  background:rgba(24,52,123,.05)!important;
  border-color:rgba(24,52,123,.32)!important;
  transform:translateY(-1px)!important;
}
#publicGate.v99-active .v121-edit-name:focus-visible{
  outline:2px solid rgba(24,52,123,.22)!important;
  outline-offset:2px!important;
}
#publicGate.v99-active .v119-identity{
  margin-top:10px!important;
}
#publicGate.v99-active .v119-identity>summary,
#publicGate.v99-active .v121-identity-summary{
  display:none!important;
}
#publicGate.v99-active .v119-identity-body{
  padding-top:0!important;
}
#publicGate.v99-active .v119-identity-help{
  display:none!important;
}
#publicGate.v99-active .v120-children-note{
  margin:0!important;
  padding:18px 0 20px!important;
  background:linear-gradient(180deg,rgba(24,52,123,.06),rgba(24,52,123,.04))!important;
  border-top:1px solid rgba(24,52,123,.12)!important;
  border-bottom:1px solid rgba(24,52,123,.12)!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v120-children-note-inner{
  width:min(1100px,calc(100% - 48px))!important;
  margin:0 auto!important;
  display:flex!important;
  align-items:flex-start!important;
  gap:14px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
#publicGate.v99-active .v120-children-note p{
  margin:0!important;
  color:#44506b!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v121-person-title{
    gap:8px!important;
  }
  #publicGate.v99-active .v121-edit-name{
    width:30px!important;
    height:30px!important;
    font-size:14px!important;
  }
  #publicGate.v99-active .v120-children-note{
    padding:14px 0 16px!important;
  }
  #publicGate.v99-active .v120-children-note-inner{
    width:calc(100% - 24px)!important;
    gap:10px!important;
  }
}


/* ========================================================================== */
/* V122 — bandeau enfants dans Réserver la date + export CSV mini-sites       */
/* ========================================================================== */
#publicGate.v99-active #reserver-date .v120-children-note{
  width:100%!important;
  margin:18px 0 26px!important;
  padding:18px 0 20px!important;
  background:linear-gradient(90deg,rgba(24,52,123,.055),rgba(216,168,45,.07),rgba(24,52,123,.055))!important;
  border-top:1px solid rgba(24,52,123,.12)!important;
  border-bottom:1px solid rgba(24,52,123,.12)!important;
}
#publicGate.v99-active #reserver-date .v120-children-note-inner{
  width:min(1100px,calc(100% - 48px))!important;
  margin:0 auto!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
#publicGate.v99-active #reserver-date .v99-section-head{
  margin-bottom:0!important;
}
#publicGate.v99-active #reserver-date .v122-save-content{
  padding-top:0!important;
}
@media(max-width:760px){
  #publicGate.v99-active #reserver-date .v120-children-note{
    margin:14px 0 20px!important;
    padding:14px 0 16px!important;
  }
  #publicGate.v99-active #reserver-date .v120-children-note-inner{
    width:calc(100% - 24px)!important;
  }
}


/* ========================================================================== */
/* V123 — suppression du double trait sous le nom dans les fiches invité      */
/* ========================================================================== */
#publicGate.v99-active .v119-identity{
  margin:8px 0 14px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  overflow:visible!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v119-identity-body{
  padding:2px 0 0!important;
}
#publicGate.v99-active .v119-identity .v99-fields{
  padding:12px!important;
  border:1px solid rgba(24,52,123,.10)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.72)!important;
}
@media (max-width:760px){
  #publicGate.v99-active .v119-identity{
    margin:6px 0 12px!important;
  }
  #publicGate.v99-active .v119-identity .v99-fields{
    padding:10px!important;
  }
}


/* ========================================================================== */
/* V124 — texte enfants intégré simplement sous le titre Réserver la date     */
/* ========================================================================== */
#publicGate.v99-active .v124-children-text{
  margin:10px 0 26px!important;
  max-width:760px!important;
  color:#657188!important;
  font-family:'DM Sans',Arial,Helvetica,sans-serif!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.75!important;
  letter-spacing:0!important;
  text-wrap:pretty!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v124-children-text{
    margin:6px 0 20px!important;
    max-width:none!important;
    font-size:13.5px!important;
    line-height:1.7!important;
  }
}


/* V125 — meilleure intégration du texte enfants */
#publicGate.v99-active #reserver-date .v99-section-head{
  margin-bottom:10px!important;
}
#publicGate.v99-active #reserver-date #familySaveResponse{
  margin-top:6px!important;
}


/* ========================================================================== */
/* V126 — texte enfants sur toute la largeur de la section                    */
/* ========================================================================== */
#publicGate.v99-active #reserver-date .v124-children-text{
  width:100%!important;
  max-width:none!important;
}
@media(max-width:760px){
  #publicGate.v99-active #reserver-date .v124-children-text{
    width:100%!important;
    max-width:none!important;
  }
}


/* ========================================================================== */
/* V128 — rappel enfants intégré à la section Réserver la date                */
/* ========================================================================== */
#publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
  width:100%!important;
  max-width:none!important;
  margin:12px 0 28px!important;
  padding:13px 16px 13px 18px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:start!important;
  gap:12px!important;
  border-left:3px solid rgba(216,168,45,.78)!important;
  border-radius:0 10px 10px 0!important;
  background:rgba(216,168,45,.055)!important;
  color:#59667c!important;
  font-size:13.5px!important;
  line-height:1.65!important;
}
#publicGate.v99-active #reserver-date .v128-reminder-label{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:24px!important;
  padding:0 9px!important;
  border-radius:999px!important;
  background:rgba(216,168,45,.16)!important;
  color:#8b6810!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}
#publicGate.v99-active #reserver-date .v128-reminder>span:last-child{
  display:block!important;
  padding-top:1px!important;
}
@media(max-width:760px){
  #publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
    margin:10px 0 22px!important;
    padding:12px 13px 12px 14px!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    font-size:13px!important;
    line-height:1.62!important;
  }
  #publicGate.v99-active #reserver-date .v128-reminder-label{
    justify-self:start!important;
  }
}



/* ========================================================================== */
/* V129 — question explicite avant les boutons de réponse                     */
/* ========================================================================== */
#publicGate.v99-active .v129-response-question{
  margin:4px 0 10px!important;
  color:var(--g-blue)!important;
  font-family:'DM Sans',Arial,Helvetica,sans-serif!important;
  font-size:13.5px!important;
  font-weight:700!important;
  line-height:1.4!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v129-response-question{
    margin:2px 0 9px!important;
    font-size:13px!important;
  }
}


/* ========================================================================== */
/* V130 — accès à un autre espace famille                                     */
/* ========================================================================== */
#publicGate.v99-active .v130-code-switch{
  margin:0!important;
  padding:28px clamp(20px,5vw,70px) 34px!important;
  background:var(--g-ivory)!important;
  border-top:1px solid var(--g-line)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  width:min(1220px,100%)!important;
  margin:0 auto!important;
  padding:18px 20px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:22px!important;
  border:1px solid rgba(24,52,123,.12)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.56)!important;
}
#publicGate.v99-active .v130-code-copy{
  display:grid!important;
  gap:4px!important;
  min-width:0!important;
}
#publicGate.v99-active .v130-code-copy strong{
  color:var(--g-blue)!important;
  font-family:var(--g-serif)!important;
  font-size:clamp(17px,1.3vw,20px)!important;
  font-weight:400!important;
  line-height:1.2!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#667085!important;
  font-size:12.5px!important;
  line-height:1.45!important;
}
#publicGate.v99-active .v130-code-form{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
#publicGate.v99-active .v130-code-form input{
  width:190px!important;
  min-height:44px!important;
  padding:0 12px!important;
  border:1px solid rgba(24,52,123,.18)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--g-blue)!important;
  font-variant-numeric:tabular-nums!important;
  letter-spacing:.06em!important;
}
#publicGate.v99-active .v130-code-form .v99-button{
  min-height:44px!important;
  margin:0!important;
  white-space:nowrap!important;
}
#publicGate.v99-active .sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v130-code-switch{
    padding:22px 12px 26px!important;
  }
  #publicGate.v99-active .v130-code-switch-inner{
    padding:16px!important;
    display:grid!important;
    gap:14px!important;
  }
  #publicGate.v99-active .v130-code-form{
    width:100%!important;
  }
  #publicGate.v99-active .v130-code-form input{
    width:auto!important;
    flex:1 1 auto!important;
    min-width:0!important;
  }
}
@media(max-width:420px){
  #publicGate.v99-active .v130-code-form{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  #publicGate.v99-active .v130-code-form input,
  #publicGate.v99-active .v130-code-form .v99-button{
    width:100%!important;
  }
}


/* ========================================================================== */
/* V132 — encarts en tons orangés demandés                                    */
/* ========================================================================== */
#publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
  border-left:4px solid #F06F16!important;
  border-radius:0 12px 12px 0!important;
  background:linear-gradient(180deg,rgba(240,111,22,.10),rgba(226,144,53,.06))!important;
  color:#6d4a27!important;
  box-shadow:inset 0 0 0 1px rgba(240,111,22,.08)!important;
}
#publicGate.v99-active #reserver-date .v128-reminder-label{
  background:rgba(240,111,22,.16)!important;
  color:#A64B0B!important;
}
#publicGate.v99-active #reserver-date .v128-reminder>span:last-child{
  color:#77553a!important;
}
#publicGate.v99-active .v130-code-switch{
  background:linear-gradient(180deg,rgba(240,111,22,.05),rgba(216,168,45,.04))!important;
  border-top:1px solid rgba(240,111,22,.16)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  border:1px solid rgba(240,111,22,.16)!important;
  background:rgba(252,248,241,.92)!important;
  box-shadow:0 10px 26px rgba(240,111,22,.06)!important;
}
#publicGate.v99-active .v130-code-copy strong{
  color:#C65A10!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#8B6A4A!important;
}
#publicGate.v99-active .v130-code-form input{
  border:1px solid rgba(226,144,53,.28)!important;
  background:#fffdfa!important;
  color:#8A420D!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  outline:none!important;
  border-color:#F06F16!important;
  box-shadow:0 0 0 4px rgba(240,111,22,.10)!important;
}


/* ========================================================================== */
/* V133 — bloc accompagnant plus esthétique                                   */
/* ========================================================================== */
#publicGate.v99-active .v99-companion-adder,
#publicGate.v99-active .v99-companion-state{
  margin-top:18px!important;
  border-radius:18px!important;
}
#publicGate.v99-active .v99-companion-adder{
  border:1px dashed rgba(216,168,45,.70)!important;
  background:linear-gradient(180deg,rgba(240,111,22,.045),rgba(216,168,45,.035))!important;
  overflow:hidden!important;
}
#publicGate.v99-active .v99-companion-adder summary{
  list-style:none!important;
  display:grid!important;
  grid-template-columns:56px minmax(0,1fr)!important;
  align-items:center!important;
  gap:14px!important;
  padding:18px 20px!important;
  cursor:pointer!important;
}
#publicGate.v99-active .v99-companion-adder summary::-webkit-details-marker{
  display:none!important;
}
#publicGate.v99-active .v99-companion-summary-icon{
  width:56px!important;
  height:56px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(180deg,#F06F16,#E29035)!important;
  color:#fff!important;
  font-family:var(--g-serif)!important;
  font-size:36px!important;
  font-weight:400!important;
  line-height:1!important;
  box-shadow:0 10px 22px rgba(240,111,22,.18)!important;
}
#publicGate.v99-active .v99-companion-summary-copy{
  min-width:0!important;
  display:grid!important;
  gap:4px!important;
}
#publicGate.v99-active .v99-companion-summary-copy strong{
  color:var(--g-blue)!important;
  font-family:var(--g-serif)!important;
  font-size:clamp(18px,1.6vw,24px)!important;
  font-weight:400!important;
  line-height:1.15!important;
}
#publicGate.v99-active .v99-companion-summary-copy small{
  display:block!important;
  color:#80654d!important;
  font-size:13px!important;
  line-height:1.5!important;
}
#publicGate.v99-active .v99-companion-adder[open] summary{
  padding-bottom:14px!important;
}
#publicGate.v99-active .v99-companion-adder form{
  margin:0!important;
  padding:0 20px 20px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:12px!important;
  align-items:end!important;
}
#publicGate.v99-active .v99-companion-adder .field{
  margin:0!important;
}
#publicGate.v99-active .v99-companion-state{
  padding:16px 18px!important;
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  gap:12px!important;
  align-items:center!important;
  border:1px solid rgba(136,149,44,.28)!important;
  background:linear-gradient(180deg,rgba(136,149,44,.08),rgba(136,149,44,.05))!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v99-companion-state-icon{
  width:42px!important;
  height:42px!important;
  border-radius:999px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:rgba(136,149,44,.16)!important;
  color:#6E7B22!important;
  font-size:22px!important;
  font-weight:800!important;
}
#publicGate.v99-active .v99-companion-state strong{
  display:block!important;
  font-family:var(--g-serif)!important;
  font-size:18px!important;
  font-weight:400!important;
  line-height:1.2!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v99-companion-state span:last-child{
  display:block!important;
  margin-top:3px!important;
  color:#6f7a8f!important;
  font-size:12.5px!important;
  line-height:1.45!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v99-companion-adder summary{
    grid-template-columns:48px minmax(0,1fr)!important;
    gap:12px!important;
    padding:15px 14px!important;
  }
  #publicGate.v99-active .v99-companion-summary-icon{
    width:48px!important;
    height:48px!important;
    font-size:32px!important;
  }
  #publicGate.v99-active .v99-companion-summary-copy strong{
    font-size:18px!important;
  }
  #publicGate.v99-active .v99-companion-summary-copy small{
    font-size:12.5px!important;
  }
  #publicGate.v99-active .v99-companion-adder form{
    grid-template-columns:1fr!important;
    padding:0 14px 14px!important;
    gap:10px!important;
  }
  #publicGate.v99-active .v99-companion-adder .v99-button{
    width:100%!important;
  }
}


/* ========================================================================== */
/* V134 — bloc autre espace famille beige + délais en tons orangés           */
/* ========================================================================== */
#publicGate.v99-active .v130-code-switch{
  background:var(--g-ivory)!important;
  border-top:1px solid var(--g-line)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  border:1px solid rgba(24,52,123,.10)!important;
  background:var(--g-ivory)!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-copy strong{
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#6d7688!important;
}
#publicGate.v99-active .v130-code-form input{
  border:1px solid rgba(24,52,123,.16)!important;
  background:#fffdf9!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active #reserver-date .v99-section-head small,
#publicGate.v99-active #reponse-definitive .v99-section-head small{
  display:inline-flex!important;
  align-items:center!important;
  min-height:34px!important;
  padding:7px 12px!important;
  border-radius:999px!important;
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.02em!important;
}
#publicGate.v99-active #reserver-date .v99-section-head small{
  color:#A64B0B!important;
  background:linear-gradient(180deg,rgba(240,111,22,.12),rgba(226,144,53,.10))!important;
  border:1px solid rgba(240,111,22,.20)!important;
}
#publicGate.v99-active #reponse-definitive .v99-section-head small{
  color:#FFE7C8!important;
  background:linear-gradient(180deg,rgba(240,111,22,.26),rgba(226,144,53,.18))!important;
  border:1px solid rgba(255,228,190,.20)!important;
}
@media(max-width:760px){
  #publicGate.v99-active #reserver-date .v99-section-head small,
  #publicGate.v99-active #reponse-definitive .v99-section-head small{
    min-height:32px!important;
    padding:6px 11px!important;
    font-size:10.5px!important;
  }
}


/* ========================================================================== */
/* V135 — accompagnant franchement orange + changement d'espace beige soutenu */
/* ========================================================================== */
#publicGate.v99-active .v99-companion-adder{
  border:1.5px solid rgba(240,111,22,.42)!important;
  background:linear-gradient(135deg,rgba(240,111,22,.105),rgba(226,144,53,.075))!important;
  box-shadow:0 10px 28px rgba(240,111,22,.07)!important;
}
#publicGate.v99-active .v99-companion-adder summary{
  color:#B8500C!important;
}
#publicGate.v99-active .v99-companion-summary-copy strong{
  color:#C75A0D!important;
}
#publicGate.v99-active .v99-companion-summary-copy small{
  color:#8A5A36!important;
}
#publicGate.v99-active .v99-companion-summary-icon{
  background:linear-gradient(180deg,#F06F16 0%,#E29035 100%)!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(240,111,22,.22)!important;
}
#publicGate.v99-active .v99-companion-adder[open]{
  background:linear-gradient(135deg,rgba(240,111,22,.12),rgba(226,144,53,.08))!important;
}
#publicGate.v99-active .v99-companion-adder input{
  border-color:rgba(240,111,22,.26)!important;
  background:#fffaf5!important;
}
#publicGate.v99-active .v99-companion-adder input:focus{
  border-color:#F06F16!important;
  box-shadow:0 0 0 4px rgba(240,111,22,.10)!important;
  outline:none!important;
}
#publicGate.v99-active .v99-companion-adder .v99-button{
  background:#F06F16!important;
  border-color:#F06F16!important;
  color:#fff!important;
}
#publicGate.v99-active .v99-companion-adder .v99-button:hover,
#publicGate.v99-active .v99-companion-adder .v99-button:focus-visible{
  background:#D85F10!important;
  border-color:#D85F10!important;
}

#publicGate.v99-active .v130-code-switch{
  background:#E3D2BA!important;
  border-top:1px solid rgba(122,91,57,.18)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  border:1px solid rgba(122,91,57,.20)!important;
  background:#EBDCC8!important;
  box-shadow:0 10px 28px rgba(99,72,44,.07)!important;
}
#publicGate.v99-active .v130-code-copy strong{
  color:#5F4934!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#7A624B!important;
}
#publicGate.v99-active .v130-code-form input{
  border:1px solid rgba(122,91,57,.28)!important;
  background:#F8F0E5!important;
  color:#5F4934!important;
}
#publicGate.v99-active .v130-code-form input::placeholder{
  color:#9A8168!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  border-color:#B48B5D!important;
  box-shadow:0 0 0 4px rgba(180,139,93,.12)!important;
  outline:none!important;
}
#publicGate.v99-active .v130-code-form .v99-button{
  background:#8A6A49!important;
  border-color:#8A6A49!important;
  color:#fff!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible{
  background:#735637!important;
  border-color:#735637!important;
}


/* ========================================================================== */
/* V136 — libellé accompagnant orange + bloc autre famille comme le footer    */
/* ========================================================================== */
#publicGate.v99-active .v99-companion-adder .fl{
  color:#C75A0D!important;
  font-weight:800!important;
}
#publicGate.v99-active .v99-companion-adder .v99-companion-summary-icon{
  background:linear-gradient(180deg,#F06F16 0%,#E29035 100%)!important;
  color:#fff!important;
}
#publicGate.v99-active .v130-code-switch{
  background:var(--g-ivory)!important;
  border-top:1px solid rgba(24,52,123,.10)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  background:var(--g-ivory)!important;
  border:1px solid rgba(24,52,123,.10)!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-copy strong{
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#6F6A63!important;
}
#publicGate.v99-active .v130-code-form input{
  background:#FFFDF9!important;
  border-color:rgba(24,52,123,.14)!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v130-code-form input::placeholder{
  color:#9A938A!important;
}
#publicGate.v99-active .v130-code-form .v99-button{
  background:#9A7A58!important;
  border-color:#9A7A58!important;
  color:#fff!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible{
  background:#806347!important;
  border-color:#806347!important;
}


/* ========================================================================== */
/* V137 — bloc accompagnant revenu aux tons bleus de la charte                */
/* ========================================================================== */
#publicGate.v99-active .v99-companion-adder{
  border:1.5px solid rgba(24,52,123,.26)!important;
  background:linear-gradient(135deg,rgba(24,52,123,.075),rgba(24,52,123,.035))!important;
  box-shadow:0 10px 28px rgba(24,52,123,.055)!important;
}
#publicGate.v99-active .v99-companion-adder summary{
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v99-companion-summary-copy strong{
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v99-companion-summary-copy small{
  color:#66728A!important;
}
#publicGate.v99-active .v99-companion-summary-icon{
  background:linear-gradient(180deg,#18347B 0%,#274897 100%)!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(24,52,123,.18)!important;
}
#publicGate.v99-active .v99-companion-adder[open]{
  background:linear-gradient(135deg,rgba(24,52,123,.09),rgba(24,52,123,.04))!important;
}
#publicGate.v99-active .v99-companion-adder .fl{
  color:var(--g-blue)!important;
  font-weight:800!important;
}
#publicGate.v99-active .v99-companion-adder input{
  border-color:rgba(24,52,123,.20)!important;
  background:#fff!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active .v99-companion-adder input:focus{
  border-color:var(--g-blue)!important;
  box-shadow:0 0 0 4px rgba(24,52,123,.10)!important;
  outline:none!important;
}
#publicGate.v99-active .v99-companion-adder .v99-button{
  background:var(--g-blue)!important;
  border-color:var(--g-blue)!important;
  color:#fff!important;
}
#publicGate.v99-active .v99-companion-adder .v99-button:hover,
#publicGate.v99-active .v99-companion-adder .v99-button:focus-visible{
  background:#102964!important;
  border-color:#102964!important;
}


/* ========================================================================== */
/* V138 — + accompagnant bleu + bloc autre espace famille en beiges          */
/* ========================================================================== */
#publicGate.v99-active .v99-companion-adder summary .v99-companion-summary-icon,
#publicGate.v99-active .v99-companion-adder[open] summary .v99-companion-summary-icon,
#publicGate.v99-active .v99-companion-adder .v99-companion-summary-icon{
  background:linear-gradient(180deg,#18347B 0%,#274897 100%)!important;
  color:#ffffff!important;
  box-shadow:0 10px 22px rgba(24,52,123,.18)!important;
}
#publicGate.v99-active .v130-code-switch{
  background:var(--g-ivory)!important;
  border-top:1px solid rgba(156,133,105,.18)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  background:#F7F1E8!important;
  border:1px solid rgba(156,133,105,.20)!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-copy strong{
  color:#8C6F52!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#7B6C5C!important;
}
#publicGate.v99-active .v130-code-form input{
  background:#FCF8F1!important;
  border:1px solid rgba(156,133,105,.26)!important;
  color:#7D6348!important;
}
#publicGate.v99-active .v130-code-form input::placeholder{
  color:#A58E77!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  border-color:#9A7A58!important;
  box-shadow:0 0 0 4px rgba(154,122,88,.10)!important;
}
#publicGate.v99-active .v130-code-form .v99-button{
  background:#A6845E!important;
  border-color:#A6845E!important;
  color:#fff!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible{
  background:#8D6F4F!important;
  border-color:#8D6F4F!important;
}


/* ========================================================================== */
/* V140 — bloc accompagnant identique en Réponse définitive et Save the Date */
/* ========================================================================== */
#publicGate.v99-active #reponse-definitive .v99-companion-adder,
#publicGate.v99-active #reponse-definitive .v99-companion-state{
  border:1.5px solid rgba(24,52,123,.26)!important;
  background:linear-gradient(135deg,rgba(24,52,123,.075),rgba(24,52,123,.035))!important;
  box-shadow:0 10px 28px rgba(24,52,123,.055)!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active #reponse-definitive .v99-companion-adder[open]{
  background:linear-gradient(135deg,rgba(24,52,123,.09),rgba(24,52,123,.04))!important;
}
#publicGate.v99-active #reponse-definitive .v99-companion-adder summary,
#publicGate.v99-active #reponse-definitive .v99-companion-summary-copy strong,
#publicGate.v99-active #reponse-definitive .v99-companion-adder .fl{
  color:var(--g-blue)!important;
}
#publicGate.v99-active #reponse-definitive .v99-companion-summary-copy small{
  color:#66728A!important;
}
#publicGate.v99-active #reponse-definitive .v99-companion-summary-icon,
#publicGate.v99-active #reponse-definitive .v99-companion-adder summary .v99-companion-summary-icon,
#publicGate.v99-active #reponse-definitive .v99-companion-adder[open] summary .v99-companion-summary-icon{
  background:linear-gradient(180deg,#18347B 0%,#274897 100%)!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(24,52,123,.18)!important;
}
#publicGate.v99-active #reponse-definitive .v99-companion-adder input{
  border-color:rgba(24,52,123,.20)!important;
  background:#fff!important;
  color:var(--g-blue)!important;
}
#publicGate.v99-active #reponse-definitive .v99-companion-adder input:focus{
  border-color:var(--g-blue)!important;
  box-shadow:0 0 0 4px rgba(24,52,123,.10)!important;
  outline:none!important;
}
#publicGate.v99-active #reponse-definitive .v99-companion-adder .v99-button{
  background:var(--g-blue)!important;
  border-color:var(--g-blue)!important;
  color:#fff!important;
}
#publicGate.v99-active #reponse-definitive .v99-companion-adder .v99-button:hover,
#publicGate.v99-active #reponse-definitive .v99-companion-adder .v99-button:focus-visible{
  background:#102964!important;
  border-color:#102964!important;
}


/* ========================================================================== */
/* V141 — rappel Save the Date dans la réponse définitive                     */
/* ========================================================================== */
.v141-save-recall{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid rgba(24,52,123,.12);
  border-radius:16px;
  background:rgba(255,255,255,.72);
}
.v141-save-recall-label{
  font-size:12px;
  line-height:1.2;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:#6E7A95;
}
.v141-save-recall-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:8px 14px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
  white-space:nowrap;
}
.v141-save-recall-badge.is-likely{
  background:rgba(24,52,123,.10);
  color:var(--g-blue);
}
.v141-save-recall-badge.is-maybe{
  background:rgba(216,168,45,.18);
  color:#8B6610;
}
.v141-save-recall-badge.is-unlikely{
  background:rgba(240,111,22,.14);
  color:#B04D10;
}
.v141-save-recall-badge.is-unknown{
  background:rgba(96,106,127,.10);
  color:#5F687A;
}
@media (max-width: 640px){
  .v141-save-recall{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* ========================================================================== */
/* V142 — palette mini-site limitée aux bleus, oranges et beiges              */
/* ========================================================================== */
#publicGate.v99-active{
  --g-blue:#18347B!important;
  --g-green:#18347B!important; /* ancien vert neutralisé au profit du bleu */
  --g-gold:#D8A82D!important;
  --g-terracotta:#E29035!important;
  --g-orange:#F06F16!important;
  --g-ivory:#FCF8F1!important;
  --g-paper:#FFF9F2!important;
  --g-line:rgba(24,52,123,.14)!important;
  color:#314A82!important;
  background:#FCF8F1!important;
}
#publicGate.v99-active .v99-site,
#publicGate.v99-active .v99-hero,
#publicGate.v99-active .v99-footer{
  background:#FCF8F1!important;
  color:#18347B!important;
}
#publicGate.v99-active .v99-nav{
  background:rgba(252,248,241,.97)!important;
  border-bottom-color:rgba(24,52,123,.14)!important;
}
#publicGate.v99-active .v99-section,
#publicGate.v99-active .v99-section-soft,
#publicGate.v99-active .v99-section-blue{
  background:#FFF9F2!important;
  color:#18347B!important;
}
#publicGate.v99-active .v99-section-blue .v99-section-head h2,
#publicGate.v99-active .v99-section-blue .v99-section-head small,
#publicGate.v99-active .v99-section-blue .v99-person-head h3,
#publicGate.v99-active .v99-section-blue .fl,
#publicGate.v99-active .v99-section-blue .v99-contact summary,
#publicGate.v99-active .v99-section-blue .v99-details summary{
  color:#18347B!important;
}
#publicGate.v99-active .v99-section-blue .v99-section-head{
  border-color:rgba(24,52,123,.14)!important;
}

/* Textes secondaires : toujours dans la famille des bleus. */
#publicGate.v99-active .v99-program-row p,
#publicGate.v99-active .v99-lodging p,
#publicGate.v99-active .v99-empty,
#publicGate.v99-active .v99-companion-summary-copy small,
#publicGate.v99-active .v99-companion-state span:last-child,
#publicGate.v99-active .v130-code-copy span,
#publicGate.v99-active .v124-children-text,
#publicGate.v99-active .v141-save-recall-label,
#publicGate.v99-active .public-result{
  color:#5E6F9B!important;
}

/* Cartes, formulaires et champs : beige clair + bleu. */
#publicGate.v99-active .v99-person,
#publicGate.v99-active .v99-lodging,
#publicGate.v99-active .v99-contact,
#publicGate.v99-active .v99-details,
#publicGate.v99-active .v119-identity .v99-fields,
#publicGate.v99-active .v141-save-recall{
  background:#FFFBF5!important;
  border-color:rgba(24,52,123,.14)!important;
  color:#18347B!important;
}
#publicGate.v99-active input,
#publicGate.v99-active select,
#publicGate.v99-active textarea,
#publicGate.v99-active .v99-section-blue input,
#publicGate.v99-active .v99-section-blue select,
#publicGate.v99-active .v99-section-blue textarea{
  background:#FFFBF5!important;
  border-color:rgba(24,52,123,.18)!important;
  color:#18347B!important;
}
#publicGate.v99-active input::placeholder,
#publicGate.v99-active textarea::placeholder{
  color:#8793B3!important;
}
#publicGate.v99-active input:focus,
#publicGate.v99-active select:focus,
#publicGate.v99-active textarea:focus{
  border-color:#E29035!important;
  outline:3px solid rgba(226,144,53,.12)!important;
  box-shadow:none!important;
}

/* Choix : bleu pour Oui, ocre/orange pour Peut-être, orange vif pour Non. */
#publicGate.v99-active .v99-choice span,
#publicGate.v99-active .v99-section-blue .v99-choice span{
  background:#FFFBF5!important;
  border-color:rgba(24,52,123,.16)!important;
  color:#18347B!important;
}
#publicGate.v99-active .v99-choice label:first-child input:checked+span,
#publicGate.v99-active .v99-section-blue .v99-choice label:first-child input:checked+span{
  background:#18347B!important;
  border-color:#18347B!important;
  color:#FCF8F1!important;
  box-shadow:0 8px 18px rgba(24,52,123,.16)!important;
}
#publicGate.v99-active .v99-choice-three label:nth-child(2) input:checked+span{
  background:#D8A82D!important;
  border-color:#D8A82D!important;
  color:#18347B!important;
}
#publicGate.v99-active .v99-choice-three label:nth-child(3) input:checked+span,
#publicGate.v99-active .v99-choice-two label:nth-child(2) input:checked+span,
#publicGate.v99-active .v99-section-blue .v99-choice label:last-child input:checked+span{
  background:#F06F16!important;
  border-color:#F06F16!important;
  color:#FCF8F1!important;
  box-shadow:0 8px 18px rgba(240,111,22,.16)!important;
}

/* Éléments autrefois verts : désormais bleus/oranges. */
#publicGate.v99-active .v99-person.is-companion{
  border-color:rgba(24,52,123,.28)!important;
}
#publicGate.v99-active .v99-companion-state{
  border-color:rgba(24,52,123,.20)!important;
  background:rgba(24,52,123,.055)!important;
  color:#18347B!important;
}
#publicGate.v99-active .v99-companion-state-icon{
  background:rgba(24,52,123,.11)!important;
  color:#18347B!important;
}
#publicGate.v99-active .v99-lodging small{
  color:#E29035!important;
}
#publicGate.v99-active .public-success,
#publicGate.v99-active .v99-section-blue .public-success{
  border-color:rgba(24,52,123,.18)!important;
  background:rgba(24,52,123,.055)!important;
  color:#18347B!important;
}

/* Rappel enfants : orange/ocre, sans brun ni vert. */
#publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
  border-left-color:#F06F16!important;
  background:linear-gradient(180deg,rgba(240,111,22,.085),rgba(226,144,53,.05))!important;
  color:#18347B!important;
  box-shadow:inset 0 0 0 1px rgba(240,111,22,.07)!important;
}
#publicGate.v99-active #reserver-date .v128-reminder-label{
  background:rgba(240,111,22,.14)!important;
  color:#C4540C!important;
}
#publicGate.v99-active #reserver-date .v128-reminder>span:last-child{
  color:#506392!important;
}

/* Délais : orange. */
#publicGate.v99-active #reserver-date .v99-section-head small,
#publicGate.v99-active #reponse-definitive .v99-section-head small{
  color:#C4540C!important;
  background:rgba(240,111,22,.09)!important;
  border:1px solid rgba(240,111,22,.18)!important;
}

/* Bloc accompagnant : exclusivement bleu + beige. */
#publicGate.v99-active .v99-companion-adder,
#publicGate.v99-active #reponse-definitive .v99-companion-adder{
  border-color:rgba(24,52,123,.24)!important;
  background:linear-gradient(135deg,rgba(24,52,123,.065),rgba(24,52,123,.025))!important;
  color:#18347B!important;
}
#publicGate.v99-active .v99-companion-summary-copy strong,
#publicGate.v99-active .v99-companion-adder .fl,
#publicGate.v99-active #reponse-definitive .v99-companion-summary-copy strong,
#publicGate.v99-active #reponse-definitive .v99-companion-adder .fl{
  color:#18347B!important;
}
#publicGate.v99-active .v99-companion-summary-icon,
#publicGate.v99-active .v99-companion-adder summary .v99-companion-summary-icon,
#publicGate.v99-active #reponse-definitive .v99-companion-summary-icon{
  background:linear-gradient(180deg,#18347B,#274897)!important;
  color:#FCF8F1!important;
}
#publicGate.v99-active .v99-companion-adder .v99-button,
#publicGate.v99-active #reponse-definitive .v99-companion-adder .v99-button{
  background:#18347B!important;
  border-color:#18347B!important;
  color:#FCF8F1!important;
}

/* Bloc autre espace famille : beiges, texte bleu, action orange. */
#publicGate.v99-active .v130-code-switch{
  background:#FCF8F1!important;
  border-top-color:rgba(24,52,123,.10)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  background:#F2E7D7!important;
  border-color:#E5D7C3!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-copy strong{
  color:#18347B!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#5E6F9B!important;
}
#publicGate.v99-active .v130-code-form input{
  background:#FCF8F1!important;
  border-color:#DCCCB5!important;
  color:#18347B!important;
}
#publicGate.v99-active .v130-code-form input::placeholder{
  color:#8E98B3!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  border-color:#E29035!important;
  box-shadow:0 0 0 4px rgba(226,144,53,.10)!important;
}
#publicGate.v99-active .v130-code-form .v99-button{
  background:#E29035!important;
  border-color:#E29035!important;
  color:#FCF8F1!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible{
  background:#F06F16!important;
  border-color:#F06F16!important;
}

/* Rappel de la réponse Save the Date : palette harmonisée. */
#publicGate.v99-active .v141-save-recall-label{
  color:#5E6F9B!important;
}
#publicGate.v99-active .v141-save-recall-badge.is-likely{
  background:rgba(24,52,123,.10)!important;
  color:#18347B!important;
}
#publicGate.v99-active .v141-save-recall-badge.is-maybe{
  background:rgba(216,168,45,.17)!important;
  color:#B57A0B!important;
}
#publicGate.v99-active .v141-save-recall-badge.is-unlikely{
  background:rgba(240,111,22,.13)!important;
  color:#C4540C!important;
}
#publicGate.v99-active .v141-save-recall-badge.is-unknown{
  background:#F2E7D7!important;
  color:#18347B!important;
}


/* ========================================================================== */
/* V143 — nuances de beige par section + navigation bleu / texte beige       */
/* ========================================================================== */
#publicGate.v99-active{
  --v143-beige-hero:#FCF8F1;
  --v143-beige-save:#FFF9F2;
  --v143-beige-rsvp:#F6EDDF;
  --v143-beige-program:#FBF2E6;
  --v143-beige-lodging:#F1E4D2;
  --v143-beige-footer:#FCF8F1;
}

/* Hero : beige de référence. */
#publicGate.v99-active .v99-hero{
  background:var(--v143-beige-hero)!important;
}

/* Chaque rubrique reçoit une nuance distincte mais très proche. */
#publicGate.v99-active #reserver-date{
  background:var(--v143-beige-save)!important;
}
#publicGate.v99-active #reponse-definitive,
#publicGate.v99-active #reponse-definitive.v99-section-blue{
  background:var(--v143-beige-rsvp)!important;
  color:#18347B!important;
}
#publicGate.v99-active #programme{
  background:var(--v143-beige-program)!important;
}
#publicGate.v99-active #hebergements,
#publicGate.v99-active #hebergements.v99-section-soft{
  background:var(--v143-beige-lodging)!important;
}
#publicGate.v99-active .v99-footer{
  background:var(--v143-beige-footer)!important;
}

/* Séparateurs doux pour garder le rythme sans créer de barres dures. */
#publicGate.v99-active #reserver-date,
#publicGate.v99-active #reponse-definitive,
#publicGate.v99-active #programme,
#publicGate.v99-active #hebergements{
  border-bottom-color:rgba(24,52,123,.10)!important;
}

/* Navigation : bleu profond, tout le texte reste beige. */
#publicGate.v99-active .v99-nav{
  background:#18347B!important;
  border-bottom:1px solid rgba(252,248,241,.16)!important;
  box-shadow:0 8px 24px rgba(24,52,123,.12)!important;
}
#publicGate.v99-active .v99-brand,
#publicGate.v99-active .v99-nav-links a,
#publicGate.v99-active .v99-nav>div.v99-nav-links a,
#publicGate.v99-active .v114-menu-toggle{
  color:#FCF8F1!important;
}
#publicGate.v99-active .v99-nav-links a:hover,
#publicGate.v99-active .v99-nav-links a:focus-visible,
#publicGate.v99-active .v99-nav>div.v99-nav-links a:hover,
#publicGate.v99-active .v99-nav>div.v99-nav-links a:focus-visible{
  color:#FCF8F1!important;
  background:rgba(252,248,241,.10)!important;
  border-color:rgba(252,248,241,.20)!important;
}
#publicGate.v99-active .v99-nav-links a.is-active,
#publicGate.v99-active .v99-nav>div.v99-nav-links a.is-active{
  color:#FCF8F1!important;
  background:rgba(240,111,22,.18)!important;
  border-color:rgba(226,144,53,.42)!important;
}

/* Mobile : même palette pour le bouton et le menu déroulé. */
@media(max-width:760px){
  #publicGate.v99-active .v99-nav,
  #publicGate.v99-active .v99-nav-links,
  #publicGate.v99-active .v99-nav>div.v99-nav-links{
    background:#18347B!important;
  }
  #publicGate.v99-active .v99-brand{
    color:#FCF8F1!important;
  }
  #publicGate.v99-active .v114-menu-toggle{
    background:rgba(252,248,241,.08)!important;
    border-color:rgba(252,248,241,.24)!important;
    color:#FCF8F1!important;
  }
  #publicGate.v99-active .v114-menu-chevron{
    color:#E29035!important;
  }
  #publicGate.v99-active .v99-nav-links a,
  #publicGate.v99-active .v99-nav>div.v99-nav-links a{
    color:#FCF8F1!important;
    border-top-color:rgba(252,248,241,.14)!important;
  }
  #publicGate.v99-active .v99-nav-links a.is-active,
  #publicGate.v99-active .v99-nav>div.v99-nav-links a.is-active{
    color:#FCF8F1!important;
    background:rgba(240,111,22,.16)!important;
  }
}

/* ========================================================================== */
/* V144 — bloc « autre espace famille » homogénéisé avec le mini-site         */
/* ========================================================================== */
#publicGate.v99-active .v130-code-switch{
  margin:0!important;
  padding:34px clamp(20px,5vw,70px) 38px!important;
  background:var(--v143-beige-footer,#FCF8F1)!important;
  border-top:1px solid rgba(24,52,123,.08)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  width:min(1360px,100%)!important;
  margin:0 auto!important;
  padding:24px 26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:28px!important;
  border:1px solid #E5D7C3!important;
  border-radius:18px!important;
  background:var(--v143-beige-rsvp,#F6EDDF)!important;
  box-shadow:0 12px 30px rgba(24,52,123,.045)!important;
}
#publicGate.v99-active .v130-code-copy{
  display:grid!important;
  gap:6px!important;
  min-width:0!important;
}
#publicGate.v99-active .v130-code-copy strong{
  margin:0!important;
  color:#18347B!important;
  font-family:var(--g-serif)!important;
  font-size:clamp(20px,1.6vw,24px)!important;
  font-weight:400!important;
  line-height:1.15!important;
  letter-spacing:0!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#506392!important;
  font-size:13px!important;
  line-height:1.55!important;
}
#publicGate.v99-active .v130-code-form{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:6px!important;
  border:1px solid rgba(24,52,123,.10)!important;
  border-radius:14px!important;
  background:rgba(252,248,241,.70)!important;
}
#publicGate.v99-active .v130-code-form input{
  width:210px!important;
  min-height:46px!important;
  padding:0 14px!important;
  border:1px solid #DCCCB5!important;
  border-radius:10px!important;
  background:#FFF9F2!important;
  color:#18347B!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form input::placeholder{
  color:#7382A7!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  border-color:#18347B!important;
  outline:3px solid rgba(24,52,123,.09)!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form .v99-button{
  min-height:46px!important;
  margin:0!important;
  padding:0 22px!important;
  border-color:#18347B!important;
  background:#18347B!important;
  color:#FCF8F1!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible{
  border-color:#274897!important;
  background:#274897!important;
  color:#FCF8F1!important;
}

@media(max-width:760px){
  #publicGate.v99-active .v130-code-switch{
    padding:26px 14px 30px!important;
  }
  #publicGate.v99-active .v130-code-switch-inner{
    padding:20px!important;
    display:grid!important;
    gap:18px!important;
    border-radius:16px!important;
  }
  #publicGate.v99-active .v130-code-copy strong{
    font-size:21px!important;
  }
  #publicGate.v99-active .v130-code-form{
    width:100%!important;
  }
  #publicGate.v99-active .v130-code-form input{
    width:auto!important;
    flex:1 1 auto!important;
    min-width:0!important;
  }
}
@media(max-width:420px){
  #publicGate.v99-active .v130-code-form{
    display:grid!important;
    grid-template-columns:1fr!important;
    padding:8px!important;
  }
  #publicGate.v99-active .v130-code-form input,
  #publicGate.v99-active .v130-code-form .v99-button{
    width:100%!important;
  }
}

/* ========================================================================== */
/* V145 — bloc « autre espace famille » entièrement dans les beiges           */
/* ========================================================================== */
#publicGate.v99-active .v130-code-switch{
  background:#F2E7D7!important;
  border-top-color:#DDCDB8!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  border-color:#D8C6AD!important;
  background:#EADCC8!important;
  box-shadow:0 12px 30px rgba(111,87,63,.055)!important;
}
#publicGate.v99-active .v130-code-copy strong{
  color:#6F573F!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#836D58!important;
}
#publicGate.v99-active .v130-code-form{
  border-color:#D5C1A5!important;
  background:#F4EBDD!important;
}
#publicGate.v99-active .v130-code-form input{
  border-color:#D4BFA3!important;
  background:#FCF8F1!important;
  color:#6F573F!important;
}
#publicGate.v99-active .v130-code-form input::placeholder{
  color:#A08870!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  border-color:#A98763!important;
  outline:3px solid rgba(169,135,99,.14)!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form .v99-button{
  border-color:#A98560!important;
  background:#A98560!important;
  color:#FFF9F2!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible{
  border-color:#8E6F51!important;
  background:#8E6F51!important;
  color:#FFF9F2!important;
}


/* ========================================================================== */
/* V147 — bloc autre espace famille comme le footer + CTA hébergements       */
/* ========================================================================== */
#publicGate.v99-active .v130-code-switch,
#publicGate.v99-active .v130-code-switch-inner{
  background:var(--v143-beige-footer,#FCF8F1)!important;
}
#publicGate.v99-active .v130-code-switch{
  border-top:1px solid rgba(24,52,123,.08)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  border:1px solid rgba(24,52,123,.10)!important;
  box-shadow:none!important;
}
#publicGate.v99-active .public-lodging-cta-row{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:10px 12px!important;
  margin-top:12px!important;
}
#publicGate.v99-active .public-lodging-cta{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:40px!important;
  padding:10px 14px!important;
  border-radius:999px!important;
  background:var(--g-blue)!important;
  color:#FCF8F1!important;
  text-decoration:none!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.02em!important;
  border:1px solid var(--g-blue)!important;
}
#publicGate.v99-active .public-lodging-cta:hover,
#publicGate.v99-active .public-lodging-cta:focus-visible{
  background:#102964!important;
  border-color:#102964!important;
}
#publicGate.v99-active .public-lodging-choice-help{
  margin:0!important;
  color:#7A6A57!important;
}
@media (max-width: 760px){
  #publicGate.v99-active .public-lodging-cta-row{
    flex-direction:column!important;
    align-items:flex-start!important;
  }
  #publicGate.v99-active .public-lodging-cta{
    width:100%!important;
  }
}


/* ========================================================================== */
/* V149 — rappel entièrement orange                                           */
/* ========================================================================== */
#publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
  color:#B9500D!important;
}
#publicGate.v99-active #reserver-date .v128-reminder-label{
  color:#A64B0B!important;
}
#publicGate.v99-active #reserver-date .v128-reminder>span:last-child{
  color:#B9500D!important;
}


/* ========================================================================== */
/* ========================================================================== */
/* ========================================================================== */
/* V155 — orangers flottants : animation plus visible mais subtile           */
/* ========================================================================== */
#publicGate.v99-active .v99-hero,
#publicGate.v99-active .v99-section,
#publicGate.v99-active .v130-code-switch{
  position:relative!important;
  overflow:hidden!important;
}
#publicGate.v99-active .v99-hero > div,
#publicGate.v99-active .v99-shell,
#publicGate.v99-active .v130-code-switch-inner{
  position:relative!important;
  z-index:1!important;
}
#publicGate.v99-active .v99-hero::before,
#publicGate.v99-active .v99-hero::after,
#publicGate.v99-active #reserver-date::before,
#publicGate.v99-active #reserver-date::after,
#publicGate.v99-active #reponse-definitive::before,
#publicGate.v99-active #reponse-definitive::after,
#publicGate.v99-active #programme::after,
#publicGate.v99-active #hebergements::before,
#publicGate.v99-active .v130-code-switch::before{
  content:"";
  position:absolute!important;
  pointer-events:none!important;
  z-index:0!important;
  background-image:url('../img/oranger-flottant-fleuri.png?v=1710')!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  transform-origin:center!important;
  animation:v155Float var(--v155-duration, 12s) ease-in-out infinite!important;
  will-change:transform!important;
}
#publicGate.v99-active .v99-hero::before{
  width:94px!important;
  height:94px!important;
  top:54px!important;
  right:5.5%!important;
  opacity:.24!important;
  --v155-rotate:12deg;
  --v155-x:5px;
  --v155-y:-10px;
  --v155-scale:1.04;
  --v155-duration:13s;
}
#publicGate.v99-active .v99-hero::after{
  width:58px!important;
  height:58px!important;
  left:8%!important;
  bottom:54px!important;
  opacity:.18!important;
  --v155-rotate:-14deg;
  --v155-x:-4px;
  --v155-y:-8px;
  --v155-scale:1.03;
  --v155-duration:11.5s;
  animation-delay:-2.8s!important;
}
#publicGate.v99-active #reserver-date::before{
  width:62px!important;
  height:62px!important;
  top:30px!important;
  right:5.5%!important;
  opacity:.18!important;
  --v155-rotate:8deg;
  --v155-x:4px;
  --v155-y:-9px;
  --v155-scale:1.03;
  --v155-duration:12.5s;
  animation-delay:-1.4s!important;
}
#publicGate.v99-active #reserver-date::after{
  width:30px!important;
  height:30px!important;
  top:120px!important;
  right:12%!important;
  opacity:.14!important;
  --v155-rotate:-7deg;
  --v155-x:-2px;
  --v155-y:-5px;
  --v155-scale:1.02;
  --v155-duration:10.8s;
}
#publicGate.v99-active #reponse-definitive::before{
  width:72px!important;
  height:72px!important;
  top:28px!important;
  left:-10px!important;
  opacity:.16!important;
  --v155-rotate:-16deg;
  --v155-x:5px;
  --v155-y:-11px;
  --v155-scale:1.035;
  --v155-duration:12.8s;
  animation-delay:-4.2s!important;
}
#publicGate.v99-active #reponse-definitive::after{
  width:46px!important;
  height:46px!important;
  bottom:34px!important;
  right:8%!important;
  opacity:.14!important;
  --v155-rotate:10deg;
  --v155-x:3px;
  --v155-y:-7px;
  --v155-scale:1.025;
  --v155-duration:11.2s;
  animation-delay:-1.8s!important;
}
#publicGate.v99-active #programme::after{
  width:52px!important;
  height:52px!important;
  top:26px!important;
  left:8%!important;
  opacity:.14!important;
  --v155-rotate:-12deg;
  --v155-x:-3px;
  --v155-y:-7px;
  --v155-scale:1.025;
  --v155-duration:12.2s;
  animation-delay:-3.1s!important;
}
#publicGate.v99-active #hebergements::before{
  width:66px!important;
  height:66px!important;
  top:20px!important;
  right:8%!important;
  opacity:.16!important;
  --v155-rotate:9deg;
  --v155-x:4px;
  --v155-y:-8px;
  --v155-scale:1.03;
  --v155-duration:12.9s;
  animation-delay:-2.2s!important;
}
#publicGate.v99-active .v130-code-switch::before{
  width:42px!important;
  height:42px!important;
  top:22px!important;
  right:7%!important;
  opacity:.13!important;
  --v155-rotate:-10deg;
  --v155-x:-3px;
  --v155-y:-6px;
  --v155-scale:1.02;
  --v155-duration:10.6s;
  animation-delay:-5.1s!important;
}
@keyframes v155Float{
  0%,100%{
    transform:translate3d(0,0,0) rotate(var(--v155-rotate,0deg)) scale(1);
  }
  25%{
    transform:translate3d(calc(var(--v155-x,4px) * .55), calc(var(--v155-y,-8px) * .5), 0) rotate(calc(var(--v155-rotate,0deg) + 1deg)) scale(calc(1 + (var(--v155-scale,1.03) - 1) * .45));
  }
  50%{
    transform:translate3d(var(--v155-x,4px), var(--v155-y,-8px), 0) rotate(calc(var(--v155-rotate,0deg) + 2deg)) scale(var(--v155-scale,1.03));
  }
  75%{
    transform:translate3d(calc(var(--v155-x,4px) * -.35), calc(var(--v155-y,-8px) * .35), 0) rotate(calc(var(--v155-rotate,0deg) - 1deg)) scale(calc(1 + (var(--v155-scale,1.03) - 1) * .25));
  }
}
@media (max-width: 760px){
  #publicGate.v99-active .v99-hero::before{
    width:72px!important;
    height:72px!important;
    top:58px!important;
    right:-6px!important;
  }
  #publicGate.v99-active .v99-hero::after{
    width:42px!important;
    height:42px!important;
    left:-4px!important;
    bottom:64px!important;
  }
  #publicGate.v99-active #reserver-date::before,
  #publicGate.v99-active #reponse-definitive::before,
  #publicGate.v99-active #programme::after,
  #publicGate.v99-active #hebergements::before,
  #publicGate.v99-active .v130-code-switch::before{
    opacity:.12!important;
  }
  #publicGate.v99-active .v99-hero::before,
  #publicGate.v99-active .v99-hero::after,
  #publicGate.v99-active #reserver-date::before,
  #publicGate.v99-active #reserver-date::after,
  #publicGate.v99-active #reponse-definitive::before,
  #publicGate.v99-active #reponse-definitive::after,
  #publicGate.v99-active #programme::after,
  #publicGate.v99-active #hebergements::before,
  #publicGate.v99-active .v130-code-switch::before{
    --v155-x:3px;
    --v155-y:-6px;
  }
}
@media (prefers-reduced-motion: reduce){
  #publicGate.v99-active .v99-hero::before,
  #publicGate.v99-active .v99-hero::after,
  #publicGate.v99-active #reserver-date::before,
  #publicGate.v99-active #reserver-date::after,
  #publicGate.v99-active #reponse-definitive::before,
  #publicGate.v99-active #reponse-definitive::after,
  #publicGate.v99-active #programme::after,
  #publicGate.v99-active #hebergements::before,
  #publicGate.v99-active .v130-code-switch::before{
    animation:none!important;
  }
}

/* V152 — les décors ne capturent jamais les clics des liens */
#publicGate.v99-active .v99-site a,
#publicGate.v99-active .v99-site button,
#publicGate.v99-active .v99-site input,
#publicGate.v99-active .v99-site select,
#publicGate.v99-active .v99-site summary{
  position:relative;
  z-index:2;
}
#publicGate.v99-active .v99-hero::before,
#publicGate.v99-active .v99-hero::after,
#publicGate.v99-active .v99-section::before,
#publicGate.v99-active .v99-section::after,
#publicGate.v99-active .v130-code-switch::before,
#publicGate.v99-active .v130-code-switch::after{
  pointer-events:none!important;
}

/* ========================================================================== */
/* V157 — animation des orangers un peu plus marquée + rappel plus subtil     */
/* ========================================================================== */
#publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
  margin:10px 0 24px!important;
  padding:12px 14px!important;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:flex-start!important;
  gap:8px 12px!important;
  border:1px solid rgba(226,144,53,.18)!important;
  border-left:0!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,rgba(252,248,241,.98),rgba(240,111,22,.045))!important;
  box-shadow:none!important;
  color:#C45B13!important;
  font-size:13.5px!important;
  line-height:1.7!important;
}
#publicGate.v99-active #reserver-date .v128-reminder-label{
  min-height:auto!important;
  padding:5px 9px!important;
  border:1px solid rgba(240,111,22,.16)!important;
  border-radius:999px!important;
  background:rgba(240,111,22,.08)!important;
  color:#C4540C!important;
  font-size:9.5px!important;
  font-weight:800!important;
  letter-spacing:.12em!important;
}
#publicGate.v99-active #reserver-date .v128-reminder>span:last-child{
  flex:1 1 320px!important;
  min-width:0!important;
  padding-top:0!important;
  color:#C45B13!important;
}
@media(max-width:760px){
  #publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
    margin:10px 0 20px!important;
    padding:11px 12px!important;
    gap:8px!important;
    font-size:13px!important;
  }
  #publicGate.v99-active #reserver-date .v128-reminder>span:last-child{
    flex-basis:100%!important;
  }
}

#publicGate.v99-active .v99-hero::before,
#publicGate.v99-active .v99-hero::after,
#publicGate.v99-active #reserver-date::before,
#publicGate.v99-active #reserver-date::after,
#publicGate.v99-active #reponse-definitive::before,
#publicGate.v99-active #reponse-definitive::after,
#publicGate.v99-active #programme::after,
#publicGate.v99-active #hebergements::before,
#publicGate.v99-active .v130-code-switch::before{
  animation-name:v157Float!important;
}
@keyframes v157Float{
  0%,100%{
    transform:translate3d(0,0,0) rotate(var(--v155-rotate,0deg)) scale(1);
  }
  20%{
    transform:translate3d(calc(var(--v155-x,4px) * .65), calc(var(--v155-y,-8px) * .55), 0) rotate(calc(var(--v155-rotate,0deg) + 1.4deg)) scale(calc(1 + (var(--v155-scale,1.03) - 1) * .65));
  }
  50%{
    transform:translate3d(calc(var(--v155-x,4px) * 1.28), calc(var(--v155-y,-8px) * 1.28), 0) rotate(calc(var(--v155-rotate,0deg) + 2.8deg)) scale(calc(1 + (var(--v155-scale,1.03) - 1) * 1.45));
  }
  78%{
    transform:translate3d(calc(var(--v155-x,4px) * -.52), calc(var(--v155-y,-8px) * .48), 0) rotate(calc(var(--v155-rotate,0deg) - 1.4deg)) scale(calc(1 + (var(--v155-scale,1.03) - 1) * .38));
  }
}

/* ========================================================================== */
/* V158 — favicon oranger + palette orange plus nuancée                       */
/* ========================================================================== */
:root{
  --guest-gold:#D6A654;
  --guest-terracotta:#E59A46;
  --guest-orange:#D97B2E;
}
#publicGate.v99-active{
  --g-gold:#D6A654!important;
  --g-terracotta:#E59A46!important;
  --g-orange:#D97B2E!important;
  --v158-orange-deep:#C96920;
  --v158-orange-soft:#F2C27D;
  --v158-orange-mist:rgba(217,123,46,.10);
  --v158-orange-border:rgba(217,123,46,.22);
}
/* Oranges : nuances plus naturelles, inspirées des tons de l'illustration. */
#publicGate.v99-active .v99-choice-three label:nth-child(3) input:checked+span,
#publicGate.v99-active .v99-choice-two label:nth-child(2) input:checked+span,
#publicGate.v99-active .v99-section-blue .v99-choice label:last-child input:checked+span{
  background:#D97B2E!important;
  border-color:#D97B2E!important;
  color:#FCF8F1!important;
  box-shadow:0 8px 18px rgba(217,123,46,.18)!important;
}
#publicGate.v99-active .v99-lodging small,
#publicGate.v99-active .v130-code-copy span strong,
#publicGate.v99-active .v130-code-copy strong{
  color:#C96920!important;
}
#publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
  border-left-color:#D97B2E!important;
  background:linear-gradient(180deg,rgba(217,123,46,.085),rgba(229,154,70,.05))!important;
  color:#A35E21!important;
  box-shadow:inset 0 0 0 1px rgba(217,123,46,.07)!important;
}
#publicGate.v99-active #reserver-date .v128-reminder-label{
  background:rgba(217,123,46,.12)!important;
  border-color:rgba(217,123,46,.14)!important;
  color:#C96920!important;
}
#publicGate.v99-active #reserver-date .v128-reminder>span:last-child{
  color:#AD6426!important;
}
#publicGate.v99-active #reserver-date .v99-section-head small,
#publicGate.v99-active #reponse-definitive .v99-section-head small{
  color:#C96920!important;
  background:rgba(217,123,46,.08)!important;
  border:1px solid rgba(217,123,46,.20)!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  border-color:#D97B2E!important;
  box-shadow:0 0 0 4px rgba(217,123,46,.10)!important;
}
#publicGate.v99-active .v130-code-form .v99-button,
#publicGate.v99-active .v99-hebergements-cta,
#publicGate.v99-active a.v99-hebergements-cta,
#publicGate.v99-active button.v99-hebergements-cta{
  background:#D97B2E!important;
  border-color:#D97B2E!important;
  color:#FCF8F1!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible,
#publicGate.v99-active .v99-hebergements-cta:hover,
#publicGate.v99-active .v99-hebergements-cta:focus-visible{
  background:#C96920!important;
  border-color:#C96920!important;
}

/* ========================================================================== */
/* V159 — rappel en nuances de beige, comme l'espace de changement de famille */
/* ========================================================================== */
#publicGate.v99-active #reserver-date .v124-children-text.v128-reminder{
  border-left:4px solid #D8C6AD!important;
  background:linear-gradient(180deg,#FCF8F1 0%, #F5EBDD 100%)!important;
  color:#6F573F!important;
  box-shadow:inset 0 0 0 1px rgba(111,87,63,.08)!important;
}
#publicGate.v99-active #reserver-date .v128-reminder-label{
  background:#F1E4D1!important;
  border:1px solid #DDCDB8!important;
  color:#8E6F51!important;
}
#publicGate.v99-active #reserver-date .v128-reminder>span:last-child{
  color:#6F573F!important;
}

/* ========================================================================== */
/* V160 — rappel beige forcé + animation des orangers plus perceptible        */
/* ========================================================================== */
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder{
  border:1px solid #D8C6AD!important;
  border-left:4px solid #CDB899!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,#FCF8F1 0%,#F2E7D7 100%)!important;
  color:#6F573F!important;
  box-shadow:none!important;
}
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder .v128-reminder-label{
  background:#EADCC8!important;
  border:1px solid #D5C1A5!important;
  color:#80664B!important;
}
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder > span:last-child{
  color:#6F573F!important;
}

#publicGate.v99-active .v99-hero::before,
#publicGate.v99-active .v99-hero::after,
#publicGate.v99-active #reserver-date::before,
#publicGate.v99-active #reserver-date::after,
#publicGate.v99-active #reponse-definitive::before,
#publicGate.v99-active #reponse-definitive::after,
#publicGate.v99-active #programme::after,
#publicGate.v99-active #hebergements::before,
#publicGate.v99-active .v130-code-switch::before{
  animation-name:v160Float!important;
  animation-timing-function:ease-in-out!important;
  animation-iteration-count:infinite!important;
}
#publicGate.v99-active .v99-hero::before{--v160-x:12px;--v160-y:-18px;--v160-r:5deg;--v155-duration:8.8s;opacity:.32!important}
#publicGate.v99-active .v99-hero::after{--v160-x:-9px;--v160-y:-14px;--v160-r:-4deg;--v155-duration:7.8s;opacity:.25!important}
#publicGate.v99-active #reserver-date::before{--v160-x:10px;--v160-y:-16px;--v160-r:4deg;--v155-duration:8.2s;opacity:.24!important}
#publicGate.v99-active #reserver-date::after{--v160-x:-7px;--v160-y:-11px;--v160-r:-3deg;--v155-duration:7.2s;opacity:.20!important}
#publicGate.v99-active #reponse-definitive::before{--v160-x:11px;--v160-y:-17px;--v160-r:5deg;--v155-duration:8.6s;opacity:.22!important}
#publicGate.v99-active #reponse-definitive::after{--v160-x:-8px;--v160-y:-13px;--v160-r:-4deg;--v155-duration:7.6s;opacity:.20!important}
#publicGate.v99-active #programme::after{--v160-x:9px;--v160-y:-14px;--v160-r:4deg;--v155-duration:8.0s;opacity:.20!important}
#publicGate.v99-active #hebergements::before{--v160-x:-10px;--v160-y:-15px;--v160-r:-4deg;--v155-duration:8.4s;opacity:.22!important}
#publicGate.v99-active .v130-code-switch::before{--v160-x:7px;--v160-y:-10px;--v160-r:3deg;--v155-duration:7.4s;opacity:.18!important}

@keyframes v160Float{
  0%,100%{
    transform:translate3d(0,0,0) rotate(var(--v155-rotate,0deg)) scale(1);
  }
  25%{
    transform:translate3d(calc(var(--v160-x,10px) * .55),calc(var(--v160-y,-15px) * .55),0)
      rotate(calc(var(--v155-rotate,0deg) + var(--v160-r,4deg))) scale(1.035);
  }
  52%{
    transform:translate3d(var(--v160-x,10px),var(--v160-y,-15px),0)
      rotate(calc(var(--v155-rotate,0deg) + var(--v160-r,4deg) * 1.25)) scale(1.055);
  }
  78%{
    transform:translate3d(calc(var(--v160-x,10px) * -.45),calc(var(--v160-y,-15px) * .35),0)
      rotate(calc(var(--v155-rotate,0deg) - var(--v160-r,4deg) * .55)) scale(1.02);
  }
}
@media(max-width:760px){
  #publicGate.v99-active .v99-hero::before,
  #publicGate.v99-active .v99-hero::after,
  #publicGate.v99-active #reserver-date::before,
  #publicGate.v99-active #reserver-date::after,
  #publicGate.v99-active #reponse-definitive::before,
  #publicGate.v99-active #reponse-definitive::after,
  #publicGate.v99-active #programme::after,
  #publicGate.v99-active #hebergements::before,
  #publicGate.v99-active .v130-code-switch::before{
    --v160-x:7px;
    --v160-y:-12px;
  }
}

/* ========================================================================== */
/* V161 — espace « Accéder à un autre espace famille » 100 % beige           */
/* ========================================================================== */
#publicGate.v99-active .v130-code-switch{
  background:#F3E8D8!important;
  border-top:1px solid #DDCDB8!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  background:#EADCC8!important;
  border:1px solid #D7C3A8!important;
  box-shadow:0 10px 26px rgba(111,87,63,.055)!important;
}
#publicGate.v99-active .v130-code-copy strong,
#publicGate.v99-active .v130-code-copy span strong{
  color:#6F573F!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#846E58!important;
}
#publicGate.v99-active .v130-code-form{
  background:#F5EBDD!important;
  border-color:#D5C1A5!important;
}
#publicGate.v99-active .v130-code-form input{
  background:#FCF8F1!important;
  border-color:#D4BFA3!important;
  color:#6F573F!important;
}
#publicGate.v99-active .v130-code-form input::placeholder{
  color:#A08870!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  border-color:#A98763!important;
  outline:3px solid rgba(169,135,99,.14)!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form .v99-button{
  background:#A98560!important;
  border-color:#A98560!important;
  color:#FFF9F2!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible{
  background:#8E6F51!important;
  border-color:#8E6F51!important;
  color:#FFF9F2!important;
}
/* Pas d'accent orange flottant dans ce bloc : il reste exclusivement beige. */
#publicGate.v99-active .v130-code-switch::before,
#publicGate.v99-active .v130-code-switch::after{
  display:none!important;
}

/* ========================================================================== */
/* V162 — changement de famille sur exactement le même fond que le footer     */
/* ========================================================================== */
#publicGate.v99-active .v130-code-switch,
#publicGate.v99-active .v130-code-switch-inner{
  background:var(--v143-beige-footer,#FCF8F1)!important;
}
#publicGate.v99-active .v130-code-switch{
  border-top:1px solid rgba(111,87,63,.10)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  border-color:rgba(111,87,63,.16)!important;
  box-shadow:none!important;
}


/* ========================================================================== */
/* V163 — nouvel oranger fleuri, un peu moins nombreux et plus petits        */
/* ========================================================================== */
#publicGate.v99-active .v99-hero::after,
#publicGate.v99-active #reserver-date::after,
#publicGate.v99-active #reponse-definitive::before,
#publicGate.v99-active #programme::after{
  content:none!important;
  display:none!important;
}
#publicGate.v99-active .v99-hero::before{
  width:76px!important;
  height:76px!important;
  opacity:.22!important;
}
#publicGate.v99-active #reserver-date::before{
  width:46px!important;
  height:46px!important;
  opacity:.18!important;
}
#publicGate.v99-active #reponse-definitive::after{
  width:40px!important;
  height:40px!important;
  opacity:.16!important;
}
#publicGate.v99-active #hebergements::before{
  width:52px!important;
  height:52px!important;
  opacity:.18!important;
}
#publicGate.v99-active .v130-code-switch::before{
  width:30px!important;
  height:30px!important;
  opacity:.15!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v99-hero::before{width:62px!important;height:62px!important;}
  #publicGate.v99-active #reserver-date::before{width:38px!important;height:38px!important;}
  #publicGate.v99-active #reponse-definitive::after{width:34px!important;height:34px!important;}
  #publicGate.v99-active #hebergements::before{width:44px!important;height:44px!important;}
  #publicGate.v99-active .v130-code-switch::before{width:26px!important;height:26px!important;}
}


/* ========================================================================== */
/* V164 — DM Sans pour les textes courants du mini-site                       */
/* ========================================================================== */
#publicGate.v99-active .v99-site,
#publicGate.v99-active .v99-nav-links,
#publicGate.v99-active .v114-menu-toggle,
#publicGate.v99-active .v99-person,
#publicGate.v99-active .v99-choice,
#publicGate.v99-active .v99-contact,
#publicGate.v99-active .v99-details,
#publicGate.v99-active .v99-companion-adder,
#publicGate.v99-active .v99-companion-state,
#publicGate.v99-active .v99-program-row p,
#publicGate.v99-active .v99-lodging p,
#publicGate.v99-active .v99-lodging a,
#publicGate.v99-active .v99-empty,
#publicGate.v99-active .public-result,
#publicGate.v99-active .v130-code-switch,
#publicGate.v99-active input,
#publicGate.v99-active select,
#publicGate.v99-active textarea,
#publicGate.v99-active button{
  font-family:'DM Sans',Arial,Helvetica,sans-serif!important;
}


/* ========================================================================== */
/* V165 — oranger fleuri forcé partout + cache-busting global                */
/* ========================================================================== */


/* ========================================================================== */
/* V166 — Manrope + correction du bouton « Peut-être »                       */
/* ========================================================================== */
#publicGate.v99-active .v99-site,
#publicGate.v99-active .v99-nav-links,
#publicGate.v99-active .v114-menu-toggle,
#publicGate.v99-active .v99-person,
#publicGate.v99-active .v99-choice,
#publicGate.v99-active .v99-contact,
#publicGate.v99-active .v99-details,
#publicGate.v99-active .v99-companion-adder,
#publicGate.v99-active .v99-companion-state,
#publicGate.v99-active .v99-program-row p,
#publicGate.v99-active .v99-lodging p,
#publicGate.v99-active .v99-lodging a,
#publicGate.v99-active .v99-empty,
#publicGate.v99-active .public-result,
#publicGate.v99-active .v130-code-switch,
#publicGate.v99-active input,
#publicGate.v99-active select,
#publicGate.v99-active textarea,
#publicGate.v99-active button{
  font-family:'Manrope',Arial,Helvetica,sans-serif!important;
}
#publicGate.v99-active .v99-choice-three{
  grid-template-columns:minmax(0,1fr) minmax(0,1.12fr) minmax(0,1fr)!important;
}
#publicGate.v99-active .v99-choice span,
#publicGate.v99-active .v99-section-blue .v99-choice span{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  hyphens:none!important;
  text-align:center!important;
  gap:8px!important;
  font-size:12.5px!important;
  letter-spacing:0!important;
}
@media(max-width:560px){
  #publicGate.v99-active .v99-choice-three{grid-template-columns:1fr!important;}
  #publicGate.v99-active .v99-choice span,
  #publicGate.v99-active .v99-section-blue .v99-choice span{font-size:12px!important;}
}

/* ========================================================================== */
/* V167 — orangers plus sobres et éditoriaux                                  */
/* ========================================================================== */
/* On limite volontairement les illustrations à trois touches décoratives. */
#publicGate.v99-active .v99-hero::after,
#publicGate.v99-active #reserver-date::after,
#publicGate.v99-active #reponse-definitive::before,
#publicGate.v99-active #reponse-definitive::after,
#publicGate.v99-active #programme::before,
#publicGate.v99-active #programme::after,
#publicGate.v99-active #hebergements::after,
#publicGate.v99-active .v130-code-switch::before,
#publicGate.v99-active .v130-code-switch::after{
  content:none!important;
  display:none!important;
}

#publicGate.v99-active .v99-hero::before,
#publicGate.v99-active #reserver-date::before,
#publicGate.v99-active #hebergements::before{
  display:block!important;
  content:""!important;
  background-image:url('../img/oranger-flottant-fleuri.png?v=1710')!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  pointer-events:none!important;
  z-index:0!important;
  filter:saturate(.72) contrast(.94) brightness(1.03)!important;
  mix-blend-mode:multiply!important;
  animation:v167Float var(--v167-duration,22s) ease-in-out infinite!important;
  will-change:transform!important;
}

/* Une grande touche très discrète dans le hero, partiellement hors cadre. */
#publicGate.v99-active .v99-hero::before{
  width:92px!important;
  height:92px!important;
  top:82px!important;
  right:-24px!important;
  opacity:.13!important;
  --v167-rotate:7deg;
  --v167-x:-5px;
  --v167-y:-6px;
  --v167-duration:24s;
}

/* Une seconde touche, plus petite, dans Réserver la date. */
#publicGate.v99-active #reserver-date::before{
  width:60px!important;
  height:60px!important;
  top:auto!important;
  right:auto!important;
  left:-20px!important;
  bottom:42px!important;
  opacity:.10!important;
  --v167-rotate:-9deg;
  --v167-x:4px;
  --v167-y:-5px;
  --v167-duration:21s;
  animation-delay:-8s!important;
}

/* Dernière touche dans les hébergements. */
#publicGate.v99-active #hebergements::before{
  width:72px!important;
  height:72px!important;
  top:34px!important;
  right:-22px!important;
  opacity:.11!important;
  --v167-rotate:5deg;
  --v167-x:-4px;
  --v167-y:-5px;
  --v167-duration:23s;
  animation-delay:-13s!important;
}

@keyframes v167Float{
  0%,100%{
    transform:translate3d(0,0,0) rotate(var(--v167-rotate,0deg));
  }
  50%{
    transform:translate3d(var(--v167-x,4px),var(--v167-y,-5px),0)
      rotate(calc(var(--v167-rotate,0deg) + .9deg));
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero::before{
    width:72px!important;
    height:72px!important;
    right:-26px!important;
    top:74px!important;
    opacity:.11!important;
  }
  #publicGate.v99-active #reserver-date::before{
    width:48px!important;
    height:48px!important;
    left:-18px!important;
    bottom:34px!important;
    opacity:.085!important;
  }
  #publicGate.v99-active #hebergements::before{
    width:58px!important;
    height:58px!important;
    right:-22px!important;
    opacity:.09!important;
  }
}

@media(prefers-reduced-motion:reduce){
  #publicGate.v99-active .v99-hero::before,
  #publicGate.v99-active #reserver-date::before,
  #publicGate.v99-active #hebergements::before{
    animation:none!important;
  }
}

/* ========================================================================== */
/* V168 — orangers traités comme des filigranes éditoriaux                   */
/* ========================================================================== */
/* Deux ornements seulement : un dans le hero, un dans les hébergements. */
#publicGate.v99-active .v99-hero::after,
#publicGate.v99-active #reserver-date::before,
#publicGate.v99-active #reserver-date::after,
#publicGate.v99-active #reponse-definitive::before,
#publicGate.v99-active #reponse-definitive::after,
#publicGate.v99-active #programme::before,
#publicGate.v99-active #programme::after,
#publicGate.v99-active #hebergements::after,
#publicGate.v99-active .v130-code-switch::before,
#publicGate.v99-active .v130-code-switch::after{
  content:none!important;
  display:none!important;
}

#publicGate.v99-active .v99-hero::before,
#publicGate.v99-active #hebergements::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  pointer-events:none!important;
  z-index:0!important;
  background-image:url('../img/oranger-flottant-fleuri.png?v=1710')!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  opacity:.105!important;
  filter:saturate(.60) contrast(.92) brightness(1.04)!important;
  mix-blend-mode:multiply!important;
  transform-origin:center!important;
  animation:v168EditorialFloat var(--v168-duration,30s) cubic-bezier(.45,0,.55,1) infinite!important;
  will-change:transform!important;
}

/* Filigrane principal : ample, coupé par le bord droit, sans effet "sticker". */
#publicGate.v99-active .v99-hero::before{
  width:126px!important;
  height:126px!important;
  top:104px!important;
  right:-44px!important;
  opacity:.115!important;
  --v168-rotate:5deg;
  --v168-x:-3px;
  --v168-y:-4px;
  --v168-duration:32s;
  -webkit-mask-image:linear-gradient(120deg,rgba(0,0,0,.95) 35%,rgba(0,0,0,.74) 68%,transparent 100%);
  mask-image:linear-gradient(120deg,rgba(0,0,0,.95) 35%,rgba(0,0,0,.74) 68%,transparent 100%);
}

/* Deuxième filigrane : symétrie discrète en bas des hébergements. */
#publicGate.v99-active #hebergements::before{
  width:98px!important;
  height:98px!important;
  top:auto!important;
  right:auto!important;
  left:-34px!important;
  bottom:34px!important;
  opacity:.09!important;
  --v168-rotate:-7deg;
  --v168-x:3px;
  --v168-y:-3px;
  --v168-duration:29s;
  animation-delay:-11s!important;
  -webkit-mask-image:linear-gradient(300deg,rgba(0,0,0,.94) 36%,rgba(0,0,0,.70) 70%,transparent 100%);
  mask-image:linear-gradient(300deg,rgba(0,0,0,.94) 36%,rgba(0,0,0,.70) 70%,transparent 100%);
}

@keyframes v168EditorialFloat{
  0%,100%{
    transform:translate3d(0,0,0) rotate(var(--v168-rotate,0deg)) scale(.985);
  }
  50%{
    transform:translate3d(var(--v168-x,3px),var(--v168-y,-4px),0)
      rotate(calc(var(--v168-rotate,0deg) + .45deg)) scale(1);
  }
}

@media(max-width:760px){
  #publicGate.v99-active .v99-hero::before{
    width:88px!important;
    height:88px!important;
    top:96px!important;
    right:-34px!important;
    opacity:.095!important;
  }
  #publicGate.v99-active #hebergements::before{
    width:70px!important;
    height:70px!important;
    left:-28px!important;
    bottom:24px!important;
    opacity:.075!important;
  }
}

@media(prefers-reduced-motion:reduce){
  #publicGate.v99-active .v99-hero::before,
  #publicGate.v99-active #hebergements::before{
    animation:none!important;
  }
}


/* ========================================================================== */
/* V169 — deux orangers autour du titre + rappel enfants sans encart          */
/* ========================================================================== */
/* Neutralise tous les anciens orangers générés par pseudo-éléments. */
#publicGate.v99-active .v99-hero::before,
#publicGate.v99-active .v99-hero::after,
#publicGate.v99-active #reserver-date::before,
#publicGate.v99-active #reserver-date::after,
#publicGate.v99-active #reponse-definitive::before,
#publicGate.v99-active #reponse-definitive::after,
#publicGate.v99-active #programme::before,
#publicGate.v99-active #programme::after,
#publicGate.v99-active #hebergements::before,
#publicGate.v99-active #hebergements::after,
#publicGate.v99-active .v130-code-switch::before,
#publicGate.v99-active .v130-code-switch::after{
  content:none!important;
  display:none!important;
}

#publicGate.v99-active .v169-hero-title-row{
  width:min(1040px,100%)!important;
  margin:0 auto 12px!important;
  display:grid!important;
  grid-template-columns:clamp(58px,7vw,92px) minmax(0,1fr) clamp(58px,7vw,92px)!important;
  align-items:center!important;
  justify-content:center!important;
  gap:clamp(8px,1.5vw,22px)!important;
}
#publicGate.v99-active .v169-hero-title-copy{
  min-width:0!important;
  display:grid!important;
  justify-items:center!important;
  text-align:center!important;
  gap:7px!important;
}
#publicGate.v99-active .v169-hero-title-copy h1,
#publicGate.v99-active .v169-hero-title-copy p,
#publicGate.v99-active .v169-hero-title-copy strong{
  margin:0!important;
}
#publicGate.v99-active .v169-hero-orange{
  width:100%!important;
  max-width:88px!important;
  height:auto!important;
  display:block!important;
  object-fit:contain!important;
  opacity:.88!important;
  filter:saturate(.82) contrast(.96)!important;
  transform-origin:50% 70%!important;
  pointer-events:none!important;
  user-select:none!important;
  animation:v169OrangeFloat 10.5s ease-in-out infinite!important;
}
#publicGate.v99-active .v169-hero-orange-left{
  justify-self:end!important;
  transform:rotate(-8deg)!important;
  animation-delay:-2.4s!important;
}
#publicGate.v99-active .v169-hero-orange-right{
  justify-self:start!important;
  transform:scaleX(-1) rotate(-8deg)!important;
  animation-delay:-6.7s!important;
}
@keyframes v169OrangeFloat{
  0%,100%{translate:0 0;}
  50%{translate:0 -5px;}
}

/* Le rappel enfants est désormais un simple texte, sans cadre ni fond. */
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder{
  width:100%!important;
  max-width:none!important;
  margin:8px 0 24px!important;
  padding:0!important;
  display:block!important;
  border:0!important;
  border-left:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#786A5A!important;
  font-family:'Manrope',Arial,Helvetica,sans-serif!important;
  font-size:13.5px!important;
  line-height:1.7!important;
}
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder .v128-reminder-label{
  display:inline!important;
  min-height:0!important;
  margin:0 7px 0 0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#8A7761!important;
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder > span:last-child{
  display:inline!important;
  color:#786A5A!important;
  padding:0!important;
}

@media(max-width:760px){
  #publicGate.v99-active .v169-hero-title-row{
    grid-template-columns:46px minmax(0,1fr) 46px!important;
    gap:6px!important;
    margin-bottom:10px!important;
  }
  #publicGate.v99-active .v169-hero-orange{
    max-width:46px!important;
    opacity:.80!important;
  }
  #publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder{
    margin:6px 0 20px!important;
    font-size:13px!important;
  }
}
@media(max-width:390px){
  #publicGate.v99-active .v169-hero-title-row{
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    gap:4px!important;
  }
  #publicGate.v99-active .v169-hero-orange{max-width:38px!important;}
}
@media(prefers-reduced-motion:reduce){
  #publicGate.v99-active .v169-hero-orange{animation:none!important;}
}

/* ========================================================================== */
/* V170 — badge Rappel subtil + orangers latéraux plus fondus                */
/* ========================================================================== */
#publicGate.v99-active .v169-hero-orange{
  opacity:.54!important;
  filter:saturate(.68) contrast(.95) brightness(1.02)!important;
}
#publicGate.v99-active .v169-hero-orange-left,
#publicGate.v99-active .v169-hero-orange-right{
  filter:saturate(.64) contrast(.94) brightness(1.03)!important;
}
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder{
  margin:10px 0 24px!important;
  color:#786A5A!important;
}
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder .v128-reminder-label{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:0!important;
  margin:0 9px 0 0!important;
  padding:4px 10px!important;
  border:1px solid rgba(138,119,97,.12)!important;
  border-radius:999px!important;
  background:#F1E8DC!important;
  color:#8A7761!important;
  box-shadow:none!important;
  font-size:10.5px!important;
  font-weight:800!important;
  letter-spacing:.10em!important;
  text-transform:uppercase!important;
  vertical-align:baseline!important;
}
#publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder > span:last-child{
  color:#786A5A!important;
}
@media(max-width:760px){
  #publicGate.v99-active .v169-hero-orange{
    opacity:.46!important;
  }
  #publicGate.v99-active #reserver-date p.v124-children-text.v128-reminder .v128-reminder-label{
    margin-right:8px!important;
    padding:3px 9px!important;
    font-size:10px!important;
  }
}

/* ========================================================================== */
/* V172 — oranges latérales plus nettes et moins transparentes                */
/* ========================================================================== */
#publicGate.v99-active .v169-hero-orange{
  content:url('../img/oranger-header-net.png?v=1720')!important;
  opacity:.72!important;
  filter:none!important;
  image-rendering:auto!important;
  backface-visibility:hidden!important;
  transform-origin:center!important;
  animation:v172OrangeFloat 9.8s ease-in-out infinite!important;
}
#publicGate.v99-active .v169-hero-orange-left{
  transform:rotate(-5deg)!important;
}
#publicGate.v99-active .v169-hero-orange-right{
  transform:scaleX(-1) rotate(-5deg)!important;
}
@keyframes v172OrangeFloat{
  0%,100%{translate:0 0;}
  50%{translate:0 -3px;}
}
@media(max-width:760px){
  #publicGate.v99-active .v169-hero-orange{
    opacity:.64!important;
  }
}
@media(prefers-reduced-motion:reduce){
  #publicGate.v99-active .v169-hero-orange{animation:none!important;}
}

/* ========================================================================== */
/* V176 — charte mini-site consolidée + logo oranger officiel                */
/* ========================================================================== */
#publicGate.v99-active{
  --g-blue:#18347B!important;
  --g-orange:#D97B2E!important;
  --g-terracotta:#E59A46!important;
  --g-gold:#D6A654!important;
  --g-ivory:#FCF8F1!important;
  --g-paper:#FFF9F2!important;
  --g-sans:'Manrope',Arial,Helvetica,sans-serif!important;
}
#publicGate.v99-active .v99-site{font-family:var(--g-sans)!important;background:#FCF8F1!important;color:#18347B!important}
#publicGate.v99-active .v99-nav{background:#18347B!important;color:#FCF8F1!important}
#publicGate.v99-active .v99-brand,#publicGate.v99-active .v99-nav a,#publicGate.v99-active .v114-menu-toggle{color:#FCF8F1!important}
#publicGate.v99-active .v99-section-head h2,#publicGate.v99-active .v99-person h3,#publicGate.v99-active .v130-code-copy strong{color:#18347B!important}
#publicGate.v99-active .v99-button{border-radius:12px!important;font-weight:700!important}
#publicGate.v99-active .v99-button:not(.v99-button-orange){background:#18347B!important;border-color:#18347B!important;color:#FCF8F1!important}
#publicGate.v99-active .v99-button-orange{background:#D97B2E!important;border-color:#D97B2E!important;color:#FCF8F1!important}
#publicGate.v99-active input,#publicGate.v99-active select,#publicGate.v99-active textarea{border-radius:12px!important;background:#FFFDF9!important;border-color:rgba(24,52,123,.15)!important;color:#18347B!important}
#publicGate.v99-active input:focus,#publicGate.v99-active select:focus,#publicGate.v99-active textarea:focus{border-color:#E59A46!important;outline:3px solid rgba(229,154,70,.12)!important;box-shadow:none!important}
#publicGate.v99-active .v130-code-switch,#publicGate.v99-active .v99-footer{background:#FCF8F1!important}
#publicGate.v99-active .v130-code-switch-inner{background:#FCF8F1!important;border-color:rgba(111,87,63,.15)!important;box-shadow:none!important}

/* Logo oranger dans les anciens gabarits publics encore disponibles. */
.public-site-logo-mark{width:32px!important;height:36px!important;object-fit:contain!important;display:block!important;flex:0 0 auto!important}
.public-site-logo span{display:none!important}
.public-footer-mark{display:flex!important;justify-content:center!important;align-items:center!important}
.public-footer-mark img{width:38px!important;height:44px!important;object-fit:contain!important;display:block!important}

/* Les deux orangers du header actuel utilisent exactement le logo officiel. */
#publicGate.v99-active .v169-hero-orange{filter:none!important;opacity:.72!important}

/* ========================================================================== */
/* V178 — changement d'espace famille en beige doux                          */
/* ========================================================================== */
#publicGate.v99-active .v130-code-switch{
  background:var(--v143-beige-footer,#FCF8F1)!important;
  border-top:1px solid rgba(126,103,79,.10)!important;
}
#publicGate.v99-active .v130-code-switch-inner{
  background:var(--v143-beige-footer,#FCF8F1)!important;
  border-color:#E7DCCF!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-copy strong,
#publicGate.v99-active .v130-code-copy span strong{
  color:#8A735C!important;
}
#publicGate.v99-active .v130-code-copy span{
  color:#A18B75!important;
}
#publicGate.v99-active .v130-code-form{
  background:#F7EFE4!important;
  border-color:#DFCDB5!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form input{
  background:#FCF8F1!important;
  border-color:#DCC8AE!important;
  color:#806A55!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form input::placeholder{
  color:#B19A83!important;
  opacity:1!important;
}
#publicGate.v99-active .v130-code-form input:focus{
  border-color:#C5A884!important;
  outline:3px solid rgba(197,168,132,.14)!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form .v99-button,
#publicGate.v99-active .v130-code-form .v99-button:not(.v99-button-orange){
  background:#D9C3A6!important;
  border-color:#D1B896!important;
  color:#684F3B!important;
  box-shadow:none!important;
}
#publicGate.v99-active .v130-code-form .v99-button:hover,
#publicGate.v99-active .v130-code-form .v99-button:focus-visible,
#publicGate.v99-active .v130-code-form .v99-button:not(.v99-button-orange):hover,
#publicGate.v99-active .v130-code-form .v99-button:not(.v99-button-orange):focus-visible{
  background:#CEB18D!important;
  border-color:#C5A47C!important;
  color:#5C4534!important;
  box-shadow:0 0 0 3px rgba(197,164,124,.12)!important;
}
