/*
* ----------------------------------------------------------------------------------------
Author       : Tanvir Hossain
Template Name: Noir - Premium Portfolio Template
Version      : 1.0                                          
* ----------------------------------------------------------------------------------------
*/

/*
* ----------------------------------------------------------------------------------------
* 01.GLOBAL CSS STYLE
* 02.COMMON CSS STYLE
* 03.MENU CSS STYLE
* 04.HEADER CSS STYLE
* 05.ABOUT CSS STYLE
* 06.SERVICE CSS STYLE
* 07.SKILL CSS STYLE
* 08.RESUME CSS STYLE
* 09.PORTFOLIO CSS STYLE
* 10.TESTIMONIALS CSS STYLE
* 11.PRICING CSS STYLE
* 12.CLIENTS CSS STYLE
* 13.CONTACT CSS STYLE
* 14.FOOTER CSS STYLE
* 15.PRELOADER & BOUNCE CCS STYLE
* 16.BLOG CSS STYLE
* ----------------------------------------------------------------------------------------
*/


/*
* ----------------------------------------------------------------------------------------
* 01.GLOBAL STYLE
* ----------------------------------------------------------------------------------------
*/
:root {
    --primary-color: #f79220;
    --text-color: #d5d5d5;
    --heading-color: #ffffff;
    --subtitle-color: #d5d5d5;
    --main-color: #ffffff;
    --lighter-color: #f7f7f7;
    --black-color: #0F0F0F;
    --border-color: rgba(255, 255, 255, 0.0784313725);
    --button-border: rgba(119, 119, 125, .2);
    --body-background: #000;
    --grey-bg: #E6EAEE;
    --text-font: "Helvetica Now Text", "Helvetica Neue", "Helvetica", "Inter", Arial, sans-serif;
    --title-font: "Helvetica Now Display", "Helvetica Neue", "Helvetica", "Inter", Arial, sans-serif;
    --section-dark: #000;
    --section-darker: #000;
}


* {
    margin: 0;
    padding: 0;
    border: none;
    outline: none;
    box-shadow: none;
}

html {
    overflow-x: hidden;
    max-width: 100vw;
}

body {
    color: var(--text-color);
    background: var(--body-background);
    font-weight: 400;
    line-height: 30px;
    font-size: 16px;
    font-family: var(--text-font);
    overflow-x: hidden;
    max-width: 100vw;
    position: relative;
}


h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6,
.accordion-item .accordion-button {
    color: var(--main-color);
    font-family: var(--title-font);
}

h1,
.h1 {
    font-size: 58px;
}

h2,
.h2 {
    font-size: 22px;
}

h3,
.h3 {
    line-height: 1.3;
    font-size: 30px;
}

h4,
.h4 {
    line-height: 1.1;
    font-size: 24px;
}

h5,
.h5 {
    line-height: 1.4;
    font-size: 20px;
}

h6,
.h6 {
    font-size: 16px;
}


p {
    line-height: 28px;
}

ul,
li {
    margin: 0;
    padding: 0;
}

fieldset {
    border: 0 none;
    margin: 0 auto;
    padding: 0;
}

.no-padding {
    padding: 0 !important;
}

a {
    color: var(--text-color);
    cursor: pointer;
    outline: none;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    text-decoration: none;
    font-family: var(--title-font);

}

a:hover,
a:focus,
a:visited {
    text-decoration: none;
    outline: none;

}

a:hover {
    color: var(--primary-color);

}


ul,
li {
    list-style: none;
    padding: 0;
    margin: 0;
}

img {
    max-width: 100%;
    display: inline-block;
}

mark {
    color: var(--primary-color);
    background: transparent;
    text-decoration: underline;
}



input,
select,
textarea,
.nice-select,
.form-control {
    width: 100%;
    height: auto;
    border: none;
    font-size: 20px;
    border-radius: 0;
    padding: 20px 0;
    background-color: #fff;
    border-bottom: 1px solid var(--primary-color)
}

input::-webkit-input-placeholder,
select::-webkit-input-placeholder,
textarea::-webkit-input-placeholder,
.nice-select::-webkit-input-placeholder,
.form-control::-webkit-input-placeholder {
    color: var(--text-color);
    opacity: .4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
}

input:-ms-input-placeholder,
select:-ms-input-placeholder,
textarea:-ms-input-placeholder,
.nice-select:-ms-input-placeholder,
.form-control:-ms-input-placeholder {
    color: var(--text-color);
    opacity: .4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
}

input::-ms-input-placeholder,
select::-ms-input-placeholder,
textarea::-ms-input-placeholder,
.nice-select::-ms-input-placeholder,
.form-control::-ms-input-placeholder {
    color: var(--text-color);
    opacity: .4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
}

input::-webkit-input-placeholder,
select::-webkit-input-placeholder,
textarea::-webkit-input-placeholder,
.nice-select::-webkit-input-placeholder,
.form-control::-webkit-input-placeholder {
    color: var(--text-color);
    opacity: .4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
}

input::-moz-placeholder,
select::-moz-placeholder,
textarea::-moz-placeholder,
.nice-select::-moz-placeholder,
.form-control::-moz-placeholder {
    color: var(--text-color);
    opacity: .4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
}

input:-ms-input-placeholder,
select:-ms-input-placeholder,
textarea:-ms-input-placeholder,
.nice-select:-ms-input-placeholder,
.form-control:-ms-input-placeholder {
    color: var(--text-color);
    opacity: .4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
}

input::placeholder,
select::placeholder,
textarea::placeholder,
.nice-select::placeholder,
.form-control::placeholder {
    color: var(--text-color);
    opacity: .4;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
}

input:focus,
select:focus,
textarea:focus,
.nice-select:focus,
.form-control:focus {
    border-bottom: 2px solid var(--primary-color);
}

.nice-select {
    font-size: 20px;
    line-height: 1.3;
}

.nice-select:after {
    width: 8px;
    height: 8px;
    right: 8px;
    border-color: var(--heading-color);
}

.nice-select .current {
    font-weight: 500;
    color: var(--heading-color);
}

.nice-select .list {
    min-width: 100%;
    border-radius: 0;
}

textarea {
    display: inherit;
    padding-top: 20px;
}

label {
    cursor: pointer;
    font-weight: 500;
    margin-bottom: 5px;
    color: var(--main-color);
}

.form-group {
    position: relative;
    margin-bottom: 15px;
}

input:focus,
button:focus,
.form-control:focus {
    outline: none;
    box-shadow: none;
    border-color: #cfdbf1;
}

input[type=search]::-ms-clear {
    display: none;
    width: 0;
    height: 0;
}

input[type=search]::-ms-reveal {
    display: none;
    width: 0;
    height: 0;
}

input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-results-button,
input[type=search]::-webkit-search-results-decoration {
    display: none;
}

input[type=checkbox],
input[type=radio] {
    height: auto;
    width: auto;
}

html {
    scroll-behavior: unset !important;
}


/*
* ----------------------------------------------------------------------------------------
* 02.COMMON CSS STYLE
* ----------------------------------------------------------------------------------------
*/

.no-gap {
    margin-left: 0;
    margin-right: 0;
}

.no-gap>div {
    padding-left: 0;
    padding-right: 0;
}

.section-title {
    margin-bottom: 50px;
    text-align: center;
}

.has-border {
    border-bottom: 1px solid #454545;
}

.section-title .sub-title {
    font-weight: 500;
    display: block;
    color: rgba(255, 255, 255, 0.65);
}

.section-black-title h2 {
    color: var(--main-color);
}

.section-white-title h2 {
    color: var(--heading-color);
}

.section-title h2 {
    margin-bottom: 15px;
    font-size: 60px;
    line-height: 70px;
    text-transform: uppercase;
    padding-bottom: 20px;
}

.section-title p {
    font-size: 16px;
    text-transform: uppercase;
}

.section-title h2 span {
    color: var(--main-color);
}


.section-title h6 {
    font-size: 18px;
}

.section-title h6 span {
    color: var(--primary-color);
}

.theme-btn {
    background: var(--primary-color);
    color: var(--text-color);
    cursor: pointer;
    display: inline-block;
    border: 1px solid var(--button-border);
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    margin: 0 5px 10px 0;
    overflow: visible;
    border-radius: 2px;
    padding: 20px 34px;
    text-align: center;
    text-transform: none;
    -webkit-transition: .3s;
    transition: .3s
}

.theme-btn-two {
    background: var(--primary-color);
    color: var(--black-color);

}

.theme-btn:focus {
    text-decoration: none;
    -webkit-transition: .3s;
    transition: .3s
}

.theme-btn i {
    margin-left: 4px;
}

.theme-btn:hover {
    border: 1px solid var(--button-border);
    text-decoration: none;
    color: var(--main-color);
    -webkit-transition: .3s;
    transition: .3s;
    background: var(--black-color);
}

.theme-btn-two:hover {
    border: 1px solid var(--body-color);
    text-decoration: none;
    color: var(--heading-color);
}

.theme-btn:active {
    box-shadow: rgba(0, 0, 0, .125) 0 3px 5px inset;
    outline: 0;
}


.details-btn {
    width: 50px;
    height: 50px;
    background: #131313;
    line-height: 50px;
    border-radius: 50%;
    text-align: center;
    display: inline-block;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    border: 1px solid var(--border-color);
}

.details-btn:hover {
    color: var(--black-color);
    background: var(--primary-color);
}

.read-more {
    color: white;
    font-size: 14px;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    text-transform: capitalize;
}

.read-more i {
    float: right;
    margin-top: 2px;
    margin-left: 7px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

.read-more:hover {
    color: var(--primary-color);
}

.read-more:hover i {
    margin-left: 10px;
}

.list-style-one li {
    color: white;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-weight: 500;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}


.list-style-one li:not(:last-child) {
    margin-bottom: 10px;
}

.list-style-one.two-column {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-top: 30px;
}

.list-style-one.two-column li {
    width: 48%;
    color: rgb(119, 119, 125);
    font-size: 16px;
}


.list-style-one.two-column li i {
    padding-right: 10px;
}

.list-style-two li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}



.list-style-two li:before {
    content: "\f00c";
    line-height: 1;
    font-size: 16px;
    margin-right: 20px;
    color: var(--lighter-color);
    width: 30px;
    height: 30px;
    background: var(--primary-color);
    line-height: 30px;
    border-radius: 50%;
    text-align: center;
    font-family: "Font Awesome 5 Pro";
}

.list-style-two li:not(:last-child) {
    margin-bottom: 25px;
}

.social-style-one {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    margin-left: -5px;
    margin-right: -5px;
}

.social-style-one a {
    color: #B0AFAF;
    font-size: 14px;
    margin-left: 5px;
    margin-right: 5px;
    width: 35px;
    height: 35px;
    background: #0C0B0B;
    line-height: 35px;
    border-radius: 50%;
    text-align: center;
}

.social-style-one a:hover {
    color: var(--black-color);
    background: var(--primary-color);
}

