/*
Theme Name: Thème enfant
Theme URI: https://studio-va.fr
Description: Ce thème enfant permet de personnaliser WordPress
Author: studio-va.fr
Author URI: https://studio-va.fr
Version: 1.0.0
Text Domain: hello-elementor
Template: hello-elementor
*/

/* =========================
   Base
========================= */

:root{
	box-sizing:border-box;
	font-size:100%;
	scrollbar-width:thin;
	scrollbar-color:#045b54 transparent;
}

*,*::before,*::after{
	box-sizing:inherit;
}

html{
	accent-color:#045b54;
	width:100%;
	min-height:100%;
	margin:0;
	padding:0;
	scroll-behavior:smooth;
	overflow-x:hidden;
	overflow-y:auto;
	background:#f0ebe6;
	color:#5c5851;
	font-family:system-ui,sans-serif;
	font-size:100%;
	font-weight:400;
	line-height:1.5;
}

body{
	min-height:100vh;
	margin:0;
	padding:0;
	background:transparent;
	color:inherit;
	font-family:inherit;
	font-size:inherit;
	line-height:inherit;
	display:flex;
	flex-direction:column;
}

main{
	margin:0;
	padding:0;
	background:transparent;
	color:inherit;
	font-family:inherit;
	font-size:inherit;
	line-height:inherit;
	flex:1 0 auto;
}

:focus{
	outline:none;
}

:focus-visible{
	outline:.2em solid #27706950;
}

:target,:focus{
	scroll-margin-block:8vh;
}

/* Scrollbar */

::-webkit-scrollbar{
	width:.5vw;
}
::-webkit-scrollbar-button{
	display:none;
}
::-webkit-scrollbar-track{
	background:transparent;
	border:0;
}
::-webkit-scrollbar-thumb{
	background:#045b54;
	background-clip:content-box;
	border:.15vw solid transparent;
	border-radius:.5vw;
}
::-webkit-scrollbar-thumb:is(:focus,:hover){
	background:#277069;
	background-clip:content-box;
	border:.15vw solid transparent;
}
::-webkit-scrollbar-thumb:is(:active,:hover:active){
	background:#67bdb3;
	background-clip:content-box;
	border:.15vw solid transparent;
}

/* =========================
   Éléments généraux
========================= */

img{
	max-width:100%;
	height:auto;
}

a{
	color:inherit;
	text-decoration:none;
	transition:all .15s ease-out;
}

a[href][role='link']{
	transition:all .15s ease-out;
}

button,
[role='button'],
[role='tab'],
a[href].elementor-button,
header,
a[rel='home'] img,
textarea,
select,
progress,
input,
details,
summary,
details[open] summary,
ul,
ol,
li,
::marker,
form :is(h3,legend),
#btmCTA{
	transition:all .3s ease-in-out;
}

label[for]{
	transition:all .15s ease-in;
}

table{
	width:100%;
	margin:0 0 1rem 0;
	font-size:1rem;
	border-spacing:0;
	border-collapse:collapse;
	background:transparent;
}

table :is(td,th){
	padding:1rem;
	border:.0625rem solid #80808080;
}

::selection{
	background:#045b54;
	color:#f0ebe6;
	text-shadow:none;
}

img::selection{
	background:transparent;
}

::marker,
::-webkit-calendar-picker-indicator,
::-webkit-clear-button,
::-webkit-inner-spin-button,
::-webkit-outer-spin-button{
	font:inherit;
	font-weight:700;
	color:currentColor;
}

::placeholder{
	font:inherit;
	color:currentColor;
	opacity:1;
}

[hidden],
noscript>img,
datalist,
dialog:not([open]),
::-webkit-details-marker{
	display:none;
}

img[aria-hidden='true']{
	width:0;
	height:0;
}

[aria-hidden='false'][hidden]{
	display:initial;
}

[aria-hidden='false'][hidden]:not(:focus),
form [aria-hidden='true']{
	position:absolute;
	opacity:0;
}

[aria-busy='true']{
	cursor:progress;
}

[aria-disabled='true'],
[disabled],
:disabled{
	cursor:not-allowed;
	filter:saturate(0);
	opacity:.5;
}

/* =========================
   Header / navigation
========================= */

header{
	z-index:15;
	display:flex;
	position:fixed !important;
	top:0;
	width:100%;
	max-width:none;
	height:5.5rem;
	margin:0;
	padding:0 1.25rem !important;
	background:#f8f5f3;
	border:0;
	border-radius:0;
}

header.min{
	width:100%;
	height:3.5rem;
	margin:0;
	padding:0 .5rem !important;
	background:#f8f5f3;
	border:0;
	border-radius:0;
}

header a[rel='home'] img{
	height:3.75rem;
}

header.min a[rel='home'] img{
	height:3.5rem;
}

