/* =========================
   VARIABLES
========================= */
:root {
    --primary: #e0bc8b;
    --primary-dark: #c9a87a;
    --secondary: #4ECDC4;
    --dark: #2C3E50;
    --light: #F8F9FA;
    --white: #FFFFFF;
}

/* =========================
   RESET & BASE
========================= */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Poppins', sans-serif;
    background-color: var(--light);
    color: var(--dark);
    line-height: 1.6;
    padding-top: 90px;
}

.container {
    max-width: 1200px;
    margin: auto;
    padding: 0 -50px;
}

/* =========================
   TYPOGRAPHIE
========================= */
h1, h2, h3, h4 {
    margin-bottom: 1rem;
}

h1 {
    font-size: 2.4rem;
    font-weight: 700;
}

h2 {
    text-align: center;
    font-size: 2rem;
    position: relative;
}

h2::after {
    content: "";
    display: block;
    width: 70px;
    height: 4px;
    margin: 12px auto 0;
    background: linear-gradient(90deg, var(--secondary), var(--primary));
}

p {
    color: #666;
}

/* =========================
   BOUTONS
========================= */
.btn-primary {
    display: inline-block;
    background: var(--primary) !important;
    color: var(--white) !important;
    padding: 12px 32px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 500;
    transition: 0.3s;
    box-shadow: 0 6px 15px rgba(224,188,139,.35);
}

.btn-primary:hover {
    background: var(--primary-dark) !important;
    color: var(--white) !important;
    transform: translateY(-2px);
}

/* =========================
   HEADER
========================= */
header {
    position: fixed;
    top: 20px;
    width: 100%;
    background: var(--white);
    box-shadow: 0 2px 10px rgba(0,0,0,.1);
    z-index: 1000;
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 90px;
}

.logo {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: var(--dark);
}

/* LOGO PLUS GROS */
.logo img {
    height: 190px;
    margin-right: 12px;
    filter: drop-shadow(0 6px 12px rgba(224,188,139,.6));
	transform: translateY(35px);
    transition: transform 0.3s ease;
}

.logo img:hover {
	transform: translateY(35px) rotate(360deg);
}

/* ENSEIGNE */
.logo span {
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    background: linear-gradient(90deg, var(--primary), var(--secondary));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

nav ul {
    display: flex;
    list-style: none;
    align-items: center;
}

nav ul li {
    margin-left: 30px;
}

/* MENU HOVER + PATTES */
nav ul li a {
    position: relative;
    text-decoration: none;
    color: var(--dark);
    font-weight: 500;
    padding-bottom: 6px;
}

nav ul li a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 0;
    height: 2px;
    background-color: var(--primary);
    transform: translateX(-50%);
    transition: width 0.3s ease;
}

nav ul li a::before {
    content: "🐾";
    position: absolute;
    bottom: -16px;
    left: 50%;
    font-size: 0.75rem;
    opacity: 0;
    filter: blur(1px);
    transform: translateX(-50%) scale(0.8);
    transition: all 0.3s ease;
}

nav ul li a:hover::after {
    width: 100%;
}

nav ul li a:hover::before {
    opacity: 0.25;
    transform: translateX(-50%) scale(1);
}

.mobile-menu-btn {
    display: none;
    background: none;
    border: none;
    font-size: 1.8rem;
}

/* =========================
   HERO (SLIDE IMAGE + TEXTE DESSOUS)
========================= */
.hero {
    position: relative;
    overflow: visible;
    margin-bottom: 20px;
}

/* SLIDER */
.hero-slider {
    height: auto;
}


/* chaque slide devient une colonne */
.hero-slider .swiper-slide {
    display: flex;
    flex-direction: column;
    background: var(--white);
}

/* IMAGE */
.hero-slider .swiper-slide img {
    width: 100%;
    height: 45vh;
    min-height: 320px;
    max-height: 480px;
    object-fit: cover;
}

