/* Base reset + structural helpers for the generated layout.css.
   layout.css carries every size/position/colour value pulled straight out
   of Figma; this file only supplies the plumbing that markup needs to make
   sense in a real browser (resets, the photo-fill pattern, safe defaults). */

*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
}

html, body {
  margin: 0;
  padding: 0;
  background: #ffffff;
  color: #132745;
  font-family: 'Helvetica Neue', 'HelveticaNeue', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

[id] {
  scroll-margin-top: 30px;
}

.page { margin: 0 auto; }

h1, h2, h3, h4, h5, h6, p { margin: 0; font: inherit; color: inherit; }

a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; }

button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

img { max-width: none; }

ul, ol { margin: 0; padding: 0; list-style: none; }

/* Figma "image fill" pattern: a span.fig-bg absolutely fills its
   (position:relative) parent, the <img> covers it, and an optional
   ::after paints the semi-transparent colour scrim on top of the photo. */
.fig-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block;
  overflow: hidden;
}
.fig-bg .fig-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  /* Muqova rasmining fokus nuqtasi va masshtabi — News.cover_focus_x/y va
     cover_scale'dan shablonda inline qo'yilgan qiymatlar. Standart holatda
     (50%/50%/100) markazlashgan, kattalashtirilmagan holatdan farq qilmaydi.
     `.hero-slide .fig-img` o'ziga xos Ken-Burns animatsiyasida shu
     o'zgaruvchilarni o'z formulasiga qo'shib ishlatadi (hero-slider.css). */
  object-position: var(--cover-focus-x, 50%) var(--cover-focus-y, 50%);
  transform: scale(calc(var(--cover-zoom, 100) / 100));
  transform-origin: var(--cover-focus-x, 50%) var(--cover-focus-y, 50%);
}
.fig-bg::after {
  position: absolute;
  inset: 0;
}

/* Divider lines and metadata dots render as empty <span>s sized entirely
   by layout.css; give them a safe display outside flex contexts too. */
.rule, .dot { display: block; flex-shrink: 0; }

.icon { display: block; }

.txt { white-space: pre-wrap; }

/* The whole page is an exact 1920px-wide desktop composition (matches the
   Figma frame 1:1), so let it scroll horizontally on narrower viewports
   instead of squashing the design. */
body { overflow-x: auto; }

/* Navigation plumbing — the links .figma/build_links.py adds.
   ------------------------------------------------------------------------
   A page's every box is positioned by its own generated .n-<node> rule, and
   an element that becomes a link keeps that class, so it keeps its box. What
   it loses is what its old tag got from the browser for nothing, and that is
   all these rules hand back. base.css is loaded before the page's own
   stylesheet, so wherever the generated rule has an opinion of its own —
   `display: flex` on a sidebar row, an underline the design draws — the
   generated rule still wins. */