.social-style-two {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    margin-left: -12px;
    margin-right: -12px;
}

.social-style-two a {
    color: rgba(255, 255, 255, 0.35);
    margin-left: 12px;
    margin-right: 12px;
}

.social-style-two a:hover {
    color: var(--primary-color);
}


.pagination {
    -webkit-box-align: center;
    -ms-flex-align: center;
    -ms-grid-row-align: center;
    align-items: center;
    margin-left: -15px;
    margin-right: -15px;
}

.pagination li {
    margin: 10px 15px 0;
}

.pagination li a,
.pagination li .page-link {
    padding: 0;
    border: none;
    font-size: 24px;
    box-shadow: none;
    font-weight: 600;
    color: var(--main-color);
    background: transparent;
}

.pagination li.active .page-link,
.pagination li:hover:not(.disabled) .page-link {
    background: transparent;
    color: var(--primary-color);
}

.ratting {
    line-height: 1;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    margin-left: -5px;
    margin-right: -5px;
}

.ratting i {
    margin: 5px;
    color: #AB6034;
}

.slick-arrow {
    width: 40px;
    height: 40px;
    color: var(--black-color);
    -webkit-transition: 0.5s;
    transition: 0.5s;
    line-height: 40px;
    border-radius: 50%;
    background: var(--main-color);
    border: 1px solid var(--button-border);
}

.slick-arrow:focus,
.slick-arrow:hover {
    color: var(--white-color);
    background: transparent;
    border-color: var(--main-color);
}

.slider-arrows button:first-child {
    margin-right: 5px;
}

.slider-arrows button:last-child {}

/*** Slick Dots ***/
.slick-dots {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}

.slick-dots li {
    position: relative;
    cursor: pointer;
    margin: 8px;
    width: 6px;
    height: 6px;
    opacity: 0.3;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
    -webkit-transition: 0.5s;
    transition: 0.5s;
    border-radius: 50%;
    background: #1D1B1A;
}

.slick-dots li button {
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    height: 0;
}

.slick-dots li:before {
    content: '';
    width: 0;
    height: 0;
    left: 50%;
    top: 50%;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    border-radius: 50%;
    position: absolute;
    border: 1px solid var(--primary-color);
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

.slick-dots li.slick-active {
    background: var(--primary-color);
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
}

.slick-dots li.slick-active:before {
    width: 21px;
    height: 21px;
}




.single-page-hero-area {
    padding-top: 200px;
    padding-bottom: 50px;
}

.single-page-hero-area h2 {
    margin-bottom: 15px;
    font-size: 80px;
    text-transform: uppercase;
    padding-bottom: 20px;
    text-align: center;
    color: var(--main-color);
}

.single-page-hero-area p {
    padding: 0px 200px;
    font-size: 16px;
    line-height: 24px;
    text-align: center;
    color: var(--main-color);
}


/*
* ----------------------------------------------------------------------------------------
* 03.MENU CSS STYLE
* ----------------------------------------------------------------------------------------
*/

.header-area {
    position: relative;
    left: 0px;
    top: 0px;
    z-index: 999;
    width: 100%;
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
}

.fixed-header .header-upper {
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
    border-bottom: 1px solid rgba(119, 119, 125, .2);
    background: var(--black-color);
}

.fixed-header .header-inner {
    padding: 15px 0px;
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
}

.header-inner {
    padding: 30px 0px;
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
}

.main-header .header-upper {
    z-index: 5;
    width: 100%;
    position: fixed;
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
}

.logo img {
    width: 200px;
}

.main-menu {
    text-align: right;
}

.main-menu ul li {
    display: inline-block;
    margin-left: 30px;
    position: relative;
}

.main-menu ul li:last-child {
    margin-right: 0;
}

.main-menu ul li.has-dropdown>a {
    padding-right: 14px;
}

.main-menu ul li.has-dropdown>a:after {
    position: absolute;
    content: "\f107";
    right: -4px;
    top: 10px;
    font-size: 16px;
    color: var(--main-color);
    font-family: "Font Awesome 6 Pro";
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

.main-menu ul li .sub-menu li.has-dropdown>a:after {
    right: 15px;
    top: 6px;
}

.main-menu ul li a {
    font-size: 15px;
    line-height: 20px;
    font-weight: 500;
    padding: 10px 0px;
    display: inline-block;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    text-transform: uppercase;
    color: var(--main-color);
}

.main-menu ul li .active {
    color: var(--primary-color);
}

.main-menu ul li:hover>a {
    color: var(--primary-color);
}

.main-menu ul li:hover>a:after {
    color: var(--primary-color);
}

.main-menu ul li:hover .sub-menu {
    visibility: visible;
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    top: 100%;
}

.main-menu ul li .sub-menu {
    margin-top: 10px;
    position: absolute;
    left: 0;
    top: 110%;
    min-width: 200px;
    background-color: var(--black-color);
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    visibility: hidden;
    z-index: 99;
    box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.16);
    padding: 20px 0px 15px;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    border-top: 2px solid #000;
}

.main-menu ul li .sub-menu li {
    margin: 0;
    padding: 0;
    display: inline;
    position: relative;
    width: 100%;
    display: block;
}

.main-menu ul li .sub-menu li a {

    display: block;
    padding: 5px 25px;
    -webkit-transition: 0.3s;
    transition: 0.3s;
    text-align: left;
    font-size: 13px;
    line-height: 20px;
    font-weight: 400;
    transition: 0.3s;
    text-transform: uppercase;
    color: var(--heading-color);
}

.main-menu ul li .sub-menu li .active {
    color: var(--primary-color);
}

.main-menu ul li .sub-menu li:hover>a {
    color: var(--primary-color);
}

.main-menu ul li .sub-menu li>.sub-menu {
    left: 120%;
    top: 0;
    visibility: hidden;
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
}

.main-menu ul li .sub-menu li:hover>.sub-menu {
    right: 100%;
    left: auto;
    visibility: visible;
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
}

.main-menu ul li.menu-last .sub-menu {
    left: auto;
    right: 0;
}

.side-menu-icon i {
    color: var(--main-color);
    font-size: 32px;
    cursor: pointer;
    position: relative;
    top: 5px;
}

.linkstyle {
    cursor: pointer;
    font-size: 18px;
    position: relative;
    white-space: nowrap;
}

.linkstyle:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    background: var(--main-color);
    top: 100%;
    left: 0;
    pointer-events: none;
    -webkit-transform-origin: 100% 50%;
    transform-origin: 100% 50%;
    -webkit-transform: scale3d(0, 1, 1);
    transform: scale3d(0, 1, 1);
    -webkit-transition: -webkit-transform 0.3s;
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
}


.linkstyle:hover:before {
    -webkit-transform-origin: 0% 50%;
    transform-origin: 0% 50%;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
}

/*----------------------------------------*/
/*  MEAN MENU CSS START
/*----------------------------------------*/
/* mean menu customize */
.mean-container a.meanmenu-reveal {
    display: none;
}

.mean-container .mean-nav {
    background: none;
    margin-top: 0;
}

.mean-container .mean-bar {
    padding: 0;
    min-height: auto;
    background: none;
}

.mean-container .mean-nav>ul {
    padding: 0;
    margin: 0;
    width: 100%;
    list-style-type: none;
    display: block !important;
}

.mean-container a.meanmenu-reveal {
    display: none !important;
}

.mean-container .mean-nav ul li a {
    width: 100%;
    padding: 10px 0;
    color: var(--text-color);
    border-top: 1px solid #353535;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 500;
}

.mean-container .mean-nav ul li a:hover {
    color: var(--primary-color);
}

.mean-container .mean-nav ul li a.mean-expand {
    margin-top: 5px;
    padding: 0 !important;
    line-height: 14px;
    border: 1px solid #353535 !important;
    height: 30px;
    width: 30px;
    line-height: 30px;
    color: var(--primary-color);
    line-height: 30px;
    top: 0;
    font-weight: 400;
}

.mean-container .mean-nav ul li a.mean-expand:hover {
    background: var(--tp-theme-1);
    color: var(--tp-common-white);
    border-color: #353535;
}

.mean-container .mean-nav ul li>a>i {
    display: none;
}

.mean-container .mean-nav ul li>a.mean-expand i {
    display: inline-block;
}

.mean-container .mean-nav>ul>li:first-child>a {
    border-top: 0;
}

.mean-container .mean-nav ul li a.mean-expand.mean-clicked {
    color: var(--tp-common-white);
}

.mean-container .mean-nav ul li a.mean-expand.mean-clicked i {
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    color: var(--tp-heading-primary);
}

/*----------------------------------------*/
/*  Sidebar CSS START
/*----------------------------------------*/
.sidebar__area {
    position: fixed;
    right: -485px;
    top: 0;
    width: 465px;
    height: 100%;
    background: var(--black-color) none repeat scroll 0 0;
    overflow-y: scroll;
    -ms-box-shadow: -5px 0 20px -5px rgba(0, 0, 0, 0.5);
    -o-box-shadow: -5px 0 20px -5px rgba(0, 0, 0, 0.5);
    box-shadow: -5px 0 20px -5px rgba(0, 0, 0, 0.5);
    -webkit-transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
    transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
    z-index: 9999;
}

@media (max-width: 767px) {
    .sidebar__area {
        width: 100%;
        right: -100%;
    }
}

.sidebar__area.sidebar-opened {
    right: 0px;
}

.sidebar__area-2 {
    left: -485px;
}

.sidebar__area-2.sidebar-opened {
    left: 0px;
}

.sidebar__wrapper {
    position: relative;
    padding: 45px;

}

@media (max-width: 575px) {
    .sidebar__wrapper {
        padding: 20px;
    }
}

.sidebar__close {
    position: absolute;
    top: 35px;
    right: 45px;
}

@media (max-width: 575px) {
    .sidebar__close {
        top: 12px;
        right: 20px;
    }
}

.sidebar__close-btn {
    display: inline-block;
    font-size: 16px;
    height: 45px;
    width: 45px;
    line-height: 49px;
    background: #000;
    color: #fff;
    border-radius: 50%;
}

.sidebar__close-btn:hover {
    background: #000;
}

.sidebar__close-btn-3 {
    background: #666;
}

.sidebar__close-btn-3:hover {
    background: #666;
}


.body-overlay {
    background-color: rgba(0, 0, 0, 0.7);
    height: 100%;
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 999;
    left: 0;
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    visibility: hidden;
    -webkit-transition: all 0.3s ease-out 0s;
    transition: all 0.3s ease-out 0s;
}

.body-overlay:hover {
    cursor: pointer;
}

.body-overlay.opened {
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    visibility: visible;
}

