.gm-page,
.gm-home {
    --gm-forest: #12322d;
    --gm-ink: #162824;
    --gm-muted: #5c706b;
    --gm-line: #dce7e2;
    --gm-surface: #f3f7f5;
    color: var(--gm-ink);
}

.gm-page *,
.gm-home * {
    box-sizing: border-box;
}

.gm-page {
    max-width: 1240px;
    margin: 0 auto;
    padding: clamp(28px, 5vw, 58px) 20px 72px;
}

.gm-hero {
    margin-bottom: 24px;
    padding: clamp(32px, 6vw, 58px);
    border-radius: 28px;
    background: var(--gm-forest);
    color: #fff;
}

.gm-eyebrow {
    margin: 0 0 12px;
    color: #a9d6c3;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.gm-hero h1 {
    max-width: 760px;
    margin: 0 0 14px;
    color: #fff;
    font-size: clamp(2.1rem, 4vw, 3.35rem);
    line-height: 1.08;
}

.gm-hero > p:not(.gm-eyebrow) {
    max-width: 750px;
    margin: 0;
    color: #dcebe5;
    font-size: 1.08rem;
}

.gm-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}

.gm-links a {
    padding: 11px 19px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    color: #fff;
    text-decoration: none;
}

.gm-links a:hover {
    background: #fff;
    color: var(--gm-forest);
}

.gm-featured {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(20px, 4vw, 35px);
    align-items: center;
    margin-bottom: 24px;
    padding: clamp(18px, 3vw, 28px);
    border: 1px solid var(--gm-line);
    border-radius: 24px;
    background: #fff;
}

.gm-featured-image {
    min-height: 330px;
    overflow: hidden;
    border-radius: 17px;
    background: var(--gm-surface);
}

.gm-featured-image img {
    display: block;
    width: 100%;
    height: 330px;
    object-fit: cover;
}

.gm-meta {
    margin: 0 0 8px;
    color: #547a6d;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.gm-featured h2 {
    margin: 0 0 12px;
    font-size: clamp(1.5rem, 3vw, 2.15rem);
    line-height: 1.18;
}

.gm-featured h2 a,
.gm-card h3 a {
    color: var(--gm-ink);
    text-decoration: none;
}

.gm-featured h2 a:hover,
.gm-card h3 a:hover {
    text-decoration: underline;
}

.gm-featured div > p:not(.gm-meta),
.gm-card div > p:not(.gm-meta) {
    color: var(--gm-muted);
}

.gm-read {
    display: inline-block;
    margin-top: 10px;
    padding: 12px 18px;
    border-radius: 10px;
    background: var(--gm-forest);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.gm-panel,
.gm-categories,
.gm-empty {
    margin-bottom: 24px;
    padding: clamp(20px, 3vw, 30px);
    border: 1px solid var(--gm-line);
    border-radius: 24px;
    background: #fff;
}

.gm-heading h2,
.gm-categories h2,
.gm-empty h2 {
    margin: 0 0 20px;
}

.gm-grid,
.gm-home-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.gm-card {
    overflow: hidden;
    border-radius: 16px;
    background: var(--gm-surface);
}

.gm-card-image {
    display: block;
    min-height: 160px;
    background: #e5eeea;
}

.gm-card-image img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.gm-card > div {
    padding: 16px;
}

.gm-card h3 {
    margin: 0 0 9px;
    font-size: 1.18rem;
    line-height: 1.25;
}

.gm-card div > p:last-child {
    margin: 0;
}

.gm-categories > div {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.gm-categories a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 15px;
    border-radius: 999px;
    background: var(--gm-surface);
    color: var(--gm-ink);
    font-weight: 700;
    text-decoration: none;
}

.gm-categories span {
    color: var(--gm-muted);
    font-size: .86rem;
}

.gm-empty p {
    color: var(--gm-muted);
}

.gm-home {
    margin: 28px 0;
    padding: clamp(20px, 3vw, 30px);
    border: 1px solid var(--gm-line);
    border-radius: 24px;
    background: #fff;
}

.gm-home-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 20px;
}

.gm-home-heading h2 {
    margin: 0;
}

.gm-home-heading a {
    color: var(--gm-forest);
    font-weight: 700;
}

.gm-home-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.gm-home-empty {
    margin: 0;
    color: var(--gm-muted);
}

@media (max-width: 900px) {
    .gm-featured,
    .gm-grid,
    .gm-home-grid {
        grid-template-columns: 1fr;
    }
}

