@charset "UTF-8";
/*
Theme Name: Flash
Theme URI: https://themegrill.com/themes/flash
Author: ThemeGrill
Author URI: https://themegrill.com
Description: Flash is free responsive multipurpose WordPress theme – truly a versatile theme perfect for any type of website you want. Like never before, it provides multiple pre-built demos which can be imported in seconds using ThemeGrill Demo Importer Plugin. The theme fully integrates with Flash Toolkit and SiteOrigin’s Page Builder Plugin that makes theme more user-friendly and easy. Additionally, theme features multiple blog layouts, WooCommerce support, multiple header styles, multiple color options etc.
License: GNU General Public License v3 or later
Version: 1.4.12
Tested up to: 6.8
Requires PHP: 5.6
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: flash
Tags: one-column, two-columns, left-sidebar, right-sidebar, grid-layout, custom-background, custom-colors, custom-menu, custom-logo, featured-images, footer-widgets, full-width-template, theme-options, threaded-comments, translation-ready, blog, e-commerce

Flash is based on Underscores http://underscores.me/, (C) 2012-2016 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Normalize
# Typography
# Elements
# Forms
# Navigation
## Links
## Menus
# Accessibility
# Alignments
# Clearings
# Widgets
# Content
## Posts and pages
## Comments
# Infinite scroll
# Media
## Captions
## Galleries
# ---- VHA ----
# Icônes
# Header — barre haute
# Header — fixe et réduction au défilement
# Barre de progression de lecture
# Bandeau de titre des pages internes
# Contenu éditorial (pages et articles)
# Tableaux dans les articles
# Sommaire des articles
# Listings — grille de cartes (archives, blog, recherche)
# Articles liés
# Pagination des listings
# Accueil — carrousel
# Accueil — présentation et simulateurs
# Accueil — actualités et dossiers
# Page Revue de presse
# Formulaire de contact
# Formulaire de recherche (404, aucun résultat)
# Page 404
# Pied de page
# Media queries (toutes regroupées en fin de fichier)
--------------------------------------------------------------*/
/*--------------------------------------------------------------
theme style
--------------------------------------------------------------*/
/*--------------------------------------------------------------
Normalize
--------------------------------------------------------------*/
:root {
	--primary-color: #21858c;
	--brightness: 80%;
	--lightbrightness: 110%;

	/* VHA — couleurs */
	--vha-cyan-500: #019fe0;
	--vha-cyan-600: #0b7fb0;
	--vha-gray-100: #eee;
	--vha-white: #fff;
	--vha-black: #000;
	--vha-topbar-focus: #003a52;

	/* VHA — espacements */
	--vha-space-2xs: 0.4rem;
	--vha-space-xs: 0.8rem;
	--vha-space-sm: 1.2rem;
	--vha-space-md: 1.8rem;
	--vha-space-lg: 2.4rem;
	--vha-space-xl: 3.2rem;
	--vha-space-2xl: 4.8rem;

	/* VHA — confort de lecture des articles */
	--vha-mesure: 72rem;
	--vha-texte-article: 1.8rem;

	/* VHA — typo */
	--vha-font-sans: 'Jost', sans-serif;
	--vha-text-xs: 1.3rem;
	--vha-text-sm: 1.4rem;
	--vha-text-md: 1.5rem;
	--vha-text-2xl: clamp(2.8rem, 1.6rem + 2.2vw, 4.4rem);

	/* VHA — header et bandeau de titre */
	--vha-topbar-height: 4rem;
	--vha-topbar-height-sm: 3.2rem;
	--vha-logo-width: 18rem;
	--vha-logo-width-sm: 12rem;
	--vha-header-anim: 0.25s;
	--vha-hero-height: 28rem;
	--vha-hero-height-sm: 18rem;

	/* VHA — divers */
	--vha-radius-pill: 999px;
	--vha-container: 123.6rem;
	--vha-z-header: 100;
	--vha-transition: 0.2s ease;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, a,
abbr, acronym, address, big, cite, code, del, dfn,
em, font, ins, kbd, q, s, samp, small, strike,
strong, sub, sup, tt, var, dl, dt, dd, ol, ul,
li, fieldset, form, label, legend, table, caption,
tbody, tfoot, thead, tr, th, td {
	border: 0;
	font-family: inherit;
	font-size: 100%;
	font-style: inherit;
	font-weight: inherit;
	margin: 0;
	outline: 0;
	padding: 0;
	vertical-align: baseline;
	word-break: break-word;
}

html {
	font-size: 62.5%;
	/* Corrects text resizing oddly in IE6/7 when body font-size is set using em units http://clagnut.com/blog/348/#c790 */
	overflow-y: scroll;
	/* Keeps page centered in all browsers regardless of content height */
	-webkit-text-size-adjust: 100%;
	/* Prevents iOS text size adjust after orientation change, without disabling user zoom */
	-ms-text-size-adjust: 100%;
	/* www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */
}

* {
	/* apply a natural box layout model to all elements; see http://www.paulirish.com/2012/box-sizing-border-box-ftw/ */
	/* Not needed for modern webkit but still used by Blackberry Browser 7.0; see http://caniuse.com/#search=box-sizing */
	/* Still needed for Firefox 28; see http://caniuse.com/#search=box-sizing */
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

*:before, *:after {
	/* apply a natural box layout model to all elements; see http://www.paulirish.com/2012/box-sizing-border-box-ftw/ */
	/* Not needed for modern webkit but still used by Blackberry Browser 7.0; see http://caniuse.com/#search=box-sizing */
	/* Still needed for Firefox 28; see http://caniuse.com/#search=box-sizing */
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

body {
	background: #fff;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
nav,
section {
	display: block;
}

table {
	border-collapse: separate;
	border-spacing: 0;
}

caption,
th,
td {
	font-weight: normal;
	text-align: left;
}

blockquote,
q {
	quotes: "" "";
}

blockquote:before, blockquote:after,
q:before,
q:after {
	content: "";
}

a:focus, a:hover, a:active {
	outline: 0;
}

a img {
	border: 0;
}

embed, iframe, object {
	max-width: 100%;
}

.grecaptcha-badge {
	z-index: -10;
}

/*--------------------------------------------------------------
Typography
--------------------------------------------------------------*/
body,
button,
input,
select,
textarea {
	color: var(--vha-black);
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	font-weight: 400;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

b,
strong {
	font-weight: bold;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote,
.wp-block-quote,
.wp-block-quote.is-style-large {
	margin: 0 15px;
	font-size: 20px;
	font-style: italic;
	font-family: "Montserrat", sans-serif;
	font-weight: 300;
}

address {
	margin: 0 0 15px;
}

pre {
	background: #eee;
	font-family: "Montserrat", sans-serif;
	font-size: 15px;
	font-size: 1.5rem;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font: 15px Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted var(--vha-black);
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

sup,
sub {
	font-size: 75%;
	height: 0;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	bottom: 1ex;
}

sub {
	top: 0.5ex;
}

small {
	font-size: 75%;
}

big {
	font-size: 125%;
}

h1 {
	font-size: 36px;
}

h2 {
	font-size: 30px;
}

h3 {
	font-size: 25px;
}

h4 {
	font-size: 20px;
}

h5 {
	font-size: 18px;
}

h6 {
	font-size: 16px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 700;
}

/*--------------------------------------------------------------
Elements
--------------------------------------------------------------*/
hr, .wp-block-separator {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 15px;
}

ul,
ol {
	margin: 0 0 15px 20px;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 15px;
}

dt {
	font-weight: bold;
}

dd {
	margin: 0 15px 15px;
}

img {
	height: auto;
	/* Make sure images are scaled correctly. */
	max-width: 100%;
	/* Adhere to tg-container width. */
	vertical-align: middle;
}

figure {
	margin: 0;
}

table {
	margin: 0 0 15px;
	width: 100%;
	border-collapse: collapse;
}

th {
	font-weight: bold;
}

td, th, .wp-block-table th, .wp-block-table td {
	border: 2px solid var(--vha-cyan-500);
	padding: 5px 10px;
}

p {
	margin: 0 0 30px;
}

/*--------------------------------------------------------------
Forms
--------------------------------------------------------------*/
button,
input,
select,
textarea {
	font-size: 100%;
	/* Corrects font size not being inherited in all browsers */
	margin: 0;
	/* Addresses margins set differently in IE6/7, F3/4, S5, Chrome */
	vertical-align: middle;
}

.navigation .nav-links a,
.bttn,
button {
	background: var(--vha-cyan-500);
	color: #fff;
	cursor: pointer;
	/* Improves usability and consistency of cursor style between image-type 'input' and others */
	font-size: 16px;
	line-height: 13px;
	border: 2px solid var(--vha-cyan-500);
	padding: 10px 15px;
	font-weight: 400;
	display: inline-block;
	position: relative;
	text-shadow: none;
	-webkit-transition: background 0.5s ease;
	transition: background 0.5s ease;
	border-radius: 8px;
	-webkit-border-radius: 8px;
}

input[type="button"], input[type="reset"], input[type="submit"] {
	background: var(--vha-cyan-500);
	color: #fff;
	cursor: pointer;
	/* Improves usability and consistency of cursor style between image-type 'input' and others */
	font-size: 16px;
	line-height: 13px;
	border: 2px solid var(--vha-cyan-500);
	padding: 10px 15px;
	font-weight: 400;
	display: inline-block;
	position: relative;
	text-shadow: none;
	-webkit-transition: background 0.5s ease;
	transition: background 0.5s ease;
	border-radius: 8px;
	-webkit-border-radius: 8px;
}

.navigation .nav-links a:hover,
.bttn:hover,
button {
	color: #fff;
}

input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover {
	color: #fff;
}

input[type="checkbox"], input[type="radio"] {
	padding: 0;
}

button:-moz-focus-inner {
	/* Corrects inner padding and border displayed oddly in FF3/4 www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ */
	border: 0;
	padding: 0;
}

input:-moz-focus-inner {
	/* Corrects inner padding and border displayed oddly in FF3/4 www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ */
	border: 0;
	padding: 0;
}

input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"] {
	color: var(--vha-black);
	border: 2px solid var(--vha-cyan-500);
	height: 36px;
	width: 100%;
	-webkit-appearance: none;
	border-radius: 8px;
	-webkit-border-radius: 8px;
}

select, select:focus {
	border: 2px solid var(--vha-cyan-500);
	outline: unset;
}

input[type="text"]:focus, input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus {
	border: 2px solid var(--vha-cyan-500)!important;
	outline: unset;
}

textarea:focus {
	border: 2px solid var(--vha-cyan-500);
}

.searchform input[type="text"]:focus {
	border: none;
}

input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"] {
	padding: 3px 6px;
}

textarea {
	overflow: auto;
	/* Removes default vertical scrollbar in IE6/7/8/9 */
	padding-left: 3px;
	vertical-align: top;
	/* Improves readability and alignment in all browsers */
	color: var(--vha-black);
	border: 2px solid var(--vha-cyan-500);
	border-radius: 8px;
	height: 160px;
	max-width: 100%;
	width: 100%;
}

button[type="submit"] {
	margin-bottom: 50px;
}

.wpcf7-spinner {
	margin: 0 auto;
}

/*--------------------------------------------------------------
Links
--------------------------------------------------------------*/
a {
	color: #000;
	text-decoration: none;
	transition: all 0.3s ease-in-out;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
}

a:hover {
	color: #000;
}

/*--------------------------------------------------------------
Clearings
--------------------------------------------------------------*/
.clearfix:after, .clearfix:before,
.row:after,
.row:before,
.entry-content:after,
.entry-content:before,
.comment-content:after,
.comment-content:before,
.site-header:after,
.site-header:before,
.site-content:after,
.site-content:before,
.site-footer:after,
.site-footer:before,
.tg-container:after,
.tg-container:before {
	content: "";
	display: table;
}

.clearfix:after,
.row:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after,
.tg-container:after {
	clear: both;
}

.clear {
	clear: both;
}

.wp-caption,
.wp-caption-text,
.sticky,
.gallery-caption,
.bypostauthor {
	/*class required for wordpress*/
}

.alignright {
	text-align: right;
}

.alignleft {
	text-align: left;
}

.aligncenter {
	text-align: center;
}

.alignleft {
	float: left;
	margin-right: 24px;
}

.alignright {
	float: right;
	margin-left: 24px;
}

.aligncenter {
	clear: both;
	display: block;
	margin: 0 auto 28px;
}

.hidden {
	display: none;
}

.full-width,
.full-width-center {
	overflow: hidden;
}

.full-width #primary .entry-content > .alignfull,
.full-width-center #primary .entry-content > .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: unset;
}

.full-width #primary .entry-content > .alignfull.wp-block-cover, .full-width #primary .entry-content > .alignfull.wp-block-cover-image,
.full-width-center #primary .entry-content > .alignfull.wp-block-cover,
.full-width-center #primary .entry-content > .alignfull.wp-block-cover-image {
	width: unset;
}

.full-width #primary .entry-content > .alignwide,
.full-width-center #primary .entry-content > .alignwide {
	margin-left: -50px;
	margin-right: -50px;
	max-width: unset;
	width: unset;
}

.full-width.boxed #primary .entry-content > .alignfull,
.full-width-center.boxed #primary .entry-content > .alignfull {
	margin-left: -30px;
	margin-right: -30px;
	max-width: unset;
}

.full-width.boxed #primary .entry-content > .alignfull.wp-block-cover, .full-width.boxed #primary .entry-content > .alignfull.wp-block-cover-image,
.full-width-center.boxed #primary .entry-content > .alignfull.wp-block-cover,
.full-width-center.boxed #primary .entry-content > .alignfull.wp-block-cover-image {
	width: unset;
}

