/*
Theme Name: Vitrine
Author: Cédric Bouchardy
Author URI: https://www.toutfeutoutflammes.fr/
Description: 
Version: 1.0
Tags: 
Text Domain: vitrine
*/

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, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section{display:block;}
body{line-height:1;}
ol, ul{list-style:none;}
blockquote, q{quotes:none;}
blockquote:before, blockquote:after, q:before, q:after{content:'';content:none;}
table{border-collapse:separate;border-spacing:0;}

strong{font-weight:700;}
em{font-style:italic;}
sup{position:relative;font-size:75%;line-height:0;top:-0.5em;}
sub{position:relative;font-size:75%;line-height:0;bottom:-0.25em;}
abbr{border-bottom:1px dotted inherit;cursor:help;}

a{color:inherit;text-decoration:underline;cursor:pointer;}
a:hover{text-decoration:none;}

html{-webkit-text-size-adjust:100%;scroll-behavior: smooth;}
html, body{width:100%;font-family:'Inter Tight', sans-serif;font-size:18px;font-weight:400;line-height:1;background:#fff;color:#000;overflow-x:clip;}

*, 
*:before, 
*:after{outline:0 !important; box-sizing:border-box !important;}

/*****************************************************************************************************************
	MISC CLASSES
*/

	.clear{clear:both;}
	
	.rouge{color:#ef242f;}
	.rouge-lite{color:#fdecec;}
	
	.bleu{color:#17193b;}
	
	.required{color:#ec008c;}
	
/*****************************************************************************************************************
	COOKIES
*/
	

	
/*****************************************************************************************************************
	SITE
*/

#site{position:relative;display:block;margin:0 auto;padding:0;width:100%;background:#fff;}

	#site .container {
		position:relative;
		width: min( calc(100% - 48px), var(--ttf-container) );
		margin-inline: auto;
	}
	
	#site .btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 50px;
		padding: 14px 30px;
		border: 1px solid transparent;
		border-radius: 999px;
		font-size: 1.2rem;
		font-weight: 700;
		line-height: 1.2;
		letter-spacing: -0.005em;
		text-decoration: none;
		transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
	}
	
	#site .btn:hover {
		transform: translateY(-2px);
	}
	
	#site .btn-primary {
		color: #ffffff;
		background: var(--ttf-accent-action);
		border-color: var(--ttf-accent-action);
	}
	
	#site .btn-primary:hover {
		color: #ffffff;
		background: var(--ttf-accent-hover);
		border-color: var(--ttf-accent-hover);
		box-shadow: 0 10px 26px rgba(239, 36, 47, 0.18);
	}
	
	#site .btn-secondary {
		color: var(--ttf-text);
		background: #ffffff;
		border-color: var(--ttf-border-strong);
	}
	
	#site .btn-secondary:hover {
		color: #ffffff;
		background: var(--ttf-bg-dark);
		border-color: var(--ttf-bg-dark);
	}
	
	#site .text-link {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		color: var(--ttf-text);
		font-size: 0.95rem;
		font-weight: 700;
		line-height: 1.3;
		text-decoration: none;
	}
	
	#site .text-link span {
		color: var(--ttf-accent);
		transition: transform 180ms ease;
	}
	
	#site .text-link:hover span {
		transform: translateX(5px);
	}
	
	#site .clear{clear:both;}
	
	#site .required{color:#ec008c;}
	
	/* Accessibilité */
	
	#site a:focus-visible,
	#site button:focus-visible {
		outline: 3px solid var(--ttf-accent);
		outline-offset: 4px;
	}
	
	#site ::selection {
		color: #ffffff;
		background: var(--ttf-accent);
	}
	
	/* Réduction des animations */
	
	@media (prefers-reduced-motion: reduce) {
	
		#site *,
		#site *::before,
		#site *::after {
			outline:0 !important; 
			box-sizing:border-box !important;
			scroll-behavior: auto !important;
			transition-duration: 0.01ms !important;
			animation-duration: 0.01ms !important;
			animation-iteration-count: 1 !important;
		}
	
	}

/**********************************************************************************************************************************************************************************************************************************************************************************************************************/
/**********************************************************************************************************************************************************************************************************************************************************************************************************************/
/**********************************************************************************************************************************************************************************************************************************************************************************************************************/

/* ==========================================================================
   VARIABLES
   ========================================================================== */

:root {
	
	/* home */
    --ttf-white: #ffffff;

    --ttf-bg: #ffffff;
    --ttf-bg-alt: #f7f7fa;
    --ttf-bg-soft: #fff3f4;
    --ttf-bg-dark: #17193b;

    --ttf-text: #17193b;
    --ttf-text-light: #62647d;
    --ttf-text-muted: #7d7f94;
    --ttf-text-on-dark: #ffffff;

    --ttf-accent: #ef242f;

    --ttf-accent-action: #e2212c;
    --ttf-accent-hover: #cd1d27;

    --ttf-border: rgba(23, 25, 59, 0.13);
    --ttf-border-strong: rgba(23, 25, 59, 0.22);
    --ttf-border-dark: rgba(255, 255, 255, 0.15);

    --ttf-radius-sm: 8px;
    --ttf-radius: 14px;
    --ttf-radius-lg: 24px;

    --ttf-container: 1440px;
    --ttf-container-text: 760px;

    --ttf-section-space: clamp(72px, 7vw, 110px);
	
	/* Page */	
    --page-content-width: 980px;
    --page-sidebar-width: 360px;
    --page-gap: clamp(3.5rem, 6vw, 6rem);

    --page-text: #17181a;
    --page-text-soft: #65686d;
    --page-text-muted: #92959a;

    --page-bg: #ffffff;
    --page-bg-soft: #f6f7f8;

    --page-border: #e6e7e9;

    --page-primary: #e2212c;
    --page-primary-hover: #cd1d27;

    --page-radius-sm: 12px;
    --page-radius-md: 20px;
    --page-radius-lg: 28px;
	
    /* Hauteur du header fixe. */
    --header-height: 78px;
	
	/* Default */
    color: var(--ttf-text);
    background: var(--ttf-bg);

    font-size: 16px;
    line-height: 1.65;
	
}

/* ==========================================================================
   BASE
   ========================================================================== */

#main-home img {
    display: block;
    max-width: 100%;
    height: auto;
}

#main-home a {
    color: inherit;
}

#main-home p {
    max-width: 68ch;
    margin-top: 0;
    margin-bottom: 16px;
    line-height: 1.65;
}

#main-home p:last-child {
    margin-bottom: 0;
}

#main-home strong {
    font-weight: 700;
}

#main-home ul,
#main-home ol {
    margin-top: 0;
}

#main-home .section {
    position: relative;
    padding-block: var(--ttf-section-space);
}

#main-home .section-actions {
    margin-top: 44px;
}

#main-home h1,
#main-home h2,
#main-home h3 {
    margin-top: 0;
    color: var(--ttf-text);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

#main-home h1 {
    max-width: 1000px;
    margin-bottom: 24px;
    font-size: clamp(2.9rem, 5vw, 4.9rem);
    font-weight: 700;
    line-height: 1.02;
    letter-spacing: -0.04em;
}

#main-home h2 {
    margin-bottom: 20px;
    font-size: clamp(2.3rem, 3.4vw, 3.45rem);
    line-height: 1.08;
    letter-spacing: -0.032em;
}

#main-home h3 {
    margin-bottom: 15px;
    font-size: clamp(2rem, 1.7vw, 2.2rem);
    line-height: 1.22;
    letter-spacing: -0.02em;
}

#main-home .lead {
    font-size: clamp(1.13rem, 1.45vw, 1.35rem);
    line-height: 1.55;
}

#main-home .eyebrow {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 16px;
    color: var(--ttf-accent);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: 0.095em;
    text-transform: uppercase;
}

#main-home .section-heading {
    max-width: 790px;
    margin-bottom: clamp(34px, 4.5vw, 54px);
}

#main-home .section-heading-centered {
    margin-inline: auto;
    text-align: center;
}

#main-home .section-heading h2:last-child {
    margin-bottom: 0;
}

#main-home p.section-intro {
    max-width: 700px;
    color: rgba(255, 255, 255, 0.67);
    font-size: 1.2rem;
    line-height: 1.68;
}

/* ==========================================================================
   HERO
   ========================================================================== */

#main-home .home-hero {
	position:relative;
    display: flex;
    align-items: center;
    padding-block: clamp(90px, 8vw, 200px);
    overflow: hidden;
	background: radial-gradient( circle at 64% 32%, rgba(239, 36, 47, 0.45), transparent 40% ), var(--ttf-bg-dark);
}

#main-home .home-hero::before {
	position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 15px;
    background: #ef242f;
    content: "";
}

#main-home .hero-content {
    position: relative;
    z-index: 1;
    max-width: 1040px;
}

#main-home .hero-content .eyebrow {
    margin-bottom: 24px;
}

#main-home .hero-content h1 {
    color:#fff;
}

#main-home .hero-lead {
    max-width: 830px;
    margin-bottom: 30px;
    font-size: clamp(1.3rem, 2vw, 1.8rem);
    font-weight: 400;
    line-height: 1.42;
    letter-spacing: -0.022em;
	color: rgba(255, 255, 255, 0.67);
}

#main-home .hero-text {
    max-width: 680px;
    margin-bottom: 27px;
    color: rgba(255, 255, 255, 0.67);
    font-size: 1.2rem;
    line-height: 1.42;
}

#main-home .hero-reassurance {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 25px;
    margin: 0 0 40px;
    padding: 0;
    list-style: none;
    font-size: 1rem;
    font-weight: 700;
}

#main-home .hero-reassurance li {
    position: relative;
    padding-left: 18px;
	color:#fff;
}

#main-home .hero-reassurance li::before {
    position: absolute;
    top: 0.5em;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ttf-accent);
    content: "";
    transform: translateY(-50%);
}

#main-home .hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#main-home .hero-actions .btn-secondary{
	color: #ffffff;
    background: transparent;
    border-color: rgba(255, 255, 255, 0.28);
}

#main-home .hero-actions .btn-secondary:hover{
	color: var(--ttf-text);
    background: #ffffff;
    border-color: #ffffff;
}

#main-home .hero-note {
    max-width: 580px;
    margin-top: 19px;
    color: rgba(255, 255, 255, 0.67);
    font-size: 1rem;
    line-height: 1.55;
}

#main-home .hero-bg{
	position: absolute;
    top: 38%;
    left: 36%;
    display: block;
    width: 1200px;
    height: auto;
    opacity: 0.15;
}

#main-home .hero-bg img{
	width:2000px;
	height:auto;	
}

/* ==========================================================================
   PROBLÈME / BÉNÉFICES
   ========================================================================== */

#main-home > .section-benefits {
    position: relative;
    background: #fff;
}

#main-home .benefits-layout {
    display: grid;
    grid-template-columns: minmax(300px, 0.9fr) minmax(420px, 1.1fr);
    gap: clamp(55px, 8vw, 110px);
    align-items: center;
}

