.samtyk-root {
  --samtyk-bg: #efe8dc;
  --samtyk-panel: #fffdf8;
  --samtyk-ink: #17231c;
  --samtyk-muted: #5b675f;
  --samtyk-line: #d8d0c3;
  --samtyk-btn: #17231c;
  --samtyk-btn-text: #fffdf8;
  --samtyk-accept-bg: #1f5a3c;
  --samtyk-accept-text: #ffffff;
  --samtyk-reject-bg: #ffffff;
  --samtyk-reject-text: #1f5a3c;
  --samtyk-reject-border: #b9b2a6;
  --samtyk-shadow: 0 24px 80px rgb(23 35 28 / 18%);
  /* Read by samtyk.js: absent means an optimiser stripped this stylesheet. */
  --samtyk-css: 1;
  color: var(--samtyk-ink);
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif;
  line-height: 1.45;
}

.samtyk-root * {
  box-sizing: border-box;
}

/* Themes style buttons and links with their own case and spacing
   (uppercase, wide tracking). Samtyk's own text is not theirs to change. */
.samtyk-root,
.samtyk-root * {
  text-transform: none !important;
  letter-spacing: normal !important;
}

/* Until the visitor has chosen, the page behind is dimmed and blurred. Both
   choices stay one click away, so this is not a cookie wall. */
.samtyk-overlay {
  position: fixed;
  inset: 0;
  background: rgb(23 35 28 / 28%);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  z-index: 2147483000;
}

@media (prefers-reduced-transparency: reduce) {
  .samtyk-overlay {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: rgb(23 35 28 / 45%);
  }
}

.samtyk-banner,
.samtyk-prefs {
  position: fixed;
  z-index: 2147483001;
  background: var(--samtyk-panel);
  color: var(--samtyk-ink);
  border: 1px solid var(--samtyk-line);
  box-shadow: var(--samtyk-shadow);
}

.samtyk-banner {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  overflow: hidden;
}

.samtyk-root[data-contained] {
  position: absolute;
  inset: 0;
  z-index: 3;
}

.samtyk-root[data-contained] .samtyk-overlay,
.samtyk-root[data-contained] .samtyk-banner,
.samtyk-root[data-contained] .samtyk-prefs,
.samtyk-root[data-contained] .samtyk-reopen {
  position: absolute;
  z-index: 4;
  pointer-events: auto;
}

.samtyk-root[data-contained] .samtyk-banner[data-position="bottom"] {
  left: 12px;
  right: 12px;
  bottom: 12px;
  max-width: none;
  max-height: calc(100% - 24px);
}

.samtyk-root[data-contained] .samtyk-banner[data-position="center"],
.samtyk-root[data-contained] .samtyk-prefs {
  width: calc(100% - 24px);
  max-height: calc(100% - 24px);
}

.samtyk-banner[data-position="bottom"] {
  left: 16px;
  right: 16px;
  bottom: 16px;
  max-width: 760px;
  margin: 0 auto;
  border-radius: 24px;
  padding: 0;
}

.samtyk-banner[data-position="center"] {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(720px, calc(100vw - 24px));
  border-radius: 28px;
  padding: 0;
}

.samtyk-prefs {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(720px, calc(100vw - 24px));
  max-height: min(860px, calc(100vh - 24px));
  border-radius: 28px;
  padding: 32px;
  overflow: auto;
}

.samtyk-banner-scroll {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.samtyk-banner-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 1;
  object-fit: cover;
  object-position: center 30%;
}

.samtyk-banner-copy {
  padding: 28px 28px 4px;
}

.samtyk-banner-footer {
  flex: none;
  padding: 0 28px 24px;
  background: var(--samtyk-panel);
}

.samtyk-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: 0 !important;
  color: var(--samtyk-ink);
  margin-bottom: 14px;
}

.samtyk-seal {
  width: 22px;
  height: 22px;
  display: block;
  flex-shrink: 0;
}

.samtyk-banner h2,
.samtyk-prefs h2 {
  margin: 0 0 10px;
  font-size: 32px;
  line-height: 1.15;
  letter-spacing: -0.02em !important;
  word-spacing: 0.08em;
  font-weight: 560;
}

.samtyk-lead,
.samtyk-note,
.samtyk-gpc {
  margin: 0 0 18px;
  color: var(--samtyk-muted);
  font-size: 16px;
  font-family: "Avenir Next", "Segoe UI", sans-serif;
}

