/* ========================================
   COMPONENTS - Cards, Grids, Guides
   ======================================== */

/**
 * Composants réutilisables du site
 * - Kadence fixes
 * - Cards (services, portfolio, guides)
 * - Grids et galleries
 */

/* ========================================
   KADENCE FIXES
   ======================================== */

/* Égalisation hauteur infobox 3 colonnes */
.kt-row-column-wrap.kt-has-3-columns {
    align-items: stretch;
}

.kt-row-column-wrap.kt-has-3-columns > .wp-block-kadence-column {
    height: 100%;
}

.kt-row-column-wrap.kt-has-3-columns .kt-inside-inner-col {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.kt-row-column-wrap.kt-has-3-columns .wp-block-kadence-infobox {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.kt-row-column-wrap.kt-has-3-columns .kt-blocks-info-box-link-wrap {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.kt-row-column-wrap.kt-has-3-columns .kt-infobox-textcontent {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.kt-row-column-wrap.kt-has-3-columns .kt-infobox-textcontent > *:last-child {
    margin-top: auto;
}

.kt-blocks-info-box-learnmore-wrap {
    display: flex;
    justify-content: center;
    margin-top: auto;
}

/* Classe réutilisable : num-cards-equal */
.num-cards-equal .kt-row-column-wrap {
    align-items: stretch;
}

.num-cards-equal .wp-block-kadence-column {
    display: flex;
}

.num-cards-equal .kt-inside-inner-col {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.num-cards-equal .wp-block-kadence-infobox {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.num-cards-equal .kt-blocks-info-box-link-wrap {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.num-cards-equal .kt-blocks-info-box-text {
    flex: 1 1 auto;
}

/* Classe réutilisable : equal-height-cards */
.equal-height-cards .kt-row-column-wrap {
    display: flex !important;
    align-items: stretch !important;
}

.equal-height-cards .wp-block-kadence-column {
    display: flex !important;
}

.equal-height-cards .kt-inside-inner-col {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

.equal-height-cards .kt-blocks-testimonials-wrap,
.equal-height-cards .kt-testimonial-grid-item,
.equal-height-cards .kt-testimonial-item-wrap,
.equal-height-cards .wp-block-kadence-testimonial {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

/* Footer mobile */
@media (max-width: 767px) {
    .site-top-footer-inner-wrap.site-footer-row {
        text-align: center;
    }

    .site-top-footer-inner-wrap.site-footer-row .site-footer-top-section-1.site-footer-section {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .site-top-footer-inner-wrap.site-footer-row .footer-widget-area,
    .site-top-footer-inner-wrap.site-footer-row .footer-widget-area-inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .site-top-footer-inner-wrap.site-footer-row .footer-widget-area-inner > * {
        margin-left: auto;
        margin-right: auto;
    }
}

/* Divers */
.kt-testimonial-meta-wrap {
    display: none !important;
}

.single-content h1 {
    margin: 0em 0 0em;
}

.kt-adv-heading3593_f97c7f-bf {
    margin-bottom: unset !important;
}

/* ========================================
   CARDS
   ======================================== */

/* === CARDS SERVICES === */

.services-section {
    padding: 60px 20px;
    max-width: 1400px;
    margin: 0 auto;
}

.service-card {
    background: white;
    border-radius: 15px;
    padding: 40px 30px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-align: center;
}

.service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.service-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0f4ff;
    border-radius: 50%;
    color: #2563eb;
}

.service-icon svg {
    width: 40px;
    height: 40px;
}

.service-card h3 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 15px 0;
    color: #1e293b;
    line-height: 1.3;
}

.service-card p {
    font-size: 15px;
    line-height: 1.6;
    color: #64748b;
    margin: 0;
}

@media (max-width: 1024px) {
    .service-card {
        padding: 35px 25px;
    }
}

@media (max-width: 768px) {
    .services-section {
        padding: 40px 15px;
    }
    
    .service-card {
        padding: 30px 20px;
    }
    
    .service-card h3 {
        font-size: 20px;
    }
    
    .service-icon {
        width: 70px;
        height: 70px;
    }
}


/* === CARDS PORTFOLIO === */

.portfolio-item {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    cursor: pointer;
    aspect-ratio: 1/1; /* ← carré */
    text-decoration: none;
    color: inherit;
    display: block;
}

.portfolio-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.portfolio-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.93); /* ← blanc */
    opacity: 0;
    transition: opacity 0.4s ease;
    display: flex;
    align-items: flex-end;
    padding: 28px 30px 30px 30px;
}

.portfolio-content {
    color: #1a1a1a; /* ← texte sombre sur fond blanc */
    transform: translateY(30px);
    transition: transform 0.4s ease, opacity 0.4s ease;
    opacity: 0;
}

.portfolio-content h3 {
    font-size: 24px;
    font-weight: 700;
    margin: 0 0 8px 0;
    color: #1230D9; /* ← bleu Numévia sur fond blanc, ça claque */
}

.portfolio-content p {
    font-size: 14px;
    margin: 0 0 14px 0;
    color: #444444; /* ← gris foncé lisible */
    font-weight: 400;
}

.portfolio-cta {
    display: inline-block;
    padding: 8px 18px;
    background: #1230D9; /* ← inversé : fond bleu sur overlay blanc */
    color: #F5E6B0;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
}

.portfolio-item:hover .portfolio-overlay {
    opacity: 1;
}

.portfolio-item:hover .portfolio-content {
    transform: translateY(0);
    opacity: 1;
}

.portfolio-item:hover img {
    transform: scale(1.1);
}

@media (max-width: 768px) {
    .portfolio-content h3 {
        font-size: 20px;
    }
}
/* === CARDS GUIDES === */
/* === CARDS GUIDES === */

.numevia-guide-card {
    background: #ffffff;
    border-radius: 1.4rem;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.numevia-guide-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.08);
}

.numevia-guide-thumb img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
}

.numevia-guide-content {
    padding: 1.1rem 1.3rem 1.3rem;
}

.numevia-guide-cat {
    font-size: 0.8rem;
    font-weight: 500;
    color: #7a7d99;
    margin-bottom: 0.4rem;
}

.numevia-guide-date {
    font-size: 0.9rem;
    color: #666 !important;
    margin-bottom: 6px;
}

.numevia-guide-title,
.numevia-guide-title a {
    font-size: 1.05rem;
    margin: 0 0 0.5rem;
    text-decoration: none !important;
    color: #222;
}

.numevia-guide-card:hover .numevia-guide-title {
    color: #374bff;
}

.numevia-guide-excerpt {
    font-size: 0.9rem;
    color: #555;
    margin-bottom: 0.8rem;
}

.numevia-guide-link {
    font-size: 0.9rem;
    font-weight: 600;
    color: #ff7f5c;
}

.numevia-guide-card a {
    text-decoration: none;
}

/* ========================================
   GRIDS
   ======================================== */

/* Portfolio gallery */
.portfolio-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    padding: 40px 20px;
    max-width: 1400px;
    margin: 0 auto;
}

@media (max-width: 1024px) {
    .portfolio-gallery {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
        padding: 40px 15px;
    }
}

@media (max-width: 768px) {
    .portfolio-gallery {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 30px 15px;
    }
}

/* Services grid */
.services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

@media (max-width: 1024px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
}

@media (max-width: 768px) {
    .services-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* ========================================
   BLOG & GUIDES
   ======================================== */

/* Filtres */
.numevia-guides-filters {
    display: flex;
    flex-wrap: nowrap;
    gap: 2rem;
    border-bottom: 1px solid #e2e4ff;
    margin-bottom: 1.5rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.numevia-guides-filters button {
    background: transparent;
    border: none;
    padding: 0.5rem 0;
    font-size: 0.95rem;
    color: #4a4c63;
    cursor: pointer;
    position: relative;
    white-space: nowrap;
}

.numevia-guides-filters button.is-active {
    color: #374bff;
    font-weight: 600;
}

.numevia-guides-filters button.is-active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 2px;
    border-radius: 999px;
    background: #374bff;
}

/* Grille guides */
.numevia-guides-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.75rem;
}

@media (max-width: 1024px) {
    .numevia-guides-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .numevia-guides-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   FAQ MODERNE - Style Cards
   ======================================== */

/* Conteneur principal */
.kt-accordion-wrap {
    max-width: 900px;
    margin: 0 auto;
}

/* Chaque question : fond pâle, sans ombre ni bordure */
.kt-accordion-pane {
    background: #E8F3FF !important;
    border-radius: 12px !important;
    margin-bottom: 12px !important;
    box-shadow: none !important;
    border: none !important;
    overflow: hidden !important;
    padding: 0 !important;
}

/* Zone cliquable de la question */
.kt-accordion-header-wrap {
    padding: 24px 32px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    background: transparent !important;
}

/* Texte de la question */
.kt-accordion-header-wrap h2,
.kt-accordion-header-wrap .kt-accordion-header {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #0A175C !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Icône flèche */
.kt-accordion-icon-trigger {
    transition: transform 0.3s ease !important;
    color: #0026FF !important;
    font-size: 20px !important;
}

/* Rotation de la flèche quand la question est ouverte */
.kt-accordion-pane.kt-accordion-panel-active .kt-accordion-icon-trigger {
    transform: rotate(180deg) !important;
}

/* Réponse */
.kt-accordion-panel {
    padding: 0 32px 24px 32px !important;
    color: #0A175C !important;
    line-height: 1.6 !important;
    background: transparent !important;
}

/* Ouverture douce */
.kt-accordion-panel-inner {
    animation: slideDown 0.3s ease;
}

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Texte dans la réponse */
.kt-accordion-panel p {
    margin-bottom: 16px !important;
    color: #0A175C !important;
}

.kt-accordion-panel strong {
    color: #0A175C !important;
    font-weight: 600 !important;
}

/* ========================================
   COMPTEURS WORDPRESS - Style Gradient Cards (version finale)
   ======================================== */

/* ÉTAPE 1 : Nettoyer tous les fonds des conteneurs parents */
.kt-row-column-wrap.kt-has-3-columns .wp-block-kadence-column,
.kt-row-column-wrap.kt-has-3-columns .kt-inside-inner-col {
    background: none !important;
    background-color: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    border: none !important;
}

/* Grille des 3 compteurs */
.kt-row-column-wrap.kt-has-3-columns.kt-row-layout-equal {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    align-items: stretch;
}

/* Chaque colonne contenant un compteur */
.kt-row-column-wrap.kt-has-3-columns .wp-block-kadence-column {
    display: flex;
}

/* Container du compteur - C'EST LUI qui a le fond blanc */
.wp-block-kadence-countup {
    background: white !important;
    border-radius: 20px !important;
    padding: 40px 30px !important;
    text-align: center !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Bande colorée en haut (gradient bleu pour le 1er) */
.wp-block-kadence-countup::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: linear-gradient(90deg, #0026FF, #667eea);
    z-index: 0;
}

/* Bande orange pour le 2ème compteur */
.kadence-column10_99933a-41 .wp-block-kadence-countup::before {
    background: linear-gradient(90deg, #FF6B4A, #ff8c6b);
}

/* Bande bleu inversé pour le 3ème compteur */
.kadence-column10_0d6621-1b .wp-block-kadence-countup::before {
    background: linear-gradient(90deg, #667eea, #0026FF);
}

/* Effet hover */
.wp-block-kadence-countup:hover {
    transform: translateY(-8px) !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important;
}

/* Le nombre (ex: +40%) */
.kb-count-up-number {
    font-size: 56px !important;
    font-weight: 700 !important;
    background: linear-gradient(135deg, #0026FF, #667eea) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    margin-bottom: 15px !important;
    line-height: 1 !important;
    position: relative !important;
    z-index: 1 !important;
}

/* Couleur orange pour le 2ème compteur */
.kadence-column10_99933a-41 .kb-count-up-number {
    background: linear-gradient(135deg, #FF6B4A, #ff8c6b) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

/* Couleur bleu inversé pour le 3ème */
.kadence-column10_0d6621-1b .kb-count-up-number {
    background: linear-gradient(135deg, #667eea, #0026FF) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

/* Le texte descriptif */
.kb-count-up-title {
    font-size: 15px !important;
    color: #64748b !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 1 !important;
}

/* Responsive mobile */
@media (max-width: 1024px) {
    .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-equal {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
}

@media (max-width: 768px) {
    .kt-row-column-wrap.kt-has-3-columns.kt-row-layout-equal {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .kb-count-up-number {
        font-size: 48px !important;
    }

    .wp-block-kadence-countup {
        padding: 35px 25px !important;
    }
}