#main-home .benefits-intro {
    max-width: 650px;
}

#main-home .benefits-intro .section-heading {
    margin-bottom: 28px;
}

#main-home .benefits-content {
    max-width: 610px;
}

#main-home .benefits-content .lead {
    margin-bottom: 20px;
	color: var(--ttf-text-light);
}

#main-home .benefits-content p {
	color: var(--ttf-text-light);
}

#main-home .benefits-content p:last-child {
    margin-bottom: 0;
}

#main-home .benefits-content p strong{
	color:#ef242f;
}

#main-home .benefits-list {
    display: grid;
    gap: 16px;
}

#main-home .benefit-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 20px;
    padding: 24px 26px;
    border: 1px solid rgba(23, 25, 59, 0.08);
    border-radius: var(--ttf-radius-lg);
    background: #fff;
    box-shadow: 0 1px 2px rgba(23, 25, 59, 0.02), 0 10px 30px rgba(23, 25, 59, 0.04);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

#main-home .benefit-item:hover {
    transform: translateY(-3px);
    border-color: rgba(239, 36, 47, 0.18);
    box-shadow: 0 2px 4px rgba(23, 25, 59, 0.03), 0 18px 40px rgba(23, 25, 59, 0.07);
}

#main-home .benefit-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 14px;
    background: rgba(239, 36, 47, 0.08);
    color: var(--ttf-primary, #ef242f);
    flex-shrink: 0;
}

#main-home .benefit-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#main-home .benefit-content h3 {
    margin: 1px 0 8px;
    font-size: clamp(18px, 1.5vw, 21px);
    line-height: 1.25;
}

#main-home .benefit-content h3 span {
	color:#ef242f;
}

#main-home .benefit-content p {
    margin: 0;
    color: rgba(23, 25, 59, 0.67);
    line-height: 1.65;
}

@media (max-width: 950px) {

    #main-home .benefits-layout {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    #main-home .benefits-intro {
        max-width: 760px;
    }

    #main-home .benefits-content {
        max-width: 700px;
    }

    #main-home .benefits-list {
        max-width: 760px;
    }
}

@media (max-width: 600px) {

    #main-home .benefit-item {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 22px 20px;
    }

    #main-home .benefit-icon {
        width: 46px;
        height: 46px;
    }

    #main-home .benefit-icon svg {
        width: 22px;
        height: 22px;
    }
}

/* ==========================================================================
   AUDIT
   ========================================================================== */

#main-home > .section-audit {
    position: relative;
    background: #fff;
	padding-block:0 60px;
}

#main-home .audit-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    align-items: center;
    background: #feeeef;
    border: 3px solid #e2212c;
    padding: 30px;
    border-radius: 30px;
}

#main-home .audit-intro {

}

#main-home .audit-intro .section-heading {
    max-width: none;
    margin: 0 0 1rem 0;
}

#main-home .audit-intro .section-heading h2 {
	font-size:2.3rem;
}

#main-home .audit-content {

}

@media (max-width: 950px) {
	#main-home .audit-layout {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   PRESTATIONS
   ========================================================================== */

#main-home .section-services {
    background: radial-gradient( circle at 28% 28%, rgba(239, 36, 47, 0.45), transparent 40% ), var(--ttf-bg-dark);
}

#main-home .section-services::before {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 15px;
    background: #ef242f;
    content: "";
}

#main-home .section-services .section-heading {
	max-width:100%;
}

#main-home .section-services .section-heading h2 {
    color:#fff;
}

#main-home .services-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
	gap:30px;
}

#main-home .service-card {
    display: flex;
    flex-direction: column;
	justify-content: space-between;
    min-height: 420px;
    padding: clamp(28px, 3.5vw, 44px);
    background: #fff;
    transition: background-color 180ms ease, transform 180ms ease;
	border-radius:var(--ttf-radius-lg);
}

#main-home .service-card:hover {
    /*background: var(--ttf-bg-alt);*/
}

#main-home .service-card-header {
    margin-bottom: 12px;
}

#main-home .service-kicker,
#main-home .project-meta,
#main-home .post-category {
    margin-bottom: 11px;
    color: var(--ttf-accent);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

#main-home .service-card-header .service-kicker {
	position:relative;
	padding-left:14px;
}

#main-home .service-card-header .service-kicker::before { 
	position: absolute;
    top: 0.55em;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ttf-accent);
    content: "";
    transform: translateY(-50%);
}

#main-home .service-card-content {
    margin-bottom: 28px;
}

#main-home .service-card-content p {
    margin-bottom: 13px;
    color: var(--ttf-text-light);
    line-height: 1.62;
}

#main-home .service-card-content strong {
    color: var(--ttf-text);
}

#main-home .service-card > .text-link {
    margin-top: auto;
}

#main-home .section-services .btn-secondary{
	color: #ffffff;
    background: transparent;
    border-color: rgba(255, 255, 255, 0.28);
}

#main-home .section-services .btn-secondary:hover{
	color: var(--ttf-text);
    background: #ffffff;
    border-color: #ffffff;
}

/* ==========================================================================
   RÉALISATIONS
   ========================================================================== */

#main-home .section-projects {
    background: var(--ttf-bg-alt);
}

#main-home .section-projects .eyebrow,
#main-home .section-projects .project-meta {
    color: var(--ttf-accent);
}

#main-home .section-projects h2,
#main-home .section-projects h3,
#main-home .section-projects .text-link {}

#main-home .section-projects .section-intro {
    color: var(--ttf-text-light);
}

#site .projects-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
}

.page-id-21 #site .projects-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
	margin-top: 3rem;
}

#site .project-card {
    display: flex;
    flex-direction: column;
    min-height: 440px;
    overflow: hidden;
    border: 1px solid var(--ttf-border);
    border-radius: var(--ttf-radius-lg);
    background: #ffffff;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

#site .project-card:hover {
    transform: translateY(-3px);
    border-color: var(--ttf-border-strong);
    box-shadow: 0 16px 40px rgba(23, 25, 59, 0.06);
}

#site .project-card > img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

#site .project-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: clamp(25px, 3vw, 34px);
}


#site .project-card .project-meta {
    margin-top: 0;
	margin-bottom: 11px;
    color: var(--ttf-accent);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

#site .project-card h2,
#site .project-card h3 {
	margin-top:0;
	margin-bottom: 15px;
    font-size: clamp(2rem, 1.7vw, 2.2rem);
    line-height: 1.22;
    letter-spacing: -0.02em;
    color: var(--ttf-text);
    font-weight: 700;
    text-wrap: balance;
}

#site .project-card h2 a,
#site .project-card h3 a {
    text-decoration: none;
    transition: color 180ms ease;
    margin-bottom: 11px;
    font-weight: 700;
    line-height: 1.3;
    margin-top: 0;
	color: var(--ttf-text);
}

#site .project-card h2 a:hover,
#site .project-card h3 a:hover {
    color: var(--ttf-accent);
}

#site .project-card .project-intro{
	margin-top: 0;
    margin-bottom: 1.35rem;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: -0.004em;
    color: var(--page-text-soft);
}

#main-home .project-case {
    margin-bottom: 24px;
}

#site .project-case p {
    margin-bottom: 13px;
    color: var(--ttf-text-light);
    font-size: 0.93rem;
    line-height: 1.62;
}

#site .project-case strong {}

#site .project-card .text-link {
    margin-top: auto;
}

#site .project-visual {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.06);
}

#site .project-visual::after {
    position: absolute;
    inset: 0;
    background: linear-gradient( to top, rgba(23, 25, 59, 0.18), transparent 45% );
    content: "";
    pointer-events: none;
}

#site .project-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform 450ms cubic-bezier(.2, .7, .2, 1), filter 250ms ease;
}

#site .project-card:hover .project-visual img {
    transform: scale(1.025);
}

#site .project-card {
    min-height: 0;
}

#site .project-card-content {
    /*min-height: 365px;*/
}

#site .project-navigation {
    margin-top: 3rem;
    border-top: 1px solid #ddd;
}

#site .project-navigation .nav-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

#site .project-navigation .nav-next {
    grid-column: 2;
    text-align: right;
}

#site .project-navigation a {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    text-decoration: none;
}

#site .project-navigation .post-navigation-label {
    font-size: 0.85rem;
}

#site .project-navigation .post-navigation-title {
    font-weight: 700;
    overflow-wrap: anywhere;
}

@media (max-width: 600px) {
    #site .project-navigation .nav-links {
        grid-template-columns: 1fr;
    }

    #site .project-navigation .nav-next {
        grid-column: 1;
        text-align: left;
    }
}


/* ==========================================================================
   À PROPOS
   ========================================================================== */

#main-home .section-about {
    background: radial-gradient( circle at 68% 58%, rgba(239, 36, 47, 0.45), transparent 40% ), var(--ttf-bg-dark);
}

#main-home .section-about::before {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 15px;
    background: #ef242f;
    content: "";
}

#main-home .about-layout {
    display: grid;
    grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(45px, 7vw, 90px);
    align-items: center;
}

#main-home .about-media {
    position: relative;
    min-height: 500px;
}

#main-home .about-media .about-media-portrait{
	border-radius: var(--ttf-radius-lg);	
    padding: 10px;
    overflow: hidden;
}

#main-home .about-media .about-media-portrait img{
    width: 100%;
    height: 100%;
    min-height: 500px;
    object-fit: cover;
	border-radius:var(--ttf-radius-lg);
}

#main-home .about-media .about-media-france-num{
	position: absolute;
    left: 30px;
    bottom: 30px;
    max-width: 100px;
    border: 6px solid #fff;
    border-radius: 6px;
}

#main-home .about-media .about-media-france-num img{
	width:100%;
	height:auto;
}

#main-home .about-media:empty {
    display: none;
}

#main-home .about-media:empty + .about-content {
    grid-column: 1 / -1;
    max-width: 800px;
}

#main-home .about-content {
    max-width: 700px;
}

#main-home .about-content h2 {
    color:#fff;
}

#main-home .about-content .lead {
    margin-bottom: 22px;
}

#main-home .about-content p:not(.eyebrow) {
    margin-bottom: 14px;
    color: rgba(255, 255, 255, 0.67);
}

#main-home .about-content strong {
    color:#fff;
}

#main-home .about-content .btn {
    margin-top: 18px;
}

/* ==========================================================================
   MÉTHODE
   ========================================================================== */

#main-home .section-process {
    background: #fff;
}

#main-home .section-process .container {
    display: grid;
    grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.5fr);
    gap: clamp(60px, 8vw, 130px);
    align-items: start;
}

#main-home .section-process .section-heading {
    position: sticky;
    top: 120px;
    margin: 0;
}

#main-home .section-process .section-heading h2 {
    max-width: 420px;
}

#main-home .process-grid {
    margin: 0;
    padding: 0;
    list-style: none;
}

