/* ============================================================
   RIVON Lanka — Brand Fonts & Colours
   ------------------------------------------------------------
   Brand palette : #000000  #061B39  #FFFFFF  #1D63FC
   Brand fonts   : Poppins (headings / UI)  ·  Open Sauce One (body)

   Loaded LAST in <head> so it overrides custom.css + rivon-theme.css.
   ============================================================ */

/* ── Open Sauce One (self-hosted, /fonts) ─────────────────── */
@font-face {
    font-family: 'Open Sauce One';
    src: url('../fonts/OpenSauceOne-Regular.ttf') format('truetype');
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Open Sauce One';
    src: url('../fonts/OpenSauceOne-Italic.ttf') format('truetype');
    font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
    font-family: 'Open Sauce One';
    src: url('../fonts/OpenSauceOne-Medium.ttf') format('truetype');
    font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Open Sauce One';
    src: url('../fonts/OpenSauceOne-SemiBold.ttf') format('truetype');
    font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Open Sauce One';
    src: url('../fonts/OpenSauceOne-Bold.ttf') format('truetype');
    font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Open Sauce One';
    src: url('../fonts/OpenSauceOne-ExtraBold.ttf') format('truetype');
    font-weight: 800; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Open Sauce One';
    src: url('../fonts/OpenSauceOne-Black.ttf') format('truetype');
    font-weight: 900; font-style: normal; font-display: swap;
}

/* ── Brand tokens ─────────────────────────────────────────── */
:root {
    /* Palette */
    --rv-black          : #000000;
    --rv-navy           : #061B39;
    --rv-white          : #FFFFFF;
    --rv-blue           : #1D63FC;

    /* Derived tints — kept inside the brand hue, no new brand colours */
    --rv-navy-deep      : #04122A;   /* navy, darkened — gradient anchor   */
    --rv-navy-soft      : #0B2C5E;   /* navy, lifted   — gradient midtone  */
    --rv-blue-light     : #5B8DFD;   /* blue, lifted   — gradients/accents */
    --rv-blue-pale      : #E8F0FF;   /* blue at 8%     — tinted surfaces   */
    --rv-blue-on-dark   : #6C9BFF;   /* blue, legible on navy backgrounds  */
    --rv-grey           : #C0C8D8;
    --rv-grey-light     : #E8EDF5;

    /* Theme variables consumed by custom.css / rivon-theme.css */
    --primary-color     : var(--rv-navy);
    --secondary-color   : var(--rv-white);
    --bg-color          : #F4F7FC;
    --text-color        : #1B2637;
    --accent-color      : var(--rv-blue);
    --silver-color      : var(--rv-grey);
    --silver-light      : var(--rv-grey-light);
    --white-color       : var(--rv-white);
    --divider-color     : rgba(6, 27, 57, .10);
    --dark-divider-color: rgba(255, 255, 255, .10);
    --error-color       : rgb(230, 87, 87);

    /* Typography */
    --default-font      : "Open Sauce One", "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --accent-font       : "Poppins", "Open Sauce One", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --rv-font-body      : var(--default-font);
    --rv-font-heading   : var(--accent-font);
}

/* ── Typography application ───────────────────────────────── */
body,
button, input, select, textarea, optgroup {
    font-family: var(--default-font);
}

h1, h2, h3, h4, h5, h6,
.section-title h1, .section-title h2, .section-title h3,
.navbar-nav .nav-link,
.btn-default, .btn,
.breadcrumb {
    font-family: var(--accent-font);
}

/* ── Colour corrections ───────────────────────────────────── */
/* Brand blue is dark enough that it always carries white text. The old
   gold accent carried black text, so anything inheriting that pairing
   is re-stated here. */
.btn-default,
.btn-default.btn-highlighted {
    background: var(--rv-blue) !important;
    border-color: var(--rv-blue) !important;
    color: var(--rv-white) !important;
}
.btn-default:hover,
.btn-default.btn-highlighted:hover {
    background: var(--rv-navy) !important;
    border-color: var(--rv-navy) !important;
    color: var(--rv-white) !important;
}

