/* Page rendez-vous : contact direct et choix du cabinet. */
.booking-hero{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center;padding-block:20px 35px}
.booking-hero h1{font-size:clamp(2.7rem,4vw,3.8rem)}
.booking-note{font-size:.85rem;color:var(--muted);margin-top:22px}
.phone-panel{background:var(--sage);border:1px solid var(--line);border-radius:160px 160px 5px 5px;text-align:center;padding:45px 30px 35px}
.panel-flower{display:block;font-size:2.7rem;color:#738364;margin-bottom:20px}
.phone-panel h2{font-size:1.65rem;letter-spacing:-.035em}
.phone-panel .eyebrow{font-size:.6rem;margin-bottom:15px}
.phone-number{display:block;font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.7rem);text-decoration:none;margin-block:20px;white-space:nowrap}
.phone-panel>p:last-child{font-size:.76rem;color:var(--muted);margin:20px auto 0;max-width:270px}
.phone-panel .button{gap:12px;font-size:.76rem}
@media(max-width:900px){.booking-hero{grid-template-columns:1fr;gap:35px}.phone-panel{max-width:480px;width:100%;justify-self:center}.booking-hero .page-intro{max-width:650px}}
@media(max-width:480px){.booking-hero h1{font-size:2.4rem}.phone-panel{padding:35px 18px 28px}.phone-panel .button{padding-inline:12px;font-size:.72rem}}

/* Cartes activées individuellement, sans connexion préalable à Google. */
.cabinet-map{margin-top:25px;border-top:1px solid var(--line);padding-top:22px}
.map-placeholder{min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;padding:25px;background:var(--sage);text-align:center;border-radius:var(--radius)}
.map-placeholder[hidden],.map-frame[hidden],.cabinet-map button[hidden]{display:none}
.map-marker{font-size:2.3rem;line-height:1;color:var(--muted)}
.map-placeholder .map-heading{font-family:var(--serif);font-size:1.5rem;margin:0}
.map-placeholder p{font-size:.76rem;color:var(--muted);line-height:1.7;margin:0;max-width:340px}
.map-placeholder .button{font-size:.74rem;padding:12px 16px}
.map-frame{height:320px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.map-frame iframe{display:block;width:100%;height:100%;border:0}
.map-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-top:15px;font-size:.76rem}
.map-actions a{padding-block:8px}
.map-close{font-size:inherit;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--ink);padding:10px 12px;min-height:44px}
@media(max-width:600px){.map-placeholder{padding:20px 15px}.map-frame{height:300px}.map-actions{align-items:start;flex-direction:column}}

/* Formulaire de demande : labels persistants, erreurs accessibles. */
.booking-form-link{margin-top:25px}
.contact-form-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;padding-block:65px;border-bottom:1px solid var(--line);scroll-margin-top:25px}
.request-intro>p:not(.eyebrow){color:var(--muted);font-size:.9rem;margin-top:24px}
.request-intro .text-link{margin-top:20px}
.contact-form{padding:32px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);min-width:0}
.form-required-note{font-size:.75rem;color:var(--muted);margin-bottom:25px}
.contact-fields{border:0;padding:0;margin:0;min-width:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.form-full{grid-column:1/-1}
.form-field{min-width:0}.form-field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:7px}
.form-field label span{font-size:.73rem;font-weight:400;color:var(--muted)}
.form-field input,.form-field select,.form-field textarea{display:block;width:100%;min-height:48px;font:inherit;font-size:.9rem;color:var(--ink);background:var(--paper);border:1px solid #bbc3b3;border-radius:var(--radius);padding:11px 12px}
.form-field textarea{resize:vertical;min-height:140px}.form-field select{padding-right:8px}
.form-field :is(input,select,textarea):focus-visible{outline:3px solid var(--clay);outline-offset:3px}
.field-help{font-size:.73rem;color:var(--muted);margin-top:9px}
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.form-privacy{font-size:.74rem;color:var(--muted);margin-top:25px;line-height:1.8}
.form-submit-row{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:25px}
.form-submit-row>span{font-size:.7rem;color:var(--muted)}
.contact-form button:disabled{cursor:wait;opacity:.6;transform:none}
.form-feedback{margin-top:22px;padding:16px;border-left:3px solid var(--green);background:var(--sage);font-size:.85rem;line-height:1.7}
.form-feedback[data-state=error]{background:#f3e6de;border-color:var(--clay)}
.form-feedback[hidden]{display:none}.form-fallback{font-size:.85rem;margin-top:20px}
@media(max-width:1000px){.contact-form-section{grid-template-columns:1fr;gap:30px}.request-intro{max-width:680px}}
@media(max-width:600px){.contact-form-section{padding-block:40px}.contact-form{padding:23px 18px}.form-grid{grid-template-columns:1fr;gap:20px}.form-field input,.form-field select,.form-field textarea{font-size:1rem}.form-submit-row .button{width:100%}}