#main-home .process-card {
    display: grid;
    grid-template-columns: 55px minmax(0, 1fr);
    column-gap: 28px;
    padding: 30px 0 34px;
    border-top: 1px solid var(--ttf-border);
}

#main-home .process-card:first-child {
    padding-top: 0;
    border-top: 0;
}

#main-home .process-card:last-child {
    padding-bottom: 0;
}

#main-home .process-number {
    grid-column: 1;
    grid-row: 1 / span 10;
    display: block;
    color: #ffffff;
    font-size: 1rem;
    font-weight: 700;
    line-height: 40px;
    width: 40px;
    height: 40px;
    background: #ef242f;
    border-radius: 50%;
    text-align: center;
}

#main-home .process-card h3,
#main-home .process-card p {
    grid-column: 2;
}

#main-home .process-card h3 {
    margin: 2px 0 14px;
    font-size: clamp(1.4rem, 1.5vw, 1.8rem);
}

#main-home .process-card p {
    max-width: 620px;
    margin: 0 0 9px;
    color: var(--ttf-text-light);
    font-size: 1.1rem;
    line-height: 1.65;
}

#main-home .process-card p:last-child {
    margin-bottom: 0;
}

#main-home .process-card strong {
    color: var(--ttf-text);
    font-weight: 600;
}

@media (max-width: 900px) {

    #main-home .section-process .container {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    #main-home .section-process .section-heading {
        position: static;
    }

    #main-home .section-process .section-heading h2 {
        max-width: 600px;
    }
}


@media (max-width: 600px) {

    #main-home .section-process .container {
        gap: 38px;
    }

    #main-home .process-card {
        grid-template-columns: 40px minmax(0, 1fr);
        column-gap: 16px;

        padding: 26px 0 29px;
    }

    #main-home .process-card h3 {
        margin-bottom: 11px;
    }

    #main-home .process-card p {
        font-size: 1rem;
        line-height: 1.6;
    }
}

/* ==========================================================================
   AVIS CLIENT
   ========================================================================== */

#main-home .section-testimonial {
    background: radial-gradient( circle at 28% 48%, rgba(239, 36, 47, 0.45), transparent 40% ), var(--ttf-bg-dark);
}

#main-home .section-testimonial::before {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 15px;
    background: #ef242f;
    content: "";
}

#main-home .section-testimonial h2 {
    color: #ffffff;
}

#main-home .testimonial-layout {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: clamp(32px, 5vw, 65px);
    align-items: start;
}

#main-home .rating-block {
    padding-top: 8px;
}

#main-home .rating-stars {
    margin-bottom: 8px;
    color: #ffc107;
    font-size: 1.18rem;
}

#main-home .rating-score {
	display:flex;
	flex-direction: row;
    gap: 6px;
    margin-bottom: 18px;
    color: rgba(255, 255, 255, 0.66);
}

#main-home .rating-score strong {
    color: #ffffff;
    font-size: 1.25rem;
}

#main-home .rating-score img{
	width:30px;
	height:auto;
}

#main-home .section-testimonial .text-link {
    color: #ffffff;
}

#main-home .testimonial-card {
    position: relative;
    margin: 0;
    padding: clamp(30px, 4vw, 48px);
    border: 1px solid var(--ttf-border-dark);
    border-radius: var(--ttf-radius-lg);
    background: rgba(255, 255, 255, 0.04);
}

#main-home .testimonial-card > p {
    color: #ffffff;
    font-size: clamp(1.2rem, 1.7vw, 1.55rem);
    line-height: 1.52;
    letter-spacing: -0.018em;
}

#main-home .testimonial-card footer {
    display: flex;
    flex-direction: row;
	gap:10px;
    margin-top: 22px;
    color: rgba(255, 255, 255, 0.62);
}

#main-home .testimonial-card footer strong {
	margin-bottom:8px;
    color: #ffffff;
}

#main-home .testimonial-card footer .testimonial-thumb{}
#main-home .testimonial-card footer .testimonial-thumb img{
	width: 55px;
    height: 55px;
    border-radius: 50%;
    border: 1px solid #ffffff26;
    padding: 4px;
}

#main-home .testimonial-card footer .testimonial-author{
	display: flex;
    flex-direction: column;
	justify-content: center;
}

#main-home .testimonial-conclusion {
    max-width: 760px;
    margin: 38px 0 8px;
    color: rgba(255, 255, 255, 0.64);
}

#main-home .testimonial-signature {
    color: #ffffff;
    font-size: 1.05rem;
}

#main-home .testimonial-signature::before {
    content: '';
    display: inline-block;
    width: 20px;
    height: 2px;
    background: #ef242f;
    margin: 0px 4px 1px 0;
}

/* ==========================================================================
   LOCAL
   ========================================================================== */

#main-home .section-local {
    background: #ffffff;
}

#main-home .local-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(44px, 7vw, 90px);
}

#main-home .local-layout .section-heading {
    margin-bottom: 0;
}

#main-home .local-content {
    max-width: 650px;
}

#main-home .local-content p {
    margin-bottom: 14px;
    color: var(--ttf-text-light);
}

#main-home .local-content strong {
    color: var(--ttf-text);
}

#main-home .local-content .btn {
    margin-top: 18px;
}

/* ==========================================================================
   BLOG
   ========================================================================== */

#main-home .section-blog {
	background: var(--ttf-bg-alt);
}

#main-home .section-blog .section-intro {
	color: var(--ttf-text-light);
}


/* GRID */
#main-home .blog-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
	border-top: 0;
}

/* CARD */
#main-home .post-card {
	display: flex;
	flex-direction: column;
	min-height: 0;
	padding: 0;
	overflow: hidden;

	border: 1px solid var(--ttf-border);
	border-radius: var(--ttf-radius-lg);
	background: #fff;

	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

#main-home .post-card:hover {
	transform: translateY(-3px);
	border-color: var(--ttf-border-strong);
	box-shadow: 0 16px 40px rgba(23, 25, 59, 0.06);
}


/* IMAGE */
#main-home .post-visual {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #ececf2;
}

#main-home .post-visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 450ms cubic-bezier(.2, .7, .2, 1);
}

#main-home .post-card:hover .post-visual img {
	transform: scale(1.025);
}


/* CONTENT */
#main-home .post-card-content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(25px, 3vw, 34px);
}

#main-home .post-infos {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin-bottom: 19px;
}

#main-home .post-infos .post-category,
#main-home .post-infos time {
	margin: 0;
}


/* DATE */
#main-home .post-card time {
	display: block;
	color: var(--ttf-text-muted);
	font-size: 0.78rem;
}


/* TITLE */
#main-home .post-card h3 {
	margin-bottom: 15px;
	font-size: clamp(1.35rem, 1.9vw, 1.8rem);
	line-height: 1.22;
}

#main-home .post-card h3 a {
	color: inherit;
	text-decoration: none;
	transition: color 180ms ease;
}

#main-home .post-card h3 a:hover {
	color: var(--ttf-accent);
}


/* TEXT */
#main-home .post-card-content > p {
	color: var(--ttf-text-light);
	line-height: 1.62;
}


/* LINK */
#main-home .post-card-content > .text-link {
	margin-top: auto;
	padding-top: 20px;
}


@media (max-width: 1200px) {

	.page-id-21 #site .projects-grid {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}
	
	#site .projects-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}



/* ==========================================================================
   TABLETTES
   ========================================================================== */

@media (max-width: 1024px) {

    #main-home {
        --ttf-section-space: clamp(68px, 8vw, 92px);
    }

    #site .project-card {
        min-height: auto;
    }

    #main-home .testimonial-layout {
        grid-template-columns: 210px minmax(0, 1fr);
    }

}


/* ==========================================================================
   TABLETTES / MOBILES
   ========================================================================== */

@media (max-width: 768px) {
	
	#site .projects-grid {
		grid-template-columns: repeat(1, minmax(0, 1fr));
	}
	
    #main-home {
        --ttf-section-space: 68px;
    }

    #main-home h1 {
        font-size: clamp(2.55rem, 11vw, 3.8rem);
        line-height: 1.02;
    }

    #main-home h2 {
        font-size: clamp(2.15rem, 8vw, 2.75rem);
        line-height: 1.08;
    }

    #main-home h3 {
        font-size: 2rem;
    }

    #main-home .section-heading {
        margin-bottom: 34px;
    }

    /* HERO */

    #main-home .home-hero {
        min-height: auto;

        padding-top: 42px;
        padding-bottom: 52px;
    }

    #main-home .home-hero::after {
        display: none;
    }

    #main-home .hero-content .eyebrow {
        margin-bottom: 20px;
    }

    #main-home .hero-lead {
        font-size: 1.28rem;
        line-height: 1.45;
    }

    #main-home .hero-text {
        font-size: 0.98rem;
    }

    #main-home .hero-actions {
        align-items: stretch;
        flex-direction: column;

        max-width: 400px;
    }

    #main-home .hero-actions .btn {
        width: 100%;
    }

    /* PRESTATIONS */

    #main-home .services-grid {
        grid-template-columns: 1fr;
    }

    #main-home .service-card {
        min-height: auto;
        padding: 28px;
    }

    /* ABOUT / SKILLS / LOCAL */

    #main-home .about-layout,
    #main-home .local-layout,
	#main-home .intro-layout {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    /* TESTIMONIAL */

    #main-home .testimonial-layout {
        grid-template-columns: 1fr;
    }

    #main-home .rating-block {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 8px 18px;
    }

    #main-home .rating-stars,
    #main-home .rating-score {
        margin-bottom: 0;
    }

    #main-home .testimonial-card {
        padding: 29px 24px;
    }

    #main-home .testimonial-card > p {
        font-size: 1.2rem;
    }

    /* BLOG */

    #main-home .blog-grid {
        grid-template-columns: 1fr;
    }

    #main-home .post-card:first-child {
        border-right: 0;
    }

    #main-home .post-card {
        min-height: auto;
    }

}


/* ==========================================================================
   PETITS MOBILES
   ========================================================================== */

@media (max-width: 480px) {

    #main-home {
        --ttf-section-space: 58px;
    }

    #main-home h1 {
        font-size: clamp(2.35rem, 11.5vw, 3rem);
    }

    #main-home h2 {
        font-size: clamp(1.8rem, 9vw, 2.3rem);
    }

    #main-home h3 {
        font-size: 1.8rem;
    }
	
    #main-home .btn {
        min-height: 48px;
    }

    #main-home .eyebrow {
        font-size: 0.71rem;
    }

    #main-home .hero-reassurance {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    #main-home .service-card {
        padding: 26px 20px;
    }

    #main-home .project-card-content {
        padding: 25px 21px;
    }

    #main-home .testimonial-card {
        padding: 28px 21px;
    }

}

/* ================================================================================================== */
/* ================================================================================================== */
/* ==================================================================================================
   PAGES ET CONTENUS
===================================================================================================== */
/* ================================================================================================== */
/* ================================================================================================== */

