/* ==========================================================================
   Language switcher. Desktop: compact pill (flag + ISO code + chevron) with a
   glass dropdown on hover/focus. Mobile menu and footer: horizontal pills.
   Flags are inline SVG data URIs — emoji flags do not render on Windows.
   ========================================================================== */

.flag {
  display: inline-block;
  flex: none;
  width: 20px;
  height: 14px;
  border-radius: 2px;
  background: center / cover no-repeat;
  box-shadow: 0 0 0 1px rgba(245, 240, 232, 0.18);
}

.flag--es {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14'%3E%3Cpath fill='%23AA151B' d='M0 0h20v14H0z'/%3E%3Cpath fill='%23F1BF00' d='M0 3.5h20v7H0z'/%3E%3C/svg%3E");
}

.flag--en {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14'%3E%3Cpath fill='%23012169' d='M0 0h20v14H0z'/%3E%3Cpath stroke='%23fff' stroke-width='2.8' d='M0 0l20 14M20 0L0 14'/%3E%3Cpath stroke='%23C8102E' stroke-width='1.2' d='M0 0l20 14M20 0L0 14'/%3E%3Cpath stroke='%23fff' stroke-width='4.6' d='M10 0v14M0 7h20'/%3E%3Cpath stroke='%23C8102E' stroke-width='2.8' d='M10 0v14M0 7h20'/%3E%3C/svg%3E");
}

.flag--de {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14'%3E%3Cpath d='M0 0h20v14H0z'/%3E%3Cpath fill='%23DD0000' d='M0 4.667h20v4.667H0z'/%3E%3Cpath fill='%23FFCE00' d='M0 9.333h20V14H0z'/%3E%3C/svg%3E");
}

.flag--fr {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14'%3E%3Cpath fill='%230055A4' d='M0 0h20v14H0z'/%3E%3Cpath fill='%23fff' d='M6.667 0h6.667v14H6.667z'/%3E%3Cpath fill='%23EF4135' d='M13.333 0H20v14h-6.667z'/%3E%3C/svg%3E");
}

.flag--ca {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 14'%3E%3Cpath fill='%23FCDD09' d='M0 0h20v14H0z'/%3E%3Cpath fill='%23DA121A' d='M0 1.556h20v1.556H0zM0 4.667h20v1.556H0zM0 7.778h20v1.556H0zM0 10.889h20v1.556H0z'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------ Compact pill */
.lang-switcher {
  position: relative;
}

.lang-current {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: 44px;
  padding: var(--space-2) var(--space-1);
  color: var(--color-text-light);
  font-family: var(--font-label);
  font-size: var(--text-label);
  font-weight: 600;
  letter-spacing: 0.22em;
  transition: color var(--transition-fast);
}

.lang-current:hover,
.is-open .lang-current {
  color: var(--color-secondary);
}

.lang-chevron {
  color: var(--color-secondary);
  transition: transform var(--transition-fast);
}

.is-open .lang-chevron {
  transform: rotate(180deg);
}

/* ---------------------------------------------------------------- Dropdown */
.lang-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 10;
  min-width: 184px;
  padding: var(--space-2) 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-glass-strong);
  color: var(--color-text-light);
  box-shadow: var(--shadow-2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--transition-fast), transform var(--transition-fast), visibility 0s 150ms;
}

.is-open .lang-dropdown {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity var(--transition-fast), transform var(--transition-fast), visibility 0s;
}

.lang-dropdown [role='option'] {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  height: 40px;
  padding-inline: var(--space-4);
  font-size: var(--text-sm);
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  transform: translateY(-4px);
  transition: color var(--transition-fast), background-color var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);
}

.is-open .lang-dropdown [role='option'] {
  opacity: 1;
  transform: none;
}

/* Items stagger 30ms apart. */
.is-open .lang-dropdown [role='option']:nth-child(2) { transition-delay: 0s, 0s, 30ms, 30ms; }
.is-open .lang-dropdown [role='option']:nth-child(3) { transition-delay: 0s, 0s, 60ms, 60ms; }
.is-open .lang-dropdown [role='option']:nth-child(4) { transition-delay: 0s, 0s, 90ms, 90ms; }
.is-open .lang-dropdown [role='option']:nth-child(5) { transition-delay: 0s, 0s, 120ms, 120ms; }

.lang-dropdown [role='option']:hover,
.lang-dropdown [role='option']:focus-visible {
  outline: none;
  background: rgba(200, 169, 110, 0.1);
  color: var(--color-secondary);
}

.lang-dropdown [role='option'][aria-selected='true'] {
  color: var(--color-secondary);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: var(--color-secondary);
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
}

/* --------------------------------------- Horizontal pills (mobile + footer) */
.lang-pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.lang-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  color: var(--color-text-light);
  font-family: var(--font-label);
  font-size: var(--text-label-sm);
  font-weight: 500;
  letter-spacing: 0.18em;
  transition: border-color var(--transition-fast), color var(--transition-fast);
}

.lang-pill:hover,
.lang-pill[aria-pressed='true'] {
  border-color: var(--color-secondary);
  color: var(--color-secondary);
}

.lang-pill[aria-pressed='true'] span:last-child {
  text-decoration: underline;
  text-decoration-color: var(--color-secondary);
  text-underline-offset: 5px;
}

/* Mobile menu: the five pills share one row. */
.mobile-menu .lang-pills {
  flex-wrap: nowrap;
  gap: var(--space-1);
}

.mobile-menu .lang-pill {
  flex: 1 1 0;
  justify-content: center;
  padding-inline: var(--space-1);
}

.footer .lang-pill {
  min-height: 36px;
  padding-block: var(--space-1);
}

@media (max-width: 380px) {
  .lang-pill {
    padding-inline: var(--space-2);
  }
}