/*
* ----------------------------------------------------------------------------------------
* 04.HEADER CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.main-hero-area {
    padding-top: 300px;
    padding-bottom: 100px;
    background: url(../images/custom/hero-bg.jpg) no-repeat;
    background-position: top center;
    background-size: 100% auto;
}

.main-hero-image-area {
    background: url(../images/hero-image.jpg) no-repeat;
    background-size: cover;
    z-index: 1;
    position: relative;
}


.main-hero-image-area:after {
    position: absolute;
    background: rgba(0, 0, 0, .5);
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    content: "";
    z-index: -1;
}

.main-hero-video-area {
    position: relative;
    overflow: hidden;
    z-index: 1;
    background: #000 url(../images/hero-image.jpg) center/cover no-repeat;
    min-height: 100vh;
    min-height: 100dvh;
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.main-hero-video-area .hero-video-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
}

/* Embed YouTube en mode cover full-screen (aspect 16:9 toujours plus grand que le viewport) */
.main-hero-video-area .hero-video-embed {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: -2;
    pointer-events: none;
    background: #000;
}

.main-hero-video-area .hero-video-embed iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 56.25vw; /* 16:9 basé sur la largeur viewport */
    min-height: 100vh;
    min-width: 177.78vh; /* 16:9 basé sur la hauteur viewport */
    transform: translate(-50%, -50%);
    border: 0;
    pointer-events: none;
}

.main-hero-video-area .hero-video-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.55) 100%);
    z-index: -1;
    pointer-events: none;
}

/* Dégradé transparent → noir au bas du hero pour fondre avec la section suivante */
.main-hero-video-area::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 220px;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 50%, #000 100%);
    z-index: 1;
    pointer-events: none;
}

.main-hero-video-area .container {
    position: relative;
    z-index: 2;
    width: 100%;
}

