.booking-card { min-height: 555px; padding: clamp(1.35rem, 4vw, 3rem); background: var(--color-surface); box-shadow: var(--shadow-soft); border-radius: var(--radius-sm); }
.booking-progress { display: flex; align-items: center; margin-bottom: 2.5rem; }
.booking-progress span { display: grid; flex: 0 0 32px; width: 32px; height: 32px; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; color: var(--color-text-muted); font-size: .7rem; font-weight: 800; }
.booking-progress span.is-current, .booking-progress span.is-complete { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-white); }
.booking-progress i { flex: 1 1 0; min-width: 12px; height: 1px; background: var(--color-border); }
.booking-progress i.is-complete { background: var(--color-primary); }
.booking-step { display: none; }.booking-step.is-active { display: block; }.booking-step h3 { margin-bottom: .5rem; font-size: clamp(2rem, 4vw, 3rem); }.step-label { margin-bottom: .65rem; color: var(--color-primary-dark); font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.step-copy { color: var(--color-text-muted); font-size: .88rem; }.back-link { display: inline-flex; align-items: center; min-height: 38px; margin: 0 0 1.35rem; padding: .55rem .8rem; border: 1px solid var(--color-primary); border-radius: var(--radius-sm); background: var(--color-primary); color: var(--color-white); font-size: .68rem; font-weight: 800; letter-spacing: .04em; transition: background .2s, border-color .2s, transform .2s; }.back-link:hover { border-color: var(--color-primary-dark); background: var(--color-primary-dark); color: var(--color-white); transform: translateX(-2px); }
.choice-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; margin-top: 2rem; }.booking-choice { min-height: 150px; padding: 1.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg); color: var(--color-text); text-align: left; transition: border-color .2s, background .2s, transform .2s; }.booking-choice:hover, .booking-choice.is-selected { border-color: var(--color-primary); background: #f7e9e5; transform: translateY(-2px); }.booking-choice__heading { display: flex; align-items: center; gap: .7rem; }.booking-choice__icon { width: 32px; height: 32px; flex: 0 0 auto; opacity: .58; }.booking-choice strong { display: block; margin: 0; font-family: var(--font-heading); font-size: 2rem; font-weight: 400; line-height: 1; }.booking-choice p { margin: .65rem 0 0; color: var(--color-text-muted); font-size: .75rem; line-height: 1.45; }
.service-choice-list { margin-top: 1.5rem; }.service-selection-hint { margin: 0 0 1.2rem; color: var(--color-text-muted); font-size: .78rem; }.service-choice-group + .service-choice-group { margin-top: 1.5rem; }.service-choice-group > h4 { margin: 0; padding-bottom: .65rem; border-bottom: 1px solid var(--color-border); color: var(--color-primary-dark); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.service-choice { position: relative; display: grid; width: 100%; grid-template-columns: minmax(0, 1fr) auto; gap: .8rem; margin-top: .6rem; padding: 1rem 3.6rem 1rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg); color: var(--color-text); text-align: left; transition: border-color .2s, background .2s, box-shadow .2s, transform .2s; }.service-choice:disabled { cursor: default; opacity: .45; }.service-choice:not(:disabled):hover { border-color: var(--color-primary); background: var(--color-white); box-shadow: 0 8px 18px rgba(72, 49, 44, .06); transform: translateY(-1px); }.service-choice:hover .service-choice__name, .service-choice.is-selected .service-choice__name { color: var(--color-primary-dark); }.service-choice.is-selected { border-color: var(--color-primary); background: #f7e9e5; box-shadow: 0 9px 20px rgba(159, 91, 83, .1); }.service-choice__name { display: block; margin: 0 0 .3rem; font-size: 1rem; transition: color .2s; }.service-choice p { margin: 0; color: var(--color-text-muted); font-size: .75rem; line-height: 1.4; }.service-choice__meta { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: .25rem; color: var(--color-text-muted); font-size: .7rem; white-space: nowrap; }.service-choice__meta strong { color: var(--color-text); font-size: .82rem; }.service-choice__check { position: absolute; top: 50%; right: .9rem; display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid var(--color-primary); border-radius: 50%; color: var(--color-primary); font-size: 1.05rem; font-weight: 400; line-height: 1; transform: translateY(-50%); transition: background .2s, color .2s, transform .2s; }.service-choice__check::after { content: '+'; }.service-choice.is-selected .service-choice__check { background: var(--color-primary); color: var(--color-white); transform: translateY(-50%) rotate(0deg); }.service-choice.is-selected .service-choice__check::after { content: '✓'; font-size: .78rem; font-weight: 800; }.service-selection-actions { margin-top: 1.5rem; }.service-selection-actions .button:disabled { cursor: default; opacity: .45; }
.location-choices { margin: 1.7rem 0 0; }.location-choices__heading { margin-bottom: .75rem; }.location-choices__heading p { margin: 0 0 .25rem; color: var(--color-primary-dark); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.location-choices__heading h4 { margin: 0; font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3rem); font-weight: 400; line-height: 1; }.location-choice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }.location-choice { position: relative; display: flex; min-height: 72px; align-items: center; padding: .85rem 3rem .85rem .9rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg); color: var(--color-text); text-align: left; transition: border-color .2s, background .2s, box-shadow .2s, transform .2s; }.location-choice:hover { border-color: var(--color-primary); background: var(--color-white); box-shadow: 0 8px 18px rgba(72, 49, 44, .06); transform: translateY(-1px); }.location-choice strong, .location-choice small { display: block; }.location-choice strong { font-size: .8rem; }.location-choice small { margin-top: .18rem; color: var(--color-text-muted); font-size: .64rem; font-weight: 400; line-height: 1.35; }.location-choice__check { position: absolute; top: 50%; right: .85rem; display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid var(--color-primary); border-radius: 50%; color: var(--color-primary); transform: translateY(-50%); }.location-choice__check::after { content: '+'; font-size: 1rem; }.location-choice.is-selected { border-color: var(--color-primary); border-radius: var(--radius-sm); background: #f7e9e5; box-shadow: 0 8px 18px rgba(159, 91, 83, .1); }.location-choice.is-selected .location-choice__check { background: var(--color-primary); color: var(--color-white); }.location-choice.is-selected .location-choice__check::after { content: '✓'; font-size: .72rem; font-weight: 800; }
.location-choices + h3 { margin-top: 2.2rem; }.calendar-wrap { margin-top: 1.5rem; }.calendar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; }.calendar-header h4 { margin: 0; font-family: var(--font-heading); font-size: 1.45rem; font-weight: 400; }.calendar-header button { width: 34px; height: 34px; border: 1px solid var(--color-border); border-radius: 50%; background: transparent; color: var(--color-text); }.calendar-header button:disabled { cursor: default; opacity: .35; }.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: .35rem; }.calendar-weekdays span { padding-bottom: .25rem; color: var(--color-text-muted); font-size: .62rem; font-weight: 700; text-align: center; }.calendar-day { aspect-ratio: 1; border: 1px solid transparent; border-radius: 50%; background: transparent; color: #a99d9a; font-size: .7rem; }.calendar-day.is-available { border-color: var(--color-border); color: var(--color-text); }.calendar-day.is-available:hover, .calendar-day.is-selected { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-white); }.calendar-day.is-today { box-shadow: inset 0 0 0 1px var(--color-primary); }.calendar-day:disabled { cursor: default; }
.time-wrap { margin-top: 1.7rem; }.time-wrap h4 { margin: 0 0 .8rem; font-size: .8rem; }.time-list { display: flex; flex-wrap: wrap; gap: .5rem; }.time-list button { min-width: 64px; min-height: 38px; padding: .3rem .55rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg); color: var(--color-text); font-size: .72rem; font-weight: 700; }.time-list button:hover, .time-list button.is-selected { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-white); }.times-empty { color: var(--color-text-muted); font-size: .8rem; }
.booking-summary { margin: 1.5rem 0; padding: 1rem; border-left: 3px solid var(--color-primary); background: var(--color-bg); }.booking-summary dl { display: grid; grid-template-columns: 1fr auto; gap: .45rem 1rem; margin: 0; font-size: .78rem; }.booking-summary dt { color: var(--color-text-muted); }.booking-summary dd { margin: 0; font-weight: 700; text-align: right; }.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }.field-grid label { display: flex; flex-direction: column; gap: .4rem; color: var(--color-text-muted); font-size: .72rem; font-weight: 700; }.field-grid label span { font-weight: 400; }.field-grid label .field-label { font-weight: 700; }.field-required { color: var(--color-primary-dark); }.field-full { grid-column: 1 / -1; }.field-grid input, .field-grid textarea { width: 100%; min-height: 46px; padding: .65rem .7rem; border: 1px solid var(--color-border); border-radius: 0; outline: 0; background: var(--color-white); color: var(--color-text); font-size: 16px; transition: border-color .2s; }.field-grid textarea { resize: vertical; }.field-grid input:focus, .field-grid textarea:focus { border-color: var(--color-primary); }.consent { display: flex; gap: .6rem; align-items: flex-start; margin: 1.15rem 0; color: var(--color-text-muted); font-size: .71rem; line-height: 1.45; }.consent input { width: 18px; height: 18px; margin: .05rem 0 0; accent-color: var(--color-primary); }.consent a { border-bottom: 1px solid var(--color-primary); color: var(--color-text); }.button--wide { width: 100%; }.form-message { min-height: 1.2rem; margin: .4rem 0 .8rem; color: #a4463d; font-size: .75rem; }.booking-success { padding: 2rem 0; text-align: center; }.success-mark { display: grid; width: 54px; height: 54px; place-items: center; margin: 0 auto 1rem; border-radius: 50%; background: var(--color-primary); color: var(--color-white); font-size: 1.6rem; }.success-details { margin: 1.7rem 0; padding: 1rem; background: var(--color-bg); text-align: left; }.success-details dl { display: grid; grid-template-columns: 1fr auto; gap: .45rem; margin: 0; font-size: .78rem; }.success-details dt { color: var(--color-text-muted); }.success-details dd { margin: 0; font-weight: 700; text-align: right; }.mobile-service-cta { display: none; }.selection-sheet[hidden] { display: none; }.selection-sheet { position: fixed; z-index: 30; inset: 0; display: grid; align-items: end; background: rgba(36, 27, 25, 0); transition: background .22s ease; }.selection-sheet.is-open { background: rgba(36, 27, 25, .38); }.selection-sheet__backdrop { position: absolute; inset: 0; border: 0; background: transparent; }.selection-sheet__panel { position: relative; z-index: 1; width: 100%; max-width: 620px; margin: 0 auto; padding: .7rem 1.25rem max(1.25rem, env(safe-area-inset-bottom)); border-radius: 1.2rem 1.2rem 0 0; background: var(--color-surface); box-shadow: 0 -18px 45px rgba(36, 27, 25, .18); transform: translateY(105%); transition: transform .22s ease; }.selection-sheet.is-open .selection-sheet__panel { transform: translateY(0); }.selection-sheet__handle { width: 38px; height: 4px; margin: 0 auto 1.15rem; border-radius: 999px; background: var(--color-border); }.selection-sheet__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.selection-sheet__top h3 { margin: 0; font-family: var(--font-heading); font-size: 2rem; font-weight: 400; }.selection-sheet__close { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--color-border); border-radius: 50%; background: transparent; color: var(--color-text); font-size: 1.35rem; line-height: 1; }.selection-sheet__meta { margin: .4rem 0 .9rem; color: var(--color-text-muted); font-size: .72rem; }.selection-sheet__services { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }.selection-sheet__services li { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-top: 1px solid var(--color-border); }.selection-sheet__services span, .selection-sheet__services strong, .selection-sheet__services small { display: block; }.selection-sheet__services strong { font-size: .82rem; }.selection-sheet__services small { margin-top: .16rem; color: var(--color-text-muted); font-size: .68rem; }.selection-sheet__services b { flex: 0 0 auto; align-self: center; font-size: .78rem; white-space: nowrap; }.selection-sheet__total { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: .9rem 0 1.1rem; padding-top: .9rem; border-top: 1px solid var(--color-border); }.selection-sheet__total span { color: var(--color-text-muted); font-size: .76rem; }.selection-sheet__total strong { font-size: 1rem; }

@media (max-width: 620px) { .booking-card { min-height: 520px; padding: 1.35rem; }.booking-progress { margin-bottom: 1.8rem; }.choice-grid { grid-template-columns: 1fr; }.booking-choice { min-height: 115px; border-radius: var(--radius-sm); }.booking-choice strong { margin-top: .7rem; }.service-choice-list { padding-bottom: 5.8rem; }.service-selection-actions { display: none; }.mobile-service-cta { position: fixed; z-index: 10; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--color-border); background: rgba(255, 250, 247, .96); box-shadow: 0 -10px 28px rgba(72, 49, 44, .1); backdrop-filter: blur(14px); }.mobile-service-cta__summary { display: flex; min-width: 0; flex: 1 1 auto; flex-direction: column; gap: .12rem; padding: 0; border: 0; background: transparent; color: var(--color-text-muted); cursor: pointer; font-size: .66rem; font-weight: 700; text-align: left; }.mobile-service-cta__summary strong { color: var(--color-text); font-size: .82rem; }.mobile-service-cta__clear { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-white); color: var(--color-primary-dark); }.mobile-service-cta__clear svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }.mobile-service-cta__clear:hover { border-color: var(--color-primary); background: #f7e9e5; }.mobile-service-cta .button { flex: 0 0 auto; min-height: 42px; padding: .65rem .85rem; font-size: .7rem; white-space: nowrap; }.location-choice-list { grid-template-columns: 1fr; }.field-grid { grid-template-columns: 1fr; }.field-full { grid-column: auto; }.calendar-weekdays, .calendar-days { gap: .25rem; }.calendar-day { font-size: .68rem; } }

.selection-sheet__services li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .8rem; padding: .75rem 0; border-top: 1px solid var(--color-border); }.selection-sheet__remove { display: grid; width: 28px; height: 28px; place-items: center; padding: 0; border: 1px solid var(--color-border); border-radius: 50%; background: transparent; color: var(--color-primary-dark); font-size: 1.1rem; line-height: 1; }.selection-sheet__remove:hover { border-color: var(--color-primary); background: #f7e9e5; }.selection-sheet__total { margin-bottom: .55rem; }.selection-sheet__clear-all { display: block; margin: 0 0 1rem; padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--color-primary-dark); font-size: .7rem; font-weight: 800; }.selection-sheet { -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); transition: background .22s ease, -webkit-backdrop-filter .22s ease, backdrop-filter .22s ease; }.selection-sheet.is-open { -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }body.selection-sheet-open { position: fixed; width: 100%; overflow: hidden; overscroll-behavior: none; }

@media (min-width: 621px) { .mobile-service-cta { position: fixed; z-index: 11; right: 0; bottom: 0; left: 0; display: flex; width: auto; align-items: center; gap: .75rem; padding: .75rem max(1.5rem, calc((100vw - var(--container-width)) / 2)); border: 0; border-top: 1px solid var(--color-border); background: rgba(255, 250, 247, .96); box-shadow: 0 -10px 28px rgba(72, 49, 44, .1); backdrop-filter: blur(14px); }.mobile-service-cta__summary { display: flex; min-width: 0; flex: 1 1 auto; flex-direction: column; gap: .08rem; padding: 0; border: 0; background: transparent; color: var(--color-text-muted); cursor: pointer; font-size: .66rem; font-weight: 700; text-align: left; }.mobile-service-cta__summary::before { content: 'Szolgáltatások'; color: var(--color-primary-dark); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.mobile-service-cta__summary strong { color: var(--color-text); font-size: .84rem; }.mobile-service-cta__clear { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; padding: 0; border: 1px solid var(--color-border); border-radius: 0; background: var(--color-white); color: var(--color-primary-dark); }.mobile-service-cta__clear svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }.mobile-service-cta__clear:hover { border-color: var(--color-primary); background: #f7e9e5; }.mobile-service-cta .button { flex: 0 0 auto; min-height: 42px; padding: .65rem .9rem; font-size: .7rem; white-space: nowrap; } }

@media (hover: none) {
    .booking-choice:hover:not(.is-selected) {
        border-color: var(--color-border);
        background: var(--color-bg);
        transform: none;
    }

    .service-choice:not(:disabled):hover:not(.is-selected) {
        border-color: var(--color-border);
        background: var(--color-bg);
        box-shadow: none;
        transform: none;
    }

    .service-choice:hover:not(.is-selected) .service-choice__name { color: var(--color-text); }

    .location-choice:hover:not(.is-selected) {
        border-color: var(--color-border);
        background: var(--color-bg);
        box-shadow: none;
        transform: none;
    }

    .calendar-day.is-available:hover:not(.is-selected),
    .time-list button:hover:not(.is-selected) {
        border-color: var(--color-border);
        background: transparent;
        color: var(--color-text);
    }

    .time-list button:hover:not(.is-selected) { background: var(--color-bg); }
}

.location-choice__check {
    font-size: 1rem;
    line-height: 1;
}

.location-choice__check::after {
    position: absolute;
    top: calc(50% - 1px);
    left: 50%;
    display: block;
    line-height: 1;
    transform: translate(-50%, -50%);
}

.service-choice.is-selected .service-choice__check::after,
.location-choice.is-selected .location-choice__check::after {
    position: absolute;
    top: calc(50% + 1px);
    left: 50%;
    line-height: 1;
    transform: translate(-50%, -50%);
}
