@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&display=swap');

:root {
    --background: 0 0% 98%;
    --foreground: 0 0% 8%;
    --card: 0 0% 100%;
    --card-foreground: 0 0% 8%;
    --popover: 0 0% 100%;
    --popover-foreground: 0 0% 8%;
    --primary: 43 72% 52%;
    --primary-foreground: 0 0% 100%;
    --secondary: 0 0% 96%;
    --secondary-foreground: 0 0% 8%;
    --muted: 0 0% 94%;
    --muted-foreground: 0 0% 45%;
    --accent: 43 72% 52%;
    --accent-foreground: 0 0% 100%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 100%;
    --border: 0 0% 88%;
    --input: 0 0% 88%;
    --ring: 43 72% 52%;
    --radius: .25rem;
    --gold: 43 72% 52%;
    --gold-light: 43 60% 70%;
    --gold-dark: 43 72% 38%;
    --noir: 0 0% 8%;
    --noir-light: 0 0% 15%;
    --blanc: 0 0% 98%;
    --blanc-pure: 0 0% 100%;
    --gris: 0 0% 45%;
    --gris-light: 0 0% 92%;
    --sidebar-background: 0 0% 98%;
    --sidebar-foreground: 0 0% 8%;
    --sidebar-primary: 43 72% 52%;
    --sidebar-primary-foreground: 0 0% 100%;
    --sidebar-accent: 0 0% 94%;
    --sidebar-accent-foreground: 0 0% 8%;
    --sidebar-border: 0 0% 88%;
    --sidebar-ring: 43 72% 52%;

    --ico-esc:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M22 5h-5v4h-4v4H9v4H4v4"></path></svg>'); 
	--ico-vitre:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="0"></rect><line x1="3" y1="12" x2="21" y2="12"></line><line x1="12" y1="3" x2="12" y2="21"></line></svg>'); 
	
	--ico-sculpture:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2c-1.5 0-3 1.5-3 3.5S10.5 9 12 9s3-1.5 3-3.5S13.5 2 12 2z"></path><path d="M9 9c-2 1-3.5 3.5-3 6l1 3h10l1-3c.5-2.5-1-5-3-6"></path><rect x="9" y="18" width="6" height="2"></rect><rect x="8" y="20" width="8" height="2"></rect></svg>'); 
	
	--ico-svg:url('data:image/svg+xml,\ ');
	--ico-carport:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M2 10 L12 4 L22 10"></path><line x1="2" y1="10" x2="2" y2="20"></line><line x1="22" y1="10" x2="22" y2="20"></line><line x1="2" y1="20" x2="22" y2="20"></line><line x1="7" y1="10" x2="7" y2="20"></line><line x1="17" y1="10" x2="17" y2="20"></line><line x1="2" y1="10" x2="22" y2="10"></line></svg>');
	--ico-pergola:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16"></path><path d="M4 6l2 14h12l2-14"></path><path d="M8 6V4h8v2"></path><line x1="4" y1="10" x2="20" y2="10"></line></svg>');
	--ico-location:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"></path><circle cx="12" cy="10" r="3"></circle></svg>');
	--ico-phone:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path></svg>');
	--ico-mail:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg>');
	--ico-clock:url('data:image/svg+xml,\<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>');
	--tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / .5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style: ;
}

*, :before, :after {
    box-sizing: border-box;
    border-style: solid;
    border-width: 0;
}

.t_g, h1, h2, h3, ::placeholder, input{line-height:1.2;font-size: 1rem;font-family: Montserrat, sans-serif;	font-size: .875rem;line-height:1.2;}
.text-xs {font-size: .75rem;}
.text-sm {font-size: .875rem;}
.text-base {font-size: 1rem;}
.text-lg {font-size: 1.125rem;}
.text-xl {font-size: 1.25rem;}
.text-2xl {font-size: 1.5rem;}
.text-3xl {font-size: 1.875rem;}
.text-4xl {font-size: 2.25rem;}
.text-5xl {font-size: 3rem;}
.text-6xl{font-size: 4rem;}
.text-7xl{font-size: 5rem;}
.text-8xl{font-size: 6rem;}
.mt-1{margin-top:1rem;}
.mt-1\.5 {margin-top: 1.5rem;}
.mb-0\.75 {margin-bottom: .75rem;}
.mb-1{margin-bottom:1rem;}
.mb-1\.5 {margin-bottom: 1.5rem;}
.mb-2 {margin-bottom: 2rem;}
.mb-4 {margin-bottom: 4rem;}
h1, h2, h3, h1.t_g, h2.t_g, h3.t_g{font-family:"Cormorant Garamond",Times,serif;margin:0;font-weight:700;position:relative;}
h1, h1.t_g{font-size:3rem;}
h2, h2.t_g{font-size:2.5rem;}
h3, h3.t_g{font-size:2rem;}