.main-hero-video-area .hero-content {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

.main-hero-video-area .hero-content h2 {
    font-size: clamp(2.25rem, 6.5vw, 5.75rem);
    text-wrap: balance;
    line-height: 1.05;
    margin-left: auto;
    margin-right: auto;
}
.multipage-service-area{
    padding-top: 100px;
}

.hero-content {
    position: relative;
}

.hero-content h2 {
    font-weight: 500;
    font-size: 130px;
    text-transform: uppercase;
    text-align: center;
    color: #ffffff;
}

.hero-content p {
    color: var(--text-color);
    font-size: 20px;
    margin-bottom: 30px;
    text-transform: uppercase;
    letter-spacing: 0.15em;
}

.hero-content img {
    width: 200px;
    position: absolute;
    right: 10%;
    top: -30%;
    z-index: -9;
    border-radius: 50%;
}

.hero-btns {
    margin-top: 30px;
}

.hero-content .hero-btns .read-more {
    margin-top: 15px;
    text-decoration: underline;
}

.author-image-part {
    z-index: 1;
    overflow: hidden;
    max-width: 575px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    text-align: center;
    border-radius: 0 0 580px 565px;
}

.author-image-part .bg-circle {
    z-index: -2;
    width: 425px;
    height: 425px;
    position: absolute;
    left: 5%;
    top: 4%;
    border-radius: 50%;
    background: var(--black-color);
}


.author-image-part .progress-shape {
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: -1;
    width: 100%;
    text-align: center;
}

.hero-counter-area {
    margin-top: 60px;
}


.counter-item {
    text-align: center;
}

.counter-title {
    color: var(--text-color);
}

.hero-counter-area .count-text {
    line-height: 1;
    font-weight: 700;
    color: var(--text-color);
    text-align: center;
    font-size: 50px;

}

.hero-counter-area .count-text.plus:after {
    content: '+';
}

.hero-counter-area .count-text.k-plus:after {
    content: 'k+';
}

.hero-counter-area .count-text.percent:after {
    content: '%+';
}

.hero-counter-area .counter-title {
    display: block;
}

.hero-image {
    text-align: center;
    position: relative;
}

.hero-image img {
    width: 400px;
    text-align: center;
    border-radius: 20px;
    border: 3px solid #fff;
    margin-top: -100px;
    rotate: 10deg;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

.hero-image img:hover {
    rotate: 0deg;
    -webkit-transition: 0.4s;
    transition: 0.4s;
}

/*Clienti Reviews*/
.clienti-reviews .clienti-profile {
    list-style-type: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 0;
    margin: 0;
}

.clienti-reviews .clienti-profile li {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 60px;
    flex: 0 0 60px;
    height: 60px;
    width: 60px;
    margin-left: -15px;
    border-radius: 100%;
}

.clienti-reviews .clienti-profile li img {
    border-radius: 100%;
}

.clienti-reviews .clienti-profile li:first-child {
    margin-left: 0px;
}

.clienti-reviews .reviews {
    font-size: 20px;
    font-weight: 500;
    color: var(--main-color);
    display: block;
    margin-top: 20px;
}

.clienti-reviews .reviews span {
    color: #969696;
}

.clienti-reviews .reviews p {
    margin-top: 20px;
    font-size: 16px;
}


/*
* ----------------------------------------------------------------------------------------
* 05.ABOUT CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.about-area {
    padding-top: 100px;
    padding-bottom: 100px;
    background: var(--black-color);
}

.hero-content .job {
    display: inline-block;
    background-color: #f5f5f5;
    padding: 15px 40px;
    margin-top: 10px;
}

.hero-content .job span {
    position: relative;
    display: inline-block;
    padding-right: 15px;
    margin-right: 10px;
}

.hero-content .job span:last-child {
    margin: 0px;
    padding: 0px;
}

.hero-content .job span:last-child:after {
    display: none;
}

.hero-content .job span:after {
    position: absolute;
    content: "";
    width: 6px;
    height: 6px;
    background-color: rgba(0, 0, 0, .15);
    right: 0px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    border-radius: 100%;
}

.about-content-part p {
    font-size: 30px;
    line-height: 1.4em;
}

.about-image-part {
    text-align: center;
    padding: 40px;
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 10px;
}

.about-image {
    padding-right: 50px;
}

.about-image-area img {
    width: 50%;
    text-align: center;
}

.about-image-part img {
    border-radius: 10px;
}

.about-image-part h2 {
    margin-top: 30px;
    font-size: 30px;
}

.about-content-part h2 {
    font-size: 55px;
    line-height: 72px;
    margin-bottom: 20px;
}


.about-content-part h2 span {
    padding: 0 20px;
    border: 1px solid rgba(0, 0, 0, 0.1);
}



.about-social {
    margin-top: 30px;
}

.about-social ul {
    list-style: none;
}

.about-social ul li {
    display: inline-block;
    margin-right: 15px;

}

.about-social ul li a {
    font-size: 20px;
    border: 3px solid var(--border-color);
    padding: 10px 14px;
    border-radius: 30px;
}

.about-social ul li a:hover {
    color: var(--primary-color);
}

.about-image-part .dot-shape {
    position: absolute;
    left: -10%;
    top: 25%;
    -webkit-animation: rotated_circle linear 10s infinite;
    animation: rotated_circle linear 10s infinite;
}

.about-btn {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    color: #fff;
    border: 1px solid rgb(237, 237, 238);
    padding: 15px 20px 10px 20px;
    border-radius: 30px;
}

.about-btn img {
    border-radius: 50%;
    margin-right: 15px;
}

.about-btn h6 {
    font-weight: 400;
    color: rgb(119, 119, 125);
    margin-bottom: 0;
    margin-right: 15px;
    margin-top: -5px;

}


.about-btn i {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}


.about-counter-part {
    text-align: center;
    background-color: var(--main-color);
    border-radius: 10px;
    padding: 50px;
    position: relative;
}

.about-counter-part:before {
    position: absolute;
    content: "";
    left: -22px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    height: 28px;
    width: 28px;
    background-color: var(--main-color);
    rotate: 48deg;
}

.about-counter-part h2 {
    font-size: 80px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -2.4px;
    color: var(--black-color);
    margin-bottom: 15px;
}

.about-counter-part p {
    color: var(--black-color);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 2.4px;
    text-transform: uppercase;
}

h2.about-pre-title {
    font-size: 40px;
    font-family: var(--text-font);
    font-size: 22px;
    text-transform: capitalize;
    color: var(--primary-color);
}


.single-about-content-part span {
    color: var(--main-color);
}

/*
* ----------------------------------------------------------------------------------------
* 06.SERVICE CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.services-area {
    padding-bottom: 100px;
    background: url(../images/custom/section-bg-gradient-2.jpg) no-repeat;
    background-position: right center;

}

.service-item {
    position: relative;
    padding: 60px 40px;
    border-radius: 20px;
    border: 1px solid var(--border-color);
    background: var(--black-color);
    margin-bottom: 30px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}


.service-item:hover.service-item h5 {
    color: var(--black-color);
    -webkit-transition: 0.5s;
    transition: 0.5s;
}


.service-item h5 {
    background: var(--primary-color);
    margin-bottom: 60px;
    color: var(--black-color);
    font-family: var(--text-font);
    border: 1px solid;
    display: inline-block;
    padding: 4px 10px;
    font-size: 30px;
    border-radius: 6px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
}

.service-item p {
    margin-bottom: 0;
    color: var(--text-color);
}

.service-item h4 {
    color: var(--heading-color);
    font-size: 40px;
    text-transform: uppercase;
    margin-top: 20px;
    margin-bottom: 20px;
}

.service-item i {
    position: absolute;
    font-size: 60px;
    color: var(--main-color);
    -webkit-transition: 0.5s;
    transition: 0.5s;
    top: 18%;
    right: 4%;
    font-size: 30px;
}

.service-item:hover.service-item i {
    color: var(--primary-color);
}

.service-item:hover .details-btn {
    color: var(--black-color);
    background: var(--primary-color);
}


/*
* ----------------------------------------------------------------------------------------
* 07.SKILL CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.skill-area {
    padding-top: 20px;
}

.skill-item {
    -webkit-transition: 0.5s;
    transition: 0.5s;
    text-align: center;
    margin-bottom: 30px;
    border-radius: 14px;
    padding: 25px;
    border: 1px solid var(--border-color);
}

.skill-item h5 {
    margin-top: 20px;
    color: var(--subtitle-color);
    font-size: 16px;
    line-height: 19px;
}

.skill-item .percent {
    padding: 10px;
    display: block;
    font-size: 20px;
    font-weight: 600;

    color: var(--black-color);
}

.skill-item:hover {
    border-color: var(--primary-color);
}

.skill-item:hover .percent {
    color: var(--heading-color);
    background: var(--black-color);
}

.extra-skills {}

.extra-skills ul {
    margin-top: 30px;
}

ul.extra-skills li {
    border: 1px solid var(--border-color);
    display: inline-block;
    border-radius: 12px;
    padding: 3px 10px;
    margin-bottom: 10px;
    margin-right: 20px;
}

ul.extra-skills li i {
    padding-right: 10px;
}

/*
* ----------------------------------------------------------------------------------------
* 08.RESUME CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.resume-area {
    padding-top: 100px;
    padding-bottom: 100px;
    background: var(--body-background);
}

.resume-wrapper {
    position: relative;
}

.resume-wrapper:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
}

.resume-wrapper i {
    color: var(--primary-color);
    font-size: 40px;
    margin-bottom: 30px;
    display: block;
}

.resume-wrapper .resume-box {
    margin-bottom: 20px;
    background: var(--black-color);
    padding: 60px 40px;
    border-radius: 20px;
}

.resume-box h2 {
    color: var(--main-color);
    font-size: 30px;
    text-transform: uppercase;
    margin-top: 20px;
    margin-bottom: 20px;
}

.resume-wrapper .resume-box:last-child {
    margin-bottom: 0
}

.resume-wrapper .resume-box .resume-date {
    background: var(--primary-color);
    position: relative;
    display: inline-block;
    border: 2px solid var(--border-color);
    border-radius: 2em;
    margin-bottom: 1em;
    padding: 5px 12px;
    font-weight: 400;
    color: #000;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 500;
    -webkit-transition: linear 0.1s;
    transition: linear 0.1s
}

.resume-wrapper .resume-box .resume-date:before {
    content: '';
    position: absolute;
    top: 50%;
    left: -20px;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 20px;
    height: 1px;
    border-top: 2px solid var(--primary-color);
}

.resume-wrapper .resume-box .resume-date:after {
    content: '';
    position: absolute;
    top: 50%;
    left: -23px;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    background: var(--primary-color);
    width: 5px;
    height: 5px;
    border-radius: 50%
}

.resume-box p {
    margin-bottom: 0;
    margin-top: 20px;
    color: rgb(119, 119, 125);
}



.resume-box span {
    color: rgb(119, 119, 125);
}




.skill-area {
    padding-top: 120px;
    background: var(--primary-color);
}

.skill-item {
    -webkit-transition: 0.5s;
    transition: 0.5s;
    text-align: center;
    margin-bottom: 30px;
    border-radius: 14px;
    padding: 40px 30px;
    background: var(--lighter-color);
}

.skill-item h5 {
    color: var(--main-color);
    font-size: 20px;
    text-transform: uppercase;
    margin-top: 20px;
    margin-bottom: 20px;
}

.skill-item .percent {
    padding: 10px;
    display: block;
    font-size: 20px;
    font-weight: 600;
    color: var(--black-color);
}

.skill-item:hover {
    border-color: var(--primary-color);
}

.skill-item:hover .percent {
    color: var(--heading-color);
    background: var(--black-color);
}

.extra-skills {}

.extra-skills ul {
    margin-top: 30px;
}

ul.extra-skills li {
    border: 2px solid var(--border-color);
    display: inline-block;
    border-radius: 12px;
    padding: 3px 10px;
    margin-bottom: 10px;
    margin-right: 20px;
}

ul.extra-skills li i {
    padding-right: 10px;
}










/*
* ----------------------------------------------------------------------------------------
* 09.PORTFOLIO CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.projects-area {
    padding-top: 100px;
    padding-bottom: 100px;
    background: var(--black-color);
}


.filter ul {
    margin: 0;
    padding: 0
}

.filter ul li {
    position: relative;
    display: inline-block;
    border: 1px dashed black;
    border-radius: 2em;
    margin: 0 7px 10px 0;
    padding: 0.5em 1em;
    font-size: 0.9em;
    font-family: "Roboto Mono", monospace;
    color: black;
    cursor: pointer;
    -webkit-transition: linear 0.1s;
    transition: linear 0.1s
}

.filter ul li:hover,
.filter ul li.mixitup-control-active {
    background: black;
    color: white
}

.theme-dark .filter ul li {
    border-color: white;
    color: white
}

.theme-dark .filter ul li:hover,
.theme-dark .filter ul li.mixitup-control-active {
    background: white;
    color: black
}

.portfolio-box {
    position: relative;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    overflow: hidden;
    border-radius: 0.5em
}

.portfolio-box:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.3), transparent);
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.3), transparent);
    width: 100%;
    height: 100%;
    -webkit-transition: ease-out 0.16s;
    transition: ease-out 0.16s
}

.portfolio-box img {
    -webkit-transform: scale(1);
    transform: scale(1);
    width: 100%;
    -webkit-transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1)
}

.portfolio-box .portfolio-category {
    position: absolute;
    top: 16px;
    right: 16px;
    display: inline-block;
    background: rgba(0, 0, 0, 0.2);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    border-radius: 2em;
    padding: 0.5em 1em;
    color: white;
    font-weight: 400;
    font-size: 0.9em;
    text-transform: uppercase;
    letter-spacing: 0.5px
}

.portfolio-box .portfolio-caption {
    z-index: 1;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    visibility: hidden;
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    margin-bottom: -6px;
    padding: 0 30px 24px;
    -webkit-transition: ease-out 0.5s;
    transition: ease-out 0.5s
}

.portfolio-box .portfolio-caption * {
    margin: 0;
    color: white;
    font-size: 30px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    -webkit-transition: linear 0.06s;
    transition: linear 0.06s
}

.portfolio-box .portfolio-caption *:hover {
    text-shadow: 0 0 white
}

.portfolio-box:hover:after {
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"
}

.portfolio-box:hover img {
    -webkit-transform: scale(1.04);
    transform: scale(1.04);
    -webkit-filter: blur(1.5px);
    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="1.5" /></filter></svg>#filter');
    filter: blur(1.5px)
}

.portfolio-box:hover .portfolio-caption {
    visibility: visible;
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    margin-bottom: 0
}

.reel-box {
    aspect-ratio: 9 / 16;
}

.reel-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reels-row {
    margin-top: 40px;
}




.single-project-page-right,
.single-project-page-left {
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.single-project-page-design {
    padding-top: 30px;
}

.single-project-image img {
    width: 100%;
}

.single-info h3 {
    font-size: 20px;
    color: var(--heading-color);
    text-transform: uppercase;
}

.single-image {
    margin-bottom: 30px;
}

.single-info {
    padding-bottom: 30px;
}

.single-info:last-child {
    padding-bottom: 0px;
}

.single-info p {
    margin-bottom: 0;
}

.project-image {
    margin-bottom: 45px;
}

.single-project-item {
    padding: 30px;
    border: 1px solid var(--border-color);
}





/*
* ----------------------------------------------------------------------------------------
* 10.TESTIMONIALS CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.testimonials-area {
    padding-top: 100px;
    padding-bottom: 100px;
}

.testimonial-item {
    -webkit-transition: 0.5s;
    transition: 0.5s;
    padding: 20px 20px;
    border-radius: 16px;
    background: var(--black-color);
    border: 1px solid var(--border-color);
    margin-bottom: 30px;
}


.testimonial-item .author {
    margin-top: 25px;
    display: inline-block;
}

.testimonial-item .author img {
    display: inline-block;
    border-radius: 50%;
    height: 60px;
    width: 60px;
}


.testimonial-item .text {
    margin-bottom: 0px;
    color: var(--text-color);
}

.testimonial-item .testi-des h5 {
    margin-bottom: 0;
    color: var(--heading-color);
    font-size: 20px;
    text-transform: uppercase;
    margin-top: 20px;
}


.testimonial-item .testi-des span {
    margin-bottom: 0;
    color: var(--text-color);
    font-size: 14px;
    line-height: 22px;
}


.testimonial-item:hover .author:before {
    color: var(--black-color);
    background: var(--primary-color);
}

.testimonials-wrap {
    margin-left: -15px;
    margin-right: -15px;
}

.testimonials-wrap .testimonial-item {
    margin-left: 15px;
    margin-right: 15px;
}






/*
* ----------------------------------------------------------------------------------------
* 11.PRICING CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.pricing-area {
    padding-top: 100px;
    padding-bottom: 100px;
}

.pricing-item {
    padding: 10px;
    border-radius: 16px;
    margin-bottom: 30px;
    border: 1px solid var(--border-color);
}

.pricing-item .pricing-header {
    padding: 20px 20px;
    border-radius: 16px;
    border: 1px solid var(--border-color);
}

.pricing-header h4.title {
    margin: 12px 0px;
    color: var(--subtitle-color);
    font-size: 40px;
    line-height: 49px;
    padding-bottom: 20px;
    text-transform: uppercase;
}

.pricing-item .pricing-header .save-percent {
    margin-bottom: 20px;
    color: rgb(119, 119, 125);
    font-size: 20px;
    line-height: 27px;
}

.pricing-item .pricing-header .save-percent span {
    color: var(--primary-color);
}

.pricing-item .pricing-header .price {
    font-size: 38px;
    font-weight: 500;
    color: var(--primary-color);
}



.pricing-item .pricing-header .price:before {
    content: '$';
}

.pricing-item .pricing-header .price:after {
    font-size: 16px;
    font-weight: 400;
    color: var(--main-color);
    content: '/Hour';
}

.pricing-item .pricing-details {
    padding: 20px 20px;
}



.pricing-item .pricing-details p {
    margin-bottom: 35px;
}

.pricing-item .pricing-details ul {
    padding-bottom: 12px;
}

.pricing-item .pricing-details ul li {
    margin-bottom: 10px;
}

.pricing-item .pricing-details ul li i {
    padding-right: 10px;
}


.pricing-item .pricing-details ul li.unable {
    color: rgb(119, 119, 125);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=35)";
}

.pricing-item .pricing-details ul li.unable:before {
    color: white;
}






/*
* ----------------------------------------------------------------------------------------
* 12.CLIENTS CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.client-logo-area {
    padding-top: 20px;
}

.client-logo-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-left: -30px;
    margin-right: -30px;
}



.client-logo-wrap .client-logo-item {
    width: calc(20% - 60px);
    margin: 0 30px 10px;
}


/*
* ----------------------------------------------------------------------------------------
* 13.CONTACT CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.contact-area {
    padding-top: 100px;
    padding-bottom: 100px;
    background: url(../images/custom/section-bg-gradient-2.jpg) no-repeat;
    background-position: right center;
}

.contact-form-area {
    padding: 50px 30px 20px 40px;
    border-radius: 10px;
    border: 1px solid var(--border-color);
    background: var(--black-color);
}

.contact-form-area .form-group {
    margin-bottom: 32px;
}

.contact-form-area .form-group .for-icon {
    right: 26px;
    font-size: 16px;
    margin-bottom: 0;
    position: absolute;
    margin-top: -45px;
    color: var(--main-color);
}

.contact-form-area .form-group .form-control {
    font-size: 16px;
    color: var(--main-color);
    font-weight: 400;
    line-height: 1.3;
    padding: 19px 20px 19px 20px;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    font-family: var(--text-font);
}

.contact-form-area .form-group input[type=text] {
    color: var(--main-color);
}

.contact-form-area .form-group .form-control:focus {
    box-shadow: none;
    background: transparent;
    border-color: var(--border-color);
}


.contact-form-area .form-group label {
    font-size: 16px;
    color: var(--main-color);
    font-weight: 400;
    margin-bottom: 18px;
    text-transform: uppercase;
}

.contact-form-area .form-group .nice-select .current {
    font-weight: 400;
    color: rgba(255, 255, 255, 0.2);
}

.contact-form-area .form-group .nice-select:focus .current {
    color: white;
}

.contact-form-area .form-group .nice-select:focus:after {
    border-color: white;
}

.contact-form-area .form-group .nice-select .list {
    background: var(--black-color);
}

.contact-form-area .form-group .nice-select .option.focus,
.contact-form-area .form-group .nice-select .option.selected.focus,
.contact-form-area .form-group .nice-select .option:hover {
    background-color: var(--heading-color);
}

.contact-form-area .form-group .nice-select:after {
    right: 26px;
    margin-top: -6px;
    border-color: rgba(255, 255, 255, 0.2);
}

.contact-icon {
    padding-bottom: 1px;
}

.circle-btn i {
    font-size: 30px;
    color: var(--black-color);
}

.single-contact {
    padding-bottom: 20px;
}

.single-contact p {
    color: rgb(119, 119, 125);
}


.single-contact h2 {
    margin-top: 15px;
    margin-bottom: 5px;
    text-transform: capitalize;
    font-weight: 400;
    -webkit-transition: .3s;
    transition: .3s;
    text-transform: uppercase;
    color: var(--main-color);
    font-size: 20px;
}

.contact-content-part {
    padding-right: 50px;
}

.contact-content-part h2 {
    font-size: 50px;
    text-transform: uppercase;
}

.contact-content-part p {
    font-size: 20px;
}

.contact-content-part img {
    width: 100px;
    border-radius: 50%;
    margin-bottom: 40px;
}

.contact-page-content h6 {
    font-size: 18px;
    margin-bottom: 22px;
    color: rgb(119, 119, 125);
}

.contact-page-content .social-style-one a {
    width: 40px;
    height: 40px;
    line-height: 40px;
    color: var(--lighter-color);
}

.contact-page-content .social-style-one a:not(:hover) {
    background: white;
}

.contact-page-form {
    padding: 45px 50px 50px;
    border-radius: 14px;
    background: var(--lighter-color);
    border: 1px solid var(--border-color);
}



.contact-page-form .form-group .nice-select,
.contact-page-form .form-group .form-control {
    background: rgba(255, 255, 255, 0.07);
}

.our-location iframe {
    height: 600px;
}

.input-success,
.input-error {
    margin-bottom: 0;
    margin-top: 10px;
    border-radius: 4px;
    display: none;
}

.input-success {
    border: 1px solid #01B500;
}

.input-error {
    border: 1px solid #ff0000;
}

.has-error .help-block.with-errors {
    margin-top: 5px;
    color: red;
}

#msgSubmit.h4 {
    font-size: 20px;
    margin-bottom: 0;
    margin-top: 10px;
}




/*
* ----------------------------------------------------------------------------------------
* 14.FOOTER CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.main-footer {}

.footer-bottom {}

p.copy-left-text {
    color: var(--main-color);
    font-size: 12px;
    line-height: 20px;
    -moz-text-align-last: left;
    text-align-last: left;
}

p.copy-left-text a:hover {
    color: var(--primary-color);
}

p.copy-right-text {
    color: var(--main-color);
    font-size: 12px;
    line-height: 20px;
    -moz-text-align-last: right;
    text-align-last: right;
}

.footer-top h2 {
    color: var(--text-color);
    font-size: 100px;
    line-height: 1em;
    font-weight: 700;
    text-transform: uppercase;
    text-align: center;
}

.footer-top h2 a:hover {
    color: var(--primary-color);
}

.footer-top {
    padding-top: 100px;
    padding-bottom: 100px;
}

.footer-top p {

    color: var(--main-color);
    font-size: 20px;
    text-align: center;
}

/*
* ----------------------------------------------------------------------------------------
* 15.PRELOADER & BOUNCE CCS STYLE
* ----------------------------------------------------------------------------------------
*/
html.lenis,
html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-smooth iframe {
    pointer-events: none;
}

body.loaded {
    overflow: hidden !important;
    height: 100% !important;
}

.preloader {
    position: fixed;
    z-index: 10;
    height: 100vh;
    width: 100%;
    left: 0;
    top: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow: hidden;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    background: transparent;
    z-index: 99999999999999;
}

.preloader svg {
    position: absolute;
    top: 0;
    width: 100vw;
    height: 110vh;
    fill: var(--body-background);
}

.preloader .preloader-heading .load-text {
    font-size: 20px;
    font-weight: 200;
    letter-spacing: 15px;
    text-transform: uppercase;
    z-index: 20;
}

.load-text span {
    -webkit-animation: loading 1s infinite alternate;
    animation: loading 1s infinite alternate;
}

.load-text span:nth-child(1) {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
}

.load-text span:nth-child(2) {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
}

.load-text span:nth-child(3) {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

.load-text span:nth-child(4) {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
}

.load-text span:nth-child(5) {
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
}

.load-text span:nth-child(6) {
    -webkit-animation-delay: 0.5s;
    animation-delay: 0.5s;
}

.load-text span:nth-child(7) {
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
}

@-webkit-keyframes loading {
    0% {
        opacity: 1;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    }

    100% {
        opacity: 0;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    }
}

@keyframes loading {
    0% {
        opacity: 1;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    }

    100% {
        opacity: 0;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    }
}

.color-pulse {
    background: #00FF00;
}

.circle {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    box-shadow: 0px 0px 1px 1px #0000001a;
}

.pulse {
    -webkit-animation: pulse-animation 2s infinite;
    animation: pulse-animation 2s infinite;
}

@-webkit-keyframes pulse-animation {
    0% {
        box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.2);
    }

    100% {
        box-shadow: 0 0 0 20px rgba(0, 0, 0, 0);
    }
}

@keyframes pulse-animation {
    0% {
        box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.2);
    }

    100% {
        box-shadow: 0 0 0 20px rgba(0, 0, 0, 0);
    }
}

.light-dark-version {
    position: fixed;
    top: 45px;
    right: 40px;
    z-index: 9999;
    cursor: pointer;
}

.progress-wrap {
    position: fixed;
    bottom: 30px;
    right: 30px;
    height: 44px;
    width: 44px;
    cursor: pointer;
    display: block;
    border-radius: 50px;
    z-index: 100;
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    visibility: hidden;
    -webkit-transform: translateY(20px);
    transform: translateY(20px);
    -webkit-transition: all 400ms linear;
    transition: all 400ms linear;
    mix-blend-mode: difference;
}

.progress-wrap.active-progress {
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    visibility: visible;
    -webkit-transform: translateY(0);
    transform: translateY(0);
}

.progress-wrap i {
    position: absolute;
    left: 10px;
    top: 8px;
    font-size: 25px;
    text-align: center;
}

.progress-wrap svg path {
    fill: none;
}

.progress-wrap svg.progress-circle path {
    stroke: #ddd;
    stroke-width: 4;
    box-sizing: border-box;
    -webkit-transition: all 400ms linear;
    transition: all 400ms linear;
}

.progress-wrap {
    right: 10px;
    bottom: 20px;
}


/* ===== # Magic Cursor ===== */
#magic-cursor {
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    pointer-events: none;
    z-index: 10000;
    -webkit-transition: opacity 0.2s ease-in-out 0.5s;
    transition: opacity 0.2s ease-in-out 0.5s;
}

