/* ==========================================================
   KUBRA'S — SÉLECTEUR LANGUE / PAYS
   GTranslate reste invisible et sert uniquement de moteur.
========================================================== */

.vvv-kubras-locale,
.vvv-kubras-locale * {
  box-sizing: border-box;
}

html.vvv-kubras-locale-lock,
body.vvv-kubras-locale-lock {
  overflow: hidden !important;
  overscroll-behavior: none;
}

.vvv-kubras-locale {
  position: relative;
  z-index: 2147480000;
  font-family: var(--vvv-designer-kubraselegance-font-text, Manrope, Arial, sans-serif);
}

/* GTranslate est chargé mais son interface native reste invisible. */
.vvv-kubras-gtranslate-engine,
#gt_float_wrapper,
.gt_float_switcher,
.gt_switcher_wrapper,
.gt_container--float,
.gtranslate_wrapper.gt_container--float {
  position: fixed !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  clip-path: inset(50%) !important;
}

/* ----------------------------------------------------------
   DÉCLENCHEUR DANS LE HEADER
---------------------------------------------------------- */

.vvv-kubras-locale__trigger {
  position: relative;
  z-index: 2;
  min-height: 38px;
  padding: 0 13px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid currentColor !important;
  border-radius: 999px !important;
  background: rgba(8, 6, 4, .10) !important;
  color: inherit !important;
  font: 700 9px/1 var(--vvv-designer-kubraselegance-font-text, Manrope, Arial, sans-serif) !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  opacity: .92;
  transition: opacity .3s ease, transform .3s ease, background .3s ease, border-color .3s ease;
  -webkit-tap-highlight-color: transparent;
}

.vvv-kubras-locale__trigger:hover {
  opacity: 1;
  transform: translateY(-1px);
  background: rgba(201, 164, 95, .13) !important;
}

.vvv-kubras-locale__trigger:focus-visible {
  outline: 2px solid #c9a45f !important;
  outline-offset: 3px;
}