.noAfter{display:none;}


.ico-heure, .ico-heureb:before{-webkit-mask: var(--svg-heure);  mask: var(--svg-heure); mask-size: contain;}


html{ font-size: inherit;   scroll-behavior: smooth;    line-height: 1.5; -webkit-text-size-adjust: 100%;-moz-tab-size: 4;-o-tab-size: 4;tab-size: 4;font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", Segoe UI Symbol, "Noto Color Emoji";font-feature-settings: normal;font-variation-settings: normal;-webkit-tap-highlight-color: transparent;}
body{    background-color: hsl(var(--background));font-family: Montserrat, sans-serif;color: hsl(var(--foreground));-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;    margin: 0;line-height: inherit}
*{box-sizing:border-box}
.container{margin:0;padding:0;}

#global_container{position:relative;min-height:100%;}
b, strong{font-weight:bold;}
img { max-width: 100%; max-height: 100%;width:100%;height:auto;}
.hidden{opacity:0;}
.visible{ opacity:1;}
.athide, .athideuser {display:none;} 
.connected .athideuser {display:block;}
.posrelat{position:relative;}
.alignLeft{text-align:left;}
.alignRight{text-align:right;}
.alignCenter, .bcenter{	text-align:center;	margin-right:auto; margin-left:auto;}
.fullWidth{width:100%;}
.wysiwyg{background-color:#b3b3b3;}
a {
    color: inherit;
    text-decoration: inherit;
}

.lineStd{    background-color: hsl(var(--primary));width:100px;height:1px;}
.lineCenter{margin:auto}

.uppercase{    text-transform: uppercase;letter-spacing: .3em;}
#div_container_1_h, #div_container_5_fr, #div_container_9_fo{display: block;margin:auto;width: 100%;z-index:2;}
.bcont{display:block;width:75%;margin:auto;}
#div_container_5_fr{overflow:hidden;}

.carousel {margin:0}
.carousel-caption{display:none;padding:0.2% 0 0.2% 1%;font-family:"Cormorant Garamond",Times,serif;text-align:center;position:absolute;bottom:30%;left:15%;width:50%;background:none;}
.carousel-caption h4, .carousel-caption p { text-align: center;color:black;color:white;}
.carousel-indicators, .carousel-control  {display:none;}
.carousel-indicators li {	border-radius:0px;height: 13px;width: 13px;background-color: white	;}
.carousel-indicators .active { background-color: var(--color-1);}
.carousel .item img { max-height: 200%;width:100%;height:auto;}
.thumb-carousel-control{display:none;}
.description_gen_carrousel{}
.title_gen_carrousel{font-family:"Cormorant Garamond",Times,serif;} 
.div_thumbnailsCarousel, .thumbnailsCarousel {height: 100%;}



.input_submit, .formLogin .button_valid, .btnstd, .btnstdinv, #global_container input[type='button']{    animation-duration: 0.3s;    transition-duration: 0.3s;    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 0 #0000, 0 0 #0000, 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);    
    color: hsl(var(--primary-foreground));   font-weight: 200;padding:15px 40px;background-color: hsl(var(--primary));   line-height: 1.5!important; border-radius: 9999px; 
    border:none;cursor:pointer;text-transform:uppercase;}
.btnstd:hover, .btnstdinv:hover, #global_container input[type='button']:hover, .input_submit:hover {    background-color: hsl(var(--accent));color: hsl(var(--accent-foreground));box-shadow: 0 0 #0000, 0 0 #0000, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);}
.bcontmin{width:60%;margin:auto;}



/**** HEADER / MENU ***/

.gpmenumo{display:none;}
.gphead{    animation-duration: .5s;transition-duration: .5s;    transition-property: all;transition-timing-function: cubic-bezier(.4, 0, .2, 1);background-color: hsl(var(--noir) / .7);    z-index: 50;top:0;left:0;right:0;    position: fixed;}

.gpheader{margin-left: auto;margin-right: auto;display: flex;    align-items: center;    justify-content: space-between;    padding-left: 1.5rem;
    padding-right: 1.5rem;    padding-top: .5rem;
    padding-bottom: .5rem;    max-width: 1400px;}
.gpmenu{    align-items: center;    gap: 2rem;display: flex;}


.mbut{    text-transform: uppercase;letter-spacing: .15em;opacity: .8;    transition-property: all;
    transition-timing-function: cubic-bezier(.4, 0, .2, 1);transition-duration: .3s;animation-duration: .3s;color: hsl(var(--blanc));}



.logoH{height: 0;animation-duration: .3s;    transition-duration: .3s;    transition-property: all; transition-timing-function: cubic-bezier(.4, 0, .2, 1);}
.logoH.scrolled{height: 3.5rem;}
.logoI{height: 7rem;position:absolute;top:3.5rem;left:2rem; animation-duration: .3s;    transition-duration: .3s;    transition-property: all; transition-timing-function: cubic-bezier(.4, 0, .2, 1);}
.logoI.scrolled{height: 0;}


.mbut{position:relative;color: hsl(var(--blanc));animation-duration: .3s;    transition-duration: .3s;    transition-property: all; transition-timing-function: cubic-bezier(.4, 0, .2, 1);}
.ord1{order:1}
.ord2{order:2}
.ord3{order:3}
.ord5{order:5}
.ord6{order:6}
.ord7{order:7}

.mbut:hover{    color: hsl(var(--gold));}
.mbut:after{  content: ''; width:100%; height:1px;   transition-duration: .3s; animation-duration: .3s;    transition-property: all; transition-timing-function: cubic-bezier(.4, 0, .2, 1);    background-color: hsl(var(--gold));    width: 0px;height: 1px;    left: 0;bottom: -4px;    position: absolute;}
.mbut:hover:after,.gpmenu .linkClickedCurrentPage:after{    content: ''; width: 100%;}


.gpheadscr .gpheader{background-color: hsl(var(--foreground) / 0.8);    box-shadow: 0 0 #0000,  0 0 #0000, 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);}	


.gg_sm {      display: flex !important;      visibility: hidden;      opacity: 0;      transform: translateY(-6px);      transition: opacity 0.22s ease, visibility 0.22s ease, transform 0.22s ease;      pointer-events: none;  }
.ggmenu > .cmenu > .gg_hc:hover > .gg_sm,  .gg_hc .gg_hc:hover .gg_sm {      visibility: visible;      opacity: 1;      transform: translateY(0);     pointer-events: auto;  }
.gg_hc .is-active {      visibility: visible !important;      opacity: 1 !important;      transform: translateY(0) !important;      pointer-events: auto !important;  }
.gg_sm {border-bottom:2px solid hsl(var(--accent))}
.cmenu{display: flex;    gap: 2rem;}



/**** ACCUEIL ****/
.gpacc0{position:relative;overflow: hidden;justify-content: center;align-items: center;min-height: 600px;height: 100vh;display: flex;position: relative;}
.gpacc0full{top: 0;right: 0;bottom: 0;left: 0;position: absolute;}
.container_imacc1{object-fit: cover;width: 100%;height: 100%;max-width: 100%;}  
.container_imacc1 .container, .container_imacc1 .carousel{width:100%;height:100%;}
.container_imacc1 .carousel .item img{animation: ken-burns 12s ease-in-out infinite;max-height: initial;width: 100%;max-width: initial;height: 100%;object-fit: cover;margin: auto;}

.bckgpacc1{z-index:2;background: linear-gradient(to bottom, hsl(var(--noir) / .6), hsl(var(--noir) / .8));top: 0;right: 0;bottom: 0;left: 0;position: absolute;}
.gpacc0Text{max-width: 56rem;z-index:10;margin:auto;    padding-left: 1.5rem;padding-right: 1.5rem;text-align: center;}
/**section 1 **/
.gpacc1{background-color: hsl(var(--blanc));color: hsl(var(--noir));padding-top: 8rem;padding-bottom: 8rem;}
.gpacca10, .gpacca50, .gpacca80, .gpacca100{width:100%;margin-left: auto;margin-right: auto;padding-left: 1.5rem;padding-right: 1.5rem; max-width: 1400px;}
.gpaccb10, .gpaccb100{display: grid; align-items: center; gap: 4rem;grid-template-columns: repeat(2, minmax(0, 1fr));}
.imacc2{position:relative;aspect-ratio:3/4;}
.imacc2:before{content:'';position: absolute;top: -1rem;    left: -1rem;    height: 6rem;    width: 6rem;border-top-width: 2px;border-left-width: 2px;border-color: hsl(var(--gold));}
.imacc2:after{content:'';position: absolute;bottom: -1rem;    right: -1rem;    height: 6rem;    width: 6rem;border-bottom-width: 2px;border-right-width: 2px;border-color: hsl(var(--gold));}
.gpaccd11{display: flex;    gap: 3rem;}
.compteur {color: hsl(var(--gold));line-height: 0.75;}
.compteur>.suffixe{color: hsl(var(--gris));    margin-top: .25rem;letter-spacing: .3em;letter-spacing: .15em; text-transform: uppercase;font-size: .75rem;font-family: Montserrat, sans-serif;}
/** Section 2 : realisations**/
.gpacc2{padding-top: 8rem;padding-bottom: 8rem;}
.gpaccc85{display:grid; grid-template-columns: repeat(3, minmax(0, 1fr));gap: 2rem;}
.gpaccb95{display:grid; grid-template-columns: repeat(2, minmax(0, 1fr));gap: 2rem;}
.gpPrest{display:flex;flex-direction: column;justify-content:center;align-items:center; position: relative;border-width: 1px;border-color: hsl(var(--border));padding: 2rem;text-align: center;transition-property: all;transition-timing-function: cubic-bezier(.4, 0, .2, 1);transition-duration: .5s;animation-duration: .5s;}
.gpPrest:hover{border-color: hsl(var(--gold));}


.gpPrest:hover .prestSVG:before{ background: hsl(var(--gold));}
.gpPrest:after{--tw-scale-x: 0;content:'';position:absolute; bottom:0;height:2px;width:100%;    transform-origin: left;background-color: hsl(var(--gold));transition-property: transform;
    transition-timing-function: cubic-bezier(.4, 0, .2, 1);transition-duration: .5s;    animation-duration: .5s;
    transform: scaleX(var(--tw-scale-x));}
.gpPrest:hover:after{--tw-scale-x: 1;}

.prestSVG{width:2.5rem;aspect-ratio:1;} 
.prestSVG:before {
	content:'';
	display:block;
    mask-size: contain;
    background: hsl(var(--gris));
    width: 100%;
    height: 100%;
    transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    transition-duration: 0.5s;
    transition-property: all;
}

.ico-esc:before {mask: var(--ico-esc);}
.ico-vitre:before {mask: var(--ico-vitre);}
.ico-sculpture:before {mask: var(--ico-sculpture);}
.ico-carport:before {mask: var(--ico-carport);}
.ico-pergola:before {mask: var(--ico-pergola);}
.ico-location:before {mask: var(--ico-location);}
.ico-phone:before {mask: var(--ico-phone);}
.ico-mail:before {mask: var(--ico-mail);}
.ico-clock:before {mask: var(--ico-clock);}


/****animations ***/

@keyframes ken-burns {
    0% {transform: scale(1)}
    50% {transform: scale(1.08)}
    to {transform: scale(1)}
}

@keyframes fade-in {
    0% { opacity: 0 }
    to {opacity: 1}
}

@keyframes fade-in-up {
    0% {opacity: 0;transform: translateY(30px)}
    to {opacity: 1;transform: translateY(0)}
}

@keyframes pulse {
    50% {opacity: .5}
}

/**global**/ 
.titleCarousel{color: hsl(var(--blanc));letter-spacing: .025em;font-weight: 300;font-size: 6rem;line-height: 1;font-family: Cormorant Garamond, serif; animation: fade-in-up .8s ease-out forwards; margin-bottom: 1.5rem;}
.descCarousel{   margin-left: auto; margin-right: auto; letter-spacing: .025em;   margin-bottom: 2.5rem;    max-width: 36rem; font-size:1rem;   animation: fade-in 1s ease-out forwards;    color: hsl(var(--blanc));line-height: 1.5rem;animation-delay: 0.3s; }

.titleCarousel em{    background: linear-gradient(135deg, hsl(var(--gold-dark)), hsl(var(--gold)), hsl(var(--gold-light)));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;}
.button_valid{    background-color: hsl(var(--gold));    padding-left: 2rem;padding-right: 2rem;padding-top: .875rem;padding-bottom: .875rem;    text-transform: uppercase;    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(.4, 0, .2, 1);transition-duration: .3s;    animation-duration: .3s;font-weight: 500;letter-spacing: .15em;border-radius: 0;}
.button_valid:hover{background-color: hsl(var(--gold-light));}
.font-heading {font-family: Cormorant Garamond, serif;}
.font-heading em{color: hsl(var(--gold));}

.text-gris {color: hsl(var(--gris));line-height: 1.625;}
.text-gold {color: hsl(var(--gold));}
.scriptGold{color:hsl(var(--gold)); letter-spacing: .3em; text-transform: uppercase;}
.fullLine{display:flex;      align-items: center;  justify-content: space-between;gap: 1rem;}
.fullLine:before, .fullLine:after{opacity: .6;background-color: hsl(var(--gold));     flex-grow: 1;   max-width: 80%;height: 1px;display: block;content:'';}
.fullLine.shortB:before{max-width: 4rem;}
.fullLine.noAfter:after{background-color: transparent;}


.leftUnderLine{background-color: hsl(var(--gold));margin-bottom: 2rem;height: 1px; width: 4rem;}
.centerUnderLine{margin:auto;background-color: hsl(var(--gold));margin-bottom: 2rem;height: 1px; width: 4rem;}

.section-dark {
    background-color: hsl(var(--noir));
    color: hsl(var(--blanc));
}


/* ============================================================
   LAYOUTS — ABOUT / QUI SUIS-JE (colonnes flex verticales)
   ============================================================ */
/* Conteneurs flex colonne partagés */
.gpaccc11, .gpaccc100, .gpaccd10, .gpaccd100 {
    display: flex;
    flex-direction: column;
}
.gpaccc11, .gpaccc100 { gap: 2rem; }
.gpaccd10, .gpaccd100 { gap: 1rem; }

/* Wrappers de titre de section (pleine largeur) */
.gpaccb51, .gpaccb80 { width: 100%; }


/* Portrait "qui suis-je" — coins gold inversés (haut-droite / bas-gauche) */
.imacc2b { position: relative; aspect-ratio: 3/4; }
.imacc2b:before {
    content: ''; position: absolute; top: -1rem; right: -1rem;
    height: 6rem; width: 6rem;
    border-top-width: 2px; border-right-width: 2px; border-color: hsl(var(--gold));
}
.imacc2b:after {
    content: ''; position: absolute; bottom: -1rem; left: -1rem;
    height: 6rem; width: 6rem;
    border-bottom-width: 2px; border-left-width: 2px; border-color: hsl(var(--gold));
}

/* Citation */
.gpa2quote {
    border-left: 3px solid hsl(var(--gold));
    padding-left: 1.5rem;
    font-style: italic;
    line-height: 1.6;
}

/* ============================================================
   PORTFOLIO GRID (050)
   ============================================================ */
.gpaccb52 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
/* Item portfolio (duplicable) */
.gpa2realItem {

    position: relative;
    overflow: hidden;
    aspect-ratio: 4/5;
    cursor: pointer;
    background: linear-gradient(to top, hsl(var(--noir) / .85) 0%, hsl(var(--noir) / .2) 60%, transparent 100%);
    animation-duration: 0.7s;
    transition-duration: 0.7s;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.gpa2realItem:before{
	position : absolute;
	content : '';
	width : 100%;
	height: 100%;
	z-index:1;
	--tw-gradient-to: transparent var(--tw-gradient-to-position);
   --tw-gradient-from: hsl(var(--noir) / .5) var(--tw-gradient-from-position);
   --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
   background-image: linear-gradient(to top, var(--tw-gradient-stops));
}
.gpa2realItem:hover:before{
   --tw-gradient-to: hsl(var(--noir) / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--noir) / .4) var(--tw-gradient-via-position), var(--tw-gradient-to);
    --tw-gradient-from: hsl(var(--noir) / .9) var(--tw-gradient-from-position);
    --tw-gradient-to: hsl(var(--noir) / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)

}
.gpa2realItem:hover .gpa2realDesc{--tw-translate-y: 0px;}

.gpa2realItem .container_ima {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.gpa2realItem .container_ima img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .6s cubic-bezier(.4,0,.2,1);
}
.gpa2realItem:hover .container_ima img { transform: scale(1.08); }

.gpa2realDesc{
	animation-duration: .5s;
	transition-duration: .5s;
	transition-property: all;
    transition-timing-function: cubic-bezier(.4, 0, .2, 1);
	--tw-translate-y: 1rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y));
}

