/* PHOTO SPOTT preview.19: shared web-only density and semantic presentation. */
.status-card,
.action-card,
.summary-card {
  min-width: 0;
  border: 1px solid var(--ps-border);
  border-radius: var(--ps-radius-md);
  background: var(--ps-surface);
  padding: clamp(1rem, 1.6vw, 1.5rem);
}
.status-card { --status-ink: var(--status-neutral); --status-surface: var(--status-neutral-bg); border-left: 4px solid var(--status-ink); background: var(--status-surface); }
.status-card--success { --status-ink: var(--status-success); --status-surface: var(--status-success-bg); }
.status-card--info { --status-ink: var(--status-info); --status-surface: var(--status-info-bg); }
.status-card--warning { --status-ink: var(--status-warning); --status-surface: var(--status-warning-bg); }
.status-card--danger { --status-ink: var(--status-danger); --status-surface: var(--status-danger-bg); }
.status-card--neutral { --status-ink: var(--status-neutral); --status-surface: var(--status-neutral-bg); }
.status-card .eyebrow { margin: 0 0 .3rem; color: var(--status-ink); }
.status-card h2, .status-card h3 { margin: 0; color: var(--ps-navy); font-family: var(--font-ui); font-size: clamp(1.15rem, 1.5vw, 1.4rem); line-height: 1.25; }
.status-card p { margin: .35rem 0 0; }
.status-card .button { white-space: normal; text-align: center; }
.status-card__head, .action-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem 1.25rem; }
.status-card__facts, .summary-card__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem 1rem; margin: .85rem 0 0; }
.status-card__facts > div, .summary-card__grid > div { min-width: 0; }
.status-card__facts dt, .summary-card__grid dt { color: var(--ps-text-muted); font-size: var(--font-ui-xs); font-weight: 700; }
.status-card__facts dd, .summary-card__grid dd { margin: .15rem 0 0; overflow-wrap: anywhere; color: var(--ps-navy); font-weight: 700; }
.action-card { border-left: 4px solid var(--status-info); background: var(--status-info-bg); }
.action-card--warning { border-color: var(--status-warning); background: var(--status-warning-bg); }
.action-card--danger { border-color: var(--status-danger); background: var(--status-danger-bg); }
.action-card h3 { margin: 0; font: 700 var(--font-ui-lg)/1.3 var(--font-ui); }
.action-card p { margin: .25rem 0 0; }
.summary-card { background: var(--ps-surface); }
.summary-card--info { border-color: #c5d8ea; background: #f5f9fd; }
.summary-card h2, .summary-card h3 { margin: 0; font-family: var(--font-ui); font-size: clamp(1.05rem, 1.45vw, 1.3rem); }
.summary-card__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.summary-card__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .9rem; }
.badge-new { background: var(--status-info-bg); color: var(--status-info); }
.badge-awaiting_deposit, .badge-warning { background: var(--status-warning-bg); color: var(--status-warning); }
.badge-confirmed, .badge-completed { background: var(--status-success-bg); color: var(--status-success); }
.badge-expired, .badge-rejected, .badge-cancelled { background: var(--status-neutral-bg); color: var(--status-neutral); }
.badge-danger, .badge-conflict { background: var(--status-danger-bg); color: var(--status-danger); }
.status-inline { display: inline-block; border: 0; border-radius: 999px; padding: .25rem .55rem; font-size: .8125rem; }
.status-inline.status-card--success { color: var(--status-success); background: var(--status-success-bg); }
.status-inline.status-card--info { color: var(--status-info); background: var(--status-info-bg); }
.status-inline.status-card--warning { color: var(--status-warning); background: var(--status-warning-bg); }
.status-inline.status-card--danger { color: var(--status-danger); background: var(--status-danger-bg); }
.status-inline.status-card--neutral { color: var(--status-neutral); background: var(--status-neutral-bg); }
.status-text--success { color: var(--status-success); }
.status-text--info { color: var(--status-info); }
.status-text--warning { color: var(--status-warning); }
.status-text--danger { color: var(--status-danger); }
.status-text--neutral { color: var(--status-neutral); }
.badge { font-size: var(--font-ui-xs); line-height: 1.25; }
.compact-table th, .compact-table td { padding: .55rem .7rem; font-size: .875rem; vertical-align: middle; }
.compact-disclosure > summary { cursor: pointer; font-weight: 700; }
.compact-disclosure > summary:focus-visible, .status-card a:focus-visible, .summary-card a:focus-visible { outline: 3px solid var(--ps-gold); outline-offset: 3px; }

