:root {
    --ink: #0f172a;
    --ink-soft: #334155;
    --muted: #64748b;
    --line: #e2e8f0;
    --line-soft: #f1f5f9;
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --surface-medical: #f0f7ff;
    --green: #0d5c75;
    --green-strong: #0a485c;
    --green-light: #e0f2fe;
    --teal-accent: #0284c7;
    --emerald-medical: #059669;
    --emerald-light: #ecfdf5;
    --coral: #e11d48;
    --gold: #d97706;
    --gold-light: #fffbeb;
    --olive: #0f766e;
    --olive-light: #f0fdfa;
    --shadow: 0 10px 30px -5px rgba(13, 92, 117, 0.08), 0 4px 12px -2px rgba(15, 23, 42, 0.03);
    --shadow-hover: 0 20px 40px -10px rgba(13, 92, 117, 0.16), 0 8px 20px -4px rgba(15, 23, 42, 0.06);
    --shadow-card: 0 2px 10px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.02);
    --radius: 10px;
    --radius-lg: 16px;
    --radius-sm: 6px;
    --container: 1240px;
    --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;
    --font-display: "PingFang SC", "Microsoft YaHei", -apple-system, sans-serif;
    --space-1: 6px;
    --space-2: 10px;
    --space-3: 14px;
    --space-4: 18px;
    --space-5: 28px;
    --space-6: 36px;
}

html.pension-layout-wide {
    --container: 1480px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 104px;
    color-scheme: light;
}

body {
    margin: 0;
    overflow-x: clip;
    color: var(--ink);
    background: var(--surface);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.65;
    letter-spacing: 0;
    -webkit-font-smoothing: antialiased;
}

body.is-locked {
    overflow: hidden;
}

img {
    display: block;
    max-width: 100%;
}

button,
input,
select,
textarea {
    font: inherit;
    letter-spacing: 0;
}

button,
select {
    cursor: pointer;
}

button {
    border: 0;
}

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

a,
button,
select,
input[type="button"],
input[type="submit"] {
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(47, 125, 104, .12);
}

h1,
h2,
h3 {
    overflow-wrap: anywhere;
    text-wrap: balance;
}

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

a:hover {
    color: var(--green);
}

:focus-visible {
    outline: 3px solid rgba(47, 125, 104, 0.2);
    outline-offset: 3px;
}

.pension-skip-link {
    position: fixed;
    z-index: 2000;
    top: 10px;
    left: 10px;
    padding: 9px 13px;
    color: #fff;
    background: var(--green-strong);
    border-radius: 7px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .16);
    transform: translateY(-180%);
    transition: transform 160ms ease;
}

.pension-skip-link:focus-visible {
    color: #fff;
    outline-color: rgba(47, 125, 104, .28);
    transform: translateY(0);
}

input:focus,
textarea:focus,
select:focus,
.custom-select__trigger:focus {
    outline: 0 !important;
    border-color: var(--line) !important;
    box-shadow: none !important;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.custom-select__trigger:focus-visible {
    outline: 0 !important;
    border-color: var(--line) !important;
    box-shadow: 0 0 0 3px rgba(47, 125, 104, .14) !important;
}

[hidden] {
    display: none !important;
}

.custom-select {
    position: relative;
    width: 100%;
    min-width: 0;
}

.custom-select__native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.pension-js select.custom-select__native:not([data-custom-select="ready"]) {
    position: static !important;
    width: 100% !important;
    height: 46px !important;
    padding: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    visibility: hidden !important;
    white-space: normal !important;
}

.custom-select__trigger {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 46px;
    align-items: center;
    padding: 0 42px 0 13px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 6px;
    text-align: left;
}

.custom-select__trigger::after {
    position: absolute;
    top: 50%;
    right: 15px;
    width: 8px;
    height: 8px;
    content: "";
    border-right: 2px solid var(--green);
    border-bottom: 2px solid var(--green);
    transform: translateY(-70%) rotate(45deg);
    transition: transform 160ms ease;
}

.custom-select.is-open .custom-select__trigger::after {
    transform: translateY(-25%) rotate(225deg);
}

.custom-select__value {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.custom-select__list {
    position: absolute;
    z-index: 80;
    top: calc(100% + 7px);
    right: 0;
    left: 0;
    max-height: 260px;
    padding: 6px;
    overflow-y: auto;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.14);
}

.custom-select__option {
    display: flex;
    width: 100%;
    min-height: 40px;
    align-items: center;
    padding: 8px 10px;
    color: var(--ink-soft);
    background: transparent;
    border-radius: 5px;
    text-align: left;
}

.custom-select__option:hover,
.custom-select__option:focus-visible {
    color: var(--green-strong);
    background: var(--green-light);
    outline: 0;
}

.custom-select__option.is-selected {
    color: #fff;
    background: var(--green);
}

.custom-select__trigger:disabled,
button:disabled,
.button[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: .58;
}

[aria-busy="true"] {
    cursor: progress;
}

.container {
    width: min(calc(100% - 40px), var(--container));
    margin: 0 auto;
}

.icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.icon-button {
    display: inline-grid;
    width: 44px;
    height: 44px;
    place-items: center;
    padding: 0;
    color: var(--ink-soft);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius);
}

.icon-button:hover {
    color: var(--green);
    background: var(--green-light);
}

.button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 20px;
    color: #fff;
    font-weight: 600;
    font-size: 15px;
    background: var(--green);
    border: 1px solid var(--green);
    border-radius: var(--radius);
    box-shadow: 0 2px 6px rgba(13, 92, 117, 0.2);
    transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.button:hover {
    color: #fff;
    background: var(--green-strong);
    border-color: var(--green-strong);
    box-shadow: 0 4px 12px rgba(13, 92, 117, 0.3);
    transform: translateY(-1px);
}

.button:active {
    transform: translateY(1px);
    box-shadow: none;
}

.button--secondary {
    color: var(--green);
    background: #fff;
    border-color: var(--line);
    box-shadow: var(--shadow-card);
}

.button--secondary:hover {
    color: var(--green-strong);
    background: var(--green-light);
    border-color: var(--green);
    box-shadow: 0 4px 12px rgba(13, 92, 117, 0.12);
}

.button--quiet {
    color: var(--ink-soft);
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}

.button--quiet:hover {
    color: var(--green);
    background: var(--green-light);
    border-color: transparent;
}

.utility-bar {
    color: var(--ink-soft);
    font-size: 13px;
    background: #f8fafc;
    border-bottom: 1px solid var(--line);
}

.utility-bar__inner {
    display: flex;
    min-height: 36px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.utility-bar__group {
    display: flex;
    align-items: center;
    gap: 22px;
}

.utility-bar__item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 900;
    background: rgba(255, 255, 255, 0.94);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px -2px rgba(15, 23, 42, 0.05);
}

.site-header__inner {
    display: grid;
    min-height: 76px;
    grid-template-columns: minmax(170px, 220px) minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(16px, 1.5vw, 26px);
}

.brand {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
    color: var(--ink);
}

.brand > span:last-child {
    min-width: 0;
}

.brand:hover {
    color: var(--ink);
}

.brand__mark {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    flex: 0 0 auto;
    color: #fff;
    background: linear-gradient(135deg, var(--green) 0%, var(--teal-accent) 100%);
    border-radius: var(--radius);
    box-shadow: 0 4px 10px rgba(13, 92, 117, 0.25);
}

.brand__mark .icon {
    width: 24px;
    height: 24px;
}

.brand__image {
    display: block;
    width: 44px;
    height: 44px;
    object-fit: contain;
    flex: 0 0 auto;
}

.brand__name {
    display: block;
    overflow: hidden;
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: -0.01em;
}

.brand__sub {
    display: block;
    overflow: hidden;
    margin-top: 2px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-nav {
    display: flex;
    min-width: 0;
    height: 76px;
    align-items: stretch;
    justify-content: center;
    gap: clamp(12px, 1.5vw, 26px);
}

.site-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 0 6px;
    color: var(--ink-soft);
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
    transition: color 160ms ease;
}

.site-nav a::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    content: "";
    background: var(--teal-accent);
    border-radius: 3px 3px 0 0;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 200ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.site-nav a:hover,
.site-nav a.is-active {
    color: var(--green);
}

.site-nav a.is-active {
    font-weight: 700;
    color: var(--green);
    background: transparent;
}

.site-nav a:hover::after,
.site-nav a.is-active::after {
    transform: scaleX(1);
}

.header-actions {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.site-header .brand {
    width: 100%;
    min-width: 154px;
    max-width: 210px;
}

.site-header .brand > span:last-child {
    min-width: 0;
    flex: 1 1 auto;
}

.header-phone {
    display: flex;
    flex-direction: column;
    margin-right: 8px;
    line-height: 1.25;
    white-space: nowrap;
}

.header-phone span {
    color: var(--muted);
    font-size: 11px;
}

.header-phone strong {
    color: var(--green);
    font-size: 17px;
}

.mobile-menu-button {
    display: none;
}

.hero {
    position: relative;
    min-height: 480px;
    overflow: visible;
    color: #fff;
    background-image: url("../images/hero.webp");
    background-position: center 40%;
    background-size: cover;
}

.hero::before {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(105deg, rgba(13, 92, 117, 0.92) 0%, rgba(10, 72, 92, 0.78) 50%, rgba(2, 132, 199, 0.45) 100%);
}

.hero__inner {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 480px;
    flex-direction: column;
    justify-content: center;
    padding-top: 36px;
    padding-bottom: 48px;
}

.hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    padding: 6px 14px;
    width: fit-content;
    color: #e0f2fe;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 30px;
    backdrop-filter: blur(8px);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.hero h1 {
    max-width: 780px;
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(38px, 4.5vw, 52px);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.25);
}

.hero__copy {
    max-width: 680px;
    margin: 16px 0 30px;
    color: #f0f7ff;
    font-size: 17px;
    line-height: 1.6;
    opacity: 0.95;
}

.hero-search {
    display: grid;
    width: min(840px, 100%);
    grid-template-columns: repeat(3, minmax(110px, 1fr)) 1.5fr auto;
    background: #fff;
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: var(--radius-lg);
    box-shadow: 0 20px 45px -10px rgba(15, 23, 42, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.4);
    overflow: hidden;
    gap: 1px;
    background-color: var(--line);
}

.hero-search__select {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 10px 14px;
    background: #fff;
}

.hero-search__select span {
    font-size: 11px;
    font-weight: 700;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 2px;
}

.hero-search__select .icon {
    position: absolute;
    right: 12px;
    bottom: 14px;
    color: var(--green);
    pointer-events: none;
    width: 16px;
    height: 16px;
}

.hero-search__field {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 10px 14px 10px 42px;
    background: #fff;
}

.hero-search__field label {
    font-size: 11px;
    font-weight: 700;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 2px;
}

.hero-search__field .icon {
    position: absolute;
    top: 50%;
    left: 14px;
    color: var(--green);
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
}

.hero-search input {
    width: 100%;
    height: 28px;
    padding: 0;
    color: var(--ink);
    font-size: 15px;
    font-weight: 500;
    background: transparent;
    border: 0;
    outline: 0;
}

.hero-search input::placeholder {
    color: #94a3b8;
    font-size: 14px;
}

.hero-search .button {
    min-width: 136px;
    height: 100%;
    min-height: 58px;
    border-radius: 0;
    font-size: 16px;
    box-shadow: none;
}

.hero__facts {
    display: flex;
    margin: 28px 0 0;
    padding: 0;
    gap: 36px;
    list-style: none;
}

.hero__facts li {
    display: flex;
    align-items: baseline;
    gap: 8px;
    color: #e0f2fe;
    font-size: 14px;
}

.hero__facts strong {
    color: #fff;
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 800;
}

.featured-institutions {
    padding: 26px 0 70px;
    background:
        linear-gradient(180deg, rgba(245, 248, 246, .92), rgba(248, 249, 250, 0) 210px),
        #f7f8fa;
    border-top: 1px solid #edf1ef;
}

.featured-institutions__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 22px;
}

.featured-institutions__header > div:first-child {
    min-width: 0;
}

.featured-institutions__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 8px;
    color: var(--green-strong);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .08em;
}

.featured-institutions__eyebrow .icon {
    width: 16px;
    height: 16px;
}

.featured-institutions__header h2 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.18;
    letter-spacing: -.025em;
}

.featured-institutions__header p {
    max-width: 680px;
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.75;
}

.featured-institutions__header-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 14px;
}

.featured-institutions__header-actions > span {
    color: var(--muted);
    font-size: 12px;
    white-space: nowrap;
}

.featured-institutions__header-actions > span strong {
    margin-right: 4px;
    color: var(--green-strong);
    font-family: var(--font-display);
    font-size: 19px;
}

.featured-institutions__header-actions .button {
    min-height: 42px;
    gap: 8px;
    padding-right: 15px;
    padding-left: 15px;
}

.featured-institutions__header-actions .icon {
    width: 15px;
    height: 15px;
}

.featured-institutions__admin-note {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: 9px;
    margin: -4px 0 16px;
    padding: 8px 12px;
    color: #5f6f68;
    background: #fffdf5;
    border: 1px solid #ebe3c4;
    border-radius: 7px;
    font-size: 12px;
}

.featured-institutions__admin-note .icon {
    width: 16px;
    height: 16px;
    color: #9a7a27;
}

.featured-institutions__admin-note a {
    margin-left: auto;
    color: var(--green-strong);
    font-weight: 700;
    white-space: nowrap;
}

.featured-carousel {
    position: relative;
}

.featured-carousel__viewport {
    overflow: hidden;
    outline: 0;
    touch-action: pan-y;
    transition: height 260ms cubic-bezier(.22, .72, .2, 1);
}

.featured-carousel__track {
    display: flex;
    align-items: flex-start;
    transform: translate3d(0, 0, 0);
    transition: transform 460ms cubic-bezier(.22, .72, .2, 1);
    will-change: transform;
}

.featured-carousel__slide {
    min-width: 0;
    flex: 0 0 100%;
}

.featured-institutions__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.featured-institution-card {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e2e8e5;
    border-radius: 10px;
    box-shadow: 0 7px 22px rgba(34, 62, 52, .045);
    transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.featured-institution-card:hover,
.featured-institution-card:focus-within {
    z-index: 1;
    border-color: #c7d9d1;
    box-shadow: 0 15px 34px rgba(34, 62, 52, .105);
    transform: translateY(-3px);
}

.featured-institution-card__media {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #edf1ef;
}

.featured-institution-card__media > a {
    display: block;
    width: 100%;
    height: 100%;
}

.featured-institution-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.001);
    transition: transform 520ms cubic-bezier(.2, .72, .2, 1);
}

.featured-institution-card:hover .featured-institution-card__media img,
.featured-institution-card:focus-within .featured-institution-card__media img {
    transform: scale(1.045);
}

.featured-institution-card__recommend,
.featured-institution-card__consulted {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #fff;
    pointer-events: none;
    backdrop-filter: blur(8px);
}

.featured-institution-card__recommend {
    top: 11px;
    left: 11px;
    min-height: 28px;
    padding: 0 9px;
    background: rgba(42, 111, 91, .9);
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 5px;
    font-size: 11px;
    font-weight: 750;
}

.featured-institution-card__recommend .icon,
.featured-institution-card__consulted .icon {
    width: 13px;
    height: 13px;
}

.featured-institution-card__favorite {
    position: absolute;
    z-index: 3;
    top: 10px;
    right: 10px;
    width: 34px;
    height: 34px;
    margin: 0;
    color: #385047;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, .7);
    box-shadow: 0 5px 16px rgba(20, 35, 29, .12);
}

.featured-institution-card__favorite .icon {
    width: 17px;
    height: 17px;
}

.featured-institution-card__consulted {
    right: 10px;
    bottom: 9px;
    min-height: 25px;
    padding: 0 8px;
    background: rgba(30, 41, 37, .72);
    border-radius: 4px;
    font-size: 10px;
    font-weight: 650;
}

.featured-institution-card__body {
    position: relative;
    min-width: 0;
    padding: 15px 16px 14px;
}

.featured-institution-card__location {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 5px;
    margin: 0;
    color: var(--muted);
    font-size: 11px;
}

.featured-institution-card__location .icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: var(--green);
}

.featured-institution-card__location span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.featured-institution-card h3 {
    min-height: 50px;
    margin: 8px 0 0;
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.48;
}

.featured-institution-card h3 a {
    display: -webkit-box;
    overflow: hidden;
    color: var(--ink);
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.featured-institution-card__tags {
    display: flex;
    min-height: 24px;
    overflow: hidden;
    align-items: center;
    gap: 5px;
    margin-top: 9px;
}

.featured-institution-card__tags span {
    overflow: hidden;
    max-width: 46%;
    flex: 0 1 auto;
    padding: 3px 7px;
    color: #4e6d62;
    background: #f1f6f3;
    border-radius: 4px;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.featured-institution-card__body footer {
    display: flex;
    min-height: 52px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid #edf1ef;
}

.featured-institution-card__body footer small {
    display: block;
    margin-bottom: 2px;
    color: #87948f;
    font-size: 9px;
}

.featured-institution-card__body footer .price {
    margin: 0;
    text-align: left;
}

.featured-institution-card__body footer .price strong {
    font-size: 19px;
}

.featured-institution-card__body footer .price span {
    margin-left: 2px;
    font-size: 9px;
}

.featured-institution-card__body footer > a {
    display: inline-flex;
    min-height: 32px;
    flex: 0 0 auto;
    align-items: center;
    gap: 5px;
    padding: 0 9px;
    color: var(--green-strong);
    background: #f4f8f6;
    border-radius: 5px;
    font-size: 10px;
    font-weight: 750;
}

.featured-institution-card__body footer > a:hover {
    color: #fff;
    background: var(--green);
}

.featured-institution-card__body footer > a .icon {
    width: 13px;
    height: 13px;
}

.featured-institution-card__verification {
    display: inline-flex;
    max-width: 100%;
    align-items: center;
    gap: 4px;
    margin-top: 10px;
    color: #75847e;
    font-size: 10px;
}

.featured-institution-card__verification .icon {
    width: 13px;
    height: 13px;
    color: var(--green);
}

.featured-carousel__controls {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 11px;
    margin-top: 22px;
}

.featured-carousel__controls > button {
    display: inline-grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    color: var(--ink-soft);
    background: #fff;
    border: 1px solid #dbe4e0;
    border-radius: 50%;
    box-shadow: 0 5px 14px rgba(37, 59, 51, .05);
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.featured-carousel__controls[hidden] {
    display: none;
}

.featured-carousel__controls > button:hover {
    color: #fff;
    background: var(--green);
    border-color: var(--green);
    transform: translateY(-1px);
}

.featured-carousel__controls > button .icon {
    width: 17px;
    height: 17px;
}

.featured-carousel__dots {
    display: flex;
    min-width: 0;
    max-width: min(52vw, 520px);
    overflow-x: auto;
    align-items: center;
    gap: 3px;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.featured-carousel__dots::-webkit-scrollbar {
    display: none;
}

.featured-carousel__dots button {
    display: grid;
    width: 30px;
    height: 40px;
    flex: 0 0 30px;
    place-items: center;
    padding: 0;
    background: transparent;
    border: 0;
}

.featured-carousel__dots button span {
    width: 6px;
    height: 6px;
    background: #bcc8c3;
    border-radius: 999px;
    transition: width 220ms ease, background-color 220ms ease;
}

.featured-carousel__dots button.is-active span {
    width: 19px;
    background: var(--green);
}

.featured-carousel__status {
    min-width: 40px;
    flex: 0 0 40px;
    color: var(--muted);
    font-size: 11px;
    text-align: center;
}

.featured-institutions-empty {
    display: grid;
    min-height: 170px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 28px 32px;
    background: #fff;
    border: 1px dashed #ccd8d3;
    border-radius: 10px;
}

.featured-institutions-empty > span {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    color: var(--green);
    background: var(--green-light);
    border-radius: 50%;
}

.featured-institutions-empty > span .icon {
    width: 25px;
    height: 25px;
}

.featured-institutions-empty h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 21px;
}

.featured-institutions-empty p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.featured-carousel__viewport:focus-visible,
.featured-carousel__controls button:focus-visible,
.featured-institution-card a:focus-visible,
.featured-institution-card button:focus-visible {
    outline: 2px solid var(--green);
    outline-offset: 3px;
}

.directory {
    padding: 42px 0 78px;
    background: #f7f8fa;
}

.directory-tool {
    margin-bottom: 26px;
    background: #fff;
    border: 1px solid var(--line);
    border-top: 4px solid var(--green);
    box-shadow: var(--shadow);
}

.directory-tool__head {
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 22px;
    border-bottom: 1px solid var(--line);
}

.directory-tool__title {
    display: flex;
    align-items: baseline;
    gap: 12px;
}

.directory-tool__title h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 25px;
    line-height: 1.3;
}

.result-count {
    color: var(--muted);
    font-size: 13px;
}

.result-count strong {
    color: var(--coral);
    font-size: 17px;
}

.sort-control {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--muted);
    font-size: 13px;
}

.sort-control select {
    min-width: 128px;
    height: 40px;
    padding: 0 34px 0 12px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 4px;
}

.filter-panel {
    padding: 7px 22px 15px;
}

.filter-row {
    display: grid;
    grid-template-columns: 82px 1fr;
    align-items: start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--line);
}

.filter-row:last-child {
    border-bottom: 0;
}

.filter-label {
    padding-top: 7px;
    color: var(--ink-soft);
    font-size: 14px;
    font-weight: 700;
}

.filter-options {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.filter-chip {
    min-height: 36px;
    padding: 0 13px;
    color: var(--ink-soft);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: 14px;
}

.filter-chip:hover {
    color: var(--green);
    background: var(--green-light);
}

.filter-chip.is-active {
    color: #fff;
    background: var(--green);
    border-color: var(--green);
}

.mobile-filter-trigger {
    display: none;
}

.results-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 286px;
    align-items: start;
    gap: 24px;
}

.institution-list {
    display: grid;
    gap: 14px;
}

.institution-card {
    position: relative;
    display: grid;
    min-height: 240px;
    grid-template-columns: 280px minmax(0, 1fr) 165px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.institution-card:hover {
    border-color: var(--teal-accent);
    box-shadow: var(--shadow-hover);
    transform: translateY(-3px);
}

.photo-crop {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    background: #f3f4f6;
}

.photo-crop img {
    position: absolute;
    width: calc(200% + 16px);
    max-width: none;
    height: calc(200% + 16px);
    object-fit: cover;
}

.photo--a img {
    top: 0;
    left: 0;
}

.photo--b img {
    top: 0;
    left: calc(-100% - 16px);
}

.photo--c img {
    top: calc(-100% - 16px);
    left: 0;
}

.photo--d img {
    top: calc(-100% - 16px);
    left: calc(-100% - 16px);
}

.photo-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 1;
    padding: 5px 9px;
    color: #fff;
    background: rgba(47, 125, 104, 0.94);
    border-radius: 3px;
    font-size: 12px;
    font-weight: 700;
}

.institution-card__body {
    min-width: 0;
    padding: 20px 20px 16px;
}