#ball {
    position: fixed;
    width: 40px;
    height: 40px;
    border: 2px solid #999999;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    box-sizing: border-box;
    /* -webkit-transform: scale(0.5);
    transform: scale(0.5); */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    /* -webkit-transition: 0.2s;
    transition: 0.2s; */
    margin-left: -20px;
    margin-top: -20px;
}

.magic-cursor.cursor-hover {
    margin-left: -40px;
    margin-top: -40px;
    width: 80px;
    height: 80px;
    background-color: #cc0000;
    opacity: .3;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
}

#ball.hovered {
    -webkit-transition: opacity .3s;
    transition: opacity .3s;
    opacity: 0 !important;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
}



















/*
* ----------------------------------------------------------------------------------------
* 16.BLOG CSS STYLE
* ----------------------------------------------------------------------------------------
*/
.blog-area {
    padding: 100px 0px;
    background: url(../images/custom/section-bg-gradient-1.jpg) no-repeat;
    background-position: left center;
    background-size: auto 100%;
}

.blog-post-box {
    margin-bottom: 60px;
    border: 1px solid #242424;
    padding: 40px 20px;
    background: var(--black-color);
}

.blog-post-box .blog-post-img {
    position: relative;
    overflow: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    border-radius: 0.5em
}

.blog-post-box .blog-post-img img {
    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1)
}

.blog-post-box .blog-post-img .blog-post-category {
    position: absolute;
    top: 16px;
    left: 16px;
    background: rgba(0, 0, 0, 0.2);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    border-radius: 2em;
    padding: 0.5em 1em;
    color: white;
    font-weight: 400;
    font-size: 0.9em;
    text-transform: uppercase;
    letter-spacing: 0.5px
}

.blog-post-box .blog-post-img .blog-post-category a {
    color: var(--primary-color);
    font-size: 12px;
}

.blog-post-box .blog-post-img .blog-post-category a:hover {
    color: white
}

.blog-post-box .blog-post-img:hover img {
    -webkit-transform: scale(1.04);
    transform: scale(1.04);
    -webkit-filter: blur(1.5px);
    filter: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><filter id="filter"><feGaussianBlur stdDeviation="1.5" /></filter></svg>#filter');
    filter: blur(1.5px)
}

.blog-post-caption {
    padding-left: 0px;
    padding-top: 30px;
}

.blog-post-caption h2 a {
    display: block;
    padding: 10px 0px;
    color: var(--heading-color);
    font-family: var(--title-font);
    font-size: 30px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -0.3px;
    text-transform: uppercase;
}

.blog-post-caption h3 {
    font-size: 13px;
    text-transform: uppercase;
    color: var(--text-color);
    font-family: var(--text-font);
}


.blog-category {
    padding: 80px 0px;
}

.single-blog-post {
    margin-bottom: 50px;
}

.single-blog-post h2 {
    font-size: 22px;
}

.single-blog-post a.read-more {
    background: #000;
    color: #fff;
    padding: 6px 20px;
    border: 1px solid #000;
}

.single-blog-post a.read-more:hover {
    background: transparent;
    color: #000;
    border: 1px solid #000;
}

.post-date {
    margin-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 30px;
}

.post-date span {
    margin-right: 20px;
    color: var(--heading-color);
    background: var(--primary-color);
    padding: 10px 20px;
    border-radius: 10px;
    text-transform: uppercase;
}

.post-date span i {
    margin-right: 5px;
    color: var(--black-color);
}

.single-blog-post p {
    font-size: 16px;
    margin-bottom: 20px;
}

.blog-carosel-control {
    position: absolute;
    top: 50%;
    color: #000;
    font-size: 30px;
    margin-top: -50px;
    background: #333;
    height: 100px;
    width: 25px;
    text-align: center;
    line-height: 99px;
}

.blog-carosel-control.right {
    right: 0px;
    left: auto;
}

.pagination {
    margin: 0;
}

