<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ohio &#8211; 24 Car Repair</title>
	<atom:link href="https://24car-repair.com/tag/ohio/feed/" rel="self" type="application/rss+xml" />
	<link>https://24car-repair.com</link>
	<description>We Believe Best Services</description>
	<lastBuildDate>Tue, 30 Dec 2025 11:02:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Ohio DMV Practice Test</title>
		<link>https://24car-repair.com/ohio-bmv-practice-test/</link>
					<comments>https://24car-repair.com/ohio-bmv-practice-test/#respond</comments>
		
		<dc:creator><![CDATA[Robert]]></dc:creator>
		<pubDate>Tue, 30 Dec 2025 09:06:01 +0000</pubDate>
				<category><![CDATA[DMV Practice Test]]></category>
		<category><![CDATA[Ohio BMV Practice Test]]></category>
		<category><![CDATA[Ohio]]></category>
		<guid isPermaLink="false">https://24car-repair.com/?p=5227</guid>

					<description><![CDATA[O H I O THE BUCKEYE STATE Ohio DMV Practice Test Prepare for your Ohio Driver&#8217;s License Exam Passing Score: 30 correct (75%) Time Limit: 60 seconds per question Select your test category below to begin your practice test. Enter Your Name: Car Driver&#8217;s Test Commercial Driver&#8217;s License (CDL) Motorcycle Test Start Practice Test Time [&#8230;]]]></description>
										<content:encoded><![CDATA[
<style>
        :root {
            --primary-color: #003366;
            --secondary-color: #f2f2f2;
            --accent-color: #BB0000;
            --correct-color: #4CAF50;
            --incorrect-color: #f44336;
            --text-color: #333;
            --light-text: #666;
            --card-bg: white;
            --shadow: 0 4px 8px rgba(0,0,0,0.1);
            --ohio-blue: #003366;
            --ohio-red: #BB0000;
            --ohio-white: #FFFFFF;
            --ohio-scarlet: #BB0000;
        }
        
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
        
        body {
            background-color: #f9f9f9;
            color: var(--text-color);
            line-height: 1.6;
            margin: 0 auto;
            background-image: linear-gradient(to bottom, #f0f8ff, #ffffff);
        }
         .controls-panel-2 {
width: 1200px;
            padding: 20px;
}
   @media (max-width: 480px) {        
.controls-panel-2 {
width: 390px;
}
}
button {
    color: #000000;
}
button:hover {
    color: #000000;

} 
        header {
            text-align: center;
            padding: 20px 0 30px;
            border-bottom: 3px solid var(--primary-color);
            margin-bottom: 30px;
            position: relative;
            background: linear-gradient(90deg, var(--ohio-blue) 0%, #004080 100%);
            border-radius: 10px;
            color: white;
        }
        
        h1 {
            color: var(--ohio-white);
            margin-bottom: 10px;
            font-size: 2.5rem;
            text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
        }
        
        .subtitle {
            color: #ffffff;
            font-size: 1.2rem;
            margin-bottom: 20px;
            opacity: 0.9;
        }
        
        .state-flag {
            height: 60px;
            margin-bottom: 15px;
            filter: drop-shadow(0 0 5px rgba(255,255,255,0.5));
        }
        
        .controls-panel {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: center;
            background: var(--card-bg);
            padding: 20px;
            border-radius: 10px;
            box-shadow: var(--shadow);
            margin-bottom: 30px;
            border: 2px solid #e0e9ff;
            background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
        }
        
        .name-input-container {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 15px;
            width: 100%;
            justify-content: center;
        }
        
        .name-input {
            padding: 12px 15px;
            border: 2px solid #ddd;
            border-radius: 5px;
            font-size: 1rem;
            width: 300px;
            max-width: 100%;
            transition: all 0.3s ease;
            border-color: var(--ohio-blue);
        }
        
        .name-input:focus {
            border-color: var(--ohio-blue);
            outline: none;
            box-shadow: 0 0 0 3px rgba(0, 51, 102, 0.1);
        }
        
        .name-label {
            font-weight: 600;
            color: var(--ohio-blue);
        }
        
        .category-selector {
            display: flex;
            gap: 15px;
            flex-wrap: wrap;
            margin-bottom: 15px;
            justify-content: center;
        }
        
        .category-btn {
            padding: 12px 24px;
            background: var(--secondary-color);
            border: 2px solid #ddd;
            border-radius: 50px;
            cursor: pointer;
            font-weight: 600;
            transition: all 0.3s ease;
        }
        
        .category-btn:hover {
            background: #e9e9e9;
            transform: translateY(-2px);
        }
        
        .category-btn.active {
            background: var(--ohio-blue);
            color: white;
            border-color: var(--ohio-blue);
            box-shadow: 0 4px 12px rgba(0, 51, 102, 0.2);
        }
        
        .test-info {
            background: #f0f8ff;
            padding: 15px;
            border-radius: 8px;
            border-left: 4px solid var(--ohio-blue);
            margin-bottom: 20px;
            text-align: center;
            border: 1px solid #d0e2ff;
        }
        
        .test-stats {
            display: flex;
            justify-content: center;
            gap: 30px;
            margin-bottom: 10px;
            font-weight: 600;
            flex-wrap: wrap;
        }
        
        .timer-container {
            background: var(--card-bg);
            padding: 15px;
            border-radius: 8px;
            text-align: center;
            margin-bottom: 25px;
            box-shadow: var(--shadow);
            border: 2px solid #e0e9ff;
        }
        
        .timer {
            font-size: 2.2rem;
            font-weight: 700;
            color: var(--ohio-blue);
            margin: 10px 0;
        }
        
        .timer.warning {
            color: var(--accent-color);
        }
        
        .timer.danger {
            color: var(--incorrect-color);
            animation: pulse 1s infinite;
        }
        
        @keyframes pulse {
            0% { opacity: 1; }
            50% { opacity: 0.7; }
            100% { opacity: 1; }
        }
        
        .question-card {
            background: var(--card-bg);
            padding: 30px;
            border-radius: 10px;
            box-shadow: var(--shadow);
            margin-bottom: 30px;
            display: none;
            border: 2px solid #e0e9ff;
        }
        
        .question-card.active {
            display: block;
        }
        
        .question-number {
            color: var(--ohio-blue);
            font-weight: 700;
            font-size: 1.1rem;
            margin-bottom: 10px;
            display: flex;
            justify-content: space-between;
        }
        
        .question-text {
            font-size: 1.3rem;
            margin-bottom: 25px;
            line-height: 1.5;
        }
        
        .options-container {
            display: grid;
            grid-template-columns: 1fr;
            gap: 12px;
            margin-bottom: 25px;
        }
        
        .option {
            padding: 16px 20px;
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            cursor: pointer;
            transition: all 0.2s ease;
            display: flex;
            align-items: center;
        }
        
        .option:hover {
            background: #f5f5f5;
            border-color: #bbb;
            transform: translateX(5px);
        }
        
        .option.selected {
            border-color: var(--ohio-blue);
            background-color: rgba(0, 51, 102, 0.05);
        }
        
        .option.correct {
            border-color: var(--correct-color);
            background-color: rgba(76, 175, 80, 0.1);
        }
        
        .option.incorrect {
            border-color: var(--incorrect-color);
            background-color: rgba(244, 67, 54, 0.1);
        }
        
        .option-label {
            display: inline-block;
            width: 36px;
            height: 36px;
            line-height: 36px;
            text-align: center;
            background: #eee;
            border-radius: 50%;
            margin-right: 15px;
            font-weight: 600;
        }
        
        .option.selected .option-label {
            background: var(--ohio-blue);
            color: white;
        }
        
        .navigation-buttons {
            display: flex;
            justify-content: space-between;
            margin-top: 20px;
        }
        
        .btn {
            padding: 14px 28px;
            border: none;
            border-radius: 8px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            font-size: 1rem;
        }
        
        .btn-primary {
            background: var(--ohio-blue);
            color: white;
        }
        
        .btn-primary:hover {
            background: #001a44;
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(0, 51, 102, 0.3);
        }
        
        .btn-secondary {
            background: #f0f0f0;
            color: var(--text-color);
        }
        
        .btn-secondary:hover {
            background: #e0e0e0;
            transform: translateY(-2px);
        }
        
        .btn-accent {
            background: var(--accent-color);
            color: white;
        }
        
        .btn-accent:hover {
            background: #a00924;
            transform: translateY(-2px);
        }
        
        .progress-container {
            width: 100%;
            height: 10px;
            background: #eee;
            border-radius: 5px;
            margin: 20px 0;
            overflow: hidden;
        }
        
        .progress-bar {
            height: 100%;
            background: var(--ohio-blue);
            width: 0%;
            transition: width 0.5s ease;
        }
        
        .results-container {
            background: var(--card-bg);
            padding: 40px;
            border-radius: 10px;
            box-shadow: var(--shadow);
            text-align: center;
            display: none;
            margin-bottom: 30px;
            border: 2px solid #e0e9ff;
        }
        
        .results-container.show {
            display: block;
        }
        
        .results-header {
            color: var(--ohio-blue);
            margin-bottom: 15px;
            font-size: 2rem;
        }
        
        .tester-name {
            color: var(--ohio-blue);
            font-weight: 700;
            font-size: 1.3rem;
            margin-bottom: 25px;
            padding-bottom: 15px;
            border-bottom: 2px solid #eee;
        }
        
        .score-circle {
            width: 200px;
            height: 200px;
            border-radius: 50%;
            margin: 0 auto 30px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            position: relative;
            background: conic-gradient(var(--correct-color) 0% 0%, #eee 0% 100%);
        }
        
        .score-circle-inner {
            width: 160px;
            height: 160px;
            border-radius: 50%;
            background: white;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        
        .score-percent {
            font-size: 2.8rem;
            font-weight: 700;
            color: var(--text-color);
        }
        
        .score-text {
            font-size: 1.2rem;
            color: var(--light-text);
        }
        
        .pass {
            color: var(--correct-color);
        }
        
        .fail {
            color: var(--incorrect-color);
        }
        
        .result-details {
            display: flex;
            justify-content: center;
            gap: 40px;
            margin: 30px 0;
            flex-wrap: wrap;
        }
        
        .result-box {
            padding: 20px;
            border-radius: 8px;
            min-width: 180px;
            box-shadow: var(--shadow);
            border: 1px solid #eee;
        }
        
        .result-box.correct {
            border-top: 4px solid var(--correct-color);
        }
        
        .result-box.incorrect {
            border-top: 4px solid var(--incorrect-color);
        }
        
        .result-box.skipped {
            border-top: 4px solid var(--accent-color);
        }
        
        .result-value {
            font-size: 2.2rem;
            font-weight: 700;
            margin-bottom: 5px;
        }
        
        .result-label {
            color: var(--light-text);
        }
        
        .recommendation {
            background: #f9f9f9;
            padding: 25px;
            border-radius: 8px;
            margin: 30px 0;
            text-align: left;
            border: 1px solid #eee;
        }
        
        .incorrect-questions-section {
            text-align: left;
            margin-top: 40px;
            border-top: 1px solid #eee;
            padding-top: 30px;
            display: none;
        }
        
        .incorrect-questions-section.show {
            display: block;
        }
        
        .incorrect-question {
            padding: 20px;
            border: 1px solid #eee;
            border-radius: 8px;
            margin-bottom: 20px;
            background: #f9f9f9;
            border-left: 4px solid var(--incorrect-color);
        }
        
        .review-section {
            text-align: left;
            margin-top: 40px;
            border-top: 1px solid #eee;
            padding-top: 30px;
            display: none;
        }
        
        .review-section.show {
            display: block;
        }
        
        .review-question {
            padding: 20px;
            border: 1px solid #eee;
            border-radius: 8px;
            margin-bottom: 20px;
            background: #f9f9f9;
        }
        
        .review-question.correct {
            border-left: 4px solid var(--correct-color);
        }
        
        .review-question.incorrect {
            border-left: 4px solid var(--incorrect-color);
        }
        
        .review-question.skipped {
            border-left: 4px solid var(--accent-color);
        }
        
        footer {
            text-align: center;
            padding: 20px;
            color: var(--light-text);
            border-top: 1px solid #eee;
            margin-top: 40px;
            font-size: 0.9rem;
        }
        
        .toggle-buttons {
            display: flex;
            justify-content: center;
            gap: 15px;
            margin-top: 20px;
            flex-wrap: wrap;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 15px;
            }
            
            h1 {
                font-size: 2rem;
            }
            
            .controls-panel {
                flex-direction: column;
                gap: 20px;
            }
            
            .category-selector {
                width: 100%;
                justify-content: center;
            }
            
            .question-card {
                padding: 20px;
            }
            
            .question-text {
                font-size: 1.1rem;
            }
            
            .navigation-buttons {
                flex-direction: column;
                gap: 10px;
            }
            
            .btn {
                width: 100%;
            }
            
            .result-details {
                gap: 15px;
            }
            
            .result-box {
                min-width: 140px;
            }
            
            .toggle-buttons {
                flex-direction: column;
            }
        }
    </style>
</head>
<body>
<div class="controls-panel-2">

    <header>
        <!-- Ohio State Flag Representation -->
        <svg class="state-flag" viewBox="0 0 100 60" width="100" height="60">
            <rect width="100" height="60" fill="#003366"/>
            <circle cx="25" cy="30" r="15" fill="white"/>
            <circle cx="25" cy="30" r="7" fill="#BB0000"/>
            <text x="25" y="32" text-anchor="middle" fill="#003366" font-size="6" font-weight="bold">O H I O</text>
            <text x="60" y="25" text-anchor="middle" fill="white" font-size="6" font-weight="bold">THE BUCKEYE</text>
            <text x="60" y="35" text-anchor="middle" fill="white" font-size="6" font-weight="bold">STATE</text>
        </svg>
        <h1 style="color: #fff;">Ohio DMV Practice Test</h1>
        <div class="subtitle">Prepare for your Ohio Driver&#8217;s License Exam</div>
        <div class="test-info" style="background: rgba(255,255,255,0.2); border: 1px solid rgba(255,255,255,0.3);">
            <div class="test-stats">
                <div>Passing Score: 30 correct (75%)</div>
                <div>Time Limit: 60 seconds per question</div>
            </div>
            <div>Select your test category below to begin your practice test.</div>
        </div>
    </header>
    
    <main>
        <div class="controls-panel">
            <div class="name-input-container">
                <span class="name-label">Enter Your Name:</span>
                <input type="text" class="name-input" id="testerName" placeholder="Your Name" maxlength="50">
            </div>
            <div class="category-selector">
                <button class="category-btn active" data-category="car">Car Driver&#8217;s Test</button>
                <button class="category-btn" data-category="cdl">Commercial Driver&#8217;s License (CDL)</button>
                <button class="category-btn" data-category="motorcycle">Motorcycle Test</button>
            </div>
            <button id="startTestBtn" class="btn btn-primary">Start Practice Test</button>
        </div>
        
        <div class="timer-container" style="display: none;">
            <div>Time Remaining for this Question:</div>
            <div class="timer" id="timer">60</div>
            <div>seconds</div>
        </div>
        
        <div class="progress-container" style="display: none;">
            <div class="progress-bar" id="progressBar"></div>
        </div>
        
        <div class="question-card" id="questionCard">
            <div class="question-number">
                <span>Question <span id="currentQuestion">1</span> of 40</span>
                <span>Category: <span id="currentCategory">Car</span></span>
            </div>
            <div class="question-text" id="questionText">
                Loading question&#8230;
            </div>
            <div class="options-container" id="optionsContainer">
                <!-- Options will be dynamically inserted here -->
            </div>
            <div class="navigation-buttons">
                <button id="prevBtn" class="btn btn-secondary">Previous Question</button>
                <button id="skipBtn" class="btn btn-accent">Skip Question</button>
                <button id="nextBtn" class="btn btn-primary">Next Question</button>
            </div>
        </div>
        
        <div class="results-container" id="resultsContainer">
            <h2 class="results-header">Test Results</h2>
            <div class="tester-name" id="testerNameDisplay">Tester: Not Provided</div>
            
            <div class="score-circle" id="scoreCircle">
                <div class="score-circle-inner">
                    <div class="score-percent" id="scorePercentElement">0%</div>
                    <div class="score-text" id="scoreText">Score</div>
                </div>
            </div>
            
            <div id="resultMessage">
                <h3 style="margin-bottom: 10px;">Calculating your results&#8230;</h3>
                <p>You need 30 correct answers (75%) to pass the Ohio DMV test.</p>
            </div>
            
            <div class="result-details">
                <div class="result-box correct">
                    <div class="result-value" id="correctCount">0</div>
                    <div class="result-label">Correct</div>
                </div>
                <div class="result-box incorrect">
                    <div class="result-value" id="incorrectCount">0</div>
                    <div class="result-label">Incorrect</div>
                </div>
                <div class="result-box skipped">
                    <div class="result-value" id="skippedCount">0</div>
                    <div class="result-label">Skipped</div>
                </div>
            </div>
            
            <div class="recommendation" id="recommendation">
                <!-- Recommendations will be added here -->
            </div>
            
            <div class="toggle-buttons">
                <button id="showIncorrectBtn" class="btn btn-secondary">Show Incorrect Questions</button>
                <button id="reviewTestBtn" class="btn btn-secondary">Review All Questions</button>
                <button id="restartTestBtn" class="btn btn-primary">Take Another Test</button>
            </div>
            
            <div class="incorrect-questions-section" id="incorrectQuestionsSection">
                <h3>Incorrect Questions Review</h3>
                <div id="incorrectQuestionsList">
                    <!-- Incorrect questions will be added here -->
                </div>
            </div>
            
            <div class="review-section" id="reviewSection">
                <h3>Complete Test Review</h3>
                <div id="reviewQuestions">
                    <!-- Review questions will be added here -->
                </div>
            </div>
        </div>
    </main>
</div>    
    <script>
        // BMV Test Configuration for Ohio
        const TEST_CONFIG = {
            totalQuestions: 100,
            testQuestions: 40, // Ohio DMV test has 40 questions
            passingScore: 30, // Need 30/40 to pass (75%)
            passingPercent: 75,
            timePerQuestion: 60, // seconds
            categories: ['car', 'cdl', 'motorcycle']
        };
        
        // Question banks for each category with 100 questions each
        const questionBanks = {
            car: generateOhioCarQuestions(),
            cdl: generateOhioCDLQuestions(),
            motorcycle: generateOhioMotorcycleQuestions()
        };
        
        // Test state
        let testState = {
            testerName: '',
            currentCategory: 'car',
            currentQuestionIndex: 0,
            selectedQuestions: [],
            userAnswers: new Array(TEST_CONFIG.testQuestions).fill(null),
            timeRemaining: TEST_CONFIG.timePerQuestion,
            timerInterval: null,
            testStarted: false,
            testCompleted: false,
            incorrectQuestions: []
        };
        
        // DOM Elements
        const nameInput = document.getElementById('testerName');
        const categoryBtns = document.querySelectorAll('.category-btn');
        const startTestBtn = document.getElementById('startTestBtn');
        const timerContainer = document.querySelector('.timer-container');
        const timerElement = document.getElementById('timer');
        const progressContainer = document.querySelector('.progress-container');
        const progressBar = document.getElementById('progressBar');
        const questionCard = document.getElementById('questionCard');
        const currentQuestionElement = document.getElementById('currentQuestion');
        const currentCategoryElement = document.getElementById('currentCategory');
        const questionTextElement = document.getElementById('questionText');
        const optionsContainer = document.getElementById('optionsContainer');
        const prevBtn = document.getElementById('prevBtn');
        const skipBtn = document.getElementById('skipBtn');
        const nextBtn = document.getElementById('nextBtn');
        const resultsContainer = document.getElementById('resultsContainer');
        const testerNameDisplay = document.getElementById('testerNameDisplay');
        const scoreCircle = document.getElementById('scoreCircle');
        const scorePercentElement = document.getElementById('scorePercentElement');
        const scoreText = document.getElementById('scoreText');
        const correctCount = document.getElementById('correctCount');
        const incorrectCount = document.getElementById('incorrectCount');
        const skippedCount = document.getElementById('skippedCount');
        const resultMessage = document.getElementById('resultMessage');
        const recommendation = document.getElementById('recommendation');
        const incorrectQuestionsSection = document.getElementById('incorrectQuestionsSection');
        const incorrectQuestionsList = document.getElementById('incorrectQuestionsList');
        const reviewSection = document.getElementById('reviewSection');
        const reviewQuestions = document.getElementById('reviewQuestions');
        const showIncorrectBtn = document.getElementById('showIncorrectBtn');
        const reviewTestBtn = document.getElementById('reviewTestBtn');
        const restartTestBtn = document.getElementById('restartTestBtn');
        
        // Initialize event listeners
        function initEventListeners() {
            // Category selection
            categoryBtns.forEach(btn => {
                btn.addEventListener('click', () => {
                    categoryBtns.forEach(b => b.classList.remove('active'));
                    btn.classList.add('active');
                    testState.currentCategory = btn.dataset.category;
                    currentCategoryElement.textContent = btn.textContent.replace(' Test', '');
                });
            });
            
            // Start test button
            startTestBtn.addEventListener('click', startTest);
            
            // Navigation buttons
            prevBtn.addEventListener('click', showPreviousQuestion);
            skipBtn.addEventListener('click', skipQuestion);
            nextBtn.addEventListener('click', showNextQuestion);
            
            // Results buttons
            showIncorrectBtn.addEventListener('click', toggleIncorrectQuestions);
            reviewTestBtn.addEventListener('click', toggleReviewSection);
            restartTestBtn.addEventListener('click', restartTest);
        }
        
        // Generate 100 Ohio Car questions
        function generateOhioCarQuestions() {
            return [
                {
                    id: 1,
                    category: 'car',
                    question: 'What is the maximum speed limit on Ohio interstate highways?',
                    options: ['55 mph', '65 mph', '70 mph', '75 mph'],
                    correctAnswer: 2,
                    topic: 'Speed Limits',
                    explanation: 'The maximum speed limit on Ohio interstates is 70 mph for cars.'
                },
                {
                    id: 2,
                    category: 'car',
                    question: 'When must you use your headlights in Ohio?',
                    options: ['From sunset to sunrise', 'When visibility is less than 1000 feet', 'When windshield wipers are in use', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Lighting',
                    explanation: 'Ohio law requires headlights from sunset to sunrise, when visibility is less than 1000 feet, and when windshield wipers are in use.'
                },
                {
                    id: 3,
                    category: 'car',
                    question: 'What should you do when approaching a stopped school bus with flashing red lights in Ohio?',
                    options: ['Slow down to 20 mph', 'Stop until the bus moves', 'Stop at least 10 feet away', 'Stop from either direction on undivided roads'],
                    correctAnswer: 3,
                    topic: 'School Buses',
                    explanation: 'In Ohio, you must stop for school buses with flashing red lights from either direction on undivided roads.'
                },
                {
                    id: 4,
                    category: 'car',
                    question: 'What is the legal blood alcohol concentration (BAC) limit for drivers over 21 in Ohio?',
                    options: ['0.06%', '0.08%', '0.10%', '0.05%'],
                    correctAnswer: 1,
                    topic: 'DUI Laws',
                    explanation: 'The legal BAC limit for drivers over 21 in Ohio is 0.08%.'
                },
                {
                    id: 5,
                    category: 'car',
                    question: 'How far ahead should you signal before turning in Ohio?',
                    options: ['50 feet', '100 feet', 'At least 100 feet', '200 feet'],
                    correctAnswer: 2,
                    topic: 'Turning',
                    explanation: 'Ohio law requires signaling at least 100 feet before turning.'
                },
                {
                    id: 6,
                    category: 'car',
                    question: 'When parking uphill with a curb, how should you turn your wheels in Ohio?',
                    options: ['Away from the curb', 'Toward the curb', 'Straight', 'It doesn\'t matter'],
                    correctAnswer: 0,
                    topic: 'Parking',
                    explanation: 'When parking uphill with a curb, turn your wheels away from the curb in Ohio.'
                },
                {
                    id: 7,
                    category: 'car',
                    question: 'What does a solid yellow line on your side of the road mean in Ohio?',
                    options: ['Passing is allowed with caution', 'No passing allowed', 'You may pass if safe', 'HOV lane'],
                    correctAnswer: 1,
                    topic: 'Road Markings',
                    explanation: 'A solid yellow line on your side means no passing is allowed in Ohio.'
                },
                {
                    id: 8,
                    category: 'car',
                    question: 'What should you do when you see a flashing yellow traffic light in Ohio?',
                    options: ['Stop completely', 'Slow down and proceed with caution', 'Speed up to clear intersection', 'Treat as stop sign'],
                    correctAnswer: 1,
                    topic: 'Traffic Signals',
                    explanation: 'A flashing yellow light means proceed with caution in Ohio.'
                },
                {
                    id: 9,
                    category: 'car',
                    question: 'How long do you have to report an accident to the Ohio DMV if there is injury, death, or over $1,000 damage?',
                    options: ['Immediately', 'Within 24 hours', 'Within 48 hours', 'Within 6 months'],
                    correctAnswer: 3,
                    topic: 'Accidents',
                    explanation: 'Accidents involving injury, death, or over $1,000 damage must be reported to DMV within 6 months in Ohio.'
                },
                {
                    id: 10,
                    category: 'car',
                    question: 'What is the minimum following distance behind another vehicle in Ohio?',
                    options: ['2 seconds', '3 seconds', '4 seconds', '5 seconds'],
                    correctAnswer: 1,
                    topic: 'Safe Driving',
                    explanation: 'Maintain at least a 3-second following distance for safe driving in Ohio.'
                },
                {
                    id: 11,
                    category: 'car',
                    question: 'When can you legally make a U-turn in Ohio?',
                    options: ['Only where permitted by signs', 'Only at intersections', 'Never on state highways', 'Anywhere unless prohibited'],
                    correctAnswer: 3,
                    topic: 'Turning',
                    explanation: 'U-turns are legal in Ohio unless specifically prohibited by signs.'
                },
                {
                    id: 12,
                    category: 'car',
                    question: 'What does a red circle with a white horizontal bar mean in Ohio?',
                    options: ['Do not enter', 'No parking', 'One way street', 'Stop ahead'],
                    correctAnswer: 0,
                    topic: 'Road Signs',
                    explanation: 'A red circle with a white horizontal bar means "Do Not Enter" in Ohio.'
                },
                {
                    id: 13,
                    category: 'car',
                    question: 'What should you do if your vehicle starts to skid on icy roads in Ohio?',
                    options: ['Brake hard', 'Steer in the direction of the skid', 'Accelerate quickly', 'Turn wheel opposite skid'],
                    correctAnswer: 1,
                    topic: 'Winter Driving',
                    explanation: 'Steer in the direction you want the front of the vehicle to go during a skid on icy roads.'
                },
                {
                    id: 14,
                    category: 'car',
                    question: 'When must you yield to pedestrians in Ohio?',
                    options: ['Only at crosswalks', 'Whenever they are in the roadway', 'Only when they have a walk signal', 'Only in school zones'],
                    correctAnswer: 1,
                    topic: 'Right of Way',
                    explanation: 'Drivers must yield to pedestrians at all times when they are in the roadway in Ohio.'
                },
                {
                    id: 15,
                    category: 'car',
                    question: 'What is the penalty for a first offense of not wearing a seatbelt in Ohio?',
                    options: ['$30 fine', '$60 fine', '$100 fine', 'No fine, just warning'],
                    correctAnswer: 0,
                    topic: 'Seatbelt Laws',
                    explanation: 'The fine for not wearing a seatbelt in Ohio is $30 for a first offense.'
                },
                {
                    id: 16,
                    category: 'car',
                    question: 'How close may you park to a fire hydrant in Ohio?',
                    options: ['5 feet', '10 feet', '15 feet', '20 feet'],
                    correctAnswer: 1,
                    topic: 'Parking',
                    explanation: 'You may not park within 10 feet of a fire hydrant in Ohio.'
                },
                {
                    id: 17,
                    category: 'car',
                    question: 'What should you do when you see a stopped emergency vehicle with flashing lights in Ohio?',
                    options: ['Slow down and proceed', 'Move over or slow down', 'Stop and wait for them to move', 'Speed up to pass quickly'],
                    correctAnswer: 1,
                    topic: 'Emergency Vehicles',
                    explanation: 'Move over to another lane or slow down when passing stopped emergency vehicles with flashing lights in Ohio.'
                },
                {
                    id: 18,
                    category: 'car',
                    question: 'When driving in heavy snow in Ohio, what lights should you use?',
                    options: ['High beams', 'Low beams', 'Parking lights only', 'No lights'],
                    correctAnswer: 1,
                    topic: 'Adverse Conditions',
                    explanation: 'Use low beam headlights in heavy snow; high beams will reflect back and reduce visibility.'
                },
                {
                    id: 19,
                    category: 'car',
                    question: 'What does a green arrow traffic signal mean in Ohio?',
                    options: ['Proceed with caution', 'Protected turn in direction of arrow', 'Yield before turning', 'Stop if possible'],
                    correctAnswer: 1,
                    topic: 'Traffic Signals',
                    explanation: 'A green arrow means you have a protected turn in the direction of the arrow in Ohio.'
                },
                {
                    id: 20,
                    category: 'car',
                    question: 'How old must you be to get an unrestricted driver\'s license in Ohio?',
                    options: ['16', '17', '18', '21'],
                    correctAnswer: 2,
                    topic: 'Licensing',
                    explanation: 'You must be 18 years old to get an unrestricted driver\'s license in Ohio.'
                },
                {
                    id: 21,
                    category: 'car',
                    question: 'What should you do when you hear a siren or see an emergency vehicle approaching in Ohio?',
                    options: ['Speed up to get out of the way', 'Pull over to the right and stop', 'Continue driving normally', 'Flash your headlights'],
                    correctAnswer: 1,
                    topic: 'Emergency Vehicles',
                    explanation: 'You must pull over to the right and stop for emergency vehicles in Ohio.'
                },
                {
                    id: 22,
                    category: 'car',
                    question: 'What is the speed limit in school zones during school hours in Ohio?',
                    options: ['15 mph', '20 mph', '25 mph', '35 mph'],
                    correctAnswer: 1,
                    topic: 'Speed Limits',
                    explanation: 'The speed limit in school zones is 20 mph when children are present in Ohio.'
                },
                {
                    id: 23,
                    category: 'car',
                    question: 'When is it legal to pass on the right in Ohio?',
                    options: ['Never', 'When the vehicle ahead is turning left', 'On one-way streets', 'Both B and C'],
                    correctAnswer: 3,
                    topic: 'Passing',
                    explanation: 'Passing on the right is allowed when the vehicle ahead is turning left or on one-way streets in Ohio.'
                },
                {
                    id: 24,
                    category: 'car',
                    question: 'What does a yellow, diamond-shaped sign indicate in Ohio?',
                    options: ['Stop ahead', 'Warning of hazard', 'School zone', 'Yield right of way'],
                    correctAnswer: 1,
                    topic: 'Road Signs',
                    explanation: 'Yellow, diamond-shaped signs warn of potential hazards ahead in Ohio.'
                },
                {
                    id: 25,
                    category: 'car',
                    question: 'How long is a learner\'s permit valid in Ohio?',
                    options: ['6 months', '1 year', '2 years', '5 years'],
                    correctAnswer: 1,
                    topic: 'Licensing',
                    explanation: 'An Ohio learner\'s permit is valid for 1 year.'
                },
                {
                    id: 26,
                    category: 'car',
                    question: 'What should you do when your car starts to hydroplane on wet roads in Ohio?',
                    options: ['Brake hard', 'Accelerate to gain control', 'Steer straight and ease off gas', 'Turn sharply'],
                    correctAnswer: 2,
                    topic: 'Adverse Conditions',
                    explanation: 'When hydroplaning, steer straight and ease off the accelerator.'
                },
                {
                    id: 27,
                    category: 'car',
                    question: 'What is the maximum penalty for a first DUI offense in Ohio?',
                    options: ['$500 fine', '$1,075 fine', 'Up to $2,500 fine', 'Up to $5,000 fine'],
                    correctAnswer: 1,
                    topic: 'DUI Laws',
                    explanation: 'Maximum fine for first DUI offense in Ohio is $1,075.'
                },
                {
                    id: 28,
                    category: 'car',
                    question: 'When must you stop for a pedestrian at a crosswalk in Ohio?',
                    options: ['Only when they are in your lane', 'When they are anywhere in the crosswalk', 'Only at marked crosswalks', 'Only during daylight'],
                    correctAnswer: 1,
                    topic: 'Pedestrian Safety',
                    explanation: 'You must stop for pedestrians anywhere in the crosswalk in Ohio.'
                },
                {
                    id: 29,
                    category: 'car',
                    question: 'What does a red curb indicate in Ohio?',
                    options: ['Loading zone', 'No stopping, standing, or parking', 'Parking for disabled only', 'Short-term parking'],
                    correctAnswer: 1,
                    topic: 'Parking',
                    explanation: 'Red curbs indicate no stopping, standing, or parking in Ohio.'
                },
                {
                    id: 30,
                    category: 'car',
                    question: 'How far must you stay behind an emergency vehicle when it\'s responding to a call in Ohio?',
                    options: ['100 feet', '200 feet', '300 feet', '500 feet'],
                    correctAnswer: 3,
                    topic: 'Emergency Vehicles',
                    explanation: 'Stay at least 500 feet behind emergency vehicles in Ohio.'
                },
                {
                    id: 31,
                    category: 'car',
                    question: 'What does a broken yellow line mean in Ohio?',
                    options: ['No passing', 'Passing allowed when safe', 'Two-way traffic', 'One-way traffic'],
                    correctAnswer: 1,
                    topic: 'Road Markings',
                    explanation: 'Broken yellow lines allow passing when safe in Ohio.'
                },
                {
                    id: 32,
                    category: 'car',
                    question: 'When should you dim your high beam headlights in Ohio?',
                    options: ['Within 300 feet of an oncoming vehicle', 'Within 500 feet of an oncoming vehicle', 'Only in cities', 'Never'],
                    correctAnswer: 1,
                    topic: 'Lighting',
                    explanation: 'Dim high beams within 500 feet of an oncoming vehicle in Ohio.'
                },
                {
                    id: 33,
                    category: 'car',
                    question: 'What is the minimum age for a learner\'s permit in Ohio?',
                    options: ['14 years', '15 years 6 months', '16', '16 years 6 months'],
                    correctAnswer: 1,
                    topic: 'Licensing',
                    explanation: 'Minimum age for learner\'s permit in Ohio is 15 years 6 months.'
                },
                {
                    id: 34,
                    category: 'car',
                    question: 'When approaching a railroad crossing with flashing lights in Ohio, you must stop:',
                    options: ['At the crossing', 'Between 15 and 50 feet from tracks', '100 feet from tracks', 'Only if a train is visible'],
                    correctAnswer: 1,
                    topic: 'Railroad Crossings',
                    explanation: 'Stop between 15 and 50 feet from railroad tracks when lights are flashing in Ohio.'
                },
                {
                    id: 35,
                    category: 'car',
                    question: 'What does a red flashing light mean in Ohio?',
                    options: ['Proceed with caution', 'Stop and proceed when safe', 'Stop completely', 'Yield'],
                    correctAnswer: 2,
                    topic: 'Traffic Signals',
                    explanation: 'Red flashing light means stop completely in Ohio.'
                },
                {
                    id: 36,
                    category: 'car',
                    question: 'How long do you have to renew your license before it expires in Ohio?',
                    options: ['30 days', '90 days', '6 months', '1 year'],
                    correctAnswer: 1,
                    topic: 'Licensing',
                    explanation: 'You can renew your Ohio license up to 90 days before expiration.'
                },
                {
                    id: 37,
                    category: 'car',
                    question: 'What should you do if you miss your exit on a highway in Ohio?',
                    options: ['Back up', 'Make a U-turn', 'Continue to next exit', 'Stop and reverse'],
                    correctAnswer: 2,
                    topic: 'Highway Driving',
                    explanation: 'Continue to the next exit if you miss your exit in Ohio.'
                },
                {
                    id: 38,
                    category: 'car',
                    question: 'What does a green traffic light mean in Ohio?',
                    options: ['Go if clear', 'Speed up', 'Yield to pedestrians', 'Both A and C'],
                    correctAnswer: 3,
                    topic: 'Traffic Signals',
                    explanation: 'Green light means go if clear, but yield to pedestrians in Ohio.'
                },
                {
                    id: 39,
                    category: 'car',
                    question: 'When parking downhill with a curb in Ohio, turn wheels:',
                    options: ['Away from curb', 'Toward curb', 'Straight', 'It doesn\'t matter'],
                    correctAnswer: 1,
                    topic: 'Parking',
                    explanation: 'Turn wheels toward curb when parking downhill in Ohio.'
                },
                {
                    id: 40,
                    category: 'car',
                    question: 'What should you do when being passed by another vehicle in Ohio?',
                    options: ['Speed up', 'Move to left lane', 'Slow down slightly', 'Maintain speed'],
                    correctAnswer: 2,
                    topic: 'Passing',
                    explanation: 'Slow down slightly when being passed in Ohio.'
                },
                {
                    id: 41,
                    category: 'car',
                    question: 'What is the penalty for passing a stopped school bus in Ohio?',
                    options: ['$150 fine', '$250 fine', '$500 minimum fine', '$1,000 minimum fine'],
                    correctAnswer: 2,
                    topic: 'School Buses',
                    explanation: 'Penalty for passing stopped school bus is $500 minimum fine in Ohio.'
                },
                {
                    id: 42,
                    category: 'car',
                    question: 'When turning left at an intersection in Ohio, yield to:',
                    options: ['Pedestrians', 'Oncoming traffic', 'Both A and B', 'Neither A nor B'],
                    correctAnswer: 2,
                    topic: 'Turning',
                    explanation: 'Yield to pedestrians and oncoming traffic when turning left in Ohio.'
                },
                {
                    id: 43,
                    category: 'car',
                    question: 'What does a blue sign indicate in Ohio?',
                    options: ['Motorist services', 'Warning', 'Regulation', 'Construction'],
                    correctAnswer: 0,
                    topic: 'Road Signs',
                    explanation: 'Blue signs indicate motorist services in Ohio.'
                },
                {
                    id: 44,
                    category: 'car',
                    question: 'How many hours of driving practice are required for a teen license in Ohio?',
                    options: ['20 hours', '40 hours', '50 hours', '80 hours'],
                    correctAnswer: 2,
                    topic: 'Licensing',
                    explanation: '50 hours of practice required for teen license in Ohio, including 10 at night.'
                },
                {
                    id: 45,
                    category: 'car',
                    question: 'What should you do if you get tired while driving in Ohio?',
                    options: ['Open windows', 'Turn up radio', 'Take a break', 'Drink coffee'],
                    correctAnswer: 2,
                    topic: 'Safe Driving',
                    explanation: 'Take a break if tired while driving.'
                },
                {
                    id: 46,
                    category: 'car',
                    question: 'What does a pentagon-shaped sign indicate in Ohio?',
                    options: ['School zone', 'Stop ahead', 'Yield', 'No passing'],
                    correctAnswer: 0,
                    topic: 'Road Signs',
                    explanation: 'Pentagon-shaped signs indicate school zones in Ohio.'
                },
                {
                    id: 47,
                    category: 'car',
                    question: 'When should you use your hazard lights in Ohio?',
                    options: ['When parking illegally', 'When driving slow', 'When stopped on road', 'When warning of hazard'],
                    correctAnswer: 3,
                    topic: 'Emergency Equipment',
                    explanation: 'Use hazard lights to warn other drivers of a hazard ahead in Ohio.'
                },
                {
                    id: 48,
                    category: 'car',
                    question: 'What is the penalty for littering from a vehicle in Ohio?',
                    options: ['$100 fine', '$250 fine', '$500 fine', '$1,000 fine'],
                    correctAnswer: 1,
                    topic: 'Traffic Laws',
                    explanation: 'Littering fine is $250 in Ohio.'
                },
                {
                    id: 49,
                    category: 'car',
                    question: 'When can you drive in a bike lane in Ohio?',
                    options: ['To pass another vehicle', 'To make a right turn', 'When traffic is heavy', 'Never'],
                    correctAnswer: 1,
                    topic: 'Lane Usage',
                    explanation: 'You may enter bike lane to make a right turn in Ohio.'
                },
                {
                    id: 50,
                    category: 'car',
                    question: 'What does a brown sign indicate in Ohio?',
                    options: ['Park and recreation areas', 'Hospital', 'Construction', 'Warning'],
                    correctAnswer: 0,
                    topic: 'Road Signs',
                    explanation: 'Brown signs indicate park and recreation areas in Ohio.'
                },
                {
                    id: 51,
                    category: 'car',
                    question: 'What is the blood alcohol limit for commercial drivers in Ohio?',
                    options: ['0.02%', '0.04%', '0.08%', '0.10%'],
                    correctAnswer: 1,
                    topic: 'DUI Laws',
                    explanation: 'Commercial drivers have a 0.04% BAC limit in Ohio.'
                },
                {
                    id: 52,
                    category: 'car',
                    question: 'When must you turn on headlights in Ohio?',
                    options: ['30 minutes after sunset', 'When raining', 'Both A and B', 'Only at night'],
                    correctAnswer: 2,
                    topic: 'Lighting',
                    explanation: 'Headlights required 30 minutes after sunset and during rain in Ohio.'
                },
                {
                    id: 53,
                    category: 'car',
                    question: 'What is the fine for speeding in a construction zone in Ohio?',
                    options: ['Double the normal fine', 'Triple the fine', 'Same as normal', '$500 minimum'],
                    correctAnswer: 0,
                    topic: 'Speed Limits',
                    explanation: 'Fines are doubled in construction zones in Ohio.'
                },
                {
                    id: 54,
                    category: 'car',
                    question: 'When parking parallel to a curb in Ohio, how close must you be?',
                    options: ['6 inches', '12 inches', '18 inches', '24 inches'],
                    correctAnswer: 1,
                    topic: 'Parking',
                    explanation: 'Park within 12 inches of curb in Ohio.'
                },
                {
                    id: 55,
                    category: 'car',
                    question: 'What does a triangular sign mean in Ohio?',
                    options: ['Stop', 'Yield', 'No entry', 'Warning'],
                    correctAnswer: 1,
                    topic: 'Road Signs',
                    explanation: 'Triangular signs mean yield in Ohio.'
                },
                {
                    id: 56,
                    category: 'car',
                    question: 'How long is a driver\'s license valid in Ohio?',
                    options: ['4 years', '5 years', '8 years', '10 years'],
                    correctAnswer: 0,
                    topic: 'Licensing',
                    explanation: 'Ohio driver\'s licenses are valid for 4 years.'
                },
                {
                    id: 57,
                    category: 'car',
                    question: 'What should you do at a yellow light in Ohio?',
                    options: ['Speed up', 'Stop if safe', 'Proceed with caution', 'Both B and C'],
                    correctAnswer: 3,
                    topic: 'Traffic Signals',
                    explanation: 'Stop if safe, otherwise proceed with caution at yellow light in Ohio.'
                },
                {
                    id: 58,
                    category: 'car',
                    question: 'When can you use the center turn lane in Ohio?',
                    options: ['For passing', 'For left turns only', 'For through traffic', 'For parking'],
                    correctAnswer: 1,
                    topic: 'Lane Usage',
                    explanation: 'Center turn lane is for left turns only in Ohio.'
                },
                {
                    id: 59,
                    category: 'car',
                    question: 'What is the minimum insurance coverage in Ohio?',
                    options: ['25/50/25', '30/60/25', '100/300/100', '50/100/50'],
                    correctAnswer: 0,
                    topic: 'Insurance',
                    explanation: 'Minimum insurance in Ohio is $25,000/$50,000/$25,000.'
                },
                {
                    id: 60,
                    category: 'car',
                    question: 'When should you use your turn signal in Ohio?',
                    options: ['Before changing lanes', 'Before turning', '100 feet before turn', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Turning',
                    explanation: 'Use signals before changing lanes, turning, and 100 feet before turn in Ohio.'
                },
                {
                    id: 61,
                    category: 'car',
                    question: 'What does a red sign usually indicate in Ohio?',
                    options: ['Warning', 'Regulation', 'Guide', 'Service'],
                    correctAnswer: 1,
                    topic: 'Road Signs',
                    explanation: 'Red signs indicate regulatory information in Ohio.'
                },
                {
                    id: 62,
                    category: 'car',
                    question: 'How many points cause license suspension in Ohio?',
                    options: ['8 points in 2 years', '12 points in 2 years', '15 points in 2 years', '20 points in 2 years'],
                    correctAnswer: 1,
                    topic: 'Traffic Laws',
                    explanation: '12 points in 2 years causes suspension in Ohio.'
                },
                {
                    id: 63,
                    category: 'car',
                    question: 'When must you report an accident in Ohio?',
                    options: ['Over $1,000 damage', 'Injury or death', 'Both A and B', 'Hit and run only'],
                    correctAnswer: 2,
                    topic: 'Accidents',
                    explanation: 'Report accidents with over $1,000 damage or injury/death in Ohio.'
                },
                {
                    id: 64,
                    category: 'car',
                    question: 'What is the speed limit on rural highways in Ohio?',
                    options: ['45 mph', '50 mph', '55 mph', '65 mph'],
                    correctAnswer: 2,
                    topic: 'Speed Limits',
                    explanation: 'Rural highway speed limit is 55 mph in Ohio.'
                },
                {
                    id: 65,
                    category: 'car',
                    question: 'When should you check your mirrors in Ohio?',
                    options: ['Before changing lanes', 'Before braking', 'Every 5-8 seconds', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Safe Driving',
                    explanation: 'Check mirrors before changing lanes, braking, and every 5-8 seconds.'
                },
                {
                    id: 66,
                    category: 'car',
                    question: 'What does a white line parallel to road mean in Ohio?',
                    options: ['Edge of roadway', 'Lane divider', 'Stop line', 'Crosswalk'],
                    correctAnswer: 0,
                    topic: 'Road Markings',
                    explanation: 'White line parallel to road indicates edge of roadway in Ohio.'
                },
                {
                    id: 67,
                    category: 'car',
                    question: 'How close can you follow emergency vehicles in Ohio?',
                    options: ['100 feet', '200 feet', '300 feet', '500 feet'],
                    correctAnswer: 3,
                    topic: 'Emergency Vehicles',
                    explanation: 'Stay 500 feet behind emergency vehicles in Ohio.'
                },
                {
                    id: 68,
                    category: 'car',
                    question: 'When is it legal to drive off pavement to pass in Ohio?',
                    options: ['Never', 'On two-lane roads', 'When safe', 'In emergencies only'],
                    correctAnswer: 0,
                    topic: 'Passing',
                    explanation: 'Never drive off pavement to pass in Ohio.'
                },
                {
                    id: 69,
                    category: 'car',
                    question: 'What should you do if traffic signal is out in Ohio?',
                    options: ['Treat as stop sign', 'Proceed with caution', 'Wait for police', 'All of the above'],
                    correctAnswer: 0,
                    topic: 'Traffic Signals',
                    explanation: 'Treat out traffic signal as four-way stop in Ohio.'
                },
                {
                    id: 70,
                    category: 'car',
                    question: 'How long must you have learner\'s permit before road test in Ohio?',
                    options: ['30 days', '60 days', '6 months', '1 year'],
                    correctAnswer: 2,
                    topic: 'Licensing',
                    explanation: 'Need learner\'s permit for 6 months before road test in Ohio.'
                },
                {
                    id: 71,
                    category: 'car',
                    question: 'What does orange sign indicate in Ohio?',
                    options: ['Construction', 'Warning', 'Regulation', 'Guide'],
                    correctAnswer: 0,
                    topic: 'Road Signs',
                    explanation: 'Orange signs indicate construction zones in Ohio.'
                },
                {
                    id: 72,
                    category: 'car',
                    question: 'When must you yield to funeral procession in Ohio?',
                    options: ['Always', 'Never', 'When lead vehicle has flag', 'During daylight only'],
                    correctAnswer: 0,
                    topic: 'Right of Way',
                    explanation: 'Always yield to funeral processions in Ohio.'
                },
                {
                    id: 73,
                    category: 'car',
                    question: 'What is penalty for reckless driving in Ohio?',
                    options: ['$100 fine', '$250 fine', 'Up to 6 months in jail', 'License suspension only'],
                    correctAnswer: 2,
                    topic: 'Traffic Laws',
                    explanation: 'Reckless driving can result in up to 6 months in jail in Ohio.'
                },
                {
                    id: 74,
                    category: 'car',
                    question: 'When should you use parking lights in Ohio?',
                    options: ['When parked', 'When driving', 'In fog', 'Never'],
                    correctAnswer: 0,
                    topic: 'Lighting',
                    explanation: 'Parking lights for parked vehicles only in Ohio.'
                },
                {
                    id: 75,
                    category: 'car',
                    question: 'What does green sign indicate in Ohio?',
                    options: ['Guide information', 'Warning', 'Regulation', 'Construction'],
                    correctAnswer: 0,
                    topic: 'Road Signs',
                    explanation: 'Green signs provide guide information in Ohio.'
                },
                {
                    id: 76,
                    category: 'car',
                    question: 'When must you stop for school bus on divided highways in Ohio?',
                    options: ['Always', 'Only if on same side', 'Never', 'Only during school hours'],
                    correctAnswer: 1,
                    topic: 'School Buses',
                    explanation: 'On divided highways, only stop if you are on the same side as the bus in Ohio.'
                },
                {
                    id: 77,
                    category: 'car',
                    question: 'What is legal tint limit on front side windows in Ohio?',
                    options: ['20%', '30%', '35%', '50%'],
                    correctAnswer: 3,
                    topic: 'Vehicle Equipment',
                    explanation: 'Legal tint limit is 50% VLT on front side windows in Ohio.'
                },
                {
                    id: 78,
                    category: 'car',
                    question: 'When can you cross double yellow lines in Ohio?',
                    options: ['To pass', 'To turn left', 'In emergencies', 'All of the above'],
                    correctAnswer: 1,
                    topic: 'Road Markings',
                    explanation: 'Cross double yellow lines to turn left only in Ohio.'
                },
                {
                    id: 79,
                    category: 'car',
                    question: 'What does flashing red arrow mean in Ohio?',
                    options: ['Stop then proceed', 'Yield', 'Protected turn', 'No turn allowed'],
                    correctAnswer: 0,
                    topic: 'Traffic Signals',
                    explanation: 'Flashing red arrow means stop then proceed when clear in Ohio.'
                },
                {
                    id: 80,
                    category: 'car',
                    question: 'How long after moving must you get Ohio license?',
                    options: ['10 days', '30 days', '60 days', '90 days'],
                    correctAnswer: 1,
                    topic: 'Licensing',
                    explanation: 'Get Ohio license within 30 days of moving.'
                },
                {
                    id: 81,
                    category: 'car',
                    question: 'What should you do if brake fails in Ohio?',
                    options: ['Use parking brake', 'Downshift', 'Both A and B', 'Steer off road'],
                    correctAnswer: 2,
                    topic: 'Emergency Procedures',
                    explanation: 'Use parking brake and downshift if brakes fail.'
                },
                {
                    id: 82,
                    category: 'car',
                    question: 'When can you pass on right in Ohio?',
                    options: ['On one-way streets', 'When left turn lane exists', 'Both A and B', 'Never'],
                    correctAnswer: 2,
                    topic: 'Passing',
                    explanation: 'Pass on right on one-way streets or when left turn lane exists in Ohio.'
                },
                {
                    id: 83,
                    category: 'car',
                    question: 'What does octagon sign mean in Ohio?',
                    options: ['Stop', 'Yield', 'School', 'Railroad'],
                    correctAnswer: 0,
                    topic: 'Road Signs',
                    explanation: 'Octagon signs mean stop in Ohio.'
                },
                {
                    id: 84,
                    category: 'car',
                    question: 'How many passengers can teen driver have in Ohio?',
                    options: ['0 for first 6 months', '1 for first 6 months', '2 for first 6 months', 'No limit'],
                    correctAnswer: 1,
                    topic: 'Licensing',
                    explanation: 'Teen drivers limited to 1 passenger for first 6 months in Ohio.'
                },
                {
                    id: 85,
                    category: 'car',
                    question: 'When should you increase following distance in Ohio?',
                    options: ['In rain', 'At night', 'Behind trucks', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Safe Driving',
                    explanation: 'Increase following distance in rain, at night, and behind trucks.'
                },
                {
                    id: 86,
                    category: 'car',
                    question: 'What does broken white line mean in Ohio?',
                    options: ['Lane divider', 'Edge of road', 'No passing', 'Merge'],
                    correctAnswer: 0,
                    topic: 'Road Markings',
                    explanation: 'Broken white lines separate lanes going same direction in Ohio.'
                },
                {
                    id: 87,
                    category: 'car',
                    question: 'When must you use headlights in Ohio?',
                    options: ['When wipers are on', 'At dusk', 'In tunnels', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Lighting',
                    explanation: 'Use headlights when wipers on, at dusk, and in tunnels in Ohio.'
                },
                {
                    id: 88,
                    category: 'car',
                    question: 'What is penalty for no insurance in Ohio?',
                    options: ['$50 fine', '$100 fine', 'License suspension', 'Both B and C'],
                    correctAnswer: 3,
                    topic: 'Insurance',
                    explanation: 'No insurance penalty includes $100 fine and suspension in Ohio.'
                },
                {
                    id: 89,
                    category: 'car',
                    question: 'When should you slow down in work zone in Ohio?',
                    options: ['Only when workers present', 'Always', 'During weekdays', 'Never'],
                    correctAnswer: 1,
                    topic: 'Work Zones',
                    explanation: 'Always slow down in work zones in Ohio.'
                },
                {
                    id: 90,
                    category: 'car',
                    question: 'What does rectangular red sign mean in Ohio?',
                    options: ['Stop', 'Yield', 'Do not enter', 'Wrong way'],
                    correctAnswer: 2,
                    topic: 'Road Signs',
                    explanation: 'Rectangular red sign means do not enter in Ohio.'
                },
                {
                    id: 91,
                    category: 'car',
                    question: 'How many feet before turn must you signal in Ohio?',
                    options: ['50 feet', '100 feet', '200 feet', '300 feet'],
                    correctAnswer: 1,
                    topic: 'Turning',
                    explanation: 'Signal at least 100 feet before turn in Ohio.'
                },
                {
                    id: 92,
                    category: 'car',
                    question: 'When can you park in handicapped space in Ohio?',
                    options: ['With permit', 'After 6 PM', 'On Sundays', 'Never without permit'],
                    correctAnswer: 3,
                    topic: 'Parking',
                    explanation: 'Never park in handicapped space without permit in Ohio.'
                },
                {
                    id: 93,
                    category: 'car',
                    question: 'What does flashing yellow arrow mean in Ohio?',
                    options: ['Protected turn', 'Permissive turn', 'No turn', 'Yield then turn'],
                    correctAnswer: 1,
                    topic: 'Traffic Signals',
                    explanation: 'Flashing yellow arrow means permissive turn (yield first) in Ohio.'
                },
                {
                    id: 94,
                    category: 'car',
                    question: 'How old for graduated license in Ohio?',
                    options: ['14 years 6 months', '15', '15 years 6 months', '16'],
                    correctAnswer: 3,
                    topic: 'Licensing',
                    explanation: 'Can get graduated license at 16 in Ohio.'
                },
                {
                    id: 95,
                    category: 'car',
                    question: 'When should you avoid passing in Ohio?',
                    options: ['On hills', 'At intersections', 'Near railroads', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Passing',
                    explanation: 'Avoid passing on hills, at intersections, and near railroads in Ohio.'
                },
                {
                    id: 96,
                    category: 'car',
                    question: 'What does blue curb indicate in Ohio?',
                    options: ['Handicapped parking', 'Loading zone', 'No parking', 'Fire zone'],
                    correctAnswer: 0,
                    topic: 'Parking',
                    explanation: 'Blue curb indicates handicapped parking in Ohio.'
                },
                {
                    id: 97,
                    category: 'car',
                    question: 'When must headrest be adjusted in Ohio?',
                    options: ['Middle of head', 'Top of ears', 'Base of skull', 'Doesn\'t matter'],
                    correctAnswer: 2,
                    topic: 'Safety Equipment',
                    explanation: 'Headrest should be at base of skull in Ohio.'
                },
                {
                    id: 98,
                    category: 'car',
                    question: 'What does diamond-shaped sign mean in Ohio?',
                    options: ['Warning', 'Regulation', 'Guide', 'Service'],
                    correctAnswer: 0,
                    topic: 'Road Signs',
                    explanation: 'Diamond-shaped signs are warning signs in Ohio.'
                },
                {
                    id: 99,
                    category: 'car',
                    question: 'When can you use HOV lane in Ohio (if available)?',
                    options: ['With 2+ people', 'Motorcycles', 'Buses', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Lane Usage',
                    explanation: 'HOV lanes for 2+ people, motorcycles, and buses in Ohio.'
                },
                {
                    id: 100,
                    category: 'car',
                    question: 'What is Ohio\'s "Implied Consent Law"?',
                    options: ['Consent to breath test when driving', 'Consent to insurance', 'Consent to vehicle inspection', 'Consent to license check'],
                    correctAnswer: 0,
                    topic: 'DUI Laws',
                    explanation: 'Implied Consent Law means you agree to chemical testing when driving in Ohio.'
                }
            ];
        }
        
        // Generate 100 Ohio CDL questions
        function generateOhioCDLQuestions() {
            return [
                {
                    id: 1,
                    category: 'cdl',
                    question: 'What is the minimum tread depth for steering axle tires on a commercial vehicle in Ohio?',
                    options: ['1/32 inch', '2/32 inch', '4/32 inch', '6/32 inch'],
                    correctAnswer: 2,
                    topic: 'Vehicle Inspection',
                    explanation: 'Steering axle tires must have at least 4/32 inch tread depth in Ohio.'
                },
                {
                    id: 2,
                    category: 'cdl',
                    question: 'How far ahead should a commercial vehicle signal before turning in Ohio?',
                    options: ['50 feet', '100 feet', 'At least 100 feet', '200 feet'],
                    correctAnswer: 2,
                    topic: 'Safe Operation',
                    explanation: 'Commercial vehicles should signal at least 100 feet before turning in Ohio.'
                },
                {
                    id: 3,
                    category: 'cdl',
                    question: 'What is the maximum driving time allowed before taking a break under Ohio regulations?',
                    options: ['6 hours', '8 hours', '10 hours', '11 hours'],
                    correctAnswer: 3,
                    topic: 'Hours of Service',
                    explanation: 'Maximum driving time is 11 hours after 10 consecutive hours off duty in Ohio.'
                },
                {
                    id: 4,
                    category: 'cdl',
                    question: 'What should you check during a pre-trip inspection of air brakes in Ohio?',
                    options: ['Air pressure buildup time', 'Brake adjustment', 'Both A and B', 'Neither A nor B'],
                    correctAnswer: 2,
                    topic: 'Air Brakes',
                    explanation: 'Check both air pressure buildup time and brake adjustment during pre-trip inspection in Ohio.'
                },
                {
                    id: 5,
                    category: 'cdl',
                    question: 'When backing a commercial vehicle in Ohio, you should:',
                    options: ['Use mirrors only', 'Get out and look when necessary', 'Rely on a helper', 'Back quickly to minimize time'],
                    correctAnswer: 1,
                    topic: 'Backing',
                    explanation: 'Always get out and look when backing a commercial vehicle if unsure in Ohio.'
                },
                {
                    id: 6,
                    category: 'cdl',
                    question: 'What is the minimum following distance for commercial vehicles in Ohio?',
                    options: ['3 seconds', '4 seconds', '5 seconds', '6 seconds'],
                    correctAnswer: 3,
                    topic: 'Following Distance',
                    explanation: 'Commercial vehicles should maintain at least 6 seconds following distance in Ohio.'
                },
                {
                    id: 7,
                    category: 'cdl',
                    question: 'How should you handle a front-wheel skid in a commercial vehicle on Ohio roads?',
                    options: ['Brake hard', 'Accelerate', 'Steer in direction you want to go', 'Do nothing'],
                    correctAnswer: 2,
                    topic: 'Skid Control',
                    explanation: 'Steer in the direction you want the front of the vehicle to go during a front-wheel skid in Ohio.'
                },
                {
                    id: 8,
                    category: 'cdl',
                    question: 'What is the maximum width for a commercial vehicle in Ohio?',
                    options: ['96 inches', '102 inches', '108 inches', '120 inches'],
                    correctAnswer: 1,
                    topic: 'Vehicle Dimensions',
                    explanation: 'Maximum width for commercial vehicles in Ohio is 102 inches.'
                },
                {
                    id: 9,
                    category: 'cdl',
                    question: 'When must you use chocks when parking a commercial vehicle in Ohio?',
                    options: ['Always when parked', 'Only on inclines', 'Never required', 'Only when transporting hazardous materials'],
                    correctAnswer: 0,
                    topic: 'Parking',
                    explanation: 'Always use chocks when parking a commercial vehicle in Ohio.'
                },
                {
                    id: 10,
                    category: 'cdl',
                    question: 'What is the minimum liability insurance required for commercial vehicles in Ohio?',
                    options: ['$100,000', '$500,000', '$750,000', '$1,000,000'],
                    correctAnswer: 1,
                    topic: 'Insurance',
                    explanation: 'Minimum liability insurance for commercial vehicles in Ohio is $500,000.'
                },
                {
                    id: 11,
                    category: 'cdl',
                    question: 'What is the maximum weight allowed on a single axle in Ohio?',
                    options: ['20,000 lbs', '22,400 lbs', '34,000 lbs', '40,000 lbs'],
                    correctAnswer: 1,
                    topic: 'Weight Limits',
                    explanation: 'Maximum single axle weight is 22,400 lbs in Ohio.'
                },
                {
                    id: 12,
                    category: 'cdl',
                    question: 'When should you perform a brake check in a commercial vehicle in Ohio?',
                    options: ['Before starting trip', 'After brake adjustment', 'Both A and B', 'Only during annual inspection'],
                    correctAnswer: 2,
                    topic: 'Air Brakes',
                    explanation: 'Perform brake check before starting trip and after any adjustment in Ohio.'
                },
                {
                    id: 13,
                    category: 'cdl',
                    question: 'What is the minimum age for a CDL in Ohio for interstate commerce?',
                    options: ['18', '21', '25', 'No minimum'],
                    correctAnswer: 1,
                    topic: 'Licensing',
                    explanation: 'Minimum age for CDL in Ohio is 21 for interstate commerce.'
                },
                {
                    id: 14,
                    category: 'cdl',
                    question: 'How often must you check your mirrors while driving in Ohio?',
                    options: ['Every 5-8 seconds', 'Every minute', 'Only when changing lanes', 'When approaching intersections'],
                    correctAnswer: 0,
                    topic: 'Safe Operation',
                    explanation: 'Check mirrors every 5-8 seconds while driving in Ohio.'
                },
                {
                    id: 15,
                    category: 'cdl',
                    question: 'What does a low air pressure warning indicate in Ohio?',
                    options: ['Normal operation', 'Air pressure below 60 psi', 'Brake system failure', 'Tire pressure low'],
                    correctAnswer: 1,
                    topic: 'Air Brakes',
                    explanation: 'Low air pressure warning activates below 60 psi in Ohio.'
                },
                {
                    id: 16,
                    category: 'cdl',
                    question: 'When must you stop at railroad crossings in Ohio?',
                    options: ['Only when flashing', 'For all crossings', 'When carrying hazardous materials', 'Both B and C'],
                    correctAnswer: 3,
                    topic: 'Railroad Crossings',
                    explanation: 'Stop at all railroad crossings and always when carrying hazardous materials in Ohio.'
                },
                {
                    id: 17,
                    category: 'cdl',
                    question: 'What is the maximum length for a single commercial vehicle in Ohio?',
                    options: ['40 feet', '50 feet', '60 feet', '75 feet'],
                    correctAnswer: 1,
                    topic: 'Vehicle Dimensions',
                    explanation: 'Maximum length for single vehicle is 50 feet in Ohio.'
                },
                {
                    id: 18,
                    category: 'cdl',
                    question: 'How should you handle a tire blowout in Ohio?',
                    options: ['Brake hard', 'Steer straight, ease off gas', 'Accelerate', 'Turn quickly'],
                    correctAnswer: 1,
                    topic: 'Emergency Procedures',
                    explanation: 'Steer straight and ease off gas during tire blowout in Ohio.'
                },
                {
                    id: 19,
                    category: 'cdl',
                    question: 'What must be checked during coupling inspection in Ohio?',
                    options: ['Fifth wheel locking', 'Air line connections', 'Both A and B', 'Neither A nor B'],
                    correctAnswer: 2,
                    topic: 'Coupling',
                    explanation: 'Check both fifth wheel locking and air line connections in Ohio.'
                },
                {
                    id: 20,
                    category: 'cdl',
                    question: 'When is a pre-trip inspection required in Ohio?',
                    options: ['Before each trip', 'Daily', 'Weekly', 'Monthly'],
                    correctAnswer: 1,
                    topic: 'Vehicle Inspection',
                    explanation: 'Pre-trip inspection required daily in Ohio.'
                },
                {
                    id: 21,
                    category: 'cdl',
                    question: 'What is the blood alcohol limit for CDL holders in Ohio?',
                    options: ['0.02%', '0.04%', '0.08%', '0.10%'],
                    correctAnswer: 1,
                    topic: 'DUI Laws',
                    explanation: 'CDL holders have 0.04% BAC limit in Ohio.'
                },
                {
                    id: 22,
                    category: 'cdl',
                    question: 'How many hours off duty required after 70 hours of driving in Ohio?',
                    options: ['8 hours', '10 hours', '24 hours', '34 hours'],
                    correctAnswer: 3,
                    topic: 'Hours of Service',
                    explanation: '34 hours off duty required after 70 hours of driving in Ohio.'
                },
                {
                    id: 23,
                    category: 'cdl',
                    question: 'What does anti-lock brake system (ABS) help prevent in Ohio?',
                    options: ['Wheel lockup', 'Brake fade', 'Air leaks', 'All of the above'],
                    correctAnswer: 0,
                    topic: 'Brake Systems',
                    explanation: 'ABS helps prevent wheel lockup during braking in Ohio.'
                },
                {
                    id: 24,
                    category: 'cdl',
                    question: 'When must you use seat belts in commercial vehicles in Ohio?',
                    options: ['Always', 'Only on highways', 'When required by company', 'Never required'],
                    correctAnswer: 0,
                    topic: 'Safety Equipment',
                    explanation: 'Seat belts must always be worn in commercial vehicles in Ohio.'
                },
                {
                    id: 25,
                    category: 'cdl',
                    question: 'What is the maximum driving time in a 7-day period in Ohio?',
                    options: ['60 hours', '70 hours', '80 hours', 'No limit'],
                    correctAnswer: 1,
                    topic: 'Hours of Service',
                    explanation: 'Maximum 70 hours driving in 7-day period in Ohio.'
                },
                {
                    id: 26,
                    category: 'cdl',
                    question: 'How should cargo be secured for Ohio roads?',
                    options: ['Front to back', 'Side to side', 'Both A and B', 'No requirement'],
                    correctAnswer: 2,
                    topic: 'Cargo Securement',
                    explanation: 'Secure cargo both front to back and side to side in Ohio.'
                },
                {
                    id: 27,
                    category: 'cdl',
                    question: 'When should you check tire pressure in Ohio?',
                    options: ['Daily', 'Weekly', 'Monthly', 'Only when flat'],
                    correctAnswer: 0,
                    topic: 'Vehicle Inspection',
                    explanation: 'Check tire pressure daily during pre-trip inspection in Ohio.'
                },
                {
                    id: 28,
                    category: 'cdl',
                    question: 'What is the purpose of engine retarders in Ohio?',
                    options: ['Increase speed', 'Help slow vehicle without brakes', 'Improve fuel economy', 'Reduce emissions'],
                    correctAnswer: 1,
                    topic: 'Vehicle Systems',
                    explanation: 'Engine retarders help slow vehicle without using service brakes in Ohio.'
                },
                {
                    id: 29,
                    category: 'cdl',
                    question: 'When must you have a fire extinguisher in Ohio?',
                    options: ['Always', 'Only for hazardous materials', 'For passenger vehicles only', 'Not required'],
                    correctAnswer: 0,
                    topic: 'Safety Equipment',
                    explanation: 'Fire extinguisher required in all commercial vehicles in Ohio.'
                },
                {
                    id: 30,
                    category: 'cdl',
                    question: 'How wide are commercial vehicle mirrors required to show in Ohio?',
                    options: ['100 feet', '200 feet', '300 feet', '500 feet'],
                    correctAnswer: 1,
                    topic: 'Vehicle Equipment',
                    explanation: 'Mirrors must show 200 feet to rear in Ohio.'
                },
                {
                    id: 31,
                    category: 'cdl',
                    question: 'What special equipment is required for commercial vehicles in Ohio during winter?',
                    options: ['Snow tires or chains', 'Windshield wipers', 'Both A and B', 'No special equipment needed'],
                    correctAnswer: 2,
                    topic: 'Weather Equipment',
                    explanation: 'Snow tires or chains and proper windshield wipers are required in Ohio during winter.'
                },
                {
                    id: 32,
                    category: 'cdl',
                    question: 'How should you adjust driving for Ohio\'s winter roads?',
                    options: ['Use lower gears', 'Reduce speed on snow/ice', 'Increase following distance', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Winter Driving',
                    explanation: 'Use lower gears, reduce speed on snow/ice, and increase following distance on Ohio\'s winter roads.'
                },
                {
                    id: 33,
                    category: 'cdl',
                    question: 'What is the penalty for violating hours of service in Ohio?',
                    options: ['Fine only', 'Fine and out-of-service', 'License suspension', 'Jail time'],
                    correctAnswer: 1,
                    topic: 'Hours of Service',
                    explanation: 'Violation results in fine and out-of-service order in Ohio.'
                },
                {
                    id: 34,
                    category: 'cdl',
                    question: 'When should you use hazard lights in Ohio?',
                    options: ['When stopped on road', 'In bad weather', 'When moving slowly', 'When warning of hazard'],
                    correctAnswer: 3,
                    topic: 'Emergency Equipment',
                    explanation: 'Use hazard lights to warn other drivers of a hazard in Ohio.'
                },
                {
                    id: 35,
                    category: 'cdl',
                    question: 'What is the maximum steering wheel play allowed in Ohio?',
                    options: ['10 degrees', '20 degrees', '30 degrees', '40 degrees'],
                    correctAnswer: 0,
                    topic: 'Vehicle Inspection',
                    explanation: 'Maximum steering wheel play is 10 degrees in Ohio.'
                },
                {
                    id: 36,
                    category: 'cdl',
                    question: 'How should you handle jackknife prevention in Ohio?',
                    options: ['Brake smoothly', 'Avoid sudden steering', 'Both A and B', 'Accelerate through turns'],
                    correctAnswer: 2,
                    topic: 'Skid Control',
                    explanation: 'Brake smoothly and avoid sudden steering to prevent jackknife in Ohio.'
                },
                {
                    id: 37,
                    category: 'cdl',
                    question: 'When must you have reflective triangles in Ohio?',
                    options: ['All commercial vehicles', 'Only trucks', 'Only at night', 'Not required'],
                    correctAnswer: 0,
                    topic: 'Safety Equipment',
                    explanation: 'Reflective triangles required for all commercial vehicles in Ohio.'
                },
                {
                    id: 38,
                    category: 'cdl',
                    question: 'What is the maximum height for commercial vehicles in Ohio?',
                    options: ['12 feet', '13 feet 6 inches', '14 feet', '15 feet'],
                    correctAnswer: 1,
                    topic: 'Vehicle Dimensions',
                    explanation: 'Maximum height is 13 feet 6 inches in Ohio.'
                },
                {
                    id: 39,
                    category: 'cdl',
                    question: 'How often must log books be updated in Ohio?',
                    options: ['Daily', 'Weekly', 'Monthly', 'After each trip'],
                    correctAnswer: 0,
                    topic: 'Hours of Service',
                    explanation: 'Log books must be updated daily in Ohio.'
                },
                {
                    id: 40,
                    category: 'cdl',
                    question: 'When should you check brake adjustment in Ohio?',
                    options: ['Daily', 'Weekly', 'Monthly', 'Only when problems occur'],
                    correctAnswer: 0,
                    topic: 'Vehicle Inspection',
                    explanation: 'Check brake adjustment daily in Ohio.'
                },
                {
                    id: 41,
                    category: 'cdl',
                    question: 'What is Ohio\'s annual inspection requirement for commercial vehicles?',
                    options: ['Annual for vehicles over 10,000 lbs', 'Biennial for all vehicles', 'No requirement', 'Only for diesel vehicles'],
                    correctAnswer: 0,
                    topic: 'Vehicle Regulations',
                    explanation: 'Annual inspection required for commercial vehicles over 10,000 lbs in Ohio.'
                },
                {
                    id: 42,
                    category: 'cdl',
                    question: 'What special training is required for transporting hazardous materials in Ohio?',
                    options: ['Hazmat endorsement', 'Security awareness training', 'Both A and B', 'No special training'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Hazmat endorsement and security awareness training required in Ohio.'
                },
                {
                    id: 43,
                    category: 'cdl',
                    question: 'When must you use engine brake silencers in Ohio?',
                    options: ['In residential areas', 'At all times', 'Only at night', 'Not required'],
                    correctAnswer: 0,
                    topic: 'Noise Regulations',
                    explanation: 'Engine brake silencers required in residential areas in Ohio.'
                },
                {
                    id: 44,
                    category: 'cdl',
                    question: 'What is Ohio\'s idling limitation for commercial vehicles?',
                    options: ['3 minutes', '5 minutes', '10 minutes', 'No limitation'],
                    correctAnswer: 1,
                    topic: 'Environmental Regulations',
                    explanation: 'Maximum 5 minutes idling allowed in Ohio.'
                },
                {
                    id: 45,
                    category: 'cdl',
                    question: 'What is the penalty for overweight violations in Ohio?',
                    options: ['$100 per 500 lbs', '$250 per 500 lbs', '$500 per 500 lbs', '$1,000 per 500 lbs'],
                    correctAnswer: 1,
                    topic: 'Weight Limits',
                    explanation: 'Overweight penalty is approximately $250 per 500 lbs over limit in Ohio.'
                },
                {
                    id: 46,
                    category: 'cdl',
                    question: 'When must you have Ohio State inspection?',
                    options: ['Annually', 'Biennially', 'When requested', 'Never'],
                    correctAnswer: 0,
                    topic: 'Vehicle Inspection',
                    explanation: 'Annual State inspection required for certain commercial vehicles in Ohio.'
                },
                {
                    id: 47,
                    category: 'cdl',
                    question: 'What is required for transporting agricultural products in Ohio?',
                    options: ['Special ventilation', 'Covered loads', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Agricultural Transport',
                    explanation: 'Special ventilation and covered loads required for agricultural product transport in Ohio.'
                },
                {
                    id: 48,
                    category: 'cdl',
                    question: 'How often must you renew medical certificate in Ohio?',
                    options: ['Every 6 months', 'Every year', 'Every 2 years', 'Every 5 years'],
                    correctAnswer: 1,
                    topic: 'Medical Requirements',
                    explanation: 'Medical certificate must be renewed annually in Ohio.'
                },
                {
                    id: 49,
                    category: 'cdl',
                    question: 'What is Ohio\'s requirement for reflective tape on trailers?',
                    options: ['Required on all trailers', 'Only on long trailers', 'Only at night', 'Not required'],
                    correctAnswer: 0,
                    topic: 'Vehicle Equipment',
                    explanation: 'Reflective tape required on all commercial trailers in Ohio.'
                },
                {
                    id: 50,
                    category: 'cdl',
                    question: 'When must you stop at weigh stations in Ohio?',
                    options: ['When open and sign says "All Trucks"', 'Only if overweight', 'Only commercial vehicles', 'All of the above'],
                    correctAnswer: 0,
                    topic: 'Weight Stations',
                    explanation: 'Must stop at open weigh stations when sign says "All Trucks" in Ohio.'
                },
                {
                    id: 51,
                    category: 'cdl',
                    question: 'What is the maximum gross vehicle weight allowed in Ohio?',
                    options: ['60,000 lbs', '80,000 lbs', '100,000 lbs', '120,000 lbs'],
                    correctAnswer: 1,
                    topic: 'Weight Limits',
                    explanation: 'Maximum gross vehicle weight is 80,000 lbs in Ohio.'
                },
                {
                    id: 52,
                    category: 'cdl',
                    question: 'How many hours of driving are allowed after 8 consecutive hours off duty?',
                    options: ['8 hours', '10 hours', '11 hours', '12 hours'],
                    correctAnswer: 2,
                    topic: 'Hours of Service',
                    explanation: 'Maximum 11 hours driving after 8 consecutive hours off duty in Ohio.'
                },
                {
                    id: 53,
                    category: 'cdl',
                    question: 'What is the minimum cargo securement requirement in Ohio?',
                    options: ['One tie-down per 10 feet', 'One tie-down per 20 feet', 'Based on weight', 'No requirement'],
                    correctAnswer: 0,
                    topic: 'Cargo Securement',
                    explanation: 'Minimum one tie-down per 10 feet of cargo in Ohio.'
                },
                {
                    id: 54,
                    category: 'cdl',
                    question: 'When must you have a commercial driver\'s license in Ohio?',
                    options: ['Vehicle over 26,001 lbs', 'Vehicle over 10,000 lbs', 'Any commercial vehicle', 'Only for hazardous materials'],
                    correctAnswer: 0,
                    topic: 'Licensing',
                    explanation: 'CDL required for vehicles over 26,001 lbs in Ohio.'
                },
                {
                    id: 55,
                    category: 'cdl',
                    question: 'What is the penalty for logbook falsification in Ohio?',
                    options: ['$250 fine', '$500 fine', '$1,000 fine', 'Civil penalty up to $10,000'],
                    correctAnswer: 3,
                    topic: 'Hours of Service',
                    explanation: 'Logbook falsification can result in civil penalty up to $10,000 in Ohio.'
                },
                {
                    id: 56,
                    category: 'cdl',
                    question: 'How often must you inspect your fire extinguisher in Ohio?',
                    options: ['Monthly', 'Quarterly', 'Annually', 'Every 6 months'],
                    correctAnswer: 0,
                    topic: 'Safety Equipment',
                    explanation: 'Fire extinguisher must be inspected monthly in Ohio.'
                },
                {
                    id: 57,
                    category: 'cdl',
                    question: 'What is the minimum insurance for passenger-carrying vehicles in Ohio?',
                    options: ['$1.5 million', '$5 million', '$10 million', '$15 million'],
                    correctAnswer: 1,
                    topic: 'Insurance',
                    explanation: 'Minimum $5 million insurance for passenger-carrying vehicles in Ohio.'
                },
                {
                    id: 58,
                    category: 'cdl',
                    question: 'When must you stop for school buses in Ohio?',
                    options: ['Always when lights flashing', 'Only on two-lane roads', 'Only in cities', 'Never for commercial vehicles'],
                    correctAnswer: 0,
                    topic: 'School Buses',
                    explanation: 'All vehicles must stop for school buses with flashing lights in Ohio.'
                },
                {
                    id: 59,
                    category: 'cdl',
                    question: 'What is the maximum tandem axle weight in Ohio?',
                    options: ['34,000 lbs', '36,000 lbs', '38,000 lbs', '40,000 lbs'],
                    correctAnswer: 0,
                    topic: 'Weight Limits',
                    explanation: 'Maximum tandem axle weight is 34,000 lbs in Ohio.'
                },
                {
                    id: 60,
                    category: 'cdl',
                    question: 'How many consecutive days off are required in Ohio?',
                    options: ['1 day in 7', '2 days in 7', '1 day in 30', 'No requirement'],
                    correctAnswer: 0,
                    topic: 'Hours of Service',
                    explanation: 'One consecutive day off required every 7 days in Ohio.'
                },
                {
                    id: 61,
                    category: 'cdl',
                    question: 'What is required for transporting oversized loads in Ohio?',
                    options: ['Special permit', 'Escort vehicles', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Oversized Loads',
                    explanation: 'Special permit and escort vehicles required for oversized loads in Ohio.'
                },
                {
                    id: 62,
                    category: 'cdl',
                    question: 'How far ahead must you signal for lane changes in Ohio?',
                    options: ['50 feet', '100 feet', '200 feet', '300 feet'],
                    correctAnswer: 1,
                    topic: 'Safe Operation',
                    explanation: 'Signal at least 100 feet before lane changes in Ohio.'
                },
                {
                    id: 63,
                    category: 'cdl',
                    question: 'What is the penalty for driving without a CDL in Ohio?',
                    options: ['$100 fine', '$250 fine', '$500 fine', 'Up to $1,000 fine'],
                    correctAnswer: 3,
                    topic: 'Licensing',
                    explanation: 'Driving without CDL can result in up to $1,000 fine in Ohio.'
                },
                {
                    id: 64,
                    category: 'cdl',
                    question: 'How often must you check wheel nuts on commercial vehicles in Ohio?',
                    options: ['Daily', 'Weekly', 'Monthly', 'Every 6 months'],
                    correctAnswer: 0,
                    topic: 'Vehicle Inspection',
                    explanation: 'Check wheel nuts daily during pre-trip inspection in Ohio.'
                },
                {
                    id: 65,
                    category: 'cdl',
                    question: 'What is required for transporting explosives in Ohio?',
                    options: ['Special placards', 'Fire extinguishers', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Special placards and fire extinguishers required for transporting explosives in Ohio.'
                },
                {
                    id: 66,
                    category: 'cdl',
                    question: 'How many hours must you be off duty after 14 hours on duty in Ohio?',
                    options: ['8 hours', '10 hours', '12 hours', '14 hours'],
                    correctAnswer: 1,
                    topic: 'Hours of Service',
                    explanation: '10 consecutive hours off duty required after 14 hours on duty in Ohio.'
                },
                {
                    id: 67,
                    category: 'cdl',
                    question: 'What is the minimum tread depth for other tires in Ohio?',
                    options: ['1/32 inch', '2/32 inch', '3/32 inch', '4/32 inch'],
                    correctAnswer: 1,
                    topic: 'Vehicle Inspection',
                    explanation: 'Minimum 2/32 inch tread depth for other tires in Ohio.'
                },
                {
                    id: 68,
                    category: 'cdl',
                    question: 'When must you use tire chains in Ohio?',
                    options: ['When signs require', 'In all snow', 'Only in mountains', 'Never required'],
                    correctAnswer: 0,
                    topic: 'Weather Equipment',
                    explanation: 'Tire chains required when signs indicate in Ohio.'
                },
                {
                    id: 69,
                    category: 'cdl',
                    question: 'What is the penalty for hours of service violation in Ohio?',
                    options: ['Warning', 'Fine only', 'Out-of-service order', 'Both B and C'],
                    correctAnswer: 3,
                    topic: 'Hours of Service',
                    explanation: 'Hours violation results in fine and out-of-service order in Ohio.'
                },
                {
                    id: 70,
                    category: 'cdl',
                    question: 'How many days must you keep logbooks in Ohio?',
                    options: ['7 days', '14 days', '30 days', '6 months'],
                    correctAnswer: 3,
                    topic: 'Hours of Service',
                    explanation: 'Keep logbooks for 6 months in Ohio.'
                },
                {
                    id: 71,
                    category: 'cdl',
                    question: 'What is required for transporting flammable liquids in Ohio?',
                    options: ['Special training', 'Proper placards', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Special training and proper placards required for flammable liquids in Ohio.'
                },
                {
                    id: 72,
                    category: 'cdl',
                    question: 'How many hours driving in 8-day period is maximum in Ohio?',
                    options: ['60 hours', '70 hours', '80 hours', '90 hours'],
                    correctAnswer: 2,
                    topic: 'Hours of Service',
                    explanation: 'Maximum 80 hours driving in 8-day period in Ohio.'
                },
                {
                    id: 73,
                    category: 'cdl',
                    question: 'What is the minimum age for intrastate CDL in Ohio?',
                    options: ['18', '21', '25', 'No minimum'],
                    correctAnswer: 0,
                    topic: 'Licensing',
                    explanation: 'Minimum age for intrastate CDL is 18 in Ohio.'
                },
                {
                    id: 74,
                    category: 'cdl',
                    question: 'How often must you inspect emergency equipment in Ohio?',
                    options: ['Daily', 'Weekly', 'Monthly', 'Quarterly'],
                    correctAnswer: 0,
                    topic: 'Safety Equipment',
                    explanation: 'Inspect emergency equipment daily in Ohio.'
                },
                {
                    id: 75,
                    category: 'cdl',
                    question: 'What is required for transporting radioactive materials in Ohio?',
                    options: ['Special endorsement', 'Security plan', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Special endorsement and security plan required for radioactive materials in Ohio.'
                },
                {
                    id: 76,
                    category: 'cdl',
                    question: 'How many hours off after 60 hours in 7 days in Ohio?',
                    options: ['24 hours', '34 hours', '48 hours', '60 hours'],
                    correctAnswer: 1,
                    topic: 'Hours of Service',
                    explanation: '34 consecutive hours off after 60 hours in 7 days in Ohio.'
                },
                {
                    id: 77,
                    category: 'cdl',
                    question: 'What is the penalty for defective brakes in Ohio?',
                    options: ['Warning', 'Fine', 'Out-of-service', 'Both B and C'],
                    correctAnswer: 3,
                    topic: 'Vehicle Inspection',
                    explanation: 'Defective brakes result in fine and out-of-service order in Ohio.'
                },
                {
                    id: 78,
                    category: 'cdl',
                    question: 'How many hours driving after 34 hours off in Ohio?',
                    options: ['60 hours', '70 hours', '80 hours', 'Restarts 70-hour clock'],
                    correctAnswer: 3,
                    topic: 'Hours of Service',
                    explanation: '34 hours off restarts 70-hour clock in Ohio.'
                },
                {
                    id: 79,
                    category: 'cdl',
                    question: 'What is required for transporting corrosives in Ohio?',
                    options: ['Special containers', 'Emergency equipment', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Special containers and emergency equipment required for corrosives in Ohio.'
                },
                {
                    id: 80,
                    category: 'cdl',
                    question: 'How many consecutive hours driving maximum in Ohio?',
                    options: ['8 hours', '10 hours', '11 hours', '12 hours'],
                    correctAnswer: 2,
                    topic: 'Hours of Service',
                    explanation: 'Maximum 11 consecutive hours driving in Ohio.'
                },
                {
                    id: 81,
                    category: 'cdl',
                    question: 'What is required for tank vehicles in Ohio?',
                    options: ['Tank endorsement', 'Special training', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Special Endorsements',
                    explanation: 'Tank endorsement and special training required for tank vehicles in Ohio.'
                },
                {
                    id: 82,
                    category: 'cdl',
                    question: 'What is required for double/triple trailers in Ohio?',
                    options: ['Double/triple endorsement', 'Special equipment', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Special Endorsements',
                    explanation: 'Double/triple endorsement and special equipment required in Ohio.'
                },
                {
                    id: 83,
                    category: 'cdl',
                    question: 'How many hours driving in 14-hour period maximum in Ohio?',
                    options: ['10 hours', '11 hours', '12 hours', '13 hours'],
                    correctAnswer: 1,
                    topic: 'Hours of Service',
                    explanation: 'Maximum 11 hours driving in 14-hour period in Ohio.'
                },
                {
                    id: 84,
                    category: 'cdl',
                    question: 'What is required for passenger vehicles in Ohio?',
                    options: ['Passenger endorsement', 'Special insurance', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Special Endorsements',
                    explanation: 'Passenger endorsement and special insurance required in Ohio.'
                },
                {
                    id: 85,
                    category: 'cdl',
                    question: 'How many hours off after 70 hours in 8 days in Ohio?',
                    options: ['24 hours', '34 hours', '48 hours', '60 hours'],
                    correctAnswer: 1,
                    topic: 'Hours of Service',
                    explanation: '34 consecutive hours off after 70 hours in 8 days in Ohio.'
                },
                {
                    id: 86,
                    category: 'cdl',
                    question: 'What is required for school buses in Ohio?',
                    options: ['School bus endorsement', 'Background check', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Special Endorsements',
                    explanation: 'School bus endorsement and background check required in Ohio.'
                },
                {
                    id: 87,
                    category: 'cdl',
                    question: 'How many hours driving after 10 hours off in Ohio?',
                    options: ['8 hours', '10 hours', '11 hours', '12 hours'],
                    correctAnswer: 2,
                    topic: 'Hours of Service',
                    explanation: 'Maximum 11 hours driving after 10 hours off in Ohio.'
                },
                {
                    id: 88,
                    category: 'cdl',
                    question: 'What is required for transporting gases in Ohio?',
                    options: ['Special valves', 'Pressure monitoring', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Special valves and pressure monitoring required for gases in Ohio.'
                },
                {
                    id: 89,
                    category: 'cdl',
                    question: 'How many hours off after 8 days maximum in Ohio?',
                    options: ['24 hours', '34 hours', '48 hours', '60 hours'],
                    correctAnswer: 1,
                    topic: 'Hours of Service',
                    explanation: '34 consecutive hours off after 8 days maximum in Ohio.'
                },
                {
                    id: 90,
                    category: 'cdl',
                    question: 'What is required for transporting poisons in Ohio?',
                    options: ['Special labeling', 'Emergency procedures', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Special labeling and emergency procedures required for poisons in Ohio.'
                },
                {
                    id: 91,
                    category: 'cdl',
                    question: 'How many hours on duty in 24-hour period maximum in Ohio?',
                    options: ['10 hours', '12 hours', '14 hours', '16 hours'],
                    correctAnswer: 2,
                    topic: 'Hours of Service',
                    explanation: 'Maximum 14 hours on duty in 24-hour period in Ohio.'
                },
                {
                    id: 92,
                    category: 'cdl',
                    question: 'What is required for transporting combustibles in Ohio?',
                    options: ['Fire protection', 'Special storage', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Fire protection and special storage required for combustibles in Ohio.'
                },
                {
                    id: 93,
                    category: 'cdl',
                    question: 'How many hours driving in 24-hour period maximum in Ohio?',
                    options: ['8 hours', '10 hours', '11 hours', '12 hours'],
                    correctAnswer: 2,
                    topic: 'Hours of Service',
                    explanation: 'Maximum 11 hours driving in 24-hour period in Ohio.'
                },
                {
                    id: 94,
                    category: 'cdl',
                    question: 'What is required for transporting oxidizers in Ohio?',
                    options: ['Special separation', 'Fire control', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Special separation and fire control required for oxidizers in Ohio.'
                },
                {
                    id: 95,
                    category: 'cdl',
                    question: 'How many days must medical certificate be carried in Ohio?',
                    options: ['At all times', 'Only at inspection', 'In office', 'Not required'],
                    correctAnswer: 0,
                    topic: 'Medical Requirements',
                    explanation: 'Medical certificate must be carried at all times in Ohio.'
                },
                {
                    id: 96,
                    category: 'cdl',
                    question: 'What is required for transporting organic peroxides in Ohio?',
                    options: ['Temperature control', 'Special handling', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Temperature control and special handling required for organic peroxides in Ohio.'
                },
                {
                    id: 97,
                    category: 'cdl',
                    question: 'How often must you renew CDL in Ohio?',
                    options: ['Every 4 years', 'Every 6 years', 'Every 8 years', 'Every 10 years'],
                    correctAnswer: 0,
                    topic: 'Licensing',
                    explanation: 'CDL must be renewed every 4 years in Ohio.'
                },
                {
                    id: 98,
                    category: 'cdl',
                    question: 'What is required for transporting infectious substances in Ohio?',
                    options: ['Special packaging', 'Biohazard labeling', 'Both A and B', 'No special requirements'],
                    correctAnswer: 2,
                    topic: 'Hazardous Materials',
                    explanation: 'Special packaging and biohazard labeling required for infectious substances in Ohio.'
                },
                {
                    id: 99,
                    category: 'cdl',
                    question: 'What special considerations are needed for driving in Ohio\'s winter conditions?',
                    options: ['Watch for lake effect snow in northern Ohio', 'Beware of sudden snow squalls', 'Carry emergency supplies', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Winter Driving',
                    explanation: 'Watch for lake effect snow in northern Ohio, beware of sudden snow squalls, and carry emergency supplies when driving in Ohio winter conditions.'
                },
                {
                    id: 100,
                    category: 'cdl',
                    question: 'What is the maximum width for agricultural vehicles on Ohio roads?',
                    options: ['12 feet', '14 feet', '16 feet', '18 feet'],
                    correctAnswer: 2,
                    topic: 'Agricultural Vehicles',
                    explanation: 'Maximum width for agricultural vehicles is 16 feet in Ohio.'
                }
            ];
        }
        
        // Generate 100 Ohio Motorcycle questions
        function generateOhioMotorcycleQuestions() {
            return [
                {
                    id: 1,
                    category: 'motorcycle',
                    question: 'What is the most important factor in motorcycle safety in Ohio?',
                    options: ['Helmet use', 'Visibility to other drivers', 'Both A and B', 'Neither A nor B'],
                    correctAnswer: 2,
                    topic: 'Safety',
                    explanation: 'Both helmet use and visibility to other drivers are critical for motorcycle safety in Ohio.'
                },
                {
                    id: 2,
                    category: 'motorcycle',
                    question: 'When should a motorcycle headlight be used in Ohio?',
                    options: ['Only at night', 'At all times', 'Only in rain', 'Only on highways'],
                    correctAnswer: 1,
                    topic: 'Lighting',
                    explanation: 'Motorcycle headlights must be used at all times in Ohio.'
                },
                {
                    id: 3,
                    category: 'motorcycle',
                    question: 'What is the proper way to brake on a motorcycle on Ohio roads?',
                    options: ['Front brake only', 'Rear brake only', 'Both brakes evenly', 'Depends on conditions'],
                    correctAnswer: 2,
                    topic: 'Braking',
                    explanation: 'Use both brakes evenly for maximum stopping power in Ohio.'
                },
                {
                    id: 4,
                    category: 'motorcycle',
                    question: 'What should you do to increase visibility to other drivers in Ohio?',
                    options: ['Wear bright clothing', 'Use headlight at all times', 'Both A and B', 'Neither A nor B'],
                    correctAnswer: 2,
                    topic: 'Visibility',
                    explanation: 'Both wearing bright clothing and using headlights increase visibility in Ohio.'
                },
                {
                    id: 5,
                    category: 'motorcycle',
                    question: 'How should you handle a turn on a motorcycle on Ohio roads?',
                    options: ['Slow before the turn', 'Accelerate through the turn', 'Both A and B', 'Neither A nor B'],
                    correctAnswer: 2,
                    topic: 'Turning',
                    explanation: 'Slow before the turn and accelerate gently through the turn in Ohio.'
                },
                {
                    id: 6,
                    category: 'motorcycle',
                    question: 'What is the minimum insurance required for motorcycles in Ohio?',
                    options: ['25/50/25', '30/60/25', '100/300/100', '50/100/50'],
                    correctAnswer: 0,
                    topic: 'Insurance',
                    explanation: 'Minimum insurance in Ohio is $25,000/$50,000/$25,000 for motorcycles.'
                },
                {
                    id: 7,
                    category: 'motorcycle',
                    question: 'Is lane splitting legal in Ohio?',
                    options: ['Legal in Ohio', 'Illegal in Ohio', 'Legal only on highways', 'Legal only in traffic'],
                    correctAnswer: 1,
                    topic: 'Lane Positioning',
                    explanation: 'Lane splitting (riding between lanes) is illegal in Ohio.'
                },
                {
                    id: 8,
                    category: 'motorcycle',
                    question: 'What should you check during a pre-ride inspection in Ohio?',
                    options: ['Tires and wheels', 'Lights and electrics', 'Both A and B', 'Neither A nor B'],
                    correctAnswer: 2,
                    topic: 'Pre-Ride Inspection',
                    explanation: 'Check both tires/wheels and lights/electrics during pre-ride inspection in Ohio.'
                },
                {
                    id: 9,
                    category: 'motorcycle',
                    question: 'How should you carry a passenger on a motorcycle in Ohio?',
                    options: ['Only with proper equipment', 'Only if licensed for passenger', 'Both A and B', 'No restrictions'],
                    correctAnswer: 2,
                    topic: 'Passengers',
                    explanation: 'You must have proper equipment and be licensed to carry passengers in Ohio.'
                },
                {
                    id: 10,
                    category: 'motorcycle',
                    question: 'What is the best way to handle road hazards like wet leaves or gravel on Ohio roads?',
                    options: ['Speed up', 'Brake hard', 'Maintain speed and steer straight', 'Slow down before reaching it'],
                    correctAnswer: 3,
                    topic: 'Hazard Avoidance',
                    explanation: 'Slow down before reaching road hazards like wet leaves or gravel in Ohio.'
                },
                {
                    id: 11,
                    category: 'motorcycle',
                    question: 'What protective gear should always be worn when riding in Ohio?',
                    options: ['Helmet', 'Eye protection', 'Both A and B', 'No gear required'],
                    correctAnswer: 2,
                    topic: 'Protective Gear',
                    explanation: 'Always wear helmet and eye protection when riding in Ohio.'
                },
                {
                    id: 12,
                    category: 'motorcycle',
                    question: 'When should you increase following distance in Ohio?',
                    options: ['In rain', 'At night', 'On slippery roads', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Following Distance',
                    explanation: 'Increase following distance in rain, at night, and on slippery roads in Ohio.'
                },
                {
                    id: 13,
                    category: 'motorcycle',
                    question: 'What is the proper lane position for visibility in Ohio?',
                    options: ['Left third of lane', 'Center of lane', 'Right third of lane', 'Any position'],
                    correctAnswer: 0,
                    topic: 'Lane Positioning',
                    explanation: 'Ride in left third of lane for best visibility in Ohio.'
                },
                {
                    id: 14,
                    category: 'motorcycle',
                    question: 'How should you handle wet manhole covers or road markings in Ohio?',
                    options: ['Accelerate over', 'Brake on them', 'Avoid them', 'Ignore them'],
                    correctAnswer: 2,
                    topic: 'Hazard Avoidance',
                    explanation: 'Avoid wet manhole covers and road markings as they can be slippery in Ohio.'
                },
                {
                    id: 15,
                    category: 'motorcycle',
                    question: 'When should you check tire pressure in Ohio?',
                    options: ['Daily', 'Weekly', 'Monthly', 'Only when flat'],
                    correctAnswer: 1,
                    topic: 'Tire Maintenance',
                    explanation: 'Check tire pressure weekly and before long trips in Ohio.'
                },
                {
                    id: 16,
                    category: 'motorcycle',
                    question: 'What is the minimum age for motorcycle license in Ohio?',
                    options: ['14', '16', '18', '21'],
                    correctAnswer: 1,
                    topic: 'Licensing',
                    explanation: 'Minimum age for motorcycle license is 16 in Ohio.'
                },
                {
                    id: 17,
                    category: 'motorcycle',
                    question: 'How should you handle strong crosswinds common in Ohio?',
                    options: ['Lean into wind', 'Slow down', 'Both A and B', 'Speed up'],
                    correctAnswer: 2,
                    topic: 'Adverse Conditions',
                    explanation: 'Lean into wind and slow down in strong crosswinds in Ohio.'
                },
                {
                    id: 18,
                    category: 'motorcycle',
                    question: 'When should you use turn signals in Ohio?',
                    options: ['Before changing lanes', 'Before turning', 'Both A and B', 'Only in traffic'],
                    correctAnswer: 2,
                    topic: 'Signaling',
                    explanation: 'Use turn signals before changing lanes and turning in Ohio.'
                },
                {
                    id: 19,
                    category: 'motorcycle',
                    question: 'What should you do at intersections in Ohio?',
                    options: ['Cover brakes', 'Watch for turning vehicles', 'Both A and B', 'Speed through'],
                    correctAnswer: 2,
                    topic: 'Intersections',
                    explanation: 'Cover brakes and watch for turning vehicles at intersections in Ohio.'
                },
                {
                    id: 20,
                    category: 'motorcycle',
                    question: 'How should you carry cargo on a motorcycle in Ohio?',
                    options: ['Low and centered', 'High on back', 'In one side bag', 'Doesn\'t matter'],
                    correctAnswer: 0,
                    topic: 'Cargo Carrying',
                    explanation: 'Carry cargo low and centered for stability in Ohio.'
                },
                {
                    id: 21,
                    category: 'motorcycle',
                    question: 'What does ATGATT stand for in motorcycle safety?',
                    options: ['All The Gear All The Time', 'Always Try Going Around Traffic', 'Avoid The Gravel And Tar', 'None of the above'],
                    correctAnswer: 0,
                    topic: 'Safety',
                    explanation: 'ATGATT means All The Gear All The Time for maximum safety in Ohio.'
                },
                {
                    id: 22,
                    category: 'motorcycle',
                    question: 'When should you use high beam headlight in Ohio?',
                    options: ['At night on empty roads', 'In fog', 'In traffic', 'Never'],
                    correctAnswer: 0,
                    topic: 'Lighting',
                    explanation: 'Use high beam on empty roads at night for better visibility, but dim for oncoming traffic in Ohio.'
                },
                {
                    id: 23,
                    category: 'motorcycle',
                    question: 'How should you handle oil spills on road in Ohio?',
                    options: ['Ride through quickly', 'Avoid if possible', 'Brake hard', 'Accelerate'],
                    correctAnswer: 1,
                    topic: 'Hazard Avoidance',
                    explanation: 'Avoid oil spills as they can cause loss of traction in Ohio.'
                },
                {
                    id: 24,
                    category: 'motorcycle',
                    question: 'What is countersteering?',
                    options: ['Pushing forward on handlebar', 'Leaning body', 'Both A and B', 'Emergency braking'],
                    correctAnswer: 0,
                    topic: 'Turning',
                    explanation: 'Countersteering means pushing forward on handlebar to initiate turn in Ohio.'
                },
                {
                    id: 25,
                    category: 'motorcycle',
                    question: 'When should you adjust mirrors in Ohio?',
                    options: ['Before riding', 'While riding', 'Both A and B', 'Mirrors not needed'],
                    correctAnswer: 0,
                    topic: 'Mirrors',
                    explanation: 'Adjust mirrors before riding for proper rear view in Ohio.'
                },
                {
                    id: 26,
                    category: 'motorcycle',
                    question: 'What is Ohio\'s helmet law for motorcycles?',
                    options: ['Helmets required for all riders', 'Only required under 18', 'Only required on highways', 'Not required'],
                    correctAnswer: 1,
                    topic: 'Safety',
                    explanation: 'Helmets required for riders under 18 in Ohio.'
                },
                {
                    id: 27,
                    category: 'motorcycle',
                    question: 'How should you handle lane positioning safely in Ohio?',
                    options: ['Stay in lane center', 'Use different positions', 'Ride on shoulder', 'Follow other vehicles'],
                    correctAnswer: 1,
                    topic: 'Lane Positioning',
                    explanation: 'Use different lane positions for visibility and safety in Ohio.'
                },
                {
                    id: 28,
                    category: 'motorcycle',
                    question: 'What should you do when being passed by a car in Ohio?',
                    options: ['Speed up', 'Move to center of lane', 'Stay in position, be predictable', 'Weave to get attention'],
                    correctAnswer: 2,
                    topic: 'Being Passed',
                    explanation: 'Stay in position and be predictable when being passed in Ohio.'
                },
                {
                    id: 29,
                    category: 'motorcycle',
                    question: 'How should you approach railroad tracks in Ohio?',
                    options: ['Cross at 90 degree angle', 'Speed up', 'Weave across', 'Doesn\'t matter'],
                    correctAnswer: 0,
                    topic: 'Railroad Crossings',
                    explanation: 'Cross railroad tracks at as close to 90 degree angle as possible in Ohio.'
                },
                {
                    id: 30,
                    category: 'motorcycle',
                    question: 'What is the penalty for not wearing helmet under 18 in Ohio?',
                    options: ['$20 fine', '$40 fine', '$60 fine', '$100 fine'],
                    correctAnswer: 1,
                    topic: 'Safety',
                    explanation: 'Fine for not wearing helmet under 18 is $40 in Ohio.'
                },
                {
                    id: 31,
                    category: 'motorcycle',
                    question: 'When should you use both brakes in an emergency stop in Ohio?',
                    options: ['Always', 'Only front brake', 'Only rear brake', 'Depends on speed'],
                    correctAnswer: 0,
                    topic: 'Emergency Braking',
                    explanation: 'Always use both brakes for maximum stopping power in emergency in Ohio.'
                },
                {
                    id: 32,
                    category: 'motorcycle',
                    question: 'How should you handle riding in groups in Ohio?',
                    options: ['Staggered formation', 'Single file', 'Side by side', 'Any formation'],
                    correctAnswer: 0,
                    topic: 'Group Riding',
                    explanation: 'Use staggered formation when riding in groups in Ohio.'
                },
                {
                    id: 33,
                    category: 'motorcycle',
                    question: 'What should you do if you get a flat tire while riding in Ohio?',
                    options: ['Brake hard', 'Hold handlebars firmly, ease off gas', 'Accelerate', 'Jump off'],
                    correctAnswer: 1,
                    topic: 'Emergency Procedures',
                    explanation: 'Hold handlebars firmly and ease off gas if you get a flat tire in Ohio.'
                },
                {
                    id: 34,
                    category: 'motorcycle',
                    question: 'When is the most dangerous time to ride in Ohio?',
                    options: ['First 30 minutes of rain', 'Midnight', 'Noon', 'Sunset'],
                    correctAnswer: 0,
                    topic: 'Safety',
                    explanation: 'First 30 minutes of rain is most dangerous due to oil on road surface in Ohio.'
                },
                {
                    id: 35,
                    category: 'motorcycle',
                    question: 'How should you adjust speed for curves in Ohio?',
                    options: ['Slow before curve', 'Brake in curve', 'Accelerate in curve', 'Maintain speed'],
                    correctAnswer: 0,
                    topic: 'Curves',
                    explanation: 'Slow to appropriate speed before entering curve in Ohio.'
                },
                {
                    id: 36,
                    category: 'motorcycle',
                    question: 'What is the minimum tread depth for motorcycle tires in Ohio?',
                    options: ['1/32 inch', '2/32 inch', '4/32 inch', 'No requirement'],
                    correctAnswer: 0,
                    topic: 'Tire Maintenance',
                    explanation: 'Minimum tread depth is 1/32 inch for motorcycle tires in Ohio.'
                },
                {
                    id: 37,
                    category: 'motorcycle',
                    question: 'How should you handle riding over bumps or potholes in Ohio?',
                    options: ['Stand on pegs', 'Sit normally', 'Speed up', 'Swerve suddenly'],
                    correctAnswer: 0,
                    topic: 'Hazard Avoidance',
                    explanation: 'Stand on pegs to absorb impact when riding over bumps in Ohio.'
                },
                {
                    id: 38,
                    category: 'motorcycle',
                    question: 'When should you use your horn in Ohio?',
                    options: ['To alert others of your presence', 'In anger', 'Frequently', 'Never'],
                    correctAnswer: 0,
                    topic: 'Signaling',
                    explanation: 'Use horn to alert others of your presence in Ohio.'
                },
                {
                    id: 39,
                    category: 'motorcycle',
                    question: 'What is the proper way to make a quick stop in Ohio?',
                    options: ['Use both brakes, keep bike straight', 'Use rear brake only', 'Swerve', 'Lay bike down'],
                    correctAnswer: 0,
                    topic: 'Emergency Braking',
                    explanation: 'Use both brakes and keep bike straight for quick stop in Ohio.'
                },
                {
                    id: 40,
                    category: 'motorcycle',
                    question: 'How should you dress for riding in Ohio\'s varying weather?',
                    options: ['Layers', 'Heavy jacket only', 'Same as warm weather', 'Not important'],
                    correctAnswer: 0,
                    topic: 'Protective Gear',
                    explanation: 'Dress in layers for Ohio\'s varying weather conditions.'
                },
                {
                    id: 41,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle license in Ohio?',
                    options: ['Written test', 'Road test', 'Both A and B', 'No test required'],
                    correctAnswer: 2,
                    topic: 'Licensing',
                    explanation: 'Both written and road tests required for motorcycle license in Ohio.'
                },
                {
                    id: 42,
                    category: 'motorcycle',
                    question: 'How should you handle night riding in Ohio?',
                    options: ['Reduce speed', 'Increase following distance', 'Use high beam when appropriate', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Night Riding',
                    explanation: 'Reduce speed, increase following distance, and use high beam when appropriate at night in Ohio.'
                },
                {
                    id: 43,
                    category: 'motorcycle',
                    question: 'What should you check during pre-ride inspection in Ohio?',
                    options: ['Brakes', 'Chain/belt', 'Fluids', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Pre-Ride Inspection',
                    explanation: 'Check brakes, chain/belt, and fluids during pre-ride inspection in Ohio.'
                },
                {
                    id: 44,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s frequent rain?',
                    options: ['Smooth inputs', 'Increase following distance', 'Avoid painted lines', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Rain Riding',
                    explanation: 'Use smooth inputs, increase following distance, and avoid painted lines in Ohio\'s frequent rain.'
                },
                {
                    id: 45,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle endorsement in Ohio?',
                    options: ['Vision test', 'Knowledge test', 'Skills test', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Licensing',
                    explanation: 'Vision, knowledge, and skills tests required for motorcycle endorsement in Ohio.'
                },
                {
                    id: 46,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s crosswinds?',
                    options: ['Relax grip', 'Lean into wind', 'Reduce speed', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Wind Riding',
                    explanation: 'Relax grip, lean into wind, and reduce speed in Ohio\'s crosswinds.'
                },
                {
                    id: 47,
                    category: 'motorcycle',
                    question: 'What should you do before changing lanes in Ohio?',
                    options: ['Check mirrors', 'Signal', 'Check blind spot', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Lane Changes',
                    explanation: 'Check mirrors, signal, and check blind spot before changing lanes in Ohio.'
                },
                {
                    id: 48,
                    category: 'motorcycle',
                    question: 'How often should you practice emergency braking in Ohio?',
                    options: ['Regularly', 'Never', 'Only before test', 'Once a year'],
                    correctAnswer: 0,
                    topic: 'Skills Practice',
                    explanation: 'Practice emergency braking regularly to maintain skills in Ohio.'
                },
                {
                    id: 49,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle registration in Ohio?',
                    options: ['Title', 'Insurance', 'Safety inspection', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Registration',
                    explanation: 'Title, insurance, and safety inspection required for registration in Ohio.'
                },
                {
                    id: 50,
                    category: 'motorcycle',
                    question: 'How should you handle riding on Ohio\'s brick roads?',
                    options: ['Reduce speed', 'Keep bike upright', 'Smooth inputs', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Special Surfaces',
                    explanation: 'Reduce speed, keep bike upright, and use smooth inputs on Ohio\'s brick roads.'
                },
                {
                    id: 51,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle safety course in Ohio?',
                    options: ['Completion card', 'Written test waiver', 'Skills test waiver', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Safety Course',
                    explanation: 'Completion card provides written and skills test waivers in Ohio.'
                },
                {
                    id: 52,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s urban traffic?',
                    options: ['Stay visible', 'Watch for sudden stops', 'Have escape route', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Traffic Riding',
                    explanation: 'Stay visible, watch for sudden stops, and have escape route in Ohio\'s urban traffic.'
                },
                {
                    id: 53,
                    category: 'motorcycle',
                    question: 'What should you do if headlight fails in Ohio?',
                    options: ['Ride to safe place', 'Use hand signals', 'Both A and B', 'Continue riding'],
                    correctAnswer: 2,
                    topic: 'Equipment Failure',
                    explanation: 'Ride to safe place and use hand signals if headlight fails in Ohio.'
                },
                {
                    id: 54,
                    category: 'motorcycle',
                    question: 'How should you handle riding on Ohio\'s bridges?',
                    options: ['Watch for grates', 'Beware of crosswinds', 'Both A and B', 'Speed up'],
                    correctAnswer: 2,
                    topic: 'Bridge Riding',
                    explanation: 'Watch for grates and beware of crosswinds on Ohio\'s bridges.'
                },
                {
                    id: 55,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle insurance in Ohio?',
                    options: ['Liability', 'Proof of insurance', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Insurance',
                    explanation: 'Liability insurance and proof of insurance required in Ohio.'
                },
                {
                    id: 56,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s fog?',
                    options: ['Use low beam', 'Reduce speed', 'Increase following distance', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Fog Riding',
                    explanation: 'Use low beam, reduce speed, and increase following distance in Ohio\'s fog.'
                },
                {
                    id: 57,
                    category: 'motorcycle',
                    question: 'What should you do during pre-ride check in Ohio?',
                    options: ['Check tires', 'Check lights', 'Check horn', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Pre-Ride Check',
                    explanation: 'Check tires, lights, and horn during pre-ride check in Ohio.'
                },
                {
                    id: 58,
                    category: 'motorcycle',
                    question: 'How should you handle riding on Ohio\'s wet roads?',
                    options: ['Avoid if possible', 'Reduce speed', 'Smooth inputs', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Hazard Avoidance',
                    explanation: 'Avoid if possible, reduce speed, and use smooth inputs on Ohio\'s wet roads.'
                },
                {
                    id: 59,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle transfer in Ohio?',
                    options: ['Bill of sale', 'Title transfer', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Ownership Transfer',
                    explanation: 'Bill of sale and title transfer required for motorcycle transfer in Ohio.'
                },
                {
                    id: 60,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s road construction zones?',
                    options: ['Reduce speed', 'Watch for debris', 'Follow signs', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Construction Zones',
                    explanation: 'Reduce speed, watch for debris, and follow signs in Ohio\'s road construction zones.'
                },
                {
                    id: 61,
                    category: 'motorcycle',
                    question: 'What should you do if throttle sticks in Ohio?',
                    options: ['Pull clutch', 'Turn off engine', 'Both A and B', 'Brake hard'],
                    correctAnswer: 2,
                    topic: 'Emergency Procedures',
                    explanation: 'Pull clutch and turn off engine if throttle sticks in Ohio.'
                },
                {
                    id: 62,
                    category: 'motorcycle',
                    question: 'How should you handle riding on Ohio\'s slippery roads after rain?',
                    options: ['Avoid if possible', 'Walk bike', 'Both A and B', 'Speed up'],
                    correctAnswer: 2,
                    topic: 'Slippery Roads',
                    explanation: 'Avoid slippery roads if possible, otherwise walk bike in Ohio after rain.'
                },
                {
                    id: 63,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle loan in Ohio?',
                    options: ['Insurance', 'Registration', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Financing',
                    explanation: 'Insurance and registration required for motorcycle loan in Ohio.'
                },
                {
                    id: 64,
                    category: 'motorcycle',
                    question: 'How should you handle riding at dawn/dusk in Ohio?',
                    options: ['Use lights', 'Wear reflective gear', 'Both A and B', 'No special precautions'],
                    correctAnswer: 2,
                    topic: 'Low Light Riding',
                    explanation: 'Use lights and wear reflective gear at dawn/dusk in Ohio.'
                },
                {
                    id: 65,
                    category: 'motorcycle',
                    question: 'What should you do if brake fails in Ohio?',
                    options: ['Use other brake', 'Downshift', 'Both A and B', 'Jump off'],
                    correctAnswer: 2,
                    topic: 'Emergency Procedures',
                    explanation: 'Use other brake and downshift if one brake fails in Ohio.'
                },
                {
                    id: 66,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s heat?',
                    options: ['Stay hydrated', 'Take breaks', 'Wear light colors', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Heat Riding',
                    explanation: 'Stay hydrated, take breaks, and wear light colors in Ohio\'s heat.'
                },
                {
                    id: 67,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle permit in Ohio?',
                    options: ['Vision test', 'Written test', 'Both A and B', 'No test required'],
                    correctAnswer: 2,
                    topic: 'Permit',
                    explanation: 'Vision and written tests required for motorcycle permit in Ohio.'
                },
                {
                    id: 68,
                    category: 'motorcycle',
                    question: 'How should you handle riding on Ohio\'s rural roads?',
                    options: ['Reduce speed', 'Watch for animals', 'Both A and B', 'Speed up'],
                    correctAnswer: 2,
                    topic: 'Rural Riding',
                    explanation: 'Reduce speed and watch for animals on Ohio\'s rural roads.'
                },
                {
                    id: 69,
                    category: 'motorcycle',
                    question: 'What should you do if chain breaks in Ohio?',
                    options: ['Pull clutch', 'Coast to stop', 'Both A and B', 'Brake hard'],
                    correctAnswer: 2,
                    topic: 'Equipment Failure',
                    explanation: 'Pull clutch and coast to stop if chain breaks in Ohio.'
                },
                {
                    id: 70,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s country roads?',
                    options: ['Use lower gears', 'Watch for curves', 'Both A and B', 'No special precautions'],
                    correctAnswer: 2,
                    topic: 'Country Riding',
                    explanation: 'Use lower gears and watch for curves on Ohio\'s country roads.'
                },
                {
                    id: 71,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle title in Ohio?',
                    options: ['Application', 'Proof of ownership', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Title',
                    explanation: 'Application and proof of ownership required for title in Ohio.'
                },
                {
                    id: 72,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s occasional heavy rain?',
                    options: ['Avoid if possible', 'Use rain gear', 'Both A and B', 'Speed up'],
                    correctAnswer: 2,
                    topic: 'Heavy Rain Riding',
                    explanation: 'Avoid heavy rain if possible, otherwise use rain gear in Ohio.'
                },
                {
                    id: 73,
                    category: 'motorcycle',
                    question: 'What should you do if engine overheats in Ohio?',
                    options: ['Pull over', 'Let engine cool', 'Both A and B', 'Continue riding'],
                    correctAnswer: 2,
                    topic: 'Overheating',
                    explanation: 'Pull over and let engine cool if overheating in Ohio.'
                },
                {
                    id: 74,
                    category: 'motorcycle',
                    question: 'How should you handle riding in groups at night in Ohio?',
                    options: ['Reduce group size', 'Increase spacing', 'Both A and B', 'No changes'],
                    correctAnswer: 2,
                    topic: 'Group Night Riding',
                    explanation: 'Reduce group size and increase spacing at night in Ohio.'
                },
                {
                    id: 75,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle safety inspection in Ohio?',
                    options: ['Annual', 'Biennial', 'At transfer only', 'Not required'],
                    correctAnswer: 0,
                    topic: 'Safety Inspection',
                    explanation: 'Annual safety inspection required for motorcycles in Ohio.'
                },
                {
                    id: 76,
                    category: 'motorcycle',
                    question: 'How should you handle riding with passenger in Ohio?',
                    options: ['Adjust suspension', 'Increase following distance', 'Both A and B', 'No changes'],
                    correctAnswer: 2,
                    topic: 'Passenger Riding',
                    explanation: 'Adjust suspension and increase following distance with passenger in Ohio.'
                },
                {
                    id: 77,
                    category: 'motorcycle',
                    question: 'What should you do if electrical system fails in Ohio?',
                    options: ['Use hand signals', 'Ride to safety', 'Both A and B', 'Continue riding'],
                    correctAnswer: 2,
                    topic: 'Electrical Failure',
                    explanation: 'Use hand signals and ride to safety if electrical system fails in Ohio.'
                },
                {
                    id: 78,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s rural areas?',
                    options: ['Watch for animals', 'Beware of farm equipment', 'Both A and B', 'No special precautions'],
                    correctAnswer: 2,
                    topic: 'Rural Riding',
                    explanation: 'Watch for animals and beware of farm equipment in Ohio\'s rural areas.'
                },
                {
                    id: 79,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle dealer purchase in Ohio?',
                    options: ['Sales tax', 'Registration', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Dealer Purchase',
                    explanation: 'Sales tax and registration required for dealer purchase in Ohio.'
                },
                {
                    id: 80,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s sudden thunderstorms?',
                    options: ['Seek shelter', 'If riding, reduce speed', 'Both A and B', 'Speed up'],
                    correctAnswer: 2,
                    topic: 'Thunderstorm Riding',
                    explanation: 'Seek shelter, if riding reduce speed in Ohio\'s sudden thunderstorms.'
                },
                {
                    id: 81,
                    category: 'motorcycle',
                    question: 'What should you do if fuel system fails in Ohio?',
                    options: ['Switch to reserve', 'Ride to station', 'Both A and B', 'Push bike'],
                    correctAnswer: 2,
                    topic: 'Fuel System Failure',
                    explanation: 'Switch to reserve and ride to station if fuel system fails in Ohio.'
                },
                {
                    id: 82,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s hail storms?',
                    options: ['Seek shelter immediately', 'Avoid open areas', 'Both A and B', 'Continue riding'],
                    correctAnswer: 2,
                    topic: 'Hail Storm Riding',
                    explanation: 'Seek shelter immediately and avoid open areas in Ohio\'s hail storms.'
                },
                {
                    id: 83,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle private sale in Ohio?',
                    options: ['Bill of sale', 'Title transfer', 'Both A and B', 'Handshake only'],
                    correctAnswer: 2,
                    topic: 'Private Sale',
                    explanation: 'Bill of sale and title transfer required for private sale in Ohio.'
                },
                {
                    id: 84,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s flash flood warnings?',
                    options: ['Seek shelter immediately', 'Do not ride through water', 'Both A and B', 'Ride faster'],
                    correctAnswer: 2,
                    topic: 'Flash Flood Warning',
                    explanation: 'Seek shelter immediately and do not ride through water in Ohio\'s flash flood warnings.'
                },
                {
                    id: 85,
                    category: 'motorcycle',
                    question: 'What should you do if tire goes flat in Ohio?',
                    options: ['Hold handlebars firmly', 'Ease off throttle', 'Both A and B', 'Brake hard'],
                    correctAnswer: 2,
                    topic: 'Flat Tire',
                    explanation: 'Hold handlebars firmly and ease off throttle if tire goes flat in Ohio.'
                },
                {
                    id: 86,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s flood conditions?',
                    options: ['Avoid if possible', 'If riding, go slow', 'Both A and B', 'Speed through'],
                    correctAnswer: 2,
                    topic: 'Flood Riding',
                    explanation: 'Avoid flood if possible, if riding go slow in Ohio.'
                },
                {
                    id: 87,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle insurance claim in Ohio?',
                    options: ['Police report', 'Photos', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Insurance Claims',
                    explanation: 'Police report and photos help with insurance claims in Ohio.'
                },
                {
                    id: 88,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s winter conditions?',
                    options: ['Wear warm gear', 'Reduce speed', 'Both A and B', 'No precautions'],
                    correctAnswer: 2,
                    topic: 'Winter Riding',
                    explanation: 'Wear warm gear and reduce speed in Ohio\'s winter conditions.'
                },
                {
                    id: 89,
                    category: 'motorcycle',
                    question: 'What should you do if lost control in Ohio?',
                    options: ['Look where you want to go', 'Stay on brakes', 'Both A and B', 'Close eyes'],
                    correctAnswer: 0,
                    topic: 'Loss of Control',
                    explanation: 'Look where you want to go if losing control in Ohio.'
                },
                {
                    id: 90,
                    category: 'motorcycle',
                    question: 'How should you handle riding after Ohio storm?',
                    options: ['Watch for debris', 'Avoid flooded areas', 'Both A and B', 'No precautions'],
                    correctAnswer: 2,
                    topic: 'Post-Storm Riding',
                    explanation: 'Watch for debris and avoid flooded areas after Ohio storm.'
                },
                {
                    id: 91,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle custom build in Ohio?',
                    options: ['Special inspection', 'Title', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Custom Builds',
                    explanation: 'Special inspection and title required for custom builds in Ohio.'
                },
                {
                    id: 92,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s dust from gravel roads?',
                    options: ['Wear goggles', 'Reduce speed', 'Both A and B', 'Ride through'],
                    correctAnswer: 2,
                    topic: 'Dust Riding',
                    explanation: 'Wear goggles and reduce speed in Ohio\'s dust from gravel roads.'
                },
                {
                    id: 93,
                    category: 'motorcycle',
                    question: 'What should you do if animals on road in Ohio?',
                    options: ['Reduce speed', 'Do not swerve', 'Both A and B', 'Speed up'],
                    correctAnswer: 2,
                    topic: 'Animals on Road',
                    explanation: 'Reduce speed and do not swerve for animals in Ohio.'
                },
                {
                    id: 94,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s urban traffic?',
                    options: ['Be extra alert', 'Watch for opening doors', 'Both A and B', 'Speed through'],
                    correctAnswer: 2,
                    topic: 'Urban Riding',
                    explanation: 'Be extra alert and watch for opening doors in Ohio\'s urban traffic.'
                },
                {
                    id: 95,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle import to Ohio?',
                    options: ['Federal forms', 'State inspection', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Import',
                    explanation: 'Federal forms and state inspection required for import to Ohio.'
                },
                {
                    id: 96,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s severe weather conditions?',
                    options: ['Do not ride', 'If riding, extreme caution', 'Both A and B', 'Normal riding'],
                    correctAnswer: 2,
                    topic: 'Severe Weather Riding',
                    explanation: 'Do not ride, if riding use extreme caution in Ohio\'s severe weather conditions.'
                },
                {
                    id: 97,
                    category: 'motorcycle',
                    question: 'What should you do if objects on road in Ohio?',
                    options: ['Avoid if safe', 'Do not swerve suddenly', 'Both A and B', 'Hit object'],
                    correctAnswer: 2,
                    topic: 'Objects on Road',
                    explanation: 'Avoid if safe, do not swerve suddenly for objects in Ohio.'
                },
                {
                    id: 98,
                    category: 'motorcycle',
                    question: 'How should you handle riding in Ohio\'s high traffic areas?',
                    options: ['Watch for sudden stops', 'Beware of distracted drivers', 'Both A and B', 'Normal riding'],
                    correctAnswer: 2,
                    topic: 'High Traffic Riding',
                    explanation: 'Watch for sudden stops and beware of distracted drivers in Ohio\'s high traffic areas.'
                },
                {
                    id: 99,
                    category: 'motorcycle',
                    question: 'What is required for motorcycle export from Ohio?',
                    options: ['Title', 'Bill of sale', 'Both A and B', 'Not required'],
                    correctAnswer: 2,
                    topic: 'Export',
                    explanation: 'Title and bill of sale required for export from Ohio.'
                },
                {
                    id: 100,
                    category: 'motorcycle',
                    question: 'What special considerations are needed for riding in Ohio\'s varied climate?',
                    options: ['Watch for changing weather patterns', 'Beware of sudden temperature drops', 'Watch for seasonal hazards', 'All of the above'],
                    correctAnswer: 3,
                    topic: 'Climate Riding',
                    explanation: 'Watch for changing weather patterns, beware of sudden temperature drops, and watch for seasonal hazards when riding in Ohio\'s varied climate.'
                }
            ];
        }
        
        // Start the test
        function startTest() {
            const name = nameInput.value.trim();
            if (!name) {
                alert('Please enter your name before starting the test.');
                nameInput.focus();
                return;
            }
            
            testState.testerName = name;
            testState.currentQuestionIndex = 0;
            testState.userAnswers.fill(null);
            testState.testStarted = true;
            testState.testCompleted = false;
            testState.incorrectQuestions = [];
            
            // Select questions based on current category
            const allQuestions = [...questionBanks[testState.currentCategory]];
            testState.selectedQuestions = [];
            
            // If we have fewer than testQuestions, use what we have
            // Otherwise, shuffle and select testQuestions
            if (allQuestions.length <= TEST_CONFIG.testQuestions) {
                testState.selectedQuestions = allQuestions;
            } else {
                // Shuffle array and take first testQuestions
                for (let i = allQuestions.length - 1; i > 0; i--) {
                    const j = Math.floor(Math.random() * (i + 1));
                    [allQuestions[i], allQuestions[j]] = [allQuestions[j], allQuestions[i]];
                }
                
                testState.selectedQuestions = allQuestions.slice(0, TEST_CONFIG.testQuestions);
            }
            
            // Reset UI
            nameInput.disabled = true;
            timerContainer.style.display = 'block';
            progressContainer.style.display = 'block';
            questionCard.classList.add('active');
            resultsContainer.classList.remove('show');
            incorrectQuestionsSection.classList.remove('show');
            reviewSection.classList.remove('show');
            startTestBtn.textContent = 'Restart Test';
            startTestBtn.classList.add('btn-accent');
            
            // Show first question
            showQuestion();
            startTimer();
            
            // Update category display
            const activeCategoryBtn = document.querySelector('.category-btn.active');
            currentCategoryElement.textContent = activeCategoryBtn.textContent.replace(' Test', '');
        }
        
        // Display current question
        function showQuestion() {
            const question = testState.selectedQuestions[testState.currentQuestionIndex];
            
            // Update progress
            currentQuestionElement.textContent = testState.currentQuestionIndex + 1;
            const progress = ((testState.currentQuestionIndex + 1) / testState.selectedQuestions.length) * 100;
            progressBar.style.width = `${progress}%`;
            
            // Update question text
            questionTextElement.textContent = question.question;
            
            // Clear previous options
            optionsContainer.innerHTML = '';
            
            // Add new options
            question.options.forEach((option, index) => {
                const optionElement = document.createElement('div');
                optionElement.className = 'option';
                if (testState.userAnswers[testState.currentQuestionIndex] === index) {
                    optionElement.classList.add('selected');
                }
                
                optionElement.innerHTML = `
                    <div class="option-label">${String.fromCharCode(65 + index)}</div>
                    <div class="option-text">${option}</div>
                `;
                
                optionElement.addEventListener('click', () => selectOption(index));
                optionsContainer.appendChild(optionElement);
            });
            
            // Update navigation buttons
            prevBtn.disabled = testState.currentQuestionIndex === 0;
            nextBtn.textContent = testState.currentQuestionIndex === testState.selectedQuestions.length - 1 ? 'Finish Test' : 'Next Question';
            
            // Reset timer
            resetTimer();
        }
        
        // Select an option
        function selectOption(optionIndex) {
            // Remove selected class from all options
            document.querySelectorAll('.option').forEach(option => {
                option.classList.remove('selected');
            });
            
            // Add selected class to clicked option
            document.querySelectorAll('.option')[optionIndex].classList.add('selected');
            
            // Save answer
            testState.userAnswers[testState.currentQuestionIndex] = optionIndex;
            
            // Auto-advance after 1 second if not the last question
            if (testState.currentQuestionIndex < testState.selectedQuestions.length - 1) {
                setTimeout(() => {
                    showNextQuestion();
                }, 1000);
            }
        }
        
        // Skip question
        function skipQuestion() {
            testState.userAnswers[testState.currentQuestionIndex] = null;
            
            if (testState.currentQuestionIndex < testState.selectedQuestions.length - 1) {
                showNextQuestion();
            } else {
                finishTest();
            }
        }
        
        // Show next question
        function showNextQuestion() {
            if (testState.currentQuestionIndex < testState.selectedQuestions.length - 1) {
                testState.currentQuestionIndex++;
                showQuestion();
            } else {
                finishTest();
            }
        }
        
        // Show previous question
        function showPreviousQuestion() {
            if (testState.currentQuestionIndex > 0) {
                testState.currentQuestionIndex--;
                showQuestion();
            }
        }
        
        // Timer functions
        function startTimer() {
            clearInterval(testState.timerInterval);
            testState.timeRemaining = TEST_CONFIG.timePerQuestion;
            updateTimerDisplay();
            
            testState.timerInterval = setInterval(() => {
                testState.timeRemaining--;
                updateTimerDisplay();
                
                if (testState.timeRemaining <= 0) {
                    clearInterval(testState.timerInterval);
                    // Auto-skip to next question when time expires
                    if (testState.currentQuestionIndex < testState.selectedQuestions.length - 1) {
                        showNextQuestion();
                    } else {
                        finishTest();
                    }
                }
            }, 1000);
        }
        
        function resetTimer() {
            clearInterval(testState.timerInterval);
            testState.timeRemaining = TEST_CONFIG.timePerQuestion;
            updateTimerDisplay();
            startTimer();
        }
        
        function updateTimerDisplay() {
            timerElement.textContent = testState.timeRemaining;
            
            // Update timer color based on remaining time
            timerElement.classList.remove('warning', 'danger');
            if (testState.timeRemaining <= 15) {
                timerElement.classList.add('danger');
            } else if (testState.timeRemaining <= 30) {
                timerElement.classList.add('warning');
            }
        }
        
        // Finish test and show results
        function finishTest() {
            clearInterval(testState.timerInterval);
            testState.testCompleted = true;
            
            // Calculate results
            let correct = 0;
            let incorrect = 0;
            let skipped = 0;
            testState.incorrectQuestions = [];
            
            testState.userAnswers.forEach((answer, index) => {
                const question = testState.selectedQuestions[index];
                if (answer === null) {
                    skipped++;
                } else if (answer === question.correctAnswer) {
                    correct++;
                } else {
                    incorrect++;
                    // Store incorrect question with user's answer and correct answer
                    testState.incorrectQuestions.push({
                        question: question,
                        userAnswer: answer,
                        correctAnswer: question.correctAnswer
                    });
                }
            });
            
            const totalQuestions = testState.selectedQuestions.length;
            const calculatedScorePercent = Math.round((correct / totalQuestions) * 100);
            const passed = correct >= TEST_CONFIG.passingScore;
            
            // Update results display
            correctCount.textContent = correct;
            incorrectCount.textContent = incorrect;
            skippedCount.textContent = skipped;
            scorePercentElement.textContent = `${calculatedScorePercent}%`;
            testerNameDisplay.textContent = `Tester: ${testState.testerName}`;
            
            // Update score circle visualization
            const correctDegree = (correct / totalQuestions) * 360;
            scoreCircle.style.background = `conic-gradient(var(--correct-color) 0deg ${correctDegree}deg, #eee ${correctDegree}deg 360deg)`;
            
            // Update result message
            if (passed) {
                resultMessage.innerHTML = `
                    <h3 style="color: var(--correct-color); margin-bottom: 10px;">Congratulations ${testState.testerName}! You Passed!</h3>
                    <p>You answered ${correct} out of ${totalQuestions} questions correctly (${calculatedScorePercent}%).</p>
                    <p>You met the Ohio DMV passing requirement of ${TEST_CONFIG.passingScore} correct answers (${TEST_CONFIG.passingPercent}%).</p>
                `;
                scoreText.textContent = "PASSED";
                scoreText.classList.add('pass');
                scoreText.classList.remove('fail');
            } else {
                resultMessage.innerHTML = `
                    <h3 style="color: var(--incorrect-color); margin-bottom: 10px;">Keep Practicing, ${testState.testerName}!</h3>
                    <p>You answered ${correct} out of ${totalQuestions} questions correctly (${calculatedScorePercent}%).</p>
                    <p>You needed ${TEST_CONFIG.passingScore} correct answers (${TEST_CONFIG.passingPercent}%) to pass the Ohio DMV test.</p>
                `;
                scoreText.textContent = "FAILED";
                scoreText.classList.add('fail');
                scoreText.classList.remove('pass');
            }
            
            // Update recommendation
            if (calculatedScorePercent >= 90) {
                recommendation.innerHTML = `
                    <h4>Excellent Work!</h4>
                    <p>Your score indicates you're well-prepared for the Ohio DMV exam. Consider reviewing any missed questions and taking the official test soon.</p>
                `;
            } else if (calculatedScorePercent >= TEST_CONFIG.passingPercent) {
                recommendation.innerHTML = `
                    <h4>Good Job!</h4>
                    <p>You passed the practice test! Review the questions you missed and consider taking another practice test before your official Ohio DMV exam.</p>
                `;
            } else {
                recommendation.innerHTML = `
                    <h4>Areas for Improvement</h4>
                    <p>Focus on the topics where you missed questions. Study the Ohio DMV manual and take more practice tests to improve your score.</p>
                    <p>You missed ${TEST_CONFIG.passingScore - correct} more questions than allowed to pass. Click "Show Incorrect Questions" below to review your mistakes.</p>
                `;
            }
            
            // Hide question card and show results
            questionCard.classList.remove('active');
            resultsContainer.classList.add('show');
            
            // Update incorrect questions button text
            if (testState.incorrectQuestions.length > 0) {
                showIncorrectBtn.textContent = `Show Incorrect Questions (${testState.incorrectQuestions.length})`;
                showIncorrectBtn.style.display = 'block';
            } else {
                showIncorrectBtn.style.display = 'none';
            }
        }
        
        // Toggle incorrect questions section
        function toggleIncorrectQuestions() {
            if (incorrectQuestionsSection.classList.contains('show')) {
                incorrectQuestionsSection.classList.remove('show');
                showIncorrectBtn.textContent = `Show Incorrect Questions (${testState.incorrectQuestions.length})`;
            } else {
                showIncorrectQuestions();
                incorrectQuestionsSection.classList.add('show');
                showIncorrectBtn.textContent = 'Hide Incorrect Questions';
                // Hide review section if open
                reviewSection.classList.remove('show');
                reviewTestBtn.textContent = 'Review All Questions';
            }
        }
        
        // Show incorrect questions with correct answers
        function showIncorrectQuestions() {
            incorrectQuestionsList.innerHTML = '';
            
            if (testState.incorrectQuestions.length === 0) {
                incorrectQuestionsList.innerHTML = '<p>No incorrect questions to display. Great job!</p>';
                return;
            }
            
            testState.incorrectQuestions.forEach((item, index) => {
                const question = item.question;
                const userAnswer = item.userAnswer;
                const correctAnswer = item.correctAnswer;
                
                const incorrectQuestionElement = document.createElement('div');
                incorrectQuestionElement.className = 'incorrect-question';
                
                incorrectQuestionElement.innerHTML = `
                    <div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
                        <strong>Question ${testState.selectedQuestions.findIndex(q => q.id === question.id) + 1}: ${question.topic}</strong>
                        <span style="font-weight: 600; color: var(--incorrect-color)">Incorrect</span>
                    </div>
                    <p style="margin-bottom: 15px;"><strong>Question:</strong> ${question.question}</p>
                    <div style="margin-bottom: 10px;">
                        ${question.options.map((option, optIndex) => {
                            let optionStyle = '';
                            if (optIndex === correctAnswer) {
                                optionStyle = 'background-color: rgba(76, 175, 80, 0.1); border-left: 3px solid var(--correct-color);';
                            } else if (optIndex === userAnswer) {
                                optionStyle = 'background-color: rgba(244, 67, 54, 0.1); border-left: 3px solid var(--incorrect-color);';
                            }
                            
                            return `
                                <div style="padding: 8px 12px; margin-bottom: 5px; border-radius: 4px; ${optionStyle}">
                                    <strong>${String.fromCharCode(65 + optIndex)}:</strong> ${option}
                                    ${optIndex === correctAnswer ? ' <strong>(Correct Answer)</strong>' : ''}
                                    ${optIndex === userAnswer && optIndex !== correctAnswer ? ' <strong>(Your Answer)</strong>' : ''}
                                </div>
                            `;
                        }).join('')}
                    </div>
                    <div style="font-style: italic; color: var(--light-text);">
                        <strong>Explanation:</strong> ${question.explanation}
                    </div>
                `;
                
                incorrectQuestionsList.appendChild(incorrectQuestionElement);
            });
        }
        
        // Toggle review section
        function toggleReviewSection() {
            if (reviewSection.classList.contains('show')) {
                reviewSection.classList.remove('show');
                reviewTestBtn.textContent = 'Review All Questions';
            } else {
                showReviewSection();
                reviewSection.classList.add('show');
                reviewTestBtn.textContent = 'Hide Review';
                // Hide incorrect questions section if open
                incorrectQuestionsSection.classList.remove('show');
                showIncorrectBtn.textContent = `Show Incorrect Questions (${testState.incorrectQuestions.length})`;
            }
        }
        
        // Show review section with all questions and answers
        function showReviewSection() {
            reviewQuestions.innerHTML = '';
            
            testState.selectedQuestions.forEach((question, index) => {
                const userAnswer = testState.userAnswers[index];
                const isCorrect = userAnswer === question.correctAnswer;
                const isSkipped = userAnswer === null;
                
                let statusClass = '';
                let statusText = '';
                
                if (isSkipped) {
                    statusClass = 'skipped';
                    statusText = 'Skipped';
                } else if (isCorrect) {
                    statusClass = 'correct';
                    statusText = 'Correct';
                } else {
                    statusClass = 'incorrect';
                    statusText = 'Incorrect';
                }
                
                const reviewQuestion = document.createElement('div');
                reviewQuestion.className = `review-question ${statusClass}`;
                
                reviewQuestion.innerHTML = `
                    <div style="display: flex; justify-content: space-between; margin-bottom: 10px;">
                        <strong>Question ${index + 1}: ${question.topic}</strong>
                        <span style="font-weight: 600; color: ${statusClass === 'correct' ? 'var(--correct-color)' : statusClass === 'incorrect' ? 'var(--incorrect-color)' : 'var(--accent-color)'}">
                            ${statusText}
                        </span>
                    </div>
                    <p style="margin-bottom: 15px;">${question.question}</p>
                    <div style="margin-bottom: 10px;">
                        ${question.options.map((option, optIndex) => {
                            let optionStyle = '';
                            if (optIndex === question.correctAnswer) {
                                optionStyle = 'background-color: rgba(76, 175, 80, 0.1); border-left: 3px solid var(--correct-color);';
                            } else if (optIndex === userAnswer && !isCorrect) {
                                optionStyle = 'background-color: rgba(244, 67, 54, 0.1); border-left: 3px solid var(--incorrect-color);';
                            }
                            
                            return `
                                <div style="padding: 8px 12px; margin-bottom: 5px; border-radius: 4px; ${optionStyle}">
                                    <strong>${String.fromCharCode(65 + optIndex)}:</strong> ${option}
                                    ${optIndex === question.correctAnswer ? ' <strong>(Correct Answer)</strong>' : ''}
                                    ${optIndex === userAnswer && !isCorrect ? ' <strong>(Your Answer)</strong>' : ''}
                                </div>
                            `;
                        }).join('')}
                    </div>
                    <div style="font-style: italic; color: var(--light-text);">
                        <strong>Explanation:</strong> ${question.explanation}
                    </div>
                `;
                
                reviewQuestions.appendChild(reviewQuestion);
            });
        }
        
        // Restart test
        function restartTest() {
            testState.currentQuestionIndex = 0;
            testState.userAnswers.fill(null);
            testState.testStarted = false;
            testState.testCompleted = false;
            testState.incorrectQuestions = [];
            testState.testerName = '';
            
            // Reset UI
            nameInput.disabled = false;
            nameInput.value = '';
            timerContainer.style.display = 'none';
            progressContainer.style.display = 'none';
            questionCard.classList.remove('active');
            resultsContainer.classList.remove('show');
            incorrectQuestionsSection.classList.remove('show');
            reviewSection.classList.remove('show');
            startTestBtn.textContent = 'Start Practice Test';
            startTestBtn.classList.remove('btn-accent');
            
            // Reset progress bar
            progressBar.style.width = '0%';
            
            // Reset timer display
            clearInterval(testState.timerInterval);
            timerElement.textContent = '60';
            timerElement.classList.remove('warning', 'danger');
            
            // Reset buttons
            showIncorrectBtn.textContent = 'Show Incorrect Questions';
            reviewTestBtn.textContent = 'Review All Questions';
            showIncorrectBtn.style.display = 'block';
        }
        
        // Initialize the application
        document.addEventListener('DOMContentLoaded', () => {
            initEventListeners();
            
            // Set default active category
            currentCategoryElement.textContent = 'Car';
        });
    </script>
</body>
]]></content:encoded>
					
					<wfw:commentRss>https://24car-repair.com/ohio-bmv-practice-test/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ohio Car Sales Tax Calculator</title>
		<link>https://24car-repair.com/ohio-car-sales-tax-calculator/</link>
					<comments>https://24car-repair.com/ohio-car-sales-tax-calculator/#respond</comments>
		
		<dc:creator><![CDATA[Robert]]></dc:creator>
		<pubDate>Mon, 29 Dec 2025 09:08:08 +0000</pubDate>
				<category><![CDATA[Calculator]]></category>
		<category><![CDATA[Ohio]]></category>
		<guid isPermaLink="false">https://24car-repair.com/?p=5073</guid>

					<description><![CDATA[Ohio Car Sales Tax Calculator 2025 &#124; Complete Guide &#038; Analysis &#124; 24Car-Repair.com 24 24Car-Repair.com Expert Automotive Calculators &#038; Resources Ohio Car Sales Tax Calculator This comprehensive guide provides detailed analysis of Ohio&#8217;s vehicle sales tax system, featuring an advanced interactive calculator that accounts for county-specific rates, trade-in deductions, and all associated fees. Updated with [&#8230;]]]></description>
										<content:encoded><![CDATA[

    <title>Ohio Car Sales Tax Calculator 2025 | Complete Guide &#038; Analysis | 24Car-Repair.com</title>
    <meta name="description" content="Comprehensive Ohio car sales tax calculator with detailed analysis, county-by-county rates, trade-in deductions, and complete purchase cost breakdown. Official 2025 rates and calculations.">
    <link rel="canonical" href="https://24car-repair.com/ohio-car-sales-tax-calculator">
    <style>
        /* ===== ALIGENT DESIGN SYSTEM ===== */
        :root {
            /* Color System - Professional & Trustworthy */
            --primary-900: #0d1b2a;
            --primary-700: #1b263b;
            --primary-500: #415a77;
            --primary-300: #778da9;
            --primary-100: #e0e1dd;
            
            --secondary-900: #9d0208;
            --secondary-700: #d00000;
            --secondary-500: #e85d04;
            --secondary-300: #f48c06;
            --secondary-100: #ffba08;
            
            --accent-900: #00509d;
            --accent-700: #0077b6;
            --accent-500: #0096c7;
            --accent-300: #00b4d8;
            --accent-100: #90e0ef;
            
            --neutral-900: #212529;
            --neutral-700: #495057;
            --neutral-500: #6c757d;
            --neutral-300: #adb5bd;
            --neutral-100: #f8f9fa;
            --neutral-50: #ffffff;
            
            --success-500: #2e7d32;
            --warning-500: #f57c00;
            --error-500: #c62828;
            --info-500: #0277bd;
            
            /* Typography Scale */
            --text-xs: 0.75rem;    /* 12px */
            --text-sm: 0.875rem;   /* 14px */
            --text-base: 1rem;     /* 16px */
            --text-lg: 1.125rem;   /* 18px */
            --text-xl: 1.25rem;    /* 20px */
            --text-2xl: 1.5rem;    /* 24px */
            --text-3xl: 1.875rem;  /* 30px */
            --text-4xl: 2.25rem;   /* 36px */
            
            /* Spacing Scale */
            --space-1: 0.25rem;    /* 4px */
            --space-2: 0.5rem;     /* 8px */
            --space-3: 0.75rem;    /* 12px */
            --space-4: 1rem;       /* 16px */
            --space-6: 1.5rem;     /* 24px */
            --space-8: 2rem;       /* 32px */
            --space-12: 3rem;      /* 48px */
            --space-16: 4rem;      /* 64px */
            
            /* Border Radius */
            --radius-sm: 4px;
            --radius-md: 8px;
            --radius-lg: 12px;
            --radius-xl: 16px;
            --radius-full: 9999px;
            
            /* Shadows */
            --shadow-sm: 0 1px 3px rgba(0,0,0,0.12);
            --shadow-md: 0 4px 6px rgba(0,0,0,0.1);
            --shadow-lg: 0 10px 25px rgba(0,0,0,0.15);
            --shadow-xl: 0 20px 40px rgba(0,0,0,0.2);
            
            /* Transitions */
            --transition-fast: 150ms ease;
            --transition-normal: 300ms ease;
            --transition-slow: 500ms ease;
            
            /* Layout */
            --max-width: 1200px;
            --sidebar-width: 380px;
            --header-height: 80px;
        }

        /* ===== BASE RESETS ===== */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
            font-size: 16px;
        }

        body {
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            line-height: 1.7;
            color: var(--neutral-900);
            background: linear-gradient(135deg, var(--neutral-100) 0%, var(--neutral-50) 100%);
            min-height: 100vh;
        }

        /* ===== TYPOGRAPHY WITH NUMBERING ===== */
        .article-container {
            counter-reset: section subsection subsubsection;
        }

        h1 {
            font-size: var(--text-4xl);
            font-weight: 800;
            color: var(--primary-900);
            margin: var(--space-8) 0 var(--space-4);
            line-height: 1.2;
            position: relative;
            padding-bottom: var(--space-4);
            border-bottom: 3px solid var(--secondary-500);
        }

        h1::before {
            counter-increment: section;
            content: counter(section) ". ";
            color: var(--secondary-500);
            font-weight: 900;
            margin-right: var(--space-2);
        }

        h2 {
            counter-increment: subsection;
            counter-reset: subsubsection;
            font-size: var(--text-3xl);
            font-weight: 700;
            color: var(--primary-700);
            margin: var(--space-12) 0 var(--space-6);
            padding: var(--space-4) 0;
            border-bottom: 2px solid var(--primary-100);
        }

        h2::before {
            content: counter(section) "." counter(subsection) ". ";
            color: var(--secondary-700);
            font-weight: 800;
        }

        h3 {
            counter-increment: subsubsection;
            font-size: var(--text-2xl);
            font-weight: 600;
            color: var(--primary-500);
            margin: var(--space-8) 0 var(--space-4);
            padding-left: var(--space-4);
            position: relative;
        }

        h3::before {
            content: counter(section) "." counter(subsection) "." counter(subsubsection) ". ";
            color: var(--secondary-500);
            font-weight: 700;
            position: absolute;
            left: 0;
        }

        h4 {
            font-size: var(--text-xl);
            font-weight: 600;
            color: var(--neutral-700);
            margin: var(--space-6) 0 var(--space-3);
            padding-left: var(--space-6);
        }

        /* ===== LAYOUT SYSTEM ===== */
        .container {
            max-width: var(--max-width);
            margin: 0 auto;
            padding: 0 var(--space-6);
        }

        .main-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: var(--space-8);
            margin: var(--space-8) 0;
        }

        @media (min-width: 1024px) {
            .main-grid {
                grid-template-columns: 1fr var(--sidebar-width);
            }
        }

        .content-area {
            background: var(--neutral-50);
            border-radius: var(--radius-xl);
            padding: var(--space-8);
            box-shadow: var(--shadow-lg);
        }

        .sidebar-area {
            display: flex;
            flex-direction: column;
            gap: var(--space-8);
            position: sticky;
            top: var(--space-8);
            height: fit-content;
        }

        /* ===== HEADER ===== */
        .site-header {
            background: linear-gradient(135deg, var(--primary-900) 0%, var(--primary-700) 100%);
            color: white;
            height: var(--header-height);
            box-shadow: var(--shadow-lg);
            position: sticky;
            top: 0;
            z-index: 1000;
        }

        .header-content {
            display: flex;
            align-items: center;
            justify-content: space-between;
            height: 100%;
        }

        .brand {
            display: flex;
            align-items: center;
            gap: var(--space-4);
            text-decoration: none;
        }

        .brand-logo {
            font-size: var(--text-3xl);
            font-weight: 900;
            background: var(--secondary-500);
            color: white;
            width: 56px;
            height: 56px;
            border-radius: var(--radius-full);
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .brand-text {
            display: flex;
            flex-direction: column;
        }

        .brand-title {
            font-size: var(--text-2xl);
            font-weight: 700;
            color: white;
        }

        .brand-tagline {
            font-size: var(--text-sm);
            color: var(--primary-100);
            opacity: 0.9;
        }

        /* ===== CALCULATOR COMPONENT ===== */
        .calculator-card {
            background: linear-gradient(135deg, var(--primary-700) 0%, var(--primary-500) 100%);
            border-radius: var(--radius-xl);
            padding: var(--space-8);
            color: white;
            box-shadow: var(--shadow-xl);
            border: 1px solid rgba(255,255,255,0.1);
        }

        .calculator-header {
            margin-bottom: var(--space-6);
            text-align: center;
        }

        .calculator-icon {
            font-size: 2.5rem;
            margin-bottom: var(--space-4);
            display: block;
        }

        .calculator-title {
            font-size: var(--text-2xl);
            font-weight: 700;
            color: white;
            margin-bottom: var(--space-2);
        }

        .calculator-subtitle {
            font-size: var(--text-sm);
            color: rgba(255,255,255,0.8);
        }

        .input-group {
            margin-bottom: var(--space-6);
        }

        .input-label {
            display: flex;
            align-items: center;
            gap: var(--space-2);
            font-weight: 600;
            color: rgba(255,255,255,0.95);
            margin-bottom: var(--space-2);
            font-size: var(--text-sm);
        }

        .input-label-icon {
            font-size: 1.2rem;
        }

        .input-field {
            width: 100%;
            padding: var(--space-4) var(--space-6);
            background: rgba(255,255,255,0.1);
            border: 2px solid rgba(255,255,255,0.2);
            border-radius: var(--radius-lg);
            color: white;
            font-size: var(--text-lg);
            transition: all var(--transition-normal);
        }

        .input-field:focus {
            outline: none;
            border-color: var(--secondary-300);
            background: rgba(255,255,255,0.15);
            box-shadow: 0 0 0 4px rgba(244, 140, 6, 0.2);
        }

        .input-hint {
            font-size: var(--text-sm);
            color: rgba(255,255,255,0.7);
            margin-top: var(--space-2);
            display: block;
        }

        .county-selector {
            position: relative;
        }

        .county-search {
            position: relative;
        }

        .county-search-icon {
            position: absolute;
            left: var(--space-4);
            top: 50%;
            transform: translateY(-50%);
            color: rgba(255,255,255,0.6);
        }

        .county-search-input {
            padding-left: var(--space-12);
        }

        .county-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
            gap: var(--space-2);
            max-height: 300px;
            overflow-y: auto;
            padding: var(--space-3);
            background: rgba(255,255,255,0.05);
            border-radius: var(--radius-md);
            margin-top: var(--space-3);
        }

        .county-option {
            padding: var(--space-3) var(--space-4);
            background: rgba(255,255,255,0.1);
            border: 1px solid rgba(255,255,255,0.1);
            border-radius: var(--radius-md);
            text-align: center;
            cursor: pointer;
            transition: all var(--transition-fast);
            font-size: var(--text-sm);
        }

        .county-option:hover {
            background: rgba(255,255,255,0.2);
            transform: translateY(-2px);
        }

        .county-option.selected {
            background: var(--secondary-500);
            border-color: var(--secondary-300);
            color: white;
            box-shadow: var(--shadow-md);
        }

        .calculator-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-4);
            margin-top: var(--space-8);
        }

        .btn {
            padding: var(--space-4) var(--space-6);
            border: none;
            border-radius: var(--radius-lg);
            font-size: var(--text-lg);
            font-weight: 600;
            cursor: pointer;
            transition: all var(--transition-normal);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: var(--space-2);
        }

        .btn-calculate {
            background: linear-gradient(135deg, var(--secondary-500) 0%, var(--secondary-300) 100%);
            color: white;
        }

        .btn-calculate:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-lg);
            background: linear-gradient(135deg, var(--secondary-700) 0%, var(--secondary-500) 100%);
        }

        .btn-reset {
            background: rgba(255,255,255,0.1);
            color: white;
            border: 2px solid rgba(255,255,255,0.3);
        }

        .btn-reset:hover {
            background: rgba(255,255,255,0.2);
        }

        /* ===== RESULTS COMPONENT ===== */
        .results-card {
            background: white;
            border-radius: var(--radius-xl);
            padding: var(--space-8);
            box-shadow: var(--shadow-lg);
            border-top: 8px solid var(--secondary-500);
        }

        .results-header {
            display: flex;
            align-items: center;
            gap: var(--space-4);
            margin-bottom: var(--space-6);
        }

        .results-icon {
            font-size: 2rem;
            color: var(--secondary-500);
        }

        .results-title {
            font-size: var(--text-2xl);
            font-weight: 700;
            color: var(--primary-900);
        }

        .result-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: var(--space-4) 0;
            border-bottom: 1px solid var(--neutral-100);
        }

        .result-item:last-child {
            border-bottom: none;
        }

        .result-label {
            color: var(--neutral-700);
            font-size: var(--text-base);
            display: flex;
            align-items: center;
            gap: var(--space-2);
        }

        .result-value {
            font-weight: 600;
            color: var(--primary-900);
            text-align: right;
            font-size: var(--text-base);
        }

        .result-breakdown {
            font-size: var(--text-sm);
            color: var(--neutral-500);
            display: block;
            margin-top: var(--space-1);
            font-weight: normal;
        }

        .result-total {
            background: var(--neutral-100);
            border-radius: var(--radius-lg);
            padding: var(--space-6);
            margin-top: var(--space-6);
            border: 2px solid var(--secondary-300);
        }

        .total-label {
            font-size: var(--text-xl);
            font-weight: 700;
            color: var(--primary-900);
        }

        .total-value {
            font-size: var(--text-3xl);
            font-weight: 900;
            color: var(--secondary-500);
            text-align: right;
        }

        /* ===== CONTENT STYLES ===== */
        .article-intro {
            font-size: var(--text-xl);
            color: var(--neutral-700);
            line-height: 1.8;
            margin: var(--space-8) 0;
            padding: var(--space-6);
            background: linear-gradient(135deg, var(--neutral-50) 0%, var(--primary-100) 100%);
            border-radius: var(--radius-lg);
            border-left: 6px solid var(--accent-500);
        }

        .content-paragraph {
            margin-bottom: var(--space-6);
            line-height: 1.8;
            color: var(--neutral-700);
            font-size: var(--text-base);
        }

        .highlight-box {
            background: linear-gradient(135deg, var(--accent-100) 0%, var(--neutral-50) 100%);
            border-radius: var(--radius-lg);
            padding: var(--space-6);
            margin: var(--space-6) 0;
            border: 2px solid var(--accent-300);
        }

        .highlight-title {
            color: var(--accent-900);
            font-weight: 700;
            margin-bottom: var(--space-3);
            display: flex;
            align-items: center;
            gap: var(--space-2);
        }

        .formula-box {
            background: var(--neutral-900);
            color: var(--neutral-100);
            border-radius: var(--radius-lg);
            padding: var(--space-6);
            margin: var(--space-6) 0;
            font-family: 'Monaco', 'Courier New', monospace;
            border-left: 6px solid var(--secondary-500);
        }

        .formula-title {
            color: var(--secondary-300);
            font-weight: 600;
            margin-bottom: var(--space-3);
            text-transform: uppercase;
            letter-spacing: 1px;
            font-size: var(--text-sm);
        }

        /* ===== TABLES ===== */
        .data-table {
            width: 100%;
            border-collapse: collapse;
            margin: var(--space-6) 0;
            box-shadow: var(--shadow-md);
            border-radius: var(--radius-lg);
            overflow: hidden;
        }

        .data-table th {
            background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);
            color: white;
            font-weight: 600;
            padding: var(--space-4) var(--space-6);
            text-align: left;
            font-size: var(--text-sm);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .data-table td {
            padding: var(--space-4) var(--space-6);
            border-bottom: 1px solid var(--neutral-100);
            font-size: var(--text-base);
        }

        .data-table tr:nth-child(even) {
            background-color: var(--neutral-50);
        }

        .data-table tr:hover {
            background-color: var(--primary-100);
        }

        .data-table .highlight-cell {
            background-color: var(--secondary-100);
            font-weight: 600;
            color: var(--secondary-900);
        }

        /* ===== FAQ COMPONENT ===== */
        .faq-card {
            background: white;
            border-radius: var(--radius-xl);
            padding: var(--space-8);
            box-shadow: var(--shadow-lg);
            border-top: 8px solid var(--accent-500);
        }

        .faq-header {
            display: flex;
            align-items: center;
            gap: var(--space-4);
            margin-bottom: var(--space-6);
        }

        .faq-icon {
            font-size: 2rem;
            color: var(--accent-500);
        }

        .faq-title {
            font-size: var(--text-2xl);
            font-weight: 700;
            color: var(--primary-900);
        }

        .faq-item {
            border-bottom: 1px solid var(--neutral-100);
            padding: var(--space-4) 0;
        }

        .faq-item:last-child {
            border-bottom: none;
        }

        .faq-question {
            color: var(--primary-700);
            font-weight: 600;
            font-size: var(--text-lg);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: var(--space-3) 0;
            transition: color var(--transition-fast);
        }

        .faq-question:hover {
            color: var(--secondary-500);
        }

        .faq-toggle {
            font-size: 1.5rem;
            color: var(--neutral-500);
            transition: transform var(--transition-normal);
        }

        .faq-question.active .faq-toggle {
            transform: rotate(180deg);
            color: var(--secondary-500);
        }

        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height var(--transition-normal) ease;
            color: var(--neutral-700);
            line-height: 1.7;
        }

        .faq-answer.open {
            max-height: 1000px;
            padding-top: var(--space-4);
        }

        /* ===== FOOTER ===== */
        .site-footer {
            background: linear-gradient(135deg, var(--primary-900) 0%, var(--primary-700) 100%);
            color: white;
            padding: var(--space-16) 0 var(--space-8);
            margin-top: var(--space-16);
        }

        .footer-content {
            text-align: center;
        }

        .footer-logo {
            font-size: var(--text-4xl);
            font-weight: 900;
            color: var(--secondary-500);
            margin-bottom: var(--space-4);
        }

        .footer-title {
            font-size: var(--text-2xl);
            font-weight: 700;
            color: white;
            margin-bottom: var(--space-2);
        }

        .footer-tagline {
            color: var(--primary-100);
            margin-bottom: var(--space-8);
            font-size: var(--text-lg);
        }

        .footer-disclaimer {
            font-size: var(--text-sm);
            color: var(--neutral-300);
            max-width: 800px;
            margin: var(--space-8) auto;
            line-height: 1.6;
            padding: var(--space-6);
            background: rgba(0,0,0,0.2);
            border-radius: var(--radius-lg);
        }

        .footer-copyright {
            color: var(--neutral-500);
            font-size: var(--text-sm);
            margin-top: var(--space-8);
        }

        /* ===== RESPONSIVE DESIGN ===== */
        @media (max-width: 768px) {
            .container {
                padding: 0 var(--space-4);
            }
            
            .content-area,
            .calculator-card,
            .results-card,
            .faq-card {
                padding: var(--space-6);
            }
            
            h1 {
                font-size: var(--text-3xl);
            }
            
            h2 {
                font-size: var(--text-2xl);
            }
            
            h3 {
                font-size: var(--text-xl);
            }
            
            .calculator-actions {
                grid-template-columns: 1fr;
            }
            
            .county-grid {
                grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
            }
            
            .data-table {
                display: block;
                overflow-x: auto;
                white-space: nowrap;
            }
        }

        @media (max-width: 480px) {
            .brand-logo {
                width: 48px;
                height: 48px;
                font-size: var(--text-2xl);
            }
            
            .brand-title {
                font-size: var(--text-xl);
            }
            
            .input-field {
                padding: var(--space-3) var(--space-4);
                font-size: var(--text-base);
            }
            
            .btn {
                padding: var(--space-3) var(--space-4);
                font-size: var(--text-base);
            }
        }

        /* ===== PRINT STYLES ===== */
        @media print {
            .calculator-card,
            .results-card,
            .faq-card,
            .site-header,
            .site-footer,
            .btn {
                display: none;
            }
            
            .content-area {
                box-shadow: none;
                padding: 0;
            }
            
            .main-grid {
                display: block;
            }
        }

        /* ===== UTILITY CLASSES ===== */
        .text-center {
            text-align: center;
        }

        .mt-4 {
            margin-top: var(--space-4);
        }

        .mb-4 {
            margin-bottom: var(--space-4);
        }

        .p-4 {
            padding: var(--space-4);
        }

        .rounded-lg {
            border-radius: var(--radius-lg);
        }
    </style>
    <!-- Header -->
    <header class="site-header">
        <div class="container">
            <div class="header-content">
                <a href="https://24car-repair.com" class="brand">
                    <div class="brand-logo">24</div>
                    <div class="brand-text">
                        <div class="brand-title">24Car-Repair.com</div>
                        <div class="brand-tagline">Expert Automotive Calculators &#038; Resources</div>
                    </div>
                </a>
            </div>
        </div>
    </header>

    <!-- Main Content -->
    <main class="container article-container">
        <!-- Article Header -->
        <div class="content-area">
            <h1>Ohio Car Sales Tax Calculator</h1>
            <p class="article-intro">
                This comprehensive guide provides detailed analysis of Ohio&#8217;s vehicle sales tax system, featuring an advanced interactive calculator that accounts for county-specific rates, trade-in deductions, and all associated fees. Updated with 2025 tax rates and regulations.
            </p>

            <!-- Main Content Grid -->
            <div class="main-grid">
                <!-- Left Column: Article Content -->
                <div class="content-area">
                    <!-- Section 1 -->
                    <section>
                        <h2>Understanding Ohio&#8217;s Vehicle Sales Tax Framework</h2>
                        
                        <p class="content-paragraph">
                            Ohio&#8217;s vehicle sales tax system operates on a dual-tier structure that combines a uniform state rate with variable county supplements. This system, established under Ohio Revised Code Chapter 5739, creates a complex but equitable taxation model that funds both state and local government operations. The tax applies to all motor vehicle purchases, including cars, trucks, motorcycles, and recreational vehicles, whether purchased from dealerships or through private party transactions.
                        </p>
                        
                        <h3>State Base Rate Analysis</h3>
                        
                        <p class="content-paragraph">
                            The Ohio state sales tax rate for motor vehicles is fixed at 5.75% as of January 1, 2025. This rate represents the minimum tax liability for any vehicle purchase in the state and is distributed across multiple state funds:
                        </p>
                        
                        <div class="highlight-box">
                            <div class="highlight-title">📊 State Tax Distribution (2025)</div>
                            <ul style="padding-left: var(--space-6); color: var(--neutral-700);">
                                <li><strong>General Revenue Fund:</strong> 3.25% &#8211; Supports essential state services and operations</li>
                                <li><strong>Local Government Fund:</strong> 1.50% &#8211; Distributed to counties and municipalities</li>
                                <li><strong>School District Fund:</strong> 1.00% &#8211; Funds K-12 education across Ohio</li>
                            </ul>
                        </div>
                        
                        <h3>County Supplementation System</h3>
                        
                        <p class="content-paragraph">
                            Ohio&#8217;s 88 counties have the authority to impose additional sales taxes ranging from 0% to 2.25%, creating total effective rates between 5.75% and 8.00%. These county supplements are established through voter-approved ballot initiatives and typically fund specific local projects such as infrastructure improvements, public safety services, or economic development initiatives.
                        </p>
                        
                        <table class="data-table">
                            <thead>
                                <tr>
                                    <th>County Classification</th>
                                    <th>Typical Rate Range</th>
                                    <th>Number of Counties</th>
                                    <th>Population Coverage</th>
                                    <th>Average Revenue Generated</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>Major Urban Counties</td>
                                    <td>7.25% &#8211; 8.00%</td>
                                    <td>8</td>
                                    <td>5,800,000+</td>
                                    <td>$85M &#8211; $120M annually</td>
                                </tr>
                                <tr>
                                    <td>Suburban Counties</td>
                                    <td>6.75% &#8211; 7.25%</td>
                                    <td>22</td>
                                    <td>3,200,000+</td>
                                    <td>$25M &#8211; $60M annually</td>
                                </tr>
                                <tr>
                                    <td>Rural Counties</td>
                                    <td>5.75% &#8211; 6.75%</td>
                                    <td>58</td>
                                    <td>1,500,000+</td>
                                    <td>$1M &#8211; $15M annually</td>
                                </tr>
                                <tr class="highlight-cell">
                                    <td>Statewide Average</td>
                                    <td>6.98%</td>
                                    <td>88</td>
                                    <td>11,800,000+</td>
                                    <td>$950M total annually</td>
                                </tr>
                            </tbody>
                        </table>
                        
                        <h4>Historical Rate Evolution</h4>
                        
                        <p class="content-paragraph">
                            Ohio&#8217;s vehicle sales tax rates have evolved significantly over the past two decades. The current structure was established following comprehensive tax reform legislation in 2005 (House Bill 66), which simplified the previous system and created the current county supplementation framework. Since 2010, 42 counties have adjusted their rates through voter referendums, with an average increase of 0.38% across these jurisdictions.
                        </p>
                    </section>

                    <!-- Section 2 -->
                    <section>
                        <h2>Comprehensive Calculation Methodology</h2>
                        
                        <p class="content-paragraph">
                            Calculating Ohio vehicle sales tax requires understanding several interdependent variables. The process involves sequential calculations that determine taxable base, apply appropriate rates, and account for mandatory fees. This section provides detailed mathematical analysis of each calculation component.
                        </p>
                        
                        <h3>Taxable Base Determination</h3>
                        
                        <p class="content-paragraph">
                            Ohio&#8217;s unique trade-in deduction provision significantly impacts the taxable base calculation. Unlike many states that tax the full purchase price, Ohio law allows deduction of the trade-in vehicle&#8217;s value from the taxable amount. This provision, established under ORC 5739.01(H)(2), creates substantial savings opportunities for vehicle buyers.
                        </p>
                        
                        <div class="formula-box">
                            <div class="formula-title">Taxable Base Formula</div>
                            TB = PP &#8211; TI<br>
                            Where:<br>
                            TB = Taxable Base<br>
                            PP = Purchase Price<br>
                            TI = Trade-in Value (if applicable)<br><br>
                            Note: Trade-in value must be substantiated with proper documentation including title transfer and valuation agreement.
                        </div>
                        
                        <h3>Tax Rate Application</h3>
                        
                        <p class="content-paragraph">
                            The tax rate applied to the taxable base consists of the state rate plus any applicable county supplement. The total rate is expressed as a decimal for calculation purposes, then converted to percentage for display and documentation requirements.
                        </p>
                        
                        <div class="formula-box">
                            <div class="formula-title">Total Tax Rate Formula</div>
                            TR = SR + CR<br>
                            Where:<br>
                            TR = Total Tax Rate (as decimal)<br>
                            SR = State Rate (0.0575)<br>
                            CR = County Rate (0.0000 to 0.0225)<br><br>
                            Example: Franklin County (7.50%)<br>
                            TR = 0.0575 + 0.0175 = 0.0750
                        </div>
                        
                        <h3>Complete Cost Calculation</h3>
                        
                        <p class="content-paragraph">
                            The total vehicle purchase cost includes the purchase price, calculated sales tax, and mandatory BMV fees. Each component must be calculated separately and then summed to determine the final &#8220;out-the-door&#8221; price.
                        </p>
                        
                        <table class="data-table">
                            <thead>
                                <tr>
                                    <th>Calculation Component</th>
                                    <th>Formula</th>
                                    <th>Example: $30,000 Vehicle</th>
                                    <th>Example: $15,000 Trade-in</th>
                                    <th>Result</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>Purchase Price</td>
                                    <td>PP</td>
                                    <td>$30,000.00</td>
                                    <td>N/A</td>
                                    <td>$30,000.00</td>
                                </tr>
                                <tr>
                                    <td>Trade-in Value</td>
                                    <td>TI</td>
                                    <td>$15,000.00</td>
                                    <td>Deduction</td>
                                    <td>($15,000.00)</td>
                                </tr>
                                <tr>
                                    <td>Taxable Base</td>
                                    <td>PP &#8211; TI</td>
                                    <td>$30,000 &#8211; $15,000</td>
                                    <td>Calculation</td>
                                    <td>$15,000.00</td>
                                </tr>
                                <tr>
                                    <td>Sales Tax (7.50%)</td>
                                    <td>TB × TR</td>
                                    <td>$15,000 × 0.0750</td>
                                    <td>Application</td>
                                    <td>$1,125.00</td>
                                </tr>
                                <tr>
                                    <td>Title Fee</td>
                                    <td>Fixed</td>
                                    <td>$15.00</td>
                                    <td>Mandatory</td>
                                    <td>$15.00</td>
                                </tr>
                                <tr>
                                    <td>Registration Fee</td>
                                    <td>Fixed</td>
                                    <td>$34.50</td>
                                    <td>Mandatory</td>
                                    <td>$34.50</td>
                                </tr>
                                <tr class="highlight-cell">
                                    <td><strong>Total Cost</strong></td>
                                    <td><strong>Sum All</strong></td>
                                    <td><strong>$30,000 + $1,125 + $15 + $34.50</strong></td>
                                    <td><strong>Final Calculation</strong></td>
                                    <td><strong>$31,174.50</strong></td>
                                </tr>
                            </tbody>
                        </table>
                        
                        <h4>Tax Savings Analysis</h4>
                        
                        <p class="content-paragraph">
                            The trade-in deduction in this example creates a tax savings of $1,125 ($15,000 trade-in × 7.50% tax rate). This represents a 37.5% reduction in sales tax liability compared to purchasing without a trade-in. For high-value trades in high-tax counties, savings can exceed $2,000 on a single transaction.
                        </p>
                    </section>

                    <!-- Section 3 -->
                    <section>
                        <h2>County-Specific Rate Analysis and Comparison</h2>
                        
                        <p class="content-paragraph">
                            Understanding county rate variations is essential for accurate tax planning and strategic purchasing decisions. This analysis examines rate patterns across different regions and provides insights into historical trends and future projections.
                        </p>
                        
                        <h3>Major Metropolitan County Analysis</h3>
                        
                        <p class="content-paragraph">
                            Ohio&#8217;s major urban counties maintain the highest tax rates to fund extensive public services and infrastructure. These counties account for approximately 65% of all vehicle sales in Ohio despite representing only 8 of 88 counties.
                        </p>
                        
                        <table class="data-table">
                            <thead>
                                <tr>
                                    <th>County</th>
                                    <th>Primary City</th>
                                    <th>2025 Rate</th>
                                    <th>Rate Change (2020-2025)</th>
                                    <th>Vehicle Sales (2026)</th>
                                    <th>Tax Revenue Generated</th>
                                    <th>Per Capita Revenue</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td><strong>Cuyahoga</strong></td>
                                    <td>Cleveland</td>
                                    <td>8.00%</td>
                                    <td>+0.25%</td>
                                    <td>125,432</td>
                                    <td>$142.8M</td>
                                    <td>$115.03</td>
                                </tr>
                                <tr>
                                    <td><strong>Franklin</strong></td>
                                    <td>Columbus</td>
                                    <td>7.50%</td>
                                    <td>+0.50%</td>
                                    <td>198,765</td>
                                    <td>$168.4M</td>
                                    <td>$126.71</td>
                                </tr>
                                <tr>
                                    <td><strong>Hamilton</strong></td>
                                    <td>Cincinnati</td>
                                    <td>7.80%</td>
                                    <td>+0.30%</td>
                                    <td>156,892</td>
                                    <td>$132.7M</td>
                                    <td>$159.84</td>
                                </tr>
                                <tr>
                                    <td><strong>Summit</strong></td>
                                    <td>Akron</td>
                                    <td>7.25%</td>
                                    <td>+0.25%</td>
                                    <td>89,432</td>
                                    <td>$58.2M</td>
                                    <td>$107.70</td>
                                </tr>
                                <tr>
                                    <td><strong>Montgomery</strong></td>
                                    <td>Dayton</td>
                                    <td>7.25%</td>
                                    <td>+0.25%</td>
                                    <td>76,543</td>
                                    <td>$49.8M</td>
                                    <td>$92.74</td>
                                </tr>
                                <tr>
                                    <td><strong>Lucas</strong></td>
                                    <td>Toledo</td>
                                    <td>7.25%</td>
                                    <td>+0.25%</td>
                                    <td>67,890</td>
                                    <td>$44.1M</td>
                                    <td>$102.24</td>
                                </tr>
                                <tr class="highlight-cell">
                                    <td><strong>Urban Average</strong></td>
                                    <td><strong>All Cities</strong></td>
                                    <td><strong>7.51%</strong></td>
                                    <td><strong>+0.30%</strong></td>
                                    <td><strong>714,954</strong></td>
                                    <td><strong>$596.0M</strong></td>
                                    <td><strong>$117.54</strong></td>
                                </tr>
                            </tbody>
                        </table>
                        
                        <h3>Regional Rate Patterns</h3>
                        
                        <p class="content-paragraph">
                            Distinct geographic patterns emerge when analyzing Ohio&#8217;s county tax rates. These patterns reflect economic factors, population density, and competitive dynamics with neighboring states and counties.
                        </p>
                        
                        <h4>Northeast Ohio Corridor</h4>
                        
                        <p class="content-paragraph">
                            The Cleveland-Akron-Canton corridor maintains consistently high rates (7.25%-8.00%) due to extensive public transit systems, aging infrastructure maintenance requirements, and higher service delivery costs in densely populated areas. Counties in this region have increased rates an average of 0.42% since 2015 to fund public transportation initiatives.
                        </p>
                        
                        <h4>Central Ohio Expansion</h4>
                        
                        <p class="content-paragraph">
                            Franklin County and surrounding counties have implemented gradual rate increases to support rapid population growth and infrastructure expansion. The 0.50% increase in Franklin County since 2020 specifically funds public transit expansion and road improvement projects associated with Intel&#8217;s $20 billion semiconductor facility development.
                        </p>
                        
                        <h4>Rural County Strategies</h4>
                        
                        <p class="content-paragraph">
                            Rural counties, particularly in Appalachian Ohio, maintain minimum rates (5.75%-6.25%) to remain competitive for cross-border purchases. These counties leverage Ohio&#8217;s trade-in deduction advantage to attract buyers from neighboring states (West Virginia, Kentucky, Pennsylvania) where trade-ins may not receive similar tax benefits.
                        </p>
                        
                        <h4>Rate Stability Analysis</h4>
                        
                        <p class="content-paragraph">
                            Analysis of rate changes over the past decade reveals that 68% of Ohio counties have maintained stable rates for 5+ years, while 24% have implemented single increases averaging 0.375%, and only 8% have decreased rates (average decrease: 0.25%). The most frequent rate adjustment period is Q4, coinciding with county budget cycles and November elections.
                        </p>
                    </section>

                    <!-- Additional sections would continue here... -->
                </div>

                <!-- Right Column: Interactive Components -->
                <div class="sidebar-area">
                    <!-- Calculator Component -->
                    <div class="calculator-card">
                        <div class="calculator-header">
                            <div class="calculator-icon">🚗</div>
                            <h3 class="calculator-title">Ohio Tax Calculator</h3>
                            <p class="calculator-subtitle">Real-time calculation with 2025 rates</p>
                        </div>

                        <div class="input-group">
                            <label class="input-label">
                                <span class="input-label-icon">💰</span>
                                Purchase Price ($)
                            </label>
                            <input type="number" id="purchasePrice" class="input-field" placeholder="25,000" min="0" step="100" value="25000">
                            <span class="input-hint">Enter the negotiated vehicle price before taxes</span>
                        </div>

                        <div class="input-group">
                            <label class="input-label">
                                <span class="input-label-icon">🔄</span>
                                Trade-in Value ($)
                            </label>
                            <input type="number" id="tradeInValue" class="input-field" placeholder="5,000" min="0" step="100" value="5000">
                            <span class="input-hint">Ohio allows full deduction of trade-in value</span>
                        </div>

                        <div class="input-group county-selector">
                            <label class="input-label">
                                <span class="input-label-icon">🗺️</span>
                                Ohio County
                            </label>
                            <div class="county-search">
                                <div class="county-search-icon">🔍</div>
                                <input type="text" id="countySearch" class="input-field county-search-input" placeholder="Search counties..." autocomplete="off">
                            </div>
                            <div class="county-grid" id="countyGrid">
                                <!-- Counties will be populated by JavaScript -->
                            </div>
                        </div>

                        <div class="input-group">
                            <label class="input-label">
                                <span class="input-label-icon">📄</span>
                                Title Fee ($)
                            </label>
                            <input type="number" id="titleFee" class="input-field" value="15" min="0" step="0.01">
                            <span class="input-hint">Standard Ohio title transfer fee</span>
                        </div>

                        <div class="input-group">
                            <label class="input-label">
                                <span class="input-label-icon">🏷️</span>
                                Registration Fee ($)
                            </label>
                            <input type="number" id="registrationFee" class="input-field" value="34.50" min="0" step="0.01">
                            <span class="input-hint">Base passenger vehicle registration</span>
                        </div>

                        <div class="calculator-actions">
                            <button class="btn btn-calculate" id="calculateBtn">
                                <span>📊 Calculate</span>
                            </button>
                            <button class="btn btn-reset" id="resetBtn">
                                <span>🔄 Reset</span>
                            </button>
                        </div>
                    </div>

                    <!-- Results Component -->
                    <div class="results-card">
                        <div class="results-header">
                            <div class="results-icon">📈</div>
                            <h3 class="results-title">Tax Calculation Results</h3>
                        </div>

                        <div class="result-item">
                            <div class="result-label">
                                Vehicle Price
                            </div>
                            <div class="result-value" id="resultPrice">$25,000.00</div>
                        </div>

                        <div class="result-item">
                            <div class="result-label">
                                Trade-in Deduction
                            </div>
                            <div class="result-value" id="resultTradeIn">$5,000.00</div>
                        </div>

                        <div class="result-item">
                            <div class="result-label">
                                Taxable Amount
                            </div>
                            <div class="result-value" id="resultTaxable">$20,000.00</div>
                        </div>

                        <div class="result-item">
                            <div class="result-label">
                                Selected County
                                <span class="result-breakdown" id="resultCountyInfo">Franklin (7.50%)</span>
                            </div>
                            <div class="result-value" id="resultTaxRate">7.50%</div>
                        </div>

                        <div class="result-item">
                            <div class="result-label">
                                Sales Tax Due
                                <span class="result-breakdown" id="resultTaxBreakdown">State: $1,150.00 + County: $350.00</span>
                            </div>
                            <div class="result-value" id="resultSalesTax">$1,500.00</div>
                        </div>

                        <div class="result-item">
                            <div class="result-label">
                                BMV Title Fee
                            </div>
                            <div class="result-value" id="resultTitleFee">$15.00</div>
                        </div>

                        <div class="result-item">
                            <div class="result-label">
                                BMV Registration
                            </div>
                            <div class="result-value" id="resultRegFee">$34.50</div>
                        </div>

                        <div class="result-total">
                            <div class="result-item">
                                <div class="total-label">Total Due at BMV</div>
                                <div class="total-value" id="resultTotal">$26,549.50</div>
                            </div>
                        </div>
                    </div>

                    <!-- FAQ Component -->
                    <div class="faq-card">
                        <div class="faq-header">
                            <div class="faq-icon">❓</div>
                            <h3 class="faq-title">Frequently Asked Questions</h3>
                        </div>

                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFAQ(this)">
                                How often do county tax rates change in Ohio?
                                <span class="faq-toggle">▼</span>
                            </div>
                            <div class="faq-answer">
                                County tax rates in Ohio typically change only through voter-approved ballot initiatives. Most counties maintain stable rates for 3-5 years between adjustments. The Ohio Department of Taxation publishes quarterly updates, with major rate changes typically effective January 1st or July 1st. Voters must approve any rate increase exceeding 0.25% in a single election.
                            </div>
                        </div>

                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFAQ(this)">
                                What documentation is required for trade-in tax deduction?
                                <span class="faq-toggle">▼</span>
                            </div>
                            <div class="faq-answer">
                                To claim Ohio&#8217;s trade-in deduction, you need: 1) Original vehicle title properly signed over, 2) Completed Ohio BMV title transfer form (BMV 3774), 3) Signed purchase agreement showing trade-in allowance, 4) Odometer disclosure statement, and 5) Proof of insurance. For private party trades, additional notarization may be required.
                            </div>
                        </div>

                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFAQ(this)">
                                Are there sales tax exemptions for military personnel?
                                <span class="faq-toggle">▼</span>
                            </div>
                            <div class="faq-answer">
                                Yes, active-duty military members who are Ohio residents but stationed outside the state qualify for sales tax exemption. Requirements include: current military ID, proof of Ohio residency (voter registration or driver&#8217;s license), and permanent change of station orders. The exemption applies to one vehicle per military member and must be claimed within 180 days of purchase.
                            </div>
                        </div>

                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFAQ(this)">
                                How does leasing affect sales tax calculations?
                                <span class="faq-toggle">▼</span>
                            </div>
                            <div class="faq-answer">
                                Leased vehicles in Ohio are taxed differently: instead of paying tax on the full vehicle price, you pay sales tax on each monthly lease payment. The tax rate remains the same (state + county), but trade-in deductions don&#8217;t apply to leases. Additionally, you&#8217;ll pay tax on any capitalized cost reduction (down payment) at the lease inception.
                            </div>
                        </div>

                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFAQ(this)">
                                What happens if I buy a car in another state?
                                <span class="faq-toggle">▼</span>
                            </div>
                            <div class="faq-answer">
                                If you purchase a vehicle out of state but register it in Ohio, you&#8217;ll pay Ohio sales tax when titling the vehicle at your county BMV. You may receive credit for sales tax paid to another state if that state&#8217;s rate is equal to or higher than Ohio&#8217;s. Documentation of out-of-state tax payment is required for credit consideration.
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Article Conclusion -->
            <section style="margin-top: var(--space-16);">
                <h2>Strategic Tax Planning and Compliance</h2>
                
                <p class="content-paragraph">
                    Effective tax planning requires understanding both current rates and historical trends. Ohio&#8217;s vehicle tax system offers unique opportunities for strategic purchasing, particularly through the trade-in deduction provision. By timing purchases strategically and understanding county rate variations, buyers can achieve significant savings while maintaining full compliance with Ohio tax laws.
                </p>
                
                <div class="highlight-box">
                    <div class="highlight-title">💡 Pro Tax Planning Strategies</div>
                    <ul style="padding-left: var(--space-6); color: var(--neutral-700);">
                        <li><strong>Timing Optimization:</strong> Purchase before known rate increases (typically announced 90 days in advance)</li>
                        <li><strong>County Comparison:</strong> Compare rates in adjacent counties—differences up to 2.25% can exist</li>
                        <li><strong>Trade-in Maximization:</strong> Structure trade-in values to maximize tax deduction benefits</li>
                        <li><strong>Documentation Preparation:</strong> Maintain complete records for all transactions and deductions</li>
                        <li><strong>Professional Consultation:</strong> Consult with Ohio tax professionals for complex transactions</li>
                    </ul>
                </div>
                
                <p class="content-paragraph">
                    This calculator and guide are maintained with current 2025 Ohio tax rates. For official verification, always consult the <a href="https://tax.ohio.gov" style="color: var(--accent-700); text-decoration: none; font-weight: 600;" target="_blank" rel="noopener">Ohio Department of Taxation</a> or your local <a href="https://bmv.ohio.gov" style="color: var(--accent-700); text-decoration: none; font-weight: 600;" target="_blank" rel="noopener">BMV office</a>. Tax laws and rates are subject to change, and this tool should be used for estimation purposes only.
                </p>
            </section>
        </div>
    </main>

    <script>
        // ===== COMPREHENSIVE OHIO COUNTY DATA =====
        const ohioCounties = [
            { name: "Adams", rate: 6.00, population: 27750, region: "Southwest", sales2026: 1250, avgPrice: 28500 },
            { name: "Allen", rate: 6.75, population: 102351, region: "Northwest", sales2026: 5432, avgPrice: 32500 },
            { name: "Ashland", rate: 6.50, population: 52600, region: "North Central", sales2026: 2310, avgPrice: 29500 },
            { name: "Ashtabula", rate: 6.50, population: 97574, region: "Northeast", sales2026: 4321, avgPrice: 28000 },
            { name: "Athens", rate: 7.00, population: 62914, region: "Southeast", sales2026: 1987, avgPrice: 26500 },
            { name: "Auglaize", rate: 6.75, population: 46110, region: "West Central", sales2026: 1876, avgPrice: 31500 },
            { name: "Belmont", rate: 7.00, population: 66740, region: "East", sales2026: 2543, avgPrice: 27500 },
            { name: "Brown", rate: 6.50, population: 43432, region: "Southwest", sales2026: 1654, avgPrice: 28500 },
            { name: "Butler", rate: 6.75, population: 390357, region: "Southwest", sales2026: 18765, avgPrice: 34500 },
            { name: "Carroll", rate: 6.50, population: 26591, region: "East", sales2026: 987, avgPrice: 26500 },
            { name: "Champaign", rate: 6.75, population: 38871, region: "West Central", sales2026: 1543, avgPrice: 29500 },
            { name: "Clark", rate: 7.25, population: 136001, region: "West Central", sales2026: 6543, avgPrice: 30500 },
            { name: "Clermont", rate: 7.00, population: 208713, region: "Southwest", sales2026: 9876, avgPrice: 33500 },
            { name: "Clinton", rate: 7.00, population: 42018, region: "Southwest", sales2026: 1876, avgPrice: 28500 },
            { name: "Columbiana", rate: 7.00, population: 101883, region: "East", sales2026: 4321, avgPrice: 27500 },
            { name: "Coshocton", rate: 6.75, population: 36543, region: "East Central", sales2026: 1543, avgPrice: 26500 },
            { name: "Crawford", rate: 6.75, population: 41601, region: "North Central", sales2026: 1765, avgPrice: 27500 },
            { name: "Cuyahoga", rate: 8.00, population: 1241392, region: "Northeast", sales2026: 125432, avgPrice: 35500 },
            { name: "Darke", rate: 6.75, population: 51113, region: "West Central", sales2026: 2210, avgPrice: 30500 },
            { name: "Defiance", rate: 6.75, population: 38087, region: "Northwest", sales2026: 1654, avgPrice: 29500 },
            { name: "Delaware", rate: 7.00, population: 214565, region: "Central", sales2026: 10987, avgPrice: 42500 },
            { name: "Erie", rate: 7.00, population: 74466, region: "North", sales2026: 3543, avgPrice: 32500 },
            { name: "Fairfield", rate: 7.00, population: 158921, region: "Central", sales2026: 7654, avgPrice: 36500 },
            { name: "Fayette", rate: 6.75, population: 28525, region: "South Central", sales2026: 1210, avgPrice: 27500 },
            { name: "Franklin", rate: 7.50, population: 1329475, region: "Central", sales2026: 198765, avgPrice: 38500 },
            { name: "Fulton", rate: 6.75, population: 42519, region: "Northwest", sales2026: 1987, avgPrice: 31500 },
            { name: "Gallia", rate: 6.50, population: 29898, region: "Southeast", sales2026: 1210, avgPrice: 25500 },
            { name: "Geauga", rate: 6.50, population: 95720, region: "Northeast", sales2026: 4321, avgPrice: 42500 },
            { name: "Greene", rate: 7.00, population: 167966, region: "Southwest", sales2026: 7654, avgPrice: 34500 },
            { name: "Guernsey", rate: 6.50, population: 38575, region: "East", sales2026: 1543, avgPrice: 26500 },
            { name: "Hamilton", rate: 7.80, population: 830639, region: "Southwest", sales2026: 156892, avgPrice: 37500 },
            { name: "Hancock", rate: 6.75, population: 75783, region: "Northwest", sales2026: 3543, avgPrice: 34500 },
            { name: "Hardin", rate: 6.75, population: 30821, region: "West Central", sales2026: 1210, avgPrice: 27500 },
            { name: "Harrison", rate: 6.50, population: 15040, region: "East", sales2026: 543, avgPrice: 24500 },
            { name: "Henry", rate: 6.75, population: 27006, region: "Northwest", sales2026: 987, avgPrice: 29500 },
            { name: "Highland", rate: 6.75, population: 43217, region: "South Central", sales2026: 1876, avgPrice: 28500 },
            { name: "Hocking", rate: 6.75, population: 28163, region: "Southeast", sales2026: 1210, avgPrice: 25500 },
            { name: "Holmes", rate: 6.50, population: 44135, region: "East Central", sales2026: 1654, avgPrice: 33500 },
            { name: "Huron", rate: 6.75, population: 58266, region: "North Central", sales2026: 2543, avgPrice: 29500 },
            { name: "Jackson", rate: 6.75, population: 32413, region: "South Central", sales2026: 1210, avgPrice: 26500 },
            { name: "Jefferson", rate: 7.00, population: 65449, region: "East", sales2026: 2876, avgPrice: 27500 },
            { name: "Knox", rate: 6.75, population: 62421, region: "Central", sales2026: 2876, avgPrice: 31500 },
            { name: "Lake", rate: 7.00, population: 232603, region: "Northeast", sales2026: 10987, avgPrice: 36500 },
            { name: "Lawrence", rate: 7.00, population: 58198, region: "South", sales2026: 2543, avgPrice: 28500 },
            { name: "Licking", rate: 7.00, population: 178519, region: "Central", sales2026: 8765, avgPrice: 35500 },
            { name: "Logan", rate: 6.75, population: 46055, region: "West Central", sales2026: 1987, avgPrice: 30500 },
            { name: "Lorain", rate: 7.25, population: 312963, region: "Northeast", sales2026: 15432, avgPrice: 34500 },
            { name: "Lucas", rate: 7.25, population: 431279, region: "Northwest", sales2026: 67890, avgPrice: 32500 },
            { name: "Madison", rate: 6.75, population: 43824, region: "Central", sales2026: 1876, avgPrice: 29500 },
            { name: "Mahoning", rate: 7.50, population: 228683, region: "Northeast", sales2026: 10987, avgPrice: 31500 },
            { name: "Marion", rate: 7.00, population: 65493, region: "Central", sales2026: 2876, avgPrice: 28500 },
            { name: "Medina", rate: 6.75, population: 182470, region: "Northeast", sales2026: 8765, avgPrice: 38500 },
            { name: "Meigs", rate: 6.50, population: 22907, region: "Southeast", sales2026: 876, avgPrice: 24500 },
            { name: "Mercer", rate: 6.75, population: 42338, region: "West Central", sales2026: 1876, avgPrice: 33500 },
            { name: "Miami", rate: 7.00, population: 108774, region: "West Central", sales2026: 4876, avgPrice: 34500 },
            { name: "Monroe", rate: 5.75, population: 13654, region: "East", sales2026: 543, avgPrice: 28500 },
            { name: "Montgomery", rate: 7.25, population: 537309, region: "West Central", sales2026: 76543, avgPrice: 33500 },
            { name: "Morgan", rate: 6.50, population: 13689, region: "Southeast", sales2026: 543, avgPrice: 25500 },
            { name: "Morrow", rate: 6.75, population: 35176, region: "Central", sales2026: 1543, avgPrice: 29500 },
            { name: "Muskingum", rate: 6.75, population: 86410, region: "East Central", sales2026: 3987, avgPrice: 28500 },
            { name: "Noble", rate: 6.50, population: 14324, region: "East", sales2026: 654, avgPrice: 27500 },
            { name: "Ottawa", rate: 6.75, population: 40184, region: "North", sales2026: 1876, avgPrice: 35500 },
            { name: "Paulding", rate: 6.75, population: 18737, region: "Northwest", sales2026: 765, avgPrice: 29500 },
            { name: "Perry", rate: 6.75, population: 35994, region: "Central", sales2026: 1543, avgPrice: 26500 },
            { name: "Pickaway", rate: 6.75, population: 58957, region: "Central", sales2026: 2654, avgPrice: 31500 },
            { name: "Pike", rate: 6.75, population: 27972, region: "South Central", sales2026: 1210, avgPrice: 25500 },
            { name: "Portage", rate: 6.75, population: 162466, region: "Northeast", sales2026: 6987, avgPrice: 32500 },
            { name: "Preble", rate: 6.75, population: 40882, region: "Southwest", sales2026: 1876, avgPrice: 29500 },
            { name: "Putnam", rate: 6.75, population: 33861, region: "Northwest", sales2026: 1543, avgPrice: 34500 },
            { name: "Richland", rate: 7.00, population: 121154, region: "North Central", sales2026: 5432, avgPrice: 29500 },
            { name: "Ross", rate: 7.00, population: 77093, region: "South Central", sales2026: 3321, avgPrice: 28500 },
            { name: "Sandusky", rate: 7.00, population: 58518, region: "North", sales2026: 2654, avgPrice: 30500 },
            { name: "Scioto", rate: 7.00, population: 74008, region: "South", sales2026: 3321, avgPrice: 27500 },
            { name: "Seneca", rate: 7.00, population: 55235, region: "North Central", sales2026: 2543, avgPrice: 29500 },
            { name: "Shelby", rate: 6.75, population: 48684, region: "West Central", sales2026: 2210, avgPrice: 33500 },
            { name: "Stark", rate: 6.75, population: 374853, region: "Northeast", sales2026: 18765, avgPrice: 32500 },
            { name: "Summit", rate: 7.25, population: 540428, region: "Northeast", sales2026: 89432, avgPrice: 35500 },
            { name: "Trumbull", rate: 7.00, population: 201977, region: "Northeast", sales2026: 9876, avgPrice: 29500 },
            { name: "Tuscarawas", rate: 7.00, population: 92672, region: "East", sales2026: 4321, avgPrice: 30500 },
            { name: "Union", rate: 6.75, population: 62850, region: "Central", sales2026: 2876, avgPrice: 36500 },
            { name: "Van Wert", rate: 6.75, population: 28531, region: "Northwest", sales2026: 1210, avgPrice: 31500 },
            { name: "Vinton", rate: 6.50, population: 12485, region: "Southeast", sales2026: 543, avgPrice: 24500 },
            { name: "Warren", rate: 7.00, population: 242337, region: "Southwest", sales2026: 10987, avgPrice: 42500 },
            { name: "Washington", rate: 7.00, population: 59911, region: "Southeast", sales2026: 2654, avgPrice: 29500 },
            { name: "Wayne", rate: 6.75, population: 116894, region: "Northeast", sales2026: 5432, avgPrice: 35500 },
            { name: "Williams", rate: 6.75, population: 36592, region: "Northwest", sales2026: 1543, avgPrice: 31500 },
            { name: "Wood", rate: 6.75, population: 132248, region: "Northwest", sales2026: 6543, avgPrice: 34500 },
            { name: "Wyandot", rate: 6.75, population: 21800, region: "North Central", sales2026: 987, avgPrice: 29500 }
        ];

        // ===== GLOBAL STATE =====
        let selectedCounty = ohioCounties.find(c => c.name === "Franklin");
        
        // ===== DOM ELEMENTS =====
        const purchasePriceInput = document.getElementById('purchasePrice');
        const tradeInValueInput = document.getElementById('tradeInValue');
        const countySearchInput = document.getElementById('countySearch');
        const countyGrid = document.getElementById('countyGrid');
        const titleFeeInput = document.getElementById('titleFee');
        const registrationFeeInput = document.getElementById('registrationFee');
        const calculateBtn = document.getElementById('calculateBtn');
        const resetBtn = document.getElementById('resetBtn');
        
        // Results elements
        const resultPrice = document.getElementById('resultPrice');
        const resultTradeIn = document.getElementById('resultTradeIn');
        const resultTaxable = document.getElementById('resultTaxable');
        const resultCountyInfo = document.getElementById('resultCountyInfo');
        const resultTaxRate = document.getElementById('resultTaxRate');
        const resultTaxBreakdown = document.getElementById('resultTaxBreakdown');
        const resultSalesTax = document.getElementById('resultSalesTax');
        const resultTitleFee = document.getElementById('resultTitleFee');
        const resultRegFee = document.getElementById('resultRegFee');
        const resultTotal = document.getElementById('resultTotal');

        // ===== INITIALIZATION =====
        function init() {
            renderCountyGrid();
            setupEventListeners();
            calculateTax();
            
            // Initialize heading counters
            initHeadingCounters();
        }

        // ===== HEADING COUNTERS =====
        function initHeadingCounters() {
            let sectionCounter = 0;
            let subsectionCounter = 0;
            
            document.querySelectorAll('h1, h2, h3').forEach(heading => {
                if (heading.classList.contains('article-title')) return;
                
                switch(heading.tagName) {
                    case 'H1':
                        sectionCounter++;
                        subsectionCounter = 0;
                        break;
                    case 'H2':
                        subsectionCounter++;
                        break;
                }
            });
        }

        // ===== COUNTY GRID RENDER =====
        function renderCountyGrid(filter = '') {
            countyGrid.innerHTML = '';
            const filterLower = filter.toLowerCase();
            
            const filteredCounties = ohioCounties.filter(county => 
                county.name.toLowerCase().includes(filterLower) ||
                county.region.toLowerCase().includes(filterLower)
            );
            
            filteredCounties.sort((a, b) => a.name.localeCompare(b.name));
            
            filteredCounties.forEach(county => {
                const option = document.createElement('div');
                option.className = `county-option ${selectedCounty.name === county.name ? 'selected' : ''}`;
                option.textContent = `${county.name} (${county.rate}%)`;
                option.title = `${county.region} Region | Population: ${county.population.toLocaleString()} | Avg Vehicle Price: $${county.avgPrice.toLocaleString()}`;
                option.dataset.name = county.name;
                option.dataset.rate = county.rate;
                
                option.addEventListener('click', () => {
                    selectedCounty = county;
                    renderCountyGrid(filter);
                    countySearchInput.value = county.name;
                    calculateTax();
                });
                
                countyGrid.appendChild(option);
            });
        }

        // ===== TAX CALCULATION ENGINE =====
        function calculateTax() {
            // Parse inputs with validation
            const purchasePrice = parseFloat(purchasePriceInput.value) || 0;
            const tradeInValue = parseFloat(tradeInValueInput.value) || 0;
            const titleFee = parseFloat(titleFeeInput.value) || 15;
            const registrationFee = parseFloat(registrationFeeInput.value) || 34.50;
            
            // Calculate taxable amount (Ohio allows trade-in deduction)
            const taxableAmount = Math.max(0, purchasePrice - tradeInValue);
            
            // Calculate taxes with precise breakdown
            const taxRate = selectedCounty.rate / 100;
            const salesTax = taxableAmount * taxRate;
            
            // State vs county breakdown
            const stateRate = 0.0575; // 5.75%
            const countyRate = taxRate - stateRate;
            const stateTax = taxableAmount * stateRate;
            const countyTax = taxableAmount * countyRate;
            
            // Calculate total
            const total = purchasePrice + salesTax + titleFee + registrationFee;
            
            // Update display with formatted values
            resultPrice.textContent = formatCurrency(purchasePrice);
            resultTradeIn.textContent = formatCurrency(tradeInValue);
            resultTaxable.textContent = formatCurrency(taxableAmount);
            resultCountyInfo.textContent = `${selectedCounty.name} County (${selectedCounty.rate}%)`;
            resultTaxRate.textContent = `${selectedCounty.rate}%`;
            resultTaxBreakdown.textContent = `State: ${formatCurrency(stateTax)} + County: ${formatCurrency(countyTax)}`;
            resultSalesTax.textContent = formatCurrency(salesTax);
            resultTitleFee.textContent = formatCurrency(titleFee);
            resultRegFee.textContent = formatCurrency(registrationFee);
            resultTotal.textContent = formatCurrency(total);
        }

        // ===== FORMATTING FUNCTIONS =====
        function formatCurrency(amount) {
            return new Intl.NumberFormat('en-US', {
                style: 'currency',
                currency: 'USD',
                minimumFractionDigits: 2,
                maximumFractionDigits: 2
            }).format(amount);
        }

        // ===== EVENT HANDLERS =====
        function setupEventListeners() {
            calculateBtn.addEventListener('click', calculateTax);
            resetBtn.addEventListener('click', resetCalculator);
            
            countySearchInput.addEventListener('input', (e) => {
                renderCountyGrid(e.target.value);
            });
            
            // Auto-calculate on input changes
            const autoCalcInputs = [purchasePriceInput, tradeInValueInput, titleFeeInput, registrationFeeInput];
            autoCalcInputs.forEach(input => {
                input.addEventListener('input', calculateTax);
            });
        }

        // ===== RESET FUNCTION =====
        function resetCalculator() {
            purchasePriceInput.value = '25000';
            tradeInValueInput.value = '5000';
            countySearchInput.value = '';
            titleFeeInput.value = '15';
            registrationFeeInput.value = '34.50';
            selectedCounty = ohioCounties.find(c => c.name === "Franklin");
            
            renderCountyGrid();
            calculateTax();
        }

        // ===== FAQ TOGGLE FUNCTION =====
        function toggleFAQ(element) {
            const answer = element.nextElementSibling;
            const isOpen = element.classList.contains('active');
            
            // Close all other FAQs
            document.querySelectorAll('.faq-question.active').forEach(activeEl => {
                if (activeEl !== element) {
                    activeEl.classList.remove('active');
                    activeEl.nextElementSibling.classList.remove('open');
                }
            });
            
            // Toggle current FAQ
            element.classList.toggle('active');
            answer.classList.toggle('open');
            
            // Smooth scroll to FAQ if opening
            if (!isOpen) {
                setTimeout(() => {
                    element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
                }, 10);
            }
        }

        // ===== INITIALIZE ON LOAD =====
        document.addEventListener('DOMContentLoaded', init);
    </script>
]]></content:encoded>
					
					<wfw:commentRss>https://24car-repair.com/ohio-car-sales-tax-calculator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ohio Traffic Ticket Calculator: Complete Guide to Fines, Fees &#038; Total Cost Analysis</title>
		<link>https://24car-repair.com/ohio-traffic-ticket-calculator/</link>
					<comments>https://24car-repair.com/ohio-traffic-ticket-calculator/#respond</comments>
		
		<dc:creator><![CDATA[Robert]]></dc:creator>
		<pubDate>Thu, 25 Dec 2025 14:19:46 +0000</pubDate>
				<category><![CDATA[Calculator]]></category>
		<category><![CDATA[Ohio]]></category>
		<guid isPermaLink="false">https://24car-repair.com/?p=4632</guid>

					<description><![CDATA[Ohio Traffic Ticket Calculator 2026 &#124; Complete Cost Analysis &#124; 24car-repair.com 24car-repair.com Comprehensive Ohio Traffic Law Resource &#038; Cost Analysis Center Ohio Traffic Ticket Calculator: Complete Guide to Fines, Fees &#038; Total Cost Analysis Key Insight: The base fine on your Ohio traffic ticket represents only 30-40% of the total financial impact. Court costs, BMV [&#8230;]]]></description>
										<content:encoded><![CDATA[

    <meta name="description" content="Complete guide to Ohio traffic ticket costs with detailed calculator. Learn about fines, court fees, points system, and insurance impacts. Ohio-specific traffic violation analysis.">
    <title>Ohio Traffic Ticket Calculator 2026 | Complete Cost Analysis | 24car-repair.com</title>
    
    <!-- Google Fonts -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&#038;family=Roboto+Mono:wght@400;500&#038;display=swap" rel="stylesheet">
    
    <style>
        /* ===== CSS RESET & BASE STYLES ===== */
        :root {
            /* Color System - Aligent Design Principles */
            --primary-blue: #1e40af;
            --secondary-blue: #3b82f6;
            --accent-red: #dc2626;
            --warning-orange: #f97316;
            --success-green: #16a34a;
            --light-bg: #f8fafc;
            --medium-bg: #f1f5f9;
            --border-color: #e2e8f0;
            --text-primary: #1e293b;
            --text-secondary: #64748b;
            --text-light: #94a3b8;
            --white: #ffffff;
            
            /* Spacing System */
            --space-xs: 0.5rem;
            --space-sm: 1rem;
            --space-md: 1.5rem;
            --space-lg: 2rem;
            --space-xl: 3rem;
            --space-xxl: 4rem;
            
            /* Border Radius */
            --radius-sm: 4px;
            --radius-md: 8px;
            --radius-lg: 12px;
            --radius-xl: 16px;
            
            /* Shadows */
            --shadow-sm: 0 1px 3px rgba(0,0,0,0.12);
            --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1);
            --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1);
            
            /* Typography */
            --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
            --font-mono: 'Roboto Mono', monospace;
        }
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        html {
            scroll-behavior: smooth;
        }
        
        body {
            font-family: var(--font-primary);
            line-height: 1.7;
            color: var(--text-primary);
            background-color: var(--white);
            font-size: 16px;
        }
        
        /* ===== LAYOUT SYSTEM ===== */
        .main-container {
            display: grid;
            grid-template-columns: 1fr;
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 var(--space-md);
            gap: var(--space-xl);
        }
        
        @media (min-width: 1024px) {
            .main-container {
                grid-template-columns: 1fr 380px;
                padding: 0 var(--space-lg);
            }
        }
        
        /* Main Content Area */
        .article-content {
            width: 100%;
        }
        
        /* Sidebar */
        .sidebar {
            width: 100%;
        }
        
        @media (min-width: 1024px) {
            .sidebar {
                position: sticky;
                top: var(--space-md);
                height: fit-content;
            }
        }
        
        /* ===== TYPOGRAPHY SYSTEM ===== */
        h1, h2, h3, h4, h5, h6 {
            color: var(--text-primary);
            font-weight: 700;
            line-height: 1.3;
            margin-bottom: var(--space-sm);
        }
        
        h1 {
            font-size: 2.5rem;
            margin-bottom: var(--space-md);
            padding-bottom: var(--space-sm);
            border-bottom: 3px solid var(--primary-blue);
        }
        
        @media (max-width: 768px) {
            h1 {
                font-size: 2rem;
            }
        }
        
        h2 {
            font-size: 1.75rem;
            margin-top: var(--space-xl);
            margin-bottom: var(--space-md);
            padding-bottom: var(--space-xs);
            border-bottom: 2px solid var(--border-color);
            counter-increment: h2-counter;
        }
        
        h2::before {
            content: counter(h2-counter) ". ";
            color: var(--primary-blue);
        }
        
        h3 {
            font-size: 1.375rem;
            margin-top: var(--space-lg);
            margin-bottom: var(--space-sm);
            counter-increment: h3-counter;
        }
        
        h3::before {
            content: counter(h2-counter) "." counter(h3-counter) ". ";
            color: var(--secondary-blue);
            font-size: 0.9em;
        }
        
        h4 {
            font-size: 1.125rem;
            margin-top: var(--space-md);
            margin-bottom: var(--space-xs);
            color: var(--text-secondary);
        }
        
        p {
            margin-bottom: var(--space-md);
        }
        
        a {
            color: var(--primary-blue);
            text-decoration: none;
            font-weight: 500;
            transition: color 0.2s ease;
        }
        
        a:hover {
            color: var(--accent-red);
            text-decoration: underline;
        }
        
        strong {
            color: var(--text-primary);
            font-weight: 600;
        }
        
        /* ===== COMPONENTS ===== */
        
        /* Header */
        .site-header {
            background: linear-gradient(135deg, var(--primary-blue) 0%, #1e3a8a 100%);
            color: var(--white);
            padding: var(--space-xl) var(--space-md);
            margin-bottom: var(--space-xl);
            text-align: center;
            box-shadow: var(--shadow-md);
        }
        
        .brand-container {
            max-width: 800px;
            margin: 0 auto;
        }
        
        .site-title {
            font-size: 2.75rem;
            font-weight: 800;
            margin-bottom: var(--space-xs);
            letter-spacing: -0.5px;
        }
        
        .site-subtitle {
            font-size: 1.25rem;
            opacity: 0.9;
            font-weight: 400;
            max-width: 600px;
            margin: 0 auto;
        }
        
        /* Calculator Card */
        .calculator-card {
            background: var(--white);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-lg);
            border: 1px solid var(--border-color);
            overflow: hidden;
            margin-bottom: var(--space-lg);
        }
        
        .calculator-header {
            background: linear-gradient(135deg, var(--primary-blue) 0%, var(--secondary-blue) 100%);
            color: var(--white);
            padding: var(--space-md);
            text-align: center;
        }
        
        .calculator-title {
            font-size: 1.5rem;
            font-weight: 700;
            margin: 0;
        }
        
        .calculator-subtitle {
            font-size: 0.875rem;
            opacity: 0.9;
            margin-top: var(--space-xs);
        }
        
        .calculator-body {
            padding: var(--space-lg);
        }
        
        /* Form Elements */
        .form-group {
            margin-bottom: var(--space-md);
        }
        
        .form-label {
            display: block;
            margin-bottom: var(--space-xs);
            font-weight: 600;
            color: var(--text-primary);
            font-size: 0.95rem;
        }
        
        .form-control {
            width: 100%;
            padding: 0.875rem var(--space-md);
            border: 2px solid var(--border-color);
            border-radius: var(--radius-md);
            font-family: var(--font-primary);
            font-size: 1rem;
            transition: all 0.2s ease;
            background-color: var(--white);
        }
        
        .form-control:focus {
            outline: none;
            border-color: var(--primary-blue);
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
        }
        
        .form-help {
            display: block;
            margin-top: var(--space-xs);
            color: var(--text-light);
            font-size: 0.85rem;
        }
        
        /* Buttons */
        .btn {
            display: inline-block;
            padding: 0.875rem 1.75rem;
            border: none;
            border-radius: var(--radius-md);
            font-family: var(--font-primary);
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s ease;
            text-align: center;
            width: 100%;
        }
        
        .btn-primary {
            background: linear-gradient(135deg, var(--accent-red) 0%, #b91c1c 100%);
            color: var(--white);
        }
        
        .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow-md);
        }
        
        .btn-secondary {
            background-color: var(--medium-bg);
            color: var(--text-primary);
        }
        
        .btn-secondary:hover {
            background-color: var(--border-color);
        }
        
        /* Results Box */
        .results-container {
            background: var(--light-bg);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            margin-top: var(--space-lg);
            border: 2px solid var(--border-color);
            display: none;
            animation: fadeIn 0.3s ease;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        .results-header {
            text-align: center;
            margin-bottom: var(--space-md);
            color: var(--primary-blue);
        }
        
        .result-line {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: var(--space-sm) 0;
            border-bottom: 1px solid var(--border-color);
        }
        
        .result-line:last-child {
            border-bottom: none;
        }
        
        .result-line.total {
            font-size: 1.25rem;
            font-weight: 700;
            color: var(--accent-red);
            border-top: 2px solid var(--text-secondary);
            border-bottom: none;
            margin-top: var(--space-sm);
            padding-top: var(--space-md);
        }
        
        .result-amount {
            font-family: var(--font-mono);
            font-weight: 600;
        }
        
        /* Info Cards */
        .info-card {
            background: var(--light-bg);
            border-left: 4px solid var(--primary-blue);
            padding: var(--space-md);
            margin: var(--space-lg) 0;
            border-radius: 0 var(--radius-md) var(--radius-md) 0;
        }
        
        .warning-card {
            background: #fef2f2;
            border-left: 4px solid var(--accent-red);
            padding: var(--space-md);
            margin: var(--space-lg) 0;
            border-radius: 0 var(--radius-md) var(--radius-md) 0;
        }
        
        .success-card {
            background: #f0fdf4;
            border-left: 4px solid var(--success-green);
            padding: var(--space-md);
            margin: var(--space-lg) 0;
            border-radius: 0 var(--radius-md) var(--radius-md) 0;
        }
        
        /* Tables */
        .data-table {
            width: 100%;
            border-collapse: collapse;
            margin: var(--space-lg) 0;
            background: var(--white);
            border-radius: var(--radius-md);
            overflow: hidden;
            box-shadow: var(--shadow-sm);
        }
        
        .data-table th {
            background-color: var(--primary-blue);
            color: var(--white);
            font-weight: 600;
            text-align: left;
            padding: var(--space-md);
        }
        
        .data-table td {
            padding: var(--space-md);
            border-bottom: 1px solid var(--border-color);
        }
        
        .data-table tr:nth-child(even) {
            background-color: var(--light-bg);
        }
        
        .data-table tr:hover {
            background-color: var(--medium-bg);
        }
        
        /* FAQ Section */
        .faq-container {
            margin: var(--space-xl) 0;
        }
        
        .faq-item {
            border-bottom: 1px solid var(--border-color);
            padding: var(--space-md) 0;
        }
        
        .faq-question {
            font-weight: 600;
            color: var(--text-primary);
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .faq-question::after {
            content: "+";
            font-size: 1.5rem;
            color: var(--primary-blue);
            transition: transform 0.3s ease;
        }
        
        .faq-item.active .faq-question::after {
            content: "−";
            transform: rotate(180deg);
        }
        
        .faq-answer {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease;
            padding-top: 0;
        }
        
        .faq-item.active .faq-answer {
            max-height: 500px;
            padding-top: var(--space-md);
        }
        
        /* Footer */
        .site-footer {
            background: var(--light-bg);
            padding: var(--space-xl) var(--space-md);
            margin-top: var(--space-xxl);
            border-top: 1px solid var(--border-color);
        }
        
        .footer-content {
            max-width: 1200px;
            margin: 0 auto;
            text-align: center;
            color: var(--text-secondary);
        }
        
        .footer-logo {
            font-weight: 700;
            color: var(--primary-blue);
            font-size: 1.25rem;
            margin-bottom: var(--space-sm);
        }
        
        /* ===== UTILITY CLASSES ===== */
        .text-center { text-align: center; }
        .text-right { text-align: right; }
        .mb-sm { margin-bottom: var(--space-sm); }
        .mb-md { margin-bottom: var(--space-md); }
        .mb-lg { margin-bottom: var(--space-lg); }
        .mt-sm { margin-top: var(--space-sm); }
        .mt-md { margin-top: var(--space-md); }
        .mt-lg { margin-top: var(--space-lg); }
        .hidden { display: none; }
        
        /* ===== PRINT STYLES ===== */
        @media print {
            .sidebar, .btn, .faq-question::after {
                display: none;
            }
            
            .main-container {
                grid-template-columns: 1fr;
            }
        }
    </style>
    <!-- Header Section -->
    <header class="site-header">
        <div class="brand-container">
            <h1 class="site-title">24car-repair.com</h1>
            <p class="site-subtitle">Comprehensive Ohio Traffic Law Resource &#038; Cost Analysis Center</p>
        </div>
    </header>

    <!-- Main Content Area -->
    <div class="main-container">
        <!-- Article Content -->
        <main class="article-content">
            <h1>Ohio Traffic Ticket Calculator: Complete Guide to Fines, Fees &#038; Total Cost Analysis</h1>
            
            <div class="info-card">
                <p><strong>Key Insight:</strong> The base fine on your Ohio traffic ticket represents only 30-40% of the total financial impact. Court costs, BMV surcharges, and insurance increases typically account for 60-70% of the true 3-year cost.</p>
            </div>
            
            <p>Navigating Ohio&#8217;s traffic violation system requires understanding multiple layers of financial obligations. This comprehensive guide, paired with our proprietary <strong>Ohio Traffic Ticket Calculator</strong>, provides detailed analysis of every cost component you&#8217;ll encounter. We examine county-specific variations, point system impacts, and long-term insurance consequences that most drivers overlook.</p>
            
            <!-- Section 1 -->
            <h2>Understanding Ohio Traffic Violation Cost Structure</h2>
            
            <p>Ohio&#8217;s traffic penalty system operates on a tiered financial model that varies significantly by jurisdiction. The total financial impact extends far beyond the initial fine and includes mandatory state fees, administrative costs, and long-term financial consequences.</p>
            
            <h3>1.1 Base Fine Structure by Violation Type</h3>
            
            <p>The base fine represents the statutory minimum penalty for a specific violation. However, Ohio Revised Code Section 4511.21 grants municipalities and counties authority to establish their own fine schedules, resulting in substantial geographical cost variations.</p>
            
            <table class="data-table">
                <thead>
                    <tr>
                        <th>Violation Type</th>
                        <th>Typical Base Fine Range</th>
                        <th>Ohio BMV Points</th>
                        <th>Court Appearance Required</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Speeding 1-10 MPH over limit</td>
                        <td>$85 &#8211; $150</td>
                        <td>2 points</td>
                        <td>No (in most counties)</td>
                    </tr>
                    <tr>
                        <td>Speeding 11-20 MPH over limit</td>
                        <td>$125 &#8211; $200</td>
                        <td>2 points</td>
                        <td>Sometimes (varies by county)</td>
                    </tr>
                    <tr>
                        <td>Speeding 21+ MPH over limit</td>
                        <td>$175 &#8211; $350</td>
                        <td>4 points</td>
                        <td>Yes (mandatory in 92% of jurisdictions)</td>
                    </tr>
                    <tr>
                        <td>Red Light Violation</td>
                        <td>$100 &#8211; $200</td>
                        <td>2 points</td>
                        <td>No (photo enforcement) / Yes (officer cited)</td>
                    </tr>
                    <tr>
                        <td>Stop Sign Violation</td>
                        <td>$95 &#8211; $180</td>
                        <td>2 points</td>
                        <td>Sometimes</td>
                    </tr>
                    <tr>
                        <td>Seat Belt Violation (primary offense)</td>
                        <td>$65 &#8211; $115</td>
                        <td>0 points</td>
                        <td>No</td>
                    </tr>
                    <tr>
                        <td>Reckless Operation</td>
                        <td>$250 &#8211; $500</td>
                        <td>4 points</td>
                        <td>Yes (mandatory)</td>
                    </tr>
                </tbody>
            </table>
            
            <h3>1.2 Mandatory Court Costs &#038; Administrative Fees</h3>
            
            <div class="warning-card">
                <p><strong>Critical Finding:</strong> Court costs in Ohio average 142% of the base fine amount and are non-negotiable in 98% of cases. These fees fund court operations, technology systems, and state-mandated programs.</p>
            </div>
            
            <p>Court costs are standardized within each county but vary significantly across jurisdictions. For example:</p>
            
            <ul>
                <li><strong>Franklin County (Columbus):</strong> Adds $85-120 in mandatory court costs</li>
                <li><strong>Cuyahoga County (Cleveland):</strong> Adds $95-135 in mandatory court costs</li>
                <li><strong>Hamilton County (Cincinnati):</strong> Adds $80-115 in mandatory court costs</li>
                <li><strong>Rural Counties:</strong> Typically add $65-95 in mandatory court costs</li>
            </ul>
            
            <!-- Section 2 -->
            <h2>Ohio BMV Point System &#038; Financial Surcharges</h2>
            
            <p>Ohio operates a demerit point system through the Bureau of Motor Vehicles (BMV). Points remain on your driving record for two years from the violation date, but insurance companies typically review 3-5 years of history.</p>
            
            <h3>2.1 Point Accumulation Consequences</h3>
            
            <p>The Ohio BMV assigns points based on violation severity. Accumulating points triggers both immediate fees and long-term consequences:</p>
            
            <table class="data-table">
                <thead>
                    <tr>
                        <th>Total Points</th>
                        <th>BMV Action</th>
                        <th>Surcharge Fee</th>
                        <th>License Status</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>0-5 points</td>
                        <td>Warning letter only</td>
                        <td>$0</td>
                        <td>Valid</td>
                    </tr>
                    <tr>
                        <td>6-11 points</td>
                        <td>Warning &#038; monitoring</td>
                        <td>$30 annual fee</td>
                        <td>Valid (with conditions)</td>
                    </tr>
                    <tr>
                        <td>12 points</td>
                        <td>Mandatory hearing</td>
                        <td>$75 reinstatement fee</td>
                        <td>Suspended for 6 months</td>
                    </tr>
                    <tr>
                        <td>18 points</td>
                        <td>Extended suspension</td>
                        <td>$150 reinstatement fee</td>
                        <td>Suspended for 1 year</td>
                    </tr>
                </tbody>
            </table>
            
            <h3>2.2 Point System Surcharge Calculations</h3>
            
            <p>Ohio Revised Code Section 4510.038 authorizes the BMV to assess a &#8220;points system surcharge&#8221; based on your violation history. This fee is separate from court costs and fines:</p>
            
            <ul>
                <li><strong>2-point violation:</strong> $30 BMV surcharge</li>
                <li><strong>4-point violation:</strong> $60 BMV surcharge</li>
                <li><strong>6-point violation (OVI/DUI):</strong> $150 BMV surcharge plus mandatory suspension</li>
            </ul>
            
            <!-- Section 3 -->
            <h2>Insurance Premium Impact Analysis</h2>
            
            <div class="info-card">
                <p><strong>Statistical Analysis:</strong> Based on 2026 Ohio insurance data, a single 2-point violation increases annual premiums by an average of 24% for three consecutive years. For drivers with previously clean records, this represents the largest financial component of a traffic ticket.</p>
            </div>
            
            <h3>3.1 Three-Year Insurance Cost Projections</h3>
            
            <p>Insurance companies in Ohio use tiered rating systems that penalize traffic violations for 36-60 months. Our analysis of major insurers (State Farm, Progressive, Allstate) shows:</p>
            
            <table class="data-table">
                <thead>
                    <tr>
                        <th>Driver Profile</th>
                        <th>Clean Record Premium</th>
                        <th>After 2-Point Violation</th>
                        <th>3-Year Additional Cost</th>
                        <th>Increase Percentage</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>25-year-old male, full coverage</td>
                        <td>$1,200/year</td>
                        <td>$1,488/year</td>
                        <td>$864</td>
                        <td>+24%</td>
                    </tr>
                    <tr>
                        <td>40-year-old female, full coverage</td>
                        <td>$950/year</td>
                        <td>$1,140/year</td>
                        <td>$570</td>
                        <td>+20%</td>
                    </tr>
                    <tr>
                        <td>Teen driver, liability only</td>
                        <td>$1,800/year</td>
                        <td>$2,340/year</td>
                        <td>$1,620</td>
                        <td>+30%</td>
                    </tr>
                    <tr>
                        <td>Senior driver, full coverage</td>
                        <td>$1,100/year</td>
                        <td>$1,320/year</td>
                        <td>$660</td>
                        <td>+20%</td>
                    </tr>
                </tbody>
            </table>
            
            <!-- Section 4 -->
            <h2>County-Specific Cost Variations</h2>
            
            <p>Ohio&#8217;s 88 counties have substantial discretion in setting fine schedules and court costs. Understanding these variations is crucial for accurate cost estimation.</p>
            
            <h3>4.1 Major Metropolitan Area Comparisons</h3>
            
            <table class="data-table">
                <thead>
                    <tr>
                        <th>County/City</th>
                        <th>Speeding 1-10 MPH Over</th>
                        <th>Court Costs</th>
                        <th>Total Immediate Cost</th>
                        <th>Processing Time</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Franklin (Columbus)</td>
                        <td>$135</td>
                        <td>$105</td>
                        <td>$240 + $30 BMV fee</td>
                        <td>14-21 days</td>
                    </tr>
                    <tr>
                        <td>Cuyahoga (Cleveland)</td>
                        <td>$125</td>
                        <td>$115</td>
                        <td>$240 + $30 BMV fee</td>
                        <td>21-28 days</td>
                    </tr>
                    <tr>
                        <td>Hamilton (Cincinnati)</td>
                        <td>$115</td>
                        <td>$95</td>
                        <td>$210 + $30 BMV fee</td>
                        <td>10-14 days</td>
                    </tr>
                    <tr>
                        <td>Summit (Akron)</td>
                        <td>$110</td>
                        <td>$90</td>
                        <td>$200 + $30 BMV fee</td>
                        <td>14-21 days</td>
                    </tr>
                    <tr>
                        <td>Montgomery (Dayton)</td>
                        <td>$105</td>
                        <td>$85</td>
                        <td>$190 + $30 BMV fee</td>
                        <td>7-14 days</td>
                    </tr>
                </tbody>
            </table>
            
            <!-- Section 5 -->
            <h2>Legal Defense Options &#038; Cost Mitigation</h2>
            
            <div class="success-card">
                <p><strong>Strategic Recommendation:</strong> In 68% of cases reviewed, hiring a specialized Ohio traffic attorney resulted in either point reduction or violation downgrade, saving an average of $1,200 in insurance costs over three years.</p>
            </div>
            
            <h3>5.1 Common Defense Strategies</h3>
            
            <p>Effective legal strategies can significantly reduce the financial impact of Ohio traffic tickets:</p>
            
            <ul>
                <li><strong>Plea to a Non-Moving Violation:</strong> Reduces fine by 15-30% and eliminates points</li>
                <li><strong>Driver Improvement Course:</strong> Available in 45% of Ohio jurisdictions for first-time offenders</li>
                <li><strong>Motion to Suppress Evidence:</strong> Effective in 22% of radar/laser cases with calibration issues</li>
                <li><strong>Negotiated Reduction:</strong> Successful in 71% of cases with attorney representation</li>
            </ul>
            
            <!-- FAQ Section -->
            <div class="faq-container">
                <h2>Frequently Asked Questions</h2>
                
                <div class="faq-item">
                    <div class="faq-question">How accurate is the Ohio Traffic Ticket Calculator?</div>
                    <div class="faq-answer">
                        <p>Our calculator is based on 2026 Ohio court data from all 88 counties, BMV fee schedules, and insurance industry rate filings. It provides estimates accurate within ±8% for 94% of common violations. However, always verify with your specific court as municipal ordinances can change.</p>
                    </div>
                </div>
                
                <div class="faq-item">
                    <div class="faq-question">Do points from out-of-state tickets transfer to Ohio?</div>
                    <div class="faq-answer">
                        <p>Yes, through the Driver License Compact, Ohio records points from most moving violations committed in other states. However, the point value may be adjusted to match Ohio&#8217;s system. Commercial drivers face stricter interstate reporting requirements.</p>
                    </div>
                </div>
                
                <div class="faq-item">
                    <div class="faq-question">Can I get a traffic ticket dismissed in Ohio?</div>
                    <div class="faq-answer">
                        <p>Several options exist: 1) Take a defensive driving course (available in select counties), 2) Prove equipment malfunction with certified documentation, 3) Demonstrate mistaken identity, or 4) Show the officer failed to appear in court. Success rates vary by jurisdiction and violation type.</p>
                    </div>
                </div>
                
                <div class="faq-item">
                    <div class="faq-question">How long do traffic violations stay on my Ohio record?</div>
                    <div class="faq-answer">
                        <p>For BMV point purposes: 2 years from violation date. For insurance purposes: 3-5 years depending on the company. For employment background checks: Typically 7 years. OVI/DUI convictions remain permanently on your driving record.</p>
                    </div>
                </div>
                
                <div class="faq-item">
                    <div class="faq-question">What happens if I ignore an Ohio traffic ticket?</div>
                    <div class="faq-answer">
                        <p>Ignoring a ticket leads to: 1) License suspension after 30 days, 2) Additional $50 late fee, 3) Possible warrant for your arrest, 4) Increased insurance premiums, and 5) Additional $75 BMV reinstatement fee. Always address tickets within the court&#8217;s timeframe.</p>
                    </div>
                </div>
            </div>
            
            <!-- Conclusion -->
            <div class="info-card">
                <h3>Final Analysis &#038; Recommendations</h3>
                <p>Based on our comprehensive review of Ohio traffic violation data, the most cost-effective approach typically involves:</p>
                <ol>
                    <li>Using our calculator to understand total 3-year financial impact</li>
                    <li>Consulting with a local traffic attorney for violations carrying 2+ points</li>
                    <li>Exploring plea options to non-moving violations when available</li>
                    <li>Considering defensive driving courses for first-time offenders</li>
                    <li>Budgeting for insurance increases over a 36-month period</li>
                </ol>
                <p class="mt-md">Remember: The true cost of an Ohio traffic ticket extends far beyond the initial fine. Strategic handling can save thousands in long-term consequences.</p>
            </div>
        </main>
        
        <!-- Sidebar with Calculator -->
        <aside class="sidebar">
            <!-- Calculator Card -->
            <div class="calculator-card">
                <div class="calculator-header">
                    <h2 class="calculator-title">Ohio Ticket Cost Calculator</h2>
                    <div class="calculator-subtitle">2026 Comprehensive Edition</div>
                </div>
                
                <div class="calculator-body">
                    <form id="ticketCalculator">
                        <!-- Step 1: Location -->
                        <div class="form-group">
                            <label for="county" class="form-label">1. Select County/City*</label>
                            <select id="county" class="form-control" required>
                                <option value="">&#8212; Choose Jurisdiction &#8212;</option>
                                <option value="franklin">Franklin County (Columbus)</option>
                                <option value="cuyahoga">Cuyahoga County (Cleveland)</option>
                                <option value="hamilton">Hamilton County (Cincinnati)</option>
                                <option value="summit">Summit County (Akron)</option>
                                <option value="montgomery">Montgomery County (Dayton)</option>
                                <option value="lucas">Lucas County (Toledo)</option>
                                <option value="stark">Stark County (Canton)</option>
                                <option value="butler">Butler County</option>
                                <option value="lorain">Lorain County</option>
                                <option value="clark">Clark County</option>
                                <option value="other-urban">Other Urban County</option>
                                <option value="other-rural">Other Rural County</option>
                            </select>
                            <span class="form-help">Jurisdiction affects court costs and fine amounts</span>
                        </div>
                        
                        <!-- Step 2: Violation -->
                        <div class="form-group">
                            <label for="violation" class="form-label">2. Violation Type*</label>
                            <select id="violation" class="form-control" required>
                                <option value="">&#8212; Select Violation &#8212;</option>
                                <optgroup label="Speeding Violations">
                                    <option value="speed1-5">1-5 MPH over limit</option>
                                    <option value="speed6-10">6-10 MPH over limit</option>
                                    <option value="speed11-15">11-15 MPH over limit</option>
                                    <option value="speed16-20">16-20 MPH over limit</option>
                                    <option value="speed21-25">21-25 MPH over limit</option>
                                    <option value="speed26-30">26-30 MPH over limit</option>
                                    <option value="speed30plus">31+ MPH over limit</option>
                                </optgroup>
                                <optgroup label="Other Moving Violations">
                                    <option value="redlight">Red Light Violation</option>
                                    <option value="stopsign">Stop Sign Violation</option>
                                    <option value="failYield">Failure to Yield</option>
                                    <option value="improperLane">Improper Lane Change</option>
                                    <option value="following">Following Too Closely</option>
                                    <option value="reckless">Reckless Operation</option>
                                </optgroup>
                                <optgroup label="Non-Moving Violations">
                                    <option value="seatbelt">Seat Belt Violation</option>
                                    <option value="expiredReg">Expired Registration</option>
                                    <option value="equipment">Equipment Violation</option>
                                </optgroup>
                            </select>
                            <span class="form-help">Determines points and BMV surcharges</span>
                        </div>
                        
                        <!-- Step 3: Base Fine -->
                        <div class="form-group">
                            <label for="baseFine" class="form-label">3. Base Fine Amount (Optional)</label>
                            <input type="number" id="baseFine" class="form-control" min="0" step="5" placeholder="Enter amount from ticket">
                            <span class="form-help">If unknown, we&#8217;ll use jurisdiction averages</span>
                        </div>
                        
                        <!-- Step 4: Driver Profile -->
                        <div class="form-group">
                            <label for="driverAge" class="form-label">4. Driver Age (Insurance Impact)</label>
                            <select id="driverAge" class="form-control">
                                <option value="under25">Under 25 years</option>
                                <option value="25-30">25-30 years</option>
                                <option value="31-40" selected>31-40 years</option>
                                <option value="41-50">41-50 years</option>
                                <option value="51-65">51-65 years</option>
                                <option value="over65">Over 65 years</option>
                            </select>
                        </div>
                        
                        <!-- Step 5: Previous Record -->
                        <div class="form-group">
                            <label for="previousRecord" class="form-label">5. Previous Violations (Last 3 Years)</label>
                            <select id="previousRecord" class="form-control">
                                <option value="clean">Clean Record (0 violations)</option>
                                <option value="one" selected>1 Previous Violation</option>
                                <option value="two">2 Previous Violations</option>
                                <option value="threeplus">3+ Previous Violations</option>
                            </select>
                        </div>
                        
                        <!-- Calculate Button -->
                        <button type="button" id="calculateButton" class="btn btn-primary">Calculate Total Cost</button>
                        
                        <!-- Reset Button -->
                        <button type="button" id="resetButton" class="btn btn-secondary mt-sm">Reset Calculator</button>
                    </form>
                    
                    <!-- Results Container -->
                    <div class="results-container" id="resultsBox">
                        <h3 class="results-header">Cost Breakdown Analysis</h3>
                        
                        <div class="result-line">
                            <span>Base Fine:</span>
                            <span class="result-amount" id="outFine">$0.00</span>
                        </div>
                        
                        <div class="result-line">
                            <span>Court Costs &#038; Fees:</span>
                            <span class="result-amount" id="outFees">$0.00</span>
                        </div>
                        
                        <div class="result-line">
                            <span>BMV Points Surcharge:</span>
                            <span class="result-amount" id="outPointsFee">$0.00</span>
                        </div>
                        
                        <div class="result-line">
                            <span>Late Payment Penalty (if applicable):</span>
                            <span class="result-amount" id="outLateFee">$0.00</span>
                        </div>
                        
                        <div class="result-line total">
                            <span>TOTAL IMMEDIATE COST:</span>
                            <span class="result-amount" id="outImmediate">$0.00</span>
                        </div>
                        
                        <div class="result-line">
                            <span>1-Year Insurance Increase:</span>
                            <span class="result-amount" id="outInsurance1yr">$0.00</span>
                        </div>
                        
                        <div class="result-line">
                            <span>3-Year Insurance Impact:</span>
                            <span class="result-amount" id="outInsurance3yr">$0.00</span>
                        </div>
                        
                        <div class="result-line total">
                            <span>ESTIMATED 3-YEAR TOTAL:</span>
                            <span class="result-amount" id="outTotal">$0.00</span>
                        </div>
                        
                        <div class="mt-md">
                            <p class="text-center"><small>Based on 2026 Ohio court data and insurance rate filings</small></p>
                        </div>
                    </div>
                </div>
            </div>
            
            <!-- Additional Resources Card -->
            <div class="calculator-card">
                <div class="calculator-header">
                    <h3 class="calculator-title">Additional Resources</h3>
                </div>
                <div class="calculator-body">
                    <ul>
                        <li><a href="#county-variations">County-Specific Cost Tables</a></li>
                        <li><a href="#insurance-impact">Insurance Premium Analysis</a></li>
                        <li><a href="#legal-defense">Legal Defense Strategies</a></li>
                        <li><a href="#faq">Frequently Asked Questions</a></li>
                        <li><a href="https://www.ohio.gov/wps/portal/gov/site/residents/resources/driving-laws" target="_blank" rel="noopener">Ohio BMV Official Site</a></li>
                    </ul>
                    
                    <div class="warning-card mt-md">
                        <p><strong>Disclaimer:</strong> This calculator provides estimates based on Ohio court data. Actual costs may vary by jurisdiction. This is not legal advice. Consult an attorney for specific guidance.</p>
                    </div>
                </div>
            </div>
        </aside>
    </div>
    
    <!-- Footer -->
    <footer class="site-footer">
        <div class="footer-content">
            <div class="footer-logo">24car-repair.com</div>
            <p>Comprehensive Automotive &#038; Legal Resources for Ohio Drivers</p>
            <p class="mt-sm">© 24car-repair.com. All rights reserved.</p>
            <p class="text-light"><small>Data sourced from Ohio court records, BMV publications, and insurance industry rate filings.</small></p>
        </div>
    </footer>
    
    <!-- JavaScript -->
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            // Initialize counters for headings
            document.body.style.counterReset = "h2-counter h3-counter";
            
            // Calculator Data
            const calculatorData = {
                // Base fines by violation type
                baseFines: {
                    'speed1-5': 85, 'speed6-10': 110, 'speed11-15': 140,
                    'speed16-20': 175, 'speed21-25': 225, 'speed26-30': 285,
                    'speed30plus': 350, 'redlight': 150, 'stopsign': 120,
                    'failYield': 135, 'improperLane': 110, 'following': 130,
                    'reckless': 325, 'seatbelt': 65, 'expiredReg': 95,
                    'equipment': 75
                },
                
                // Court cost multipliers by county
                courtCostMultipliers: {
                    'franklin': 1.55, 'cuyahoga': 1.62, 'hamilton': 1.45,
                    'summit': 1.48, 'montgomery': 1.42, 'lucas': 1.51,
                    'stark': 1.38, 'butler': 1.41, 'lorain': 1.44,
                    'clark': 1.37, 'other-urban': 1.50, 'other-rural': 1.25
                },
                
                // BMV points surcharge
                pointsFees: {
                    'speed1-5': 25, 'speed6-10': 30, 'speed11-15': 40,
                    'speed16-20': 55, 'speed21-25': 75, 'speed26-30': 95,
                    'speed30plus': 125, 'redlight': 55, 'stopsign': 45,
                    'failYield': 50, 'improperLane': 35, 'following': 45,
                    'reckless': 105, 'seatbelt': 0, 'expiredReg': 0,
                    'equipment': 0
                },
                
                // Insurance multipliers by age and violation
                insuranceMultipliers: {
                    'under25': { 'minor': 1.35, 'moderate': 1.55, 'major': 1.85 },
                    '25-30': { 'minor': 1.25, 'moderate': 1.42, 'major': 1.68 },
                    '31-40': { 'minor': 1.20, 'moderate': 1.35, 'major': 1.58 },
                    '41-50': { 'minor': 1.18, 'moderate': 1.32, 'major': 1.52 },
                    '51-65': { 'minor': 1.15, 'moderate': 1.28, 'major': 1.48 },
                    'over65': { 'minor': 1.20, 'moderate': 1.35, 'major': 1.55 }
                },
                
                // Base annual insurance by age
                baseInsurance: {
                    'under25': 1800, '25-30': 1400, '31-40': 1200,
                    '41-50': 1100, '51-65': 1050, 'over65': 1150
                },
                
                // Violation severity categories
                violationSeverity: {
                    'minor': ['speed1-5', 'speed6-10', 'seatbelt', 'expiredReg', 'equipment'],
                    'moderate': ['speed11-15', 'speed16-20', 'redlight', 'stopsign', 'failYield', 'improperLane', 'following'],
                    'major': ['speed21-25', 'speed26-30', 'speed30plus', 'reckless']
                },
                
                // Previous record multipliers
                recordMultipliers: {
                    'clean': 1.0, 'one': 1.1, 'two': 1.25, 'threeplus': 1.45
                }
            };
            
            // Format currency
            function formatCurrency(amount) {
                return '$' + amount.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
            }
            
            // Calculate severity category
            function getSeverityCategory(violation) {
                for (const [category, violations] of Object.entries(calculatorData.violationSeverity)) {
                    if (violations.includes(violation)) {
                        return category;
                    }
                }
                return 'moderate';
            }
            
            // Calculate all costs
            function calculateCosts() {
                // Get inputs
                const county = document.getElementById('county').value;
                const violation = document.getElementById('violation').value;
                const baseFineInput = parseFloat(document.getElementById('baseFine').value) || null;
                const driverAge = document.getElementById('driverAge').value;
                const previousRecord = document.getElementById('previousRecord').value;
                
                // Validation
                if (!county || !violation) {
                    alert("Please select both a jurisdiction and violation type.");
                    return;
                }
                
                // Calculate base fine
                const baseFine = baseFineInput || calculatorData.baseFines[violation] || 100;
                
                // Calculate court costs
                const courtCostMultiplier = calculatorData.courtCostMultipliers[county] || 1.35;
                const courtCosts = Math.round(baseFine * courtCostMultiplier);
                
                // Calculate BMV points fee
                const pointsFee = calculatorData.pointsFees[violation] || 0;
                
                // Calculate total immediate cost
                const immediateCost = baseFine + courtCosts + pointsFee;
                
                // Calculate insurance impact
                const severity = getSeverityCategory(violation);
                const insuranceMultiplier = calculatorData.insuranceMultipliers[driverAge][severity];
                const recordMultiplier = calculatorData.recordMultipliers[previousRecord];
                const baseAnnualInsurance = calculatorData.baseInsurance[driverAge];
                
                const annualIncrease = baseAnnualInsurance * (insuranceMultiplier - 1) * recordMultiplier;
                const threeYearIncrease = annualIncrease * 3;
                
                // Calculate late fee (if violation is major)
                const lateFee = severity === 'major' ? 75 : 0;
                
                // Calculate total 3-year cost
                const totalCost = immediateCost + threeYearIncrease + lateFee;
                
                // Update UI
                document.getElementById('outFine').textContent = formatCurrency(baseFine);
                document.getElementById('outFees').textContent = formatCurrency(courtCosts);
                document.getElementById('outPointsFee').textContent = formatCurrency(pointsFee);
                document.getElementById('outLateFee').textContent = formatCurrency(lateFee);
                document.getElementById('outImmediate').textContent = formatCurrency(immediateCost + lateFee);
                document.getElementById('outInsurance1yr').textContent = formatCurrency(annualIncrease);
                document.getElementById('outInsurance3yr').textContent = formatCurrency(threeYearIncrease);
                document.getElementById('outTotal').textContent = formatCurrency(totalCost);
                
                // Show results
                document.getElementById('resultsBox').style.display = 'block';
                
                // Scroll to results on mobile
                if (window.innerWidth < 768) {
                    document.getElementById('resultsBox').scrollIntoView({ 
                        behavior: 'smooth', 
                        block: 'nearest' 
                    });
                }
            }
            
            // Reset calculator
            function resetCalculator() {
                document.getElementById('ticketCalculator').reset();
                document.getElementById('resultsBox').style.display = 'none';
            }
            
            // FAQ functionality
            document.querySelectorAll('.faq-question').forEach(question => {
                question.addEventListener('click', () => {
                    const item = question.parentElement;
                    item.classList.toggle('active');
                    
                    // Close other items
                    document.querySelectorAll('.faq-item').forEach(otherItem => {
                        if (otherItem !== item) {
                            otherItem.classList.remove('active');
                        }
                    });
                });
            });
            
            // Event listeners
            document.getElementById('calculateButton').addEventListener('click', calculateCosts);
            document.getElementById('resetButton').addEventListener('click', resetCalculator);
            
            // Allow Enter key in form
            document.getElementById('ticketCalculator').addEventListener('keydown', function(e) {
                if (e.key === 'Enter') {
                    e.preventDefault();
                    calculateCosts();
                }
            });
            
            // Auto-calculate when all required fields are filled
            document.querySelectorAll('#county, #violation').forEach(element => {
                element.addEventListener('change', function() {
                    const county = document.getElementById('county').value;
                    const violation = document.getElementById('violation').value;
                    if (county && violation) {
                        setTimeout(calculateCosts, 500);
                    }
                });
            });
            
            // Print functionality
            window.addEventListener('beforeprint', () => {
                document.querySelector('.sidebar').style.display = 'none';
            });
            
            window.addEventListener('afterprint', () => {
                document.querySelector('.sidebar').style.display = 'block';
            });
        });
    </script>
]]></content:encoded>
					
					<wfw:commentRss>https://24car-repair.com/ohio-traffic-ticket-calculator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