/* ==========================================================
   FORMULAIRE
========================================================== */
	
	#site .contact_form,
	#site .devis_form{
		display: block;
		margin: 30px 0 0 0;
		padding: 1.6rem;
		border: 1px solid var(--ttf-border);
		border-radius: var(--ttf-radius-lg);
		background: #fff;
		box-shadow: 0 16px 40px rgba(23, 25, 59, 0.06);
	}
	
	#site .contact_form h3,
	#site .devis_form h3{
		margin-top:0;
	}
	
	#site .contact_form p.small,
	#site .devis_form p.small{
		margin: 10px 0 30px 0;
		font-size: 14px;
		line-height: 1.2;
		letter-spacing: 0;
		color:var(--page-text-soft);
	}
	#site .contact_form p.small a,
	#site .devis_form p.small a{
		color:var(--page-text-soft);
		text-decoration-color: var(--page-text-soft);
	}
	
	#site .form_field{clear:both;display:block;margin:0 0 12px 0;}
	#site .form_field:after{content:'';display:table;clear:both;}
	#site .form_field .required{color:#c12121;}
	
	#site .form_field_text label{display:block;padding:12px 0 10px 0;font-weight:700;}
	#site .form_field_text input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;padding:16px 20px;font-size:16px;line-height:24px;background:#f7f7f7;border:1px solid #dcdcde;}

	#site .form_field_select label{display:block;padding:12px 0 10px 0;font-weight:700;}
	#site .form_field_select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;padding:16px 20px;font-size:16px;line-height:24px;background-size:16px 16px;border:1px solid #dcdcde;background:#f7f7f7 url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 15px top 55%;cursor:pointer;}
	
	#site .form_field_textarea label{display:block;padding:12px 0 10px 0;font-weight:700;}
	#site .form_field_textarea textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;padding:16px 20px;font-size:16px;line-height:24px;background:#f7f7f7;border:1px solid #dcdcde;}
	
	#site .form_field_checkbox{padding:0;}
	#site .form_field_checkbox span{line-height:24px;}

	#site .form_field_submit{margin:0;}
	#site .form_field_submit label{display:none;padding:12px 0 10px 0;}
	#site .form_field_submit button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-block;padding:12px 40px;font-weight:700;font-size:16px;line-height:24px;border:0;border-radius:30px;cursor:pointer;background:var(--ttf-accent-action);color:#fff;transition:all ease 0.2s;}
	#site .form_field_submit button:hover{background:var(--ttf-accent-hover);}
	#site .form_field_submit button:disabled{cursor:not-allowed;}
	
	

	#site p.form_field_info{margin:0 0 10px 0;}

	#site .form_alert{display:none;margin:20px 0 0 0;font-size:14px;line-height:24px;}
	#site .form_alert ul{margin:1em 0 0 1em;}
	#site .form_alert ul li{margin:0;font-size:16px;}
	#site .form_alert .success{
		display: block;
		padding: 20px;
		background: #f4fff7;
		color: #171717;
		border-radius: 10px;
		border: 1px solid #4ab866;
	}
	#site .form_alert .success i{
		color: #fff;
		display: inline-block;
		width: 24px;
		height: 24px;
		background: #4ab866;
		border-radius: 50%;
		line-height: 24px;
		margin: 0 6px 0 0;
	}
	#site .form_alert .error{
		display: block;
		padding: 20px;
		background: #fff0f0;
		color: #171717;
		border-radius: 10px;
		border: 1px solid #cc1818;	
	}
	#site .form_alert .error i{
		color: #fff;
		display: inline-block;
		width: 24px;
		height: 24px;
		background: #cc1818;
		border-radius: 50%;
		line-height: 24px;
		margin: 0 6px 0 0;
	}

/* ==========================================================
   GOTOTOP
========================================================== */

	#gototop{position:fixed;right:20px;bottom:20px;display:none;}
	#gototop a{position:relative;display:block;width:40px;height:40px;border-radius:50%;background:#ef242f;color:#fff;text-align:center;font-size:18px;
	line-height:38px;transition:all ease 0.2s;}
	#gototop a:hover{opacity:0.9;}
	#gototop a::before{content:'';position:absolute;left:4px;top:4px;display:block;width:32px;height:32px;border-radius:50%;}
	
/* ==========================================================
   BOUTONS
========================================================== */
	
	.site-main .button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		padding: 0 1.35rem;
		border: 1px solid transparent;
		border-radius: 999px;
		font-family: "Inter Tight", sans-serif;
		font-size: 1rem;
		font-weight: 700;
		line-height: 1;
		text-decoration: none;
		transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
	}
	
	.site-main .button:hover {
		transform: translateY(-1px);
	}
	
	.site-main .button--primary {
		color: #fff;
		background: var(--page-text);
	}
	
	.site-main .button--primary:hover {
		background: #303236;
	}
	
/* ==========================================================
   FIL D'ARIANE
========================================================== */

	.breadcrumbs {
		margin-top: 4rem;
		font-size: 0.81rem;
		font-weight: 400;
		line-height: 1.4;
		color: var(--page-text-muted);
	}
	
	.breadcrumbs a {
		color: var(--page-text-muted);
		text-decoration: none;
		transition: color 180ms ease;
	}
	
	.breadcrumbs a:hover {
		color: var(--page-text);
	}

/* ==========================================================
   MAIN
========================================================== */

#main-home{}
#main-page{}

