/* Spolecne styly skupiny F (passes / rentals / lessons) — prefix ps-.
   Figma 811:28102 (PASSES SUMMER), 732:2391 (PASSES WINTER) … Hodnoty calc(N * var(--u)) = px pri 1920. */

.ps-page { background: #fff; }
.ps-hero-sub { display: block; max-width: max(300px, calc(491 * var(--u))); font-size: max(15px, calc(16 * var(--u))); line-height: calc(19.5 / 16); }

/* sekce: obsah zarovnany na x=80 (Figma) */
.ps-sec { max-width: var(--maxw); margin-inline: auto; padding-inline: calc(80 * var(--u)) calc(111 * var(--u)); }
.ps-h { font-weight: 700; font-size: max(26px, calc(45 * var(--u))); line-height: calc(54.9 / 45); color: var(--c-navy-2); text-transform: uppercase; }

/* ---------------------------------------------------------------- cenova tabulka (data-cards) */
.ps-tbl { position: relative; background: var(--c-navy); border-radius: 7px; color: #fff; padding: 0 0 calc(16 * var(--u)) calc(56 * var(--u)); letter-spacing: 0; }
.ps-tbl__t { position: relative; }
.ps-tbl__t { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: max(14px, calc(20 * var(--u))); line-height: calc(24.4 / 20); }
.ps-tbl__t th, .ps-tbl__t td { padding: 0; text-align: center; vertical-align: middle; }
.ps-tbl__t thead th { height: calc(78 * var(--u)); padding-top: calc(4 * var(--u)); font-weight: 500; }
.ps-tbl__t tbody tr { height: calc(90 * var(--u)); border-top: 1px solid rgba(255, 255, 255, .41); }
.ps-tbl__t tbody th { text-align: left; font-weight: 500; }
.ps-tbl__t tbody td { font-weight: 700; }
.ps-tbl__t td.ps-tbl__buy { text-align: left; padding-left: calc(59 * var(--u)); }
.ps-buy, .cs-paycard a.ps-buy { display: inline-flex; align-items: center; justify-content: center; width: calc(197 * var(--u)); min-width: 120px; height: calc(58 * var(--u)); min-height: 40px; border-radius: 7px; background: var(--c-gold); color: #fff; font-weight: 700; font-size: max(13px, calc(20 * var(--u))); line-height: 1; text-transform: uppercase; transition: background-color .2s; }
.ps-buy:hover { background: #b7873f; }

/* zlaty sloupec aktualni ceny + zalozka "CURRENT PRICE" nad boxem */
.ps-cur { position: absolute; left: calc(var(--pl) * var(--u) + (100% - var(--pl) * var(--u)) * var(--cx)); width: calc((100% - var(--pl) * var(--u)) * var(--cw)); top: calc(var(--ct) * var(--u) * -1); bottom: 0; background: rgba(204, 153, 74, .90); border-radius: 5px 5px 0 0; pointer-events: none; }
.ps-cur span { display: flex; align-items: center; justify-content: center; height: calc(var(--ct) * var(--u)); background: #cc994a; border-radius: 5px 5px 0 0; color: #fff; font-weight: 700; font-size: max(10px, calc(15 * var(--u))); line-height: 1.22; letter-spacing: 0; text-transform: uppercase; }

/* poznamky pod tabulkou */
.ps-policy { font-size: max(12px, calc(15 * var(--u))); line-height: 1.5; letter-spacing: .3px; color: var(--c-navy); text-transform: uppercase; }
.ps-policy strong { font-weight: 700; }
.ps-policy span { font-weight: 400; }
.ps-policy--b span { font-weight: 500; }

/* rada odkazu (FULL PRICELIST / RENTALS / MAP / FAQ) */
.ps-links__nav { display: flex; justify-content: space-between; gap: calc(36 * var(--u)); padding-left: calc(3 * var(--u)); }
.ps-links__nav a { flex: 0 1 calc(402 * var(--u)); display: flex; align-items: center; justify-content: center; height: calc(76 * var(--u)); min-height: 48px; border-radius: 7px; background: var(--c-navy-2); color: #fff; font-weight: 700; font-size: max(13px, calc(20 * var(--u))); text-transform: uppercase; text-align: center; padding-inline: 8px; transition: background-color .2s, color .2s; }
.ps-links__nav a:hover { background: var(--c-gold); }

/* ---------------------------------------------------------------- karta s vyhodami passu (Figma Group 324: 1725x706) */
.ps-feat { position: relative; margin-right: calc(4 * var(--u)); background: var(--c-navy); border-radius: 7px; color: #fff; padding-left: calc(86 * var(--u)); letter-spacing: 0; }
.ps-feat__t { position: relative; width: 100%; border-collapse: collapse; table-layout: fixed; }
.ps-feat__t th, .ps-feat__t td { padding: 0; font-weight: 500; text-align: left; vertical-align: middle; }
.ps-feat__t thead td, .ps-feat__t thead th { height: calc(159 * var(--u)); vertical-align: top; }
.ps-feat__introtx { display: block; max-width: max(260px, calc(399 * var(--u))); }
.ps-feat__intro { padding-top: calc(48 * var(--u)) !important; font-size: max(12px, calc(15 * var(--u))); line-height: calc(18.3 / 15); }
.ps-feat__intro strong { font-weight: 700; }
.ps-feat__plan { padding: calc(46 * var(--u)) 0 0 !important; text-align: center !important; }
.ps-feat__name { display: block; font-weight: 700; font-size: max(17px, calc(26 * var(--u))); line-height: calc(31.7 / 26); text-transform: uppercase; }
.ps-feat__from { display: block; margin-top: calc(12 * var(--u)); font-weight: 500; font-size: max(16px, calc(24 * var(--u))); line-height: calc(29.3 / 24); }
.ps-feat__t tbody tr { height: calc(57 * var(--u)); border-top: 1px solid rgba(255, 255, 255, .41); }
.ps-feat__t tbody tr:first-child { height: calc(65 * var(--u)); }
.ps-feat__t tbody tr:last-child { border-bottom: 1px solid rgba(255, 255, 255, .41); }
.ps-feat__t tbody th { font-size: max(14px, calc(20 * var(--u))); line-height: calc(24.4 / 20); }
.ps-feat__t tbody td { text-align: center; }
.ps-feat__note { margin-left: calc(18 * var(--u)); font-size: max(11px, calc(12 * var(--u))); font-style: italic; font-weight: 500; }
.ps-check { display: inline-block; width: calc(31 * var(--u)); min-width: 20px; height: auto; vertical-align: middle; }
.ps-feat__val { font-weight: 700; font-size: max(12px, calc(15 * var(--u))); }
.ps-feat__t tfoot td { height: calc(140 * var(--u)); text-align: center; padding: calc(41 * var(--u)) 0 calc(47 * var(--u)); vertical-align: top; }
.ps-feat__buy { display: inline-flex; align-items: center; justify-content: center; width: calc(198 * var(--u)); min-width: 120px; height: calc(52 * var(--u)); min-height: 40px; border-radius: 7px; color: #fff; font-weight: 700; font-size: max(14px, calc(20 * var(--u))); text-transform: uppercase; transition: background-color .2s, color .2s; }
.ps-feat__buy { background: var(--c-navy); }
.ps-feat__buy:hover { background: #fff; color: var(--c-navy); }

/* ---------------------------------------------------------------- ceny podle veku (Figma "Pricing table / Age categories" 351x344) */
.ps-ages { border-collapse: separate; border-spacing: calc(8 * var(--u)); margin: calc(-21 * var(--u)) calc(143 * var(--u)) calc(-8 * var(--u)) auto; color: #fff; text-align: center; letter-spacing: .3px; }
.ps-ages th, .ps-ages td { width: calc(172 * var(--u)); height: calc(80 * var(--u)); padding: 0 calc(8 * var(--u)); border-radius: 8px; background: var(--c-navy); vertical-align: middle; }
.ps-ages--gold th, .ps-ages--gold td { background: #cc994a; }
.ps-ages__c { display: block; font-weight: 700; font-size: max(13px, calc(16 * var(--u))); line-height: calc(22 / 16); text-transform: uppercase; }
.ps-ages__a { display: block; margin-top: 2px; font-weight: 500; font-size: max(12px, calc(14 * var(--u))); line-height: calc(20 / 14); }
.ps-ages td { font-weight: 500; font-size: max(13px, calc(16 * var(--u))); line-height: 1.5; }

/* ---------------------------------------------------------------- nadpis + podtitul nad tabulkou */
.ps-prices__h { line-height: calc(90 / 45); }
.ps-prices__sub { margin-top: calc(-13 * var(--u)); font-weight: 500; font-size: max(13px, calc(20 * var(--u))); line-height: calc(24.4 / 20); color: var(--c-navy-2); text-transform: uppercase; }
.ps-prices .ps-tbl { margin-top: calc(96 * var(--u)); }
.ps-prices__note { margin-top: calc(19 * var(--u)); font-weight: 400; font-size: max(13px, calc(16 * var(--u))); line-height: calc(30 / 16); letter-spacing: .3px; color: var(--c-navy-4); }

@media (max-width: 1023px) {
  .ps-ages { margin: 24px 0 0 -8px; }
}
@media (max-width: 767px) {
  .ps-feat { padding-left: 16px; margin-right: 0; }
  .ps-feat__t thead td, .ps-feat__t thead th { height: auto; }
  .ps-feat__intro { padding: 20px 12px 16px 0 !important; }
  .ps-feat__plan { padding: 20px 8px 16px !important; }
  .ps-feat .ps-cur { display: none; }
  .ps-feat .ps-feat__buy { background: var(--c-gold); }
  .ps-feat col:nth-child(1) { width: 58% !important; }
  .ps-feat col:nth-child(2) { width: 42% !important; }
  .ps-feat col:nth-child(3) { width: 0 !important; }
  .ps-feat__t tbody tr, .ps-feat__t tbody tr:first-child { height: 52px; }
  .ps-feat__note { display: block; margin: 2px 0 0; }
  .ps-feat__t tfoot td { padding-top: 20px; padding-bottom: 24px; height: auto; }
  .ps-prices .ps-tbl { margin-top: 24px; }
  .ps-prices__sub { margin-top: 4px; }
  .ps-prices__h { line-height: 1.15; }
}

@media (max-width: 1279px) {
  .ps-sec { padding-inline: var(--gut); }
}
@media (max-width: 1023px) {
  .ps-tbl .ps-tbl__t td.ps-tbl__buy, .ps-tbl .ps-tbl__t th.ps-tbl__buy { padding: 0 8px; }
  .ps-tbl .ps-buy { width: 100%; min-width: 0; padding: 0 6px; }
}
@media (max-width: 767px) {
  .ps-tbl { padding: 0; background: none; }
  .ps-cur { display: none; }
  .ps-tbl .cs-paycard { background: var(--c-navy); color: #fff; border-radius: 7px; padding: 16px 16px 18px; }
  .ps-tbl .cs-paycard__t { font-weight: 700; font-size: 17px; line-height: 1.25; text-transform: uppercase; margin-bottom: 10px; }
  .ps-tbl .cs-paycard dl { display: grid; grid-template-columns: 1fr auto; gap: 0; font-size: 15px; line-height: 1.3; }
  .ps-tbl .cs-paycard dt, .ps-tbl .cs-paycard dd { padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, .41); }
  .ps-tbl .cs-paycard dt { font-weight: 500; }
  .ps-tbl .cs-paycard dd { font-weight: 700; text-align: right; padding-left: 16px; }
  .ps-tbl .cs-paycard .ps-buy { width: 100%; height: 44px; margin-top: 12px; font-size: 14px; }
  .ps-links__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-left: 0; }
}