.institution-card__heading {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.institution-card h3 {
    min-width: 0;
    flex: 1 1 auto;
    margin: 0;
    font-family: var(--font-display);
    font-size: 20px;
    line-height: 1.4;
}

.institution-card h3 a {
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.favorite-button {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    margin: -6px -6px 0 0;
}

.favorite-button.is-active {
    color: var(--coral);
    background: #fff1f2;
}

.institution-meta {
    display: flex;
    flex-wrap: wrap;
    margin: 10px 0 0;
    padding: 0;
    gap: 8px 16px;
    color: var(--muted);
    font-size: 13px;
    list-style: none;
}

.institution-meta li {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    margin: 12px 0 0;
    padding: 0;
    gap: 7px;
    list-style: none;
}

.tag-list li {
    padding: 3px 8px;
    color: var(--green-strong);
    background: var(--green-light);
    border-radius: 3px;
    font-size: 12px;
}

.institution-desc {
    display: -webkit-box;
    overflow: hidden;
    margin: 12px 0 0;
    color: var(--ink-soft);
    font-size: 13px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.institution-card__side {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    padding: 18px;
    background: #f8fafc;
    border-left: 1px solid var(--line);
    text-align: center;
}

.news-card {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    overflow: hidden;
    min-height: 190px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.news-card:hover {
    border-color: #cbd5e1;
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}

.news-card__media {
    position: relative;
    display: block;
    min-height: 190px;
    overflow: hidden;
    background: #f3f4f6;
}

.news-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 300ms ease;
}

.news-card:hover .news-card__media img {
    transform: scale(1.04);
}

.photo-badge--news {
    background: rgba(116, 120, 80, 0.94);
}

.news-card__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    padding: 22px 24px;
}

.news-card__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--muted);
    font-size: 12px;
}

.news-card__meta span {
    color: var(--olive);
    font-weight: 700;
}

.news-card h3 {
    margin: 11px 0 8px;
    font-family: var(--font-display);
    font-size: 21px;
    line-height: 1.35;
}

.news-card h3 a {
    color: var(--ink);
}

.news-card p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--ink-soft);
    font-size: 13px;
    line-height: 1.75;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.news-card .text-link {
    margin-top: auto;
    padding-top: 14px;
}

.pension-admin-rail {
    position: fixed;
    z-index: 990;
    top: auto;
    right: 22px;
    bottom: 28px;
    display: grid;
    width: 62px;
    padding: 8px;
    gap: 8px;
    transform: none;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.12);
    backdrop-filter: blur(12px);
}

.pension-admin-rail__button {
    position: relative;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    color: var(--green);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: color 160ms ease, background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.pension-admin-rail__button:hover,
.pension-admin-rail__button:focus-visible {
    color: #fff;
    background: var(--green);
    border-color: var(--green);
    box-shadow: 0 7px 16px rgba(47, 125, 104, 0.2);
    transform: translateY(-2px);
}

.pension-admin-rail__button .icon {
    width: 19px;
    height: 19px;
}

.pension-admin-rail__button > b {
    color: currentColor;
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .02em;
}

.pension-admin-rail__button span {
    position: absolute;
    right: calc(100% + 10px);
    padding: 6px 9px;
    color: #fff;
    background: #1f2937;
    border-radius: 7px;
    font-size: 12px;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    transform: translateX(5px);
    transition: opacity 160ms ease, transform 160ms ease;
    white-space: nowrap;
}

.pension-admin-rail__button:hover span,
.pension-admin-rail__button:focus-visible span {
    opacity: 1;
    transform: translateX(0);
}

.price {
    display: flex;
    min-width: 0;
    align-items: baseline;
    justify-content: center;
    flex-wrap: wrap;
    gap: 3px;
    color: var(--teal-accent);
    line-height: 1.2;
}

.price strong {
    min-width: 0;
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -0.02em;
    overflow-wrap: anywhere;
}

.price span {
    color: var(--muted);
    font-size: 12px;
    white-space: nowrap;
}

.price--range strong { font-size: 21px; }
.price--text strong { font-size: 18px; line-height: 1.35; }

.availability {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 9px 0 14px;
    color: var(--emerald-medical);
    font-size: 12px;
    font-weight: 600;
}

.availability::before {
    width: 8px;
    height: 8px;
    content: "";
    background: var(--emerald-medical);
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.15);
}

.card-actions {
    display: grid;
    gap: 8px;
}

.card-actions .button {
    min-height: 38px;
    padding: 0 10px;
    font-size: 13px;
}

.empty-state {
    min-height: 250px;
    padding: 44px 24px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    text-align: center;
}

.empty-state .icon {
    width: 42px;
    height: 42px;
    margin: 0 auto 14px;
    color: #94a3b8;
}

.empty-state h3 {
    margin: 0 0 7px;
    font-family: var(--font-display);
    font-size: 22px;
}

.empty-state p {
    margin: 0 0 18px;
    color: var(--muted);
}

.results-side {
    display: grid;
    gap: 24px;
}

.advisor-panel {
    position: relative;
    overflow: hidden;
    padding: 26px 24px;
    color: var(--ink);
    background: linear-gradient(135deg, #ffffff 0%, #f0f7ff 100%);
    border: 1px solid rgba(2, 132, 199, 0.2);
    box-shadow: var(--shadow);
    border-radius: var(--radius-lg);
}

.advisor-panel::before {
    position: absolute;
    top: -40px;
    right: -40px;
    width: 120px;
    height: 120px;
    content: "";
    background: radial-gradient(circle, rgba(2, 132, 199, 0.12) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.advisor-panel__icon {
    display: grid;
    width: 48px;
    height: 48px;
    margin-bottom: 18px;
    place-items: center;
    color: var(--teal-accent);
    background: #e0f2fe;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.15);
}

.advisor-panel h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
}

.advisor-panel p {
    margin: 10px 0 20px;
    color: var(--ink-soft);
    font-size: 13px;
    line-height: 1.6;
}

.advisor-panel .button {
    width: 100%;
    color: #fff;
    background: var(--green);
    border-color: var(--green);
    box-shadow: 0 6px 16px rgba(13, 92, 117, 0.25);
}

.advisor-panel .button:hover {
    color: #fff;
    background: var(--green-strong);
    transform: translateY(-1px);
}

.side-section {
    padding: 20px 22px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.side-section h3 {
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--surface-medical);
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
}

.city-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 14px 0;
    gap: 10px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.city-stats div {
    min-width: 0;
}

.city-stats span {
    display: block;
    color: var(--muted);
    font-size: 11px;
}

.city-stats strong {
    display: block;
    margin-top: 2px;
    font-family: var(--font-display);
    font-size: 20px;
}

.guide-links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.guide-links li {
    border-top: 1px solid var(--line);
}

.guide-links a {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 0;
    color: var(--ink-soft);
    font-size: 13px;
}

.guide-links a:hover {
    color: var(--green);
}

.guide-links .icon {
    width: 15px;
    margin-top: 3px;
}

.service-band {
    padding: 72px 0;
    background: #fff;
    border-top: 1px solid var(--line);
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 30px;
}

.section-heading__kicker {
    margin: 0 0 7px;
    color: var(--green);
    font-size: 13px;
    font-weight: 800;
}

.section-heading h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 32px;
    line-height: 1.25;
}

.section-heading > p {
    max-width: 420px;
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.service-item {
    min-height: 210px;
    padding: 28px 24px;
    border-right: 1px solid var(--line);
}

.service-item:last-child {
    border-right: 0;
}

.service-item__icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    color: var(--green);
    background: var(--green-light);
    border-radius: 4px;
}

.service-item h3 {
    margin: 17px 0 8px;
    font-family: var(--font-display);
    font-size: 19px;
}

.service-item p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.guide-band {
    position: relative;
    padding: 76px 0 88px;
    overflow: hidden;
    background: #f5f7f6;
}

.guide-band .section-heading > p {
    color: #626b66;
}

.guide-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.guide-article {
    position: relative;
    display: flex;
    min-height: 205px;
    flex-direction: column;
    padding: 24px 26px 22px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #dfe7e3;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .045);
    transition: border-color 220ms ease, box-shadow 260ms ease;
}

.guide-article::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 3px;
    content: "";
    background: #75a796;
}

.guide-article::after {
    position: absolute;
    right: 18px;
    bottom: 12px;
    color: rgba(47, 125, 104, .065);
    content: attr(data-index);
    font-family: Georgia, serif;
    font-size: 52px;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

.guide-article:hover {
    border-color: #c6d8d1;
    box-shadow: 0 13px 30px rgba(15, 23, 42, .07);
}

.guide-article:first-child {
    display: grid;
    grid-row: 1 / 3;
    grid-template-columns: minmax(0, 1fr) 42%;
    grid-template-rows: auto auto 1fr auto;
    column-gap: 28px;
    min-height: 424px;
    padding: 32px 34px 30px;
}

.guide-article:first-child::after {
    display: none;
}

.guide-article:first-child .guide-article__meta,
.guide-article:first-child h3,
.guide-article:first-child > p,
.guide-article:first-child > .text-link {
    grid-column: 1;
}

.guide-article:first-child > .text-link {
    align-self: end;
    justify-self: start;
    margin-top: 18px;
}

.guide-article__visual {
    display: none;
    margin: 0;
    overflow: hidden;
}

.guide-article:first-child .guide-article__visual {
    display: block;
    min-height: 424px;
    grid-column: 2;
    grid-row: 1 / 5;
    margin: -32px -34px -30px 0;
    border-left: 1px solid #e4ebe8;
}

.guide-article__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 600ms cubic-bezier(.2, .75, .25, 1);
}

.guide-article:first-child:hover .guide-article__visual img {
    transform: scale(1.025);
}

.guide-article__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--muted);
    font-size: 12px;
}

.guide-article__category {
    padding: 4px 9px;
    color: var(--green-strong);
    background: var(--green-light);
    border-radius: 14px;
    font-weight: 800;
}

.guide-article h3 {
    position: relative;
    z-index: 1;
    margin: 18px 0 9px;
    font-family: var(--font-display);
    font-size: 20px;
    line-height: 1.45;
}

.guide-article:first-child h3 {
    max-width: 640px;
    margin: 30px 0 15px;
    font-size: 28px;
    line-height: 1.48;
}

.guide-article p {
    position: relative;
    z-index: 1;
    margin: 0 0 12px;
    color: var(--ink-soft);
    font-size: 14px;
    line-height: 1.75;
}

.guide-article:first-child p {
    max-width: 620px;
    font-size: 14px;
}

.guide-article .text-link {
    position: relative;
    z-index: 1;
    align-self: flex-start;
    margin-top: auto;
    padding: 8px 0;
}

.guide-article .text-link .icon {
    transition: transform .18s ease;
}

.guide-article:hover .text-link .icon {
    transform: translateX(4px);
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--green);
    font-size: 13px;
    font-weight: 800;
}

.site-footer {
    padding: 48px 0 26px;
    color: var(--ink-soft);
    background: #f8fafc;
    border-top: 1px solid var(--line);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, 0.8fr);
    gap: 40px;
}

.footer-brand p {
    max-width: 390px;
    margin: 16px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.site-footer .brand {
    color: var(--ink);
}

.site-footer .brand__sub {
    color: var(--muted);
}

.footer-column h3 {
    margin: 5px 0 14px;
    color: var(--ink);
    font-size: 14px;
}

.footer-column a,
.footer-column span {
    display: block;
    margin: 8px 0;
    color: var(--muted);
    font-size: 13px;
}

.footer-column a:hover {
    color: var(--green);
}

.footer-column .button {
    display: inline-flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 14px 0 0;
    color: #fff;
    text-align: center;
}

.footer-column .button:hover {
    color: #fff;
}

.footer-column .button .icon {
    width: 17px;
    height: 17px;
}

.footer-column .button > span {
    display: inline;
    margin: 0;
    color: inherit;
    font-size: inherit;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 38px;
    padding-top: 22px;
    color: var(--muted);
    border-top: 1px solid var(--line);
    font-size: 12px;
}

.footer-bottom--compact {
    margin-top: 0;
}

dialog {
    width: min(720px, calc(100% - 32px));
    max-height: min(86vh, 820px);
    padding: 0;
    overflow: auto;
    color: var(--ink);
    background: #fff;
    border: 0;
    border-radius: var(--radius);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.28);
}

dialog::backdrop {
    background: rgba(15, 23, 42, 0.68);
}

.dialog-head {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    min-height: 64px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 20px;
    background: #fff;
    border-bottom: 1px solid var(--line);
}

.dialog-head h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 22px;
}

.dialog-body {
    padding: 24px;
}

.detail-cover {
    height: 270px;
    margin: -24px -24px 24px;
    background-image: url("../images/hero.webp");
    background-position: center;
    background-size: cover;
}

.detail-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin: 0 0 24px;
    padding: 0;
    border: 1px solid var(--line);
    list-style: none;
}

.detail-facts li {
    padding: 14px;
    border-right: 1px solid var(--line);
}

.detail-facts li:last-child {
    border-right: 0;
}

.detail-facts span {
    display: block;
    color: var(--muted);
    font-size: 11px;
}

.detail-facts strong {
    display: block;
    margin-top: 3px;
    font-size: 15px;
}

.detail-section {
    padding: 20px 0;
    border-top: 1px solid var(--line);
}

.detail-section h3 {
    margin: 0 0 8px;
    font-family: var(--font-display);
    font-size: 19px;
}

.detail-section p {
    margin: 0;
    color: var(--ink-soft);
    font-size: 14px;
}

.detail-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.form-field {
    display: grid;
    gap: 7px;
}

.form-field--full {
    grid-column: 1 / -1;
}

.form-field label,
.form-label {
    color: var(--ink-soft);
    font-size: 13px;
    font-weight: 700;
}

.form-field input,
.form-field select {
    width: 100%;
    height: 46px;
    padding: 0 12px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 4px;
}

.form-field input:focus,
.form-field select:focus {
    border-color: var(--line);
    outline: 0;
    box-shadow: none;
}

.radio-group {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.radio-option {
    position: relative;
}

.radio-option input {
    position: absolute;
    opacity: 0;
}

.radio-option span {
    display: grid;
    min-height: 44px;
    place-items: center;
    color: var(--ink-soft);
    border: 1px solid var(--line);
    border-radius: 4px;
    font-size: 13px;
}

.radio-option input:checked + span {
    color: var(--green);
    background: var(--green-light);
    border-color: var(--green);
    font-weight: 700;
}

.radio-option input:focus-visible + span {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(47, 125, 104, 0.14);
}

.consent {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    color: var(--muted);
    font-size: 12px;
}

.consent input {
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--green);
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
}

.success-state {
    padding: 34px 16px 42px;
    text-align: center;
}

.success-state__icon {
    display: grid;
    width: 62px;
    height: 62px;
    margin: 0 auto 18px;
    place-items: center;
    color: #fff;
    background: var(--green);
    border-radius: 50%;
}

.success-state__icon .icon {
    width: 30px;
    height: 30px;
}

.success-state h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 25px;
}

.success-state p {
    margin: 9px auto 20px;
    color: var(--muted);
}

.filter-drawer,
.drawer-backdrop {
    display: none;
}

@media (max-width: 1080px) {
    .site-header__inner {
        gap: 12px;
    }

    .site-nav {
        gap: 9px;
    }

    .site-nav a { padding: 0 2px; font-size: 14px; }

    .header-phone {
        display: none;
    }

    .institution-card {
        grid-template-columns: 225px minmax(0, 1fr) 145px;
    }

    .results-layout {
        grid-template-columns: minmax(0, 1fr) 254px;
    }
}

@media (max-width: 900px) {
    .container {
        width: min(calc(100% - 28px), var(--container));
    }

    .site-header__inner {
        min-height: 70px;
        grid-template-columns: auto 1fr;
    }

    .site-header .brand {
        width: auto;
        min-width: 0;
        max-width: min(250px, calc(100vw - 142px));
    }

    .site-nav {
        position: absolute;
        top: 70px;
        right: 0;
        left: 0;
        display: none;
        height: auto;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 8px 14px 14px;
        background: #fff;
        border-bottom: 1px solid var(--line);
        box-shadow: 0 16px 28px rgba(15, 23, 42, 0.1);
    }

    .site-nav.is-open {
        display: flex;
    }

    .site-nav a {
        min-height: 46px;
        padding: 0 12px;
        border-bottom: 1px solid var(--line);
    }

    .site-nav a:last-child {
        border-bottom: 0;
    }

    .site-nav a::after {
        top: auto;
        right: 12px;
        bottom: 0;
        left: 12px;
        width: auto;
        height: 3px;
        transform: scaleX(0);
    }

    .site-nav a:hover::after,
    .site-nav a.is-active::after {
        transform: scaleX(1);
    }

    .header-actions {
        justify-self: end;
    }

    .header-actions > .button {
        display: none;
    }

    .mobile-menu-button {
        display: inline-grid;
    }

    .hero,
    .hero__inner {
        min-height: 410px;
    }

    .hero h1 {
        font-size: 45px;
    }

    .filter-panel {
        display: none;
    }

    .directory-tool__head {
        flex-wrap: wrap;
    }

    .directory-tool__title {
        flex: 1 1 100%;
    }

    .mobile-filter-trigger {
        display: inline-flex;
    }

    .sort-control {
        margin-left: auto;
    }

    .results-layout {
        grid-template-columns: 1fr;
    }

    .results-side {
        grid-template-columns: 1fr 1fr;
    }

    .service-grid {
        grid-template-columns: 1fr 1fr;
    }

    .service-item:nth-child(2) {
        border-right: 0;
    }

    .service-item:nth-child(-n + 2) {
        border-bottom: 1px solid var(--line);
    }

    .guide-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }

    .guide-article:first-child {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .footer-grid {
        grid-template-columns: 1.4fr 1fr 1fr;
    }

    .footer-column:last-child {
        grid-column: 2 / -1;
    }

    .drawer-backdrop {
        position: fixed;
        inset: 0;
        z-index: 70;
        background: rgba(15, 23, 42, 0.62);
    }

    .drawer-backdrop.is-open {
        display: block;
    }

    .filter-drawer {
        position: fixed;
        z-index: 80;
        top: 0;
        right: 0;
        bottom: 0;
        display: flex;
        width: min(390px, 92vw);
        flex-direction: column;
        background: #fff;
        box-shadow: -18px 0 50px rgba(0, 0, 0, 0.2);
        transform: translateX(102%);
        transition: transform 200ms ease;
    }

    .filter-drawer.is-open {
        transform: translateX(0);
    }

    .filter-drawer__head {
        display: flex;
        min-height: 64px;
        align-items: center;
        justify-content: space-between;
        padding: 10px 16px;
        border-bottom: 1px solid var(--line);
    }

    .filter-drawer__head h2 {
        margin: 0;
        font-family: var(--font-display);
        font-size: 21px;
    }

    .filter-drawer__body {
        flex: 1;
        overflow: auto;
        padding: 14px 16px;
    }

    .filter-drawer .filter-row {
        grid-template-columns: 1fr;
    }

    .filter-drawer__foot {
        display: grid;
        grid-template-columns: 1fr 1.5fr;
        gap: 10px;
        padding: 14px 16px;
        border-top: 1px solid var(--line);
    }
}