.full-width.boxed #primary .entry-content > .alignwide,
.full-width-center.boxed #primary .entry-content > .alignwide {
	margin: 0;
}

ul.wp-block-gallery {
	margin: 0;
}

/*--------------------------------------------------------------
grid
--------------------------------------------------------------*/
.tg-column-wrapper {
	clear: both;
	margin-left: -3%;
}

.tg-column-wrapper .tg-column-1,
.tg-column-wrapper .tg-column-2,
.tg-column-wrapper .tg-column-3,
.tg-column-wrapper .tg-column-4,
.tg-column-wrapper .tg-column-5 {
	float: left;
	margin-left: 3%;
}

.tg-column-wrapper .tg-column-1 {
	width: 100%;
}

.tg-column-wrapper .tg-column-2 {
	width: 47%;
}

.tg-column-wrapper .tg-column-3 {
	width: 30.33%;
}

.tg-column-wrapper .tg-column-4 {
	width: 22%;
}

/*--------------------------------------------------------------
Colors
--------------------------------------------------------------*/
.flash_inherit_color div {
	color: inherit !important;
}

.flash_inherit_color div.section-description {
	color: inherit !important;
}

.flash_inherit_color h1,
.flash_inherit_color h2 {
	color: inherit !important;
}

.flash_inherit_color h3 {
	color: inherit !important;
}

.flash_inherit_color h3.section-title {
	color: inherit !important;
}

.flash_inherit_color h4,
.flash_inherit_color h5,
.flash_inherit_color h6,
.flash_inherit_color p,
.flash_inherit_color span,
.flash_inherit_color div.service-content-wrap,
.flash_inherit_color .entry-summary {
	color: inherit !important;
}

/*--------------------------------------------------------------
Galleries
--------------------------------------------------------------*/
.gallery {
	margin-bottom: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	vertical-align: top;
	width: 100%;
}

.gallery-columns-2 .gallery-item {
	max-width: 50%;
}

.gallery-columns-3 .gallery-item {
	max-width: 33.33%;
}

.gallery-columns-4 .gallery-item {
	max-width: 25%;
}

.gallery-columns-5 .gallery-item {
	max-width: 20%;
}

.gallery-columns-6 .gallery-item {
	max-width: 16.66%;
}

.gallery-columns-7 .gallery-item {
	max-width: 14.28%;
}

.gallery-columns-8 .gallery-item {
	max-width: 12.5%;
}

.gallery-columns-9 .gallery-item {
	max-width: 11.11%;
}

.gallery-caption {
	display: block;
}

.wp-caption,
.gallery-caption {
	color: var(--vha-black);
	font-size: 13px;
	font-style: italic;
	margin-bottom: 21px;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 11px 0;
}

/*--------------------------------------------------------------
common
--------------------------------------------------------------*/
.tg-container {
	margin: 0 auto;
}

.overlay {
	background-color: rgba(0, 0, 0, 0.5);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	-webkit-clip-path: inset(50%);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
	/* Many screen reader and browser combinations announce broken words as they would appear visually. */
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	-webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	-webkit-clip-path: none;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-size: 16px;
	font-weight: bold;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
	/* Above WP toolbar. */
}

/* Do not show the outline on the skip link target. */
#content[tabindex="-1"]:focus {
	outline: 0;
}

.page-template-full-width #primary,
.page-template-pagebuilder #primary {
	width: 100%;
}

#scroll-up {
	background-color: var(--vha-cyan-500);
	border-radius: 3px;
	bottom: 20px;
	color: #fff;
	display: none;
	padding: 10px 16px;
	position: fixed;
	opacity: 0.5;
	z-index: 9999;
	filter: alpha(opacity=50);
	/* For IE8 and earlier */
	right: 20px;
}

.post-navigation {
	display: block;
	max-width: 1000px;
	width: 100%;
	margin: 0 auto 36px;
}

.post-navigation .nav-links {
	display: flex;
    justify-content: space-between;
    align-items: center;
}

.post-navigation .nav-previous, .post-navigation .nav-next {
	margin: 0 24px 20px;
}

.post-navigation .nav-previous {
	float: left;
}

.post-navigation .nav-next {
	float: right;
}

.post-navigation .nav-previous a, .post-navigation .nav-next a {
	display: flex;
	align-items: center;
    gap: 6px;
    max-width: 340px;
    width: 100%;
    line-height: 1.2;
	transition: all 0.3s ease-in-out;
}

.post-navigation .nav-previous a:hover, .post-navigation .nav-next a:hover {
	background-color: #fff;
	color: var(--vha-cyan-500);
}

.post-navigation .nav-previous a span i, .post-navigation .nav-next a span i {
	transition: all 0.3s ease-in-out;
}

.post-navigation .nav-previous a:hover span i, .post-navigation .nav-next a:hover span i {
	color: var(--vha-cyan-500);
}

.post-navigation .nav-next a span:first-child {
	order: 2;
}

.nav-next a .entry-title {
	float: left;
	margin-right: 3px;
}

.site {
	background-color: #fff;
}

/*--------------------------------------------------------------
}
Preloader CSS
--------------------------------------------------------------*/
#preloader {
	position: relative;
}

#preloader span {
	display: block;
	bottom: 0;
	width: 9px;
	height: 5px;
	background: var(--vha-cyan-600);
	position: absolute;
	-webkit-animation: preloader 1.5s infinite ease-in-out;
	animation: preloader 1.5s infinite ease-in-out;
}

#preloader span:nth-child(2) {
	left: 11px;
	-webkit-animation-delay: 0.2s;
	animation-delay: 0.2s;
}

#preloader span:nth-child(3) {
	left: 22px;
	-webkit-animation-delay: 0.4s;
	animation-delay: 0.4s;
}

#preloader span:nth-child(4) {
	left: 33px;
	-webkit-animation-delay: 0.6s;
	animation-delay: 0.6s;
}

#preloader span:nth-child(5) {
	left: 44px;
	-webkit-animation-delay: 0.8s;
	animation-delay: 0.8s;
}

@-webkit-keyframes preloader {
	0% {
		height: 5px;
		-webkit-transform: translateY(0);
		transform: translateY(0);
		background: var(--vha-cyan-500);
		-webkit-filter: brightness(var(--brightness));
		filter: brightness(var(--brightness));
	}
	25% {
		height: 30px;
		-webkit-transform: translateY(15px);
		transform: translateY(15px);
		background: var(--vha-cyan-500);
		-webkit-filter: brightness(var(--lightbrightness));
		filter: brightness(var(--lightbrightness));
	}
	50% {
		height: 5px;
		-webkit-transform: translateY(0);
		transform: translateY(0);
		background: var(--vha-cyan-500);
		-webkit-filter: brightness(var(--brightness));
		filter: brightness(var(--brightness));
	}
	100% {
		height: 5px;
		-webkit-transform: translateY(0);
		transform: translateY(0);
		background: var(--vha-cyan-500);
		-webkit-filter: brightness(var(--brightness));
		filter: brightness(var(--brightness));
	}
}

@keyframes preloader {
	0% {
		height: 5px;
		-webkit-transform: translateY(0);
		transform: translateY(0);
		background: var(--vha-cyan-500);
		-webkit-filter: brightness(var(--brightness));
		filter: brightness(var(--brightness));
	}
	25% {
		height: 30px;
		-webkit-transform: translateY(15px);
		transform: translateY(15px);
		background: var(--vha-cyan-500);
		-webkit-filter: brightness(var(--lightbrightness));
		filter: brightness(var(--lightbrightness));
	}
	50% {
		height: 5px;
		-webkit-transform: translateY(0);
		transform: translateY(0);
		background: var(--vha-cyan-500);
		-webkit-filter: brightness(var(--brightness));
		filter: brightness(var(--brightness));
	}
	100% {
		height: 5px;
		-webkit-transform: translateY(0);
		transform: translateY(0);
		background: var(--vha-cyan-500);
		-webkit-filter: brightness(var(--brightness));
		filter: brightness(var(--brightness));
	}
}

#spinners {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

#preloader-background {
	background-color: #fff;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 9999;
}

/*--------------------------------------------------------------
Single page layout CSS
--------------------------------------------------------------*/
.left-sidebar #primary {
	float: right;
}

.left-sidebar #secondary {
	float: left;
}

.full-width #primary {
	float: none;
	width: 100%;
}

.full-width-center #primary {
	float: none;
	margin: 0 auto;
	width: 65.5%;
}

/*--------------------------------------------------------------
Header
--------------------------------------------------------------*/
.header-top {
	background-color: #f1f5f8;
}

.header-top .contact-info {
	line-height: 30px;
	float: left;
	margin: 0;
}

