body.avp-theme { background-color: var(--avp-color-background); background-image: var(--avp-site-background-image, none); background-repeat: var(--avp-site-background-repeat, repeat); background-position: var(--avp-site-background-position, center top); background-size: var(--avp-site-background-size, auto); background-attachment: var(--avp-site-background-attachment, scroll); }
.container { width: min(calc(100% - var(--avp-container-gutter, var(--avp-grid-gap)) - var(--avp-container-gutter, var(--avp-grid-gap))), var(--avp-container)); margin-inline: auto; }
.container--narrow,
.container--wide { max-width: var(--avp-container); }
.container--wide { width: min(calc(100% - var(--avp-container-gutter, var(--avp-grid-gap)) - var(--avp-container-gutter, var(--avp-grid-gap))), var(--avp-container)); }
.container--full-width { box-sizing: border-box; width: 100%; max-width: none; padding-inline: var(--avp-container-gutter, 24px); }
.alignwide {
	width: min(calc(100vw - var(--avp-container-gutter, var(--avp-grid-gap)) - var(--avp-container-gutter, var(--avp-grid-gap))), var(--avp-container));
	max-width: var(--avp-container);
	margin-left: 50%;
	margin-right: 0;
	transform: translateX(-50%);
}
.section { padding-block: var(--avp-section-space); }
.section--light { background: var(--avp-color-surface); }
.section--dark { color: #dbe9fb; background: var(--avp-color-secondary); }
.section--dark h2 { color: #fff; }
.section-heading { max-width: 760px; margin: 0 auto 48px; text-align: center; }
.section-heading > p { color: var(--avp-color-muted); font-size: 1.08rem; }
.eyebrow { display: inline-block; margin-bottom: 16px; color: var(--avp-color-primary); font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow--light { color: #8bd8ff; }
/* The header spacing belongs to the first actual content section, not to the main wrapper. */
.site-main > .section:first-child,
.site-main > .page-title-bar + .section {
	padding-top: var(--avp-content-header-spacing, 0px);
}
.page-title-bar { position: relative; margin: var(--avp-page-title-margin, 0); padding: var(--avp-page-title-padding, clamp(22px, 3vw, 44px) 0); color: var(--avp-page-title-color, var(--avp-h1-color)); text-align: center; background: transparent; }
.page-title-bar__container { position: relative; }
.page-title-bar__content { width: min(100%, var(--avp-container)); margin-inline: auto; }
.page-title-bar h1 { margin: 0; color: var(--avp-page-title-color, var(--avp-h1-color)); font-size: var(--avp-page-title-font-size, var(--avp-h1-size)); line-height: var(--avp-heading-line-height); }
.page-title-bar__description { margin-top: .8rem; color: var(--avp-page-title-description-color, var(--avp-color-muted)); font-size: var(--avp-page-title-description-font-size, 18px); }
.page-title-bar__description > :last-child { margin-bottom: 0; }
.page-title-disabled .page-title-bar { display: none; }
.page-title-align-left .page-title-bar { text-align: left; }
.page-title-align-left .page-title-bar__content { margin-inline: 0 auto; }
.page-title-align-center .page-title-bar { text-align: center; }
.page-title-align-center .page-title-bar__content { margin-inline: auto; }
.page-title-align-right .page-title-bar { text-align: right; }
.page-title-align-right .page-title-bar__content { margin-inline: auto 0; }
.content-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--avp-grid-gap); }
.entry-card { overflow: hidden; padding: var(--avp-card-padding); border: var(--avp-card-border) solid var(--avp-color-border); border-radius: var(--avp-card-radius); background: var(--avp-color-card); box-shadow: var(--avp-shadow); }
.entry-card > a:first-child { display: block; margin: calc(var(--avp-card-padding) * -1) calc(var(--avp-card-padding) * -1) var(--avp-grid-gap); }
.entry-card h2 { font-size: 1.5rem; }
.entry-card h2 a { color: inherit; text-decoration: none; }
.entry-meta { color: var(--avp-color-muted); }
.entry-image { margin: var(--avp-grid-gap) 0; }
.entry-image img { width: 100%; border-radius: var(--avp-card-radius); }

/* Functional page layouts with independent left and right widget areas. */
.avp-content-layout {
	display: grid;
	align-items: start;
	gap: var(--avp-grid-gap);
	min-width: 0;
}
.avp-content-layout--full_width { grid-template-columns: minmax(0, 1fr); }
.avp-content-layout--sidebar_content { grid-template-columns: minmax(0, var(--avp-sidebar-width)) minmax(0, 1fr); }
.avp-content-layout--content_sidebar { grid-template-columns: minmax(0, 1fr) minmax(0, var(--avp-sidebar-width)); }
.avp-content-layout--both_sidebars { grid-template-columns: minmax(0, var(--avp-sidebar-width)) minmax(0, 1fr) minmax(0, var(--avp-sidebar-width)); }
.avp-layout-main,
.site-sidebar { min-width: 0; }
.site-sidebar .widget { margin: 0 0 var(--avp-grid-gap); }
.site-sidebar .widget:last-child { margin-bottom: 0; }
.site-sidebar .widget-title { margin-bottom: .75em; font-size: 1.25rem; }
.site-sidebar__placeholder { padding: 16px; border: 1px dashed var(--avp-color-border); color: var(--avp-color-muted); background: var(--avp-color-surface); }


.avp-scroll-top {
	position: fixed;
	right: clamp(16px, 3vw, 30px);
	bottom: clamp(16px, 3vw, 30px);
	z-index: 9999;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 1px solid color-mix(in srgb, var(--avp-color-primary) 24%, #ffffff);
	border-radius: 999px;
	color: var(--avp-button-text, #ffffff);
	background: linear-gradient(135deg, var(--avp-color-primary), color-mix(in srgb, var(--avp-color-primary) 76%, var(--avp-color-accent, #00b7ff)));
	box-shadow: 0 12px 28px rgba(11, 31, 58, .22), 0 2px 8px rgba(11, 31, 58, .18);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px) scale(.96);
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease, box-shadow .18s ease;
	pointer-events: none;
}

.avp-scroll-top__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.avp-scroll-top:hover {
	transform: translateY(-2px) scale(1);
	box-shadow: 0 16px 34px rgba(11, 31, 58, .28), 0 3px 10px rgba(11, 31, 58, .22);
}

.avp-scroll-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}

.avp-scroll-top.is-visible:hover {
	transform: translateY(-2px) scale(1);
}

.avp-scroll-top:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--avp-color-primary) 35%, #ffffff);
	outline-offset: 3px;
}

/* AVP driving school schema: keep signal yellow label backgrounds, use dark spectrum text for section labels. */
.avpfs-wrap .avpfs-home-section-head > span,
.avpfs-wrap .avpfs-home-final-cta > div > span {
	color: var(--avp-color-primary, #0b1220) !important;
}


.avp-image-viewer {
	max-width: min(94vw, 1200px);
	max-height: 94vh;
	padding: 0;
	border: 0;
	background: transparent;
}

.avp-image-viewer--modal {
	padding: var(--avp-card-padding, 24px);
	border-radius: var(--avp-card-radius, 12px);
	background: var(--avp-color-surface, #fff);
}

.avp-image-viewer::backdrop {
	background: rgba(0, 0, 0, .72);
}

.avp-image-viewer__content {
	display: grid;
	place-items: center;
	max-height: 90vh;
}

.avp-image-viewer__content img {
	display: block;
	width: auto;
	height: auto;
	max-width: 90vw;
	max-height: 86vh;
}

.avp-image-viewer__close {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 999px;
	background: #fff;
	color: #111;
	cursor: pointer;
}
