.locale-page[dir="rtl"] { text-align: right; }
.locale-actions { display: flex; align-items: center; justify-self: end; gap: 14px; }
.locale-switch { display: flex; gap: 5px; }
.locale-switch a { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid rgba(241,212,135,.18); color: rgba(245,240,231,.54); font-size: 8px; font-weight: 800; }
.locale-switch a.active { border-color: var(--gold); color: var(--gold-light); }
.locale-actions .topbar-cta { justify-self: auto; }
.locale-mobile-menu { display: none; }
.locale-service-rail { display: flex; gap: 18px; overflow-x: auto; padding: 0 max(48px, calc((100vw - 1320px) / 2)) 24px; scroll-padding-left: max(48px, calc((100vw - 1320px) / 2)); scroll-snap-type: x mandatory; scrollbar-width: none; }
.locale-service-rail::-webkit-scrollbar { display: none; }
.locale-service-card { position: relative; display: flex; min-height: 610px; flex: 0 0 min(430px, 82vw); flex-direction: column; justify-content: flex-end; overflow: hidden; border: 1px solid rgba(245,240,231,.12); background: #0d0f10; padding: 34px; color: var(--ivory); text-align: left; scroll-snap-align: start; }
[dir="rtl"] .locale-service-card { text-align: right; }
.locale-service-card::before { position: absolute; inset: 0; background: var(--image) center / cover; content: ""; transition: transform .6s ease; }
.locale-service-card::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent, rgba(5,6,7,.98) 86%); content: ""; }
.locale-service-card:hover::before { transform: scale(1.05); }
.locale-service-card > * { position: relative; z-index: 2; }
.locale-service-card > span { position: absolute; top: 30px; left: 30px; color: var(--gold-light); font-family: var(--serif); font-size: 18px; }
[dir="rtl"] .locale-service-card > span { right: 30px; left: auto; }
.locale-service-card h3 { margin-bottom: 16px; font-family: var(--serif); font-size: 42px; font-weight: 400; line-height: 1; }
.locale-service-card p { color: var(--muted); font-size: 14px; line-height: 1.7; }
.locale-service-card b { align-self: flex-start; border-bottom: 1px solid rgba(241,212,135,.44); padding-bottom: 8px; font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.locale-plan-grid { display: grid; gap: 1px; background: var(--line-soft); grid-template-columns: repeat(4, 1fr); }
.locale-plan-card { display: flex; min-height: 450px; flex-direction: column; background: #101214; padding: 30px; }
.locale-plan-card.featured { background: linear-gradient(145deg, rgba(217,170,74,.24), #101214 58%); }
.locale-plan-card > span { color: var(--gold-light); font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.locale-plan-card h3 { margin: 56px 0 12px; font-family: var(--serif); font-size: 38px; font-weight: 400; }
.locale-plan-card strong { color: var(--gold-light); font-family: var(--serif); font-size: 28px; font-weight: 400; }
.locale-plan-card p { margin: 22px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.locale-about { padding: 145px 0; background: radial-gradient(circle at 78% 48%, rgba(217,170,74,.12), transparent 27%), #060708; }
.locale-service-dialog { width: min(1180px, calc(100% - 40px)); max-height: calc(100svh - 40px); overflow: auto; border: 1px solid rgba(241,212,135,.28); background: #080a0b; padding: 0; color: var(--ivory); box-shadow: 0 30px 120px rgba(0,0,0,.8); }
.locale-service-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(10px); }
.dialog-media, .dialog-shade { position: absolute; inset: 0; }
.dialog-media { background: url("../public/villa-future-luxe.png") center / cover; opacity: .34; }
.dialog-media.jet { background-image: url("../public/hero-private-jet.png"); }
.dialog-media.travel { background-image: url("../public/concierge-voyage-editorial.jpg"); }
.dialog-media.athletes { background-image: url("../public/concierge-sportifs-editorial.jpg"); }
.dialog-media.international { background-image: url("../public/concierge-international-editorial.jpg"); }
.dialog-shade { background: linear-gradient(90deg, rgba(5,6,7,.98), rgba(5,6,7,.82) 68%, rgba(5,6,7,.3)), linear-gradient(0deg, rgba(5,6,7,.94), transparent); }
.dialog-close { position: sticky; z-index: 4; top: 20px; float: right; width: 46px; height: 46px; cursor: pointer; border: 1px solid var(--line); background: rgba(5,6,7,.72); color: var(--ivory); font-size: 25px; margin: 20px; }
.dialog-content { position: relative; z-index: 2; min-height: 760px; padding: 90px clamp(28px, 7vw, 100px); }
.dialog-content h2 { max-width: 820px; }
.dialog-intro { max-width: 720px; margin: 30px 0; color: var(--muted); font-size: 16px; line-height: 1.75; }
.dialog-highlights { display: grid; max-width: 900px; margin: 42px 0; gap: 1px; background: var(--line-soft); grid-template-columns: 1fr 1fr; }
.dialog-highlights article { background: rgba(8,10,11,.78); padding: 24px; }
.dialog-highlights h3 { margin-bottom: 9px; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.dialog-highlights p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
@media (max-width: 1100px) { .locale-switch { display: none; } .locale-plan-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 800px) {
  .locale-actions .topbar-cta { display: flex; }
  .locale-mobile-menu { position: fixed; z-index: 70; top: 16px; right: 18px; display: block; }
  [dir="rtl"] .locale-mobile-menu { right: auto; left: 18px; }
  .locale-mobile-menu summary { display: flex; min-height: 44px; cursor: pointer; align-items: center; gap: 9px; border: 1px solid var(--line); background: rgba(5,6,7,.78); padding: 0 14px; list-style: none; font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
  .locale-mobile-menu summary::-webkit-details-marker { display: none; }
  .locale-mobile-menu nav, .locale-mobile-menu > div { position: absolute; top: 52px; right: 0; display: flex; width: min(330px, calc(100vw - 36px)); flex-direction: column; border: 1px solid var(--line); background: rgba(5,6,7,.98); padding: 10px; }
  [dir="rtl"] .locale-mobile-menu nav, [dir="rtl"] .locale-mobile-menu > div { right: auto; left: 0; }
  .locale-mobile-menu nav a { border-bottom: 1px solid var(--line-soft); padding: 15px; font-family: var(--serif); font-size: 21px; }
  .locale-mobile-menu > div { top: 287px; flex-direction: row; justify-content: space-around; }
  .locale-page .topbar { grid-template-columns: 1fr auto; }
  .locale-page .locale-actions { display: none; }
  .locale-plan-grid { grid-template-columns: 1fr; }
  .locale-plan-card { min-height: 340px; }
  .locale-service-rail { padding-right: 18px; padding-left: 18px; scroll-padding-left: 18px; }
  .locale-service-card { min-height: 500px; flex-basis: 86vw; }
  .dialog-content { min-height: auto; padding-top: 70px; }
  .dialog-highlights { grid-template-columns: 1fr; }
}
