/*
Theme Name: SB Studios
Description: Thème du site SB Studios, basé sur le thème parent Architecturer (ThemeGoods).
Version: 1.0
Author: SB Studios
License: GNU General Public License
License URI: http://themeforest.net/licenses/regular_extended
Text Domain: architecturer
Template: architecturer
*/
/*
 * Pied de page sur fond charbon : le réglage « couleur des liens du pied de page » du thème
 * ne vise pas le pied de page Elementor, ses liens prendraient la couleur générale (charbon).
 */
#footer_wrapper a {
	color: #F4F0E6;
}

#footer_wrapper a:hover,
#footer_wrapper a:focus {
	color: #D4C08B;
}

/* Boutons de l'éditeur WordPress (fin des articles « Échanger avec le studio ») : style des boutons du site. */
.wp-block-button__link,
.wp-block-button .wp-block-button__link {
	background-color: #D4C08B;
	color: #272522;
	border-radius: 0;
	font-family: "Poppins", sans-serif;
	font-size: 15px;
	padding: 12px 24px;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus {
	background-color: #272522;
	color: #F4F0E6;
}

/*
 * Accueil — diaporama des projets phares : le titre principal est posé en haut à gauche,
 * le nom du projet, sa phrase et le bouton descendent en bas de l'image.
 */
.sb-hero .slider_parallax_wrapper .slide-content {
	align-items: flex-end;
	padding-bottom: 140px; /* au-dessus des points de navigation, placés à ~95 px du bas */
}

.sb-hero .slider_parallax_wrapper .slide .title h2 {
	font-size: 30px;
}

.sb-hero .slider_parallax_wrapper .slide .text {
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}

/* Voile léger pour garantir la lisibilité du texte clair sur les images. */
.sb-hero .slider_parallax_wrapper .image-container::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(39, 37, 34, .45) 0%, rgba(39, 37, 34, .15) 45%, rgba(39, 37, 34, .5) 100%);
	pointer-events: none;
}

/* ==========================================================================
   Charte : couleurs écrites en dur par le thème et son plugin.
   Ivoire #F4F0E6 au lieu du blanc, charbon #272522 au lieu du noir, beige doré #D4C08B pour les accents.
   ========================================================================== */

/* En-tête transparent posé sur les images : liens en ivoire. */
#wrapper.transparent .top_bar:not(.scroll) #menu_wrapper div .nav > li > a,
#wrapper.transparent .top_bar:not(.scroll) #menu_wrapper .nav > li > a,
#wrapper.transparent .top_bar:not(.scroll) .header_action_wrapper a,
#wrapper.transparent .top_bar:not(.scroll) #mobile_nav_icon {
	color: #F4F0E6 !important; /* le thème force #fff !important */
}

/* Diaporama de l'accueil : textes en ivoire, bouton beige doré, numéros en Poppins. */
.slider_parallax_wrapper .slide .title h2,
.slider_parallax_wrapper .slide .text {
	color: #F4F0E6;
}
.slider_parallax_wrapper .slide a.button {
	background-color: #D4C08B;
	border-color: #D4C08B;
	color: #272522;
}
.slider_parallax_wrapper .slide a.button:hover {
	background-color: #272522;
	border-color: #272522;
	color: #F4F0E6;
}
.slider_parallax_wrapper .pagination span.icon,
.slider_parallax_wrapper span.icon {
	font-family: "Poppins", sans-serif;
	font-weight: 400;
	color: #F4F0E6;
}

/* Liste des services à image de fond : fond, voile et séparateurs. */
.elementor-widget .tg_background_list_wrapper {
	background-color: #272522 !important;
}
.elementor-widget .tg_background_list_wrapper .tg_background_list_overlay {
	background-color: rgba(39, 37, 34, .3) !important;
}
.elementor-widget .tg_background_list_wrapper .tg_background_list_column {
	border-color: rgba(244, 240, 230, .5) !important;
}

/* Vignettes de projets : titres et sous-titres. */
.portfolio_grid_title,
.portfolio_grid_subtitle {
	color: #F4F0E6;
}
.portfolio_classic_subtitle {
	color: rgba(39, 37, 34, .6);
}

/* Cartes et pages d'articles. */
.blog_post_content_wrapper h5 a,
.blog_post_content_wrapper .post_content_wrapper p {
	color: #272522;
}
.blog_post_content_wrapper .post_attribute a.sb-read-more {
	font-family: "Poppins", sans-serif !important;
	color: #272522 !important;
}
.post_info_cat,
.post_info_cat a {
	font-family: "Poppins", sans-serif;
	color: rgba(39, 37, 34, .6);
}
.post_img_hover,
.post_img_hover.lazy {
	background-color: #F4F0E6 !important;
}

/* Formulaire de contact : champs sur fond ivoire, trait charbon. */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
	background-color: #F4F0E6 !important;
	color: #272522;
}
#page_caption.hasbg .post_attribute,
#page_caption.hasbg .post_attribute a {
	color: #F4F0E6;
}

/* Galeries des fiches projet : pas de bordure grise. */
.elementor-image-gallery .gallery-item img {
	border: 0 !important;
}

/* Pages légales : informations à compléter, surlignées en beige doré. */
mark {
	background-color: #D4C08B;
	color: #272522;
}

/* Grille des catégories : fond charbon derrière les vignettes (noir dans le plugin). */
.elementor-widget .portfolio_grid_wrapper {
	background-color: #272522 !important;
}

/* En-tête des articles : voile charbon sur l'image (noir dans le thème). */
#page_caption #page_caption_overlay {
	background-color: rgba(39, 37, 34, .3) !important;
}

