/*
Theme Name: RoadVerity
Theme URI: https://roadverity.com/
Author: RoadVerity
Author URI: https://roadverity.com/
Description: Ultra-fast, SEO-first custom theme for DMV / driving-record guides. No page builder, no jQuery, no external dependencies. System fonts only.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: roadverity
Tags: one-column, two-columns, right-sidebar, custom-menu, custom-logo, featured-images, translation-ready, accessibility-ready, blog
*/
:root{--primary:#2563eb;--primary-d:#1d4ed8;--primary-l:#3b82f6;--accent:#22d3ee;--accent-2:#2dd4bf;--navy:#0a1730;--navy-2:#0d2348;--navy-3:#102a52;--ink:#0f172a;--text:#1f2937;--muted:#64748b;--line:#e6eaf2;--bg:#f6f8fc;--card:#fff;--c-violet:#7c3aed;--c-red:#ef4444;--c-green:#10b981;--c-blue:#2563eb;--c-indigo:#8b5cf6;--c-amber:#f59e0b;--radius:18px;--radius-s:12px;--radius-pill:999px;--shadow:0 6px 18px rgba(15,23,42,.08);--shadow-lg:0 18px 40px rgba(15,23,42,.12);--maxw:1240px;--gut:clamp(16px,4vw,32px);--hdr-h:74px;--ff:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h) + 16px)}
body{font-family:var(--ff);color:var(--text);background:var(--bg);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-d)}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul{list-style:none;padding:0}
h1,h2,h3,h4{color:var(--ink);line-height:1.2;font-weight:800;letter-spacing:-.02em}
h1{font-size:clamp(2rem,5vw,3.4rem)}h2{font-size:clamp(1.5rem,3vw,2rem)}h3{font-size:clamp(1.15rem,2vw,1.35rem)}
p{margin:0 0 1em}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:8px;top:-60px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:2000;transition:top .2s}.skip-link:focus{top:8px;color:#fff}
.section{padding-block:clamp(36px,6vw,72px)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.section-head h2{font-size:clamp(1.3rem,2.4vw,1.7rem)}
.link-more{font-weight:700;color:var(--primary);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.link-more svg{width:16px;height:16px}
.site-header{position:sticky;top:0;z-index:1000;background:transparent;transition:background .3s,box-shadow .3s,backdrop-filter .3s}
.site-header.is-solid{background:rgba(10,23,48,.96);box-shadow:0 6px 24px rgba(0,0,0,.25);backdrop-filter:saturate(140%) blur(6px)}
.nav{display:flex;align-items:center;gap:18px;min-height:var(--hdr-h)}
.brand{display:flex;align-items:center;gap:10px;color:#fff;flex-shrink:0}.brand svg{width:38px;height:42px}
.brand b{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;display:block;line-height:1}.brand small{display:block;font-size:.72rem;color:#9fb3d1;font-weight:500}
.menu{display:flex;align-items:center;gap:4px;margin-left:14px}.menu>li{position:relative}
.menu a,.menu button{display:inline-flex;align-items:center;gap:5px;color:#dbe6f7;font-weight:600;font-size:.92rem;padding:9px 12px;border-radius:10px}
.menu a:hover,.menu button:hover,.menu [aria-expanded="true"]{color:#fff;background:rgba(255,255,255,.08)}
.menu .caret{width:12px;height:12px;transition:transform .2s}.menu [aria-expanded="true"] .caret{transform:rotate(180deg)}
.submenu{position:absolute;top:calc(100% + 8px);left:0;min-width:230px;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s}
.menu li:hover>.submenu,.menu li:focus-within>.submenu,.submenu.is-open{opacity:1;visibility:visible;transform:none}
.submenu a{color:var(--text);display:block;padding:9px 12px;border-radius:9px;font-weight:600}.submenu a:hover{background:var(--bg);color:var(--primary)}
.nav-tools{display:flex;align-items:center;gap:10px;margin-left:auto}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.25);color:#fff}.icon-btn:hover{background:rgba(255,255,255,.12)}.icon-btn svg{width:18px;height:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;border-radius:var(--radius-pill);padding:11px 22px;transition:transform .12s,box-shadow .2s,background .2s}.btn:active{transform:translateY(1px)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.4);color:#fff}.btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-primary{background:linear-gradient(135deg,var(--primary-l),var(--primary-d));color:#fff;box-shadow:0 8px 20px rgba(37,99,235,.4)}.btn-primary:hover{color:#fff;box-shadow:0 10px 26px rgba(37,99,235,.5)}.btn svg{width:18px;height:18px}
.burger{display:none;width:42px;height:42px;border-radius:10px;color:#fff;border:1px solid rgba(255,255,255,.25);place-items:center}.burger svg{width:22px;height:22px}
.mobile-panel{position:fixed;inset:0 0 0 auto;width:min(86vw,360px);background:var(--navy-2);color:#fff;transform:translateX(100%);transition:transform .3s ease;z-index:1100;padding:20px;overflow-y:auto;box-shadow:-20px 0 50px rgba(0,0,0,.4)}.mobile-panel.open{transform:none}
.mobile-panel .mp-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.mobile-panel a,.mobile-panel summary{display:block;color:#dbe6f7;font-weight:600;padding:12px 6px;border-bottom:1px solid rgba(255,255,255,.08)}
.mobile-panel details{border-bottom:1px solid rgba(255,255,255,.08)}.mobile-panel details a{border:0;padding-left:16px;font-weight:500;font-size:.95rem}
.mobile-panel summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.mobile-panel summary::-webkit-details-marker{display:none}
.scrim{position:fixed;inset:0;background:rgba(2,6,23,.55);opacity:0;visibility:hidden;transition:.3s;z-index:1050}.scrim.open{opacity:1;visibility:visible}
.hero h1{color:#fff}.hero h1 .grad{background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:#aebfd8;font-size:1.05rem;max-width:46ch;margin:14px 0 22px}
.searchbox{display:flex;align-items:center;gap:8px;background:#fff;border-radius:var(--radius-pill);padding:7px 7px 7px 22px;box-shadow:0 14px 40px rgba(0,0,0,.3);max-width:560px}
.searchbox input{flex:1;border:0;outline:0;font-size:1rem;color:var(--ink);background:transparent;min-width:0}.searchbox .btn{padding:13px 26px}
.popular{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}.popular span{color:#8ea3c4;font-size:.85rem;font-weight:600}
.chip{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#d6e2f5;border-radius:var(--radius-pill);padding:7px 14px;font-size:.83rem;font-weight:600;transition:.15s}.chip:hover{background:rgba(255,255,255,.16);color:#fff}
.trust-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:22px 26px;margin-top:8px}
.tb{display:flex;gap:12px;align-items:flex-start}.tb .ic{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:10px}.tb .ic svg{width:20px;height:20px}
.tb b{display:block;color:#fff;font-size:1rem}.tb small{color:#93a6c6;font-size:.82rem}.tb+.tb{border-left:1px solid rgba(255,255,255,.08);padding-left:18px}
.cat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.cat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 18px;text-align:center;transition:transform .18s,box-shadow .2s}.cat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.cat-ic{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;margin:0 auto 14px}.cat-ic svg{width:30px;height:30px}
.cat-card h3{font-size:1rem;margin-bottom:6px}.cat-card p{font-size:.83rem;color:var(--muted);margin:0}
.ic-violet{background:#f1ebff;color:var(--c-violet)}.ic-red{background:#fdeaea;color:var(--c-red)}.ic-green{background:#e7f8f1;color:var(--c-green)}.ic-blue{background:#e8f0ff;color:var(--c-blue)}.ic-indigo{background:#f0ebff;color:var(--c-indigo)}.ic-amber{background:#fef3e2;color:var(--c-amber)}
.layout{display:grid;grid-template-columns:1fr 340px;gap:34px;align-items:start}.stack{display:flex;flex-direction:column;gap:30px}
.aside{display:flex;flex-direction:column;gap:24px;position:sticky;top:calc(var(--hdr-h) + 16px)}
.featured-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.card-media{position:relative;aspect-ratio:16/10;background:linear-gradient(135deg,#1e3a6e,#0d2348);display:block}.card-media img{width:100%;height:100%;object-fit:cover}
.badge{position:absolute;top:14px;left:14px;background:var(--primary);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.04em;padding:6px 12px;border-radius:8px;text-transform:uppercase}
.card-body{padding:20px}
.tag{display:inline-block;font-size:.74rem;font-weight:800;padding:5px 11px;border-radius:var(--radius-pill);margin-bottom:10px}
.tag-blue{background:#e8f0ff;color:var(--c-blue)}.tag-violet{background:#f1ebff;color:var(--c-violet)}.tag-red{background:#fdeaea;color:var(--c-red)}.tag-green{background:#e7f8f1;color:var(--c-green)}.tag-amber{background:#fef3e2;color:var(--c-amber)}.tag-indigo{background:#f0ebff;color:var(--c-indigo)}
.card-body h3{margin-bottom:8px}.card-body h3 a{color:var(--ink)}.card-body h3 a:hover{color:var(--primary)}.card-body p{font-size:.92rem;color:var(--muted)}
.meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;color:var(--muted);font-size:.82rem;font-weight:600}.meta span{display:inline-flex;align-items:center;gap:5px}.meta svg{width:14px;height:14px}.meta a{color:var(--muted)}.meta a:hover{color:var(--primary)}
.list-post{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.list-post:last-child{border:0}
.list-post .thumb{aspect-ratio:3/2;border-radius:12px;overflow:hidden;background:#e2e8f0;display:block}.list-post .thumb img{width:100%;height:100%;object-fit:cover}
.list-post h3{font-size:1rem;margin:4px 0 6px}.list-post h3 a{color:var(--ink)}.list-post h3 a:hover{color:var(--primary)}
.widget{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.widget h3{font-size:1.1rem;margin-bottom:14px;display:flex;align-items:center;gap:8px}.widget h3 svg{width:20px;height:20px;color:var(--primary)}
.newsletter{background:linear-gradient(160deg,var(--navy-3),var(--navy));color:#fff;border:0}.newsletter h3{color:#fff}.newsletter h3 svg{color:var(--accent)}.newsletter p{color:#aebfd8;font-size:.92rem}
.newsletter input{width:100%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;border-radius:12px;padding:13px 16px;margin-bottom:12px;outline:0}.newsletter input::placeholder{color:#93a6c6}.newsletter .btn{width:100%}.newsletter small{display:block;color:#7e93b6;font-size:.78rem;margin-top:10px}
.tool{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line)}.tool:last-child{border:0}
.tool .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:var(--bg);color:var(--primary)}.tool .ic svg{width:18px;height:18px}
.tool b{display:block;font-size:.92rem;color:var(--ink)}.tool small{color:var(--muted);font-size:.8rem}
.pop-item{display:grid;grid-template-columns:54px 1fr 18px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.pop-item:last-child{border:0}
.pop-item .thumb{aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:#e2e8f0;display:block}.pop-item .thumb img{width:100%;height:100%;object-fit:cover}
.pop-item a{font-size:.9rem;font-weight:700;color:var(--ink)}.pop-item a:hover{color:var(--primary)}.pop-item .chev{color:var(--muted)}.pop-item .chev svg{width:16px;height:16px}
.state-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.state-card{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;text-align:center;transition:transform .18s,box-shadow .2s}.state-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.state-card .ph{aspect-ratio:5/3;background:linear-gradient(135deg,#2b5da8,#0d2348);display:block}.state-card .ph img{width:100%;height:100%;object-fit:cover}
.state-card b{display:block;padding:12px 6px 2px;color:var(--ink);font-size:.95rem}.state-card small{display:block;padding-bottom:12px;color:var(--muted);font-size:.78rem}
.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.ts{display:flex;gap:14px}.ts .ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#e8f0ff;color:var(--primary);flex-shrink:0}.ts .ic svg{width:22px;height:22px}
.ts b{display:block;color:var(--ink);margin-bottom:3px}.ts small{color:var(--muted);font-size:.85rem}
.progress-bar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--accent),var(--primary));z-index:1200}
.breadcrumb{font-size:.85rem;color:var(--muted);padding:16px 0}.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.breadcrumb li{display:flex;align-items:center;gap:6px}.breadcrumb li+li::before{content:"/";color:#cbd5e1}.breadcrumb a{color:var(--muted);font-weight:600}.breadcrumb a:hover{color:var(--primary)}.breadcrumb [aria-current]{color:var(--ink)}
.article-head{margin-bottom:18px}.article-head h1{margin:12px 0}
.fact{display:inline-flex;align-items:center;gap:6px;background:#e7f8f1;color:var(--c-green);font-weight:700;font-size:.78rem;padding:5px 11px;border-radius:var(--radius-pill)}.fact svg{width:14px;height:14px}
.share{display:flex;gap:8px;flex-wrap:wrap}.share a,.share button{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--bg);color:var(--muted);border:1px solid var(--line)}.share a:hover,.share button:hover{color:#fff;background:var(--primary);border-color:var(--primary)}.share svg{width:17px;height:17px}
.feature-img{border-radius:var(--radius);overflow:hidden;margin:18px 0 26px;aspect-ratio:16/9;background:#e2e8f0}.feature-img img{width:100%;height:100%;object-fit:cover}
.post-content{font-size:1.06rem;color:var(--text)}.post-content h2{margin:1.6em 0 .6em;scroll-margin-top:90px}.post-content h3{margin:1.3em 0 .5em;scroll-margin-top:90px}
.post-content p,.post-content ul,.post-content ol{margin-bottom:1.2em}.post-content ul,.post-content ol{padding-left:1.3em}.post-content ul{list-style:disc}.post-content ol{list-style:decimal}.post-content li{margin-bottom:.4em}.post-content a{text-decoration:underline}
.post-content figure{margin:1.4em 0}.post-content img{border-radius:12px}.post-content figcaption{text-align:center;color:var(--muted);font-size:.85rem;margin-top:8px}
.post-content blockquote{border-left:4px solid var(--primary);background:var(--bg);padding:14px 18px;border-radius:0 12px 12px 0;margin:1.4em 0;color:var(--ink);font-style:italic}
.takeaways,.callout{border-radius:14px;padding:20px 22px;margin:1.6em 0}.takeaways{background:linear-gradient(160deg,#eef4ff,#f6f8fc);border:1px solid #d6e3ff}.callout{background:#fff8e8;border:1px solid #fde9b8}.callout.info{background:#eef6ff;border-color:#cfe2ff}
.takeaways h3,.callout h3{display:flex;align-items:center;gap:8px;margin-bottom:10px}.takeaways ul{list-style:none;padding:0}.takeaways li{position:relative;padding-left:26px;margin-bottom:8px}.takeaways li::before{content:"\2713";position:absolute;left:0;color:var(--c-green);font-weight:800}
.toc{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin:0 0 26px}.toc h2{font-size:1.05rem;margin-bottom:10px}.toc ol{counter-reset:t}.toc li{counter-increment:t;margin:0}
.toc a{display:block;padding:6px 0;color:var(--text);font-weight:600;font-size:.92rem;border-bottom:1px dashed var(--line)}.toc a::before{content:counter(t,decimal-leading-zero) "  ";color:var(--primary);font-weight:800}.toc a.active{color:var(--primary)}.toc .lvl-3{padding-left:18px;font-weight:500;font-size:.88rem}
.faq{margin:1.6em 0}.faq details{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden}
.faq summary{padding:16px 18px;font-weight:700;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;list-style:none}.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;color:var(--primary);line-height:1;transition:transform .2s}.faq details[open] summary::after{content:"\2013"}
.faq .faq-a{padding:0 18px 16px;color:var(--text)}
.author-box{display:flex;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin:30px 0}
.author-box .av{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--primary-l),var(--primary-d));color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.4rem;flex-shrink:0}
.author-box b{font-size:1.05rem;color:var(--ink)}.author-box small{color:var(--muted);display:block;margin-bottom:6px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.tags a{background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:.82rem;font-weight:600;padding:6px 12px;border-radius:var(--radius-pill)}.tags a:hover{color:var(--primary);border-color:var(--primary)}
.ad-slot{margin:24px 0;text-align:center}.ad-slot .ad-inner{min-height:90px;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,#f1f5f9,#f1f5f9 10px,#f8fafc 10px,#f8fafc 20px);border:1px dashed #d6deea;border-radius:12px;color:#94a3b8;font-size:.72rem;letter-spacing:.05em}
.ad-slot.sidebar .ad-inner{min-height:250px}.ad-slot.mobile-only{display:none}
.page-title{padding:24px 0 4px}.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pagination{display:flex;justify-content:center;gap:8px;margin:36px 0}.pagination a,.pagination span{min-width:42px;height:42px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:#fff;font-weight:700;color:var(--ink);padding:0 12px}.pagination .current{background:var(--primary);color:#fff;border-color:var(--primary)}
.no-results{text-align:center;padding:60px 0}
.site-footer{background:var(--navy);color:#aebfd8;padding:56px 0 24px;margin-top:30px}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:30px}.foot-brand .brand{margin-bottom:14px}.foot-brand p{font-size:.9rem;max-width:34ch}
.socials{display:flex;gap:10px;margin-top:16px}.socials a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.07);display:grid;place-items:center;color:#cdd9ec}.socials a:hover{background:var(--primary);color:#fff}.socials svg{width:17px;height:17px}
.foot-col h4{color:#fff;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}.foot-col a{display:block;color:#9fb3d1;font-size:.9rem;padding:5px 0}.foot-col a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:36px;padding-top:20px;text-align:center;font-size:.85rem;color:#7e93b6}
@media(max-width:1080px){.menu{display:none}.burger{display:grid}.layout{grid-template-columns:1fr}.aside{position:static}.cat-grid{grid-template-columns:repeat(3,1fr)}.state-grid{grid-template-columns:repeat(3,1fr)}.trust-strip{grid-template-columns:repeat(2,1fr)}.foot-grid{grid-template-columns:1fr 1fr 1fr}.foot-brand{grid-column:1/-1}}
@media(max-width:520px){.cat-grid{grid-template-columns:1fr 1fr}.state-grid{grid-template-columns:1fr 1fr}.trust-strip{grid-template-columns:1fr}.foot-grid{grid-template-columns:1fr 1fr}.searchbox{flex-wrap:wrap;border-radius:18px;padding:12px}.searchbox input{flex-basis:100%;padding:6px 4px}.searchbox .btn{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* rv-patch2 */
.site-header,.site-header.is-solid{background:linear-gradient(135deg,rgba(13,35,72,.98),rgba(10,23,48,.98));backdrop-filter:saturate(140%) blur(6px)}
.site-header{box-shadow:0 6px 24px rgba(0,0,0,.18)}
.site-header.is-solid{box-shadow:0 10px 34px rgba(0,0,0,.32)}
.author-box .av svg{width:30px;height:30px}
.rv-count{color:#64748b;font-size:12px}
@media(max-width:1080px){.nav-tools .btn-ghost{display:none}}
.mp-signin{display:block;margin-top:18px;text-align:center;background:linear-gradient(135deg,var(--primary-l),var(--primary-d));color:#fff!important;border-radius:var(--radius-pill);padding:12px;font-weight:700;box-shadow:0 8px 20px rgba(37,99,235,.35)}
.mp-signin:hover{color:#fff!important}
/* rv-patch4 */
/* ---- site-wide form baseline (zero specificity via :where → never overrides a component rule) ---- */
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) :where(input[type=text],input[type=email],input[type=url],input[type=number],input[type=tel],input[type=search],input[type=password],input[type=date],input[type=datetime-local],select,textarea){
  width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;color:var(--ink);background:#fff;transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:none;appearance:none}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) textarea{min-height:124px;resize:vertical;line-height:1.6}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) select{padding-right:42px;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) :where(input,select,textarea):hover{border-color:#c3cde0}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) :where(input,select,textarea):focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 4px rgba(37,99,235,.14)}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) ::placeholder{color:#9aa6b8;opacity:1}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) label{display:block;font-weight:600;color:var(--ink);font-size:.92rem;margin-bottom:6px}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) :where(input[type=checkbox],input[type=radio]){width:18px;height:18px;margin:0;accent-color:var(--primary);cursor:pointer;flex-shrink:0}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) button,:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) :where(input[type=submit],input[type=button]){display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--bg);border:1.5px solid var(--line);color:var(--ink);border-radius:var(--radius-pill);padding:11px 22px;font:inherit;font-weight:700;cursor:pointer;transition:transform .12s,box-shadow .2s,background .15s,border-color .15s,color .15s}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) button:hover,:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) :where(input[type=submit],input[type=button]):hover{background:#fff;border-color:var(--primary);color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow)}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) fieldset{border:1px solid var(--line);border-radius:14px;padding:18px;margin:0 0 18px}
:where(.post-content,.comments-area,.tool-card,.widget:not(.newsletter),.rv-form) legend{font-weight:800;color:var(--ink);padding:0 8px}
/* ---- newsletter feedback + invalid state (dark surface) ---- */
.nl-msg{border-radius:10px;padding:10px 12px;font-weight:600;margin-bottom:12px}
.nl-msg.ok{background:rgba(45,212,191,.15);border:1px solid rgba(45,212,191,.4);color:#d6fff6}
.nl-msg.err{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.4);color:#ffe0e0}
.nl-error{color:#ffd2d2;font-size:.82rem;font-weight:600;margin:8px 0 0}
.newsletter input.invalid{border-color:#ff9a9a;box-shadow:0 0 0 3px rgba(255,120,120,.22)}
/* ---- comments / leave-a-reply (markup-robust for WP default walker) ---- */
.comments-area{margin-top:46px}
.comments-area>h2,.comments-area>h3,.comment-reply-title{font-size:1.3rem;margin-bottom:16px;color:var(--ink)}
.comment-list{list-style:none;margin:0 0 28px;padding:0}
.comment{padding:20px 0;border-top:1px solid var(--line)}
.comment-author{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--ink);flex-wrap:wrap}
.comment-author a{color:var(--ink)}
.comment-author .avatar{width:42px;height:42px;border-radius:50%;background:var(--bg);padding:6px;flex-shrink:0}
.comment-metadata{font-size:.8rem;color:var(--muted);margin:4px 0 10px}
.comment-metadata a{color:var(--muted)}
.comment-content{color:var(--text)}
.comment-content p:last-child{margin-bottom:0}
.reply{margin-top:10px}
.comment-reply-link{font-weight:700;font-size:.85rem;color:var(--primary)}
.children{list-style:none;margin:14px 0 0;padding-left:30px;border-left:2px solid var(--line)}
.children .comment{border-top:1px dashed var(--line)}
.comment-respond{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,3vw,26px);box-shadow:var(--shadow)}
.comment-form p{margin-bottom:14px}
.comment-form .form-submit{margin:0}
.comment-form #submit,.comment-form .submit{background:linear-gradient(135deg,var(--primary-l),var(--primary-d));color:#fff;border:0;border-radius:var(--radius-pill);padding:13px 32px;font-weight:700;cursor:pointer;box-shadow:0 8px 20px rgba(37,99,235,.35);transition:transform .12s,box-shadow .2s}
.comment-form #submit:hover,.comment-form .submit:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(37,99,235,.45);color:#fff}
.comment-notes,.logged-in-as{font-size:.85rem;color:var(--muted)}
.comment-form-cookies-consent{display:flex;gap:9px;align-items:flex-start;font-size:.85rem;color:var(--muted)}
.comment-form-cookies-consent label{display:inline;font-weight:500;margin:0}
/* ---- tables ---- */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.4em 0;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow)}
.post-content table{width:100%;border-collapse:collapse;margin:0;background:#fff;font-size:.95rem}
.post-content table caption{caption-side:top;text-align:left;font-weight:800;color:var(--ink);padding:0 0 10px}
.post-content thead th{background:linear-gradient(135deg,var(--navy-3),var(--navy));color:#fff;text-align:left;font-weight:700;padding:13px 16px;white-space:nowrap}
.post-content tbody td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:top}
.post-content tbody tr:nth-child(even){background:var(--bg)}
.post-content tbody tr:hover{background:#eef4ff}
.post-content table a{font-weight:600}
/* ---- interactive tools UI ---- */
.tool-page .tool-intro{font-size:1.05rem;color:var(--muted);max-width:62ch;margin-bottom:22px}
.tool-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,3vw,30px);box-shadow:var(--shadow)}
.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tool-field{display:flex;flex-direction:column;gap:7px}.tool-field.full{grid-column:1/-1}
.tool-actions{margin-top:20px}
.tool-btn{background:linear-gradient(135deg,var(--primary-l),var(--primary-d));color:#fff;border:0;border-radius:var(--radius-pill);padding:14px 30px;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 8px 20px rgba(37,99,235,.35);transition:transform .12s,box-shadow .2s}
.tool-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(37,99,235,.45);color:#fff}.tool-btn:active{transform:translateY(0)}
.tool-result{margin-top:24px;border-radius:16px;max-height:0;opacity:0;overflow:hidden;transition:max-height .45s ease,opacity .35s ease,padding .3s;background:linear-gradient(160deg,#eef4ff,#f6f8fc);border:1px solid #d6e3ff;padding:0 24px}
.tool-result.show{padding:24px;opacity:1;max-height:1800px}
.tool-result h3{font-size:1.05rem;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.tool-total{font-size:clamp(2.4rem,6vw,3.4rem);font-weight:800;letter-spacing:-.03em;color:var(--primary-d);line-height:1}
.tool-total small{display:block;font-size:.8rem;font-weight:600;color:var(--muted);letter-spacing:0;margin-top:6px}
.tool-breakdown{margin-top:16px;border-top:1px dashed #c7d6f5}
.tool-breakdown .row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed #dbe6fb;font-size:.95rem}
.tool-breakdown .row span:last-child{font-weight:700;color:var(--ink)}
.tool-breakdown .row.total{border-bottom:0;border-top:2px solid var(--primary);margin-top:6px;padding-top:12px;font-weight:800}
.tool-badge{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:.8rem;padding:6px 12px;border-radius:var(--radius-pill)}
.tool-badge.yes{background:#fdeaea;color:var(--c-red)}.tool-badge.no{background:#e7f8f1;color:var(--c-green)}.tool-badge.maybe{background:#fef3e2;color:var(--c-amber)}
.tool-steps{list-style:none;margin:14px 0 0;padding:0;counter-reset:s}
.tool-steps li{position:relative;padding:10px 0 10px 40px;border-bottom:1px solid var(--line);counter-increment:s}
.tool-steps li:last-child{border:0}
.tool-steps li::before{content:counter(s);position:absolute;left:0;top:9px;width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:800}
.tool-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}
.tool-meta div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.tool-meta b{display:block;color:var(--ink);font-size:1.05rem}.tool-meta small{color:var(--muted);font-size:.8rem}
.tool-note{margin-top:16px;background:#fff8e8;border:1px solid #fde9b8;border-radius:12px;padding:12px 14px;font-size:.88rem;color:#7a5b12}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.check-grid label{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-weight:600;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s;margin:0}
.check-grid label:hover{border-color:var(--primary);background:#f5f9ff}.check-grid input{margin-top:3px}
@media(max-width:620px){.tool-grid,.tool-meta,.check-grid{grid-template-columns:1fr}}
/* rv-patch4-end */
/* rv-patch10 */
/* rv-patch10-end */
/* rv-patch11-hero-final */
.hero-wrap {
  position: relative;
  overflow: hidden;
  min-height: 560px;
  padding: calc(var(--hdr-h) + 48px) 0 48px;
  background-color: #03132a;
  background-image:
    radial-gradient(ellipse 70% 60% at 85% 45%, rgba(37, 99, 235, 0.22) 0%, transparent 70%),
    url("https://roadverity.com/roadverity-dmv-record.webp");
  background-position: right center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  border-radius: 0 0 36px 36px;
}
.hero-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(10, 22, 40, 0.94) 0%,
    rgba(10, 22, 40, 0.82) 32%,
    rgba(10, 22, 40, 0.45) 55%,
    rgba(10, 22, 40, 0.15) 72%,
    transparent 88%
  );
  pointer-events: none;
  z-index: 1;
}
.hero-wrap .wrap,
.hero-wrap .trust-badges {
  position: relative;
  z-index: 2;
}
.hero {
  display: block;
  max-width: 620px;
  padding-top: 0;
  padding-bottom: 24px;
}
/* Header sits on top cleanly (no negative margin hack, no absolute overlap) */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
}
@media (max-width: 1100px) {
  .hero-wrap { background-position: 75% center; }
}
@media (max-width: 900px) {
  .hero-wrap { background-position: 70% center; min-height: 520px; }
  .hero-wrap::before {
    background: linear-gradient(
      100deg,
      rgba(10, 22, 40, 0.95) 0%,
      rgba(10, 22, 40, 0.85) 45%,
      rgba(10, 22, 40, 0.4) 75%,
      transparent 100%
    );
  }
}
@media (max-width: 640px) {
  .hero-wrap {
    background-position: center 20%;
    background-size: cover;
    min-height: 480px;
    padding-top: calc(var(--hdr-h) + 32px);
  }
  .hero-wrap::before {
    background: linear-gradient(
      to bottom,
      rgba(10, 22, 40, 0.55) 0%,
      rgba(10, 22, 40, 0.78) 40%,
      rgba(10, 22, 40, 0.92) 100%
    );
  }
  .hero { max-width: 100%; }
}
/* rv-patch11-hero-final-end */
/* rv-patch12 */
.hero-wrap{padding:56px 0 48px;background-position:right center;background-size:cover, contain;background-repeat:no-repeat, no-repeat}
.hero-wrap::before{background:linear-gradient(100deg,rgba(10,22,40,.9) 0%,rgba(10,22,40,.72) 34%,rgba(10,22,40,.35) 58%,transparent 80%)}
.hero{display:block;max-width:640px;margin:0;padding:0}
@media(max-width:900px){.hero-wrap{background-size:cover, cover;background-position:center, right center}.hero-wrap::before{background:linear-gradient(100deg,rgba(10,22,40,.95) 0%,rgba(10,22,40,.85) 45%,rgba(10,22,40,.45) 75%,transparent 100%)}}
@media(max-width:640px){.hero-wrap{padding:40px 0 32px;background-size:cover, cover;background-position:center, center 20%}.hero-wrap::before{background:linear-gradient(to bottom,rgba(10,22,40,.55) 0%,rgba(10,22,40,.8) 45%,rgba(10,22,40,.94) 100%)}.hero{max-width:100%}}
/* rv-patch12-end */
/* rv-patch13 */
/* #1 hero illustration anchored to the RIGHT-BOTTOM on every breakpoint */
.hero-wrap{background-position:right center}
@media(max-width:900px){.hero-wrap{background-position:right center}}
@media(max-width:640px){.hero-wrap{background-position:right center}}
/* #4 TOC numbers same color as the text (inherit link color; active turns both blue) */
.toc a::before{color:inherit}
/* #6 spacing for the comments / Leave-a-Reply block */
.comments-area{margin-top:48px}
.comment-respond{margin-top:24px}
/* #2 Featured Guides: prevent overflow + restore mobile stacking */
.featured-grid>*{min-width:0}
/* #2 + #5 restore the 760px responsive block that patch 11 accidentally removed */
@media(max-width:760px){
.featured-grid{grid-template-columns:1fr}
.related-grid,.posts-grid{grid-template-columns:1fr}
.trust-badges{grid-template-columns:1fr 1fr}
.tb+.tb{border-left:0;padding-left:0}
.ad-slot.mobile-only{display:block}
.ad-slot.desktop-only{display:none}
}
/* rv-patch13-end */
/* rv-patch15 */
/* TOC: kill the browser's own <ol> markers so only the styled counter shows */
.toc ol{list-style:none;padding:0;margin:0}
.toc li::marker{content:""}
/* Containment: grid column may shrink so .table-wrap becomes the scroll container */
.layout>*{min-width:0}
.post-content,.table-wrap{min-width:0;max-width:100%}
.table-wrap{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
/* Phones: every table gets a floor wider than the viewport → guaranteed horizontal swipe */
@media(max-width:640px){.table-wrap table{min-width:640px}}
/* Remove wpautop empty-paragraph gaps around tables */
.post-content p:empty{display:none}
.post-content p:has(> br:only-child){display:none}
/* Safety: drawer always visible when open */
.mobile-panel{visibility:visible}
/* rv-patch15-end */
/* rv-patch16 */
.pagination{display:block}
.pagination .nav-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px}
.pagination .nav-links a,.pagination .nav-links span{display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:#fff;font-weight:700;color:var(--ink);text-decoration:none;transition:border-color .15s,color .15s}
.pagination .nav-links a:hover{border-color:var(--primary);color:var(--primary)}
.pagination .nav-links .current{background:var(--primary);border-color:var(--primary);color:#fff}
.popular.light{justify-content:center;margin-top:8px}
.popular.light span{color:var(--muted)}
.popular.light .chip{background:#fff;border:1px solid var(--line);color:var(--text)}
.popular.light .chip:hover{border-color:var(--primary);color:var(--primary)}
.searchbox.on-light{box-shadow:var(--shadow);border:1px solid var(--line);max-width:640px;margin:0 0 26px}
/* rv-patch16-end */
/* rv-patch17 */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
.layout>*{min-width:0}
.featured-grid>*{min-width:0}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* rv-patch17-end */
/* rv-patch18 */
.signin-wrap{max-width:480px;margin-inline:auto}
.signin-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(24px,4vw,36px);box-shadow:var(--shadow-lg)}
.signin-card h1{font-size:1.6rem;margin-bottom:6px}
.signin-note{color:var(--muted);font-size:.95rem;margin-bottom:18px}
.signin-field{margin-bottom:14px}
.signin-remember{margin:4px 0 16px}
.signin-submit{margin:0}
.signin-submit .btn{width:100%}
.signin-links{margin:14px 0 0;text-align:center;font-size:.9rem}
.login-msg{border-radius:10px;padding:10px 12px;font-weight:600;margin:0 0 14px;font-size:.9rem}
.login-msg.err{background:#fdeaea;border:1px solid #f5c2c2;color:#b42323}
.login-msg.ok{background:#e7f8f1;border:1px solid #bfe8d6;color:#0f7b52}
.signin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.btn-ghost-dark{border:1.5px solid var(--line);color:var(--ink)}
.btn-ghost-dark:hover{background:var(--bg);color:var(--primary)}
/* rv-patch18-end */