.header-top .tg-column-wrapper {
	margin-left: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.header-top .left-content {
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
}

.header-top .right-content {
	-webkit-box-flex: 1;
	-ms-flex: 1;
	flex: 1;
}

.header-top .right-content ul {
	float: right;
}

.header-top .contact-info,
.header-top .social-menu {
	list-style: none;
}

.header-top .contact-info li {
	float: left;
	font-size: 12px;
	color: #384554;
	margin-right: 30px;
	padding: 5px 0;
}

.header-top .contact-info li:last-child {
	margin-right: 0;
}

.header-top .social-menu {
	line-height: 30px;
	margin: 0;
}

.header-top .social-menu li {
	float: left;
	margin-left: 10px;
	font-size: 12px;
	padding: 5px 0;
}

.header-top .social-menu li:first-child {
	margin-left: 0;
}

.contact-info span {
	font-size: 16px;
	padding-right: 10px;
	color: #99a3b0;
}

/*-----------------Logo-----------------*/
.logo {
	float: left;
	padding: 0;
}

.logo .logo-image {
	float: left;
	padding: 20px 0;
}

.logo .logo-image a img {
	padding: 0;
	width: 180px;
}

.logo .logo-text {
	float: left;
	margin-left: 12px;
	padding: 11px 0;
}

.logo .logo-text p {
	margin: 0;
}

.logo-text .site-title {
	font-size: 22px;
	font-weight: 500;
	line-height: 24px;
}

.logo-text .site-title span {
	font-weight: 700;
}

/*-----------------Site Navigation-----------------*/
#site-navigation {
	float: right;
}

#site-navigation .menu-toggle {
	display: none;
}

#site-navigation ul {
	margin: 0;
	list-style: none;
}

#site-navigation ul li {
	float: left;
	position: relative;
}

#site-navigation ul li a {
	display: inline-block;
	font-size: 16px;
}

#site-navigation ul li a:not(.sub-menu li a) {
	padding: 18px 12px;
}

#site-navigation ul li.current-menu-item > a,
#site-navigation ul li.current_page_item > a,
#site-navigation ul li.current_page_ancestor > a,
#site-navigation ul li.current-menu-ancestor > a {
	color: var(--vha-cyan-500);
}

#site-navigation ul li:hover {
	background-color: var(--vha-cyan-500);
}

#site-navigation ul li:hover > a, #site-navigation ul li:hover .sub-toggle .fa {
	color: #fff!important;
}

#site-navigation ul.sub-menu {
	background-color: #fff;
	min-width: 200px;
	width: 100%;
	padding: 0;
	position: absolute;
	-webkit-box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.2);
	box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.2);
	right: 50%;
	top: 90%;
	-webkit-transform: translateX(50%);
	transform: translateX(50%);
	opacity: 0;
	visibility: hidden;
	z-index: 9;
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

.menu ul li ul.children {
	background-color: #fff;
	min-width: 200px;
	padding: 0;
	position: absolute;
	-webkit-box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.2);
	box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.2);
	right: 50%;
	top: 90%;
	-webkit-transform: translateX(50%);
	transform: translateX(50%);
	opacity: 0;
	visibility: hidden;
	z-index: 9;
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

#site-navigation ul li ul li {
	padding: 10px;
	text-align: left;
	width: 100%;
}

#site-navigation ul.sub-menu li:hover {
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

#site-navigation ul.sub-menu li:hover > a {
	color: var(--vha-cyan-500);
}

#site-navigation li:hover ul.sub-menu,
#site-navigation ul li.focus > ul.sub-menu {
	opacity: 1;
	visibility: visible;
	top: 100%;
}

.menu ul li:hover > ul.children {
	opacity: 1;
	visibility: visible;
	top: 100%;
}

#site-navigation ul li a {
	color: var(--vha-cyan-500);
	font-weight: 700;
}

#site-navigation .sub-menu li.menu-item-has-children ul {
	left: 50%;
	opacity: 0;
	visibility: hidden;
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

.menu ul li ul li ul.children {
	left: 50%;
	opacity: 0;
	visibility: hidden;
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

#site-navigation .sub-menu li.menu-item-has-children ul li a {
	color: var(--vha-black);
}

#site-navigation .sub-menu li.menu-item-has-children ul li:hover > a {
	color: var(--vha-cyan-500);
}

#site-navigation ul li ul.sub-menu li.menu-item-has-children:hover > ul,
#site-navigation ul li ul.sub-menu li.menu-item-has-children.focus > ul {
	top: 0;
	opacity: 1;
	visibility: visible;
}

.menu ul li ul li:hover > ul.children {
	top: 0;
	opacity: 1;
	visibility: visible;
}

.sub-toggle {
    position: relative;
	right: 12px;
	color: var(--vha-black);
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

#site-navigation ul li.menu-item-has-children:hover > .sub-toggle {
	color: var(--vha-cyan-500);
}

#site-navigation ul li ul.sub-menu li.menu-item-has-children .sub-toggle {
	position: absolute;
	top: 50%;
	right: 10px;
	-webkit-transform: translateY(-50%) rotate(-90deg);
	transform: translateY(-50%) rotate(-90deg);
}

.transparent.header-sticky
#masthead-sticky-wrapper.is-sticky
#site-navigation
ul
li.current-flash-item
a,
#site-navigation ul li.current-flash-item a {
	color: var(--vha-cyan-500);
}

.header-bottom {
	background: #fff;
}

.header-bottom .tg-container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 36px;
	max-width: 1236px;
	padding: 0 18px;
}

.header-bottom .tg-container::before, 
.header-bottom .tg-container::after {
	display: none;
}

#site-navigation ul li.menu-item-has-children .sub-toggle .fa {
	-webkit-transition: transform 0.5s ease;
	-webkit-transition: -webkit-transform 0.5s ease;
	transition: -webkit-transform 0.5s ease;
	transition: transform 0.5s ease;
	transition: transform 0.5s ease, -webkit-transform 0.5s ease;
	color: var(--vha-cyan-500);
}

.animate-icon {
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
}

/*--------------------------------------------------------------
Section Title
--------------------------------------------------------------*/
.section-title-wrapper {
	margin-bottom: 30px !important;
}

.section-title {
	color: #313b48;
	font-weight: 700;
	text-align: center;
	text-transform: uppercase;
	position: relative;
	margin-bottom: 20px;
}

.section-title:before {
	background: #e1e1e1 none repeat scroll 0 0;
	bottom: -5px;
	content: "";
	height: 1px;
	left: 50%;
	margin-left: -50px;
	position: absolute;
	width: 100px;
}

.section-title:after {
	content: "";
	left: 50%;
	position: absolute;
	background: var(--vha-cyan-500) none repeat scroll 0 0;
	bottom: -6px;
	height: 3px;
	margin-left: -15px;
	width: 30px;
}

.section-description {
	text-align: center;
	color: #777;
}

/*--------------------------------------------------------------
Blogs
--------------------------------------------------------------*/
.blog-section .tg-column-2 {
	margin: 0;
}

.blog-section .tg-blog-widget-layout-1 .tg-column-2 {
	width: 50%;
}

.blog-section .row:nth-child(odd) {
	float: left;
	width: 100%;
	background-color: #fcfcfc;
}

.blog-section .tg-blog-widget-layout-1 .row:nth-child(odd) .post-image {
	float: left;
	width: 50%;
	position: relative;
}

.blog-section .row .post-image figure img {
	padding: 0;
}

.blog-section .row:nth-child(odd) .post-image figure img {
	width: 100%;
}

.blog-section .row:nth-child(odd) .post-image:before {
	border-bottom: 15px solid transparent;
	border-right: 15px solid #fcfcfc;
	border-top: 15px solid transparent;
	content: " ";
	font-size: 22px;
	position: absolute;
	top: 50%;
	right: 0;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

.blog-section .tg-blog-widget-layout-1 .blog-content:hover .entry-title a {
	color: #fff;
}

.blog-section .row:nth-child(odd) .blog-content {
	float: left;
	padding: 15px 5px 15px 20px;
	width: 50%;
}

.blog-section .row:nth-child(odd) .post-readmore {
	display: none;
}

.blog-section .row:nth-child(odd) .entry-title {
	line-height: 24px;
}

.blog-section .row:nth-child(odd) .entry-title a {
	font-size: 18px;
	font-weight: 700;
	color: #313b48;
}

.blog-section .tg-blog-widget-layout-1 .tg-blog-widget:hover .blog-content .entry-title a {
	color: #fff;
}

.blog-section .row:nth-child(odd) .entry-title a:hover {
	color: var(--vha-cyan-500);
}

.blog-section .row:nth-child(odd) .entry-meta {
	margin: 8px 0;
	color: #919191;
}

.blog-section .row:nth-child(odd) .entry-meta .fa {
	padding-right: 5px;
}

.blog-section .row:nth-child(odd) .entry-meta a {
	font-size: 12px;
	color: #919191;
}

.blog-section .row:nth-child(odd) .entry-meta .entry-author {
	margin-left: 15px;
}

.blog-section .row:nth-child(odd) .entry-summary {
	font-size: 16px;
	color: #777;
	font-weight: 400;
}

.blog-section .tg-blog-widget-layout-1 {
	margin: 0;
}

.tg-blog-widget-layout-1 .entry-summary {
	max-height: 167px;
	overflow: hidden;
}

.blog-section .row:nth-child(even) {
	float: left;
	width: 100%;
	background-color: #fcfcfc;
}

.blog-section .row:nth-child(even) .post-image {
	float: right;
	position: relative;
	width: 50%;
}

.blog-section .row:nth-child(even) .post-image figure img {
	width: 100%;
}

.tg-blog-widget-layout-1 .tg-blog-widget .entry-summary {
	margin: 0;
}

.blog-section .row:nth-child(even) .post-image:before {
	border-bottom: 15px solid transparent;
	border-left: 15px solid #fcfcfc;
	border-top: 15px solid transparent;
	content: " ";
	font-size: 22px;
	position: absolute;
	left: 0;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

.blog-section .row:nth-child(even) .blog-content {
	float: right;
	padding: 15px 5px 15px 20px;
	width: 50%;
}

.blog-section .row:nth-child(even) .post-readmore {
	display: none;
}

.blog-section .row:nth-child(even) .entry-title {
	line-height: 24px;
}

.blog-section .row:nth-child(even) .entry-title a {
	font-size: 18px;
	font-weight: 700;
	color: #313b48;
}

.blog-section .row:nth-child(even) .entry-title a:hover {
	color: var(--vha-cyan-500);
}

.blog-section .row:nth-child(even) .entry-meta {
	margin: 8px 0;
	color: #919191;
}

.blog-section .row:nth-child(even) .entry-meta .fa {
	margin-right: 5px;
}

.blog-section .row:nth-child(even) .entry-meta a {
	font-size: 12px;
	color: #919191;
}

.blog-section .row:nth-child(even) .entry-meta .entry-author {
	margin-left: 15px;
}

.blog-section .row:nth-child(even) .entry-summary {
	font-size: 16px;
	color: #777;
	font-weight: 400;
}

.blog-section .tg-blog-widget {
	-webkit-transition: all 0.5s ease;
	transition: all 0.5s ease;
}

.blog-section .tg-blog-widget-layout-1 .tg-blog-widget:hover {
	background-color: var(--vha-cyan-500);
}

.blog-section .tg-blog-widget-layout-1 .tg-blog-widget:hover .entry-title a {
	color: #fff;
}

.blog-section .tg-blog-widget-layout-1 .tg-blog-widget:hover .entry-title a:hover {
	color: #313b48;
}

.blog-section .tg-blog-widget-layout-1 .tg-blog-widget:hover .entry-meta {
	color: #fff;
}

.blog-section .tg-blog-widget-layout-1 .tg-blog-widget:hover .entry-meta a {
	color: #fff;
}

.blog-section .tg-blog-widget-layout-1 .tg-blog-widget:hover .entry-summary {
	color: #fff;
}

.blog-section .row:nth-child(odd) .tg-blog-widget:hover .post-image:before {
	border-right: 15px solid var(--vha-cyan-500);
}

.blog-section .row:nth-child(even) .tg-blog-widget:hover .post-image:before {
	border-left: 15px solid var(--vha-cyan-500);
}

.blog-section .tg-blog-widget-layout-1 .entry-title a:hover,
.blog-section .tg-blog-widget-layout-1 .tg-blog-widget:hover .blog-content .entry-title a:hover {
	color: #fff;
}

.blog-section .tg-blog-widget-layout-2 .post-image {
	position: relative;
	width: auto;
	float: none;
}

.blog-section .tg-blog-widget-layout-2 .post-image img {
	width: 100%;
	padding: 0;
}

.blog-section .tg-blog-widget-layout-2 .post-image .entry-date {
	background: var(--vha-cyan-500);
	left: 0;
	padding: 10px;
	position: absolute;
	text-align: center;
	top: 0;
}

.blog-section .tg-blog-widget-layout-2 .post-image .entry-date .fa {
	display: none;
}

.blog-section .tg-blog-widget-layout-2 .post-image .entry-date a {
	color: #fff;
	font-size: 12px;
}

.blog-section .tg-blog-widget-layout-2 .post-image.image-none .entry-date {
	position: relative;
	display: inline-block;
}

.blog-section .tg-blog-widget-layout-2 .post-image:before {
	display: none;
}

.blog-section .tg-blog-widget-layout-2 .blog-content {
	float: none;
	padding: 0 10px;
	width: auto;
	text-align: left;
}

.blog-section .tg-blog-widget-layout-2 .entry-title a {
	font-size: 18px;
	line-height: 24px;
	display: block;
}

/*--------------------------------------------------------------
Clients
--------------------------------------------------------------*/
.client-wrapper.swiper-wrapper {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	margin: 0 auto;
}

/*--------------------------------------------------------------
Footer
--------------------------------------------------------------*/
/*--------------------------------------------------------------
Archive
--------------------------------------------------------------*/
.post {
	margin-bottom: 40px;
	display: inline-block;
}

.post .entry-thumbnail {
	float: left;
	margin-right: 30px;
	width: 33.7%;
}

.entry-meta .entry-date a .updated:not(.published) {
	display: none;
}

.entry-content-block #primary .entry-title {
	font-size: 20px;
	line-height: 24px;
}

.entry-content,
.entry-summary {
	margin-top: 12px;
	color: var(--vha-black);
}

#primary .entry-footer span {
	font-size: 16px;
	margin-right: 15px;
}