/* Overlay texte */
.gpa2realItem .t_g {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 2rem 1.5rem;
    opacity: 0; z-index: 2;
}
.gpa2realItem:hover .t_g { opacity: 1; }
.gpa2realCat { letter-spacing: .3em; text-transform: uppercase; margin-bottom: 2.5rem;     opacity: 1 !important; }

/* Ligne gold sous le titre au hover */
.gpa2realItem:after {
    content: ''; display: block;
    height: 2px; width: 0px;
    z-index:2;
    background-color: hsl(var(--gold));
    position:absolute;
    bottom:1.5rem;
    left:1.5rem;
    transition: width .4s ease .1s;
}
.gpa2realItem:hover:after{
	width:4rem;	
}
.gpa2realItem:hover .t_g .t_para:last-child:after { width: 3rem; }
.imgacc5 { width: 100%; height: 100%; object-fit: cover; }

.gpa2realItem .imgacc5{    animation-duration: 0.7s;
    transition-duration: 0.7s;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);}
.gpa2realItem:hover .imgacc5{
    --tw-scale-x: 1.1;
    --tw-scale-y: 1.1;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}


/* ============================================================
   PRESTATIONS (080) — wrappers intérieur / extérieur
   ============================================================ */
.gpaccb80 { width: 100%; margin-bottom: 3rem; }
.gpaccb85, .gpaccb90 { width: 100%; }
.gpaccb85 { margin-bottom: 3rem; }
.gpaccc80, .gpaccc90 { margin-bottom: 1.5rem; }

