/* =================================================================
   CTC Checkout - Frontend Menu Design Match
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300..900;1,300..900&display=swap');

:root {
    --ctc-primary: #ff4d4d;
    --ctc-primary-hover: #e63939;
    --ctc-success: #10b981;
    --ctc-dark: #090d16;
    --ctc-slate: #64748b;
    --ctc-bg-light: #f8fafc;
    --ctc-border: #e2e8f0;
    --ctc-radius-xl: 20px;
    --ctc-radius-lg: 14px;
    --ctc-radius-md: 10px;
    --ctc-shadow-card: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
    --ctc-shadow-hover: 0 20px 30px -10px rgba(255, 77, 77, 0.15);
}

/* =================================================================
   Base / Typography
   ================================================================ */

.ctc-checkout-page,
.ctc-checkout-page *,
.ctc-checkout-page input,
.ctc-checkout-page select,
.ctc-checkout-page textarea,
.ctc-checkout-page button {
    font-family: 'Montserrat', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

.ctc-checkout-page {
    max-width: 1180px;
    margin: 0 auto;
    padding: 24px 16px 100px;
    color: var(--ctc-dark);
}

.ctc-checkout-page button {
    cursor: pointer;
}

.ctc-page-head {
    margin-bottom: 24px;
}

.ctc-back-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ctc-slate) !important;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 700;
    transition: color .2s ease;
}

.ctc-back-link:hover {
    color: var(--ctc-primary) !important;
}

.ctc-page-title-row h1 {
    margin: 14px 0 5px !important;
    color: var(--ctc-dark) !important;
    font-size: 32px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
}

.ctc-page-title-row p {
    margin: 0 !important;
    color: var(--ctc-slate) !important;
    font-size: 13px !important;
}

/* =================================================================
   Layout / Cards
   ================================================================ */

.ctc-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 24px;
    align-items: start;
}

.ctc-main {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.ctc-card,
.ctc-summary {
    background: #ffffff !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-xl) !important;
    box-shadow: var(--ctc-shadow-card) !important;
}

.ctc-card {
    padding: 24px !important;
}

.ctc-sidebar {
    position: sticky;
    top: 20px;
}

/* =================================================================
   Section Headers
   ================================================================ */

.ctc-section-head {
    display: flex !important;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 20px !important;
}

.ctc-step {
    width: 30px;
    height: 30px;
    min-width: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #ffe6e6 !important;
    color: var(--ctc-primary) !important;
    font-size: 13px;
    font-weight: 800;
}

.ctc-section-head h2 {
    margin: 1px 0 4px !important;
    color: var(--ctc-dark) !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
}

.ctc-section-head p {
    margin: 0 !important;
    color: var(--ctc-slate) !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

/* =================================================================
   Account Tabs
   ================================================================ */

.ctc-account-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 14px;
}

.ctc-account-tab {
    min-height: 44px;
    padding: 10px 12px !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-md) !important;
    background: #ffffff !important;
    color: var(--ctc-slate) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    box-shadow: none !important;
    transform: none !important;
}

.ctc-account-tab:hover {
    background: var(--ctc-bg-light) !important;
    color: var(--ctc-primary) !important;
    transform: none !important;
    box-shadow: none !important;
}

.ctc-account-tab.active {
    background: #ffe6e6 !important;
    border-color: #fecaca !important;
    color: var(--ctc-primary) !important;
    box-shadow: inset 3px 0 0 var(--ctc-primary) !important;
}

.ctc-account-panel[hidden] {
    display: none !important;
}

.ctc-info-strip {
    padding: 12px 14px !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-md) !important;
    background: var(--ctc-bg-light) !important;
    color: var(--ctc-slate) !important;
    font-size: 11px !important;
    line-height: 1.5 !important;
}

/* =================================================================
   Forms
   ================================================================ */

.ctc-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.ctc-field-full {
    grid-column: 1 / -1;
}