#primary .entry-footer span .fa {
	margin-right: 5px;
}

#primary .entry-footer span a {
	font-size: 12px;
}

.navigation.posts-navigation {
	display: block;
	max-width: 1000px;
	width: 100%;
	margin: 24px auto;
	padding: 0 20px;
}

.navigation.posts-navigation .nav-links {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.entry-meta {
	font-size: 12px;
	margin-top: 12px;
}

.entry-meta .fa {
	padding-right: 5px;
}

.entry-meta a {
	font-size: 12px;
	color: #8e8e8e;
}

.entry-footer a {
	font-size: 12px;
	color: #8e8e8e;
}

.entry-meta span {
	margin-right: 15px;
}

#secondary {
	float: right;
	width: 32.22%;
}

#secondary .widget-title {
	font-size: 16px;
	position: relative;
	margin-bottom: 30px;
}

#secondary .widget-title:before, #secondary .widget-title:after {
	background: #e1e1e1 none repeat scroll 0 0;
	bottom: -10px;
	content: " ";
	height: 1px;
	left: 0;
	margin-left: 0;
	position: absolute;
	width: 100%;
}

#secondary .widget-title:after {
	background: var(--vha-cyan-500);
	bottom: -11px;
	height: 3px;
	margin-left: 0;
	width: 30px;
}

#secondary .searchform input {
	border: none;
	border-bottom: 1px solid var(--vha-black);
	width: 70%;
}

#secondary .searchform .btn:hover {
	background: var(--vha-cyan-500) none repeat scroll 0 0;
}

#secondary .searchform button[type="submit"] {
	margin-bottom: 0;
}

#secondary .widget {
	margin-bottom: 30px;
}

#secondary .widget ul {
	margin: 0;
	list-style: none;
}

#secondary .widget ul li {
	position: relative;
	padding: 0 0 10px 20px;
	font-size: 12px;
}

#secondary .widget ul li:after {
	color: #000;
	content: "\" /*rtl:"\"*/;
	font-family: fontawesome;
	left: 0;
	position: absolute;
	top: 0;
}

#secondary .widget ul li a {
	font-size: 12px;
}

#secondary .widget ul li a:hover {
	color: var(--vha-cyan-500);
}

.widget_post_list .post-link-block {
	margin-bottom: 20px;
	display: inline-block;
}

.widget_post_list .entry-thumbnail {
	float: left;
	margin-right: 30px;
	width: 20%;
}

.widget_post_list .entry-content-block {
	overflow: hidden;
}

.widget_post_list .entry-content-block .entry-title {
	line-height: 13px;
	margin-bottom: 18px;
}

.widget_post_list .entry-content-block .entry-title a {
	font-size: 12px;
}

.widget_post_list .entry-content-block .entry-meta a {
	color: #8e8e8e;
	font-size: 12px;
}

.widget_post_list .entry-meta .entry-author {
	margin-left: 15px;
}

.blog .entry-thumbnail {
	float: left;
	width: 33.7%;
}

.blog .entry-content-block {
	width: 100%;
}

#primary .post .entry-content-block .entry-content {
	border: none;
}

.full-width-archive #primary .post {
	margin-bottom: 50px;
	width: 100%;
}

.full-width-archive #primary .post.has-post-thumbnail {
	margin-bottom: 0;
}

.full-width-archive #primary .post .entry-thumbnail {
	width: 100%;
	float: none;
	margin-right: 0;
}

.full-width-archive #primary .post .entry-thumbnail img {
	width: 100%;
}

.full-width-archive #primary .post .entry-content-block {
	overflow: unset;
	width: 94%;
	position: relative;
	top: 0;
	padding: 20px 20px 0;
	margin: 0 auto;
	background: #fff;
}

.full-width-archive #primary .post.has-post-thumbnail .entry-content-block {
	overflow: unset;
	width: 94%;
	position: relative;
	top: -45px;
	padding: 20px 20px 0;
	margin: 0 auto;
	background: #fff;
}

.grid-view #primary .post {
	display: inline-block;
	margin-bottom: 30px;
	margin-right: 1%;
	vertical-align: top;
	width: 48%;
}

.grid-view #primary .post .entry-thumbnail {
	width: 100%;
}

.grid-view #primary .post .entry-content-block {
	position: unset;
	width: 100%;
}

.post-type-archive-portfolio .entry-thumbnail {
	float: left;
	clear: both;
	margin-bottom: 40px;
	margin-right: 30px;
}

.post-type-archive-portfolio .navigation.posts-navigation {
	width: 100%;
	clear: both;
}

.entry-content-block .entry-title {
	font-size: 20px;
}

.grid-view .entry-header {
	margin-top: 10px;
}

/*--------------------------------------------------------------
Post Page
--------------------------------------------------------------*/
.post {
	width: 100%;
}

.single .entry-content-block .entry-meta {
	margin-top: 0;
	margin-bottom: 20px;
}

.single .entry-content-block .entry-header {
	margin: 20px 0 5px;
}

.single .entry-thumbnail {
	margin-top: 20px;
	width: 100%;
}

.single .entry-thumbnail img {
	padding: 0;
}

.single .entry-content-block {
	width: 100%;
}

.single .entry-content-block .entry-title {
	font-size: 20px;
}

.single .entry-content-block .entry-meta .fa {
	padding-right: 5px;
}

.single .entry-content-block .entry-meta a {
	font-size: 12px;
}

.post .entry-content-block .entry-meta a:hover,
.post .entry-content-block .entry-meta span:hover {
	color: var(--vha-cyan-500);
}

.single .entry-content-block .entry-content {
	border-bottom: 1px solid #c5c5c5;
}

.single .entry-content-block .entry-footer span {
	color: #8e8e8e;
	font-size: 16px;
	margin-right: 15px;
}

.single .entry-content-block .entry-footer span .fa {
	margin-right: 5px;
}

.single .entry-content-block .entry-footer span a {
	color: #8e8e8e;
	font-size: 12px;
}

.post .entry-content-block .entry-footer span a:hover {
	color: var(--vha-cyan-500);
}

.author-description {
	border-bottom: 1px solid #c5c5c5;
	display: block;
	padding: 0 0 30px;
}

.author-description .author-img {
	display: inline-block;
	width: 75px;
	float: left;
}

.author-description .author-description-block {
	width: calc(100% - 100px);
	float: right;
	display: inline-block;
}

.author-description .author-description-block .author-title {
	color: #313b48;
	font-weight: 700;
}

.author-description .author-description-block .author-summary {
	font-size: 12px;
}

.default-wp-page {
	margin: 0;
	padding: 30px 0;
	display: inline-block;
	border-bottom: 1px solid #c5c5c5;
}

.default-wp-page .previous {
	float: left;
	width: 46%;
}

.default-wp-page .previous a {
	display: inline-block;
}

.default-wp-page .previous a span {
	float: left;
}

.default-wp-page .previous a span:first-child {
	font-size: 30px;
	padding: 8px 0;
}

.default-wp-page .previous a span img {
	padding: 0 10px;
}

.default-wp-page .previous a .entry-title {
	display: inline-block;
	width: 60%;
	padding: 8px 0;
}

.default-wp-page .navigation-divider {
	display: inline-block;
	padding: 20px;
}

.default-wp-page .next {
	float: right;
	width: 46%;
}

.default-wp-page .next a {
	display: inline-block;
}

.default-wp-page .next a span {
	float: right;
}

.default-wp-page .next a span:first-child {
	font-size: 30px;
	padding: 8px 0;
}

.default-wp-page .next a span img {
	padding: 0 10px;
}

.default-wp-page .next a .entry-title {
	display: inline-block;
	width: 60%;
	padding: 8px 0;
	text-align: right;
}

.related-posts-wrapper {
	margin-top: 30px;
}

.related-posts-wrapper .related-posts-main-title {
	margin-bottom: 20px;
}

.related-posts-wrapper .post-thumbnails {
	margin-bottom: 20px;
}

.related-posts-wrapper .post-thumbnails img {
	padding: 0;
}

.related-posts-wrapper .entry-title {
	font-size: 18px;
}

.related-posts-wrapper .entry-title a:hover {
	color: var(--vha-cyan-500);
}

.related-posts-wrapper .entry-meta > span a:hover {
	color: var(--vha-cyan-500);
}

/*--------------------------------------------------------------
404 page
--------------------------------------------------------------*/
.not-found .icon-404 .fa {
	font-size: 300px;
}

#primary .content-404 {
	padding: 60px 0;
}

#primary .not-found .page-header .page-title {
	font-size: 24px;
	line-height: 30px;
}

#primary .not-found .page-content {
	margin: 30px 0;
}

#primary .searchform input {
	border: none;
	border-bottom: 1px solid var(--vha-black);
}

#primary .searchform .btn:hover {
	background: var(--vha-cyan-500) none repeat scroll 0 0;
}

.search .hentry {
	border-bottom: 1px solid #e1e1e1;
	margin-top: 20px;
}

