/* ALFA Rendez-vous — réservation publique. Reprend les variables du thème ALFA Base. */
.alfa-rdv { --rdv-primary: var(--wp--preset--color--primary, #2a4bff); --rdv-text: var(--wp--custom--primary-text, var(--rdv-primary)); --rdv-on: var(--wp--custom--on-primary, #fff); --rdv-border: var(--wp--preset--color--border, #e2e6f0); --rdv-muted: var(--wp--preset--color--muted, #55607a); --rdv-base: var(--wp--preset--color--base, #fff); --rdv-r: var(--wp--custom--radius--small, 8px); display: flex; flex-direction: column; gap: 1.25rem; scroll-margin-top: 2rem; }
.alfa-rdv p { margin: 0; }
.alfa-rdv-step { display: flex; align-items: center; gap: .6rem; margin: .5rem 0 0; font-size: 1.15rem; }
.alfa-rdv-step span { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--rdv-primary); color: var(--rdv-on); font-size: .95rem; }
.alfa-rdv-meta { display: block; color: var(--rdv-muted); font-size: .92rem; margin-top: .2rem; }
.alfa-rdv-desc { display: block; margin-top: .45rem; font-size: .92rem; }
.alfa-rdv-prestas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: .8rem; }
.alfa-rdv-presta { display: block; height: 100%; box-sizing: border-box; padding: 1.1rem 1.2rem; border: 1.5px solid var(--rdv-border); border-radius: var(--wp--custom--radius--medium, 14px); background: var(--rdv-base); color: inherit; text-decoration: none; transition: border-color .15s, transform .15s; }
.alfa-rdv-presta:hover, .alfa-rdv-presta:focus-visible { border-color: var(--rdv-primary); transform: translateY(-2px); }
.alfa-rdv-presta strong { font-size: 1.05rem; }
.alfa-rdv-chosen { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 1.1rem; border-radius: var(--rdv-r); background: color-mix(in srgb, var(--rdv-primary) 8%, var(--rdv-base)); border: 1px solid color-mix(in srgb, var(--rdv-primary) 25%, transparent); }
.alfa-rdv-chosen a { color: var(--rdv-text); font-weight: 600; white-space: nowrap; }
.alfa-rdv-days { display: flex; gap: .5rem; overflow-x: auto; padding: .25rem .1rem .6rem; scroll-snap-type: x proximity; }
.alfa-rdv-day { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; min-width: 4.4rem; padding: .55rem .4rem; border: 1.5px solid var(--rdv-border); border-radius: var(--rdv-r); background: var(--rdv-base); color: inherit; text-decoration: none; line-height: 1.15; scroll-snap-align: start; }
.alfa-rdv-day span { font-size: .8rem; color: var(--rdv-muted); }
.alfa-rdv-day strong { font-size: 1.35rem; }
.alfa-rdv-day:hover { border-color: var(--rdv-primary); }
.alfa-rdv-day.is-on { background: var(--rdv-primary); border-color: var(--rdv-primary); color: var(--rdv-on); }
.alfa-rdv-day.is-on span { color: inherit; opacity: .85; }
.alfa-rdv-form { display: flex; flex-direction: column; gap: 1rem; }
.alfa-rdv-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.alfa-rdv-form legend, .alfa-rdv-form label { display: block; font-weight: 600; margin-bottom: .35rem; padding: 0; }
.alfa-rdv-hours legend { font-size: 1.02rem; }
.alfa-rdv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(6.2rem, 1fr)); gap: .5rem; }
.alfa-rdv-grid label { position: relative; margin: 0; }
.alfa-rdv-grid input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.alfa-rdv-grid span { display: block; padding: .6rem .4rem; text-align: center; border: 1.5px solid var(--rdv-border); border-radius: var(--rdv-r); background: var(--rdv-base); font-weight: 600; }
.alfa-rdv-grid label:hover span { border-color: var(--rdv-primary); }
.alfa-rdv-grid input:checked + span { background: var(--rdv-primary); border-color: var(--rdv-primary); color: var(--rdv-on); }
.alfa-rdv-grid input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--rdv-primary) 40%, transparent); outline-offset: 2px; }
.alfa-rdv-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.alfa-rdv-grid3 { display: grid; grid-template-columns: 2fr 1fr 1.4fr; gap: 1rem; }
.alfa-rdv-form input[type="text"], .alfa-rdv-form input:not([type]), .alfa-rdv-form input[type="email"], .alfa-rdv-form input[type="tel"], .alfa-rdv-form textarea { width: 100%; box-sizing: border-box; font: inherit; padding: .75rem .9rem; border: 1.5px solid var(--rdv-border); border-radius: var(--rdv-r); background: var(--rdv-base); color: inherit; }
.alfa-rdv-form input:focus-visible, .alfa-rdv-form textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--rdv-primary) 35%, transparent); border-color: var(--rdv-primary); }
.alfa-rdv-form [aria-invalid="true"] { border-color: #c62828; }
.alfa-rdv-req, .alfa-rdv-err { color: #c62828; }
.alfa-rdv-err { display: block; margin: .35rem 0; font-weight: 600; font-size: .9rem; }
.alfa-rdv-hint { color: var(--rdv-muted); font-weight: 400; font-size: .9rem; }
.alfa-rdv-alert { padding: .85rem 1rem; border-radius: var(--rdv-r); border-left: 4px solid #c62828; background: color-mix(in srgb, #c62828 7%, var(--rdv-base)); font-weight: 600; }
.alfa-rdv-check-line label { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; }
.alfa-rdv-check-line input { margin-top: .3rem; flex: none; }
.alfa-rdv-foot { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.alfa-rdv-empty { padding: 1rem; border-radius: var(--rdv-r); background: color-mix(in srgb, var(--rdv-primary) 6%, var(--rdv-base)); }
.alfa-rdv-done, .alfa-rdv-cancel { align-items: center; text-align: center; padding: 2rem 1rem; border-radius: var(--wp--custom--radius--medium, 16px); background: var(--wp--custom--card--background, #fff); border: var(--wp--custom--card--border, 1px solid #e2e6f0); }
.alfa-rdv-check { display: inline-grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: color-mix(in srgb, #1f8a4c 14%, transparent); color: #1f8a4c; font-size: 1.8rem; font-weight: 800; }
.alfa-rdv-done-title { font-size: 1.15rem; font-weight: 700; }
.alfa-rdv-recap { display: inline-block; text-align: left; padding: 1rem 1.25rem; border-radius: var(--rdv-r); background: color-mix(in srgb, var(--rdv-primary) 6%, var(--rdv-base)); line-height: 1.7; }
.alfa-ec-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 640px) { .alfa-rdv-fields, .alfa-rdv-grid3 { grid-template-columns: 1fr; } .alfa-rdv-chosen { flex-direction: column; align-items: flex-start; } }
.alfa-rdv-team .alfa-rdv-presta { display: grid; grid-template-columns: auto 1fr; column-gap: .9rem; align-items: center; }
.alfa-rdv-team .alfa-rdv-presta > strong, .alfa-rdv-team .alfa-rdv-presta > .alfa-rdv-meta { grid-column: 2; }
.alfa-rdv-team .alfa-rdv-presta.is-any { display: block; border-style: dashed; }
.alfa-rdv-avatar { grid-row: span 2; display: inline-grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: color-mix(in srgb, var(--rdv-primary) 14%, var(--rdv-base)); color: var(--rdv-text); font-weight: 800; font-size: 1.15rem; }
.alfa-rdv-chosen.is-who { margin-top: -.6rem; }

/* Bloc Contact : message ou rendez-vous */
.alfa-contact { --ct-primary: var(--wp--preset--color--primary, #2a4bff); --ct-text: var(--wp--custom--primary-text, var(--ct-primary)); --ct-border: var(--wp--preset--color--border, #e2e6f0); --ct-muted: var(--wp--preset--color--muted, #55607a); --ct-base: var(--wp--preset--color--base, #fff); display: flex; flex-direction: column; gap: 1.5rem; scroll-margin-top: 2rem; }
.alfa-contact-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.alfa-contact-tab { display: flex; gap: .9rem; align-items: center; padding: 1rem 1.15rem; border: 1.5px solid var(--ct-border); border-radius: var(--wp--custom--radius--medium, 14px); background: var(--ct-base); color: inherit; text-decoration: none; transition: border-color .15s, box-shadow .15s, background .15s; }
.alfa-contact-tab:hover { border-color: var(--ct-primary); }
.alfa-contact-tab:focus { outline: none; }
.alfa-contact-tab:focus-visible { outline: 3px solid color-mix(in srgb, var(--ct-primary) 40%, transparent); outline-offset: 2px; }
.alfa-contact-tab svg { flex: none; width: 2.6rem; height: 2.6rem; padding: .55rem; border-radius: 50%; background: color-mix(in srgb, var(--ct-primary) 10%, var(--ct-base)); color: var(--ct-text); box-sizing: border-box; }
.alfa-contact-tab > span { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.alfa-contact-tab strong { font-size: 1.05rem; }
.alfa-contact-tab > span > span { color: var(--ct-muted); font-size: .9rem; }
.alfa-contact-tab.is-on { border-color: var(--ct-primary); background: color-mix(in srgb, var(--ct-primary) 6%, var(--ct-base)); box-shadow: inset 0 0 0 1px var(--ct-primary); }
.alfa-contact-tab.is-on svg { background: var(--ct-primary); color: var(--wp--custom--on-primary, #fff); }
.alfa-contact-panel[hidden] { display: none; }
@media (max-width: 560px) { .alfa-contact-tabs { grid-template-columns: 1fr; } .alfa-contact-tab > span > span { display: none; } .alfa-contact-tab { padding: .8rem 1rem; } }
