.rating-methodology {
    padding: clamp(20px, 4vw, 56px) 16px 64px;
    background: #f4f6f2;
    color: var(--al-text);
}

.rating-methodology__shell {
    display: grid;
    gap: clamp(42px, 7vw, 76px);
    width: min(1120px, 100%);
    margin: 0 auto;
}

.rating-methodology__hero,
.rating-methodology__editorial,
.rating-methodology__rule,
.rating-methodology__footer {
    border: 1px solid var(--al-border);
    border-radius: var(--al-radius-xl);
    background: #fff;
    box-shadow: var(--al-shadow-sm);
}

.rating-methodology__hero {
    padding: clamp(28px, 6vw, 72px);
    background:
        radial-gradient(circle at 88% 18%, rgba(241, 199, 71, 0.23), transparent 34%),
        linear-gradient(145deg, #08172d, #102c4c);
    color: #fff;
}

.rating-methodology__eyebrow {
    margin: 0 0 10px;
    color: #277653;
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.14em;
}

.rating-methodology__hero .rating-methodology__eyebrow { color: #f1c747; }
.rating-methodology .rating-methodology__hero h1 {
    max-width: 800px;
    margin: 0;
    color: #fff;
    font-size: clamp(2.35rem, 7vw, 5rem);
    line-height: 0.98;
}
.rating-methodology h2 { margin: 0 0 16px; font-size: clamp(1.75rem, 4vw, 2.8rem); line-height: 1.08; }
.rating-methodology h3 { margin: 0; font-size: 1.15rem; }
.rating-methodology p { line-height: 1.7; }

.rating-methodology__lede { max-width: 800px; margin: 24px 0 0; color: #dce5ef; font-size: clamp(1rem, 2vw, 1.22rem); }

.rating-methodology__legend,
.rating-methodology__cards,
.rating-methodology__sources,
.rating-methodology__criteria {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.rating-methodology__legend { margin-top: 34px; }
.rating-methodology__legend span { padding: 15px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: rgba(255,255,255,.08); color: #dce5ef; font-size: .84rem; }
.rating-methodology__legend strong { display: block; margin-bottom: 4px; color: #fff; }

.rating-methodology__cards article,
.rating-methodology__sources article {
    padding: 24px;
    border: 1px solid var(--al-border);
    border-radius: var(--al-radius-lg);
    background: #fff;
}

.rating-methodology__number { display: block; margin-bottom: 28px; color: #d1a713; font-size: 1.9rem; font-weight: 850; }

.rating-methodology__editorial { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr); gap: 34px; padding: clamp(24px, 5vw, 48px); }
.rating-methodology__criteria { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rating-methodology__criteria article { display: grid; gap: 6px; padding: 16px; border-radius: 12px; background: #f3f7f3; }
.rating-methodology__criteria strong { color: #126b45; font-size: 1.35rem; }
.rating-methodology__criteria span { color: #526178; font-size: .86rem; line-height: 1.45; }

.rating-methodology__sources a { color: #126b45; font-weight: 750; text-underline-offset: 3px; }
.rating-methodology__rule { margin-top: 18px; padding: 22px 24px; border-left: 5px solid #2d805a; }
.rating-methodology__rule p { margin-bottom: 0; }

.rating-methodology__steps { display: grid; gap: 12px; padding: 0; list-style: none; counter-reset: rating-step; }
.rating-methodology__steps li { counter-increment: rating-step; padding: 19px 20px 19px 58px; position: relative; border: 1px solid var(--al-border); border-radius: 14px; background: #fff; line-height: 1.6; }
.rating-methodology__steps li::before { content: counter(rating-step); position: absolute; left: 18px; top: 18px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #e7f2e9; color: #126b45; font-weight: 850; }

.rating-methodology__footer { padding: clamp(24px, 5vw, 44px); }

@media (max-width: 780px) {
    .rating-methodology__legend,
    .rating-methodology__cards,
    .rating-methodology__sources,
    .rating-methodology__editorial,
    .rating-methodology__criteria { grid-template-columns: 1fr; }

    .rating-methodology__hero { padding: 28px 22px; }
}
