/********** Template CSS **********/
:root {
    --primary: #1D9519;
    --secondary-accent: #FDCD15;
    --light: #F6F7F8;
    --dark: #1A2A36;
}

.fw-medium {
    font-weight: 500 !important;
}

.fw-bold {
    font-weight: 700 !important;
}

.fw-black {
    font-weight: 900 !important;
}

.back-to-top {
    position: fixed;
    display: none;
    right: 45px;
    bottom: 45px;
    z-index: 99;
}


/*** Spinner ***/
#spinner {
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease-out, visibility 0s linear .5s;
    z-index: 99999;
}

#spinner.show {
    transition: opacity .5s ease-out, visibility 0s linear 0s;
    visibility: visible;
    opacity: 1;
}


/*** Button ***/
.btn {
    font-weight: 500;
    transition: .5s;
}

.btn.btn-primary,
.btn.btn-outline-primary:hover {
    color: #FFFFFF;
}

.btn-square {
    width: 38px;
    height: 38px;
}

.btn-sm-square {
    width: 32px;
    height: 32px;
}

.btn-lg-square {
    width: 48px;
    height: 48px;
}

.btn-square,
.btn-sm-square,
.btn-lg-square {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
}

/*** Navbar ***/
.navbar.sticky-top {
    top: -100px;
    transition: .5s;
}

.navbar .navbar-brand,
.navbar a.btn {
    height: 75px;
}

.navbar .navbar-nav .nav-link {
    margin-right: 30px;
    padding: 25px 0;
    color: var(--dark);
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    outline: none;
}

.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active {
    color: var(--primary);
}

.navbar .dropdown-toggle::after {
    border: none;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    vertical-align: middle;
    margin-left: 8px;
}

@media (max-width: 991.98px) {
    .navbar .navbar-nav .nav-link  {
        margin-right: 0;
        padding: 10px 0;
    }

    .navbar .navbar-nav {
        border-top: 1px solid #EEEEEE;
    }
}

@media (min-width: 992px) {
    .navbar .nav-item .dropdown-menu {
        display: block;
        border: none;
        margin-top: 0;
        top: 150%;
        opacity: 0;
        visibility: hidden;
        transition: .5s;
    }

    .navbar .nav-item:hover .dropdown-menu {
        top: 100%;
        visibility: visible;
        transition: .5s;
        opacity: 1;
    }
}


/*** Header ***/
.owl-carousel-inner {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    background: rgba(0, 0, 0, .1);
}

