
@font-face {
  font-family: "Fictional";
  src: url("/assets/fonts/file.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}
@font-face {
  font-family: "Fixel";
  src: url("/assets/fonts/fixel.woff2") format("woff2"), url("/assets/fonts/file.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
*,
*::before,
*::after {
  box-sizing: border-box;
  border: 0;
  box-shadow: none;
  text-shadow: none;
  margin: 0;
  padding: 0;
}
* {
  scrollbar-width: none;
}
*::-webkit-scrollbar {
  display: none;
}
html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
}
html,
body {
  width: 100%;
  min-height: 100%;
}
ul,
ol {
  list-style: none;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
textarea,
select {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: inherit;
  font: inherit;
}
button {
  cursor: pointer;
}
img,
picture,
video,
svg,
canvas {
  display: block;
  max-width: 100%;
}
img {
  height: auto;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
:root {
  --black: #121212;
  --white: #ffffff;
  --green-500: #bada55;
  --green-600: #afcf4a;
  --blue-600: #0057e1;
  --blue-700: #004ac0;
  --blue-900: #152a4f;
  --gray-050: #f2f4f7;
  --red-400: #e5675d;
  --red-600: #db3241;
  --blue-400: #0088ff;
  --gray-900: #242424;
  --color-text: var(--black);
  --color-text-inverse: var(--white);
  --color-surface: var(--gray-050);
  --color-surface-elevated: var(--white);
  --color-surface-dark: var(--blue-900);
  --color-action-primary: var(--green-500);
  --color-action-primary-hover: var(--green-600);
  --color-action-secondary: var(--blue-600);
  --color-action-secondary-hover: var(--blue-700);
  --color-status-danger: var(--red-400);
  --color-status-confirmed: var(--green-600);
  --color-difficulty-easy: #006ac7;
  --color-difficulty-medium: var(--red-600);
  --color-difficulty-hard: var(--gray-900);
  --color-rule: rgba(18, 18, 18, 0.18);
  --color-rule-inverse: rgba(255, 255, 255, 0.28);
  --color-focus: var(--blue-600);
  --font-heading: "Fictional", sans-serif;
  --font-body: "Fixel", sans-serif;
  --font-weight-heading: 800;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --text-h1: 3.052rem;
  --text-h2: 2.441rem;
  --text-h3: 1.953rem;
  --text-h4: 1.563rem;
  --text-h5: 1.25rem;
  --text-h6: 1rem;
  --text-large: 1.25rem;
  --text-body: 1rem;
  --text-small: 0.875rem;
  --text-label: 0.75rem;
  --line-height-h1: 1.2;
  --line-height-h2: 1.24;
  --line-height-h3: 1.28;
  --line-height-h4: 1.32;
  --line-height-h5: 1.36;
  --line-height-h6: 1.4;
  --line-height-body: 1.6;
  --line-height-small: 1.5;
  --letter-spacing-heading: 0.03em;
  --letter-spacing-body: 0.03em;
  --letter-spacing-label: 0.08em;
  --prose-width: 42rem;
  --prose-width-small: 36rem;
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --space-6: 48px;
  --space-7: 64px;
  --space-8: 96px;
  --space-9: 128px;
  --space-10: 160px;
  --grid-max-width: 1280px;
  --grid-columns: 12;
  --grid-gutter: 24px;
  --page-padding: 48px;
  --section-sm: 64px;
  --section-md: 96px;
  --section-lg: 128px;
  --header-height: 80px;
  --nav-gap: 24px;
  --button-height: 48px;
  --button-padding-x: 24px;
  --button-gap: 8px;
  --field-height: 48px;
  --field-padding-x: 16px;
  --field-gap: 8px;
  --utility-size-desktop: 36px;
  --utility-size-compact: 32px;
  --utility-size-mobile: 44px;
  --utility-icon-size: 20px;
  --utility-gap: var(--space-2);
  --utility-gap-compact: 6px;
  --utility-padding-mobile: 12px;
  --utility-bar-height: calc(var(--utility-size-mobile) + 2 * var(--utility-padding-mobile));
  --form-gap: 24px;
  --rule-width: 0px;
  --radius: 0;
  --radius-control: 9999px;
  --slideshow-control-width: calc(24px + 2 * var(--button-padding-x) + 4px);
  --radius-field: calc(var(--field-height) / 2);
  --transition-fast: 150ms ease;
  --transition: 250ms ease;
  --color-black: var(--black);
  --color-white: var(--white);
  --color-background-main: var(--color-surface);
  --color-background-blue: var(--color-surface-dark);
  --color-cta-green: var(--color-action-primary);
  --color-cta-green-hover: var(--color-action-primary-hover);
  --color-cta-blue: var(--color-action-secondary);
  --color-cta-blue-hover: var(--color-action-secondary-hover);
  --color-danger: var(--color-status-danger);
  --color-confirmed: var(--color-status-confirmed);
  --color-easy: var(--color-difficulty-easy);
  --color-medium: var(--color-difficulty-medium);
  --color-hard: var(--color-difficulty-hard);
  --font-size-base: var(--text-body);
  --font-size-h1: var(--text-h1);
  --font-size-h2: var(--text-h2);
  --font-size-h3: var(--text-h3);
  --font-size-h4: var(--text-h4);
  --font-size-h5: var(--text-h5);
  --font-size-h6: var(--text-h6);
  --font-size-body: var(--text-body);
  --font-weight-body: var(--font-weight-regular);
  --space-2xs: var(--space-1);
  --space-xs: var(--space-2);
  --space-sm: 12px;
  --space-md: var(--space-3);
  --space-lg: var(--space-4);
  --space-xl: var(--space-5);
  --space-2xl: var(--space-6);
  --space-3xl: var(--space-7);
  --space-4xl: var(--space-8);
  --space-5xl: var(--space-9);
  --section-padding-small: var(--section-sm);
  --section-padding: var(--section-md);
  --section-padding-large: var(--section-lg);
  --container-max-width: var(--grid-max-width);
  --container-padding: var(--page-padding);
  --grid-gap-small: var(--space-3);
  --grid-gap: var(--grid-gutter);
  --grid-gap-large: var(--space-5);
  --component-padding-small: var(--space-3);
  --component-padding: var(--space-4);
  --component-padding-large: var(--space-5);
  --content-gap-small: var(--space-2);
  --content-gap: var(--space-3);
  --content-gap-large: var(--space-4);
  --text-max-width: var(--prose-width);
  --text-max-width-small: var(--prose-width-small);
  --button-padding-y: 12px;
  --input-padding-y: 12px;
  --input-padding-x: var(--field-padding-x);
  --border-width: 0;
  --border-radius-small: var(--radius);
  --border-radius: var(--radius);
  --border-radius-large: var(--radius);
  --shadow-small: none;
  --shadow: none;
  --shadow-large: none;
}
body {
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-body);
  letter-spacing: var(--letter-spacing-body);
  color: var(--color-text);
  background-color: var(--color-surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.menu-open {
  overflow: hidden;
}
main {
  width: 100%;
}
::selection {
  color: var(--color-text);
  background: var(--color-action-primary);
}
:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
}
h1,
h2,
h3,
h4,
h5,
h6,
.heading-1,
.heading-2,
.heading-3,
.heading-4,
.heading-5,
.heading-6 {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-heading);
  letter-spacing: var(--letter-spacing-heading);
  text-wrap: balance;
}
h1,
.heading-1 {
  font-size: var(--text-h1);
  line-height: var(--line-height-h1);
}
h2,
.heading-2 {
  font-size: var(--text-h2);
  line-height: var(--line-height-h2);
}
h3,
.heading-3 {
  font-size: var(--text-h3);
  line-height: var(--line-height-h3);
}
h4,
.heading-4 {
  font-size: var(--text-h4);
  line-height: var(--line-height-h4);
}
h5,
.heading-5 {
  font-size: var(--text-h5);
  line-height: var(--line-height-h5);
}
h6,
.heading-6 {
  font-size: var(--text-h6);
  line-height: var(--line-height-h6);
}
p,
.text-body {
  font-size: var(--text-body);
  line-height: var(--line-height-body);
  letter-spacing: var(--letter-spacing-body);
}
.text-large {
  font-size: var(--text-large);
  line-height: 1.55;
}
.text-small {
  font-size: var(--text-small);
  line-height: var(--line-height-small);
}
.label {
  font-size: var(--text-label);
  font-weight: var(--font-weight-semibold);
  line-height: 1.35;
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
}
.prose {
  width: 100%;
  max-width: var(--prose-width);
}
.prose--small {
  max-width: var(--prose-width-small);
}
.prose > * + * {
  margin-top: var(--space-3);
}
.prose > h2,
.prose > h3,
.prose > h4 {
  margin-top: var(--space-6);
}
.container,
.grid {
  width: 100%;
  max-width: calc(var(--grid-max-width) + (2 * var(--page-padding)));
  margin-inline: auto;
  padding-inline: var(--page-padding);
}
.grid {
  display: grid;
  grid-template-columns: repeat(var(--grid-columns), minmax(0, 1fr));
  column-gap: var(--grid-gutter);
}
.grid > * {
  min-width: 0;
}
.grid-full {
  grid-column: 1 / -1;
}
.grid-content {
  grid-column: 4 / span 7;
}
.grid-content-wide {
  grid-column: 3 / span 8;
}
.section {
  width: 100%;
  padding-block: var(--section-md);
}
.section--sm {
  padding-block: var(--section-sm);
}
.section--lg {
  padding-block: var(--section-lg);
}
.section--small {
  padding-block: var(--section-sm);
}
.section--large {
  padding-block: var(--section-lg);
}
.button {
  height: auto;
  min-height: var(--button-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--button-gap);
  padding-inline: var(--button-padding-x);
  padding-block: .75rem;
  border: 2px solid transparent;
  border-radius: var(--radius-control);
  font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--font-weight-semibold);
  line-height: 1.25;
  letter-spacing: var(--letter-spacing-body);
  white-space: nowrap;
  overflow-wrap: normal;
  hyphens: none;
  flex-shrink: 0;
  max-inline-size: 100%;
  text-align: center;
  transition: none;
  animation: none;
}
.button.slideshow-arrow {
  width: var(--slideshow-control-width);
  min-width: var(--slideshow-control-width);
  height: var(--button-height);
  min-height: var(--button-height);
  padding: 0;
  border: 2px solid currentColor;
  border-radius: var(--radius-control);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.button.slideshow-arrow svg {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
}
.button--primary {
  color: var(--color-text);
  background-color: var(--color-action-primary);
}
.button--primary:hover {
  background-color: var(--color-action-primary-hover);
}
.button--secondary {
  color: var(--color-text-inverse);
  background-color: var(--color-action-secondary);
}
.button--secondary:hover {
  background-color: var(--color-action-secondary-hover);
}
.button--standard,
.button--text {
  border-color: currentColor;
  color: currentColor;
  background: transparent;
}
.button--standard:hover,
.button--text:hover {
  background-color: var(--color-standard-hover);
}
.button::before,
.button::after {
  content: none;
}
hr,
.rule,
.rule--inverse {
  display: none;
}
.field {
  display: flex;
  flex-direction: column;
  gap: var(--field-gap);
}
.field__label {
  font-size: var(--text-small);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-small);
}
.input,
.select,
.textarea {
  width: 100%;
  min-height: var(--field-height);
  padding-inline: var(--field-padding-x);
  border: 0;
  border-radius: var(--radius-field);
  color: var(--color-text);
  background-color: var(--color-surface-elevated);
}
.textarea {
  min-height: 144px;
  padding-block: var(--space-3);
  resize: vertical;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),
select {
  border-radius: var(--radius-field);
}
textarea {
  border-radius: var(--radius-field);
}
.input:focus,
.select:focus,
.textarea:focus {
  background-color: var(--color-surface);
}
.form-stack {
  display: flex;
  flex-direction: column;
  gap: var(--form-gap);
}
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
@media (width < 768px) {
  :root {
    --grid-columns: 4;
    --grid-gutter: 16px;
    --page-padding: 20px;
    --section-sm: 48px;
    --section-md: 64px;
    --section-lg: 80px;
    --text-h1: 2.441rem;
    --text-h2: 1.953rem;
    --text-h3: 1.563rem;
    --text-h4: 1.25rem;
    --text-h5: 1.125rem;
    --text-h6: 1rem;
    --nav-gap: 16px;
  }
  .grid-content,
  .grid-content-wide {
    grid-column: 1 / -1;
  }
  .button {
    min-height: 48px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
.select--filter {
  appearance: none;
  min-height: var(--button-height);
  padding: var(--space-2) var(--space-6) var(--space-2) var(--space-3);
  border: 2px solid currentColor;
  font: inherit;
  font-weight: var(--font-weight-semibold);
  text-align: left;
  text-align-last: left;
  background: transparent;
  cursor: pointer;
}
.select--filter:hover,
.select--filter:focus {
  background: transparent;
}
.select--filter option {
  text-align: left;
  color: var(--color-text);
  background: var(--color-surface);
}
@supports (appearance: base-select) {
  .select--filter,
  .select--filter::picker(select) {
    appearance: base-select;
  }
  .select--filter::picker-icon {
    display: none;
  }
  .select--filter::picker(select) {
    border: 0;
    background: var(--color-surface);
    color: var(--color-text);
    box-shadow: none;
  }
  .select--filter option {
    justify-content: flex-start;
    padding: var(--space-2) var(--space-3);
  }
  .select--filter option:hover,
  .select--filter option:focus {
    background: var(--color-surface);
    outline: none;
    border: 0;
  }
}
.select--filter option:checked {
  border: 0;
  outline: none;
  box-shadow: none;
}
.select--filter option:focus-visible {
  text-decoration: underline;
}
:root {
  --color-standard-hover: rgba(0, 0, 0, 0.15);
}
h1,
h2,
h3,
h4,
h5,
h6,
.heading-1,
.heading-2,
.heading-3,
.heading-4,
.heading-5,
.heading-6 {
  min-width: 0;
  max-width: 100%;
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: anywhere;
  word-break: normal;
}
main :where(p, li, dd, dt) {
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: anywhere;
  word-break: normal;
}
.select--filter:hover,
.select--filter:open {
  background: var(--color-standard-hover);
}
.select--filter option:hover,
.select--filter option:focus,
.select--filter option:checked {
  background: var(--color-standard-hover);
  border: 0;
  outline: none;
  box-shadow: none;
}
@media (min-width: 768px) {
  :root {
    --menu-marker-width: var(--space-3);
    --menu-marker-thickness: 2px;
    --color-filter-menu: color-mix(in srgb, black 15%, var(--color-surface));
  }
  .select--filter::picker(select) {
    border: 0;
    background: var(--color-filter-menu);
  }
  .select--filter option,
  .select--filter option:hover,
  .select--filter option:focus,
  .select--filter option:checked {
    background: transparent;
    gap: var(--space-2);
  }
  .select--filter option::checkmark {
    display: none;
  }
  .select--filter option::before {
    content: none;
    display: inline-block;
    flex: 0 0 var(--menu-marker-width);
    width: var(--menu-marker-width);
    height: var(--menu-marker-thickness);
    background: currentColor;
    visibility: hidden;
  }
  .select--filter option:hover::before,
  .select--filter option:focus-visible::before,
  .select--filter option:checked::before {
    visibility: visible;
  }
  .select--filter option:is(:hover,:focus,:checked) {
    font-weight: 700;
  }
}
.fact-chip {
  --fact-border-color: color-mix(in srgb, currentColor 28%, transparent);
  padding: var(--space-2) var(--space-3);
  border: 2px solid var(--fact-border-color);
  background: transparent;
}
input:focus, select:focus, textarea:focus, .phone-trigger:focus { outline: none; }
input:focus-visible, select:focus-visible, textarea:focus-visible, .phone-trigger:focus-visible { outline: 2px solid currentColor; outline-offset: var(--space-1); box-shadow: none; background-color: var(--color-surface); }
.button--standard:is([aria-current="page"],[aria-pressed="true"]) { background:var(--color-text); color:var(--color-surface); border-color:var(--color-text); }
:is(input,select,textarea):focus {
  outline: 2px solid var(--color-text);
  outline-offset: var(--space-1);
  box-shadow: none;
}
.select--filter,
.select--filter:is(:hover,:focus,:open) {
  background: var(--color-surface);
}
.select--filter option:is(:hover,:focus,:checked) {
  background: transparent;
}
@supports (appearance: base-select) {
  .select--filter:open {
    position: relative;
    border-radius: var(--radius-control);
    outline: none;
  }
  .select--filter:open::before {
    content: '';
    position: absolute;
    inset: -8px -8px -2px;
    border: 2px solid var(--color-text);
    border-bottom: 0;
    border-radius: calc(var(--radius-field) + 6px) calc(var(--radius-field) + 6px) 0 0;
    pointer-events: none;
  }
  .select--filter::picker(select) {
    position: fixed;
    top: var(--picker-top, anchor(bottom));
    bottom: auto;
    left: var(--picker-left, calc(anchor(left) - 6px));
    right: auto;
    width: var(--picker-width, calc(anchor-size(width) + 12px));
    max-height: min(var(--picker-space, 50dvh), 24rem);
    overflow-y: auto;
    scrollbar-width: thin;
    overscroll-behavior: contain;
    margin: 0;
    position-area: none;
    position-try-fallbacks: none;
    box-sizing: border-box;
    border: 2px solid var(--color-text);
    border-top: 0;
    border-radius: 0 0 calc(var(--radius-field) + 6px) calc(var(--radius-field) + 6px);
    outline: none;
    background: var(--select-menu-surface, var(--color-surface));
    padding-block: var(--space-2);
  }
  .select--filter[data-picker-up]::picker(select) {
    top: auto; bottom: var(--picker-bottom);
    border-top: 2px solid var(--color-text); border-bottom: 0;
    border-radius: calc(var(--radius-field) + 6px) calc(var(--radius-field) + 6px) 0 0;
  }
  .select--filter[data-picker-up]:open::before {
    inset: -2px -8px -8px;
    border-top: 0; border-bottom: 2px solid var(--color-text);
    border-radius: 0 0 calc(var(--radius-field) + 6px) calc(var(--radius-field) + 6px);
  }
}
.motion-control {
 position:absolute; inset-inline-end:var(--page-padding); inset-block-end:var(--space-4);
 z-index:5; display:inline-flex; align-items:center; justify-content:center;
 width:44px; height:44px; min-height:44px; padding:0; border-radius:50%;
 background:transparent; color:var(--white); border:1px solid currentColor;
 pointer-events:auto;
}
.motion-control svg { flex:none; }
.motion-control[hidden] { display:none; }
.hero > .motion-control { inset-block-start:auto; inset-block-end:var(--space-4); inset-inline-start:auto; inset-inline-end:var(--page-padding); }
.motion-control:is(:hover,:focus-visible,:active) { background:transparent; color:var(--white); border-color:var(--white); }
.background-video > .motion-control { inset-inline-end:var(--space-3); inset-block-end:var(--space-3); }
.button[data-wrap-label] { white-space:normal; overflow-wrap:anywhere; height:auto; }
.skip-link {
  position: fixed;
  top: var(--space-2, 8px);
  left: var(--space-2, 8px);
  z-index: 10000;
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--black, #000);
  color: var(--white, #fff);
  font-weight: var(--font-weight-semibold, 600);
  text-decoration: none;
  transform: translateY(-200%);
}
.skip-link:focus-visible {
  transform: none;
}
.cta-section {
  position: relative;
  isolation: isolate;
  color: var(--color-text-inverse);
  background: var(--color-text);
}
.cta-section.section--lg {
  padding-block: calc(var(--section-lg) * 1.5);
}
@media (min-width: 768px) {
  .cta-section__content > .text-large {
    max-width: calc(75% - var(--grid-gutter) / 4);
  }
}
.cta-section__background {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cta-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: color-mix(in srgb, var(--color-text) 65%, transparent);
}
.cta-section__content {
  grid-column: 3 / span 8;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  text-align: left;
}
.cta-section__content .button {
  max-width: 100%;
  margin-top: var(--space-2);
}
@media (width < 768px) {
  .cta-section__content {
    grid-column: 1 / -1;
    align-items: center;
    text-align: center;
  }
}
.discipline-section {
  position: relative;
  isolation: isolate;
}
.discipline-section img.discipline-section__image--cutout {
  width: 70%;
  justify-self: center;
  aspect-ratio: auto;
  height: auto;
  object-fit: contain;
  box-shadow: none;
}
.discipline-section__grid {
  align-items: center;
  row-gap: var(--space-5);
}
.discipline-section__content {
  grid-column: 2 / span 5;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}
.discipline-section__background {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.discipline-section--background-left,
.discipline-section--background-right {
  color: var(--color-text-inverse);
}
.discipline-section--background-left::before,
.discipline-section--background-right::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, color-mix(in srgb, var(--color-text) 85%, transparent), color-mix(in srgb, var(--color-text) 35%, transparent));
}
.discipline-section--background-right::before {
  transform: scaleX(-1);
}
.discipline-section--background-right .discipline-section__content {
  grid-column: 7 / span 5;
}
.discipline-section__image {
  grid-column: 8 / span 5;
  grid-row: 1;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.discipline-section--image-left .discipline-section__image {
  grid-column: 1 / span 6;
  aspect-ratio: 4 / 5;
}
.discipline-section--image-left .discipline-section__content {
  grid-column: 8 / span 5;
  grid-row: 1;
}
.discipline-section--image-right .discipline-section__content {
  grid-column: 1 / span 6;
  grid-row: 1;
}
.discipline-section .button {
  max-width: 100%;
  height: auto;
  padding-block: var(--space-2);
}
@media (width < 768px) {
  .discipline-section .discipline-section__content,
  .discipline-section .discipline-section__image {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .discipline-section .discipline-section__image {
    aspect-ratio: 4 / 3;
  }
  .discipline-section--background-left::before,
  .discipline-section--background-right::before {
    background: color-mix(in srgb, var(--color-text) 78%, transparent);
  }
}
.about-teaser__grid {
  row-gap: var(--space-5);
  align-items: start;
}
.about-teaser__logo {
  grid-column: 6 / span 2;
  justify-self: center;
  width: var(--space-9);
  height: auto;
}
.about-teaser__content {
  grid-column: 4 / span 6;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-4);
  height: 100%;
}
.about-teaser__button {
  margin-top: auto;
}
@media (width < 768px) {
  .about-teaser__logo,
  .about-teaser__content {
    grid-column: 1 / -1;
  }
  .about-teaser__content {
    align-items: flex-start;
    text-align: left;
  }
  .about-teaser__logo {
    width: var(--space-9);
  }
  .about-teaser__button {
    margin-top: var(--space-2);
  }
}
.faq-section__content {
  grid-column: 3 / span 8;
}
.faq-section__items {
  margin-top: var(--space-5);
}
.faq-section__item + .faq-section__item {
  margin-top: var(--space-2);
}
.faq-section__question {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-5);
  min-height: var(--button-height);
  padding-block: var(--space-3);
  font-weight: var(--font-weight-semibold);
  font-size: var(--text-large);
  line-height: var(--line-height-body);
  list-style: none;
  cursor: pointer;
}
.faq-section__question::-webkit-details-marker {
  display: none;
}
.faq-section__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 1.6em;
  height: 1lh;
  margin-right: -6px;
}
.faq-section__icon svg {
  transition: transform var(--transition-fast);
}
.faq-section__item[open] .faq-section__icon svg {
  transform: rotate(180deg);
}
.faq-section__answer {
  max-width: var(--prose-width);
  padding-bottom: var(--space-4);
  padding-right: var(--space-5);
}
.tour-info-accordion__body {
  display: grid;
  gap: var(--space-4);
}
@media (width < 768px) {
  .faq-section__content {
    grid-column: 1 / -1;
  }
  .faq-section__question {
    font-size: var(--text-body);
    gap: var(--space-5);
  }
}
.text-section__content {
  grid-column: 3 / span 8;
  display: grid;
  gap: var(--space-4);
  text-align: left;
}
@media (min-width: 768px) {
  .tour-info-intro .content-section__content {
    grid-column: 3 / span 7;
  }
}
@media (width < 768px) {
  .text-section__content {
    grid-column: 1 / -1;
  }
}
.topo-process {
  --topo-detail-color: color-mix(in srgb, var(--color-text) 18%, var(--color-surface));
}
.topo-process__title {
  grid-column: 3 / span 8;
  margin-bottom: var(--space-7);
  text-align: center;
}
.topo-process__steps {
  grid-column: 2 / span 10;
}
.topo-process__step {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--space-8) minmax(0, 1fr);
  column-gap: var(--space-5);
  min-height: var(--space-10);
  padding-bottom: var(--space-7);
}
.topo-process__route {
  position: absolute;
  top: var(--space-3);
  left: calc(50% - var(--space-6));
  width: var(--space-8);
  height: 100%;
  overflow: visible;
  fill: none;
  color: var(--color-status-danger);
  pointer-events: none;
}
.topo-process__route path {
  stroke: currentColor;
  stroke-width: 2;
  stroke-dasharray: 8 8;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}
.topo-process__step:nth-child(even) .topo-process__route {
  transform: scaleX(-1);
}
.topo-process__details {
  position: absolute;
  top: var(--space-3);
  left: calc(50% - var(--space-6));
  width: var(--space-8);
  height: 100%;
  color: var(--topo-detail-color);
  font-family: var(--font-body);
  font-size: var(--text-small);
  line-height: 1;
  pointer-events: none;
}
.topo-process__details span {
  position: absolute;
}
.topo-process__bolt {
  top: 30%;
  left: 85%;
}
.topo-process__piton {
  top: 70%;
  right: 70%;
}
.topo-process__step:nth-child(even) .topo-process__bolt {
  left: auto;
  right: 85%;
}
.topo-process__step:nth-child(even) .topo-process__piton {
  right: auto;
  left: 70%;
}
.topo-process__content {
  grid-column: 3;
  min-width: 0;
}
.topo-process__number {
  position: absolute;
  top: 0;
  left: calc(50% - var(--space-3));
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--space-5);
  height: var(--space-5);
  background: var(--color-surface);
  border: 2px solid currentColor;
  border-radius: 50%;
  font-weight: var(--font-weight-semibold);
  line-height: 1;
}
.topo-process__step:nth-child(even) .topo-process__content {
  grid-column: 1;
}
.topo-process__step:nth-child(even) .topo-process__number {
  margin-left: auto;
}
@media (width < 768px) {
  .topo-process__title {
    grid-column: 1 / -1;
    text-align: left;
    margin-bottom: var(--space-6);
  }
  .topo-process__steps {
    grid-column: 1 / -1;
  }
  .topo-process__step {
    grid-template-columns: var(--space-6) minmax(0, 1fr);
    column-gap: var(--space-4);
  }
  .topo-process__route,
  .topo-process__details {
    left: 0;
    width: var(--space-6);
  }
  .topo-process__step .topo-process__content,
  .topo-process__step:nth-child(even) .topo-process__content {
    grid-column: 2;
  }
  .topo-process__step:nth-child(even) .topo-process__number {
    margin-left: 0;
  }
  .topo-process__number {
    left: var(--space-2);
  }
}
.topo-facts__decoration { display: none; }
@media (width < 768px) {
  .topo-facts { gap: 0; }
  .topo-facts > div {
    position: relative;
    min-height: var(--space-9);
    padding-left: calc(var(--space-6) + var(--space-4));
    padding-bottom: var(--space-6);
  }
  .topo-facts > div:last-child { min-height: 0; padding-bottom: 0; }
  .topo-facts__decoration { display: contents; }
  .topo-facts > div:nth-child(even) .topo-process__route { transform: scaleX(-1); }
}
.topo-process__number { font-family: var(--font-body); font-size: var(--text-small); color: var(--color-text); }
.topo-process__details { --topo-detail-color: color-mix(in srgb, var(--color-text) 18%, var(--color-surface)); }
@media(width < 768px) {
 .tour-topo__rail, .tour-topo-crossing, .tour-overview__topo, .topo-facts__decoration { display: none; }
 .topo-facts > div { padding-left: 0; min-height: 0; }
}
.text-image__grid {
  align-items: center;
  row-gap: var(--space-5);
}
.text-image__content {
  grid-column: 1 / span 6;
  display: grid;
  gap: var(--space-4);
}
.text-image__content p {
  max-width: var(--prose-width);
}
.text-image__content a:hover {
  color: var(--color-action-secondary);
}
.text-image__image {
  grid-column: 8 / span 5;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.text-image__image.background-video {
  aspect-ratio: 3 / 4;
}
@media (width < 768px) {
  .text-image__content,
  .text-image__image {
    grid-column: 1 / -1;
  }
}
.bullet-point__section-title {
  grid-column: 3 / span 8;
  margin-bottom: var(--space-7);
}
.bullet-point--columns .bullet-point__section-title {
  text-align: center;
}
.bullet-point--columns .bullet-point__list {
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(var(--bullet-point-rows), auto);
  grid-auto-flow: column;
  column-gap: var(--grid-gutter);
}
.bullet-point--columns .bullet-point__title {
  overflow-wrap: anywhere;
  hyphens: auto;
}
.bullet-point__list {
  grid-column: 3 / span 8;
  display: grid;
  gap: var(--space-6);
}
.bullet-point__item {
  display: grid;
  grid-template-columns: var(--space-4) minmax(0, 1fr);
  column-gap: var(--space-3);
  align-items: start;
}
.bullet-point__check {
  width: var(--space-4);
  height: var(--space-4);
  margin-top: var(--space-1);
  color: var(--color-action-primary);
}
.bullet-point__title {
  margin-bottom: var(--space-3);
  text-wrap: initial;
}
.bullet-point__content p {
  max-width: var(--prose-width);
}
@media (width < 768px) {
  .bullet-point--columns .bullet-point__section-title {
    text-align: left;
  }
  .bullet-point__section-title {
    grid-column: 1 / -1;
    margin-bottom: var(--space-6);
  }
  .bullet-point--columns .bullet-point__list {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
    grid-auto-flow: row;
  }
  .bullet-point__list {
    grid-column: 1 / -1;
    gap: var(--space-5);
  }
  .bullet-point__check {
    margin-top: 0;
  }
}
.site-header {
  --brand-logo-size: 48px;
  --brand-line-height: 1.25;
  --brand-font-size: 16px;
  --header-group-gap: var(--space-3);
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--header-height);
  z-index: 1000;
  color: var(--color-text-inverse);
  background-color: transparent;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .18);
  transform: translateY(0);
  transition:
    transform var(--transition),
    color var(--transition),
    background-color var(--transition);
}
.site-header.is-scrolled,
.site-header.is-menu-open {
  color: var(--color-text-inverse);
  background-color: var(--color-surface-dark);
}
.site-header.is-hidden {
  transform: translateY(-100%);
}
.site-header.is-menu-open {
  transform: translateY(0);
}
.site-header__inner {
  width: 100%;
  height: 100%;
  margin-inline: auto;
  padding-left: max(var(--page-padding), env(safe-area-inset-left, 0px));
  padding-right: max(var(--page-padding), env(safe-area-inset-right, 0px));
  display: flex;
  align-items: center;
  gap: var(--space-4);
}
.site-header__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--header-group-gap);
  flex-shrink: 0;
}
.site-header__logo {
  width: var(--brand-logo-size);
  height: var(--brand-logo-size);
  flex-shrink: 0;
  object-fit: contain;
}
.site-header__brand-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  font-family: var(--font-heading);
  font-weight: var(--font-weight-heading);
  font-size: var(--brand-font-size);
  line-height: var(--brand-line-height);
  letter-spacing: 0.28em;
  white-space: nowrap;
}
.site-header__brand-text span {
  display: block;
  text-align: left;
}
.site-header__navigation {
  flex: 1;
  justify-content: center;
  display: flex;
  align-items: center;
  gap: var(--nav-gap);
}
.site-header__navigation a {
  position: relative;
  font-family: var(--font-body);
  font-size: var(--brand-font-size);
  font-weight: var(--font-weight-heading);
  line-height: 1;
  white-space: nowrap;
  text-transform: none;
}
.site-header__actions {
  flex-shrink: 0;
}
.site-header__language {
  font-family: var(--font-body);
  font-size: var(--brand-font-size);
  font-weight: var(--font-weight-heading);
  line-height: 1;
  letter-spacing: var(--letter-spacing-label);
}
.site-header__menu-button {
  display: none;
  width: 32px;
  height: 24px;
  position: relative;
  flex-direction: column;
  justify-content: space-between;
  color: inherit;
}
.site-header__menu-button span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: currentColor;
  transform-origin: center;
  transition:
    transform var(--transition-fast),
    opacity var(--transition-fast);
}
.site-header__menu-button.is-active span:nth-child(1) {
  transform: translateY(11px) rotate(45deg);
}
.site-header__menu-button.is-active span:nth-child(2) {
  opacity: 0;
}
.site-header__menu-button.is-active span:nth-child(3) {
  transform: translateY(-11px) rotate(-45deg);
}
.mobile-navigation {
  display: none;
}
.tour-menu {
  position: relative;
}
.tour-menu__row {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.tour-menu__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 44px;
  flex-shrink: 0;
}
.tour-menu__toggle svg {
  transition: transform var(--transition-fast);
}
.tour-menu__toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}
.tour-menu__submenu a {
  display: block;
}
@media (min-width: 768px) {
  .site-header:hover,
  .site-header:focus-within {
    color: var(--color-text-inverse);
    background-color: var(--color-surface-dark);
  }
  .site-header__navigation .tour-menu__toggle {
    display: inline-flex;
  }
  .site-header__navigation .tour-menu__toggle svg {
    position: relative;
    top: -3px;
  }
  .site-header__navigation .tour-menu__row {
    height: var(--header-height);
  }
  .site-header__navigation .tour-menu__submenu {
    position: absolute;
    top: 100%;
    left: calc(-1 * var(--space-3));
    width: max-content;
    max-width: calc(100vw - 2 * var(--page-padding));
    padding-block: var(--space-3);
    color: var(--color-text-inverse);
    background-color: var(--color-surface-dark);
  }
  .site-header__navigation .tour-menu__submenu a {
    padding: var(--space-3);
    white-space: normal;
  }
  .site-header__inner,
  .site-header__actions {
    gap: var(--nav-gap);
  }
}
@media (width < 768px) {
  .site-header {
    --brand-logo-size: 46px;
  }
  .site-header__inner {
    gap: var(--space-3);
  }
  .site-header__brand {
    min-width: 0;
  }
  .site-header__brand-text {
    font-family: var(--font-heading);
    letter-spacing: 0.18em;
  }
  .site-header__navigation {
    display: none;
  }
  .site-header__actions {
    margin-left: auto;
    gap: var(--header-group-gap);
  }
  .site-header__menu-button {
    display: flex;
  }
  .mobile-navigation {
    display: block;
    position: fixed;
    top: var(--header-height);
    left: 0;
    width: 100%;
    height: calc(100dvh - var(--header-height));
    overflow-y: auto;
    color: var(--color-text-inverse);
    background-color: var(--color-surface-dark);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: none;
  }
  .mobile-navigation.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
  .mobile-navigation__inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    padding: var(--space-5) var(--page-padding) var(--space-7);
  }
  .mobile-navigation__inner a {
    width: 100%;
    padding-block: var(--space-3);
    font-family: var(--font-body);
    font-size: var(--text-h4);
    font-weight: var(--font-weight-heading);
    line-height: var(--line-height-h4);
    letter-spacing: var(--letter-spacing-heading);
  }
  .mobile-navigation .tour-menu__row > a {
    flex: 1;
    min-width: 0;
    width: auto;
  }
  .mobile-navigation .tour-menu__toggle {
    width: 44px;
    margin-right: -6px;
  }
  .mobile-navigation .tour-menu__submenu {
    padding-left: 0;
    padding-bottom: var(--space-3);
  }
}
@media (width < 768px) {
  .mobile-navigation__contacts {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-top: var(--space-4);
  }
  .mobile-navigation__contacts a {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: 44px;
    padding-block: var(--space-2);
    line-height: 1.4;
  }
  .mobile-navigation__contacts svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
  }
  .mobile-navigation__contacts span {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}