/* ============================================================
   CONTACT (120)
   ============================================================ */
/* Formulaire contact — grille 2 colonnes */
/* !important nécessaire : generic.css utilise div[class^=table_form_]{display:table} */
.gpa2contactForm.gg_form .t_g {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem 2rem;
    margin-bottom: 1.5rem;
    border-spacing: 0;
}
.line_full { grid-column: 1 / -1 !important; width: 100% !important; }
.gpa2contactForm.gg_form .line_form.line_full { grid-column: 1 / -1 !important; }

.gpa2contactForm.gg_form .line_form {
    display: flex !important;
    flex-direction: column;
}
.gpa2contactForm.gg_form .cell_1_form,
.gpa2contactForm.gg_form .cell_2_form {
    display: block !important;
    width: 100%;
}
.gpa2contactForm.gg_form .cell_1_form label {
    display: block;
    font-size: .7rem;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: hsl(var(--gris));
    margin-bottom: .4rem;
}
.gpa2contactForm.gg_form .cell_2_form input,
.gpa2contactForm.gg_form .cell_2_form textarea {
    width: 100%;
    background: transparent;
    border: 1px solid hsl(var(--border));
    padding: .75rem 1rem;
    font-size: .875rem;
    color: hsl(var(--foreground));
    transition: border-color .3s ease;
    outline: none;
    border-radius: 0;
    font-family: Montserrat, sans-serif;
    box-sizing: border-box;
}
.gpa2contactForm.gg_form .cell_2_form input:focus,
.gpa2contactForm.gg_form .cell_2_form textarea:focus {
    border-color: hsl(var(--gold));
}
.gpa2contactForm.gg_form .cell_2_form textarea { resize: vertical; min-height: 140px; }
.gpa2contactForm.gg_form .input_submit { cursor: pointer; border: none; border-radius: 0; margin-top: .25rem; }