/* Public marketing: retain Cormorant display headings, Manrope everywhere else. */
body:not(.admin-body) { font-size: clamp(.96rem, .2vw + .91rem, 1.05rem); line-height: 1.57; }
#main:has(> .public-hero, > .public-page-head:not(.legal-page-head)) {
  --public-display-xl: clamp(2.4rem, 4vw, 4.1rem);
  --public-display-lg: clamp(1.85rem, 2.6vw, 2.8rem);
  --public-card-title: clamp(1.125rem, 1vw + .8rem, 1.5rem);
  --public-body: clamp(.96rem, .2vw + .91rem, 1.05rem);
  --public-section-space: clamp(1.9rem, 3vw, 3rem);
  line-height: 1.57;
}
#main .public-hero { padding-block: clamp(1.75rem, 3vw, 3rem); }
#main .public-page-head:not(.legal-page-head) { padding-block: clamp(1.85rem, 3vw, 3.2rem); }
#main .public-hero h1, #main .public-page-head:not(.legal-page-head) h1 { font-size: clamp(2.4rem, 4vw, 4.1rem); }
#main .public-section-intro h2, #main .public-cta h2, #main .public-offer-story h2,
#main .public-faq-preview h2, #main .public-split > div > h2 { font-size: var(--public-display-lg); }
#main .public-section-intro { margin-bottom: clamp(1rem, 1.6vw, 1.55rem); }
#main .public-process-step { padding: clamp(1.05rem, 1.6vw, 1.5rem); }
#main .public-process-preview-step { padding-top: .85rem; }
#main .public-process-step h2 { margin: .4rem 0 .35rem; }
#main .public-benefit { padding: clamp(1rem, 1.4vw, 1.3rem); }
#main .public-package-single .public-package { padding: clamp(1.15rem, 1.8vw, 1.75rem); }
#main .public-package h3 { margin-bottom: .4rem; }
#main .public-extra-hour { padding: .8rem 1rem; }
#main .public-contact-grid { gap: clamp(1.25rem, 2vw, 2rem); }
#main .public-contact-form { gap: .65rem; }
#main .public-contact-form textarea { min-height: 120px; height: 130px; }
#main .section-contact { padding-block: clamp(1.75rem, 3vw, 3rem); }
#main .public-contact-grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
#main .public-contact-grid > * { min-width: 0; }
#main .public-contact-details > p { margin-block: .65rem; }
#main .public-contact-details a { font-size: 1rem; overflow-wrap: anywhere; }
#main .public-contact-details .contact-social { margin-top: 1.25rem; }
@media (min-width: 960px) {
  #main .public-contact-grid { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); }
}

/* preview.22: compact public footer; DOM order keeps contact before legal links on mobile. */
.site-footer { padding-block: 2.25rem; font-family: var(--font-ui); font-size: .9rem; }
.public-footer-grid { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.public-footer-grid > * { min-width: 0; }
.public-footer-grid p { margin-bottom: .4rem; }
.public-footer-grid .footer-heading { margin: 0 0 .55rem; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.public-footer-grid .footer-navigation,
.public-footer-grid .footer-documents { display: grid; align-content: start; gap: .35rem; }
.public-footer-grid .footer-contact > a { display: block; margin-bottom: .3rem; overflow-wrap: anywhere; }
.public-footer-grid .footer-operator-link { display: inline-block; margin-top: .25rem; color: var(--ps-navy); font-weight: 600; text-decoration: underline; text-decoration-color: var(--ps-gold); text-underline-offset: .2em; }
.public-footer-grid .footer-operator-link:hover,
.public-footer-grid .footer-operator-link:focus-visible { color: var(--ps-gold-text); }
.public-footer-grid .follow-heading { margin-top: .85rem; }
@media (min-width: 720px) {
  .public-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .public-footer-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.05fr); gap: clamp(1rem, 2vw, 2rem); }
  .public-footer-grid .footer-about { grid-column: 1; grid-row: 1; }
  .public-footer-grid .footer-navigation { grid-column: 2; grid-row: 1; }
  .public-footer-grid .footer-documents { grid-column: 3; grid-row: 1; }
  .public-footer-grid .footer-contact { grid-column: 4; grid-row: 1; }
}
#main .faq-question { font-size: 1rem; }
#main .faq-item, #main .public-faq-item { padding-block: .75rem; }
#main .public-portfolio-section .public-section-intro, #main .gallery-page .section-heading { margin-bottom: 1.25rem; }