nav{
	font:inherit;
	color:inherit;
}

nav ul.menu li::after{
	color:currentColor;
	-webkit-text-fill-color:currentColor;
}

nav ul.menu li a{
	font-size:inherit;
	font-weight:inherit;
	color:#5c5851 !important;
	background:transparent !important;
	padding:1rem 1rem 0;
	border:.125rem solid transparent;
	box-shadow:none !important;
}

nav ul.menu li a:is(:focus,:hover){
	color:#5c5851 !important;
	background:#f0eae5 !important;
	border:.125rem solid transparent;
}

nav ul.menu>li>a[aria-current],
nav ul.menu>li[class*='current']>a:not([href]){
	color:#231c17 !important;
	background:#f0eae5 !important;
	border:.125rem solid #f0eae5;
}

nav ul.menu>li:last-child>a{
	color:#fff !important;
	background:#045b54 !important;
	border:.125rem solid #045b54;
}

nav ul.menu li ul{
	overflow:hidden;
	font-size:smaller;
	font-weight:inherit;
	min-width:max-content !important;
	background:#f8f5f3 !important;
	border-radius:0 0 1.5rem 1.5rem;
}

nav ul.menu li ul li{
	border-block-end:0 !important;
}

.site-navigation-toggle-holder.show{
	padding:0;
}

.site-navigation-toggle-holder .site-navigation-toggle{
	background:transparent !important;
	color:#045b54 !important;
}

/* =========================
   Boutons
========================= */

:is(button,[role='button'],[role='tab'],a[href].elementor-button){
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:.875em 1.25em;
	margin:1em 0;
	font-family:inherit;
	font-size:clamp(.75rem,1.172vw + .188rem,1.125rem);
	font-weight:700;
	text-align:center;
	text-transform:none;
	appearance:none;
	color:#045b54;
	background:#fff;
	border:.125rem solid #045b54;
	border-radius:.5rem;
	-webkit-text-fill-color:#045b54;
}

:is(button,[role='button'],[role='tab'],a[href].elementor-button):not(:disabled):is(:focus,:hover){
	color:#277069;
	background:#fff;
	border:.125rem solid #277069;
	border-radius:.5rem;
	-webkit-text-fill-color:#277069;
}

:is(button,[role='button'],[role='tab'],a[href].elementor-button):not(:disabled):is(:active,:hover:active){
	color:#67bdb3;
	background:#fff;
	border:.125rem solid #67bdb3;
	border-radius:.5rem;
	-webkit-text-fill-color:#67bdb3;
}

/* =========================
   Formulaires - base propre
========================= */

form{
	margin:0;
}

label{
	font:inherit;
	color:inherit;
}

select:not([size],[multiple]){
	height:calc(2.25em + 2.125rem);
}

input[type="email"],
input[type="tel"],
input[type="text"],
input[type="number"],
input[type="password"],
input[type="search"],
select,
textarea{
	width:100%;
	font:inherit;
	color:inherit;
	margin:1rem 0 0;
	padding:.5rem 1rem;
	background:#fff;
	border:.125rem solid #4e5d61;
	border-radius:.5rem;
	box-shadow:inset 0 .0625rem .3125rem rgba(0,0,0,.05);
}

input[type="email"]:hover,
input[type="tel"]:hover,
input[type="text"]:hover,
input[type="number"]:hover,
input[type="password"]:hover,
input[type="search"]:hover,
select:hover,
textarea:hover{
	border-color:#045b54;
}

input[type="email"]:focus,
input[type="tel"]:focus,
input[type="text"]:focus,
input[type="number"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
select:focus,
textarea:focus{
	border-color:#277069;
	outline:none;
}

textarea{
	resize:vertical;
}
/* =========================
   Footer
========================= */

footer,
footer :is(p,a[href]:not(:focus,:hover)){
	color:inherit;
}

footer{
	width:100%;
	height:auto;
	margin:0;
	padding:0;
	background:#f8f5f3;
	border:0;
	border-radius:0;
	position:static !important;
	clear:both;
	margin-top:auto;
}

/* =========================
   Login
========================= */

#login{
	max-width:25rem;
	margin:5rem auto;
	padding:1.5rem;
	background:#045b54;
	border-radius:.5rem;
}

.login h1,
#caps-warning{
	display:none;
}

#login p>strong{
	color:inherit;
}

#login .message p{
	font-size:smaller;
	font-weight:700;
	color:#2caa87;
	margin:0 0 1rem 0;
	padding:1.5rem;
	background:#d9fff2;
	border:.125rem solid #2caa87;
	border-radius:.5rem;
}

#login_error p{
	font-size:smaller;
	font-weight:700;
	color:#ff4b4b;
	margin:0 0 1rem 0;
	padding:1.5rem;
	background:#ffe6e3;
	border:.125rem solid #ff4b4b;
	border-radius:.5rem;
}

