/* GrowPep Consultation Booking Lite v1.3
   Uses the GrowPep Global Design System for typography, spacing, colors, forms, buttons, and breakpoints.
   Booking CSS controls component layout and state only. */

.gp-booking,.gp-booking *,.gp-booking *::before,.gp-booking *::after{box-sizing:border-box}
.gp-booking{width:100%;max-width:100%;overflow:clip;background:var(--gp-white);color:var(--gp-text)}
.gp-booking__shell{width:min(calc(100% - 32px),980px);max-width:980px;margin-inline:auto;padding:var(--gp-space-6);border:1px solid var(--gp-border);border-radius:var(--gp-radius-panel);background:var(--gp-white);box-shadow:var(--gp-shadow-panel);overflow:hidden}

/* Booking-specific text lock: never green. */
.gp-booking :where(h1,h2,h3,h4,h5,h6,strong,label,dt,dd,.gp-booking__eyebrow,.gp-booking__select-text,.gp-booking__type-duration){color:var(--gp-navy)!important}
.gp-booking :where(p,span,em,small){color:var(--gp-text)}

.gp-booking__progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gp-space-3);margin-bottom:var(--gp-space-8)}
.gp-booking__progress span{display:flex;align-items:center;gap:var(--gp-space-2);min-width:0;padding:var(--gp-space-3);border:1px solid var(--gp-border);border-radius:var(--gp-radius-input);background:var(--gp-surface);color:var(--gp-muted)}
.gp-booking__progress span b{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;flex:0 0 30px;border-radius:50%;background:var(--gp-white);border:1px solid var(--gp-border);color:var(--gp-navy)!important}
.gp-booking__progress span em{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--gp-muted)}
.gp-booking__progress span.is-active,.gp-booking__progress span.is-complete{border-color:rgba(15,157,116,.42);background:rgba(15,157,116,.07)}
.gp-booking__progress span.is-active b,.gp-booking__progress span.is-complete b{background:var(--gp-emerald);border-color:var(--gp-emerald);color:var(--gp-white)!important}
.gp-booking__progress span.is-active em,.gp-booking__progress span.is-complete em{color:var(--gp-navy)}

.gp-booking__message{margin-bottom:var(--gp-space-5);padding:var(--gp-space-4);border-radius:var(--gp-radius-input);color:var(--gp-navy)!important}
.gp-booking__message.is-error{border:1px solid rgba(220,38,38,.25);background:rgba(220,38,38,.06)}
.gp-booking__message.is-success{border:1px solid rgba(15,157,116,.25);background:rgba(15,157,116,.06)}
.gp-booking__step[hidden]{display:none!important}
.gp-booking__heading{width:min(100%,800px);margin:0 auto var(--gp-space-8);text-align:center}
.gp-booking__heading p{margin:var(--gp-space-4) auto 0;max-width:700px}
.gp-booking__eyebrow{display:inline-flex;margin-bottom:var(--gp-space-3);font-size:var(--gp-label-size);font-weight:var(--gp-weight-bold);line-height:var(--gp-line-label);letter-spacing:.075em;text-transform:uppercase}

