:root {
  --bs-font-sans-serif: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-border-radius-sm: .5rem;
  --bs-border-radius: 1rem;
  --bs-border-radius-lg: 1.5rem;

  --ol-font-display: "Cormorant Garamond", Georgia, serif;
  --ol-transition: 180ms ease;
  --ol-button-lift: -.125rem;

  /* Form controls remain light in both color modes. */
  --ol-input-bg: #fff;
  --ol-input-color: #14372d;
  --ol-input-placeholder: #6c7772;
  --ol-input-border: #b9c1bc;
  --ol-dropdown-hover-bg: #f3efe6;
}

#main {
  padding-top: var(--header-h); 
}

[data-bs-theme="light"] {
  --bs-body-bg: #f3efe6;
  --bs-body-bg-rgb: 243, 239, 230;
  --bs-body-color: #14372d;
  --bs-body-color-rgb: 20, 55, 45;
  --bs-heading-color: #0f2f27;
  --bs-emphasis-color: #0f2f27;
  --bs-emphasis-color-rgb: 15, 47, 39;
  --bs-secondary-color: #626b66;
  --bs-secondary-bg: #e9e6df;
  --bs-secondary-bg-rgb: 233, 230, 223;
  --bs-tertiary-bg: #fcfaf5;
  --bs-tertiary-bg-rgb: 252, 250, 245;
  --bs-border-color: #d4cabc;

  --bs-primary: #2c6570;
  --bs-primary-rgb: 44, 101, 112;
  --bs-secondary: #eee8dd;
  --bs-secondary-rgb: 238, 232, 221;
  --bs-success: #497455;
  --bs-success-rgb: 73, 116, 85;
  --bs-danger: #af4d44;
  --bs-danger-rgb: 175, 77, 68;

  --bs-success-bg-subtle: #d6e8d8;
  --bs-success-text-emphasis: #214c31;
  --bs-success-border-subtle: #a2c5a8;
  --bs-danger-bg-subtle: #f0d4cf;
  --bs-danger-text-emphasis: #7c2e27;
  --bs-danger-border-subtle: #d89b92;

  --bs-link-color: var(--bs-primary);
  --bs-link-color-rgb: var(--bs-primary-rgb);
  --bs-link-hover-color: #23545d;
  --bs-link-hover-color-rgb: 35, 84, 93;

  --ol-card-bg: #fffdf9;
  --ol-secondary-card-bg: #f7f4ee;
  --ol-success-card-bg: #edf5ee;
  --ol-danger-card-bg: #fae9e5;
  --ol-success-muted: #496851;
  --ol-danger-muted: #894a42;
  --ol-primary-hover: #23545d;
  --ol-secondary-hover: #ddd3c5;
  --ol-success-hover: #355944;
  --ol-danger-hover: #8e3932;
  --ol-action-color: #fff;
  --ol-secondary-color: #14372d;
  --ol-shadow: 0 1.5rem 4rem rgba(38, 51, 44, .12);
  --ol-header-shadow: 0 .75rem 2rem rgba(38, 51, 44, .1);
  --ol-card-hover-shadow: 0 1rem 2.5rem rgba(38, 51, 44, .12);
  --ol-button-shadow: 0 .25rem .7rem rgba(38, 51, 44, .1);
  --ol-button-hover-shadow: 0 .55rem 1.1rem rgba(38, 51, 44, .16);
}