.gpacca120 {
    width: 100%; max-width: 1400px;
    margin-left: auto; margin-right: auto;
    padding-left: 1.5rem; padding-right: 1.5rem;
}
.gpaccb120 { text-align: center; margin-bottom: 3rem; }
.gpaccb125 {
    display: grid;
    grid-template-columns: 2fr 2fr;
    gap: 4rem;
    align-items: center;
}
.gpaccc120 { width: 100%; }
.gpaccc125 { display: flex; flex-direction: column; gap: 1rem; }
/* Coordonnées grille 2×2 */
.gpaccd125 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem 2rem;
}

/* Coordonnées items */
.gpa2coordItem {
    display: flex; gap: .75rem; align-items: flex-start;
    color: hsl(var(--foreground));
}
.gpa2coordItem:before {
    content: '';
    display: block;
    flex-shrink: 0;
    width: 1.5rem; height: 1.5rem;
    background-color: hsl(var(--gold));
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}
.gpa2coordAddr:before  { mask-image: var(--ico-location); -webkit-mask-image: var(--ico-location); }
.gpa2coordTel:before   { mask-image: var(--ico-phone);    -webkit-mask-image: var(--ico-phone); }
.gpa2coordMail:before  { mask-image: var(--ico-mail);     -webkit-mask-image: var(--ico-mail); }
.gpa2coordHours:before { mask-image: var(--ico-clock);    -webkit-mask-image: var(--ico-clock); }

