
:root{--navy:#0b2d52;--teal:#18b8b0;--border:#e3e9ef;--muted:#667085}
.rl-hub-shell{width:min(1280px,calc(100% - 48px));margin:24px auto 54px;color:#25384c}
.rl-hub-bc{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px;font-size:13px;color:#7a8797}.rl-hub-bc a{color:#667085;text-decoration:none}
.rl-hub-hero{display:grid;grid-template-columns:1.4fr .6fr;align-items:center;gap:28px;padding:36px 42px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(135deg,#fff,#f7fbfb)}
.rl-hub-hero h1{margin:0 0 12px;color:var(--navy);font-size:42px;line-height:1.05}.rl-hub-hero p{margin:0;max-width:650px;font-size:17px;line-height:1.55;color:#4e5f72}
.rl-hub-art{display:flex;justify-content:center;gap:12px}.rl-hub-art b{width:76px;height:90px;display:flex;align-items:center;justify-content:center;border:1px solid #dce9ea;border-radius:16px;background:#fff;color:var(--teal);font-size:26px;box-shadow:0 12px 30px rgba(20,56,86,.08)}
.rl-hub-section{margin-top:28px;padding:24px;border:1px solid var(--border);border-radius:16px;background:#fff}.rl-hub-section h2,.rl-hub-cta h2{margin:0 0 16px;color:var(--navy);font-size:22px}
.rl-hub-topic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.rl-hub-topic{display:flex;gap:12px;padding:18px;border:1px solid var(--border);border-radius:13px;color:inherit;text-decoration:none}.rl-hub-topic.off{opacity:.55}.rl-hub-topic i{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:#eaf9f8;color:var(--teal);font-style:normal}.rl-hub-topic h3{margin:1px 0 5px;color:var(--navy);font-size:15px}.rl-hub-topic p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}
.rl-hub-sub .rl-hub-topic-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.rl-hub-sub .rl-hub-topic{padding:14px;align-items:center}.rl-hub-sub p{display:none}
.rl-hub-articles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.rl-hub-article{overflow:hidden;border:1px solid var(--border);border-radius:13px;color:inherit;text-decoration:none}.rl-hub-article .media{height:145px;background:linear-gradient(135deg,#eff7f7,#f5f7f9)}.rl-hub-article .media img{width:100%;height:100%;object-fit:cover}.rl-hub-article .body{padding:14px}.rl-hub-article h3{margin:0 0 7px;color:var(--navy);font-size:15px;line-height:1.28}.rl-hub-article p{margin:0 0 12px;color:var(--muted);font-size:12.5px;line-height:1.45}.rl-hub-article time,.rl-hub-list time{color:#8a95a3;font-size:11px}
.rl-hub-list a{display:flex;justify-content:space-between;gap:18px;padding:13px 4px;border-bottom:1px solid var(--border);color:var(--navy);font-weight:600;font-size:14px;text-decoration:none}
.rl-hub-cta{margin-top:28px;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 28px;border:1px solid #d8eeee;border-radius:16px;background:linear-gradient(90deg,#f4fbfb,#eef7fa)}.rl-hub-cta h2{margin-bottom:7px}.rl-hub-cta p{margin:0;color:#5d6d7d}.rl-hub-cta>a{display:inline-flex;min-height:44px;padding:0 20px;align-items:center;border-radius:9px;background:var(--teal);color:#fff!important;text-decoration:none!important;font-weight:700;font-size:13px}.rl-hub-cta.calc>a{background:var(--navy)}
@media(max-width:980px){.rl-hub-hero{grid-template-columns:1fr}.rl-hub-art{display:none}.rl-hub-topic-grid,.rl-hub-sub .rl-hub-topic-grid,.rl-hub-articles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.rl-hub-shell{width:min(100% - 20px,1120px);margin-top:18px}.rl-hub-hero{padding:25px 20px}.rl-hub-hero h1{font-size:31px}.rl-hub-topic-grid,.rl-hub-sub .rl-hub-topic-grid,.rl-hub-articles{grid-template-columns:1fr}.rl-hub-cta{flex-direction:column;align-items:flex-start}.rl-hub-cta>a{width:100%;justify-content:center}.rl-hub-list a{flex-direction:column;gap:4px}}


/* =========================================================
   v0.1.1 — Hub page title ownership
   Content Hub owns the single H1 inside .rl-hub-hero.
   Hide common WordPress/theme-generated page titles only on hub pages.
   ========================================================= */
.rl-content-hub-page .wp-block-post-title,
.rl-content-hub-page main > .entry-header,
.rl-content-hub-page article.page > .entry-header,
.rl-content-hub-page .site-main > header.page-header,
.rl-content-hub-page .site-main > .page-header{
    display:none !important;
}

/* Preserve the H1 inside our own hero. */
.rl-content-hub-page .rl-hub-hero h1{
    display:block !important;
}


/* v0.1.1 — stronger visual hierarchy for hub topic cards */
.rl-hub-topic:not(.off){
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.rl-hub-topic:not(.off):hover{
    transform:translateY(-2px);
    border-color:#b9e8e5;
    box-shadow:0 10px 24px rgba(20,56,86,.07);
}


/* =========================================================
   v0.1.2 — Automatic thematic category sections
   ========================================================= */
.rl-hub-topic-sections{
    margin-top:30px;
}
.rl-hub-topic-sections-title{
    margin:0 0 12px;
}
.rl-hub-topic-sections-title h2{
    margin:0;
    color:var(--navy);
    font-size:24px;
}
.rl-hub-category-section{
    margin-top:14px;
}
.rl-hub-section-heading-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:16px;
}
.rl-hub-section-heading-row h2{
    margin:0;
}
.rl-hub-section-all{
    flex:0 0 auto;
    color:var(--teal);
    font-size:13px;
    font-weight:700;
    text-decoration:none;
}
.rl-hub-category-section .rl-hub-article .media{
    height:118px;
}
.rl-hub-category-section .rl-hub-article p{
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

@media(max-width:640px){
    .rl-hub-section-heading-row{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }
}


/* =========================================================
   v0.1.5 — Hub page vertical alignment
   Remove theme/template whitespace left after the native page title is hidden.
   Scope: Content Hub pages only.
   ========================================================= */
.rl-content-hub-page .entry-content,
.rl-content-hub-page .wp-block-post-content{
    margin-top:0 !important;
    padding-top:0 !important;
}

.rl-content-hub-page main,
.rl-content-hub-page .site-main{
    padding-top:0 !important;
}

.rl-content-hub-page .rl-hub-shell{
    margin-top:16px !important;
}

/* Some block themes leave an empty spacer directly before post content. */
.rl-content-hub-page .wp-block-post-content > .wp-block-spacer:first-child,
.rl-content-hub-page .entry-content > .wp-block-spacer:first-child{
    display:none !important;
}

/* Linked subtopic cards get normal active-state contrast. */
.rl-content-hub-page .rl-hub-topic.is-linked{
    cursor:pointer;
    opacity:1;
}
.rl-content-hub-page .rl-hub-topic.is-linked:hover{
    border-color:#9edfdc;
    box-shadow:0 8px 22px rgba(20,56,86,.07);
}


/* =========================================================
   v0.1.6 — Content category archive
   Compact SEO-friendly article grid instead of full-post stream.
   ========================================================= */
.rl-content-category-archive .wp-site-blocks,
.rl-content-category-archive .site{
    min-height:auto;
}

.rl-category-shell{
    width:min(1280px,calc(100% - 48px));
    margin:34px auto 56px;
    color:#25384c;
}

.rl-category-hero{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin:16px 0 24px;
    padding:28px 30px;
    border:1px solid var(--border);
    border-radius:16px;
    background:linear-gradient(135deg,#fff,#f7fbfb);
}
.rl-category-eyebrow{
    display:block;
    margin-bottom:7px;
    color:var(--teal);
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.rl-category-hero h1{
    margin:0;
    color:var(--navy);
    font-size:34px;
    line-height:1.1;
}
.rl-category-hero p,
.rl-category-description{
    max-width:680px;
    margin:9px 0 0;
    color:var(--muted);
    font-size:14px;
    line-height:1.55;
}
.rl-category-description p{margin:0}
.rl-category-back{
    flex:0 0 auto;
    color:var(--teal);
    font-size:13px;
    font-weight:700;
    text-decoration:none;
}

.rl-category-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}
.rl-category-card{
    min-width:0;
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
}
.rl-category-card-link{
    height:100%;
    display:flex;
    flex-direction:column;
    color:inherit;
    text-decoration:none;
}
.rl-category-card-media{
    height:168px;
    overflow:hidden;
    background:linear-gradient(135deg,#eff7f7,#f5f7f9);
}
.rl-category-card-media img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.rl-category-card-body{
    flex:1;
    display:flex;
    flex-direction:column;
    padding:16px;
}
.rl-category-card h2{
    margin:0 0 8px;
    color:var(--navy);
    font-size:17px;
    line-height:1.3;
}
.rl-category-card p{
    margin:0 0 16px;
    color:var(--muted);
    font-size:13px;
    line-height:1.5;
}
.rl-category-card-meta{
    margin-top:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    color:#8a95a3;
    font-size:11px;
}
.rl-category-card-meta span{
    color:var(--teal);
    font-weight:700;
}
.rl-category-card:hover{
    border-color:#b8e5e2;
    box-shadow:0 10px 25px rgba(20,56,86,.06);
}

.rl-category-pagination{
    margin-top:28px;
}
.rl-category-pagination .nav-links{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
.rl-category-pagination a,
.rl-category-pagination span{
    min-width:38px;
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 11px;
    border:1px solid var(--border);
    border-radius:8px;
    color:var(--navy);
    text-decoration:none;
}
.rl-category-pagination .current{
    border-color:var(--teal);
    background:#eaf9f8;
    color:#118f89;
}

.rl-category-empty{
    padding:28px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
}
.rl-category-empty h2{margin:0 0 6px;color:var(--navy)}
.rl-category-empty p{margin:0;color:var(--muted)}

@media(max-width:820px){
    .rl-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .rl-category-hero{align-items:flex-start;flex-direction:column}
}
@media(max-width:560px){
    .rl-category-shell{width:min(100% - 20px,1040px);margin-top:20px}
    .rl-category-hero{padding:22px 18px}
    .rl-category-hero h1{font-size:28px}
    .rl-category-grid{grid-template-columns:1fr}
    .rl-category-card-media{height:auto;aspect-ratio:16/8}
}


/* =========================================================
   v0.1.7 — Branded RaschetLab footer for category archives
   Replaces the theme's default "Сайт работает на WordPress" footer.
   ========================================================= */
.rl-hub-brand-footer{
    margin-top:54px;
    border-top:1px solid var(--border);
    background:#fff;
}
.rl-hub-brand-footer-inner{
    width:min(1280px,calc(100% - 48px));
    margin:0 auto;
    display:grid;
    grid-template-columns:1.5fr .85fr .9fr 1.15fr;
    gap:40px;
    padding:36px 0 28px;
}
.rl-hub-brand-footer-brand p{
    max-width:280px;
    margin:12px 0 0;
    color:#7a8797;
    font-size:12px;
    line-height:1.5;
}
.rl-hub-brand-footer-logo{
    display:inline-flex;
    align-items:center;
    gap:9px;
    color:var(--navy);
    text-decoration:none;
}
.rl-hub-brand-mark{
    width:36px;
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#eaf9f8;
    color:var(--teal);
    font-size:22px;
    line-height:1;
}
.rl-hub-brand-name{
    font-size:24px;
    line-height:1;
    font-weight:800;
    letter-spacing:-.03em;
}
.rl-hub-brand-name span{
    color:var(--teal);
}
.rl-hub-brand-footer-col{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
}
.rl-hub-brand-footer-col h2{
    margin:0 0 6px;
    color:var(--navy);
    font-size:14px;
}
.rl-hub-brand-footer-col a{
    color:#566678;
    font-size:12.5px;
    line-height:1.35;
    text-decoration:none;
}
.rl-hub-brand-footer-col a:hover{
    color:var(--teal);
}
.rl-hub-brand-footer-bottom{
    width:min(1280px,calc(100% - 48px));
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:18px 0 24px;
    border-top:1px solid var(--border);
    color:#8a95a3;
    font-size:11px;
}

@media(max-width:820px){
    .rl-hub-brand-footer-inner{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:28px;
    }
}
@media(max-width:560px){
    .rl-hub-brand-footer-inner{
        width:min(100% - 20px,1040px);
        grid-template-columns:1fr;
        gap:24px;
        padding-top:28px;
    }
    .rl-hub-brand-footer-bottom{
        width:min(100% - 20px,1040px);
        flex-direction:column;
        gap:6px;
    }
}


/* =========================================================
   v0.1.9 — Compact vertical start for visual Content Hub pages.
   WordPress theme leaves a large header/content gap on normal Pages.
   Scope: visual hub Pages only. Category archives, calculators and posts
   are intentionally untouched.
   ========================================================= */
@media (min-width: 981px){
    .rl-content-hub-page .rl-hub-shell{
        position:relative;
        top:-145px;
        margin-bottom:-145px !important;
    }
}

@media (min-width: 641px) and (max-width: 980px){
    .rl-content-hub-page .rl-hub-shell{
        position:relative;
        top:-70px;
        margin-bottom:-70px !important;
    }
}

@media (max-width: 640px){
    .rl-content-hub-page .rl-hub-shell{
        position:relative;
        top:0;
        margin-top:12px !important;
        margin-bottom:42px !important;
    }
}


/* =========================================================
   v0.1.11 — Dedicated Page Hub template + full-width desktop canvas
   Hub Pages no longer depend on the theme's post-content container.
   ========================================================= */
.rl-content-hub-page .rl-hub-page-template{
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
}

.rl-content-hub-page .rl-hub-page-template .rl-hub-shell{
    position:static !important;
    top:auto !important;
    width:min(1280px,calc(100% - 48px));
    max-width:none;
    margin:24px auto 56px !important;
}

/* Neutralise common theme wrappers if a theme applies content constraints
   around main/page templates. Scope is strictly limited to Content Hub pages. */
.rl-content-hub-page main.rl-hub-page-template,
.rl-content-hub-page .rl-hub-page-template,
.rl-content-hub-page .rl-hub-page-template > .rl-hub-shell{
    box-sizing:border-box;
}

/* Slightly more horizontal presence on desktop, closer to approved layout. */
@media (min-width:1180px){
    .rl-content-hub-page .rl-hub-hero{
        grid-template-columns:1.18fr .82fr;
        padding:38px 46px;
    }
    .rl-content-hub-page .rl-hub-section{
        padding:26px 28px;
    }
    .rl-content-hub-page .rl-hub-articles{
        gap:16px;
    }
    .rl-content-hub-page .rl-hub-article .media{
        height:164px;
    }
}

@media (max-width:980px){
    .rl-content-hub-page .rl-hub-page-template .rl-hub-shell{
        width:min(100% - 32px,1280px);
        margin-top:18px !important;
    }
}

@media (max-width:640px){
    .rl-content-hub-page .rl-hub-page-template .rl-hub-shell{
        width:min(100% - 20px,1280px);
        margin-top:12px !important;
        margin-bottom:42px !important;
    }
}


/* =========================================================
   v0.1.12 — Manual Hub template site shell
   ========================================================= */
.rl-site-header{
    width:100%;
    border-bottom:1px solid var(--border);
    background:#fff;
}
.rl-site-header-inner{
    width:min(1280px,calc(100% - 48px));
    min-height:76px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}
.rl-site-brand{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--navy);
    text-decoration:none;
    flex:0 0 auto;
}
.rl-site-brand-logo,
.rl-site-brand-logo .custom-logo-link{
    display:inline-flex;
    align-items:center;
}
.rl-site-brand-logo img{
    width:auto;
    max-width:190px;
    max-height:48px;
}
.rl-site-brand-mark{
    width:38px;
    height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#eaf9f8;
    color:var(--teal);
    font-size:22px;
}
.rl-site-brand-text{
    color:var(--navy);
    font-size:25px;
    line-height:1;
    font-weight:800;
    letter-spacing:-.03em;
}
.rl-site-brand-text span,
.rl-site-footer-brand span{
    color:var(--teal);
}
.rl-site-nav{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:30px;
}
.rl-site-nav a{
    position:relative;
    padding:28px 0 25px;
    color:#26384c;
    font-size:14px;
    font-weight:600;
    line-height:1;
    text-decoration:none;
    white-space:nowrap;
}
.rl-site-nav a:hover{
    color:var(--teal);
}

.rl-site-footer{
    margin-top:56px;
    border-top:1px solid var(--border);
    background:#fff;
}
.rl-site-footer-inner,
.rl-site-footer-bottom{
    width:min(1280px,calc(100% - 48px));
    margin:0 auto;
}
.rl-site-footer-inner{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:40px;
    padding:32px 0 26px;
}
.rl-site-footer-brand{
    color:var(--navy);
    font-size:22px;
    line-height:1;
    font-weight:800;
    text-decoration:none;
}
.rl-site-footer-inner p{
    max-width:340px;
    margin:10px 0 0;
    color:#7a8797;
    font-size:12px;
    line-height:1.5;
}
.rl-site-footer-inner nav{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:12px 22px;
}
.rl-site-footer-inner nav a{
    color:#566678;
    font-size:12.5px;
    text-decoration:none;
}
.rl-site-footer-inner nav a:hover{
    color:var(--teal);
}
.rl-site-footer-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:17px 0 22px;
    border-top:1px solid var(--border);
    color:#8a95a3;
    font-size:11px;
}

@media(max-width:980px){
    .rl-site-header-inner{
        width:min(100% - 32px,1280px);
        min-height:68px;
    }
    .rl-site-nav{
        gap:18px;
        overflow-x:auto;
    }
    .rl-site-nav a{
        padding:25px 0 22px;
        font-size:13px;
    }
    .rl-site-footer-inner,
    .rl-site-footer-bottom{
        width:min(100% - 32px,1280px);
    }
}

@media(max-width:640px){
    .rl-site-header-inner{
        width:min(100% - 20px,1280px);
        min-height:62px;
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
        padding:10px 0 0;
    }
    .rl-site-nav{
        width:100%;
        justify-content:flex-start;
        padding-bottom:7px;
    }
    .rl-site-nav a{
        padding:9px 0 12px;
    }
    .rl-site-footer-inner,
    .rl-site-footer-bottom{
        width:min(100% - 20px,1280px);
    }
    .rl-site-footer-inner{
        flex-direction:column;
        gap:22px;
    }
    .rl-site-footer-inner nav{
        justify-content:flex-start;
    }
    .rl-site-footer-bottom{
        align-items:flex-start;
        flex-direction:column;
        gap:5px;
    }
}


/* =========================================================
   v0.1.16 — Header custom-logo repair
   WordPress the_custom_logo() outputs its own <a>. In v0.1.15 that link was
   nested inside .rl-site-brand, producing invalid HTML and an uncontrolled
   full-size logo. The logo is now rendered as the attachment image itself.
   ========================================================= */
.rl-site-brand{
    max-width:220px;
    min-width:0;
}
.rl-site-logo-img{
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:190px !important;
    max-height:48px !important;
    object-fit:contain;
}
.rl-site-header-inner{
    overflow:visible;
}
.rl-site-nav{
    min-width:0;
}

@media(max-width:640px){
    .rl-site-logo-img{
        max-width:165px !important;
        max-height:42px !important;
    }
}


/* =========================================================
   v0.1.17 — Visual Alignment
   Desktop refinement toward the approved RaschetLab Hub layout.
   Architecture is intentionally unchanged.
   ========================================================= */

/* Canvas */
.rl-content-hub-page{
    background:#f7f9fb;
}
.rl-content-hub-page .rl-hub-page-template{
    background:#f7f9fb;
}
.rl-content-hub-page .rl-hub-page-template .rl-hub-shell{
    width:min(1280px,calc(100% - 48px));
    margin:22px auto 52px !important;
}

/* Header */
.rl-site-header{
    border-bottom:1px solid #e8edf2;
    box-shadow:none;
}
.rl-site-header-inner{
    min-height:68px;
}
.rl-site-logo-img{
    max-width:176px !important;
    max-height:43px !important;
}
.rl-site-nav{
    gap:28px;
}
.rl-site-nav a{
    padding:25px 0 23px;
    font-size:13.5px;
    font-weight:600;
    color:#23364c;
}
.rl-site-nav a:hover,
.rl-site-nav a.is-active{
    color:var(--teal);
}
.rl-site-nav a.is-active::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:2px;
    border-radius:2px;
    background:var(--teal);
}

/* Breadcrumbs */
.rl-hub-bc{
    margin-bottom:14px;
    font-size:12px;
    color:#8995a3;
}
.rl-hub-bc a{
    color:#7f8b99;
}

/* Hero */
.rl-hub-hero{
    min-height:176px;
    grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
    gap:28px;
    padding:28px 38px;
    overflow:hidden;
    border:1px solid #e4eaf0;
    border-radius:15px;
    background:linear-gradient(110deg,#fff 0%,#fbfdfd 58%,#f4fafa 100%);
}
.rl-hub-hero-copy{
    align-self:center;
}
.rl-hub-hero h1{
    margin:0 0 10px;
    font-size:40px;
    line-height:1.08;
    letter-spacing:-.02em;
}
.rl-hub-hero p{
    max-width:650px;
    font-size:16px;
    line-height:1.5;
}
.rl-hub-hero-image{
    align-self:stretch;
    min-height:120px;
    margin:-28px -38px -28px 0;
    overflow:hidden;
}
.rl-hub-hero-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}
.rl-hub-art{
    justify-content:flex-end;
    align-items:center;
    gap:10px;
    padding-right:6px;
}
.rl-hub-art b{
    width:68px;
    height:72px;
    border-radius:14px;
    box-shadow:0 10px 24px rgba(20,56,86,.06);
    font-size:23px;
}

/* Sections */
.rl-hub-section{
    margin-top:22px;
    padding:22px 24px;
    border-color:#e4eaf0;
    border-radius:14px;
    box-shadow:0 1px 0 rgba(12,45,82,.015);
}
.rl-hub-section h2,
.rl-hub-cta h2{
    margin-bottom:14px;
    font-size:20px;
    letter-spacing:-.01em;
}

/* Topic cards */
.rl-hub-topic-grid{
    gap:10px;
}
.rl-hub-topic{
    min-height:82px;
    align-items:flex-start;
    gap:11px;
    padding:15px 16px;
    border-color:#e6ebf0;
    border-radius:11px;
    background:#fff;
}
.rl-hub-topic i{
    flex:0 0 34px;
    width:34px;
    height:34px;
    border-radius:10px;
    font-size:15px;
}
.rl-hub-topic h3{
    margin:1px 0 4px;
    font-size:14px;
    line-height:1.3;
}
.rl-hub-topic p{
    font-size:12px;
    line-height:1.4;
}
.rl-hub-topic.off{
    opacity:.47;
}
.rl-hub-sub .rl-hub-topic{
    min-height:54px;
    padding:11px 13px;
}

/* Article cards */
.rl-hub-articles{
    gap:12px;
}
.rl-hub-article{
    border-color:#e4eaf0;
    border-radius:11px;
    background:#fff;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.rl-hub-article:hover{
    transform:translateY(-2px);
    border-color:#bfe5e3;
    box-shadow:0 10px 24px rgba(20,56,86,.055);
}
.rl-hub-article .media{
    height:170px;
}
.rl-hub-article .body{
    padding:13px 14px 14px;
}
.rl-hub-article h3{
    margin-bottom:6px;
    font-size:14.5px;
    line-height:1.3;
}
.rl-hub-article p{
    margin-bottom:10px;
    font-size:12px;
    line-height:1.42;
}

/* CTA */
.rl-hub-cta{
    margin-top:22px;
    padding:20px 24px;
    border-radius:13px;
    background:linear-gradient(90deg,#f2fbfb,#edf8fa);
}
.rl-hub-cta>a{
    min-width:210px;
    min-height:42px;
    justify-content:center;
    border-radius:8px;
}

/* Thematic sections */
.rl-hub-topic-sections{
    margin-top:24px;
}
.rl-hub-topic-sections-title h2{
    font-size:22px;
}
.rl-hub-category-section{
    margin-top:12px;
}
.rl-hub-category-section .rl-hub-article .media{
    height:145px;
}

/* Footer */
.rl-site-footer{
    margin-top:42px;
}
.rl-site-footer-inner{
    padding:28px 0 24px;
}
.rl-site-footer-bottom{
    padding:15px 0 20px;
}

/* Category archive alignment with Hub pages */
.rl-category-shell{
    width:min(1280px,calc(100% - 48px));
    margin:24px auto 52px;
}
.rl-category-hero{
    margin:14px 0 22px;
    padding:24px 28px;
    border-radius:14px;
}
.rl-category-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}
.rl-category-card-media{
    height:156px;
}

/* Tablet/mobile keep the existing adaptive architecture. */
@media(max-width:980px){
    .rl-hub-hero{
        grid-template-columns:1fr;
        min-height:0;
    }
    .rl-hub-hero-image{
        display:none;
    }
    .rl-category-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:640px){
    .rl-site-logo-img{
        max-width:154px !important;
        max-height:40px !important;
    }
    .rl-hub-hero{
        padding:23px 19px;
    }
    .rl-hub-hero h1{
        font-size:30px;
    }
    .rl-hub-article .media{
        height:auto;
        aspect-ratio:16/9;
    }
    .rl-category-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   v0.1.19 — Mobile Hub polish (built directly on v0.1.17)
   Scope: <= 640px only. Desktop v0.1.17 is intentionally untouched.
   ========================================================= */
@media (max-width: 640px){

    /* HEADER */
    .rl-site-header-inner{
        width:calc(100% - 28px);
        min-height:auto;
        margin:0 auto;
        padding:12px 0 8px;
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        gap:8px;
    }

    .rl-site-brand{
        max-width:170px;
    }

    .rl-site-logo-img{
        max-width:145px !important;
        max-height:38px !important;
    }

    .rl-site-nav{
        width:100%;
        display:flex;
        flex-wrap:wrap;
        justify-content:flex-start;
        gap:0 20px;
        overflow:visible;
        padding:0;
    }

    .rl-site-nav a{
        flex:0 0 auto;
        padding:8px 0 10px;
        font-size:12.5px;
        line-height:1.2;
        white-space:nowrap;
    }

    .rl-site-nav a.is-active::after{
        height:2px;
    }

    /* MAIN WIDTH */
    .rl-content-hub-page .rl-hub-page-template .rl-hub-shell{
        width:calc(100% - 24px);
        margin:14px auto 36px !important;
    }

    .rl-hub-bc{
        margin-bottom:10px;
        font-size:11px;
    }

    /* HERO */
    .rl-content-hub-page .rl-hub-hero{
        display:grid;
        grid-template-columns:1fr;
        gap:0;
        min-height:0;
        padding:22px 18px 0 !important;
        overflow:hidden;
        border-radius:14px;
    }

    .rl-hub-hero-copy{
        padding-right:0 !important;
        padding-bottom:18px;
    }

    .rl-hub-hero h1{
        margin-bottom:8px;
        font-size:28px;
        line-height:1.08;
    }

    .rl-hub-hero p{
        font-size:14px;
        line-height:1.5;
    }

    /* Featured image stays visible on mobile */
    .rl-content-hub-page .rl-hub-hero-image{
        display:block !important;
        width:calc(100% + 36px);
        height:155px;
        min-height:155px;
        margin:0 -18px !important;
        overflow:hidden;
        background:#f7fbfb;
    }

    .rl-content-hub-page .rl-hub-hero-image img{
        width:100%;
        height:100%;
        display:block;
        object-fit:cover;
        object-position:center;
    }

    /* Hide the old symbol fallback on mobile if no image */
    .rl-content-hub-page .rl-hub-art{
        display:none !important;
    }

    /* SECTIONS */
    .rl-hub-section{
        margin-top:16px;
        padding:18px 16px;
        border-radius:13px;
    }

    .rl-hub-section h2,
    .rl-hub-cta h2{
        margin-bottom:12px;
        font-size:18px;
        line-height:1.25;
    }

    /* TOPIC CARDS */
    .rl-hub-topic-grid,
    .rl-hub-sub .rl-hub-topic-grid{
        grid-template-columns:1fr;
        gap:8px;
    }

    .rl-hub-topic{
        min-height:0;
        padding:12px 13px;
        gap:10px;
        align-items:center;
    }

    .rl-hub-topic i{
        flex:0 0 32px;
        width:32px;
        height:32px;
    }

    .rl-hub-topic h3{
        margin:0 0 3px;
        font-size:13.5px;
    }

    .rl-hub-topic p{
        font-size:11.5px;
        line-height:1.35;
    }

    /* CALCULATOR CTA */
    .rl-hub-cta{
        margin-top:16px;
        padding:18px 16px;
        gap:16px;
        border-radius:13px;
    }

    .rl-hub-cta p{
        font-size:13px;
        line-height:1.45;
    }

    .rl-hub-cta > a{
        width:100%;
        min-height:42px;
        padding:0 12px;
        justify-content:center;
        text-align:center;
        font-size:12px;
    }

    /* ARTICLES */
    .rl-hub-articles{
        grid-template-columns:1fr;
        gap:10px;
    }

    .rl-hub-article .media{
        height:auto;
        aspect-ratio:16/9;
    }

    .rl-hub-article .body{
        padding:13px;
    }

    .rl-hub-article h3{
        font-size:14px;
        line-height:1.3;
    }

    .rl-hub-article p{
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:3;
        overflow:hidden;
        margin-bottom:9px;
        font-size:12px;
        line-height:1.4;
    }

    /* ARTICLE TOPIC SECTIONS */
    .rl-hub-topic-sections{
        margin-top:18px;
    }

    .rl-hub-topic-sections-title h2{
        font-size:19px;
    }

    .rl-hub-section-heading-row{
        margin-bottom:12px;
        gap:5px;
    }

    /* FOOTER */
    .rl-site-footer{
        margin-top:32px;
    }

    .rl-site-footer-inner{
        width:calc(100% - 28px);
        padding:24px 0 20px;
        display:block;
    }

    .rl-site-footer-brand{
        font-size:21px;
    }

    .rl-site-footer-inner p{
        max-width:270px;
        margin:8px 0 18px;
        font-size:11.5px;
    }

    .rl-site-footer-inner nav{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px 18px;
    }

    .rl-site-footer-inner nav a{
        font-size:12px;
    }

    .rl-site-footer-bottom{
        width:calc(100% - 28px);
        padding:14px 0 18px;
        flex-direction:column;
        align-items:flex-start;
        gap:5px;
        font-size:10.5px;
    }
}


/* =========================================================
   v0.1.20 — Final mobile compact polish
   Built on v0.1.19. Desktop stays untouched.
   ========================================================= */
@media (max-width: 640px){

    .rl-site-header-inner{
        padding:9px 0 6px;
        gap:5px;
    }

    .rl-site-logo-img{
        max-width:138px !important;
        max-height:34px !important;
    }

    .rl-site-nav{
        gap:0 16px;
    }

    .rl-site-nav a{
        padding:6px 0 8px;
        font-size:12px;
    }

    .rl-content-hub-page .rl-hub-page-template .rl-hub-shell{
        margin-top:11px !important;
    }

    .rl-hub-bc{
        margin-bottom:8px;
        font-size:10.5px;
    }

    .rl-content-hub-page .rl-hub-hero{
        padding:18px 16px 0 !important;
    }

    .rl-hub-hero-copy{
        padding-bottom:14px;
    }

    .rl-hub-hero h1{
        font-size:26px;
        margin-bottom:6px;
    }

    .rl-hub-hero p{
        font-size:13.5px;
        line-height:1.45;
    }

    .rl-content-hub-page .rl-hub-hero-image{
        width:calc(100% + 32px);
        height:140px;
        min-height:140px;
        margin:0 -16px !important;
    }

    .rl-hub-section{
        margin-top:14px;
        padding:16px 14px;
    }

    .rl-hub-section h2,
    .rl-hub-cta h2{
        margin-bottom:10px;
        font-size:17px;
    }

    .rl-hub-topic-grid,
    .rl-hub-sub .rl-hub-topic-grid{
        gap:7px;
    }

    .rl-hub-topic{
        padding:10px 11px;
        gap:9px;
    }

    .rl-hub-topic i{
        flex-basis:30px;
        width:30px;
        height:30px;
    }

    .rl-hub-topic h3{
        font-size:13px;
    }

    .rl-hub-topic p{
        font-size:11px;
    }

    .rl-hub-cta{
        margin-top:14px;
        padding:16px 14px;
        gap:13px;
    }

    .rl-hub-cta p{
        font-size:12.5px;
    }

    .rl-hub-cta > a{
        min-height:40px;
        font-size:11.5px;
    }

    .rl-site-footer{
        margin-top:28px;
    }

    .rl-site-footer-inner{
        padding:21px 0 17px;
    }

    .rl-site-footer-inner p{
        margin-bottom:15px;
    }

    .rl-site-footer-bottom{
        padding:12px 0 16px;
    }
}

/* =========================================================
   v0.1.21 — Calculator catalogue Hub
   ========================================================= */
.rl-hub-calculator-search{
    margin-top:18px;
}
.rl-hub-search-box{
    width:min(620px,100%);
    min-height:48px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:0 15px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
    box-shadow:0 7px 22px rgba(20,56,86,.04);
}
.rl-hub-search-box span{
    color:var(--teal);
    font-size:21px;
    line-height:1;
}
.rl-hub-search-box input{
    width:100%;
    min-width:0;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
    background:transparent!important;
    color:#25384c;
    font:inherit;
    font-size:14px;
}
.rl-hub-search-box input::placeholder{color:#8a95a3}
.rl-hub-search-empty{
    margin:10px 0 0;
    color:var(--muted);
    font-size:13px;
}
.rl-hub-calculator-block h2{margin-bottom:14px}
.rl-hub-calculator-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.rl-hub-calculator-card{
    min-width:0;
    display:grid;
    grid-template-columns:42px minmax(0,1fr) 18px;
    align-items:center;
    gap:12px;
    padding:15px;
    border:1px solid var(--border);
    border-radius:13px;
    background:#fff;
    color:inherit;
    text-decoration:none!important;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.rl-hub-calculator-card:hover{
    transform:translateY(-2px);
    border-color:#b9e8e5;
    box-shadow:0 9px 22px rgba(20,56,86,.06);
}
.rl-hub-calculator-card[hidden]{display:none!important}
.rl-hub-calculator-card>i{
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    background:#eaf9f8;
    color:var(--teal);
    font-style:normal;
    font-size:20px;
}
.rl-hub-calculator-card h3{
    margin:0 0 4px;
    color:var(--navy);
    font-size:14px;
    line-height:1.25;
}
.rl-hub-calculator-card p{
    margin:0;
    color:var(--muted);
    font-size:12px;
    line-height:1.38;
}
.rl-hub-calculator-arrow{
    justify-self:end;
    color:var(--teal);
    font-size:23px;
    line-height:1;
}
.rl-hub-calculator-sections{
    margin-top:28px;
}
.rl-hub-calculator-sections-title{
    margin:0 0 12px;
}
.rl-hub-calculator-sections-title h2{
    margin:0;
    color:var(--navy);
    font-size:24px;
}
.rl-hub-calculator-section{margin-top:14px}
.rl-hub-calculator-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:16px;
}
.rl-hub-calculator-section-title{
    display:flex;
    align-items:center;
    gap:12px;
}
.rl-hub-calculator-section-title>i{
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#eaf9f8;
    color:var(--teal);
    font-style:normal;
    font-size:21px;
}
.rl-hub-calculator-section-title h2{margin:0 0 3px}
.rl-hub-calculator-section-title p{
    margin:0;
    color:var(--muted);
    font-size:12.5px;
    line-height:1.4;
}
.rl-hub-search-no-results{display:none!important}

@media(max-width:980px){
    .rl-hub-calculator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
    .rl-hub-calculator-search{margin-top:12px}
    .rl-hub-search-box{min-height:44px}
    .rl-hub-calculator-grid{grid-template-columns:1fr;gap:8px}
    .rl-hub-calculator-card{padding:11px;grid-template-columns:36px minmax(0,1fr) 15px;gap:9px}
    .rl-hub-calculator-card>i{width:36px;height:36px;font-size:17px}
    .rl-hub-calculator-card h3{font-size:13px}
    .rl-hub-calculator-card p{font-size:11px}
    .rl-hub-calculator-sections{margin-top:16px}
    .rl-hub-calculator-sections-title h2{font-size:19px}
    .rl-hub-calculator-section-head{align-items:flex-start;flex-direction:column;gap:7px;margin-bottom:12px}
    .rl-hub-calculator-section-title>i{width:36px;height:36px;flex-basis:36px;font-size:17px}
    .rl-hub-calculator-section-title p{font-size:11.5px}
}

/* =========================================================
   v0.1.22 — Homepage Hub polish
   - single topic fills the section width;
   - homepage order is controlled in PHP renderer;
   - breadcrumb is omitted for type=home.
   ========================================================= */
.rl-hub-type-home .rl-hub-topic-grid-single{
    grid-template-columns:1fr;
}
.rl-hub-type-home .rl-hub-topic-grid-single .rl-hub-topic{
    min-height:92px;
    align-items:center;
    padding:20px 22px;
}
.rl-hub-type-home .rl-hub-topic-grid-single .rl-hub-topic i{
    flex:0 0 46px;
    width:46px;
    height:46px;
    font-size:22px;
}
.rl-hub-type-home .rl-hub-topic-grid-single .rl-hub-topic h3{
    font-size:17px;
}
.rl-hub-type-home .rl-hub-topic-grid-single .rl-hub-topic p{
    max-width:760px;
    font-size:13.5px;
}
@media(max-width:640px){
    .rl-hub-type-home .rl-hub-topic-grid-single .rl-hub-topic{
        min-height:0;
        padding:12px 13px;
    }
    .rl-hub-type-home .rl-hub-topic-grid-single .rl-hub-topic i{
        flex-basis:32px;
        width:32px;
        height:32px;
        font-size:16px;
    }
    .rl-hub-type-home .rl-hub-topic-grid-single .rl-hub-topic h3{
        font-size:13.5px;
    }
    .rl-hub-type-home .rl-hub-topic-grid-single .rl-hub-topic p{
        font-size:11.5px;
    }
}
\n\n/* =========================================================\n   v0.1.23 — Static informational pages in Hub template\n   ========================================================= */\n.rl-hub-static-shell{\n  padding-bottom:48px;\n}\n.rl-hub-static-content{\n  max-width:920px;\n  margin:0 auto;\n  background:#fff;\n  border:1px solid var(--rl-border, #e3e9ef);\n  border-radius:18px;\n  padding:42px 48px;\n  color:var(--rl-text, #18314d);\n  box-sizing:border-box;\n}\n.rl-hub-static-content > :first-child{margin-top:0;}\n.rl-hub-static-content > :last-child{margin-bottom:0;}\n.rl-hub-static-content h1{\n  margin:0 0 28px;\n  font-size:clamp(30px,3.1vw,44px);\n  line-height:1.12;\n  color:var(--rl-navy, #0e3158);\n}\n.rl-hub-static-content h2{\n  margin:34px 0 14px;\n  font-size:clamp(22px,2.1vw,29px);\n  line-height:1.2;\n  color:var(--rl-navy, #0e3158);\n}\n.rl-hub-static-content h3{\n  margin:26px 0 12px;\n  font-size:20px;\n  line-height:1.3;\n  color:var(--rl-navy, #0e3158);\n}\n.rl-hub-static-content p,\n.rl-hub-static-content li{\n  font-size:16px;\n  line-height:1.72;\n  color:#40566f;\n}\n.rl-hub-static-content p{margin:0 0 18px;}\n.rl-hub-static-content ul,\n.rl-hub-static-content ol{margin:12px 0 22px;padding-left:24px;}\n.rl-hub-static-content li{margin:7px 0;}\n.rl-hub-static-content a{color:var(--rl-accent, #15b8b0);text-decoration:none;font-weight:600;}\n.rl-hub-static-content a:hover{text-decoration:underline;}\n.rl-hub-static-content hr{border:0;border-top:1px solid #e7edf2;margin:32px 0;}\n@media (max-width: 760px){\n  .rl-hub-static-shell{padding-bottom:28px;}\n  .rl-hub-static-content{padding:28px 22px;border-radius:14px;}\n  .rl-hub-static-content p,.rl-hub-static-content li{font-size:15px;}\n}\n

/* =========================================================
   v0.1.24 — RaschetLab Site Footer v1.0
   Shared four-column public footer used by hubs and calculators.
   ========================================================= */
.rl-site-footer{
    margin-top:42px;
    border-top:1px solid #e3e9ef;
    background:#fff;
}
.rl-site-footer-inner.rl-site-footer-grid{
    width:min(1280px,calc(100% - 48px));
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(260px,1.45fr) repeat(3,minmax(150px,1fr));
    align-items:start;
    gap:46px;
    padding:34px 0 28px;
}
.rl-site-footer-about{min-width:0;}
.rl-site-footer-brand{
    display:inline-block;
    color:var(--navy);
    font-size:24px;
    line-height:1;
    font-weight:800;
    letter-spacing:-.03em;
    text-decoration:none;
}
.rl-site-footer-brand span{color:var(--teal);}
.rl-site-footer-about p{
    max-width:300px;
    margin:10px 0 0;
    color:#7a8797;
    font-size:12px;
    line-height:1.55;
}
.rl-site-footer-col{
    display:flex !important;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start !important;
    gap:9px !important;
}
.rl-site-footer-col h2{
    margin:0 0 5px;
    color:var(--navy);
    font-size:14px;
    line-height:1.2;
    font-weight:750;
}
.rl-site-footer-col a{
    color:#566678 !important;
    font-size:12.5px !important;
    line-height:1.35;
    text-decoration:none !important;
}
.rl-site-footer-col a:hover{color:var(--teal) !important;}
.rl-site-footer-bottom{
    width:min(1280px,calc(100% - 48px));
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:17px 0 22px;
    border-top:1px solid #e3e9ef;
    color:#8a95a3;
    font-size:11px;
}
@media(max-width:980px){
    .rl-site-footer-inner.rl-site-footer-grid{
        width:min(100% - 32px,1280px);
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:28px 36px;
    }
    .rl-site-footer-bottom{width:min(100% - 32px,1280px);}
}
@media(max-width:640px){
    .rl-site-footer{margin-top:30px;}
    .rl-site-footer-inner.rl-site-footer-grid{
        width:min(100% - 28px,1280px);
        grid-template-columns:1fr 1fr;
        gap:26px 22px;
        padding:28px 0 22px;
    }
    .rl-site-footer-about{grid-column:1 / -1;}
    .rl-site-footer-brand{font-size:22px;}
    .rl-site-footer-about p{margin-top:8px;font-size:11.5px;}
    .rl-site-footer-col h2{font-size:13px;}
    .rl-site-footer-col a{font-size:12px !important;}
    .rl-site-footer-bottom{
        width:min(100% - 28px,1280px);
        flex-direction:column;
        align-items:flex-start;
        gap:5px;
        padding:14px 0 18px;
        font-size:10.5px;
    }
}