/* TEXTE DU SLIDE */
.slide-content {
    position: relative;
    inset: auto;
    background: linear-gradient(
        180deg,
        rgba(255,255,255,0.95),
        rgba(255,255,255,1)
    );
    color: var(--dark);
    padding: 35px 20px 45px;
    text-align: center;
}

/* typo */
.slide-content h1 {
    margin-bottom: 12px;
}

.slide-content p {
    margin-bottom: 25px;
}

/* bouton */
.slide-content .btn-primary {
    box-shadow: 0 6px 15px rgba(224,188,139,.35);
}


/* =========================
   SECTIONS (AÉRATION)
========================= */
section {
    padding: 50px 0;
    position: relative;
    z-index: 1;
}

section.hero {
    padding: 0;
}

.services-grid,
.features,
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px,1fr));
    gap: 30px;
    margin-top: 25px;
}

.service-card,
.feature,
.testimonial-card {
    background: var(--white);
    padding: 30px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 5px 15px rgba(0,0,0,.05);
}

.service-card i,
.feature i,
.social-links i,
footer i {
    font-size: 2.5rem;
    color: var(--primary);
    margin-bottom: 15px;
}

.testimonial-card img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
}

/* =========================
   CTA
========================= */
.cta {
    background: #f1f8f7;
    text-align: center;
}

/* =========================
   FOOTER
========================= */
footer {
    background: var(--dark);
    color: var(--white);
    padding: 60px 0 0;
    position: relative;
    z-index: 2;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
    gap: 40px;
}

footer a,
footer a:visited {
    color: var(--primary);
    text-decoration: none;
}

footer a:hover {
    color: var(--primary-dark);
}

.social-links a {
    margin-right: 15px;
    color: var(--primary);
}

/* ===== LOGO FOOTER ===== */
.footer-logo img {
    transition: transform 0.6s ease;
}

.footer-logo img:hover {
    transform: rotate(360deg);
}



.copyright {
    text-align: center;
    padding: 20px;
    margin-top: 40px;
    border-top: 1px solid rgba(255,255,255,.1);
}

/* =========================
   RESPONSIVE
========================= */
@media(max-width:768px){
    nav ul {
        position: fixed;
        top: 90px;
        left: -100%;
        width: 100%;
        height: calc(100vh - 90px);
        background: var(--white);
        flex-direction: column;
        justify-content: center;
        transition: .3s;
    }

    nav ul.active {
        left: 0;
    }

    .mobile-menu-btn {
        display: block;
    }
}


/* ===== MENU HOVER AVEC PATTES ANIMÉES ===== */
nav ul li a {
    position: relative;
    text-decoration: none;
    color: var(--dark);
    font-weight: 500;
    padding: 6px 4px;
}

/* underline */
nav ul li a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 0;
    height: 2px;
    background-color: var(--primary);
    transform: translateX(-50%);
    transition: width 0.3s ease;
}

/* patte gauche (bas gauche) */
nav ul li a::before {
    content: "🐾";
    position: absolute;
    bottom: -18px;
    left: -14px;
    font-size: 0.95rem;
    opacity: 0;
    filter: blur(1px);
    transform: scale(0.6);
    transition: all 0.3s ease;
    transition-delay: 0s;
}

/* patte droite (au-dessus du texte) */
nav ul li a span::after {
    content: "🐾";
    position: absolute;
    top: -18px;
    right: -6px;
    font-size: 0.95rem;
    opacity: 0;
    filter: blur(1px);
    transform: scale(0.6);
    transition: all 0.3s ease;
    transition-delay: 0.25s; /* apparition après la gauche */
}

/* hover */
nav ul li a:hover::after {
    width: 100%;
}

nav ul li a:hover::before {
    opacity: 0.25;
    transform: scale(1);
}

nav ul li a:hover span::after {
    opacity: 0.25;
    transform: scale(1);
}


.hero-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}


}

/* slider */
.hero-slider img {
    width: 100%;
    height: 45vh;
    min-height: 340px;
    max-height: 520px;
    object-fit: cover;
}



/* petit détail déco */
.hero-content::before {
    content: "";
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 6px;
    background: var(--primary);
    border-radius: 5px;
}