@media (max-width: 720px) {
    .utility-bar__group:first-child .utility-bar__item:last-child,
    .utility-bar__group:last-child .utility-bar__item:first-child {
        display: none;
    }

    .brand__mark {
        width: 40px;
        height: 40px;
    }

    .brand__name {
        font-size: 21px;
    }

    .brand__sub {
        display: none;
    }

    .hero {
        background-position: 58% center;
    }

    .hero h1 {
        font-size: 38px;
    }

    .hero__copy {
        max-width: 520px;
        font-size: 15px;
    }

    .hero-search {
        grid-template-columns: 1fr;
        gap: 0;
        border-width: 3px;
    }

    .hero-search .button {
        border-radius: 0 0 2px 2px;
    }

    .hero__facts {
        gap: 16px;
    }

    .hero__facts li:last-child {
        display: none;
    }

    .directory {
        padding-top: 24px;
    }

    .directory-tool__head {
        padding: 14px;
    }

    .directory-tool__title {
        display: block;
    }

    .directory-tool__title h2 {
        font-size: 22px;
    }

    .result-count {
        margin-top: 2px;
    }

    .sort-control label {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
    }

    .institution-card {
        grid-template-columns: 1fr;
    }

    .news-card {
        grid-template-columns: 150px minmax(0, 1fr);
    }

    .news-card__media {
        min-height: 170px;
    }

    .news-card__body {
        padding: 18px;
    }

    .photo-crop {
        min-height: auto;
        aspect-ratio: 3 / 2;
    }

    .institution-card__body {
        padding: 18px 16px;
    }

    .institution-card__side {
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: center;
        padding: 14px 16px;
        gap: 8px 14px;
        border-top: 1px solid var(--line);
        border-left: 0;
        text-align: left;
    }

    .availability {
        justify-content: flex-start;
        margin: 4px 0;
    }

    .card-actions {
        grid-column: 1 / -1;
        grid-template-columns: 1fr 1fr;
    }

    .results-side {
        grid-template-columns: 1fr;
    }

    .section-heading {
        display: block;
    }

    .section-heading h2 {
        font-size: 28px;
    }

    .section-heading > p {
        margin-top: 10px;
    }

    .guide-grid {
        grid-template-columns: 1fr;
    }

    .guide-article,
    .guide-article:first-child {
        grid-column: auto;
        grid-row: auto;
        min-height: auto;
    }

    .guide-article:first-child {
        display: flex;
        padding: 0 22px 22px;
    }

    .guide-article:first-child .guide-article__visual {
        width: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
        order: -1;
        margin: 0 -22px 20px;
        border-bottom: 1px solid #e4ebe8;
        border-left: 0;
    }

    .guide-article:first-child::after {
        right: 18px;
        bottom: 12px;
        left: auto;
        font-size: 52px;
    }

    .guide-article:first-child h3 {
        margin-top: 18px;
        font-size: 23px;
    }

    .guide-article:first-child > .text-link {
        align-self: flex-start;
        margin-top: 4px;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .footer-brand,
    .footer-column:last-child {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        display: block;
    }

    .footer-bottom span {
        display: block;
        margin-top: 5px;
    }

    .detail-facts {
        grid-template-columns: 1fr 1fr;
    }

    .detail-facts li:nth-child(2) {
        border-right: 0;
    }

    .detail-facts li:nth-child(-n + 2) {
        border-bottom: 1px solid var(--line);
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-field--full {
        grid-column: auto;
    }
}

@media (max-width: 480px) {
    .container {
        width: min(calc(100% - 22px), var(--container));
    }

    .utility-bar__inner {
        gap: 8px;
    }

    .utility-bar__group {
        gap: 8px;
    }

    .hero,
    .hero__inner {
        min-height: 430px;
    }

    .hero__inner {
        padding-top: 22px;
        padding-bottom: 28px;
    }

    .hero h1 {
        font-size: 34px;
    }

    .hero__facts strong {
        font-size: 21px;
    }

    .mobile-filter-trigger {
        flex: 1;
    }

    .sort-control {
        flex: 1;
    }

    .sort-control select {
        width: 100%;
        min-width: 0;
    }

    .service-grid {
        grid-template-columns: 1fr;
    }

    .service-item,
    .service-item:nth-child(2) {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .service-item:last-child {
        border-bottom: 0;
    }

    .radio-group {
        grid-template-columns: 1fr;
    }

    .detail-actions,
    .form-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* 可配置多级主导航：桌面端悬浮展开，窄屏端使用折叠层级。 */
.site-nav__list,
.site-nav__submenu {
    padding: 0;
    margin: 0;
    list-style: none;
}

.site-nav__quick-tools {
    display: none;
}

.site-nav__list {
    display: flex;
    min-width: 0;
    height: 100%;
    align-items: stretch;
    justify-content: center;
    gap: clamp(6px, 1vw, 18px);
}

.site-nav__item {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: stretch;
}

.site-nav__item > a {
    gap: 6px;
}

.site-nav__icon {
    display: inline-grid;
    width: 18px;
    height: 18px;
    place-items: center;
    flex: 0 0 18px;
}

.site-nav__icon .icon,
.site-nav__icon img {
    display: block;
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.site-nav__toggle {
    display: grid;
    width: 26px;
    min-width: 26px;
    padding: 0;
    place-items: center;
    color: #64748b;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.site-nav__toggle .icon {
    width: 15px;
    height: 15px;
    transition: transform 180ms ease;
}

.site-nav__item.is-open > .site-nav__toggle .icon,
.site-nav__item:hover > .site-nav__toggle .icon,
.site-nav__item:focus-within > .site-nav__toggle .icon {
    transform: rotate(180deg);
}

.site-nav__submenu-wrap {
    position: absolute;
    z-index: 70;
    top: calc(100% - 8px);
    left: 50%;
    width: max-content;
    min-width: 218px;
    max-width: min(286px, calc(100vw - 28px));
    padding-top: 10px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -7px);
    transition: opacity 160ms ease, transform 180ms ease, visibility 0s linear 180ms;
}

.site-nav__submenu {
    min-width: 218px;
    padding: 7px;
    background: rgba(255, 255, 255, .99);
    border: 1px solid rgba(215, 226, 220, .96);
    border-radius: 14px;
    box-shadow: 0 18px 44px rgba(31, 45, 39, .14);
}

.site-nav__submenu .site-nav__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px;
    align-items: center;
}

.site-nav__submenu .site-nav__item > a {
    min-height: 42px;
    padding: 8px 10px;
    color: #405149;
    border-radius: 9px;
    line-height: 1.35;
    white-space: normal;
}

.site-nav__submenu .site-nav__item > a::after {
    display: none;
}

.site-nav__submenu .site-nav__item > a:hover,
.site-nav__submenu .site-nav__item > a.is-active,
.site-nav__submenu .site-nav__item.is-branch-active > a {
    color: var(--green-strong);
    background: #f0f7f3;
}

.site-nav__submenu .site-nav__toggle {
    width: 34px;
    min-width: 34px;
    height: 38px;
    border-radius: 9px;
}

.site-nav__submenu .site-nav__toggle:hover {
    color: var(--green-strong);
    background: #edf6f1;
}

.site-nav__submenu .site-nav__submenu-wrap {
    top: -7px;
    left: calc(100% + 7px);
    padding: 0 0 0 8px;
    transform: translate(-7px, 0);
}

.site-nav__list > .site-nav__item:nth-last-child(-n + 2) > .site-nav__submenu-wrap {
    right: 0;
    left: auto;
    transform: translate(0, -7px);
}

.site-nav__list > .site-nav__item:nth-last-child(-n + 2) .site-nav__submenu .site-nav__submenu-wrap {
    right: calc(100% + 7px);
    left: auto;
    padding: 0 8px 0 0;
    transform: translate(7px, 0);
}

.site-nav__item.is-open > .site-nav__submenu-wrap,
.site-nav__item:hover > .site-nav__submenu-wrap,
.site-nav__item:focus-within > .site-nav__submenu-wrap {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
    transition-delay: 0s;
}

.site-nav__list > .site-nav__item:nth-last-child(-n + 2).is-open > .site-nav__submenu-wrap,
.site-nav__list > .site-nav__item:nth-last-child(-n + 2):hover > .site-nav__submenu-wrap,
.site-nav__list > .site-nav__item:nth-last-child(-n + 2):focus-within > .site-nav__submenu-wrap,
.site-nav__submenu .site-nav__item.is-open > .site-nav__submenu-wrap,
.site-nav__submenu .site-nav__item:hover > .site-nav__submenu-wrap,
.site-nav__submenu .site-nav__item:focus-within > .site-nav__submenu-wrap {
    transform: translate(0, 0);
}

.site-nav__list > .site-nav__item.is-branch-active > a {
    color: var(--green);
    font-weight: 800;
}

.site-nav__list > .site-nav__item.is-branch-active > a::after {
    transform: scaleX(1);
}

.site-nav a:focus-visible,
.site-nav__toggle:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(42, 122, 82, .18);
}

/*
 * 英文菜单的单词长度明显大于中文。桌面端改为紧凑的双层页头，
 * 让品牌、操作区与完整导航各自拥有稳定空间，避免菜单项被 flex
 * 压缩后文字相互覆盖；1100px 以下继续沿用现有折叠菜单。
 */
@media (min-width: 1101px) {
    html[lang="en-US"] .site-header__inner {
        min-height: 122px;
        grid-template-areas:
            "brand actions"
            "navigation navigation";
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: 72px 50px;
        column-gap: 20px;
        row-gap: 0;
    }

    html[lang="en-US"] .site-header .brand {
        width: max-content;
        max-width: min(330px, 100%);
        grid-area: brand;
    }

    html[lang="en-US"] .site-nav {
        width: 100%;
        height: 50px;
        grid-area: navigation;
        border-top: 1px solid #edf1ef;
    }

    html[lang="en-US"] .site-nav__list {
        width: 100%;
        justify-content: center;
        gap: clamp(12px, 2vw, 28px);
    }

    html[lang="en-US"] .site-nav__list > .site-nav__item {
        flex: 0 0 auto;
    }

    html[lang="en-US"] .header-actions {
        grid-area: actions;
        justify-self: end;
    }
}

@media (max-width: 1100px) {
    .site-header__inner {
        min-height: 70px;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
    }

    .site-header .brand {
        width: auto;
        min-width: 0;
        max-width: min(330px, calc(100vw - 178px));
    }

    .header-phone {
        display: none;
    }

    .mobile-menu-button {
        display: inline-grid;
    }

    .site-nav {
        position: absolute;
        z-index: 65;
        top: 70px;
        right: 0;
        left: 0;
        display: none;
        overflow-x: hidden;
        overflow-y: auto;
        width: 100%;
        height: auto;
        max-height: calc(100vh - 70px);
        max-height: calc(100dvh - 70px);
        padding: 8px 14px 16px;
        background: rgba(255, 255, 255, .99);
        border-bottom: 1px solid var(--line);
        box-shadow: 0 18px 34px rgba(15, 23, 42, .12);
        overscroll-behavior: contain;
    }

    .site-nav.is-open {
        display: block;
    }

    .site-nav__list {
        display: flex;
        width: min(100%, var(--container));
        height: auto;
        margin: 0 auto;
        flex-direction: column;
        align-items: stretch;
        gap: 2px;
    }

    .site-nav__item,
    .site-nav__submenu .site-nav__item {
        display: grid;
        width: 100%;
        grid-template-columns: minmax(0, 1fr) 44px;
        align-items: center;
    }

    .site-nav__item > a,
    .site-nav__submenu .site-nav__item > a {
        min-height: 46px;
        padding: 8px 12px;
        color: #374151;
        background: transparent;
        border: 0;
        border-radius: 10px;
        font-size: 14px;
        white-space: normal;
    }

    .site-nav__item > a::after,
    .site-nav__submenu .site-nav__item > a::after {
        top: auto;
        right: 12px;
        bottom: 2px;
        left: 12px;
        display: block;
        width: auto;
        height: 2px;
    }

    .site-nav__submenu .site-nav__item > a:hover,
    .site-nav__submenu .site-nav__item > a.is-active,
    .site-nav__submenu .site-nav__item.is-branch-active > a {
        background: transparent;
    }

    .site-nav__toggle,
    .site-nav__submenu .site-nav__toggle {
        width: 40px;
        min-width: 40px;
        height: 40px;
        margin-right: 2px;
        color: #52635a;
        background: #f3f7f5;
        border-radius: 10px;
    }

    .site-nav__submenu-wrap,
    .site-nav__submenu .site-nav__submenu-wrap,
    .site-nav__list > .site-nav__item:nth-last-child(-n + 2) > .site-nav__submenu-wrap,
    .site-nav__list > .site-nav__item:nth-last-child(-n + 2) .site-nav__submenu .site-nav__submenu-wrap {
        position: static;
        display: grid;
        overflow: hidden;
        width: auto;
        min-width: 0;
        max-width: none;
        padding: 0;
        grid-column: 1 / -1;
        grid-template-rows: 0fr;
        opacity: 1;
        visibility: visible;
        pointer-events: none;
        transform: none;
        transition: grid-template-rows 220ms ease;
    }

    .site-nav__item:hover > .site-nav__submenu-wrap,
    .site-nav__item:focus-within > .site-nav__submenu-wrap {
        grid-template-rows: 0fr;
        pointer-events: none;
        transform: none;
    }

    .site-nav__item.is-open > .site-nav__submenu-wrap,
    .site-nav__item.is-open:hover > .site-nav__submenu-wrap,
    .site-nav__item.is-open:focus-within > .site-nav__submenu-wrap {
        grid-template-rows: 1fr;
        pointer-events: auto;
        transform: none;
    }

    .site-nav__submenu {
        overflow: hidden;
        min-width: 0;
        min-height: 0;
        padding: 0 0 0 16px;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .site-nav__submenu .site-nav__submenu {
        padding-left: 14px;
    }
}

@media (max-width: 900px) {
    .header-actions > .button {
        display: none;
    }
}

@media (max-width: 520px) {
    .site-header .brand {
        max-width: min(250px, calc(100vw - 132px));
    }

    .site-nav {
        padding-right: 8px;
        padding-left: 8px;
    }

    .site-nav__submenu {
        padding-left: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-nav__submenu-wrap,
    .site-nav__toggle .icon {
        transition-duration: .01ms !important;
    }
}

/* 业务地区库查询：独立页与首页共用省、市、区县三级联动数据。 */
.directory-region-filter {
    display: grid;
    grid-template-columns: repeat(3, minmax(130px, .75fr)) minmax(210px, 1.2fr) auto auto;
    align-items: end;
    gap: 9px;
    margin: 16px 0 2px;
    padding: 14px;
    background: #f7f9f8;
    border: 1px solid #e5ebe8;
    border-radius: 8px;
}

.directory-region-filter label {
    display: grid;
    min-width: 0;
    gap: 5px;
}

.directory-region-filter label > span {
    color: #66746f;
    font-size: 11px;
    font-weight: 700;
}

.directory-region-filter input,
.directory-region-filter select,
.directory-region-filter .custom-select__trigger {
    width: 100%;
    height: 40px;
    min-width: 0;
    padding: 0 12px;
    color: var(--ink);
    background: #fff;
    border: 1px solid #dce4e0;
    border-radius: 6px;
    outline: 0 !important;
    box-shadow: none !important;
}

.directory-region-filter .custom-select { width: 100%; }
.directory-region-filter .custom-select__list { z-index: 20; }
.directory-region-filter .custom-select--viewport-popup .custom-select__list { z-index: 240; }
.directory-region-filter .button { min-height: 40px; padding-right: 17px; padding-left: 17px; white-space: nowrap; }
.directory-region-filter > a {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    color: var(--green);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
.directory-region-filter > a:hover { color: var(--green-strong); }

.directory-region-filter__empty {
    display: flex;
    min-width: 0;
    grid-column: 1 / -1;
    align-items: center;
    gap: 8px;
    margin: 2px 0 0;
    padding: 9px 11px;
    color: #6c5541;
    background: #fffaf2;
    border: 1px solid #eedfca;
    border-radius: 6px;
    font-size: 12px;
    line-height: 1.55;
}

.directory-region-filter__empty .icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: #a16e36;
}

@media (max-width: 920px) {
    .directory-region-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .directory-region-filter__keyword { grid-column: 1 / -1; }
    .directory-region-filter .button { width: 100%; }
}

@media (max-width: 560px) {
    .directory-region-filter { grid-template-columns: 1fr; margin-top: 12px; padding: 10px; }
    .directory-region-filter__keyword { grid-column: auto; }
    .directory-region-filter > a { justify-content: center; }
}

/* Shared multi-page layouts */
.visual-service-grid {
    display: grid;
    height: clamp(420px, 35vw, 470px);
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 12px;
    contain: layout style;
    transition: grid-template-columns 480ms cubic-bezier(.22, .72, .18, 1);
}

.visual-service {
    position: relative;
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e8ecea;
    border-radius: 13px;
    box-shadow: 0 10px 28px rgba(31, 41, 55, 0.09);
    transition: border-color 260ms ease, box-shadow 320ms ease, transform 320ms cubic-bezier(.2, .75, .25, 1);
}

.visual-service:hover,
.visual-service:focus-within,
.visual-service.is-active {
    border-color: #d9e4df;
    box-shadow: 0 18px 42px rgba(31, 41, 55, 0.14);
    transform: translateY(-2px);
}

.visual-service__media {
    position: relative;
    display: block;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
    color: var(--ink);
    background: #e9efec;
}

.visual-service__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
    transition: transform 600ms cubic-bezier(.2, .75, .25, 1), filter 300ms ease;
}

.visual-service__media:hover .visual-service__image,
.visual-service__media:focus-visible .visual-service__image {
    transform: scale(1.035);
}

.visual-service__body {
    display: grid;
    min-height: 82px;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 15px 17px;
    color: var(--ink);
    background: #fff;
    border-top: 1px solid #eeeae3;
}

.visual-service__icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    color: var(--green-strong);
    background: #eef6f3;
    border-radius: 12px;
}

.visual-service__icon .icon {
    width: 20px;
    height: 20px;
}

.visual-service h3 {
    min-width: 0;
    margin: 0;
    font-family: var(--font-display);
    font-size: 20px;
    line-height: 1.25;
}

.visual-service h3 a {
    display: block;
    overflow: hidden;
    color: var(--ink);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.visual-service__overlay {
    position: absolute;
    z-index: 2;
    right: 16px;
    bottom: 16px;
    left: 16px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    color: var(--ink);
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity 140ms ease, transform 190ms cubic-bezier(.2, .75, .25, 1);
}

.visual-service.is-active .visual-service__media:hover .visual-service__overlay,
.visual-service.is-active .visual-service__media:focus-visible .visual-service__overlay,
.visual-service-grid:not(.is-interacting) .visual-service__media:hover .visual-service__overlay,
.visual-service-grid:not(.is-interacting) .visual-service__media:focus-visible .visual-service__overlay {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 150ms, 130ms;
}

.visual-service-grid.is-leaving .visual-service__overlay,
.visual-service-grid.is-switching .visual-service__overlay {
    opacity: 0 !important;
    transform: translateY(8px) !important;
    transition-delay: 0ms !important;
}

.visual-service__description {
    display: -webkit-box;
    height: calc(3.1em + 22px);
    min-width: 0;
    flex: 1 1 auto;
    padding: 11px 13px;
    overflow: hidden;
    color: var(--ink-soft);
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, .88);
    border-radius: 10px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .15);
    font-size: 14px;
    line-height: 1.55;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    backdrop-filter: blur(10px);
}

.visual-service__link {
    display: inline-flex;
    min-height: 42px;
    flex: 0 0 auto;
    align-items: center;
    gap: 7px;
    padding: 0 13px;
    color: var(--green-strong);
    background: rgba(255, 255, 255, .96);
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 999px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .14);
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
    backdrop-filter: blur(10px);
}

.visual-service__link .icon {
    width: 15px;
    height: 15px;
    transition: transform 180ms ease;
}

.visual-service__media:hover .visual-service__link .icon,
.visual-service__media:focus-visible .visual-service__link .icon {
    transform: translateX(3px);
}

@media (min-width: 901px) {
    .visual-service-grid.is-active-0 { grid-template-columns: 2.45fr 1fr 1fr 1fr; }
    .visual-service-grid.is-active-1 { grid-template-columns: 1fr 2.45fr 1fr 1fr; }
    .visual-service-grid.is-active-2 { grid-template-columns: 1fr 1fr 2.45fr 1fr; }
    .visual-service-grid.is-active-3 { grid-template-columns: 1fr 1fr 1fr 2.45fr; }
}

@media (max-width: 900px) {
    .visual-service__description {
        display: -webkit-box;
        height: calc(3.1em + 22px);
        text-overflow: clip;
        white-space: normal;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
}

.page-hero {
    position: relative;
    min-height: 330px;
    overflow: hidden;
    color: #fff;
    background-color: #1f3f39;
    background-position: center;
    background-size: cover;
}

.page-hero::before {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(20, 47, 43, 0.76), rgba(25, 55, 50, 0.36));
}

.page-hero--institutions {
    background-image: url("../images/hero.webp");
    background-position: center 47%;
}

.page-hero--services {
    background-image: url("../images/care-services.webp");
    background-position: right top;
    background-repeat: no-repeat;
    background-size: calc(200% + 18px) calc(200% + 18px);
}

.page-hero--homecare {
    background-image: url("../images/channel-scenes.webp");
    background-position: left bottom;
    background-repeat: no-repeat;
    background-size: calc(200% + 18px) calc(200% + 18px);
}

.page-hero--travel {
    background-image: url("../images/channel-scenes.webp");
    background-position: left top;
    background-repeat: no-repeat;
    background-size: calc(200% + 18px) calc(200% + 18px);
}

.page-hero--guide {
    background-image: url("../images/channel-scenes.webp");
    background-position: right bottom;
    background-repeat: no-repeat;
    background-size: calc(200% + 18px) calc(200% + 18px);
}

.page-hero__inner {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 330px;
    flex-direction: column;
    justify-content: center;
    padding-top: 34px;
    padding-bottom: 40px;
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin: 0 0 14px;
    color: #dcefe8;
    font-size: 13px;
}

.breadcrumb a:hover {
    color: #fff;
}

.page-hero h1 {
    max-width: 760px;
    margin: 0;
    font-family: var(--font-display);
    font-size: 46px;
    line-height: 1.2;
}

.page-hero p:not(.breadcrumb) {
    max-width: 680px;
    margin: 13px 0 0;
    color: #f4faf7;
}

.channel-section {
    padding: 70px 0;
    background: #fff;
}

.channel-section--soft {
    background: #f7f8fa;
}

.channel-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
    align-items: center;
    gap: 54px;
}

.channel-layout--reverse {
    grid-template-columns: minmax(300px, 0.75fr) minmax(0, 1.25fr);
}

.channel-copy__kicker {
    margin: 0 0 8px;
    color: var(--green);
    font-size: 13px;
    font-weight: 800;
}

.channel-copy h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 33px;
    line-height: 1.35;
}

.channel-copy > p {
    margin: 14px 0 0;
    color: var(--ink-soft);
}

.feature-list {
    display: grid;
    margin: 22px 0 0;
    padding: 0;
    gap: 12px;
    list-style: none;
}

.feature-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--ink-soft);
}

.feature-list .icon {
    margin-top: 4px;
    color: var(--green);
}

.scene-crop {
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: #f3f4f6;
    border-radius: var(--radius);
}

.scene-crop img {
    position: absolute;
    width: calc(200% + 16px);
    max-width: none;
    height: calc(200% + 16px);
    object-fit: cover;
}

.scene--a img {
    top: 0;
    left: 0;
}

.scene--b img {
    top: 0;
    left: calc(-100% - 16px);
}

.scene--c img {
    top: calc(-100% - 16px);
    left: 0;
}

.scene--d img {
    top: calc(-100% - 16px);
    left: calc(-100% - 16px);
}

.metric-strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.metric-strip__item {
    padding: 25px 22px;
    border-right: 1px solid var(--line);
}

.metric-strip__item:last-child {
    border-right: 0;
}

.metric-strip strong {
    display: block;
    color: var(--green);
    font-family: var(--font-display);
    font-size: 28px;
}

.metric-strip span {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.channel-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.channel-card {
    min-width: 0;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.channel-card__image {
    aspect-ratio: 3 / 2;
    border-radius: 5px 5px 0 0;
}

.channel-card__body {
    padding: 20px;
}

.channel-card__body h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 20px;
}

.channel-card__body p {
    margin: 9px 0 17px;
    color: var(--muted);
    font-size: 13px;
}

.article-list {
    border-top: 1px solid var(--line);
}

.article-row {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    padding: 24px 0;
    border-bottom: 1px solid var(--line);
}

.article-row time {
    color: var(--muted);
    font-size: 13px;
}

.article-row h2 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 21px;
}

.article-row p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 13px;
}

.detail-page {
    padding: 34px 0 78px;
    background: #f7f8fa;
}

.detail-heading {
    margin-bottom: 22px;
}

.detail-heading h1 {
    margin: 7px 0 5px;
    font-family: var(--font-display);
    font-size: 34px;
    line-height: 1.35;
}

.detail-heading p {
    margin: 0;
    color: var(--muted);
}

.detail-heading .breadcrumb,
.consult-page > .container > .breadcrumb {
    color: var(--muted);
}

.detail-heading .breadcrumb a:hover,
.consult-page > .container > .breadcrumb a:hover {
    color: var(--green);
}

.detail-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.6fr);
    background: #fff;
    border: 1px solid var(--line);
}

.detail-gallery {
    min-height: 420px;
    border-radius: 0;
}

.detail-summary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 30px;
    border-left: 1px solid var(--line);
}

.detail-summary__price {
    color: var(--coral);
    font-family: var(--font-display);
    font-size: 34px;
}

.detail-summary__price small {
    color: var(--muted);
    font-family: var(--font-body);
    font-size: 13px;
}

.detail-summary .button {
    width: 100%;
    margin-top: 16px;
}

.detail-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 286px;
    align-items: start;
    gap: 24px;
    margin-top: 24px;
}

.detail-content,
.detail-aside {
    background: #fff;
    border: 1px solid var(--line);
}

.detail-content {
    padding: 30px;
}

.detail-section-block {
    padding: 26px 0;
    border-top: 1px solid var(--line);
}

.detail-section-block:first-child {
    padding-top: 0;
    border-top: 0;
}

.detail-section-block h2 {
    margin: 0 0 12px;
    font-family: var(--font-display);
    font-size: 24px;
}

.detail-section-block p {
    margin: 0;
    color: var(--ink-soft);
}

.detail-aside {
    padding: 22px;
}

.detail-aside h2 {
    margin: 0 0 14px;
    font-family: var(--font-display);
    font-size: 20px;
}

.detail-aside dl {
    margin: 0;
}

.detail-aside dl > div {
    display: grid;
    grid-template-columns: 82px 1fr;
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid var(--line);
    font-size: 13px;
}

.detail-aside dt {
    color: var(--muted);
}

.detail-aside dd {
    margin: 0;
    color: var(--ink);
}

.pension-article-page .detail-heading,
.news-detail-page .detail-heading {
    max-width: 860px;
    margin-bottom: 28px;
}

