#praktijk,#bereikbaarheid,#afspraak { scroll-margin-top:1.5rem; }
.hero .hero-visual img { width:100%; height:auto; aspect-ratio:3020 / 1973; object-fit:cover; border-radius:18px; }
.visit-actions { display:flex; flex-wrap:wrap; gap:1.2rem; align-items:center; margin-top:1.5rem; }
.visit-actions > a { font-size:.95rem; }
.practice-welcome { max-width:1000px; margin:0 auto; padding:2.5rem 2rem; }
.practice-welcome h2 { font-size:clamp(1.8rem,3vw,2.5rem); color:var(--forest-green); margin-bottom:1rem; }
.practice-welcome p:not(.eyebrow) { font-size:1rem; line-height:1.85; margin-top:1rem; }
.contact-section .arrival-panel { margin-top:0; margin-bottom:3rem; }
.arrival-copy details { padding:1rem 0; border-bottom:1px solid var(--line-color); }
.arrival-copy summary { cursor:pointer; font-weight:600; }
.arrival-copy details p { margin-top:.8rem; }
.form-panel > p { margin-bottom:1.5rem; }
#contact-form .privacy-note,#form-status { font-size:.9rem; line-height:1.7; margin-top:1rem; }
@media(max-width:600px) { .practice-welcome { padding:1.5rem; } .visit-actions { align-items:flex-start; flex-direction:column; } }