::selection { color: var(--rv-white); background-color: var(--rv-blue); }
::-webkit-scrollbar-thumb { background: var(--rv-blue); }

/* Dark surfaces use the lifted blue so links stay legible on navy */
.dark-section a:not(.btn-default):not(.btn):hover,
.dark-section .section-title .section-sub-title { color: var(--rv-blue-on-dark) !important; }

/* ============================================================
   NAVIGATION — 2.1–2.5
   9 top-level tabs now (Home, About, Vehicles, Services,
   Charging Network, Blogs & Articles, News, FAQs, Contact),
   so the bar is tightened between 992px and 1400px.
   ============================================================ */

/* The theme's default .container is capped at 1300px (see custom.css),
   which is too narrow to fit 9 nav items + logo + 2 buttons on one line
   at laptop widths (1300–1600px) — that's what forced items like
   "About Us" / "Charging Network" / "Contact Us" onto two lines even
   though there was visibly empty space on the page. Give the header's
   own container more room without affecting the width of the page
   sections below it. */
header.main-header .navbar > .container {
    max-width: 1650px !important;
}

/* Belt-and-braces: never let an individual nav label or auth button
   break its text mid-phrase — if space ever runs out, the item keeps
   its text on one line (and the rules below shrink things down before
   that becomes necessary). */
.navbar-nav > .nav-item > .nav-link,
.header-btn .btn-default {
    white-space: nowrap !important;
}
.navbar-nav > .nav-item {
    flex-shrink: 0;
}
.header-btn {
    flex-shrink: 0;
    white-space: nowrap;
}

@media (min-width: 992px) and (max-width: 1399px) {
    .navbar-nav > .nav-item > .nav-link {
        font-size: 14px !important;
        padding-left: 11px !important;
        padding-right: 11px !important;
        letter-spacing: 0 !important;
    }
    .header-btn .btn-default { padding-left: 18px !important; padding-right: 18px !important; font-size: 13px !important; }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .navbar-nav > .nav-item > .nav-link {
        font-size: 13px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
    .main-menu ul li {
        margin: 0 !important;
    }
}

/* ── Dropdown group headings ("Our Models" / "Browse by Type") ── */
.navbar-nav li.submenu ul li.nav-group-label {
    margin: 6px 8px 2px !important;
    padding: 0 !important;
    pointer-events: none;
    list-style: none;
}
.navbar-nav li.submenu ul li.nav-group-label > span {
    display: block;
    padding: 6px 12px 4px;
    font-family: var(--accent-font);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(6, 27, 57, .42);
    border-top: 1px solid rgba(6, 27, 57, .09);
}
/* first label in the list needs no divider above it */
.navbar-nav li.submenu ul li.nav-group-label:first-child > span { border-top: none; }

@media (max-width: 991px) {
    .navbar-collapse.main-menu .navbar-nav > li.submenu > ul > li.nav-group-label {
        border-top: 1px solid rgba(255, 255, 255, .08);
        margin: 0 !important;
    }
    .navbar-collapse.main-menu .navbar-nav > li.submenu > ul > li.nav-group-label > span {
        padding: 10px 20px 4px 34px;
        color: rgba(255, 255, 255, .35);
        border-top: none;
    }
}

/* ============================================================
   HOMEPAGE — VEHICLE MODELS (1.2)
   ============================================================ */
.rv-models-section {
    background: var(--bg-color);
    padding: 100px 0;
}
.rv-models-section .section-row { margin-bottom: 50px; }

.rv-models-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
@media (max-width: 1199px) { .rv-models-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px)  { .rv-models-grid { grid-template-columns: 1fr; } }

.rv-model-card {
    display: flex;
    flex-direction: column;
    background: var(--rv-white);
    border: 1px solid rgba(6, 27, 57, .08);
    border-radius: 18px;
    overflow: hidden;
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.rv-model-card:hover {
    transform: translateY(-6px);
    border-color: rgba(29, 99, 252, .28);
    box-shadow: 0 18px 44px rgba(6, 27, 57, .13);
}

/* ── Media ───────────────────────────────────────────────── */
.rv-model-media {
    position: relative;
    background: linear-gradient(150deg, var(--rv-blue-pale) 0%, #F7FAFF 100%);
    aspect-ratio: 16 / 10;
    overflow: hidden;
}
.rv-model-media a { display: block; width: 100%; height: 100%; }
.rv-model-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.rv-model-card:hover .rv-model-media img { transform: scale(1.05); }

.rv-model-flag {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 6px 13px;
    border-radius: 999px;
    background: var(--rv-blue);
    color: var(--rv-white);
    font-family: var(--accent-font);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .03em;
}

/* ── Body ────────────────────────────────────────────────── */
.rv-model-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 24px 24px 26px;
}
.rv-model-eyebrow {
    margin: 0 0 6px;
    font-family: var(--accent-font);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--rv-blue);
}
.rv-model-name {
    margin: 0 0 6px;
    font-family: var(--accent-font);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--rv-navy);
}
.rv-model-sub {
    margin: 0 0 20px;
    font-size: 14px;
    line-height: 1.55;
    color: #5A6880;
}