.site-main{}
.site-main > .hentry{}

	/* ==========================================================
	   PAGE HEADER
	========================================================== */

	.entry-header{
		position:relative;
		display: flex;
		align-items: center;
		padding-block:clamp(60px, 5vw, 100px);
		overflow: hidden;
		background:radial-gradient( circle at 64% 32%, rgba(239, 36, 47, 0.45), transparent 40% ), var(--ttf-bg-dark);
	}
	
	.entry-header::before {
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 15px;
		background: #ef242f;
		content: "";
	}
	
		.header-bg{
			position: absolute;
			top: 28%;
			left: 28%;
			display: block;
			width: 1200px;
			height: auto;
			opacity: 0.15;
		}
		
		.header-bg img{
			display:block;
			width: 2000px;
			max-width:100%;
    		height: auto;
		}
		
		.header-eyebrow{
			position:relative;
			display: flex;
			align-items: center;
			flex-wrap: wrap;
			gap: 7px;
			margin-bottom: 24px;
			color: var(--page-primary);
			font-size: 0.77rem;
			font-weight: 700;
			line-height: 1.1;
			letter-spacing: 0.09em;
			text-transform: uppercase;	
		}
		
		.header-title{
			position:relative;
			max-width: 1200px;
			margin-top: 0;
			margin-bottom: 30px;
			font-family: "Inter Tight", sans-serif;
			font-size: clamp(2.9rem, 5vw, 4.9rem);
			font-weight: 700;
			line-height: 1.02;
    		letter-spacing: -0.04em;
			text-wrap: balance;
			color:#fff;
		}
		
		.header-intro{
			position:relative;
			max-width: 980px;
			margin: 0;
			font-size: clamp(1.1rem, 1.8vw, 1.4rem);
			font-weight: 400;
			line-height: 1.5;
			letter-spacing: -0.012em;
			color: rgba(255, 255, 255, 0.67);
		}
		
		.header-meta{
			position:relative;
			font-size:clamp(1rem, 2vw, 1.3rem);
			color:rgba(255, 255, 255, 0.67);
		}

	/* ==========================================================
	   PAGE BODY
	========================================================== */	
		
	.entry-body {
		padding-top: clamp(2rem, 6vw, 5.5rem);
		padding-bottom: 4rem;
		background: #fff;
		overflow: visible;
	}
	
	.entry-body > .container {
		margin-inline: auto;
		overflow: visible;
	}
	
		/* ==========================================================
		   PAGE LAYOUT
		========================================================== */

		.entry-layout{
			display: grid;
			grid-template-columns:minmax(0, var(--page-content-width)) minmax(260px, var(--page-sidebar-width));
			gap: var(--page-gap);
			align-items: start;
			overflow: visible;
		}
		
			/* ==========================================================
			   PAGE CONTENT
			========================================================== */
	
			.entry-content{
				min-width: 0;
				font-family: "Inter Tight", sans-serif;
			}
				
				.entry-content > *:first-child {
					margin-top: 0;
				}
				
				.entry-content > *:last-child {
					margin-bottom: 0;
				}
			
				/* ==========================================================
				   TITRES
				========================================================== */
				
				.entry-content h2 {
					margin-top: clamp(2rem, 3vw, 4rem);
					margin-bottom: 2rem;
					font-size: clamp(2rem, 3vw, 2.8rem);
					font-weight: 700;
					line-height: 1.15;
					letter-spacing: -0.027em;
					color: var(--page-text);
					text-wrap: balance;
				}
				
				.entry-content h3 {
					margin-top: 2.5rem;
					margin-bottom: 1.5rem;
					font-size: clamp(1.4rem, 2vw, 1.75rem);
					font-weight: 700;
					line-height: 1.12;
					letter-spacing: -0.02em;
					color: var(--page-text);
					text-wrap: balance;
				}
				
				.entry-content h4 {
					margin-top: 2rem;
					margin-bottom: 1rem;
					font-size: 1.15rem;
					font-weight: 700;
					line-height: 1.25;
					color: var(--page-text);
				}
				
				/* ==========================================================
				   PARAGRAPHES
				========================================================== */
				
				.entry-content p {
					margin-top: 0;
					margin-bottom: 1.35rem;
					font-size: 1.2rem;
					font-weight: 400;
					line-height: 1.65;
					letter-spacing: -0.004em;
					color: var(--page-text-soft);
				}
				
				.entry-content p:last-child {
					margin-bottom: 0;
				}

				/* ==========================================================
				   LEAD
				========================================================== */
				
				.entry-content .lead {
					margin-bottom: 2.5rem;
					font-size: clamp(1.18rem, 1.6vw, 1.36rem);
					font-weight: 400;
					line-height: 1.55;
					letter-spacing: -0.014em;
					color: var(--page-text);
				}
				
				/* ==========================================================
				   LIENS DANS LE CONTENU
				========================================================== */
				
				.entry-content a {
					color: inherit;
				}
				
				.entry-content a:not(.button) {
					color: var(--page-primary);
					text-decoration-line: underline;
					text-decoration-thickness: 1px;
					text-decoration-color: var(--page-primary);
					text-underline-offset: 0.18em;
					transition: color 180ms ease, text-decoration-color 180ms ease;
				}
				
				.entry-content a:not(.button):hover {
					color: var(--page-primary-hover);
					text-decoration-line: none;
					text-decoration-color: currentColor;
				}
				
				/* ==========================================================
				   LISTES
				========================================================== */
				
				.entry-content ul,
				.entry-content ol {
					margin: 1.5rem 0 2rem 1rem;
					padding-left: 1.4rem;
					list-style: disc;
				}
				
				.entry-content li {
					padding-left: 0.15rem;
					margin-bottom: 0.65rem;
				
					font-size: 1.2rem;
				
					line-height: 1.62;
				
					color: var(--page-text-soft);
				}
				
				.entry-content li::marker {
					color: var(--page-primary);
				}
				
				/* ==========================================================
				   BLOCKQUOTE
				========================================================== */
				
				.entry-content blockquote {
					margin: clamp(2.5rem, 5vw, 4rem) 0;
					padding-left: clamp(1.5rem, 3vw, 2.25rem);
					border-left: 2px solid var(--page-primary);
				}
				
				.entry-content blockquote p {
					margin-bottom: 0;
					font-size: clamp(1.3rem, 2vw, 1.7rem);
					font-weight: 400;
					line-height: 1.4;
					letter-spacing: -0.018em;
					color: var(--page-text);
				}
				
				/* ==========================================================
				   IMAGES
				========================================================== */
				
				.entry-content img{
					display: block;
    				max-width: 100%;
    				height: auto;
				}
								
				.entry-content figure figcaption::before {
					content: '';
					display: inline-block;
					width: 20px;
					height: 1px;
					background: var(--page-text-muted);
					margin: 0 8px 4px 0;
				}

				/* Image du contenu */
				.entry-content figure{
					margin: 0 0 clamp(2.75rem, 5vw, 4.25rem) 0;
				}
			
				.entry-content figure img{
					display: block;
					max-width: 100%;
					width: 100%;
					height: auto;
					border-radius: var(--page-radius-md);
					background: #eee;
					box-shadow: 0 16px 40px rgba(23, 25, 59, 0.06);
				}
				
				.entry-content figure figcaption.wp-element-caption{
					margin-top: 0.8rem;
					font-size: 0.81rem;
					line-height: 1.5;
					color: var(--page-text-muted);
				}
				
				/* Image à la une */
				.entry-content figure.content-image{
					margin: 0 0 clamp(2.75rem, 5vw, 4.25rem) 0;
				}
			
				.entry-content figure.content-image img{
					display: block;
					max-width: 100%;
					width: 100%;
					height: auto;
					border-radius: var(--page-radius-md);
					background: #eee;
					box-shadow: 0 16px 40px rgba(23, 25, 59, 0.06);
				}
				
				.entry-content figure.content-image figcaption{
					margin-top: 0.8rem;
					font-size: 0.81rem;
					line-height: 1.5;
					color: var(--page-text-muted);
				}
					
				/* ==========================================================
				   TABLEAUX
				========================================================== */
				
				.entry-content table {
					width: 100%;
					margin: clamp(2.5rem, 5vw, 4rem) 0;
					border-collapse: collapse;
					font-size: 0.95rem;
				}
			
				.entry-content th,
				.entry-content td {
					padding: 1rem;
					text-align: left;
					vertical-align: top;
					border-bottom: 1px solid var(--page-border);
				}
				
				.entry-content th {
					font-weight: 700;
					color: var(--page-text);
				}
				
				.entry-content td {
					color: var(--page-text-soft);
				}
				
				/* ==========================================================
				   CLASSES SPECIALES
				========================================================== */
				
				.entry-content .content-404-search{}
				.entry-content .content-404-links{}
				
				.entry-content .content-search-count{}
				.entry-content .content-search-results{}
				.entry-content .content-search-results li{}
				.entry-content .content-search-results li article.search-result{}
				.entry-content .content-search-results li article.search-result .search-result-title{}
				.entry-content .content-search-results li article.search-result .search-result-content{}
				.entry-content .content-search-pagination{}
				.entry-content .content-search-no-results{}
				
				.single-vitrine_realisation #site .project-case {
					margin-bottom: 2rem;
				}
				
				.single-vitrine_realisation #site .project-case p {
					margin-top: 0;
					margin-bottom: 1.35rem;
					font-size: 1.2rem;
					font-weight: 400;
					line-height: 1.65;
					letter-spacing: -0.004em;
					color: var(--page-text-soft);
				}
				
				.single-vitrine_realisation #site .project-meta{
					color: var(--ttf-accent);
					font-weight: 700;
					line-height: 1.3;
					letter-spacing: 0.09em;
					text-transform: uppercase;
				}
				
				.single-vitrine_realisation #site .project-link {margin-top: 2rem;}
				.single-vitrine_realisation #site .project-link a {background:var(--ttf-accent-action);}
				.single-vitrine_realisation #site .project-link a:hover {background:var(--ttf-accent-hover);}
				.single-vitrine_realisation #site .project-link a span {margin-left:6px}
			
		/* ==========================================================
		   PAGE POSTS (pas de .entry-layout)
		========================================================== */
		
		.entry-posts {
			min-width: 0;
			font-family: "Inter Tight", sans-serif;
		}
		
		.entry-posts > *:first-child {
			margin-top: 0;
		}
		
		.entry-posts > *:last-child {
			margin-bottom: 0;
		}
		
		.entry-posts .posts-list {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 30px;
		}
		
		
		/* CARD */
		.entry-posts .post-card {
			display: flex;
			flex-direction: column;
			min-height: 0;
			overflow: hidden;
		
			border: 1px solid var(--ttf-border);
			border-radius: var(--ttf-radius-lg);
			background: #fff;
		
			transition:
				transform 180ms ease,
				border-color 180ms ease,
				box-shadow 180ms ease;
		}
		
		.entry-posts .post-card:hover {
			transform: translateY(-3px);
			border-color: var(--ttf-border-strong);
			box-shadow: 0 16px 40px rgba(23, 25, 59, 0.06);
		}
		
		
		/* IMAGE */
		.entry-posts .post-visual {
			display: block;
			aspect-ratio: 16 / 9;
			overflow: hidden;
			background: #ececf2;
		}
		
		.entry-posts .post-visual img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			transition: transform 450ms cubic-bezier(.2, .7, .2, 1);
		}
		
		.entry-posts .post-card:hover .post-visual img {
			transform: scale(1.025);
		}
		
		
		/* CONTENT */
		.entry-posts .post-card-content {
			display: flex;
			flex: 1;
			flex-direction: column;
			padding: clamp(25px, 3vw, 34px);
		}
		
		.entry-posts .post-infos {
			display: flex;
			align-items: center;
			justify-content: space-between;
			flex-wrap: wrap;
			gap: 8px 20px;
			margin-bottom: 19px;
		}
		
		.entry-posts .post-category {
			margin: 0;
			color: var(--ttf-accent);
			font-size: 0.8rem;
			font-weight: 700;
			line-height: 1.3;
			letter-spacing: 0.09em;
			text-transform: uppercase;
		}
		
		.entry-posts .post-card time {
			display: block;
			margin: 0;
			color: var(--ttf-text-muted);
			font-size: 0.78rem;
		}
		
		
		/* TITLE */
		.entry-posts .post-card h2,
		.entry-posts .post-card h3 {
			margin-bottom:15px;
			color: var(--ttf-text);
			font-size: clamp(1.35rem, 1.9vw, 1.8rem);
			font-weight: 700;
			line-height: 1.1;
			letter-spacing: -0.025em;
			text-wrap: balance;
		}
		
		.entry-posts .post-card h2 a,
		.entry-posts .post-card h3 a {
			color: inherit;
			text-decoration: none;
			transition: color 180ms ease;
		}
		
		.entry-posts .post-card h2 a:hover,
		.entry-posts .post-card h3 a:hover {
			color: var(--ttf-accent);
		}
		
		
		/* DESCRIPTION */
		.entry-posts .post-card-content > p {
			color: var(--ttf-text-light);
			line-height: 1.62;
			max-width: 68ch;
			margin-top: 0;
			margin-bottom: 16px;
			
		}
		
		
		/* LINK */
		.entry-posts .post-card-content > .text-link {
			margin-top: auto;
			padding-top: 20px;
		}
		
		@media (max-width: 768px) {
		
			.entry-posts .blog-grid {
				grid-template-columns: 1fr;
			}
		
			.entry-posts .post-card:first-child {
				border-right: 1px solid var(--ttf-border);
			}
		
			.entry-posts .post-card-content {
				padding: 25px 22px;
			}
		
		}

				
			/* ==========================================================
			   PAGE SIDEBAR
			========================================================== */
			
			.entry-sidebar{
				position: sticky;
				top: calc(var(--header-height) + 24px);
				align-self: start;
				min-width: 0;
				width: 100%;
				height: fit-content;
				overflow: visible;
			}

				.entry-sidebar-inner {
					position: static;
					width: 100%;
				}
				
					.sidebar-card {
						padding: 1.6rem;
						background: #fff;
						border: 1px solid var(--page-border);
						border-radius: var(--page-radius-lg);
					}
					
					#sidebar-nav-title{
						font-weight:700;
					}
					
					.sidebar-card + .sidebar-card {
						margin-top: 2rem;
					}
					
					.sidebar-card-primary {
						background: radial-gradient( circle at 68% 22%, rgba(239, 36, 47, 0.45), transparent 60% ), var(--ttf-bg-dark);
					}

						.sidebar-card h2 {
							margin-top: 0;
							margin-bottom: 0.85rem;
							font-size: 1.65rem;
							font-weight: 700;
							line-height: 1.15;
							letter-spacing: -0.025em;
							color: var(--page-text);
						}
						
						.sidebar-card-primary h2 {
							color: #fff;
						}

						.sidebar-card p {
							margin-top: 0;
							margin-bottom: 1.2rem;
							font-size: 0.93rem;
							line-height: 1.55;
							color: var(--page-text-soft);
						}
						
						.sidebar-card-primary p {
							color: #fff;
						}
						
						.sidebar-card-primary p.sidebar-card-label {
							margin-bottom: 1rem;
							font-size: 1rem;
							font-weight: 700;
							line-height: 1.3;
							letter-spacing: 0;
							color: var(--page-primary);
						}
						
						/*
						.sidebar-card-primary .sidebar-card-contact{
							display:grid;
							grid-template-columns: 80px 1fr;
							gap: 10px;
						}
						
						.sidebar-card-primary .sidebar-card-profile{
							display: block;
							width: 80px;
							height: 80px;
							border-radius: 50%;
							overflow: hidden;
						}
						
						.sidebar-card-primary .sidebar-card-profile img{
							width: 100%;
							height: auto;
							object-fit: cover;
						}
						
						.sidebar-card-primary .sidebar-card-links{
							
						}
						*/

						.sidebar-card-primary .button {
							width: 100%;
							margin-top: 0.25rem;
							background:#ef242f;
						}
						
						.sidebar-card-primary .button:hover {
							background:#ef242f;
						}
						
						.sidebar-phone {
							display: block;
							width: fit-content;
							margin: 1rem auto 0;
							font-size: 0.87rem;
							font-weight: 700;
							color: #fff;
							text-decoration: none;
							transition: color 180ms ease;
						}
						
						.sidebar-phone:hover {
							color: #ef242f;
						}

						/* ==========================================================
						   NAVIGATION SIDEBAR
						========================================================== */

						.sidebar-nav {
							padding: 0;
							margin: 0;
							list-style: none;
						}
						
						.sidebar-nav li + li {
							border-top: 1px solid var(--page-border);
						}
						
						.sidebar-nav a {
							display: flex;
							align-items: center;
							justify-content: space-between;
							gap: 0.75rem;
							padding: 0.9rem 0;
							font-size: 0.92rem;
							font-weight: 400;
							line-height: 1.35;
							color: var(--page-text-soft);
							text-decoration: none;
							transition: color 180ms ease;
						}
						
						.sidebar-nav a::after {
							content: "→";
							flex-shrink: 0;
							color: var(--page-text-muted);
							transition:
								color 180ms ease,
								transform 180ms ease;
						}
						
						.sidebar-nav a:hover {
							color: var(--page-text);
						}
						
						.sidebar-nav a:hover::after {
							color: var(--page-primary);
							transform: translateX(3px);
						}
						
						
						/* PAGE ACTIVE */
						
						.sidebar-nav a[aria-current="page"] {
							font-weight: 700;
							color: var(--page-text);
						}
						
						.sidebar-nav a[aria-current="page"]::after {
							color: var(--page-primary);
						}
						
						/* ==========================================================
						   SEARCH SIDEBAR
						========================================================== */
						
						.search-form{}
						.search-form .search-form-group{position:relative;clear:both;display:block;margin:0 0 12px 0;}
						.search-form .search-form-group:after{content:'';display:table;clear:both;}
						.search-form .search-form-group label{display:block;padding:12px 0 10px 0;font-size:14px;font-weight:400;color:var(--page-text-soft);}
						.search-form .search-form-group .search-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;padding:16px 20px;font-size:16px;line-height:24px;background:#f7f7f7;border:1px solid #dcdcde;}
						.search-form .search-form-group .search-submit{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;right:1px;bottom:1px;display:block;width:56px;height:56px;padding:0;font-weight:400;font-size:20px;line-height:24px;border:0;border-radius:0;cursor:pointer;background:#f7f7f7;color:var(--page-text-soft);transition:all ease 0.2s;}
						.search-form .search-form-group .search-submit:hover{color:var(--page-text);}
						
/* ================================================================================================== */
/* ================================================================================================== */
/* ==================================================================================================
   HEADER
===================================================================================================== */
/* ================================================================================================== */
/* ================================================================================================== */

	.site-header {
		position: sticky;
		top: 0;
		z-index: 1000;
		width: 100%;
		background: rgba(255, 255, 255, 0.96);
		border-bottom: 1px solid rgba(23, 25, 59, 0.10);
		backdrop-filter: blur(14px);
		-webkit-backdrop-filter: blur(14px);
	}
	
	/* ==========================================================================
	   CONTENEUR
	   ========================================================================== */
	
	.header-inner {
		display: flex;
		align-items: center;
		width: min(calc(100% - 48px), 1440px);
		min-height: 76px;
		margin-inline: auto;
	}
	
	/* ==========================================================================
	   LOGO
	   ========================================================================== */
	
	.site-logo {
		display:flex;
		flex-direction: row;
		align-items: center;
		flex: 0 0 auto;
		color: #17193b;
		text-decoration: none;
	}
	
	.site-logo img {
		height:30px;
	}
	
	.site-logo-name {
		margin:0 0 0 10px;
		font-size: 1rem;
		font-weight: 400;
		line-height: 1.05;
		letter-spacing: -0.025em;
	}
	
	.site-logo-name strong {
		color: #17193b;
		font-size: 1.12rem;
		font-weight: 700;
	}
	
	.site-logo:hover .site-logo-name strong {
		color: #ef242f;
	}
	
	/* ==========================================================================
	   NAVIGATION PRINCIPALE
	   ========================================================================== */
	
	.main-nav {
		display: flex;
		align-items: center;
		gap: 30px;
		margin-left: auto;
		margin-right: 34px;
	}
	
	.main-nav > ul{
		display: flex;
		align-items: center;
		gap: 30px;
	}
	
	.main-nav > ul ul{}
	
	.main-nav a {
		position: relative;
		padding-block: 27px;
		color: #17193b;
		font-size: 0.9rem;
		font-weight: 700;
		line-height: 1;
		text-decoration: none;
		transition: color 160ms ease;
	}
	
	.main-nav a::after {
		position: absolute;
		bottom: 18px;
		left: 0;
		width: 100%;
		height: 2px;
		background: #ef242f;
		content: "";
		transform: scaleX(0);
		transform-origin: right center;
		transition: transform 180ms ease;
	}
	
	.main-nav a:hover {
		color: #ef242f;
	}
	
	.main-nav a:hover::after {
		transform: scaleX(1);
		transform-origin: left center;
	}
	
	.main-nav a.is-active,
	.main-nav .current-menu-item > a,
	.main-nav .current-menu-parent > a,
	.single-post .main-nav .menu-item-35 > a,
	.single-vitrine_realisation .main-nav .menu-item-37 > a{
		color: #ef242f;
	}
	
	.main-nav a.is-active::after,
	.main-nav .current-menu-item > a::after,
	.main-nav .current-menu-parent > a::after,
	.single-post .main-nav .menu-item-35 > a::after,
	.single-vitrine_realisation .main-nav .menu-item-37 > a::after{
		transform: scaleX(1);
	}
	
	/* ==========================================================================
	   ACTIONS HEADER
	   ========================================================================== */
	
	.header-actions {
		display: flex;
		align-items: center;
		gap: 18px;
	}
	
	.header-phone {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		color: #17193b;
		font-size: 0.86rem;
		font-weight: 700;
		line-height: 1;
		text-decoration: none;
		white-space: nowrap;
		transition: color 160ms ease;
	}
	
	.header-phone svg {
		flex: 0 0 auto;
		color: #ef242f;
	}
	
	.header-phone:hover {
		color: #ef242f;
	}
	
	/* CTA */
	
	.header-cta {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 42px;
		padding: 11px 18px;
		color: #fff;
		background: #e2212c;
		border: 1px solid #e2212c;
		border-radius: 999px;
		font-size: 0.86rem;
		font-weight: 700;
		line-height: 1;
		text-decoration: none;
		white-space: nowrap;
		transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
	}
	
	.header-cta:hover {
		color: #ffffff;
		background: #cd1d27;
		border-color: #cd1d27;
		transform: translateY(-1px);
		box-shadow: 0 8px 22px rgba(239, 36, 47, 0.16);
	}
	
	/* ==========================================================================
	   BOUTON MOBILE
	   ========================================================================== */
	
	.menu-toggle {
		display: none;
		width: 44px;
		height: 44px;
		margin-left: auto;
		padding: 0;
		border: 0;
		background: transparent;
		cursor: pointer;
	}
	
	.menu-toggle span {
		display: block;
		width: 23px;
		height: 2px;
		margin: 5px auto;
		background: #17193b;
		border-radius: 999px;
		transition: transform 180ms ease, opacity 180ms ease;
	}
	
	/* État ouvert */
	
	.menu-toggle[aria-expanded="true"] span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}
	
	.menu-toggle[aria-expanded="true"] span:nth-child(2) {
		opacity: 0;
	}
	
	.menu-toggle[aria-expanded="true"] span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}
	
	/* ==========================================================================
	   NAVIGATION MOBILE
	   ========================================================================== */
	
	.mobile-navigation {
		display: none;
		border-top: 1px solid rgba(23, 25, 59, 0.10);
	}
	
	.mobile-navigation.is-open {
		display: block;
		height: 90vh;
		overflow: auto;
	}
	
	.mobile-navigation > nav,
	.mobile-navigation-footer {
		width: min(calc(100% - 32px), 1200px);
		margin-inline: auto;
	}
	
	.mobile-navigation > nav {
		display: flex;
		flex-direction: column;
		padding-block: 18px;
	}
	
	.mobile-navigation > nav a {
		display: flex;
		align-items: center;
		min-height: 48px;
		color: #17193b;
		font-size: 1rem;
		font-weight: 700;
		line-height: 1.25;
		text-decoration: none;
	}
	
	.mobile-navigation > nav a:last-child {
		border-bottom: 0;
	}
	
	.mobile-navigation > nav a:hover {
		color: #ef242f;
	}
	
	.mobile-navigation > nav ul ul {
		padding:0 20px;
		border-left: 1px solid rgba(23, 25, 59, 0.10);
	}
	
	.mobile-navigation-footer {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 20px;
		padding-block: 20px 26px;
		border-top: 1px solid rgba(23, 25, 59, 0.10);
	}
	
	.mobile-navigation-footer .header-cta {
		flex: 1;
	}
	
	.mobile-phone {
		color: #17193b;
		font-size: 0.9rem;
		font-weight: 700;
		text-decoration: none;
		white-space: nowrap;
	}
	
	.mobile-phone:hover {
		color: #ef242f;
	}
	
	/* ==========================================================================
	   FOCUS / ACCESSIBILITÉ
	   ========================================================================== */
	
	.site-header a:focus-visible,
	.site-header button:focus-visible {
		outline: 3px solid #ef242f;
		outline-offset: 3px;
	}
	
	/* ==========================================================================
	   TABLETTE
	   ========================================================================== */
	
	@media (max-width: 1190px) {
	
		.main-nav {
			gap: 22px;
	
			margin-right: 24px;
		}

		.main-nav a {
			font-size: 0.86rem;
		}
	
		.header-phone span {
			display: none;
		}
	
	}
	
	/* ==========================================================================
	   MOBILE
	   ========================================================================== */
	
	@media (max-width: 1100px) {
	
		.header-inner {
			width: min(calc(100% - 32px), 1200px);
			min-height: 68px;
		}
	
		.main-nav,
		.header-actions {
			display: none;
		}
		
	
		.menu-toggle {
			display: block;
		}
	
	}
	
	/* ==========================================================================
	   PETITS MOBILES
	   ========================================================================== */
	
	@media (max-width: 480px) {
	
		.header-inner {
			width: calc(100% - 28px);
			min-height: 64px;
		}
	
		.site-logo-name {
			font-size: 0.9rem;
		}
	
		.site-logo-name strong {
			font-size: 1rem;
		}
	
		.mobile-navigation > nav,
		.mobile-navigation-footer {
			width: calc(100% - 28px);
		}
	
		.mobile-navigation-footer {
			align-items: stretch;
			flex-direction: column;
		}
	
		.mobile-navigation-footer .header-cta {
			width: 100%;
		}
	
		.mobile-phone {
			text-align: center;
		}
	
	}
	
	/* ==========================================================================
	   MOTION
	   ========================================================================== */
	
	@media (prefers-reduced-motion: reduce) {
	
		.site-header *,
		.site-header *::before,
		.site-header *::after {
			transition-duration: 0.01ms !important;
		}
	
	}
	
	
	
	