ul.blog_pagination li a {
    border: 1px solid #e8e8e9;
    border-radius: 0 !important;
    color: #353535;
    font-size: 16px;
    height: 35px;
    line-height: 20px;
    margin: 5px;
    width: 35px;
}

.black-icon {
    background: #333 none repeat scroll 0 0 !important;
    color: #fff !important;
}

.black-icon:hover {
    background: #333 !important;
}

.black-icon i {
    font-size: 14px;
}

ul.blog_pagination li a:hover {
    color: #fff;
    background: #333;
    border: 1px solid #333;
}

.single-side-bar {
    margin-bottom: 40px;
    overflow: hidden;
}

.single-side-bar h2 {
    margin-bottom: 15px;
    font-size: 22px;
    margin-top: 0;
    text-transform: capitalize;
}

.single-side-bar input {
    background: rgba(0, 0, 0, 0) none repeat scroll 0 0;
    border: 1px solid #333;
    border-radius: 0;
    box-shadow: none;
    color: #e3e8f0;
    height: 50px;
    float: left;
    padding-left: 10px;
}

.single-side-bar input:hover,
.single-side-bar input:focus {
    border: 1px solid #333;
    box-shadow: none;
    outline: 0 none;
}

.single-side-bar button {
    background: #333 none repeat scroll 0 0;
    border: 1px solid #333;
    color: #fff;
    height: 42px;
    padding: 0 32px;
    -webkit-transition: .3s;
    transition: .3s;
}

.single-side-bar button:hover {
    background: transparent;
    color: #fff;
    border: 1px solid #333;
    -webkit-transition: .3s;
    transition: .3s;
}

.single-side-bar ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-side-bar ul li a {
    color: #fff;
    display: block;
    font-size: 16px;
    padding: 5px 0;
    opacity: .7;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
}

.single-side-bar ul li a span {
    float: right;
}

.single-side-bar ul li a:hover {
    color: var(--primary-color);
}

.single-blog-social-icon {
    overflow: hidden;
    float: left;
    width: 177px;
    margin-bottom: 10px;
}

.single-blog-social-icon i {
    border: 1px solid #333;
    border-radius: 50px;
    float: left;
    font-size: 22px;
    height: 50px;
    line-height: 50px;
    margin-right: 15px;
    text-align: center;
    width: 50px;
}

.single-blog-social-icon .facebook {
    border: 1px solid #5d82d1;
    color: #5d82d1;
}

.single-blog-social-icon .twitter {
    border: 1px solid #00BFF3;
    color: #00BFF3;
}

.single-blog-social-icon .youtube {
    border: 1px solid #CB1D1F;
    color: #CB1D1F;
}

.single-blog-social-icon .youtube-play {
    border: 1px solid #CB1D1F;
    color: #CB1D1F;
}

.single-blog-social-icon .behance {
    border: 1px solid #0068FF;
    color: #0068FF;
}

.single-blog-social-icon .dribbble {
    border: 1px solid #EA4C8A;
    color: #EA4C8A;
}

.tag {
    overflow: hidden;
}

.tag a {
    color: #fff;
    float: left;
    font-size: 14px;
    font-weight: 300;
    border-radius: 12px;
    margin: 5px 7px;
    -webkit-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
    padding: 8px 20px;
    border: 1px solid var(--border-color);
}

.tag a:hover {
    color: #ccc;
    border: 1px solid #333;
    background: transparent;
}

.single-blog-post-details blockquote {
    font-size: 16px;
    line-height: 28px;
    padding-left: 40px;
    border-left: 1px solid #fff;
}

.single-blog-post-details img {
    width: 100%;
}

.single-blog-post-details h2 {
    padding: 20px 0px;
    font-size: 40px;
    color: var(--white-color);
}

.next-previews-button-design {
    margin-top: 40px;
    overflow: hidden;
}

.next-previews-button-design a {
    color: #000;
}

.post-comments-area {
    overflow: hidden;
    margin-top: 50px;
}

.post-comments-area h2 {
    margin-bottom: 20px;
}

.single-comment {
    overflow: hidden;
    margin-bottom: 60px;
}

.single-comment img {
    float: left;
    margin-right: 50px;
    margin-bottom: 80px;
    width: 100px;
    border-radius: 50%;
}

.single-comment h5 {
    font-weight: 700;
}

.single-comment p {}

.single-comment a {
    color: #fff;
    -webkit-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
}

.single-comment a:hover {
    color: #333;
}

.single-comment a i {
    font-size: 10px;
    background: #767676 none repeat scroll 0 0;
    color: #fff;
    padding: 5px;
    margin-right: 5px;
    border-radius: 30px;
    -webkit-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
}

.single-comment a:hover i {
    background: #333 none repeat scroll 0 0;
    border-radius: 30px;
    color: #fff;
    font-size: 10px;
    padding: 5px;
}

.comment-form-area {
    margin-left: 150px;
    background: #191919;
    padding: 50px 30px;
    border-radius: 12px;
}

.comment-form-area input {
    background: var(--white-color);
    border: 1px solid #e3e8f0;
    box-shadow: none;
    color: var(--black-color);
    height: 50px;
    border-radius: 0;
    padding-left: 10px;
}


.comment-form-area input:hover,
.comment-form-area input:focus {
    border: 1px solid var(--border-color);
    box-shadow: none;
    outline: 0 none;
}

.comment-form-area textarea {
    background: var(--white-color);
    border: 1px solid #e3e8f0;
    box-shadow: none;
    color: var(--black-color);
    height: 150px;
    border-radius: 0;
    padding-left: 10px;
}

.comment-form-area textarea:hover,
.comment-form-area textarea:focus {
    border: 1px solid var(--border-color);
    box-shadow: none;
    outline: 0 none;
}

.comment-form-area button {
    background: var(--primary-color) none repeat scroll 0 0;
    border: 1px solid #333;
    color: var(--black-color);
    font-size: 16px;
    padding: 8px 20px;
    display: inline-block;
    border-radius: 12px;
}

.owl-theme .owl-controls .owl-page span {
    display: block;
    width: 6px;
    height: 6px;
    margin: 5px 7px;
    filter: Alpha(Opacity=50);
    opacity: 0.5;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
    border-radius: 20px;
    background: #000;
}

.single-blog {
    margin-right: 30px;
}

.single-blog h5 {
    font-weight: 300;
    font-size: 12px;
}

.single-blog h3 {
    color: #aeaeae;
    padding: 10px 15px;
    font-size: 10px;
    text-transform: uppercase;
    display: inline-block;
    letter-spacing: 3px;
}

.single-blog h2 {
    margin-top: 0;
}

.single-blog h2 a {
    font-size: 30px;
    margin-top: 0;
    margin-bottom: 20px;
    text-transform: capitalize;
    font-weight: 700;
    color: #000;
}

.single-blog p {
    padding-bottom: 30px;
}

.blog-description {
    padding: 20px 30px;
    border: 1px solid #f8f8f8;
    text-align: center;
}

.blog-area .owl-theme .owl-controls .owl-page span {
    display: block;
    width: 5px;
    height: 5px;
    margin: 5px 7px;
    border-radius: 20px;
    background: #000;
}

.single-blog-post-details,
.single-blog-sidebar-area,
.post-comments-area {
    padding-right: 60q;
}

.single-side-bar {}

.single-side-bar {
    -webkit-transition: 0.5s;
    transition: 0.5s;
    margin-bottom: 30px;
    border-radius: 14px;
    padding: 25px;
    border: 1px solid var(--border-color);
}
















.company-design-area {
    padding: 100px 0px;
}

.company-design-area h2 {
    text-transform: uppercase;
    font-size: 16px;
    text-align: center;
    color: #fff;
    margin-bottom: 30px;
    letter-spacing: 5px;
    font-weight: 500;
}

.company-list {
    margin-top: 50px;
}

.scroller__inner img {
    margin: 0px 40px;
    width: 120px;
}

.scroller[data-animated="true"] {
    overflow: hidden;
    -webkit-mask: -webkit-linear-gradient(left,
        transparent,
        white 20%,
        white 80%,
        transparent);
    mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
}

.scroller[data-animated="true"] .scroller__inner {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-animation: scroll var(--_animation-duration, 40s) var(--_animation-direction, forwards) linear infinite;
    animation: scroll var(--_animation-duration, 40s) var(--_animation-direction, forwards) linear infinite;
}

.scroller[data-direction="right"] {
    --_animation-direction: reverse;
}

.scroller[data-direction="left"] {
    --_animation-direction: forwards;
}

.scroller[data-speed="fast"] {
    --_animation-duration: 20s;
}

.scroller[data-speed="slow"] {
    --_animation-duration: 60s;
}

@-webkit-keyframes scroll {
    to {
        -webkit-transform: translate(calc(-50% - 0.5rem));
        transform: translate(calc(-50% - 0.5rem));
    }
}

@keyframes scroll {
    to {
        -webkit-transform: translate(calc(-50% - 0.5rem));
        transform: translate(calc(-50% - 0.5rem));
    }
}












/* 404 page css */

.error-area h2 {
    font-size: 40px;
    text-transform: uppercase;
    margin-bottom: 20px;
    margin-top: 30px;
    color: var(--heading-color);
}

.privacy-area h2 {
    font-size: 30px;
    margin-bottom: 20px;
    margin-top: 30px;
    color: var(--heading-color);
}

.privacy-area ul {
    margin-left: 20px;
}

.privacy-area ul li {
    list-style: disc;
    margin-bottom: 10px;
}

.single-stories-page-right h2 {
    font-size: 30px;
    margin-bottom: 20px;
    color: var(--heading-color);
}

.single-stories-page-right h3 {
    font-size: 16px;
    text-transform: uppercase;
    font-weight: 400;
    color: var(--primary-color);
    margin-bottom: 30px;
}

/* ============================================================
   AIRRA MEDIA — CUSTOM PRO DESIGN LAYER
   Alternance de fonds • Typo XL • Hover premium • Curseur PLAY
   ============================================================ */

/* ---------- 1. Typographie surdimensionnée ---------- */
.section-title h2 {
    font-size: clamp(2.5rem, 8vw, 7.5rem);
    line-height: 0.95;
    letter-spacing: -0.02em;
    font-weight: 600;
    padding-bottom: 0;
    margin-bottom: 20px;
}

/* Titre About plus contenu (5 mots): tenir sur 1 ligne */
.about-area .section-title h2 {
    font-size: clamp(2rem, 5.5vw, 5rem);
    white-space: nowrap;
}

/* Actions About: CTA + réseaux sociaux */
.about-actions {
    display: flex;
    align-items: center;
    gap: 32px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.about-actions .about-social {
    margin: 0;
}

.about-actions .about-social ul {
    display: flex;
    gap: 12px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.about-actions .about-social li {
    display: block;
    margin: 0;
}

.about-actions .about-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: var(--text-color);
    font-size: 18px;
    transition: border-color 0.3s, background 0.3s, color 0.3s;
}

.about-actions .about-social a:hover {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--black-color);
}