.samtyk-gpc {
  background: #eef4ef;
  border: 1px solid #c9d8ce;
  color: #244434;
  border-radius: 14px;
  padding: 12px 14px;
  font-size: 14px;
}

/* Phone and tablet: stacked, accept on top (it is first in the DOM).
   Desktop: side by side, accept on the right, where the eye ends the row. */
.samtyk-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin: 8px 0 12px;
}

@media (min-width: 1025px) {
  .samtyk-actions {
    grid-template-columns: 1fr 1fr;
  }

  .samtyk-actions > .samtyk-btn[data-equal="accept"] {
    order: 2;
  }
}

.samtyk-btn {
  appearance: none;
  border: 1.5px solid var(--samtyk-btn);
  background: var(--samtyk-btn);
  color: var(--samtyk-btn-text);
  min-height: 48px;
  padding: 12px 16px;
  border-radius: 999px;
  font: inherit;
  font-family: "Avenir Next", "Segoe UI", sans-serif;
  font-size: 15px;
  font-weight: 620;
  letter-spacing: 0.01em !important;
  cursor: pointer;
}

.samtyk-btn[data-equal="reject"],
.samtyk-btn[data-equal="accept"] {
  border-width: 1.5px;
}

.samtyk-btn[data-equal="accept"] {
  background: var(--samtyk-accept-bg);
  border-color: var(--samtyk-accept-bg);
  color: var(--samtyk-accept-text);
}

.samtyk-btn[data-equal="reject"],
.samtyk-btn.samtyk-btn-plain {
  background: var(--samtyk-reject-bg);
  border-color: var(--samtyk-reject-border);
  color: var(--samtyk-reject-text);
}

.samtyk-btn.samtyk-btn-plain:hover,
.samtyk-btn.samtyk-btn-plain:focus {
  filter: brightness(0.96);
}

/* Preferences in the EU and UK: Accept all, Reject all, Save choices. Phone:
   stacked in that order. Desktop: one row with Save choices, Reject all and
   Accept all, so Reject sits beside Accept on the right as on the banner. The
   selectors carry one class more than the two-button rule above. */
@media (min-width: 1025px) {
  .samtyk-actions.samtyk-actions-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .samtyk-actions.samtyk-actions-3 > .samtyk-btn.samtyk-btn-plain {
    order: 1;
  }

  .samtyk-actions.samtyk-actions-3 > .samtyk-btn[data-equal="reject"] {
    order: 2;
  }

  .samtyk-actions.samtyk-actions-3 > .samtyk-btn[data-equal="accept"] {
    order: 3;
  }
}

.samtyk-btn[data-equal="accept"]:hover,
.samtyk-btn[data-equal="accept"]:focus {
  filter: brightness(0.9);
}

.samtyk-btn[data-equal="reject"]:hover,
.samtyk-btn[data-equal="reject"]:focus {
  filter: brightness(0.96);
}

.samtyk-btn:focus-visible,
.samtyk-link-btn:focus-visible,
.samtyk-switch:focus-visible,
.samtyk-reopen:focus-visible {
  outline: 3px solid #2f6f4f;
  outline-offset: 3px;
}

.samtyk-link-btn,
.samtyk-text-link {
  appearance: none;
  background: none;
  border: 0;
  color: var(--samtyk-ink);
  font: inherit;
  font-family: "Avenir Next", "Segoe UI", sans-serif;
  font-size: 15px;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 8px 0;
}

.samtyk-customize {
  display: block;
  width: 100%;
  text-align: center;
  margin-bottom: 8px;
}

.samtyk-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  font-family: "Avenir Next", "Segoe UI", sans-serif;
  font-size: 13px;
}

.samtyk-footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.samtyk-footer-seal {
  display: block;
  width: auto;
  height: 18px;
  flex: none;
  margin-left: auto;
}

