/* Shared content measure: matches the existing 1390px section minus its 72px gutters. */
:root { --cyr-content-width: 1246px; --cyr-page-gutter: clamp(18px, 4.5vw, 72px); }
#cyr-home-root .home-hero {
  width: min(calc(100% - 2 * var(--cyr-page-gutter)), var(--cyr-content-width));
  margin-inline: auto;
  padding: 42px 0 32px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: 32px 48px;
}
#cyr-home-root .home-copy { padding: 22px 0; }
#cyr-home-root .home-copy h1 { font-size: clamp(48px, 4.3vw, 66px); margin-bottom: 22px; }
#cyr-home-root .home-copy > p { font-size: 19px; margin-bottom: 26px; }
#cyr-home-root .home-hero-media { min-height: 0; height: 420px; margin: 0; }
#cyr-home-root .home-search-area { margin: 0; padding: 0; width: 100%; }
#cyr-home-root .home-section:not(.catalog-observatory-section) {
  width: min(calc(100% - 2 * var(--cyr-page-gutter)), var(--cyr-content-width));
  padding-inline: 0;
}
#cyr-home-root .home-map-section .national-map { max-width: var(--cyr-content-width); }
#cyr-home-root .type-rail-shell:not(.is-overflowing) { grid-template-columns: minmax(0, 1fr); }
#cyr-home-root .type-rail-shell:not(.is-overflowing) .rail-arrow { display: none; }
#cyr-home-root .type-rail { gap: 8px; padding-block: 5px; }
#cyr-home-root .type-rail .type-chip:first-child { margin-left: auto; }
#cyr-home-root .type-rail .type-chip:last-child { margin-right: auto; }
#cyr-home-root .type-chip { height: 58px; padding-inline: 12px; gap: 8px; font-size: 14px; }
#cyr-home-root .type-chip svg { width: 22px; height: 22px; }
#cyr-home-root .type-chip:hover, #cyr-home-root .type-chip:focus-visible { border-color: #194b7a; }
#cyr-home-root .type-chip.is-active { color: #194b7a; background: #eaf2fa; border-color: #c5d8eb; }
/* Elementor retains ownership of its sticky header and logo. */
.elementor-3543 .elementor-element.elementor-element-5580f099 {
  background: #f7f6f2 !important; border-bottom: 1px solid #e2e5e4;
  padding: 0 var(--cyr-page-gutter) !important; min-height: 94px;
}
.elementor-3543 .elementor-element-5580f099 > .e-con-inner {
  max-width: var(--cyr-content-width) !important; padding-block: 18px !important; align-items: center;
}
.elementor-3543 .elementor-element-57c0dcae { width: 160px; flex-shrink: 0; }
.elementor-3543 .elementor-element-14e56429 { flex: 1; min-width: 0; align-items: center; }
.elementor-3543 .elementor-widget-image { width: 142px !important; flex: 0 0 142px; }
.elementor-3543 .elementor-widget-image img { width: 142px; filter: none !important; }
.elementor-3543 .elementor-element-3902059b { width: auto; max-width: 100%; margin: 0; padding: 0; }
.cyr-header-navigation { font-family: 'DM Sans', 'Inter Tight', sans-serif; color: #23242c; }
.cyr-primary-navigation { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.cyr-primary-navigation a, .cyr-primary-navigation summary {
  color: #23242c !important; font-size: 16px; font-weight: 500; line-height: 1.4;
  text-decoration: none; cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 10px;
}
.cyr-primary-navigation a:hover, .cyr-primary-navigation summary:hover { color: #194b7a !important; }
.cyr-primary-navigation a:focus-visible, .cyr-primary-navigation summary:focus-visible, .cyr-menu-toggle:focus-visible {
  outline: 3px solid #194b7a; outline-offset: 3px;
}
.cyr-nav-disclosure { position: relative; }
.cyr-nav-disclosure summary { list-style: none; }
.cyr-nav-disclosure summary::-webkit-details-marker { display: none; }
.cyr-nav-disclosure summary::after { content: ''; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); margin: -4px 2px 0 4px; }
.cyr-nav-disclosure[open] summary::after { transform: rotate(225deg); margin-top: 3px; }
.cyr-mega-panel, .cyr-contact-panel {
  position: absolute; top: calc(100% + 14px); right: 0; background: #fff;
  border: 1px solid #e2e5e4; border-radius: 16px; padding: 24px;
  box-shadow: 0 18px 45px rgba(35,36,44,.12); z-index: 100;
}
.cyr-mega-panel { width: 650px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; left: 0; right: auto; }
.cyr-mega-group p { margin: 0 0 12px; color: #4b4f59; font-size: 13px; font-weight: 700; }
.cyr-mega-group a { padding: 10px 8px; border-radius: 8px; }
.cyr-mega-group a:hover, .cyr-contact-panel a:hover { background: #eaf2fa; }
.cyr-primary-navigation svg { flex: 0 0 22px; color: #194b7a; }
.cyr-mega-footer { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid #e2e5e4; padding-top: 14px; }
.cyr-mega-footer a { color: #194b7a !important; font-size: 14px; }
.cyr-contact-panel { width: 210px; padding: 12px; }
.cyr-contact-panel a { padding: 10px; border-radius: 8px; }
.cyr-primary-navigation .cyr-professional-link { color: #194b7a !important; border: 1px solid #194b7a; border-radius: 9px; padding: 10px 16px; }
.cyr-primary-navigation .cyr-professional-link:hover { background: #eaf2fa; }
/* Persistent location feedback differs from hover and keyboard focus. */
.cyr-primary-navigation > a:not(.cyr-professional-link), .cyr-nav-disclosure > summary {
  padding-inline: 10px;
  border-radius: 8px;
}
.cyr-primary-navigation > a.cyr-nav-current,
.cyr-nav-disclosure > summary.cyr-nav-current {
  color: #eeeeec !important;
  background: #23242c;
  font-weight: 700;
}
.cyr-primary-navigation .cyr-mega-panel a.cyr-nav-current,
.cyr-primary-navigation .cyr-contact-panel a.cyr-nav-current {
  color: #eeeeec !important;
  background: #23242c;
  font-weight: 700;
}
.cyr-primary-navigation .cyr-professional-link.cyr-nav-current {
  color: #eeeeec !important;
  background: #23242c;
  border-color: #23242c;
}
html:root body .cyr-primary-navigation :is(a, summary):is(:hover, .cyr-nav-current) {
  color: #eeeeec !important;
  background: #23242c !important;
  box-shadow: none;
}
html:root body .cyr-primary-navigation :is(a, summary):is(:hover, .cyr-nav-current) svg {
  color: inherit !important;
}
.cyr-primary-navigation .cyr-professional-link:hover {
  border-color: #23242c;
}
.cyr-menu-toggle { display: none; }
@media (max-width: 1100px) {
  .cyr-primary-navigation { gap: 16px; }
  .cyr-primary-navigation > a, .cyr-nav-disclosure > summary { font-size: 14px; }
  .cyr-mega-panel { left: auto; right: -260px; width: 600px; }
  #cyr-home-root .home-hero { gap: 28px; }
  #cyr-home-root .home-hero-media { height: 400px; }
}
@media (max-width: 900px) {
  .elementor-3543 .elementor-element.elementor-element-5580f099 { min-height: 76px; }
  .elementor-3543 .elementor-element-5580f099 > .e-con-inner { padding-block: 12px !important; }
  .elementor-3543 .elementor-widget-image { width: 120px !important; flex-basis: 120px; }
  .elementor-3543 .elementor-widget-image img { width: 120px; height: 44px; object-fit: contain; }
  .cyr-header-navigation.is-enhanced .cyr-menu-toggle {
    display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px;
    border: 1px solid #194b7a; border-radius: 8px; padding: 8px 13px;
    background: #fff; color: #194b7a; font: inherit; font-size: 15px;
  }
  .cyr-header-navigation.is-enhanced:not(.is-open) .cyr-primary-navigation { display: none; }
  .cyr-primary-navigation {
    position: fixed; top: 76px; left: 0; right: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start;
    background: #fff; padding: 18px var(--cyr-page-gutter) 24px; border-bottom: 1px solid #e2e5e4;
    gap: 8px; max-height: calc(100dvh - 76px); overflow-y: auto; overscroll-behavior: contain;
  }
  .cyr-primary-navigation > * { flex-shrink: 0; }
  .cyr-primary-navigation > a, .cyr-nav-disclosure > summary { font-size: 16px; }
  .cyr-nav-disclosure summary { justify-content: space-between; }
  .cyr-mega-panel, .cyr-contact-panel { position: static; width: 100%; box-shadow: none; border: 0; border-radius: 0; padding: 12px 0; }
  .cyr-mega-panel { gap: 16px; }
  .cyr-mega-group a { font-size: 15px; }
  .cyr-primary-navigation .cyr-professional-link { justify-content: center; margin-top: 8px; }
}
@media (max-width: 820px) {
  #cyr-home-root .home-hero { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; gap: 22px; padding: 28px 0; }
  #cyr-home-root .home-copy { padding: 0; }
  #cyr-home-root .home-copy h1 { font-size: clamp(42px, 8vw, 58px); margin-bottom: 16px; }
  #cyr-home-root .home-copy > p { font-size: 16px; margin-bottom: 18px; }
  #cyr-home-root .home-hero-media { height: clamp(170px, 38vw, 280px); width: 100%; margin: 0; }
  #cyr-home-root .home-search-area { margin: 0; padding: 0; }
  #cyr-home-root .type-rail-shell { grid-template-columns: minmax(0,1fr); }
  #cyr-home-root .rail-arrow { display: none; }
}
@media (max-width: 520px) {
  .cyr-mega-panel { grid-template-columns: 1fr; }
  .cyr-mega-footer { flex-direction: column; gap: 4px; }
}
/* Explicit foreground/background pairs: never inherit Elementor's pale primary text. */
html:root body #cyr-home-root .home-guides-section .home-guides-lead h2 {
  color: #161b2a !important;
}
html:root body #cyr-home-root .home-guides-section .home-guide-card,
html:root body #cyr-home-root .home-guides-section .home-guide-copy strong,
html:root body #cyr-home-root .home-guides-section .home-guide-card:is(:hover, :focus, :focus-visible, :active) .home-guide-copy strong {
  color: #23242c !important;
}
html:root body #cyr-home-root .home-guides-section .home-guide-card {
  background: #fff !important;
}
html:root body #cyr-home-root .home-guides-section .home-guide-card:is(:hover, :focus, :focus-visible, :active) {
  background: #eaf2fa !important;
}
html:root body #cyr-home-root .home-guides-section .home-guide-copy span,
html:root body #cyr-home-root .home-guides-section .home-guides-lead p {
  color: #4b4f59 !important;
}
html:root body #cyr-home-root .home-guides-section .secondary-button {
  color: #194b7a !important;
  background: #fff !important;
  border-color: #194b7a !important;
}
html:root body #cyr-home-root .home-guides-section .secondary-button:is(:hover, :focus, :focus-visible, :active) {
  color: #194b7a !important;
  background: #eaf2fa !important;
  border-color: #194b7a !important;
}
html:root body #cyr-home-root .home-guides-section .secondary-button svg {
  color: inherit !important;
}
/* Full-width section canvas with the same contained reading measure. */
html:root body #cyr-home-root .home-section.home-articles-section {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding: 80px max(var(--cyr-page-gutter), calc((100% - var(--cyr-content-width)) / 2));
  background: #fff !important;
}
/* Catalogue facts are informational cards, not clickable controls. */
html:root body #cyr-home-root .home-proof-band {
  width: 100%;
  background: #fff;
}
html:root body #cyr-home-root .home-proof {
  width: min(calc(100% - 2 * var(--cyr-page-gutter)), var(--cyr-content-width));
  max-width: var(--cyr-content-width);
  margin: 0 auto;
  padding: 40px 0 56px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  background: #fff !important;
  border-top: 0;
}
html:root body #cyr-home-root .home-proof > div {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 8px;
  min-width: 0;
  padding: 28px 20px;
  border: 1px solid #e2e5e4;
  border-radius: 18px;
  background: #f7f6f2 !important;
  box-shadow: 0 5px 18px rgba(35,36,44,.035);
  text-align: center;
  cursor: default;
  transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