.vvv-kubras-locale__trigger > svg:first-child {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.vvv-kubras-locale__trigger i {
  width: 1px;
  height: 13px;
  flex: 0 0 1px;
  background: currentColor;
  opacity: .28;
}

.vvv-kubras-locale__trigger-chevron {
  width: 10px;
  height: 7px;
  flex: 0 0 10px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .35s cubic-bezier(.19, 1, .22, 1);
}

.vvv-kubras-locale__trigger[aria-expanded="true"] .vvv-kubras-locale__trigger-chevron {
  transform: rotate(180deg);
}

.vvv-kubras-locale.is-floating-fallback .vvv-kubras-locale__trigger {
  position: fixed;
  top: 118px;
  right: 18px;
  z-index: 2147480001;
  color: #21170f !important;
  background: rgba(255, 250, 242, .96) !important;
  border-color: rgba(201, 164, 95, .58) !important;
  box-shadow: 0 14px 40px rgba(8, 6, 4, .16) !important;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* ----------------------------------------------------------
   OVERLAY + PANNEAU
---------------------------------------------------------- */

.vvv-kubras-locale__overlay {
  position: fixed;
  inset: 0;
  z-index: 2147480002;
  background: rgba(8, 6, 4, .62);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .4s ease, visibility .4s ease;
}

.vvv-kubras-locale.is-open .vvv-kubras-locale__overlay {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.vvv-kubras-locale__panel {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 2147480003;
  width: min(590px, 100%);
  height: 100dvh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background:
    radial-gradient(circle at 92% 5%, rgba(201, 164, 95, .22), transparent 30%),
    #fffaf2;
  color: #21170f;
  border-left: 1px solid rgba(33, 23, 15, .10);
  box-shadow: -30px 0 80px rgba(8, 6, 4, .20);
  transform: translateX(105%);
  visibility: hidden;
  transition: transform .62s cubic-bezier(.16, 1, .3, 1), visibility .62s ease;
  overflow: hidden;
}

.vvv-kubras-locale.is-open .vvv-kubras-locale__panel {
  transform: translateX(0);
  visibility: visible;
}

.vvv-kubras-locale__grain {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
}

.vvv-kubras-locale__header,
.vvv-kubras-locale__body,
.vvv-kubras-locale__footer {
  position: relative;
  z-index: 1;
}

.vvv-kubras-locale__header {
  min-height: 178px;
  padding: 34px 38px 30px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  border-bottom: 1px solid rgba(33, 23, 15, .10);
}

.vvv-kubras-locale__header small {
  display: block;
  color: #b58b47;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.vvv-kubras-locale__header h2 {
  margin: 13px 0 8px;
  font-family: var(--vvv-designer-kubraselegance-font-title, "Bodoni Moda", Georgia, serif);
  font-size: clamp(42px, 4.3vw, 62px);
  font-weight: 400;
  line-height: .95;
  letter-spacing: -.04em;
  color: #080604;
}

.vvv-kubras-locale__header p {
  max-width: 380px;
  margin: 0;
  color: rgba(33, 23, 15, .62);
  font-size: 13px;
  line-height: 1.65;
}

.vvv-kubras-locale__close {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  display: grid;
  place-items: center;
  padding: 0 !important;
  border: 1px solid rgba(33, 23, 15, .16) !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, .42) !important;
  color: #21170f !important;
  font: 300 28px/1 Arial, sans-serif !important;
  cursor: pointer;
  transition: transform .35s ease, background .35s ease, border-color .35s ease;
}

.vvv-kubras-locale__close:hover {
  transform: rotate(90deg);
  background: #080604 !important;
  border-color: #080604 !important;
  color: #fffaf2 !important;
}

.vvv-kubras-locale__body {
  min-height: 0;
  padding: 31px 38px 34px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(201, 164, 95, .55) transparent;
}

.vvv-kubras-locale__section {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.vvv-kubras-locale__section + .vvv-kubras-locale__section {
  margin-top: 34px;
  padding-top: 30px;
  border-top: 1px solid rgba(33, 23, 15, .09);
}

.vvv-kubras-locale__section legend {
  width: 100%;
  margin: 0 0 17px;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}

.vvv-kubras-locale__section legend span {
  color: #c9a45f;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .15em;
}

.vvv-kubras-locale__section legend strong {
  color: #21170f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.vvv-kubras-locale__language-grid,
.vvv-kubras-locale__country-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.vvv-kubras-locale__choice {
  position: relative;
  min-width: 0;
  min-height: 62px;
  padding: 12px 42px 12px 14px !important;
  display: grid !important;
  grid-template-columns: 31px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(33, 23, 15, .13) !important;
  border-radius: 2px !important;
  background: rgba(255, 255, 255, .52) !important;
  color: #21170f !important;
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  transition: border-color .3s ease, background .3s ease, transform .3s ease, box-shadow .3s ease;
}

.vvv-kubras-locale__choice::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(201, 164, 95, .15), transparent 62%);
  opacity: 0;
  transition: opacity .3s ease;
}

.vvv-kubras-locale__choice:hover {
  transform: translateY(-1px);
  border-color: rgba(201, 164, 95, .70) !important;
  box-shadow: 0 10px 24px rgba(33, 23, 15, .06);
}

.vvv-kubras-locale__choice:hover::before,
.vvv-kubras-locale__choice.is-selected::before {
  opacity: 1;
}

.vvv-kubras-locale__choice.is-selected {
  border-color: #c9a45f !important;
  background: #fff !important;
}

.vvv-kubras-locale__choice > span,
.vvv-kubras-locale__choice > strong,
.vvv-kubras-locale__choice > i {
  position: relative;
  z-index: 1;
}

.vvv-kubras-locale__choice > span {
  color: #b58b47;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .11em;
}

.vvv-kubras-locale__choice > strong {
  min-width: 0;
  color: #21170f;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vvv-kubras-locale__choice > i {
  position: absolute;
  top: 50%;
  right: 15px;
  width: 17px;
  height: 17px;
  border: 1px solid rgba(33, 23, 15, .20);
  border-radius: 50%;
  transform: translateY(-50%);
}

.vvv-kubras-locale__choice > i::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: #c9a45f;
  transform: scale(0);
  transition: transform .3s cubic-bezier(.19, 1, .22, 1);
}

.vvv-kubras-locale__choice.is-selected > i::after {
  transform: scale(1);
}

.vvv-kubras-locale__footer {
  padding: 22px 38px 28px;
  background: rgba(255, 250, 242, .96);
  border-top: 1px solid rgba(33, 23, 15, .10);
  box-shadow: 0 -18px 40px rgba(255, 250, 242, .96);
}

.vvv-kubras-locale__euro-note {
  margin: 0 0 9px;
  color: rgba(33, 23, 15, .52);
  font-size: 10px;
  line-height: 1.45;
}

.vvv-kubras-locale__status {
  min-height: 18px;
  margin: 0 0 8px;
  color: rgba(33, 23, 15, .58);
  font-size: 10px;
  line-height: 1.4;
}

.vvv-kubras-locale__status[data-state="success"] {
  color: #527154;
}

.vvv-kubras-locale__status[data-state="error"] {
  color: #9b3e36;
}

.vvv-kubras-locale__apply {
  width: 100%;
  min-height: 58px;
  padding: 0 22px !important;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  border: 1px solid #080604 !important;
  border-radius: 0 !important;
  background: #080604 !important;
  color: #fffaf2 !important;
  font: 800 10px/1 var(--vvv-designer-kubraselegance-font-text, Manrope, Arial, sans-serif) !important;
  letter-spacing: .17em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .35s ease, color .35s ease, opacity .35s ease;
}

.vvv-kubras-locale__apply:hover {
  background: #c9a45f !important;
  border-color: #c9a45f !important;
  color: #080604 !important;
}

.vvv-kubras-locale__apply i {
  font-size: 17px;
  font-style: normal;
  font-weight: 400;
  transition: transform .35s ease;
}

.vvv-kubras-locale__apply:hover i {
  transform: translateX(4px);
}

.vvv-kubras-locale__apply:disabled {
  cursor: wait;
  opacity: .65;
}

/* ----------------------------------------------------------
   TABLETTE / MOBILE
---------------------------------------------------------- */

@media (max-width: 1180px) {
  .vvv-kubras-locale__trigger {
    min-height: 34px;
    padding: 0 9px !important;
    gap: 6px;
  }

  .vvv-kubras-locale__trigger-country,
  .vvv-kubras-locale__trigger i {
    display: none;
  }

  .vvv-kubras-locale__trigger > svg:first-child {
    width: 16px;
    height: 16px;
    flex-basis: 16px;
  }

  .vvv-kubras-locale__trigger-chevron {
    width: 8px;
    flex-basis: 8px;
  }
}

@media (max-width: 760px) {
  .vvv-kubras-locale.is-floating-fallback .vvv-kubras-locale__trigger {
    top: 92px;
    right: 10px;
  }

  .vvv-kubras-locale__panel {
    width: 100%;
    border-left: 0;
    box-shadow: none;
  }

  .vvv-kubras-locale__header {
    min-height: 145px;
    padding: max(22px, env(safe-area-inset-top)) 18px 23px;
    gap: 16px;
  }

  .vvv-kubras-locale__header h2 {
    margin-top: 10px;
    font-size: clamp(38px, 12vw, 52px);
  }

  .vvv-kubras-locale__header p {
    max-width: 290px;
    font-size: 11px;
  }

  .vvv-kubras-locale__close {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  .vvv-kubras-locale__body {
    padding: 24px 16px 28px;
  }

  .vvv-kubras-locale__section + .vvv-kubras-locale__section {
    margin-top: 28px;
    padding-top: 25px;
  }

  .vvv-kubras-locale__language-grid,
  .vvv-kubras-locale__country-grid {
    gap: 8px;
  }

  .vvv-kubras-locale__choice {
    min-height: 57px;
    padding: 10px 34px 10px 11px !important;
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 7px;
  }

  .vvv-kubras-locale__choice > strong {
    font-size: 11px;
  }

  .vvv-kubras-locale__choice > i {
    right: 11px;
    width: 15px;
    height: 15px;
  }

  .vvv-kubras-locale__footer {
    padding: 17px 16px max(18px, env(safe-area-inset-bottom));
  }

  .vvv-kubras-locale__apply {
    min-height: 54px;
  }
}

@media (max-width: 380px) {
  .vvv-kubras-locale__language-grid,
  .vvv-kubras-locale__country-grid {
    grid-template-columns: 1fr;
  }

  .vvv-kubras-locale__choice {
    min-height: 52px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vvv-kubras-locale__panel,
  .vvv-kubras-locale__overlay,
  .vvv-kubras-locale__trigger,
  .vvv-kubras-locale__choice,
  .vvv-kubras-locale__close,
  .vvv-kubras-locale__apply,
  .vvv-kubras-locale__choice > i::after {
    transition-duration: .01ms !important;
  }
}


/* ==========================================================
   KUBRA'S — DRAPEAUX DU SÉLECTEUR
   Aucun emoji, aucune image externe : rendu stable sur iPhone.
========================================================== */

.vvv-kubras-locale__flag {
  position: relative;
  display: block;
  width: 30px;
  height: 20px;
  min-width: 30px;
  overflow: hidden;
  border: 1px solid rgba(33, 23, 15, .16);
  border-radius: 3px;
  background-color: #fff;
  box-shadow: 0 3px 9px rgba(8, 6, 4, .10);
  isolation: isolate;
}

.vvv-kubras-locale__flag::before,
.vvv-kubras-locale__flag::after {
  content: none;
}

/* France */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="FR"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="FR"] {
  background:
    linear-gradient(
      to right,
      #002395 0 33.333%,
      #ffffff 33.333% 66.666%,
      #ed2939 66.666% 100%
    );
}

/* Royaume-Uni — langue anglaise */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="GB"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="GB"] {
  background:
    linear-gradient(33deg, transparent 43%, #ffffff 43% 57%, transparent 57%),
    linear-gradient(-33deg, transparent 43%, #ffffff 43% 57%, transparent 57%),
    linear-gradient(33deg, transparent 47%, #c8102e 47% 53%, transparent 53%),
    linear-gradient(-33deg, transparent 47%, #c8102e 47% 53%, transparent 53%),
    linear-gradient(to right, transparent 39%, #ffffff 39% 61%, transparent 61%),
    linear-gradient(to bottom, transparent 34%, #ffffff 34% 66%, transparent 66%),
    linear-gradient(to right, transparent 45%, #c8102e 45% 55%, transparent 55%),
    linear-gradient(to bottom, transparent 42%, #c8102e 42% 58%, transparent 58%),
    #012169;
}

/* Belgique */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="BE"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="BE"] {
  background:
    linear-gradient(
      to right,
      #000000 0 33.333%,
      #ffd90c 33.333% 66.666%,
      #ef3340 66.666% 100%
    );
}

/* Luxembourg */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="LU"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="LU"] {
  background:
    linear-gradient(
      to bottom,
      #ed2939 0 33.333%,
      #ffffff 33.333% 66.666%,
      #00a1de 66.666% 100%
    );
}

/* Allemagne */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="DE"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="DE"] {
  background:
    linear-gradient(
      to bottom,
      #151515 0 33.333%,
      #dd0000 33.333% 66.666%,
      #ffce00 66.666% 100%
    );
}

/* Pays-Bas */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="NL"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="NL"] {
  background:
    linear-gradient(
      to bottom,
      #ae1c28 0 33.333%,
      #ffffff 33.333% 66.666%,
      #21468b 66.666% 100%
    );
}

/* Italie */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="IT"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="IT"] {
  background:
    linear-gradient(
      to right,
      #009246 0 33.333%,
      #ffffff 33.333% 66.666%,
      #ce2b37 66.666% 100%
    );
}

/* Espagne */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="ES"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="ES"] {
  background:
    linear-gradient(
      to bottom,
      #aa151b 0 25%,
      #f1bf00 25% 75%,
      #aa151b 75% 100%
    );
}

/* Portugal */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="PT"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="PT"] {
  background:
    linear-gradient(
      to right,
      #046a38 0 40%,
      #da291c 40% 100%
    );
}

.vvv-kubras-locale__flag[data-vvv-kubras-flag="PT"]::before,
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="PT"]::before {
  content: "";
  position: absolute;
  z-index: 2;
  left: 40%;
  top: 50%;
  width: 7px;
  height: 7px;
  border: 1px solid #f7d117;
  border-radius: 50%;
  background: rgba(255, 255, 255, .72);
  transform: translate(-50%, -50%);
}

/* Turquie */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="TR"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="TR"] {
  background: #e30a17;
}