.gp-booking__types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gp-grid-gap)}
button.gp-booking__type{appearance:none;width:100%;min-width:0;min-height:220px;padding:var(--gp-space-6)!important;border:1px solid var(--gp-emerald)!important;border-radius:var(--gp-radius-card)!important;background:var(--gp-emerald)!important;color:var(--gp-white)!important;text-align:left;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:var(--gp-space-3);box-shadow:var(--gp-shadow-card);overflow:hidden;transition:transform var(--gp-motion-standard),background-color var(--gp-motion-standard),border-color var(--gp-motion-standard),box-shadow var(--gp-motion-standard)}
button.gp-booking__type .gp-type-card-title{width:100%;color:var(--gp-white)!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:break-word;word-break:normal}
button.gp-booking__type .gp-type-body-small{display:block;width:100%;max-width:100%;color:rgba(255,255,255,.80)!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;word-break:normal}
button.gp-booking__type .gp-booking__type-duration{display:inline-flex;min-height:28px;align-items:center;padding:4px 10px;border:1px solid rgba(255,255,255,.18);border-radius:var(--gp-radius-pill);background:rgba(255,255,255,.12)!important;color:var(--gp-white)!important;font-size:var(--gp-label-size);font-weight:var(--gp-weight-bold)}
button.gp-booking__type .gp-booking__select-text{display:flex;align-items:center;gap:8px;width:100%;margin-top:auto;padding-top:var(--gp-space-2);font-weight:var(--gp-weight-semibold);color:var(--gp-white)!important;white-space:normal}
button.gp-booking__type strong,button.gp-booking__type span,button.gp-booking__type p{color:inherit}
@media(hover:hover) and (pointer:fine){button.gp-booking__type:hover{background:var(--gp-navy)!important;border-color:var(--gp-navy)!important;color:var(--gp-white)!important;transform:translateY(-4px);box-shadow:var(--gp-shadow-card-hover)}button.gp-booking__type:hover .gp-type-card-title,button.gp-booking__type:hover .gp-type-body-small,button.gp-booking__type:hover .gp-booking__select-text,button.gp-booking__type:hover strong,button.gp-booking__type:hover span,button.gp-booking__type:hover p{color:var(--gp-white)!important}button.gp-booking__type:hover .gp-booking__type-duration{background:rgba(255,255,255,.16)!important;color:var(--gp-white)!important}}
button.gp-booking__type:focus-visible{outline:3px solid var(--gp-accent);outline-offset:3px}

.gp-booking__datetime-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--gp-grid-gap)}
.gp-booking__panel{min-width:0;padding:var(--gp-space-6);border:1px solid var(--gp-border);border-radius:var(--gp-radius-card);background:var(--gp-white);box-shadow:var(--gp-shadow-card)}
.gp-booking__panel label:not(:first-child),.gp-booking__panel .gp-form-label:not(:first-child){margin-top:var(--gp-space-5)}
.gp-booking__duration-note{margin-top:var(--gp-space-4);padding:var(--gp-space-3) var(--gp-space-4);border-left:3px solid var(--gp-emerald);background:var(--gp-surface);color:var(--gp-navy)!important}
.gp-booking__slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gp-space-3);align-content:start}
.gp-booking__slot{min-width:0;min-height:66px;padding:10px 14px;border:1px solid var(--gp-border);border-radius:var(--gp-radius-button);background:var(--gp-white);color:var(--gp-navy);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--gp-space-2)}
.gp-booking__slot strong{color:var(--gp-navy)!important}.gp-booking__slot span{color:var(--gp-muted)}
.gp-booking__slot:hover,.gp-booking__slot:focus-visible,.gp-booking__slot.is-selected{border-color:var(--gp-emerald);background:var(--gp-emerald);color:var(--gp-white)}
.gp-booking__slot:hover strong,.gp-booking__slot:hover span,.gp-booking__slot.is-selected strong,.gp-booking__slot.is-selected span{color:var(--gp-white)!important}

.gp-booking__summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gp-space-3);margin-bottom:var(--gp-space-6)}
.gp-booking__summary>div{min-width:0;padding:var(--gp-space-4);border:1px solid var(--gp-border);border-radius:var(--gp-radius-input);background:var(--gp-surface)}
.gp-booking__summary span{display:block;color:var(--gp-muted)!important}.gp-booking__summary strong{display:block;margin-top:var(--gp-space-1);color:var(--gp-navy)!important;overflow-wrap:anywhere}
.gp-booking__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gp-space-5)}
.gp-booking__field-full{grid-column:1/-1}.gp-booking__hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.gp-booking__consent{display:flex!important;gap:var(--gp-space-3);align-items:flex-start;margin-top:var(--gp-space-5);color:var(--gp-navy)!important}.gp-booking__consent span{color:var(--gp-navy)!important}.gp-booking__consent input{margin-top:5px;flex:0 0 auto}
.gp-booking__actions{display:flex;justify-content:space-between;gap:var(--gp-space-4);margin-top:var(--gp-space-6)}
.gp-booking__confirm-button{display:inline-flex;min-height:var(--gp-button-height);align-items:center;justify-content:center;padding:11px 22px;border:1px solid var(--gp-emerald)!important;border-radius:var(--gp-radius-button);background:var(--gp-emerald)!important;color:var(--gp-white)!important;font:inherit;font-weight:var(--gp-weight-semibold);cursor:pointer;box-shadow:0 6px 16px rgba(15,157,116,.18);transition:transform var(--gp-motion-fast),background-color var(--gp-motion-fast)}
.gp-booking__confirm-button:hover,.gp-booking__confirm-button:focus-visible{background:var(--gp-emerald-dark)!important;color:var(--gp-white)!important}.gp-booking__confirm-button:disabled{opacity:.65;cursor:not-allowed}