/* typo */
.hero-content h1 {
    margin-bottom: 22px;
}

.hero-content .btn-primary {
    margin-top: 10px;
}

/* =========================
   TRANSITION HERO → SERVICES
========================= */

/* fond général légèrement teinté */
body {
    background: #faf8f4; /* beige très clair */
}

/* section services */
section.services {
    background: #f3efe8;
    border-radius: 80px 80px 0 0;
    position: relative;
    z-index: 1;
}



/* titres */
h1, h2, h3 {
    color: #3f3a32;
}

/* textes secondaires */
p {
    color: #6f6a61;
}

/* cartes / blocs */
.card,
.service-item {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
}

/* icônes */
.icon,
.service-item i {
    color: var(--primary);
}

.hero-content {
    max-width: 900px;
    margin: 0 auto;
    transform: translateY(-60px);
    background: linear-gradient(
        to bottom,
        #ffffff 0%,
        #f3efe8 100%
    );
    border-radius: 25px;
    padding: 45px 30px 50px;
    text-align: center;
    box-shadow:
    0 30px 80px rgba(0,0,0,0.12),
    0 10px 30px rgba(0,0,0,0.06);
    position: relative;
    z-index: 10;
}



/* =========================
   HERO TEXT ANIMATIONS
========================= */

.hero-content h1,
.hero-content .btn-primary {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.fade-out {
    opacity: 0;
    transform: translateY(10px);
}

.fade-in {
    opacity: 1;
    transform: translateY(0);
}





/* =========================
   PAWS WATERMARK BACKGROUND
========================= */

body {
    position: relative;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    background-image: url("/assets/images/paws.png");
    background-repeat: repeat;
    background-size: 420px auto; /* taille des pattes */
    background-position: center;
    opacity: 0.06; /* filigrane */
    pointer-events: none;
    z-index: 0;
}


#hero-desc {
    max-width: 700px;
    margin: 0 auto 22px;
    font-size: 1.05rem;
    color: #6f6a61;
    line-height: 1.6;
}

.service-card:hover {
	transition: transform 0.3s ease;
    transform: translateY(-12px);
    box-shadow: 0 25px 60px rgba(0,0,0,0.12);
}

.service-card {
    position: relative;
    background: #fff;
    border-radius: 24px;
    padding: 32px 28px 70px;
    min-height: 320px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    transition: transform .35s ease, box-shadow .35s ease;
}

.service-card:hover {
    transform: translateY(-12px);
    box-shadow: 0 25px 60px rgba(0,0,0,0.12);
}

.service-more {
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s ease;
}

.service-card.open .service-more {
    max-height: 200px;
}

.service-toggle {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: none;
    border: none;
    cursor: pointer;
}

.service-toggle span {
    display: block;
    width: 14px;
    height: 14px;
    border-right: 2px solid #b79f6c;
    border-bottom: 2px solid #b79f6c;
    transform: rotate(45deg);
    transition: transform .3s ease;
}

.service-card.open .service-toggle span {
    transform: rotate(-135deg);
}


.services-reveal.open {
    opacity: 1;
    transform: translateY(0);
}

.reveal-inner {
    padding: 50px 40px;
    max-width: 900px;
    margin: auto;
    text-align: center;
}

.service-card.active {
    transform: translateY(-8px);
    box-shadow: 0 30px 60px rgba(0,0,0,.15);
}

.services-reveal {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-top: 60px;

    background: var(--dark);
    color: #fff;

    max-height: 0;
    overflow: hidden;

    opacity: 0;
    transform: translateY(-25px);

    transition:
        max-height .6s ease,
        opacity .4s ease,
        transform .4s ease;
}


.services-reveal.open {
    max-height: 5000px; /* ✅ hauteur volontairement large */
    opacity: 1;
    transform: translateY(0);
}


.reveal-inner {
    max-width: 900px;
    margin: auto;
    padding: 60px 40px;
    text-align: center;
	overflow: visible;
}

.reveal-inner h3 {
    font-size: 32px;
    margin-bottom: 20px;
}

