/* Theme-independent Kajaawa Cab archive styles. */
.kcb-page{--kcb-green:#078b0b;--kcb-dark:#111111;--kcb-text:#202020;--kcb-border:#e5ebe7;--kcb-soft:#f7faf8;color:var(--kcb-text);background:#fff;font-family:inherit}
.kcb-page *{box-sizing:border-box}
.kcb-page a{text-decoration:none}
.kcb-container{width:min(1200px,calc(100% - 40px));margin:0 auto;padding:34px 0 70px}
.kcb-hero{min-height:490px;background-position:center;background-size:cover;background-repeat:no-repeat;display:flex;align-items:center}
.kcb-hero-inner{width:min(1200px,calc(100% - 40px));margin:0 auto;padding:30px 0}
.kcb-hero .wpcf7,.kcb-form-fallback{background:#fff;color:#111;border-radius:20px;box-shadow:0 8px 30px rgba(0,0,0,.16);padding:20px;max-width:470px;width:100%}
.kcb-hero .wpcf7 form{margin:0}
.kcb-hero .wpcf7 p{margin:0 0 10px}
.kcb-hero .wpcf7 input:not([type=submit]),.kcb-hero .wpcf7 select,.kcb-hero .wpcf7 textarea{width:100%;min-height:44px;background:#fff;border:1px solid #cfcfcf;border-radius:4px;color:#222;padding:10px 12px;font:inherit;font-size:14px}
.kcb-hero .wpcf7 input[type=submit]{width:70%;min-height:45px;border:0;border-radius:4px;background:var(--kcb-green);color:#fff;font:inherit;font-weight:600;cursor:pointer;padding:10px 20px;transition:.2s ease}
.kcb-hero .wpcf7 input[type=submit]:hover{filter:brightness(.9)}
.kcb-hero .form-input-container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.kcb-hero .form-input-container+.input-container,.kcb-hero .submit-holder{margin:10px 0}
.kcb-hero .flex-fm-lg{display:flex;gap:10px}.kcb-hero .input-container.span-2{grid-column:span 2}.kcb-hero [data-name=phone-number]{flex:1}
.kcb-hero .wpcf7-not-valid-tip{font-size:12px;color:#c00;line-height:1.6}.kcb-hero .wpcf7-response-output{margin:4px 0 0!important;padding:0!important;border:0!important;font-size:13px}
.kcb-form-fallback h3{margin:0 0 8px;font-size:24px;color:var(--kcb-dark)}.kcb-form-fallback p{margin:0 0 14px}.kcb-fallback-actions{display:flex;gap:10px;flex-wrap:wrap}.kcb-fallback-actions a{background:var(--kcb-green);color:#fff;padding:11px 15px;border-radius:5px;font-weight:600}.kcb-admin-help{margin-top:15px!important;padding-top:12px;border-top:1px solid #ddd;font-size:13px}.kcb-admin-help a{color:var(--kcb-green)}
.kcb-page .custom-row{margin:26px 0}.kcb-page .icons-container{display:flex;justify-content:space-evenly;gap:22px;overflow-x:auto;padding:12px 0 18px;scrollbar-width:none}.kcb-page .icons-container::-webkit-scrollbar{display:none}.kcb-page .icon{display:flex;flex-direction:column;align-items:center;min-width:170px}.kcb-page .svg-icon{width:68px;height:68px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}.kcb-page .svg-icon svg{width:60px;height:60px}.kcb-page .bold{text-align:center;font-size:14px;line-height:1.35;font-weight:700;color:#111;white-space:nowrap}
.kcb-section{padding:22px 0;border-top:1px solid var(--kcb-border)}.kcb-section:first-of-type{border-top:0}.kcb-section h1,.kcb-section h2{color:#2c3f50;margin:0 0 16px;line-height:1.2}.kcb-section h1{font-size:34px}.kcb-section h2{font-size:28px}.kcb-section p{font-size:16px;line-height:1.75;margin:0 0 12px}.kcb-section a{color:var(--kcb-green)}
.kcb-fleet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}.kcb-fleet-grid>div{padding:18px;border:1px solid var(--kcb-border);border-radius:12px;background:var(--kcb-soft);min-height:108px}.kcb-fleet-grid strong{display:block;color:var(--kcb-dark);font-size:17px;margin-bottom:7px}.kcb-fleet-grid span{display:block;font-size:14px;line-height:1.5}
.kcb-services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kcb-service-link{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 16px;border:1px solid var(--kcb-border);border-radius:8px;color:var(--kcb-dark)!important;background:#fff;font-weight:600;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.kcb-service-link:hover{transform:translateY(-2px);border-color:#b8d5c1;box-shadow:0 8px 20px rgba(21,71,43,.08)}.kcb-service-arrow{color:var(--kcb-green);font-size:20px}
/* Basic jQuery UI datepicker skin, matching the old Cab UI. */
#ui-datepicker-div{background:#fff;max-width:280px;min-width:240px;width:100%;font-size:14px;z-index:999999!important;padding:8px;box-shadow:0 8px 25px rgba(0,0,0,.14);border-radius:6px}.ui-datepicker-header{text-align:center;padding:5px;border:1px solid #e5e5e5}.ui-datepicker-title{font-weight:700}.ui-datepicker-prev{float:left}.ui-datepicker-next{float:right}.ui-datepicker-calendar{width:100%;margin:0}.ui-datepicker-calendar th,.ui-datepicker-calendar td{padding:4px;text-align:center}.ui-datepicker-current-day{background:var(--kcb-green)}.ui-datepicker-current-day a{color:#fff!important;font-weight:700}.ui-state-disabled{background:#eee}.ui-datepicker-prev,.ui-datepicker-next{cursor:pointer}
@media(max-width:900px){.kcb-fleet-grid{grid-template-columns:repeat(2,1fr)}.kcb-services-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.kcb-hero{min-height:520px;background-attachment:scroll}.kcb-hero-inner,.kcb-container{width:min(100% - 28px,1200px)}.kcb-hero .form-input-container{grid-template-columns:1fr}.kcb-hero .input-container,.kcb-hero .input-container.span-2{grid-column:auto}.kcb-hero .wpcf7 input[type=submit]{width:100%}.kcb-page .icons-container{justify-content:flex-start}.kcb-page .bold{font-size:13px;white-space:normal}.kcb-section h1{font-size:28px}.kcb-section h2{font-size:24px}.kcb-fleet-grid,.kcb-services-grid{grid-template-columns:1fr}}


/* v1.0.1 — Cab page visual correction */
.kcb-page,
.kcb-page p,
.kcb-page li,
.kcb-page span {
    color:#202020;
    opacity:1;
}

.kcb-section h1,
.kcb-section h2,
.kcb-section h3 {
    color:#111 !important;
    font-weight:700 !important;
    opacity:1 !important;
}

.kcb-section p {
    color:#202020 !important;
    font-weight:400;
    opacity:1 !important;
}

.kcb-page .bold {
    color:#111 !important;
    font-weight:700 !important;
    opacity:1 !important;
}

/* Keep the booking card compact, like the original Kajaawa layout. */
.kcb-hero .wpcf7,
.kcb-form-fallback {
    max-width:470px !important;
    padding:20px !important;
    border-radius:20px !important;
}

/* Normalize all booking controls. */
.kcb-hero .wpcf7 input:not([type=submit]):not([type=hidden]),
.kcb-hero .wpcf7 select,
.kcb-hero .wpcf7 textarea {
    width:100% !important;
    min-height:44px !important;
    height:44px !important;
    padding:9px 12px !important;
    font-size:14px !important;
    line-height:1.2 !important;
    color:#222 !important;
    opacity:1 !important;
    border:1px solid #cfcfcf !important;
    border-radius:4px !important;
    background:#fff !important;
    box-sizing:border-box !important;
    box-shadow:none !important;
}

.kcb-hero .wpcf7 input::placeholder {
    color:#555 !important;
    opacity:1 !important;
}

/* Preserve original two-column form spacing. */
.kcb-hero .form-input-container {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:10px !important;
}

.kcb-hero .form-input-container + .input-container,
.kcb-hero .submit-holder {
    margin:10px 0 !important;
}

/* Country code + phone must stay on one line. */
.kcb-hero .kcb-phone-row {
    display:flex !important;
    gap:10px !important;
    align-items:stretch !important;
    width:100% !important;
}

.kcb-hero .kcb-phone-row .kcb-country {
    flex:0 0 30% !important;
    max-width:30% !important;
}

.kcb-hero .kcb-phone-row .kcb-phone {
    flex:1 1 auto !important;
    min-width:0 !important;
}

/* Vehicle selector is one clean full-width row. */
.kcb-hero .kcb-vehicle-row {
    width:100% !important;
    display:block !important;
    clear:both !important;
}

/* Keep button compact like the old site. */
.kcb-hero .wpcf7 input[type=submit],
.kcb-hero .wpcf7 button[type=submit] {
    width:70% !important;
    min-height:45px !important;
    height:45px !important;
    padding:10px 20px !important;
    border-radius:4px !important;
    font-size:14px !important;
    font-weight:600 !important;
    background:var(--kcb-green) !important;
    color:#fff !important;
    border:0 !important;
    opacity:1 !important;
}

/* Broken shortcode text should never affect the form height. */
.kcb-hero .kcb-broken-honeypot {
    display:none !important;
}

@media(max-width:640px){
    .kcb-hero .form-input-container {
        grid-template-columns:1fr !important;
    }

    .kcb-hero .kcb-phone-row {
        display:flex !important;
    }

    .kcb-hero .wpcf7 input[type=submit],
    .kcb-hero .wpcf7 button[type=submit] {
        width:100% !important;
    }
}


/* ============================================================
   v1.0.2 — exact Cab form dimension correction
   ============================================================ */

/*
 * The green custom-select arrow consumes horizontal space. Give select
 * text enough room so "Time", "+91", etc. never get clipped.
 */
.kcb-hero .wpcf7 select,
.kcb-hero .wpcf7 .kcb-control {
    font-size:15px !important;
    line-height:normal !important;
}

.kcb-hero .wpcf7 select {
    padding-left:14px !important;
    padding-right:46px !important;
    text-overflow:clip !important;
    white-space:nowrap !important;
}

/* Exact compact control height. */
.kcb-hero .wpcf7 input:not([type=submit]):not([type=hidden]),
.kcb-hero .wpcf7 select,
.kcb-hero .wpcf7 textarea {
    height:48px !important;
    min-height:48px !important;
    line-height:normal !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
}

/* First row: Pickup / Drop — equal width. */
.kcb-hero .kcb-row-pickup-drop {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:10px !important;
}

/*
 * Date / Time:
 * Do NOT let the Time field collapse to the tiny width visible before.
 * Original site has a substantial Time box, roughly 60/40.
 */
.kcb-hero .kcb-row-date-time {
    display:grid !important;
    grid-template-columns:minmax(0,1.55fr) minmax(165px,1fr) !important;
    gap:10px !important;
}

.kcb-hero .kcb-row-date-time .kcb-field-date,
.kcb-hero .kcb-row-date-time .kcb-field-time {
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
}

/* Name / Email — equal width. */
.kcb-hero .kcb-row-name-email {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:10px !important;
}

/*
 * +91 / phone:
 * Original Kajaawa layout uses a narrow country-code box and a much wider
 * phone input. 21% / 79% matches the old proportions much more closely.
 */
.kcb-hero .kcb-phone-row {
    display:flex !important;
    align-items:stretch !important;
    gap:10px !important;
    width:100% !important;
    min-width:0 !important;
}

.kcb-hero .kcb-phone-row .kcb-country {
    flex:0 0 calc(21% - 2px) !important;
    width:calc(21% - 2px) !important;
    max-width:calc(21% - 2px) !important;
    min-width:100px !important;
    margin:0 !important;
}

.kcb-hero .kcb-phone-row .kcb-phone {
    flex:1 1 0 !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
}

.kcb-hero .kcb-phone-row .kcb-country > *,
.kcb-hero .kcb-phone-row .kcb-phone > *,
.kcb-hero .kcb-phone-row .wpcf7-form-control-wrap,
.kcb-hero .kcb-phone-row input,
.kcb-hero .kcb-phone-row select {
    width:100% !important;
    max-width:100% !important;
}

/* Make the phone placeholder fit naturally instead of looking squeezed. */
.kcb-hero .kcb-control-phone {
    padding-left:14px !important;
    padding-right:14px !important;
    min-width:0 !important;
}

/* Vehicle remains full width. */
.kcb-hero .kcb-vehicle-row,
.kcb-hero .kcb-field-vehicle {
    width:100% !important;
    max-width:100% !important;
    clear:both !important;
}

/* Keep Send Query centered and at the old site's approximate width. */
.kcb-hero .kcb-submit-holder {
    display:flex !important;
    justify-content:flex-end !important;
    width:100% !important;
}

.kcb-hero .kcb-submit,
.kcb-hero .wpcf7 input[type=submit],
.kcb-hero .wpcf7 button[type=submit] {
    width:70% !important;
    min-height:46px !important;
    height:46px !important;
}

/* Remove inherited dimensions on CF7 wrappers that can squeeze fields. */
.kcb-hero .kcb-field,
.kcb-hero .kcb-field .wpcf7-form-control-wrap {
    min-width:0 !important;
    max-width:none !important;
}

/* Desktop-specific form proportions. */
@media(min-width:641px){
    .kcb-hero .wpcf7,
    .kcb-form-fallback {
        max-width:500px !important;
        width:500px !important;
    }
}

/* Mobile: do not force desktop minimums. */
@media(max-width:640px){
    .kcb-hero .wpcf7,
    .kcb-form-fallback {
        width:100% !important;
        max-width:100% !important;
    }

    .kcb-hero .kcb-row-pickup-drop,
    .kcb-hero .kcb-row-date-time,
    .kcb-hero .kcb-row-name-email {
        grid-template-columns:1fr !important;
    }

    .kcb-hero .kcb-phone-row .kcb-country {
        flex:0 0 31% !important;
        width:31% !important;
        max-width:31% !important;
        min-width:90px !important;
    }

    .kcb-hero .kcb-submit,
    .kcb-hero .wpcf7 input[type=submit],
    .kcb-hero .wpcf7 button[type=submit] {
        width:100% !important;
    }
}