[data-bs-theme="dark"] {
  --bs-body-bg: #0d211b;
  --bs-body-bg-rgb: 13, 33, 27;
  --bs-body-color: #f3efe6;
  --bs-body-color-rgb: 243, 239, 230;
  --bs-heading-color: #fff9ef;
  --bs-emphasis-color: #fff9ef;
  --bs-emphasis-color-rgb: 255, 249, 239;
  --bs-secondary-color: #aab4ae;
  --bs-secondary-bg: #1c2824;
  --bs-secondary-bg-rgb: 28, 40, 36;
  --bs-tertiary-bg: #122a22;
  --bs-tertiary-bg-rgb: 18, 42, 34;
  --bs-border-color: #315047;

  --bs-primary: #78b5ba;
  --bs-primary-rgb: 120, 181, 186;
  --bs-secondary: #efe7d9;
  --bs-secondary-rgb: 239, 231, 217;
  --bs-success: #a7cdb0;
  --bs-success-rgb: 167, 205, 176;
  --bs-danger: #e29384;
  --bs-danger-rgb: 226, 147, 132;

  --bs-success-bg-subtle: #173e2c;
  --bs-success-text-emphasis: #c4e2ca;
  --bs-success-border-subtle: #3c6c4d;
  --bs-danger-bg-subtle: #4a2722;
  --bs-danger-text-emphasis: #f5c1b6;
  --bs-danger-border-subtle: #875047;

  --bs-link-color: var(--bs-primary);
  --bs-link-color-rgb: var(--bs-primary-rgb);
  --bs-link-hover-color: #91c7ca;
  --bs-link-hover-color-rgb: 145, 199, 202;

  --ol-card-bg: #173329;
  --ol-secondary-card-bg: #24332e;
  --ol-success-card-bg: #1d4934;
  --ol-danger-card-bg: #57302a;
  --ol-success-muted: #9ec5a7;
  --ol-danger-muted: #e3a79b;
  --ol-primary-hover: #5f969d;
  --ol-secondary-hover: #ddd2c1;
  --ol-success-hover: #8db598;
  --ol-danger-hover: #cf7566;
  --ol-action-color: #0d211b;
  --ol-secondary-color: #0d211b;
  --ol-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .32);
  --ol-header-shadow: 0 .75rem 2rem rgba(0, 0, 0, .24);
  --ol-card-hover-shadow: 0 1rem 2.5rem rgba(0, 0, 0, .3);
  --ol-button-shadow: 0 .25rem .7rem rgba(0, 0, 0, .2);
  --ol-button-hover-shadow: 0 .6rem 1.2rem rgba(0, 0, 0, .34);
}

/* Header */
.site-header {
  position: fixed;
  inset: 1rem 0 auto;
  z-index: 1030;
  padding-inline: 1rem;
  pointer-events: none;
  transition: transform .22s ease, opacity .22s ease;
}

.site-header .navbar {
  pointer-events: auto;
}

.header-stick {
  width: 100%;
  margin-inline: auto;
  padding: .55rem .75rem;
  background: var(--ol-card-bg);
  border: var(--bs-border-width) solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  box-shadow: var(--ol-header-shadow);
}

.site-header.is-hidden {
  transform: translateY(-140%);
  opacity: 0;
  pointer-events: none;
}

/* Buttons */
.btn {
  --bs-btn-border-radius: var(--bs-border-radius-sm);
  --bs-btn-font-weight: 500;

  transform: translateY(0);
  transition:
    color var(--ol-transition),
    background-color var(--ol-transition),
    border-color var(--ol-transition),
    box-shadow var(--ol-transition),
    transform var(--ol-transition);
}

.btn:not(.btn-link) {
  box-shadow: var(--ol-button-shadow);
}

/* Solid button palettes */
.btn-primary {
  --ol-btn-color: var(--ol-action-color);
  --ol-btn-bg: var(--bs-primary);
  --ol-btn-hover-bg: var(--ol-primary-hover);
  --ol-btn-focus-rgb: var(--bs-primary-rgb);
}

.btn-secondary {
  --ol-btn-color: var(--ol-secondary-color);
  --ol-btn-bg: var(--bs-secondary);
  --ol-btn-hover-bg: var(--ol-secondary-hover);
  --ol-btn-focus-rgb: var(--bs-secondary-rgb);
}

.btn-success {
  --ol-btn-color: var(--ol-action-color);
  --ol-btn-bg: var(--bs-success);
  --ol-btn-hover-bg: var(--ol-success-hover);
  --ol-btn-focus-rgb: var(--bs-success-rgb);
}

.btn-danger {
  --ol-btn-color: var(--ol-action-color);
  --ol-btn-bg: var(--bs-danger);
  --ol-btn-hover-bg: var(--ol-danger-hover);
  --ol-btn-focus-rgb: var(--bs-danger-rgb);
}

/* Outline button palettes */
.btn-outline-primary {
  --ol-btn-color: var(--bs-primary);
  --ol-btn-bg: transparent;
  --ol-btn-border: var(--bs-primary);
  --ol-btn-hover-color: var(--ol-action-color);
  --ol-btn-hover-bg: var(--ol-primary-hover);
  --ol-btn-focus-rgb: var(--bs-primary-rgb);
  --ol-btn-disabled-bg: transparent;
}

.btn-outline-danger {
  --ol-btn-color: var(--bs-danger);
  --ol-btn-bg: transparent;
  --ol-btn-border: var(--bs-danger);
  --ol-btn-hover-color: var(--ol-action-color);
  --ol-btn-hover-bg: var(--ol-danger-hover);
  --ol-btn-focus-rgb: var(--bs-danger-rgb);
  --ol-btn-disabled-bg: transparent;
}

/*
 * Bootstrap 5.3 defines component-level --bs-btn-* values directly on
 * .btn-* classes. Map our semantic palette into those variables so both
 * light and dark modes always use the OriginLink colors.
 */