.pension-article-page .detail-heading h1,
.news-detail-page .detail-heading h1 {
    margin-top: 12px;
    font-size: clamp(34px, 4vw, 48px);
    letter-spacing: -0.02em;
}

.pension-article-page .detail-heading > p:last-child,
.news-detail-page .detail-heading > p:last-child {
    max-width: 720px;
    margin-top: 9px;
    font-size: 16px;
}

.pension-article-badge {
    position: static;
    display: inline-flex;
    align-items: center;
    margin-top: 2px;
    padding: 5px 10px;
    border-radius: 4px;
    letter-spacing: 0.04em;
}

.detail-content.pension-article-content {
    overflow: hidden;
    padding: 0;
    border-top: 4px solid var(--green);
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.08);
}

.pension-article-cover {
    position: relative;
    min-height: 310px;
    overflow: hidden;
    aspect-ratio: 16 / 6.4;
    background: #f3f4f6;
    border-bottom: 1px solid var(--line);
}

.pension-article-cover::after {
    position: absolute;
    inset: auto 0 0;
    height: 34%;
    content: "";
    background: linear-gradient(to top, rgba(15, 23, 42, 0.22), transparent);
    pointer-events: none;
}

.pension-article-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pension-article-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 26px;
    padding: 17px 34px;
    color: var(--ink-soft);
    background: #f8fafc;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
}

.pension-article-meta span,
.pension-article-meta time {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.pension-article-meta .icon {
    width: 17px;
    height: 17px;
    color: var(--green);
}

.pension-article-content > .markdown {
    padding: 34px 34px 40px;
    color: #374151;
    font-size: 16px;
    line-height: 1.9;
    overflow-wrap: anywhere;
}

.pension-article-content > .markdown > :first-child {
    margin-top: 0;
}

.pension-article-content > .markdown > :last-child {
    margin-bottom: 0;
}

.pension-article-content > .markdown h2,
.pension-article-content > .markdown h3,
.pension-article-content > .markdown h4 {
    margin: 1.8em 0 0.65em;
    color: var(--ink);
    font-family: var(--font-display);
    line-height: 1.4;
}

.pension-article-content > .markdown h2 {
    padding-left: 14px;
    border-left: 4px solid var(--green);
    font-size: 26px;
}

.pension-article-content > .markdown h3 {
    font-size: 21px;
}

.pension-article-content > .markdown p,
.pension-article-content > .markdown ul,
.pension-article-content > .markdown ol,
.pension-article-content > .markdown blockquote {
    margin: 0 0 1.2em;
}

.pension-article-content > .markdown ul,
.pension-article-content > .markdown ol {
    padding-left: 1.4em;
}

.pension-article-content > .markdown li + li {
    margin-top: 0.42em;
}

.pension-article-content > .markdown a {
    color: var(--green);
    text-decoration: underline;
    text-decoration-color: rgba(47, 125, 104, 0.35);
    text-underline-offset: 3px;
}

.pension-article-content > .markdown img {
    height: auto;
    margin: 26px auto;
    border-radius: 6px;
}

.pension-article-content > .markdown blockquote {
    padding: 18px 20px;
    color: var(--ink-soft);
    background: var(--green-light);
    border-left: 4px solid var(--green);
}

.pension-article-content > .markdown pre {
    overflow-x: auto;
    padding: 18px;
    color: #f8fafc;
    background: #1f2937;
    border-radius: 6px;
}

.pension-article-content > .markdown table {
    width: 100%;
    margin: 24px 0;
    border-collapse: collapse;
}

.pension-article-content > .markdown th,
.pension-article-content > .markdown td {
    padding: 11px 13px;
    border: 1px solid var(--line);
    text-align: left;
}

.pension-article-content > .markdown th {
    background: var(--surface-soft);
}

.pension-article-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 34px;
    padding: 25px 0 30px;
    border-top: 1px solid var(--line);
}

.pension-article-content + .detail-aside,
.pension-article-page .detail-aside,
.news-detail-page .detail-aside {
    position: sticky;
    top: 24px;
    padding: 26px;
    border-top: 4px solid var(--green);
    box-shadow: 0 14px 38px rgba(15, 23, 42, 0.07);
}

.detail-aside__eyebrow {
    display: block;
    margin-bottom: 5px;
    color: var(--green);
    font-family: Georgia, serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.detail-aside__consult {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: 20px;
    padding: 14px;
    color: #f8fafc;
    background: #1f2937;
    border-radius: 5px;
}

.detail-aside__consult:hover {
    color: #fff;
    background: var(--green-strong);
}

.detail-aside__consult .icon {
    width: 21px;
    height: 21px;
}

.detail-aside__consult span {
    display: grid;
    font-size: 11px;
    line-height: 1.5;
}

.detail-aside__consult strong {
    color: #fff;
    font-size: 13px;
}

.pension-comments {
    margin: 0 34px;
    padding: 30px 0;
    border-top: 1px solid var(--line);
}

.pension-comments__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}

.pension-comments__header span {
    display: block;
    margin-bottom: 2px;
    color: var(--green);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.pension-comments__header h2 {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: 23px;
}

.pension-comments__header > strong,
.pension-comments__header > .icon {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    color: var(--green);
    background: var(--green-light);
    border-radius: 50%;
    font-size: 13px;
}

.pension-comments__header > .icon {
    padding: 10px;
}

.commentform {
    display: grid;
    gap: 15px;
}

.commentform label,
.captcha-container {
    display: grid;
    gap: 7px;
}

.commentform label > span,
.captcha-container > span {
    color: var(--ink-soft);
    font-size: 12px;
    font-weight: 700;
}

.comment-content-field > span {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.comment-content-field small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 400;
}

.commentform textarea,
.commentform input[type="text"],
.commentform input[type="email"],
.captcha-container input[name="imgcode"] {
    width: 100%;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 5px;
    outline: 0;
    transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.commentform textarea {
    min-height: 150px;
    padding: 14px 15px;
    resize: vertical;
    line-height: 1.75;
}

.commentform input[type="text"],
.commentform input[type="email"],
.captcha-container input[name="imgcode"] {
    height: 44px;
    padding: 0 12px;
}

.commentform textarea:focus,
.commentform input[type="text"]:focus,
.commentform input[type="email"]:focus,
.captcha-container input[name="imgcode"]:focus {
    background: #fff;
    border-color: var(--line);
    box-shadow: 0 0 0 3px rgba(47, 125, 104, 0.12);
}

.comment-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.captcha-container {
    grid-column: 1 / -1;
}

.captcha-container img {
    width: auto;
    height: 36px;
    border: 1px solid var(--line);
    border-radius: 4px;
}

.comment-replying,
.comment-login-notice {
    margin: 0;
    padding: 11px 13px;
    color: var(--ink-soft);
    background: var(--green-light);
    border-left: 3px solid var(--green);
    font-size: 13px;
}

.comment-replying strong,
.comment-login-notice a {
    color: var(--green-strong);
}

.com_submit_p {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.com_submit_p button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    color: #fff;
    background: var(--green);
    border: 1px solid var(--green);
    border-radius: 5px;
    font-weight: 700;
}

.com_submit_p button:hover {
    background: var(--green-strong);
    border-color: var(--green-strong);
}

.com_submit_p .cancel-reply {
    color: var(--ink-soft);
    background: #fff;
    border-color: #d1d5db;
}

.comment-list {
    display: grid;
    gap: 13px;
}

.comment {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    min-width: 0;
}

.comment-depth-1 { margin-left: 34px; }
.comment-depth-2 { margin-left: 68px; }
.comment-depth-3,
.comment-depth-4 { margin-left: 102px; }

.comment .avatar img {
    width: 44px;
    height: 44px;
    object-fit: cover;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--line);
}

.comment .comment-infos {
    min-width: 0;
    padding: 14px 16px;
    background: #f8fafc;
    border: 1px solid var(--line);
    border-radius: 6px;
}

.comment-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 12px;
}

.comment-meta strong {
    color: var(--ink);
    font-size: 13px;
}

.comment-meta time {
    color: var(--muted);
    font-size: 11px;
}

.comment-content {
    margin-top: 7px;
    color: var(--ink-soft);
    font-size: 14px;
    line-height: 1.75;
    overflow-wrap: anywhere;
}

.comment-content p {
    margin: 0.55em 0;
}

.comment-reply {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}

.comment .com-reply {
    padding: 4px 10px;
    color: var(--green);
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
}

.comment .com-reply:hover {
    color: #fff;
    background: var(--green);
    border-color: var(--green);
}

.comment-empty {
    display: flex;
    min-height: 110px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--muted);
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 6px;
}

.comment-empty p {
    margin: 0;
    font-size: 13px;
}

.comment-pagination {
    margin-top: 20px;
}

.pension-pagination,
.comment-pagination,
#pagenavi {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 28px;
}

.pension-pagination a,
.pension-pagination span,
.comment-pagination a,
.comment-pagination span,
#pagenavi a,
#pagenavi span {
    display: inline-flex;
    min-width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    color: var(--ink-soft);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 5px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    transition: color 160ms ease, background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.pension-pagination span,
.comment-pagination span,
#pagenavi span {
    color: #fff;
    background: var(--green);
    border-color: var(--green);
    box-shadow: 0 7px 18px rgba(47, 125, 104, 0.18);
}

.pension-pagination a:hover,
.comment-pagination a:hover,
#pagenavi a:hover {
    color: var(--green-strong);
    background: var(--green-light);
    border-color: var(--green);
    transform: translateY(-2px);
}

.pension-pagination em,
.comment-pagination em,
#pagenavi em {
    color: var(--muted);
    font-style: normal;
}

.consult-page {
    padding: 54px 0 80px;
    background: var(--surface-soft);
}

.consult-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    align-items: start;
    gap: 30px;
}

.consult-form-panel {
    padding: 30px;
    background: #fff;
    border: 1px solid var(--line);
    border-top: 4px solid var(--green);
}

.consult-form-panel h1,
.consult-form-panel h2 {
    margin: 0 0 8px;
    font-family: var(--font-display);
    font-size: 31px;
}

.consult-form-panel > p {
    margin: 0 0 25px;
    color: var(--muted);
}

.contact-notice {
    margin: -7px 0 22px;
    padding: 11px 13px;
    color: var(--green-strong);
    background: var(--green-light);
    border: 1px solid #cfe5dc;
    border-radius: 8px;
    font-size: 14px;
}

.contact-notice--error {
    color: #8d3740;
    background: #fff3f3;
    border-color: #f1cfd2;
}

.pension-contact-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.advisor-panel .feature-list li {
    color: var(--ink-soft);
}

.advisor-panel .feature-list .icon {
    color: var(--green);
}

@media (max-width: 900px) {
    .visual-service-grid {
        display: grid;
        height: auto;
        grid-template-columns: 1fr 1fr;
    }

    .visual-service {
        min-height: 420px;
        height: auto;
    }

    .visual-service:hover,
    .visual-service:focus-within {
        transform: none;
    }

    .channel-layout,
    .channel-layout--reverse,
    .detail-overview,
    .detail-main-grid,
    .consult-layout {
        grid-template-columns: 1fr;
    }

    .channel-layout--reverse .scene-crop {
        order: 2;
    }

    .detail-summary {
        border-top: 1px solid var(--line);
        border-left: 0;
    }

    .detail-aside {
        order: -1;
    }

    .pension-article-page .detail-aside,
    .news-detail-page .detail-aside {
        position: static;
        order: 0;
    }

    .channel-cards {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 720px) {
    .visual-service {
        min-height: 390px;
    }

    .page-hero,
    .page-hero__inner {
        min-height: 300px;
    }

    .page-hero h1 {
        font-size: 36px;
    }

    .channel-section {
        padding: 52px 0;
    }

    .metric-strip {
        grid-template-columns: 1fr 1fr;
    }

    .metric-strip__item:nth-child(2) {
        border-right: 0;
    }

    .metric-strip__item:nth-child(-n + 2) {
        border-bottom: 1px solid var(--line);
    }

    .channel-cards {
        grid-template-columns: 1fr;
    }

    .article-row {
        grid-template-columns: 1fr auto;
        gap: 8px 16px;
    }

    .article-row time {
        grid-column: 1 / -1;
    }

    .detail-gallery {
        min-height: 280px;
    }

    .detail-content {
        padding: 22px 18px;
    }

    .detail-content.pension-article-content {
        padding: 0;
    }

    .pension-article-page .detail-heading h1,
    .news-detail-page .detail-heading h1 {
        font-size: 34px;
    }

    .pension-article-cover {
        min-height: 210px;
        aspect-ratio: 16 / 9;
    }

    .pension-article-meta {
        gap: 9px 16px;
        padding: 15px 18px;
    }

    .pension-article-content > .markdown {
        padding: 25px 18px 30px;
        font-size: 15px;
    }

    .pension-article-actions,
    .pension-comments {
        margin-right: 18px;
        margin-left: 18px;
    }

    .comment-info {
        grid-template-columns: 1fr;
    }

    .captcha-container {
        grid-column: auto;
    }

    .comment-depth-1 { margin-left: 16px; }
    .comment-depth-2,
    .comment-depth-3,
    .comment-depth-4 { margin-left: 28px; }
}

@media (max-width: 620px) {
    .visual-service-grid {
        grid-template-columns: 1fr;
    }

    .visual-service {
        min-height: 360px;
    }
}

@media (max-width: 480px) {

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .footer-brand,
    .footer-column:last-child {
        grid-column: auto;
    }

    .channel-copy h2 {
        font-size: 28px;
    }

    .article-row {
        grid-template-columns: 1fr;
    }

    .article-row .button {
        justify-self: start;
    }

    .consult-form-panel {
        padding: 22px 16px;
    }

    .pension-article-actions .button,
    .com_submit_p button {
        flex: 1 1 auto;
    }

    .comment {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 9px;
    }

    .comment .avatar img {
        width: 36px;
        height: 36px;
    }

    .comment-depth-1,
    .comment-depth-2,
    .comment-depth-3,
    .comment-depth-4 {
        margin-left: 12px;
    }
}

@media (hover: none) {
    .visual-service__image {
        object-fit: cover;
        transform: none;
    }
}

@media (max-width: 720px) {
    .pension-admin-rail {
        display: none;
    }

    .site-nav__quick-tools {
        display: grid;
        width: min(100%, var(--container));
        margin: 10px auto 0;
        padding: 13px;
        gap: 11px;
        background: linear-gradient(145deg, #f5faf7 0%, #fbfdfc 100%);
        border: 1px solid #dce9e2;
        border-radius: 14px;
    }

    .site-nav__quick-tools-heading {
        display: grid;
        grid-template-columns: 34px minmax(0, 1fr);
        align-items: center;
        gap: 9px;
        padding: 0 2px;
    }

    .site-nav__quick-tools-heading > span,
    .site-nav__quick-tools-icon {
        display: grid;
        width: 34px;
        height: 34px;
        place-items: center;
        color: var(--green-strong);
        background: #e7f4ed;
        border: 1px solid #cfe5da;
        border-radius: 10px;
    }

    .site-nav__quick-tools-heading .icon,
    .site-nav__quick-tools-icon .icon {
        width: 17px;
        height: 17px;
    }

    .site-nav__quick-tools-heading > div,
    .site-nav__quick-tools-grid > a > span:last-child {
        display: grid;
        min-width: 0;
        gap: 1px;
    }

    .site-nav__quick-tools-heading strong {
        color: var(--ink);
        font-size: 13px;
        line-height: 1.35;
    }

    .site-nav__quick-tools-heading small {
        color: var(--muted);
        font-size: 10px;
        line-height: 1.45;
    }

    .site-nav__quick-tools-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .site-nav .site-nav__quick-tools-grid > a {
        display: grid;
        min-width: 0;
        min-height: 68px;
        height: auto;
        grid-template-columns: 34px minmax(0, 1fr);
        align-items: center;
        gap: 9px;
        padding: 9px;
        color: #344b42;
        background: rgba(255, 255, 255, .96);
        border: 1px solid #dde8e2;
        border-radius: 11px;
        font-size: 12px;
        line-height: 1.35;
        white-space: normal;
    }

    .site-nav .site-nav__quick-tools-grid > a::after {
        display: none;
    }

    .site-nav .site-nav__quick-tools-grid > a:hover,
    .site-nav .site-nav__quick-tools-grid > a:focus-visible {
        color: var(--green-strong);
        background: #fff;
        border-color: #bcd8ca;
        box-shadow: 0 7px 18px rgba(31, 75, 59, .08);
    }

    .site-nav__quick-tools-grid strong {
        display: -webkit-box;
        overflow: hidden;
        color: inherit;
        font-size: 12px;
        font-weight: 800;
        line-height: 1.3;
        white-space: normal;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .site-nav__quick-tools-grid small {
        display: -webkit-box;
        overflow: hidden;
        color: var(--muted);
        font-size: 10px;
        line-height: 1.4;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .site-nav__quick-tools-icon b {
        font-size: 11px;
        font-weight: 850;
    }

    .news-card {
        grid-template-columns: 1fr;
    }

    .news-card__media {
        min-height: auto;
        aspect-ratio: 16 / 9;
    }

    .news-card__body {
        padding: 16px;
    }
}

@media (max-width: 360px) {
    .site-nav__quick-tools-grid {
        grid-template-columns: 1fr;
    }
}

/* Institution detail: gallery-led overview and verified service profile. */
.pension-institution-page {
    padding-top: 22px;
    background: #f6f8fa;
}

.institution-breadcrumb {
    display: flex;
    min-height: 38px;
    align-items: center;
    gap: 7px;
    margin-bottom: 16px;
    overflow-x: auto;
    color: var(--muted);
    font-size: 13px;
    scrollbar-width: none;
    white-space: nowrap;
}

.institution-breadcrumb::-webkit-scrollbar { display: none; }
.institution-breadcrumb a:hover { color: var(--green); }
.institution-breadcrumb .icon { width: 14px; height: 14px; color: #a6afb9; }
.institution-breadcrumb [aria-current="page"] { color: var(--ink); }

.institution-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(390px, .82fr);
    align-items: stretch;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .07);
}

.institution-gallery {
    --pension-thumb-rail-width: 126px;
    --pension-thumb-height: 94.5px;
    --pension-thumb-rail-height: calc(100% - 20px);
    --pension-thumb-gap: 9px;
    --pension-thumb-control-size: 32px;
    --pension-thumb-control-gap: 6px;
    position: relative;
    display: block;
    min-width: 0;
    align-self: start;
    padding: 10px;
    background: #eef1f2;
}

.institution-gallery--with-thumbs {
    padding-right: calc(var(--pension-thumb-rail-width) + 20px);
}

.institution-gallery__stage {
    position: relative;
    min-width: 0;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #dde3e5;
    border-radius: 8px;
}

.institution-gallery__stage:only-child { grid-column: 1 / -1; }

.institution-gallery__stage > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: opacity .18s ease, transform .45s cubic-bezier(.2, .75, .25, 1);
}

.institution-gallery__stage:hover > img { transform: scale(1.012); }

.institution-gallery__thumbs {
    display: grid;
    height: 100%;
    min-height: 0;
    align-content: start;
    grid-auto-rows: var(--pension-thumb-height);
    gap: var(--pension-thumb-gap);
    overflow-y: auto;
    overscroll-behavior: contain;
    scroll-snap-type: y mandatory;
    scrollbar-width: none;
    scroll-behavior: smooth;
}

.institution-gallery__thumbs::-webkit-scrollbar { display: none; }

.institution-gallery__rail {
    position: absolute;
    top: 10px;
    right: 10px;
    display: block;
    width: var(--pension-thumb-rail-width);
    height: var(--pension-thumb-rail-height);
    min-height: 0;
    overflow: hidden;
    isolation: isolate;
    border-radius: 7px;
}

.institution-gallery.is-empty .institution-gallery__rail {
    display: none;
}

.institution-gallery__thumb-scroll {
    position: absolute;
    z-index: 4;
    left: 50%;
    display: grid;
    width: 34px;
    height: 34px;
    min-width: 0;
    min-height: 0;
    place-items: center;
    color: #fff;
    background: rgba(24, 39, 34, .78);
    border: 1px solid rgba(255, 255, 255, .46);
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .22);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%) scale(.92);
    transition: opacity .18s ease, visibility 0s linear .18s, background-color .16s ease, transform .18s ease;
}

.institution-gallery__thumb-scroll--prev { top: 8px; }
.institution-gallery__thumb-scroll--next { bottom: 8px; }

.institution-gallery.has-thumb-overflow .institution-gallery__thumb-scroll {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) scale(1);
    transition-delay: 0s;
}

.institution-gallery__thumb-scroll:hover:not(:disabled) {
    background: var(--green-strong);
    transform: translateX(-50%) scale(1.07);
}

.institution-gallery__thumb-scroll:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, .76), 0 7px 20px rgba(15, 23, 42, .28);
}

.institution-gallery.has-thumb-overflow .institution-gallery__thumb-scroll:disabled {
    cursor: default;
    opacity: .34;
    pointer-events: none;
}

@media (min-width: 721px) and (hover: hover) and (pointer: fine) {
    .institution-gallery.has-thumb-overflow .institution-gallery__thumb-scroll {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition-delay: 0s, .18s, 0s;
    }

    .institution-gallery.has-thumb-overflow .institution-gallery__rail:hover .institution-gallery__thumb-scroll,
    .institution-gallery.has-thumb-overflow .institution-gallery__rail:focus-within .institution-gallery__thumb-scroll {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(-50%) scale(1);
        transition-delay: 0s;
    }

    .institution-gallery.has-thumb-overflow .institution-gallery__rail:hover .institution-gallery__thumb-scroll:disabled,
    .institution-gallery.has-thumb-overflow .institution-gallery__rail:focus-within .institution-gallery__thumb-scroll:disabled {
        opacity: .34;
        pointer-events: none;
    }
}

.institution-gallery__thumb-scroll .icon {
    width: 22px;
    height: 22px;
}

.institution-gallery__thumb {
    position: relative;
    width: 100%;
    height: var(--pension-thumb-height);
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: #dfe5e7;
    border: 2px solid transparent;
    border-radius: 7px;
    opacity: .72;
    scroll-snap-align: start;
    aspect-ratio: 4 / 3;
    transition: opacity .16s ease, border-color .16s ease, transform .16s ease;
}

.institution-gallery__thumb:hover,
.institution-gallery__thumb.is-active {
    opacity: 1;
    border-color: var(--green);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .78);
}

.institution-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.institution-gallery__arrow {
    position: absolute;
    z-index: 3;
    top: 50%;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    color: #fff;
    background: rgba(23, 32, 51, .58);
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%);
    transition: opacity .16s ease, background-color .16s ease;
}

.institution-gallery__stage:hover .institution-gallery__arrow,
.institution-gallery__arrow:focus-visible { opacity: 1; pointer-events: auto; }
.institution-gallery__stage:hover .institution-gallery__arrow { pointer-events: auto; }
.institution-gallery__arrow:disabled,
.institution-gallery__stage:hover .institution-gallery__arrow:disabled {
    cursor: default;
    opacity: .36;
    pointer-events: none;
}
.institution-gallery__arrow:hover { background: rgba(31, 98, 82, .9); }
.institution-gallery__arrow--prev { left: 14px; }
.institution-gallery__arrow--next { right: 14px; }