/* =========================================
   SOUS-MENUS DESKTOP
========================================= */

.main-nav .menu-item {
	position: relative;
}

.main-nav .sub-menu {
	position: absolute;
	top: calc(100% - 8px);
	left: -20px;

	z-index: 100;

	min-width: 220px;
	margin: 0;
	padding: 10px;

	list-style: none;

	background: #ffffff;

	border: 1px solid #ece9e4;

	box-shadow:
		0 10px 30px rgba(0, 0, 0, 0.06);

	opacity: 0;
	visibility: hidden;

	transform: translateY(8px);

	transition:
		opacity 0.2s ease,
		visibility 0.2s ease,
		transform 0.2s ease;
		
	flex-direction:column;
	gap:10px;
}


/* Ouverture */

.main-nav .menu-item-has-children:hover > .sub-menu,
.main-nav .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}


/* Liens du sous-menu */

.main-nav .sub-menu li {
	width: 100%;
}

.main-nav .sub-menu a {
	display: flex;
	align-items: center;
	justify-content: space-between;

	width: 100%;

	padding: 11px 12px;

	font-size: 13px;
	line-height: 1.3;
	font-weight: 400;

	white-space: nowrap;

	border-radius: 4px;
}


/* On supprime l'underline du menu principal */

.main-nav .sub-menu a::after {
	display: none;
}


