/* ==============================
   ROOT & RESET
============================== */
#smc-booking-form {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 30px;
    max-width: 1100px;
    margin: 40px auto;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.08);
    overflow: visible !important;
    font-family: Inter, system-ui, sans-serif;
}

@media (max-width: 900px) {
    #smc-booking-form {
        grid-template-columns: 1fr;
    }
}
select, .form-control, .form-select, textarea, input {
    margin-bottom: 10px !important;
}

/* ===============================
   CHECKBOX GRID (QUALIFYING CONDITIONS)
================================ */

.smc-step[data-step="3"] .pi_conditions {
    margin-right: 8px;
}

.smc-step[data-step="3"] h4 + label {
    display: none; /* safety reset */
}

.smc-step[data-step="3"] .pi-conditions-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
}

.smc-step[data-step="3"] label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #374151;
    cursor: pointer;
}

/* Qualifying condition pills */
.smc-step[data-step="3"] label:has(.pi_conditions) {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    padding: 10px 14px;
    border-radius: 8px;
    flex: 1 1 calc(50% - 12px);
}

@media (max-width: 640px) {
    .smc-step[data-step="3"] label:has(.pi_conditions) {
        flex: 1 1 100%;
    }
}

/* ===============================
   RADIO GROUPS
================================ */

.smc-step[data-step="3"] input[type="radio"] {
    width: auto;
    margin-right: 6px;
}

.smc-step[data-step="3"] label input[type="radio"] {
    margin-right: 6px;
}

/* ===============================
   NICE SELECT FIX
================================ */

.smc-step[data-step="3"] .nice-select {
    width: 100%;
    height: 46px;
    line-height: 44px;
    border-radius: 8px;
    border: 1px solid #d1d5db;
    margin-bottom: 14px;
}

.smc-step[data-step="3"] .nice-select .list {
    width: 100%;
    border-radius: 8px;
}

/* ===============================
   CONSENT
================================ */

.smc-step[data-step="3"] #pi_consent {
    width: auto;
    margin-right: 8px;
}

.smc-step[data-step="3"] label:has(#pi_consent) {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    padding: 12px;
    border-radius: 8px;
}

/* ===============================
   ACTION BUTTONS
================================ */

.smc-step[data-step="3"] .smc-actions {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-top: 30px;
}

.smc-step[data-step="3"] .smc-back,
.smc-step[data-step="3"] .smc-next {
    padding: 12px 22px;
    font-size: 14px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    font-weight: 600;
}

.smc-step[data-step="3"] .smc-back {
    background: #e5e7eb;
    color: #111827;
}

.smc-step[data-step="3"] .smc-next {
    background: #2563eb;
    color: #ffffff;
}

.smc-step[data-step="3"] .smc-next:hover {
    background: #1d4ed8;
}

/* ==============================
   LEFT SIDEBAR (STEPS)
============================== */
#smc-booking-form::before {
    content: '';
    background: #0f766e;
}

.smc-step-indicator {
    background: linear-gradient(180deg, #0f766e, #115e59);
    padding: 40px 25px;
    color: #fff;
}

.smc-step-indicator h4 {
    margin-bottom: 25px;
    font-size: 16px;
    letter-spacing: .5px;
    opacity: .9;
}

.smc-step-indicator ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.smc-step-indicator li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 14px;
    opacity: .7;
    margin-bottom: 8px;
}

.smc-step-indicator li.active {
    background: rgba(255,255,255,0.15);
    opacity: 1;
    font-weight: 600;
}

.smc-step-indicator li span {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
}

/* ==============================
   RIGHT CONTENT
============================== */
.smc-step {
    display: none;
    padding: 45px 50px;
}

.smc-step.active {
    display: block;
}

.smc-step h3 {
    font-size: 26px;
    margin-bottom: 25px;
    color: #0f172a;
}

/* ==============================
   FORM FIELDS
============================== */
.smc-field {
    margin-bottom: 18px;
}

.smc-field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 6px;
    color: #334155;
}

.smc-field input,
.smc-field select,
.smc-field textarea {
    width: 100%;
    padding: 12px 14px;
    border-radius: 8px;
    border: 1px solid #cbd5e1;
    font-size: 14px;
    background: #fff;
}

.smc-field textarea {
    resize: vertical;
    min-height: 90px;
}

.smc-field input:focus,
.smc-field select:focus,
.smc-field textarea:focus {
    border-color: #0f766e;
    outline: none;
}

/* ==============================
   TIME SLOTS
============================== */
#smc_slots {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px;
}

.smc-slot {
    border: 1px solid #cbd5e1;
    padding: 10px;
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    transition: .2s;
}

.smc-slot input {
    display: none;
}

.smc-slot:hover {
    border-color: #0f766e;
}

.smc-slot input:checked + span {
    background: #0f766e;
    color: #fff;
    border-radius: 6px;
    padding: 6px 10px;
}

input[type=checkbox] {
    visibility: visible !important;
    opacity: 1 !important;
    display: inline-block;
    vertical-align: middle;
    width: 20px !important;
    height: 20px !important;
    display: block !important;
}

/* ==============================
   ACTION BUTTONS
============================== */
.smc-actions,
.smc-next,
.smc-back {
    margin-top: 25px;
}

.smc-next,
.smc-back {
    padding: 12px 22px;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    border: none;
}

.smc-next {
    background: #0f766e;
    color: #fff;
}

.smc-next:disabled {
    background: #94a3b8;
    cursor: not-allowed;
}

