/* ETAP C: wspólna hierarchia publiczna, rezerwacji, klienta i admina. */
:root { --ui-space-1:.5rem; --ui-space-2:1rem; --ui-space-3:1.5rem; --ui-space-4:2rem; --ui-radius:10px; --ui-shadow:0 10px 30px rgba(16,35,63,.055); }
html { scroll-padding-top:1rem; }
body { overflow-x:clip; }
.button,.card,.public-package,.public-benefit,.public-testimonial,.addon-option,.booking-price-summary,.event-card { border-radius:var(--ui-radius); }
.button { min-height:48px; line-height:1.25; text-align:center; }
.button:disabled { cursor:not-allowed; opacity:.55; transform:none; }
.button-danger { background:#a4262c; border-color:#a4262c; color:#fff; }
.button-danger:hover { background:#851b21; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #b18a4a; outline-offset:3px; }
input:not([type=radio]):not([type=checkbox]):not([type=hidden]),select,textarea { border-radius:6px; }
input[type=radio],input[type=checkbox] { width:19px; height:19px; padding:0; flex:none; accent-color:#10233f; }
input:disabled,select:disabled,textarea:disabled { background:#edf0f3; color:#55616f; cursor:not-allowed; }
.field-error:not(:empty) { display:block; color:#a4262c; font-weight:600; }
.public-hero h1 { max-width:14ch; font-size:clamp(2.7rem,5.2vw,5rem); overflow-wrap:normal; }
.public-hero .public-lead { max-width:42rem; }
.public-process-five { grid-template-columns:repeat(5,minmax(0,1fr)); }
.public-process-preview-step { overflow-wrap:anywhere; }
.public-process-preview-step h3 { font-size:clamp(1.35rem,1.8vw,1.8rem); }
.public-benefits-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.public-benefit { box-shadow:var(--ui-shadow); }
.payment-choice-card strong { font-family:var(--font-heading); font-size:1.5rem; }
.public-package-single .public-package { border-top:3px solid #b18a4a; box-shadow:var(--ui-shadow); }
.public-package-duration { color:#445369; font-size:1.15rem; font-weight:700; }
.public-package-deposit { padding:var(--ui-space-2); background:#faf5eb; border-left:3px solid #b18a4a; }
.public-offer-includes { max-width:900px; margin:var(--ui-space-4) auto 0; }
.public-offer-includes h3 { margin-bottom:var(--ui-space-2); }
.public-extra-hour { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.5rem 1rem; max-width:780px; margin:0 auto 1.5rem; padding:1.25rem 1.5rem; border:1px solid #dac79e; border-radius:var(--ui-radius); background:#fffaf0; }
.public-extra-hour strong,.public-extra-hour span { color:#10233f; font-size:1.15rem; }
.booking-hero { min-height:0; align-items:start; padding-block:clamp(2rem,4vw,4rem); }
.booking-hero h1 { font-size:clamp(2.6rem,5vw,4.3rem); }
.booking-progress { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; margin:1.5rem 0; }
.booking-progress a { display:flex; align-items:center; gap:.55rem; min-height:44px; padding:.5rem .7rem; border:1px solid #dce2e9; border-radius:6px; background:#fff; color:#10233f; font-weight:700; text-decoration:none; }
.booking-progress span { display:grid; flex:none; width:26px; height:26px; place-items:center; border-radius:50%; background:#10233f; color:#fff; font-size:.8rem; }
.package-options,.availability-picker,#krok-dane,#krok-podsumowanie { scroll-margin-top:1rem; }
.booking-date-time-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.booking-date-time-fields label { display:grid; min-width:0; gap:.4rem; font-weight:700; }
.booking-date-time-fields input { width:100%; }
.availability-picker > small { display:block; margin-top:.65rem; color:var(--color-muted); }
@media (max-width:640px) { .booking-date-time-fields { grid-template-columns:1fr; } }
.package-options legend,.booking-addons legend { font-size:1.2rem; }
.package-option { border-radius:var(--ui-radius); }
.package-option.is-selected { border-color:#b18a4a; background:#fffaf0; }
.addon-time-option { border-color:#dac79e; background:#fffaf4; }
.addon-stepper button { min-width:44px; min-height:44px; }
.selected-date { margin:.8rem 0; padding:.75rem 1rem; border-left:3px solid #b18a4a; background:#fffaf0; color:#10233f; }
.selected-date strong { display:block; font-size:1.15rem; }
.booking-price-summary { min-width:0; height:auto; max-height:none; overflow:visible; background:#fff; }
.booking-price-summary dl>div { min-width:0; }
.booking-price-summary dt { overflow-wrap:normal; }
.booking-price-summary dd,.summary-addon-lines li { overflow-wrap:anywhere; }
.booking-price-summary .summary-section-title { padding-top:1.25rem; border-bottom:2px solid #b18a4a; color:#10233f; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.booking-price-summary .summary-total { font-size:1.2rem; }
.booking-consents { display:grid; gap:.8rem; min-width:0; }
.booking-consents .checkbox { align-items:flex-start; }
.client-quick-nav,.admin-quick-nav { display:flex; flex-wrap:wrap; gap:.65rem; margin:0 0 2rem; }
.client-quick-nav a,.admin-quick-nav a { display:inline-flex; align-items:center; min-height:44px; padding:.55rem .85rem; border:1px solid #d8dfe8; border-radius:6px; background:#fff; color:#10233f; font-weight:700; text-decoration:none; }
.client-quick-nav a:hover,.admin-quick-nav a:hover { border-color:#b18a4a; background:#fffaf0; }
.client-event { overflow-wrap:anywhere; }
.event-summary { grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr)); }
.financial-breakdown { min-width:0; }
.financial-breakdown>summary { cursor:pointer; padding:.8rem 1rem; border:1px solid #d8dfe8; border-radius:6px; color:#10233f; font-weight:700; }
.financial-breakdown[open]>summary { border-color:#b18a4a; background:#fffaf0; }
.financial-breakdown>.client-card-section { margin-top:.75rem; }
.payment-history li { overflow-wrap:anywhere; }
.payment-history li>span:last-child { text-align:right; }
.admin-payment-overview { max-width:800px; margin:1.25rem 0; }
.admin-payment-overview h2 { font-size:2rem; }
.email-template-heading { display:flex; flex-wrap:wrap; align-items:start; justify-content:space-between; gap:.75rem; }
.email-template-heading h2 { margin:0; font-size:1.8rem; }
.badge-warning { border-color:#b18a4a; background:#fff5df; color:#624718; }
.provider-heading { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; }
.provider-state { font-family:var(--font-body); font-size:.72rem; line-height:1.3; }
.provider-state-active { border-color:#91c6a4; background:#e9f6ec; color:#165d32; }
.provider-state-not_configured,.provider-state-configured_disabled { border-color:#d2d9e2; background:#eef1f5; color:#35465d; }
.provider-state-configuration_error { border-color:#efb4b7; background:#fff1f1; color:#8f1822; }
.analytics-disabled strong { display:block; font-size:1.1rem; }
.analytics-disabled p { margin:.4rem 0 0; }
.analytics-table-scroll,.table-wrap { max-width:100%; overflow-x:auto; }
@media (max-width:1023px) { .public-process-five { grid-template-columns:repeat(3,minmax(0,1fr)); } .public-benefits-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px) { .public-process-five,.public-benefits-grid { grid-template-columns:minmax(0,1fr); } .public-hero { padding:2rem 0 2.5rem; } .public-hero-inner { gap:1.25rem; } .public-hero h1 { font-size:clamp(2.65rem,9vw,3.6rem); } .public-hero-photo img { height:clamp(220px,60vw,340px); } .hero-actions { margin-top:1.15rem; } .booking-price-summary { position:static; } .booking-progress { grid-template-columns:repeat(4,minmax(0,1fr)); } .booking-progress a { flex-direction:column; justify-content:center; gap:.2rem; font-size:.75rem; text-align:center; } .client-quick-nav a,.admin-quick-nav a { flex:1 1 auto; justify-content:center; } }
@media (max-width:390px) { .container { width:min(calc(100% - 1.5rem),var(--container-width)); } .public-hero h1 { font-size:2.55rem; } .hero-actions .button { width:100%; } .booking-progress { gap:.25rem; } .booking-progress a { padding:.35rem .1rem; font-size:.7rem; } .booking-price-summary { padding:1rem; } .booking-price-summary dl>div { gap:.45rem; } .booking-calendar-weekdays,.booking-calendar-days { gap:1px; } .booking-day,.booking-day-empty { min-height:44px; } .payment-history li { grid-template-columns:1fr; } .payment-history li>span:last-child { text-align:left; } }
@media (min-width:1200px) { .booking-consents,.booking-submit { grid-column:1; } }
@media (min-width:1440px) { .public-hero h1 { font-size:5rem; } .public-process-five { gap:1.5rem; } }

/* preview.2: oferta obok zawartości, spójna skala nagłówków i czytelny admin */
.home-offer-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(1.5rem,3vw,3rem); align-items:start; }
.home-offer-grid .public-package-grid { width:100%; max-width:none; margin:0; }
.home-offer-grid .public-offer-includes { width:100%; max-width:none; margin:0; padding:clamp(.3rem,1vw,1rem) 0; }
.home-offer-grid .public-offer-includes h3 { margin:0 0 1.1rem; }
.home-offer-grid .public-check-list li { padding:.35rem 0 .65rem 1.8rem; border-bottom:1px solid rgba(16,35,63,.09); }
.home-offer-grid .public-check-list li::before { color:#a9823e; }
.home-offer-grid .public-check-list span { display:block; margin-top:.15rem; color:#526074; }
.public-hero h1,.public-page-head h1,.booking-hero h1 { font-size:clamp(2.25rem,4vw,3.35rem); line-height:1.08; }
.public-section-intro h2,.public-split h2,.public-cta h2 { font-size:clamp(1.85rem,2.8vw,2.5rem); line-height:1.12; }
.section h3,.public-package h3,.public-offer-includes h3 { font-size:clamp(1.5rem,2vw,1.875rem); line-height:1.15; }
.admin-body { --admin-page-title-size:40px; --admin-section-title-size:30px; --admin-card-title-size:29px; --admin-section-gap:30px; }
.admin-body .admin-shell h3 { font-size:24px; }
.admin-body .admin-shell .card h2,.admin-body .admin-shell .settings-section legend { margin-bottom:.6rem; }
.admin-bank-record summary,.admin-legacy-packages summary,.admin-danger-zone summary { cursor:pointer; color:#10233f; }
.admin-bank-record form { margin-top:1rem; }
.admin-legacy-packages { margin-top:2rem; }
.admin-legacy-packages .cards { margin-top:1rem; }
.addon-admin-item > form + form { margin-top:1rem; padding-top:1rem; border-top:1px solid #dce2e9; }
.legal-admin-documents { display:grid; gap:1.25rem; }
.legal-admin-form { max-width:900px; }
.legal-admin-form textarea { min-height:20rem; }
.legal-admin-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.legal-admin-preview > summary { cursor:pointer; font-weight:700; }
.legal-admin-preview > div { padding:1rem; border:1px solid #dce2e9; background:#fff; white-space:pre-line; }
.legal-admin-preview h2 { margin:1rem 0 .3rem; }
.admin-danger-zone { margin-top:2rem; border-color:#a4262c; }
@media (min-width:1024px) { .home-offer-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); } }
@media (max-width:767px) { .public-hero h1,.public-page-head h1,.booking-hero h1 { font-size:clamp(2.25rem,9vw,2.625rem); } .public-section-intro h2,.public-split h2,.public-cta h2 { font-size:clamp(1.75rem,7vw,2.125rem); } .admin-body { --admin-page-title-size:36px; --admin-section-title-size:28px; --admin-card-title-size:26px; } .admin-bank-record .form-grid { grid-template-columns:minmax(0,1fr); } }