.ctc-field label,
.ctc-conditional label,
.ctc-slot-area label,
.ctc-custom-tip label {
    display: block;
    margin-bottom: 7px !important;
    color: var(--ctc-dark) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.ctc-field label span,
.ctc-conditional label span {
    color: var(--ctc-primary) !important;
}

.ctc-field input,
.ctc-field select,
.ctc-field textarea,
.ctc-full-textarea,
.ctc-conditional textarea,
.ctc-slot-area select,
.ctc-money-input input {
    width: 100% !important;
    min-height: 44px;
    padding: 11px 13px !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-md) !important;
    background: #ffffff !important;
    color: var(--ctc-dark) !important;
    font-size: 13px !important;
    outline: none !important;
    box-shadow: none !important;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.ctc-field textarea,
.ctc-full-textarea,
.ctc-conditional textarea {
    min-height: 100px;
    resize: vertical;
}

.ctc-field input:hover,
.ctc-field select:hover,
.ctc-field textarea:hover,
.ctc-full-textarea:hover,
.ctc-conditional textarea:hover,
.ctc-slot-area select:hover,
.ctc-money-input input:hover {
    border-color: #cbd5e1 !important;
}

.ctc-field input:focus,
.ctc-field select:focus,
.ctc-field textarea:focus,
.ctc-full-textarea:focus,
.ctc-conditional textarea:focus,
.ctc-slot-area select:focus,
.ctc-money-input input:focus {
    border-color: var(--ctc-primary) !important;
    box-shadow: 0 0 0 3px rgba(255, 77, 77, .10) !important;
}

.ctc-error {
    display: block;
    min-height: 15px;
    margin-top: 4px !important;
    color: #dc2626 !important;
    font-size: 10px !important;
}

.ctc-field.has-error input,
.ctc-field.has-error select,
.ctc-field.has-error textarea {
    border-color: #dc2626 !important;
}

.ctc-form-note {
    display: block;
    margin-top: 9px;
    color: var(--ctc-slate) !important;
    font-size: 10px !important;
}

/* =================================================================
   Buttons - Same Tomato Red Treatment As Frontend Menu
   ================================================================ */

.ctc-checkout-page .ctc-primary-btn,
.ctc-checkout-page .ctc-secondary-btn {
    border-radius: 12px !important;
    font-weight: 700 !important;
    transition: all .25s cubic-bezier(.16,1,.3,1) !important;
}

.ctc-primary-btn {
    width: calc(100% - 40px) !important;
    min-height: 52px !important;
    margin: 0 20px 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    padding: 12px 20px !important;
    border: none !important;
    background: linear-gradient(135deg, #ff5c5c 0%, #ff4d4d 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(255, 77, 77, .35) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.ctc-primary-btn:hover {
    background: linear-gradient(135deg, #ff4d4d 0%, #e63939 100%) !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(255, 77, 77, .5) !important;
}

.ctc-primary-btn:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 8px rgba(255, 77, 77, .3) !important;
}

.ctc-primary-btn strong {
    padding: 5px 9px !important;
    border-radius: 7px !important;
    background: rgba(0, 0, 0, .12) !important;
    color: #ffffff !important;
}

.ctc-secondary-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    padding: 10px 18px !important;
    border: none !important;
    background: linear-gradient(135deg, #ff5c5c 0%, #ff4d4d 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(255, 77, 77, .25) !important;
    font-size: 12px !important;
}

.ctc-secondary-btn:hover {
    background: linear-gradient(135deg, #ff4d4d 0%, #e63939 100%) !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
}

/* =================================================================
   Fulfillment
   ================================================================ */

.ctc-fulfillment {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 15px 16px !important;
    border: 1px solid #fed7d7 !important;
    border-radius: var(--ctc-radius-lg) !important;
    background: linear-gradient(135deg, #fff5f5 0%, #fff0f0 100%) !important;
}

.ctc-fulfillment-type {
    color: #991b1b !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.ctc-fulfillment-time {
    color: var(--ctc-slate) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

/* =================================================================
   Saved Address / Check Rows
   ================================================================ */

.ctc-saved-address {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    padding: 13px 14px !important;
    border: 1px solid #dbeafe !important;
    border-radius: var(--ctc-radius-md) !important;
    background: #eff6ff !important;
}

.ctc-saved-address > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.ctc-saved-address strong {
    color: var(--ctc-dark) !important;
    font-size: 12px !important;
}

.ctc-saved-address span {
    color: var(--ctc-slate) !important;
    font-size: 11px !important;
}

.ctc-link-btn {
    padding: 5px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--ctc-primary) !important;
    box-shadow: none !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

.ctc-link-btn:hover {
    background: transparent !important;
    color: var(--ctc-primary-hover) !important;
    transform: none !important;
    box-shadow: none !important;
}

.ctc-check-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 14px !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-md) !important;
    background: #ffffff !important;
    cursor: pointer;
}

.ctc-check-row input {
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--ctc-primary);
}

.ctc-check-row span {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.ctc-check-row strong {
    color: var(--ctc-dark) !important;
    font-size: 12px !important;
}

.ctc-check-row small {
    color: var(--ctc-slate) !important;
    font-size: 10px !important;
}

/* =================================================================
   Choice / Payment Cards
   ================================================================ */

.ctc-choice-grid,
.ctc-payment-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ctc-choice-card,
.ctc-payment-card {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-lg) !important;
    background: #ffffff !important;
    cursor: pointer;
    transition: all .2s ease;
}

.ctc-choice-card:hover,
.ctc-payment-card:hover {
    border-color: #fecaca !important;
    box-shadow: var(--ctc-shadow-card) !important;
}

.ctc-choice-card:has(input:checked),
.ctc-payment-card:has(input:checked) {
    border-color: var(--ctc-primary) !important;
    background: #fff5f5 !important;
    box-shadow: 0 0 0 1px var(--ctc-primary) !important;
}

.ctc-choice-card input,
.ctc-payment-card input {
    accent-color: var(--ctc-primary);
}

.ctc-choice-card span,
.ctc-payment-card span {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.ctc-choice-card strong,
.ctc-payment-card strong {
    color: var(--ctc-dark) !important;
    font-size: 12px !important;
}

.ctc-choice-card small,
.ctc-payment-card small {
    color: var(--ctc-slate) !important;
    font-size: 10px !important;
}

.ctc-payment-card b {
    width: 34px;
    height: 34px;
    min-width: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: var(--ctc-bg-light) !important;
    color: var(--ctc-dark) !important;
}

/* =================================================================
   Calendar
   ================================================================ */

.ctc-schedule-picker {
    margin-top: 15px;
    padding: 17px !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-lg) !important;
    background: var(--ctc-bg-light) !important;
}

.ctc-calendar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.ctc-calendar-head strong {
    color: var(--ctc-dark) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.ctc-calendar-nav {
    width: 34px;
    height: 34px;
    padding: 0 !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-md) !important;
    background: #ffffff !important;
    color: var(--ctc-dark) !important;
    box-shadow: none !important;
    font-size: 20px !important;
}

.ctc-calendar-nav:hover {
    background: #ffe6e6 !important;
    color: var(--ctc-primary) !important;
    transform: none !important;
    box-shadow: none !important;
}

.ctc-weekdays,
.ctc-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 5px;
}

.ctc-weekdays {
    margin-bottom: 6px;
}

.ctc-weekdays span {
    text-align: center;
    color: var(--ctc-slate) !important;
    font-size: 9px !important;
    font-weight: 800 !important;
}

.ctc-calendar-day {
    min-height: 38px;
    padding: 5px !important;
    border: 1px solid transparent !important;
    border-radius: var(--ctc-radius-md) !important;
    background: #ffffff !important;
    color: var(--ctc-dark) !important;
    font-size: 11px !important;
    box-shadow: none !important;
}

.ctc-calendar-day:hover {
    border-color: #ff8080 !important;
    background: #fff5f5 !important;
    color: var(--ctc-primary) !important;
    transform: none !important;
    box-shadow: none !important;
}

.ctc-calendar-day.muted {
    background: transparent !important;
    color: #cbd5e1 !important;
    cursor: default !important;
}

.ctc-calendar-day.disabled {
    background: #f1f5f9 !important;
    color: #cbd5e1 !important;
    cursor: not-allowed !important;
}

.ctc-calendar-day.selected {
    background: var(--ctc-primary) !important;
    border-color: var(--ctc-primary) !important;
    color: #ffffff !important;
    font-weight: 800 !important;
}

.ctc-calendar-day.selected:hover {
    background: var(--ctc-primary-hover) !important;
    color: #ffffff !important;
}

.ctc-calendar-day.today {
    box-shadow: inset 0 0 0 1px var(--ctc-primary) !important;
}

.ctc-slot-area {
    margin-top: 15px;
}

/* =================================================================
   Allergy / Notices
   ================================================================ */

.ctc-allergy-notice {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 14px;
    padding: 12px 14px !important;
    border-left: 4px solid #f59e0b !important;
    background: #fffbeb !important;
    color: #713f12 !important;
    font-size: 10px !important;
    line-height: 1.5 !important;
}

.ctc-allergy-notice strong,
.ctc-allergy-notice span {
    color: #713f12 !important;
}

/* =================================================================
   Order Summary
   ================================================================ */

.ctc-summary {
    overflow: hidden;
}

.ctc-summary-head {
    padding: 20px !important;
    border-bottom: 1px solid var(--ctc-border);
}

.ctc-summary-head div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.ctc-summary-head h2 {
    margin: 0 !important;
    color: var(--ctc-dark) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
}

.ctc-summary-head span {
    color: var(--ctc-slate) !important;
    font-size: 10px !important;
}

.ctc-items {
    max-height: 310px;
    overflow-y: auto;
    padding: 0 20px;
}

.ctc-empty {
    padding: 28px 0;
    color: var(--ctc-slate) !important;
    font-size: 11px !important;
    text-align: center;
}

.ctc-item {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 0;
    border-bottom: 1px solid #f1f5f9;
}

.ctc-item-name {
    color: var(--ctc-dark) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.ctc-item-meta {
    margin-top: 3px;
    color: var(--ctc-slate) !important;
    font-size: 9px !important;
    line-height: 1.45 !important;
}

.ctc-item-price {
    color: var(--ctc-success) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    white-space: nowrap;
}

.ctc-lines {
    padding: 16px 20px 0;
}

.ctc-lines div {
    display: flex;
    justify-content: space-between;
    margin-bottom: 9px;
    color: var(--ctc-slate) !important;
    font-size: 11px !important;
}

.ctc-lines strong {
    color: var(--ctc-dark) !important;
}

/* =================================================================
   Tips
   ================================================================ */

.ctc-tip-box {
    margin: 15px 20px;
    padding: 15px !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-lg) !important;
    background: var(--ctc-bg-light) !important;
}

.ctc-tip-box > strong {
    display: block;
    color: var(--ctc-dark) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}

.ctc-tip-box > small {
    display: block;
    margin-top: 3px;
    color: var(--ctc-slate) !important;
    font-size: 9px !important;
}

.ctc-tip-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 11px;
}