.main-nav .sub-menu a:hover,
.main-nav .sub-menu a:focus-visible {
	background: #feeeef;
}


/* =========================================
   FLÈCHE SUR LES ÉLÉMENTS AVEC SOUS-MENU
========================================= */

.main-nav > ul > .menu-item-has-children > a {
	display: flex;
	align-items: center;
	gap: 6px;
}

.main-nav > ul > .menu-item-has-children > a::before {
	content: "";
	order: 2;

	width: 6px;
	height: 6px;

	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;

	transform: translateY(-2px) rotate(45deg);

	transition: transform 0.2s ease;
}

.main-nav > ul > .menu-item-has-children:hover > a::before,
.main-nav > ul > .menu-item-has-children:focus-within > a::before {
	transform: translateY(1px) rotate(225deg);
}


/* =========================================
   SOUS-SOUS-MENU
========================================= */

.main-nav .sub-menu .sub-menu {
	top: -11px;
	left: calc(100% + 10px);
}


/* Petite flèche latérale */

.main-nav .sub-menu .menu-item-has-children > a::after {
	content: "";

	width: 6px;
	height: 6px;

	margin-left: 20px;

	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;

	transform: rotate(45deg);
}


/* =========================================
   ZONE INVISIBLE POUR ÉVITER QUE LE
   SOUS-MENU SE FERME TROP VITE
========================================= */

.main-nav .menu-item-has-children::after {
	content: "";
	position: absolute;

	left: 0;
	top: 100%;

	width: 100%;
	height: 15px;
}



	
	
						
/* ================================================================================================== */
/* ================================================================================================== */
/* ==================================================================================================
   FOOTER
===================================================================================================== */
/* ================================================================================================== */
/* ================================================================================================== */
	
	.site-footer {
		position: relative;
		padding: clamp(70px, 8vw, 110px) 0 28px;
		overflow: hidden;
		color: #ffffff;
		background: radial-gradient( circle at 60% 22%, rgba(239, 36, 47, 0.45), transparent 40% ), var(--ttf-bg-dark);
	}
	
	.site-footer::before {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 15px;
		background: #ef242f;
		content: "";
	}
	
		/* ==========================================================================
		   CONTAINER
		   ========================================================================== */
		
		.site-footer .container {
			width: min( calc(100% - 48px), 1440px );
			margin-inline: auto;
		}
	
		/* ==========================================================================
		   HAUT DU FOOTER
		   ========================================================================== */
		
		.footer-top {
			display: grid;
			grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
			gap: clamp(50px, 8vw, 110px);
			align-items: end;
			padding-bottom: clamp(50px, 6vw, 80px);
			border-bottom: 1px solid rgba(255, 255, 255, 0.14);
		}
		
			.footer-brand {
				max-width: 700px;
			}
			
			.footer-logo {
				display: inline-block;
				margin-bottom: 24px;
				color: #ffffff;
				font-size: clamp(1.8rem, 3vw, 2.6rem);
				line-height: 1.2;
				letter-spacing: -0.03em;
				text-decoration: none;
			}
			
			.footer-logo img {
				display:block;
				margin-bottom: 16px;
				height:40px;
			}
			
			.footer-logo-name {
				display:block;
				font-weight: 700;
			}
			
			.footer-logo-desc {
				display:block;
				font-size: clamp(1rem, 2vw, 1.6rem);
				color:rgba(255, 255, 255, 0.56);
			}
			
			.footer-tagline {
				max-width: 640px;
				margin: 0 0 16px;
				color: rgba(255, 255, 255, 0.8);
				font-size: clamp(1.12rem, 1.7vw, 1.4rem);
				line-height: 1.55;
			}
			
			.footer-signature {
				max-width: 600px;
				margin: 0;
				color: rgba(255, 255, 255, 0.56);
				font-size: 0.95rem;
				line-height: 1.65;
			}
			
			.footer-signature::before {
				content: '';
				display: inline-block;
				width: 20px;
				height: 2px;
				background: #ef242f;
				margin: 0px 4px 1px 0;
			}
		
		/* ==========================================================================
		   CONTACT
		   ========================================================================== */
		
		.footer-contact {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
		}
		
			.footer-title {
				margin: 0 0 16px;
				color: #ef242f;
				font-size: 0.76rem;
				font-weight: 700;
				line-height: 1.3;
				letter-spacing: 0.095em;
				text-transform: uppercase;
			}
			
			.footer-contact-link {
				display: inline-flex;
				align-items: center;
				gap: 12px;
				color: #ffffff;
				font-size: clamp(1.8rem, 3vw, 2.8rem);
				font-weight: 700;
				line-height: 1;
				letter-spacing: -0.04em;
				text-decoration: none;
				transition: color 180ms ease;
			}
			
			.footer-contact-link span {
				color: #ef242f;
				transition: transform 180ms ease;
			}
			
			.footer-contact-link:hover {
				color: #ef242f;
				text-shadow: 8px 8px 18px rgba(23, 25, 59, 0.55);
			}
			
			.footer-contact-link:hover span {
				transform: translateX(6px);
			}
			
			.footer-phone {
				display: flex;
				flex-direction: row;
				align-items: center;
				justify-content: flex-start;
				margin-top: 18px;
				color: rgba(255, 255, 255, 0.68);
				font-size: 1.2rem;
				font-weight: 700;
				text-decoration: none;
				transition: color 180ms ease;
			}
			
			.footer-phone span {
				margin:0 0 0 6px;
			}
			
			.footer-phone:hover {
				color: #ffffff;
			}
		
		/* ==========================================================================
		   NAVIGATION
		   ========================================================================== */
		
		.footer-middle {
			padding: clamp(42px, 5vw, 62px) 0;
		}
		
			.footer-nav {
				display: grid;
				grid-template-columns: repeat(3, minmax(0, 1fr));
				gap: clamp(36px, 6vw, 80px);
			}
			
			.footer-nav-column ul {
				margin: 0;
				padding: 0;
				list-style: none;
			}
			
			.footer-nav-column li {
				margin-bottom: 10px;
				color: rgba(255, 255, 255, 0.56);
				font-size: 0.93rem;
				line-height: 1.55;
			}
			
			.footer-nav-column a {
				color: rgba(255, 255, 255, 0.7);
				text-decoration: none;
				transition: color 180ms ease, transform 180ms ease;
			}
			
			.footer-nav-column a:hover {
				color: #ffffff;
			}
		
		/* ==========================================================================
		   BAS DU FOOTER
		   ========================================================================== */
		
		.footer-bottom {
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 10px;
			padding-top: 26px;
			border-top: 1px solid rgba(255, 255, 255, 0.1);
		}
			
			.footer-copyright {
				margin: 0;
				color: rgba(255, 255, 255, 0.42);
				font-size: 0.8rem;
			}
			
			.footer-legal {
				display: flex;
				align-items: center;
				flex-wrap: wrap;
				gap: 18px;
			}
			
			.footer-legal ul{
				display: flex;
				gap:10px;
			}
			
			.footer-legal a {
				color: rgba(255, 255, 255, 0.48);
				font-size: 0.8rem;
				text-decoration: none;
				transition: color 180ms ease;
			}
			
			.footer-legal a:hover {
				color: #ffffff;
			}
		
		/* ==========================================================================
		   FOCUS
		   ========================================================================== */
		
		.site-footer a:focus-visible {
			outline: 3px solid #ef242f;
			outline-offset: 4px;
		}
		
		/* ==========================================================================
		   RÉSEAUX SOCIAUX
		   ========================================================================== */
		
		.footer-socials {
			display: flex;
			align-items: center;
			gap: 10px;
			margin-top: 24px;
		}
		
			.footer-social-link {
				display: inline-flex;
				align-items: center;
				justify-content: center;
				width: 46px;
				height: 46px;
				color: rgba(255, 255, 255, 0.72);
				border: 1px solid rgba(255, 255, 255, 0.16);
				border-radius: 50%;
				text-decoration: none;
				background: rgba(255, 255, 255, 0.04);
				transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
			}
			
			.footer-social-link svg {
				display: block;
				width: 20px;
				height: 20px;
			}
			
			.footer-social-link:hover {
				color: #ffffff;
				border-color: #ef242f;
				background: #ef242f;
				transform: translateY(-3px);
			}
			
			.footer-social-link:active {
				transform: translateY(-1px);
			}
			
			.footer-socials-title {
				margin: 42px 0 10px;
				color: #ef242f;
				font-size: 0.76rem;
				font-weight: 700;
				letter-spacing: 0.08em;
				text-transform: uppercase;
			}
			
			.footer-socials {
				margin-top: 0;
			}
		
	/* ==========================================================================
	   TABLETTES
	   ========================================================================== */
	
	@media (max-width: 900px) {
	
		.footer-top {
			grid-template-columns: 1fr;
			gap: 42px;
		}
	
		.footer-contact {
			padding-top: 4px;
		}
	
		.footer-nav {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}
	
	}
	
	
	/* ==========================================================================
	   MOBILE
	   ========================================================================== */
	
	@media (max-width: 640px) {
	
		.site-footer {
			padding-top: 64px;
		}
	
		.site-footer .container {
			width: calc(100% - 32px);
		}
	
		.footer-top {
			padding-bottom: 42px;
		}
	
		.footer-logo {
			font-size: 2rem;
		}
	
		.footer-contact-link {
			font-size: 2rem;
		}
	
		.footer-middle {
			padding-block: 40px;
		}
	
		.footer-nav {
			grid-template-columns: 1fr;
			gap: 30px;
		}
	
		.footer-bottom {
			align-items: flex-start;
			flex-direction: column;
		}
	
	}



/* logos clients
-------------------------------------------------------------- */

#main-home .tft-clients {
    --tft-duration: 55s; /* Augmenter pour ralentir. */
    --tft-gap: 48px;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    margin: 0 auto;
    padding: 30px 0;
    color: #242424;
    background: #f7f7fa;
  }
 
