/* =====================================================================
   A KIND OF SKI TRIP — /ski/trips/{type}.

   A sticky contents rail beside a long column, laid out after the reference
   but in the ski pages' own navy, gold and warm white rather than the
   reference's blue. Prefix .skt2- throughout (.skt- is the tickets pages).
   ===================================================================== */

/* --------------------------------- hero --------------------------------- */
.skt2-hero { position: relative; display: flex; align-items: flex-end; min-height: clamp(200px, 24vw, 320px); overflow: hidden; background: var(--skl-sky-soft); }
.skt2-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* A scrim rather than a flat tint, so the photograph still reads behind the
   words at the foot of it. */
.skt2-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20, 34, 44, .88) 0%, rgba(20, 34, 44, .35) 55%, rgba(20, 34, 44, .1) 100%); }
.skt2-hero__in { position: relative; z-index: 1; padding-block: clamp(20px, 3vw, 40px); color: #FFFFFF; }
.skt2-hero__kicker { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--skl-gold); }
.skt2-hero__title {
  margin: 6px 0 4px;
  font-family: var(--skl-head);
  font-size: clamp(1.9rem, 4vw, 3.2rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.skt2-hero__sub { margin: 0; font-size: clamp(.9rem, 1.2vw, 1.05rem); opacity: .9; }

/* ------------------------------ breadcrumb ------------------------------ */
.skt2-crumbs { padding: clamp(14px, 1.8vw, 20px) 0; }
.skt2-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.skt2-crumbs li { display: flex; align-items: center; gap: 8px; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--skl-muted); }
.skt2-crumbs li + li::before { content: '›'; color: var(--skl-line); }
.skt2-crumbs a { color: var(--skl-muted); text-decoration: none; }
.skt2-crumbs a:hover { color: var(--skl-navy); }
.skt2-crumbs [aria-current] { color: var(--skl-ink); }

/* -------------------------------- the grid -------------------------------- */
/* One rhythm for the whole block: the same space above the first section as
   below the last, so the column is not crowded under the breadcrumb at one
   end and adrift at the other. */
.skt2-grid {
  display: grid;
  grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
  gap: clamp(24px, 3.4vw, 56px);
  align-items: start;
  padding-block: clamp(24px, 3.2vw, 46px) clamp(34px, 4.4vw, 68px);
}
/* The rail's first link and the column's first heading start on one line. */
.skt2-col > .skt2-sec:first-child { padding-top: 0; }
.skt2-col > .skt2-sec:last-child { padding-bottom: 0; }

/* ------------------------------ contents rail ------------------------------ */
/* The cell has to span the whole row for the box inside it to travel: the
   grid starts its items at the top, so the rail's own cell ended level with
   its last link and the sticky box stopped dead a screen down the page. */
.skt2-rail { align-self: stretch; }
/* No side walls: the rail is a list of links, not a boxed card, so only a
   hairline down the left holds the column together and marks where you are.
   The links then sit on the page's own white rather than inside a panel. */
.skt2-rail__in {
  position: sticky;
  top: 90px;
  border-left: 1px solid var(--skl-line);
  background: transparent;
}
.skt2-rail__list { margin: 0; padding: 0; list-style: none; }
.skt2-rail__list a {
  display: block;
  padding: 9px 16px;
  border-left: 3px solid transparent;
  font-size: .86rem;
  color: var(--skl-ink);
  text-decoration: none;
  transition: background-color .2s var(--skl-ease), color .2s var(--skl-ease), border-color .2s var(--skl-ease);
}
.skt2-rail__list a:hover { background: #F4F6F7; color: var(--skl-navy); }
/* The section in view is marked, so the rail says where you are rather than
   only where you can go. */
.skt2-rail__list a.is-on { border-left-color: var(--skl-gold); background: #F4F6F7; font-weight: 700; color: var(--skl-navy); }

/* Clear of the last link, and inset to the same line the links start on, so
   the block reads as part of the rail rather than bolted under it. */
.skt2-help { margin: 22px 0 0 1px; padding: 16px 18px 18px; border-radius: 6px; background: var(--skl-navy); color: #FFFFFF; }
.skt2-help b { display: block; font-size: .92rem; line-height: 1.4; }
.skt2-help__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  padding: 11px 10px;
  border: 1.5px solid #FFFFFF;
  border-radius: 3px;
  /* Sized to keep "Connect with an expert" on one line in a 260px rail. */
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  white-space: nowrap;
  text-transform: uppercase;
  text-align: center;
  color: #FFFFFF;
  text-decoration: none;
  transition: background-color .2s var(--skl-ease), color .2s var(--skl-ease);
}
.skt2-help__btn svg { width: 15px; height: 15px; }
.skt2-help__btn:hover { background: #FFFFFF; color: var(--skl-navy); }

/* ------------------------------- the column ------------------------------- */
.skt2-col { min-width: 0; }
.skt2-sec { padding-bottom: clamp(30px, 3.6vw, 52px); scroll-margin-top: 90px; }

.skt2-h2 {
  margin: 0 0 14px;
  font-family: var(--skl-head);
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--skl-navy);
}
/* The reference underlines this kind of heading with a short rule. */
.skt2-h2--rule { padding-bottom: 10px; border-bottom: 3px solid var(--skl-gold); }
.skt2-h2--rule::after { content: none; }
.skt2-eyebrow { margin: 0 0 16px; font-size: .95rem; font-weight: 700; color: var(--skl-navy); }

.skt2-prose { margin: 0 0 16px; }
.skt2-prose p { margin: 0 0 12px; font-size: .92rem; line-height: 1.8; color: var(--skl-muted); }
.skt2-showmore { padding: 0; border: 0; background: none; font: inherit; font-size: .88rem; font-weight: 600; color: var(--skl-navy); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.skt2-showmore:hover { color: var(--skl-gold); }
.skt2-fine { margin: 14px 0 0; font-size: .82rem; line-height: 1.65; color: var(--skl-muted); }
.skt2-fine a { color: var(--skl-navy); font-weight: 600; }

/* --------------------------------- buttons --------------------------------- */
.skt2-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 18px;
  border: 1.5px solid var(--skl-navy);
  border-radius: 3px;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--skl-navy);
  background: transparent;
  cursor: pointer;
  transition: background-color .2s var(--skl-ease), color .2s var(--skl-ease);
}
.skt2-btn svg { width: 13px; height: 13px; }
.skt2-btn:hover { background: var(--skl-navy); color: #FFFFFF; }
.skt2-btn:focus-visible { outline: 2px solid var(--skl-gold); outline-offset: 3px; }
.skt2-btn--solid { background: var(--skl-navy); color: #FFFFFF; }
.skt2-btn--solid:hover { background: var(--skl-gold); border-color: var(--skl-gold); }

/* ----------------------------- what we can book ----------------------------- */
.skt2-book {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  margin: 0;
  padding: clamp(16px, 2vw, 24px);
  list-style: none;
  border-radius: 8px;
  background: linear-gradient(115deg, #1f3441, #3c5564);
}
.skt2-book li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; color: #FFFFFF; }
.skt2-book__ic { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, .12); color: var(--skl-gold); }
.skt2-book__ic svg { width: 19px; height: 19px; }
.skt2-book b { font-size: .88rem; font-weight: 600; }

/* ---------------------------------- cards ---------------------------------- */
.skt2-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 22px); margin: 0 0 18px; padding: 0; list-style: none; }
.skt2-card a { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--skl-ink); }
.skt2-card__img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 5px; background: var(--skl-sky-soft); }
.skt2-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--skl-ease); }
.skt2-card a:hover img { transform: scale(1.05); }
.skt2-card__flag { position: absolute; top: 8px; left: 8px; padding: 4px 8px; border-radius: 3px; background: var(--skl-gold); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #FFFFFF; }
.skt2-card__name { margin-top: 10px; font-size: .9rem; font-weight: 700; line-height: 1.35; color: var(--skl-navy); }
.skt2-card a:hover .skt2-card__name { color: var(--skl-gold); }
.skt2-card__meta { margin-top: 3px; font-size: .76rem; color: var(--skl-muted); }
/* Pushed to the foot so the prices of a row sit on one line. */
.skt2-card__price { margin-top: auto; padding-top: 8px; font-size: .82rem; font-weight: 700; color: var(--skl-navy); }

/* ---------------------------------- deals ---------------------------------- */
.skt2-deal { display: grid; grid-template-columns: minmax(0, 42%) minmax(0, 1fr); gap: clamp(16px, 2.2vw, 30px); align-items: center; padding: clamp(16px, 2vw, 24px) 0; border-bottom: 1px solid var(--skl-line); }
.skt2-deal--flip .skt2-deal__img { order: 2; }
.skt2-deal__img { display: block; aspect-ratio: 4 / 2.6; overflow: hidden; border-radius: 5px; background: var(--skl-sky-soft); }
.skt2-deal__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--skl-ease); }
.skt2-deal:hover .skt2-deal__img img { transform: scale(1.04); }
.skt2-deal__name { margin: 0 0 8px; font-family: var(--skl-head); font-size: clamp(1.1rem, 1.7vw, 1.4rem); font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--skl-navy); }
.skt2-deal__text { margin: 0 0 14px; font-size: .88rem; line-height: 1.7; color: var(--skl-muted); }
.skt2-deal__text b { color: var(--skl-ink); font-style: italic; }
.skt2-deal__cta { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }

/* ------------------------------- stay kinds ------------------------------- */
.skt2-kinds { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin: 22px 0; padding: 0; list-style: none; }
.skt2-kinds a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 6px; border: 1px solid var(--skl-line); border-radius: 6px; text-align: center; text-decoration: none; color: var(--skl-navy); transition: border-color .2s var(--skl-ease), background-color .2s var(--skl-ease); }
.skt2-kinds a:hover { border-color: var(--skl-navy); background: #F4F6F7; }
.skt2-kinds__ic { display: grid; place-items: center; width: 40px; height: 40px; color: var(--skl-navy); }
.skt2-kinds__ic svg { width: 30px; height: 30px; }
.skt2-kinds b { font-size: .74rem; font-weight: 700; letter-spacing: .04em; }

/* --------------------------------- questions --------------------------------- */
.skt2-faqs { border-top: 1px solid var(--skl-line); }
.skt2-faq { border-bottom: 1px solid var(--skl-line); }
.skt2-faq summary { padding: 14px 2px; font-size: .92rem; font-weight: 700; color: var(--skl-navy); cursor: pointer; list-style: none; }
.skt2-faq summary::-webkit-details-marker { display: none; }
.skt2-faq summary::after { content: '+'; float: right; color: var(--skl-gold); font-size: 1.15rem; line-height: 1; }
.skt2-faq[open] summary::after { content: '−'; }
.skt2-faq__a { padding: 0 2px 16px; font-size: .88rem; line-height: 1.75; color: var(--skl-muted); }

/* ------------------------------- other trips ------------------------------- */
.skt2-others { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.skt2-others a { display: flex; flex-direction: column; gap: 2px; padding: 13px 16px; border: 1px solid var(--skl-line); border-radius: 5px; text-decoration: none; transition: border-color .2s var(--skl-ease); }
.skt2-others a:hover { border-color: var(--skl-navy); }
.skt2-others b { font-size: .9rem; color: var(--skl-navy); }
.skt2-others small { font-size: .78rem; color: var(--skl-muted); }

/* ------------------------------- responsive ------------------------------- */
@media (max-width: 1024px) {
  /* The rail stops being a sidebar and becomes a row of links above the
     column — sticky is no use once it is full width. */
  .skt2-grid { grid-template-columns: minmax(0, 1fr); }
  /* Full width, the hairline down the left has nothing to hold together. */
  .skt2-rail__in { position: static; border-left: 0; }
  .skt2-rail__list { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 0 4px; }
  .skt2-help { margin-left: 0; }
  .skt2-rail__list a { border-left: 0; border-radius: 999px; padding: 7px 14px; font-size: .8rem; }
  .skt2-rail__list a.is-on { border-left: 0; background: var(--skl-navy); color: #FFFFFF; }
  .skt2-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .skt2-book { grid-template-columns: minmax(0, 1fr); }
  .skt2-deal { grid-template-columns: minmax(0, 1fr); }
  /* Stacked, the picture always leads. */
  .skt2-deal--flip .skt2-deal__img { order: 0; }
  .skt2-kinds { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .skt2-others { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .skt2-cards { grid-template-columns: minmax(0, 1fr); }
  .skt2-kinds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .skt2-card__img img, .skt2-deal__img img { transition: none; }
}