:is(
  .btn-primary,
  .btn-secondary,
  .btn-success,
  .btn-danger,
  .btn-outline-primary,
  .btn-outline-danger
) {
  --bs-btn-color: var(--ol-btn-color);
  --bs-btn-bg: var(--ol-btn-bg);
  --bs-btn-border-color: var(--ol-btn-border, var(--ol-btn-bg));
  --bs-btn-hover-color: var(--ol-btn-hover-color, var(--ol-btn-color));
  --bs-btn-hover-bg: var(--ol-btn-hover-bg);
  --bs-btn-hover-border-color: var(--ol-btn-hover-bg);
  --bs-btn-focus-shadow-rgb: var(--ol-btn-focus-rgb);
  --bs-btn-active-color: var(--ol-btn-hover-color, var(--ol-btn-color));
  --bs-btn-active-bg: var(--ol-btn-hover-bg);
  --bs-btn-active-border-color: var(--ol-btn-hover-bg);
  --bs-btn-disabled-color: var(--ol-btn-color);
  --bs-btn-disabled-bg: var(--ol-btn-disabled-bg, var(--ol-btn-bg));
  --bs-btn-disabled-border-color: var(--ol-btn-border, var(--ol-btn-bg));
}

.btn:active,
.btn.active {
  transform: translateY(0);
  box-shadow: var(--ol-button-shadow);
}

@media (hover: hover) and (pointer: fine) {
  .btn:not(:disabled):not(.disabled):hover {
    transform: translateY(var(--ol-button-lift));
    box-shadow: var(--ol-button-hover-shadow);
  }
}

/* Forms and dropdowns */
.form-control,
.form-select {
  color: var(--ol-input-color);
  background-color: var(--ol-input-bg);
  border-color: var(--ol-input-border);
  color-scheme: light;
}

.form-select {
  --bs-form-select-bg-img:
    url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2314372d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

.form-control:focus,
.form-select:focus {
  color: var(--ol-input-color);
  background-color: var(--ol-input-bg);
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .18);
}

.form-control::placeholder {
  color: var(--ol-input-placeholder);
  opacity: 1;
}

.form-control:disabled,
.form-select:disabled,
.form-control[readonly]:not(.form-control-plaintext) {
  color: var(--ol-input-placeholder);
  background-color: var(--ol-input-bg);
  opacity: .65;
}

.form-select option {
  color: var(--ol-input-color);
  background: var(--ol-input-bg);
}

.form-check-input {
  background-color: var(--ol-input-bg);
  border-color: var(--ol-input-border);
  color-scheme: light;
}

.form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.form-check-input:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .18);
}

.form-control:-webkit-autofill,
.form-control:-webkit-autofill:hover {
  -webkit-text-fill-color: var(--ol-input-color);
  box-shadow: 0 0 0 1000px var(--ol-input-bg) inset;
  caret-color: var(--ol-input-color);
}

.form-control:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--ol-input-color);
  box-shadow:
    0 0 0 1000px var(--ol-input-bg) inset,
    0 0 0 .25rem rgba(var(--bs-primary-rgb), .18);
  caret-color: var(--ol-input-color);
}

.dropdown-menu {
  --bs-dropdown-color: var(--ol-input-color);
  --bs-dropdown-bg: var(--ol-input-bg);
  --bs-dropdown-border-color: var(--ol-input-border);
  --bs-dropdown-link-color: var(--ol-input-color);
  --bs-dropdown-link-hover-color: var(--ol-input-color);
  --bs-dropdown-link-hover-bg: var(--ol-dropdown-hover-bg);
  --bs-dropdown-link-active-color: var(--ol-action-color);
  --bs-dropdown-link-active-bg: var(--bs-primary);
}

/* Cards and semantic states */
.card {
  --bs-card-bg: var(--ol-card-bg);
  --bs-card-color: var(--bs-body-color);
  --bs-card-border-color: var(--bs-border-color);
  --bs-card-border-radius: var(--bs-border-radius);
  --bs-card-cap-bg: transparent;
  --bs-card-cap-color: var(--bs-heading-color);

  transition:
    transform var(--ol-transition),
    border-color var(--ol-transition),
    box-shadow var(--ol-transition);
}

.card-title {
  color: var(--bs-heading-color);
}

.card:hover {
  transform: translateY(-.25rem);
  border-color: var(--bs-primary);
  box-shadow: var(--ol-card-hover-shadow);
}

.shadow-lg {
  box-shadow: var(--ol-shadow) !important;
}