.smc-back {
    background: #e2e8f0;
    margin-right: 10px;
}

/* ==============================
   REVIEW BOX
============================== */
#smc_review_box {
    background: #f8fafc;
    border-radius: 10px;
    padding: 20px;
    font-size: 14px;
    line-height: 1.7;
    border: 1px solid #e2e8f0;
}

/* ==============================
   PAYMENT PLACEHOLDER
============================== */
.paypal-placeholder {
    border: 2px dashed #94a3b8;
    padding: 35px;
    text-align: center;
    border-radius: 10px;
    color: #475569;
    font-size: 15px;
}

/* ==============================
   SUCCESS
============================== */
.smc-step[data-step="6"] {
    text-align: center;
}

.smc-step[data-step="6"] h3 {
    color: #16a34a;
}


.smc-step[data-step="3"]{
    max-width:900px!important;
    margin:0 auto!important;
    padding:20px!important;
}

.smc-step[data-step="3"] h3{
    text-align:center!important;
    margin-bottom:25px!important;
}

.smc-step[data-step="3"] h4{
    margin:25px 0 10px!important;
    font-size:16px!important;
    font-weight:600!important;
    border-bottom:1px solid #e5e7eb!important;
    padding-bottom:6px!important;
}

.smc-step[data-step="3"] input:not([type="radio"]):not([type="checkbox"]),
.smc-step[data-step="3"] textarea{
    width:calc(50% - 8px)!important;
    padding:10px 12px!important;
    border:1px solid #d1d5db!important;
    border-radius:6px!important;
    font-size:14px!important;
    background:#fff!important;
    margin-bottom:12px!important;
}

.smc-step[data-step="3"] textarea,
.smc-step[data-step="3"] input[type="file"],
.smc-step[data-step="3"] #qc_other,
.smc-step[data-step="3"] #pi_renewal{
    width:100%!important;
}

.smc-step[data-step="3"] textarea{
    min-height:80px!important;
    resize:vertical!important;
}

.smc-step[data-step="3"] label{
    display:inline-flex!important;
    align-items:center!important;
    gap:8px!important;
    font-size:14px!important;
    margin-right:18px!important;
    margin-bottom:8px!important;
    cursor:pointer!important;
}

.smc-step[data-step="3"] input[type="radio"],
.smc-step[data-step="3"] input[type="checkbox"]{
    appearance:none!important;
    width:18px!important;
    height:18px!important;
    border:2px solid #9ca3af!important;
    border-radius:4px!important;
    position:relative!important;
    cursor:pointer!important;
}

.smc-step[data-step="3"] input[type="radio"]{
    border-radius:50%!important;
}

.smc-step[data-step="3"] input[type="checkbox"]:checked,
.smc-step[data-step="3"] input[type="radio"]:checked{
    background:#2563eb!important;
    border-color:#2563eb!important;
}

.smc-step[data-step="3"] input[type="checkbox"]:checked::after{
    content:"✓"!important;
    color:#fff!important;
    font-size:12px!important;
    position:absolute!important;
    top:0!important;
    left:4px!important;
}

.smc-step[data-step="3"] input[type="radio"]:checked::after{
    content:""!important;
    width:8px!important;
    height:8px!important;
    background:#fff!important;
    border-radius:50%!important;
    position:absolute!important;
    top:3px!important;
    left:3px!important;
}

.smc-actions{
    display:flex!important;
    justify-content:space-between!important;
    margin-top:30px!important;
}

@media(max-width:768px){
    .smc-step[data-step="3"] input:not([type="radio"]):not([type="checkbox"]),
    .smc-step[data-step="3"] textarea{
        width:100%!important;
    }
}

.smc-step[data-step="3"] input[type="checkbox"],
.smc-step[data-step="3"] input[type="radio"]{
    appearance:auto!important;
    width:18px!important;
    height:18px!important;
    margin:0 10px 0 0!important;
    cursor:pointer!important;
}

.smc-step[data-step="3"] label{
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    font-size:14px!important;
    margin-bottom:10px!important;
}

.smc-step[data-step="3"] label input{
    flex-shrink:0!important;
}
.smc-step[data-step="3"] input[type="radio"],
.smc-step[data-step="3"] input[type="checkbox"]{
    all: revert !important;
    appearance: auto !important;
    -webkit-appearance: radio !important;
    -moz-appearance: radio !important;

    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;

    position: static !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 8px 0 0 !important;
    cursor: pointer !important;
}
/* ================================
   PAYMENT STEP UI
================================ */

.smc-payment-title {
    text-align: center;
    margin-bottom: 20px;
}

.smc-payment-summary {
    background: #f8f9fb;
    border: 1px solid #e4e6eb;
    padding: 15px;
    border-radius: 6px;
    margin-bottom: 20px;
    font-size: 14px;
}

.smc-payment-summary p {
    margin: 6px 0;
}

.smc-field {
    margin-bottom: 16px;
}

.smc-field label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
}

.smc-field input {
    width: 100%;
    padding: 10px 12px;
    border-radius: 5px;
    border: 1px solid #ccc;
    font-size: 14px;
}

#smc-card-element {
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 5px;
    background: #fff;
}

.smc-pay-btn {
    width: 100%;
    margin-top: 20px;
    padding: 14px;
    background: linear-gradient(135deg, #2c7be5, #1a5fd0);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}

.smc-pay-btn:hover {
    opacity: 0.95;
}

#smc-card-error {
    margin-top: 8px;
    color: #d63638;
    font-size: 13px;
}
