/* =====================================================================
   Kiff ton site – Cookies : bandeau, préférences, pastille, encarts de contenus bloqués
   Couleurs et polices reprises du thème actif.
   ===================================================================== */
.ktsk, .ktsk-ph, .ktsk-open-link {
  --ktsk-a: var(--ktsk-accent, var(--wp--preset--color--primary, var(--ktsk-theme-accent, var(--e-global-color-primary, var(--ast-global-color-0, var(--global-palette1, #2b2e31))))));
  --ktsk-text: var(--wp--preset--color--contrast, var(--e-global-color-text, var(--ast-global-color-2, var(--global-palette3, #23262a))));
  --ktsk-bg: var(--wp--preset--color--base, #fff);
  --ktsk-head: var(--wp--preset--font-family--heading, var(--wp--preset--font-family--display, inherit));
  --ktsk-ease: cubic-bezier(.22, .8, .24, 1);
}
.ktsk {
  --fg: var(--ktsk-text);
  --surface: var(--ktsk-bg);
  --muted: color-mix(in srgb, var(--fg) 66%, transparent);
  --line: color-mix(in srgb, var(--fg) 13%, transparent);
  --btn-bg: var(--ktsk-a);
  --btn-fg: var(--ktsk-on, #fff);
  font-size: 15px;
  line-height: 1.5;
}
.ktsk *, .ktsk *::before, .ktsk *::after { box-sizing: border-box; }
.ktsk [hidden] { display: none !important; }
.ktsk button { font: inherit; letter-spacing: normal; text-transform: none; margin: 0; min-height: 0; box-shadow: none; }
.ktsk--dark { --fg: #f3f1ec; --surface: #1f2224; --btn-bg: #f3f1ec; --btn-fg: #1f2224; --line: rgba(255,255,255,.16); }
.ktsk--accent { --fg: var(--ktsk-on, #fff); --surface: var(--ktsk-a); --btn-bg: var(--ktsk-on, #fff); --btn-fg: var(--ktsk-a); --line: color-mix(in srgb, var(--ktsk-on, #fff) 30%, transparent); }
html.ktsk-lock { overflow: hidden; }

/* ---------- Bandeau ---------- */
.ktsk-banner {
  position: fixed; z-index: 999990; color: var(--fg); background: var(--surface);
  border: 1px solid var(--line); box-shadow: 0 2px 6px rgba(0,0,0,.06), 0 24px 60px -18px rgba(0,0,0,.35);
  opacity: 0; transform: translateY(24px); transition: opacity .45s var(--ktsk-ease), transform .55s var(--ktsk-ease);
}
.ktsk.is-in .ktsk-banner, .ktsk--preview .ktsk-banner { opacity: 1; transform: none; }
.ktsk-banner__body { display: flex; gap: 14px; align-items: flex-start; }
.ktsk-banner__ic { display: inline-grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 14px; background: color-mix(in srgb, var(--btn-bg) 12%, transparent); color: var(--fg); }
.ktsk.is-in .ktsk-banner__ic .ktsk-ic, .ktsk--preview .ktsk-banner__ic .ktsk-ic { animation: ktsk-wobble 1.4s var(--ktsk-ease) .5s both; }
@keyframes ktsk-wobble { 0% { transform: rotate(-30deg) scale(.6); opacity: 0; } 60% { transform: rotate(8deg) scale(1.05); opacity: 1; } 100% { transform: none; } }
.ktsk .ktsk-title { margin: 0 0 4px; padding: 0; font-family: var(--ktsk-head); font-size: 1.16rem; line-height: 1.25; font-weight: 700; color: inherit; letter-spacing: -.005em; }
.ktsk .ktsk-text { margin: 0; color: var(--muted); font-size: .92rem; }
.ktsk .ktsk-text a { color: var(--fg); text-decoration: underline; text-underline-offset: 2px; }
.ktsk-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.ktsk .ktsk-btn {
  display: inline-flex; align-items: center; justify-content: center; flex: 1 1 auto; min-height: 44px; padding: 0 18px;
  border: 1.5px solid var(--btn-bg); border-radius: 999px; background: var(--btn-bg); color: var(--btn-fg);
  font-weight: 650; font-size: .92rem; line-height: 1.1; cursor: pointer; white-space: nowrap; transition: transform .2s var(--ktsk-ease), filter .2s, box-shadow .2s;
}
.ktsk .ktsk-btn:hover { transform: translateY(-1px); filter: brightness(1.08); }
.ktsk .ktsk-btn--ghost { background: transparent; color: var(--fg); border-color: var(--line); }
.ktsk .ktsk-btn--ghost:hover { border-color: var(--fg); filter: none; }
.ktsk .ktsk-btn:focus-visible, .ktsk .ktsk-continue:focus-visible, .ktsk .ktsk-x:focus-visible, .ktsk-badge:focus-visible { outline: 3px solid color-mix(in srgb, var(--btn-bg) 45%, transparent); outline-offset: 2px; }
.ktsk .ktsk-continue { position: absolute; top: 10px; right: 14px; padding: 4px 6px; border: 0; background: none; color: var(--muted); font-size: .8rem; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: transparent; transition: color .2s, text-decoration-color .2s; }
.ktsk .ktsk-continue:hover { color: var(--fg); text-decoration-color: currentColor; }

/* Carte flottante */
.ktsk--card .ktsk-banner { bottom: 20px; width: min(430px, calc(100vw - 24px)); padding: 38px 22px 20px; border-radius: 24px; }
.ktsk--card.ktsk--left .ktsk-banner { left: 20px; }
.ktsk--card.ktsk--right .ktsk-banner { right: 20px; }
.ktsk--card.ktsk--center .ktsk-banner { left: 50%; margin-left: max(-215px, calc(-50vw + 12px)); }
.ktsk--card .ktsk-actions .ktsk-btn--ghost { flex-basis: 100%; }

/* Barre */
.ktsk--bar .ktsk-banner { left: 0; right: 0; bottom: 0; padding: 22px max(20px, calc((100vw - 1180px) / 2)); border-radius: 22px 22px 0 0; border-bottom: 0; display: flex; align-items: center; gap: 24px; }
.ktsk--bar .ktsk-banner__body { flex: 1; min-width: 0; }
.ktsk--bar .ktsk-actions { margin: 0; flex: none; flex-wrap: nowrap; }
.ktsk--bar .ktsk-continue { top: 8px; }
.ktsk--bar .ktsk-banner { padding-top: 30px; }

/* Fenêtre centrée */
.ktsk-veil { position: fixed; inset: 0; z-index: 999989; background: rgba(20,22,24,.42); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); opacity: 0; transition: opacity .4s; }
.ktsk.is-in .ktsk-veil, .ktsk--preview .ktsk-veil { opacity: 1; }
.ktsk--modal .ktsk-banner { left: 50%; top: 50%; width: min(520px, calc(100vw - 24px)); padding: 42px 30px 26px; border-radius: 28px; transform: translate(-50%, -46%); text-align: center; }
.ktsk--modal.is-in .ktsk-banner, .ktsk--modal.ktsk--preview .ktsk-banner { transform: translate(-50%, -50%); }
.ktsk--modal .ktsk-banner__body { flex-direction: column; align-items: center; }
.ktsk--modal .ktsk-banner__ic { width: 64px; height: 64px; border-radius: 20px; }
.ktsk--modal .ktsk-banner__ic .ktsk-ic { width: 34px; height: 34px; }
.ktsk--modal .ktsk-title { font-size: 1.4rem; }
.ktsk--modal .ktsk-actions { margin-top: 20px; }
.ktsk--modal .ktsk-actions .ktsk-btn--ghost { flex-basis: 100%; }

@media (max-width: 760px) {
  .ktsk--bar .ktsk-banner { flex-direction: column; align-items: stretch; gap: 14px; padding: 30px 16px 16px; }
  .ktsk--bar .ktsk-actions { flex-wrap: wrap; }
  .ktsk--card .ktsk-banner { left: 12px !important; right: 12px; bottom: 12px; width: auto; margin: 0 !important; }
  .ktsk-banner__ic { width: 40px; height: 40px; }
}

/* ---------- Préférences ---------- */
.ktsk-prefs { position: fixed; inset: 0; z-index: 999995; display: grid; place-items: center; padding: 12px; }
.ktsk-prefs__veil { position: absolute; inset: 0; background: rgba(20,22,24,.5); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); opacity: 0; transition: opacity .35s; }
.ktsk-prefs__panel { position: relative; display: flex; flex-direction: column; width: min(600px, 100%); max-height: min(720px, calc(100vh - 24px)); color: var(--fg); background: var(--surface); border-radius: 28px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.45); outline: 0; opacity: 0; transform: translateY(20px) scale(.98); transition: opacity .35s var(--ktsk-ease), transform .45s var(--ktsk-ease); }
.ktsk--accent .ktsk-prefs__panel { --fg: var(--ktsk-text); --surface: var(--ktsk-bg); --btn-bg: var(--ktsk-a); --btn-fg: var(--ktsk-on, #fff); --line: color-mix(in srgb, var(--ktsk-text) 13%, transparent); --muted: color-mix(in srgb, var(--ktsk-text) 66%, transparent); }
.ktsk-prefs.is-in .ktsk-prefs__veil { opacity: 1; }
.ktsk-prefs.is-in .ktsk-prefs__panel { opacity: 1; transform: none; }
.ktsk-prefs__head { display: flex; align-items: center; gap: 12px; padding: 20px 22px 14px; border-bottom: 1px solid var(--line); }
.ktsk-prefs__head .ktsk-title { flex: 1; margin: 0; font-size: 1.3rem; }
.ktsk-prefs__head .ktsk-banner__ic { width: 42px; height: 42px; }
.ktsk .ktsk-x { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: color-mix(in srgb, var(--fg) 7%, transparent); color: var(--fg); cursor: pointer; transition: transform .25s var(--ktsk-ease), background .2s; }
.ktsk .ktsk-x:hover { transform: rotate(90deg); background: color-mix(in srgb, var(--fg) 12%, transparent); }
.ktsk-prefs__body { padding: 16px 22px; overflow-y: auto; overscroll-behavior: contain; }
.ktsk ul.ktsk-cats { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.ktsk-cat { display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 18px; transition: border-color .2s, background .2s; }
.ktsk-cat:has(input:checked) { border-color: color-mix(in srgb, var(--btn-bg) 55%, transparent); background: color-mix(in srgb, var(--btn-bg) 5%, transparent); }
.ktsk-cat__ic { display: inline-grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 12px; background: color-mix(in srgb, var(--btn-bg) 10%, transparent); }
.ktsk-cat__txt { flex: 1; min-width: 0; }
.ktsk .ktsk-cat__l { display: block; margin: 0 0 2px; font-weight: 650; cursor: pointer; color: inherit; }
.ktsk-cat__txt p { margin: 0; font-size: .85rem; color: var(--muted); line-height: 1.45; }
.ktsk-always { flex: none; padding: 4px 10px; border-radius: 999px; background: color-mix(in srgb, var(--fg) 8%, transparent); font-size: .76rem; font-weight: 700; white-space: nowrap; }
.ktsk-switch { position: relative; flex: none; width: 46px; height: 28px; margin-top: 4px; }
.ktsk .ktsk-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.ktsk-switch span { position: absolute; inset: 0; border-radius: 99px; background: color-mix(in srgb, var(--fg) 20%, transparent); transition: background .25s; }
.ktsk-switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.25); transition: transform .3s var(--ktsk-ease); }
.ktsk-switch input:checked + span { background: var(--btn-bg); }
.ktsk-switch input:checked + span::after { transform: translateX(18px); }
.ktsk-switch input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--btn-bg) 45%, transparent); outline-offset: 2px; }
.ktsk-prefs__foot { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 22px 20px; border-top: 1px solid var(--line); }
.ktsk-prefs__foot .ktsk-btn--ghost { flex-basis: 100%; order: 3; }
@media (min-width: 560px) { .ktsk-prefs__foot .ktsk-btn--ghost { flex-basis: auto; order: 0; } }

/* ---------- Pastille ---------- */
.ktsk-badge { position: fixed; bottom: 16px; z-index: 999980; display: inline-flex; align-items: center; gap: 0; height: 48px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--fg); box-shadow: 0 10px 30px -12px rgba(0,0,0,.35); cursor: pointer; overflow: hidden; transition: gap .3s var(--ktsk-ease), box-shadow .2s, transform .25s var(--ktsk-ease); animation: ktsk-pop .5s var(--ktsk-ease) both; }
.ktsk-badge--left { left: 16px; }
.ktsk-badge--right { right: 16px; }
.ktsk-badge span { max-width: 0; overflow: hidden; white-space: nowrap; font-weight: 600; font-size: .85rem; transition: max-width .4s var(--ktsk-ease); }
.ktsk-badge:hover, .ktsk-badge:focus-visible { gap: 8px; transform: translateY(-2px); }
.ktsk-badge:hover span, .ktsk-badge:focus-visible span { max-width: 180px; }
.ktsk-badge .ktsk-ic { transition: transform .5s var(--ktsk-ease); }
.ktsk-badge:hover .ktsk-ic { transform: rotate(-25deg); }
@keyframes ktsk-pop { from { opacity: 0; transform: scale(.6); } }

/* Lien / bouton « Gérer mes cookies » dans le texte ou le pied de page */
.ktsk-open-link { display: inline; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }

/* ---------- Encart à la place d'une vidéo / carte bloquée ---------- */
.ktsk-ph { position: relative; display: grid; place-items: center; width: 100%; max-width: 100%; aspect-ratio: var(--ktsk-ratio, 16/9); min-height: 220px; margin: 0 0 1em; padding: 22px; border-radius: 18px; overflow: hidden; color: var(--ktsk-text); background: radial-gradient(120% 90% at 0% 0%, color-mix(in srgb, var(--ktsk-a) 14%, var(--ktsk-bg)) 0%, transparent 60%), linear-gradient(135deg, color-mix(in srgb, var(--ktsk-text) 6%, var(--ktsk-bg)), color-mix(in srgb, var(--ktsk-text) 12%, var(--ktsk-bg))); border: 1px solid color-mix(in srgb, var(--ktsk-text) 12%, transparent); text-align: center; box-sizing: border-box; }
.ktsk-ph--maps { background: repeating-linear-gradient(45deg, transparent 0 22px, color-mix(in srgb, var(--ktsk-text) 4%, transparent) 22px 23px), repeating-linear-gradient(-45deg, transparent 0 22px, color-mix(in srgb, var(--ktsk-text) 4%, transparent) 22px 23px), color-mix(in srgb, var(--ktsk-text) 6%, var(--ktsk-bg)); }
.wp-has-aspect-ratio .wp-block-embed__wrapper > .ktsk-ph { position: absolute; inset: 0; min-height: 0; margin: 0; aspect-ratio: auto; }
.ktsk-ph__in { max-width: 440px; }
.ktsk-ph__ic { display: inline-grid; place-items: center; width: 56px; height: 56px; margin-bottom: 10px; border-radius: 50%; background: var(--ktsk-a); color: var(--ktsk-on, #fff); box-shadow: 0 0 0 8px color-mix(in srgb, var(--ktsk-a) 15%, transparent); }
.ktsk-ph__ic .ktsk-ic { width: 26px; height: 26px; }
.ktsk-ph .ktsk-ph__t { margin: 0 0 4px; font-family: var(--ktsk-head); font-size: 1.12rem; font-weight: 700; line-height: 1.3; }
.ktsk-ph .ktsk-ph__d { margin: 0; font-size: .86rem; line-height: 1.5; opacity: .75; }
.ktsk-ph .ktsk-ph__a { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 16px; margin: 14px 0 0; }
.ktsk-ph .ktsk-ph__btn { display: inline-flex; align-items: center; min-height: 42px; margin: 0; padding: 0 20px; border: 0; border-radius: 999px; background: var(--ktsk-a); color: var(--ktsk-on, #fff); font: inherit; font-weight: 650; font-size: .9rem; cursor: pointer; transition: transform .2s var(--ktsk-ease), filter .2s; }
.ktsk-ph .ktsk-ph__btn:hover { transform: translateY(-1px); filter: brightness(1.08); }
.ktsk-ph .ktsk-ph__link { font-size: .85rem; color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@container (max-width: 380px) { .ktsk-ph__d { display: none; } }
@media (max-width: 480px) { .ktsk-ph { min-height: 260px; aspect-ratio: auto; } .wp-has-aspect-ratio .wp-block-embed__wrapper > .ktsk-ph { min-height: 0; } }

/* ---------- Aperçu (administration) ---------- */
.ktsk--preview .ktsk-banner, .ktsk--preview .ktsk-veil { position: absolute; }
.ktsk--preview.ktsk--card .ktsk-banner { width: min(400px, calc(100% - 24px)); bottom: 14px; }
.ktsk--preview.ktsk--card.ktsk--left .ktsk-banner { left: 14px; }
.ktsk--preview.ktsk--card.ktsk--right .ktsk-banner { right: 14px; }
.ktsk--preview.ktsk--card.ktsk--center .ktsk-banner { left: 50%; margin-left: max(-200px, calc(-50% + 12px)); }
.ktsk--preview.ktsk--bar .ktsk-banner { padding: 28px 18px 16px; flex-direction: column; align-items: stretch; gap: 12px; }
.ktsk--preview.ktsk--bar .ktsk-actions { flex-wrap: wrap; }
.ktsk--preview.ktsk--modal .ktsk-banner { width: min(440px, calc(100% - 24px)); padding: 36px 22px 20px; }

@media (prefers-reduced-motion: reduce) {
  .ktsk *, .ktsk-badge, .ktsk-ph * { animation: none !important; transition-duration: .01ms !important; }
}

/* « Tout refuser » et « Tout accepter » : strictement la même taille */
.ktsk .ktsk-actions .ktsk-btn:not(.ktsk-btn--ghost), .ktsk .ktsk-prefs__foot .ktsk-btn:not(.ktsk-btn--ghost) { flex: 1 1 0; min-width: 0; }
.ktsk--bar .ktsk-actions .ktsk-btn:not(.ktsk-btn--ghost) { flex: 0 0 auto; min-width: 150px; }
.wp-block-embed__wrapper > .ktsk-ph { max-width: none !important; }
