/* Shared consent dialog layout for the public site and the application. */
.disponent-consent-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(2, 18, 42, .48);
  backdrop-filter: blur(3px);
}
.disponent-consent-dialog {
  position: fixed;
  inset: 0;
  z-index: 1001;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  height: 100dvh;
  padding: 20px;
  box-sizing: border-box;
}
.disponent-consent-card {
  --consent-blue: #1687f8;
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(100%, 720px);
  min-width: 0;
  max-height: 100%;
  padding: 0;
  overflow: hidden;
  border: 1px solid #dce8f3;
  border-radius: 18px;
  color: #082d58;
  background: #fff;
  box-shadow: 0 24px 70px rgba(4, 31, 72, .3);
  font-family: Inter, Arial, sans-serif;
  box-sizing: border-box;
}
.disponent-consent-header {
  flex-shrink: 0;
  padding: 26px 30px 0;
}
.disponent-consent-card h2 {
  margin: 6px 36px 14px 0;
  font: 700 25px/1.25 "Space Grotesk", Inter, sans-serif;
  letter-spacing: normal;
}
.disponent-consent-eyebrow {
  margin: 0;
  color: #1473c8;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.disponent-consent-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  color: #63758a;
  background: #eef5fb;
  font: 24px/1 Arial, sans-serif;
  cursor: pointer;
}
.disponent-consent-content {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 0 30px 4px;
}
.disponent-consent-content p {
  margin: 0;
  color: #53677e;
  font-size: 14px;
  line-height: 1.6;
}
.disponent-consent-content .disponent-consent-more { margin-top: 10px; }
.disponent-consent-options { display: grid; gap: 10px; margin: 20px 0 4px; }
.disponent-consent-options label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  border: 1px solid #e2ebf3;
  border-radius: 10px;
  cursor: pointer;
}
.disponent-consent-options input {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: var(--consent-blue);
}
.disponent-consent-options span { display: grid; min-width: 0; gap: 3px; }
.disponent-consent-options strong { font-size: 14px; }
.disponent-consent-options small { color: #65788d; font-size: 12px; line-height: 1.5; }
.disponent-consent-footer {
  flex-shrink: 0;
  padding: 18px 30px 20px;
  background: #fff;
  border-top: 1px solid #edf2f7;
  margin-top: 16px;
}
.disponent-consent-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin: 0; }
.disponent-consent-actions button {
  min-height: 46px;
  padding: 10px 16px;
  border-radius: 9px;
  font: 700 14px/1.4 Inter, Arial, sans-serif;
  cursor: pointer;
}
.disponent-consent-primary { border: 1px solid var(--consent-blue); color: #fff; background: var(--consent-blue); }
.disponent-consent-secondary { border: 1px solid #c9d8e6; color: #25415e; background: #fff; }
.disponent-consent-options[hidden], .disponent-consent-actions button[hidden] { display: none !important; }
.disponent-consent-links { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.disponent-consent-policy, .disponent-consent-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0;
  border: 0;
  color: #1473c8;
  background: transparent;
  font: 400 14px/1.5 Inter, Arial, sans-serif;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.disponent-consent-policy { max-width: 60%; text-align: left; }
.disponent-consent-link { margin-left: auto; max-width: 45%; text-align: right; justify-content: flex-end; }
.disponent-consent-policy:hover, .disponent-consent-link:hover { color: #082d58; }
.disponent-consent-card :focus-visible { outline: 2px solid #1473c8; outline-offset: 3px; }
.disponent-cookie-settings {
  position: fixed;
  right: max(15px, env(safe-area-inset-right));
  bottom: max(15px, env(safe-area-inset-bottom));
  z-index: 998;
  min-height: 40px;
  padding: 8px 11px;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 8px;
  color: #dceeff;
  background: #082d58;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .18);
  font: 400 11px/1.4 Inter, Arial, sans-serif;
  cursor: pointer;
}
.disponent-consent-open { overflow: hidden; }

@media (max-width: 600px) {
  .disponent-consent-dialog {
    align-items: flex-end;
    padding: 12px;
    padding-top: max(12px, env(safe-area-inset-top));
    padding-bottom: max(12px, env(safe-area-inset-bottom));
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }
  .disponent-consent-header { padding: 18px 18px 0; }
  .disponent-consent-card h2 { margin-right: 34px; font-size: 22px; }
  .disponent-consent-close { top: 10px; right: 10px; }
  .disponent-consent-content { padding-inline: 18px; }
  .disponent-consent-content p { line-height: 1.55; }
  .disponent-consent-footer { margin-top: 12px; padding: 14px 18px 10px; }
  .disponent-consent-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .disponent-consent-actions button { min-height: 48px; padding: 10px; }
  .disponent-consent-actions [data-action="save"] { grid-column: 1 / -1; }
  .disponent-consent-policy, .disponent-consent-link { font-size: 13px; }
  .disponent-cookie-settings { min-height: 44px; }
}
@media (max-width: 380px) {
  .disponent-consent-actions { grid-template-columns: minmax(0, 1fr); }
}
@media (max-height: 450px) and (min-width: 601px) {
  .disponent-consent-dialog { padding: 10px; }
  .disponent-consent-header { padding-top: 16px; }
  .disponent-consent-footer { margin-top: 10px; padding-top: 10px; padding-bottom: 8px; }
}