/* Étoiles 5/5 en bas à droite des cartes témoignages */
.testimonial-item {
    position: relative;
}

.testi-stars {
    position: absolute;
    bottom: 20px;
    right: 20px;
    display: flex;
    gap: 3px;
    color: #ffffff;
    font-size: 14px;
    line-height: 1;
    pointer-events: none;
}

/* Testimonials podium 3D — 3 cartes statiques, centrale surélevée, latérales inclinées */
.testimonials-podium {
    display: grid;
    grid-template-columns: 1fr 1.1fr 1fr;
    gap: 20px;
    align-items: center;
    padding: 60px 0 40px;
    perspective: 1600px;
    perspective-origin: 50% 50%;
}

.testimonial-slot {
    display: flex;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.4s ease;
    transform-style: preserve-3d;
}

.testimonials-podium .testimonial-item {
    width: 100%;
    height: 100%;
    margin-bottom: 0;
    padding: 28px 24px 48px;
    display: flex;
    flex-direction: column;
    transition: border-color 0.4s, box-shadow 0.4s;
}

.testimonials-podium .testimonial-item .text {
    flex: 1;
    font-size: 14px;
    line-height: 1.55;
}

.testimonials-podium .testimonial-item .text p:not(:last-child) {
    margin-bottom: 10px;
}

.testimonials-podium .testimonial-item .author {
    margin-top: 22px;
}

.testimonials-podium .testimonial-item .author img {
    height: 48px;
    width: 48px;
}

.testimonials-podium .testimonial-item .testi-des h5 {
    font-size: 16px;
    margin-top: 14px;
}

.testimonials-podium .testimonial-item .testi-des span {
    font-size: 13px;
}

/* Latérales: inclinées 3D vers le centre, un peu en retrait */
.testimonial-slot--left {
    transform: perspective(1600px) rotateY(12deg) scale(0.94) translateZ(-40px);
    transform-origin: right center;
    filter: brightness(0.75);
    z-index: 1;
}

.testimonial-slot--right {
    transform: perspective(1600px) rotateY(-12deg) scale(0.94) translateZ(-40px);
    transform-origin: left center;
    filter: brightness(0.75);
    z-index: 1;
}

/* Centrale: face à face, plus grande, en avant */
.testimonial-slot--center {
    transform: perspective(1600px) translateZ(40px) scale(1.02);
    z-index: 3;
}

.testimonial-slot--center .testimonial-item {
    border-color: rgba(247, 146, 32, 0.5);
    box-shadow: 0 40px 70px -25px rgba(0, 0, 0, 0.85),
                0 0 0 1px rgba(247, 146, 32, 0.15);
}

/* Hover: la carte survolée passe au premier plan, redressée et éclairée */
.testimonial-slot:hover {
    transform: perspective(1600px) rotateY(0) translateZ(60px) scale(1.05);
    filter: brightness(1);
    z-index: 5;
}

.testimonial-slot:hover .testimonial-item {
    border-color: rgba(247, 146, 32, 0.8);
    box-shadow: 0 50px 80px -20px rgba(0, 0, 0, 0.9),
                0 0 0 1px rgba(247, 146, 32, 0.3);
}

/* Tablette: réduit l'inclinaison */
@media (max-width: 1100px) {
    .testimonials-podium {
        grid-template-columns: 1fr 1.05fr 1fr;
        gap: 12px;
    }
    .testimonial-slot--left {
        transform: perspective(1600px) rotateY(8deg) scale(0.92) translateZ(-20px);
    }
    .testimonial-slot--right {
        transform: perspective(1600px) rotateY(-8deg) scale(0.92) translateZ(-20px);
    }
}

/* Mobile: empile verticalement, désactive le 3D */
@media (max-width: 767px) {
    .testimonials-podium {
        display: flex;
        flex-direction: column;
        gap: 24px;
        perspective: none;
        padding: 30px 0;
    }
    .testimonial-slot,
    .testimonial-slot--left,
    .testimonial-slot--right,
    .testimonial-slot--center {
        transform: none !important;
        filter: none !important;
    }
    .testimonial-slot:hover {
        transform: translateY(-4px) !important;
    }
}

@media (max-width: 640px) {
    .about-area .section-title h2 {
        white-space: normal;
        font-size: clamp(1.75rem, 8vw, 3rem);
    }
}

.section-title {
    margin-bottom: 80px;
}

/* Whitespace généreux entre sections */
.services-area,
.projects-area,
.about-area,
.testimonials-area,
.contact-area {
    padding-top: 140px !important;
    padding-bottom: 140px !important;
}

/* ---------- 2. Sections uniformes en noir pur ---------- */
.services-area,
.projects-area,
.about-area,
.testimonials-area,
.contact-area {
    background: #000 !important;
    background-image: none !important;
    border-top: none !important;
    border-bottom: none !important;
}

/* Services cards: même noir que la section, différenciés par bordure subtile */
.services-area .service-item {
    background: #000;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: border-color 0.4s, transform 0.4s;
    height: 100%;
    margin-bottom: 0;
}

.services-area .service-item:hover {
    border-color: rgba(247, 146, 32, 0.5);
    transform: translateY(-4px);
}

/* Rendre les colonnes flex pour que les cartes remplissent la hauteur de la ligne */
.services-area .row > [class*="col-"] {
    display: flex;
    margin-bottom: 30px;
}

/* Exception: le titre de section doit rester block full-width (sinon centré foire) */
.services-area .row > [class*="col-"] > .section-title {
    width: 100%;
}

/* ---------- 3. Marquee "Ils nous font confiance" ---------- */
.partners-strip {
    background: #000;
    padding: 80px 0;
    overflow: hidden;
    width: 100%;
}

.partners-strip .partners-label {
    text-align: center;
    color: rgba(255, 255, 255, 0.5);
    font-size: 12px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    margin: 0 auto 40px;
    font-family: var(--text-font);
}

.partners-strip .scroller {
    width: 100%;
    max-width: 100%;
}

.partners-strip .scroller__inner {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 3rem;
    padding: 0;
    width: max-content;
}

.partners-strip .scroller__inner img {
    filter: grayscale(100%) brightness(1.4);
    opacity: 0.55;
    transition: opacity 0.4s, filter 0.4s;
    height: 42px;
    width: auto;
    margin: 0;
    flex-shrink: 0;
}

.partners-strip .scroller__inner img:hover {
    opacity: 1;
    filter: grayscale(0%) brightness(1);
}

/* Statique quand pas encore initialisé par le JS: centrer les logos */
.partners-strip .scroller:not([data-animated="true"]) .scroller__inner {
    justify-content: center;
    width: 100%;
}

/* ---------- 4. Hover premium sur vignettes vidéo ---------- */
.portfolio-box {
    cursor: none;
}

.portfolio-box::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(15, 15, 15, 0);
    z-index: 2;
    transition: background 0.4s ease;
    pointer-events: none;
}

/* Vidéos preview: 16:9 pour projets, 9:16 hérité de .reel-box pour reels */
.portfolio-item .portfolio-box:not(.reel-box) {
    aspect-ratio: 16/9;
}

/* Thumbnail img: toujours visible en fond, remplit la box */
.portfolio-box .portfolio-thumb {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 0;
}

/* Vidéo preview: par-dessus le thumbnail, opacity 0 par défaut, fade in au hover */
.portfolio-box .portfolio-preview {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 1;
    opacity: 0;
    background: transparent;
    transition: opacity 0.4s ease;
}

.portfolio-box:hover .portfolio-preview {
    opacity: 1;
}

.portfolio-video-link {
    display: block;
    cursor: none;
}

/* Titre projet toujours visible (au lieu de show-on-hover) */
.portfolio-box .portfolio-caption {
    visibility: visible;
    opacity: 1;
    margin-bottom: 0;
    padding: 70px 24px 20px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 100%);
    z-index: 4;
    pointer-events: none;
}

.portfolio-box .portfolio-caption h1,
.portfolio-box .portfolio-caption * {
    font-size: 18px;
    line-height: 1.25;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* Reels : titre plus compact car cartes plus étroites */
.reel-box .portfolio-caption {
    padding: 60px 16px 16px;
}

.reel-box .portfolio-caption h1,
.reel-box .portfolio-caption * {
    font-size: 14px;
    line-height: 1.25;
}

/* ---------- Modal vidéo custom (popup au clic sur vignette) ---------- */
.airra-video-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    padding: 40px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.airra-video-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.airra-video-modal__inner {
    position: relative;
    width: 100%;
    max-width: 1100px;
    max-height: 85vh;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: scale(0.95);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.airra-video-modal.is-open .airra-video-modal__inner {
    transform: scale(1);
}

.airra-video-modal__player {
    width: 100%;
    max-height: 85vh;
    height: auto;
    border-radius: 8px;
    background: #000;
    box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.9);
    outline: none;
}

.airra-video-modal__close {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.3s, border-color 0.3s, transform 0.3s;
    z-index: 2;
}

.airra-video-modal__close:hover {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--black-color);
    transform: rotate(90deg);
}

body.airra-modal-open {
    overflow: hidden;
}

@media (max-width: 768px) {
    .airra-video-modal {
        padding: 20px;
    }
    .airra-video-modal__close {
        top: 12px;
        right: 12px;
        width: 40px;
        height: 40px;
        font-size: 20px;
    }
}

/* ---------- Footer links (privacy + terms) ---------- */
.main-footer .copy-left-text a {
    color: rgba(255, 255, 255, 0.5);
    text-decoration: none;
    transition: color 0.3s;
}

.main-footer .copy-left-text a:hover {
    color: var(--primary-color);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---------- Cookie consent banner (Loi 25) ---------- */
.cookie-banner {
    position: fixed;
    left: 20px;
    right: 20px;
    bottom: 20px;
    z-index: 9998;
    max-width: 720px;
    margin: 0 auto;
    background: #111;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    padding: 20px 24px;
    box-shadow: 0 20px 60px -20px rgba(0, 0, 0, 0.9);
    color: var(--text-color);
    font-family: var(--text-font);
    transform: translateY(120%);
    opacity: 0;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
}

.cookie-banner.is-visible {
    transform: translateY(0);
    opacity: 1;
}

.cookie-banner__inner {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.cookie-banner__body {
    flex: 1;
    min-width: 240px;
}

.cookie-banner__title {
    display: block;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin-bottom: 4px;
}

.cookie-banner__text {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.75);
}

.cookie-banner__link {
    color: var(--primary-color);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.cookie-banner__link:hover {
    opacity: 0.8;
}

.cookie-banner__actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.cookie-banner__btn {
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 10px 22px;
    font-family: var(--text-font);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all 0.25s ease;
    background: transparent;
}

.cookie-banner__btn--decline {
    color: rgba(255, 255, 255, 0.75);
    border-color: rgba(255, 255, 255, 0.2);
}

.cookie-banner__btn--decline:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.05);
}