.text-bg-success {
  color: var(--bs-success-text-emphasis) !important;
  background: var(--bs-success-bg-subtle) !important;
  border: var(--bs-border-width) solid var(--bs-success-border-subtle);
}

.text-bg-danger {
  color: var(--bs-danger-text-emphasis) !important;
  background: var(--bs-danger-bg-subtle) !important;
  border: var(--bs-border-width) solid var(--bs-danger-border-subtle);
}

/* Typography */
.originlink-home {
  color: var(--bs-body-color);
  transition:
    background-color var(--ol-transition),
    color var(--ol-transition);
}

.originlink-home :is(.display-1, .display-2) {
  font-family: var(--ol-font-display);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: .94;
}

.originlink-home .display-1 {
  max-width: 12ch;
  font-size: clamp(3.35rem, 6.7vw, 6.4rem);
}

.originlink-home .display-2 {
  font-size: clamp(2.65rem, 5vw, 4.6rem);
}

.originlink-home .lead {
  font-size: clamp(1.05rem, 1.7vw, 1.25rem);
  line-height: 1.65;
}

.eyebrow {
  color: var(--bs-primary);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

/* Page composition */
.hero {
  min-height: min(54rem, calc(100vh - 5rem));
}

.proof-grid > * {
  min-height: 5.5rem;
}

.product-visual {
  min-height: 32rem;
  isolation: isolate;
}

.product-visual::before {
  position: absolute;
  z-index: -1;
  inset: 8% 2% 0 10%;
  content: "";
  background:
    radial-gradient(
      circle,
      rgba(var(--bs-primary-rgb), .22),
      transparent 66%
    );
}

.product-image {
  width: min(100%, 53rem);
  height: auto;
  filter: drop-shadow(0 2rem 2.5rem rgba(19, 27, 23, .2));
  transform: rotate(-1deg) scale(1.05);
}

[data-bs-theme="dark"] .product-image {
  filter: drop-shadow(0 2rem 3rem rgba(0, 0, 0, .38));
}

.material-label {
  --bs-card-bg:
    color-mix(
      in srgb,
      var(--bs-tertiary-bg),
      transparent 8%
    );

  z-index: 2;
  max-width: min(19rem, 70%);
  padding: .7rem .8rem;
  font-size: .78rem;
  line-height: 1.35;
  box-shadow: 0 .8rem 2rem rgba(19, 27, 23, .08);
}

.material-label-oak {
  inset: 5% 2% auto auto;
}

.material-label-spruce {
  inset: auto auto 6% 2%;
}

.timeline {
  margin: 0;
  padding: 0;
  list-style: none;
}

.timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr) auto;
  gap: 1rem;
  padding-block: .85rem;
}

.timeline-item:not(:last-child)::after {
  position: absolute;
  top: 2.55rem;
  left: .96rem;
  width: var(--bs-border-width);
  height: calc(100% - 1.65rem);
  content: "";
  background: var(--bs-border-color);
}

.timeline-marker {
  position: relative;
  z-index: 1;
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  color: var(--bs-primary);
  background: var(--bs-secondary-bg);
  border: var(--bs-border-width) solid var(--bs-border-color);
  border-radius: 50%;
}

#demo .card {
  --bs-card-border-radius: var(--bs-border-radius-lg);

  background:
    linear-gradient(
      120deg,
      rgba(var(--bs-primary-rgb), .14),
      transparent 55%
    ),
    var(--ol-success-card-bg);
}

/* Logo and navigation */
.logo {
  display: block;
  width: 135px;
  height: 30px;
  background-color: var(--bs-body-color);
  -webkit-mask:
    url("/static/logo_text.48450b231a74.svg")
    center / contain
    no-repeat;
  mask:
    url("/static/logo_text.48450b231a74.svg")
    center / contain
    no-repeat;
}

.nav-link {
  position: relative;
  padding: .35rem 0 !important;
}

.nav-link::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  content: "";
  background: var(--ol-primary-hover);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--ol-transition);
}

.nav-link:hover::after,
.nav-link:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.mobile-nav {
  position: relative;
}

.mobile-nav summary {
  list-style: none;
}

.mobile-nav summary::-webkit-details-marker {
  display: none;
}

.mobile-nav__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 50%;
  font-size: 1.55rem;
  cursor: pointer;
}