#main-home .tft-clients *, 
#main-home .tft-clients *::before, 
#main-home .tft-clients *::after {
    box-sizing: border-box;
  }
#main-home .tft-clients__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
  }
#main-home .tft-clients .tft-clients__title {
	color: var(--ttf-accent);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: 0.095em;
    text-transform: uppercase;
	margin-bottom:0;
	
	
  }
  /*#main-home .tft-clients .tft-clients__pause {
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #767676;
    border-radius: 6px;
    background: #fff;
    color: #242424;
    font: inherit;
    font-size: 14px;
    cursor: pointer;
  }*/
#main-home .tft-clients .tft-clients__pause {
	  display: inline-flex;
	  align-items: center;
	  justify-content: center;
	  width: 24px;
	  height: 24px;
	  padding: 0;
	      background: #f7f7fa;
    border: 0;
    cursor: pointer;
    color: #bfbfbf;
	}
#main-home .tft-clients__pause:focus-visible {
    outline: 3px solid #195cca;
    outline-offset: 3px;
  }
#main-home .tft-clients [hidden] { display: none !important; }
#main-home .tft-clients__viewport { position:relative;overflow: hidden; }

#main-home .tft-clients__viewport::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: 20px;
    height: 100%;
    background: linear-gradient(90deg, #f7f7fa, transparent);
    z-index: 10;
}

#main-home .tft-clients__viewport::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    display: block;
    width: 20px;
    height: 100%;
    background: linear-gradient(-90deg, #f7f7fa, transparent);
    z-index: 10;
}

#main-home .tft-clients .tft-clients__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 24px var(--tft-gap);
    margin: 0;
    padding: 0;
    list-style: none;
  }
#main-home .tft-clients .tft-clients__list > li {
    flex: 0 0 144px;
    width: 144px;
    height: 72px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
#main-home .tft-clients__list img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
  }
#main-home .tft-clients.is-animated .tft-clients__track {
    display: flex;
    width: max-content;
    animation: tft-client-scroll var(--tft-duration) linear infinite;
  }
#main-home .tft-clients.is-animated .tft-clients__list {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    padding-right: var(--tft-gap);
  }
#main-home .tft-clients.is-paused .tft-clients__track,
#main-home .tft-clients__viewport:hover .tft-clients__track {
    animation-play-state: paused;
  }
  @keyframes tft-client-scroll {
    to { transform: translateX(-50%); }
  }
  @media (max-width: 600px) {
    #main-home .tft-clients { --tft-gap: 28px; padding: 24px 0; }
    #main-home .tft-clients .tft-clients__list > li {
      flex-basis: 112px;
      width: 112px;
      height: 60px;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    #main-home .tft-clients.is-animated .tft-clients__track {
      display: block;
      width: auto;
      animation: none;
      transform: none;
    }
    #main-home .tft-clients.is-animated .tft-clients__list {
      flex-wrap: wrap;
      padding-right: 0;
    }
    #main-home .tft-clients .tft-clients__copy,
    #main-home .tft-clients .tft-clients__pause { display: none; }
  }


/* WP lightbox
-------------------------------------------------------------- */


.wp-lightbox-overlay .screen-reader-text {
    padding: 10px 60px 10px 10px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    color: #fff;
    background: #17193b;
	border-left:10px solid #ef242f;
}

.wp-lightbox-overlay .wp-lightbox-close-button{
	background: #fff !important;
}



/* Bandeau du diagnostic
-------------------------------------------------------------- */

.audit-banner {
    position: relative;
    z-index: 5;
    width: min(1140px, calc(100% - 40px));
    margin: -55px auto 0;
    padding: 28px 32px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;

    background: linear-gradient(110deg, #fff 0%, #fff5f5 100%);
    border: 1px solid rgba(237, 28, 45, 0.55);
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(10, 13, 48, 0.14);
}

.audit-banner__content {
    max-width: 750px;
}

.audit-banner__label,
.audit-modal__label {
    margin: 0 0 8px;
    color: #ed1c2d;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.audit-banner h2 {
    margin: 0 0 8px;
    color: #101438;
    font-size: clamp(1.8rem, 9vw, 2.3rem);
    line-height: 1.15;
}

.audit-banner__content > p:last-child {
    margin: 0;
}

.audit-banner__button {
    flex: 0 0 auto;
    white-space: nowrap;
	cursor:pointer;
}


/* Fenêtre modale
-------------------------------------------------------------- */

#site .audit-modal {
    width: min(680px, calc(100% - 32px));
    max-height: calc(100vh - 40px);
    margin: auto;
    padding: 0;
	
	font-size:1rem;
    color: #101438;
    background: #fff;
    border: 0;
    border-radius: 20px;
    box-shadow: 0 30px 100px rgba(7, 10, 35, 0.35);

    overflow: auto;
}

#site .audit-modal[open] {
    animation: audit-modal-in 220ms ease-out;
}

#site .audit-modal::backdrop {
    background: rgba(7, 10, 35, 0.72);
    backdrop-filter: blur(4px);
}

#site .audit-modal__inner {
    position: relative;
    padding: clamp(30px, 5vw, 55px);
}

#site .audit-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;

    width: 42px;
    height: 42px;
    padding: 0;

    display: grid;
    place-items: center;

    color: #101438;
    background: #f5f5f7;
    border: 0;
    border-radius: 50%;

    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

#site .audit-modal__close:hover,
#site .audit-modal__close:focus-visible {
    color: #fff;
    background: #ed1c2d;
}

#site .audit-modal__close:focus-visible {
    outline: 3px solid rgba(237, 28, 45, 0.3);
    outline-offset: 3px;
}

#site .audit-modal h2 {
    max-width: 540px;
    margin: 0 45px 20px 0;
    color: #101438;
    font-size: clamp(1.7rem, 4vw, 2.5rem);
    line-height: 1.08;
}

#site .audit-modal__introduction {
    color: #4f5268;
    line-height: 1.4;
	font-size:1rem;
}

#site .audit-modal__introduction p{
    color: #4f5268;
    line-height: 1.4;
	font-size:1rem;
}

#site .audit-modal__introduction ul {
    margin: 20px 0;
    padding: 0;
    list-style: none;
}

#site .audit-modal__introduction li {
    position: relative;
    margin: 0 0 4px 0;
    padding-left: 28px;
	line-height: 1.4;
	font-size:1rem;
}

#site .audit-modal__introduction li::before {
    content: "✓";
    position: absolute;
    top: 0;
    left: 0;
    color: #ed1c2d;
    font-weight: 700;
}

#site .audit-modal__notice {
    margin: 25px 0;
    padding: 18px 20px;

    color: #393c54;
    background: #fff5f5;
    border-left: 3px solid #ed1c2d;
    border-radius: 8px;

    line-height: 1.4;
	font-size:1rem;
}

#site .audit-modal__form {
    margin-top: 28px;
}

#site .audit-modal__form{

}

#site .audit-modal__form .contact_form{
	padding:1.2rem;
}

#site .audit-modal__form .form_field_submit button{
	padding:12px 30px;
}

body.audit-modal-is-open {
    position: fixed;
    left: 0;
    width: 100%;
    overflow: hidden;
    padding-right: var(--scrollbar-width, 0);
}

@keyframes audit-modal-in {
    from {
        opacity: 0;
        transform: translateY(18px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 760px) {
    .audit-banner {
        margin-top: -30px;
        padding: 25px;
        align-items: flex-start;
        flex-direction: column;
        gap: 22px;
    }

    .audit-banner__button {
        width: 100%;
    }

    .audit-modal__inner {
        padding: 38px 24px 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .audit-modal[open] {
        animation: none;
    }
}


/* ================================================================================================== */
/* ================================================================================================== */
/* ==================================================================================================
   MEDIA QUERIES
===================================================================================================== */
/* ================================================================================================== */
/* ================================================================================================== */

/* ==========================================================
   ÉCRANS INTERMÉDIAIRES
========================================================== */

@media (max-width: 1050px) {

    .entry-layout {
        grid-template-columns:minmax(0, 1fr) minmax(250px, 290px);
        gap: 3.5rem;
    }

}

/* ==========================================================
   TABLETTE
========================================================== */

@media (max-width: 820px) {

    .entry-layout {
        grid-template-columns: 1fr;
        gap: 4rem;
    }

    /* À partir de cette largeur la sidebar passe dessous et n'est plus sticky. */

    .entry-sidebar {
        position: static;
        top: auto;
        margin-top: 1rem;
        padding-top: 3rem;
        border-top: 1px solid var(--page-border);
    }

		.entry-sidebar-inner {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
	
			gap: 1rem;
		}
	
			.sidebar-card + .sidebar-card {
				margin-top: 0;
			}
		
			.sidebar-card-primary {
				grid-column: 1 / -1;
			}

}

@media (max-width: 768px) {

    #site .container {
        width: min( calc(100% - 32px), var(--ttf-container) );
    }
	
	.entry-posts .posts-list {
		grid-template-columns: 1fr;
	}
	
}

@media (max-width: 640px) {

    :root {
        --header-height: 66px;
    }

    .header-title {
        margin-bottom: 1.3rem;
        line-height: 1.01;
        letter-spacing: -0.032em;
    }

    .header-intro {
        font-size: 1.14rem;
        line-height: 1.5;
    }

    /* BREADCRUMB */

    .breadcrumbs {
        margin-bottom: 1.35rem;
    }

    /* TEXTE */

    .entry-content p,
	.entry-content li,
	.single-vitrine_realisation #site .project-case p {
        font-size: 1rem;
        line-height: 1.65;
    }

    .entry-content .lead {
        font-size: 1.15rem;
        line-height: 1.55;
    }

    /* TITRES */

    .entry-content h2 {
        margin-top: 3.3rem;
        font-size: 2rem;
        line-height: 1.07;
    }

    .entry-content h3 {
        margin-top: 2.3rem;
        font-size: 1.45rem;
    }

    /* IMAGE */

    .entry-content-image {
        margin-block: 2.5rem;
    }

    .entry-content-image img {
        border-radius: var(--page-radius-sm);
    }

    /* SIDEBAR */

    .entry-sidebar {
        margin-top: 0;
        padding-top: 3rem;
    }

		.entry-sidebar-inner {
			display: block;
		}
	
			.sidebar-card + .sidebar-card {
				margin-top: 1rem;
			}
		
			.sidebar-card {
				padding: 1.45rem;
			}
			
	#site .project-card .project-intro{
		font-size: 1rem;
		line-height: 1.65;
	}

}

@media (max-width: 480px) {

    #site .container {
        width: calc(100% - 28px);
    }
	
}

/* ==========================================================
   ACCESSIBILITÉ / MOUVEMENT
========================================================== */

@media (prefers-reduced-motion: reduce) {

    html {
		scroll-behavior: auto;
	}

    *,
    *::before,
    *::after {
        transition: none !important;
    }

}