/*--------------------------------------------------------------
WooCommerce
--------------------------------------------------------------*/
.woocommerce ul.products li.product a img,
.woocommerce div.product div.images img {
	padding: 0;
}

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	background-color: var(--vha-cyan-500);
	padding: 0;
	height: 50px;
	width: 50px;
	line-height: 50px;
}

#add_payment_method table.cart img,
.woocommerce-cart table.cart img,
.woocommerce-checkout table.cart img {
	width: auto;
}

.woocommerce ul.products li.product .button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background-color: var(--vha-cyan-500);
	color: #fff;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background-color: #2299a1;
}

.added_to_cart.wc-forward {
	background-color: var(--vha-cyan-500);
	border-radius: 3px;
	font-size: 16px;
	line-height: 18px;
	color: #fff;
	padding: 4px 17px;
	margin-top: 5px;
}

.added_to_cart.wc-forward:hover {
	background-color: #2299a1;
}

.added_to_cart.wc-forward:after {
	content: "\f23d";
	color: #fff;
	font-family: fontawesome;
	padding-left: 8px;
}

.woocommerce-Price-amount.amount {
	color: var(--vha-cyan-500);
}

.woocommerce .star-rating span {
	color: #ffae65;
}

.widget_shopping_cart .buttons {
	text-align: center;
}

.woocommerce .widget_shopping_cart .total,
.woocommerce.widget_shopping_cart .total {
	padding: 5px 0;
	text-align: center;
}

.flash-cart-views .woocommerce ul.cart_list li img {
	width: 70px;
}

.woocommerce ul.product_list_widget li img {
	width: 70px;
}

.woocommerce ul.products li.product .price del {
	margin-right: 5px;
	display: inline-block;
}

.woocommerce nav.woocommerce-pagination {
	text-align: left;
}

.woocommerce .woocommerce-breadcrumb {
	float: right;
	margin: 0;
	padding: 14px 0;
}

.woocommerce .woocommerce-breadcrumb span {
	font-size: 12px;
	color: #a1a1a1;
	position: relative;
	line-height: 18px;
	padding: 0 14px;
}

.woocommerce .woocommerce-breadcrumb span:before {
	color: #a1a1a1;
	content: "\" /*rtl:"\"*/;
	font-family: fontawesome;
	left: 0;
	position: absolute;
	top: 0;
}

.woocommerce .woocommerce-breadcrumb span:first-of-type:before {
	content: none;
}

#secondary .widget_products ul.product_list_widget li img {
	padding: 0 0 20px 0;
}

#secondary .widget_products ul li {
	clear: both;
}

.woocommerce-breadcrumb {
	float: right;
	margin: 0;
	padding: 14px 0;
}

.woocommerce-breadcrumb span {
	font-size: 12px;
	color: #a1a1a1;
	position: relative;
	line-height: 18px;
	padding: 0 14px;
}

.woocommerce-breadcrumb span:before {
	color: #a1a1a1;
	content: "\" /*rtl:"\"*/;
	font-family: fontawesome;
	left: 0;
	position: absolute;
	top: 0;
}

.woocommerce-breadcrumb span:first-of-type:before {
	content: none;
}

.slider-arrow .swiper-button-prev:after {
	content: none;
}

.slider-arrow .swiper-button-next:after {
	content: none;
}

/*--------------------------------------------------------------
# Icônes
Six SVG inline remplacent Font Awesome (139 Ko de CSS + 155 Ko de
police pour six glyphes). Dimensionnées en `em`, elles suivent les
règles de font-size déjà en place.
--------------------------------------------------------------*/
.vha-icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.125em;
	flex-shrink: 0;
}

/*
 * js/flash.js injecte encore `<i class="fa fa-angle-down">` dans les
 * sous-menus. Plutôt que de toucher au JS du thème, on dessine le chevron en
 * CSS : deux bordures suffisent, aucune police n'est nécessaire.
 */
.sub-toggle .fa-angle-down {
	display: inline-block;
	width: 0.45em;
	height: 0.45em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform var(--vha-transition);
}

/* Le thème pose .animate-icon (rotate 180deg) à l'ouverture : on ajuste. */
.sub-toggle .fa-angle-down.animate-icon {
	transform: rotate(225deg);
}

/*--------------------------------------------------------------
# Header — barre haute
--------------------------------------------------------------*/
.vha-topbar {
	background: var(--vha-cyan-500);
	color: var(--vha-white);
	font-family: var(--vha-font-sans);
}

.vha-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--vha-space-lg);
	max-width: var(--vha-container);
	min-height: var(--vha-topbar-height);
	margin: 0 auto;
	padding: var(--vha-space-2xs) var(--vha-space-md);
}

.vha-topbar__baseline {
	margin: 0;
	font-size: var(--vha-text-xs);
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.vha-topbar__actions {
	display: flex;
	align-items: center;
	gap: var(--vha-space-md);
	flex-shrink: 0;
}

/*
 * Pas de règle générique `.vha-topbar a` : sa spécificité (0,1,1) écraserait
 * `.vha-topbar__cta` (0,1,0). Chaque lien porte donc ses propres couleurs.
 */
.vha-topbar__tel,
.vha-topbar__cta {
	text-decoration: none;
}

.vha-topbar__tel:focus-visible,
.vha-topbar__cta:focus-visible {
	outline: 2px solid var(--vha-white);
	outline-offset: 3px;
	border-radius: var(--vha-space-2xs);
}

.vha-topbar__tel {
	display: inline-flex;
	align-items: center;
	gap: var(--vha-space-xs);
	color: var(--vha-white);
	font-size: var(--vha-text-md);
	font-weight: 700;
	white-space: nowrap;
}

.vha-topbar__tel .vha-icon {
	font-size: var(--vha-text-sm);
}

.vha-topbar__tel:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vha-topbar__cta {
	display: inline-flex;
	align-items: center;
	padding: var(--vha-space-2xs) var(--vha-space-md);
	background: var(--vha-white);
	color: var(--vha-cyan-500);
	border-radius: var(--vha-radius-pill);
	font-size: var(--vha-text-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background-color var(--vha-transition), color var(--vha-transition);
}

.vha-topbar__cta:hover {
	background: var(--vha-black);
	color: var(--vha-white);
}

.vha-topbar__cta:focus-visible {
	outline-color: var(--vha-topbar-focus);
}

/*--------------------------------------------------------------
# Header — fixe et réduction au défilement
Le sticky JS de Flash (classe .header-sticky sur body) reste
prioritaire s'il est activé ; sinon on prend la main ici.
--------------------------------------------------------------*/
/*
 * L'en-tête est `fixed` et non `sticky` : un élément sticky reste dans le flux,
 * si bien qu'en réduisant sa hauteur au défilement tout le contenu remontait
 * d'un coup. Hors du flux, la réduction n'a plus aucun effet sur la page ; la
 * place correspondante est réservée par le padding de #page, alimenté par
 * --vha-header-height que js/vha-header.js mesure.
 */
body:not(.header-sticky) .site-header {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: var(--vha-z-header);
}

body:not(.header-sticky) #page {
	padding-top: var(--vha-header-height, 16.2rem);
}

body:not(.header-sticky).admin-bar .site-header {
	top: 3.2rem;
}

body:not(.header-sticky) .header-bottom {
	box-shadow: 0 1px 12px rgba(0, 0, 0, 0.08);
}

/* Les ancres ne doivent pas se retrouver sous l'en-tête. */
html {
	scroll-padding-top: var(--vha-header-height, 16.2rem);
}

/* Éléments qui changent de gabarit entre l'état déployé et l'état réduit. */
.vha-topbar__inner {
	transition: min-height var(--vha-header-anim) ease;
}

.vha-topbar__baseline,
.vha-topbar__tel,
.vha-topbar__cta {
	transition: font-size var(--vha-header-anim) ease, padding var(--vha-header-anim) ease;
}

.logo .logo-image {
	transition: padding var(--vha-header-anim) ease;
}

.logo .logo-image a img {
	width: var(--vha-logo-width);
	transition: width var(--vha-header-anim) ease;
}

/* État réduit, posé sur body par js/vha-header.js au-delà de 60px. */
.vha-header-reduit .vha-topbar__inner {
	min-height: var(--vha-topbar-height-sm);
	padding-top: 0;
	padding-bottom: 0;
}

.vha-header-reduit .vha-topbar__baseline {
	font-size: 1.2rem;
}

.vha-header-reduit .vha-topbar__tel {
	font-size: var(--vha-text-sm);
}

.vha-header-reduit .vha-topbar__cta {
	padding: 0.2rem var(--vha-space-sm);
	font-size: 1.2rem;
}

.vha-header-reduit .logo .logo-image {
	padding: var(--vha-space-xs) 0;
}

.vha-header-reduit .logo .logo-image a img {
	width: var(--vha-logo-width-sm);
}

/*
 * Le temps de mesurer l'en-tête déployé, le JS neutralise les animations en
 * mettant la durée à zéro : les propriétés personnalisées étant héritées, une
 * seule classe sur body suffit — pas de !important.
 */
.vha-header-sans-transition {
	--vha-header-anim: 0s;
}

/*--------------------------------------------------------------
# Barre de progression de lecture
Posée au bas de l'en-tête fixe, sur les articles seulement.
--------------------------------------------------------------*/
.vha-progression {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3px;
	overflow: hidden;
	background: rgba(0, 0, 0, 0.06);
}

/*
 * On anime `transform` plutôt que `width` : la mise à l'échelle est prise en
 * charge par le compositeur, sans recalcul de mise en page à chaque pixel
 * défilé.
 */
.vha-progression__barre {
	display: block;
	width: 100%;
	height: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	background: var(--vha-cyan-500);
}

/*--------------------------------------------------------------
# Bandeau de titre des pages internes
Rendu via template-parts/page-hero.php, branché sur flash_before_main :
le bandeau est hors de #content, donc naturellement pleine largeur.
--------------------------------------------------------------*/
.vha-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: var(--vha-hero-height);
	overflow: hidden;
	background: var(--vha-black);
}

.vha-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Voile dégradé : garantit la lisibilité du titre sur n'importe quelle image. */
.vha-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(0, 0, 0, 0.78) 0%,
		rgba(0, 0, 0, 0.55) 45%,
		rgba(0, 0, 0, 0.15) 100%
	);
}

.vha-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--vha-container);
	margin: 0 auto;
	padding: var(--vha-space-lg) var(--vha-space-md) var(--vha-space-xl);
	font-family: var(--vha-font-sans);
	color: var(--vha-white);
}

.vha-hero__title {
	margin: 0;
	color: var(--vha-white);
	font-family: var(--vha-font-sans);
	font-size: var(--vha-text-2xl);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	text-wrap: balance;
}

/* Respiration entre le bandeau et le contenu (le bandeau précède #content). */
.vha-hero + .site-content {
	padding-top: var(--vha-space-2xl);
	padding-bottom: var(--vha-space-2xl);
}

/* Date et durée de lecture : on situe l'article avant de s'y engager. */
.vha-hero__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--vha-space-sm);
	margin: var(--vha-space-sm) 0 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: var(--vha-text-sm);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.vha-hero__lecture::before {
	content: "·";
	margin-right: var(--vha-space-sm);
}

/* Fil d'Ariane Yoast */
.vha-hero__breadcrumb {
	margin-bottom: var(--vha-space-sm);
	font-size: var(--vha-text-sm);
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.85);
}

.vha-hero__breadcrumb a {
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
}

