/* Shared language control and scoped RTL adaptations. English design stays the baseline. */
.language-switcher {
  display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto;
  padding: 3px; border: 1px solid #bc618455; border-radius: 999px;
  background: #fff7f2; color: #8a2453; font: 700 11px/1 Arial, sans-serif;
}
.language-switcher svg { width: 16px; height: 16px; margin: 0 5px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.language-switcher a { display: grid; place-items: center; min-width: 30px; min-height: 36px; padding: 0 5px; border-radius: 999px; text-decoration: none; touch-action: manipulation; }
.language-switcher a[aria-current] { background: #8e3a62; color: white; box-shadow: 0 2px 6px #8e3a6226; }
@media (hover: hover) and (pointer: fine) {
  .language-switcher a:hover { background: #f6d9d0; color: #8e3a62; }
}
.language-switcher a:focus-visible { outline: 2px solid #bc6184; outline-offset: 3px; }
.site-header nav.language-switcher {
  position: absolute; inset-inline-end: clamp(12px, 2vw, 28px); top: calc(100% + 8px);
  background: #8e3a62; border-color: #fde8df40; color: #fde8df; margin: 0; gap: 0;
  padding: 2px; border-radius: 18px; font-size: 13px;
  box-shadow: 0 4px 12px #43233426;
}
.site-header .language-switcher svg { display: none; }
.site-header .language-switcher a { min-width: 36px; min-height: 40px; padding: 0 4px; border-radius: 15px; }
.site-header .language-switcher a[aria-current] { background: #fde8df; color: #8e3a62; box-shadow: 0 2px 8px #43233418; }
.site-header .language-switcher a[data-language-pending] { box-shadow: inset 0 0 0 2px #fde8df; }
.public-language-controls { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
@media (min-width: 1280px) {
  .public-language-controls:has(#notification-btn[hidden]) { display: contents; }
}
@media (max-width: 1279px) {
  .site-header nav.language-switcher { position: static; box-shadow: none; }
  .site-header .public-language-controls #notification-btn { margin: 0; }
  .site-header > .max-w-7xl > a { flex: 1 1 0; min-width: 0; margin-inline-end: 0; }
  .site-header .salon-brand-name { white-space: nowrap; min-width: 0; }
}
@media (max-width: 480px) {
  .site-header > .max-w-7xl { padding-inline: 8px; gap: 4px; }
  .site-header > .max-w-7xl > a { gap: 4px; }
  .site-header .salon-brand-name { font-size: clamp(.8125rem, calc(10vw - 19px), 1.125rem); }
  .site-header nav.language-switcher { font-size: 12px; border-radius: 15px; }
  .site-header .language-switcher a { min-width: 26px; min-height: 34px; padding-inline: 3px; border-radius: 12px; }
  .site-header #notification-btn,
  .site-header #mobile-menu-btn { width: 32px; min-width: 32px; height: 40px; min-height: 40px; border-radius: 12px; }
  .site-header #notification-btn svg { width: 20px; height: 20px; }
  .site-header .public-language-controls { gap: 4px; }
  .site-header:has(#notification-btn[hidden]) .salon-brand-name { font-size: clamp(1rem, 4.6vw, 1.125rem); }
}
.guide-header nav.language-switcher { margin-inline-start: auto; gap: 2px; flex-wrap: nowrap; }
html[dir="rtl"] { --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; --font-serif: var(--font-sans); }
html[dir="rtl"] body, html[dir="rtl"] button, html[dir="rtl"] input, html[dir="rtl"] textarea,
html[dir="rtl"] h1, html[dir="rtl"] h2, html[dir="rtl"] h3, html[dir="rtl"] h4, html[dir="rtl"] h5,
html[dir="rtl"] .font-serif { font-family: var(--font-sans); letter-spacing: 0; }
html[dir="rtl"] #blossom-entrance { --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
html[dir="rtl"] .salon-brand-name { font-family: 'Plus Jakarta Sans', sans-serif; direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] .site-header .salon-brand-name { font-family: 'Blossom Numerals', 'Cormorant Garamond', Georgia, serif; }
html[dir="rtl"] .brand { font-family: 'Playfair Display', serif; direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] .salon-brand-name.font-serif { font-family: 'Blossom Numerals', 'Playfair Display', Georgia, serif; }
html[dir="rtl"] .site-footer .site-footer-brand .salon-brand-tagline { text-align: right; }
html[dir="rtl"] .text-left { text-align: right; }
html[dir="rtl"] .text-right { text-align: left; }
html[dir="rtl"] .guide-note { border-left: 0; border-right: 3px solid #bc6184; }
html[dir="rtl"] .related-guides a { margin-right: 0; margin-inline-end: 1.5rem; }
html[dir="rtl"] .reveal-on-scroll:not(.is-revealed) { transform: translateX(40px); }
/* Navigation keeps the same physical control positions in both languages. */
html[dir="rtl"] :is(.site-header, .mobile-drawer, .floating-bottom-nav) { direction: ltr; }
@media (max-width: 639px) {
  #booking-modal .booking-step-labels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 8px; }
  #booking-modal .booking-step-labels > span { font-size: 11px; line-height: 1.5; white-space: nowrap; letter-spacing: normal; }
}
@media (max-width: 767px) {
  .floating-bottom-nav .nav-item:not(.nav-center-btn) { flex: 1 1 0; }
}
html[dir="rtl"] .booking-progress-fill { transform-origin: right; }
html[dir="rtl"] .booking-choice-card__details { text-align: right; }
html[dir="rtl"] #wizard-date-preview { direction: rtl; unicode-bidi: isolate; font-family: var(--font-sans); }
html[dir="rtl"] .luxury-card .absolute.left-3 { left: auto; right: .75rem; }
html[dir="rtl"] .luxury-card .absolute.right-3 { right: auto; left: .75rem; }
html[dir="rtl"] .booking-choice-card__price, html[dir="rtl"] .slot-btn,
html[dir="rtl"] input[type="tel"], html[dir="rtl"] input[type="email"], html[dir="rtl"] input[type="date"],
html[dir="rtl"] .salon-phone-text, html[dir="rtl"] .font-mono { direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] .guide-header { flex-wrap: wrap; }
html[dir="rtl"] .skip-link { left: auto; right: -9999px; }
html[dir="rtl"] .skip-link:focus { right: 1rem; }
@media (max-width: 480px) {
  .language-switcher svg { display: none; }
  .language-switcher a { min-width: 27px; min-height: 38px; }
}

/* One target-language button, kept inside the original header. */
:is(.site-header, .legal-toolbar) nav.language-switcher { position: static; width: auto; min-width: 48px; height: 42px; padding: 0; border-radius: 12px; display: inline-flex; align-items: stretch; }
:is(.site-header, .legal-toolbar) .language-switcher a[aria-current] { display: none; }
:is(.site-header, .legal-toolbar) .language-switcher a:not([aria-current]) { min-width: 48px; min-height: 40px; padding-inline: 10px; border-radius: 11px; }
.site-header .public-desktop-nav .my-bookings-link { display: none; }
@media (min-width: 1280px) and (max-width: 1439px) {
  .site-header .public-desktop-nav { gap: 10px; }
}
@media (min-width: 1280px) {
  .site-header nav.language-switcher { height: 50px; min-width: 52px; }
  .site-header .language-switcher a:not([aria-current]) { min-width: 50px; min-height: 48px; }
  .site-header :is(#pwa-install-btn, #btn-lookup-booking) { width: 104px; min-width: 104px; height: 50px; min-height: 50px; padding: 8px 12px; justify-content: center; gap: 8px; border-radius: 12px; font-size: 12px; font-weight: 700; line-height: 16px; }
  .site-header :is(#pwa-install-btn, #btn-lookup-booking) > svg { flex: 0 0 18px; width: 18px; height: 18px; }
  /* Keep the sweep inside the rounded button without blurring its edge. */
  .site-header #pwa-install-btn { isolation: isolate; overflow: hidden; background-clip: padding-box; backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media (max-width: 1279px) {
  .site-header nav.language-switcher { display: none; }
  .site-header nav.language-switcher a[aria-current] { display: none; }
  .site-header nav.language-switcher a,
  .site-header nav.language-switcher a:not([aria-current]) { min-width: 44px; min-height: 40px; padding-inline: 4px; }
  .site-header .public-language-controls #notification-btn,
  .site-header #mobile-menu-btn { width: 44px; height: 44px; min-width: 44px; min-height: 44px; margin: 0; }
  .site-header .salon-brand-name { white-space: nowrap; }
}
.drawer-preferences { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.drawer-language-control .language-switcher { height: 44px; padding: 0; border-radius: 10px; }
.drawer-language-control .language-switcher svg,
.drawer-language-control .language-switcher a[aria-current] { display: none; }
.drawer-language-control .language-switcher a:not([aria-current]) { min-width: 48px; min-height: 42px; padding-inline: 10px; border-radius: 9px; font-size: 13px; }
html[data-color-theme="dark"] .drawer-language-control .language-switcher { background: #252942; border-color: #343a5a; color: #c1c7ff; }
.drawer-preferences :is(.language-switcher, .color-theme-toggle) {
  box-sizing: border-box; width: 50px; min-width: 50px; height: 44px;
  border: 1px solid #bc618455; border-radius: 10px;
  background: #fff7f2; color: #8a2453;
}
.drawer-preferences .language-switcher a:not([aria-current]) { width: 100%; min-width: 0; }
html[data-color-theme="dark"] .drawer-preferences :is(.language-switcher, .color-theme-toggle) {
  background: #252942; border-color: #343a5a; color: #c1c7ff;
}
@media (max-width: 639px) {
  .site-header > .max-w-7xl { height: 64px; min-height: 64px; }
  .site-header .site-brand-logo { width: 44px; height: 44px; }
}
@media (min-width: 360px) and (max-width: 480px) {
  .site-header > .max-w-7xl { padding-inline: 8px; gap: 2px; }
  .site-header .public-menu-control { gap: 2px; }
  .site-header .public-language-controls { gap: 2px; }
}
@media (max-width: 359px) {
  .site-header > .max-w-7xl { padding-inline: 8px; gap: 2px; }
  .site-header > .max-w-7xl > a { gap: 2px; }
  .site-header .public-menu-control { gap: 0; }
}
@media (min-width: 1440px) {
  .site-header .site-brand-logo { width: 52px; height: 52px; }
}

/* Keep desktop preferences together in a fixed physical order in both languages. */
.site-footer { direction: ltr; }
.site-footer .salon-brand-name { direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] .site-footer .site-footer-brand .salon-brand-tagline { text-align: left; }
html[dir="rtl"] .site-footer :is(.salon-brand-tagline, .salon-hours-text, .footer-legal a, .footer-notifications, .footer-legal p) { unicode-bidi: plaintext; }
.site-header .header-preferences { display: none; }
@media (max-width: 1279px) {
  .site-header .header-mobile-language nav.language-switcher { display: inline-flex; position: static; width: 44px; min-width: 44px; height: 44px; padding: 0; margin: 0; border-radius: 10px; box-shadow: none; }
  .site-header .public-menu-control { gap: 6px; }
  .site-header .header-mobile-language .language-switcher a:not([aria-current]) { width: 44px; min-width: 44px; min-height: 44px; padding: 0; border-radius: 9px; font-size: 13px; }
  .site-header > .max-w-7xl { flex-wrap: nowrap; }
  .site-header .header-mobile-language { flex: 0 0 44px; }
  html[data-color-theme] .site-header .header-mobile-language nav.language-switcher {
    box-sizing: border-box; background: rgb(255 255 255 / 10%);
    border: 1px solid rgb(255 255 255 / 30%); border-radius: 12px;
    box-shadow: none; color: #fde8df;
  }
  html[data-color-theme="dark"] .site-header .header-mobile-language nav.language-switcher { background: rgb(255 255 255 / 8%); }
  html[data-color-theme] .site-header .header-mobile-language .language-switcher a:not([aria-current]) {
    width: 100%; min-width: 0; height: 100%; min-height: 0;
    background: transparent; border: 0; box-shadow: none; color: #fde8df;
  }
  .site-header .header-mobile-language .language-switcher a:focus-visible { outline-color: #ffe2a8; }
}
@media (max-width: 480px) {
  .site-header .public-language-controls:has(#notification-btn:not([hidden])) { margin-inline-end: 4px; }
}
@media (min-width: 1280px) {
  .site-header > .max-w-7xl { height: 68px; min-height: 68px; column-gap: 16px; justify-content: initial; }
  .site-header .public-desktop-nav { margin-inline-start: auto; }
  .site-header .header-preferences { display: flex; align-items: center; gap: 4px; flex-shrink: 0; height: 52px; padding: 3px; box-sizing: border-box; border: 1px solid rgb(255 255 255 / 25%); border-radius: 14px; background: rgb(255 255 255 / 8%); }
  .site-header .header-preferences :is(.color-theme-toggle, .header-inbox-button, .messages-launch) { box-sizing: border-box; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: #e1dbe2; box-shadow: none; }
  .site-header .header-preferences :is(.color-theme-toggle, .header-inbox-button, .messages-launch) svg { width: 18px; height: 18px; }
  .site-header .header-preferences :is(.notification-inbox-dot, [data-message-count]) { box-sizing: border-box; top: 1px; right: 1px; min-width: 16px; max-width: 26px; height: 16px; padding: 0 4px; border-radius: 999px; background: #f7a1b3; color: #351323; font: 700 10px/16px var(--font-sans, sans-serif); }
  .site-header .header-preferences :is(.color-theme-toggle, .header-inbox-button, .messages-launch, .language-switcher a):focus-visible { outline: 2px solid #fde8df; outline-offset: -2px; }
  .site-header .header-preferences nav.language-switcher { position: relative; inset: auto; display: inline-flex; flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .site-header .header-preferences .language-switcher a:not([aria-current]) { width: 44px; min-width: 44px; min-height: 44px; padding: 0; border-radius: 9px; background: transparent; color: #fde8df; }
  .site-header .header-preferences .language-switcher::before,
  .site-header .header-preferences .language-switcher::after { position: absolute; top: 11px; width: 1px; height: 22px; background: rgb(255 255 255 / 22%); pointer-events: none; }
  .site-header .header-preferences .language-switcher::before { content: ''; left: 0; }
  .site-header .header-preferences .language-switcher::after { right: 0; }
  .site-header .header-preferences-divider { display: none; width: 1px; height: 24px; background: rgb(255 255 255 / 30%); flex-shrink: 0; }
}
@media (min-width: 1400px) { .site-header .header-preferences .language-switcher::after { content: ''; } }
@media (min-width: 1280px) and (hover: hover) {
  .site-header .header-preferences :is(.color-theme-toggle, .header-inbox-button, .messages-launch, .language-switcher a):hover { background: rgb(255 255 255 / 12%); opacity: 1; }
}
@media (max-width: 1279px) {
  .site-header > .max-w-7xl { height: 60px; min-height: 60px; }
}
