/* Terminy Szkoły: MIASTO → MIESIĄC → GRUPA. Jedna karta = jedna pełna grupa (6 dni). */
.audience-copy h2 em{font-family:var(--sans);font-style:normal;font-weight:800;letter-spacing:-.055em;color:#8c3554}
.community-heading h2 em{font-family:var(--sans);font-style:normal;font-weight:800;letter-spacing:-.055em}
.funding h2 em{font-family:var(--sans);font-style:normal;font-weight:700;letter-spacing:-.055em}
.dates{padding-top:83px;padding-bottom:53px}
.dates-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(230px,.5fr);align-items:end;gap:50px;margin-bottom:45px}
.dates-heading .eyebrow{margin-bottom:27px}
.dates-heading h2{font-size:clamp(56px,5.35vw,91px);line-height:1.02}
.dates-heading>p{padding:0 0 9px;margin:0 2.6vw 0 0;max-width:340px;font-size:18px;line-height:1.42}
.dates-heading>p strong{display:block;margin-top:12px;color:var(--rose);font-weight:650}
.booking-step-label{color:var(--rose);font-size:10px;margin-bottom:4px}
.booking-city-switch{display:flex;align-items:stretch;gap:0;margin:0}
.booking-city{display:flex;align-items:center;justify-content:space-between;gap:35px;min-width:255px;padding:17px 26px 19px 0;border-bottom:1px solid #7c807b;background:transparent;color:var(--paper);font-size:20px;font-weight:650;letter-spacing:-.025em;line-height:1.25;text-align:left}
.booking-city+.booking-city{padding-left:29px}
.booking-city.is-active{border-bottom:4px solid var(--rose);padding-bottom:16px;color:var(--rose)}
.booking-city:hover{color:var(--rose)}
.booking-panel{background:var(--paper);color:var(--ink)}

/* Krok 02 — miesiąc */
.booking-month-bar{display:grid;grid-template-columns:242px minmax(0,1fr);align-items:end;gap:22px;padding:27px 38px 24px;border-bottom:1px solid var(--ink)}
.booking-month-heading .eyebrow,.booking-groups-head .eyebrow{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}
.booking-month-heading p{font-size:20px;font-weight:700;letter-spacing:-.035em;line-height:1.15}
.booking-months{display:flex;align-items:stretch;justify-content:flex-end;gap:7px;min-width:0;flex-wrap:wrap}
.booking-month-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px 11px;border-bottom:2px solid transparent;background:transparent;color:#586057;text-align:left;transition:color .15s,border-color .15s,background .15s}
.booking-month-btn strong{font-size:14px;font-weight:700;line-height:1.25;letter-spacing:-.01em}
.booking-month-btn span{font-size:11px;line-height:1.3}
.booking-month-btn:hover{background:#f0e5e6;color:var(--ink)}
.booking-month-btn.is-active{border-bottom-color:#8c3554;color:#8c3554;background:#f0e5e6}

/* Krok 03 — grupa */
.booking-groups-head{padding:27px 38px 0}
.booking-groups-head h3{font-size:34px;font-weight:650;letter-spacing:-.045em;line-height:1.15}
.booking-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:22px 0 0}
.group-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:30px 38px 36px;border-top:1px solid var(--ink)}
.group-card:nth-child(even){border-left:1px solid var(--line)}
.group-card-top{width:100%;display:flex;justify-content:space-between;gap:20px;align-items:center;padding-bottom:4px}
.group-card-top .eyebrow{font-size:10px;color:var(--muted)}
.group-card-index{font-size:10px;letter-spacing:.12em;color:var(--muted)}
.group-card-title{font-size:clamp(46px,4.6vw,72px);font-weight:850;letter-spacing:-.07em;line-height:1;margin:16px 0 10px}
.group-card-type{font-size:10px;letter-spacing:.12em;font-weight:700;line-height:1.5;text-transform:uppercase;margin-bottom:20px}
.group-stages{width:100%;list-style:none;margin:0 0 26px;padding:0;border-top:1px solid var(--ink)}
.group-stages li{display:grid;grid-template-columns:118px minmax(0,1fr);gap:14px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line)}
.group-stage-date{font-size:22px;font-weight:800;letter-spacing:-.05em;line-height:1.1;white-space:nowrap}
.group-stage-name{font-size:15px;font-weight:600;line-height:1.3;letter-spacing:-.015em}
.group-stage-name small{display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#8c3554;margin-bottom:2px}
.booking-availability{width:100%;display:grid;grid-template-columns:1fr auto auto;align-items:baseline;column-gap:9px;padding:4px 0 12px;margin-bottom:24px;border-bottom:2px solid #8c3554}
.booking-availability-label{font-size:12px;font-weight:650;letter-spacing:.02em}
.booking-availability-number{font-size:37px;line-height:1;font-weight:850;letter-spacing:-.07em;color:#8c3554}
.booking-availability-caption{font-size:12px;font-weight:650;color:#8c3554;white-space:nowrap}
.group-price{width:100%;margin-top:auto}
.group-price-amount{display:flex;justify-content:space-between;align-items:baseline;gap:15px;line-height:1}
.group-price-amount span{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.group-price-amount strong{font-size:clamp(38px,3.4vw,52px);font-weight:850;letter-spacing:-.065em}
.group-price-days{font-size:13px;color:var(--muted);text-align:right;margin-top:4px}
.group-perks{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.group-perks li{font-size:12px;font-weight:700;line-height:1.3;padding:8px 12px 8px 30px;background:#f0e4e5;position:relative}
.group-perks li::before{content:'';position:absolute;left:12px;top:50%;width:9px;height:5px;border-left:2px solid #8c3554;border-bottom:2px solid #8c3554;transform:translateY(-70%) rotate(-45deg)}
.booking-pick{width:100%;margin-top:22px;min-height:58px;padding:17px 21px;font-size:11px}
.booking-pick:disabled{opacity:.45;cursor:not-allowed}
.group-card.is-full .group-card-title,.group-card.is-full .group-stages{opacity:.55}
.group-card-note{justify-content:flex-start;background:#ece6dc}
.booking-empty-symbol{font-size:110px;line-height:.8;letter-spacing:-.09em;margin:40px 0 23px;color:var(--rose)}
.booking-empty-title{font-size:37px;line-height:1.08;letter-spacing:-.05em;max-width:310px;margin:0}
.booking-empty-copy{font-size:15px;line-height:1.55;max-width:330px;margin:20px 0 22px}
.dates noscript p{font-size:14px;margin-top:18px}
.dates noscript a{text-decoration:underline}

/* Okno zapisu — jedna lista wyboru, bez dekoracyjnych kart. */
body.booking-open{overflow:hidden}
.booking-dialog{width:min(835px,calc(100vw - 44px));max-height:min(90vh,880px);padding:0;border:0;background:var(--paper);color:var(--ink);box-shadow:0 22px 75px #0005;overflow:auto}
.booking-dialog::backdrop{background:#101b19ba}
.booking-dialog-inner{padding:28px clamp(25px,4vw,56px) 39px}
.booking-dialog-inner:focus{outline:none}
.booking-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:2px solid var(--ink);padding-bottom:19px}
.booking-close{width:35px;height:35px;display:grid;place-items:center;background:transparent;font-size:32px;line-height:1;font-weight:300}
.booking-close:hover{color:#a94669}
.booking-step{margin:24px 0 14px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:#8e3c58}
.booking-dialog h2{font-size:clamp(46px,5vw,67px);line-height:1.02}
.booking-dialog-intro{font-size:12px;margin-top:29px;color:var(--muted)}
.booking-selection{font-size:19px;line-height:1.4;font-weight:650;letter-spacing:-.035em;padding:10px 0 17px;border-bottom:1px solid var(--ink)}
.booking-selection-course,.booking-selection-meta{display:block}
.booking-selection-course{font-size:20px;line-height:1.25;letter-spacing:-.03em}
.booking-selection-meta{font-size:14px;line-height:1.4;font-weight:450;letter-spacing:0;margin-top:5px;color:var(--muted)}
.booking-methods{border:0;padding:0;margin:26px 0 27px}
.booking-methods legend{font-size:12px;font-weight:700;margin-bottom:7px;padding:0}
.booking-method{display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding:15px 0;cursor:pointer}
.booking-method:first-of-type{border-top:1px solid var(--line)}
.booking-method input{appearance:none;width:20px;height:20px;min-width:20px;border:1.5px solid var(--ink);border-radius:50%;background:transparent;position:relative;margin:0}
.booking-method input:checked::after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--ink)}
.booking-method input:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.booking-method>span:nth-child(2){flex:1;display:block}
.booking-method strong{display:block;font-size:17px;line-height:1.3;letter-spacing:-.02em}
.booking-method small{display:block;font-size:12px;line-height:1.45;color:var(--muted);margin-top:3px}
.booking-method:hover,.booking-method:has(input:checked){color:#923c5a}
.booking-continue{width:100%;min-height:58px}
.booking-preview-hint{font-size:11px;line-height:1.45;color:var(--muted);margin-top:12px}
.booking-payment-layout{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;margin:27px 0 31px;border-top:1px solid var(--ink)}
.booking-payment-layout>*{border-bottom:1px solid var(--line);padding:12px 0;font-size:14px;line-height:1.4}
.booking-payment-layout span{color:var(--muted)}
.booking-payment-layout strong{text-align:right;font-weight:650}
.booking-demo-note{border-left:4px solid var(--rose);padding:0 0 0 20px;max-width:575px}
.booking-demo-note strong{font-size:18px;letter-spacing:-.02em}
.booking-demo-note p{font-size:14px;line-height:1.5;margin-top:8px}
.booking-payment-actions{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:32px}
.booking-back{background:transparent;padding:10px 0;border-bottom:1px solid var(--ink);font-size:12px;font-weight:650;text-align:left}
.booking-payment-actions .button{min-height:57px;font-size:11px}

@media(max-width:1100px){.booking-month-bar{grid-template-columns:200px 1fr;padding-inline:27px;gap:10px}.booking-groups-head{padding-inline:27px}.group-card{padding:27px 27px 31px}.group-stages li{grid-template-columns:100px minmax(0,1fr);gap:10px}.group-stage-date{font-size:19px}.group-stage-name{font-size:14px}}
@media(max-width:850px){.dates-heading{gap:27px;grid-template-columns:1fr 240px}.dates-heading h2{font-size:57px}.dates-heading>p{font-size:16px}.booking-month-bar{grid-template-columns:1fr;gap:13px;padding:23px 21px 19px}.booking-months{justify-content:flex-start;gap:3px 8px}.booking-groups-head{padding:23px 21px 0}.booking-groups-head h3{font-size:27px}.group-card{padding:24px 21px 28px}.group-perks li{font-size:11px}.booking-empty-title{font-size:30px}.booking-city{min-width:220px}}
@media(max-width:700px){
  .dates{padding-top:47px;padding-bottom:36px}
  .dates-heading{display:block;margin-bottom:28px}
  .dates-heading .eyebrow{margin-bottom:22px}
  .dates-heading h2{font-size:clamp(46px,11vw,65px);line-height:1.02}
  .dates-heading>p{font-size:15px;line-height:1.5;margin:22px 0 0;max-width:350px}
  .booking-city-switch{width:100%}
  .booking-city{min-width:0;width:50%;justify-content:center;padding:15px 8px 17px;font-size:16px;gap:0;text-align:center}
  .booking-city+.booking-city{padding-left:8px}
  .booking-city.is-active{padding-bottom:14px}
  .booking-month-bar{display:block;padding:20px 21px 18px}
  .booking-month-heading p{font-size:19px}
  .booking-months{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:14px;border-top:1px solid var(--line)}
  .booking-month-btn{min-height:52px;padding:9px 10px;border-bottom:1px solid var(--line)}
  .booking-month-btn:nth-child(odd){border-right:1px solid var(--line)}
  .booking-month-btn.is-active{border-bottom:2px solid #8c3554;padding-bottom:8px}
  .booking-month-btn strong{font-size:13px}
  .booking-groups-head{padding:21px 21px 0}
  .booking-groups-head h3{font-size:25px}
  .booking-groups{grid-template-columns:1fr;padding-top:16px}
  .group-card{padding:21px 21px 26px}
  .group-card:nth-child(even){border-left:0}
  .group-card-title{font-size:52px;margin:12px 0 8px}
  .group-card-type{font-size:9px;margin-bottom:16px}
  .group-stages{margin-bottom:20px}
  .group-stages li{grid-template-columns:92px minmax(0,1fr);gap:10px;padding:11px 0}
  .group-stage-date{font-size:18px}
  .group-stage-name{font-size:14px}
  .booking-availability{margin-bottom:20px}
  .group-price-amount strong{font-size:42px}
  .group-perks li{font-size:11px;padding:7px 10px 7px 27px}
  .group-perks li::before{left:10px}
  .booking-pick{margin-top:18px}
  .group-card-note{padding-bottom:30px}
  .booking-empty-symbol{margin:20px 0 16px;font-size:80px}
  .booking-empty-title{font-size:28px}
  .booking-empty-copy{font-size:14px;margin:14px 0 18px}
  .booking-dialog{position:fixed;inset:auto 0 0 0;width:100%;max-width:100%;max-height:92dvh;margin:0;border:0;box-shadow:0 -15px 60px #0006}
  .booking-dialog-inner{padding:21px 23px 26px}
  .booking-dialog-head{padding-bottom:14px}
  .booking-dialog-head .eyebrow{font-size:9px}
  .booking-step{margin:20px 0 13px}
  .booking-dialog h2{font-size:45px}
  .booking-dialog-intro{margin-top:21px}
  .booking-selection{font-size:16px;padding:8px 0 13px}
  .booking-selection-course{font-size:17px}.booking-selection-meta{font-size:12px}
  .booking-methods{margin:20px 0 23px}
  .booking-method{padding:13px 0;gap:11px}
  .booking-method strong{font-size:15px}
  .booking-method small{font-size:11px}
  .booking-payment-layout{margin:24px 0}
  .booking-payment-layout>*{font-size:12px}
  .booking-payment-actions{display:block;margin-top:25px}
  .booking-payment-actions .button{width:100%;margin-top:21px}
}
@media(max-width:365px){.group-card{padding-inline:18px}.booking-month-bar,.booking-groups-head{padding-inline:18px}.group-stages li{grid-template-columns:84px minmax(0,1fr)}.group-stage-date{font-size:16px}.booking-dialog-inner{padding-inline:18px}.booking-dialog h2{font-size:41px}}

/* v27: przycisk miesiąca pokazuje tylko miesiąc i rok */
@media(max-width:700px){.booking-month-btn{min-height:46px;justify-content:center}}
