/* Summer (Figma 322:237) + Winter (376:1294) + spolecne bloky pro Plan your visit (325:392).
   Hodnoty v calc(N * var(--u)) = design px pri 1920. Prefix ss-. */

/* ---------------------------------------------------------------- HERO + zalozka sezony */
.ss-hero { position: relative; height: calc(716 * var(--u)); min-height: 340px; overflow: hidden; background: var(--c-navy-3); }
.ss-hero--winter { height: calc(724 * var(--u)); }
.ss-hero__media { position: absolute; inset: 0; }
.ss-hero__media img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }
.ss-hero--summer .ss-hero__media::after { content: ""; position: absolute; inset: 0; background: rgba(216, 152, 61, .21); } /* Figma fill #d8983d/0.21 */
.ss-hero--winter .ss-hero__media img { top: calc(3 * var(--u)); height: calc(1281 * var(--u)); object-position: 50% 0; }
.ss-hero__tab { position: absolute; z-index: 2; left: calc(105 * var(--u)); bottom: 0; width: calc(354 * var(--u)); min-width: 190px; height: calc(93 * var(--u)); min-height: 56px; background: var(--c-navy-3); border-radius: 10px 10px 0 0; }
.ss-hero__h { position: absolute; left: calc(53 * var(--u)); top: calc(22 * var(--u)); font-weight: 900; font-size: max(28px, calc(50 * var(--u))); line-height: 1; letter-spacing: 0; text-transform: uppercase; color: var(--c-gold); }
.ss-hero__tab::after { content: ""; position: absolute; left: calc(53 * var(--u)); top: calc(83 * var(--u)); width: calc(71 * var(--u)); height: max(4px, calc(6 * var(--u))); background: var(--c-gold); }
.ss-hero--winter .ss-hero__h { left: calc(64 * var(--u)); top: calc(26 * var(--u)); color: #fff; }
.ss-hero--winter .ss-hero__tab::after { left: calc(64 * var(--u)); top: calc(90 * var(--u)); background: #fff; }

/* ---------------------------------------------------------------- spolecne pozadi Stay + Programs */
.ss-land { position: relative; isolation: isolate; color: #fff; }
.ss-land__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.ss-land__bg img { width: 100%; height: 100%; object-fit: cover; }
.ss-land__bg::after { content: ""; position: absolute; inset: 0; }
.ss-land--summer .ss-land__bg::after { background: rgba(80, 50, 0, .47); }   /* #503200/0.47 */
.ss-land--winter .ss-land__bg::after { background: rgba(14, 41, 110, .42); }  /* #0e296e/0.42 */

/* ---------------------------------------------------------------- WHERE TO STAY */
.ss-stay { --gx: 102; --gy: 134; --gw: 564; --gh: 553; --gp: 36; --rx: 694; --ry: 322; position: relative; height: calc(1003 * var(--u)); }
.ss-stay--winter { --gy: 130; --gw: 578; --gh: 538; --gp: 50; --rx: 721; --ry: 314; height: calc(995 * var(--u)); }
.ss-stay--plan { --gx: 74; --gy: 69; --gw: 578; --gh: 620; --gp: 50; --rx: 691; --ry: 137; height: calc(972 * var(--u)); }
.ss-stay__glass { position: absolute; left: calc(var(--gx) * var(--u)); top: calc(var(--gy) * var(--u)); width: calc(var(--gw) * var(--u)); min-height: calc(var(--gh) * var(--u)); padding: calc(55 * var(--u)) calc(30 * var(--u)) calc(40 * var(--u)) calc(var(--gp) * var(--u)); border-radius: 10px; background: rgba(204, 154, 74, .65); color: #fff; }
.ss-stay--winter .ss-stay__glass { padding-top: calc(56 * var(--u)); background: rgba(0, 23, 122, .65); }
.ss-stay--plan .ss-stay__glass { padding-top: calc(56 * var(--u)); background: rgba(255, 255, 255, .65); color: var(--c-navy); }
.ss-stay__h { max-width: calc(484 * var(--u)); font-size: max(28px, calc(52 * var(--u))); line-height: calc(55 / 52); }
.ss-stay__h em { font-size: calc(42 / 52 * 1em); }
.ss-stay--summer .ss-stay__h { font-size: max(26px, calc(45 * var(--u))); line-height: calc(55 / 45); }
.ss-stay--summer .ss-stay__h em { font-size: calc(42 / 45 * 1em); }
.ss-stay__p { max-width: calc(465 * var(--u)); margin-top: calc(26 * var(--u)); font-weight: 500; font-size: max(14px, calc(16 * var(--u))); line-height: calc(26 / 16); letter-spacing: .3px; }
.ss-stay--summer .ss-stay__p { max-width: calc(444 * var(--u)); }
.ss-stay__p p + p { margin-top: calc(26 * var(--u)); }
.ss-stay__pill { min-width: calc(196 * var(--u)); margin: calc(40 * var(--u)) 0 0 calc(5 * var(--u)); border-width: 2px; }
.ss-stay--summer .ss-stay__pill { min-width: calc(208 * var(--u)); margin-top: calc(25 * var(--u)); border-width: 3px; }
.ss-stay__rail { --gap: calc(22 * var(--u)); position: absolute; left: calc(var(--rx) * var(--u)); right: 0; top: calc(var(--ry) * var(--u)); align-items: flex-start; }
.ss-stcard { position: relative; display: block; width: calc(323 * var(--u)); min-width: 200px; height: calc(681 * var(--u)); min-height: 420px; border-radius: 10px; overflow: hidden; isolation: isolate; color: #fff; }
.ss-stcard > img:first-child { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s var(--ease); }
.ss-stcard::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; box-shadow: inset 0 0 56.5px rgba(0, 0, 0, .40); }
.ss-stcard--cormorant-rock::before { background: rgba(0, 0, 0, .20); }
.ss-stcard:hover > img:first-child { transform: scale(1.04); }
.ss-stcard__logo { position: absolute; left: 50%; transform: translateX(-50%); color: #fff; height: auto; }
.ss-stcard__logo--cr { top: calc(43 * var(--u)); width: calc(166 * var(--u)); }
.ss-stcard__logo--lhh { top: calc(31 * var(--u)); width: calc(192 * var(--u)); }
.ss-stcard__logo--rh { top: calc(43 * var(--u)); width: calc(155 * var(--u)); }
.ss-stay--winter .ss-stcard__logo--lhh, .ss-stay--plan .ss-stcard__logo--lhh { top: calc(29 * var(--u)); }
.ss-stay--winter .ss-stcard__logo--rh, .ss-stay--plan .ss-stcard__logo--rh { top: calc(41 * var(--u)); }
.ss-stcard__label { position: absolute; left: 0; right: 0; bottom: calc(21 * var(--u)); padding: 0 8px; text-align: center; font-weight: 900; font-size: max(13px, calc(16 * var(--u))); line-height: calc(19.5 / 16); text-transform: uppercase; }
.ss-stcard--soon { width: calc(215 * var(--u)); min-width: 160px; height: calc(453 * var(--u)); min-height: 300px; margin-top: calc(114 * var(--u)); }
.ss-stcard--soon .ss-stcard__label { bottom: calc(17 * var(--u)); }
.ss-stcard__soon { position: absolute; left: 0; right: 0; top: calc(45 * var(--u)); text-align: center; font-weight: 700; font-size: max(18px, calc(28 * var(--u))); line-height: calc(34.1 / 28); text-transform: uppercase; }
.ss-stay--winter .ss-stcard__soon { font-weight: 900; }
.ss-stay--plan .ss-stcard__label { font-weight: 700; }
.ss-stay--plan .ss-stcard__soon { font-weight: 800; font-size: max(15px, calc(19 * var(--u))); line-height: calc(23.2 / 19); }

/* ---------------------------------------------------------------- PLAN YOUR VISIT ON MOUNTAIN / ON SNOW (programs-grid) */
.ss-progs { padding: calc(80 * var(--u)) calc(102 * var(--u)) calc(176 * var(--u)); }
.ss-progs__eyebrow, .pv-mtn__eyebrow { font-weight: 800; font-size: max(10px, calc(11 * var(--u))); line-height: calc(13.4 / 11); letter-spacing: 1.4px; text-transform: uppercase; color: var(--c-gold); }
.ss-progs__h { margin-top: calc(12 * var(--u)); font-weight: 800; font-size: max(26px, calc(45 * var(--u))); line-height: calc(46 / 45); letter-spacing: .3px; text-transform: uppercase; }
.ss-progs__h em { font-weight: 400; font-size: calc(42 / 45 * 1em); }
.ss-progs__grid { display: grid; grid-template-columns: repeat(4, calc(402 * var(--u))); gap: calc(24 * var(--u)); margin-top: calc(40 * var(--u)); }
.ss-prog { display: flex; flex-direction: column; min-height: calc(316 * var(--u)); padding: calc(32 * var(--u)); border: 1px solid rgba(255, 255, 255, .08); border-radius: 7px; background: #cc9a4a; color: #fff; transition: filter .2s, transform .3s var(--ease); }
.ss-progs--winter .ss-prog, .pv-mtn .ss-prog { background: var(--c-navy); }
.ss-prog:hover { filter: brightness(1.08); transform: translateY(-3px); }
.ss-prog__ico { display: grid; place-items: center; width: max(44px, calc(56 * var(--u))); height: max(44px, calc(56 * var(--u))); border-radius: 16px; background: rgba(255, 255, 255, .30); }
.ss-prog__ico .cs-ico { width: 24px; height: 24px; }
.ss-prog__t { margin-top: calc(20 * var(--u)); font-weight: 800; font-size: max(20px, calc(28 * var(--u))); line-height: calc(34 / 28); text-transform: uppercase; }
.ss-prog__p { margin-top: calc(12 * var(--u)); max-width: calc(338 * var(--u) + 10px); font-weight: 500; font-size: max(14px, calc(16 * var(--u))); line-height: 1.5; letter-spacing: .3px; }

/* ---------------------------------------------------------------- BILA CAST (ceniky) */
.ss-white { background: #fff; color: var(--c-navy-2); letter-spacing: 0; padding: calc(102 * var(--u)) 0 calc(155 * var(--u)); }
.ss-white--winter { background: #f8f8f8; padding: calc(108 * var(--u)) 0 calc(215 * var(--u)); }

/* zlata zalozka "CURRENT PRICE" nad sloupcem aktualni ceny */
.ss-tab { position: absolute; left: calc(var(--tx) * var(--u)); bottom: 100%; width: calc(var(--tw) * var(--u)); height: calc(var(--th, 54) * var(--u)); display: flex; align-items: center; justify-content: center; border-radius: 5px 5px 0 0; background: #cc994a; color: #fff; font-weight: 700; font-size: max(11px, calc(15 * var(--u))); line-height: 1.22; text-transform: uppercase; }

/* tabulka vyhod permanentky */
.ss-feat { padding-left: calc(var(--bx) * var(--u)); }
.ss-feat__h, .ss-prices__h { font-weight: 700; font-size: max(26px, calc(45 * var(--u))); line-height: calc(54.9 / 45); text-transform: uppercase; color: var(--c-navy-2); margin: 0 0 calc(26 * var(--u)) calc(1 * var(--u)); }
.ss-feat__box, .ss-prices__box { position: relative; width: calc(var(--bw) * var(--u)); padding-left: calc(var(--pl) * var(--u)); border-radius: 7px; background: var(--c-navy); color: #fff; }
.ss-ftable, .ss-ptable { width: 100%; table-layout: fixed; }
.ss-ftable thead tr { height: calc(var(--hh) * var(--u)); }
.ss-ftable tbody tr { height: calc(var(--rh) * var(--u)); }
.ss-ftable tbody tr:first-child { height: calc(var(--fh) * var(--u)); }
.ss-ftable tbody tr.ss-ftable__buy { height: calc(var(--bh) * var(--u)); }
.ss-ftable thead td, .ss-ftable thead th { vertical-align: top; padding: calc(48 * var(--u)) 0 0; }
.ss-ftable__desc { font-weight: 500; font-size: max(13px, calc(15 * var(--u))); line-height: calc(18.3 / 15); }
.ss-ftable__desc > span { display: block; max-width: max(260px, calc(399 * var(--u))); }
.ss-ftable__desc strong { font-weight: 700; }
.ss-ftable thead th { padding-top: calc(46 * var(--u)); text-align: center; }
.ss-ftable__name { display: block; font-weight: 700; font-size: max(18px, calc(26 * var(--u))); line-height: calc(31.7 / 26); text-transform: uppercase; }
.ss-ftable__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); }
.ss-feat--winter .ss-ftable__name { font-size: max(22px, calc(36 * var(--u))); line-height: calc(43.9 / 36); text-transform: none; }
.ss-feat--winter .ss-ftable__from { margin-top: 0; }
.ss-ftable .is-cur, .ss-ptable .is-cur { background: rgba(204, 153, 74, .90); }
.ss-ftable tbody th, .ss-ftable tbody td { border-top: 1px solid rgba(255, 255, 255, .41); }
.ss-ftable tbody th { text-align: left; font-weight: 500; font-size: max(14px, calc(20 * var(--u))); line-height: calc(24.4 / 20); }
.ss-ftable__note { margin-left: calc(18 * var(--u)); font-weight: 500; font-size: max(10px, calc(12 * var(--u))); font-style: italic; }
.ss-ftable tbody td.is-cur { text-align: center; font-weight: 700; font-size: max(12px, calc(15 * var(--u))); }
.ss-ftable__check { display: inline-block; width: calc(31 * var(--u)); min-width: 22px; height: auto; vertical-align: middle; }
.ss-ftable__buy td { vertical-align: top; padding-top: calc(34 * var(--u)); }
.ss-feat--winter .ss-ftable__buy td { padding-top: calc(35 * var(--u)); }
.ss-ftable__buy td:first-child { position: relative; }
.ss-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: #cc994a; color: #fff; font-weight: 700; font-size: max(13px, calc(20 * var(--u))); line-height: 1.22; text-transform: uppercase; white-space: nowrap; transition: background-color .2s, color .2s; }
.ss-buy:hover { background: #fff; color: var(--c-navy); }
.ss-buy--navy { width: calc(198 * var(--u)); height: calc(52 * var(--u)); background: var(--c-navy); }
.ss-buy--navy:hover { background: #fff; color: var(--c-navy); }

/* cenik podle obdobi */
.ss-prices { padding-left: calc(var(--bx) * var(--u)); margin-top: calc(var(--mt, 0) * var(--u)); }
.ss-prices__h { line-height: calc(90 / 45); margin: 0 0 0 calc((var(--hx) - var(--bx)) * var(--u)); }
.ss-prices__lead { margin: calc(-13 * var(--u)) 0 calc(var(--lg, 23) * var(--u)) calc((var(--hx) - var(--bx) + 1) * var(--u)); font-weight: 500; font-size: max(13px, calc(20 * var(--u))); line-height: calc(24.4 / 20); text-transform: uppercase; color: var(--c-navy-2); }
.ss-prices__box { padding-bottom: calc(var(--pb) * var(--u)); }
.ss-ptable th, .ss-ptable td { padding: 0; font-size: max(13px, calc(20 * var(--u))); line-height: calc(24.4 / 20); }
.ss-ptable thead th { font-weight: 500; text-align: center; }
.ss-ptable tbody th { text-align: left; font-weight: 500; }
.ss-ptable tbody td { text-align: center; font-weight: 700; }
.ss-ptable tbody th, .ss-ptable tbody td { border-top: 1px solid rgba(255, 255, 255, .41); }
.ss-ptable tbody td:last-child { text-align: left; padding-left: calc(var(--bp) * var(--u)); }
.ss-prices__notes { margin-top: calc(19 * var(--u)); }
.ss-prices__note { max-width: max(300px, calc(465 * 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); }
.ss-policy { max-width: calc(574 * var(--u) + 40px); font-weight: 700; font-size: max(12px, calc(15 * var(--u))); line-height: calc(22.5 / 15); letter-spacing: .3px; text-transform: uppercase; color: var(--c-navy); }
.ss-policy--w500 { font-weight: 500; }
.ss-policy--w400 { font-weight: 400; }

/* ceny podle veku */
.ss-ages { --ax: 105; --aw: 1227; display: grid; grid-template-columns: calc(var(--aw) * var(--u)) auto; align-items: start; padding-left: calc(var(--ax) * var(--u)); margin-top: calc(113 * var(--u)); }
.ss-ages__txt { padding-top: calc(12 * var(--u)); }
.ss-ages__h { max-width: calc(548 * var(--u) + 10px); font-weight: 700; font-size: max(26px, calc(45 * var(--u))); line-height: calc(51.6 / 45); letter-spacing: .3px; text-transform: uppercase; color: var(--c-navy); }
.ss-ages__p { max-width: calc(465 * var(--u) + 20px); margin-top: calc(19 * var(--u)); font-weight: 500; font-size: max(14px, calc(17 * var(--u))); line-height: calc(27 / 17); letter-spacing: .3px; color: var(--c-navy-4); }
.ss-ages__policy { margin-top: calc(56 * var(--u)); }
.ss-age { justify-self: start; width: auto; border-collapse: separate; border-spacing: calc(8 * var(--u)); margin: calc(-8 * var(--u)); }
.ss-age th, .ss-age td { width: calc(172 * var(--u)); min-width: 120px; height: calc(80 * var(--u)); padding: calc(16 * var(--u)); border-radius: 8px; background: var(--c-navy); color: #fff; text-align: center; vertical-align: middle; }
.ss-age .ss-age--gold th, .ss-age .ss-age--gold td { background: #cc994a; }
.ss-age__cat { display: block; font-weight: 700; font-size: max(13px, calc(16 * var(--u))); line-height: calc(22 / 16); letter-spacing: .3px; text-transform: uppercase; }
.ss-age__age { display: block; margin-top: 2px; font-weight: 500; font-size: max(11px, calc(14 * var(--u))); line-height: calc(20 / 14); letter-spacing: .3px; }
.ss-age td { font-weight: 500; font-size: max(13px, calc(16 * var(--u))); line-height: 1.5; letter-spacing: .3px; }

/* rozcestnik pod ceniky */
.ss-links { display: flex; justify-content: space-between; width: calc(1724 * var(--u)); margin: calc(56 * var(--u)) 0 0 calc(108 * var(--u)); }
.ss-links__a { display: flex; align-items: center; justify-content: center; width: calc(402 * var(--u)); height: calc(76 * var(--u)); min-height: 48px; border-radius: 7px; background: var(--c-gold-3); color: #fff; font-weight: 700; font-size: max(14px, calc(20 * var(--u))); line-height: 1; text-transform: uppercase; transition: background-color .2s; }
.ss-links__a:hover { background: var(--c-navy); }

/* winter: logo East Peak Pass = Martock + Cape Smokey */
.ss-epp { position: absolute; left: calc(-72 * var(--u)); top: calc(-38 * var(--u)); width: calc(323 * var(--u)); height: auto; max-width: none; pointer-events: none; }
.ss-epp-cs { position: absolute; left: calc(270 * var(--u)); top: calc(52 * var(--u)); width: calc(140 * var(--u)); height: auto; color: #fff; }
.ss-policy--gap { margin-top: calc(26 * var(--u)); }
.ss-ages--winter { --ax: 77; --aw: 689; margin-top: calc(96 * var(--u)); }
.ss-ages--winter .ss-ages__txt { padding-top: 0; }
.ss-ages--winter .ss-ages__policy { margin-top: calc(27 * var(--u)); }
.ss-ages--winter .ss-age { margin-top: 0; }

/* mobilni karty cen (cs.js: table[data-cards] -> .cs-paycards) */
.ss-prices .cs-paycards { gap: 12px; }
.ss-prices .cs-paycard { padding: 18px 18px 20px; border-radius: 7px; background: var(--c-navy); color: #fff; }
.ss-prices .cs-paycard__t { font-weight: 700; font-size: 18px; text-transform: uppercase; }
.ss-prices .cs-paycard dl { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; margin: 12px 0 16px; font-size: 15px; }
.ss-prices .cs-paycard dd { margin: 0; font-weight: 700; text-align: right; }
.ss-prices .cs-paycard .ss-buy { width: 100%; }

/* ---------------------------------------------------------------- RESPONZIVITA */
@media (max-width: 1279px) {
  .ss-stay, .ss-stay--winter, .ss-stay--plan { height: auto; display: grid; gap: 32px; padding: 72px 0 72px; }
  .ss-stay__glass { position: static; width: auto; max-width: 620px; min-height: 0; margin: 0 var(--gut); padding: 36px 32px 32px; }
  .ss-stay__rail { position: static; padding-inline: var(--gut); scroll-padding-inline: var(--gut); }
  .ss-progs { padding: 72px var(--gut) 88px; }
  .ss-progs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .ss-prog { min-height: 220px; }
  .ss-white { padding: 72px 0 88px; }
  .ss-feat, .ss-prices, .ss-ages { padding-inline: var(--gut); }
  .ss-feat__box, .ss-prices__box { width: auto; padding-left: 24px; }
  .ss-feat__box { margin-top: calc(var(--th, 58) * var(--u)); }
  .ss-prices__box { margin-top: calc(54 * var(--u)); }
  .ss-ftable col, .ss-ptable col { width: auto !important; }
  .ss-ftable col:nth-child(2) { width: 30% !important; }
  .ss-ftable col:nth-child(3) { width: 24px !important; }
  .ss-ptable { table-layout: auto; }
  .ss-ptable tbody td:last-child { padding: 0 16px; }
  .ss-tab { display: none; }
  .ss-ages { grid-template-columns: 1fr; gap: 32px; margin-top: 72px; }
  .ss-age { margin: 0 -8px; }
  .ss-links { width: auto; margin: 48px var(--gut) 0; flex-wrap: wrap; gap: 16px; }
  .ss-links__a { width: calc(50% - 8px); }
  .ss-epp { position: static; display: block; width: 220px; margin: -40px 0 -50px -20px; }
  .ss-epp-cs { left: 240px; top: 50%; width: 90px; }
}
@media (max-width: 1023px) {
  .ss-hero__tab { left: var(--gut); }
  .ss-prices__h { line-height: 1.15; }
  .ss-prices__lead { margin: 6px 0 0; }
}
@media (max-width: 767px) {
  .ss-hero { min-height: 320px; }
  .ss-progs__grid { grid-template-columns: 1fr; }
  .ss-prog { min-height: 0; }
  .ss-stay__glass { padding: 28px 22px; }
  .ss-ftable thead td.ss-ftable__desc { padding-right: 12px; }
  .ss-ftable__note { display: block; margin: 4px 0 0; }
  .ss-ftable col:nth-child(2) { width: 42% !important; }
  .ss-ftable col:nth-child(3) { width: 0 !important; }
  .ss-ftable tr > :nth-child(3) { padding: 0; }
  .ss-ftable thead th { padding: 24px 8px 16px; }
  .ss-ftable__buy td.is-cur { padding: 20px 10px; }
  .ss-buy--navy { width: 100%; min-width: 0; }
  .ss-epp { width: 130px; margin: -14px 0 -20px -8px; }
  .ss-epp-cs { left: 128px; width: 64px; }
  .ss-ftable__buy td:first-child { padding-top: 12px; }
  .ss-prices .ss-prices__box { background: none; padding: 0; margin-top: 16px; }
  .ss-links__a { width: 100%; }
  .ss-age th, .ss-age td { width: 50%; }
}