.cookie-banner__btn--accept {
    background: var(--primary-color);
    color: var(--black-color);
    border-color: var(--primary-color);
}

.cookie-banner__btn--accept:hover {
    filter: brightness(1.1);
    transform: translateY(-1px);
}

@media (max-width: 640px) {
    .cookie-banner {
        left: 12px;
        right: 12px;
        bottom: 12px;
        padding: 16px 18px;
    }
    .cookie-banner__inner {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }
    .cookie-banner__actions {
        justify-content: stretch;
    }
    .cookie-banner__btn {
        flex: 1;
        padding: 12px 20px;
    }
}

/* ---------- Bouton flottant "Préférences cookies" ---------- */
.cookie-prefs-btn {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 9997;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(20, 20, 20, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.75);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.4s ease, transform 0.4s ease, background 0.3s, color 0.3s, border-color 0.3s;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.cookie-prefs-btn.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.cookie-prefs-btn:hover {
    background: var(--primary-color);
    color: var(--black-color);
    border-color: var(--primary-color);
}

.cookie-prefs-btn svg {
    display: block;
}

@media (max-width: 640px) {
    .cookie-prefs-btn {
        left: 12px;
        bottom: 12px;
        width: 40px;
        height: 40px;
    }
}

/* ---------- Globe 3D icône dans le hero ---------- */
.hero-globe-icon {
    width: 130px;
    height: 130px;
    margin: 0 auto 28px;
    display: block;
    position: relative;
}
.hero-globe-icon canvas {
    display: block;
    width: 100%;
    height: 100%;
}
@media (max-width: 640px) {
    .hero-globe-icon {
        width: 100px;
        height: 100px;
        margin-bottom: 20px;
    }
}

/* ---------- Language switcher FR | EN dans le menu ---------- */
.main-menu ul li.lang-switch {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 30px;
    padding-left: 24px;
    border-left: 1px solid rgba(255, 255, 255, 0.15);
}

.main-menu ul li.lang-switch a {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 4px 2px;
    opacity: 0.55;
    transition: opacity 0.3s, color 0.3s;
}

.main-menu ul li.lang-switch a:hover,
.main-menu ul li.lang-switch a.lang-active {
    opacity: 1;
    color: var(--primary-color);
}

.main-menu ul li.lang-switch .lang-sep {
    opacity: 0.3;
    font-size: 12px;
}

/* Switcher FR|EN dans le menu mobile (sidebar) — override propre du style desktop */
.mobile-menu .lang-switch,
.sidebar__area .lang-switch {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 24px 0 0 !important;
    padding: 20px 0 0 !important;
    border-left: none !important;
    border-top: none !important;
    text-align: center;
}

.mobile-menu .lang-switch a,
.sidebar__area .lang-switch a {
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 8px 14px !important;
    display: inline-block !important;
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    opacity: 0.5;
    transition: opacity 0.3s, color 0.3s;
}

.mobile-menu .lang-switch a.lang-active,
.mobile-menu .lang-switch a:hover,
.sidebar__area .lang-switch a.lang-active,
.sidebar__area .lang-switch a:hover {
    opacity: 1;
    color: var(--primary-color) !important;
}

.mobile-menu .lang-switch .lang-sep,
.sidebar__area .lang-switch .lang-sep {
    opacity: 0.3;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.5);
}

/* ============================================================
   MOBILE-ONLY FIXES
   ============================================================ */

/* --- 1. Logo header centré + hamburger à droite (mobile/tablette) --- */
@media (max-width: 991px) {
    .main-header .header-inner {
        position: relative;
    }
    .main-header .header-inner .row {
        justify-content: center;
        position: relative;
    }
    .main-header .header-inner .row > .col-6:first-child,
    .main-header .header-inner .row > .col-md-6:first-child {
        flex: 0 0 auto;
        width: auto;
        max-width: none;
        text-align: center;
    }
    .main-header .logo-area,
    .main-header .logo {
        text-align: center;
        display: inline-block;
    }
    .main-header .header-inner .row > .col-6:last-child,
    .main-header .header-inner .row > .col-md-6:last-child {
        position: absolute;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
        width: auto;
        flex: 0 0 auto;
        max-width: none;
    }
    .main-header .side-menu-icon {
        text-align: right;
    }
}

/* --- 2. Ordre chronologique des 4 étapes services sur mobile --- */
/* Sur desktop l'ordre visuel est 01, 02, 04, 03 (flow en S).
   Sur mobile on veut lecture linéaire : 01, 02, 03, 04. */
@media (max-width: 991px) {
    .services-area .row > *:nth-child(3) { order: 4; }  /* Diffusion → dernière */
    .services-area .row > *:nth-child(4) { order: 3; }  /* Postproduction → 3e */
}

/* --- 3. Textes centrés sur mobile (About + Contact seulement, PAS les services) --- */
@media (max-width: 767px) {
    /* Cartes services : padding adapté mais texte NON centré (garde alignement gauche) */
    .services-area .service-item {
        padding: 40px 24px;
    }

    /* Section À propos : texte centré */
    .about-area .about-content-part {
        text-align: center;
    }
    .about-area .about-content-part p {
        font-size: 22px;
        line-height: 1.4;
    }
    .about-area .about-actions {
        justify-content: center;
    }
    .about-area .about-image {
        padding-right: 0;
        text-align: center;
        margin-bottom: 30px;
    }

    /* Section Contact : texte centré (fix décalages hérités du template) */
    .contact-area .contact-content-part {
        text-align: center;
        padding-right: 0;
        padding-left: 0;
    }
    .contact-area .contact-content-part h2 {
        font-size: clamp(1.75rem, 8vw, 2.5rem);
        line-height: 1.2;
    }
    .contact-area .contact-content-part p {
        font-size: 18px;
    }
    /* Icônes sociales : reset des paddings/margins de la liste + vrai centrage */
    .contact-area .contact-content-part .about-social {
        display: flex;
        justify-content: center;
    }
    .contact-area .contact-content-part .about-social ul {
        display: flex;
        justify-content: center;
        gap: 12px;
        padding: 0;
        margin: 0;
        list-style: none;
    }
    .contact-area .contact-content-part .about-social ul li {
        margin: 0;
    }

    /* Titres section : force centrage + tailles réduites pour éviter wraps chelou */
    .section-title,
    .section-title h2 {
        text-align: center;
    }
    .section-title h2 {
        font-size: clamp(2rem, 10vw, 3.5rem);
        text-wrap: balance;
        margin-left: auto;
        margin-right: auto;
    }
}

.portfolio-box:hover::before {
    background: rgba(15, 15, 15, 0.35);
}

/* Icône PLAY qui apparaît au centre au hover (fallback si pas de curseur custom) */
.portfolio-box .play-badge {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 72px;
    height: 72px;
    margin: -36px 0 0 -36px;
    border-radius: 50%;
    background: var(--primary-color);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    opacity: 0;
    transform: scale(0.6);
    transition: opacity 0.35s, transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    pointer-events: none;
}

.portfolio-box .play-badge::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-left: 18px solid var(--black-color);
    border-top: 12px solid transparent;
    border-bottom: 12px solid transparent;
    margin-left: 4px;
}

.portfolio-box:hover .play-badge {
    opacity: 1;
    transform: scale(1);
}

/* Play badge visible sur tous devices — cursor PLAY est un bonus */

/* ---------- 5. Curseur PLAY contextuel ---------- */
#ball.cursor-play {
    width: 90px !important;
    height: 90px !important;
    background: var(--primary-color) !important;
    mix-blend-mode: normal !important;
    border: none !important;
}

#ball.cursor-play::before {
    content: "PLAY";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--black-color);
    font-family: var(--title-font);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.1em;
}

/* ---------- 6. Anti-fouillis: bouton hero plus impactant ---------- */
.main-hero-video-area .theme-btn {
    margin-top: 20px;
    padding: 18px 40px;
    font-size: 15px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ---------- 7. Reveal masks (motion) ---------- */
.reveal-mask {
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
}

.reveal-mask > .reveal-inner {
    display: inline-block;
    will-change: transform;
}

/* CSS-based hero reveal (fallback bulletproof si JS ne tourne pas) */
.main-hero-video-area .hero-content h2 .reveal-inner {
    transform: translateY(110%);
    animation: heroWordReveal 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.main-hero-video-area .hero-content h2 .reveal-mask:nth-child(1) .reveal-inner { animation-delay: 0.2s; }
.main-hero-video-area .hero-content h2 .reveal-mask:nth-child(2) .reveal-inner { animation-delay: 0.28s; }
.main-hero-video-area .hero-content h2 .reveal-mask:nth-child(3) .reveal-inner { animation-delay: 0.36s; }
.main-hero-video-area .hero-content h2 .reveal-mask:nth-child(4) .reveal-inner { animation-delay: 0.44s; }
.main-hero-video-area .hero-content h2 .reveal-mask:nth-child(5) .reveal-inner { animation-delay: 0.52s; }
.main-hero-video-area .hero-content h2 .reveal-mask:nth-child(6) .reveal-inner { animation-delay: 0.60s; }

.main-hero-video-area .hero-content p {
    opacity: 0;
    transform: translateY(30px);
    animation: heroFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.7s forwards;
}

.main-hero-video-area .hero-content .theme-btn {
    opacity: 0;
    transform: translateY(30px);
    animation: heroFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.9s forwards;
}

@keyframes heroWordReveal {
    to { transform: translateY(0); }
}

@keyframes heroFadeUp {
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .main-hero-video-area .hero-content h2 .reveal-inner,
    .main-hero-video-area .hero-content p,
    .main-hero-video-area .hero-content .theme-btn {
        animation: none;
        transform: none;
        opacity: 1;
    }
}

.reveal-fade {
    opacity: 0;
    transform: translateY(30px);
    will-change: opacity, transform;
}

/* ---------- 8. Scroll-based reveals (IntersectionObserver) ---------- */
.scroll-reveal-init.scroll-reveal-title .reveal-inner {
    transform: translateY(110%);
    transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}

.scroll-reveal-title.is-revealed .reveal-inner {
    transform: translateY(0);
}

.scroll-reveal-title.is-revealed .reveal-mask:nth-child(1) .reveal-inner { transition-delay: 0s; }
.scroll-reveal-title.is-revealed .reveal-mask:nth-child(2) .reveal-inner { transition-delay: 0.06s; }
.scroll-reveal-title.is-revealed .reveal-mask:nth-child(3) .reveal-inner { transition-delay: 0.12s; }
.scroll-reveal-title.is-revealed .reveal-mask:nth-child(4) .reveal-inner { transition-delay: 0.18s; }
.scroll-reveal-title.is-revealed .reveal-mask:nth-child(5) .reveal-inner { transition-delay: 0.24s; }

.scroll-reveal-init.service-item,
.scroll-reveal-init.portfolio-item,
.scroll-reveal-init.testimonial-item {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.scroll-reveal-init.is-revealed {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .scroll-reveal-init,
    .scroll-reveal-init .reveal-inner {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}