.reveal-inner p {
    font-size: 18px;
    line-height: 1.6;
    opacity: 0.95;
}

.reveal-close {
    margin-top: 40px;
    padding: 14px 30px;
    background: #fff;
    color: #1e3a5f;
    border: none;
    border-radius: 30px;
    font-weight: 600;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease;
	display: inline-block;
}

.reveal-close:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(0,0,0,.25);
}


.service-card {
    cursor: pointer; /* ✅ curseur lien */
    transition: transform .25s ease, box-shadow .25s ease;
}

/* ✅ carte active */
.service-card.is-active {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0,0,0,.15);
}

/* (optionnel) léger feedback hover */
.service-card:hover {
    transform: translateY(-4px);
}



.reveal-inner h3 {
    color: #ffffff;
}

.reveal-inner p {
    color: #e1e6ee;
}

/* bouton fermer */
.reveal-close {
    background: var(--primary);
    color: #fff;
}

.reveal-close:hover {
    background: var(--primary-dark);
}


.reveal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}

.reveal-media img {
    width: 100%;
    border-radius: 16px;
    margin-bottom: 15px;
}

.reveal-list {
    margin-top: 20px;
    list-style: none;
    padding: 0;
}

.reveal-list li {
    margin-bottom: 10px;
    font-size: 17px;
}

.testimonials {
    margin-top: 40px;
    display: grid;
    gap: 25px;
}

.testimonials blockquote {
    background: rgba(255,255,255,0.08);
    padding: 25px;
    border-radius: 16px;
    font-style: italic;
}

.testimonials cite {
    display: block;
    margin-top: 12px;
    font-size: 14px;
    opacity: 0.8;
}




/* =========================
   TIMELINE HORIZONTALE – TRANSPORT
========================= */

.horizontal-timeline {
    display: flex;
    gap: 30px;
    overflow-x: auto;
	overflow-y: visible;
    padding: 20px 10px;
    scroll-snap-type: x mandatory;
}

.horizontal-timeline .timeline-step {
    min-width: 220px;
    background: rgba(255,255,255,0.08);
    border-radius: 18px;
    padding: 20px;
    text-align: center;
    scroll-snap-align: start;
}

.horizontal-timeline .timeline-step span {
    display: inline-flex;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    margin-bottom: 10px;
}

.horizontal-timeline h5 {
    margin-bottom: 6px;
    font-size: 16px;
}

.horizontal-timeline p {
    font-size: 14px;
    color: #e1e6ee;
}



/* =========================
   TIMELINE CENTRÉE
========================= */

.timeline-fullwidth {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    padding: 30px 0 40px;
    overflow-x: auto;
	overflow-y: visible;
	padding-bottom: 70px;
}

.timeline-inner {
    display: flex;
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

.timeline-step {
    min-width: 220px;
}


.timeline-fullwidth::-webkit-scrollbar {
    height: 8px;
}

.timeline-fullwidth::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.25);
    border-radius: 10px;
}

.timeline-fullwidth::-webkit-scrollbar-track {
    background: transparent;
}


/* =========================
   TIMELINE – LOGIQUE PROGRESSION
========================= */

.timeline-step {
    opacity: 0.35;
    filter: grayscale(1);
    pointer-events: auto;
    transform: scale(0.95);
    transition:
        opacity .3s ease,
        transform .3s ease,
        filter .3s ease,
        box-shadow .3s ease;
}

/* step active (allumée) */
.timeline-step.is-active {
    opacity: 1;
    filter: grayscale(0);
    pointer-events: auto;
    transform: scale(1);
    box-shadow: 0 20px 45px rgba(224,188,139,.35);
    cursor: pointer;
}

/* micro feedback */
.timeline-step.is-active:hover {
    transform: translateY(-6px) scale(1.02);
}

/* =========================
   TIMELINE – CURSEURS UX
========================= */

.timeline-step {
    cursor: default;
}

.timeline-step.is-active,
.timeline-step.is-next {
    cursor: pointer;
}


