:root {
  --site-bg: #f4f1e9;
  --site-paper: #fbfaf6;
  --site-ink: #11120f;
  --site-muted: #686960;
  --site-line: #d7d1c6;
  --site-focus-light: #fbfaf6;
  --site-focus-dark: #11120f;
  --site-focus-field: rgba(17, 18, 15, .12);
  --site-border-hover: rgba(17, 18, 15, .34);
  --site-hover-opacity: .72;
  --site-disabled-opacity: .52;
  --site-transition-fast: 160ms ease;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
picture,
video,
canvas,
svg {
  max-width: 100%;
}

:where(a[href], button, [role="button"], summary, label[for], select, .filter, .option, .chip, .round, .trigger, .multiselect-trigger, .submit, .submit-btn) {
  cursor: pointer;
}

:where(a.dir-card, a.pc, a.feature, a.card, a.route, a.route-card, a.story, a.final-card, a.fc, a.scenario, a.partner-story, a.partner, a.post) {
  color: inherit;
  text-decoration: none;
}

.card-link {
  display: inline-block;
  color: inherit;
}

:where(input:not([type]), input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="url"], input[type="number"], textarea) {
  cursor: text;
}

:where(button:disabled, input:disabled, textarea:disabled, select:disabled, [aria-disabled="true"]) {
  cursor: not-allowed;
  opacity: var(--site-disabled-opacity);
}

:where(a[href], button, [role="button"], summary, input, textarea, select, .button, .btn, .link, .read, .filter, .option, .chip, .round, .trigger, .multiselect-trigger, .submit, .submit-btn) {
  transition:
    color var(--site-transition-fast),
    background-color var(--site-transition-fast),
    border-color var(--site-transition-fast),
    box-shadow var(--site-transition-fast),
    opacity var(--site-transition-fast),
    transform var(--site-transition-fast);
}

@media (hover: hover) and (pointer: fine) {
  :where(.button, .btn, .link, .read, .filter, .chip, .round, .trigger, .multiselect-trigger, .submit, .submit-btn, .cta a):hover {
    opacity: var(--site-hover-opacity);
  }

  :where(input, textarea, select, .trigger, .multiselect-trigger):hover {
    border-color: var(--site-border-hover);
  }

  :where(a.dir-card, a.pc, a.feature, a.card, a.route, a.route-card, a.story, a.final-card, a.fc, a.scenario, a.partner-story, a.partner, a.post):hover .card-link {
    opacity: var(--site-hover-opacity);
  }
}

:where(.button, .btn, .link, .filter, .chip, .round, .trigger, .multiselect-trigger, .submit, .submit-btn, .cta a):active {
  transform: translateY(1px);
}

:where(a[href], button, input, textarea, select, summary, [tabindex]:not([tabindex="-1"])):focus {
  outline: none;
}

:where(a[href], button, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 2px solid var(--site-focus-light) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px var(--site-focus-dark) !important;
}

:where(input, textarea, select):focus-visible {
  outline: none !important;
  border-color: rgba(17, 18, 15, .48) !important;
  box-shadow: 0 0 0 4px var(--site-focus-field) !important;
}

.site-header__toggle:focus-visible {
  outline: 0 !important;
  box-shadow: none !important;
}

.site-cookie-notice {
  position: fixed;
  z-index: 1200;
  left: 50%;
  bottom: max(18px, env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  width: min(calc(100% - 32px), 860px);
  padding: 14px 14px 14px 18px;
  border: 1px solid rgba(202, 216, 177, .34);
  border-radius: 18px;
  background: rgba(17, 18, 15, .96);
  color: #f7f6f0;
  box-shadow: 0 18px 44px rgba(17, 18, 15, .25);
  opacity: 0;
  transform: translate(-50%, calc(100% + 28px));
  transition: opacity 180ms ease, transform 180ms ease;
}

.site-cookie-notice.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

.site-cookie-notice.is-leaving {
  opacity: 0;
  transform: translate(-50%, calc(100% + 28px));
}

.site-cookie-notice__copy {
  font-size: 14px;
  line-height: 1.38;
}

.site-cookie-notice__copy a {
  color: #d2dfbf;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.site-cookie-notice__accept {
  min-height: 40px;
  padding: 10px 16px;
  border: 1px solid #d9e2c9;
  border-radius: 999px;
  background: #d9e2c9;
  color: #11120f;
  font: inherit;
  font-size: 14px;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}

.site-cookie-notice__accept:hover { background: #e8eedf; }

@media (max-width: 620px) {
  .site-cookie-notice {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 15px;
    border-radius: 16px;
  }

  .site-cookie-notice__copy { font-size: 13px; }

  .site-cookie-notice__accept { width: 100%; }
}