.vha-hero__breadcrumb a:hover {
	color: var(--vha-white);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vha-hero__breadcrumb a:focus-visible {
	outline: 2px solid var(--vha-white);
	outline-offset: 3px;
}

.vha-hero__breadcrumb .breadcrumb_last {
	color: var(--vha-white);
	font-weight: 600;
}

/*--------------------------------------------------------------
# Contenu éditorial (pages et articles)
Pages et articles partagent exactement la même mise en page de
contenu : une seule déclaration au lieu des deux blocs jumeaux
qui coexistaient dans style.css.
--------------------------------------------------------------*/

/* Colonne de lecture, commune aux pages, articles et listings. */
.page #primary .entry-content,
.single #primary .entry-content-block,
.single #primary .entry-content-block .entry-content {
	display: block;
	width: 100%;
	max-width: 100rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1rem;
	padding-right: 1rem;
}

.page #primary .entry-content {
	font-size: 1.6rem;
	line-height: 1.75;
}

/*
 * Articles : la colonne commune de 1000 px donnait environ 115 caractères par
 * ligne, bien au-delà des 65-75 confortables — l'œil perd la ligne suivante et
 * l'article paraît indigeste. On resserre la mesure et on grossit le corps :
 * c'est le seul levier qui change vraiment l'envie de lire un texte de 2 000
 * mots.
 */
.single #primary .entry-content-block {
	max-width: var(--vha-mesure);
}

.single #primary .entry-content-block .entry-content {
	font-size: var(--vha-texte-article);
	line-height: 1.75;
}

/* Chapeau : le premier paragraphe donne le ton et accroche le regard. */
.single #primary .entry-content-block .entry-content > p:first-of-type {
	font-size: 2.1rem;
	line-height: 1.6;
	color: #2b333a;
}

/* Les visuels peuvent déborder la mesure du texte, sans excéder la page. */
.single #primary .entry-content-block .entry-content :where(img, table) {
	max-width: 100%;
	height: auto;
}

/*
 * Rythme vertical unique. On neutralise d'abord les marges propres des blocs,
 * puis on espace les freres. Attention : une règle `p { margin: 0 }` aurait une
 * spécificité plus forte (1,2,1) que `> * + *` (1,2,0) et annulerait le rythme
 * — c'est exactement ce qui collait les paragraphes entre eux.
 */
.page #primary .entry-content > *,
.single #primary .entry-content-block .entry-content > * {
	margin-top: 0;
	margin-bottom: 0;
}

.page #primary .entry-content > * + *,
.single #primary .entry-content-block .entry-content > * + * {
	margin-top: 2rem;
}

.page #primary .entry-content h2,
.page #primary .entry-content h3,
.page #primary .entry-content h4,
.single #primary .entry-content-block .entry-content h2,
.single #primary .entry-content-block .entry-content h3,
.single #primary .entry-content-block .entry-content h4 {
	margin-bottom: 1.2rem;
	font-family: var(--vha-font-sans);
	font-weight: 800;
	line-height: 1.25;
}

.page #primary .entry-content h2,
.single #primary .entry-content-block .entry-content h2 {
	margin-top: 3.6rem;
	color: var(--vha-cyan-500);
	font-size: 3rem;
	text-transform: uppercase;
}

.page #primary .entry-content h3,
.single #primary .entry-content-block .entry-content h3 {
	margin-top: 3rem;
	color: var(--vha-black);
	font-size: 2.4rem;
}

.page #primary .entry-content :where(h4, h5, h6),
.single #primary .entry-content-block .entry-content :where(h4, h5, h6) {
	margin-top: 2.4rem;
}

/* Marge gauche seule : le raccourci `margin` remettrait margin-top à 0. */
.page #primary .entry-content ul,
.page #primary .entry-content ol,
.single #primary .entry-content-block .entry-content ul,
.single #primary .entry-content-block .entry-content ol {
	margin-left: 1.8rem;
	padding-left: 0;
}

.page #primary .entry-content li + li,
.single #primary .entry-content-block .entry-content li + li {
	margin-top: 0.6rem;
}

/*
 * Articles longs : les titres doivent trancher franchement pour servir de
 * points d'appui au survol de la page. On aère au-dessus, on resserre en
 * dessous — un titre appartient au texte qui le suit.
 */
.single #primary .entry-content-block .entry-content h2 {
	margin-top: 6rem;
	padding-top: var(--vha-space-lg);
	border-top: 2px solid #e2e6e9;
	font-size: 2.8rem;
}

.single #primary .entry-content-block .entry-content h3 {
	margin-top: 4.4rem;
	font-size: 2.2rem;
}

.single #primary .entry-content-block .entry-content :where(h2, h3) + p {
	margin-top: var(--vha-space-md);
}

/* Listes : marqueurs cyan et respiration, pour qu'elles se lisent d'un bloc. */
.single #primary .entry-content-block .entry-content :where(ul, ol) {
	margin-left: 2.2rem;
}

.single #primary .entry-content-block .entry-content li::marker {
	color: var(--vha-cyan-500);
	font-weight: 700;
}

.single #primary .entry-content-block .entry-content li + li {
	margin-top: var(--vha-space-sm);
}

/*
 * Les iframes collées en HTML brut gardent leurs attributs width/height (560
 * ici) et débordaient sous 560px de large. Le ratio conserve leur proportion.
 */
.page #primary .entry-content iframe,
.single #primary .entry-content-block .entry-content iframe {
	width: 100%;
	max-width: 56rem;
	height: auto;
	aspect-ratio: 16 / 9;
}

.page #primary .entry-content a,
.single #primary .entry-content-block .entry-content a {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.page #primary .entry-content a:hover,
.single #primary .entry-content-block .entry-content a:hover {
	color: var(--vha-cyan-500);
}

/*--------------------------------------------------------------
# Tableaux dans les articles
Les articles fiscaux comparent des montants : les chiffres doivent
s'aligner à droite et l'en-tête se distinguer, sinon les colonnes
ne se lisent pas.
--------------------------------------------------------------*/

/* Un tableau plus large que la colonne défile plutôt que de déborder. */
.single #primary .entry-content-block .entry-content .wp-block-table {
	margin: var(--vha-space-xl) 0;
	overflow-x: auto;
}

.single #primary .entry-content-block .entry-content table {
	margin: var(--vha-space-xl) 0;
	font-size: 1.6rem;
	line-height: 1.4;
}

.single #primary .entry-content-block .entry-content .wp-block-table table {
	margin: 0;
}

.single #primary .entry-content-block .entry-content :where(th, td) {
	padding: var(--vha-space-sm) var(--vha-space-md);
	border: 1px solid #cfd8dd;
	vertical-align: top;
}

.single #primary .entry-content-block .entry-content thead th {
	border-color: var(--vha-cyan-500);
	background: var(--vha-cyan-500);
	color: var(--vha-white);
	font-weight: 700;
	letter-spacing: 0.03em;
	text-align: left;
	text-transform: uppercase;
}

/* Lecture en quinconce : le regard ne saute pas d'une ligne à l'autre. */
.single #primary .entry-content-block .entry-content tbody tr:nth-child(even) {
	background: #f7f9fa;
}

/* Les montants s'alignent à droite : c'est ce qui rend une colonne comparable. */
.single #primary .entry-content-block .entry-content .has-text-align-right {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/*
 * Ligne de total : <tfoot> plutôt qu'une classe sur <tr>, parce que l'éditeur
 * de blocs sait produire un pied de tableau mais pas poser une classe de ligne.
 */
.single #primary .entry-content-block .entry-content tfoot {
	background: #eef4f7;
	font-weight: 700;
}

.single #primary .entry-content-block .entry-content tfoot :where(th, td) {
	border-top: 2px solid var(--vha-cyan-500);
}

@media screen and (max-width: 600px) {
	.single #primary .entry-content-block .entry-content :where(th, td) {
		padding: var(--vha-space-xs) var(--vha-space-sm);
	}

	.single #primary .entry-content-block .entry-content table {
		font-size: 1.5rem;
	}
}

/*--------------------------------------------------------------
# Sommaire des articles
Généré par vha_sommaire_article() au-delà de trois sections.
--------------------------------------------------------------*/
.vha-sommaire {
	margin: var(--vha-space-2xl) 0;
	padding: var(--vha-space-lg) var(--vha-space-xl);
	border: 1px solid #e2e6e9;
	border-left: 4px solid var(--vha-cyan-500);
	border-radius: 1.2rem;
	background: #f7f9fa;
}

.single #primary .entry-content-block .entry-content .vha-sommaire__titre {
	margin: 0 0 var(--vha-space-md);
	padding-top: 0;
	border-top: 0;
	color: var(--vha-black);
	font-size: var(--vha-text-sm);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.vha-sommaire__liste {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: vha-sommaire;
	font-size: 1.6rem;
	line-height: 1.5;
}

.single #primary .entry-content-block .entry-content .vha-sommaire__item + .vha-sommaire__item {
	margin-top: var(--vha-space-xs);
}

/*
 * Le sommaire est injecté dans .entry-content : il hérite sinon du
 * soulignement épais des liens d'article, ce qui rend la liste illisible.
 */
.single #primary .entry-content-block .entry-content .vha-sommaire__item a {
	color: var(--vha-black);
	text-decoration: none;
}

.single #primary .entry-content-block .entry-content .vha-sommaire__item a:hover {
	color: var(--vha-cyan-500);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.vha-sommaire__item a:focus-visible {
	outline: 2px solid var(--vha-cyan-500);
	outline-offset: 3px;
}

/* Niveau 1 : numéroté, en gras — ce sont les grandes parties. */
.vha-sommaire__item--n2 {
	counter-increment: vha-sommaire;
	font-weight: 700;
}

.vha-sommaire__item--n2 + .vha-sommaire__item--n2,
.vha-sommaire__item--n3 + .vha-sommaire__item--n2 {
	margin-top: var(--vha-space-md);
}

.vha-sommaire__item--n2 a::before {
	content: counter(vha-sommaire) ". ";
	color: var(--vha-cyan-500);
}

/* Niveau 2 : retrait et corps plus léger. */
.vha-sommaire__item--n3 {
	padding-left: var(--vha-space-md);
	font-size: 1.5rem;
}

.vha-sommaire__item--n3 a {
	color: #4a555e;
}

@media screen and (max-width: 600px) {
	.vha-sommaire {
		padding: var(--vha-space-md);
	}
}

/*--------------------------------------------------------------
# Listings — grille de cartes (archives, blog, recherche)
--------------------------------------------------------------*/
.vha-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--vha-space-lg);
	max-width: var(--vha-container);
	margin: 0 auto;
	padding: 0 1rem;
}

/* Neutralise `.post { margin-bottom: 40px; display: inline-block }` du thème. */
.vha-cards .vha-card {
	display: block;
	width: auto;
	margin: 0;
}

.vha-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid #e2e6e9;
	border-radius: 1.6rem;
	background: var(--vha-white);
	color: inherit;
	text-decoration: none;
	transition: transform var(--vha-transition), box-shadow var(--vha-transition), border-color var(--vha-transition);
}

.vha-card__link:hover {
	transform: translateY(-4px);
	border-color: var(--vha-cyan-500);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
}

.vha-card__link:focus-visible {
	outline: 3px solid var(--vha-cyan-500);
	outline-offset: 4px;
}