.ctc-tip {
    min-height: 36px;
    padding: 8px 6px !important;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-md) !important;
    background: #ffffff !important;
    color: var(--ctc-slate) !important;
    box-shadow: none !important;
    font-size: 10px !important;
    font-weight: 700 !important;
}

.ctc-tip:hover {
    border-color: #ff8080 !important;
    background: #fff5f5 !important;
    color: var(--ctc-primary) !important;
    transform: none !important;
    box-shadow: none !important;
}

.ctc-tip.active {
    border-color: var(--ctc-primary) !important;
    background: #ffe6e6 !important;
    color: var(--ctc-primary) !important;
    box-shadow: 0 0 0 1px var(--ctc-primary) !important;
}

.ctc-custom-tip {
    margin-top: 11px;
}

.ctc-money-input {
    display: flex;
    align-items: center;
    border: 1px solid var(--ctc-border) !important;
    border-radius: var(--ctc-radius-md) !important;
    background: #ffffff !important;
    overflow: hidden;
}

.ctc-money-input span {
    padding-left: 11px;
    color: var(--ctc-slate) !important;
    font-size: 12px;
    font-weight: 800;
}

.ctc-money-input input {
    border: 0 !important;
    box-shadow: none !important;
}

/* =================================================================
   Total / Secure Notice
   ================================================================ */

.ctc-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 20px;
    padding: 18px 0;
    border-top: 1px solid var(--ctc-border);
}

.ctc-total span {
    color: var(--ctc-dark) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
}

.ctc-total strong {
    color: var(--ctc-primary) !important;
    font-size: 22px !important;
    font-weight: 800 !important;
}

.ctc-secure {
    margin: 0 !important;
    padding: 0 20px 20px !important;
    color: var(--ctc-slate) !important;
    font-size: 9px !important;
    text-align: center;
}

/* =================================================================
   Messages
   ================================================================ */

.ctc-message {
    display: none;
    margin-bottom: 18px;
    padding: 12px 14px !important;
    border-radius: var(--ctc-radius-md) !important;
    font-size: 11px !important;
    line-height: 1.5;
}

.ctc-message.error {
    display: block;
    background: #fff5f5 !important;
    border: 1px solid #fecaca !important;
    color: #991b1b !important;
}

.ctc-message.success {
    display: block;
    background: #ecfdf5 !important;
    border: 1px solid #a7f3d0 !important;
    color: #065f46 !important;
}

/* =================================================================
   Mobile - Same Mobile-First Feel As Frontend Menu
   ================================================================ */

@media (max-width: 900px) {
    .ctc-layout {
        grid-template-columns: 1fr;
    }

    .ctc-sidebar {
        position: static;
    }

    .ctc-summary {
        position: sticky;
        bottom: 10px;
        z-index: 20;
        box-shadow: 0 12px 30px rgba(0, 0, 0, .15) !important;
    }
}