.vvv-kubras-locale__flag[data-vvv-kubras-flag="TR"]::before,
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="TR"]::before {
  content: "";
  position: absolute;
  z-index: 2;
  left: 46%;
  top: 50%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ffffff;
  transform: translate(-50%, -50%);
  box-shadow: 3px 0 0 0 #e30a17;
}

.vvv-kubras-locale__flag[data-vvv-kubras-flag="TR"]::after,
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="TR"]::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 66%;
  top: 50%;
  width: 5px;
  height: 5px;
  background: #ffffff;
  clip-path: polygon(
    50% 0,
    61% 35%,
    98% 35%,
    68% 57%,
    79% 94%,
    50% 72%,
    21% 94%,
    32% 57%,
    2% 35%,
    39% 35%
  );
  transform: translate(-50%, -50%) rotate(8deg);
}

/* Autriche */
.vvv-kubras-locale__flag[data-vvv-kubras-flag="AT"],
.vvv-kubras-locale__flag[data-vvv-kubras-current-language-flag="AT"] {
  background:
    linear-gradient(
      to bottom,
      #ed2939 0 33.333%,
      #ffffff 33.333% 66.666%,
      #ed2939 66.666% 100%
    );
}

/* Drapeau actif dans le header. */
.vvv-kubras-locale__trigger-flag {
  width: 24px;
  height: 16px;
  min-width: 24px;
  flex: 0 0 24px;
  border-color: rgba(255, 250, 242, .34);
  box-shadow: 0 3px 10px rgba(8, 6, 4, .16);
}