/* ── Spec strip ──────────────────────────────────────────── */
.rv-model-specs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px 14px;
    margin: 0 0 24px;
    padding: 18px 0 0;
    border-top: 1px solid rgba(6, 27, 57, .08);
    list-style: none;
}
.rv-model-specs:empty { display: none; }
.rv-model-specs li {
    display: grid;
    grid-template-columns: 20px 1fr;
    grid-template-rows: auto auto;
    column-gap: 9px;
    align-items: center;
}
.rv-model-specs li i {
    grid-row: 1 / span 2;
    font-size: 14px;
    color: var(--rv-blue);
    text-align: center;
}
.rv-model-specs li span {
    font-family: var(--accent-font);
    font-size: 14px;
    font-weight: 600;
    color: var(--rv-navy);
    line-height: 1.3;
}
.rv-model-specs li em {
    font-style: normal;
    font-size: 11px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #8592A8;
}

/* ── Actions ─────────────────────────────────────────────── */
.rv-model-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
}
.rv-model-more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    justify-content: center;
    padding: 12px 18px;
    border-radius: 10px;
    background: var(--rv-blue);
    color: var(--rv-white) !important;
    font-family: var(--accent-font);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none !important;
    transition: background .25s ease;
}
.rv-model-more:hover { background: var(--rv-navy); }
.rv-model-more i { font-size: 12px; transition: transform .25s ease; }
.rv-model-more:hover i { transform: translateX(3px); }

.rv-model-brochure {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 12px 15px;
    border-radius: 10px;
    border: 1.5px solid rgba(29, 99, 252, .3);
    background: rgba(29, 99, 252, .06);
    color: var(--rv-blue) !important;
    font-family: var(--accent-font);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none !important;
    transition: background .25s ease, border-color .25s ease;
}
.rv-model-brochure:hover {
    background: rgba(29, 99, 252, .14);
    border-color: var(--rv-blue);
}

/* ── Footer / empty ──────────────────────────────────────── */
.rv-models-footer { margin-top: 46px; text-align: center; }

.rv-models-empty {
    padding: 60px 20px;
    text-align: center;
    color: #6B7A90;
}
.rv-models-empty i { font-size: 38px; color: var(--rv-blue); opacity: .35; display: block; margin-bottom: 14px; }
.rv-models-empty a { color: var(--rv-blue); font-weight: 600; }

@media (max-width: 575px) {
    .rv-models-section { padding: 70px 0; }
    .rv-model-actions { flex-direction: column; align-items: stretch; }
    .rv-model-brochure { justify-content: center; }
}