/* ============================================================
   FOOTER
   ============================================================ */
.bfooter {
    background-color: hsl(var(--noir));
    color: hsl(var(--blanc));
    border-top: 1px solid hsl(var(--noir-light));
}
.bfooterInner {
    width: 100%; max-width: 1400px;
    margin-left: auto; margin-right: auto;
    padding: 5rem 1.5rem 3rem;
}
.bfooterCols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3rem;
    margin-bottom: 3rem;
}
.bfooterCol { display: flex; flex-direction: column; gap: .5rem; }
.bfooterLogo { width: 100%; display:flex;    justify-content: space-evenly; gap: 1rem;    align-items: center;}
.logofo { width: auto; height: 2.5rem; object-fit: contain; }
.logofo *{max-width:100%; max-height:100%;height: inherit;}
.bfooterDescTxt { color: hsl(var(--blanc) / .5); font-size: .875rem; line-height: 1.6; margin-top: .5rem; }
.bfooterColTitle {
    color: hsl(var(--gold));
    font-size: .7rem; letter-spacing: .3em; text-transform: uppercase;
    margin-bottom: .75rem;
}
.bfooterNavLink {
    color: hsl(var(--blanc) / .5);
    font-size: .875rem;
    transition: color .3s ease, opacity .3s ease;
}
.bfooterNavLink:hover { color: hsl(var(--gold)); opacity: 1; }
.bfooterInfo { color: hsl(var(--blanc) / .5); font-size: .875rem; }
.bfooterInfo:hover { color: hsl(var(--blanc)); }
.bfooterCopy {
    border-top: 1px solid hsl(var(--noir-light));
}
.bfooterCopyInner {
    width: 100%; max-width: 1400px;
    margin-left: auto; margin-right: auto;
    padding: 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.bfooterCopyTxt { color: hsl(var(--blanc) / .3); font-size: .75rem; }
.bfooterCopyTxt a { color: inherit; }
.bfooterCopyTxt a:hover { color: hsl(var(--gold)); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
    .bfooterCols { grid-template-columns: 1fr 1fr; }
    .bfooterCol:first-child { grid-column: 1 / -1; }
}
@media (max-width: 768px) {
    .gpaccb10, .gpaccb100 { grid-template-columns: 1fr; gap: 2.5rem; }
    .gpaccb125 { grid-template-columns: 1fr; gap: 2.5rem; }
    .gpaccb52, .gpaccc85 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gpaccb95 { grid-template-columns: 1fr; }
    .bfooterCols { grid-template-columns: 1fr; gap: 2rem; }
    .bfooterCol:first-child { grid-column: auto; }
    .bfooterCopyInner { flex-direction: column; }
    .titleCarousel { font-size: 3.5rem; }
    .gpaccd11 { flex-wrap: wrap; gap: 1.5rem; }
}
@media (max-width: 480px) {
    .gpaccb52, .gpaccc85 { grid-template-columns: 1fr; }
}
