
/* =========================================================
   GeoProcess Consulting — Booking / scheduling interface
   ========================================================= */
.booking-page{background:transparent!important;padding:0!important}
.booking-hero{position:relative;overflow:hidden;padding:108px 0 82px;background:#050b12;border-bottom:1px solid var(--gp-line);isolation:isolate}
.booking-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 50%,rgba(95,227,255,.09),transparent 27%),linear-gradient(115deg,transparent 45%,rgba(255,106,43,.04) 50%,transparent 55%);z-index:-1}
.booking-hero::after{content:"";position:absolute;left:0;right:0;top:32%;height:1px;background:linear-gradient(90deg,transparent,rgba(95,227,255,.5),transparent);box-shadow:0 0 20px rgba(95,227,255,.2);animation:bookingScan 7s linear infinite;pointer-events:none}
@keyframes bookingScan{from{transform:translateY(-220px);opacity:0}15%{opacity:1}85%{opacity:1}to{transform:translateY(330px);opacity:0}}
.booking-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:50px}
.booking-hero h1{margin-top:18px;font-size:clamp(3rem,6vw,6rem);line-height:.94!important;max-width:800px}
.booking-hero h1 span{background:linear-gradient(90deg,var(--gp-green),#ffae91 55%,#5fe3ff);-webkit-background-clip:text;background-clip:text;color:transparent!important}
.booking-hero p{max-width:720px;margin:25px 0 0;color:#91a8b7;font:1.05rem/1.75 Inter,sans-serif}
.booking-hero-meta{display:flex;align-items:center;gap:13px;margin-top:32px;color:#688392;font:700 .66rem/1 "Space Grotesk",sans-serif;letter-spacing:.15em}
.booking-hero-meta i{width:34px;height:1px;background:linear-gradient(90deg,var(--gp-green),#5fe3ff)}
.booking-radar{position:relative;width:min(430px,100%);aspect-ratio:1;margin:auto;border:1px solid rgba(95,227,255,.1);border-radius:50%;background:radial-gradient(circle,rgba(95,227,255,.045),transparent 58%);box-shadow:inset 0 0 70px rgba(95,227,255,.04),0 0 80px rgba(95,227,255,.04)}
.radar-ring{position:absolute;inset:50%;border:1px solid rgba(95,227,255,.18);border-radius:50%;transform:translate(-50%,-50%);animation:radarExpand 5s ease-in-out infinite}
.radar-ring.r1{width:32%;height:32%}.radar-ring.r2{width:58%;height:58%;animation-delay:1s}.radar-ring.r3{width:84%;height:84%;animation-delay:2s}
@keyframes radarExpand{50%{opacity:.75;box-shadow:0 0 35px rgba(95,227,255,.08)}100%{opacity:.35}}
.radar-cross{position:absolute;background:rgba(95,227,255,.13)}.radar-cross.x{left:8%;right:8%;top:50%;height:1px}.radar-cross.y{top:8%;bottom:8%;left:50%;width:1px}
.radar-core{position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;background:var(--gp-green);transform:translate(-50%,-50%);box-shadow:0 0 25px rgba(255,106,43,.85);animation:corePulse 2.4s ease-in-out infinite}
@keyframes corePulse{50%{transform:translate(-50%,-50%) scale(1.7);opacity:.55}}
.radar-label{position:absolute;color:#5e7b89;font:700 .58rem/1 "Space Grotesk",sans-serif;letter-spacing:.12em}.radar-label.top{top:14%;left:50%;transform:translateX(-50%)}.radar-label.bottom{bottom:14%;left:50%;transform:translateX(-50%)}
.booking-section{padding:86px 0 105px;background:transparent}
.booking-container{max-width:1120px!important}
.booking-intro{max-width:760px;margin:0 auto 42px;text-align:center}.booking-intro h2{margin-top:12px;font-size:clamp(2rem,4vw,3.2rem);color:#eef7fa}.booking-intro p{margin:15px 0 0;color:var(--gp-muted);font:1rem/1.7 Inter,sans-serif}
.booking-card{position:relative;display:grid;grid-template-columns:.8fr 1.2fr;gap:0;overflow:hidden;border:1px solid var(--gp-line)!important;border-radius:24px;background:linear-gradient(145deg,rgba(10,25,39,.94),rgba(4,12,20,.98))!important;box-shadow:var(--gp-shadow)!important}
.booking-step{padding:34px;border-bottom:1px solid var(--gp-line);border-right:1px solid var(--gp-line)}
.step-date{grid-column:1;grid-row:1}.step-time{grid-column:2;grid-row:1}.step-details{grid-column:1/-1;grid-row:2;border-right:0}
.step-heading{display:flex;align-items:center;gap:14px;margin-bottom:25px}.step-number{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:rgba(255,106,43,.1);border:1px solid rgba(255,106,43,.28);color:var(--gp-green-bright);font:800 .7rem/1 "Space Grotesk",sans-serif}.step-kicker{display:block;color:#5fe3ff;font:700 .58rem/1 "Space Grotesk",sans-serif;letter-spacing:.16em}.step-heading h3{margin-top:6px;color:#eef7fa;font-size:1.35rem}
.booking-step label{display:block;margin:0 0 8px;color:#9cb1bd;font:700 .72rem/1 Inter,sans-serif;letter-spacing:.03em}.booking-step label b{color:var(--gp-green)}.booking-step small{display:block;margin-top:9px;color:#607988;font:400 .73rem/1.5 Inter,sans-serif}
.booking-input{width:100%;min-height:54px;padding:0 15px!important;border:1px solid rgba(171,211,232,.18)!important;border-radius:12px!important;background:rgba(255,255,255,.035)!important;color:#eaf3f8!important;font:600 .95rem Inter,sans-serif!important}
.time-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:112px}.time-slots p{grid-column:1/-1;margin:0;color:#647d8b;font:400 .85rem/1.6 Inter,sans-serif}.time-slot{min-height:50px;padding:0 10px;border:1px solid rgba(171,211,232,.16);border-radius:11px;background:rgba(255,255,255,.025);color:#b9cbd5;font:700 .78rem Inter,sans-serif;transition:.25s var(--gp-ease)}.time-slot:hover{border-color:rgba(95,227,255,.4);color:#fff;background:rgba(95,227,255,.07);transform:translateY(-2px)}.time-slot.selected{border-color:var(--gp-green);background:linear-gradient(135deg,var(--gp-green),#ff8757);color:#071019;box-shadow:0 10px 30px rgba(255,106,43,.2)}
.selected-slot{margin-top:18px;padding:14px 15px;border:1px solid rgba(95,227,255,.13);border-radius:12px;background:rgba(95,227,255,.035)}.selected-slot span{display:block;color:#5e7f8e;font:700 .56rem/1 "Space Grotesk",sans-serif;letter-spacing:.15em}.selected-slot strong{display:block;margin-top:7px;color:#dcecf2;font:700 .82rem Inter,sans-serif}
#booking-form{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field-wide{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;padding:14px 15px!important;border:1px solid rgba(171,211,232,.17)!important;border-radius:11px!important;background:rgba(255,255,255,.03)!important;color:#eaf3f8!important;font:500 .88rem Inter,sans-serif!important}.field textarea{resize:vertical;min-height:130px}.field select option{background:#0a1724;color:#fff}
.form-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:5px}.form-footer>span{max-width:560px;color:#617b89;font:400 .7rem/1.55 Inter,sans-serif}.booking-submit{min-height:54px;padding:0 24px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--gp-green),#ff8d5e);color:#071019;font:800 .78rem Inter,sans-serif;letter-spacing:.02em;box-shadow:0 12px 35px rgba(255,106,43,.2);transition:.3s var(--gp-ease)}.booking-submit:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 18px 40px rgba(255,106,43,.3)}.booking-submit:disabled{opacity:.6;cursor:not-allowed}
.booking-message{grid-column:1/-1;display:none;padding:16px 20px;border-top:1px solid var(--gp-line);font:600 .82rem/1.5 Inter,sans-serif}.booking-message:not(:empty){display:block}.booking-message.loading{color:#9edcf0;background:rgba(95,227,255,.05)}.booking-message.success{color:#8fe0c0;background:rgba(84,216,137,.05)}.booking-message.error{color:#ffae91;background:rgba(255,106,43,.06)}
.booking-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:18px}.booking-info-card{padding:24px;border:1px solid var(--gp-line);border-radius:16px;background:linear-gradient(145deg,rgba(10,25,39,.8),rgba(5,14,23,.92));transition:.3s var(--gp-ease)}.booking-info-card:hover{transform:translateY(-5px);border-color:rgba(95,227,255,.28)}.booking-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,106,43,.28);border-radius:10px;color:var(--gp-green-bright);background:rgba(255,106,43,.08);font:800 .65rem "Space Grotesk",sans-serif}.booking-info-card strong{display:block;margin-top:16px;color:#eaf3f8;font:700 .9rem Inter,sans-serif}.booking-info-card span{display:block;margin-top:7px;color:#6e8795;font:400 .78rem/1.55 Inter,sans-serif}
@media(max-width:900px){.booking-hero-grid{grid-template-columns:1fr}.booking-radar{width:min(360px,80vw)}.booking-card{grid-template-columns:1fr}.step-date,.step-time,.step-details{grid-column:1;grid-row:auto;border-right:0}.step-time{border-top:1px solid var(--gp-line)}}
@media(max-width:680px){.booking-hero{padding:78px 0 62px}.booking-hero h1{font-size:3.15rem}.booking-radar{width:270px}.booking-step{padding:24px 20px}.time-slots{grid-template-columns:1fr}.booking-info-grid{grid-template-columns:1fr}.booking-card{border-radius:18px}#booking-form{grid-template-columns:1fr}.field-wide{grid-column:auto}.form-footer{align-items:stretch;flex-direction:column}.booking-submit{width:100%}.booking-hero-meta{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.booking-hero::after,.radar-ring,.radar-core{animation:none}.booking-submit,.time-slot,.booking-info-card{transition:none}}
.selected-slot small{display:block;margin-top:6px;color:#64808e;font:500 .68rem/1.45 Inter,sans-serif}

.booking-zone-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px}
.booking-zone-summary>div{padding:13px 14px;border:1px solid rgba(171,211,232,.14);border-radius:11px;background:rgba(255,255,255,.025)}
.booking-zone-summary .zone-label{display:block;color:#5e7f8e;font:700 .54rem/1 "Space Grotesk",sans-serif;letter-spacing:.14em}
.booking-zone-summary strong{display:block;margin-top:7px;color:#dcecf2;font:600 .78rem/1.35 Inter,sans-serif;word-break:break-word}
.time-slot{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:9px 11px!important;text-align:left}
.time-slot .slot-local{font:800 .79rem/1.2 Inter,sans-serif}
.time-slot .slot-india{font:600 .62rem/1.25 Inter,sans-serif;opacity:.75}
.time-slot.selected .slot-india{opacity:.9}
@media(max-width:680px){.booking-zone-summary{grid-template-columns:1fr}}