/* First visit: three calm steps, matching the supplied V3 example. */
.first-visit { max-width:1200px; margin:0 auto; padding:2rem 2rem 3.5rem; scroll-margin-top:1.5rem; }
.first-visit .eyebrow { font-size:.875rem; font-weight:600; color:#765773; letter-spacing:.12em; margin-bottom:1rem; }
.first-visit .section-title { text-transform:none; text-align:left; font-size:clamp(2rem,3.5vw,3rem); line-height:1.25; color:#495045; margin-bottom:2rem; }
.visit-steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.visit-steps li { padding-top:1.5rem; border-top:1px solid #d8d9cf; }
.visit-steps .number { display:block; color:#765773; font:italic 1.4rem/1.5 'Playfair Display',serif; margin-bottom:1rem; }
.visit-steps h3 { font-size:1.65rem; line-height:1.35; text-transform:none; color:#2f342f; margin-bottom:1rem; }
.visit-steps p { font-size:1rem; line-height:1.85; color:#666a61; }
@media(max-width:768px) { .visit-steps { grid-template-columns:1fr; gap:1.5rem; } .first-visit { padding:1.5rem 1.5rem 2.5rem; } }

.booking-section { max-width:1200px; margin:0 auto; padding:2.5rem 2rem; }
.booking-section h2 { font-size:clamp(1.8rem,3vw,2.5rem); color:var(--forest-green); margin-bottom:1rem; }
.booking-section > p { margin-bottom:1.5rem; line-height:1.8; }
.booking-widget { margin:1.5rem 0; min-height:500px; }
.booking-widget iframe { width:100%; border:0; }
.booking-alternative { font-size:.9rem; }
@media(max-width:600px) { .booking-section { padding:1.5rem 1rem; } }
/* Compact appointment page: one route, one FAQ and one contact section. */
.appointment-page [hidden]{display:none!important}
.appointment-page .hero{min-height:0;padding:2.5rem 2rem;gap:2.5rem;grid-template-columns:1fr 1fr;align-items:center}
.appointment-page .hero h1{font-size:clamp(2.3rem,4vw,3.6rem);text-transform:none;letter-spacing:0;line-height:1.15;margin-bottom:1.2rem}
.appointment-page .hero .eyebrow{font:500 .75rem/1.5 'Montserrat',sans-serif;letter-spacing:.13em}
.appointment-page .hero-copy{font-size:.95rem;line-height:1.8}
.appointment-page .hero-visual{align-self:center}
.appointment-page .hero-visual img{max-height:320px;object-fit:cover}
.appointment-page .cta-button{min-width:0;font-size:.72rem;letter-spacing:.08em;padding:1rem 1.3rem}
.appointment-page .appointment-wrap{max-width:1120px;margin:0 auto;padding:2.5rem 2rem}
.appointment-page main h2{font-size:clamp(1.8rem,3vw,2.3rem);line-height:1.25;letter-spacing:0;color:#495045;margin-bottom:1rem;text-transform:none}
.appointment-page .section-kicker{font:600 .7rem/1.5 'Montserrat',sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#765773;margin:0 0 .7rem}
.appointment-page .booking-section{border-top:1px solid var(--line-color)}
.appointment-page .booking-section>p{max-width:760px;font-size:.95rem;margin-bottom:1rem}
.appointment-page .booking-section .booking-arrival{font-size:.85rem}
.booking-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin:1.5rem 0}
.booking-actions>a:not(.cta-button){font-size:.85rem;color:#765773;text-underline-offset:4px}
.appointment-page .booking-section .booking-terms{font-size:.78rem;color:#666a61;margin-bottom:0}
.booking-terms a,.visit-total a,.travel-links a,.contact-phone a{color:#765773;text-underline-offset:4px}
#booking-frame-wrap{margin:1.5rem 0}
#booking-frame{width:100%;height:680px;border:1px solid var(--line-color);border-radius:12px;background:#fbf7ef}
.booking-alternative{font-size:.85rem;margin-top:.6rem}
.appointment-page .first-visit{border-top:1px solid var(--line-color)}
.appointment-page .visit-steps{gap:1.5rem;margin-top:1.5rem}
.appointment-page .visit-steps li{padding-top:1rem}
.appointment-page .visit-steps .number{margin-bottom:.3rem;font-size:1.1rem}
.appointment-page .visit-steps h3{font-size:1.4rem;margin-bottom:.5rem}
.appointment-page .visit-steps p{font-size:.87rem;line-height:1.75}
.visit-total{font-size:.83rem;margin-top:1.5rem;padding:1rem 1.2rem;background:#eeeade;border-radius:8px;color:#495045}
.appointment-location{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;border-top:1px solid var(--line-color)}
.appointment-location p{font-size:.9rem;line-height:1.8;margin-bottom:.8rem}
.appointment-location .location-address{font-size:1.05rem}
.appointment-location .arrival-route{display:inline-block;color:#765773;font-weight:500;margin:.6rem 0 1rem;text-underline-offset:4px}
.appointment-location .travel-links,.appointment-location .location-note{font-size:.8rem}
.appointment-location .contact-map{margin:0;border-top:0;border:1px solid var(--line-color);border-radius:12px;box-shadow:none}
.appointment-location .contact-map iframe{height:300px}
.appointment-page .appointment-faq{max-width:800px;width:calc(100% - 4rem);margin:2rem auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.faq-heading{text-align:center;margin-bottom:1.6rem}
.appointment-faq .faq-heading>p:last-child{max-width:540px;margin:0 auto;font-size:.9rem;color:#666a61}
.appointment-page .appointment-faq summary{font-size:.9rem;align-items:center;line-height:1.6;padding:1.1rem 0}
.appointment-faq details:last-of-type{border-bottom:1px solid var(--line-color)}
.appointment-faq .care-footnote{text-align:center;margin-top:1.2rem}
.appointment-contact{text-align:center;border-top:1px solid var(--line-color)}
.appointment-contact>p{max-width:580px;margin:0 auto;font-size:.9rem}
.appointment-contact .booking-actions{justify-content:center}
.appointment-contact .contact-phone{font-size:.8rem}
.appointment-page a:focus-visible,.appointment-page button:focus-visible{outline:2px solid #765773;outline-offset:5px}
@media(max-width:768px){
.appointment-page .hero{grid-template-columns:1fr;padding:1.5rem;gap:1.5rem}
.appointment-page .hero h1{font-size:2.3rem;max-width:400px}
.appointment-page .hero-visual img{max-height:210px;aspect-ratio:16/7}
.appointment-page .appointment-wrap{padding:2rem 1.5rem}
.appointment-page .visit-steps{grid-template-columns:1fr;gap:1rem}
.appointment-page .visit-steps li{display:grid;grid-template-columns:28px 1fr;column-gap:.6rem}
.appointment-page .visit-steps .number{grid-row:1/3}
.appointment-page .visit-steps p{grid-column:2}
.appointment-location{grid-template-columns:1fr;gap:1.3rem}
.appointment-location .contact-map iframe{height:230px}
.appointment-page .appointment-faq{width:calc(100% - 3rem);margin:1.5rem auto 2rem}
.appointment-page .appointment-faq summary{font-size:.85rem}
.booking-actions{gap:1rem}
#booking-frame{height:650px}
}