.vha-card__media {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: linear-gradient(135deg, var(--vha-cyan-500) 0%, var(--vha-cyan-600) 55%, #06405c 100%);
}

/* Quatre variantes pour que la grille de replis ne fasse pas papier peint. */
.vha-card__media--1 {
	background: linear-gradient(120deg, var(--vha-cyan-500) 0%, #0a6f9c 60%, #06405c 100%);
}

.vha-card__media--2 {
	background: linear-gradient(200deg, #0a6f9c 0%, var(--vha-cyan-500) 70%, #4fc3f0 100%);
}

.vha-card__media--3 {
	background: linear-gradient(160deg, #06405c 0%, var(--vha-cyan-600) 45%, var(--vha-cyan-500) 100%);
}

.vha-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
 * Aucun article n'ayant d'image à la une, le repli doit tenir debout seul :
 * un aplat de marque avec le nom de la rubrique, plutôt que la même photo
 * répétée sur toute la grille.
 */
.vha-card__placeholder {
	padding: 0 var(--vha-space-md);
	color: var(--vha-white);
	font-family: var(--vha-font-sans);
	font-size: var(--vha-text-sm);
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-align: center;
	text-transform: uppercase;
}

.vha-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--vha-space-sm);
	padding: 2rem;
}

.vha-card__meta {
	margin: 0;
	color: #5f6b73;
	font-size: var(--vha-text-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Pastille de rubrique, posée sur l'image à la une. */
.vha-card__badge {
	position: absolute;
	top: var(--vha-space-sm);
	left: var(--vha-space-sm);
	max-width: calc(100% - var(--vha-space-lg));
	padding: var(--vha-space-2xs) var(--vha-space-sm);
	border-radius: var(--vha-radius-pill);
	background: var(--vha-cyan-500);
	color: var(--vha-white);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-transform: uppercase;
}

.vha-card__title {
	margin: 0;
	color: var(--vha-black);
	font-family: var(--vha-font-sans);
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1.3;
	transition: color var(--vha-transition);
}

.vha-card__link:hover .vha-card__title {
	color: var(--vha-cyan-500);
}

.vha-card__excerpt {
	margin: 0;
	color: #3d474e;
	font-size: 1.5rem;
	line-height: 1.6;
}

.vha-card__more {
	margin-top: auto;
	padding-top: var(--vha-space-xs);
	color: var(--vha-cyan-500);
	font-size: var(--vha-text-sm);
	font-weight: 700;
}

.vha-card__more::after {
	content: "→";
	display: inline-block;
	margin-left: 0.6rem;
	transition: transform var(--vha-transition);
}

.vha-card__link:hover .vha-card__more::after {
	transform: translateX(3px);
}

/*--------------------------------------------------------------
# Articles liés
Réutilise la grille et les cartes des listings : aucune règle de
carte n'est redéfinie ici, seulement le cadre de la section.
--------------------------------------------------------------*/
.vha-lies,
.vha-dossiers {
	max-width: var(--vha-container);
	margin: var(--vha-space-2xl) auto 0;
	padding: var(--vha-space-2xl) 1rem 0;
	border-top: 1px solid #e2e6e9;
}

.vha-lies__titre,
.vha-dossiers__titre {
	max-width: var(--vha-container);
	margin: 0 auto var(--vha-space-xl);
	padding: 0 1rem;
	color: var(--vha-cyan-500);
	font-family: var(--vha-font-sans);
	font-size: 2.4rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

@media screen and (max-width: 768px) {
	.vha-lies,
	.vha-dossiers {
		margin-top: var(--vha-space-xl);
		padding-top: var(--vha-space-xl);
	}

	.vha-lies__titre,
	.vha-dossiers__titre {
		margin-bottom: var(--vha-space-lg);
		font-size: 2rem;
	}
}

/*--------------------------------------------------------------
# Pagination des listings
--------------------------------------------------------------*/
.navigation.pagination {
	max-width: var(--vha-container);
	margin: var(--vha-space-2xl) auto 0;
	padding: 0 1rem;
}

.navigation.pagination .screen-reader-text {
	position: absolute;
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--vha-space-xs);
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 4.2rem;
	height: 4.2rem;
	padding: 0 var(--vha-space-sm);
	border: 1px solid #d5dbdf;
	border-radius: 0.8rem;
	color: var(--vha-black);
	font-size: var(--vha-text-sm);
	font-weight: 700;
	text-decoration: none;
	transition: background-color var(--vha-transition), border-color var(--vha-transition), color var(--vha-transition);
}

.navigation.pagination a.page-numbers:hover {
	border-color: var(--vha-cyan-500);
	background: var(--vha-cyan-500);
	color: var(--vha-white);
}

.navigation.pagination a.page-numbers:focus-visible {
	outline: 3px solid var(--vha-cyan-500);
	outline-offset: 3px;
}

.navigation.pagination .page-numbers.current {
	border-color: var(--vha-cyan-500);
	background: var(--vha-cyan-500);
	color: var(--vha-white);
}

.navigation.pagination .page-numbers.dots {
	border-color: transparent;
}

/*--------------------------------------------------------------
# Accueil — carrousel
--------------------------------------------------------------*/
.home .home-hero {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	overflow: hidden;
	background: var(--vha-white);
}

/*
 * Le carrousel occupe toute la largeur de la page. L'ombre portée encadrait un
 * bloc centré : elle n'a plus de sens en pleine largeur.
 */
.home .home-hero-viewport {
	position: relative;
	width: 100%;
	margin: 0 auto;
}

/* L'id #home-hero-carousel est réservé au JS ; le style passe par .slides. */
.home .home-hero .slides {
	display: flex;
	width: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	list-style: none;
}

.home .home-hero-item {
	flex: 0 0 100%;
	min-width: 100%;
	transition: transform 0.5s ease-in-out;
}

.home .home-hero-item a {
	display: block;
	line-height: 0;
}

.home .home-hero-item img {
	display: block;
	width: 100%;
	height: auto;
}

.home .home-hero-nav {
	display: flex;
	justify-content: center;
	gap: var(--vha-space-xs);
	padding: var(--vha-space-sm) 0 var(--vha-space-md);
}

.home .home-hero-nav .carousel-nav-point {
	width: 1rem;
	height: 1rem;
	padding: 0;
	border: 0;
	border-radius: var(--vha-radius-pill);
	background: rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transition: transform var(--vha-transition), background-color var(--vha-transition);
}

.home .home-hero-nav .carousel-nav-point.active,
.home .home-hero-nav .carousel-nav-point:hover {
	background: var(--vha-cyan-500);
	transform: scale(1.15);
}

/*--------------------------------------------------------------
# Accueil — présentation et simulateurs
--------------------------------------------------------------*/
.home .presentation,
.home .simulateurs-section {
	max-width: 101.8rem;
	min-height: 20rem;
	margin: auto;
	padding: 2rem 1rem 0;
	background-color: var(--vha-white);
	text-align: left;
}

.home .title-acc {
	position: relative;
	color: var(--vha-cyan-500);
	font-family: var(--vha-font-sans);
	font-size: 2.5rem;
	font-weight: 600;
	text-align: center;
	text-transform: uppercase;
}

.home .unser-title {
	max-width: 8rem;
	height: 2px;
	border: 0;
	background: var(--vha-cyan-500);
}

.home .blue-acc {
	max-width: 70rem;
	margin: 3rem auto 4rem;
	color: var(--vha-cyan-500);
	letter-spacing: 1px;
	text-align: center;
	text-transform: uppercase;
}

.home .box-acc {
	position: relative;
	max-width: 75rem;
	margin: auto;
}

.home .box-acc .acc-txt {
	text-align: left;
}

.home .simulateurs-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(22rem, 1fr));
	gap: var(--vha-space-lg);
	margin-top: var(--vha-space-lg);
}

.home .simulateur-card {
	position: relative;
	display: grid;
	place-items: center;
	gap: 1.6rem;
	padding: 2.8rem 1.8rem 7.8rem;
	border-radius: 1.6rem;
	background: var(--vha-cyan-500);
	color: var(--vha-white);
	text-decoration: none;
	overflow: hidden;
	transition: transform var(--vha-transition), box-shadow var(--vha-transition);
}

.home .simulateur-card::after {
	content: "";
	position: absolute;
	right: -10%;
	bottom: -1.8rem;
	left: -10%;
	height: 9rem;
	background: var(--vha-white);
	clip-path: polygon(0 35%, 100% 0, 100% 100%, 0 100%);
	opacity: 0.95;
}

.home .simulateur-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}

.home .simulateur-card:focus-visible {
	outline: 3px solid var(--vha-white);
	outline-offset: 4px;
}

.home .simulateur-icon {
	width: 8.8rem;
	height: 8.8rem;
	object-fit: contain;
}

.home .simulateur-title {
	display: block;
	padding: 0 1rem;
	font-family: var(--vha-font-sans);
	font-size: 1.6rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-align: center;
	text-transform: uppercase;
}

.home .simulateur-cta {
	position: absolute;
	right: var(--vha-space-sm);
	bottom: var(--vha-space-sm);
	z-index: 1;
	display: grid;
	place-items: center;
	width: 4.2rem;
	height: 4.2rem;
	border-radius: var(--vha-radius-pill);
}

.home .simulateur-cta-img {
	display: block;
	width: 4.2rem;
	height: 4.2rem;
	transform-origin: 50% 50%;
	transition: transform 0.3s ease-in-out;
}

.home .simulateur-card .simulateur-cta-img:hover,
.home .simulateur-card .simulateur-cta-img:focus-visible {
	transform: rotate(90deg);
}

.home .btn-acc {
	display: table;
	margin: 4rem auto 5rem;
	padding: 1rem 1.6rem;
	border: 3px solid var(--vha-cyan-500);
	border-radius: 0.8rem;
	color: var(--vha-cyan-500);
	font-size: 1.6rem;
	font-weight: 700;
	text-decoration: none;
}

.home .btn-acc:hover {
	background-color: var(--vha-cyan-500);
	color: var(--vha-white);
}

.home .btn-acc.btn-acc--inverse {
	border-color: var(--vha-white);
	background: transparent;
	color: var(--vha-white);
}

.home .btn-acc.btn-acc--inverse:hover {
	background: var(--vha-white);
	color: var(--vha-cyan-500);
}

/*--------------------------------------------------------------
# Accueil — actualités
--------------------------------------------------------------*/
.home .home-actus {
	width: 100%;
	margin: 0 auto 6rem;
	padding: 0 1rem;
}

.home .home-actus .box-acc {
	max-width: 140rem;
	margin: 0 auto;
	text-align: center;
}

.home .home-actus .vha-cards {
	margin-top: var(--vha-space-lg);
	text-align: left;
}

.home .home-actus .btn-acc {
	margin-top: 3.6rem;
}

/*--------------------------------------------------------------
# Page Revue de presse
Le contenu est composé dans l'éditeur : neuf blocs « colonnes »
associant un logo de presse et un intitulé. On ne touche pas au
contenu, on normalise sa présentation.
--------------------------------------------------------------*/

/* Couverture de revue : format portrait, à brider en hauteur. */
.page-revue-de-presse #primary .entry-content > .wp-block-image img {
	width: auto;
	max-height: 42rem;
}

/* Chaque bloc « colonnes » devient une ligne de citation presse. */
.page-revue-de-presse #primary .entry-content .wp-block-columns {
	align-items: center;
	gap: var(--vha-space-lg);
	padding: var(--vha-space-md);
	border: 1px solid #e2e6e9;
	border-radius: 1.6rem;
	transition: border-color var(--vha-transition), box-shadow var(--vha-transition);
}