/* ============================================================
   BLOGS & ARTICLES (2.4) + NEWS (2.5)
   ============================================================ */
.rv-content-section { padding: 90px 0 100px; background: var(--rv-white); }

.rv-content-intro { max-width: 760px; margin: 0 0 44px; }
.rv-content-intro h2 {
    margin: 18px 0 12px;
    font-family: var(--accent-font);
    font-size: clamp(26px, 3.4vw, 40px);
    font-weight: 700;
    line-height: 1.18;
    color: var(--rv-navy);
}
.rv-content-intro p { margin: 0; font-size: 16px; line-height: 1.65; color: #5A6880; }

/* -- Toolbar: category / year chips + search -------------- */
.rv-content-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 18px;
    margin-bottom: 40px;
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(6, 27, 57, .09);
}
.rv-chip-row { display: flex; flex-wrap: wrap; gap: 9px; }
.rv-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 17px;
    border-radius: 999px;
    border: 1.5px solid rgba(6, 27, 57, .12);
    background: var(--rv-white);
    color: var(--rv-navy) !important;
    font-family: var(--accent-font);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none !important;
    transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.rv-chip span { font-size: 11px; font-weight: 600; color: #8592A8; }
.rv-chip:hover { border-color: var(--rv-blue); color: var(--rv-blue) !important; }
.rv-chip.is-active {
    background: var(--rv-blue);
    border-color: var(--rv-blue);
    color: var(--rv-white) !important;
}
.rv-chip.is-active span { color: rgba(255, 255, 255, .72); }

.rv-search { position: relative; flex-shrink: 0; }
.rv-search i {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: #8592A8;
    pointer-events: none;
}
.rv-search input {
    width: 260px;
    max-width: 100%;
    padding: 11px 16px 11px 38px;
    border-radius: 999px;
    border: 1.5px solid rgba(6, 27, 57, .12);
    background: var(--rv-white);
    font-family: var(--default-font);
    font-size: 14px;
    color: var(--rv-navy);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.rv-search input:focus {
    outline: none;
    border-color: var(--rv-blue);
    box-shadow: 0 0 0 3px rgba(29, 99, 252, .12);
}

/* -- Card grid -------------------------------------------- */
.rv-content-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}
@media (max-width: 1199px) { .rv-content-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px)  { .rv-content-grid { grid-template-columns: 1fr; } }

.rv-post-card,
.rv-news-card {
    display: flex;
    flex-direction: column;
    background: var(--rv-white);
    border: 1px solid rgba(6, 27, 57, .08);
    border-radius: 16px;
    overflow: hidden;
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.rv-post-card:hover,
.rv-news-card:hover {
    transform: translateY(-5px);
    border-color: rgba(29, 99, 252, .25);
    box-shadow: 0 16px 40px rgba(6, 27, 57, .11);
}

.rv-post-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    background: var(--rv-blue-pale);
    overflow: hidden;
}
.rv-post-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.rv-post-card:hover .rv-post-media img,
.rv-news-card:hover .rv-post-media img { transform: scale(1.05); }

.rv-post-flag {
    position: absolute;
    top: 13px;
    left: 13px;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--rv-blue);
    color: var(--rv-white);
    font-family: var(--accent-font);
    font-size: 11px;
    font-weight: 600;
}

.rv-post-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 22px 22px 24px;
}
.rv-post-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-bottom: 12px;
    font-size: 12px;
    color: #8592A8;
}
.rv-post-cat {
    padding: 4px 11px;
    border-radius: 999px;
    background: rgba(29, 99, 252, .09);
    color: var(--rv-blue) !important;
    font-family: var(--accent-font);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .03em;
    text-decoration: none !important;
}

