/* =====================================================
   All Hire Cars – Booking Calculator Styles
   ===================================================== */

#ahc-calculator {
    font-family: 'Montserrat', sans-serif;
    color: #1a1a1a;
    max-width: 980px;
    margin: 0 auto;
    padding: 0 16px 60px;
}

/* -------------------------------------------------------
   Step Indicator
------------------------------------------------------- */
.ahc-steps-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 40px;
    padding: 30px 0 10px;
}
.ahc-step-indicator {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: default;
    opacity: .45;
    transition: opacity .3s;
}
.ahc-step-indicator.active,
.ahc-step-indicator.completed { opacity: 1; }

.ahc-step-num {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: #ddd;
    color: #555;
    font-weight: 800;
    font-size: .85rem;
    display: flex; align-items: center; justify-content: center;
    transition: all .3s;
}
.ahc-step-indicator.active   .ahc-step-num { background: #D4AF47; color: #000; }
.ahc-step-indicator.completed .ahc-step-num { background: #1a1a1a; color: #fff; }
.ahc-step-label {
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #888;
}
.ahc-step-indicator.active   .ahc-step-label { color: #1a1a1a; }
.ahc-step-divider {
    width: 60px; height: 2px;
    background: #e0e0e0;
    margin: 0 8px;
}

/* -------------------------------------------------------
   Card wrapper
------------------------------------------------------- */
.ahc-card {
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 18px;
    padding: 32px;
    margin-bottom: 24px;
    box-shadow: 0 4px 24px rgba(0,0,0,.05);
}
.ahc-card-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 22px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.ahc-card-title i { color: #D4AF47; }

/* -------------------------------------------------------
   Inputs
------------------------------------------------------- */
.ahc-field {
    margin-bottom: 18px;
}
.ahc-label {
    display: block;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #666;
    margin-bottom: 7px;
}
.ahc-input,
.ahc-select {
    width: 100%;
    padding: 13px 16px;
    border: 1.5px solid #e0e0e0;
    border-radius: 10px;
    font-size: .95rem;
    font-family: 'Montserrat', sans-serif;
    color: #1a1a1a;
    background: #fafafa;
    transition: border-color .25s, box-shadow .25s;
    box-sizing: border-box;
}
.ahc-input:focus,
.ahc-select:focus {
    border-color: #D4AF47;
    box-shadow: 0 0 0 3px rgba(212,175,71,.15);
    outline: none;
    background: #fff;
}
.ahc-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.ahc-row-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
}

/* -------------------------------------------------------
   Via stops
------------------------------------------------------- */
.ahc-via-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.ahc-via-icon { color: #D4AF47; font-size: 1.1rem; flex-shrink:0; }
.ahc-via-row .ahc-input { flex: 1; }
.ahc-remove-via {
    background: none;
    border: 1px solid #ddd;
    border-radius: 6px;
    color: #999;
    cursor: pointer;
    padding: 6px 10px;
    font-size: .85rem;
    transition: all .2s;
    flex-shrink: 0;
}
.ahc-remove-via:hover { border-color: #e55; color: #e55; }

.ahc-add-via-btn {
    background: none;
    border: 1.5px dashed #D4AF47;
    border-radius: 8px;
    color: #D4AF47;
    padding: 9px 18px;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all .25s;
    margin-top: 4px;
}
.ahc-add-via-btn:hover { background: rgba(212,175,71,.08); }

/* -------------------------------------------------------
   Vehicle cards
------------------------------------------------------- */
.ahc-vehicles-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
.ahc-vehicle-card {
    border: 2px solid #e8e8e8;
    border-radius: 14px;
    padding: 18px 14px;
    text-align: center;
    cursor: pointer;
    transition: all .25s;
    position: relative;
    background: #fafafa;
}
.ahc-vehicle-card:hover { border-color: #D4AF47; background: #fffdf2; }
.ahc-vehicle-card.selected {
    border-color: #D4AF47;
    background: #fffdf2;
    box-shadow: 0 4px 20px rgba(212,175,71,.2);
}
.ahc-vehicle-card.selected::after {
    content: '✓';
    position: absolute;
    top: 8px; right: 10px;
    width: 22px; height: 22px;
    background: #D4AF47;
    border-radius: 50%;
    font-size: .75rem;
    font-weight: 800;
    color: #000;
    display: flex; align-items: center; justify-content: center;
    line-height: 22px;
}
.ahc-vehicle-icon { font-size: 2rem; margin-bottom: 8px; }
.ahc-vehicle-img {
    width: 100%;
    height: 90px;
    object-fit: cover;
    object-position: center;
    border-radius: 8px;
    margin-bottom: 10px;
    transition: transform .3s ease;
}
.ahc-vehicle-card:hover .ahc-vehicle-img { transform: scale(1.04); }
.ahc-vehicle-card.selected .ahc-vehicle-img { transform: scale(1.04); }
.ahc-vehicle-name {
    font-weight: 700;
    font-size: .85rem;
    color: #1a1a1a;
    margin-bottom: 4px;
}
.ahc-vehicle-extra-note {
    font-size: .72rem;
    color: #D4AF47;
    font-weight: 600;
}
.ahc-vehicle-seats {
    font-size: .72rem;
    color: #999;
    margin-top: 3px;
}

/* -------------------------------------------------------
   Price panel
------------------------------------------------------- */
#ahc-price-panel {
    background: #1a1a1a;
    border-radius: 18px;
    padding: 28px 32px;
    color: #fff;
    display: none;
    margin-bottom: 24px;
}
#ahc-price-panel.visible { display: block; }
#ahc-price-panel.loading { opacity: .7; }
#ahc-price-panel.error { border: 2px solid #e55; }

.ahc-price-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #333;
}
.ahc-price-meta { font-size: .82rem; color: #888; margin-top: 6px; }
.ahc-price-meta span { margin-right: 14px; }
.ahc-price-meta i { color: #D4AF47; margin-right: 4px; }

.ahc-total-label {
    font-size: .72rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 4px;
}
#ahc-total-price {
    font-family: 'Playfair Display', serif;
    font-size: 2.4rem;
    font-weight: 700;
    color: #D4AF47;
    line-height: 1;
}

.ahc-bd-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    font-size: .88rem;
    border-bottom: 1px solid #2a2a2a;
    color: #ccc;
}
.ahc-bd-row:last-child { border-bottom: none; }
.ahc-bd-row.discount span:last-child { color: #4caf50; }
.ahc-bd-row small { color: #666; font-size: .75rem; margin-left: 6px; }

.ahc-price-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}
.ahc-flag {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 20px;
}
.ahc-flag--green  { background: rgba(76,175,80,.15);  color: #4caf50; }
.ahc-flag--orange { background: rgba(255,152,0,.15);  color: #ff9800; }
.ahc-flag--gold   { background: rgba(212,175,71,.15); color: #D4AF47; }
.ahc-flag--blue   { background: rgba(33,150,243,.15); color: #2196f3; }

.ahc-error-msg { color: #e55; font-size: .9rem; margin: 0; }

/* -------------------------------------------------------
   Extras
------------------------------------------------------- */
.ahc-extras-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.ahc-extra-item {
    border: 1.5px solid #e8e8e8;
    border-radius: 12px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ahc-extra-label {
    font-size: .82rem;
    font-weight: 600;
    color: #333;
}
.ahc-extra-price {
    font-size: .75rem;
    color: #D4AF47;
    font-weight: 700;
}
.ahc-extra-qty {
    display: flex;
    align-items: center;
    gap: 8px;
}
.ahc-qty-btn {
    width: 28px; height: 28px;
    border: 1.5px solid #ddd;
    border-radius: 6px;
    background: none;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    color: #555;
    display: flex; align-items: center; justify-content: center;
    transition: all .2s;
}
.ahc-qty-btn:hover { border-color: #D4AF47; color: #D4AF47; }
.ahc-qty-input {
    width: 40px;
    text-align: center;
    padding: 4px;
    border: 1.5px solid #e0e0e0;
    border-radius: 6px;
    font-size: .9rem;
}

/* checkbox extras */
.ahc-extra-check {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1.5px solid #e8e8e8;
    border-radius: 12px;
    padding: 14px;
    cursor: pointer;
    transition: all .2s;
}
.ahc-extra-check:hover { border-color: #D4AF47; }
.ahc-extra-check input[type=checkbox] { width: 18px; height: 18px; accent-color: #D4AF47; }
.ahc-extra-check-info { flex: 1; }

/* -------------------------------------------------------
   Member panel
------------------------------------------------------- */
.ahc-member-panel {
    background: linear-gradient(135deg, #1a1a1a, #222);
    border: 1px solid #333;
    border-radius: 18px;
    padding: 28px 32px;
    margin-bottom: 24px;
}
.ahc-member-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 24px;
    border-bottom: 2px solid #333;
}
.ahc-member-tab {
    padding: 10px 24px;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #888;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: all .2s;
}
.ahc-member-tab.active { color: #D4AF47; border-bottom-color: #D4AF47; }
.ahc-member-tab:hover { color: #D4AF47; }

.ahc-member-panel .ahc-label { color: #888; }
.ahc-member-panel .ahc-input {
    background: #2a2a2a;
    border-color: #444;
    color: #fff;
}
.ahc-member-panel .ahc-input:focus { border-color: #D4AF47; background: #2a2a2a; }
.ahc-member-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
    color: #fff;
    margin: 0 0 6px;
}
.ahc-member-subtitle { font-size: .82rem; color: #888; margin-bottom: 20px; }

.ahc-member-logged {
    display: flex;
    align-items: center;
    gap: 16px;
    color: #fff;
}
.ahc-member-badge {
    background: linear-gradient(135deg,#D4AF47,#C4A03A);
    color: #000;
    font-weight: 800;
    font-size: .75rem;
    letter-spacing: 1.5px;
    padding: 6px 14px;
    border-radius: 20px;
    text-transform: uppercase;
}

/* -------------------------------------------------------
   Buttons
------------------------------------------------------- */
.ahc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 32px;
    border-radius: 50px;
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    border: none;
    transition: all .25s;
}
.ahc-btn--gold {
    background: linear-gradient(135deg, #D4AF47, #C4A03A);
    color: #000;
}
.ahc-btn--gold:hover {
    background: linear-gradient(135deg, #E8D48B, #D4AF47);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(212,175,71,.3);
}
.ahc-btn--dark {
    background: #1a1a1a;
    color: #fff;
}
.ahc-btn--dark:hover { background: #333; }
.ahc-btn--outline {
    background: none;
    border: 2px solid #ddd;
    color: #555;
}
.ahc-btn--outline:hover { border-color: #D4AF47; color: #D4AF47; }
.ahc-btn--full { width: 100%; }
.ahc-btn:disabled { opacity: .5; cursor: not-allowed; transform: none !important; }

.ahc-btn-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 24px;
    gap: 12px;
}

/* -------------------------------------------------------
   Booking summary (step 2)
------------------------------------------------------- */
.ahc-summary-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 24px;
    margin-bottom: 10px;
}
.ahc-summary-row { display: flex; flex-direction: column; gap: 2px; }
.ahc-summary-label { font-size: .72rem; color: #999; text-transform: uppercase; letter-spacing: 1px; }
.ahc-summary-value { font-size: .95rem; font-weight: 600; color: #1a1a1a; }
.ahc-summary-total {
    background: #1a1a1a;
    color: #fff;
    border-radius: 12px;
    padding: 18px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 12px;
}
.ahc-summary-total-label { font-size: .82rem; letter-spacing: 1px; text-transform: uppercase; color: #888; }
#sum-total { font-family: 'Playfair Display', serif; font-size: 1.8rem; color: #D4AF47; }

/* -------------------------------------------------------
   Notices
------------------------------------------------------- */
.ahc-notice {
    padding: 12px 18px;
    border-radius: 10px;
    font-size: .88rem;
    margin-bottom: 14px;
}
.ahc-notice--success { background: rgba(76,175,80,.12); color: #2e7d32; border: 1px solid rgba(76,175,80,.3); }
.ahc-notice--error   { background: rgba(229,57,53,.08);  color: #c62828; border: 1px solid rgba(229,57,53,.25); }

/* -------------------------------------------------------
   Confirmation screen
------------------------------------------------------- */
#ahc-confirmation {
    display: none;
    text-align: center;
    padding: 60px 30px;
}
.ahc-conf-icon {
    width: 80px; height: 80px;
    background: linear-gradient(135deg,#D4AF47,#C4A03A);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 2.2rem;
    margin: 0 auto 24px;
}
.ahc-conf-title {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 12px;
}
.ahc-conf-ref {
    font-size: .9rem;
    color: #666;
    margin-bottom: 8px;
}
.ahc-conf-ref strong { color: #D4AF47; font-size: 1.1rem; }
.ahc-conf-msg { color: #777; font-size: .9rem; max-width: 500px; margin: 0 auto 30px; line-height: 1.7; }

/* -------------------------------------------------------
   Admin styles (inline here for simplicity)
------------------------------------------------------- */
.ahc-admin .ahc-card {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 24px;
}
.ahc-admin .ahc-card h2 {
    font-size: 1rem;
    font-weight: 700;
    margin-top: 0;
    padding-bottom: 12px;
    border-bottom: 1px solid #eee;
    margin-bottom: 18px;
}
.ahc-count {
    display: inline-block;
    background: #D4AF47;
    color: #000;
    border-radius: 20px;
    padding: 2px 12px;
    font-size: .8rem;
    font-weight: 700;
    margin-left: 8px;
    vertical-align: middle;
}
.ahc-status {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
}
.ahc-status--pending   { background: #fff3cd; color: #856404; }
.ahc-status--confirmed { background: #d1e7dd; color: #0f5132; }
.ahc-status--active    { background: #d1e7dd; color: #0f5132; }
.ahc-status--inactive  { background: #f8d7da; color: #842029; }
.ahc-status--completed { background: #cfe2ff; color: #084298; }
.ahc-status--cancelled { background: #f8d7da; color: #842029; }

/* -------------------------------------------------------
   Responsive
------------------------------------------------------- */
@media (max-width: 768px) {
    .ahc-vehicles-grid   { grid-template-columns: repeat(2,1fr); }
    .ahc-extras-grid     { grid-template-columns: repeat(2,1fr); }
    .ahc-row-2,.ahc-row-3{ grid-template-columns: 1fr; }
    .ahc-summary-grid    { grid-template-columns: 1fr; }
    #ahc-total-price     { font-size: 1.8rem; }
    .ahc-steps-bar       { gap: 0; }
    .ahc-step-divider    { width: 30px; }
    .ahc-step-label      { display: none; }
    .ahc-card            { padding: 20px 16px; }
    .ahc-member-panel    { padding: 20px 16px; }
}
@media (max-width: 480px) {
    .ahc-vehicles-grid { grid-template-columns: repeat(2,1fr); }
    .ahc-extras-grid   { grid-template-columns: 1fr; }
    .ahc-btn-row       { flex-direction: column; }
    .ahc-btn           { width: 100%; }
}
