/**
 * Theme Name:     Hello DigitCave
 * Author:         La Digit\&#039;Cave
 * Template:       hello-elementor
 * Text Domain:	   hello-digitcave
 * Description:    Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
 */

/* ===================================
   Global Styles - Typography
   =================================== */
* {
  box-sizing: border-box;
}

html {
    font-size: max(18px, 0.89vw);
	overflow-x: clip;
  }

body {
	overflow-x: clip;
}

a {
    cursor: pointer;
}

p, span {
    line-height: 150%;
	text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

b, strong {
    font-weight: 500;
}

/* Empêcher le défilement du corps lorsqu'une fenêtre est ouverte */
body.no-scroll {
    overflow: hidden;
    width: 100%;
	height: 100vh;
}

main.no-scroll {
	opacity: 0.5;
}
    
 h1, h1>span, h2, h2>span, h3, h3>span, h4, h4>span h5, h5>span, h6, h6>span {
    line-height: 125% !important;
}

.elementor-field-textual {
	font-size: 1rem;
}

.single .wp-block-heading:not(:first-of-type), .single .wp-block-image {
	margin: 2.125rem 0 1rem 0 !important;
}

/* Tablet styles */

@media (min-width: 768px) {
   
    p, span {
        line-height: 150%;
    }
}



/* Larger screens */
@media (min-width: 1024px) {
  
  p, span {
        line-height: 160%;
    }
    
    .single-post p {
        line-height: 180%;
    }
}

/*
 * CAPTCHA
 * */

#field_2cae946, #field_2cae946 .rc-anchor, .elementor-g-recaptcha {
	visibility: hidden !important;
    height: 1px;
}

/* Sections */

section {
	padding-top: 3rem;
	padding-bottom: 3rem;
}

@media (min-width:768px) {
	section {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
}

@media (min-width:1024px) {
	section {
		padding-top: 6rem;
		padding-bottom: 6rem;
	}	
}

/* ===================================
   Titles
   =================================== */

.dc-title-main {
	text-transform: uppercase;
	letter-spacing: 0.8125rem;
}

.dc-title-main strong {
	display: block;
	text-shadow: 0px 0px 55px rgba(255, 226, 0, 0.80);
	color: var( --e-global-color-primary );
}

.dc_title-label {
    border-left: 1px solid var( --e-global-color-primary );
    padding-left: 0.8125rem;
}

.dc_title-border {
    border-left: 1px solid var( --e-global-color-primary );
}

.dc_title-glow-b {
    font-weight: 500;
    font-feature-settings: 'clig' off, 'liga' off;
    color: var( --e-global-color-primary );
    text-shadow: 0px 0px 55px rgba(255, 226, 0, 0.80);
}

.dc_title-b {
    font-weight: 500;
    color: var( --e-global-color-primary );
}

@media (min-width:768px) {
    .dc_title-glow-b {
        display: block;
    }
    
    .dc_title-b {
        display: block;
    }
}


/* ===================================
   Buttons
   =================================== */

.btn-shadow {
	box-shadow: 0px -13px 21px -8px rgba(0, 0, 0, 0.2);
}

.elementor-button:hover {
    box-shadow: 0px 0px 55px 8px #FFEE66;
}

.elementor-button:active {
    background-color: #FFB200;
}

.dc_button-tertiary .elementor-button-content-wrapper {
    align-items: center;
    text-decoration: underline;
}

.dc_button-tertiary .elementor-button-icon {
    font-size: 0.6125rem;
    display: flex;
}

.dc_button-tertiary .elementor-button-content-wrapper:hover {
    text-decoration: none;
}

.dc_button-tertiary .elementor-button:hover {
    box-shadow: none;
}



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

.customheader {
	position: sticky;
    top: 0;
    width: 100%;
	height: auto;
	/* height: 5.5625rem; */
    z-index: 999;
	transition: all 0.7s ease, opacity 0.3s ease;
	background: rgb(13, 13, 13); /* Fallback si pas de support backdrop filter */
	background-color: rgba(13, 13, 13, 0.8);
    backdrop-filter: blur(34px);
	-webkit-backdrop-filter: blur(34px);
}

/* Container principal du header */
.customheader_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 95%;
    margin: 0 auto;
	padding: 1rem 0;
}

/* Logo du site */
.custom-logo-link {
	display: inline-block;
}

