.language-switcher { position: relative; color: #2f253b; font-size: .84rem; }
.language-switcher summary { display: flex; align-items: center; gap: .45rem; height: 2.5rem; padding: 0 .7rem; border: 1px solid #ded8e7; border-radius: 999px; background: #fff; cursor: pointer; list-style: none; box-shadow: 0 1px 2px rgba(38, 24, 53, .04); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher summary:hover { border-color: #9e84c5; box-shadow: 0 3px 10px rgba(52, 31, 77, .09); transform: translateY(-1px); }
.language-switcher summary:focus-visible { outline: 3px solid rgba(95, 45, 189, .2); outline-offset: 2px; }
.language-flag { flex: 0 0 auto; width: 20px; height: 14px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(38, 24, 53, .08); }
.language-label { font-weight: 700; letter-spacing: .01em; }
.language-chevron { width: .4rem; height: .4rem; margin: 0 .05rem 0 .08rem; border-right: 1.5px solid #71657e; border-bottom: 1.5px solid #71657e; transform: translateY(-2px) rotate(45deg); transition: transform .16s ease; }
.language-switcher[open] summary { border-color: #9676c4; box-shadow: 0 4px 14px rgba(52, 31, 77, .11); }
.language-switcher[open] .language-chevron { transform: translateY(2px) rotate(225deg); }
.language-menu { position: absolute; z-index: 30; top: calc(100% + .55rem); right: 0; width: 13.5rem; padding: .38rem; border: 1px solid #e5dfea; border-radius: .8rem; background: #fff; box-shadow: 0 18px 45px rgba(39, 23, 57, .16), 0 3px 10px rgba(39, 23, 57, .06); }
.language-option { display: grid; grid-template-columns: 1.6rem 1fr auto; align-items: center; gap: .65rem; padding: .68rem .7rem; border-radius: .58rem; color: #342b3f; text-decoration: none; }
.language-option strong, .language-option small { display: block; }
.language-option strong { font-size: .84rem; font-weight: 750; }
.language-option small { margin-top: .12rem; color: #85798f; font-size: .68rem; font-weight: 500; }
.language-option.is-current { background: #f4effa; color: #5625a4; }
.language-check { color: #6331b4; font-size: .85rem; font-weight: 800; }
a.language-option:hover { background: #f8f5fb; }
a.language-option:focus-visible { outline: 2px solid #7c4dcc; outline-offset: -2px; }
@media (max-width: 980px) { .language-switcher { align-self: flex-start; margin: .3rem 0; } .language-menu { position: static; width: 13.5rem; margin-top: .35rem; box-shadow: 0 6px 18px rgba(39, 23, 57, .1); } }