/*
 * Les anciennes règles ciblaient le premier SVG du bouton,
 * qui était auparavant le globe. Le globe n'existe plus.
 */
.vvv-kubras-locale__trigger > svg:first-child {
  width: auto;
  height: auto;
  flex-basis: auto;
}

/* Les cartes réservent une vraie colonne au drapeau. */
.vvv-kubras-locale__choice {
  grid-template-columns: 34px minmax(0, 1fr);
}

.vvv-kubras-locale__choice > .vvv-kubras-locale__flag {
  position: relative;
  z-index: 1;
}

.vvv-kubras-locale__choice > span.vvv-kubras-locale__flag {
  color: inherit;
  font-size: 0;
  font-weight: 400;
  letter-spacing: 0;
}

@media (max-width: 1180px) {
  .vvv-kubras-locale__trigger-flag {
    width: 22px;
    height: 15px;
    min-width: 22px;
    flex-basis: 22px;
  }

  .vvv-kubras-locale__trigger > svg:first-child {
    width: auto;
    height: auto;
    flex-basis: auto;
  }
}

@media (max-width: 760px) {
  .vvv-kubras-locale__choice {
    grid-template-columns: 31px minmax(0, 1fr);
  }

  .vvv-kubras-locale__choice > .vvv-kubras-locale__flag {
    width: 27px;
    height: 18px;
    min-width: 27px;
  }
}