.mobile-nav__panel {
  position: absolute;
  top: calc(100% + .8rem);
  right: 0;
  display: grid;
  gap: .2rem;
  min-width: min(19rem, calc(100vw - 2rem));
  padding: .75rem;
  background: var(--ol-card-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  box-shadow: var(--ol-shadow);
}

.mobile-nav__panel > a:not(.btn) {
  padding: .7rem .75rem;
  color: var(--bs-body-color);
  text-decoration: none;
  border-radius: .55rem;
}

.mobile-nav__panel > a:not(.btn):is(:hover, :focus-visible) {
  background: rgba(var(--bs-body-color-rgb), .08);
}

/* Footer */
footer {
  background: var(--bs-tertiary-bg);
}

footer .footer-links {
  padding-left: .75rem;
  border-left: 1px solid var(--bs-border-color);
}

footer .footer-link {
  color: var(--bs-secondary-color);
  text-decoration: none;
  font-weight: 500;
}

footer .footer-link:is(:hover, :focus) {
  color: var(--bs-body-color);
}

footer .footer-link:focus-visible {
  outline: 2px solid var(--bs-primary);
  outline-offset: 2px;
  border-radius: .25rem;
}

/* Language flags */
.om-lang {
  min-width: 220px;
}

.om-flag {
  display: inline-flex;
  width: 1.4rem;
  height: 1.05rem;
  overflow: hidden;
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: .25rem;
}

.om-flag :is(svg, img) {
  display: block;
  width: 100%;
  height: 100%;
}

/* Sections */
section.content {
  padding-block: clamp(5rem, 9vw, 8.5rem);
}

section.primary,
section.secondary {
  color: var(--bs-body-color);
}

section.primary {
  background: var(--bs-tertiary-bg);
}

section.secondary {
  background: var(--bs-secondary-bg);
}

section.secondary .card {
  --bs-card-bg: var(--ol-secondary-card-bg);
}

section.success {
  --bs-heading-color: var(--bs-success-text-emphasis);

  color: var(--bs-success-text-emphasis);
  background: var(--bs-success-bg-subtle);
}

section.danger {
  --bs-heading-color: var(--bs-danger-text-emphasis);

  color: var(--bs-danger-text-emphasis);
  background: var(--bs-danger-bg-subtle);
}

section.success .card {
  --bs-card-bg: var(--ol-success-card-bg);
  --bs-card-color: var(--bs-success-text-emphasis);
  --bs-card-border-color: var(--bs-success-border-subtle);
}

section.danger .card {
  --bs-card-bg: var(--ol-danger-card-bg);
  --bs-card-color: var(--bs-danger-text-emphasis);
  --bs-card-border-color: var(--bs-danger-border-subtle);
}

section.success .text-body-secondary {
  color: var(--ol-success-muted) !important;
}

section.danger .text-body-secondary {
  color: var(--ol-danger-muted) !important;
}

section.success .eyebrow {
  color: var(--bs-success-text-emphasis);
}

section.danger .eyebrow {
  color: var(--bs-danger-text-emphasis);
}

/* Responsive adjustments */
@media (min-width: 768px) {
  .btn {
    --bs-btn-padding-y: .25rem;
    --bs-btn-padding-x: 1.25rem;
  }

  .proof-grid > * + * {
    border-left:
      var(--bs-border-width)
      solid
      var(--bs-border-color);
  }
}

@media (min-width: 992px) {
  .btn {
    --bs-btn-padding-y: .4rem;
    --bs-btn-padding-x: 2rem;
  }
}

@media (max-width: 991.98px) {
  .hero {
    min-height: 0;
    padding-top: 4rem;
  }

  .originlink-home .display-1 {
    max-width: 11ch;
  }

  .product-visual {
    min-height: 25rem;
    margin-top: 3rem;
  }

  .material-label-oak {
    right: 4%;
  }
}

@media (max-width: 767.98px) {
  .site-header {
    inset: 0 0 auto;
    padding-inline: 0;
  }

  .header-stick {
    padding: .6rem 1rem;
    border: 0;
    border-bottom:
      var(--bs-border-width)
      solid
      var(--bs-border-color);
    border-radius: 0;
    box-shadow: none;
  }
}

@media (max-width: 575.98px) {
  .originlink-home .display-1 {
    font-size: clamp(3rem, 16vw, 4.3rem);
  }

  .product-visual {
    min-height: 18rem;
  }

  .product-image {
    transform: rotate(-1deg) scale(1.14);
  }

  .material-label {
    max-width: 75%;
    padding: .5rem .6rem;
    font-size: .68rem;
  }

  .material-label-oak {
    inset: -4% 0 auto auto;
  }

  .material-label-spruce {
    inset: auto auto -2% 0;
  }

  .timeline-item {
    grid-template-columns: 2rem minmax(0, 1fr);
  }

  .timeline-item > :last-child {
    grid-column: 2;
    justify-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .originlink-home *,
  .originlink-home *::before,
  .originlink-home *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}