/* Klaro cookie notice and consent dialog in the Triton brand.
   Klaro writes its palette (--dark1, --light1, ...) as inline variables on
   <html>, and the klaro module's override stylesheet sets --klaro-button-*
   on .klaro. Redefining both on .klaro-theme-tec (the class Klaro adds for
   the active theme) wins over each without !important. This file is loaded
   through libraries-extend, so it follows Klaro onto every page, including
   pages that do not load the front page library and its :root tokens. */
.klaro.klaro-theme-tec {
  --tec-black: #0a0a0a;
  --tec-panel: #1c1c1c;
  --tec-line: #2e2e2e;
  --tec-text: #f5f0e8;
  --tec-muted: #888;
  --tec-highlight: #fff;

  --dark1: var(--tec-panel);
  --dark2: var(--tec-muted);
  --dark3: var(--tec-line);
  --light1: var(--tec-text);
  --light2: var(--tec-muted);
  --light3: var(--tec-muted);
  --white2: var(--tec-line);
  --white3: var(--tec-line);
  --green1: var(--tec-highlight);
  --green2: var(--tec-highlight);
  --green3: var(--tec-highlight);
  --border-radius: 0;
  --font-family: 'DM Sans', sans-serif;
  --title-font-family: 'Bebas Neue', sans-serif;
  --font-size: 15px;

  --klaro-primary-color: var(--tec-highlight);
  --klaro-link-color: var(--tec-text);
  --klaro-link-color-hover: var(--tec-highlight);
  --klaro-link-decoration-line: underline;
  --klaro-link-decoration-line-hover: underline;
  --klaro-button-bg: var(--tec-highlight);
  --klaro-button-text-color: var(--tec-black);
  --klaro-button-border: 1px solid var(--tec-highlight);
  --klaro-button-border-radius: 0;
  --klaro-button-padding: 14px 28px;
  --klaro-button-font-size: 1.05rem;
  --klaro-button-font-weight: 400;
  --klaro-button-line-height: 1;
  --klaro-button-box-shadow: 0 0 30px rgba(255, 255, 255, 0.15);
  --klaro-button-bg-hover: #e8e8e8;
  --klaro-button-text-color-hover: var(--tec-black);
  --klaro-button-border-hover: 1px solid #e8e8e8;
  --klaro-button-focus-outline: 2px solid var(--tec-highlight);
  --klaro-button-focus-outline-offset: 3px;
  --klaro-dialog-focus-outline: 1px solid var(--tec-line);
  --klaro-dialog-focus-box-shadow: none;
  --klaro-slider-bg: var(--tec-line);
  --klaro-slider-bg-active: var(--tec-highlight);
  --klaro-slider-bg-required: var(--tec-muted);

  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
}

/* Panels: the site's modal look, a dark sheet with a white top rule. */
.klaro.klaro-theme-tec .cookie-notice:not(.cookie-modal-notice),
.klaro.klaro-theme-tec .cookie-modal .cm-modal.cm-klaro {
  background: var(--tec-panel);
  color: var(--tec-text);
  border: 1px solid var(--tec-line);
  border-top: 3px solid var(--tec-highlight);
  border-radius: 0;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}

.klaro.klaro-theme-tec .cookie-modal .cm-bg {
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(6px);
}

.klaro.klaro-theme-tec .cookie-notice p,
.klaro.klaro-theme-tec .cookie-modal p,
.klaro.klaro-theme-tec .cookie-modal .cm-list-description {
  color: var(--tec-text);
  font-weight: 300;
  line-height: 1.6;
  hyphens: manual;
}

.klaro.klaro-theme-tec .cookie-notice strong,
.klaro.klaro-theme-tec .cookie-modal strong,
.klaro.klaro-theme-tec .cookie-modal .cm-list-title {
  color: var(--tec-highlight);
  font-weight: 500;
}