@media (max-width: 768px) {
    body {
        overflow-x: hidden;
    }

    .ctc-checkout-page {
        padding: 8px 8px 95px;
    }

    .ctc-page-title-row h1 {
        font-size: 27px !important;
    }

    .ctc-card {
        padding: 16px !important;
        border-radius: var(--ctc-radius-lg) !important;
    }

    .ctc-form-grid,
    .ctc-choice-grid,
    .ctc-payment-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .ctc-field-full {
        grid-column: auto;
    }

    .ctc-account-tabs {
        grid-template-columns: 1fr;
    }

    .ctc-fulfillment {
        align-items: flex-start;
        flex-direction: column;
    }

    .ctc-summary-head {
        padding: 16px !important;
    }

    .ctc-items {
        max-height: 220px;
    }

    .ctc-tip-box {
        margin: 13px 16px;
    }

    .ctc-total {
        margin: 0 16px;
    }

    .ctc-primary-btn {
        width: calc(100% - 32px) !important;
        margin-left: 16px !important;
        margin-right: 16px !important;
    }

    .ctc-secure {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

@media (max-width: 480px) {
    .ctc-checkout-page {
        padding-left: 6px;
        padding-right: 6px;
    }

    .ctc-card {
        padding: 14px !important;
    }

    .ctc-section-head {
        margin-bottom: 16px !important;
    }

    .ctc-section-head h2 {
        font-size: 16px !important;
    }

    .ctc-calendar-day {
        min-height: 35px;
        font-size: 10px !important;
    }
}

/* Respect reduced-motion preference. */
@media (prefers-reduced-motion: reduce) {
    .ctc-checkout-page *,
    .ctc-checkout-page *::before,
    .ctc-checkout-page *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}


/* =================================================================
   Order Summary — Product Images + Editable Quantity
   ================================================================ */

.ctc-item{display:flex !important;align-items:flex-start !important;gap:12px !important}
.ctc-item-image{width:58px !important;height:58px !important;min-width:58px !important;display:block !important;object-fit:cover !important;border-radius:10px !important;border:1px solid var(--ctc-border) !important;background:var(--ctc-bg-light) !important}
.ctc-item-image-placeholder{display:flex !important;align-items:center !important;justify-content:center !important;color:var(--ctc-slate) !important;font-size:20px !important}
.ctc-item-main{min-width:0 !important;flex:1 1 auto !important}
.ctc-item-top{display:flex !important;align-items:flex-start !important;justify-content:space-between !important;gap:8px !important}
.ctc-item-info{min-width:0 !important}
.ctc-item-bottom{display:flex !important;align-items:center !important;margin-top:8px !important}
.ctc-qty-control{display:inline-flex !important;align-items:center !important;height:32px !important;border:1px solid var(--ctc-border) !important;border-radius:9px !important;background:#fff !important;overflow:hidden !important}
.ctc-qty-btn{width:31px !important;min-width:31px !important;height:30px !important;padding:0 !important;border:0 !important;border-radius:0 !important;background:#fff !important;color:var(--ctc-dark) !important;box-shadow:none !important;font-size:16px !important;font-weight:700 !important;line-height:1 !important}
.ctc-qty-btn:hover{background:#ffe6e6 !important;color:var(--ctc-primary) !important;transform:none !important;box-shadow:none !important}
.ctc-qty-input{width:40px !important;min-width:40px !important;height:30px !important;padding:0 3px !important;border:0 !important;border-left:1px solid var(--ctc-border) !important;border-right:1px solid var(--ctc-border) !important;border-radius:0 !important;background:#fff !important;color:var(--ctc-dark) !important;text-align:center !important;font-family:'Montserrat',system-ui,sans-serif !important;font-size:11px !important;font-weight:800 !important;outline:none !important;box-shadow:none !important;-moz-appearance:textfield !important}
.ctc-qty-input::-webkit-outer-spin-button,.ctc-qty-input::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important}
.ctc-qty-input:focus{box-shadow:inset 0 0 0 1px var(--ctc-primary) !important}
.ctc-money-input input{cursor:text !important;-webkit-appearance:textfield !important;appearance:textfield !important}
.ctc-money-input input::-webkit-outer-spin-button,.ctc-money-input input::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important}
@media(max-width:480px){.ctc-item-image{width:52px !important;height:52px !important;min-width:52px !important}.ctc-item-top{gap:6px !important}.ctc-item-price{font-size:10px !important}}


/* =================================================================
   Checkout Upselling Section
   ================================================================= */

.ctc-upsell-section{
    margin:16px 20px;
    padding-top:16px;
    border-top:1px solid var(--ctc-border);
}

.ctc-upsell-head{
    margin-bottom:10px;
}

.ctc-upsell-head h3{
    margin:0 !important;
    color:var(--ctc-dark) !important;
    font-size:13px !important;
    font-weight:800 !important;
}

.ctc-upsell-head p{
    margin:3px 0 0 !important;
    color:var(--ctc-slate) !important;
    font-size:9px !important;
}

.ctc-upsells{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.ctc-upsell-card{
    display:flex;
    align-items:center;
    gap:9px;
    padding:8px;
    border:1px solid var(--ctc-border);
    border-radius:10px;
    background:#fff;
}

.ctc-upsell-image{
    width:48px;
    height:48px;
    min-width:48px;
    overflow:hidden;
    border-radius:8px;
    background:var(--ctc-bg-light);
}

.ctc-upsell-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.ctc-upsell-placeholder{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--ctc-slate);
    font-size:17px;
}

.ctc-upsell-info{
    min-width:0;
    flex:1;
    display:flex;
    flex-direction:column;
    gap:2px;
}

.ctc-upsell-info strong{
    color:var(--ctc-dark);
    font-size:10px;
    line-height:1.25;
}

.ctc-upsell-info small{
    color:var(--ctc-slate);
    font-size:8px;
    line-height:1.3;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.ctc-upsell-info b{
    color:var(--ctc-success);
    font-size:10px;
}

.ctc-upsell-add{
    min-width:52px;
    padding:7px 8px !important;
    border:1px solid #fecaca !important;
    border-radius:8px !important;
    background:#fff5f5 !important;
    color:var(--ctc-primary) !important;
    font-size:9px !important;
    font-weight:800 !important;
    box-shadow:none !important;
}

.ctc-upsell-add:hover,
.ctc-upsell-add.added{
    background:var(--ctc-primary) !important;
    border-color:var(--ctc-primary) !important;
    color:#fff !important;
    transform:none !important;
    box-shadow:none !important;
}

@media(max-width:480px){
    .ctc-upsell-section{margin-left:16px;margin-right:16px}
}


/* =================================================================
   Delivery Charge — visible checkout summary row
   ================================================================= */

#ctc-delivery-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 9px !important;
    color: var(--ctc-slate) !important;
    font-size: 11px !important;
}

#ctc-delivery-row strong,
#ctc-delivery {
    color: var(--ctc-dark) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

#ctc-delivery-row strong::before {
    content: none !important;
}


/* =================================================================
   Extra Amount + VAT Summary
   ================================================================= */

#ctc-extra-row,
#ctc-vat-row{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    margin-bottom:9px !important;
    color:var(--ctc-slate) !important;
    font-size:11px !important;
}

#ctc-extra-row strong,
#ctc-vat-row strong,
#ctc-extra,
#ctc-vat{
    color:var(--ctc-dark) !important;
    font-size:11px !important;
    font-weight:800 !important;
}

#ctc-vat-label{
    color:var(--ctc-slate) !important;
}