.page-revue-de-presse #primary .entry-content .wp-block-columns:hover {
	border-color: var(--vha-cyan-500);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.07);
}

/*
 * Les logos vont de 370x70 à 2560x406 : sans bride ils s'affichaient à des
 * échelles sans rapport. On normalise en hauteur, et on plafonne la largeur
 * pour que les logos très allongés ne dominent pas la ligne.
 */
.page-revue-de-presse #primary .entry-content .wp-block-column:first-child {
	display: grid;
	place-items: center;
}

.page-revue-de-presse #primary .entry-content .wp-block-column:first-child img {
	width: auto;
	max-width: 20rem;
	max-height: 4.4rem;
	object-fit: contain;
}

.page-revue-de-presse #primary .entry-content .wp-block-column:first-child figure {
	margin: 0;
}

.page-revue-de-presse #primary .entry-content .wp-block-column p {
	margin: 0;
}

/*
 * Une ligne n'a aucun logo : on retire la colonne de gauche restée vide, pour
 * que l'intitulé occupe toute la largeur au lieu d'être décalé.
 */
.page-revue-de-presse #primary .entry-content .wp-block-columns:not(:has(img)) .wp-block-column:first-child {
	display: none;
}

/*--------------------------------------------------------------
# Formulaire de contact (Contact Form 7)
--------------------------------------------------------------*/
.wpcf7 form {
	width: 100%;
	max-width: 65rem;
	margin: 0 auto;
}

.wpcf7 form .fields {
	display: flex;
	gap: 3rem;
}

.wpcf7 form .field {
	margin-bottom: var(--vha-space-sm);
}

.wpcf7 form .submit {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--vha-space-sm);
	width: fit-content;
	margin: var(--vha-space-lg) auto;
}

.contact-infos {
	justify-content: center;
}

.contact-infos .contact-infos-infos {
	width: 100%;
	max-width: 28rem;
}

/*--------------------------------------------------------------
# Formulaire de recherche (404, aucun résultat)
Le <label> qui entoure le champ est inline et le bouton est un
inline-block : les deux se calaient sur des lignes de base
différentes et le bouton flottait au-dessus du champ. Un flex
les aligne.
--------------------------------------------------------------*/
#primary .searchform {
	display: flex;
	align-items: stretch;
	gap: var(--vha-space-sm);
	max-width: 42rem;
}

#primary .searchform label {
	flex: 1 1 auto;
	min-width: 0;
}

#primary .searchform input {
	width: 100%;
	padding: var(--vha-space-xs) 0;
}

#primary .searchform .search-submit {
	flex: 0 0 auto;
}

/*--------------------------------------------------------------
# Page 404
Le thème laisse le contenu en flottants non contenus, collé aux bords,
avec une icône noire de 300px. On repasse en flex centré.
--------------------------------------------------------------*/
.error-404 .tg-column-wrapper {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--vha-space-xl);
	max-width: 100rem;
	margin: 0 auto;
	padding: 0 var(--vha-space-sm);
}

.error-404 .tg-column-wrapper .tg-column-2 {
	float: none;
	width: auto;
	margin-left: 0;
}

.error-404 .content-404 {
	flex: 1 1 auto;
}

.error-404 .icon-404 {
	flex: 0 0 auto;
	line-height: 1;
}

.error-404 .icon-404 .vha-icon {
	font-size: 12rem;
	color: var(--vha-cyan-500);
}

/*--------------------------------------------------------------
# Pied de page
--------------------------------------------------------------*/
.site-footer {
	background: var(--vha-cyan-500);
	font-family: var(--vha-font-sans);
}

.site-footer__top {
	background: var(--vha-black);
	color: var(--vha-white);
}

.site-footer__inner {
	max-width: var(--vha-container);
	margin: 0 auto;
	padding: var(--vha-space-2xl) var(--vha-space-md);
}

.site-footer__top .site-footer__inner {
	display: grid;
	grid-template-columns: 1fr 1fr 1.4fr;
	gap: var(--vha-space-2xl);
	align-items: start;
}

.site-footer__title {
	margin: 0 0 var(--vha-space-md);
	color: var(--vha-cyan-500);
	font-family: var(--vha-font-sans);
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.3;
	text-transform: none;
}

.site-footer__title a {
	color: var(--vha-cyan-500);
	text-decoration: none;
}

.site-footer__title a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.site-footer__address {
	margin: 0 0 var(--vha-space-md);
	font-size: var(--vha-text-sm);
	font-style: normal;
	line-height: 1.7;
}

.site-footer__cta {
	display: inline-flex;
	align-items: center;
	padding: var(--vha-space-xs) var(--vha-space-md);
	background: var(--vha-cyan-500);
	color: var(--vha-white);
	border-radius: var(--vha-radius-pill);
	font-size: var(--vha-text-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color var(--vha-transition);
}

.site-footer__cta:hover {
	background: var(--vha-white);
	color: var(--vha-black);
}

.social_links {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-top: 16px;
}

.social_link svg {
	width: 36px;
	height: 36px;
}

.site-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--vha-text-sm);
	line-height: 1.6;
}

.site-footer__links li + li {
	margin-top: var(--vha-space-xs);
}

/* Page courante : repère de navigation (classe posée par wp_nav_menu). */
.site-footer__links .current-menu-item > a,
.site-footer__links .current_page_item > a {
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* 8 simulateurs en une colonne feraient une liste interminable. */
.site-footer__links--two-cols {
	columns: 2;
	column-gap: var(--vha-space-lg);
}

.site-footer__links--two-cols li {
	break-inside: avoid;
}

/*
 * Pas de règle générique `.site-footer a` : à spécificité égale (0,1,1) elle
 * l'emporterait sur `.site-footer__title a` par simple ordre d'écriture.
 * Chaque famille de liens porte donc sa propre couleur.
 */
.site-footer__links a,
.site-footer__address a,
.site-footer__legal a {
	color: var(--vha-white);
	text-decoration: none;
}

.site-footer__links a:hover,
.site-footer__address a:hover,
.site-footer__legal a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.site-footer__links a:focus-visible,
.site-footer__address a:focus-visible,
.site-footer__legal a:focus-visible,
.site-footer__title a:focus-visible,
.site-footer__cta:focus-visible {
	outline: 2px solid var(--vha-white);
	outline-offset: 3px;
}

/* Bandeau bas */
.site-footer__bottom {
	background: var(--vha-cyan-500);
	color: var(--vha-white);
}

.site-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--vha-space-sm) var(--vha-space-lg);
	padding-top: var(--vha-space-sm);
	padding-bottom: var(--vha-space-sm);
	font-size: var(--vha-text-xs);
}

.site-footer__copyright {
	margin: 0;
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--vha-space-md);
	margin: 0;
	padding: 0;
	list-style: none;
}

/*--------------------------------------------------------------
# Media queries
Stratégie desktop-first : uniquement des `max-width`, en ordre
décroissant. Toutes les media queries du site sont ici.
--------------------------------------------------------------*/
@media screen and (max-width: 1200px) {
	/* Overrides Flash : le menu bascule en version mobile à cette largeur. */
	#site-navigation ul li a:not(.sub-menu li a) {
		padding: 0;
	}

	#site-navigation ul li.menu-item-has-children .sub-toggle .fa {
		color: var(--vha-white);
	}

	/* Menu mobile : il s'ouvre sous l'en-tête fixe, il doit pouvoir défiler. */
	#site-navigation .menu {
		max-height: calc(100vh - var(--vha-header-height, 16.2rem));
		overflow-y: auto;
	}

	/*
	 * Sous 1200px la hauteur de l'en-tête n'est plus dictée par le logo mais
	 * par les marges que le thème pose sur .logo et #site-navigation. Sans les
	 * réduire aussi, l'état réduit ne gagnerait presque rien sur mobile.
	 */
	.logo,
	#site-navigation {
		transition: padding var(--vha-header-anim) ease;
	}

	.vha-header-reduit .logo,
	.vha-header-reduit #site-navigation {
		padding-top: var(--vha-space-xs);
		padding-bottom: var(--vha-space-xs);
	}
}

@media screen and (max-width: 980px) {
	.vha-topbar__baseline {
		display: none;
	}

	.vha-topbar__inner {
		justify-content: center;
	}

	.vha-cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.site-footer__top .site-footer__inner {
		grid-template-columns: 1fr 1fr;
		gap: var(--vha-space-xl);
	}

	.site-footer__col--simulateurs {
		grid-column: 1 / -1;
	}
}

@media screen and (max-width: 782px) {
	body:not(.header-sticky).admin-bar .site-header {
		top: 4.6rem;
	}
}

@media screen and (max-width: 768px) {
	.vha-hero {
		min-height: var(--vha-hero-height-sm);
	}

	.vha-hero__inner {
		padding: var(--vha-space-md) var(--vha-space-sm) var(--vha-space-lg);
	}

	.vha-hero + .site-content {
		padding-top: var(--vha-space-lg);
		padding-bottom: var(--vha-space-lg);
	}

	/* En-tête fixe : sur un écran court, il ne doit pas manger le contenu. */
	:root {
		--vha-logo-width: 14rem;
		--vha-logo-width-sm: 10rem;
	}

	.logo .logo-image {
		padding: var(--vha-space-sm) 0;
	}

	.vha-header-reduit .logo .logo-image {
		padding: 0.6rem 0;
	}

	.home .simulateurs-grid {
		grid-template-columns: repeat(2, minmax(22rem, 1fr));
		width: 100%;
		max-width: 50rem;
		margin: 0 auto;
	}

	.error-404 .tg-column-wrapper {
		flex-direction: column-reverse;
		gap: var(--vha-space-lg);
	}

	.error-404 .icon-404 .vha-icon {
		font-size: 8rem;
	}

	.site-footer__top .site-footer__inner {
		grid-template-columns: 1fr;
		gap: var(--vha-space-xl);
		padding-top: var(--vha-space-xl);
		padding-bottom: var(--vha-space-xl);
	}

	.site-footer__bottom-inner {
		justify-content: center;
		text-align: center;
	}

	.site-footer__legal {
		justify-content: center;
	}
}

@media screen and (max-width: 600px) {
	/* Sous 600px la barre d'admin n'est plus fixe : plus de décalage. */
	body:not(.header-sticky).admin-bar .site-header {
		top: 0;
	}

	.vha-cards {
		grid-template-columns: 1fr;
		max-width: 42rem;
	}
}

@media screen and (max-width: 500px) {
	.vha-topbar__actions {
		gap: var(--vha-space-sm);
	}

	.vha-topbar__tel {
		font-size: var(--vha-text-sm);
	}

	.vha-topbar__cta {
		padding: var(--vha-space-2xs) var(--vha-space-sm);
	}

	.home .simulateurs-grid {
		grid-template-columns: 1fr;
		max-width: 28rem;
	}

	.navigation.posts-navigation .nav-links {
		flex-direction: column;
		align-items: center;
	}

	.wpcf7 form .fields {
		flex-direction: column;
		gap: 0;
	}

	.site-footer__links--two-cols {
		columns: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--vha-header-anim: 0s;
	}

	.vha-topbar__cta,
	.site-footer__cta,
	.vha-card__link,
	.vha-card__title,
	.vha-card__more::after,
	.navigation.pagination .page-numbers,
	.home .simulateur-card,
	.home .simulateur-cta-img,
	.home .home-hero-nav .carousel-nav-point {
		transition: none;
	}
}