.institution-gallery__empty {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 20px;
    color: #fff;
    background: rgba(23, 32, 51, .52);
    font-size: 13px;
    text-align: center;
    pointer-events: none;
}

.institution-gallery__counter {
    position: absolute;
    z-index: 3;
    top: 14px;
    right: 14px;
    display: inline-flex;
    min-height: 29px;
    align-items: center;
    gap: 5px;
    padding: 0 9px;
    color: #fff;
    background: rgba(23, 32, 51, .66);
    border-radius: 15px;
    font-size: 11px;
    backdrop-filter: blur(8px);
}

.institution-gallery__counter .icon { width: 13px; height: 13px; }

.institution-gallery__filters {
    position: absolute;
    z-index: 4;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    min-height: 45px;
    align-items: center;
    gap: 4px;
    padding: 6px 14px;
    overflow-x: auto;
    background: linear-gradient(to top, rgba(15, 23, 42, .78), rgba(15, 23, 42, .46));
    scrollbar-width: none;
}

.institution-gallery__filters::-webkit-scrollbar { display: none; }

.institution-gallery__filters button {
    min-height: 29px;
    flex: 0 0 auto;
    padding: 0 8px;
    color: rgba(255, 255, 255, .86);
    background: transparent;
    border-radius: 5px;
    font-size: 12px;
}

.institution-gallery__filters button:hover,
.institution-gallery__filters button.is-active {
    color: #fff;
    background: rgba(255, 255, 255, .16);
}

.institution-summary {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: clamp(24px, 3vw, 42px);
    background: #fff;
    border-left: 1px solid var(--line);
}

.institution-summary__badge {
    display: inline-flex;
    align-self: flex-start;
    min-height: 28px;
    align-items: center;
    gap: 6px;
    padding: 0 9px;
    color: var(--green-strong);
    background: var(--green-light);
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
}

.institution-summary__badge .icon { width: 14px; height: 14px; }

.institution-summary h1 {
    margin: 14px 0 0;
    color: #142035;
    font-family: var(--font-display);
    font-size: clamp(26px, 2.25vw, 38px);
    line-height: 1.35;
}

.institution-summary__price {
    display: flex;
    min-width: 0;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 17px;
    color: #df3540;
    font-family: var(--font-body);
    font-size: clamp(29px, 2.5vw, 42px);
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.2;
}

.institution-summary__price strong {
    min-width: 0;
    font: inherit;
    overflow-wrap: anywhere;
}

.institution-summary__price small {
    color: #8f4a50;
    font-family: var(--font-body);
    font-size: .4em;
    font-weight: 700;
    letter-spacing: 0;
    white-space: nowrap;
}

.institution-summary__price--range strong { font-size: .76em; }
.institution-summary__price--text strong { font-size: .62em; line-height: 1.4; letter-spacing: 0; }

.institution-summary__price-note {
    margin: 11px 0 0;
    padding-bottom: 18px;
    color: var(--ink-soft);
    border-bottom: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.75;
}

.institution-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 20px 0;
}

.institution-facts > div {
    min-width: 0;
    padding: 0 10px;
    border-left: 1px solid var(--line);
    text-align: center;
}

.institution-facts > div:first-child { border-left: 0; }
.institution-facts dt { overflow-wrap: anywhere; color: var(--ink); font-size: 16px; font-weight: 700; line-height: 1.4; }
.institution-facts dd { margin: 5px 0 0; color: var(--muted); font-size: 11px; }

.institution-contact {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 13px;
    padding: 17px;
    background: #f7f9fa;
    border: 1px solid #edf0f2;
    border-radius: 9px;
}

.institution-contact__icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    color: #d78318;
    background: #fff8e8;
    border: 1px solid #f4dfb3;
    border-radius: 50%;
}

.institution-contact__icon .icon { width: 22px; height: 22px; }
.institution-contact small { display: block; color: var(--muted); font-size: 10px; }
.institution-contact a,
.institution-contact strong { display: block; margin-top: 1px; color: #d78318; font-size: 22px; font-weight: 760; line-height: 1.35; }
.institution-contact p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; }

.institution-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 15px;
}

.institution-actions .button {
    width: 100%;
    min-height: 43px;
    justify-content: center;
    padding: 0 12px;
    font-size: 12px;
}

.institution-actions__visit {
    background: #d98b21;
    border-color: #d98b21;
}

.institution-actions__visit:hover,
.institution-actions__visit:active {
    color: #fff;
    background: #bd7412;
    border-color: #bd7412;
}

.institution-actions__visit:focus-visible {
    border-color: #bd7412;
    outline: 3px solid rgba(217, 139, 33, .28);
    outline-offset: 3px;
}

.institution-summary__location {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: auto 0 0;
    padding-top: 17px;
    color: var(--muted);
    font-size: 12px;
}

.institution-summary__location .icon { width: 16px; height: 16px; margin-top: 2px; color: var(--green); }

.institution-detail-grid {
    grid-template-columns: minmax(0, 1fr) 310px;
    margin-top: 22px;
}

.institution-article__header {
    padding: 28px 34px 24px;
    background: #fff;
}

.institution-article__heading {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 13px;
}

.institution-article__heading > div {
    min-width: 0;
}