/* Public booking: shorter flow, but keep one document scrollbar and readable controls. */
.booking-hero { padding-block: clamp(1.4rem, 2.6vw, 2.5rem); }
.booking-hero h1 { font-size: clamp(2rem, 3vw, 2.75rem); }
.booking-hero .booking-progress { gap: .4rem; margin-block: .85rem 1.25rem; }
.booking-hero .booking-progress a { padding: .5rem .65rem; }
.booking-hero .rules-card { margin-top: 1rem; padding: 1rem; }
.booking-hero .booking-step-title { font-size: clamp(1.2rem, 1.6vw, 1.5rem); }
.booking-hero .booking-form-fields { gap: 1rem; }
.booking-hero .booking-price-summary { height: auto; max-height: none; overflow: visible; border-color: #c5d8ea; background: #f5f9fd; }
.booking-hero .booking-price-summary h2 { font-size: clamp(1.15rem, 1.5vw, 1.4rem); }
.booking-hero .booking-price-summary dl > div { padding-block: .5rem; }
.booking-hero .booking-price-summary .summary-section-title { padding-top: .8rem; }
.booking-hero .booking-price-summary dt { font-size: .875rem; }
.booking-hero .booking-price-summary dd { font-size: .9375rem; }
.booking-hero .booking-price-summary [data-summary-deposit] { font-size: 1.05rem; }
.booking-confirmation { min-height: 0; padding-block: clamp(2rem, 4vw, 3.5rem); }
.booking-confirmation h1 { font: 700 clamp(1.8rem, 3vw, 2.4rem)/1.17 var(--font-ui); }
.booking-confirmation .settlement-list { margin-block: 1rem; text-align: left; }
.booking-confirmation .status-card { margin: 1rem 0; text-align: left; }

/* Client portal: the first viewport carries status, date, money and the next action. */
.client-panel { padding-top: clamp(1.4rem, 3vw, 2.5rem); background: #f8fbfd; }
.client-panel-header { margin-bottom: .9rem; }
.client-panel-header h1 { font-size: clamp(1.75rem, 2.4vw, 2.125rem); }
.client-panel-header p { margin-bottom: 0; }
.client-panel .client-quick-nav { margin-block: .85rem 1.2rem; gap: .4rem; }
.client-panel .client-quick-nav a { min-height: 38px; padding: .4rem .7rem; font-size: .8125rem; }
.client-panel .client-quick-nav a[aria-current="location"] { border-color: #b8d2e9; background: var(--status-info-bg); color: var(--status-info); }
.client-panel > .container > h2 { font-size: clamp(1.25rem, 1.7vw, 1.5rem); margin-bottom: .75rem; }
.client-panel .client-events { gap: 1rem; }
.client-panel .event-card { gap: .85rem; padding: clamp(1rem, 1.6vw, 1.5rem); }
.client-panel .event-card-header h2 { font-size: clamp(1.2rem, 1.7vw, 1.5rem); }
.client-panel .event-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.client-panel .event-summary > div { grid-column: auto; padding: .65rem .7rem; border-bottom: 1px solid var(--ps-border); }
.client-panel .event-summary dt, .client-panel .settlement-list dt { font-size: .8125rem; letter-spacing: .03em; }
.client-panel .event-summary dd { margin-top: .15rem; font-size: .9375rem; }
.client-panel .client-card-section { padding: clamp(.85rem, 1.2vw, 1.15rem); }
.client-panel .client-status-message { margin: 0; font-size: .9rem; }
.client-panel .settlement-card { background: #fbfcfd; }
.client-panel .client-overview { margin-bottom: .7rem; }
.client-panel .client-overview-deadline { font-size: .875rem; }
.client-panel .payment-journey-kpis { gap: .5rem; margin: .7rem 0; }
.client-panel .payment-journey-kpis > div { padding: .75rem; }
.client-panel .payment-journey-kpis dd { font-size: clamp(1.2rem, 1.8vw, 1.55rem); }
.client-panel .payment-journey-kpis .is-paid { border-color: #b6dac3; background: var(--status-success-bg); }
.client-panel .payment-journey-kpis .is-remaining { border-color: #bdd7ed; background: var(--status-info-bg); }
.client-panel .payment-journey-progress { margin-block: .8rem; }
.client-panel .payment-journey-stage { padding-block: .85rem .35rem; }
.client-panel .gallery-card.is-ready { border-color: #b6dac3; background: var(--status-success-bg); }
.client-panel .gallery-card.is-pending { border-color: #d7e4ef; background: #f7fafc; }
.client-panel .gallery-pending { border-left-color: var(--status-info); }
.client-panel a.button[href^="#opinia-"] { border-color: #bcd5ea; background: var(--status-info-bg); color: var(--status-info); }

/* Admin: operative hierarchy, shorter rows and neutral historical statuses. */
.admin-body { --admin-page-title-size: 32px; --admin-section-title-size: 23px; --admin-card-title-size: 18px; --admin-font-size: 15px; }
.admin-body .admin-shell h1, .admin-body .dashboard-header h1,
.admin-body .admin-shell .section-heading h1 { font-size: clamp(28px, 2.4vw, 34px); }
.admin-body .admin-shell h2 { font-size: clamp(20px, 1.8vw, 24px); }
.admin-body .admin-shell h3, .admin-body .admin-shell .card-title { font-size: clamp(16px, 1.3vw, 19px); }
.admin-body .admin-shell .metric strong, .admin-body .owner-kpi strong,
.admin-body .analytics-kpi strong { font-size: clamp(22px, 2vw, 30px); }
.admin-body .admin-shell .metric { min-height: 90px; padding: 14px 16px; }
.admin-body .admin-shell .metric > span, .admin-body .admin-shell .details-list dt,
.admin-body .admin-shell .details-grid dt { font-size: .8125rem; }
.admin-body .admin-shell .admin-page { margin-block: .75rem 1.75rem; }
.admin-body .admin-shell .admin-section { margin-block: 1rem; }
.admin-body .admin-shell .card, .admin-body .admin-shell .form-card { padding: clamp(.95rem, 1.5vw, 1.5rem); }
.admin-body .admin-shell .table-wrap table { font-size: .875rem; line-height: 1.35; }
.admin-body .admin-shell .table-wrap th, .admin-body .admin-shell .table-wrap td { padding: .6rem .7rem; }
.admin-body .admin-shell .table-wrap th { font-size: .8125rem; }
.admin-body .admin-shell .badge { font-size: .75rem; padding: .28rem .5rem; }
.admin-body .admin-shell .owner-priority-grid { gap: .85rem; }
.admin-body .admin-shell .owner-kpis { gap: .7rem; }
.admin-body .admin-shell .owner-kpi { padding: .9rem 1rem; }
.admin-body .admin-shell .owner-action-list li { padding-block: .45rem; }
.admin-body .admin-shell .admin-booking-overview { margin-bottom: .9rem; }
.admin-body .admin-shell .admin-booking-overview .summary-card__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-body .admin-shell .admin-booking-overview .summary-card__grid dd { font-size: .9375rem; }
.admin-body .admin-shell .booking-consent-card { margin-bottom: .85rem; }
.admin-body .admin-shell .admin-booking-deadline { margin: .75rem 0 0; font-size: .875rem; }
.admin-body .admin-shell .badge-new { background: var(--status-info-bg); color: var(--status-info); }
.admin-body .admin-shell .badge-awaiting_deposit { background: var(--status-warning-bg); color: var(--status-warning); }
.admin-body .admin-shell .badge-confirmed, .admin-body .admin-shell .badge-completed { background: var(--status-success-bg); color: var(--status-success); }
.admin-body .admin-shell .badge-expired, .admin-body .admin-shell .badge-rejected,
.admin-body .admin-shell .badge-cancelled { background: var(--status-neutral-bg); color: var(--status-neutral); }
.admin-body .admin-shell .booking-state-note.status-expired,
.admin-body .admin-shell .booking-state-note.status-rejected,
.admin-body .admin-shell .booking-state-note.status-cancelled { border-left-color: var(--status-neutral); background: var(--status-neutral-bg); }
.admin-body .owner-priority-grid > .admin-section:nth-child(2) { border-left-color: var(--status-warning); background: linear-gradient(120deg, var(--status-warning-bg), #fff 52%); }

@media (max-width: 1023px) {
  .client-panel .status-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-body .admin-shell .admin-booking-overview .summary-card__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  #main:has(> .public-hero, > .public-page-head:not(.legal-page-head)) { --public-display-lg: clamp(1.85rem, 6vw, 2.2rem); --public-section-space: 1.9rem; }
  #main .public-hero h1, #main .public-page-head:not(.legal-page-head) h1 { font-size: clamp(2.4rem, 7vw, 3rem); }
  .booking-hero .booking-price-summary { width: 100%; }
  .client-panel .event-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .client-panel .client-quick-nav a { min-height: 38px; }
  .admin-body .admin-shell .admin-booking-overview .summary-card__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 390px) {
  .client-panel .status-card__facts, .client-panel .event-summary,
  .admin-body .admin-shell .admin-booking-overview .summary-card__grid { grid-template-columns: minmax(0, 1fr); }
  .status-card__head .button { width: 100%; }
  .booking-hero .booking-price-summary dl > div:not(.summary-addon-lines) { grid-template-columns: minmax(105px, 1fr) minmax(0, 1.1fr); }
}