.custom-logo {
	display: block;
	width: auto;
	height: auto;
    max-width: 190px;
}

/* Styles pour les éléments du menu burger */
.customheader_burgermenu,
.customheader_btn-close {
    display: inline-block;
	line-height: 0;
    font-size: 28px;
}

.customheader_burgermenu {
    margin-right: 13px;
}

/* Navigation principale */
.customheader_nav {
    display: none;
    list-style: none;
}

/* Liens de navigation */
.customheader_navLink {
    color: #ffffff !important;
    font-size: 1.125rem !important;
    text-decoration: none !important;
    transition: all 200ms ease-in-out;
}

.customheader_navLink:hover {
    color: var(--e-global-color-b0e0906) !important;
	text-shadow: 0px 0px 55px rgba(255, 226, 0, 0.80);
}

/* Styles pour les boutons Elementor */
.customheader .elementor-button {
    padding: 0.6125rem 1rem;
}

.customheader .elementor-button .customheader_navLink {
    color: black !important;
    font-weight: 500;
}

/* Styles pour les éléments de menu */
.customheader_navItem {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: left;
    gap: 1rem;
}

/* Liens de menu avec icônes */
.customheader_navItem > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Chevron pour les éléments avec sous-menu */
.customheader_navItem > a .fa-chevron-down {
    font-size: 12px;
    margin-left: 10px;
    transition: transform 0.3s;
}

/* Style général pour le sous-menu */

.customheader_subGroup {
    flex-direction: column;
    position: absolute;
    top: 50%;
    left: 0;
	width: 16rem;
    background-color: #232839; /* Couleur de fond légèrement plus claire et contrastante */
    box-shadow: 0 4px 12px rgba(0, 0, 0, .3); /* Ombre portée plus marquée pour plus de profondeur */
    z-index: 1000;
    padding: 1rem;
    margin-top: 1.75rem;
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease, transform .3s ease;
}

.customheader_navItem:first-of-type .customheader_subGroup {
	width: 22rem;
}

.customheader_subGroup svg {
	width: 1.3125rem;
	height: auto;
}

/* End propal */

.customheader_subGroup > .customheader_navItem {
    flex-direction: row;
    align-items: center;
}

/* Liens dans les sous-menus */
.customheader_subGroup .customheader_navLink {
    padding: 0.3125rem 0;
    display: block;
    font-size: 1rem !important;
    text-transform: none;
}

/* Mobile Menu (hidden by default) */
.customheader_nav.panel-open {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: black;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    z-index: 1001;
    padding: 3.4375rem 1rem;
    overflow-y: auto;
}

.customheader_nav.panel-open .customheader_navLink {
    padding: 13px 8px;
}

.customheader_nav.panel-open .customheader_subGroup {
    display: none;
    position: static;
    width: 100%;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    margin-top: 0;
}

.customheader_nav.panel-open > .customheader_navItem {
    margin: 1rem 0;
}

.customheader_nav.panel-open .customheader_navItem > a {
    justify-content: space-between;
}

.customheader_btn-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
}


/* Style pour la rotation du chevron lorsqu'un sous-menu est ouvert */
.customheader_navItem.active > a .fa-chevron-down {
    transform: rotate(180deg);
}

/* Tablet Styles (min-width: 768px) */
@media (min-width: 768px) {
    .customheader_inner {
        width: 95%;
		padding: 1.3125rem 0;
    }
}

/* Desktop Styles (min-width: 1024px) */
@media (min-width: 1024px) { 
	.customheader_inner {
        width: 90%;
    }
	/*
		.customheader_nav.panel-open {
		width: 34%;
		left: auto;
		right: 0;
	} */
	
	    .customheader_navItem {
        flex-direction: row;
        align-items: center;
        padding: 0.5rem;
    }

    .customheader_burgermenu,
    .customheader_btn-close {
        display: none;
    }

    .customheader_nav {
        display: flex;
        position: relative;
        gap: 2.125rem;
        align-items: center;
    }

    .customheader_subGroup {
        padding: 1rem;
    }

    .customheader_navLink {
        justify-content: left;
    }

    /* Afficher le sous-menu lors du survol du menu parent ou du sous-menu */
    .customheader_navItem:hover .customheader_subGroup,
    .customheader_subGroup:hover {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
	
}

/* Desktop Styles (min-width: 1300px) */
@media (min-width: 1440px) {
	
	.customheader_inner {
        width: 70rem;
    }
	
}

/* ===================================
   Footer
   =================================== */

@media screen and (max-width:768px) {
.footer_menu ul {
    display: flex;
    flex-direction: column;
    align-items: center;
}
}

/* ===================================
   Breadcrumbs
   =================================== */

#breadcrumbs p, #breadcrumbs span, #breadcrumbs a {
	font-size: 14px;
}