/* =========================
   EXCLURE LE BOUTON DEVIS DES EFFETS MENU
========================= */

nav ul li a.btn-primary::before,
nav ul li a.btn-primary::after,
nav ul li a.btn-primary span::after {
    content: none !important;
}



section:not(.hero)::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 3px;
    background: linear-gradient(
        90deg,
        transparent,
        var(--primary),
        transparent
    );
    opacity: 0.35;
}




/* =====================================================
   HARMONISATION DES ESPACEMENTS (SAFE OVERRIDES)
   ⚠️ NE CASSE RIEN – AJOUT UNIQUEMENT
===================================================== */

/* ✅ Correction padding container (padding négatif = bug CSS) */
.container {
    padding: 0 20px;
}

/* ✅ Rythme vertical global des sections */
section {
    padding-top: 35px;
    padding-bottom: 35px;
}

/* ✅ Hero inchangé */
section.hero {
    padding-top: 0;
    padding-bottom: 0;
}

/* ✅ Transition douce entre sections (moins agressive) */
section + section {
    margin-top: -30px;
}

/* ✅ Section services : cœur du site */
section#services {
    padding-top: 35px;
    padding-bottom: 35px;
}

/* ✅ Espacement titre → contenu */
h2 {
    margin-bottom: 18px;
}

.services-grid,
.features,
.testimonials-grid {
    margin-top: 28px;
}

/* ✅ Réduction espaces internes trop larges */
.services-reveal {
    margin-top: 40px;
}

/* ✅ Hero content : même style, moins de vide */
.hero-content {
    transform: translateY(-45px);
}

/* ✅ Séparation visuelle élégante (limitée aux sections clés) */
section#services::before,
section#testimonials::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 140px;
    height: 3px;
    background: linear-gradient(
        90deg,
        transparent,
        var(--primary),
        transparent
    );
    opacity: 0.35;
}

/* ✅ Espacement TRUST / RÉASSURANCE */
.trust-section {
    margin-top: 50px;
}

.trust-faq {
    margin-top: 45px;
}

.trust-commitments {
    margin-top: 45px;
}

/* ✅ Espacement FAQ interne */
.faq-grid {
    margin-top: 30px;
}

/* ✅ Engagements */
.commitments-list {
    margin-top: 28px;
}

/* ✅ Timeline transport : meilleure respiration */
.timeline-fullwidth {
    padding-top: 25px;
    padding-bottom: 55px;
}

/* ✅ Témoignages internes */
.testimonials {
    margin-top: 32px;
}

/* ✅ Mobile : espacement plus serré */
@media (max-width: 768px) {
    section {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    section + section {
        margin-top: -20px;
    }

    .trust-section,
    .trust-faq,
    .trust-commitments {
        margin-top: 35px;
    }
}


/* =====================================================
   OFFSET ANCRE HEADER FIXE (SAFE & PRO)
===================================================== */

section[id] {
    scroll-margin-top: 120px;
}

/* =====================================================
   FLÈCHE OUVERTURE / FERMETURE CARDS
===================================================== */

/* flèche par défaut (fermée) */
.service-toggle span {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.25s ease;
}

/* carte ouverte → flèche vers le haut */
.service-card.is-active .service-toggle span {
    transform: rotate(-135deg);
}


/* après testimonials */
#testimonials {
    margin-bottom: 6rem;
}

/* blocs internes de "Pour aller plus loin" */
.go-further .trust-section {
    margin-top: 3.5rem;
}

.go-further .trust-faq {
    margin-top: 4.5rem;
}

.go-further .trust-commitments {
    margin-top: 4.5rem;
}


.go-further {
    position: relative;
    margin-top: 6rem;            /* harmonisation espacement */
    padding-top: 4.5rem;         /* espace pour le trait */
}

.go-further::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 3px;
    border-radius: 3px;
    background: linear-gradient(
        90deg,
        rgba(224,188,139,0.8),
        rgba(78,205,196,0.9),
        rgba(224,188,139,0.8)
    );
}

#go-further {
    scroll-margin-top: 110px; /* hauteur approx du header */
}
