/* Light consent card follows the document season; tokens remain local to this surface. */
.rs-privacy {
  color-scheme: light;
  --rs-text: #302319;
  --rs-background: #fff8ed;
  --rs-text-muted: #564636;
  --rs-surface: #f2e6d7;
  --rs-border: #ddcdb9;
  --rs-control-border: #8a6e50;
  --rs-accent: #60401f;
  --rs-focus-outer: #936223;
  --rs-error: #8d2026;
  --rs-error-surface: #fff0ef;
  --rs-privacy-card-border: #eadbc8;
  --rs-privacy-mark-background: #edddc6;
  --rs-privacy-mark-foreground: #6c4822;
  --rs-privacy-link: #58412c;
  --rs-privacy-action-hover: #503a29;
  --rs-privacy-control-hover: #e8d8c3;
  --rs-privacy-shadow: 0 12px 45px #09060185, 0 2px 6px #09060140;
  box-sizing: border-box;
  position: fixed;
  z-index: 1000;
  top: auto;
  right: max(22px, env(safe-area-inset-right, 0px));
  bottom: max(24px, env(safe-area-inset-bottom, 0px));
  left: max(22px, env(safe-area-inset-left, 0px));
  width: auto;
  max-width: 960px;
  max-height: calc(100dvh - max(16px, env(safe-area-inset-top, 0px)) - max(24px, env(safe-area-inset-bottom, 0px)));
  margin: 0 auto;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 23px 24px 12px;
  border: 1px solid var(--rs-privacy-card-border);
  border-radius: 14px;
  color: var(--rs-text);
  background: var(--rs-background);
  box-shadow: var(--rs-privacy-shadow);
  text-align: left;
  font: 400 13px/1.6 Inter, Arial, sans-serif;
}
:root[data-season="spring"] .rs-privacy {
  --rs-text: #102a20;
  --rs-background: #edf9f1;
  --rs-text-muted: #2f5543;
  --rs-surface: #dcefe3;
  --rs-border: #b9dcca;
  --rs-control-border: #56876c;
  --rs-accent: #235f41;
  --rs-focus-outer: #2e7b55;
  --rs-privacy-card-border: #b9dcca;
  --rs-privacy-mark-background: #d5ebdd;
  --rs-privacy-mark-foreground: #21543c;
  --rs-privacy-link: #1f5139;
  --rs-privacy-action-hover: #245340;
  --rs-privacy-control-hover: #cbe5d5;
  --rs-privacy-shadow: 0 12px 45px #06150c85, 0 2px 6px #06150c40;
}
:root[data-season="summer"] .rs-privacy {
  --rs-text: #12251b;
  --rs-background: #f7fbe9;
  --rs-text-muted: #3d533d;
  --rs-surface: #e8efcb;
  --rs-border: #d6dfa8;
  --rs-control-border: #75884b;
  --rs-accent: #496526;
  --rs-focus-outer: #546f2d;
  --rs-privacy-card-border: #d6dfa8;
  --rs-privacy-mark-background: #e3eeb8;
  --rs-privacy-mark-foreground: #3b522a;
  --rs-privacy-link: #344e2b;
  --rs-privacy-action-hover: #304d3b;
  --rs-privacy-control-hover: #dae7b4;
  --rs-privacy-shadow: 0 12px 45px #0d150685, 0 2px 6px #0d150640;
}
:root[data-season="winter"] .rs-privacy {
  --rs-text: #0c2232;
  --rs-background: #f0f8fc;
  --rs-text-muted: #345469;
  --rs-surface: #ddebf3;
  --rs-border: #bdd4e1;
  --rs-control-border: #5c8197;
  --rs-accent: #245d7b;
  --rs-focus-outer: #286787;
  --rs-privacy-card-border: #bdd4e1;
  --rs-privacy-mark-background: #d7e9f3;
  --rs-privacy-mark-foreground: #214d65;
  --rs-privacy-link: #244f68;
  --rs-privacy-action-hover: #24536c;
  --rs-privacy-control-hover: #cbdfe9;
  --rs-privacy-shadow: 0 12px 45px #020e1785, 0 2px 6px #020e1740;
}
.rs-privacy *, .rs-privacy *::before, .rs-privacy *::after { box-sizing: border-box; }
.rs-privacy[hidden], .rs-privacy [hidden] { display: none !important; }
.rs-privacy .rs-privacy-inner { width: 100%; min-width: 0; margin: 0; }
.rs-privacy .rs-privacy-heading { display: flex; align-items: center; gap: 11px; margin: 0 0 11px; }
.rs-privacy .rs-privacy-mark { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: var(--rs-privacy-mark-background); color: var(--rs-privacy-mark-foreground); }
.rs-privacy .rs-privacy-mark svg { display: block; width: 19px; height: 19px; }
.rs-privacy h2 {
  min-width: 0;
  margin: 0;
  color: var(--rs-text, #f4f6ed);
  font: 700 18px/1.3 Inter, Arial, sans-serif;
  letter-spacing: -.3px;
  text-transform: none;
}
.rs-privacy .rs-privacy-intro { margin: 0 0 18px; color: var(--rs-text-muted); font-size: 13px; line-height: 1.65; }
.rs-privacy .rs-privacy-bottom { display: flex; flex-direction: column; align-items: stretch; gap: 7px; }
.rs-privacy .rs-privacy-link { order: 1; display: inline-flex; align-items: center; align-self: flex-start; min-height: 36px; color: var(--rs-privacy-link); font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.rs-privacy .rs-privacy-actions { order: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; width: 100%; max-width: 100%; min-width: 0; margin: 0; }
.rs-privacy .rs-privacy-button {
  display: block;
  min-height: 44px;
  min-width: 0;
  margin: 0;
  padding: 10px 8px;
  border: 1px solid var(--rs-text);
  border-radius: 6px;
  background: var(--rs-text);
  color: var(--rs-background);
  font: 600 12px/1.5 Inter, Arial, sans-serif;
  text-align: center;
  text-transform: none;
  text-decoration: none;
  letter-spacing: normal;
  cursor: pointer;
  touch-action: manipulation;
}
.rs-privacy .rs-privacy-button:hover { background: var(--rs-privacy-action-hover); border-color: var(--rs-privacy-action-hover); }
.rs-privacy .rs-privacy-settings-intro { margin: 0 0 8px; color: var(--rs-text-muted, #decebd); font-size: 12px; }
.rs-privacy .rs-privacy-category { margin: 0; padding: 12px 0 14px; border: 0; border-top: 1px solid var(--rs-border, #70523c); }
.rs-privacy .rs-privacy-option { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 16px; margin: 0; color: var(--rs-text, #f4f6ed); cursor: pointer; }
.rs-privacy .rs-privacy-option > span { min-width: 0; }
.rs-privacy .rs-privacy-option strong { display: block; color: var(--rs-text, #f4f6ed); font-size: 13px; font-weight: 650; }
.rs-privacy .rs-privacy-option small { display: block; color: var(--rs-text-muted, #decebd); font-size: 11px; font-weight: 400; }
.rs-privacy .rs-privacy-option input {
  appearance: none;
  position: relative;
  flex: 0 0 auto;
  width: 39px;
  height: 23px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--rs-control-border, #bd9d83);
  border-radius: 20px;
  background: var(--rs-surface, #3a2c22);
  cursor: pointer;
}
.rs-privacy .rs-privacy-option input::before { content: ""; position: absolute; top: 3px; left: 3px; width: 15px; height: 15px; border-radius: 50%; background: var(--rs-text-muted, #decebd); }
.rs-privacy .rs-privacy-option input:checked { background: var(--rs-accent, #dca663); border-color: var(--rs-accent, #dca663); }
.rs-privacy .rs-privacy-option input:checked::before { transform: translateX(16px); background: var(--rs-background, #2b2018); }
.rs-privacy .rs-privacy-option input:disabled { opacity: .75; cursor: default; }
.rs-privacy .rs-privacy-category p { margin: 8px 0 0; color: var(--rs-text-muted, #decebd); font-size: 12px; line-height: 1.7; }
.rs-privacy .rs-privacy-service-details { margin-top: 5px; }
.rs-privacy .rs-privacy-service-details summary { width: fit-content; max-width: 100%; min-height: 44px; padding: 11px 0; color: var(--rs-text-muted, #decebd); font-size: 12px; list-style-position: inside; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.rs-privacy .rs-privacy-service-details a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; margin-top: 4px; color: var(--rs-text-muted, #decebd); overflow-wrap: anywhere; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.rs-privacy .rs-privacy-withdraw-info { margin: 0 0 14px; padding-top: 12px; border-top: 1px solid var(--rs-border, #70523c); color: var(--rs-text-muted, #decebd); font-size: 12px; line-height: 1.7; }
.rs-privacy .rs-privacy-settings-actions { order: 0; display: grid; grid-template-columns: 1fr 1.5fr; gap: 8px; width: 100%; max-width: 100%; min-width: 0; margin: 0; }
.rs-privacy .rs-privacy-withdraw { display: block; min-height: 44px; margin: 2px 0 0; padding: 10px 0; border: 0; border-radius: 0; background: none; color: var(--rs-text-muted, #decebd); font: 400 12px/1.5 Inter, Arial, sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.rs-privacy .rs-privacy-error { margin: 0 0 12px; padding: 9px 12px; border: 1px solid var(--rs-error, #f0adae); color: var(--rs-error, #f0adae); background: var(--rs-error-surface, #442327); font-size: 12px; }
.rs-privacy :is(button, a, input, summary):focus-visible { outline: 3px solid var(--rs-focus-outer, #f4f6ed); outline-offset: 3px; }
.rs-privacy-announcement { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.rs-privacy-footer-open { display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; text-align: inherit; text-transform: none; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; touch-action: manipulation; }
.rs-privacy-footer-open:focus-visible { outline: 3px solid var(--rs-focus-outer, currentColor); outline-offset: 3px; }
/* A transformed dialog would turn viewport-fixed consent into a clipped child. */
dialog.rs-privacy-host { animation: none !important; transform: none !important; }
/* Consent controls own the bottom edge until the visitor finishes their choice. */
html[data-rs-privacy-open] :is(.mobile-contact, .rs-whatsapp-button, [data-season-widget]) { visibility: hidden; pointer-events: none; }
@media (max-width: 520px) {
  .rs-privacy {
    right: max(12px, env(safe-area-inset-right, 0px));
    bottom: max(16px, env(safe-area-inset-bottom, 0px));
    left: max(12px, env(safe-area-inset-left, 0px));
    max-height: calc(100dvh - max(12px, env(safe-area-inset-top, 0px)) - max(16px, env(safe-area-inset-bottom, 0px)));
    padding: 19px 17px 10px;
  }
  .rs-privacy h2 { font-size: 17px; }
  .rs-privacy .rs-privacy-intro { font-size: 12px; margin-bottom: 16px; }
  .rs-privacy .rs-privacy-button { padding: 10px 4px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .rs-privacy *, .rs-privacy *::before, .rs-privacy *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print { .rs-privacy, .rs-privacy-announcement { display: none !important; } }

/* Optional, page-local positioning; the approved default card layout is retained. */
.rs-privacy[data-privacy-viewport] { max-height: var(--rs-privacy-window-max-height); }
.rs-privacy[data-privacy-positioned] {
  top: var(--rs-privacy-window-y);
  right: auto;
  bottom: auto;
  left: var(--rs-privacy-window-x);
  width: var(--rs-privacy-window-width);
  margin: 0;
  overflow-wrap: anywhere;
}
.rs-privacy [data-privacy-drag] { cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.rs-privacy[data-privacy-dragging] [data-privacy-drag] { cursor: grabbing; }
.rs-privacy [data-privacy-drag] h2 { flex: 1 1 auto; }
.rs-privacy [data-privacy-move] {
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  margin: -6px -6px -6px auto;
  padding: 12px;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--rs-text-muted, #564636);
  background: transparent;
  cursor: grab;
  touch-action: none;
}
.rs-privacy [data-privacy-move]:hover { border-color: var(--rs-border, #ddcdb9); background: var(--rs-surface, #f2e6d7); }
.rs-privacy[data-privacy-dragging] [data-privacy-move] { cursor: grabbing; }
.rs-privacy [data-privacy-move] svg { width: 18px; height: 18px; pointer-events: none; }
.rs-privacy .rs-privacy-position-help { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.rs-privacy .rs-privacy-position-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; padding: 10px; border: 1px solid var(--rs-border, #ddcdb9); border-radius: 6px; }
.rs-privacy :is([data-privacy-move-by], [data-privacy-position-reset]) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid var(--rs-control-border, #8a6e50); border-radius: 6px; color: var(--rs-text, #302319); background: var(--rs-surface, #f2e6d7); font: 600 12px/1.5 Inter, Arial, sans-serif; cursor: pointer; touch-action: manipulation; }
.rs-privacy :is([data-privacy-move-by], [data-privacy-position-reset]):hover { background: var(--rs-privacy-control-hover); }
.rs-privacy [data-privacy-position-reset] { margin-left: auto; }
.rs-privacy .rs-privacy-position-metrics { display: block; position: fixed; top: 0; left: 0; width: 0; height: 0; margin: 0; padding: max(16px, env(safe-area-inset-top, 0px)) max(22px, env(safe-area-inset-right, 0px)) max(24px, env(safe-area-inset-bottom, 0px)) max(22px, env(safe-area-inset-left, 0px)); border: 0; visibility: hidden; pointer-events: none; overflow: hidden; }
@media (max-width: 520px) {
  .rs-privacy .rs-privacy-position-metrics { padding: max(12px, env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px)) max(16px, env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); }
}

/* In a modal the consent card joins its scrollable content so it cannot cover
   form fields or a focused action. Page-level positioning stays unchanged. */
dialog.rs-privacy-host > .rs-privacy {
  position: relative;
  inset: auto;
  width: auto;
  max-width: none;
  max-height: none;
  margin: 16px;
  overflow: visible;
}
dialog.rs-privacy-host > .rs-privacy [data-privacy-move],
dialog.rs-privacy-host > .rs-privacy .rs-privacy-position-tools { display: none !important; }
dialog.rs-privacy-host > .rs-privacy [data-privacy-drag] {
  cursor: default;
  touch-action: auto;
  user-select: auto;
  -webkit-user-select: auto;
}