/* Titles in the display face, as on the site's own modal. */
.klaro.klaro-theme-tec .cookie-modal .cm-modal .cm-header h1.title,
.klaro.klaro-theme-tec .cookie-notice h2 {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 2.2rem;
  letter-spacing: 0.04em;
  line-height: 1;
  color: var(--tec-text);
}

.klaro.klaro-theme-tec .cookie-modal .cm-modal .cm-header,
.klaro.klaro-theme-tec .cookie-modal .cm-modal .cm-body {
  border-bottom-color: var(--tec-line);
}

.klaro.klaro-theme-tec .cookie-modal .cm-modal .cm-header .hide {
  border: 1px solid var(--tec-line);
  width: 36px;
  height: 36px;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  clip-path: polygon(4px 0%, 100% 0%, calc(100% - 4px) 100%, 0% 100%);
}

.klaro.klaro-theme-tec .cookie-modal .cm-modal .cm-header .hide svg {
  stroke: var(--tec-muted);
}

.klaro.klaro-theme-tec .cookie-modal .cm-modal .cm-header .hide:hover svg {
  stroke: var(--tec-highlight);
}

/* Buttons: the slanted white primary button from the hero. */
.klaro.klaro-theme-tec .cm-btn {
  font-family: 'Bebas Neue', sans-serif;
  letter-spacing: 0.12em;
  clip-path: polygon(10px 0%, 100% 0%, calc(100% - 10px) 100%, 0% 100%);
  transition: background 0.2s, color 0.2s, transform 0.2s;
}

.klaro.klaro-theme-tec .cm-btn:hover {
  transform: translateY(-2px);
}

/* Decline sits beside Accept as a dark slanted button, so the two choices
   read as equal in shape without both shouting. An outline would be cut off
   by the slanted clip, so it is a fill instead. */
.klaro.klaro-theme-tec .cookie-notice .cm-btn.cm-btn-danger,
.klaro.klaro-theme-tec .cookie-modal .cm-btn.cm-btn-decline,
.klaro.klaro-theme-tec .cookie-modal .cm-btn.cm-btn-danger {
  background: var(--tec-line);
  color: var(--tec-text);
  border: 1px solid var(--tec-line);
  box-shadow: none;
}

.klaro.klaro-theme-tec .cookie-notice .cm-btn.cm-btn-danger:hover,
.klaro.klaro-theme-tec .cookie-modal .cm-btn.cm-btn-decline:hover,
.klaro.klaro-theme-tec .cookie-modal .cm-btn.cm-btn-danger:hover {
  background: #3a3a3a;
  color: var(--tec-highlight);
  border: 1px solid #3a3a3a;
}

/* "Customize" and other links in the monospace label style. */
.klaro.klaro-theme-tec .cookie-notice a.cm-link.cn-learn-more,
.klaro.klaro-theme-tec .cookie-modal .cm-services .cm-caret a {
  font-family: 'DM Mono', monospace;
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--tec-text);
}

.klaro.klaro-theme-tec .cookie-notice a.cm-link.cn-learn-more:hover,
.klaro.klaro-theme-tec .cookie-modal .cm-services .cm-caret a:hover {
  color: var(--tec-highlight);
}

.klaro.klaro-theme-tec .cookie-notice a.cm-link.cn-learn-more {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Switches: white when on, gray when required. */
.klaro.klaro-theme-tec .cm-list-label .slider::before {
  background-color: var(--tec-text);
}

.klaro.klaro-theme-tec .cm-list-input:checked + .cm-list-label .slider::before {
  background-color: var(--tec-black);
}

/* On a phone the notice is a full-width sheet with the two choices side by
   side, each at least a thumb's height. */
@media (max-width: 1023px) {
  .klaro.klaro-theme-tec .cookie-notice:not(.cookie-modal-notice) {
    border-left: 0;
    border-right: 0;
  }

  .klaro.klaro-theme-tec .cookie-notice .cn-buttons .cm-btn {
    min-height: 48px;
  }
}
