/* RoadTests — global styles.
   The design keeps layout in inline styles; this file carries only what an inline
   style attribute cannot express: resets, keyframes, hover, media queries, and the
   checked-state rules that let choice controls respond without a round trip. */

body {
    margin: 0;
    color: #0F1B33;
    font-family: 'Public Sans', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
}

a { color: #14387F; }
a:hover { color: #0d2a63; }

input, select, textarea, button { font-family: 'Public Sans', system-ui, sans-serif; }
input[type=range] { accent-color: #14387F; }
input:focus, select:focus, textarea:focus { outline: 2px solid #14387F; outline-offset: 1px; }

@keyframes pulse { 0%, 100% { opacity: 1 } 50% { opacity: .3 } }
@keyframes foundPop {
    0% { transform: scale(.85); opacity: 0 }
    65% { transform: scale(1.02) }
    100% { transform: scale(1); opacity: 1 }
}

details summary::-webkit-details-marker { display: none; }
summary.rt-burger::-webkit-details-marker { display: none; }

/* --- Navigation ------------------------------------------------------------ */

.rt-mobilemenu { display: none; }

@media (max-width: 920px) {
    .rt-desknav { display: none !important; }
    .rt-mobilemenu { display: block !important; }
}

.rt-menuitem:hover { background: #F4F6FA; }
.rt-navlink:hover { color: #14387F; }
.rt-finder:hover { background: #EAF0FA; }

/* --- Hover treatments from the design -------------------------------------- */

.rt-herocard:hover { background: #F4F6FA; }
.rt-heroghost:hover { background: rgba(255, 255, 255, .16); }
.rt-servicecard:hover { border-color: #14387F; box-shadow: 0 12px 32px rgba(20, 56, 127, .08); }
.rt-centrecard:hover { border-color: #14387F; }

/* --- Choice controls -------------------------------------------------------
   Visually identical to the design's buttons, but backed by real inputs so
   selection is instant and the whole set posts on Continue. */

.rt-choice { position: relative; cursor: pointer; }
.rt-choice input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.rt-choice:has(input:checked) { border-color: #14387F !important; }

/* Checkbox tick */
.rt-choice .rt-box { background: #fff; }
.rt-choice:has(input:checked) .rt-box { background: #14387F; }
.rt-choice .rt-tick { opacity: 0; }
.rt-choice:has(input:checked) .rt-tick { opacity: 1; }

/* Radio dot */
.rt-choice .rt-dot { background: transparent; }
.rt-choice:has(input:checked) .rt-dot { background: #14387F; }

/* Tinted fill for the big selection tiles */
.rt-choice.rt-tinted:has(input:checked) { background: #F4F6FA; }

/* --- Primary continue button ----------------------------------------------- */

.rt-continue { background: #B9C1CF; cursor: not-allowed; }
.rt-continue:not(:disabled) { background: #14387F; cursor: pointer; }

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
}