.lnk { color: inherit; }
.lnk, .lnk:hover, .lnk:focus { text-decoration: none; }
.lnk:focus-visible { outline: 2px solid #ff800a; outline-offset: 2px; }

/* What <div>, <p> and <h3> were before the tag changed. */
.lnk-block, .lnk-img { display: block; }

/* A logo or an icon: the .n- rule moved onto the <a>, so the image fills it
   and takes the same corners it used to round itself. */
.lnk-img > img { display: block; width: 100%; height: 100%; border-radius: inherit; }

/* A card links from its title, and .lnk-spread lays that same link over the
   whole card so the picture and the byline open the article too. It paints
   nothing; it only catches the pointer, and it is out of flow, so a card
   that lays its children out in a row or a column never counts it as one.
   It sits beside the title rather than inside it: every generated title rule
   clips to its own box (that is what draws the two-line clamp), and anything
   inside the title would be clipped with it. The keyboard and the screen
   reader use the title's own link — this one is hidden from both. */
.lnk-host { position: relative; }
.lnk-spread { position: absolute; inset: 0; }

/* Header'dagi obuna nishoni ("Bir yillik"). Dizaynda uning foni — rangli
   filtrdan o'tkazilgan fotosurat; site_header.html shu nishon uchun o'z
   filtrini (#hdr-badge-tint) e'lon qiladi, shuning uchun u sarlavha
   ishlatilgan har bir sahifada, jumladan sahifa filtrlari yo'q
   news/list_page.html da ham ishlaydi. Matritsa 120x36 quti uchun. */
.header > .duration-badge-container > .fig-bg > .fig-img {
  object-fit: fill;
  transform: matrix(2.564746, -1.11823, 2.549084, 5.221089, -140.094701, -23.082058);
  transform-origin: 0 0;
  filter: url(#hdr-badge-tint);
}

/* Umumiy footer (includes/site_footer.html). Header kabi barcha sahifalarda
   bir xil — faqat `top` sahifaning o'zidan inline style bilan keladi, chunki
   bu absolyut Figma kompozitsiyasida footer qayerda turishi har bir sahifada
   kontent balandligiga qarab boshqacha. */
.n-136-4892 { position: absolute; left: 0px; width: 1920px; height: 522.5px; background-color: #132745; overflow: hidden; }
.n-I136-4892-137-8554 { flex: none; width: 152px; height: 52px; display: block; border-radius: 5.21px; }
.n-I136-4892-93-2442 { flex: none; width: 654px; height: 100px; white-space: pre-wrap; font-family: 'Helvetica Neue', 'HelveticaNeue', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 24.5px; color: #ffffff; }
.n-I136-4892-93-2443 { flex: none; width: 353px; height: 25px; white-space: pre; font-family: 'Helvetica Neue', 'HelveticaNeue', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 24.5px; color: #f7f8f7; }
.n-I136-4892-93-2439 { flex: none; align-self: stretch; display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.n-I136-4892-169-2532 { flex: none; width: 34px; height: 34px; display: block; }
.n-I136-4892-169-2627 { flex: none; width: 34px; height: 34px; display: block; }
.n-I136-4892-93-2451 { flex: none; width: 34px; height: 34px; display: block; }
.n-I136-4892-93-2445 { flex: none; width: 34px; height: 34px; display: block; }
.n-I136-4892-93-2444 { flex: none; display: flex; flex-direction: row; gap: 20px; align-items: center; }
.n-I136-4892-93-2438 { position: absolute; left: 120px; top: 50px; width: 830px; display: flex; flex-direction: column; gap: 24px; justify-content: center; align-items: flex-start; }
.n-I136-4892-93-2464 { position: absolute; left: 0px; top: 0px; width: 180px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; color: #ffffff; }
.n-I136-4892-93-2465 { position: absolute; left: 1366px; top: 0px; width: 141px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; color: #ffffff; opacity: 0.4; }
.n-I136-4892-93-2466 { position: absolute; left: 1547px; top: 0px; width: 130px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; color: #ffffff; opacity: 0.4; }
.n-I136-4892-93-2463 { position: absolute; left: 120px; top: 423.5px; width: 1677px; height: 26px; }
.n-I136-4892-93-2469 { flex: none; width: 193px; height: 26px; white-space: pre-wrap; align-self: stretch; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; color: #ffffff; }
.n-I136-4892-93-2471 { flex: none; width: 55px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; text-align: center; color: #ffffff; }
.n-I136-4892-93-2472 { flex: none; width: 64px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; text-align: center; color: #ffffff; }
.n-I136-4892-93-2470 { flex: none; align-self: stretch; display: flex; flex-direction: column; gap: 18px; justify-content: center; align-items: flex-start; }
.n-I136-4892-93-2468 { flex: none; width: 193px; display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.n-I136-4892-93-2477 { flex: none; width: 65px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; text-align: center; color: #ffffff; }
.n-I136-4892-93-2476 { flex: none; align-self: stretch; display: flex; flex-direction: column; gap: 18px; justify-content: center; align-items: flex-start; }
.n-I136-4892-93-2475 { flex: none; width: 193px; display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.n-I136-4892-93-2482 { flex: none; width: 193px; height: 26px; white-space: pre-wrap; align-self: stretch; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; color: #ffffff; }
.n-I136-4892-93-2484 { flex: none; width: 55px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; text-align: center; color: #ffffff; }
.n-I136-4892-93-2485 { flex: none; width: 56px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; text-align: center; color: #ffffff; }
.n-I136-4892-93-2486 { flex: none; width: 38px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; text-align: center; color: #ffffff; }
.n-I136-4892-93-2487 { flex: none; width: 145px; height: 26px; white-space: pre; font-family: 'Manrope', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 26.1px; text-align: center; color: #ffffff; }
.n-I136-4892-93-2483 { flex: none; align-self: stretch; display: flex; flex-direction: column; gap: 18px; justify-content: center; align-items: flex-start; }
.n-I136-4892-93-2481 { flex: none; width: 193px; display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.n-I136-4892-93-2467 { position: absolute; left: 968px; top: 63.5px; display: flex; flex-direction: row; gap: 20px; align-items: flex-end; }
.n-I136-4892-93-2495 { position: absolute; left: 118px; top: 390px; width: 1679px; height: 0px; background-color: #f7f8f7; height: 0.5px; width: 1679px; flex: none; opacity: 0.5; }