/* Klaro conserva els seus controls i la seva lògica de consentiment.
   Aquesta capa només integra la presentació amb Òptica Pardo. */
.klaro.klaro-theme-optica_pardo {
  --font-family: var(--op-font-body);
  --title-font-family: var(--op-font-display);
  --font-size: 1rem;
  --border-radius: var(--op-radius);
  --dark1: var(--op-surface);
  --dark2: var(--op-ink-soft);
  --dark3: var(--op-ink-soft);
  --light1: var(--op-ink);
  --light2: var(--op-control-border);
  --light3: var(--op-ink-soft);
  --white1: var(--op-surface);
  --white2: var(--op-surface-alt);
  --klaro-primary-color: var(--op-brand-dark);
  --klaro-link-color: var(--op-brand-dark);
  --klaro-link-color-hover: var(--op-brand-hover);
  --klaro-link-decoration-line: underline;
  --klaro-link-decoration-line-hover: underline;
  --klaro-button-bg: var(--op-brand-dark);
  --klaro-button-text-color: var(--op-surface);
  --klaro-button-border: 1px solid var(--op-brand-dark);
  --klaro-button-border-radius: 999px;
  --klaro-button-padding: .8rem 1.2rem;
  --klaro-button-font-size: .875rem;
  --klaro-button-font-weight: 600;
  --klaro-button-line-height: 1.4;
  --klaro-button-bg-hover: var(--op-brand-hover);
  --klaro-button-text-color-hover: var(--op-surface);
  --klaro-button-border-hover: 1px solid var(--op-brand-hover);
  --klaro-button-focus-outline: 3px solid var(--op-brand-dark);
  --klaro-button-focus-outline-offset: 3px;
  --klaro-dialog-focus-outline: 2px solid var(--op-brand-dark);
  --klaro-dialog-focus-box-shadow: var(--op-shadow-hover);
  --klaro-slider-bg: var(--op-control-border);
  --klaro-slider-bg-active: var(--op-brand-dark);
  --klaro-slider-bg-required: var(--op-brand-dark);
  color: var(--op-ink);
}

.klaro.klaro-theme-optica_pardo :is(.cm-header, .cm-body, .cn-body, .context-notice) {
  line-height: 1.6;
}

.klaro.klaro-theme-optica_pardo :is(.cm-btn, .cn-learn-more) {
  min-height: 44px;
  font-family: var(--op-font-display);
}

.klaro.klaro-theme-optica_pardo .cookie-notice:not(.cookie-modal-notice) {
  width: calc(100% - 2rem);
  max-width: 460px;
  right: 1rem;
  bottom: 1rem;
  border: 1px solid var(--op-control-border);
  border-radius: var(--op-radius);
  box-shadow: var(--op-shadow-hover);
  max-height: calc(100dvh - 2rem);
  overflow: auto;
}

.klaro.klaro-theme-optica_pardo .cookie-notice .cn-body {
  padding: 1.25rem;
}

.klaro.klaro-theme-optica_pardo .cookie-notice:not(.cookie-modal-notice) .cn-body .cn-ok {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-content: stretch;
  align-items: stretch;
  gap: .75rem;
  margin-top: 1rem;
}

.klaro.klaro-theme-optica_pardo .cookie-notice:not(.cookie-modal-notice) .cn-body .cn-learn-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  text-underline-offset: .2em;
}

.klaro.klaro-theme-optica_pardo .cookie-notice:not(.cookie-modal-notice) .cn-body .cn-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
  width: 100%;
  margin: 0;
}

/* Acceptar i rebutjar tenen la mateixa mida, contrast i visibilitat. */
.klaro.klaro-theme-optica_pardo .cookie-notice:not(.cookie-modal-notice) .cn-body .cn-buttons .cm-btn {
  flex: 1;
  width: auto;
  margin: 0;
  padding-inline: .85rem;
}

.klaro.klaro-theme-optica_pardo .cookie-modal .cm-modal.cm-klaro {
  width: calc(100% - 2rem);
  max-width: 640px;
  margin-inline: auto;
  inset-inline: 0;
  max-height: calc(100dvh - 2rem);
  border-radius: var(--op-radius);
  box-shadow: var(--op-shadow-hover);
}

.klaro.klaro-theme-optica_pardo .cookie-modal .cm-modal :is(.cm-header, .cm-body, .cm-footer) {
  padding: 1.25rem;
  border-color: var(--op-control-border);
}

.klaro.klaro-theme-optica_pardo .cookie-modal .cm-header h1 {
  padding-right: 2.5rem;
  font-family: var(--op-font-display);
  font-size: clamp(1.2rem, 1rem + .5vw, 1.5rem);
  line-height: 1.35;
}

.klaro.klaro-theme-optica_pardo .cookie-modal .cm-modal .hide {
  top: .6rem;
  right: .6rem;
  width: 44px;
  height: 44px;
  padding: .75rem;
  border-radius: 50%;
}

.klaro.klaro-theme-optica_pardo .cookie-modal .cm-footer-buttons {
  flex-wrap: wrap;
  gap: .75rem;
}

.klaro.klaro-theme-optica_pardo .cookie-modal .cm-footer-buttons .cm-btn {
  flex: 1 1 0;
  margin: 0;
}

.klaro.klaro-theme-optica_pardo .cookie-modal .cm-list-label .slider {
  box-shadow: none;
}

.klaro.klaro-theme-optica_pardo .cookie-modal .cm-list-input:checked + .cm-list-label .slider {
  opacity: 1;
}

.klaro.klaro-theme-optica_pardo.cm-as-context-notice {
  padding-block: 0;
}

.klaro.klaro-theme-optica_pardo .context-notice {
  padding: 1.5rem;
  background: var(--op-brand-light);
  border: 1px solid var(--op-control-border);
  border-radius: var(--op-radius);
  color: var(--op-ink);
}

.klaro.klaro-theme-optica_pardo .context-notice > p:first-child {
  font-family: var(--op-font-display);
  font-weight: 600;
  color: var(--op-ink);
}

.klaro.klaro-theme-optica_pardo .context-notice p {
  color: var(--op-ink);
}

.klaro.klaro-theme-optica_pardo .context-notice .cm-buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .75rem;
  margin-block: 1rem;
}

.klaro.klaro-theme-optica_pardo .context-notice .cm-btn {
  margin: 0;
}

.klaro.klaro-theme-optica_pardo .context-notice .cm-dialog-link {
  margin-bottom: 0;
}

/* Només el mapa bloquejat s'ajusta al seu avís. En acceptar-lo,
   es recuperen íntegrament les dimensions originals de l'iframe. */
.op-contact__map:has(> iframe[data-name="google_maps"]:is([src=""], :not([src]))) {
  min-height: 0;
  align-self: center;
  overflow: visible;
  box-shadow: none;
}

.klaro_toggle_dialog.klaro_toggle_dialog_override {
  width: 44px;
  height: 44px;
  right: 1rem;
  bottom: 1rem;
  border-color: var(--op-control-border);
  box-shadow: var(--op-shadow);
}

.klaro_toggle_dialog.klaro_toggle_dialog_override:focus-visible {
  outline: 3px solid var(--op-brand-dark);
  outline-offset: 3px;
}

@media (max-width: 420px) {
  .klaro.klaro-theme-optica_pardo .cookie-modal .cm-footer-buttons .cm-btn {
    flex-basis: 100%;
  }
}

@media (max-width: 360px) {
  .klaro.klaro-theme-optica_pardo .cookie-notice:not(.cookie-modal-notice) .cn-body .cn-buttons {
    grid-template-columns: 1fr;
  }
}
