/* /booking-system/assets/booking-form.css */

.cbf-wrapper, .ev-container { 
    font-family: inherit;
    color: var(--booking-primary); 
}

.cbf-wrapper h3 {
    margin-bottom: 20px;
    font-size: var(--brf-24-font-size);
}

/* --- Elementy Formularza --- */
.cbf-label, .ev-label { 
    display: block; 
    margin-bottom: 6px; 
    font-weight: 700; 
    font-size: var(--booking-font-size-label); 
    text-transform: uppercase; 
    color: var(--booking-label); 
    margin-top: var(--booking-gap); 
}

.cbf-input, .cbf-select, .ev-input, .ev-select { 
    width: 100%; 
    padding: var(--booking-padding-input) calc(var(--booking-padding-input) * 1.8); 
    border: 1px solid var(--booking-border); 
    border-radius: var(--booking-border-radius-max); 
    font-size: var(--booking-font-size-base); 
    background: var(--booking-input-bg); 
    box-sizing: border-box; 
}

.cbf-input:disabled, .cbf-select:disabled { 
    background: var(--booking-input-disabled-bg); 
    color: var(--booking-placeholder); 
    cursor: not-allowed; 
}

.cbf-input.error, .cbf-select.error, .ev-input.error, .ev-select.error { 
    border-color: var(--booking-error); 
    background-color: #fffafa; 
}

.error-msg { 
    color: var(--booking-error); 
    font-size: var(--booking-font-size-small); 
    margin-top: 4px; 
    display: block; 
}

.cbf-row, .ev-row { 
    display: flex; 
    flex-wrap: wrap; 
    flex-direction: row;
}

.cbf-row-50 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--booking-gap)
}

.cbf-col, .ev-col { 
    flex: 1; 
    min-width: 200px; 
}

.cbf-hidden { 
    display: none; 
}

/* Box Sezonu */
#sp-season-box { 
    background: var(--booking-summary-bg); 
    color: #000;
    padding: var(--booking-padding-season); 
    border-radius: var(--booking-border-radius-small); 
    border: 1px solid var(--booking-summary-border);
    margin-bottom: var(--booking-margin-bottom);
    text-align: center; 
    font-size: var(--booking-font-size-base);
    display: flex;
    flex-direction: row;
    gap: 5px;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
}

#sp-season-name { 
    font-weight: 800; 
    display: flex; 
    text-transform: uppercase; 
}

/* Daty (Pigułki) */
.cbf-dates-visual { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(85px, 1fr)); 
    text-wrap: nowrap;
    gap: 6px; 
    padding: var(--booking-padding-input); 
    border: 1px solid var(--booking-border); 
    border-radius: var(--booking-border-radius-small); 
    min-height: 66px; 
    align-items: center;
    font-size: var(--booking-font-size-base);
    color: var(--booking-placeholder)
}

.date-pill { 
    font-size: 13px; 
    padding: 6px 12px; 
    border-radius: var(--booking-border-radius-pill); 
    font-weight: 600; 
    cursor: default; 
}

.date-pill.valid { 
    background-color: var(--booking-summary-bg);
    color: #000; 
    border: 1px solid var(--booking-summary-border)
}

.date-pill.invalid { 
    background-color: #f8d7da; 
    color: #842029; 
    text-decoration: line-through; 
    opacity: 0.6; 
    border: 1px solid #f5c2c7; 
}

/* Podsumowanie */
.cbf-summary, .ev-total { 
    background: var(--booking-summary-bg); 
    color: #000; 
    padding: var(--booking-padding-summary); 
    margin: var(--booking-margin-bottom) 0; 
    border-radius: var(--booking-border-radius); 
    font-size: var(--booking-font-size-medium); 
    border: 1px solid var(--booking-summary-border); 
}

.cbf-sum-row { 
    display: flex; 
    justify-content: space-between; 
    margin-bottom: 5px; 
}

.cbf-total-row { 
    border-top: 1px solid rgba(0,0,0,0.1); 
    margin-top: var(--booking-gap); 
    padding-top: var(--booking-gap); 
    font-weight: 800; 
    font-size: var(--booking-font-size-large); 
}

/* Przyciski */
.cbf-btn, .ev-btn { 
    width: 100%; 
    padding: var(--booking-padding-btn); 
    background: var(--booking-primary); 
    color: #fff; 
    border: 0; 
    cursor: pointer; 
    font-weight: 700; 
    border-radius: var(--booking-border-radius-max); 
    font-size: var(--booking-font-size-medium); 
    transition: opacity 0.2s; 
    margin-top: var(--booking-margin-bottom); 
    text-align: center;
}

.cbf-btn:hover, .ev-btn:hover { 
    opacity: 0.9; 
} 

.cbf-btn:disabled, .ev-btn:disabled { 
    background: #ccc; 
    cursor: not-allowed; 
}

.cbf-checkbox-wrapper {
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: start;
    justify-content: center;
    font-size: 13px
}

.cbf-checkbox-wrapper label {
    cursor: pointer;
}

.cbf-checkbox-wrapper a {
    text-decoration: underline;
}

.cbf-checkboxes-wrapper {
    display: flex;
    justify-content: start;
    text-align: left;
    flex-direction: column;
    align-items: start;
    margin-top: var(--booking-margin-main);
}

.cbf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }

@media (max-width: 768px) {
    .cbf-grid { grid-template-columns: 1fr !important; } .cbf-item__span-2 { grid-column: span 1 !important }
}

/* Styling for local Cart container and elements */
#sp-cart-wrap {
    margin-top: 30px;
    margin-bottom: 30px;
}

.cart-item {
    padding: 12px 10px;
    background-color: #ffffff;
    margin-bottom: 8px;
    border-radius: 8px;
    border: 1px solid #eaeaea;
    transition: background-color 0.20s;
}

.cart-item:hover {
    background-color: #fcfcfc;
}

.sp-cart-remove-btn {
    border-radius: 4px;
    padding: 2px 6px;
    background-color: #fff1f2;
    color: #e11d48;
    border: 1px solid #ffe4e6;
    transition: background-color 0.20s, color 0.20s;
}

.sp-cart-remove-btn:hover {
    background-color: #ffe4e6;
    color: #be123c;
}
