/* Locale links reuse the site's language-control appearance. */
.desktop-actions .language-menu { width:max-content; min-width:164px; max-width:calc(100vw - 24px); padding:8px; box-sizing:border-box; }
.language-menu a { display:flex; align-items:center; justify-content:flex-start; width:100%; box-sizing:border-box; color:#b2b2b2; text-align:left; padding:10px 14px; margin:0; min-height:44px; font:500 17px/1.4 'Onest',Arial,sans-serif; white-space:nowrap; text-decoration:none; }
.language-menu a.active,.language-menu a:hover { color:#fff; }
.mobile-languages a { padding:0; border:0; background:none; color:var(--muted); font-size:13px; min-height:32px; min-width:28px; display:inline-flex; align-items:center; }
.mobile-languages a.active { color:white; }
.language-menu a:focus-visible,.mobile-languages a:focus-visible { outline:2px solid #1977f3; outline-offset:3px; }
.how-design-watch { flex-wrap:wrap; }
.guide-language-note { flex-basis:100%; font:inherit; font-size:12px; line-height:1.4; }
/* Only the transparent circular link is above hero content; artwork stays below it. */
.hero > .learn-more-hit { z-index:9; }
@media(max-width:768px) {
  .hero > .learn-more-hit { width:var(--hero-circle); height:var(--hero-circle); }
}
/* Ichan-Kala has no AR action: its tour occupies the shared lower button row. */
.object-card[data-object-id="ichan-kala"] .object-actions > a[data-object-action="tour"] { grid-row:2; }
/* Preserve titles and descriptions in normal flow for longer translated copy. */
html[lang="uz"] h1,html[lang="en"] h1,
html[lang="uz"] h2,html[lang="en"] h2,
html[lang="uz"] h3,html[lang="en"] h3 { overflow-wrap:anywhere; }
@media(min-width:1101px) {
  .site-header,.about-page .site-header { height:auto; min-height:82px; padding-block:19px; }
  .desktop-nav,.about-page .desktop-nav { flex:1 1 auto; min-width:0; flex-wrap:wrap; white-space:normal; justify-content:flex-end; row-gap:12px; }
  .desktop-actions { flex-shrink:0; height:auto; }
  .header-cta { height:auto; min-height:40px; line-height:1.3; padding:8px 12px; text-align:center; }
}
/* Mobile corrections from the user's October 12 review. */
@media(max-width:768px) {
  /* Hide the media's bottom-edge seam without altering supplied video bytes. */
  .feature-card .feature-media { overflow:hidden; }
  .feature-card .feature-media::after { content:""; position:absolute; z-index:1; left:0; right:0; bottom:0; height:1px; background:#fff; pointer-events:none; }
  /* Let the image supply its own height before the complete heading starts. */
  .souvenir-shell { display:flex; flex-direction:column; }
  .souvenir-art { position:relative; left:auto; top:auto; order:-1; width:100%; height:auto; aspect-ratio:360/527; margin:93px 0 0; }
  .souvenir-copy h2 { padding-top:0; margin:22px 30px 0; max-width:none; }
  .souvenir-copy > p { min-height:0; }
  .souvenir-play { top:calc(15px + 146.388889vw); }
}
@media(min-width:769px) {
  .hero-content.expanded-tags .hero-tags { position:relative; inset:auto; display:flex; flex-wrap:wrap; gap:20px; height:auto; margin-top:60px; }
  .hero-content.expanded-tags .hero-tags .tag { position:relative; inset:auto; width:auto; max-width:100%; height:auto; min-height:32px; padding-block:8px; white-space:normal; line-height:1.2; }
}

/* Fit each hero tag to the current locale instead of a desktop frame width. */
.hero-tags > .tag { width:max-content; max-width:100%; overflow-wrap:anywhere; }
/* Touch layouts show the complete map group at every viewport width. */
@media(max-width:768px), (hover:none), (pointer:coarse) {
  /* Centre the icon and translated label together, independent of text length. */
  .object-card .object-actions > a.object-map,
  .object-card .object-actions > a.object-map:hover,
  .object-card .object-actions > a.object-map:focus-visible {
    display:flex; align-items:center; justify-content:center; gap:10px;
    width:100%; max-width:100%; height:auto; min-height:44px; overflow:visible;
  }
  .object-card .object-map > img,
  .object-card .object-map:hover > img { position:static; margin:0; flex:0 0 15px; transform:none; transition:none; }
  .object-card .object-map > span,
  .object-card .object-map:hover > span { position:static; transform:none; opacity:1; visibility:visible; transition:none; min-width:0; max-width:calc(100% - 25px); white-space:normal; overflow-wrap:anywhere; text-align:center; }
}
/* Preserve the desktop reveal while centring its real, measured label width. */
@media(min-width:769px) and (hover:hover) and (pointer:fine) {
  .object-card .object-actions > a.object-map:hover,
  .object-card .object-actions > a.object-map:focus-visible {
    width:min(100%, max(164px, calc(var(--map-label-width, 121px) + 43px)));
  }
  .object-card .object-map:hover > img,
  .object-card .object-map:focus-visible > img {
    left:calc(50% - (var(--map-label-width, 121px) + 25px) / 2);
  }
  .object-card .object-map:hover > span,
  .object-card .object-map:focus-visible > span {
    left:calc(50% + (25px - var(--map-label-width, 121px)) / 2);
  }
}
/* Without JavaScript, display the complete group without measured CSS variables. */
html:not(.js) .object-card .object-actions > a.object-map { display:flex; width:100%; height:auto; min-height:44px; align-items:center; justify-content:center; gap:10px; overflow:visible; }
html:not(.js) .object-card .object-map > img { position:static; margin:0; flex:0 0 15px; transform:none; transition:none; }
html:not(.js) .object-card .object-map > span { position:static; margin:0; transform:none; opacity:1; visibility:visible; transition:none; min-width:0; max-width:calc(100% - 25px); white-space:normal; overflow-wrap:anywhere; text-align:center; }
