/* =========================================================
   DVL PRIVACY CONSENT — Daniel Vision Lab
   Brand: #9b8b5a | black / white | Arial + Georgia
   ========================================================= */

:root {
  --dvl-consent-gold: #9b8b5a;
  --dvl-consent-black: #050505;
  --dvl-consent-white: #ffffff;
  --dvl-consent-soft: #f4f3ef;
  --dvl-consent-border: rgba(5, 5, 5, .18);
  --dvl-consent-sans: Arial, Helvetica, sans-serif;
  --dvl-consent-serif: Georgia, "Times New Roman", serif;
}

.dvl-consent-root,
.dvl-consent-root * {
  box-sizing: border-box;
}

/* FIRST VISIT: the banner is rendered at wp_body_open and is visible before
   the Home content paints. A valid stored choice adds .dvl-consent-known in
   <head>, hiding it before the body is shown. */
html.dvl-consent-known #dvl-consent-banner,
html.dvl-consent-known [data-dvl-backdrop] {
  display: none !important;
}

html.dvl-consent-required body {
  overflow: hidden !important;
}

.dvl-consent-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  background: rgba(0, 0, 0, .58);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.dvl-consent-panel {
  position: fixed;
  z-index: 2147483001;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(760px, calc(100vw - 38px));
  max-height: min(86vh, 760px);
  overflow: auto;
  background: var(--dvl-consent-white);
  color: #111;
  padding: 42px 42px 34px;
  border: 1px solid rgba(155, 139, 90, .34);
  box-shadow: 0 28px 80px rgba(0,0,0,.28);
  font-family: var(--dvl-consent-sans);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

.dvl-consent-panel[hidden],
.dvl-consent-backdrop[hidden],
.dvl-privacy-trigger[hidden] {
  display: none !important;
}

.dvl-consent-brand {
  margin: 0 44px 12px 0;
  color: var(--dvl-consent-gold);
  font: 700 11px/1.2 var(--dvl-consent-sans);
  letter-spacing: .18em;
}

.dvl-consent-panel h2 {
  margin: 0 52px 16px 0;
  color: var(--dvl-consent-black);
  font: italic 400 clamp(28px, 3vw, 38px)/1.08 var(--dvl-consent-serif);
  letter-spacing: -.02em;
}

.dvl-consent-panel p {
  margin: 0;
  font: 400 14px/1.6 var(--dvl-consent-sans);
}

.dvl-consent-close {
  position: absolute;
  top: 17px;
  right: 18px;
  width: 40px;
  height: 40px;
  border: 1px solid #111;
  background: #fff;
  color: #111;
  cursor: pointer;
  font: 300 28px/34px Arial, Helvetica, sans-serif;
  text-align: center;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.dvl-consent-close:hover,
.dvl-consent-close:focus-visible {
  background: var(--dvl-consent-black);
  color: #fff;
  outline: 2px solid var(--dvl-consent-gold);
  outline-offset: 2px;
}

.dvl-consent-links {
  margin-top: 13px !important;
}

.dvl-consent-links a {
  color: #111;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.dvl-consent-links a:hover,
.dvl-consent-links a:focus-visible {
  color: var(--dvl-consent-gold);
}

.dvl-consent-actions {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 12px;
  margin-top: 28px;
}

.dvl-btn {
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid var(--dvl-consent-black);
  border-radius: 0;
  cursor: pointer;
  font: 700 12px/1.25 var(--dvl-consent-sans);
  letter-spacing: .02em;
  transition: transform .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}

.dvl-btn:hover {
  transform: translateY(-1px);
}

.dvl-btn:focus-visible {
  outline: 2px solid var(--dvl-consent-gold);
  outline-offset: 3px;
}

.dvl-btn-primary {
  background: var(--dvl-consent-black);
  color: #fff;
}

.dvl-btn-primary:hover {
  background: var(--dvl-consent-gold);
  border-color: var(--dvl-consent-gold);
  color: #fff;
}

.dvl-btn-secondary {
  background: #fff;
  color: #111;
}

.dvl-btn-secondary:hover {
  background: var(--dvl-consent-soft);
}

/* Preferences */
.dvl-settings-intro {
  margin-bottom: 24px !important;
}

.dvl-pref-list {
  border-top: 1px solid var(--dvl-consent-border);
}

.dvl-pref-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  padding: 19px 0;
  border-bottom: 1px solid var(--dvl-consent-border);
}

.dvl-pref-row h3 {
  margin: 0 0 4px;
  color: #111;
  font: 700 14px/1.25 var(--dvl-consent-sans);
}

.dvl-pref-row p {
  color: #4a4a4a;
  font-size: 13px;
}

.dvl-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.dvl-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.dvl-slider {
  position: relative;
  display: block;
  width: 46px;
  height: 25px;
  background: #d7d7d7;
  border: 1px solid #b8b8b8;
  cursor: pointer;
  transition: .18s ease;
}

.dvl-slider::after {
  content: "";
  position: absolute;
  width: 17px;
  height: 17px;
  left: 3px;
  top: 3px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.22);
  transition: .18s ease;
}

.dvl-switch input:checked + .dvl-slider {
  background: var(--dvl-consent-gold);
  border-color: var(--dvl-consent-gold);
}

.dvl-switch input:checked + .dvl-slider::after {
  transform: translateX(21px);
}

.dvl-switch input:focus-visible + .dvl-slider {
  outline: 2px solid var(--dvl-consent-gold);
  outline-offset: 3px;
}

.dvl-switch-locked {
  min-width: 82px;
  justify-content: flex-end;
  color: var(--dvl-consent-gold);
  font: 700 11px/1.2 var(--dvl-consent-sans);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.dvl-gpc-note {
  margin-top: 16px;
  padding: 12px 14px;
  border-left: 3px solid var(--dvl-consent-gold);
  background: var(--dvl-consent-soft);
  font: 400 12px/1.5 var(--dvl-consent-sans);
}

.dvl-settings-actions {
  grid-template-columns: 1fr 1fr;
}

.dvl-settings-links {
  text-align: center;
  margin-top: 18px !important;
}

.dvl-settings-links span {
  margin: 0 7px;
  color: #888;
}

/* Footer privacy control.
   The JS clones the site's real Cookie Policy anchor and inserts it directly
   into the same footer row. This keeps line, font size and responsive behavior
   identical without changing any consent functionality. */
.dvl-consent-footer-separator {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  font: inherit !important;
  line-height: inherit !important;
  vertical-align: baseline !important;
  color: inherit !important;
}

.dvl-consent-footer-link {
  cursor: pointer;
  vertical-align: baseline !important;
}

.dvl-consent-footer-separator[hidden],
.dvl-consent-footer-link[hidden] {
  display: none !important;
}

body.dvl-consent-lock {
  overflow: hidden !important;
}

@media (max-width: 720px) {
  .dvl-consent-panel {
    top: auto;
    bottom: 0;
    left: 0;
    transform: none;
    width: 100%;
    max-height: 88svh;
    padding: 32px 20px 22px;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
  }

  .dvl-consent-close {
    top: 12px;
    right: 14px;
  }

  .dvl-consent-actions,
  .dvl-settings-actions {
    grid-template-columns: 1fr;
  }

  .dvl-btn {
    width: 100%;
  }

  .dvl-pref-row {
    gap: 16px;
  }

}


@media (max-width: 560px) {
  .dvl-consent-panel {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
    padding-bottom: max(20px, env(safe-area-inset-bottom));
  }
}

@media (max-width: 380px) {
  .dvl-consent-panel {
    padding-top: 26px;
  }

  .dvl-consent-panel h2 {
    font-size: 27px;
    margin-right: 38px;
  }

  .dvl-consent-panel p {
    font-size: 13px;
  }

  .dvl-btn {
    min-height: 46px;
    padding: 11px 12px;
  }

  .dvl-pref-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
  }
}

@media (max-height: 600px) and (orientation: landscape) {
  .dvl-consent-panel {
    top: 50%;
    bottom: auto;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(760px, calc(100vw - 28px));
    max-height: calc(100svh - 20px);
    padding-top: 24px;
    padding-bottom: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dvl-btn,
  .dvl-consent-close,
  .dvl-slider,
  .dvl-slider::after {
    transition: none !important;
  }
}

/* International explanatory note */
.dvl-international-note {
  margin-top: 14px !important;
  color: #555;
  font-size: 12px !important;
  line-height: 1.5 !important;
}
