/* Szépség Sarok - egységes, mobil-first foglalási felület */
html, body { max-width:100%; overflow-x:hidden; }
.booking-flow-page { background:linear-gradient(135deg,#171717 0%,#282828 100%); min-height:100vh; }
.booking-flow-page .booking-wrapper {
    width:100%;
    max-width:100%;
    margin:0;
    padding:140px 12px 72px;
    min-height:72vh;
}
.booking-flow-page .booking-wrapper > .container { width:100%; padding-left:0; padding-right:0; }
.booking-flow-page .booking-card {
    width:100%;
    max-width:100%;
    margin:0 auto;
    background:#fff;
    color:#2b2b2b;
    border:1px solid rgba(212,165,116,.32);
    border-left:4px solid var(--primary);
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 18px 55px rgba(0,0,0,.28);
}
.booking-flow-page .booking-card .card-header {
    min-height:86px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:22px 24px !important;
    background:linear-gradient(135deg,var(--primary) 0%,#c49463 100%) !important;
    border:0;
}
.booking-flow-page .booking-card .card-header h2 {
    margin:0;
    padding:0;
    color:#171717 !important;
    font-size:clamp(1.45rem,3vw,2rem);
    line-height:1.2;
    text-align:center;
    letter-spacing:.055em;
}
.booking-flow-page .booking-card .card-body { padding:28px !important; min-width:0; }
.booking-flow-page .steps {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin:0 0 28px;
}
.booking-flow-page .step { min-width:0; text-align:center; position:relative; }
.booking-flow-page .step-number {
    width:44px;
    height:44px;
    margin:0 auto 7px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    font-size:1rem;
    background:#e5e1dc;
    color:#6c655e;
    box-shadow:none;
    transform:none;
}
.booking-flow-page .step-number.active,
.booking-flow-page .step-number:not(.inactive) { background:var(--primary); color:#171717; }
.booking-flow-page .step-label { color:#49433d; font-size:.78rem; font-weight:600; line-height:1.25; }
.booking-flow-page .form-control,
.booking-flow-page .form-select {
    width:100%;
    max-width:100%;
    min-width:0;
    border:1px solid #ddd3c9;
    border-radius:10px;
    padding:.76rem .85rem;
    color:#242424;
    background:#fff;
}
.booking-flow-page .form-control:focus,
.booking-flow-page .form-select:focus,
.booking-flow-page .form-check-input:focus {
    border-color:var(--primary);
    box-shadow:0 0 0 .2rem rgba(212,165,116,.18);
}
.booking-flow-page .form-check { padding-left:1.75rem; min-width:0; }
.booking-flow-page .form-check-input { margin-left:-1.75rem; }
.booking-flow-page .form-check-input:checked { background-color:var(--primary); border-color:#b98653; }
.booking-flow-page .form-check-label { color:#333 !important; line-height:1.55; overflow-wrap:anywhere; }
.booking-flow-page .form-check-label a { color:#9b6939 !important; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.booking-flow-page .alert { max-width:100%; overflow-wrap:anywhere; border-radius:11px; }
.booking-flow-page .alert-info {
    color:#50391f !important;
    background:#fbf2e8 !important;
    border-color:#e5c59f !important;
}
.booking-flow-page code { color:#9b5e28; overflow-wrap:anywhere; word-break:break-word; }
.booking-flow-page .btn {
    min-width:0;
    max-width:100%;
    border-radius:9px;
    padding:.78rem 1rem !important;
    font-weight:600;
    white-space:normal;
    line-height:1.25;
}
.booking-flow-page .btn-primary {
    background:var(--primary) !important;
    border-color:var(--primary) !important;
    color:#171717 !important;
}
.booking-flow-page .btn-primary:hover { background:#c49463 !important; border-color:#c49463 !important; transform:none; }
.booking-flow-page .btn-outline-primary { color:#8d5e31 !important; border-color:#c49463 !important; background:#fff !important; }
.booking-flow-page .btn-outline-primary:hover { color:#171717 !important; background:var(--primary) !important; }
.booking-flow-page .btn-secondary,
.booking-flow-page .btn-outline-secondary { background:#2f2f2f !important; border-color:#2f2f2f !important; color:#fff !important; }
.booking-flow-page .booking-actions { display:flex; gap:10px; width:100%; }
.booking-flow-page .booking-actions > * { flex:1 1 0; min-width:0; }
.booking-flow-page .deposit-box,
.booking-flow-page .terms-box {
    width:100%;
    max-width:100%;
    padding:16px;
    margin:0 0 20px;
    border:1px solid #ead2af;
    border-left:4px solid var(--primary);
    border-radius:10px;
    background:#fff8ec;
    color:#4c3926;
    overflow-wrap:anywhere;
}
.booking-flow-page .deposit-box .d-flex { min-width:0; }
.booking-flow-page .deposit-box p { color:#59452f; white-space:pre-line; overflow-wrap:anywhere; }
.booking-flow-page .success-icon {
    width:78px;
    height:78px;
    margin:0 auto 22px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#1d1d1d;
    color:var(--primary);
    font-size:2.2rem;
    box-shadow:inset 0 0 0 2px rgba(212,165,116,.45);
}

/* Naptár */
.booking-flow-page .calendar-container {
    width:100%;
    max-width:100%;
    min-width:0;
    margin:12px 0 0;
    padding:16px;
    border:1px solid #e0c6a8;
    border-radius:12px;
    background:#fbfaf8;
    overflow:hidden;
}
.booking-flow-page .calendar-header {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    gap:10px;
    align-items:center;
    margin-bottom:14px;
}
.booking-flow-page .calendar-header h5 { min-width:0; margin:0; text-align:center; font-size:1.05rem; color:#292929; }
.booking-flow-page .calendar-header button {
    min-width:0;
    max-width:100%;
    padding:.55rem .7rem;
    border:0;
    border-radius:8px;
    background:var(--primary);
    color:#171717;
    font-weight:600;
    line-height:1.2;
}
.booking-flow-page .calendar-header button:last-child { justify-self:end; }
.booking-flow-page .calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; width:100%; }
.booking-flow-page .cal-day-header { min-width:0; padding:7px 0; text-align:center; color:#9a6839; font-size:.77rem; font-weight:700; border-bottom:2px solid var(--primary); }
.booking-flow-page .cal-day {
    min-width:0;
    aspect-ratio:1/1;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid #ddd5cd;
    border-radius:8px;
    background:#fff;
    color:#333;
    font-size:.88rem;
    cursor:pointer;
    user-select:none;
}
.booking-flow-page .cal-day.other-month { color:#bbb; background:#f3f1ee; cursor:default; }
.booking-flow-page .cal-day.closed { color:#999 !important; background:#ece9e5 !important; border-color:#ded8d2 !important; cursor:not-allowed !important; box-shadow:none !important; }
.booking-flow-page .cal-day.selected { color:#171717 !important; background:var(--primary) !important; border-color:#b98653 !important; font-weight:700; box-shadow:0 0 0 2px rgba(212,165,116,.22) !important; transform:none !important; }

@media (max-width: 768px) {
    .booking-flow-page .booking-wrapper { padding:105px 10px 48px; }
    .booking-flow-page .booking-card { border-radius:14px; border-left-width:3px; }
    .booking-flow-page .booking-card .card-header { min-height:72px; padding:17px 15px !important; }
    .booking-flow-page .booking-card .card-body { padding:18px 15px !important; }
    .booking-flow-page .steps { gap:5px; margin-bottom:22px; }
    .booking-flow-page .step-number { width:36px; height:36px; font-size:.88rem; margin-bottom:5px; }
    .booking-flow-page .step-label { font-size:.68rem; }
    .booking-flow-page .calendar-container { padding:10px; }
    .booking-flow-page .calendar-header { gap:6px; }
    .booking-flow-page .calendar-header h5 { font-size:.92rem; line-height:1.2; }
    .booking-flow-page .calendar-header button { padding:.5rem .55rem; font-size:.75rem; }
    .booking-flow-page .calendar-grid { gap:4px; }
    .booking-flow-page .cal-day { border-radius:6px; font-size:.79rem; }
    .booking-flow-page .booking-actions { flex-direction:column; }
    .booking-flow-page .booking-actions > * { width:100%; flex-basis:auto; }
    .booking-flow-page .deposit-box .d-flex { align-items:flex-start !important; }
}

@media (max-width: 390px) {
    .booking-flow-page .booking-wrapper { padding-left:7px; padding-right:7px; }
    .booking-flow-page .booking-card .card-body { padding:16px 12px !important; }
    .booking-flow-page .calendar-container { padding:8px 6px; }
    .booking-flow-page .calendar-header button { font-size:.69rem; padding:.48rem .42rem; }
    .booking-flow-page .calendar-grid { gap:3px; }
    .booking-flow-page .cal-day { font-size:.74rem; }
}