/* Écran de chargement (LoftLoader) : bouton de fermeture aux couleurs de la charte. */
#loftloader-wrapper .loader-close-button {
	background-color: rgba(39, 37, 34, .3) !important;
	color: #F4F0E6;
}

/* En-tête des articles : catégorie et date en Poppins, ivoire sur l'image. */
#page_caption .post_info_cat,
#page_caption .post_info_cat a,
#page_caption .post_attribute,
#page_caption .post_attribute a {
	font-family: "Poppins", sans-serif !important;
	color: #F4F0E6 !important;
}
#page_caption.hasbg h1 {
	color: #F4F0E6 !important;
}

/*
 * Services : l'image d'un service prend toute la hauteur du texte voisin
 * (recadrée sans déformation). Sur mobile, les colonnes s'empilent : hauteur naturelle.
 */
@media (min-width: 768px) {
	.sb-fill-image > .elementor-widget-wrap,
	.sb-fill-image > .elementor-column-wrap > .elementor-widget-wrap {
		height: 100%;
		align-content: stretch;
	}
	.sb-fill-image .elementor-widget-image,
	.sb-fill-image .elementor-widget-image > .elementor-widget-container {
		height: 100%;
		width: 100%;
	}
	.sb-fill-image .elementor-widget-image img {
		width: 100%;
		height: 100% !important;
		max-height: none;
		object-fit: cover;
	}
}

/* Diaporama sur mobile : flèches masquées (elles passaient sur le sous-titre) ; navigation au doigt et par les points. */
@media (max-width: 767px) {
	.sb-hero .slider_parallax_wrapper .arrows {
		display: none;
	}
}

/* Le Studio : deux images côte à côte au même format (4:5), recadrées au centre. */
.sb-image-pair .elementor-widget-image img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	height: auto;
}

/* Le Studio, équipe : portraits au même format (3:4), recadrés au centre. */
.sb-team .elementor-widget-image img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	height: auto;
}

/*
 * Contact : colonne gauche en pile verticale à la hauteur de la colonne voisine.
 * .sb-push-bottom descend en bas (aligné sur le bas de la carte), .sb-grow remplit la hauteur restante (photo).
 */
@media (min-width: 768px) {
	.sb-stack > .elementor-widget-wrap {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		height: 100%;
	}
	.sb-stack .sb-push-bottom {
		margin-top: auto;
	}
	.sb-stack .sb-grow {
		flex: 1 1 auto;
		min-height: 320px;
		position: relative;
	}
	.sb-stack .sb-grow > .elementor-widget-container {
		position: absolute;
		inset: 0;
	}
	.sb-stack .sb-grow img {
		width: 100%;
		height: 100% !important;
		max-height: none;
		object-fit: cover;
	}
}
.sb-contact-coords .elementor-custom-embed iframe {
	display: block;
	width: 100%;
}

/* Contact : coordonnées sur deux colonnes, libellé comme le reste du site. */
.sb-infos {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); /* colonne de droite plus large : adresse e-mail sur une ligne */
	gap: 34px 30px;
}
.sb-info .sb-info-label {
	display: block;
	margin-bottom: 10px;
	font-family: "Poppins", sans-serif;
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	line-height: 1;
	color: #272522;
}
.sb-info p {
	margin: 0;
	padding: 0 !important;
	font-size: 15px;
	line-height: 1.6;
}
.sb-info a {
	color: #272522;
}
/* Tablette et mobile : colonne trop étroite pour deux colonnes d'infos. */
@media (max-width: 1024px) {
	.sb-infos {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

/* Contact : formulaire en grille (2 champs par ligne, 3 pour les champs facultatifs). */
.sb-form-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 26px 30px;
}
.sb-form-grid > .sb-field {
	grid-column: span 3;
}
.sb-form-grid > .sb-third {
	grid-column: span 2;
}
.sb-form-grid > .sb-full {
	grid-column: 1 / -1;
}
.sb-form-grid p {
	margin: 0;
	padding: 0 !important;
}
.sb-form-grid label {
	display: block;
	font-size: 14px;
}
.sb-form-grid input[type="text"],
.sb-form-grid input[type="email"],
.sb-form-grid input[type="tel"],
.sb-form-grid select,
.sb-form-grid textarea {
	width: 100%;
	border: 0 !important;
	border-bottom: 1px solid #272522 !important;
	border-radius: 0;
	padding: 10px 0 !important;
	font-size: 16px;
}
.sb-form-grid select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 24px !important;
	background: #F4F0E6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23272522' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 4px center !important;
	cursor: pointer;
}
.sb-form-grid textarea {
	height: 130px;
	resize: vertical;
}
.sb-form-grid .sb-consent {
	font-size: 13px;
	line-height: 1.6;
}
.sb-form-grid .sb-consent .wpcf7-list-item {
	margin: 0;
}
.sb-form-grid .sb-consent input {
	accent-color: #D4C08B;
	margin-right: 8px;
}
@media (max-width: 767px) {
	/* Le thème ajoute 20 px de marge au formulaire sur mobile, en plus de celle de la colonne. */
	.sb-contact-form .wpcf7 {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
}
/* Tablette et mobile : un champ par ligne (en deux colonnes, les libellés passaient sur deux lignes). */
@media (max-width: 1024px) {
	.sb-form-grid > .sb-field,
	.sb-form-grid > .sb-third {
		grid-column: 1 / -1;
	}
}
/* Bouton d'envoi : l'indicateur de chargement est placé à côté, sans ajouter de hauteur. */
.sb-form-grid .sb-full:last-child p {
	display: flex;
	align-items: center;
}
.sb-form-grid .wpcf7-spinner {
	margin: 0 0 0 16px;
}
