/* Appointment page only: shared desktop and mobile layout. */
.appointment-page { background:#f7f9fc; }
.appointment-page .inner-hero.compact { padding:56px 0 42px; background:#f7f9fc; }
.appointment-page .inner-hero h1 { font-size:clamp(32px,3.3vw,48px); line-height:1.25; margin:12px 0 16px; }
.appointment-page .inner-hero p { margin:0; font-size:16px; }
.appointment-page .content-section { padding:24px 0 64px; }
.appointment-page .booking-grid { max-width:1160px; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:56px; align-items:start; }
.appointment-page .booking-grid > div { padding-top:20px; min-width:0; }
.appointment-page .booking-grid h2 { font-size:30px; line-height:1.35; margin:12px 0 20px; }
.appointment-page .booking-grid > div > p { font-size:15px; line-height:1.9; color:#64748b; margin:0 0 24px; }
.appointment-page .v606-contact-lead { display:block; margin:24px 0; font-size:15px; line-height:1.8; }
.appointment-page .v606-contact-lead b { display:block; white-space:nowrap; font-size:17px; margin-bottom:6px; }
.appointment-page .contact-cards { display:grid; gap:0; margin:24px 0; border-top:1px solid #e1e7ef; }
.appointment-page .contact-cards > div { padding:18px 0; border:0; border-bottom:1px solid #e1e7ef; border-radius:0; background:transparent; }
.appointment-page .contact-cards small { display:block; font-size:13px; color:#64748b; margin-bottom:6px; }
.appointment-page .contact-cards b { font-size:18px; line-height:1.5; overflow-wrap:anywhere; }
.appointment-page .booking-note { margin-top:28px; padding:22px; border-radius:16px; background:#eaf2ff; }
.appointment-page .booking-note b { display:block; font-size:16px; margin-bottom:10px; }
.appointment-page .booking-note span { display:block; font-size:13px; line-height:2; color:#526884; }
.appointment-page .booking-form { padding:32px; background:#fff; border:1px solid #e5eaf2; border-radius:24px; box-shadow:0 12px 36px #233e6210; min-width:0; }
.appointment-page .booking-form .form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.appointment-page .booking-form label,.appointment-page .region-field { display:block; margin:0 0 20px; font-size:14px; font-weight:600; color:#25344a; line-height:1.5; min-width:0; }
.appointment-page .region-field > span { margin:0 0 8px; font-size:14px; font-weight:600; line-height:1.5; }
.appointment-page .booking-form input,.appointment-page .booking-form select,.appointment-page .booking-form textarea { display:block; box-sizing:border-box; width:100%; min-width:0; margin:8px 0 0; border:1px solid #dce3ee; border-radius:10px; background:#fff; color:#25344a; font:inherit; font-weight:400; padding:12px 14px; box-shadow:none; }
.appointment-page .booking-form input,.appointment-page .booking-form select { height:50px; }
.appointment-page .region-selects { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.appointment-page .region-selects select { margin:0; padding-left:10px; }
.appointment-page .booking-form select:disabled { background:#f4f6f9; color:#94a3b8; }
.appointment-page .booking-form textarea { min-height:128px; resize:vertical; line-height:1.7; }
.appointment-page .booking-form :is(input,select,textarea):focus { outline:3px solid #2674ff22; outline-offset:1px; border-color:#2674ff; }
.appointment-page .booking-form .submit { width:100%; border-radius:12px; min-height:52px; font-size:16px; margin:0; }
.appointment-page .form-tip { display:block; margin-top:14px; font-size:12px; color:#78869a; line-height:1.7; text-align:center; }
.appointment-page .form-feedback:empty { display:none; }
.appointment-page .soft-bg { background:#eff3f9; padding:52px 0; }
@media(max-width:1000px) { .appointment-page .booking-grid { gap:28px; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); } .appointment-page .booking-form .form-row { grid-template-columns:1fr; gap:0; } }
@media(max-width:760px) { .appointment-page .booking-grid { grid-template-columns:1fr; gap:24px; } .appointment-page .inner-hero.compact { padding:36px 0 20px; } .appointment-page .booking-form { padding:24px; } }
.appointment-mobile .pagehero { padding:30px 20px 24px; background:#f7f9fc; }
.appointment-mobile .pagehero h1 { font-size:30px; line-height:1.3; }
.appointment-mobile .form-intro { margin:0 16px; padding:20px 8px 12px; }
.appointment-mobile .form-intro p { line-height:1.8; color:#64748b; }
.appointment-mobile .m606-contact-card { margin:8px 16px 20px; padding:20px; border:1px solid #e1e7ef; border-radius:16px; background:#eef4ff; display:grid; grid-template-columns:1fr; gap:8px; }
.appointment-mobile .m606-contact-card b { white-space:nowrap; }
.appointment-mobile .m606-contact-card a { overflow-wrap:anywhere; }
.appointment-mobile .mform { margin:0 16px 32px; padding:24px 20px; background:#fff; border:1px solid #e5eaf2; border-radius:20px; box-shadow:0 8px 24px #233e6208; }
.appointment-mobile .mform label,.appointment-mobile .region-field { display:block; font-size:14px; font-weight:600; margin:0 0 20px; line-height:1.5; }
.appointment-mobile .mform :is(input,select,textarea) { box-sizing:border-box; width:100%; min-width:0; font-size:16px; border:1px solid #dce3ee; border-radius:10px; padding:12px; margin-top:8px; background:#fff; }
.appointment-mobile .mform :is(input,select) { height:50px; }
.appointment-mobile .region-selects select { margin-top:0; }
.appointment-mobile .mform textarea { min-height:130px; resize:vertical; }
.appointment-mobile .mform button { width:100%; min-height:52px; border-radius:12px; }
