/* First-visit privacy notice and its detailed preferences. Loaded last. */
.privacy-notice {
  box-sizing: border-box;
  position: fixed;
  z-index: 1100;
  left: max(24px, env(safe-area-inset-left));
  bottom: max(24px, env(safe-area-inset-bottom));
  width: min(600px, calc(100% - 48px));
  max-height: calc(100dvh - 48px);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 22px 24px;
  border: 1px solid #d1dae3;
  border-top: 3px solid #ad5427;
  border-radius: 6px;
  background: #fff;
  color: #1b293b;
  box-shadow: 0 12px 44px #11233926, 0 2px 8px #11233912;
  font-family: inherit;
  text-align: left;
  animation: privacy-notice-enter 180ms ease-out;
}
.privacy-notice[hidden] { display: none !important; }
.privacy-notice-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.privacy-notice-icon {
  box-sizing: content-box;
  display: block;
  flex: none;
  width: 22px;
  height: 22px;
  padding: 9px;
  border: 1px solid #e2e8ed;
  border-radius: 4px;
  background: #f4f7f9;
  color: #ad5427;
}
.privacy-notice-heading > div { flex: 1; min-width: 0; }
.privacy-notice .privacy-notice-title {
  margin: 0;
  padding: 0;
  color: #1b293b;
  font-size: 21px;
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: -.025em;
}
.privacy-notice .privacy-notice-operator {
  margin: 5px 0 0;
  color: #566575;
  font-size: 12px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.privacy-notice .privacy-notice-operator strong { color: #33475b; font-weight: 600; }
.privacy-notice .privacy-notice-copy,
.privacy-notice .privacy-notice-copy p {
  margin: 13px 0 0;
  color: #4d6073;
  font-size: 14px;
  line-height: 1.65;
}
.privacy-notice .privacy-notice-copy p:first-child { margin-top: 0; }
.privacy-notice-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 20px;
  margin-top: 10px;
}
.privacy-notice-links a {
  padding: 2px 0;
  color: #334e69;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.6;
  text-decoration: underline;
  text-decoration-color: #9dabb9;
  text-underline-offset: 3px;
}
.privacy-notice-links a:hover { color: #95451d; text-decoration-color: currentColor; }
.privacy-notice-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.privacy-notice .privacy-notice-actions .btn,
.privacy-dialog .privacy-actions .btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 10px 14px;
  border: 1px solid #bccad7;
  border-radius: 3px;
  background: #fff;
  color: #233b53;
  font-family: inherit;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  cursor: pointer;
  box-shadow: none;
}
.privacy-notice .privacy-notice-actions .btn { flex: 1 1 140px; }
.privacy-notice .privacy-notice-actions .btn-primary,
.privacy-dialog .privacy-actions .btn-primary {
  border-color: #a64b20;
  background: #a64b20;
  color: #fff;
}
.privacy-notice .privacy-notice-actions .btn-primary:hover,
.privacy-dialog .privacy-actions .btn-primary:hover {
  border-color: #893e1a;
  background: #893e1a;
}
.privacy-notice .privacy-notice-actions .btn-outline:hover,
.privacy-dialog .privacy-actions .btn-outline:hover { border-color: #859aae; background: #f1f5f8; }
.privacy-notice :focus-visible,
.privacy-dialog :focus-visible { outline: 3px solid #ba693b; outline-offset: 3px; }

.privacy-dialog {
  box-sizing: border-box;
  width: min(520px, calc(100% - 32px));
  max-width: 520px;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 24px;
  border: 1px solid #d1dae3;
  border-radius: 6px;
  background: #fff;
  color: #1b293b;
  font-family: inherit;
  box-shadow: 0 20px 70px #10213338;
  overflow: auto;
  overscroll-behavior: contain;
}
.privacy-dialog::backdrop { background: #14263c9c; }
.privacy-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.privacy-dialog #sv74-privacy-title { margin: 0; color: #1b293b; font-size: 24px; line-height: 1.25; letter-spacing: -.025em; }
.privacy-dialog .privacy-close {
  box-sizing: border-box;
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  margin: -3px -3px 0 0;
  padding: 0;
  border: 1px solid #d4dee7;
  border-radius: 3px;
  background: #f5f8fa;
  color: #3a526b;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}
.privacy-dialog .privacy-close:hover { border-color: #8fa2b5; background: #edf2f6; }
.privacy-dialog p { margin: 12px 0; font-size: 14px; line-height: 1.6; }
.privacy-dialog .privacy-operator { margin: 10px 0 0; color: #526578; font-size: 12px; line-height: 1.6; }
.privacy-dialog .privacy-operator strong { color: #33475b; font-weight: 600; }
.privacy-dialog .privacy-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 16px 0 0;
  padding: 15px 0 0;
  border-top: 1px solid #e1e7ed;
  font-size: 14px;
  line-height: 1.5;
}
.privacy-dialog .privacy-option input {
  flex: none;
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  accent-color: #a64b20;
  cursor: pointer;
}
.privacy-dialog .privacy-option input:disabled { cursor: default; }
.privacy-dialog .privacy-option > span { min-width: 0; }
.privacy-dialog .privacy-option strong { color: #243b52; font-size: 14px; font-weight: 650; }
.privacy-dialog .privacy-option small { display: block; margin-top: 4px; color: #607182; font-size: 12px; line-height: 1.6; }
.privacy-dialog .privacy-detail { margin: 16px 0 0; color: #607182; font-size: 12px; line-height: 1.65; }
.privacy-dialog .privacy-detail a { color: #334e69; text-underline-offset: 3px; }
.privacy-dialog .privacy-save-status { margin: 14px 0 0; padding: 10px 12px; border-radius: 3px; background: #fff4e9; color: #76441f; font-size: 12px; line-height: 1.6; }
.privacy-dialog .privacy-save-status[hidden] { display: none !important; }
.privacy-dialog .privacy-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.privacy-dialog .privacy-actions .btn { flex: 1 1 180px; width: auto; }

@keyframes privacy-notice-enter {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 640px) {
  .privacy-notice {
    left: max(12px, env(safe-area-inset-left));
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
    width: auto;
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding: 18px;
  }
  .privacy-notice .privacy-notice-title { font-size: 20px; }
  .privacy-notice-icon { padding: 7px; }
  .privacy-notice-heading { gap: 10px; }
  .privacy-notice .privacy-notice-operator { font-size: 11px; line-height: 1.55; }
  .privacy-notice .privacy-notice-copy,
  .privacy-notice .privacy-notice-copy p { font-size: 13px; line-height: 1.6; }
  .privacy-notice-links { gap: 3px 16px; margin-top: 9px; }
  .privacy-notice-links a { font-size: 11px; }
  .privacy-notice-actions { display: grid; grid-template-columns: minmax(92px, .8fr) minmax(0, 1.2fr); gap: 8px; margin-top: 14px; }
  .privacy-notice-actions .btn:nth-child(3) { grid-column: 1 / -1; }
  .privacy-notice .privacy-notice-actions .btn { padding: 9px 8px; font-size: 12px; line-height: 1.4; }
  .privacy-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding: 20px; }
  .privacy-dialog #sv74-privacy-title { font-size: 22px; }
  .privacy-dialog .privacy-actions .btn { flex-basis: 100%; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .privacy-notice { animation: none; }
  .privacy-notice *, .privacy-dialog * { scroll-behavior: auto; transition: none; }
}
@media print {
  .privacy-notice, .privacy-dialog { display: none !important; }
}
