/* Meeting contact and optional live Google appointment page. */
.booking{align-items:start;gap:clamp(2rem,4vw,4rem);padding-block:4rem}
.booking-card{max-width:38rem;padding:clamp(1.3rem,2.6vw,2.2rem)}
.booking-card h3{font-size:clamp(1.8rem,2.6vw,2.4rem);line-height:1.18}
.meeting-plan{margin:1.8rem 0 0;padding:0;list-style:none;display:grid;gap:.8rem;max-width:29rem}
.meeting-plan li{display:flex;gap:.8rem;font-size:1.13rem;line-height:1.45}
.meeting-plan li:before{content:'↗';color:var(--lime);flex:none}
.meeting-plan strong{font-weight:600}
.booking .route-summary{margin-top:2rem}
.booking .booking-art{width:clamp(10rem,16vw,15rem);margin:.5rem 0 0 auto}
.booking-card label{font-size:1.06rem;font-weight:500;line-height:1.4}
.booking-card textarea{width:100%;max-width:100%;resize:vertical;min-height:7rem;border:1px solid #8a91a7;border-radius:6px;padding:.8rem;background:#fff;color:var(--navy);font:inherit;font-size:1rem;line-height:1.5}
.booking-card textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.form-field-help{font-size:.9rem;color:var(--muted);line-height:1.4;margin-top:.45rem}
.contact-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1.5rem}
.contact-actions .button{padding:1rem .8rem;min-height:3.75rem;gap:.5rem;font-size:1.02rem;text-align:center;justify-content:center;border-radius:8px;background:var(--blue);color:white}
.contact-actions .button-email{background:transparent;border:1.5px solid var(--navy);color:var(--navy)}
.contact-actions .button:hover{background:var(--navy);color:white;transform:translateY(-2px)}
.contact-actions a:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.contact-privacy{font-size:.86rem;line-height:1.45;margin-top:.8rem;color:var(--muted)}
.contact-fallback{margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem}
.contact-fallback>p{font-size:1rem;line-height:1.45;color:var(--muted)}
.contact-fallback>a{display:inline-block;font-size:1rem;font-weight:600;text-decoration:underline;text-underline-offset:4px;margin-top:.8rem}
.contact-fallback details{margin-top:.8rem;font-size:1rem}
.contact-fallback summary{padding:.5rem 0;color:var(--navy)}
.contact-fallback textarea{margin-top:.6rem;min-height:10rem;font-size:.95rem}
.copy-message{background:var(--navy);color:white;border-radius:6px;padding:.7rem 1rem;font-size:1rem;margin-top:.5rem;min-height:44px}
#copy-status{font-size:.95rem;margin-top:.4rem;color:var(--muted)}
.calendar-booking h3{margin-top:1.2rem}
.calendar-booking>p{font-size:1.06rem;line-height:1.5;margin-top:.7rem;color:var(--muted)}
.calendar-steps{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0 0;padding:0;list-style:none;font-size:.95rem;color:var(--muted)}
.calendar-steps li:before{content:'✓';color:var(--blue);margin-right:.3rem}
.calendar-booking .button{width:100%;margin-top:1.25rem;background:var(--blue);color:white;justify-content:space-between}
.calendar-direct{display:inline-block;margin-top:.8rem;padding:.5rem 0;font-size:1rem;font-weight:500;text-decoration:underline;text-underline-offset:4px;color:var(--navy)}
.contact-options>summary{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:1.1rem 0;min-height:48px;font-size:1.12rem;font-weight:600;color:var(--navy);cursor:pointer;list-style:none}
.contact-options>summary::-webkit-details-marker{display:none}
.contact-options>summary span{font-size:1.5rem;font-weight:400;transition:transform .2s}
.contact-options[open]>summary span{transform:rotate(45deg)}
.contact-options>summary:focus-visible,.calendar-direct:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.contact-options>summary[hidden]{display:none}
.contact-divider{display:flex;align-items:center;gap:.75rem;margin-top:1.8rem;font-size:.9rem;color:var(--muted)}
.contact-divider:before,.contact-divider:after{content:'';flex:1;height:1px;background:var(--line)}
.calendar-dialog{padding:0;border:0;border-radius:16px;width:min(96vw,1000px);max-width:1000px;max-height:94dvh;color:var(--navy);background:#fff;overflow:auto;box-shadow:0 24px 100px #0005}
.calendar-dialog::backdrop{background:#0c123cbf;backdrop-filter:blur(4px)}
.calendar-dialog header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.3rem;position:sticky;top:0;background:var(--paper);z-index:1;border-bottom:1px solid var(--line)}
.calendar-dialog header h3{font-size:1.2rem;line-height:1.3}
.calendar-dialog header button{flex:none;min-height:44px;min-width:44px;border:1px solid var(--navy);border-radius:50%;background:transparent;color:var(--navy);font-size:1.4rem}
.calendar-dialog>.calendar-notice{padding:.8rem 1.3rem;font-size:1rem;line-height:1.5;color:var(--muted)}
.calendar-dialog a{text-decoration:underline;text-underline-offset:3px}
.calendar-dialog iframe{display:block;width:100%;height:680px;border:0;background:white}
body.calendar-open{overflow:hidden}
body.calendar-open,body.calendar-open *{cursor:auto!important}
body.calendar-open .custom-cursor{display:none}
@media(max-width:800px){.booking{grid-template-columns:1fr;gap:2rem}.booking-card{max-width:none}.booking-copy>p:not(.eyebrow),.meeting-plan,.booking .route-summary{max-width:none}.booking .booking-art{display:none}.booking-copy h2{font-size:clamp(2.5rem,7vw,3.9rem)}}
@media(max-width:420px){.contact-actions{grid-template-columns:1fr}.contact-actions .button{font-size:1.08rem}.calendar-dialog{width:100%;max-width:100%;max-height:100dvh;height:100dvh;margin:0;border-radius:0}.calendar-dialog iframe{height:calc(100dvh - 155px);min-height:500px}.booking{padding-block:2.7rem}.meeting-plan li{font-size:1.06rem}}
@media(prefers-reduced-motion:reduce){.contact-actions .button:hover{transform:none}.calendar-dialog::backdrop{backdrop-filter:none}}