.rv-post-title {
    margin: 0 0 11px;
    font-family: var(--accent-font);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--rv-navy);
}
.rv-post-title a { color: inherit !important; text-decoration: none !important; transition: color .2s ease; }
.rv-post-title a:hover { color: var(--rv-blue) !important; }

.rv-post-excerpt {
    margin: 0 0 18px;
    font-size: 14px;
    line-height: 1.62;
    color: #5A6880;
}

.rv-post-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    font-family: var(--accent-font);
    font-size: 13px;
    font-weight: 600;
    color: var(--rv-blue) !important;
    text-decoration: none !important;
}
.rv-post-link i { font-size: 11px; transition: transform .25s ease; }
.rv-post-link:hover i { transform: translateX(3px); }
.rv-source-link:hover i { transform: translate(2px, -2px); }

/* -- Pager ------------------------------------------------ */
.rv-pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 52px;
}
.rv-pager-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 22px;
    border-radius: 10px;
    border: 1.5px solid rgba(6, 27, 57, .14);
    color: var(--rv-navy) !important;
    font-family: var(--accent-font);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none !important;
    transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.rv-pager-btn:hover {
    border-color: var(--rv-blue);
    background: var(--rv-blue);
    color: var(--rv-white) !important;
}
.rv-pager-status { font-size: 13px; color: #8592A8; }

/* -- Empty state ------------------------------------------ */
.rv-content-empty {
    padding: 80px 20px;
    text-align: center;
    border: 1px dashed rgba(6, 27, 57, .16);
    border-radius: 16px;
}
.rv-content-empty i { font-size: 42px; color: var(--rv-blue); opacity: .3; }
.rv-content-empty h3 {
    margin: 18px 0 8px;
    font-family: var(--accent-font);
    font-size: 21px;
    font-weight: 600;
    color: var(--rv-navy);
}
.rv-content-empty p { margin: 0; font-size: 15px; color: #6B7A90; }
.rv-content-empty a { color: var(--rv-blue); font-weight: 600; }

/* ============================================================
   SINGLE ARTICLE
   ============================================================ */
.rv-article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 48px;
    align-items: start;
}
@media (max-width: 991px) { .rv-article-layout { grid-template-columns: 1fr; gap: 40px; } }

.rv-article-hero {
    margin: 0 0 26px;
    border-radius: 18px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: var(--rv-blue-pale);
}
.rv-article-hero img { width: 100%; height: 100%; object-fit: cover; }

.rv-article-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding-bottom: 22px;
    margin-bottom: 26px;
    border-bottom: 1px solid rgba(6, 27, 57, .09);
    font-size: 13px;
    color: #6B7A90;
}
.rv-article-meta i { margin-right: 6px; color: var(--rv-blue); }

.rv-article-lede {
    margin: 0 0 26px;
    padding-left: 18px;
    border-left: 3px solid var(--rv-blue);
    font-size: 17px;
    line-height: 1.68;
    font-weight: 500;
    color: var(--rv-navy);
}