/* Production checkout states */
.ctc-payment-disabled{opacity:.55;cursor:not-allowed}
.ctc-primary-btn.is-loading{opacity:.7;cursor:wait}
.ctc-order-success{margin:0 0 20px;padding:18px 20px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4;color:#166534;display:flex;flex-direction:column;gap:6px}
.ctc-order-success strong{font-size:16px}
.ctc-order-success .ctc-primary-btn{display:inline-flex;margin-top:10px;text-decoration:none;width:max-content}
.ctc-order-complete .ctc-sidebar{position:relative}

.ctc-thank-you-page{max-width:860px;margin:30px auto;padding:0 16px}
.ctc-thank-you-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:30px;box-shadow:0 8px 28px rgba(15,23,42,.08)}
.ctc-thank-you-icon{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#dcfce7;color:#15803d;font-size:30px;font-weight:900;margin-bottom:14px}
.ctc-thank-you-card h1{margin:0 0 6px;font-size:28px;color:#0f172a}.ctc-thank-you-lead{margin:0 0 22px;color:#64748b}
.ctc-order-number{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border-radius:12px;background:#f8fafc;margin-bottom:18px}.ctc-order-number span,.ctc-thank-grid span{font-size:12px;color:#64748b}.ctc-order-number strong{font-size:17px;color:#0f172a}
.ctc-thank-section{padding:20px 0;border-top:1px solid #e2e8f0}.ctc-thank-section h2{font-size:17px;margin:0 0 13px;color:#0f172a}
.ctc-thank-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ctc-thank-grid>div{display:flex;flex-direction:column;gap:4px}
.ctc-thank-contact{display:flex;flex-direction:column;gap:5px;color:#334155}.ctc-thank-section p{margin:0;color:#334155;line-height:1.5}.ctc-thank-section small{display:block;margin-top:8px;color:#64748b}
.ctc-thank-items{display:flex;flex-direction:column;gap:10px}.ctc-thank-item{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:10px 0}.ctc-thank-item img{width:52px;height:52px;object-fit:cover;border-radius:10px;background:#f8fafc}.ctc-thank-item>div{display:flex;flex-direction:column;gap:4px}.ctc-thank-item small{margin:0}.ctc-thank-item b{color:#0f172a}
.ctc-thank-alert{background:#fff7ed;border-radius:12px;padding:16px;border-top:0;margin-top:16px}
.ctc-thank-lines{display:flex;flex-direction:column;gap:9px}.ctc-thank-lines>div{display:flex;justify-content:space-between;gap:15px;color:#475569}.ctc-thank-lines strong{color:#0f172a}
.ctc-thank-lines .ctc-thank-grand{border-top:1px solid #e2e8f0;margin-top:6px;padding-top:14px;font-size:18px;color:#0f172a}.ctc-thank-lines .ctc-thank-grand strong{font-size:22px;color:#f43f5e}
.ctc-thank-actions{display:flex;gap:12px;margin-top:22px}.ctc-thank-actions a{flex:1;text-align:center;text-decoration:none}
.ctc-whatsapp-btn{display:flex;align-items:center;justify-content:center;min-height:52px;border:1px solid #bbf7d0;border-radius:10px;color:#15803d;background:#f0fdf4;font-weight:800}
.ctc-whatsapp-note{margin:16px 0 0;text-align:center;font-size:12px;color:#64748b}
.ctc-thank-you-error{max-width:700px;margin:40px auto;padding:30px;text-align:center}
@media(max-width:680px){.ctc-thank-you-card{padding:20px}.ctc-thank-grid{grid-template-columns:1fr 1fr}.ctc-thank-actions{flex-direction:column}}

/* Delivery / Pickup selector */
.ctc-fulfillment-options{
    display:flex;
    gap:8px;
    padding:4px;
    margin-bottom:12px;
    border-radius:99px;
    background:#f1f5f9;
}
.ctc-fulfillment-btn{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:40px;
    padding:8px 14px;
    border:0 !important;
    border-radius:99px !important;
    background:transparent !important;
    color:var(--ctc-slate) !important;
    font-size:12px !important;
    font-weight:700 !important;
    cursor:pointer;
    box-shadow:none !important;
}
.ctc-fulfillment-btn.active{
    background:#fff !important;
    color:var(--ctc-dark) !important;
    box-shadow:0 1px 5px rgba(15,23,42,.15) !important;
}
.ctc-fulfillment-current{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
@media(max-width:768px){
    .ctc-fulfillment-options{width:100%;}
    .ctc-fulfillment-btn{min-height:42px;}
}


/* =================================================================
   Upsell Quantity Control — refined compact design
   Only affects the "You may also like" quantity controls.
   ================================================================= */

.ctc-upsell-qty{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    height:34px !important;
    min-width:86px !important;
    padding:3px !important;
    gap:2px !important;
    flex:0 0 auto !important;
    border:1px solid #e2e8f0 !important;
    border-radius:10px !important;
    background:#f8fafc !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9) !important;
    overflow:hidden !important;
}

.ctc-upsell-qty-btn{
    width:28px !important;
    min-width:28px !important;
    height:28px !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:0 !important;
    border-radius:7px !important;
    background:#ffffff !important;
    color:var(--ctc-primary) !important;
    box-shadow:0 1px 3px rgba(15,23,42,.08) !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1 !important;
    transition:all .18s ease !important;
}

.ctc-upsell-qty-btn:hover{
    background:#ffe6e6 !important;
    color:var(--ctc-primary-hover) !important;
    transform:none !important;
    box-shadow:0 1px 4px rgba(255,77,77,.16) !important;
}

.ctc-upsell-qty-btn:active{
    transform:scale(.94) !important;
}

.ctc-upsell-qty-value{
    width:24px !important;
    min-width:24px !important;
    padding:0 !important;
    text-align:center !important;
    color:var(--ctc-dark) !important;
    font-size:11px !important;
    font-weight:800 !important;
    line-height:28px !important;
}

@media(max-width:480px){
    .ctc-upsell-qty{
        min-width:82px !important;
        height:32px !important;
        padding:2px !important;
        border-radius:9px !important;
    }

    .ctc-upsell-qty-btn{
        width:27px !important;
        min-width:27px !important;
        height:27px !important;
        border-radius:6px !important;
        font-size:14px !important;
    }

    .ctc-upsell-qty-value{
        width:23px !important;
        min-width:23px !important;
        line-height:27px !important;
    }
}


.ctc-free-delivery-progress[hidden]{display:none!important}
.ctc-free-delivery-progress__message{margin:0 0 9px;font-size:13px;line-height:1.45;font-weight:600}
.ctc-free-delivery-progress__track{display:block;width:100%;height:8px;overflow:hidden;border-radius:999px;background:#e5e7eb}
.ctc-free-delivery-progress__bar{display:block;height:100%;width:0;border-radius:999px;transition:width .25s ease}
.ctc-free-delivery-progress.is-unlocked .ctc-free-delivery-progress__message{font-weight:800}
@media(max-width:560px){.ctc-free-delivery-progress{padding:12px 13px;margin:12px 0 16px}.ctc-free-delivery-progress__message{font-size:12px}}

/* Free delivery progress - standalone section below Add a tip */
.ctc-checkout-page .ctc-free-delivery-progress {
    display: block;
    width: 100%;
    margin: 16px 0 20px;
    padding: 16px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    box-sizing: border-box;
}
.ctc-checkout-page .ctc-free-delivery-progress[hidden] {
    display: none !important;
}
.ctc-checkout-page .ctc-free-delivery-progress__message {
    display: block;
    margin: 0 0 10px;
    color: #090d16;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 600;
}
.ctc-checkout-page .ctc-free-delivery-progress__track {
    display: block;
    width: 100%;
    height: 9px;
    overflow: hidden;
    background: #e2e8f0;
    border-radius: 999px;
}
.ctc-checkout-page .ctc-free-delivery-progress__bar {
    display: block;
    width: 0;
    height: 100%;
    background: #ff4d4d;
    border-radius: 999px;
    transition: width .25s ease;
}
.ctc-checkout-page .ctc-free-delivery-progress.is-unlocked {
    border-color: #10b981;
}
@media (max-width: 700px) {
    .ctc-checkout-page .ctc-free-delivery-progress {
        margin: 14px 0 18px;
        padding: 13px;
    }
    .ctc-checkout-page .ctc-free-delivery-progress__message {
        font-size: 12px;
    }
}

/* Final standalone Free Delivery progress overrides */
.ctc-checkout-page #ctc-free-delivery-progress {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin: 16px 20px 20px !important;
    padding: 15px !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
}
.ctc-checkout-page #ctc-free-delivery-progress .ctc-free-delivery-progress__track {
    display: block !important;
    width: 100% !important;
    height: 9px !important;
    overflow: hidden !important;
    background: #e2e8f0 !important;
    border-radius: 999px !important;
}
.ctc-checkout-page #ctc-free-delivery-progress .ctc-free-delivery-progress__bar {
    display: block !important;
    height: 100% !important;
    min-width: 0 !important;
    background: #ff4d4d !important;
    border-radius: 999px !important;
    transition: width .25s ease !important;
}
@media (max-width: 700px) {
    .ctc-checkout-page #ctc-free-delivery-progress {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* Final Free Delivery section containment fix */
.ctc-checkout-page .ctc-summary #ctc-free-delivery-progress {
    width: auto !important;
    max-width: 100% !important;
    margin: 16px 0 20px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}
.ctc-checkout-page .ctc-summary #ctc-free-delivery-progress .ctc-free-delivery-progress__track {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.ctc-checkout-page .ctc-summary #ctc-free-delivery-progress .ctc-free-delivery-progress__bar {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Final checkout summary spacing: Free Delivery + Processing notice */
.ctc-checkout-page .ctc-summary #ctc-free-delivery-progress {
    margin: 16px 20px 20px !important;
    width: auto !important;
    max-width: calc(100% - 40px) !important;
}
.ctc-checkout-page .ctc-summary #ctc-processing-no {
    margin: 16px 20px 20px !important;
    width: auto !important;
    max-width: calc(100% - 40px) !important;
    box-sizing: border-box !important;
}
@media (max-width: 700px) {
    .ctc-checkout-page .ctc-summary #ctc-free-delivery-progress,
    .ctc-checkout-page .ctc-summary #ctc-processing-no {
        margin-left: 20px !important;
        margin-right: 20px !important;
        max-width: calc(100% - 40px) !important;
    }
}

.ctc-checkout-page .ctc-summary #ctc-rush-mode-notice{
    display:block;
    width:auto;
    max-width:calc(100% - 40px);
    margin:16px 20px 20px !important;
    padding:12px 14px;
    box-sizing:border-box;
    border:1px solid #fed7aa;
    border-radius:12px;
    background:#fff7ed;
    font-size:12px;
    line-height:1.5;
    font-weight:700;
}
.ctc-checkout-page .ctc-summary #ctc-rush-mode-notice[hidden]{display:none!important}
@media (max-width:700px){
    .ctc-checkout-page .ctc-summary #ctc-rush-mode-notice{
        margin-left:20px !important;
        margin-right:20px !important;
        max-width:calc(100% - 40px);
    }
}

/* Final processing notice containment fix */
.ctc-checkout-page .ctc-summary #ctc-processing-notice{
    display:flex;
    width:auto;
    max-width:calc(100% - 40px);
    margin:16px 20px 20px !important;
    padding:14px 16px;
    box-sizing:border-box;
    border:1px solid #fde68a;
    border-radius:12px;
}
.ctc-checkout-page .ctc-summary #ctc-processing-notice[hidden]{
    display:none !important;
}
@media (max-width:700px){
    .ctc-checkout-page .ctc-summary #ctc-processing-notice{
        margin-left:20px !important;
        margin-right:20px !important;
        max-width:calc(100% - 40px);
    }
}

.ctc-coupon-box{
    margin:16px 20px 20px;
    padding:14px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:#fff;
}
.ctc-coupon-box>strong{display:block;margin-bottom:9px;font-size:12px}
.ctc-coupon-form{display:flex;gap:8px}
.ctc-coupon-form input{min-width:0;flex:1;height:40px;padding:0 11px;border:1px solid #cbd5e1;border-radius:9px;box-sizing:border-box}
.ctc-coupon-form button{height:40px;padding:0 14px;border:0;border-radius:9px;font-size:11px;font-weight:800;cursor:pointer}
.ctc-coupon-form button:disabled{opacity:.55;cursor:wait}
.ctc-coupon-form button[hidden]{display:none!important}
.ctc-coupon-form .ctc-remove-coupon{background:#fff1f2;color:#b91c1c;border:1px solid #fecdd3}
.ctc-coupon-form input:disabled{background:#f8fafc;color:#475569;opacity:1}
.ctc-coupon-message{margin-top:8px;font-size:11px;line-height:1.4;font-weight:700}
.ctc-coupon-message.success{color:#15803d}
.ctc-coupon-message.error{color:#b91c1c}
#ctc-coupon-row strong{font-weight:800}
@media(max-width:700px){
 .ctc-coupon-box{margin-left:20px!important;margin-right:20px!important}
 .ctc-coupon-form button{padding:0 12px}
}

.ctc-account-welcome{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:0 0 18px!important;padding:14px 16px!important;border:1px solid #e2e8f0!important;border-radius:12px!important;background:#f8fafc!important}
.ctc-account-welcome strong{display:block!important;color:#090d16!important;font-size:13px!important;font-weight:800!important}
.ctc-account-welcome span{display:block!important;color:#64748b!important;font-size:11px!important}
@media(max-width:600px){.ctc-account-welcome{display:block!important}.ctc-account-welcome span{margin-top:4px!important}}

.ctc-save-payment-option{display:flex!important;align-items:center!important;gap:8px!important;margin-top:10px!important;color:#64748b!important;font-size:11px!important;font-weight:600!important}
.ctc-save-payment-option input{width:15px!important;height:15px!important;margin:0!important;accent-color:#ff4d4d!important}
.ctc-saved-payment-heading{margin:10px 0 7px!important;color:#64748b!important;font-size:10px!important;font-weight:800!important;text-transform:uppercase!important;letter-spacing:.08em!important}
.ctc-payment-card.ctc-saved-payment-card{margin-top:7px!important}

.ctc-account-welcome{position:relative!important;padding-right:92px!important}
.ctc-checkout-signout{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:32px!important;padding:0 11px!important;border:1px solid #cbd5e1!important;border-radius:8px!important;background:#fff!important;color:#475569!important;text-decoration:none!important;font-size:9px!important;font-weight:800!important;letter-spacing:.05em!important;white-space:nowrap!important}
.ctc-checkout-signout:hover{background:#f8fafc!important;color:#090d16!important}
.ctc-checkout-continue{display:flex!important;justify-content:center!important;margin:14px 0 4px!important}
.ctc-add-more-products{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:42px!important;padding:0 18px!important;border:1px solid #e2e8f0!important;border-radius:10px!important;background:#fff!important;color:#111827!important;text-decoration:none!important;font-size:11px!important;font-weight:800!important;letter-spacing:.03em!important;transition:all .15s ease!important}
.ctc-add-more-products:hover{border-color:#cbd5e1!important;background:#f8fafc!important;transform:translateY(-1px)!important}
@media(max-width:600px){.ctc-account-welcome{padding-right:16px!important}.ctc-checkout-signout{margin-top:9px!important}.ctc-add-more-products{width:100%!important}}

.ctc-saved-address-picker{display:flex!important;align-items:center!important;gap:12px!important;width:100%!important}
.ctc-saved-address-picker strong{font-size:11px!important;white-space:nowrap!important}
.ctc-saved-location-select{width:100%!important;min-height:42px!important;padding:9px 12px!important;border:1px solid #dbe2ea!important;border-radius:9px!important;background:#fff!important;color:#111827!important;font-size:11px!important;font-weight:600!important}
.ctc-save-address-row input:disabled+span{opacity:.55!important}


/* V3.4 Marketing consent */
.ctc-checkout-page .ctc-marketing-preferences{margin:14px 0;padding:14px;border:1px solid var(--ctc-border);border-radius:12px;background:var(--ctc-bg-light)}
.ctc-checkout-page .ctc-marketing-preferences>strong{display:block;font-size:13px;font-weight:800}
.ctc-checkout-page .ctc-marketing-preferences>p{margin:4px 0 10px;color:var(--ctc-slate);font-size:11px;line-height:1.5}
.ctc-checkout-page .ctc-consent-toggle{display:flex;align-items:center;gap:10px;margin:9px 0;font-size:12px;font-weight:600;cursor:pointer}
.ctc-checkout-page .ctc-consent-toggle input{position:absolute;opacity:0;pointer-events:none}
.ctc-checkout-page .ctc-toggle-ui{width:40px;height:22px;border-radius:999px;background:#cbd5e1;position:relative;flex:0 0 auto}
.ctc-checkout-page .ctc-toggle-ui:after{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:.15s}
.ctc-checkout-page .ctc-consent-toggle input:checked+.ctc-toggle-ui{background:#ff4d4d}
.ctc-checkout-page .ctc-consent-toggle input:checked+.ctc-toggle-ui:after{transform:translateX(18px)}

/* =================================================================
   Final checkout detail polish — fulfilment, calendar navigation,
   and high-visibility validation feedback.
   ================================================================= */
.ctc-checkout-page #ctc-fulfillment .ctc-fulfillment-options{
    display:inline-flex!important;
    width:auto!important;
    max-width:100%!important;
    gap:8px!important;
    padding:0!important;
    margin:0 0 12px!important;
    border-radius:0!important;
    background:transparent!important;
}
.ctc-checkout-page #ctc-fulfillment .ctc-fulfillment-btn{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:104px!important;
    min-height:48px!important;
    padding:9px 14px!important;
    gap:8px!important;
    border:1px solid #d8e0ea!important;
    border-radius:12px!important;
    background:#fff!important;
    color:#475569!important;
    box-shadow:0 1px 3px rgba(15,23,42,.05)!important;
    font-size:12px!important;
    font-weight:700!important;
    transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease!important;
}
.ctc-checkout-page #ctc-fulfillment .ctc-fulfillment-btn:hover{
    border-color:#fca5a5!important;
    background:#fff7f7!important;
    color:#991b1b!important;
    box-shadow:0 4px 12px rgba(15,23,42,.08)!important;
    transform:translateY(-1px)!important;
}
.ctc-checkout-page #ctc-fulfillment .ctc-fulfillment-btn.active{
    border-color:var(--ctc-primary)!important;
    background:#fff5f5!important;
    color:#991b1b!important;
    box-shadow:0 0 0 1px var(--ctc-primary),0 4px 12px rgba(255,77,77,.10)!important;
}
.ctc-fulfillment-btn-icon{
    width:24px;height:24px;flex:0 0 24px;display:inline-flex;align-items:center;justify-content:center;
    border-radius:7px;background:#f8fafc;color:#475569;
}
.ctc-fulfillment-btn.active .ctc-fulfillment-btn-icon{background:#ffe4e6;color:#e11d48}
.ctc-fulfillment-btn-icon svg,.ctc-fulfillment-current-icon svg{
    width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.ctc-fulfillment-type{display:inline-flex;align-items:center;gap:6px}
.ctc-fulfillment-current-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:#b91c1c}
.ctc-fulfillment-current-icon svg{width:16px;height:16px}

.ctc-checkout-page .ctc-schedule-picker{padding:18px!important}
.ctc-checkout-page .ctc-calendar-head{padding:0 4px;margin-bottom:15px}
.ctc-checkout-page .ctc-calendar-nav{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    width:38px!important;height:38px!important;min-width:38px!important;padding:0 0 3px!important;
    border:1px solid #dbe3ee!important;border-radius:10px!important;background:#fff!important;
    color:#334155!important;box-shadow:0 1px 3px rgba(15,23,42,.06)!important;
    font-size:23px!important;font-weight:500!important;line-height:1!important;
}
.ctc-checkout-page .ctc-calendar-nav:hover,
.ctc-checkout-page .ctc-calendar-nav:focus-visible{
    border-color:#fca5a5!important;background:#fff5f5!important;color:var(--ctc-primary)!important;
    box-shadow:0 0 0 3px rgba(255,77,77,.08)!important;
}

.ctc-checkout-page .ctc-message{
    position:fixed!important;
    left:50%!important;top:18px!important;bottom:auto!important;
    transform:translateX(-50%)!important;
    z-index:1000000!important;
    display:flex!important;align-items:flex-start!important;gap:11px!important;
    width:min(calc(100vw - 32px),620px)!important;
    min-height:58px!important;margin:0!important;padding:15px 18px 15px 52px!important;
    box-sizing:border-box!important;border-radius:14px!important;
    font-size:12px!important;font-weight:700!important;line-height:1.55!important;
    box-shadow:0 18px 45px rgba(15,23,42,.20)!important;
}
.ctc-checkout-page .ctc-message[hidden],.ctc-checkout-page .ctc-message:empty{display:none!important}
.ctc-checkout-page .ctc-message:before{
    content:"!";position:absolute;left:17px;top:50%;transform:translateY(-50%);
    width:24px;height:24px;display:flex;align-items:center;justify-content:center;
    border-radius:999px;font-size:14px;font-weight:900;line-height:1;
}
.ctc-checkout-page .ctc-message.error{
    border:1px solid #fca5a5!important;border-left:5px solid #dc2626!important;
    background:#fff!important;color:#991b1b!important;
}
.ctc-checkout-page .ctc-message.error:before{background:#fee2e2;color:#b91c1c}
.ctc-checkout-page .ctc-message.success{
    border:1px solid #86efac!important;border-left:5px solid #16a34a!important;
    background:#fff!important;color:#166534!important;
}
.ctc-checkout-page .ctc-message.success:before{content:"✓";background:#dcfce7;color:#15803d}
.ctc-checkout-page .ctc-field.has-error input,
.ctc-checkout-page .ctc-field.has-error select,
.ctc-checkout-page .ctc-field.has-error textarea{
    border-color:#dc2626!important;background:#fffafa!important;
    box-shadow:0 0 0 3px rgba(220,38,38,.10)!important;
}
.ctc-checkout-page .ctc-field.has-error label{color:#b91c1c!important}
.ctc-checkout-page .ctc-field.has-error .ctc-error{margin-top:6px!important;color:#b91c1c!important;font-size:10.5px!important;font-weight:700!important}
@media(max-width:600px){
    .ctc-checkout-page #ctc-fulfillment .ctc-fulfillment-options{display:flex!important;width:100%!important}
    .ctc-checkout-page #ctc-fulfillment .ctc-fulfillment-btn{flex:1 1 0!important;min-width:0!important;min-height:48px!important;padding:9px 10px!important}
    .ctc-checkout-page .ctc-calendar-head{padding:0 2px}
    .ctc-checkout-page .ctc-calendar-nav{width:40px!important;height:40px!important;min-width:40px!important}
    .ctc-checkout-page .ctc-message{top:12px!important;width:calc(100vw - 24px)!important;padding:14px 14px 14px 48px!important;font-size:11.5px!important}
    .ctc-checkout-page .ctc-message:before{left:14px}
}