/* =========================
   Utilitaires / cartes / blog
========================= */

button[target='_top']{
	z-index:15;
	position:fixed;
	bottom:1.875rem;
	right:1.875rem;
	width:3.125rem;
	height:3.125rem;
	padding:0;
	margin:0;
	pointer-events:none;
	opacity:0;
	transform:translateY(6.25rem);
}

button[target='_top'].min{
	pointer-events:auto;
	opacity:1;
	transform:translateY(0);
}

.invert :is(p,a[href]){
	color:#f8f5f3;
}

.invert :is(h1,h2,h3,h4,h5,h6,p>strong){
	color:#fff;
}

.box,
box img,
post,
card,
.wht .elementor-container{
	overflow:hidden;
	border-radius:.5rem;
}

.archive .page-content,
blog .page-content{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));
	gap:2rem;
	padding:10rem 0 5rem;
}

.post{
	background:#fff;
	grid-column:span 2;
	grid-row:span 2;
	display:flex;
	justify-content:space-between;
	flex-direction:column;
}

.post .entry-title{
	order:2;
	padding:1rem;
	line-height:1.1;
}

.post .wp-post-image{
	height:15rem;
}

.post p{
	display:none;
}

.post-date{
	display:block;
	font-size:smaller;
}

.wht .elementor-container,
card{
	background:#fff;
}

.card{
	min-height:22rem;
	padding:1rem;
}

.shadow,
post,
.wht .elementor-container,
#login,
#login .message p,
#login_error p{
	box-shadow:0 .3125rem .9375rem #0000000d,0 .3125rem .9375rem #231c170d;
}

.wht .elementor-container{
	padding:.75rem;
}

/* =========================
   CTA flottant
========================= */

#btmCTA{
	z-index:14;
	position:fixed !important;
	bottom:.825rem;
	right:6.275rem;
	pointer-events:auto;
	opacity:1;
	transform:translateY(0);
}

#btmCTA.min{
	pointer-events:none;
	opacity:0;
	transform:translateY(6.25rem);
}

/* =========================
   Correctif structure / layout
========================= */

html{
	height:auto !important;
	min-height:100% !important;
	block-size:auto !important;
	overflow-x:hidden !important;
	overflow-y:auto !important;
}

body{
	height:auto !important;
	min-height:100vh !important;
	margin:0 !important;
	padding:0 !important;
	display:flex;
	flex-direction:column;
}

main,
.site-main,
.site-content,
.elementor-location-single,
.elementor-page,
[data-elementor-type="wp-page"]{
	height:auto !important;
	min-height:0 !important;
	flex:1 0 auto;
	overflow:visible !important;
}

body.admin-bar header{
	top:32px;
}

main,
.site-main,
.site-content{
	padding-top:5.5rem;
}

.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap{
	height:auto !important;
	min-height:0 !important;
}

/* =========================
   Contact Form 7
========================= */

.wpcf7{
	width:100%;
	max-width:100%;
}

.wpcf7 form{
	margin:0;
}

.wpcf7 p{
	margin:0 0 1rem;
}