.gp-booking__confirmed{width:min(100%,760px);margin-inline:auto;text-align:center;padding-block:var(--gp-space-4)}
.gp-booking__check{display:inline-flex;width:64px;height:64px;align-items:center;justify-content:center;margin-bottom:var(--gp-space-5);border-radius:50%;background:var(--gp-emerald);color:var(--gp-white)!important;font-size:32px}
.gp-booking__confirmed h2{margin:var(--gp-space-3) 0 var(--gp-space-4)}
.gp-booking__confirmation-card{margin-top:var(--gp-space-6);padding:0;border:1px solid var(--gp-border);border-radius:var(--gp-radius-card);background:var(--gp-white);text-align:left;overflow:hidden}
.gp-booking__confirmation-card dl{display:grid;grid-template-columns:180px 1fr;margin:0}
.gp-booking__confirmation-card dt,.gp-booking__confirmation-card dd{padding:var(--gp-space-4);border-bottom:1px solid var(--gp-border)}
.gp-booking__confirmation-card dt{background:var(--gp-surface);color:var(--gp-navy)!important}.gp-booking__confirmation-card dd{margin:0;color:var(--gp-navy)!important;font-weight:var(--gp-weight-semibold);overflow-wrap:anywhere}
.gp-booking__confirmation-card dt:nth-last-of-type(1),.gp-booking__confirmation-card dd:nth-last-of-type(1){border-bottom:0}
.gp-booking__confirmation-note{margin:var(--gp-space-5) auto 0;max-width:640px;color:var(--gp-text)!important}

@media(max-width:1024px){.gp-booking__types,.gp-booking__datetime-grid{grid-template-columns:1fr}.gp-booking__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.gp-booking__heading{text-align:center}.gp-booking__shell{padding:var(--gp-space-5)}}
@media(max-width:834px){.gp-booking__progress{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.gp-booking__shell{width:min(calc(100% - 24px),980px);padding:var(--gp-space-4);border-radius:var(--gp-radius-card)}.gp-booking__heading{text-align:center}.gp-booking__heading .gp-type-section-title,.gp-booking__heading p{text-align:center!important}.gp-booking__fields,.gp-booking__summary{grid-template-columns:1fr}.gp-booking__field-full{grid-column:auto}.gp-booking__actions{flex-direction:column-reverse}.gp-booking__actions .gp-button,.gp-booking__confirm-button{width:100%}.gp-booking__slots{grid-template-columns:1fr}.gp-booking__panel{padding:var(--gp-space-5)}button.gp-booking__type{min-height:0;padding:var(--gp-space-5)!important}}
@media(max-width:480px){.gp-booking__progress{grid-template-columns:1fr}.gp-booking__progress span:not(.is-active):not(.is-complete){display:none}.gp-booking__progress span.is-complete{display:none}.gp-booking__panel{padding:var(--gp-space-4)}.gp-booking__confirmation-card dl{grid-template-columns:1fr}.gp-booking__confirmation-card dt{padding-bottom:var(--gp-space-1);border-bottom:0}.gp-booking__confirmation-card dd{padding-top:0}.gp-booking__shell{padding:var(--gp-space-3)}}
@media(max-width:360px){.gp-booking__shell{width:min(calc(100% - 20px),980px);padding:var(--gp-space-3)}button.gp-booking__type{padding:var(--gp-space-4)!important}}
@media(prefers-reduced-motion:reduce){.gp-booking *{transition:none!important;scroll-behavior:auto!important}}