/* Underlined so they read as links, not as a caption. */
.samtyk-legal a {
  color: var(--samtyk-muted);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.samtyk-legal a[href]:hover {
  color: var(--samtyk-ink);
}

.samtyk-cats {
  display: grid;
  gap: 12px;
  margin: 18px 0 22px;
}

.samtyk-cat {
  border: 1px solid var(--samtyk-line);
  border-radius: 18px;
  padding: 14px 16px;
  background: var(--samtyk-bg);
}

.samtyk-cat-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.samtyk-cat h3 {
  margin: 0 0 6px;
  font-size: 18px;
}

.samtyk-cat p {
  margin: 0;
  color: var(--samtyk-muted);
  font-family: "Avenir Next", "Segoe UI", sans-serif;
  font-size: 14px;
}

.samtyk-switch {
  appearance: none;
  flex: none;
  width: 48px;
  height: 28px;
  margin-top: 2px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #e6dfd2;
  box-shadow: inset 0 0 0 1px #cfc6b6;
  position: relative;
  cursor: pointer;
}

.samtyk-switch[aria-checked="true"] {
  background: #1f5a3c;
  box-shadow: inset 0 0 0 1px #174a31;
}

.samtyk-switch[aria-disabled="true"],
.samtyk-switch:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.samtyk-switch::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #fffdf8;
  box-shadow: 0 1px 2px rgb(23 35 28 / 28%);
  transition: transform 160ms cubic-bezier(0.22, 1, 0.36, 1);
}

.samtyk-switch[aria-checked="true"]::after {
  transform: translateX(20px);
}

.samtyk-lock {
  font-family: "Avenir Next", "Segoe UI", sans-serif;
  font-size: 12px;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: var(--samtyk-muted);
}

.samtyk-table-wrap {
  overflow: auto;
  margin-top: 12px;
}

.samtyk-table-wrap summary {
  cursor: pointer;
  font-family: "Avenir Next", "Segoe UI", sans-serif;
  font-size: 13px;
  font-weight: 620;
  color: var(--samtyk-ink);
  padding: 8px 0 4px;
}

.samtyk-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Avenir Next", "Segoe UI", sans-serif;
  font-size: 13px;
}

.samtyk-table th,
.samtyk-table td {
  text-align: left;
  vertical-align: top;
  padding: 8px 8px 8px 0;
  border-bottom: 1px solid var(--samtyk-line);
}

.samtyk-table th {
  color: var(--samtyk-muted);
  font-weight: 620;
}

.samtyk-receipt {
  border-top: 1px solid var(--samtyk-line);
  margin-top: 18px;
  padding-top: 16px;
  font-family: "Avenir Next", "Segoe UI", sans-serif;
  font-size: 13px;
  color: var(--samtyk-muted);
}

.samtyk-receipt strong {
  display: block;
  color: var(--samtyk-ink);
  margin-bottom: 8px;
}

.samtyk-receipt .samtyk-link-btn {
  display: block;
  margin-top: 10px;
}

/* The way back to the settings: the Samtyk mark itself, small and quiet.
   The label is carried by aria-label and title. */
.samtyk-reopen {
  position: fixed;
  left: 14px;
  bottom: 14px;
  z-index: 2147482999;
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 8px;
  background: none;
  /* A thin light edge keeps the green mark visible on dark or green pages. */
  box-shadow:
    0 0 0 1.5px rgb(255 255 255 / 85%),
    0 4px 14px rgb(23 35 28 / 18%);
  opacity: 0.85;
  cursor: pointer;
  line-height: 0;
  transition: opacity 0.15s ease;
}

.samtyk-reopen:hover,
.samtyk-reopen:focus-visible {
  opacity: 1;
}

.samtyk-reopen svg {
  display: block;
  width: 100%;
  height: 100%;
}

.samtyk-hidden {
  display: none !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

@media (max-width: 640px) {
  .samtyk-banner[data-position="bottom"] {
    left: 10px;
    right: 10px;
    bottom: 10px;
    padding: 0;
    border-radius: 22px;
  }

  .samtyk-banner {
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
  }

  .samtyk-root[data-contained] .samtyk-banner {
    max-height: calc(100% - 24px);
  }

  .samtyk-banner-image {
    aspect-ratio: 2 / 1;
  }

  .samtyk-banner-copy {
    padding: 22px 18px 2px;
  }

  .samtyk-banner-footer {
    padding: 0 18px 18px;
  }

  .samtyk-banner h2,
  .samtyk-prefs h2 {
    font-size: 26px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .samtyk-switch::after {
    transition: none;
  }
}

.samtyk-footer-prefs {
  padding: 12px 16px 20px;
  text-align: center;
}

.samtyk-footer-prefs .samtyk-open,
.samtyk-declaration .samtyk-open,
.samtyk-open {
  appearance: none;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: 0;
}
