.appointment-page{min-height:100vh;background:var(--appointment-background,#f3f7fb);color:var(--appointment-text,#18344a);padding:2rem 1rem 4rem;font-family:var(--appointment-font-family,inherit)}
.appointment-shell{width:min(900px,100%);margin:auto}.appointment-width-compact .appointment-shell{width:min(720px,100%)}.appointment-width-wide .appointment-shell{width:min(1120px,100%)}
.appointment-preview{display:inline-flex;gap:.5rem;align-items:center;background:var(--appointment-surface,#fff);padding:.55rem .85rem;border-radius:999px;box-shadow:0 8px 24px #17293a18}
.appointment-hero{text-align:center;padding:2.5rem 1rem}.appointment-hero h1{font-size:clamp(2rem,6vw,3.5rem);margin-bottom:1rem}.appointment-hero p{max-width:720px;margin-left:auto;margin-right:auto}
.appointment-hero-split .appointment-hero{text-align:left}.appointment-hero-split .appointment-hero p{margin-left:0}.appointment-hero-compact .appointment-hero,.appointment-hero.appointment-hero-compact{padding:1.5rem .5rem}.appointment-hero-compact .appointment-icon{width:58px;height:58px;border-radius:18px;font-size:1.4rem}
.appointment-icon{width:76px;height:76px;margin:0 auto 1rem;border-radius:24px;display:grid;place-items:center;background:color-mix(in srgb,var(--appointment-accent,#2f6fa3) 14%,var(--appointment-surface,#fff));color:var(--appointment-accent,#2f6fa3);font-size:2rem}.appointment-hero-split .appointment-icon{margin-left:0}
.appointment-font-modern{--appointment-font-family:Inter,ui-sans-serif,system-ui,sans-serif}.appointment-font-elegant{--appointment-font-family:Georgia,"Times New Roman",serif}.appointment-font-system{--appointment-font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.appointment-services{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0 2rem}.appointment-services article,.appointment-card{background:var(--appointment-surface,#fff);border-radius:20px;padding:1.25rem;box-shadow:0 14px 40px #17293a15}.appointment-services article p{margin:.5rem 0;color:color-mix(in srgb,var(--appointment-text,#18344a) 72%,transparent)}.appointment-services span,.appointment-success span{display:block;color:color-mix(in srgb,var(--appointment-text,#18344a) 68%,transparent);margin-top:.35rem}
.appointment-cards-bordered .appointment-services article,.appointment-cards-bordered .appointment-card{box-shadow:none;border:1px solid color-mix(in srgb,var(--appointment-text,#18344a) 18%,transparent)}.appointment-cards-flat .appointment-services article,.appointment-cards-flat .appointment-card{box-shadow:none;border-radius:8px}
.appointment-card{margin:1.5rem 0;padding:clamp(1.25rem,4vw,2rem)}.appointment-slots{display:flex;flex-wrap:wrap;gap:.7rem}.appointment-slots span{padding:.65rem .9rem;border-radius:999px;background:color-mix(in srgb,var(--appointment-accent,#2f6fa3) 12%,var(--appointment-surface,#fff))}
.appointment-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.appointment-form-grid label{font-weight:600}.appointment-form-grid input,.appointment-form-grid select,.appointment-form-grid textarea{display:block;width:100%;margin-top:.4rem;padding:.75rem;border:1px solid color-mix(in srgb,var(--appointment-text,#18344a) 22%,transparent);border-radius:12px;background:var(--appointment-surface,#fff);color:var(--appointment-text,#18344a)}.appointment-wide{grid-column:1/-1}.appointment-consent{display:block;margin:1rem 0}.appointment-honeypot{position:absolute!important;left:-9999px!important}
.appointment-primary-button,.appointment-action-link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--appointment-button,#24577f);color:var(--appointment-button-text,#fff);border:0;text-decoration:none;padding:.8rem 1.15rem;font-weight:700;cursor:pointer}.appointment-buttons-rounded .appointment-primary-button,.appointment-buttons-rounded .appointment-action-link{border-radius:12px}.appointment-buttons-pill .appointment-primary-button,.appointment-buttons-pill .appointment-action-link{border-radius:999px}.appointment-buttons-square .appointment-primary-button,.appointment-buttons-square .appointment-action-link{border-radius:2px}.appointment-inline-button{width:max-content;max-width:100%;margin:1rem 0 2rem}.appointment-primary-button:hover,.appointment-action-link:hover{filter:brightness(.96);color:var(--appointment-button-text,#fff)}
.appointment-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.appointment-actions a{color:var(--appointment-accent,#2f6fa3);font-weight:700}.appointment-success{background:color-mix(in srgb,#2f9b66 14%,var(--appointment-surface,#fff));border-radius:16px;padding:1rem 1.2rem;margin-bottom:1.5rem}.appointment-error{color:#8a2e2e}.appointment-error ul{margin-bottom:0}
.appointment-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0}.appointment-summary div{padding:.9rem;border-radius:12px;background:color-mix(in srgb,var(--appointment-accent,#2f6fa3) 7%,var(--appointment-surface,#fff))}.appointment-summary dt{font-size:.85rem;color:color-mix(in srgb,var(--appointment-text,#18344a) 65%,transparent)}.appointment-summary dd{margin:0;font-weight:700}.appointment-danger-zone{border:1px solid #b94a4a55}.appointment-danger-button{border:1px solid #a23b3b;background:transparent;color:#8d2f2f;padding:.75rem 1rem;border-radius:12px;font-weight:700}.appointment-back-link{display:inline-block;margin-top:1rem;color:var(--appointment-accent,#2f6fa3);font-weight:700;text-decoration:none}
@media(max-width:700px){.appointment-services,.appointment-form-grid,.appointment-summary{grid-template-columns:1fr}.appointment-wide{grid-column:auto}.appointment-page{padding-left:.75rem;padding-right:.75rem}.appointment-hero{padding-left:.25rem;padding-right:.25rem}}