.wpcf7-form-control-wrap{
	display:block;
	width:100%;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 textarea{
	display:block;
	width:100%;
	max-width:100%;
	margin:0;
	padding:.65rem .9rem;
	background:#f5f5f5;
	border:2px solid #5c6869;
	border-radius:10px;
	color:#5c6869;
	font-size:16px;
	line-height:1.35;
	box-shadow:inset 0 1px 4px rgba(0,0,0,0.08);
}

.wpcf7 textarea{
	min-height:120px;
	resize:vertical;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder{
	color:#5c6869;
	opacity:1;
}

.wpcf7 .wpcf7-acceptance{
	display:block;
	margin:.5rem 0 1.25rem;
}

.wpcf7 .wpcf7-list-item{
	margin:0;
}

.wpcf7 .wpcf7-acceptance label{
	display:flex;
	align-items:flex-start;
	gap:.7rem;
	font-size:16px;
	line-height:1.4;
	color:#5e5a55;
}

.wpcf7 .wpcf7-acceptance input[type="checkbox"]{
	width:18px;
	height:18px;
	min-width:18px;
	margin:3px 0 0 0;
}

.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"],
.wpcf7 .wpcf7-submit{
	display:inline-flex;
	justify-content:center;
	align-items:center;
	min-width:160px;
	min-height:46px;
	margin:0;
	padding:.6rem 1.2rem;
	background:#f5f5f5 !important;
	border:2px solid #00695c !important;
	border-radius:10px;
	color:#00695c !important;
	font-size:16px;
	font-weight:700;
	line-height:1.2;
	text-align:center;
	box-shadow:none !important;
	cursor:pointer;
	opacity:1 !important;
	-webkit-text-fill-color:#00695c !important;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus,
.wpcf7 button[type="submit"]:hover,
.wpcf7 button[type="submit"]:focus,
.wpcf7 .wpcf7-submit:hover,
.wpcf7 .wpcf7-submit:focus{
	border-color:#045b54 !important;
	color:#045b54 !important;
	-webkit-text-fill-color:#045b54 !important;
}

/* état désactivé avant validation */
.wpcf7 input[type="submit"]:disabled,
.wpcf7 button[type="submit"]:disabled,
.wpcf7 .wpcf7-submit:disabled,
.wpcf7 form.unaccepted input[type="submit"],
.wpcf7 form.unaccepted .wpcf7-submit{
	background:#f5f5f5 !important;
	border-color:#b7b7b7 !important;
	color:#9a9a9a !important;
	-webkit-text-fill-color:#9a9a9a !important;
	opacity:1 !important;
	cursor:not-allowed;
	filter:none !important;
}

.wpcf7-not-valid-tip{
	margin-top:.35rem;
	font-size:.85rem;
	color:#c0392b;
}

.wpcf7 form .wpcf7-response-output{
	margin:1rem 0 0;
	padding:.85rem 1rem;
	border-radius:8px;
	font-size:.95rem;
	line-height:1.4;
}

.wpcf7 form.sent .wpcf7-response-output{
	background:#d9fff2;
	border:1px solid #2caa87;
	color:#2caa87;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{
	background:#ffe6e3;
	border:1px solid #ff4b4b;
	color:#ff4b4b;
}

.wpcf7 .wpcf7-spinner{
	display:none;
}

@media (max-width:767px){
	.wpcf7 input[type="text"],
	.wpcf7 input[type="tel"],
	.wpcf7 input[type="email"],
	.wpcf7 textarea{
		padding:.6rem .8rem;
		font-size:15px;
	}

	.wpcf7 .wpcf7-acceptance label{
		font-size:15px;
	}

	.wpcf7 input[type="submit"],
	.wpcf7 button[type="submit"],
	.wpcf7 .wpcf7-submit{
		width:100%;
		min-width:0;
	}
}

/* =========================
   Responsive
========================= */

@media (min-width:64rem){
	nav ul.menu>li{
		margin:0 .5rem;
	}
	nav ul.menu li a{
		border-radius:.5rem;
	}
}

@media (max-width:64rem){
	nav ul.menu{
		background:#f8f5f3;
		overflow:hidden;
		border:0;
		border-radius:.5rem;
	}

	nav ul.menu ul li a{
		background:#fff;
	}

	header a[rel='home'] img{
		height:3.25rem;
	}

	header.min a[rel='home'] img{
		height:3rem;
	}

	.post{
		min-width:50%;
		max-width:100%;
		flex:auto;
	}

	.card{
		min-height:unset;
	}

	button[target='_top']{
		bottom:2rem;
		right:2rem;
		width:2.5rem;
		height:2.5rem;
	}

	#btmCTA{
		bottom:1.25rem;
		right:5.5rem;
	}

	.menu{
		box-shadow:0 .3125rem .9375rem #0000000d,0 .3125rem .9375rem #231c170d;
	}
}

@media (max-width:48rem){
	.sub-menu{
		box-shadow:0 .3125rem .9375rem #0000000d,0 .3125rem .9375rem #231c170d;
	}
}

@media (max-width:782px){
	body.admin-bar header{
		top:46px;
	}
}


/* === Correctif header / logo / menu === */

header{
	display:flex !important;
	align-items:center !important;
	justify-content:space-between !important;
	height:5.5rem !important;
	padding:0 1.25rem !important;
}

header .site-branding,
header .site-logo,
header a[rel="home"]{
	display:flex !important;
	align-items:center !important;
	flex-shrink:0;
}

header a[rel="home"] img{
	display:block !important;
	height:3.25rem !important;
	width:auto !important;
	max-height:100% !important;
}

header nav{
	display:flex !important;
	align-items:center !important;
	margin-left:auto !important;
	height:100% !important;
}

header nav ul.menu{
	display:flex !important;
	align-items:center !important;
	margin:0 !important;
	padding:0 !important;
	height:100% !important;
}

header nav ul.menu > li{
	display:flex !important;
	align-items:center !important;
	height:100% !important;
	margin:0 .35rem !important;
}

header nav ul.menu li a{
	display:flex !important;
	align-items:center !important;
	height:auto !important;
	padding:.75rem 1rem !important;
	margin:0 !important;
	line-height:1.2 !important;
}

/* Dernier bouton contact */
header nav ul.menu > li:last-child > a{
	padding:.85rem 1.25rem !important;
}

/* Responsive */
@media (max-width: 64rem){
	header{
		height:auto !important;
		min-height:5rem !important;
	}

	header a[rel="home"] img{
		height:3rem !important;
	}
}