/* Rich text from the editor */
.rv-article-body { font-size: 16px; line-height: 1.78; color: #33405A; }
.rv-article-body > *:first-child { margin-top: 0; }
.rv-article-body h2,
.rv-article-body h3,
.rv-article-body h4 {
    font-family: var(--accent-font);
    font-weight: 600;
    line-height: 1.3;
    color: var(--rv-navy);
    margin: 38px 0 14px;
}
.rv-article-body h2 { font-size: 26px; }
.rv-article-body h3 { font-size: 21px; }
.rv-article-body h4 { font-size: 18px; }
.rv-article-body p  { margin: 0 0 18px; }
.rv-article-body a  { color: var(--rv-blue); text-decoration: underline; text-underline-offset: 3px; }
.rv-article-body ul,
.rv-article-body ol { margin: 0 0 20px; padding-left: 24px; }
.rv-article-body li { margin-bottom: 9px; }
.rv-article-body img {
    max-width: 100%;
    height: auto;
    border-radius: 14px;
    margin: 26px 0;
}
.rv-article-body figure { margin: 26px 0; }
.rv-article-body figcaption { margin-top: 9px; font-size: 13px; color: #8592A8; text-align: center; }
.rv-article-body blockquote {
    margin: 26px 0;
    padding: 20px 24px;
    border-left: 3px solid var(--rv-blue);
    border-radius: 0 12px 12px 0;
    background: var(--rv-blue-pale);
    font-size: 17px;
    font-style: italic;
    color: var(--rv-navy);
}
.rv-article-body table {
    width: 100%;
    margin: 26px 0;
    border-collapse: collapse;
    font-size: 14px;
}
.rv-article-body th,
.rv-article-body td {
    padding: 11px 14px;
    border: 1px solid rgba(6, 27, 57, .1);
    text-align: left;
}
.rv-article-body th { background: var(--rv-blue-pale); font-weight: 600; color: var(--rv-navy); }

.rv-article-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 34px 0 0;
    padding-top: 26px;
    border-top: 1px solid rgba(6, 27, 57, .09);
}
.rv-tag {
    padding: 6px 13px;
    border-radius: 999px;
    background: rgba(6, 27, 57, .05);
    font-size: 12px;
    font-weight: 500;
    color: #5A6880;
}

.rv-article-share {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: 26px;
}
.rv-article-share span {
    margin-right: 4px;
    font-family: var(--accent-font);
    font-size: 13px;
    font-weight: 600;
    color: var(--rv-navy);
}
.rv-article-share a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1.5px solid rgba(6, 27, 57, .12);
    color: var(--rv-navy) !important;
    font-size: 14px;
    text-decoration: none !important;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.rv-article-share a:hover {
    background: var(--rv-blue);
    border-color: var(--rv-blue);
    color: var(--rv-white) !important;
}

/* -- Sidebar ---------------------------------------------- */
.rv-article-aside { position: sticky; top: 110px; display: grid; gap: 22px; }
@media (max-width: 991px) { .rv-article-aside { position: static; } }

.rv-aside-card {
    padding: 26px 24px;
    border: 1px solid rgba(6, 27, 57, .08);
    border-radius: 16px;
    background: var(--rv-white);
}
.rv-aside-card h3 {
    margin: 0 0 12px;
    font-family: var(--accent-font);
    font-size: 18px;
    font-weight: 600;
    color: var(--rv-navy);
}
.rv-aside-cta {
    background: linear-gradient(155deg, var(--rv-navy) 0%, var(--rv-navy-soft) 100%);
    border-color: transparent;
}
.rv-aside-cta h3 { color: var(--rv-white); }
.rv-aside-cta p { margin: 0 0 20px; font-size: 14px; line-height: 1.6; color: rgba(255, 255, 255, .74); }
.rv-aside-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--rv-blue-on-dark) !important;
    text-decoration: none !important;
}
.rv-aside-link i { font-size: 11px; }

.rv-aside-list { list-style: none; margin: 0; padding: 0; }
.rv-aside-list li + li { margin-top: 8px; padding-top: 14px; border-top: 1px solid rgba(6, 27, 57, .08); }
.rv-aside-list a {
    display: flex;
    gap: 13px;
    align-items: center;
    text-decoration: none !important;
}
.rv-aside-list img {
    width: 68px;
    height: 52px;
    border-radius: 9px;
    object-fit: cover;
    flex-shrink: 0;
}
.rv-aside-list strong {
    display: block;
    font-family: var(--accent-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.38;
    color: var(--rv-navy);
    transition: color .2s ease;
}
.rv-aside-list a:hover strong { color: var(--rv-blue); }
.rv-aside-list em { font-style: normal; font-size: 12px; color: #8592A8; }

@media (max-width: 575px) {
    .rv-content-section { padding: 60px 0 70px; }
    .rv-search { width: 100%; }
    .rv-search input { width: 100%; }
}