/* ===================================
   Flare
   =================================== */

.flare-main, .dc-flare {
    will-change: filter, opacity, width, height;
}

.flare-main {
    z-index: -1;
    opacity: 0.6; /* Opacité réduite pour harmoniser les rendus */
    width: 34rem; /* Taille initiale */
    height: 34rem;
    border-radius: 50%;
    background: var(--Primary-Brand-Main-Color, #FFE200);
    filter: blur(8rem); /* Blur ajusté pour Firefox */
    -webkit-filter: blur(8rem); /* Préfixe pour Safari et anciens WebKit */
    transition: all 0.3s ease; /* Transition pour un changement fluide */
}


@media (min-width: 768px) {
    .flare-main {
        opacity: 0.8; /* Opacité ajustée pour les écrans larges */
    }
}

.dc-flare {
	width: 20rem;
    height: 20rem;
    flex-shrink: 0;
    border-radius: 20rem;
    filter: blur(7.5rem); /* Blur ajusté */
    -webkit-filter: blur(7.5rem); /* Préfixe pour Safari et anciens WebKit */
}


/* ===================================
   Form
   =================================== */

.dcform input, .dcform textarea {
    padding: 0.875rem 0.8125rem;
}



/* ===================================
   Single Post
   =================================== */

.single .wp-block-heading:not(:first-of-type), .single .wp-block-image {
    margin: 2.125rem 0;
}

.blog_cta {
	text-decoration: none !important;
	background-color: var(--e-global-color-primary);
	box-shadow: 0px -13px 21px -8px rgba(0, 0, 0, 0.2);
	transition: all 0.3s ease-in-out;
}

.blog_ctaBtn {
    padding: 0.8em 1.3125em 0.8em 1.3125em;
    background-color: var(--e-global-color-836b7d0);
	border: 2px solid var(--e-global-color-primary);
	color: var(--e-global-color-primary);
	transition: all 0.3s ease-in-out;
}

.blog_ctaBtn span {
	font-weight: 500 !important;
}

.blog_cta:hover {
	box-shadow: 0px 0px 89px 8px #FFEE66;
	background-color: var(--e-global-color-b0e0906);
}

.blog_cta:hover .blog_ctaBtn {
	background-color: var(--e-global-color-b0e0906);
	border: 2px solid var(--e-global-color-836b7d0);
	color: var(--e-global-color-836b7d0);
}

/* ===================================
   Cards
   =================================== */

.dcpost {
    transition: all 0.3s ease-in-out;
    text-decoration: none !important;
}

.dcpost:hover {
    cursor: pointer;
}

.dcpostThumbnail {
    transition: all 0.3s ease-in-out;
    overflow: hidden;
    height: 100%;
}

.dcpostThumbnail img {
    transition: all 0.3s ease-in-out;
}

.dcpost:hover .dcpostThumbnail img {
    transform: scale(1.2);
}

.dcpost-card {
    border: 1px solid #191D29;
    background: linear-gradient(139deg, rgba(22, 28, 44, 0.50) 0%, rgba(36, 45, 71, 0.50) 100%);
    backdrop-filter: blur(34px) ;
	-webkit-backdrop-filter: blur(34px);
}

@media screen and (min-width:768px) {
    .dcpost{
        height: 100%;
    }
}

@media screen and (max-width:767px) {
    .dcpost {
        height: auto !important;
    }
}

.dcpost-card:hover {
    background: linear-gradient(139deg, rgba(22, 28, 44, 0.90) 0%, rgba(36, 45, 71, 0.95) 100%);
    box-shadow: 0px 4px 144px -34px #F8DC01;
}

/* Posts Categories */

.dcpost-card.cat-website.dcpost:hover {
    box-shadow: 0px 4px 144px -34px #FFC89F !important;
}

.dcpost-card.cat-marketing.dcpost:hover {
    box-shadow: 0px 4px 144px -34px #FF9F9F !important;
}

.dcpost-card.cat-blockchain.dcpost:hover {
    box-shadow: 0px 4px 144px -34px #FFEB83 !important;
}

.dcpost-card.cat-projet.dcpost:hover {
    box-shadow: 0px 4px 144px -34px #10C0AB !important;
}

/* Offers styles */

.dc_offer-dc, .dc_offer-dc-wrapper .dc_card-loop {
    border: 1px solid #2D3447;
    background: linear-gradient(92deg, rgba(22, 28, 44, 0.40) 0%, #161C2C 100%);
}

.dc_offer-web, .dc_offer-web-wrapper .dc_card-loop {
    background-image: linear-gradient(92deg, #29201A66 0%, #2B1F16 100%);
    border: 1px solid #675A416B;
}

.dc_offer-branding, .dc_offer-branding-wrapper .dc_card-loop {
    background: linear-gradient(92deg, #17252C 0%, rgba(42, 58, 66, 0.40) 100%);
    border: 1px solid #5F85966B;
}

.dc_offer-boost, .dc_offer-boost-wrapper .dc_card-loop {
	border: 1px solid #965F5F6B;
	background: linear-gradient(92deg, #2C1717 0%, rgba(62, 26, 26, 0.40) 100%);
}

.dc_offer-project, .dc_offer-project-wrapper .dc_card-loop {
	border: 1px solid #0863586B;
	background: linear-gradient(92deg, #172C29 0%, rgba(6, 62, 56, 0.40) 100%);
}

/* Flares de solutions */

.dcoffer {
	position: relative;
}

.dcoffer .elementor-cta__content {
	background-color: transparent !important;
	position: relative;
	z-index: 1;
}

.dcoffer:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	height: 120%;
	width: 120%;
	border-radius: 50%;
	filter: blur(5.5625rem);
	-webkit-filter: blur(5.5625rem); /* Préfixe pour Safari et anciens WebKit */
	transition: filter 0.4s cubic-bezier(0.25, 0.1, 0.25, 1), background 0.4s cubic-bezier(0.25, 0.1, 0.25, 1); 
	z-index: -1;
	will-change: filter, background; /* Optimisation pour les navigateurs */
}

.dcoffer:hover:before {
	filter: blur(9rem);
	-webkit-filter: blur(9rem); /* Préfixe pour Safari et anciens WebKit */
}

.dc_offer-flare-web:hover.dcoffer:before {
	background: rgba(255, 235, 131, 0.55);
}

.dc_offer-flare-branding:hover.dcoffer:before {
	background: rgba(86, 204, 255, 0.55);
}

.dc_offer-flare-boost:hover.dcoffer:before {
	background: rgba(255, 159, 159, 0.55);
}

.dc_offer-flare-project:hover.dcoffer:before {
	background: rgba(16, 192, 171, 0.55);
}

/* ===================================
   Portfolio
   =================================== */

/* Portfolio Tools */

.pf_tools {
    margin-top: 1.75rem;
	padding: 1.3125em 2.125em;
	background-color: #161C2C;
}

.pf_toolsTitle {
    margin: 0;
    margin-bottom: 1.3125em;
}

.pf_toolsWrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
    gap: 2.125em;
}

.pf_tool {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8125em;
    min-width: 6.25em;
}

/* Portfolio Categories */

.cat-website.dcpost-pf .dcpostThumbnail,
.cat-design.dcpost-pf .dcpostThumbnail,
.cat-branding.dcpost-pf .dcpostThumbnail {
	will-change: filter;
}

.cat-website.dcpost-pf:hover .dcpostThumbnail {
  filter: drop-shadow(0 0 125px rgba(255, 200, 159, 0.8));
}

.cat-design.dcpost-pf:hover .dcpostThumbnail {
	filter: drop-shadow(0 0 125px rgba(213, 159, 255, 0.8));
}

.cat-branding.dcpost-pf:hover .dcpostThumbnail {
	filter: drop-shadow(0 0 125px rgba(86, 204, 255, 0.8));
}


/* ===================================
   Histoire
   =================================== */

@media (min-width: 1024px) {
	#histoire-intro,
	#histoire-settings {
		display: none;
	}
	
	#histoire-settings #mute-icon {
		display: none;
	}
	
	#histoire-settings #up-icon {
		display: inline;
	}
}

.fade-in {
    opacity: 0;
    display: block;
    animation: fadeIn 1s forwards;
}

.fade-out {
    opacity: 1;
    animation: fadeOut 1s forwards;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}