@media (max-width: 768px) {
    .header-carousel .owl-carousel-item {
        position: relative;
        min-height: 500px;
    }

    .header-carousel .owl-carousel-item img {
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .header-carousel .owl-carousel-item p {
        font-size: 16px !important;
    }
}

.header-carousel .owl-dots {
    position: absolute;
    width: 60px;
    height: 100%;
    top: 0;
    right: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.header-carousel .owl-dots .owl-dot {
    position: relative;
    width: 45px;
    height: 45px;
    margin: 5px 0;
    background: #FFFFFF;
    box-shadow: 0 0 30px rgba(255, 255, 255, .9);
    border-radius: 45px;
    transition: .5s;
}

.header-carousel .owl-dots .owl-dot.active {
    width: 60px;
    height: 60px;
}

.header-carousel .owl-dots .owl-dot img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    padding: 2px;
    border-radius: 45px;
    transition: .5s;
}

.page-header {
    background: linear-gradient(rgba(0, 0, 0, .1), rgba(0, 0, 0, .1)), url(../img/carousel-1.jpg) center center no-repeat;
    background-size: cover;
}

.breadcrumb-item + .breadcrumb-item::before {
    color: var(--light);
}


/*** About ***/
@media (min-width: 992px) {
    .container.about {
        max-width: 100% !important;
    }

    .about-text  {
        padding-right: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .about-text  {
        padding-right: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .about-text  {
        padding-right: calc(((100% - 1320px) / 2) + .75rem);
    }
}


/*** Service ***/
.service-item {
    box-shadow: 0 0 45px rgba(0, 0, 0, .08);
}

.service-icon {
    position: relative;
    margin: -50px 0 25px 0;
    width: 100px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    background: #FFFFFF;
    border-radius: 100px;
    box-shadow: 0 0 45px rgba(0, 0, 0, .08);
    transition: .5s;
}

.service-item:hover .service-icon {
    color: #FFFFFF;
    background: var(--primary);
}


/*** Feature ***/
@media (min-width: 992px) {
    .container.feature {
        max-width: 100% !important;
    }

    .feature-text  {
        padding-left: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .feature-text  {
        padding-left: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .feature-text  {
        padding-left: calc(((100% - 1320px) / 2) + .75rem);
    }
}


/*** Project Portfolio ***/
#portfolio-flters li {
    display: inline-block;
    font-weight: 500;
    color: var(--dark);
    cursor: pointer;
    transition: .5s;
    border-bottom: 2px solid transparent;
}

#portfolio-flters li:hover,
#portfolio-flters li.active {
    color: var(--primary);
    border-color: var(--primary);
}

.portfolio-img {
    position: relative;
}

.portfolio-img::before,
.portfolio-img::after {
    position: absolute;
    content: "";
    width: 0;
    height: 100%;
    top: 0;
    background: var(--dark);
    transition: .5s;
}

.portfolio-img::before {
    left: 50%;
}

.portfolio-img::after {
    right: 50%;
}

.portfolio-item:hover .portfolio-img::before {
    width: 51%;
    left: 0;
}

.portfolio-item:hover .portfolio-img::after {
    width: 51%;
    right: 0;
}

.portfolio-btn {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    z-index: 1;
    transition: .5s;
}

.portfolio-item:hover .portfolio-btn {
    opacity: 1;
    transition-delay: .3s;
}


/*** Quote ***/
@media (min-width: 992px) {
    .container.quote {
        max-width: 100% !important;
    }

    .quote-text  {
        padding-right: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .quote-text  {
        padding-right: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .quote-text  {
        padding-right: calc(((100% - 1320px) / 2) + .75rem);
    }
}


/*** Team ***/
.team-item {
    box-shadow: 0 0 45px rgba(0, 0, 0, .08);
}

.team-item img {
    border-radius: 8px 60px 0 0;
}

.team-item .team-social {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    background: #FFFFFF;
    transition: .5s;
}


/*** Testimonial ***/
.testimonial-carousel::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    height: 100%;
    width: 0;
    background: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
    z-index: 1;
}

.testimonial-carousel::after {
    position: absolute;
    content: "";
    top: 0;
    right: 0;
    height: 100%;
    width: 0;
    background: linear-gradient(to left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
    z-index: 1;
}

@media (min-width: 768px) {
    .testimonial-carousel::before,
    .testimonial-carousel::after {
        width: 200px;
    }
}

@media (min-width: 992px) {
    .testimonial-carousel::before,
    .testimonial-carousel::after {
        width: 300px;
    }
}

.testimonial-carousel .owl-nav {
    position: absolute;
    width: 350px;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: space-between;
    opacity: 0;
    transition: .5s;
    z-index: 1;
}

.testimonial-carousel:hover .owl-nav {
    width: 300px;
    opacity: 1;
}

.testimonial-carousel .owl-nav .owl-prev,
.testimonial-carousel .owl-nav .owl-next {
    position: relative;
    color: var(--primary);
    font-size: 45px;
    transition: .5s;
}

.testimonial-carousel .owl-nav .owl-prev:hover,
.testimonial-carousel .owl-nav .owl-next:hover {
    color: var(--dark);
}

.testimonial-carousel .testimonial-img img {
    width: 100px;
    height: 100px;
}

.testimonial-carousel .testimonial-img .btn-square {
    position: absolute;
    bottom: -19px;
    left: 50%;
    transform: translateX(-50%);
}

.testimonial-carousel .owl-item .testimonial-text {
    margin-bottom: 30px;
    box-shadow: 0 0 45px rgba(0, 0, 0, .08);
    transform: scale(.8);
    transition: .5s;
}

.testimonial-carousel .owl-item.center .testimonial-text {
    transform: scale(1);
}


/*** Contact ***/
@media (min-width: 992px) {
    .container.contact {
        max-width: 100% !important;
    }

    .contact-text  {
        padding-left: calc(((100% - 960px) / 2) + .75rem);
    }
}

@media (min-width: 1200px) {
    .contact-text  {
        padding-left: calc(((100% - 1140px) / 2) + .75rem);
    }
}

@media (min-width: 1400px) {
    .contact-text  {
        padding-left: calc(((100% - 1320px) / 2) + .75rem);
    }
}


/*** Footer ***/
.footer .btn.btn-social {
    margin-right: 5px;
    color: #9B9B9B;
    border: 1px solid #9B9B9B;
    border-radius: 38px;
    transition: .3s;
}

.footer .btn.btn-social:hover {
    color: var(--primary);
    border-color: var(--light);
}

.footer .btn.btn-link {
    display: block;
    margin-bottom: 5px;
    padding: 0;
    text-align: left;
    color: #9B9B9B;
    font-weight: normal;
    text-transform: capitalize;
    transition: .3s;
}

.footer .btn.btn-link::before {
    position: relative;
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: 10px;
}

.footer .btn.btn-link:hover {
    color: #FFFFFF;
    letter-spacing: 1px;
    box-shadow: none;
}

.footer .copyright {
    padding: 25px 0;
    border-top: 1px solid rgba(256, 256, 256, .1);
}

.footer .copyright a {
    color: var(--light);
}

.footer .copyright a:hover {
    color: var(--primary);
}
/*** AVITASUN Custom Brand Colors ***/
.text-accent { color: var(--secondary-accent) !important; }
.bg-accent { background-color: var(--secondary-accent) !important; }
.btn-accent { background: var(--secondary-accent); color: var(--dark); border: none; font-weight: 600; }
.btn-accent:hover { background: #e5ba00; color: var(--dark); }

/* Hero section with accent */
.hero-section { position: relative; overflow: hidden; }
.hero-section::before { content: ''; position: absolute; top: -50%; right: -20%; width: 600px; height: 600px; background: radial-gradient(circle, rgba(253,205,21,0.15), transparent 70%); z-index: 0; }

/* Product card enhancement */
.product-card { border: 1px solid #e9ecef; transition: all 0.3s ease; }
.product-card:hover { transform: translateY(-8px); box-shadow: 0 12px 35px rgba(29,149,25,0.15); border-color: var(--primary); }
.product-card .price-tag { background: linear-gradient(135deg, var(--primary), #24a520); color: #fff; padding: 6px 16px; border-radius: 20px; display: inline-block; font-weight: 700; }

/* Google Shopping compliance badges */
.trust-badges { display: flex; gap: 15px; flex-wrap: wrap; align-items: center; }
.trust-badge { display: flex; align-items: center; gap: 8px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 8px 14px; font-size: 0.85rem; }
.trust-badge i { color: var(--primary); }

/* Shipping & return info boxes */
.info-guarantee { background: linear-gradient(135deg, #f0faf0, #f9f9f0); border: 1px solid #d4edda; border-radius: 10px; padding: 20px; }
.info-guarantee i { color: var(--secondary-accent); font-size: 1.3rem; }

/* Navbar brand adjustment for transparent logo */
.navbar .navbar-brand img { height: 45px; width: auto; }

/* Price display Google Shopping style */
.price-display { font-size: 2rem; font-weight: 900; color: var(--primary); }
.price-display .currency { font-size: 1.2rem; }
.price-display .tax-info { font-size: 0.75rem; color: #6c757d; font-weight: 400; display: block; }

/* Availability badge */
.availability-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 12px; border-radius: 20px; font-size: 0.8rem; font-weight: 600; }
.availability-badge.in-stock { background: #d4edda; color: #155724; }
.availability-badge.out-of-stock { background: #f8d7da; color: #721c24; }

/* Footer with brand colors */
.footer { background: var(--dark) !important; }
.footer .btn-link { color: rgba(255,255,255,0.65); }
.footer .btn-link:hover { color: var(--secondary-accent); }

/* Cookie consent v2 */
.cookie-banner { background: var(--dark); border-top: 3px solid var(--secondary-accent); }

/* Accent elements */
.section-title-bar { width: 60px; height: 4px; background: var(--secondary-accent); margin: 0 auto 15px; border-radius: 2px; }

/* Google Ads landing page optimizations */
.checkout-secure-badge { background: #f0f7f0; border: 2px solid var(--primary); border-radius: 10px; padding: 15px; text-align: center; }
.checkout-secure-badge i { color: var(--primary); }

/* Lisibilité renforcée : textes noirs sur les zones claires */
body, p, .container, .bg-white, .bg-light, .card, .table, .form-label, .form-control, .form-select, .breadcrumb, .nav-tabs .nav-link { color: #111111; }
.text-muted { color: #222222 !important; }
.footer, .footer p, .footer .btn-link, .footer h5 { color: rgba(255,255,255,0.78) !important; }
.footer h5 { color:#fff !important; }

.product-main-image { min-height: 400px; display:flex; align-items:center; justify-content:center; }
.product-main-image img { max-height: 420px; object-fit: contain; }
.product-gallery-thumb { height: 95px; border: 1px solid #e6e6e6; border-radius: 10px; padding: 6px; background:#fff; cursor:pointer; object-fit: contain; width:100%; }
.payment-3x-box { border: 2px solid #1D9519; background: #f2fbf2; border-radius: 12px; padding: 14px; }
.review-card { border: 1px solid #e9ecef; border-radius: 14px; padding: 18px; background:#fff; height:100%; }
.review-stars { color:#f5b301; letter-spacing:2px; }
.legal-content h2, .legal-content h3 { margin-top: 1.5rem; color:#111; font-weight:800; }
.legal-content p, .legal-content li { line-height:1.8; color:#111; }


/* Correctifs responsive + lisibilité */
html, body { color: #000 !important; overflow-x: hidden; }
body, p, li, td, th, label, input, textarea, select, .form-control, .product-card, .table, .breadcrumb, .small, small { color: #000 !important; }
.text-muted { color: #111 !important; }
.product-card h5, .product-card h1, .product-card h2, .product-card h3 { color:#000 !important; font-weight:700; }
.product-img-wrapper { height: 230px; display:flex; align-items:center; justify-content:center; background:#f7f7f7; overflow:hidden; }
.product-img-wrapper img { width:100%; height:100%; object-fit:contain; padding:10px; }
.products-grid .product-card { transition:.2s ease; }
.products-grid .product-card:hover { transform: translateY(-3px); }
.product-gallery-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:10px; margin-top:12px; }
.product-gallery-thumb { width:100%; aspect-ratio:1/1; object-fit:contain; background:#fff; border:1px solid #ddd; border-radius:10px; padding:6px; cursor:pointer; }
.product-gallery-thumb:hover { border-color:#1D9519; box-shadow:0 0 0 2px rgba(29,149,25,.15); }
.navbar-lang-selector .dropdown-menu, .lang-dropdown .dropdown-menu { z-index: 9999; min-width: 185px; }
.lang-flag { font-size: 1.15rem; margin-right:6px; }
.dropdown-item.active, .dropdown-item:active { background:#1D9519; color:#fff !important; }
@media (min-width:1200px){ .products-grid .col-xl-3 { flex:0 0 auto; width:25%; } }
@media (max-width:991.98px){
  .navbar-brand { padding-left:12px !important; padding-right:12px !important; border-right:0 !important; }
  .navbar-brand img { height:42px !important; max-width:155px; object-fit:contain; }
  .navbar-collapse { max-height:calc(100vh - 80px); overflow-y:auto; }
  .navbar-nav .nav-link { padding:12px 20px !important; }
  .navbar-lang-selector { padding:12px 20px !important; border-top:1px solid #eee; }
  .page-header { padding-top:2rem !important; padding-bottom:2rem !important; }
  .page-header h1 { font-size:2rem !important; }
  .container-xxl.py-5 { padding-top:2rem !important; padding-bottom:2rem !important; }
  .product-main-image { padding:10px !important; }
  .product-main-image img { max-height:360px; width:100%; object-fit:contain; }
  .product-gallery-grid { grid-template-columns: repeat(4,1fr); gap:8px; }
}
@media (max-width:575.98px){
  .products-grid > [class*="col-"] { width:100% !important; flex:0 0 100% !important; }
  .product-img-wrapper { height:260px; }
  .product-card .p-4 { padding:16px !important; }
  .btn { white-space:normal; }
  .product-list-head { padding:0 4px; }
  .product-gallery-grid { grid-template-columns: repeat(3,1fr); }
}

/* Correctifs finaux langue + responsive mobile */
.navbar { z-index: 1050; }
.navbar-cta { white-space: nowrap; min-width: 220px; justify-content:center; }
.lang-dropdown { position: relative; z-index: 1100; }
.lang-current { border:1px solid #e7e7e7; border-radius: 999px; padding: 8px 14px; display:flex; align-items:center; gap:6px; background:#fff !important; color:#000 !important; box-shadow:0 4px 14px rgba(0,0,0,.06); }
.lang-dropdown .dropdown-menu { border:0; border-radius:14px; box-shadow:0 12px 35px rgba(0,0,0,.16); padding:8px; z-index:1200; overflow:hidden; }
.lang-dropdown .dropdown-item { border-radius:10px; display:flex; align-items:center; gap:9px; font-weight:600; padding:10px 12px; color:#000 !important; }
.lang-flag { display:inline-flex; width:24px; justify-content:center; margin-right:0; font-size:1.22rem; }
.product-card p:not(.price-badge), .products-grid .small { display:none !important; }
.products-grid .product-card h5 { min-height: 42px; line-height:1.35; }
.product-gallery-grid { align-items:stretch; }
.product-gallery-thumb { box-shadow:0 2px 8px rgba(0,0,0,.04); }
.product-main-image { background:#fff !important; border:1px solid #eee; }
.product-main-image img { width:100%; }
.page-link { color:#1D9519; }
.page-item.active .page-link { background:#1D9519; border-color:#1D9519; color:#fff !important; }

@media (max-width: 991.98px){
  .navbar { min-height:68px; }
  .navbar-collapse { background:#fff; border-top:1px solid #eee; box-shadow:0 18px 40px rgba(0,0,0,.10); }
  .navbar-nav { width:100%; }
  .navbar-lang-selector { width:100%; padding:12px 20px 16px !important; }
  .lang-current { width:100%; justify-content:space-between; border-radius:12px; }
  .lang-dropdown .dropdown-menu { width:calc(100% - 40px); margin-left:20px; }
  .navbar-cta { display:none !important; }
  .product-main-image { min-height:260px; }
  .products-grid { margin-left:0; margin-right:0; }
}
@media (max-width:575.98px){
  .container, .container-xxl { padding-left:14px; padding-right:14px; }
  .product-img-wrapper { height:220px; }
  .products-grid .product-card h5 { min-height:auto; font-size:1rem !important; }
  .price-badge { font-size:1rem; }
  .page-header { margin-bottom:1.5rem !important; }
  .product-gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap:7px; }
  .product-gallery-thumb { padding:5px; border-radius:8px; }
}

/* === CORRECTIF DEFINITIF LISTING PRODUITS ===
   4 colonnes PC, 2 tablette, 1 mobile, sans description.
*/
.products-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:22px !important;
    align-items:stretch !important;
}
.products-grid > div{
    width:auto !important;
    max-width:none !important;
    flex:none !important;
    padding:0 !important;
}
.products-grid .product-card{
    display:flex !important;
    flex-direction:column !important;
    height:100% !important;
    color:#000 !important;
}
.products-grid .product-card .p-4{
    display:flex !important;
    flex-direction:column !important;
    flex:1 !important;
    padding:18px !important;
}
.products-grid .product-card p:not(.price-badge),
.products-grid .product-card .small,
.products-grid .product-card .product-desc,
.products-grid .product-card .description{
    display:none !important;
}
.products-grid .product-card h5{
    color:#000 !important;
    font-size:.98rem !important;
    line-height:1.35 !important;
    min-height:44px !important;
    margin-bottom:12px !important;
}
.products-grid .product-card .badge{
    align-self:flex-start !important;
    color:#fff !important;
    background:#1D9519 !important;
}
.products-grid .price-badge{
    color:#000 !important;
    font-weight:800 !important;
    margin-top:auto !important;
}
.product-img-wrapper{
    height:225px !important;
    background:#f7f7f7 !important;
}
.product-img-wrapper img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    padding:8px !important;
}
@media (max-width:1199.98px){
    .products-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}
@media (max-width:991.98px){
    .products-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media (max-width:575.98px){
    .products-grid{grid-template-columns:1fr !important; gap:18px !important;}
    .product-img-wrapper{height:230px !important;}
    .products-grid .product-card h5{min-height:auto !important; font-size:1rem !important;}
}
