/* Move Open Sans 600 usage to 500 so weight 600 stops downloading */
.wp-block-button__link,
.ev-snm-nl-eyebrow,
.ev-snm-nl button,
.breadcrumb.breadcrumb-yoast,
input.search-submit,
input[type="submit"],
input[type="button"]{font-weight:500 !important}
/* readbar ticker — the remaining 600 users (desktop only, below 1024px the bar is hidden) */
#ev-readbar .ev-rb-tick,
#ev-readbar .ev-rb-tick b,
#ev-readbar a.ev-rb-tick{font-weight:500 !important}
/* Brand hubs: match homepage card typography (10 Aug 2026) */
.rbc-content-section .entry-title,
.rbc-content-section .entry-title a {
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 300 !important;
  line-height: 1.3 !important;
}
/* === EV refinements (added via Claude) === */
/* 1) Social icons — neutral by default, brand blue on hover, no motion */
.navbar-social a{ filter: grayscale(1) brightness(.45) contrast(1.05); transition: filter .2s ease !important; animation: none !important; }
.navbar-social a:hover{ filter:none !important; transform:none !important; }
.ev-fr-social a, .ev-fr-social a svg{ transition: opacity .18s ease, fill .18s ease !important; animation:none !important; }
.ev-fr-social a:hover{ transform:none !important; opacity:1 !important; }
.ev-fr-social a:hover svg{ fill:#ffffff !important; }
/* 2) Mega-menu fade + slide on open */
@keyframes evMenuIn{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }
.main-menu-wrap .menu-item-has-children:hover > .sub-menu{ animation: evMenuIn .22s cubic-bezier(.2,.6,.2,1) both; }
@media (prefers-reduced-motion: reduce){ .main-menu-wrap .menu-item-has-children:hover > .sub-menu{ animation:none !important; } }
/* 3) Metadata labels — contrast & size floor */
.ev-about-founder-eyebrow{ color:#5e5e63 !important; font-size:11px !important; }
.ev-about-section-header .count{ color:#5e5e63 !important; font-size:12px !important; }
.entry-date{ color:#5b6270 !important; }
.ev-contact-form-section label, .ev-contact-form-section .grunion-field-label{ color:#5b6270 !important; }
.ev-fr-contact-label{ color:#dbe4f8 !important; }
/* 4) Newsletter icon (custom NL) — footer (white) & contact (blue). Header icon intentionally NOT shown (left-side CTA covers it). */
.ev-fr-social a[href^="mailto"] svg{ display:none !important; }
.ev-fr-social a[href^="mailto"]{ background-image:url(https://eletric-vehicles.com/wp-content/uploads/2026/06/NL_icon_white.svg) !important; background-size:18px 18px; background-repeat:no-repeat; background-position:center; }
a.ev-contact-method[href^="mailto"] .ev-contact-method-icon svg{ display:none !important; }
a.ev-contact-method[href^="mailto"] .ev-contact-method-icon{ background-image:url(https://eletric-vehicles.com/wp-content/uploads/2026/06/NL_icon.svg) !important; background-size:24px 24px; background-repeat:no-repeat; background-position:center; }
/* 5) Contact rows — icons stay put on hover; only the text shifts */
.ev-contact-method:hover{ padding-left:4px !important; }
.ev-contact-method-body{ transition: transform .2s ease; }
.ev-contact-method:hover .ev-contact-method-body{ transform: translateX(10px) !important; }
/* In-content links — brand blue + visible underline; hover only dims opacity */
.single .entry-content p a, .single .entry-content li a{color:#2659d7 !important;text-decoration:underline !important;text-decoration-color:#2659d7 !important;text-decoration-thickness:1px !important;text-underline-offset:2px;transition:opacity .15s ease}
.single .entry-content p a:hover, .single .entry-content li a:hover{opacity:.65 !important;color:#2659d7 !important;text-decoration:underline !important;text-decoration-color:#2659d7 !important;text-decoration-thickness:1px !important}
/* Article title links — underline on hover (coherent: cards + rails) */
.entry-title a:hover, .post-thumbnail:hover ~ .entry-wrapper .entry-title a, .ev-rail__item:hover .ev-rail__headline{color:#2659d7 !important;text-decoration:underline !important;text-decoration-color:#2659d7 !important;text-decoration-thickness:1px !important;text-underline-offset:2px}
/* === end EV refinements === */
/* === EV drawer 2-col + mega caret (Claude) === */
.ev-snm-section{column-count:2;column-gap:18px}
.ev-snm-section .ev-snm-label{column-span:all;-webkit-column-span:all}
.ev-snm-section:has(.ev-snm-sub-list){column-count:1}
.ev-snm-util,.ev-snm-top{break-inside:avoid;-webkit-column-break-inside:avoid}
.main-menu-wrap .ev-card__h a{display:inline !important;padding:0 !important}
/* === end EV drawer 2-col === */
/* === a11y contrast (WCAG AA) === */
.ev-rail__time,.ev-rail__meta,.ev-rail__live{color:#5f6368 !important}
.ev-cnrail__author,.ev-cnrail__date,.ev-cnrail__sep{color:#565d6b !important}
.ev-fr-tagline,.ev-fr-carba,.ev-fr-masthead p,.ev-fr-news em{color:#e6edfa !important}
.ev-fr-eyebrow,.ev-fr-masthead h4,.ev-fr-masthead h4 span,.ev-fr-colophon-left span,.ev-fr-colophon-left a,.ev-fr-news-meta{color:#dae3f8 !important}
.ev-exrail__author,.ev-exrail__date,.ev-exrail__sep{color:#565d6b !important}
.ev-fr-colophon-right a,.ev-fr-colophon-right span{color:#dae3f8 !important}
.ev-fr-masthead .ev-fr-col h4,.ev-fr-masthead .ev-fr-col h4 span{color:#dae3f8 !important}
.ev-fr-col h4,.ev-fr-col h4 span,.ev-fr-masthead h4{color:#dae3f8 !important;opacity:1 !important}
/* === end a11y contrast === */
/* === EV article details: credits + meta + readbar (Claude) === */
.image-caption.is-overlay{background:rgba(12,14,18,.38)!important;color:rgba(255,255,255,.85)!important;font-family:"Open Sans",sans-serif!important;font-size:10px!important;font-weight:400!important;letter-spacing:.5px;text-transform:uppercase;padding:3px 9px!important;border-radius:0!important}
.image-caption:not(.is-overlay){color:#5f6368;font-size:12px}
#ev-readbar{position:fixed;top:0;left:0;right:0;height:48px;background:#fff;border-bottom:1px solid #ececef;z-index:99990;display:flex;align-items:center;gap:14px;padding:0 18px;transform:translateY(-110%);transition:transform .25s ease}
#ev-readbar.is-on{transform:none}
body.admin-bar #ev-readbar{top:32px}
@media(max-width:782px){body.admin-bar #ev-readbar{top:46px}}
#ev-readbar .ev-rb-logo img{height:20px;width:auto;display:block}
#ev-readbar .ev-rb-title{flex:1;font-family:Georgia,serif;font-size:14px;line-height:1.3;color:#0a0000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ev-readbar .ev-rb-share{display:flex;gap:4px;align-items:center}
#ev-readbar .ev-rb-share a{display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:#15171c;border-bottom:0!important;box-shadow:none!important;padding:0!important}
#ev-readbar .ev-rb-share a:hover{color:#2659d7}
#ev-readbar .ev-rb-share svg{width:15px;height:15px}
#ev-readbar .ev-rb-prog{position:absolute;left:0;bottom:-1px;height:2px;background:#2659d7;width:0}
@media(max-width:781px){#ev-readbar{height:44px;padding:0 12px;gap:10px}#ev-readbar .ev-rb-title{font-size:13px}}
.single-left-share .ev-share-copy svg{width:15px;height:15px;display:block;margin:auto}
.single-left-share .ev-share-copy.is-copied,#ev-readbar .ev-rb-share a.is-copied{color:#2659d7!important}
/* hide Flourish credit line (design review: credit leaks to readers) */
.flourish-embed .flourish-credit{display:none!important}
/* readbar: desktop only + ticker chip */
@media(max-width:1023px){#ev-readbar{display:none!important}}
#ev-readbar .ev-rb-tick{font:600 12px/1 "Open Sans",sans-serif;color:#15171c;white-space:nowrap;display:flex;gap:6px;align-items:center;letter-spacing:.2px}
#ev-readbar .ev-rb-tick b{font-weight:600}
#ev-readbar .ev-rb-tick .up{color:#1e8e3e}
#ev-readbar .ev-rb-tick .down{color:#d93025}
/* readbar v2 sizing: taller bar, bigger logo+title, ticker next to headline */
#ev-readbar{height:58px;gap:16px}
#ev-readbar .ev-rb-logo img{height:26px}
#ev-readbar .ev-rb-title{flex:0 1 auto;font-size:16px;max-width:56%}
#ev-readbar .ev-rb-share{margin-left:auto}
#ev-readbar .ev-rb-tick{font-size:13px}
#ev-readbar .ev-rb-px{font-weight:400;color:#3c4043}
#ev-readbar .ev-rb-mkt{font:400 11px/1 "Open Sans",sans-serif;color:#5f6368;margin-left:6px;letter-spacing:.3px}
/* readbar v3: newsletter CTA + linked ticker; share rail recolor */
#ev-readbar .ev-rb-cta{margin-left:auto;font:400 11px/1 "Open Sans",sans-serif;letter-spacing:1.8px;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;color:#2659d7;white-space:nowrap;border-bottom:0!important;box-shadow:none!important}
#ev-readbar .ev-rb-cta:hover{color:#0a0000}
#ev-readbar a.ev-rb-tick{text-decoration:none;border-bottom:0!important;box-shadow:none!important;color:#15171c}
#ev-readbar a.ev-rb-tick:hover .ev-rb-px{color:#2659d7}
#ev-readbar .ev-rb-share{display:none}
.single-left-share a.share-action,.single-left-share a.share-action i{color:#15171c!important}
.single-left-share a.share-action:hover,.single-left-share a.share-action:hover i{color:#2659d7!important}
.single-left-share a.ev-share-copy.is-copied,.single-left-share a.ev-share-copy.is-copied svg{color:#2659d7!important}
/* share rail recolor v2: cover share-icon class (whatsapp etc) */
.single-left-share a.share-icon,.single-left-share a.share-icon i{color:#15171c!important}
.single-left-share a.share-icon:hover,.single-left-share a.share-icon:hover i{color:#2659d7!important}
.single-left-share a.ev-share-copy.is-copied,.single-left-share a.ev-share-copy.is-copied svg{color:#2659d7!important}
/* rail offset + trim: clear the reading bar, drop telegram + read next */
@media(min-width:1024px){body.single-post .section-inner{top:78px!important}}
.single-left-share .share-telegram{display:none!important}
.single-left-article{display:none!important}
/* admin-bar rail offset */
@media(min-width:1024px){body.admin-bar.single-post .section-inner{top:110px!important}}
/* single post H2 strengthen — scoped to article body only (not homepage) */
body.single-post .entry-content h2{font-family:Georgia,serif;font-size:26px;font-weight:400;line-height:1.3;color:#0a0000;margin:38px 0 14px}
body.single-post .entry-content h2:first-child{margin-top:0}
/* flourish thumb dedupe: hide static thumbnail once live chart loads */
.flourish-embed:has(iframe)>img{display:none!important}
/* footer newsletter card color */
.ev-fr-newsletter{background:#82aaf9!important}
/* contact form labels + focus rings (design review) */
.grunion-field-label{font-size:12px!important;color:#3c4043!important;letter-spacing:1.4px!important}
.wp-block-jetpack-contact-form input:focus-visible,.wp-block-jetpack-contact-form textarea:focus-visible,.wp-block-jetpack-contact-form select:focus-visible,.wp-block-jetpack-contact-form button:focus-visible{outline:2px solid #2659d7!important;outline-offset:2px!important}
.wp-block-jetpack-contact-form input:focus,.wp-block-jetpack-contact-form textarea:focus{border-color:#2659d7!important;border-width:2px!important}
/* about email renders lowercase (canonical form) */
a.ev-about-link[href^="mailto:"]{text-transform:lowercase!important}
/* ===== EV readbar upgrade — ticker chip + sessions (matches author-box) ===== */
#ev-readbar a.ev-rb-tick{display:inline-flex;align-items:center;gap:8px;background:#f7f7f5;border:1px solid rgba(0,0,0,.1);border-radius:10px;padding:6px 11px;font-weight:600;color:#111;text-decoration:none;font-variant-numeric:tabular-nums;position:relative;transition:background .15s ease;cursor:pointer}
#ev-readbar a.ev-rb-tick:hover,#ev-readbar a.ev-rb-tick:focus-visible{background:#efefec}
#ev-readbar a.ev-rb-tick:focus-visible{outline:2px solid #2659d7;outline-offset:2px}
#ev-readbar .ev-rb-px{color:#4a4a48;font-weight:400}
#ev-readbar a.ev-rb-tick b.down{color:#b3261e}
#ev-readbar a.ev-rb-tick b.up{color:#137333}
#ev-readbar .ev-rb-mkt{font-size:13px;font-weight:400;color:#5c5f62}
#ev-readbar .ev-rb-ext{font-size:13px;font-weight:400;color:#5c5f62;margin-left:4px;padding-left:12px;border-left:1px solid #c9ccd1}
#ev-readbar a.ev-rb-tick::after{content:attr(data-more);position:absolute;top:calc(100% + 8px);right:0;background:#2a2a28;color:#fff;font-size:12px;font-weight:400;padding:5px 10px;border-radius:6px;white-space:nowrap;opacity:0;transform:translateY(-2px);pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:10}
#ev-readbar a.ev-rb-tick:hover::after,#ev-readbar a.ev-rb-tick:focus-visible::after{opacity:1;transform:none}
#ev-readbar a.ev-rb-tick[data-more=""]::after,#ev-readbar a.ev-rb-tick:not([data-more])::after{display:none}
#ev-readbar .ev-rb-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
#ev-readbar .ev-rb-prog{height:3px}
/* ===== end EV readbar upgrade ===== */
/* ===== Flourish embed spacing fix ===== */
.flourish-embed iframe{display:block !important;margin-bottom:0 !important}
.flourish-embed.flourish-chart{margin:0 0 30px !important}
/* ===== end Flourish embed spacing fix ===== */
/* ===== Author box redesign (Option A) ===== */
.author-box{padding:20px 26px !important}
.author-box .author-header{display:flex !important;justify-content:space-between !important;align-items:center !important;gap:12px}
.author-box .author-header .author-social{margin:0 !important;display:inline-flex !important;align-items:center}
.author-box .author-more.block-view-more{display:inline-flex !important;align-items:center;margin-top:12px !important}
.author-box .author-footer{display:none !important}
/* ===== end Author box redesign (Option A) ===== */
/* === EV category sidebar: newsletter panel (12 Aug 2026) ===
   Same beehiiv form and the same visual tokens as the footer newsletter
   (.ev-fr-newsletter): panel #82aaf9, 18px 22px padding, Open Sans, text
   #e6edfa, eyebrow 11px/500, meta 12px. Only the title scales down, because
   the sidebar column is 337px against the footer's 466px. Panel background is
   the brand card's KEY FACTS blue (#f7f9fc), so the type runs dark. Kept short so the
   Raptive sticky rail has room underneath. */
.rbc-sidebar .ev-snl{background:#f7f9fc;padding:18px 22px;}
.rbc-sidebar .ev-snl p{font-family:"Open Sans",sans-serif;color:#1a1a1a;}
.rbc-sidebar .ev-snl p.ev-snl-eyebrow{font-size:11px;line-height:1.55;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#2659d7;margin:0 0 8px;}
.rbc-sidebar .ev-snl p.ev-snl-title{font-size:19px;line-height:1.25;font-weight:400;margin:0 0 6px;}
.rbc-sidebar .ev-snl p.ev-snl-meta{font-size:12px;line-height:1.55;font-weight:400;color:#6b7280;margin:0 0 14px;}
/* beehiiv's loader wraps the iframe in divs that start at height:0 and only
   grow when the form posts its measured height back. That message does not
   arrive when two instances of the same form are on one page - the footer
   embed already had this (it sits at 2000px on /exclusive), and the sidebar
   copy inherited it, rendering as nothing. Clamp the row height ourselves so
   the form paints regardless. 56px is what the footer settles at. */
.rbc-sidebar .ev-snl-form{margin:0;height:64px;overflow:hidden;}
.rbc-sidebar .ev-snl-form > div,
.rbc-sidebar .ev-snl-form > div > div{height:64px !important;overflow:hidden;}
.rbc-sidebar .ev-snl-form iframe{display:block;width:100%;height:64px !important;}
/* === Headline hover: blue + underline on archives, matching the homepage ===
   Pixwell ships .p-grid .entry-title a.p-url:hover{text-decoration:none!important},
   which outranks the site-wide underline rule on listing cards, so archives were
   turning blue with no underline. Match that selector and go one level higher. */
html body .p-wrap .entry-title a.p-url:hover,
html body .p-grid .entry-title a.p-url:hover,
html body .p-list .entry-title a.p-url:hover,
html body .p-classic .entry-title a.p-url:hover{text-decoration:underline !important;text-underline-offset:2px !important;}
/* === Archive column alignment (12 Aug 2026) ===
   The content column opens at .content-wrap padding-top:12px and the brand
   card adds its own 6px, so the card sat 18px below the newsletter panel.
   Zero the card margin and give the sidebar the same 12px, so both columns
   start on the same line whether or not the category has a hub card. */
html body .ev-bhub{margin-top:0 !important;}
.archive .rbc-sidebar .sidebar-inner{padding-top:12px;}
/* === Topic filter chips: match the site button radius ===
   Every other button here (pagination, menu toggles, search, off-canvas
   close) is square. The chips were full pills at 100px. */
html body .ev-tf-chip{border-radius:0 !important;}
/* === Header social icons: a little larger (12 Aug 2026) ===
   The anchor is pinned to 26px with 6px side padding, so the glyph only had a
   14px content box to sit in. Widen the anchor and size the image to match. */
html body .navbar-social a[class*="social-link"]{width:32px !important;}
html body .navbar-social a[class*="social-link"] img.ev-soc-ico{width:20px !important;height:20px !important;}
/* Desktop only. Below 992px (the theme's sidebar breakpoint) the column stops
   being a rail and stacks under the article list, where it would sit a few
   hundred pixels above the footer's newsletter block - the same CTA twice.
   Hide the panel, not the sidebar, so the Raptive slot below it survives. */
@media (max-width:991px){.rbc-sidebar .ev-snl{display:none;}}
/* === EV - reserve the header ad's true height (12 Aug 2026) ===
   Raptive's Header unit is configured with adSizes up to 970x250 and 728x250
   (read from window.adthrive.siteAds), so it can serve a 250px creative on
   every device class - but their own CSS reserves only 90px on desktop/tablet
   and 150px on phone. A tall creative lands in a short box and shoves the
   whole document down: measured a single 0.1444 layout shift against <body>
   8.7s after load, which was the page's entire CLS and its one failing Core
   Web Vital.
   Reserve what the slot can actually serve. This changes nothing about which
   ads run or how many. Header only - reserving on the footer slots would just
   add dead space, since nothing sits below them.
   Cost: when a 90px or 320x50 creative serves, the surplus shows as blank.
   >>> RESOLVED — 28 Aug 2026 <
   Raptive have now capped the MOBILE Header unit to 320x50, 320x100 and
   300x250. The tallest creative that can serve on mobile is therefore exactly
   250px, which this reservation matches. Desktop/tablet still carry 970x250
   and 728x250, also 250px. KEEP THIS BLOCK — it is now correctly sized on
   every device class. The only cost remains blank space when a short creative
   (320x50) fills, which is unavoidable without giving up the tall sizes.
   Raptive separately confirmed the duplicate min-height:250px declarations do
   not stack and cause no additional height. */
html body .adthrive-header-desktop,
html body .adthrive-header-tablet,
html body .adthrive-header-phone,
html body .adthrive-header-mobile{min-height:250px !important;}
/* === Reserve space for images shipped without dimensions (24 Aug 2026) ===
   15 of 32 images on a sampled article carry neither width/height attributes
   nor a CSS aspect-ratio, so each is a potential shift as it decodes. Most
   were small social icons, so treat this as prevention rather than a fix.
   16/9 matches the pixwell_780x0-2x featured-image ratio used sitewide.
   CHECK A GALLERY POST before keeping this - if galleries use a different
   ratio, scope the selector more narrowly. */
.entry-content img:not([width]):not([height]),
.rbc-content img:not([width]):not([height]){aspect-ratio:16/9;width:100%;height:auto}
.entry-content img[width][height],
.rbc-content img[width][height]{height:auto}
/* === FIX: rails broken by the 24 Aug height:auto rule (28 Aug 2026) ===
   .ev-exrail__media and .ev-cnrail__media are aspect-ratio:16/10 boxes whose
   images must fill them at height:100% for object-fit:cover to do anything.
   Both blocks sit inside .entry-content / .rbc-content and their images carry
   width+height attributes, so they match the rule directly above and get
   height:auto instead. Each image then renders at its own natural ratio:
   measured 800/534 on the exrail lead (overflowed the box by 19px) and
   wider sources falling 18-35px short, showing the panel background as a
   strip under the photo. Restore the fill. !important is required because the
   24 Aug rule wins on specificity otherwise.
   Affects only these two blocks; nothing else on the site uses this pattern. */
.ev-exrail__media img,
.ev-cnrail__media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block;
}
/* === end rails fix === */