html:root body #cyr-home-root .home-proof > div::before {
  content: '';
  width: 52px;
  height: 52px;
  margin-bottom: 6px;
  border-radius: 14px;
  background-color: #eaf2fa;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 28px 28px;
}
html:root body #cyr-home-root .home-proof > div:nth-child(1)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23194b7a' stroke-width='1.6' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1.5'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1.5'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1.5'/%3E%3C/svg%3E");
}
html:root body #cyr-home-root .home-proof > div:nth-child(2)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23194b7a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5l10-3v19M14 8h6v13M2 21h20M8 7v1M8 12v1M8 17v1M17 12h1M17 17h1'/%3E%3C/svg%3E");
}
html:root body #cyr-home-root .home-proof > div:nth-child(3)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23194b7a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 10c0 5-7 12-7 12S5 15 5 10a7 7 0 1 1 14 0Z'/%3E%3Ccircle cx='12' cy='10' r='2'/%3E%3C/svg%3E");
}
html:root body #cyr-home-root .home-proof strong {
  color: #23242c !important;
  font-size: 42px;
  line-height: 1.05;
}
html:root body #cyr-home-root .home-proof span {
  color: #4b4f59 !important;
  font-size: 15px;
  line-height: 1.5;
}
@media (hover: hover) and (pointer: fine) {
  html:root body #cyr-home-root .home-proof > div:hover {
    background: #eaf2fa !important;
    border-color: #194b7a;
    box-shadow: 0 10px 24px rgba(25,75,122,.08);
    transform: translateY(-3px);
  }
}
@media (max-width: 820px) {
  html:root body #cyr-home-root .home-section.home-articles-section {
    padding-block: 48px;
  }
  html:root body #cyr-home-root .home-proof { gap: 12px; padding-block: 24px 36px; }
  html:root body #cyr-home-root .home-proof > div { padding: 22px 12px; }
  html:root body #cyr-home-root .home-proof strong { font-size: 34px; }
  html:root body #cyr-home-root .home-proof span { font-size: 14px; }
}
@media (max-width: 600px) {
  html:root body #cyr-home-root .home-proof { grid-template-columns: minmax(0, 1fr); }
  html:root body #cyr-home-root .home-proof > div {
    grid-template-columns: 52px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    justify-items: start;
    column-gap: 18px;
    row-gap: 4px;
    padding: 20px;
    text-align: left;
  }
  html:root body #cyr-home-root .home-proof > div::before { grid-row: 1 / 3; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html:root body #cyr-home-root .home-proof > div { transition: none; transform: none !important; }
}
/* Shared outer measure for public content. Interior card padding remains local. */
html:root body #cyr-home-root .types-page {
  padding-inline: var(--cyr-page-gutter);
}
html:root body #cyr-home-root .types-page > :is(.directory-intro, .results-shell, .directory-type-rail, .type-guide-section, .type-location-section, .type-faq-section, .data-note) {
  width: 100%;
  max-width: var(--cyr-content-width);
  margin-inline: auto;
}
html:root body #cyr-home-root .directory-search-row {
  max-width: none;
}
html:root body #cyr-home-root :is(.home-cta, .catalog-observatory-section),
html:root body .cyr-guias-page .cyr-guias-wrap,
html:root body .cyr-resource--directory {
  box-sizing: border-box;
  width: min(calc(100% - 2 * var(--cyr-page-gutter)), var(--cyr-content-width));
  max-width: var(--cyr-content-width);
  margin-inline: auto;
}
html:root body #cyr-editorial {
  padding-inline: max(var(--cyr-page-gutter), calc((100% - var(--cyr-content-width)) / 2));
}
html:root body .elementor-location-footer :is(.cyr-footer-main, .cyr-footer-bottom) > .e-con-inner {
  width: min(calc(100% - 2 * var(--cyr-page-gutter)), var(--cyr-content-width)) !important;
  max-width: var(--cyr-content-width) !important;
}
@media (max-width: 600px) {
  :root { --cyr-page-gutter: 20px; }
}