@media (width < 768px) {
  .site-header__inner {
    position: relative;
    z-index: 2;
  }
  .site-header.is-menu-open .site-header__inner {
    background-color: inherit;
  }
  .site-header__logo {
    display: block;
  }
  .mobile-navigation {
    z-index: 1;
    overscroll-behavior: contain;
    transition: none;
  }
  .mobile-navigation__inner > a,
  .mobile-navigation .tour-menu a {
    font-size: var(--text-h5);
    white-space: normal;
  }
  .mobile-navigation__contacts a {
    font-size: var(--text-body);
  }
}
@media (min-width: 768px) {
  .site-header__navigation .tour-menu__submenu {
    padding-top: 0;
    border: 0;
  }
  .site-header__navigation .tour-menu__submenu a {
    display: flex;
    align-items: center;
    gap: var(--space-2);
  }
  .site-header__navigation .tour-menu__submenu a::before {
    content: none;
    flex: 0 0 var(--menu-marker-width);
    width: var(--menu-marker-width);
    height: var(--menu-marker-thickness);
    background: currentColor;
    visibility: hidden;
  }
  .site-header__navigation .tour-menu__submenu a:hover::before,
  .site-header__navigation .tour-menu__submenu a:focus-visible::before,
  .site-header__navigation .tour-menu__submenu a[aria-current="page"]::before {
    visibility: visible;
  }
}
@media (min-width: 768px) {
  .site-header__navigation .tour-menu__submenu a {
    padding-inline: var(--space-3);
  }
}
.site-header :is(.site-header__navigation,.mobile-navigation__inner) a:has(> .menu-label) {
  display: inline-grid;
}
.site-header .menu-label, .site-header .menu-label-reserve { grid-area: 1 / 1; }
.site-header .menu-label-reserve { visibility: hidden; font-weight: 700; pointer-events: none; }
.site-header :is(.site-header__navigation,.mobile-navigation__inner) a:has(> .menu-label):is(:hover,:focus-visible) {
  font-weight: 700;
  text-decoration: none;
}
@media (width < 768px) {
  .mobile-navigation__inner > a,
  .mobile-navigation .tour-menu a {
    font-size: var(--text-h4);
  }
  .mobile-navigation .tour-menu__submenu {
    padding-inline-start: var(--space-4);
  }
}
.site-header.is-compact .site-header__navigation { display: none; }
.site-header.is-compact .site-header__menu-button { display: flex; flex-shrink: 0; }
.site-header.is-compact .mobile-navigation {
 display: block; position: fixed; top: var(--header-height); inset-inline: 0;
 height: calc(100dvh - var(--header-height)); overflow-y: auto; overscroll-behavior: contain;
 background: var(--color-surface-dark); color: var(--color-text-inverse);
 opacity: 0; visibility: hidden; pointer-events: none;
}
.site-header.is-compact .mobile-navigation.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.site-header.is-compact .mobile-navigation__inner {
 display: flex; flex-direction: column; padding: var(--space-4) var(--page-padding);
 padding-bottom: max(var(--space-7), env(safe-area-inset-bottom, 0px));
}
.site-header.is-compact .mobile-navigation__inner a { padding-block: var(--space-3); white-space: normal; overflow-wrap: anywhere; }
.site-header.is-compact .mobile-navigation__contacts { display: grid; gap: var(--space-2); }
.site-header.is-compact .mobile-navigation__contacts a { display: flex; gap: var(--space-3); align-items: center; }
.site-header.is-compact .mobile-navigation__contacts span { min-width: 0; overflow-wrap: anywhere; }
.site-header.is-compact .mobile-navigation__contacts svg { flex: 0 0 24px; width: 24px; height: 24px; }
.site-header .theme-toggle {
  font-family: var(--font-body);
}
.site-header .site-header__navigation a, .site-header .mobile-navigation__inner a, .site-header .mobile-navigation .tour-menu a { font-family:var(--font-body); font-size:var(--text-body); font-weight:var(--font-weight-regular); line-height:1.55; letter-spacing:var(--letter-spacing-body); text-transform:none; }
.site-header:not(.is-scrolled):not(.is-menu-open) { background-color:transparent; }
.layout--solid-header main { padding-top:var(--header-height); }
.layout--solid-header .site-header,.layout--solid-header .site-header:not(.is-scrolled):not(.is-menu-open) { background-color:var(--color-surface-dark); color:var(--color-text-inverse); }
@media(min-width:768px) {
 .site-header { --brand-font-size:clamp(11px,1.15vw,16px); --brand-logo-size:clamp(32px,3.4vw,48px); --header-group-gap:clamp(4px,.8vw,16px); --nav-gap:clamp(4px,.8vw,24px); }
 .site-header__inner { gap:clamp(4px,.8vw,24px); }
 .site-header__brand-text { font-size:var(--brand-font-size); letter-spacing:.12em; }
}
@media(width < 768px) {
 .site-header { --brand-font-size:16px; }
 .site-header__inner { column-gap:var(--space-4); }
 .site-header__brand { flex-shrink:1; min-width:0; }
 .site-header__brand-text { font-size:16px; letter-spacing:.12em; }
 .site-header .mobile-navigation__inner > a,.site-header .mobile-navigation .tour-menu a { font-size:var(--text-h3); line-height:var(--line-height-h3); white-space:normal; overflow-wrap:anywhere; min-width:0; }
}
.site-header__actions {
--utility-gap:var(--space-2); display:flex; align-items:center; gap:var(--utility-gap);
}
.site-header__actions {
margin-left:auto; position:relative;
}
.site-header .utility-language {
border:0; border-radius:0;
}
.site-header__actions > *::before {
content:none;
}
@media (min-width:768px) {
.site-header__actions .utility-language {
order:-1;
}
.site-header__navigation {
gap:clamp(8px,1.2vw,16px);
}
}
@media (min-width:768px) and (max-width:1199px) {
.site-header {
--utility-size:var(--utility-size-compact);
}
.site-header__logo {
display:none;
}
.site-header__actions {
--utility-gap:var(--utility-gap-compact);
}
.site-header__navigation {
gap:var(--space-2);
}
.site-header .site-header__navigation a {
font-size:clamp(12px,1.2vw,14px); line-height:1.4;
}
}
:root:not([data-theme="dark"]) :is(.site-header.is-scrolled,.site-header.is-menu-open,.mobile-navigation,.mobile-utilities),
:root:not([data-theme="dark"]) .layout--solid-header .site-header,
:root:not([data-theme="dark"]) .layout--solid-header .site-header:not(.is-scrolled):not(.is-menu-open),
:root:not([data-theme="dark"]) .site-header__navigation .tour-menu__submenu {
--color-text:var(--theme-text);
  color:var(--color-text); background:var(--gray-050);
}
@media (min-width:768px) {
:root[data-theme="dark"] .site-header:is(:hover,:focus-within) {
color:var(--white); background-color:var(--blue-900);
}
:root:not([data-theme="dark"]) .site-header:not(.is-scrolled):not(.is-menu-open):is(:hover,:focus-within) {
color:var(--color-text); background-color:var(--gray-050);
}
}
@media (width < 768px) {
:root {
--header-height:80px;
}
.site-header__actions > :not(.site-header__menu-button):not(.utility-language):not(.theme-toggle) {
display:none;
}
.site-header__inner {
display:flex; padding-block:8px;
}
.site-header__actions {
display:flex; margin-left:auto; width:auto;
}
.site-header__menu-button {
position:relative; inset:auto;
width:var(--utility-size); flex:0 0 var(--utility-size); align-items:center;
margin-left:var(--space-2);
}
.site-header__menu-button span {
width:32px;
}
.mobile-navigation {
height:calc(100dvh - var(--header-height));
}
body:has(.mobile-utilities.is-visible) .mobile-navigation {
height:calc(100dvh - var(--header-height) - var(--utility-bar-height) - env(safe-area-inset-bottom,0px));
}
}
.site-header.is-short-brand .site-header__brand-text { display: none; }
@media (width < 768px) {
 .site-header__inner { display:grid; grid-template-columns:minmax(0,1fr) max-content; }
 .site-header__brand { container:header-brand / inline-size; width:100%; }
 .site-header__actions { margin-inline-start:0; }
}
@container header-brand (width < 10.75rem) {
 .site-header__brand-text { display:none; }
}
@keyframes hero-content-reveal {
 from { opacity: 0; transform: translateY(20px); }
 to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: no-preference) {
 :is(.hero, .tour-hero) { --hero-content-start: .5s; --hero-actions-start: .65s; }
 :is(.hero, .tour-hero):has(.breadcrumbs--hero, .tour-hero__navigation) {
  --hero-content-start: .65s; --hero-actions-start: .8s;
 }
 :is(.hero, .tour-hero):has(.hero__slogan, .tour-hero__content > .text-large) {
  --hero-actions-start: calc(var(--hero-content-start) + .3s);
 }
 .hero:has(.hero__meta) { --hero-actions-start: calc(var(--hero-content-start) + .45s); }
 :is(.hero__content, .tour-hero__content) > :not(.tour-hero__actions) {
  --hero-reveal-delay: var(--hero-content-start);
 }
 :is(.hero__content, .tour-hero__content) > :nth-child(2) {
  --hero-reveal-delay: calc(var(--hero-content-start) + .15s);
 }
 :is(.hero__content, .tour-hero__content) > :nth-child(n + 3) {
  --hero-reveal-delay: calc(var(--hero-content-start) + .3s);
 }
 :is(.hero__actions, .tour-hero__actions, .hero__contacts, .tour-hero__facts) > * {
  --hero-reveal-delay: var(--hero-actions-start);
 }
 :is(.hero__actions, .tour-hero__actions, .hero__contacts, .tour-hero__facts) > :nth-child(2) {
  --hero-reveal-delay: calc(var(--hero-actions-start) + .15s);
 }
 :is(.hero__contacts, .tour-hero__facts) > :nth-child(n + 3) {
  --hero-reveal-delay: calc(var(--hero-actions-start) + .3s);
 }
 .hero > .breadcrumbs--hero, .tour-hero__navigation { --hero-reveal-delay: .5s; }
 :is(.hero__content, .tour-hero__content) > :not(.tour-hero__actions),
 :is(.hero__actions, .tour-hero__actions, .hero__contacts, .tour-hero__facts) > *,
 .hero > .breadcrumbs--hero, .tour-hero__navigation, .tour-hero__price {
  animation: hero-content-reveal 1.1s cubic-bezier(.215, .61, .355, 1) var(--hero-reveal-delay, .8s) both;
 }
 :is(.hero, .tour-hero):focus-within :is(
  .hero__content > *, .tour-hero__content > *, .hero__actions > *,
  .tour-hero__actions > *, .hero__contacts > *, .tour-hero__facts > *,
  .breadcrumbs--hero, .tour-hero__navigation, .tour-hero__price
 ) { animation: none; }
}
.hero {
    position: relative;
    width: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    overflow: hidden;
    color: var(--color-text-inverse);
    background-color: var(--color-surface-dark);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.52) 0%,
        rgba(0, 0, 0, 0.18) 52%,
        rgba(0, 0, 0, 0.14) 100%
    );
    pointer-events: none;
}
.hero__grid {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    min-height: 100dvh;
    align-items: end;
    padding-top: calc(var(--header-height) + var(--space-7));
    padding-bottom: var(--space-8);
}
.hero__content {
    min-width: 0;
    grid-column: 1 / span 8;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
}
.hero__title {
    max-width: 100%;
    color: inherit;
}
.hero__slogan {
    max-width: 100%;
    color: inherit;
}
.hero__meta { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2) var(--space-3); }
.hero__meta p { margin:0; }
@media (width < 768px) {
    .hero__grid {
        padding-top: calc(var(--header-height) + var(--space-6));
        padding-bottom: var(--space-7);
    }
    .hero__content {
    min-width: 0;
        grid-column: 1 / -1;
        gap: var(--space-3);
    }
    .hero__title,
    .hero__slogan {
        max-width: 100%;
    }
}
@media (min-width:768px) {
    .hero__grid {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
        column-gap: calc(2 * var(--grid-gutter));
    }
    .hero__content {
        grid-column: 1;
        grid-row: 1;
        align-items: flex-start;
        text-align: left;
    }
    .hero .hero__actions {
        grid-column: 2;
        grid-row: 1;
        align-self: end;
        flex-direction: column;
        align-items: flex-end;
    }
    .hero__slogan { max-width: 100%; }
    .hero--category-heading .hero__title { width: 100%; }
    .hero--actions-below .hero__actions { grid-column: 1; grid-row: 2; }
    .hero--center-content-desktop .hero__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gutter); }
    .hero--center-content-desktop .hero__content { grid-column: 2 / -2; align-items: center; text-align: center; }
    .hero--center-vertical-desktop .hero__grid {
        align-content: center;
        padding-top: calc(var(--header-height) + var(--space-5));
        padding-bottom: var(--space-5);
    }
    .hero.hero--center-content-desktop.hero--actions-below .hero__actions { grid-column: 2 / -2; justify-content: center; }
}
.hero.hero--actions-below .hero__actions {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
}
@media (width < 768px) {
    .hero.hero--actions-below .hero__actions {
        flex-direction: column;
        align-items: flex-start;
    }
}
@media (width < 768px) {
    .hero--center-title-mobile .hero__grid {
        grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr);
        padding-block: 0;
        row-gap: 0;
        align-content: stretch;
    }
    .hero--center-title-mobile .hero__content { display: contents; }
    .hero--center-title-mobile .hero__title { grid-column: 1 / -1; grid-row: 2; }
    .hero--center-title-mobile .hero__slogan {
        grid-column: 1 / -1;
        grid-row: 3;
        align-self: start;
        margin-top: var(--space-3);
    }
}
.hero__grid {
    align-content: end;
    row-gap: var(--space-5);
}
.hero__actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3) var(--space-4);
    margin-top: 0;
    max-width: 100%;
}
.hero__actions .button {
    max-width: 100%;
}
.hero__contacts {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-5);
    font-size: var(--text-large);
    font-weight: var(--font-weight-semibold);
}
.hero__contact-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    max-width: 100%;
}
.hero__contact-link span {
    min-width: 0;
    overflow-wrap: anywhere;
}
.hero__contact-icon {
    flex-shrink: 0;
}
.hero__contact-link--address {
    flex-basis: 100%;
}
.hero-scroll-target {
    scroll-margin-top: calc(var(--header-height) + var(--space-4));
}
@media (width < 768px) {
    .hero__actions {
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        gap: var(--space-3);
    }
    .hero__contacts {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-4);
    }
}
.hero__background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hero__fallback > img { width: 100%; height: 100%; object-fit: cover; }
.hero__responsive > img { object-position: var(--hero-focus-desktop, 50% 50%); }
@media (width < 768px) and (max-height: 740px) {
 .hero:has(> .hero__responsive) .hero__grid { padding-bottom: var(--space-6); }
}
@media (width < 768px) {
 .hero__responsive > img { object-position: var(--hero-focus-mobile, 50% 50%); }
}
.background-video { position: relative; overflow: hidden; }
.background-video > img, .background-video > video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--video-position, center); }
.background-video > img { position: absolute; inset: 0; }
.background-video > video { position: absolute; inset: 0; opacity: 0; }
.background-video.is-playing > video { opacity: 1; }
.hero__video { position: absolute; }
@media (min-width: 768px) { .hero__video { display: none; } }
.hero::before { z-index: 1; }
.hero__grid { z-index: 2; }
.hero__slide > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--hero-focus-desktop); }
@keyframes hero-image-zoom {
 from { transform: scale(1.08); }
 to { transform: scale(1); }
}
@media (prefers-reduced-motion: no-preference) {
 .hero > img.hero__background,
 .hero > .hero__fallback > img,
 .hero > .hero__slide > img,
 .tour-hero__cover > img { animation: hero-image-zoom 2.4s cubic-bezier(.22, 1, .36, 1) both; }
 .hero > .hero__fallback { overflow: hidden; }
}
@media (width < 768px) {
 .hero__slide > img { object-position: var(--hero-focus-mobile); }
}
@media (width < 768px) {
 .hero.hero--mobile-title-first-screen { min-height:100svh; min-height:100dvh; }
 .hero.hero--mobile-title-first-screen[data-surface="image"] {
  --section-image-opacity:1;
  --hero-image-overlay:linear-gradient(to bottom,rgba(0,0,0,.42) 0%,rgba(0,0,0,.46) 30%,rgba(0,0,0,.72) 52%,rgba(0,0,0,.86) 100%);
 }
 .hero--mobile-title-first-screen .hero__grid {
  min-height:100svh; min-height:100dvh;
  padding-top:calc(var(--header-height) + var(--space-6)); padding-bottom:var(--space-7);
  align-content:end; grid-template-rows:auto auto; row-gap:var(--space-3);
 }
 .hero--mobile-title-first-screen .hero__content { display:flex; gap:var(--space-3); }
 .hero--mobile-title-first-screen .hero__actions { margin:0; gap:var(--space-3); }
 .hero--mobile-title-first-screen .hero__slide > img { object-position:50% 28%; animation:none; }
}
@media (width < 768px) { .hero--mobile-title-first-screen .hero__slide:nth-of-type(2) > img { object-position:50% 0%; } }
.tour-offer > .hero > .motion-control {
 inset-block-start:calc(var(--header-height) + var(--space-5) + 2rem + var(--space-3));
 inset-block-end:auto;
 inset-inline-start:max(var(--page-padding), calc((100% - var(--grid-max-width)) / 2));
 inset-inline-end:auto;
}
.content-section__content {
    grid-column: 4 / span 7;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
}
.content-section__content p {
    max-width: var(--prose-width);
}
.category-intro__content {
    grid-column: 3 / span 8;
    text-align: left;
    gap: var(--space-4);
}
.category-intro__content p {
    max-width: none;
}
@media (width < 768px) {
    .content-section__content {
        grid-column: 1 / -1;
        gap: var(--space-3);
    }
    .category-intro__content {
        gap: var(--space-4);
    }
}
.site-footer {
  position: relative;
  --footer-entry-surface: var(--theme-base);
  width: 100%;
  color: var(--color-text);
  background-color: var(--color-surface-elevated);
}
.site-footer__sponsors {
  padding-block: var(--space-5);
  background-color: var(--footer-entry-surface);
  text-align: left;
}
.site-footer__sponsor-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-6);
  margin-top: var(--space-4);
}
.site-footer__sponsor-logos img,
.site-footer__sponsor-placeholder {
  width: 200px;
  height: 80px;
  object-fit: contain;
  object-position: left center;
}
.site-footer__sponsor-placeholder {
  display: grid;
  place-items: center;
  font-size: var(--text-h4);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-label);
}
.site-footer__credentials {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-6);
  padding-block: var(--space-7);
}
.site-footer__round-logo {
  height: 100px;
  flex-shrink: 0;
  object-fit: contain;
}
.site-footer img {
  background: transparent;
  box-shadow: none;
}
.site-footer__logo-placeholder {
  display: grid;
  place-items: center;
  background-color: var(--color-surface);
  font-weight: var(--font-weight-semibold);
}
.site-footer__grid {
  row-gap: var(--space-6);
  padding-bottom: var(--space-5);
}
.site-footer__column {
  grid-column: span 3;
  min-width: 0;
  font-size: var(--text-small);
  line-height: var(--line-height-body);
  overflow-wrap: anywhere;
}
.site-footer__column h2 {
  margin-bottom: var(--space-4);
}
.site-footer__links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
}
.site-footer__links a {
  display: inline-block;
}
.site-footer__secondary-links {
  margin-top: var(--space-4);
}
.site-footer__contact {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  font-style: normal;
}
.site-footer__contact p {
  font-size: inherit;
}
.site-footer__bottom {
  grid-column: 1 / -1;
  text-align: center;
}
@media (width < 768px) {
  .site-footer__credentials {
    gap: var(--space-4);
    padding-block: var(--space-6);
  }
  .site-footer__round-logo {
    height: 100px;
  }
  .site-footer__column {
    grid-column: 1 / -1;
    font-size: var(--text-body);
  }
}
.site-footer[data-footer-tone="alternate"] { --footer-entry-surface: var(--theme-alternate); }
.site-footer::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: calc(100% - 2px);
  height: calc(var(--space-6) + 2px);
  background: var(--footer-entry-surface);
  clip-path: polygon(0 0, 50% 100%, 100% 0, 100% 100%, 0 100%);
  pointer-events: none;
}
@media (width < 768px) {
  .site-footer::before { height: calc(var(--space-4) + 2px); }
}
.about-story__section + .about-story__section {
    padding-top: 0;
}
.about-story__row {
    align-items: center;
    row-gap: var(--space-5);
}
.about-story__row + .about-story__row {
    margin-top: var(--space-7);
}
.about-story__text {
    grid-column: 8 / span 5;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
}
.about-story__image {
    grid-column: 1 / span 6;
    grid-row: 1;
    width: 100%;
    aspect-ratio: 4 / 3;
    height: auto;
    object-fit: cover;
}
.about-story__row--reverse .about-story__text {
    grid-column: 1 / span 6;
}
.about-story__row--reverse .about-story__image {
    grid-column: 8 / span 5;
}
.about-story__row--portrait .about-story__image {
    aspect-ratio: 4 / 5;
}
.about-story__row--milestone .about-story__text {
    grid-column: 1 / span 4;
}
.about-story__row--milestone .about-story__image {
    grid-column: 6 / span 7;
    aspect-ratio: 16 / 9;
}
.about-story__signature {
    font-family: var(--font-heading);
    font-weight: var(--font-weight-heading);
    margin-top: var(--space-2);
}
@media (width < 768px) {
    .about-story__row .about-story__text,
    .about-story__row .about-story__image {
        grid-column: 1 / -1;
        grid-row: auto;
    }
    .about-story__row .about-story__image {
        aspect-ratio: 4 / 3;
    }
    .about-story__row + .about-story__row {
        margin-top: var(--space-6);
    }
}
.social-proof {
    position: relative;
    color: var(--color-text-inverse);
    background-color: var(--color-surface-dark);
    background-image: var(--social-proof-image);
    background-position: center;
    background-size: cover;
}
.social-proof::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.52), rgba(0, 0, 0, 0.18));
    pointer-events: none;
}
.social-proof__grid {
    position: relative;
    min-height: 480px;
    align-items: center;
    padding-block: var(--section-lg);
}
.social-proof__content {
    grid-column: 2 / span 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-5);
    text-align: center;
}
.social-proof__content h2 {
    font-size: var(--text-h1);
    line-height: var(--line-height-h1);
}
.social-proof__content .button {
    max-width: 100%;
}
@media (width < 768px) {
    .social-proof__grid {
        min-height: 360px;
        padding-block: var(--section-md);
    }
    .social-proof__content {
        grid-column: 1 / -1;
    }
}
.social-proof__reviews[hidden] { display: none; }
.social-proof__reviews { width: 100%; display: grid; gap: var(--space-4); }
.review-attribution__link { display: inline-block; vertical-align: calc(-5px - 18px * 6 / 22); white-space: nowrap; padding: 10px 10px 5px; }
.review-attribution__link img { display: block; height: 18px; width: auto; max-width: none; }
.review-carousel { position: relative; touch-action: pan-y pinch-zoom; min-width: 0; }
.review-carousel__track { --review-min-width: 256; display: grid; grid-template-columns: repeat(var(--review-columns,1),minmax(0,1fr)); gap: var(--space-4); align-items: stretch; }
.review-card { grid-row: 1; min-width: 0; padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-3); background: var(--theme-base); color: var(--theme-text); text-align: left; }
.review-card.is-hidden { visibility: hidden; pointer-events: none; }
.review-card__author { display: flex; align-items: center; gap: var(--space-3); }
.review-card__author > div { min-width: 0; }
.review-card__author time { display: block; }
.review-card__name { font-weight: var(--font-weight-semibold); overflow-wrap: anywhere; }
.review-card__avatar { flex: 0 0 var(--space-6); width: var(--space-6); height: var(--space-6); object-fit: cover; border-radius: 50%; }
.review-card__avatar[hidden] { display: none; }
.review-card__stars { letter-spacing: .1em; }
.review-card__text { font: inherit; overflow-wrap: anywhere; }
.review-card__text p { white-space: pre-line; }
.review-card__original { margin-top: auto; text-decoration: underline; text-underline-offset: .15em; }
.review-carousel__track { position: relative; }
.review-carousel__track.is-slide-transitioning { overflow: clip; }
.review-carousel > .featured-tours__arrow { position: absolute; top: 50%; transform: translateY(-50%); color: var(--color-text-inverse); }
.review-carousel__previous { right: calc(100% + var(--space-3)); }
.review-carousel__next { left: calc(100% + var(--space-3)); }
.review-carousel > button[hidden] { display: none; }
@media(width < 768px) {
 .review-carousel { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
 .review-carousel__track { grid-column: 1 / -1; }
 .review-carousel > .featured-tours__arrow { position: static; transform: none; }
 .review-carousel__previous { justify-self: start; }
 .review-carousel__next { justify-self: end; }
}
.social-proof__review-slot { width: 100%; }
.social-proof__review-slot.is-pending { min-height: calc(var(--space-10) * 4); }
.social-proof::before { background: color-mix(in srgb, var(--image-base) 60%, transparent); }
.social-proof { --color-review-star: #fbbc04; }
.review-card__stars { color: var(--color-review-star); }
.review-summary { display: inline-flex; align-items: center; justify-self: center; gap: var(--space-2); padding: var(--space-2) var(--space-3); background: var(--theme-base); color: var(--theme-text); text-decoration: none; max-width: 100%; }
.review-summary img { flex: 0 0 24px; width: 24px; height: 24px; }
.review-summary__score { font-size: var(--text-h5); }
.review-summary__count { font-size: var(--text-small); }
.review-stars { display: inline-block; position: relative; color: var(--color-review-star); font-size: var(--text-h5); line-height: 1.2; white-space: nowrap; }
.review-stars__empty { opacity: .3; }
.review-stars__fill { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; }
.social-proof__background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.tour-overview {
  --tour-topo-detail: color-mix(
    in srgb,
    var(--color-text) 18%,
    var(--color-surface)
  );
}
.tour-overview__list,
.tour-overview__empty {
  grid-column: 1 / -1;
}
.tour-overview__item {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0 var(--grid-gutter);
  padding-bottom: var(--space-8);
}
.tour-overview__item.is-last {
  padding-bottom: 0;
}
.tour-overview__content {
  grid-column: 3 / span 7;
  grid-row: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.tour-overview__content :is(h2,h3) {
  overflow-wrap: anywhere;
}
.tour-overview__content h2 a:hover,
.tour-overview__content h3 a:hover,
.tour-overview__content :is(h2,h3) a:focus-visible {
  color: inherit;
}
.tour-overview__location:hover {
  color: var(--color-action-secondary);
}
.tour-overview__image-link {
  grid-column: 10 / span 3;
  grid-row: 1;
  align-self: start;
  min-width: 0;
  overflow: hidden;
}
.tour-overview__image {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
.tour-overview__image-link,
.featured-tours__media {
  box-shadow: 0 4px 16px rgba(0, 0, 0, .18);
}
@media (hover: hover) and (pointer: fine) {
  .tour-overview__item .tour-overview__image,
  .featured-tours__slide .featured-tours__image {
    filter: brightness(0.85) saturate(0.85);
    transform: scale(1);
    transition: filter 550ms ease, transform 550ms ease;
  }
  .tour-overview__item:is(:hover, :focus-within) .tour-overview__image,
  .featured-tours__slide:is(:hover, :focus-within) .featured-tours__image {
    filter: brightness(1) saturate(1);
    transform: scale(1.05);
  }
}
@media (prefers-reduced-motion: reduce) {
  .tour-overview__item .tour-overview__image,
  .featured-tours__slide .featured-tours__image {
    transition: none;
    transform: none;
  }
  .tour-overview__item:is(:hover, :focus-within) .tour-overview__image,
  .featured-tours__slide:is(:hover, :focus-within) .featured-tours__image {
    transform: none;
  }
}
.tour-overview__facts {
  flex-wrap: wrap;
}
.tour-overview__location {
  align-items: center;
  gap: var(--space-2);
}
.tour-overview__price {
  margin-top: var(--space-3);
}
.tour-overview__difficulty {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  justify-self: start;
  writing-mode: vertical-rl;
  padding: var(--space-3) var(--space-2);
  font-size: var(--text-small);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-inverse);
}
.tour-overview__difficulty--beginner {
  background: var(--color-difficulty-easy);
}
.tour-overview__difficulty--intermediate {
  background: var(--color-difficulty-medium);
}
.tour-overview__difficulty--advanced {
  background: var(--color-difficulty-hard);
}
.tour-overview__topo {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  pointer-events: none;
  color: var(--tour-topo-detail);
}
.tour-overview__route {
  position: absolute;
  top: var(--space-3);
  width: 100%;
  height: calc(100% + var(--space-8));
  overflow: visible;
  fill: none;
  color: var(--color-status-danger);
}
.tour-overview__route path {
  stroke: currentColor;
  stroke-width: 2;
  stroke-dasharray: 8 8;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}
.tour-overview__item.is-even .tour-overview__route {
  transform: scaleX(-1);
}
.tour-overview__item.is-last .tour-overview__route {
  height: calc(100% - var(--space-3));
}
.tour-overview__belay {
  position: absolute;
  top: 0;
  left: calc(50% - var(--space-3));
  width: var(--space-5);
  height: var(--space-5);
  border: 2px solid currentColor;
  border-radius: 50%;
  background: var(--color-surface);
  z-index: 1;
}
.tour-overview__bolt,
.tour-overview__piton {
  position: absolute;
  font-size: var(--text-small);
  line-height: 1;
}
.tour-overview__bolt {
  top: 30%;
  left: 85%;
}
.tour-overview__piton {
  top: 70%;
  right: 70%;
}
.tour-overview__item.is-even .tour-overview__bolt {
  left: auto;
  right: 85%;
}
.tour-overview__item.is-even .tour-overview__piton {
  right: auto;
  left: 70%;
}
@media (width < 768px) {
  .tour-overview__topo {
    display: none;
  }
  .tour-overview__list {
    display: grid;
  }
  .tour-overview__item {
    display: flex;
    flex-direction: column;
    padding: 0;
    gap: var(--space-4);
  }
  .tour-overview__item.is-last {
    padding-bottom: 0;
  }
  .tour-overview__image-link {
    width: 100%;
  }
  .tour-overview__image {
    aspect-ratio: 4 / 3;
  }
  .tour-overview__content {
    width: 100%;
  }
  .tour-overview__difficulty {
    position: absolute;
    right: 0;
    top: 0;
    writing-mode: horizontal-tb;
    padding: var(--space-2) var(--space-3);
  }
  .tour-overview__price {
    margin-top: var(--space-2);
  }
}
.tour-overview__filters {
  grid-column: 1 / -1;
  min-width: 0;
  margin-bottom: var(--space-7);
}
.tour-overview__filters legend {
  margin-bottom: var(--space-3);
}
.tour-overview__filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.tour-overview__filters .button[aria-pressed="true"] {
  background: var(--color-surface-dark);
  color: var(--color-text-inverse);
  border-color: var(--color-surface-dark);
}
.tour-overview__item[hidden],
.tour-overview__filters[hidden] {
  display: none;
}
.tour-overview__filter-status:not(.visually-hidden) {
  grid-column: 5 / -1;
}
@media (width < 768px) {
  .tour-overview__filters,
  .tour-overview__filter-status:not(.visually-hidden) {
    grid-column: 1 / -1;
  }
  .tour-overview__filters {
    margin-bottom: var(--space-6);
  }
}
.tour-overview__title {
  text-align: center;
  grid-column: 1 / -1;
  min-width: 0;
  white-space: pre-line;
  margin-bottom: var(--space-3);
}
@media (min-width: 768px) {
  #rocktober-tours .tour-overview__title { grid-column: 2 / -2; }
}
.tour-overview__filters--dropdowns {
  grid-column: 2 / -2;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
  gap: var(--space-4);
}
.tour-overview__select-label {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}
.tour-overview__select-wrap {
  position: relative;
  display: block;
}
.tour-overview__select-arrow {
  position: absolute;
  right: var(--space-3);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}
.tour-overview__more {
  grid-column: 1 / -1;
  justify-self: center;
  margin-top: var(--space-7);
  max-width: 100%;
}
.tour-overview__more .button {
  width: max-content;
  max-width: 100%;
  height: auto;
  padding-block: var(--space-2);
}
@media (width < 768px) {
  .tour-overview__title {
    text-align: left;
  }
  .tour-overview__filters--dropdowns {
    grid-column: 1 / -1;
  }
}
@media (width < 768px) {
  .tour-overview__list {
    gap: var(--space-8);
  }
}
.tour-overview__details { left: 0; width: 100%; height: calc(100% + var(--space-8)); }
.tour-overview__item.is-last .tour-overview__details { height: calc(100% - var(--space-3)); }
.tour-overview__item.is-even .topo-process__bolt { left: auto; right: 85%; }
.tour-overview__item.is-even .topo-process__piton { right: auto; left: 70%; }
.tour-overview__belay { color: var(--color-text); }
.tour-overview__content { gap: var(--space-3); }
.tour-overview__facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--space-4); width: 100%; }
.tour-overview__fact { min-width: 0; }
.tour-overview__fact dt { margin-bottom: var(--space-2); font-weight: var(--font-weight-normal,400); }
@media(width < 768px) { .tour-overview__fact dd { font-size: var(--text-body); } }
.tour-overview__location { text-decoration: underline; text-underline-offset: .15em; }
.tour-overview__action { display: grid; gap: var(--space-3); justify-items: start; margin-top: var(--space-3); }
.tour-overview__action .tour-overview__price { margin: 0; }
@media(width < 768px) {
 .tour-overview__facts { grid-template-columns: repeat(auto-fit,minmax(min(100%,calc(var(--space-7) * 2)),1fr)); }
 .tour-overview__content { gap: var(--space-4); }
}
.tour-overview__facts { margin-top: 0; }
.tour-overview__location { display: inline; font: inherit; }
@media(min-width:768px) {
 .tour-overview__facts { display: flex; flex-wrap: wrap; }
 .tour-overview__fact { flex: 0 1 auto; max-width: 100%; }
}
@media(min-width:768px) {
 .tour-overview__fact dd.heading-5 { font-size: var(--text-h6); line-height: var(--line-height-h6); }
 .tour-overview__action > .heading-5 { font-size: var(--text-h4); line-height: var(--line-height-h4); }
}
@media(min-width:768px) {
 .tour-overview__difficulty { z-index: 1; }
 .tour-overview__item > .tour-overview__action { grid-row: 1; min-width: 0; margin-top: 0; }
 .tour-overview__facts { margin-top: var(--space-3); gap: var(--space-3) var(--space-4); }
 .tour-overview__price-unit { display: block; font-family: var(--font-body); font-size: var(--text-body); font-weight: var(--font-weight-normal,400); line-height: var(--line-height-body); }
 .tour-overview__button { max-width: 100%; }
}
@media(width < 768px) {
 .tour-overview__item > .tour-overview__action { margin-top: var(--space-2); }
}
@media(min-width:768px) {
 .tour-overview__list { isolation: isolate; }
 .tour-overview__item { --tour-row-gap: var(--space-9); padding-bottom: 0; margin-bottom: var(--tour-row-gap); align-items: stretch; }
 .tour-overview__item.is-last { margin-bottom: 0; }
 .tour-overview__image-link { grid-column: 1 / span 3; align-self: stretch; position: relative; min-height: calc(var(--space-10) + var(--space-7)); }
 .tour-overview__image { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
 .tour-overview__content { align-self: stretch; padding-inline: 0; }
 .tour-overview__item > .tour-overview__action { grid-column: 10 / span 3; align-self: stretch; padding: var(--space-4); }
 .tour-overview__fact:last-child { flex-basis: auto; }
 .tour-overview__topo { position: absolute; width: auto; max-width: none; justify-self: stretch; height: var(--tour-row-gap); z-index: -1; }
 .tour-overview__route, .tour-overview__item.is-last .tour-overview__route { top: 0; height: 100%; width: 100%; }
 .tour-overview__belay { top: calc(50% - var(--space-3)); }
 .tour-overview__details { top: 0; height: 100%; }
}
@media(min-width:768px) { .tour-overview__topo { left: 0; right: 0; } }
@media(min-width:768px) {
 .tour-overview__list { padding-top: var(--space-9); }
 .tour-overview__item { padding: var(--space-4); }
 .tour-overview__item.is-last { padding-bottom: var(--space-4); }
 .tour-overview__item > .tour-overview__action { align-content: center; justify-content: center; justify-items: start; text-align: left; }
 .tour-overview__topo { top: calc(-1 * var(--tour-row-gap)); }
 .tour-overview__item.is-last .tour-overview__topo { display: block; }
 .tour-overview__belay { left: calc(46% - var(--space-3)); }
 .tour-overview__item.is-even .tour-overview__belay { left: calc(54% - var(--space-3)); }
 .tour-overview__item.is-last .tour-overview__details { height: 100%; }
}
@media(min-width:768px) {
 .tour-overview__item, .tour-overview__item.is-last { padding: 0; }
 .tour-overview__content { padding-block: var(--space-4); }
 .tour-overview__item > .tour-overview__action {
  background: transparent;
 }
}
@media(min-width:768px) {
 .tour-overview__item { min-height: calc(var(--space-10) * 2 + var(--space-7)); }
 .tour-overview__difficulty { writing-mode: horizontal-tb; padding: var(--space-2) var(--space-3); }
 .tour-overview__item > .tour-overview__action { position: relative; border-left: 0; }
 .tour-overview__item > .tour-overview__action::before {
  content: ''; position: absolute; left: 0; top: var(--space-4); bottom: var(--space-4);
  width: 1px; background: color-mix(in srgb, var(--color-text) 18%, transparent);
 }
 .tour-overview__item.is-first .tour-overview__route { clip-path: inset(50% 0 0 0); }
 .tour-overview__item.is-first .topo-process__bolt { display: none; }
}
@media(min-width:768px) { }
@media(min-width:768px) {
 .tour-overview__item { background: transparent; }
 .tour-overview__content { justify-content: flex-start; }
 .tour-overview__difficulty { grid-column: 1 / span 3; width: max-content; max-width: 100%; white-space: nowrap; overflow-wrap: normal; hyphens: none; justify-self: start; }
}
@media(min-width:768px) {
 .tour-overview__image-link, .tour-overview__difficulty { grid-column: 1 / span 4; }
 .tour-overview__topo { grid-column: 2 / 5; }
 .tour-overview__content { grid-column: 5 / span 5; }
}
.tour-overview__section-title { grid-column: 1 / -1; margin-bottom: var(--space-4); text-align: start; }
.tour-overview__item--editorial .tour-overview__difficulty { z-index: 1; }
.tour-overview__list { container: tour-list / inline-size; }
@container tour-list (width < 64rem) {
 .tour-overview__item > .tour-overview__content { grid-column: 5 / -1; }
 .tour-overview__item > .tour-overview__image-link { grid-row: 1 / 3; }
 .tour-overview__item > .tour-overview__action {
  grid-column: 5 / -1; grid-row: 2; padding: 0 0 var(--space-4);
  align-content: start; justify-content: start;
 }
 .tour-overview__item > .tour-overview__action::before { display: none; }
}
@container tour-list (width < 40rem) {
 .tour-overview__item { display: flex; flex-direction: column; min-height: 0; gap: var(--space-4); }
 .tour-overview__item > .tour-overview__image-link { width: 100%; min-height: 0; position: relative; }
 .tour-overview__image { position: static; width: 100%; height: auto; aspect-ratio: 4 / 3; }
 .tour-overview__item > .tour-overview__content { padding: 0; }
 .tour-overview__item > .tour-overview__action { padding: 0; }
 .tour-overview__topo { display: none !important; }
 .tour-overview__difficulty { position: absolute; top: 0; left: 0; writing-mode: horizontal-tb; }
}
.tour-overview__difficulty { display:block; top:0; left:0; right:auto; writing-mode:horizontal-tb; padding:var(--space-2) var(--space-3); z-index:2; }
.tour-hero {
  position: relative;
  color: var(--color-text-inverse);
  background: var(--color-surface-dark);
}
.tour-hero__cover { position: absolute; inset: 0; overflow: hidden; }
.tour-hero__cover img { width: 100%; height: 100%; object-fit: cover; }
.tour-hero__cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, color-mix(in srgb, var(--color-text) 68%, transparent), color-mix(in srgb, var(--color-text) 48%, transparent));
}
.tour-hero__grid {
  position: relative;
  min-height: 100svh;
  padding-top: calc(var(--header-height) + var(--space-5));
  padding-bottom: var(--space-7);
  align-content: space-between;
  row-gap: var(--space-8);
}
.tour-hero__navigation { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.tour-hero__navigation a:hover { color: var(--color-action-primary); }
.tour-hero__navigation a { display: inline-flex; align-items: center; gap: var(--space-2); }
.tour-hero__navigation a svg { width: 1em; height: 1em; flex: 0 0 auto; }
.tour-hero__content { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); min-width: 0; }
.tour-hero__title { overflow-wrap: anywhere; max-width: 100%; color: inherit; }
.tour-hero__content > .text-large { max-width: var(--prose-width); }
.tour-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); max-width: 100%; }
.tour-hero__facts { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.tour-hero__price { margin-top: var(--space-3); }
@media (min-width: 768px) {
  .tour-hero__grid {
    padding-top: calc(var(--header-height) + var(--space-5));
    padding-bottom: var(--space-5);
    align-content: center;
    row-gap: 0;
  }
  .tour-hero__content {
    display: flex;
    align-items: center;
    text-align: center;
  }
  .tour-hero__content > .text-large { max-width: var(--prose-width); }
  .tour-hero__actions {
    flex-direction: row;
    align-items: center;
    justify-content: center;
  }
  .tour-hero__navigation {
    position: absolute;
    top: calc(var(--header-height) + var(--space-5));
    inset-inline: var(--page-padding);
    justify-content: space-between;
  }
  .tour-hero__next { margin-left: auto; }
}
@media (width < 768px) {
  .tour-hero__actions { flex-direction: column; align-items: flex-start; }
  .tour-hero { --tour-cover-height: calc(var(--header-height) + var(--space-10)); color: var(--color-text); background: var(--color-surface); }
  .tour-hero__cover { bottom: auto; height: var(--tour-cover-height); }
  .tour-hero__grid { min-height: 0; padding-top: 0; padding-bottom: var(--space-7); row-gap: var(--space-7); }
  .tour-hero__navigation { min-height: var(--tour-cover-height); padding-top: calc(var(--header-height) + var(--space-4)); padding-bottom: var(--space-5); align-content: end; justify-content: space-between; gap: var(--space-3); color: var(--color-text-inverse); }
  .tour-hero__back { display: none; }
  .tour-hero__next { margin-left: auto; }
  .tour-hero__content { gap: var(--space-3); }
  .tour-hero__title { font-size: var(--text-h3); line-height: var(--line-height-h3); }
  .tour-hero__content > .text-large { font-size: var(--text-body); }
  .tour-hero__fact--participants { order: 0; }
  .tour-hero__fact--days { order: 1; }
  .tour-hero__fact--season { order: 3; }
}
:is(img.image-shadow, img):not(:where(
  .site-header__logo, .site-footer img,
  .hero img, .tour-hero img, .background-video[data-background-video="hero"] img,
  .cta-section__background, .social-proof__background, .discipline-section__background,
  .tour-overview__image, .featured-tours__image
)) {
  box-shadow: 0 4px 16px rgba(0, 0, 0, .18);
}
:where(main img, .gallery-lightbox img):not(:where(
  .hero img, .tour-hero img, .background-video img,
  .cta-section__background, .social-proof__background, .discipline-section__background,
  .tour-overview__image, .featured-tours__image,
  [src*="/icons/"], [src$=".svg"], [src*="topo"], [src*="routengrafik"],
  [data-image-filter="none"]
)) {
filter: brightness(0.85) saturate(0.85);
}
:root {
color-scheme: light;
  --theme-base: var(--white);
  --theme-alternate: var(--gray-050);
  --theme-text: var(--black);
  --image-base: #000;
  --color-surface: var(--theme-base);
  --color-surface-elevated: var(--theme-alternate);
  --color-text: var(--theme-text);
  --theme-hover-mix: black;
  --theme-hover-amount: 15%;
}
:root[data-theme="dark"] {
color-scheme: dark;
  --theme-base: var(--blue-900);
  --theme-alternate: color-mix(in srgb, var(--blue-900) 80%, black);
  --theme-text: var(--white);
  --color-standard-hover: rgba(255, 255, 255, 0.12);
  --theme-hover-mix: white;
  --theme-hover-amount: 12%;
  --color-focus: var(--green-500);
}
[data-section-tone] {
--color-surface: var(--theme-base);
  --color-surface-elevated: var(--theme-alternate);
  --color-text: var(--theme-text);
  color: var(--color-text);
  background-color: var(--color-surface);
}
[data-section-tone="alternate"] {
--color-surface: var(--theme-alternate);
  --color-surface-elevated: var(--theme-base);
}
[data-section-tone] .select--filter {
--color-filter-menu: color-mix(
    in srgb,
    var(--theme-hover-mix) var(--theme-hover-amount),
    var(--color-surface)
  );
}
[data-surface="image"] {
--color-text: var(--white);
  color: var(--white);
  background-color: var(--image-base);
}
.cta-section::before {
background: color-mix(in srgb, var(--image-base) 65%, transparent);
}
.discipline-section--background-left::before,
.discipline-section--background-right::before {
background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--image-base) 85%, transparent),
    color-mix(in srgb, var(--image-base) 35%, transparent)
  );
}
.tour-hero__cover {
background: var(--image-base);
}
.hero[data-surface="image"],
.tour-hero[data-surface="image"] {
--hero-image-overlay: linear-gradient(
    90deg,
    color-mix(in srgb, var(--image-base) 78%, transparent) 0%,
    color-mix(in srgb, var(--image-base) 60%, transparent) 60%,
    color-mix(in srgb, var(--image-base) 40%, transparent) 100%
  ), linear-gradient(
    to top,
    color-mix(in srgb, var(--image-base) 50%, transparent),
    color-mix(in srgb, var(--image-base) 15%, transparent) 65%
  );
}
.hero[data-surface="image"]::before,
.tour-hero__cover::after {
background: var(--hero-image-overlay);
}
@media (width < 768px) {
.hero[data-surface="image"],
.tour-hero[data-surface="image"] {
--hero-image-overlay: linear-gradient(
      to top,
      color-mix(in srgb, var(--image-base) 82%, transparent) 0%,
      color-mix(in srgb, var(--image-base) 74%, transparent) 65%,
      color-mix(in srgb, var(--image-base) 50%, transparent) 100%
    );
}
}
.button--primary {
color: var(--black);
}
.button--secondary {
color: var(--white);
}
.tour-overview__belay {
background: var(--color-surface);
}
.tour-overview__filters .button[aria-pressed="true"] {
background: var(--color-text);
  color: var(--color-surface);
  border-color: var(--color-text);
}
:root[data-theme="dark"] .about-teaser__logo [data-color="1"] {
fill: var(--color-surface);
}
.about-teaser__logo [data-color="2"] {
fill: var(--black);
}
:root[data-theme="dark"] .about-teaser__logo [data-color="2"] {
fill: var(--white);
}
:root[data-theme="dark"] .site-footer__sponsor-logos img {
filter: brightness(0) invert(1);
}
.theme-toggle {
display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: var(--font-heading);
  font-size: var(--brand-font-size);
  font-weight: var(--font-weight-heading);
  line-height: 1;
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
}
.theme-toggle[hidden] {
display: none;
}
.theme-toggle__icon {
width: 1em;
  height: 1em;
  flex-shrink: 0;
}
.theme-toggle__sun {
display: none;
}
.theme-toggle[data-target-theme="light"] .theme-toggle__moon {
display: none;
}
.theme-toggle[data-target-theme="light"] .theme-toggle__sun {
display: block;
}
@media (width < 768px) {
.tour-hero[data-surface="image"] {
--color-text: var(--theme-text);
    color: var(--theme-text);
    background-color: var(--theme-base);
}
.discipline-section--background-left::before,
.discipline-section--background-right::before {
background: color-mix(in srgb, var(--image-base) 78%, transparent);
}
}
.hero[data-surface="image"],
.social-proof[data-surface="image"] {
background-image: none;
  isolation: isolate;
}
.hero[data-surface="image"]::after,
.social-proof[data-surface="image"]::after {
content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--hero-image, var(--social-proof-image));
  background-size: cover;
  background-position: center;
  opacity: var(--section-image-opacity, 1);
  pointer-events: none;
}
.hero[data-surface="image"]::before,
.social-proof[data-surface="image"]::before {
z-index: -1;
}
.cta-section__background,
.discipline-section__background,
.tour-hero__cover img {
opacity: var(--section-image-opacity, 1);
}
:root[data-theme="dark"] .tour-overview__location:hover {
color: var(--color-action-primary);
}
@media (width < 768px) {
.theme-toggle {
grid-area: 1 / 3;
}
}
.page-content-title {
margin-bottom: var(--space-5);
}
.site-footer__preferences {
--brand-font-size: var(--text-body);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}
.site-footer__language {
font-family: var(--font-heading);
  font-size: var(--brand-font-size);
  font-weight: var(--font-weight-heading);
  line-height: 1;
  letter-spacing: var(--letter-spacing-label);
}
.hero[data-surface="image"] > .hero__background {
z-index: -2; opacity: var(--section-image-opacity,1);
}
.hero[data-surface="image"]::after {
content: none;
}
.social-proof[data-surface="image"] > .social-proof__background {
z-index: -2; opacity: var(--section-image-opacity, 1);
}
.social-proof[data-surface="image"]::after {
content: none;
}
.hero[data-surface="image"] > .hero__slide {
opacity: 0; transition: opacity var(--transition);
}
.hero[data-surface="image"] > .hero__slide.is-active {
opacity: var(--section-image-opacity, 1);
}
@media (prefers-reduced-motion: reduce) {
.hero[data-surface="image"] > .hero__slide {
transition: none;
}
}
.site-footer .site-footer__language,
.site-footer .theme-toggle {
font-family: var(--font-body);
  font-size: var(--text-body);
  font-weight: var(--font-weight-regular);
  line-height: 1.55;
  letter-spacing: var(--letter-spacing-body);
  text-transform: none;
}
.site-footer .site-footer__language,
.site-footer .theme-toggle {
display: inline-flex;
  align-items: center;
  line-height: 1.55;
}
.site-footer .theme-toggle__icon {
transform: translateY(-0.2em);
}
.site-footer__preferences {
--utility-gap: 24px;
  gap: var(--utility-gap);
}
:where(.site-header,.site-footer__preferences,.mobile-utilities) {
--utility-size: var(--utility-size-desktop); --utility-gap: var(--space-2);
}
.site-footer__preferences {
--utility-gap:var(--space-2); display:flex; align-items:center; gap:var(--utility-gap);
}
.site-header, .mobile-utilities { --utility-radius:0px; --utility-search-radius:0px; --utility-border-width:0px; --utility-icon-size:24px; }
:is(.site-header,.mobile-utilities) .utility-button:not(.utility-language) { font-size:24px; font-weight:var(--font-weight-semibold); }
:is(.site-header,.mobile-utilities) :is(.utility-button svg,.theme-toggle__icon,.header-search summary svg) { stroke-width:2.2; }
@media (min-width:768px) {
 .site-header { --utility-icon-size:20px; }
 .site-header .utility-button[href^="mailto:"] svg { width:18px; height:18px; }
}
:is(.site-header,.mobile-utilities) .utility-button[href^="https://wa.me/"] svg { width:calc(var(--utility-icon-size) * .85); height:calc(var(--utility-icon-size) * .85); }
:is(.site-header,.mobile-utilities) .utility-button[href$="/faq"] svg { width:calc(var(--utility-icon-size) * .9); height:calc(var(--utility-icon-size) * .9); stroke-width:2.6; }
.mobile-utilities .utility-button[href^="mailto:"] svg { width:22px; height:22px; }
@media (width < 768px) {
 .site-header .theme-toggle .theme-toggle__icon { width:20px; height:20px; stroke-width:1.7; }
}
@media (min-width:768px) {
 :is(.site-header,.site-footer__preferences) .theme-toggle .theme-toggle__icon { width:18px; height:18px; }
 :is(.site-header,.site-footer__preferences) .utility-button[href^="https://wa.me/"] svg { width:15.5px; height:15.5px; }
}
.utility-button,
.site-header .theme-toggle,
.site-footer .theme-toggle,
.mobile-utilities .theme-toggle {
display:inline-flex; align-items:center; justify-content:center; flex:0 0 var(--utility-size);
  width:var(--utility-size); height:var(--utility-size); padding:0; border:var(--utility-border-width,1px) solid currentColor; border-radius:var(--utility-radius,50%);
  color:inherit; background:transparent; font-family:var(--font-body); font-size:var(--text-body); font-weight:var(--font-weight-regular); line-height:1; cursor:pointer;
}
.utility-button svg,
.site-header .theme-toggle__icon,
.site-footer .theme-toggle__icon,
.mobile-utilities .theme-toggle__icon {
width:var(--utility-icon-size); height:var(--utility-icon-size); transform:none;
}
:is(.site-header,.mobile-utilities) :is(.utility-button svg,.theme-toggle__icon,.header-search summary svg) { transform:translateY(-2px); }
:is(.site-header,.mobile-utilities) .header-search summary svg,
:is(.site-header,.mobile-utilities) .utility-button[href^="mailto:"] svg { transform:translateY(-1.5px); }
:is(.site-header,.mobile-utilities) .utility-button[href$="/faq"] svg { transform:translateY(-1px); }
.site-header .theme-toggle__label,
.site-footer .theme-toggle__label,
.mobile-utilities .theme-toggle__label {
display:none;
}
.site-header .theme-toggle[hidden],
.site-footer .theme-toggle[hidden],
.mobile-utilities .theme-toggle[hidden] {
display:none;
}
.utility-language:is(:hover,:focus-visible) { font-weight:700; }
.site-footer__preferences > *::before {
content:none;
}
.site-footer__preferences {
position:relative; width:fit-content; max-width:100%; margin-inline:auto; flex-wrap:nowrap;
}
.mobile-utilities {
display:none;
}
@media (width < 768px) {
body {
padding-bottom:calc(var(--utility-bar-height) + env(safe-area-inset-bottom,0px));
}
html {
scroll-padding-bottom:calc(var(--utility-bar-height) + env(safe-area-inset-bottom,0px));
}
.site-footer__preferences {
display:none;
}
.mobile-utilities {
display:flex; position:fixed; inset-inline:0; bottom:var(--keyboard-offset,0px); z-index:1100; justify-content:center;
    padding:var(--utility-padding-mobile) max(var(--utility-padding-mobile),env(safe-area-inset-right,0px)) calc(var(--utility-padding-mobile) + env(safe-area-inset-bottom,0px)) max(var(--utility-padding-mobile),env(safe-area-inset-left,0px));
    color:var(--color-text-inverse); background:var(--color-surface-dark);
    box-shadow:0 -4px 16px rgba(0,0,0,.18);
    --utility-size:var(--utility-size-mobile); --utility-gap:var(--space-2);
    visibility:hidden; opacity:0; transform:translateY(100%);
    transition:transform var(--transition),opacity var(--transition),visibility var(--transition);
}
.mobile-utilities.is-visible, .mobile-utilities:focus-within {
visibility:visible; opacity:1; transform:translateY(0);
}
.mobile-utilities__controls {
display:flex; align-items:center; justify-content:space-around; gap:var(--utility-gap); position:relative; width:100%; max-width:100%;
}
}
@media (max-width:359px) {
.mobile-utilities {
--utility-gap:var(--utility-gap-compact);
}
}
@media (prefers-reduced-motion:reduce) {
.mobile-utilities {
transition:none;
}
}
@media (pointer: coarse) {
 :is(.site-header,.mobile-utilities) :is(.utility-button,.theme-toggle),
 .site-header__menu-button { position:relative; }
 :is(.site-header,.mobile-utilities) :is(.utility-button,.theme-toggle,.header-search summary)::after,
 .site-header__menu-button::after {
  content:""; position:absolute; top:50%; left:50%; width:max(100%,44px); height:max(100%,44px); transform:translate(-50%,-50%);
 }
}
.featured-tours { position: relative; touch-action: pan-y pinch-zoom; }
.featured-tours__card :is(h2,h3) a:is(:hover,:focus-visible) { color:inherit; text-decoration:none; }
.featured-tours__viewport { position: relative; }
.featured-tours__viewport.is-slide-transitioning { overflow: clip; }
.featured-tours__viewport > .slide-transition__rail { position: absolute; inset: 0; pointer-events: none; will-change: transform; }
.featured-tours__viewport .slide-transition__panel { position: absolute; top: 0; margin: 0; pointer-events: none; }
.featured-tours__mobile-heading { display: grid; padding-bottom: var(--space-5); }
.featured-tours__mobile-heading h2 { grid-column: 1 / -1; }
.featured-tours__slide { align-items: stretch; padding-bottom: var(--space-6); }
.featured-tours__slide[hidden], .featured-tours__controls[hidden] { display: none; }
.featured-tours__media { position: relative; grid-column: 2 / span 7; grid-row: 1; min-width: 0; overflow: hidden; }
.featured-tours__image { display: block; width: 100%; height: 100%; min-height: calc(var(--space-10) * 2); aspect-ratio: 3 / 2; object-fit: cover; }
.featured-tours__difficulty { position: absolute; top: 0; left: 0; writing-mode: horizontal-tb; white-space: nowrap; padding: var(--space-2) var(--space-3); font-size: var(--text-small); font-weight: var(--font-weight-medium); color: var(--color-text-inverse); }
.featured-tours__difficulty--beginner { background: var(--color-difficulty-easy); }
.featured-tours__difficulty--intermediate { background: var(--color-difficulty-medium); }
.featured-tours__difficulty--advanced { background: var(--color-difficulty-hard); }
.featured-tours__card { grid-column: 7 / span 5; grid-row: 1; align-self: end; position: relative; min-width: 0; margin-top: var(--space-8); margin-bottom: calc(-1 * var(--space-6)); padding: var(--space-5); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); background: var(--color-surface-elevated); border-radius: var(--border-radius); }
.featured-tours__slide--image-right .featured-tours__media { grid-column: 5 / span 7; }
.featured-tours__slide--image-right .featured-tours__card { grid-column: 2 / span 5; }
.featured-tours__facts { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.featured-tours__controls { grid-column: 2 / -2; display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); margin-top: var(--space-4); }
.featured-tours__arrow { min-width: var(--space-6); min-height: var(--space-6); padding: var(--space-3); }
@media(width < 768px) {
 .featured-tours.section { padding-block: 0; background: var(--image-base); --color-text: var(--color-text-inverse); color: var(--color-text-inverse); }
 .featured-tours__slide { min-height: 100vh; min-height: 100svh; padding-block: var(--space-8); row-gap: 0; align-items: center; }
 .featured-tours__media, .featured-tours__slide--image-right .featured-tours__media { position: absolute; inset: 0; }
 .featured-tours__media::after { content: ''; position: absolute; inset: 0; background: rgba(0, 0, 0, .55); pointer-events: none; }
 .featured-tours__image { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; }
 .featured-tours__card, .featured-tours__slide--image-right .featured-tours__card { grid-column: 1 / -1; grid-row: 1; align-self: center; align-items: center; text-align: center; margin: 0; padding: 0; gap: var(--space-4); background: transparent; }
 .featured-tours__difficulty { display: block; z-index: 2; }
 .featured-tours__card .button { max-width: 100%; min-height: var(--space-6); }
 .featured-tours__navigation { position: absolute; inset-inline: 0; bottom: var(--space-4); }
 .featured-tours__controls { grid-column: 1 / -1; margin: 0; }
}
.featured-tours__card { gap: var(--space-3); }
.featured-tours__facts.tour-overview__facts { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-5); margin-top: 0; }
.featured-tours__facts .tour-overview__fact { flex: 0 1 auto; max-width: 100%; }
@media(width < 768px) {
 .featured-tours__facts.tour-overview__facts { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,calc(var(--space-7) * 2)),1fr)); text-align: left; }
 .featured-tours__action { justify-items: center; }
}
@media(min-width:768px) {
 .featured-tours__navigation { position: absolute; inset-inline: 0; top: 50%; transform: translateY(-50%); pointer-events: none; }
 .featured-tours__controls { grid-column: 1 / -1; margin-top: 0; }
 .featured-tours__arrow { pointer-events: auto; }
}
@media(width < 768px) {
 .featured-tours__card, .featured-tours__slide--image-right .featured-tours__card { align-items: flex-start; text-align: left; }
 .featured-tours__action { justify-items: start; }
}
@media (width < 768px) {
 .featured-tours--plain-mobile.section { --color-text: inherit; color: var(--color-text); background: var(--color-surface); }
 .featured-tours__mobile-heading { display: grid; padding-top: var(--space-7); padding-bottom: var(--space-4); }
 .featured-tours__mobile-heading h2 { grid-column: 1 / -1; margin: 0; }
 .featured-tours--plain-mobile .featured-tours__slide { min-height: 0; align-items: start; row-gap: var(--space-4); padding-block: 0 var(--space-5); }
 .featured-tours--plain-mobile .featured-tours__media { display: block; position: relative; inset: auto; grid-column: 1 / -1; grid-row: 1; }
 .featured-tours--plain-mobile .featured-tours__media::after { content: none; }
 .featured-tours--plain-mobile .featured-tours__image { position: static; width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; }
 .featured-tours--plain-mobile .featured-tours__difficulty { display: block; writing-mode: horizontal-tb; white-space: nowrap; padding: var(--space-2) var(--space-3); }
 .featured-tours--plain-mobile .featured-tours__card { grid-column: 1 / -1; grid-row: 2; align-self: start; }
 .featured-tours--plain-mobile .featured-tours__navigation { position: static; padding-bottom: var(--space-7); }
}
.rich-text { overflow-wrap: anywhere; hyphens: auto; min-width: 0; }
.rich-text > * + * { margin-top: var(--space-4); }
.rich-text p { white-space: break-spaces; }
.rich-text h3 { font-family: var(--font-heading); font-weight: var(--font-weight-heading); font-size: var(--text-h4); line-height: var(--line-height-h4); }
.rich-text strong { font-weight: 700; }
.rich-text a { text-decoration: underline; text-underline-offset: 0.15em; }
.rich-text ul { list-style: disc; padding-left: var(--space-4); }
.rich-text ol { list-style: decimal; padding-left: var(--space-4); }
.rich-text li + li { margin-top: var(--space-2); }
.rich-text li > p + p, .rich-text li > ul, .rich-text li > ol { margin-top: var(--space-2); }
.rich-text--article h2 { font-size: var(--text-h3); line-height: var(--line-height-h3); }
.rich-text--article p { white-space: normal; }
.rich-text--article h3 { font-size: var(--text-h4); line-height: var(--line-height-h4); }
.rich-text--article > h2,.rich-text--article > h3 { margin-top: var(--space-6); }
.rich-text--article em { font-style: italic; }
.rich-text--article blockquote { padding-inline-start: var(--space-4); border-inline-start: 2px solid var(--color-rule); }
.rich-text--article figure { margin-block: var(--space-5); }
.rich-text--article figure img { width: 100%; height: auto; }
.rich-text--article figcaption { text-align: center; margin-top: var(--space-2); }
.admin-rich-surface figure[data-image-id] { padding: var(--space-4); background: var(--color-surface-elevated); }
.tour-detail-layout__content { min-width: 0; }
.tour-detail__body, .tour-detail__wide { min-width: 0; display: grid; gap: var(--space-5); }
.tour-detail__body { max-width: var(--prose-width); }
.tour-detail__body > .button { justify-self: start; max-width: 100%; }
.tour-detail__heading { grid-column: 1 / -1; margin-bottom: var(--space-5); }
.tour-topo { --tour-topo-space: var(--space-8); }
.tour-topo.section { padding-block: var(--tour-topo-space); }
.tour-topo > .grid { position: relative; align-items: stretch; }
.tour-topo__rail { grid-column: 1 / span 2; grid-row: 1; position: relative; min-height: var(--space-5); }
.tour-topo__line.topo-process__route { top: var(--space-3); left: 0; width: 100%; height: calc(100% + var(--tour-topo-space) - var(--space-3)); transform: none; }
.tour-topo__line-in.topo-process__route { top: calc(-1 * var(--tour-topo-space)); left: 0; width: 100%; height: calc(var(--tour-topo-space) + var(--space-3)); }
.tour-topo--start .tour-topo__line-in { display: none; }
.tour-topo__number.topo-process__number { top: 0; left: calc(50% - var(--space-3)); font-size: var(--text-small); }
.tour-topo--end .tour-topo__line { height: calc(100% - var(--space-3)); }
.tour-topo > .grid > .tour-detail__body, .tour-topo > .grid > .tour-detail__wide { grid-column: 4 / span 8; grid-row: 1; }
.tour-topo--right > .grid > .tour-topo__rail { grid-column: 11 / span 2; }
.tour-topo--right > .grid > .tour-detail__body, .tour-topo--right > .grid > .tour-detail__wide { grid-column: 2 / span 8; }
.tour-requirements .tour-topo__line { height: calc(100% - var(--space-3)); }
.tour-topo-crossing__route { grid-column: 2 / -2; margin-inline: calc(-1 * var(--grid-gutter) / 2); position: relative; height: var(--space-8); }
.tour-topo-crossing__desktop.topo-process__route { top: 0; left: 0; width: 100%; height: calc(100% + var(--tour-topo-space)); }
.tour-topo-crossing__mobile { display: none; }
@media(min-width:768px) {
 .tour-topo--connected > .tour-topo-crossing { margin-top: var(--tour-topo-space); }
 .tour-topo--connected:not(.tour-topo--right) .tour-topo-crossing__desktop { transform: scaleX(-1); }
 .tour-topo--connected .topo-process__bolt { top: 24%; left: 38%; }
 .tour-topo--connected .topo-process__piton { top: 62%; right: 38%; }
 .tour-topo--protection-1 .topo-process__bolt { top: 42%; left: 22%; }
 .tour-topo--protection-1 .topo-process__piton { top: 78%; right: 47%; }
 .tour-topo--protection-2 .topo-process__bolt { top: 58%; left: 62%; }
 .tour-topo--protection-2 .topo-process__piton { top: 32%; right: 65%; }
}
.tour-summary__facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.tour-summary__facts dt { margin-bottom: var(--space-2); }
.tour-gallery[data-section-tone], .breadcrumbs:has(+ .tour-gallery) { --color-surface: var(--blue-900); --color-text: var(--white); color: var(--white); background: var(--blue-900); }
.tour-gallery__images { grid-column: 2 / 12; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-5); }
.tour-gallery__images img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.tour-gallery__images figcaption { margin-top: var(--space-3); text-align: center; }
.tour-itinerary .rich-text h3:not(:first-child) { margin-top: var(--space-6); }
.tour-requirements .tour-detail__wide > h2 { grid-row: 1; }
.tour-requirements .tour-detail__wide > .rich-text { grid-row: 3; }
.tour-requirements__scale { grid-row: 2; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.tour-requirements__level { text-align: center; border-top: var(--space-2) solid var(--level-color); padding: var(--space-2); font-size: var(--text-small); }
.tour-requirements__level--beginner { --level-color: var(--color-difficulty-easy); }
.tour-requirements__level--intermediate { --level-color: var(--color-difficulty-medium); }
.tour-requirements__level--advanced { --level-color: var(--color-difficulty-hard); }
.tour-requirements__level.is-current { color: var(--color-text-inverse); background: var(--level-color); font-weight: var(--font-weight-semibold); }
.tour-requirements__ratings { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-4); }
.tour-requirements__ratings h3 { font-size: var(--text-body); }
.tour-requirements__dots { display: flex; gap: var(--space-2); margin-top: var(--space-3); }
.tour-requirements__dots span { width: calc(var(--space-1) + var(--space-2)); height: calc(var(--space-1) + var(--space-2)); border-radius: 50%; background: currentColor; opacity: .2; }
.tour-requirements__dots .is-filled { opacity: 1; }
.tour-equipment .tour-detail__body { max-width: var(--prose-width-small); }
.tour-dates__body { display: grid; gap: var(--space-4); }
.tour-dates__list { list-style: none; padding: 0; display: grid; }
.tour-pricing__list { list-style: none; padding: 0; display: grid; gap: var(--space-4); }
.tour-pricing__list li { display: grid; grid-template-columns: 1fr 2fr; gap: var(--space-4); }
.tour-pricing__services { display: grid; margin-top: var(--space-4); }
.tour-pricing__services h3 { margin-bottom: var(--space-4); font-size: var(--text-h5); }
.tour-doubts .tour-detail__body { grid-column: 3 / span 8; }
.tour-doubts .button + h2 { margin-top: var(--space-6); }
.tour-doubts a:not(.button) { text-decoration: underline; }
.tour-route-goal .cta-section__content { align-items: flex-start; }
.tour-route-goal { min-height: 60svh; display: grid; align-items: center; }
[id^="tour-section-"] { scroll-margin-top: calc(var(--header-height) + var(--space-4)); }
@media(min-width:768px) {
 .tour-gallery .tour-detail__heading { text-align: center; }
 .tour-hero__content { grid-column: 1 / -1; width: 100%; }
 .tour-hero__navigation { font-size: var(--text-small); }
}
@media(width < 768px) {
 .tour-hero[data-surface="image"] { background: var(--theme-alternate); }
 .tour-hero__grid { row-gap: var(--space-6); }
 .tour-hero__content { gap: var(--space-4); }
 .tour-hero__navigation { font-size: var(--text-small); }
 .tour-topo { --tour-topo-space: var(--space-7); }
 .tour-topo > .grid > .tour-topo__rail { grid-column: 1; }
 .tour-topo-crossing__route { margin: 0; height: var(--space-6); }
 .tour-topo-crossing__desktop { display: none; }
 .tour-topo-crossing__mobile.topo-process__route { display: block; top: 0; left: 0; width: 100%; height: calc(100% + var(--tour-topo-space)); }
 .tour-detail__body, .tour-detail__wide { gap: var(--space-4); }
 .tour-summary__facts > div { display: block; }
 .tour-summary__facts dd { font-size: var(--text-body); }
 .tour-gallery__images { grid-column: 1 / -1; grid-template-columns: minmax(0,1fr); gap: var(--space-5); }
 .tour-gallery__images img, .tour-gallery__images figure:first-child img { aspect-ratio: 4 / 3; }
 .tour-requirements__ratings { grid-template-columns: minmax(0,1fr); }
 .tour-requirements__ratings > div { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--space-2); }
 .tour-requirements__ratings h3 { font-size: var(--text-h4); }
 .tour-requirements__dots { margin: 0; gap: var(--space-1); }
 .tour-requirements__dots span { width: calc(var(--space-1) + var(--space-2)); height: calc(var(--space-1) + var(--space-2)); }
 .tour-pricing__services, .tour-pricing__list li { grid-template-columns: minmax(0,1fr); }
 .tour-pricing__list li { gap: var(--space-2); }
 .tour-doubts .tour-detail__body { grid-column: 1 / -1; }
 .tour-route-goal .cta-section__content { align-items: flex-start; text-align: left; }
}
@media(width < 768px) {
 .tour-topo > .grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0 var(--grid-gutter); isolation: isolate; }
 .tour-topo > .grid > .tour-topo__rail, .tour-topo > .tour-topo-crossing { display: none; }
 .tour-topo > .grid > .tour-detail__body, .tour-topo > .grid > .tour-detail__wide { grid-column: 1 / -1; gap: var(--space-5); }
 .tour-topo-crossing__route { grid-column: 1 / -1; width: var(--space-8); justify-self: center; }
 .tour-topo :is(h2,h3,p,dt,dd,li), .tour-topo .rich-text, .tour-topo .tour-summary__facts > div, .tour-topo .tour-requirements__ratings { background-color: var(--color-surface); }
 .tour-topo .button--standard { background-color: var(--color-surface); }
 .tour-pricing__services { gap: var(--space-6); }
}
@media(width < 768px) {
 .tour-summary__facts.topo-facts { gap: 0; }
}
.expandable-text { min-width: 0; }
.expandable-text.is-collapsed > .expandable-text__content {
 max-height: var(--expandable-height);
 overflow: hidden;
}
.expandable-text__toggle {
 display: block;
 margin-top: var(--space-4);
 padding: 0;
 border: 0;
 border-radius: 0;
 background: transparent;
 color: inherit;
 font: inherit;
 text-align: left;
 text-transform: none;
 letter-spacing: inherit;
 text-decoration: underline;
 text-underline-offset: .15em;
 cursor: pointer;
}
.expandable-text__toggle:hover { color: inherit; background: transparent; }
.expandable-text__toggle:focus-visible { outline: 2px solid currentColor; outline-offset: var(--space-1); }
.expandable-text__toggle[hidden] { display: none; }
@media(min-width:768px) {
 .tour-equipment > .grid > .tour-detail__body { grid-column: 4 / span 7; max-width: calc(var(--prose-width-small) * 7 / 8); }
}
.tour-topo__details { left: 0; width: 100%; height: calc(100% + var(--tour-topo-space) - var(--space-3)); }
.tour-topo--end .tour-topo__details, .tour-requirements .tour-topo__details { height: calc(100% - var(--space-3)); }
.tour-summary__fact-line { display: block; }
.tour-summary__fact-line + .tour-summary__fact-line { margin-top: var(--space-2); }
@media(min-width:768px) {
 .tour-summary__dates { grid-column: 1 / -1; }
 .tour-summary__dates .tour-summary__fact-line { white-space: nowrap; }
}
.tour-summary__date-note { display: block; margin-top: var(--space-3); font-size: var(--text-body); font-weight: var(--font-weight-normal, 400); white-space: normal; }
.tour-booking-description { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); margin-top: var(--space-3); font-size: var(--text-body); font-weight: 400; white-space: normal; }
.tour-date-request-note { display: block; font-size: var(--text-body); font-weight: 400; }
.tour-booking-description + .tour-date-request-note { margin-top: var(--space-4); }
.tour-summary__booking .tour-booking-description { margin-top: 0; }
@media(min-width:768px) { .tour-summary__booking { grid-column: 1 / -1; } }
.tour-dates__inner { display: grid; gap: var(--space-7); align-items: start; }
.tour-dates__booking h2 { margin-bottom: var(--space-4); }
.tour-dates__booking .tour-booking-description { margin-top: 0; }
.tour-dates__list li { overflow-wrap: normal; }
@media(width < 768px) {
 .tour-summary__facts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-5) var(--space-4); }
 .tour-dates__inner { grid-template-columns: minmax(0,1fr); gap: var(--space-7); }
 .tour-summary > .grid > .tour-topo__rail, .tour-dates-station > .grid > .tour-topo__rail { display: none; }
 .tour-summary > .grid > .tour-detail__wide, .tour-dates-station > .grid > .tour-detail__wide { padding-top: 0; }
 .tour-summary .tour-topo__line, .tour-dates-station .tour-topo__line { display: none; }
}
.tour-summary { --tour-topo-space: var(--space-6); }
.tour-summary__facts { gap: var(--space-4) var(--space-5); }
.tour-pricing__services { grid-template-columns: minmax(0,1fr); gap: var(--space-6); }
@media(min-width:768px) { .tour-pricing > .grid > .tour-detail__body { max-width: none; } }
.tour-dates__inner { grid-template-columns: minmax(0,1fr); }
.tour-enquiry__text .tour-booking-description { margin-top: 0; }
@media(width < 768px) {
 .tour-summary__fact--price, .tour-summary__fact--location { grid-column: 1 / -1; }
}
.tour-dates__entry { border-bottom: 1px solid currentColor; }
.tour-dates__entry time { white-space: nowrap; }
.tour-dates__status { font-size: var(--text-small); font-weight: var(--font-weight-semibold); }
.tour-dates__button { display: grid; gap: var(--space-2); padding-block: var(--space-5); color: inherit; text-decoration: none; }
.tour-dates__entry:first-child .tour-dates__button { padding-top: 0; }
.tour-dates__button[href]:hover .tour-dates__status { text-decoration: underline; text-underline-offset: .2em; }
.breadcrumbs { background: var(--color-surface); color: var(--color-text); }
.breadcrumbs:not(.breadcrumbs--hero) + .section { padding-block-start: var(--space-5); }
.breadcrumbs ol { grid-column: 1 / -1; display: flex; align-items: center; gap: var(--space-3); min-width: 0; max-width: 100%; overflow-x: auto; padding-block: var(--space-3); list-style: none; }
.breadcrumbs li { display: flex; align-items: center; gap: var(--space-3); flex-shrink: 0; white-space: nowrap; }
.breadcrumbs a { display: inline-block; padding-block: var(--space-2); text-underline-offset: .2em; }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs [aria-current] { font-weight: 600; }
.breadcrumbs__separator { opacity: .65; }
.breadcrumbs a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.hero > .breadcrumbs--hero { position: absolute; top: calc(var(--header-height) + var(--space-5)); inset-inline: 0; z-index: 3; background: transparent; color: var(--color-text-inverse); }
.breadcrumbs--hero ol, .breadcrumbs--hero a { padding-block: 0; }
.header-search summary {
display:inline-flex; align-items:center; justify-content:center; flex:0 0 var(--utility-size);
  width:var(--utility-size); height:var(--utility-size); padding:0; border:var(--utility-border-width,1px) solid currentColor; border-radius:var(--utility-radius,50%);
  color:inherit; background:transparent; font-family:var(--font-body); font-size:var(--text-body); font-weight:var(--font-weight-regular); line-height:1; cursor:pointer;
}
.header-search summary svg {
width:var(--utility-icon-size); height:var(--utility-icon-size); transform:none;
}
.header-search {
position:relative; flex:0 0 auto; width:var(--utility-size); height:var(--utility-size); color:inherit; transition:width 300ms ease;
}
.header-search summary {
position:absolute; inset-inline-end:0; top:0; z-index:2; list-style:none; transition:transform 300ms ease;
}
.header-search summary::-webkit-details-marker {
display:none;
}
.header-search[open] {
width:var(--utility-size); position:static;
}
.header-search[open] summary {
border-color:transparent; inset-inline-start:0; inset-inline-end:auto; transform:none;
}
.header-search__form {
position:absolute; top:0; inset-inline:0; width:100%; height:var(--utility-size); z-index:1;
  display:flex; align-items:center; border:1px solid currentColor; border-radius:var(--radius-control);
  padding-inline:var(--utility-size) var(--space-1); background:var(--color-surface-dark); color:inherit;
  animation:search-expand 300ms ease;
}
.header-search__form input {
flex:1; width:0; min-width:0; height:100%; padding-inline:var(--space-2); color:inherit; font-size:var(--text-body); line-height:1.4; background:transparent; appearance:none; outline:none;
}
.header-search__form input:focus-visible {
background:transparent; outline:none;
}
.header-search__form input::placeholder {
color:inherit; opacity:.75;
}
.header-search__form input::-webkit-search-cancel-button,
.header-search__form input::-webkit-search-decoration {
display:none;
}
.header-search__form button {
flex:0 0 var(--utility-size-compact); display:flex; justify-content:center; align-items:center; height:var(--utility-size-compact); cursor:pointer; visibility:hidden;
}
.header-search__form:has(input:not(:placeholder-shown)) button {
visibility:visible;
}
.header-search summary:focus-visible,
.header-search__form:focus-within {
outline:2px solid currentColor; outline-offset:3px;
}
.header-search__form:focus-within {
outline:none; border-width:2px;
}
.header-search.is-closing .header-search__form {
animation:search-expand 300ms ease reverse both;
}
.header-search.is-closing summary {
transform:none; border-color:currentColor;
}
.header-search.is-closing {
width:var(--utility-size);
}
@keyframes search-expand {
from { clip-path:inset(0 0 0 calc(100% - var(--utility-size)) round var(--utility-search-radius,var(--utility-size))); } to { clip-path:inset(0 round var(--utility-search-radius,var(--utility-size))); }
}
.site-footer__preferences .header-search[open] {
position:static; width:var(--utility-size);
}
.site-footer__preferences .header-search[open] summary {
inset-inline-start:0; inset-inline-end:auto; transform:none;
}
.site-footer__preferences .header-search__form {
inset-inline:0; width:100%; background:var(--color-surface);
}
.site-footer__preferences:has(.header-search[open]) > :not(.header-search),
.site-header__actions:has(.header-search[open]) > :not(.header-search):not(.site-header__menu-button),
.mobile-utilities__controls:has(.header-search[open]) > :not(.header-search) {
visibility:hidden;
}
.search-intro {
display:grid; gap:var(--space-5);
}
.search-form {
display:flex; flex-wrap:wrap; align-items:flex-end; gap:var(--space-3);
}
.search-form .form-field {
flex:1 1 240px;
}
.search-filters,
.search-pagination .pagination {
display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-3);
}
:root:not([data-theme="dark"]) :is(.site-header,.mobile-utilities) .header-search__form {
color:var(--color-text); background:var(--gray-050);
}
@media (width < 768px) {
.search-filters {
  flex-wrap: nowrap;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  padding-block: var(--space-2);
}
.search-filters > .button {
  flex-shrink: 0;
  white-space: nowrap;
}
.mobile-utilities .header-search__form {
background:var(--color-surface-dark);
}
}
@media (prefers-reduced-motion:reduce) {
.header-search,
.header-search summary {
transition:none;
}
.header-search__form {
animation:none;
}
}
.form-section { grid-column: 3 / span 8; display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; }
.form-field { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }
.form-label { font-weight: var(--font-weight-semibold); }
.form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-4); }
.form-field .input,.form-field .textarea { border: 2px solid var(--color-text); background: transparent; }
.form-field [aria-invalid="true"] { border-color: var(--color-status-danger); }
.form-error { color: var(--color-text); margin: 0; }
.form-feedback { padding: var(--space-4); background: var(--color-surface-elevated); border-left: var(--space-1) solid var(--color-status-danger); overflow-wrap: anywhere; }
.form-feedback--success { border-color: var(--color-text); }
.form-feedback > * + * { margin-top: var(--space-3); }
.form-feedback ul { padding-left: var(--space-4); }
.form-feedback a,.form-checkbox a { text-decoration: underline; }
.form-checkbox { display: flex; align-items: baseline; gap: var(--space-3); }
.form-checkbox input { flex: 0 0 auto; width: var(--space-4); height: var(--space-4); accent-color: var(--color-text); }
.form-checkbox label { padding-block: var(--space-2); }
.form-stack > .button { align-self: flex-start; max-width: 100%; white-space: normal; }
.form-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.form-field input,.form-field textarea,.form-field select,.form-feedback { scroll-margin-top: calc(var(--header-height) + var(--space-4)); }
.form-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.form-group > legend { padding: 0; margin-bottom: var(--space-4); }
.form-group + .form-group { margin-top: var(--space-4); }
.form-field select { width: 100%; min-width: 0; max-width: 100%; }
.phone-field { position: relative; display: flex; min-width: 0; border: 2px solid var(--color-text); border-radius:var(--radius-field); }
.form-field .phone-field > .input { border: 0; min-width: 0; flex: 1; width: 0; }
.phone-field .phone-country { max-width: 45%; }
.phone-trigger { order: -1; flex: 0 0 auto; padding: var(--space-3); border: 0; border-radius:var(--radius-field); background: transparent; color: var(--color-text); font: inherit; cursor: pointer; display: inline-flex; align-items: center; }
.phone-trigger svg { flex-shrink: 0; }
.phone-trigger.is-filled { background-color: transparent; }
.phone-picker { position: absolute; inset-inline: -2px; top: calc(100% + var(--space-2)); z-index: 20; padding: var(--space-3); background: var(--color-surface-elevated); color: var(--color-text); border: 2px solid var(--color-text); }
.phone-picker .input { width: 100%; min-width: 0; }
.phone-options { max-height: 15rem; overflow-y: auto; overscroll-behavior: contain; margin-top: var(--space-2); }
.phone-options button { display: block; width: 100%; padding: var(--space-3); border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.phone-options button:hover,.phone-options button:focus-visible { background: var(--color-background); text-decoration: underline; }
.phone-field [hidden] { display: none; }
.phone-field { border-radius:var(--radius-field); }
.phone-field:focus-within,
.date-field:focus-within {
 outline:2px solid var(--color-text); outline-offset:var(--space-1);
}
.date-field { border-radius:var(--radius-field); }
.date-field .input { border-radius:inherit; }
.form-choice .button { border-radius:var(--radius-field); }
.phone-field :is(input,select,button):focus,
.phone-field :is(input,select,button):focus-visible,
.date-field .input:focus,
.date-field .input:focus-visible {
 outline:none; box-shadow:none; background:transparent;
}
.phone-options button:is(:hover,:focus-visible) { background:transparent; }
.phone-field:has(.phone-picker:not([hidden])) {
 outline:none;
 border-radius:var(--radius-field);
}
.phone-field:has(.phone-picker:not([hidden]))::before {
 content:''; position:absolute; inset:-8px -8px -2px;
 border:2px solid var(--color-text); border-bottom:0;
 border-radius:calc(var(--radius-field) + 6px) calc(var(--radius-field) + 6px) 0 0;
 pointer-events:none;
}
.phone-picker {
 inset-inline:-8px; top:calc(100% + 2px);
 border:2px solid var(--color-text); border-top:0;
 border-radius:0 0 calc(var(--radius-field) + 6px) calc(var(--radius-field) + 6px);
 background:var(--color-surface);
 padding-inline:4px;
}
.form-field .phone-picker .input {
 border-radius:var(--radius-field);
}
.phone-picker .phone-options,
.phone-picker > p { margin-inline:calc(var(--space-3) - 4px); }
.form-field--error .phone-field { border-color: var(--color-status-danger); }
.date-field { position: relative; display: block; width: 100%; max-width: 100%; min-width: 0; min-height: var(--field-height); }
.date-field .input { position: absolute; inset: 0; display: block; box-sizing: border-box; width: 100%; height: 100%; max-width: 100%; min-width: 0; min-inline-size: 0; min-height: var(--field-height); appearance: none; -webkit-appearance: none; padding-block: 0; padding-right: calc(var(--field-padding-x) + 2rem); text-align: center; }
.date-field__placeholder { display: flex; visibility: hidden; pointer-events: none; overflow-wrap: anywhere; white-space: normal; align-items: center; padding: var(--space-3) calc(var(--field-padding-x) + 2rem) var(--space-3) var(--field-padding-x); color: var(--color-text); min-height: var(--field-height); box-sizing: border-box; }
.date-field.is-empty:not(:focus-within) .date-field__placeholder { visibility: visible; }
.date-field.is-empty:not(:focus-within) input { color: transparent; }
.date-field.is-empty:not(:focus-within) input::-webkit-datetime-edit { opacity: 0; }
.date-field__icon { position: absolute; right: var(--field-padding-x); top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--color-text); }
.date-field input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
.date-field input::-webkit-date-and-time-value { min-width: 0; height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; margin: 0; }
.date-field input::-webkit-datetime-edit { min-width: 0; display: inline-flex; align-items: center; justify-content: center; height: 100%; padding: 0; }
.form-choices { border: 0; margin: 0; padding: 0; min-inline-size: 0; }
.form-choices legend { margin-bottom: var(--space-2); }
.form-choices__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--grid-gutter); }
.form-choice { position: relative; min-width: 0; max-width: 100%; cursor: pointer; }
.form-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.form-choice .button { width: 100%; box-sizing: border-box; border-color: var(--color-text); font: inherit; font-weight: var(--font-weight-regular); letter-spacing: inherit; text-transform: none; padding-inline: var(--field-padding-x); white-space: normal; height: 100%; text-align: left; justify-content: flex-start; }
.form-choice input:checked + .button { background: var(--color-text); border-color: var(--color-text); color: var(--color-surface); }
.form-choice input:focus-visible + .button { text-decoration: underline; text-underline-offset: .2em; }
[data-step-form] [hidden],[data-form-intro][hidden] { display: none !important; }
[data-step-form] .form-group { margin-top: 0; }
[data-step-form] textarea { min-height: 16rem; }
.form-step-navigation { display: flex; flex-wrap: wrap; gap: var(--space-3); }
@media(width < 768px) {
 .form-section { grid-column: 1 / -1; }
 .form-row { grid-template-columns: 1fr; }
 .form-choices__options { grid-template-columns: minmax(0, 1fr); }
 .form-choice,.form-choice .button { width: 100%; box-sizing: border-box; }
}
.phone-picker { display:flex; flex-direction:column; min-height:0; overflow:auto; overscroll-behavior:contain; }
.phone-picker > .input { flex:0 0 auto; }
.phone-picker .phone-options { min-height:0; flex:1 1 auto; scrollbar-width:thin; }
.phone-field[data-picker-up] .phone-picker { top:auto; bottom:calc(100% + 2px); border-top:2px solid; border-bottom:0; border-radius:calc(var(--radius-field) + 6px) calc(var(--radius-field) + 6px) 0 0; }
.phone-field[data-picker-up]:has(.phone-picker:not([hidden]))::before { inset:-2px -8px -8px; border-top:0; border-bottom:2px solid; border-radius:0 0 calc(var(--radius-field) + 6px) calc(var(--radius-field) + 6px); }
.blog-list,.blog-filters { display: grid; gap: var(--space-4); }
.blog-filters__links,.pagination { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.blog-article { justify-self: center; }
.blog-article > * + * { margin-top: var(--space-4); }
.blog-article__hero { width: 100%; height: auto; }
.blog-article figcaption { margin-top: var(--space-2); text-align: center; }
.hero--compact,.hero--compact .hero__grid { min-height: 0; }
.hero--compact .hero__grid { padding-top: calc(var(--header-height) + var(--space-7)); padding-bottom: var(--space-7); }
.blog-inline-image a { display: block; }
.blog-inline-image img { display: block; width: 100%; height: auto; }
.blog-article .blog-inline-image figcaption { margin: var(--space-3) 0 0; text-align: center; }
.gallery { --color-text: var(--white); --color-surface: var(--blue-900); color: var(--white); background: var(--blue-900); grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); align-items: start; padding-block: var(--space-4); min-width: 0; }
.gallery__track { grid-column: 1 / -1; grid-row: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-5); min-width: 0; }
.gallery__track { position: relative; }
.gallery__track.is-slide-transitioning { overflow: clip; }
.slide-transition__rail { position: absolute; inset: 0; pointer-events: none; will-change: transform; }
.slide-transition__panel { position: absolute; top: 0; margin: 0; grid-area: auto; pointer-events: none; }
.gallery .gallery__slide { margin: 0; min-width: 0; }
.gallery__slide[hidden], .gallery__arrow[hidden] { display: none; }
.gallery__open { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.gallery .gallery__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gallery .gallery__slide figcaption { text-align: center; margin: var(--space-3) 0 0; }
.gallery__arrow { width: var(--slideshow-control-width); min-width: 0; padding: var(--space-2); grid-row: 2; position: relative; display: grid; place-items: center; color: inherit; border-color: currentColor; }
.gallery__previous { grid-column: 1; justify-self: start; }.gallery__next { grid-column: 2; justify-self: end; }
.gallery:has(.gallery__slide:only-child) .gallery__track { grid-template-columns: minmax(0,1fr); }
.gallery-lightbox { width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; padding: var(--space-6) var(--space-3); background: var(--blue-900); color: var(--white); overflow: auto; }
.gallery-lightbox::backdrop { background: var(--blue-900); }
.gallery-lightbox, .gallery-lightbox__body, .gallery-lightbox figure, .gallery-lightbox img { box-shadow: none; }
.gallery-lightbox__body { min-height: 100%; display: grid; grid-template-columns: var(--slideshow-control-width) minmax(0,1fr) var(--slideshow-control-width); align-items: center; gap: var(--space-3); }
.gallery-lightbox figure { margin: 0; min-width: 0; grid-column: 2; grid-row: 1; text-align: center; }
.gallery-lightbox img { display: block; width: 100%; height: 70vh; height: 70dvh; object-fit: contain; }
.gallery-lightbox figcaption { margin-top: var(--space-3); }
.gallery-lightbox button { color: inherit; border-color: currentColor; display: grid; place-items: center; padding: var(--space-2); }
.gallery-lightbox__close { position: absolute; right: max(var(--space-3),env(safe-area-inset-right,0px)); top: max(var(--space-2),env(safe-area-inset-top,0px)); }
.gallery-lightbox { padding-left:max(var(--space-3),env(safe-area-inset-left,0px)); padding-right:max(var(--space-3),env(safe-area-inset-right,0px)); padding-bottom:max(var(--space-6),env(safe-area-inset-bottom,0px)); }
.gallery-lightbox [data-previous] { grid-column: 1; grid-row: 1; }.gallery-lightbox [data-next] { grid-column: 3; grid-row: 1; }
.gallery-lightbox button[hidden] { display: none; }
@media(width < 768px) { .gallery__track { grid-template-columns: minmax(0,1fr); } .gallery { gap: var(--space-2); } .gallery__open { aspect-ratio: 4 / 3; } }
@media(width < 768px) {
 .gallery { grid-template-columns: 1fr 1fr; gap: var(--space-4) var(--space-3); }
 .gallery__track { grid-column: 1 / -1; }
 .gallery__arrow { grid-row: 2; top: auto; transform: none; width: var(--space-6); }
 .gallery__previous { grid-column: 1; justify-self: start; }
 .gallery__next { grid-column: 2; justify-self: end; }
 .gallery-lightbox__body { grid-template-columns: 1fr 1fr; align-content: center; }
 .gallery-lightbox figure { grid-column: 1 / -1; }
 .gallery-lightbox [data-previous], .gallery-lightbox [data-next] { grid-row: 2; width: var(--slideshow-control-width); }
 .gallery-lightbox [data-next] { grid-column: 2; justify-self: end; }
}
.gallery.is-enhanced .gallery__track { align-items: start; }
.gallery.is-enhanced .gallery__slide { grid-row: 1; align-self: start; }
.gallery.is-enhanced .gallery__slide[hidden] { display: block; visibility: hidden; pointer-events: none; }
@media(width < 768px) {
 .gallery-lightbox__body { height: 100%; min-height: 0; grid-template-rows: minmax(0,1fr) auto; }
 .gallery-lightbox figure { max-height: 100%; overflow-y: auto; }
 .gallery-lightbox img { width: auto; max-width: 100%; height: auto; max-height: 65dvh; margin-inline: auto; }
}
@media(width < 768px) {
 .gallery-lightbox figure {
  height: 100%; min-height: 0; display: grid;
  grid-template-rows: minmax(0,1fr);
  row-gap: var(--space-3); overflow: visible; align-self: stretch;
 }
 .gallery-lightbox img { grid-row: 1; width: 100%; height: 100%; min-height: 0; max-height: none; object-fit: contain; }
 .gallery-lightbox figcaption { grid-row: 2; margin: 0; line-height: var(--line-height-body); overflow-y: auto; }
}
[data-gallery], .gallery-lightbox { touch-action: pan-y pinch-zoom; }
