.public-site-header .tp-language-switcher {
  position: relative;
  z-index: 45;
  display: block;
  flex: 0 0 auto;
  order: initial;
  width: auto;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  color: #292929;
  font-family: Poppins, ui-sans-serif, system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}
.tp-language-switcher > summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 7px 13px;
  border: 1px solid #e3e0dc;
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: border-color .18s ease, background .18s ease;
}
.tp-language-switcher > summary::-webkit-details-marker { display: none; }
.tp-language-switcher > summary::marker { content: ''; }
.tp-language-switcher > summary:hover,
.tp-language-switcher[open] > summary {
  border-color: #c91f2b;
  background: #fff8f8;
}
.tp-language-switcher > summary:focus-visible,
.tp-language-switcher .tp-language-option:focus-visible {
  outline: 3px solid #c91f2b;
  outline-offset: 3px;
}
.tp-language-flag { display: inline-flex; flex: none; font-size: 20px; line-height: 1; }
.tp-language-code { display: none; }
.tp-language-chevron {
  width: 7px;
  height: 7px;
  margin: -3px 1px 0 3px;
  border-right: 2px solid #c91f2b;
  border-bottom: 2px solid #c91f2b;
  transform: rotate(45deg);
  transition: transform .18s ease;
}
.tp-language-switcher[open] .tp-language-chevron { transform: translateY(4px) rotate(225deg); }
.tp-language-switcher .tp-language-menu {
  position: absolute;
  top: calc(100% + 9px);
  right: 0;
  z-index: 50;
  display: grid;
  gap: 3px;
  width: 240px;
  padding: 7px;
  border: 1px solid #e8e2de;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(22, 16, 16, .16);
}
.tp-language-switcher:not([open]) .tp-language-menu { display: none; }
.public-site-header .tp-language-dismiss-layer {
  position: fixed;
  inset: 0;
  z-index: 44;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: default;
}
.public-site-header .tp-language-dismiss-layer[hidden] { display: none; }
.tp-language-switcher .tp-language-option {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 8px 12px;
  border: 0;
  border-radius: 9px;
  color: #292929;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background .18s ease;
}
.tp-language-switcher .tp-language-option + .tp-language-option { border-left: 0; }
.tp-language-switcher .tp-language-option:hover,
.tp-language-switcher .tp-language-option.is-current {
  background: #fff1f2;
  color: #a41420;
}
.tp-language-check { display: none; margin-left: auto; color: #c91f2b; font-size: 17px; }
.tp-language-option.is-current .tp-language-check { display: inline; }
@media (max-width: 700px) {
  .public-site-header .tp-language-switcher {
    order: 3;
    grid-column: 1 / -1;
    width: 100%;
    margin: 3px 0 0;
    padding-top: 9px;
    border-top: 1px solid #eee7df;
  }
  .tp-language-switcher > summary { width: max-content; margin-left: auto; }
  .tp-language-name { display: none; }
  .tp-language-code { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
  .tp-language-switcher > summary,
  .tp-language-chevron,
  .tp-language-option { transition: none; }
}

/* Actions groupées à droite sur ordinateur. */
.public-site-header .site-main-bar .public-nav { margin-left: auto; }
.public-site-header .tp-language-switcher { margin-left: 22px; }

/* Logo à gauche, réservation et langue sur la même ligne à droite. */
@media (max-width: 760px) {
  .public-site-header .site-main-bar {
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    column-gap: 9px;
  }
  .public-site-header .site-main-bar .brand {
    grid-column: 1;
    grid-row: 1;
  }
  .public-site-header .site-main-bar .public-nav {
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-end;
    margin: 0;
  }
  .public-site-header .tp-language-switcher {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
  }
  .tp-language-switcher > summary { margin: 0; }
}

@media (max-width: 480px) {
  .public-site-header .site-main-bar {
    grid-template-columns: minmax(0, 1fr) minmax(0, clamp(135px, 42vw, 165px)) auto;
    column-gap: 7px;
  }
  .public-site-header .site-main-bar .brand-logo {
    max-width: 105px;
    max-height: 52px;
  }
  .public-site-header .site-main-bar .public-nav { width: 100%; }
  .public-site-header .site-main-bar .public-nav .public-cta {
    width: 100%;
    padding: 9px 10px !important;
    gap: 6px;
    font-size: 12px !important;
  }
  .public-site-header .tp-language-switcher > summary {
    min-height: 44px;
    padding: 6px 8px;
    gap: 5px;
    font-size: 12px;
  }
  .public-site-header .tp-language-flag { font-size: 18px; }
  .public-site-header .tp-language-chevron { margin-left: 0; }
}
