/* 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:#FBF7ED;
  --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:#FBF7ED;
  --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;
  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: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 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,#FBF7ED 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 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:#FBF7ED!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:#FBF7ED!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:#FBF7ED!important;
  border-color:#FBF7ED!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:#FBF7ED!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:#FBF7ED!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:#FBF7ED!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:#FBF7ED!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:#FBF7ED!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;
  }
}