.institution-article__heading-icon {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    color: var(--green-strong);
    background: linear-gradient(145deg, #f3f8f5 0%, #fffaf1 100%);
    border: 1px solid #dce9e2;
    border-radius: 12px;
}

.institution-article__heading-icon .icon {
    width: 20px;
    height: 20px;
}

.institution-article__header > span { color: var(--green); font-family: Georgia, serif; font-size: 10px; font-weight: 700; letter-spacing: .14em; }
.institution-article__header h2 { margin: 0 0 5px; font-family: var(--font-display); font-size: 28px; }
.institution-article__header p { margin: 0; color: var(--muted); font-size: 13px; }

.institution-profile__tags {
    display: flex;
    flex-wrap: wrap;
    margin: 18px 0 0;
    padding: 0;
    gap: 6px;
    list-style: none;
}

.institution-profile__tags li { padding: 4px 8px; color: var(--green-strong); background: var(--green-light); border-radius: 4px; font-size: 11px; }

@media (max-width: 1120px) {
    .institution-overview { grid-template-columns: 1fr; }
    .institution-summary { border-top: 1px solid var(--line); border-left: 0; }
    .institution-summary__location { margin-top: 18px; }
}

@media (max-width: 900px) {
    .institution-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .pension-institution-page { padding-top: 12px; }
    .institution-breadcrumb { margin-bottom: 10px; font-size: 12px; }
    .institution-overview { border-radius: 9px; }
    .institution-gallery,
    .institution-gallery--with-thumbs { display: block; padding: 7px; }
    .institution-gallery__stage { aspect-ratio: 16 / 11; }
    .institution-gallery .institution-gallery__rail,
    .institution-gallery.has-thumb-overflow .institution-gallery__rail { position: relative; top: auto; right: auto; display: block; width: auto; height: auto; overflow: hidden; margin-top: 7px; border-radius: 7px; }
    .institution-gallery__thumb-scroll { top: 50%; bottom: auto; width: 34px; height: 34px; }
    .institution-gallery__thumb-scroll--prev { right: auto; left: 8px; transform: translateY(-50%) scale(.92); }
    .institution-gallery__thumb-scroll--next { right: 8px; left: auto; transform: translateY(-50%) scale(.92); }
    .institution-gallery.has-thumb-overflow .institution-gallery__thumb-scroll--prev,
    .institution-gallery.has-thumb-overflow .institution-gallery__thumb-scroll--next { transform: translateY(-50%) scale(1); }
    .institution-gallery__thumb-scroll--prev:hover:not(:disabled),
    .institution-gallery__thumb-scroll--next:hover:not(:disabled) { transform: translateY(-50%) scale(1.07); }
    .institution-gallery__thumb-scroll .icon { transform: rotate(-90deg); }
    .institution-gallery__thumbs { display: flex; height: auto; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; }
    .institution-gallery__thumb { width: calc(33.333333% - 6px); height: auto; flex: 0 0 calc(33.333333% - 6px); aspect-ratio: 4 / 3; }
    .institution-gallery__arrow { width: 34px; height: 34px; opacity: 1; pointer-events: auto; }
    .institution-gallery__filters { min-height: 42px; padding-right: 9px; padding-left: 9px; }
    .institution-gallery__filters button { font-size: 11px; }
    .institution-summary { padding: 22px 18px; }
    .institution-summary h1 { font-size: 28px; }
    .institution-summary__price { font-size: 30px; }
    .institution-facts { padding: 17px 0; }
    .institution-facts dt { font-size: 14px; }
    .institution-contact { grid-template-columns: 42px minmax(0, 1fr); padding: 14px; }
    .institution-contact__icon { width: 42px; height: 42px; }
    .institution-contact a,
    .institution-contact strong { font-size: 19px; }
    .institution-article__header { padding: 24px 18px 20px; }
    .institution-article__heading { gap: 10px; }
    .institution-article__heading-icon { width: 38px; height: 38px; flex-basis: 38px; border-radius: 10px; }
    .institution-article__heading-icon .icon { width: 18px; height: 18px; }
}

@media (max-width: 420px) {
    .institution-gallery__thumb { width: calc(50% - 4.5px); flex-basis: calc(50% - 4.5px); }
}

@media (max-width: 480px) {
    .institution-facts { grid-template-columns: 1fr; gap: 0; }
    .institution-facts > div { display: grid; grid-template-columns: 1fr 1fr; padding: 9px 0; border-top: 1px solid var(--line); border-left: 0; text-align: left; }
    .institution-facts dd { margin: 0; text-align: right; }
    .institution-actions { grid-template-columns: 1fr; }
}

/* PJAX loading feedback: lightweight, non-blocking and safe to ignore without JS. */
[data-pension-pjax-container]:focus {
    outline: 0;
}

.pension-page-loader {
    position: fixed;
    z-index: 2400;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
    color: var(--ink);
    background: rgba(249, 251, 250, .9);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    backdrop-filter: blur(7px);
    transition: opacity .18s ease, visibility 0s linear .18s;
}

html.pension-page-booting .pension-page-loader,
html.pension-pjax-loading .pension-page-loader {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transition-delay: 0s;
}

.pension-page-loader__panel {
    display: grid;
    min-width: 184px;
    justify-items: center;
    gap: 10px;
    padding: 24px 28px 19px;
    background: rgba(255, 255, 255, .96);
    border: 1px solid rgba(47, 125, 104, .14);
    border-radius: 18px;
    box-shadow: 0 22px 58px rgba(15, 23, 42, .12);
}

.pension-page-loader__mark {
    position: relative;
    display: block;
    width: 68px;
    height: 68px;
}

.pension-page-loader__mark::after {
    position: absolute;
    inset: -4px;
    content: "";
    border: 2px solid transparent;
    border-top-color: rgba(47, 125, 104, .7);
    border-right-color: rgba(47, 125, 104, .18);
    border-radius: 50%;
    animation: pension-loader-ring 1.15s linear infinite;
}

.pension-page-loader__mark svg { width: 100%; height: 100%; }
.pension-page-loader__mark circle { fill: #edf7f3; stroke: #cfe5dd; stroke-width: 1.5; }
.pension-page-loader__heart { fill: #d76871; }
.pension-page-loader__hands { fill: none; stroke: #2f7d68; stroke-width: 3.3; stroke-linecap: round; stroke-linejoin: round; }

.pension-page-loader__copy { display: grid; justify-items: center; gap: 1px; }
.pension-page-loader__copy strong { color: #17392f; font-family: var(--font-display); font-size: 19px; letter-spacing: .05em; }
.pension-page-loader__copy small { color: var(--muted); font-size: 10px; }

.pension-page-loader__dots { display: flex; height: 8px; align-items: center; gap: 4px; }
.pension-page-loader__dots i { width: 4px; height: 4px; background: var(--green); border-radius: 50%; animation: pension-loader-dot .9s ease-in-out infinite alternate; }
.pension-page-loader__dots i:nth-child(2) { animation-delay: .15s; }
.pension-page-loader__dots i:nth-child(3) { animation-delay: .3s; }

@keyframes pension-loader-ring { to { transform: rotate(360deg); } }
@keyframes pension-loader-dot { from { opacity: .28; transform: translateY(2px); } to { opacity: 1; transform: translateY(-2px); } }

body::before {
    position: fixed;
    z-index: 2200;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: var(--green);
    content: "";
    opacity: 0;
    pointer-events: none;
    transform: scaleX(0);
    transform-origin: left center;
}

html.pension-pjax-loading body::before {
    opacity: 1;
    animation: pension-pjax-progress 14s cubic-bezier(.18, .72, .22, 1) forwards;
}

body.is-pjax-loading [data-pension-pjax-container] {
    opacity: .58;
    pointer-events: none;
    transition: opacity 160ms ease;
}

@keyframes pension-pjax-progress {
    0% { transform: scaleX(.04); }
    35% { transform: scaleX(.48); }
    72% { transform: scaleX(.74); }
    100% { transform: scaleX(.92); }
}

@media (prefers-reduced-motion: reduce) {
    html.pension-pjax-loading body::before {
        animation: none;
        transform: scaleX(.78);
    }

    body.is-pjax-loading [data-pension-pjax-container] {
        transition: none;
    }
}

/* Detail contact dialog */
.pension-contact-dialog {
    position: fixed;
    z-index: 2300;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: rgba(18, 35, 31, .56);
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}

.pension-contact-dialog.is-open {
    opacity: 1;
    pointer-events: auto;
}

.pension-contact-dialog__panel {
    position: relative;
    width: min(100%, 588px);
    max-height: min(760px, calc(100dvh - 48px));
    overflow: auto;
    overscroll-behavior: contain;
    padding: 34px;
    color: var(--ink);
    background: #fff;
    border: 1px solid rgba(255, 255, 255, .68);
    border-radius: 18px;
    box-shadow: 0 30px 90px rgba(8, 25, 20, .31);
    opacity: .92;
    transform: translateY(14px) scale(.985);
    transition: opacity 180ms ease, transform 220ms cubic-bezier(.2, .75, .25, 1);
}

.pension-contact-dialog.is-open .pension-contact-dialog__panel {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.pension-contact-dialog__close {
    position: absolute;
    z-index: 1;
    top: 16px;
    right: 16px;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    padding: 0;
    color: var(--ink-soft);
    background: #f4f7f5;
    border: 1px solid #e4ece8;
    border-radius: 50%;
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.pension-contact-dialog__close:hover {
    color: var(--green-strong);
    background: var(--green-light);
    border-color: #cfe5dc;
    transform: rotate(4deg);
}

.pension-contact-dialog__close .icon { width: 18px; height: 18px; }

.pension-contact-dialog__icon,
.pension-contact-dialog__success-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    color: var(--green-strong);
    background: #eaf6f0;
    border: 1px solid #cfe8dc;
    border-radius: 15px;
}

.pension-contact-dialog__icon .icon,
.pension-contact-dialog__success-icon .icon { width: 24px; height: 24px; }

.pension-contact-dialog__eyebrow {
    margin: 20px 0 5px;
    color: var(--green);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
}

.pension-contact-dialog h2 {
    margin: 0;
    color: #17392f;
    font-family: var(--font-display);
    font-size: 30px;
    line-height: 1.3;
}

.pension-contact-dialog__description {
    margin: 9px 0 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.75;
}

.pension-contact-dialog__subject {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 16px 0 0;
    padding: 10px 12px;
    color: #35675a;
    background: #f5faf7;
    border: 1px solid #deeee6;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.45;
}

.pension-contact-dialog__subject .icon { width: 17px; height: 17px; color: var(--green); }
.pension-contact-dialog__subject span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.pension-contact-dialog__form { margin-top: 20px; }

.pension-contact-dialog__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.pension-contact-dialog .form-field { gap: 8px; }

.pension-contact-dialog .form-field > span {
    color: #40594f;
    font-size: 13px;
    font-weight: 750;
}

.pension-contact-dialog .form-field input,
.pension-contact-dialog .form-field textarea {
    width: 100%;
    color: var(--ink);
    background: #fff;
    border: 1px solid #dce7e1;
    border-radius: 8px;
    box-shadow: none;
    transition: border-color 160ms ease, background-color 160ms ease;
}

.pension-contact-dialog .form-field input {
    height: 46px;
    padding: 0 12px;
}

.pension-contact-dialog .form-field textarea {
    min-height: 106px;
    padding: 11px 12px;
    resize: vertical;
}

.pension-contact-dialog .form-field input:focus,
.pension-contact-dialog .form-field textarea:focus {
    background: #fbfefd;
    border-color: #b8d7c9;
    outline: 0;
    box-shadow: none;
}

.pension-contact-dialog .form-field input:focus-visible,
.pension-contact-dialog .form-field textarea:focus-visible {
    border-color: #9ec9b7;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(47, 125, 104, .14);
}

.pension-contact-dialog .form-field input[aria-invalid="true"] {
    color: #7f3039;
    background: #fff8f8;
    border-color: #e8bfc4;
    box-shadow: inset 3px 0 #c9515d;
}

.pension-contact-dialog__field-error {
    color: #a13f49;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.45;
}

.pension-contact-dialog__notice {
    margin: 0 0 15px;
    padding: 10px 12px;
    color: #963f49;
    background: #fff5f5;
    border: 1px solid #f0d2d5;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.55;
}

.pension-contact-dialog__submit {
    width: 100%;
    margin-top: 20px;
    border-radius: 8px;
}

.pension-contact-dialog__submit:disabled {
    cursor: wait;
    opacity: .72;
}

.pension-contact-dialog__privacy {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 13px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.65;
}

.pension-contact-dialog__privacy .icon { width: 15px; height: 15px; margin-top: 2px; color: var(--green); }

.pension-contact-dialog__success {
    display: grid;
    min-height: 372px;
    align-content: center;
    justify-items: center;
    padding: 24px 12px;
    text-align: center;
}

.pension-contact-dialog__success-icon {
    width: 64px;
    height: 64px;
    color: #1d765e;
    border-radius: 50%;
}

.pension-contact-dialog__success h2 { margin-top: 20px; }

.pension-contact-dialog__success p {
    max-width: 360px;
    margin: 9px 0 22px;
    color: var(--muted);
    font-size: 14px;
}

.pension-contact-dialog__success .button { min-width: 132px; border-radius: 8px; }

@media (max-width: 600px) {
    .pension-contact-dialog { align-items: end; padding: 10px; }
    .pension-contact-dialog__panel { width: 100%; max-height: calc(100dvh - 20px); padding: 29px 20px 22px; border-radius: 15px; }
    .pension-contact-dialog__fields { grid-template-columns: 1fr; gap: 13px; }
    .pension-contact-dialog .form-field--full { grid-column: auto; }
    .pension-contact-dialog h2 { font-size: 26px; }
    .pension-contact-dialog__success { min-height: 330px; }
}

@media (prefers-reduced-motion: reduce) {
    .pension-contact-dialog,
    .pension-contact-dialog__panel,
    .pension-contact-dialog__close { transition: none; }
}

/* Region search on the home hero */
.hero-search--regions {
    width: min(1180px, 100%);
    grid-template-columns: minmax(140px, .72fr) minmax(145px, .75fr) minmax(145px, .75fr) minmax(230px, 1.2fr) 148px;
    align-items: center;
    gap: 10px;
    padding: 10px;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, 0.95);
    border-radius: 20px;
    box-shadow: 0 24px 60px -12px rgba(13, 92, 117, 0.22), 0 8px 24px -4px rgba(15, 23, 42, 0.06), inset 0 1px 0 #ffffff;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.hero-search--regions .hero-search__select,
.hero-search--regions .hero-search__field {
    position: relative;
    display: grid;
    min-width: 0;
    height: 72px;
    grid-template-columns: 40px minmax(0, 1fr);
    grid-template-rows: 20px 32px;
    align-content: center;
    column-gap: 12px;
    padding: 10px 14px;
    overflow: visible;
    background: #f8fafc;
    border: 1.5px solid #e2e8f0;
    border-radius: 14px;
    transition: all .22s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-search--regions .hero-search__select > span,
.hero-search--regions .hero-search__field > label {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .03em;
    pointer-events: none;
}

.hero-search--regions .hero-search__select > .icon,
.hero-search--regions .hero-search__field > .icon {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    margin: 0;
    padding: 0;
    color: var(--teal-deep, #0D5C75);
    background: #e0f2fe;
    border-radius: 11px;
    transform: none;
    transition: all .22s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-search--regions .hero-search__select select {
    width: 100%;
    min-width: 0;
    height: 32px;
    grid-column: 2;
    grid-row: 2;
    padding: 0 24px 0 0;
    color: #0f172a;
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 14px;
    font-weight: 700;
    outline: 0;
}

.hero-search--regions .hero-search__select .custom-select {
    position: relative;
    min-width: 0;
    height: 32px;
    grid-column: 2;
    grid-row: 2;
    display: flex;
    align-items: center;
}

.hero-search--regions .hero-search__select .custom-select__trigger {
    height: 32px;
    min-height: 32px;
    line-height: 32px;
    padding: 0 24px 0 0;
    color: #0f172a;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 14.5px;
    font-weight: 700;
}

.hero-search--regions .hero-search__select .custom-select__trigger::after {
    right: 4px;
    width: 7px;
    height: 7px;
    border-color: var(--teal-deep, #0D5C75);
    border-width: 0 2px 2px 0;
}

.hero-search--regions .hero-search__select .custom-select__list {
    position: absolute;
    z-index: 999;
    top: calc(100% + 14px);
    left: -52px;
    right: auto;
    min-width: 230px;
    max-height: 280px;
    padding: 8px;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    box-shadow: 0 20px 48px -8px rgba(13, 92, 117, 0.22), 0 8px 20px -4px rgba(15, 23, 42, 0.08);
}

.hero-search--regions .hero-search__field {
    padding-right: 14px;
}

.hero-search--regions .hero-search__field input {
    height: 32px;
    min-width: 0;
    grid-column: 2;
    grid-row: 2;
    padding: 0;
    color: #0f172a;
    background: transparent;
    border: 0;
    box-shadow: none;
    font-size: 14.5px;
    font-weight: 600;
}

.hero-search--regions .hero-search__field input:focus,
.hero-search--regions .hero-search__field input:focus-visible,
.hero-search--regions .hero-search__select .custom-select__trigger:focus,
.hero-search--regions .hero-search__select .custom-select__trigger:focus-visible {
    outline: 0 !important;
    box-shadow: none !important;
}

.hero-search--regions .hero-search__select:hover,
.hero-search--regions .hero-search__field:hover,
.hero-search--regions .hero-search__select:focus-within,
.hero-search--regions .hero-search__field:focus-within,
.hero-search--regions .hero-search__select:has(.is-open) {
    background: #ffffff;
    border-color: var(--teal-deep, #0D5C75);
    box-shadow: 0 10px 24px -4px rgba(13, 92, 117, 0.14);
}

.hero-search--regions .hero-search__select:hover > .icon,
.hero-search--regions .hero-search__field:hover > .icon,
.hero-search--regions .hero-search__select:focus-within > .icon,
.hero-search--regions .hero-search__field:focus-within > .icon,
.hero-search--regions .hero-search__select:has(.is-open) > .icon {
    color: #ffffff;
    background: var(--teal-deep, #0D5C75);
    transform: translateY(-1px) scale(1.04);
}

.hero-search--regions .hero-search__select:has(.custom-select__trigger:disabled) {
    background: #f1f5f9;
    border-color: #e2e8f0;
    opacity: 0.72;
}

.hero-search--regions .hero-search__select:has(.custom-select__trigger:disabled) > .icon {
    color: #94a3b8;
    background: #e2e8f0;
}

.hero-search--regions .button {
    display: inline-flex;
    min-width: 0;
    height: 72px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 22px;
    background: linear-gradient(135deg, var(--teal-deep, #0D5C75) 0%, #0284c7 100%);
    border: none;
    border-radius: 14px;
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
    box-shadow: 0 12px 28px -6px rgba(13, 92, 117, 0.38);
    transition: all .25s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-search--regions .button:hover,
.hero-search--regions .button:focus-visible {
    background: linear-gradient(135deg, #0a485c 0%, #0369a1 100%);
    box-shadow: 0 16px 36px -6px rgba(13, 92, 117, 0.48);
    transform: translateY(-2px);
}

.hero-search--regions .button .icon {
    width: 18px;
    height: 18px;
}

.hero-search--regions .button:hover,
.hero-search--regions .button:focus-visible {
    box-shadow: 0 12px 26px rgba(31, 98, 82, .27);
}

.hero-search__admin-note {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 11px 0 0;
    padding: 8px 10px;
    color: #eff9f4;
    background: rgba(17, 52, 42, .32);
    border: 1px solid rgba(223, 245, 235, .26);
    border-radius: 6px;
    font-size: 12px;
}

.hero-search__admin-note .icon { width: 16px; height: 16px; color: #d8efdf; }

/* Institutions directory */
.directory--enhanced { padding-top: 46px; }

.directory-tool--overview {
    overflow: hidden;
    border-color: #e0e9e4;
    border-top: 0;
    border-radius: 12px;
    box-shadow: 0 12px 34px rgba(23, 56, 46, .06);
}

.directory-tool--overview .directory-tool__head { min-height: 76px; }

.directory-tool__guide {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 0 22px;
    background: #f7fbf8;
    border-top: 1px solid #e6eee9;
}

.directory-tool__guide span {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    gap: 7px;
    padding: 0 22px 0 0;
    margin-right: 22px;
    color: #527267;
    border-right: 1px solid #e0ebe5;
    font-size: 12px;
}

.directory-tool__guide span:last-child { margin-right: 0; border-right: 0; }
.directory-tool__guide .icon { width: 16px; height: 16px; color: var(--green); }
.results-layout--guided { align-items: start; }

.advisor-panel--guide { border-color: #dfeae4; box-shadow: 0 10px 28px rgba(23, 56, 46, .06); }

.advisor-checklist {
    display: grid;
    margin: 0 0 19px;
    padding: 0;
    gap: 8px;
    list-style: none;
}

.advisor-checklist li {
    position: relative;
    padding-left: 17px;
    color: #5f756d;
    font-size: 12px;
}

.advisor-checklist li::before {
    position: absolute;
    top: .65em;
    left: 0;
    width: 6px;
    height: 6px;
    content: "";
    background: var(--green);
    border-radius: 50%;
}

.directory-note {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    padding: 16px;
    color: #597067;
    background: #fff;
    border: 1px solid #e1ebe5;
    border-radius: 10px;
}

.directory-note > .icon { width: 21px; height: 21px; color: var(--green); }
.directory-note strong { display: block; color: #355d50; font-size: 13px; }
.directory-note p { margin: 3px 0 0; font-size: 12px; line-height: 1.65; }

.institution-decision-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 36px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e0e9e4;
    border-radius: 11px;
}

.institution-decision-strip > div { min-width: 0; padding: 24px 25px; border-left: 1px solid #e5ede9; }
.institution-decision-strip > div:first-child { border-left: 0; }
.institution-decision-strip span { display: block; color: #79a496; font-family: Georgia, serif; font-size: 13px; font-weight: 700; letter-spacing: .12em; }
.institution-decision-strip strong { display: block; margin-top: 7px; color: #294d42; font-family: var(--font-display); font-size: 20px; }
.institution-decision-strip p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }

/* Services */
.channel-section--services { padding-bottom: 0; }
.section-heading--split { margin-bottom: 28px; }

.service-explain-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.service-explain-grid article {
    min-width: 0;
    padding: 22px;
    background: #fbfdfc;
    border: 1px solid #e1ebe6;
    border-radius: 10px;
}

.service-explain-grid article > span {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    color: var(--green-strong);
    background: #eaf6f0;
    border-radius: 11px;
}

.service-explain-grid .icon { width: 19px; height: 19px; }
.service-explain-grid h3 { margin: 15px 0 0; color: #294d42; font-family: var(--font-display); font-size: 20px; }
.service-explain-grid p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.75; }

.service-assessment { padding: 34px 0; background: #eef7f2; border-top: 1px solid #dceae2; border-bottom: 1px solid #dceae2; }
.service-assessment .container { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.service-assessment h2 { margin: 0; color: #23483c; font-family: var(--font-display); font-size: 28px; }
.service-assessment p { max-width: 700px; margin: 7px 0 0; color: #557267; font-size: 14px; }
.service-assessment .button { flex: 0 0 auto; white-space: nowrap; }

/* Home care */
.channel-section--homecare { padding-bottom: 58px; }

.homecare-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
    align-items: center;
    gap: clamp(30px, 5vw, 70px);
}

.homecare-intro .channel-copy .button { margin-top: 23px; }
.homecare-intro .scene-crop { box-shadow: 0 16px 40px rgba(23, 56, 46, .1); }

.homecare-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 36px;
}

.homecare-service-grid article { min-width: 0; padding: 21px 21px 22px; background: #fff; border-top: 3px solid #b9d9ca; box-shadow: 0 9px 22px rgba(23, 56, 46, .05); }
.homecare-service-grid span { color: var(--green); font-size: 12px; font-weight: 800; }
.homecare-service-grid h3 { margin: 7px 0 0; color: #294d42; font-family: var(--font-display); font-size: 21px; line-height: 1.35; }
.homecare-service-grid p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.75; }

.homecare-process { padding: 68px 0; background: #f7faf8; border-top: 1px solid #e4ede8; }
.homecare-process ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 31px 0 0; padding: 0; gap: 0; list-style: none; }
.homecare-process li { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 13px; min-width: 0; padding: 0 22px; border-left: 1px solid #dce9e2; }
.homecare-process li:first-child { padding-left: 0; border-left: 0; }
.homecare-process li:last-child { padding-right: 0; }
.homecare-process li > span { display: grid; width: 36px; height: 36px; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-size: 13px; font-weight: 800; }
.homecare-process strong { display: block; color: #365b50; font-family: var(--font-display); font-size: 19px; }
.homecare-process p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }

/* Travel */
.channel-section--travel { padding-bottom: 58px; }
.travel-intro { display: grid; grid-template-columns: minmax(320px, .88fr) minmax(0, 1.12fr); align-items: center; gap: clamp(30px, 5vw, 68px); }
.travel-intro .scene-crop { box-shadow: 0 16px 40px rgba(23, 56, 46, .1); }

.travel-season-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 42px; }
.travel-season-grid article { min-width: 0; min-height: 164px; padding: 19px; background: #f9fcfa; border: 1px solid #e0ebe5; border-radius: 9px; }
.travel-season-grid span { display: inline-flex; padding: 3px 8px; color: #39725f; background: #eaf6f0; border-radius: 999px; font-size: 11px; font-weight: 800; }
.travel-season-grid h3 { margin: 15px 0 0; color: #294d42; font-family: var(--font-display); font-size: 21px; }
.travel-season-grid p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }

.travel-comparison { padding: 68px 0 76px; background: #f5f8f6; }
.travel-comparison__head { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-bottom: 25px; }
.travel-comparison__head h2 { margin: 3px 0 0; color: #294d42; font-family: var(--font-display); font-size: 30px; }
.travel-comparison__table { overflow: hidden; background: #fff; border: 1px solid #dfe9e4; border-radius: 10px; }
.travel-comparison__table > div { display: grid; grid-template-columns: minmax(150px, .28fr) minmax(0, 1fr); min-height: 62px; align-items: center; border-top: 1px solid #e5ede9; }
.travel-comparison__table > div:first-child { color: #fff; background: #2f7d68; border-top: 0; }
.travel-comparison__table strong, .travel-comparison__table span { padding: 14px 20px; }
.travel-comparison__table strong { color: #365b50; font-size: 13px; }
.travel-comparison__table > div:first-child strong { color: #fff; }
.travel-comparison__table span { color: var(--muted); border-left: 1px solid #e5ede9; font-size: 13px; }
.travel-comparison__table > div:first-child span { color: #eaf7f1; border-left-color: rgba(255,255,255,.22); }

/* Guide */
.guide-dashboard { padding: 66px 0 45px; background: #fff; }
.guide-dashboard__intro { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.guide-dashboard__intro h2 { margin: 4px 0 0; color: #294d42; font-family: var(--font-display); font-size: 32px; }
.guide-dashboard__intro p:not(.section-heading__kicker) { max-width: 680px; margin: 10px 0 0; color: var(--muted); }
.guide-dashboard__intro .button { flex: 0 0 auto; }

.guide-topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-top: 31px; }
.guide-topic-grid article { position: relative; min-width: 0; padding: 24px; overflow: hidden; background: #fbfdfc; border: 1px solid #e1ebe5; border-radius: 10px; }
.guide-topic-grid > article > .icon { width: 28px; height: 28px; color: var(--green); }
.guide-topic-grid h3 { margin: 14px 0 0; color: #294d42; font-family: var(--font-display); font-size: 22px; }
.guide-topic-grid p { min-height: 3.5em; margin: 7px 0 16px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.guide-topic-grid span { color: #568073; font-size: 12px; font-weight: 800; }
.guide-library__head { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 23px; }
.guide-library__head h2 { margin: 4px 0 0; color: #294d42; font-family: var(--font-display); font-size: 30px; }
.guide-library__head > p { max-width: 390px; margin: 0; color: var(--muted); font-size: 13px; }
.guide-library .article-row { grid-template-columns: 140px minmax(0, 1fr) 36px; }
.article-row__icon { display: grid; width: 32px; height: 32px; place-items: center; color: var(--green); background: #ebf6f0; border-radius: 50%; }
.article-row__icon .icon { width: 16px; height: 16px; }

/* Consultation page */
.consult-page--refined { padding: 50px 0 82px; background: #f6f9f7; }
.consult-page__lead { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 25px; }
.consult-page__lead h2 { margin: 4px 0 0; color: #294d42; font-family: var(--font-display); font-size: 32px; }
.consult-page__lead p:not(.section-heading__kicker) { max-width: 670px; margin: 9px 0 0; color: var(--muted); }
.consult-page__lead ul { display: grid; min-width: 208px; margin: 0 0 3px; padding: 0; gap: 7px; list-style: none; }
.consult-page__lead li { display: flex; align-items: center; gap: 7px; color: #507468; font-size: 12px; }
.consult-page__lead li .icon { width: 15px; height: 15px; color: var(--green); }
.consult-page--refined .consult-layout { align-items: stretch; gap: 22px; }

.consult-form-panel--primary {
    padding: 30px;
    border: 1px solid #dfeae4;
    border-top: 0;
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(23, 56, 46, .05);
}

.consult-form-panel__header { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 13px; margin-bottom: 25px; }
.consult-form-panel__number { display: grid; width: 38px; height: 38px; place-items: center; color: var(--green-strong); background: #eaf6f0; border: 1px solid #d2eadf; border-radius: 11px; font-family: Georgia, serif; font-size: 15px; font-weight: 700; }
.consult-form-panel__header h2 { margin: 0; color: #294d42; font-family: var(--font-display); font-size: 26px; }
.consult-form-panel__header p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.consult-page-content { margin: -5px 0 22px; }

.consult-form-grid,
.apply-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }

.consult-page--refined .form-field,
.apply-page .form-field { gap: 8px; }

.consult-page--refined .form-field > span,
.apply-page .form-field > span { color: #40594f; font-size: 13px; font-weight: 750; }
.consult-page--refined .form-field b,
.apply-page .form-field b { color: #d76871; }

.consult-page--refined .form-field input,
.consult-page--refined .form-field textarea,
.apply-page .form-field input,
.apply-page .form-field textarea {
    width: 100%;
    color: var(--ink);
    background: #fff;
    border: 1px solid #dbe7e0;
    border-radius: 7px;
    box-shadow: none;
}

.consult-page--refined .form-field input,
.apply-page .form-field input { height: 46px; padding: 0 12px; }
.consult-page--refined .form-field textarea,
.apply-page .form-field textarea { min-height: 116px; padding: 11px 12px; resize: vertical; }
.consult-page--refined .form-field input:focus,
.consult-page--refined .form-field textarea:focus,
.apply-page .form-field input:focus,
.apply-page .form-field textarea:focus { background: #fbfefd; border-color: #b8d7c9; outline: 0; box-shadow: none; }
.consult-page--refined .form-field input:focus-visible,
.consult-page--refined .form-field textarea:focus-visible,
.apply-page .form-field input:focus-visible,
.apply-page .form-field textarea:focus-visible {
    border-color: #9ec9b7;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(47, 125, 104, .14);
}
.consult-page--refined .form-field input[aria-invalid="true"],
.apply-page .form-field input[aria-invalid="true"] { color: #7f3039; background: #fff8f8; border-color: #e8bfc4; box-shadow: inset 3px 0 #c9515d; }
.pension-standalone-contact__field-error { display: block; margin-top: -1px; }
.pension-standalone-contact__notice:focus {
    border-color: #9ec9b7;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(47, 125, 104, .14);
}
.consult-page--refined .custom-select__trigger,
.apply-page .custom-select__trigger { min-height: 46px; background: #fff; border-color: #dbe7e0; border-radius: 7px; box-shadow: none; }
.consult-page--refined .custom-select__trigger:focus,
.apply-page .custom-select__trigger:focus { border-color: #b8d7c9 !important; }

.pension-contact-form__footer,
.apply-form-panel__footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #e2ebe6; }
.pension-contact-form__footer p,
.apply-form-panel__footer p { display: flex; max-width: 430px; align-items: flex-start; gap: 6px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.pension-contact-form__footer p .icon,
.apply-form-panel__footer p .icon { width: 15px; height: 15px; margin-top: 2px; color: var(--green); }
.pension-contact-form__footer .button,
.apply-form-panel__footer .button { flex: 0 0 auto; border-radius: 7px; white-space: nowrap; }

.advisor-panel--hotline { display: flex; min-height: 100%; flex-direction: column; padding: 29px 26px; border-color: #dce9e2; border-top: 4px solid var(--green); border-radius: 12px; box-shadow: 0 12px 30px rgba(23, 56, 46, .06); }
.advisor-panel--hotline .advisor-panel__icon { margin-bottom: 20px; }
.advisor-panel__caption { margin: 0; color: #6a847b; font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.advisor-panel__phone { display: block; margin-top: 4px; color: #1c6955; font-family: var(--font-display); font-size: 30px; font-weight: 700; letter-spacing: .015em; line-height: 1.2; }
.advisor-panel__phone:hover { color: var(--green-strong); }
.advisor-panel__hours { display: flex; align-items: center; gap: 6px; margin: 9px 0 19px !important; padding-bottom: 18px; border-bottom: 1px solid #e2ebe6; }
.advisor-panel__hours .icon { width: 15px; height: 15px; color: var(--green); }
.advisor-panel--hotline dl { display: grid; margin: 0; gap: 12px; }
.advisor-panel--hotline dl > div { padding-bottom: 12px; border-bottom: 1px dashed #dce7e1; }
.advisor-panel--hotline dt { color: #6e857c; font-size: 11px; }
.advisor-panel--hotline dd { margin: 2px 0 0; color: #365b50; font-size: 13px; font-weight: 700; }
.advisor-panel__tel-button { display: inline-flex; min-height: 43px; align-items: center; justify-content: center; gap: 7px; margin-top: auto; padding: 0 12px; color: var(--green-strong); background: #edf7f3; border: 1px solid #cfe5dc; border-radius: 7px; font-size: 13px; font-weight: 800; }
.advisor-panel__tel-button:hover { color: #fff; background: var(--green); border-color: var(--green); }
.advisor-panel__tel-button .icon { width: 16px; height: 16px; }

/* Apply page */
.apply-page { padding: 53px 0 82px; background: #f8faf9; }
.apply-page__intro { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 27px; }
.apply-page__intro h2 { margin: 4px 0 0; color: #294d42; font-family: var(--font-display); font-size: 32px; }
.apply-page__intro p:not(.section-heading__kicker) { max-width: 690px; margin: 9px 0 0; color: var(--muted); }
.apply-page__intro-stat { display: grid; min-width: 190px; padding: 15px 17px; background: #eef7f2; border: 1px solid #d4e9dd; border-radius: 9px; }
.apply-page__intro-stat strong { color: #2b6d5a; font-size: 15px; }
.apply-page__intro-stat span { margin-top: 2px; color: #638076; font-size: 11px; }
.apply-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: start; gap: 22px; }
.apply-form-panel { padding: 30px; background: #fff; border: 1px solid #dfeae4; border-radius: 12px; box-shadow: 0 12px 30px rgba(23, 56, 46, .05); }
.apply-form-panel__header { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 14px; margin-bottom: 25px; }
.apply-form-panel__header > span { display: grid; width: 44px; height: 44px; place-items: center; color: var(--green-strong); background: #eaf6f0; border: 1px solid #d2eadf; border-radius: 13px; }
.apply-form-panel__header .icon { width: 22px; height: 22px; }
.apply-form-panel__header h2 { margin: 0; color: #294d42; font-family: var(--font-display); font-size: 26px; }
.apply-form-panel__header p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.apply-page-content { margin: -5px 0 22px; }
.apply-side { display: grid; gap: 15px; }
.apply-steps { padding: 23px 21px; background: #fff; border: 1px solid #dfeae4; border-radius: 11px; }
.apply-steps h2 { margin: 0; color: #294d42; font-family: var(--font-display); font-size: 22px; }
.apply-steps ol { display: grid; margin: 18px 0 0; padding: 0; gap: 17px; list-style: none; }
.apply-steps li { display: grid; grid-template-columns: 29px minmax(0, 1fr); gap: 10px; }
.apply-steps li > span { display: grid; width: 27px; height: 27px; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-size: 11px; font-weight: 800; }
.apply-steps strong { display: block; color: #406257; font-size: 13px; }
.apply-steps p { margin: 2px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.apply-side__contact { display: grid; padding: 20px; color: #fff; background: #2c7561; border-radius: 11px; }
.apply-side__contact > .icon { width: 23px; height: 23px; color: #cde9dd; }
.apply-side__contact strong { margin-top: 14px; font-family: var(--font-display); font-size: 21px; }
.apply-side__contact span { margin-top: 5px; color: #d8eee5; font-size: 12px; }
.apply-side__contact a { margin-top: 2px; color: #fff; font-size: 18px; font-weight: 800; }
.apply-side__contact a:hover { color: #fff; text-decoration: underline; }

@media (max-width: 980px) {
    .hero-search--regions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hero-search--regions .button { grid-column: 1 / -1; border-radius: 12px; }
    .homecare-process li { padding: 0 14px; }
    .travel-season-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .consult-layout,
    .apply-layout { grid-template-columns: 1fr; }
    .advisor-panel--hotline { min-height: auto; }
    .advisor-panel__tel-button { margin-top: 20px; }
    .apply-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .directory--enhanced { padding-top: 28px; }
    .directory-tool__head { align-items: flex-start; }
    .directory-tool__guide { padding: 0 14px; }
    .directory-tool__guide span { min-height: 40px; padding-right: 12px; margin-right: 12px; font-size: 11px; }
    .institution-decision-strip { grid-template-columns: 1fr; margin-top: 24px; }
    .institution-decision-strip > div { padding: 18px; border-top: 1px solid #e5ede9; border-left: 0; }
    .institution-decision-strip > div:first-child { border-top: 0; }
    .service-explain-grid,
    .homecare-service-grid,
    .guide-topic-grid { grid-template-columns: 1fr; }
    .service-assessment .container,
    .guide-dashboard__intro,
    .guide-library__head,
    .consult-page__lead,
    .apply-page__intro,
    .travel-comparison__head { align-items: flex-start; flex-direction: column; }
    .service-assessment { padding: 29px 0; }
    .service-assessment h2,
    .guide-dashboard__intro h2,
    .guide-library__head h2,
    .consult-page__lead h2,
    .apply-page__intro h2 { font-size: 27px; }
    .homecare-intro,
    .travel-intro { grid-template-columns: 1fr; }
    .travel-intro .scene-crop { order: 2; }
    .homecare-process { padding: 51px 0; }
    .homecare-process ol { grid-template-columns: 1fr; gap: 15px; margin-top: 25px; }
    .homecare-process li,
    .homecare-process li:first-child { padding: 0; border-left: 0; }
    .homecare-process li:not(:first-child)::before { position: absolute; top: -11px; left: 17px; width: 1px; height: 8px; content: ""; background: #cfe1d8; }
    .guide-dashboard { padding: 50px 0 31px; }
    .guide-topic-grid article { padding: 21px; }
    .guide-topic-grid p { min-height: 0; }
    .guide-library .article-row { grid-template-columns: 1fr 34px; gap: 14px; }
    .guide-library .article-row time { grid-column: 1; }
    .guide-library .article-row > div { grid-column: 1; }
    .guide-library .article-row__icon { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
    .consult-page--refined,
    .apply-page { padding: 34px 0 58px; }
    .consult-form-panel--primary,
    .apply-form-panel { padding: 22px 17px; border-radius: 9px; }
    .consult-form-grid,
    .apply-form-grid { grid-template-columns: 1fr; gap: 14px; }
    .consult-form-grid .form-field--full,
    .apply-form-grid .form-field--full { grid-column: auto; }
    .pension-contact-form__footer,
    .apply-form-panel__footer { align-items: stretch; flex-direction: column; gap: 15px; }
    .pension-contact-form__footer .button,
    .apply-form-panel__footer .button { width: 100%; }
    .apply-side { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .hero-search--regions { grid-template-columns: 1fr 1fr; gap: 6px; padding: 6px; border-radius: 15px; }
    .hero-search--regions .hero-search__select,
    .hero-search--regions .hero-search__field { min-height: 64px; grid-template-columns: 34px minmax(0, 1fr); grid-template-rows: 17px 29px; column-gap: 9px; padding: 8px 10px; border-radius: 10px; }
    .hero-search--regions .hero-search__select > .icon,
    .hero-search--regions .hero-search__field > .icon { width: 34px; height: 34px; padding: 8px; border-radius: 9px; }
    .hero-search--regions .hero-search__field,
    .hero-search--regions .hero-search__select--district,
    .hero-search--regions .button { grid-column: 1 / -1; width: 100%; }
    .hero-search--regions .button { min-height: 54px; border-radius: 10px; }
    .hero-search__admin-note { align-items: flex-start; }
    .directory-tool__guide { display: grid; grid-template-columns: 1fr; padding: 5px 14px; }
    .directory-tool__guide span { min-height: 33px; margin: 0; padding: 0; border-right: 0; }
    .travel-season-grid { grid-template-columns: 1fr; }
    .travel-comparison { padding: 51px 0; }
    .travel-comparison__table > div { grid-template-columns: 1fr; gap: 0; padding: 12px 0; }
    .travel-comparison__table strong,
    .travel-comparison__table span { padding: 4px 14px; border-left: 0; }
    .travel-comparison__table > div:first-child { display: none; }
    .advisor-panel--hotline { padding: 23px 19px; }
    .advisor-panel__phone { font-size: 27px; }
    .apply-page__intro-stat { width: 100%; }
}

@media (max-width: 360px) {
    .hero-search--regions { grid-template-columns: 1fr; }
    .hero-search--regions .hero-search__select { grid-column: auto; }
}

/* Default content and system pages share the theme's calm, professional surface. */
.pension-page-content {
    width: 100%;
    padding: clamp(24px, 4vw, 42px);
    overflow-wrap: anywhere;
    border-radius: 12px;
    box-shadow: 0 12px 34px rgba(23, 56, 46, .06);
}

.pension-page-content > :first-child { margin-top: 0; }
.pension-page-content > :last-child { margin-bottom: 0; }
.pension-page-content h2,
.pension-page-content h3,
.pension-page-content h4 { margin: 1.65em 0 .65em; color: var(--ink); line-height: 1.4; }
.pension-page-content p,
.pension-page-content ul,
.pension-page-content ol,
.pension-page-content blockquote { margin: 0 0 1.15em; }
.pension-page-content a { color: var(--green-strong); text-decoration: underline; text-underline-offset: 3px; }
.pension-page-content img { height: auto; margin: 24px auto; border-radius: 10px; }
.pension-page-content pre,
.pension-page-content table { display: block; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.pension-page-content pre { padding: 16px; background: #f4f7f6; border-radius: 8px; white-space: pre; }
.pension-page-content table { width: 100%; margin: 24px 0; border-collapse: collapse; }
.pension-page-content th,
.pension-page-content td { min-width: 120px; padding: 10px 12px; border: 1px solid var(--line); text-align: left; }
.pension-page-content th { background: var(--surface-soft); }
.pension-page-content blockquote { padding: 14px 16px; color: var(--ink-soft); background: var(--green-light); border-left: 4px solid var(--green); }

.pension-system-page {
    min-height: clamp(520px, 68vh, 760px);
    padding: clamp(48px, 8vw, 96px) 0;
    background:
        radial-gradient(circle at 18% 14%, rgba(47, 125, 104, .08), transparent 28%),
        linear-gradient(180deg, #fbfdfc 0%, #f5f8f6 100%);
}

.pension-system-page__inner { display: flex; align-items: center; justify-content: center; }

.pension-system-card {
    position: relative;
    width: min(100%, 720px);
    padding: clamp(28px, 5vw, 52px);
    overflow: hidden;
    color: var(--ink);
    background: rgba(255, 255, 255, .98);
    border: 1px solid #dfe9e4;
    border-radius: 16px;
    box-shadow: 0 20px 54px rgba(23, 56, 46, .09);
    text-align: center;
}

.pension-system-card--password { width: min(100%, 560px); }
.pension-system-card__icon { display: grid; width: 56px; height: 56px; margin: 0 auto 16px; place-items: center; color: var(--green-strong); background: var(--green-light); border: 1px solid #d7e9e1; border-radius: 16px; }
.pension-system-card__icon .icon { width: 27px; height: 27px; }
.pension-system-card__code { margin: 0 0 4px; color: #9db9ae; font-size: clamp(42px, 8vw, 72px); font-weight: 800; letter-spacing: -.04em; line-height: 1; font-variant-numeric: tabular-nums; }
.pension-system-card__eyebrow { margin: 0 0 5px; color: var(--green); font-size: 12px; font-weight: 800; }
.pension-system-card h1 { margin: 0; font-family: var(--font-display); font-size: clamp(28px, 4vw, 38px); line-height: 1.3; }
.pension-system-card > p:not(.pension-system-card__code):not(.pension-system-card__eyebrow):not(.pension-system-card__error) { max-width: 560px; margin: 12px auto 0; color: var(--muted); }
.pension-system-card__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 28px; }
.pension-system-card__actions .button { min-width: 154px; }
.pension-system-card__field { display: grid; gap: 8px; margin-top: 24px; color: var(--ink-soft); text-align: left; }
.pension-system-card__field > span { font-size: 13px; font-weight: 750; }
.pension-system-card__field input { width: 100%; min-height: 48px; padding: 0 14px; color: var(--ink); background: #fff; border: 1px solid #d8e3de; border-radius: 8px; }
.pension-system-card--password > .button { width: 100%; margin-top: 16px; }
.pension-system-card__back { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 7px; margin-top: 12px; color: var(--muted); font-size: 13px; font-weight: 700; }
.pension-system-card__back:hover { color: var(--green-strong); }
.pension-system-card__back .icon { width: 16px; height: 16px; }
.pension-system-card__error { display: flex; align-items: flex-start; gap: 8px; margin: 16px 0 0; padding: 11px 12px; color: #963f48; background: #fff3f4; border: 1px solid #efcfd3; border-radius: 8px; font-size: 13px; text-align: left; }
.pension-system-card__error .icon { width: 17px; height: 17px; margin-top: 2px; }

/* Account, language, consultation proof and contact tools (1.4). */
.language-switch {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    padding: 3px;
    gap: 2px;
    background: #f5f7f6;
    border: 1px solid #e2e8e5;
    border-radius: 8px;
}

.language-switch a {
    display: inline-grid;
    min-width: 40px;
    min-height: 40px;
    place-items: center;
    padding: 0 6px;
    color: #64716c;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
}

.language-switch a:hover,
.language-switch a:focus-visible {
    color: var(--green-strong);
    background: #eaf4ef;
    outline: 0;
}

.language-switch a.is-active {
    color: #fff;
    background: var(--green);
    box-shadow: 0 3px 9px rgba(47, 125, 104, .18);
}

.header-account {
    position: relative;
    display: inline-grid;
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    place-items: center;
    color: #52615c;
    background: #fff;
    border: 1px solid #dfe6e3;
    border-radius: 50%;
    transition: color 160ms ease, background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.header-account:hover,
.header-account:focus-visible {
    color: #fff;
    background: var(--green);
    border-color: var(--green);
    outline: 0;
    transform: translateY(-1px);
}

.header-account .icon { width: 20px; height: 20px; }
.header-account > span { display: none; }

.institution-card__consulted {
    display: inline-flex;
    min-height: 26px;
    align-items: center;
    justify-content: center;
    align-self: center;
    padding: 4px 8px;
    gap: 5px;
    margin: 7px 0 3px;
    color: #526c63;
    background: #eef6f2;
    border-radius: 999px;
    font-size: 11px;
    line-height: 1.25;
    white-space: nowrap;
}

.institution-card__consulted .icon { width: 14px; height: 14px; color: var(--green); }
.institution-card__consulted b { color: var(--green-strong); font-size: 12px; }

.institution-summary__social {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin: 10px 0 2px;
}

.institution-summary__social > span,
.institution-summary__social > button {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    padding: 4px 9px;
    gap: 5px;
    color: #5d716a;
    background: #f4f8f6;
    border: 1px solid #e1eae6;
    border-radius: 999px;
    font-size: 11px;
    line-height: 1;
}

.institution-summary__social > button {
    appearance: none;
    font-family: inherit;
    cursor: pointer;
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.institution-summary__social > button:hover {
    color: var(--green-strong);
    background: #edf6f2;
    border-color: #bfd8ce;
    transform: translateY(-1px);
}

.institution-summary__social > button:active { transform: translateY(0); }
.institution-summary__social > button:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(47, 125, 104, .16);
}

.institution-summary__social > button.is-active {
    color: var(--green-strong);
    background: #eaf6f0;
    border-color: #bfdccb;
}

.institution-summary__social > button[data-pension-vote="collect"].is-active {
    color: #a83f4b;
    background: #fff2f3;
    border-color: #efc8cd;
}

.institution-summary__social > button[disabled] { cursor: wait; opacity: .62; transform: none; }
.institution-summary__social .icon { width: 14px; height: 14px; color: var(--green); }
.institution-summary__social strong { color: #294d42; font-size: 12px; }
.institution-summary__social > button[data-pension-vote="collect"].is-active .icon,
.institution-summary__social > button[data-pension-vote="collect"].is-active strong { color: #a83f4b; }

.institution-vote {
    position: relative;
    gap: 7px;
    transition: color 160ms ease, background 160ms ease, border-color 160ms ease, opacity 160ms ease, transform 160ms ease;
}

.institution-vote b {
    display: inline-grid;
    min-width: 20px;
    min-height: 20px;
    place-items: center;
    padding: 0 5px;
    color: #64716c;
    background: #f1f4f3;
    border-radius: 999px;
    font-size: 10px;
    line-height: 1;
}

.institution-vote.is-active {
    color: var(--green-strong);
    background: #eaf6f0;
    border-color: #bfdccb;
}

.institution-vote[data-pension-vote="collect"].is-active { color: #b34d58; background: #fff2f3; border-color: #efc8cd; }
.institution-vote.is-active b { color: #fff; background: var(--green); }
.institution-vote[data-pension-vote="collect"].is-active b { background: #c9515d; }
.institution-vote[disabled] { cursor: wait; opacity: .62; }

.favorite-button[data-vote-busy="true"] { opacity: .55; }
.favorite-button:focus-visible { outline: 3px solid rgba(47, 125, 104, .18); outline-offset: 2px; }

.footer-records {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px 16px;
}

.footer-records > a,
.footer-records > span {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 5px;
    margin: 0;
    overflow-wrap: anywhere;
}

.footer-records > a:hover { color: var(--green-strong); }
.footer-records .icon { width: 14px; height: 14px; }

.pension-contact-rail {
    position: fixed;
    z-index: 990;
    right: 22px;
    bottom: calc(28px + env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: 8px;
}

.pension-contact-rail--with-admin,
.pension-contact-rail--with-tools { right: 96px; }

.pension-contact-rail__toggle,
.pension-contact-rail__item > button {
    position: relative;
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    padding: 0;
    color: var(--green-strong);
    background: rgba(255, 255, 255, .98);
    border: 1px solid #dce6e1;
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .11);
    transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.pension-contact-rail__toggle {
    color: #fff;
    background: var(--green);
    border-color: var(--green);
    box-shadow: 0 12px 28px rgba(31, 98, 82, .26);
}

.pension-contact-rail__toggle:hover,
.pension-contact-rail__toggle:focus-visible,
.pension-contact-rail__item > button:hover,
.pension-contact-rail__item > button:focus-visible,
.pension-contact-rail__item.is-open > button {
    color: #fff;
    background: var(--green-strong);
    border-color: var(--green-strong);
    outline: 0;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(31, 98, 82, .22);
}

.pension-contact-rail__toggle .icon,
.pension-contact-rail__item > button .icon { width: 21px; height: 21px; }

.pension-contact-rail__toggle > span,
.pension-contact-rail__item > button > span {
    position: absolute;
    right: calc(100% + 10px);
    top: 50%;
    padding: 6px 9px;
    color: #fff;
    background: #27332f;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    transform: translate(5px, -50%);
    transition: opacity 160ms ease, transform 160ms ease;
    white-space: nowrap;
}

.pension-contact-rail__toggle:hover > span,
.pension-contact-rail__toggle:focus-visible > span,
.pension-contact-rail__item > button:hover > span,
.pension-contact-rail__item > button:focus-visible > span { opacity: 1; transform: translate(0, -50%); }

.pension-contact-rail__items {
    display: grid;
    gap: 8px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px) scale(.96);
    transform-origin: right bottom;
    transition: opacity 180ms ease, transform 180ms ease;
}

.pension-contact-rail.is-open .pension-contact-rail__items {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.pension-contact-rail__item { position: relative; }

.pension-contact-rail__card {
    position: absolute;
    right: calc(100% + 13px);
    bottom: 0;
    display: grid;
    width: 218px;
    padding: 14px;
    color: var(--ink);
    background: #fff;
    border: 1px solid #dce6e1;
    border-radius: 14px;
    box-shadow: 0 20px 46px rgba(15, 23, 42, .16);
    opacity: 0;
    pointer-events: none;
    transform: translateX(8px) scale(.97);
    transform-origin: right bottom;
    transition: opacity 180ms ease, transform 180ms ease;
}

.pension-contact-rail__item:hover .pension-contact-rail__card,
.pension-contact-rail__item:focus-within .pension-contact-rail__card,
.pension-contact-rail__item.is-open .pension-contact-rail__card {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}

.pension-contact-rail__card::after {
    position: absolute;
    right: -7px;
    bottom: 20px;
    width: 12px;
    height: 12px;
    content: "";
    background: #fff;
    border-top: 1px solid #dce6e1;
    border-right: 1px solid #dce6e1;
    transform: rotate(45deg);
}

.pension-contact-rail__card img {
    width: 188px;
    height: 188px;
    padding: 5px;
    object-fit: contain;
    background: #fff;
    border: 1px solid #edf1ef;
    border-radius: 9px;
}

.pension-contact-rail__card strong { margin-top: 10px; color: #294d42; font-size: 14px; }
.pension-contact-rail__card small { margin-top: 2px; color: var(--muted); font-size: 11px; }

.pension-toast {
    position: fixed;
    z-index: 1500;
    top: calc(18px + env(safe-area-inset-top));
    left: 50%;
    display: flex;
    width: min(460px, calc(100% - 28px));
    min-height: 52px;
    align-items: center;
    padding: 10px 12px;
    gap: 10px;
    color: #294d42;
    background: rgba(255, 255, 255, .98);
    border: 1px solid #d8e6df;
    border-radius: 11px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .16);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -14px);
    transition: opacity 180ms ease, transform 180ms ease;
}

.pension-toast.is-visible { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.pension-toast.is-error { color: #8e3942; border-color: #efcfd3; }
.pension-toast__icon { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; color: #fff; background: var(--green); border-radius: 50%; }
.pension-toast.is-error .pension-toast__icon { background: #c9515d; }
.pension-toast__icon svg { width: 17px; height: 17px; }
.pension-toast__copy { min-width: 0; flex: 1 1 auto; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.pension-toast__action { flex: 0 0 auto; padding: 7px 10px; color: #fff; background: var(--green); border-radius: 6px; font-size: 12px; font-weight: 800; }
.pension-toast__action:hover { color: #fff; background: var(--green-strong); }

.form-field:focus-within > span,
.pension-admin__fields label:focus-within > span { color: var(--green-strong); }

.directory-region-filter input:focus-visible,
.directory-region-filter select:focus-visible,
.directory-region-filter .custom-select__trigger:focus-visible {
    border-color: #9ec9b7 !important;
    box-shadow: 0 0 0 3px rgba(47, 125, 104, .14) !important;
}

@media (max-width: 1080px) {
    .header-actions { gap: 8px; }
    .language-switch a { min-width: 40px; min-height: 40px; padding: 0 4px; }
}

@media (max-width: 720px) {
    .pension-contact-rail { right: calc(10px + env(safe-area-inset-right)); bottom: calc(14px + env(safe-area-inset-bottom)); }
    .pension-contact-rail--with-admin,
    .pension-contact-rail--with-tools { right: 76px; }
    .pension-contact-rail__toggle,
    .pension-contact-rail__item > button { width: 48px; height: 48px; border-radius: 14px; }
    .pension-contact-rail__toggle > span,
    .pension-contact-rail__item > button > span { display: none; }
    .pension-contact-rail__card { right: calc(100% + 10px); width: 212px; padding: 12px; }
    .pension-contact-rail__card img { width: 186px; height: 186px; }
    .footer-bottom { display: grid; align-items: start; gap: 12px; }
    .footer-bottom > span { margin-top: 0; }
    .footer-records { justify-content: flex-start; margin-top: 0; }
    .footer-bottom > span,
    .footer-records > a,
    .footer-records > span { display: inline-flex; margin-top: 0; }
    .institution-card__consulted { justify-self: start; align-self: center; margin: 0; }
    .institution-summary__social { margin-top: 8px; }
}

@media (max-width: 520px) {
    .detail-page { padding: 24px 0 48px; }
    .detail-heading { margin-bottom: 16px; }
    .detail-heading h1 { font-size: 28px; }
    .pension-page-content { padding: 22px 18px; border-radius: 10px; }
    .pension-system-page { min-height: 500px; padding: 40px 0; }
    .pension-system-card { padding: 28px 18px; border-radius: 12px; }
    .pension-system-card__actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 24px; }
    .pension-system-card__actions .button { width: 100%; }
    .site-header__inner { gap: 8px; }
    .header-actions { gap: 5px; }
    .language-switch { min-height: 44px; padding: 2px; }
    .language-switch a { min-width: 40px; min-height: 40px; font-size: 10px; }
    .header-account { width: 44px; height: 44px; }
    .header-account .icon { width: 19px; height: 19px; }
    .site-header .brand { min-width: 0; max-width: calc(100vw - 142px); gap: 8px; }
    .brand__mark,
    .brand__image { width: 38px; height: 38px; }
    .brand__mark .icon { width: 21px; height: 21px; }
    .brand__name { font-size: 20px; }
    .brand__sub { display: none; }
    .mobile-menu-button { width: 44px; height: 44px; }
    .pension-toast { top: calc(10px + env(safe-area-inset-top)); min-height: 50px; }
    .pension-toast__copy { font-size: 12px; }
    .institution-summary__social > span,
    .institution-summary__social > button { min-height: 40px; padding: 4px 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .pension-skip-link,
    .language-switch a,
    .header-account,
    .institution-vote,
    .pension-contact-rail__toggle,
    .pension-contact-rail__item > button,
    .pension-contact-rail__items,
    .pension-contact-rail__card,
    .pension-toast { transition-duration: .01ms !important; }
}

/* Contact is part of the existing quick-tools rail, never a second floating bar. */
.pension-admin-rail__contact {
    position: relative;
    display: grid;
}

.pension-admin-rail__contact-panel {
    position: absolute;
    z-index: 2;
    right: calc(100% + 12px);
    bottom: 0;
    display: grid;
    width: min(286px, calc(100vw - 34px));
    gap: 12px;
    padding: 14px;
    color: var(--ink);
    background: rgba(255, 255, 255, .98);
    border: 1px solid #dce6e1;
    border-radius: 15px;
    box-shadow: 0 20px 48px rgba(15, 23, 42, .18);
    opacity: 0;
    pointer-events: none;
    transform: translateX(8px) scale(.97);
    transform-origin: right bottom;
    transition: opacity 180ms ease, transform 180ms ease;
}

.pension-admin-rail__contact.is-open .pension-admin-rail__contact-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0) scale(1);
}

.pension-admin-rail__contact-panel::after {
    position: absolute;
    right: -7px;
    bottom: 20px;
    width: 12px;
    height: 12px;
    content: "";
    background: #fff;
    border-top: 1px solid #dce6e1;
    border-right: 1px solid #dce6e1;
    transform: rotate(45deg);
}

.pension-admin-rail__contact-panel > header {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 1px 2px;
}

.pension-admin-rail__contact-panel > header > div {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.pension-admin-rail__contact-panel > header strong {
    color: #294d42;
    font-size: 15px;
    font-weight: 800;
}

.pension-admin-rail__contact-panel > header small {
    color: var(--muted);
    font-size: 11px;
}

.pension-admin-rail__contact-panel > header > button {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    place-items: center;
    color: var(--muted);
    background: #f4f8f6;
    border: 1px solid #e0ebe5;
    border-radius: 8px;
}

.pension-admin-rail__contact-panel > header > button:hover,
.pension-admin-rail__contact-panel > header > button:focus-visible {
    color: var(--green-strong);
    background: #eaf6f0;
    border-color: #c8e2d4;
    outline: 0;
}

.pension-admin-rail__contact-panel > header > button .icon {
    width: 15px;
    height: 15px;
}

.pension-admin-rail__contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.pension-admin-rail__contact-card {
    display: grid;
    min-width: 0;
    justify-items: center;
    padding: 8px;
    text-align: center;
    background: #f7fbf8;
    border: 1px solid #e1ece6;
    border-radius: 10px;
}

.pension-admin-rail__contact-card img {
    width: 112px;
    height: 112px;
    padding: 4px;
    object-fit: contain;
    background: #fff;
    border: 1px solid #edf1ef;
    border-radius: 7px;
}

.pension-admin-rail__contact-card strong {
    margin-top: 7px;
    color: #294d42;
    font-size: 12px;
    font-weight: 800;
}

.pension-admin-rail__contact-card small {
    margin-top: 1px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.35;
}

.pension-admin-rail__contact-link {
    display: flex;
    min-height: 38px;
    align-items: center;
    gap: 7px;
    padding: 0 10px;
    color: #fff;
    background: var(--green);
    border: 1px solid var(--green);
    border-radius: 8px;
    font-size: 12px;
    font-weight: 750;
}

.pension-admin-rail__contact-link:hover,
.pension-admin-rail__contact-link:focus-visible {
    color: #fff;
    background: var(--green-strong);
    border-color: var(--green-strong);
    outline: 0;
}

.pension-admin-rail__contact-link span {
    min-width: 0;
    flex: 1 1 auto;
}

.pension-admin-rail__contact-link .icon {
    width: 15px;
    height: 15px;
}

@media (max-width: 720px) {
    .pension-admin-rail__contact-panel {
        right: calc(100% + 10px);
        width: min(238px, calc(100vw - 78px));
        padding: 11px;
        gap: 9px;
    }

    .pension-admin-rail__contact-card img {
        width: 92px;
        height: 92px;
    }

    .pension-admin-rail__contact-panel > header strong { font-size: 14px; }
    .pension-admin-rail__contact-panel > header small { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .pension-admin-rail__contact-panel { transition-duration: .01ms !important; }
}

/* On phones the stage arrows and category filters are the compact gallery UI;
 * keep the thumbnail rail out of layout entirely. */
@media (max-width: 720px) {
    .institution-gallery .institution-gallery__rail,
    .institution-gallery.has-thumb-overflow .institution-gallery__rail {
        position: absolute !important;
        top: 0 !important;
        right: auto !important;
        left: 0 !important;
        display: none !important;
        width: 0 !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .institution-gallery,
    .institution-gallery--with-thumbs {
        padding-right: 7px;
    }

    .institution-gallery__thumb-scroll,
    .institution-gallery__thumbs {
        display: none !important;
    }
}

/* Institution detail navigator: a quiet, sticky index that keeps long
 * decision-oriented records easy to scan without competing with the content. */
.institution-section-nav {
    position: sticky;
    z-index: 18;
    top: 10px;
    margin: 18px 0 0;
    padding: 7px;
    background: rgba(255, 255, 255, .96);
    border: 1px solid #dfe8e3;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(30, 69, 57, .08);
    backdrop-filter: blur(14px);
}

.institution-section-nav__inner {
    display: grid;
    min-width: 0;
    grid-template-columns: 132px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
}

.institution-section-nav__label {
    display: grid;
    min-width: 0;
    min-height: 43px;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 5px 9px;
    color: #315f52;
    background: #f3f8f5;
    border: 1px solid #e0ebe5;
    border-radius: 8px;
}

.institution-section-nav__label > .icon {
    width: 17px;
    height: 17px;
    justify-self: center;
    color: var(--green);
}

.institution-section-nav__label > span {
    display: grid;
    min-width: 0;
    gap: 1px;
}

.institution-section-nav__label strong,
.institution-section-nav__label small {
    overflow: hidden;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.institution-section-nav__label strong {
    color: #294b41;
    font-size: 11px;
    font-weight: 850;
}

.institution-section-nav__label small {
    color: #7a8983;
    font-size: 9px;
}

.institution-section-nav__viewport {
    display: flex;
    min-width: 0;
    align-items: stretch;
    gap: 3px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.institution-section-nav__viewport::-webkit-scrollbar {
    display: none;
}

.institution-section-nav__viewport > a {
    position: relative;
    display: inline-flex;
    min-height: 43px;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    padding: 0 11px;
    color: #66766f;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
    transition: color 160ms ease, background-color 160ms ease;
}

.institution-section-nav__viewport > a::after {
    position: absolute;
    right: 11px;
    bottom: 4px;
    left: 11px;
    height: 2px;
    content: "";
    background: var(--green);
    border-radius: 999px;
    opacity: 0;
    transform: scaleX(.4);
    transition: opacity 160ms ease, transform 180ms ease;
}

.institution-section-nav__viewport > a .icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: #789087;
    transition: color 160ms ease;
}

.institution-section-nav__viewport > a:hover,
.institution-section-nav__viewport > a:focus-visible {
    color: #315f52;
    background: #f5f9f7;
}

.institution-section-nav__viewport > a:focus-visible {
    outline: 2px solid rgba(47, 125, 104, .42);
    outline-offset: -2px;
}

.institution-section-nav__viewport > a.is-active {
    color: var(--green-strong);
    background: #edf6f1;
}

.institution-section-nav__viewport > a.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

.institution-section-nav__viewport > a.is-active .icon {
    color: var(--green);
}

.pension-institution-page [data-institution-detail-section] {
    scroll-margin-top: 96px;
}

.pension-institution-page .institution-profile {
    top: 86px;
}

@media (max-width: 760px) {
    .institution-section-nav {
        top: 6px;
        margin-top: 12px;
        padding: 5px;
        border-radius: 10px;
    }

    .institution-section-nav__inner {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 4px;
    }

    .institution-section-nav__label {
        min-height: 40px;
        grid-template-columns: 1fr;
        padding: 5px;
    }

    .institution-section-nav__label > span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }

    .institution-section-nav__viewport > a {
        min-height: 40px;
        padding: 0 10px;
        font-size: 10px;
    }

    .pension-institution-page [data-institution-detail-section] {
        scroll-margin-top: 82px;
    }
}

/* Institution decision data: scoped to the detail article to avoid affecting
 * editor content and generic tables elsewhere in the theme. */
.institution-data {
    --institution-data-green: #2f7562;
    --institution-data-green-strong: #245b4e;
    --institution-data-green-soft: #edf6f1;
    --institution-data-ink: #263c36;
    --institution-data-muted: #6f7d77;
    --institution-data-line: #dfe8e3;
    --institution-data-warm: #faf8f2;
    margin: 0;
    padding: 0 34px 38px;
    color: var(--institution-data-ink);
    background: #fff;
    border-top: 1px solid var(--institution-data-line);
}

.institution-data,
.institution-data * {
    box-sizing: border-box;
}

.institution-data__heading {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 24px 0 20px;
    border-bottom: 1px solid var(--institution-data-line);
}

.institution-data__heading-icon {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    color: #fff;
    background: var(--institution-data-green);
    border-radius: 12px;
    box-shadow: 0 7px 18px rgba(36, 91, 78, .14);
}

.institution-data__heading-icon .icon {
    width: 20px;
    height: 20px;
}

.institution-data__heading > div,
.institution-data__section-title > div {
    min-width: 0;
}

.institution-data__heading h2 {
    margin: 0;
    color: var(--institution-data-ink);
    font-family: var(--font-display);
    font-size: 23px;
    font-weight: 800;
    line-height: 1.25;
}

.institution-data__heading p {
    margin: 4px 0 0;
    color: var(--institution-data-muted);
    font-size: 12px;
    line-height: 1.65;
}

.institution-data__section {
    padding: 24px 0;
    border-bottom: 1px solid var(--institution-data-line);
}

.institution-data__section:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.institution-data__section-title {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 15px;
}

.institution-data__section-title > span {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    color: var(--institution-data-green-strong);
    background: var(--institution-data-green-soft);
    border: 1px solid #d5e8df;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
}

.institution-data__section-title h3 {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--institution-data-ink);
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
}

.institution-data__section-title h3 > .icon {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    color: var(--institution-data-green);
    stroke-width: 2;
}

.institution-data__section-title h3 > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.institution-data__section-title p {
    margin: 2px 0 0;
    color: var(--institution-data-muted);
    font-size: 11px;
    line-height: 1.55;
}

.institution-data__overview {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(225px, .85fr);
    align-items: stretch;
    gap: 13px;
}

.institution-data__overview--bed-only {
    grid-template-columns: minmax(260px, 390px);
}

.institution-data__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    background: var(--institution-data-line);
    border: 1px solid var(--institution-data-line);
    border-radius: 10px;
}

.institution-data__facts > div {
    min-width: 0;
    padding: 12px 13px;
    background: #fffdfa;
}

.institution-data__facts dt {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 6px;
    color: var(--institution-data-muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.45;
}

.institution-data__facts dt .icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: var(--institution-data-green);
}

.institution-data__facts dd {
    min-width: 0;
    margin: 5px 0 0;
    color: var(--institution-data-ink);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.institution-data__bed {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: space-between;
    padding: 14px;
    background: linear-gradient(145deg, #f1f8f4 0%, #fffdfa 100%);
    border: 1px solid #d3e6dc;
    border-radius: 10px;
}

.institution-data__bed > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.institution-data__bed > header > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--institution-data-green-strong);
    font-size: 12px;
    font-weight: 800;
}

.institution-data__bed > header .icon {
    width: 15px;
    height: 15px;
}

.institution-data__bed > header em {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    padding: 3px 8px;
    color: #65736e;
    background: #f1f4f2;
    border: 1px solid #dbe3df;
    border-radius: 999px;
    font-size: 10px;
    font-style: normal;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.institution-data__bed > header em.is-available {
    color: #246b4f;
    background: #e8f6ee;
    border-color: #c8e7d5;
}

.institution-data__bed > header em.is-tight {
    color: #8a5d14;
    background: #fff6df;
    border-color: #f0ddad;
}

.institution-data__bed > header em.is-full {
    color: #a34444;
    background: #fff0ee;
    border-color: #f0ceca;
}

.institution-data__bed dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0 0;
}

.institution-data__bed dl > div {
    min-width: 0;
    padding: 9px 8px;
    text-align: center;
    background: rgba(255, 255, 255, .76);
    border: 1px solid rgba(207, 225, 216, .82);
    border-radius: 8px;
}

.institution-data__bed dt {
    color: var(--institution-data-green-strong);
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 800;
    line-height: 1.1;
}

.institution-data__bed dd {
    margin: 4px 0 0;
    color: var(--institution-data-muted);
    font-size: 10px;
    line-height: 1.35;
}

.institution-data__bed > p {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 11px 0 0;
    color: var(--institution-data-muted);
    font-size: 10px;
    line-height: 1.4;
}

.institution-data__bed > p .icon {
    width: 12px;
    height: 12px;
}

.institution-data__acceptance {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.institution-data__acceptance li {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    gap: 6px;
    padding: 6px 11px;
    color: #315f52;
    background: #f4f8f5;
    border: 1px solid #d7e7df;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.institution-data__acceptance .icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: var(--institution-data-green);
}

/* Dictionary-backed detail sections use compact editorial cards so a long,
 * administrator-defined option list remains scannable without looking like a
 * generic form control. */
.institution-data__dictionary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.institution-data__dictionary li {
    display: grid;
    min-width: 0;
    min-height: 48px;
    grid-template-columns: 27px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    padding: 9px 11px;
    color: #36584e;
    background: linear-gradient(145deg, #fbfdfc 0%, #f7faf8 100%);
    border: 1px solid #dce8e2;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.45;
    overflow-wrap: anywhere;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.institution-data__dictionary li:hover {
    border-color: #c6dcd1;
    box-shadow: 0 7px 18px rgba(36, 91, 78, .07);
    transform: translateY(-1px);
}

.institution-data__dictionary-icon {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    color: #fff;
    background: var(--institution-data-green);
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(36, 91, 78, .13);
}

.institution-data__dictionary-icon .icon {
    width: 13px;
    height: 13px;
    stroke-width: 2.5;
}

.institution-data__table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    background: #fff;
    border: 1px solid var(--institution-data-line);
    border-radius: 10px;
    -webkit-overflow-scrolling: touch;
}

.institution-data__table {
    width: 100%;
    max-width: 100%;
    margin: 0;
    color: var(--institution-data-ink);
    border: 0;
    border-spacing: 0;
    border-collapse: separate;
    table-layout: fixed;
    font-size: 12px;
    line-height: 1.55;
}

.institution-data__table caption {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.institution-data__table th,
.institution-data__table td {
    min-width: 0;
    padding: 11px 12px;
    overflow-wrap: anywhere;
    vertical-align: top;
    text-align: left;
    border: 0;
    border-bottom: 1px solid #e8eeeb;
}

.institution-data__table th {
    color: #536b63;
    background: var(--institution-data-warm);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .025em;
    white-space: nowrap;
}

.institution-data__table td + td,
.institution-data__table th + th {
    border-left: 1px solid #edf1ef;
}

.institution-data__table tbody tr:last-child td {
    border-bottom: 0;
}

.institution-data__table tbody tr {
    transition: background-color 160ms ease;
}

.institution-data__table tbody tr:hover {
    background: #fbfdfc;
}

.institution-data__table td > strong {
    color: #2d4940;
    font-size: 13px;
    font-weight: 800;
}

.institution-data__table td > p {
    margin: 4px 0 0;
    color: var(--institution-data-muted);
    font-size: 10px;
    line-height: 1.55;
}

.institution-data__table--rooms th:nth-child(1) { width: 18%; }
.institution-data__table--rooms th:nth-child(2) { width: 18%; }
.institution-data__table--rooms th:nth-child(3) { width: 23%; }
.institution-data__table--rooms th:nth-child(4) { width: 20%; }
.institution-data__table--rooms th:nth-child(5) { width: 21%; }
.institution-data__table--care th:nth-child(1) { width: 21%; }
.institution-data__table--care th:nth-child(2),
.institution-data__table--care th:nth-child(3) { width: 17%; }
.institution-data__table--care th:nth-child(4) { width: 45%; }
.institution-data__table--fees th:nth-child(1) { width: 20%; }
.institution-data__table--fees th:nth-child(2) { width: 21%; }
.institution-data__table--fees th:nth-child(3) { width: 23%; }
.institution-data__table--fees th:nth-child(4) { width: 36%; }

.institution-data__money {
    display: inline-flex;
    max-width: 100%;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 3px;
    color: #8b5c18;
}

.institution-data__money strong {
    color: #8b5c18;
    font-size: 15px;
    font-weight: 850;
    line-height: 1.25;
}

.institution-data__money small {
    color: #90744c;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.3;
}

.institution-data__stock,
.institution-data__fee-flags > span {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    justify-content: center;
    padding: 3px 8px;
    border: 1px solid #dce4e0;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
}

.institution-data__stock.is-available {
    color: #246b4f;
    background: #e9f6ef;
    border-color: #c9e6d6;
}

.institution-data__stock.is-tight {
    color: #8a5d14;
    background: #fff6df;
    border-color: #efdcaa;
}

.institution-data__stock.is-full {
    color: #a34444;
    background: #fff0ee;
    border-color: #efcbc6;
}

.institution-data__stock.is-unknown {
    color: #66736e;
    background: #f2f5f3;
    border-color: #dce4e0;
}

.institution-data__muted {
    color: #89938f;
    font-size: 11px;
}

.institution-data__inline-list {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.institution-data__inline-list li {
    padding: 2px 6px;
    color: #46665c;
    background: #f1f6f3;
    border-radius: 4px;
    font-size: 10px;
    line-height: 1.45;
}

.institution-data__fee-flags {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: 5px;
}

.institution-data__fee-flags > span.is-required {
    color: #9b493e;
    background: #fff2ee;
    border-color: #efd2cb;
}

.institution-data__fee-flags > span.is-optional {
    color: #626f69;
    background: #f3f5f4;
    border-color: #dfe5e2;
}

.institution-data__fee-flags > span.is-refundable {
    color: #246b4f;
    background: #e9f6ef;
    border-color: #c9e6d6;
}

.institution-data__fee-flags > span.is-nonrefundable {
    color: #8a5d14;
    background: #fff6df;
    border-color: #efdcaa;
}

.institution-data__capabilities {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.institution-data__capabilities > section {
    min-width: 0;
    padding: 14px;
    background: #fffdfa;
    border: 1px solid var(--institution-data-line);
    border-radius: 10px;
}

.institution-data__capabilities h4 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding-bottom: 11px;
    color: var(--institution-data-green-strong);
    border-bottom: 1px solid #e7ece9;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.35;
}

.institution-data__capabilities h4 .icon {
    width: 16px;
    height: 16px;
}

.institution-data__capability-group {
    display: grid;
    grid-template-columns: minmax(76px, .32fr) minmax(0, 1fr);
    gap: 9px;
    padding-top: 11px;
}

.institution-data__capability-group + .institution-data__capability-group {
    margin-top: 10px;
    border-top: 1px dashed #dfe7e3;
}

.institution-data__capability-group > strong {
    color: #52675f;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.65;
}

.institution-data__capability-group ul {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: 5px 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.institution-data__capability-group li {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
    color: #445b53;
    font-size: 11px;
    line-height: 1.55;
}

.institution-data__capability-group li .icon {
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    color: var(--institution-data-green);
}

.institution-data__transport {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.institution-data__transport > div {
    min-width: 0;
    padding: 12px 13px;
    background: var(--institution-data-warm);
    border: 1px solid #e7e4da;
    border-radius: 9px;
}

.institution-data__transport > div > span,
.institution-data__nearby > span {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--institution-data-green-strong);
    font-size: 11px;
    font-weight: 850;
    line-height: 1.4;
}

.institution-data__transport > div > span .icon,
.institution-data__nearby > span .icon {
    width: 14px;
    height: 14px;
}

.institution-data__transport > div > p {
    margin: 7px 0 0;
    color: #485c55;
    font-size: 12px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.institution-data__transport > .institution-data__nearby {
    grid-column: 1 / -1;
    background: #f4f8f5;
    border-color: #dce9e2;
}

.institution-data__nearby ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 9px 0 0;
    padding: 0;
    list-style: none;
}

.institution-data__nearby li {
    padding: 4px 8px;
    color: #496158;
    background: #fff;
    border: 1px solid #dce8e2;
    border-radius: 6px;
    font-size: 11px;
    line-height: 1.4;
}

.institution-data__notes {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: start;
    gap: 11px;
    padding: 14px 15px;
    color: #4d5c57;
    background: #fbf8ef;
    border: 1px solid #e9e0ca;
    border-left: 3px solid #b49a5c;
    border-radius: 8px;
}

.institution-data__notes > .icon {
    width: 34px;
    height: 34px;
    padding: 8px;
    color: #806d3f;
    background: #f3ead3;
    border-radius: 8px;
}

.institution-data__notes p {
    min-width: 0;
    margin: 0;
    font-size: 12px;
    line-height: 1.85;
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .institution-data {
        padding: 0 18px 28px;
    }

    .institution-data__heading {
        padding: 20px 0 17px;
    }

    .institution-data__section {
        padding: 20px 0;
    }

    .institution-data__overview,
    .institution-data__overview--bed-only,
    .institution-data__capabilities,
    .institution-data__transport {
        grid-template-columns: minmax(0, 1fr);
    }

    .institution-data__transport > .institution-data__nearby {
        grid-column: auto;
    }

    .institution-data__dictionary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .institution-data__table-wrap {
        overflow: visible;
        background: transparent;
        border: 0;
        border-radius: 0;
    }

    .institution-data__table,
    .institution-data__table tbody,
    .institution-data__table tr,
    .institution-data__table td {
        display: block;
        width: 100%;
        max-width: 100%;
    }

    .institution-data__table {
        table-layout: auto;
    }

    .institution-data__table thead {
        display: none;
    }

    .institution-data__table tbody {
        display: grid;
        gap: 10px;
    }

    .institution-data__table tr {
        min-width: 0;
        overflow: hidden;
        background: #fff;
        border: 1px solid var(--institution-data-line);
        border-radius: 9px;
    }

    .institution-data__table td,
    .institution-data__table td + td {
        display: grid;
        grid-template-columns: minmax(82px, 30%) minmax(0, 1fr);
        align-items: start;
        gap: 10px;
        min-width: 0;
        padding: 10px 12px;
        text-align: right;
        border: 0;
        border-bottom: 1px solid #e9eeeb;
    }

    .institution-data__table tbody tr:last-child td:not(:last-child) {
        border-bottom: 1px solid #e9eeeb;
    }

    .institution-data__table tbody tr td:last-child {
        border-bottom: 0;
    }

    .institution-data__table td::before {
        min-width: 0;
        color: var(--institution-data-muted);
        content: attr(data-label);
        font-size: 10px;
        font-weight: 800;
        line-height: 1.55;
        text-align: left;
    }

    .institution-data__table td > *,
    .institution-data__table td > strong,
    .institution-data__table td > p {
        min-width: 0;
        max-width: 100%;
        justify-self: end;
    }

    .institution-data__table td > p {
        grid-column: 2;
        text-align: right;
    }

    .institution-data__inline-list,
    .institution-data__fee-flags {
        justify-content: flex-end;
    }

    .institution-data__capability-group {
        grid-template-columns: minmax(72px, .25fr) minmax(0, 1fr);
    }
}

@media (max-width: 480px) {
    .institution-data {
        padding: 0 14px 23px;
    }

    .institution-data__heading {
        gap: 10px;
        padding: 17px 0 15px;
    }

    .institution-data__heading-icon {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
        border-radius: 10px;
    }

    .institution-data__heading-icon .icon {
        width: 18px;
        height: 18px;
    }

    .institution-data__heading h2 {
        font-size: 20px;
    }

    .institution-data__heading p {
        margin-top: 2px;
        font-size: 10px;
        line-height: 1.5;
    }

    .institution-data__section {
        padding: 17px 0;
    }

    .institution-data__section-title {
        gap: 9px;
        margin-bottom: 12px;
    }

    .institution-data__section-title > span {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
        font-size: 9px;
    }

    .institution-data__section-title h3 {
        font-size: 16px;
    }

    .institution-data__section-title h3 > .icon {
        width: 15px;
        height: 15px;
        flex-basis: 15px;
    }

    .institution-data__section-title p {
        font-size: 10px;
    }

    .institution-data__facts {
        grid-template-columns: minmax(0, 1fr);
    }

    .institution-data__facts > div {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(92px, auto);
        align-items: center;
        gap: 10px;
        padding: 10px 11px;
    }

    .institution-data__facts dd {
        margin: 0;
        font-size: 13px;
        text-align: right;
    }

    .institution-data__bed,
    .institution-data__capabilities > section {
        padding: 12px;
    }

    .institution-data__bed dt {
        font-size: 20px;
    }

    .institution-data__acceptance {
        gap: 6px;
    }

    .institution-data__acceptance li {
        min-height: 31px;
        padding: 5px 9px;
        font-size: 11px;
    }

    .institution-data__dictionary {
        grid-template-columns: minmax(0, 1fr);
        gap: 7px;
    }

    .institution-data__dictionary li {
        min-height: 44px;
        padding: 8px 10px;
        font-size: 11px;
    }

    .institution-data__table tbody {
        gap: 8px;
    }

    .institution-data__table td,
    .institution-data__table td + td {
        grid-template-columns: minmax(76px, 29%) minmax(0, 1fr);
        gap: 8px;
        padding: 9px 10px;
    }

    .institution-data__capability-group {
        grid-template-columns: minmax(0, 1fr);
        gap: 5px;
        padding-top: 9px;
    }

    .institution-data__transport > div {
        padding: 11px;
    }

    .institution-data__notes {
        grid-template-columns: 30px minmax(0, 1fr);
        gap: 9px;
        padding: 11px;
    }

    .institution-data__notes > .icon {
        width: 30px;
        height: 30px;
        padding: 7px;
    }

    .institution-data__notes p {
        font-size: 11px;
        line-height: 1.75;
    }
}

@media (prefers-reduced-motion: reduce) {
    .institution-data,
    .institution-data *,
    .institution-data *::before,
    .institution-data *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media (max-width: 1100px) {
    .featured-institutions__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .featured-institution-card__media {
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 780px) {
    .featured-institutions {
        padding: 22px 0 48px;
    }

    .featured-institutions__header {
        display: block;
        margin-bottom: 17px;
    }

    .featured-institutions__header h2 {
        font-size: 28px;
    }

    .featured-institutions__header-actions {
        justify-content: space-between;
        margin-top: 16px;
    }

    .featured-institutions__admin-note {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .featured-institutions__admin-note a {
        width: 100%;
        margin: 2px 0 0 25px;
    }

    .featured-institutions-empty {
        grid-template-columns: auto minmax(0, 1fr);
        padding: 22px;
    }

    .featured-institutions-empty .button {
        grid-column: 1 / -1;
        width: 100%;
    }
}

@media (max-width: 620px) {
    .featured-institutions__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 13px;
    }

    .featured-institution-card__body {
        padding: 14px 15px;
    }

    .featured-institution-card h3 {
        min-height: auto;
        font-size: 18px;
    }

    .featured-institution-card__body footer {
        margin-top: 11px;
    }

    .featured-carousel__controls {
        margin-top: 17px;
    }

    .featured-carousel__dots button {
        width: 28px;
        flex-basis: 28px;
    }

    .featured-carousel__dots {
        max-width: min(48vw, 184px);
    }

    .featured-carousel__status {
        position: absolute;
        width: 1px;
        height: 1px;
        min-width: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

@media (prefers-reduced-motion: reduce) {
    .featured-carousel__track,
    .featured-carousel__viewport,
    .featured-institution-card,
    .featured-institution-card__media img,
    .featured-carousel__controls button,
    .featured-carousel__dots button span {
        transition-duration: .01ms !important;
    }
}

/* Final narrow-header override: later account rules intentionally keep the
 * desktop/tablet avatar visible, while 360px and below reserve that space for
 * an untruncated brand. The same account action remains in Quick tools. */
@media (max-width: 360px) {
    .site-header .brand {
        max-width: calc(100vw - 78px);
    }

    .header-account {
        display: none;
    }
}
