/* ====================================================
   DOUBLE VITRAGE PARIS — Design Premium (clean reset)
   Palette : Noir charbon / Crème / Or vieilli
   ==================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Inter:wght@300;400;500;600&display=swap');

:root {
    --noir: #1a1a1a;
    --noir-soft: #2c2c2c;
    --gris: #6b6b6b;
    --gris-clair: #e8e6e1;
    --creme: #f9f7f2;
    --creme-fonce: #f0ede5;
    --or: #c9a961;
    --or-clair: #d9bd7c;
    --or-fonce: #a8884d;
    --shadow-sm: 0 2px 8px rgba(0,0,0,.04);
    --shadow-md: 0 4px 24px rgba(0,0,0,.06);
    --shadow-lg: 0 12px 40px rgba(0,0,0,.08);
}

/* ============= GLOBAL RESET ============= */
body, html { background: var(--creme) !important; color: var(--noir) !important; font-family: 'Inter', -apple-system, sans-serif !important; line-height: 1.7; font-weight: 400; }
body { letter-spacing: -.005em; }

#page, .site, .site-content, .inside-article, .entry-content, .container { background: var(--creme) !important; }

h1, h2, h3, h4, .site-branding .main-title a {
    font-family: 'Playfair Display', Georgia, serif !important;
    color: var(--noir) !important;
    font-weight: 500 !important;
    letter-spacing: -.02em;
}

p, li, span:not([class*="dvp-"]) { color: var(--noir); }

a { transition: color .25s ease; }

/* ============= HEADER ============= */
.site-header { background: var(--creme) !important; padding: 0 !important; box-shadow: 0 1px 0 rgba(0,0,0,.06); position: sticky; top: 0; z-index: 1000; }

.inside-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 22px 50px !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    gap: 30px;
}

.site-branding { flex: 0 0 auto; }
.site-branding .main-title { font-size: 1.4em !important; line-height: 1.1 !important; margin: 0 !important; }
.site-branding .main-title a {
    color: var(--noir) !important;
    font-weight: 600 !important;
    text-decoration: none;
}
.site-description {
    color: var(--gris) !important;
    font-size: .8em;
    font-family: 'Inter', sans-serif;
    margin-top: 4px;
    letter-spacing: 0;
}

.main-navigation, .navigation-branding { flex: 1 1 auto; background: transparent !important; min-height: auto !important; }
.main-navigation .menu, .main-navigation .main-nav > ul {
    display: flex !important;
    justify-content: flex-end !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    gap: 4px;
}

.main-navigation li, .main-navigation .menu li { background: transparent !important; }
.main-navigation .main-nav ul li a {
    color: var(--noir) !important;
    background: transparent !important;
    font-weight: 500 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: .92em;
    padding: 14px 18px !important;
    position: relative;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.main-navigation .main-nav ul li a::after {
    content: '';
    position: absolute;
    bottom: 8px;
    left: 18px;
    right: 18px;
    height: 1px;
    background: var(--or);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .3s ease;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a { color: var(--or-fonce) !important; background: transparent !important; }
.main-navigation .main-nav ul li:hover > a::after,
.main-navigation .main-nav ul li.current-menu-item > a::after { transform: scaleX(1); }

/* Submenu */
.main-navigation .menu .sub-menu { background: var(--noir) !important; box-shadow: var(--shadow-md); border: none !important; min-width: 220px; }
.main-navigation .menu .sub-menu li a { color: rgba(255,255,255,.8) !important; padding: 14px 22px !important; }
.main-navigation .menu .sub-menu li a:hover { color: var(--or) !important; background: rgba(255,255,255,.05) !important; }
.main-navigation .menu .sub-menu li a::after { display: none; }

/* Hide page title on home and key pages */
body.home .entry-header,
body.page-id-6 .entry-header,
body.page-template-default .entry-header { display: none; }

.entry-content { padding: 0 !important; font-size: 1.05em; max-width: none !important; }
body.home .inside-article,
body.page .inside-article { padding: 0 !important; margin: 0 !important; box-shadow: none !important; border-radius: 0 !important; }

/* ============= HERO ============= */
.dvp-hero {
    background:
        linear-gradient(135deg, rgba(20,20,20,.92) 0%, rgba(20,20,20,.78) 100%),
        url('https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?w=1920&q=80') center/cover;
    color: #fff;
    padding: 140px 30px 160px;
    text-align: center;
    margin: 0;
}

.dvp-hero-content { position: relative; z-index: 2; max-width: 900px; margin: 0 auto; }

.dvp-hero-badge {
    display: inline-block;
    border: 1px solid rgba(201,169,97,.5);
    color: var(--or-clair);
    padding: 10px 26px;
    border-radius: 100px;
    font-size: .78em;
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
    margin-bottom: 40px;
    background: rgba(0,0,0,.2);
    backdrop-filter: blur(8px);
}

.dvp-hero h1 {
    color: #fff !important;
    font-size: 4.5em !important;
    font-weight: 400 !important;
    line-height: 1.05 !important;
    margin: 0 0 32px !important;
    letter-spacing: -.025em;
    border: none !important;
    padding: 0 !important;
    font-family: 'Playfair Display', serif !important;
}

.dvp-hero h1 em { font-style: italic; color: var(--or-clair); font-weight: 400; }

.dvp-hero-subtitle {
    font-size: 1.15em;
    color: rgba(255,255,255,.88) !important;
    margin: 0 auto 50px;
    font-family: 'Inter', sans-serif !important;
    font-weight: 300;
    max-width: 700px;
    line-height: 1.7;
}

.dvp-hero-cta { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 60px; }

.dvp-btn-primary, .dvp-btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 18px 40px;
    text-decoration: none !important;
    font-weight: 500;
    font-size: .95em;
    transition: all .3s ease;
    letter-spacing: .15em;
    text-transform: uppercase;
    font-family: 'Inter', sans-serif !important;
    border-radius: 0 !important;
    cursor: pointer;
}

.dvp-btn-primary { background: var(--or) !important; color: var(--noir) !important; border: 1px solid var(--or) !important; }
.dvp-btn-primary:hover { background: transparent !important; color: var(--or-clair) !important; }

.dvp-btn-secondary { background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,.4) !important; }
.dvp-btn-secondary:hover { background: #fff !important; color: var(--noir) !important; border-color: #fff !important; }

.dvp-hero-trust {
    display: flex; justify-content: center; gap: 30px; flex-wrap: wrap;
    color: rgba(255,255,255,.55); font-size: .78em;
    text-transform: uppercase; letter-spacing: .15em;
}
.dvp-hero-trust div { display: flex; align-items: center; gap: 8px; }

/* ============= STATS ============= */
.dvp-stats {
    background: #fff;
    padding: 70px 50px;
    margin: -80px 80px 100px;
    position: relative; z-index: 5;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    text-align: center;
    box-shadow: var(--shadow-lg);
}

.dvp-stat-number {
    font-family: 'Playfair Display', serif !important;
    font-size: 3.2em;
    font-weight: 500;
    color: var(--noir);
    line-height: 1;
    margin: 0 0 12px;
    white-space: nowrap;
}
.dvp-stat-number em { font-style: italic; color: var(--or); font-size: .85em; font-weight: 500; }

.dvp-stat-label {
    color: var(--gris);
    font-size: .78em;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .15em;
}

/* ============= SECTIONS ============= */
.dvp-section { padding: 110px 50px; max-width: 1280px; margin: 0 auto; }

.dvp-section-tag {
    display: block;
    color: var(--or-fonce);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .25em;
    font-size: .78em;
    margin-bottom: 24px;
    position: relative;
    padding-left: 60px;
}
.dvp-section-tag::before {
    content: '';
    position: absolute;
    left: 0; top: 50%;
    width: 40px; height: 1px;
    background: var(--or);
}

.dvp-section.center { text-align: center; }
.dvp-section.center .dvp-section-tag { padding-left: 60px; display: inline-block; }
.dvp-section.center .dvp-section-tag::before { left: 0; }

.dvp-section h2 {
    color: var(--noir) !important;
    font-size: 3em !important;
    font-weight: 500 !important;
    line-height: 1.15 !important;
    margin: 0 0 28px !important;
    border: none !important; padding: 0 !important;
    letter-spacing: -.025em;
    font-family: 'Playfair Display', serif !important;
}
.dvp-section h2 em { font-style: italic; color: var(--or-fonce); font-weight: 400; }

.dvp-section-intro {
    color: var(--gris);
    font-size: 1.1em;
    max-width: 680px;
    margin-bottom: 70px;
    line-height: 1.75;
    font-weight: 300;
}
.dvp-section.center .dvp-section-intro { margin: 0 auto 70px; }

/* ============= SERVICES GRID ============= */
.dvp-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: var(--gris-clair);
    margin-top: 60px;
    border: 1px solid var(--gris-clair);
}

.dvp-service-card {
    background: #fff;
    padding: 50px 40px;
    transition: all .35s ease;
}
.dvp-service-card:hover { background: var(--creme); transform: translateY(-2px); }

.dvp-service-icon {
    color: var(--or);
    font-size: 2.4em;
    margin-bottom: 28px;
    line-height: 1;
}

.dvp-service-card h3 {
    color: var(--noir) !important;
    font-size: 1.35em !important;
    font-weight: 500 !important;
    margin: 0 0 16px !important;
    font-family: 'Playfair Display', serif !important;
}

.dvp-service-card p { color: var(--gris); margin: 0 0 26px; line-height: 1.75; }

.dvp-service-link {
    color: var(--noir);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid var(--or);
    padding-bottom: 4px;
    font-size: .82em;
    text-transform: uppercase;
    letter-spacing: .15em;
}
.dvp-service-link:hover { color: var(--or-fonce); }

/* ============= PROCESS (dark) ============= */
.dvp-process {
    background: var(--noir);
    color: #fff;
    padding: 130px 50px;
}
.dvp-process .dvp-section-tag { color: var(--or-clair); }
.dvp-process .dvp-section-tag::before { background: var(--or-clair); }
.dvp-process h2 { color: #fff !important; }
.dvp-process h2 em { color: var(--or-clair); }
.dvp-process .dvp-section-intro { color: rgba(255,255,255,.7); }

.dvp-process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 60px;
    margin-top: 70px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.dvp-process-step { text-align: left; }
.dvp-process-number {
    font-family: 'Playfair Display', serif;
    font-size: 4.5em;
    font-weight: 400;
    font-style: italic;
    color: var(--or-clair);
    line-height: 1;
    margin-bottom: 24px;
}
.dvp-process-step h3 { color: #fff !important; font-size: 1.35em !important; margin: 0 0 14px !important; font-family: 'Playfair Display', serif !important; font-weight: 500 !important; }
.dvp-process-step p { color: rgba(255,255,255,.65); font-size: .95em; margin: 0; line-height: 1.75; }

/* ============= ZONES ============= */
.dvp-zones { background: var(--creme-fonce); padding: 120px 50px; text-align: center; }
.dvp-zones-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    max-width: 1200px;
    margin: 60px auto 0;
    background: var(--gris-clair);
    border: 1px solid var(--gris-clair);
}
.dvp-zone {
    background: var(--creme);
    padding: 26px 16px;
    color: var(--noir);
    font-weight: 500;
    transition: all .3s ease;
    font-size: .92em;
    border-bottom: 2px solid transparent;
}
.dvp-zone:hover { background: #fff; color: var(--or-fonce); border-bottom-color: var(--or); }

/* ============= TESTIMONIALS ============= */
.dvp-testimonials { padding: 130px 50px; background: var(--creme); }
.dvp-testimonial-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-top: 70px;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}
.dvp-testimonial { background: #fff; padding: 44px; position: relative; box-shadow: var(--shadow-sm); }
.dvp-testimonial::before {
    content: '"';
    position: absolute; top: 24px; right: 32px;
    font-family: 'Playfair Display', serif;
    font-size: 5em; color: var(--or); opacity: .25; line-height: 1;
}

.dvp-testimonial-stars { color: var(--or); font-size: 1em; margin-bottom: 22px; letter-spacing: 5px; }
.dvp-testimonial-text {
    color: var(--noir);
    font-style: italic;
    margin-bottom: 32px;
    font-size: 1.05em;
    line-height: 1.7;
    font-family: 'Playfair Display', serif !important;
    font-weight: 400;
}
.dvp-testimonial-author { display: flex; align-items: center; gap: 16px; padding-top: 22px; border-top: 1px solid var(--gris-clair); }
.dvp-testimonial-avatar {
    width: 48px; height: 48px; border-radius: 50%;
    background: var(--noir); color: var(--or);
    display: flex; align-items: center; justify-content: center;
    font-weight: 500; font-family: 'Playfair Display', serif;
}
.dvp-testimonial-info strong { color: var(--noir); display: block; font-size: .95em; font-family: 'Inter', sans-serif !important; font-weight: 600; }
.dvp-testimonial-info span { color: var(--gris); font-size: .8em; text-transform: uppercase; letter-spacing: .1em; }

/* ============= FAQ ============= */
.dvp-faq { padding: 130px 50px; background: var(--creme-fonce); }
.dvp-faq-list { max-width: 800px; margin: 60px auto 0; }
.dvp-faq-item { border-bottom: 1px solid var(--gris-clair); transition: all .3s ease; }
.dvp-faq-item summary {
    padding: 28px 0; cursor: pointer; list-style: none;
    font-weight: 500; color: var(--noir);
    display: flex; justify-content: space-between; align-items: center;
    font-size: 1.1em;
    font-family: 'Playfair Display', serif !important;
}
.dvp-faq-item summary::-webkit-details-marker { display: none; }
.dvp-faq-item summary::after { content: '+'; font-size: 1.6em; color: var(--or); transition: transform .3s ease; font-weight: 300; font-family: 'Inter', sans-serif !important; margin-left: 20px; }
.dvp-faq-item[open] summary::after { transform: rotate(45deg); }
.dvp-faq-item[open] summary { color: var(--or-fonce); }
.dvp-faq-content { padding: 0 0 32px; color: var(--gris); line-height: 1.8; }

/* ============= CTA BANNER (dark, premium) ============= */
.dvp-cta-banner {
    background:
        linear-gradient(135deg, rgba(20,20,20,.95) 0%, rgba(20,20,20,.85) 100%),
        url('https://images.unsplash.com/photo-1503328427499-d92d1ac3d174?w=1920&q=80') center/cover !important;
    background-color: var(--noir) !important;
    padding: 130px 50px !important;
    text-align: center;
    color: #fff !important;
    margin: 0 !important;
}
.dvp-cta-banner h2 {
    color: #fff !important;
    font-size: 3em !important;
    margin: 0 0 22px !important;
    font-family: 'Playfair Display', serif !important;
    font-weight: 500 !important;
    border: none !important;
}
.dvp-cta-banner h2 em { color: var(--or-clair); font-style: italic; }
.dvp-cta-banner p { font-size: 1.1em; margin-bottom: 44px; opacity: .85; color: #fff !important; font-weight: 300; }

/* ============= CONTENT (Services, Devis, Contact pages) ============= */
.entry-content > h2 { color: var(--noir); font-size: 2.2em; margin: 70px 0 24px; border: none; padding: 0; font-family: 'Playfair Display', serif !important; font-weight: 500; }
.entry-content > h3 { color: var(--noir); font-size: 1.35em; margin: 40px 0 16px; font-family: 'Playfair Display', serif !important; font-weight: 500; }
.entry-content p { color: var(--noir); line-height: 1.85; font-size: 1.05em; }
.entry-content > .wp-block-list { background: transparent; border: none; padding: 0 0 0 24px; margin: 24px 0; }
.entry-content > .wp-block-list li { margin-bottom: 14px; line-height: 1.8; color: var(--noir); }
.entry-content > .wp-block-list li::marker { color: var(--or); }

.entry-content a[href^="tel:"] { color: var(--or-fonce); font-weight: 500; }

/* ============= FOOTER (dark premium) ============= */
.site-footer { background: var(--noir) !important; color: rgba(255,255,255,.7) !important; padding: 0 !important; margin: 0 !important; }
.footer-widgets-container, .footer-widgets { background: var(--noir) !important; }

.footer-widgets {
    padding: 90px 50px 50px !important;
    max-width: none !important;
    margin: 0 !important;
}

.footer-widgets .inside-footer-widgets {
    display: grid !important;
    grid-template-columns: 1.5fr 1fr 1fr 1.3fr !important;
    gap: 60px !important;
    max-width: 1280px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

.footer-widgets .footer-widget-1, .footer-widgets .footer-widget-2,
.footer-widgets .footer-widget-3, .footer-widgets .footer-widget-4 {
    width: 100% !important; padding: 0 !important; margin: 0 !important; float: none !important;
}

.footer-widgets * { color: rgba(255,255,255,.65) !important; }
.footer-widgets h3 {
    color: #fff !important;
    font-family: 'Playfair Display', serif !important;
    font-weight: 500 !important;
    font-size: 1.2em !important;
    margin: 0 0 24px !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid rgba(201,169,97,.3) !important;
}
.footer-widgets strong { color: #fff !important; }
.footer-widgets a { color: rgba(255,255,255,.7) !important; text-decoration: none; }
.footer-widgets a:hover { color: var(--or) !important; }
.footer-widgets ul { list-style: none; padding: 0; margin: 0; }
.footer-widgets ul li { padding: 6px 0; }

/* Site info / copyright */
.site-info, .copyright-bar {
    background: rgba(0,0,0,.5) !important;
    color: rgba(255,255,255,.5) !important;
    padding: 28px 30px !important;
    text-align: center;
    font-size: .88em;
    border-top: 1px solid rgba(255,255,255,.05);
    margin: 0 !important;
}
.site-info *, .copyright-bar * { color: rgba(255,255,255,.5) !important; }
.site-info a, .copyright-bar a { color: var(--or) !important; text-decoration: none; }
.copyright-bar a[href*="generatepress"] { display: none !important; }
.dvp-custom-credit { color: rgba(255,255,255,.5); }
.dvp-custom-credit a { color: var(--or) !important; font-weight: 500; }

/* ============= FORMS ============= */
.wpcf7-form label {
    display: block; color: var(--noir);
    font-weight: 500; margin: 18px 0 8px;
    font-size: .82em;
    text-transform: uppercase; letter-spacing: .1em;
}
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"], .wpcf7-form select, .wpcf7-form textarea {
    width: 100%; padding: 16px 18px;
    border: 1px solid var(--gris-clair); border-radius: 0;
    font-size: 1em; background: #fff;
    transition: all .3s ease; box-sizing: border-box;
    font-family: 'Inter', sans-serif !important;
}
.wpcf7-form input:focus, .wpcf7-form select:focus, .wpcf7-form textarea:focus {
    border-color: var(--or); outline: none; background: var(--creme);
}
.wpcf7-form input[type="submit"] {
    background: var(--noir) !important; color: #fff !important;
    border: 1px solid var(--noir) !important;
    padding: 18px 44px !important; border-radius: 0 !important;
    font-weight: 500 !important; font-size: .9em !important;
    cursor: pointer !important; margin-top: 28px !important;
    text-transform: uppercase; letter-spacing: .15em;
    transition: all .3s ease;
}
.wpcf7-form input[type="submit"]:hover { background: var(--or) !important; color: var(--noir) !important; border-color: var(--or) !important; }

/* ============= RESPONSIVE ============= */
@media (max-width: 900px) {
    .dvp-hero h1 { font-size: 2.6em !important; }
    .dvp-hero { padding: 80px 20px 100px; }
    .inside-header { padding: 16px 20px !important; flex-wrap: wrap; }
    .dvp-stats { grid-template-columns: repeat(2, 1fr); margin: -50px 20px 60px; padding: 50px 30px; gap: 40px; }
    .dvp-stat-number { font-size: 2.6em; }
    .dvp-services-grid, .dvp-process-grid, .dvp-testimonial-grid { grid-template-columns: 1fr; }
    .dvp-zones-grid { grid-template-columns: repeat(2, 1fr); }
    .dvp-section { padding: 70px 20px; }
    .dvp-section h2 { font-size: 2em !important; }
    .dvp-cta-banner { padding: 80px 20px !important; }
    .dvp-cta-banner h2 { font-size: 2em !important; }
    .dvp-process { padding: 80px 20px; }
    .footer-widgets { padding: 60px 20px 40px !important; }
    .footer-widgets .inside-footer-widgets { grid-template-columns: 1fr !important; gap: 40px !important; }
    .main-navigation .main-nav > ul { justify-content: center !important; }
}

/* ============= FULL WIDTH OVERRIDE ============= */
.site, .grid-container, .grid-parent, .inside-content, .container,
#page, .site-content, .content-area, .inside-article {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
}

.entry-content, .post, .page, article {
    max-width: 100% !important;
    width: 100% !important;
}

/* Header inside content keeps a max-width for readability */
.inside-header {
    max-width: 100% !important;
    padding: 22px 60px !important;
}

/* Footer inside content full width */
.footer-widgets .inside-footer-widgets {
    max-width: 100% !important;
    padding: 0 60px !important;
}

/* Sections on home page should still keep readable max-width but breathe more */
.dvp-section {
    max-width: 1500px !important;
    padding: 110px 80px !important;
}

.dvp-process-grid, .dvp-testimonial-grid, .dvp-zones-grid {
    max-width: 1500px !important;
}

.dvp-faq-list { max-width: 900px !important; }

.dvp-stats {
    margin: -80px 100px 100px !important;
    max-width: none !important;
}

/* Hero is already full width edge to edge */
.dvp-hero, .dvp-process, .dvp-zones, .dvp-testimonials, .dvp-faq, .dvp-cta-banner {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
}

/* Service grid breathing more */
.dvp-services-grid {
    max-width: 1500px;
    margin: 60px auto 0 !important;
}

/* Better max widths for content pages */
body.page-template-default .entry-content > h2,
body.page-template-default .entry-content > h3,
body.page-template-default .entry-content > p,
body.page-template-default .entry-content > ul,
body.page-template-default .entry-content > ol {
    max-width: 900px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 30px;
    padding-right: 30px;
}

@media (max-width: 1100px) {
    .dvp-section { padding: 80px 40px !important; }
    .dvp-stats { margin: -60px 40px 80px !important; }
    .footer-widgets .inside-footer-widgets { padding: 0 30px !important; }
    .inside-header { padding: 20px 30px !important; }
}

@media (max-width: 768px) {
    .inside-header { padding: 16px 20px !important; }
    .footer-widgets .inside-footer-widgets { padding: 0 !important; }
    .dvp-stats { margin: -50px 20px 60px !important; padding: 50px 30px !important; }
}
/* ============= COMPREHENSIVE RESPONSIVE ============= */

/* ─── Large Desktop (1400px+) ─── */
@media (min-width: 1400px) {
    .dvp-hero h1 { font-size: 5em !important; }
    .dvp-section { padding: 130px 100px !important; }
}

/* ─── Standard Desktop (1100px - 1399px) ─── */
@media (max-width: 1399px) {
    .dvp-hero h1 { font-size: 3.8em !important; }
    .dvp-stat-number { font-size: 2.8em; }
    .footer-widgets .inside-footer-widgets { padding: 0 50px !important; }
}

/* ─── Tablet Landscape (900px - 1099px) ─── */
@media (max-width: 1099px) {
    .inside-header { padding: 18px 30px !important; flex-wrap: wrap; gap: 16px; }
    .site-branding { flex: 1 1 100%; text-align: center; }
    .main-navigation { flex: 1 1 100%; }
    .main-navigation .menu, .main-navigation .main-nav > ul { justify-content: center !important; flex-wrap: wrap; gap: 0; }
    .main-navigation .main-nav ul li a { padding: 10px 14px !important; font-size: .85em; }
    
    .dvp-hero { padding: 100px 30px 120px; }
    .dvp-hero h1 { font-size: 3em !important; }
    .dvp-hero-subtitle { font-size: 1.05em; }
    
    .dvp-stats { 
        margin: -60px 30px 80px !important; 
        padding: 50px 30px !important;
        gap: 30px !important;
    }
    .dvp-stat-number { font-size: 2.4em; }
    .dvp-stat-label { font-size: .72em; }
    
    .dvp-section { padding: 80px 40px !important; }
    .dvp-section h2 { font-size: 2.4em !important; }
    
    .dvp-services-grid, .dvp-process-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .dvp-zones-grid { grid-template-columns: repeat(3, 1fr) !important; }
    
    .dvp-process { padding: 100px 30px; }
    .dvp-process-grid { gap: 40px; }
    .dvp-process-number { font-size: 3.5em; }
    
    .dvp-testimonial-grid { grid-template-columns: 1fr 1fr !important; }
    .dvp-testimonial-grid > .dvp-testimonial:nth-child(3) { grid-column: 1 / -1; max-width: 50%; margin: 0 auto; }
    
    .dvp-cta-banner { padding: 100px 30px !important; }
    .dvp-cta-banner h2 { font-size: 2.4em !important; }
    
    .footer-widgets { padding: 70px 30px 50px !important; }
    .footer-widgets .inside-footer-widgets {
        grid-template-columns: 1fr 1fr !important;
        gap: 40px !important;
    }
}

/* ─── Tablet Portrait (700px - 899px) ─── */
@media (max-width: 899px) {
    .dvp-hero { padding: 80px 24px 100px; }
    .dvp-hero h1 { font-size: 2.6em !important; }
    .dvp-hero-badge { font-size: .7em; padding: 8px 18px; margin-bottom: 28px; }
    .dvp-hero-subtitle { font-size: 1em; margin-bottom: 36px; }
    .dvp-hero-cta { gap: 12px; margin-bottom: 40px; }
    .dvp-btn-primary, .dvp-btn-secondary { padding: 14px 30px; font-size: .85em; }
    .dvp-hero-trust { gap: 16px; font-size: .7em; flex-direction: column; }
    .dvp-hero-trust div:nth-child(even) { display: none; }
    
    .dvp-stats { 
        grid-template-columns: repeat(2, 1fr) !important;
        margin: -40px 20px 60px !important;
        padding: 40px 24px !important;
        gap: 30px !important;
    }
    .dvp-stat-number { font-size: 2.2em; }
    
    .dvp-section { padding: 60px 24px !important; }
    .dvp-section h2 { font-size: 1.9em !important; line-height: 1.2 !important; }
    .dvp-section-tag { padding-left: 0 !important; font-size: .7em; }
    .dvp-section-tag::before { display: none; }
    .dvp-section-intro { font-size: 1em; margin-bottom: 40px; }
    
    .dvp-services-grid, .dvp-process-grid { grid-template-columns: 1fr !important; gap: 1px !important; }
    .dvp-service-card { padding: 36px 28px; }
    .dvp-service-icon { font-size: 2em; margin-bottom: 20px; }
    .dvp-service-card h3 { font-size: 1.2em !important; }
    
    .dvp-zones-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .dvp-zones { padding: 60px 24px !important; }
    
    .dvp-process { padding: 70px 24px; }
    .dvp-process-grid { gap: 50px; margin-top: 50px; }
    .dvp-process-step { text-align: center; }
    .dvp-process-number { font-size: 3em; margin-bottom: 16px; }
    
    .dvp-testimonials { padding: 70px 24px; }
    .dvp-testimonial-grid { grid-template-columns: 1fr !important; gap: 24px !important; }
    .dvp-testimonial-grid > .dvp-testimonial:nth-child(3) { grid-column: 1; max-width: 100%; }
    .dvp-testimonial { padding: 32px 28px; }
    
    .dvp-faq { padding: 70px 24px; }
    .dvp-faq-item summary { font-size: 1em; padding: 22px 0; }
    
    .dvp-cta-banner { padding: 70px 24px !important; }
    .dvp-cta-banner h2 { font-size: 1.9em !important; }
    .dvp-cta-banner p { font-size: 1em; }
    
    .footer-widgets { padding: 60px 24px 40px !important; }
    .footer-widgets .inside-footer-widgets {
        grid-template-columns: 1fr !important;
        gap: 36px !important;
    }
    .footer-widgets h3 { font-size: 1.1em !important; }
    .site-info { padding: 22px 16px !important; font-size: .82em; line-height: 1.6; }
    
    .entry-content > h2 { font-size: 1.7em; margin: 50px 0 18px; }
    .entry-content > h3 { font-size: 1.2em; }
    .entry-content p { font-size: 1em; }
    
    /* Content pages */
    body.page-template-default .entry-content > h2,
    body.page-template-default .entry-content > h3,
    body.page-template-default .entry-content > p,
    body.page-template-default .entry-content > ul {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
    
    /* Forms responsive */
    .wp-block-columns { flex-direction: column !important; }
    .wp-block-column { flex-basis: 100% !important; width: 100% !important; }
}

/* ─── Mobile (< 700px) ─── */
@media (max-width: 699px) {
    .inside-header { padding: 14px 20px !important; }
    .site-branding .main-title { font-size: 1.2em !important; }
    .site-description { font-size: .75em; }
    .main-navigation .main-nav ul li a { padding: 8px 10px !important; font-size: .78em; letter-spacing: .05em; }
    
    .dvp-hero { padding: 70px 20px 90px; }
    .dvp-hero h1 { font-size: 2.1em !important; line-height: 1.1 !important; }
    .dvp-hero-badge { font-size: .65em; letter-spacing: .15em; padding: 6px 14px; margin-bottom: 24px; }
    .dvp-hero-subtitle { font-size: .95em; line-height: 1.6; }
    .dvp-hero-cta { flex-direction: column; align-items: stretch; gap: 10px; }
    .dvp-btn-primary, .dvp-btn-secondary { width: 100%; justify-content: center; padding: 14px 20px; font-size: .82em; }
    .dvp-hero-trust { display: none; }
    
    .dvp-stats {
        grid-template-columns: 1fr 1fr !important;
        margin: -30px 16px 50px !important;
        padding: 30px 20px !important;
        gap: 24px !important;
    }
    .dvp-stat-number { font-size: 1.9em; }
    .dvp-stat-label { font-size: .68em; letter-spacing: .12em; }
    
    .dvp-section { padding: 50px 20px !important; }
    .dvp-section h2 { font-size: 1.6em !important; }
    .dvp-section-intro { font-size: .95em; line-height: 1.65; }
    
    .dvp-service-card { padding: 28px 22px; }
    .dvp-service-card h3 { font-size: 1.1em !important; }
    .dvp-service-card p { font-size: .92em; line-height: 1.65; }
    .dvp-service-link { font-size: .75em; }
    
    .dvp-zones-grid { grid-template-columns: 1fr !important; }
    .dvp-zones { padding: 50px 20px !important; }
    .dvp-zone { padding: 18px 14px; font-size: .9em; }
    
    .dvp-process { padding: 60px 20px; }
    .dvp-process-grid { gap: 40px; }
    .dvp-process-number { font-size: 2.6em; }
    .dvp-process-step h3 { font-size: 1.1em !important; }
    .dvp-process-step p { font-size: .9em; }
    
    .dvp-testimonials { padding: 60px 20px; }
    .dvp-testimonial { padding: 28px 22px; }
    .dvp-testimonial-text { font-size: .95em; line-height: 1.65; }
    .dvp-testimonial::before { font-size: 3.5em; top: 12px; right: 22px; }
    
    .dvp-faq { padding: 60px 20px; }
    .dvp-faq-item summary { font-size: .95em; padding: 20px 0; }
    .dvp-faq-content { font-size: .9em; padding-bottom: 24px; }
    
    .dvp-cta-banner { padding: 60px 20px !important; }
    .dvp-cta-banner h2 { font-size: 1.6em !important; line-height: 1.2 !important; }
    .dvp-cta-banner p { font-size: .95em; }
    .dvp-cta-banner .dvp-hero-cta { flex-direction: column; align-items: stretch; }
    
    .footer-widgets { padding: 50px 20px 30px !important; }
    .footer-widgets h3 { font-size: 1em !important; padding-bottom: 12px !important; margin-bottom: 18px !important; }
    .footer-widgets p { font-size: .9em; }
    .footer-widgets ul li { padding: 4px 0; font-size: .9em; }
    
    .site-info, .copyright-bar { padding: 18px 14px !important; font-size: .78em !important; }
    
    .entry-content > h2 { font-size: 1.5em; margin: 40px 0 16px; }
    .entry-content > h3 { font-size: 1.1em; }
    
    /* WP CF7 forms */
    .wpcf7-form input[type="text"],
    .wpcf7-form input[type="email"],
    .wpcf7-form input[type="tel"],
    .wpcf7-form select,
    .wpcf7-form textarea { padding: 12px 14px; font-size: .95em; }
    .wpcf7-form input[type="submit"] { width: 100%; padding: 16px 20px !important; }
    .wpcf7-form label { font-size: .78em; }
}

/* ─── Small Mobile (< 380px) ─── */
@media (max-width: 379px) {
    .dvp-hero h1 { font-size: 1.85em !important; }
    .dvp-section h2 { font-size: 1.4em !important; }
    .dvp-cta-banner h2 { font-size: 1.4em !important; }
    .dvp-stat-number { font-size: 1.7em; }
    .inside-header { padding: 12px 16px !important; }
    .main-navigation .main-nav ul li a { padding: 6px 8px !important; font-size: .72em; }
}

/* ─── Mobile menu hamburger (GP) ─── */
@media (max-width: 768px) {
    .menu-toggle {
        background: var(--noir) !important;
        color: #fff !important;
        padding: 12px 20px !important;
        border: none !important;
        font-family: 'Inter', sans-serif !important;
        font-weight: 500 !important;
        text-transform: uppercase !important;
        letter-spacing: .1em !important;
        font-size: .85em !important;
        width: 100%;
    }
    .menu-toggle:hover, .menu-toggle:focus { color: var(--or) !important; background: var(--noir) !important; }
    
    .main-navigation .main-nav ul {
        flex-direction: column !important;
        width: 100% !important;
        background: var(--noir) !important;
    }
    .main-navigation .main-nav ul li { width: 100% !important; }
    .main-navigation .main-nav ul li a {
        color: rgba(255,255,255,.85) !important;
        padding: 16px 24px !important;
        border-bottom: 1px solid rgba(255,255,255,.05) !important;
        text-align: left !important;
        font-size: .9em !important;
    }
    .main-navigation .main-nav ul li a::after { display: none; }
    .main-navigation .main-nav ul li:hover > a,
    .main-navigation .main-nav ul li.current-menu-item > a {
        color: var(--or) !important;
        background: rgba(255,255,255,.03) !important;
    }
    
    /* Submenu in mobile menu */
    .main-navigation .menu .sub-menu {
        position: static !important;
        background: rgba(0,0,0,.3) !important;
        box-shadow: none !important;
    }
}

/* ─── Touch-friendly elements ─── */
@media (hover: none) and (pointer: coarse) {
    .dvp-faq-item summary { padding: 24px 16px !important; }
    .dvp-zone { padding: 22px 16px !important; }
    .dvp-service-link { padding: 8px 0 !important; }
}

/* ─── Reduced motion ─── */
@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
    .dvp-service-card:hover { transform: none !important; }
}

/* ============= FIX MOBILE BURGER MENU ============= */
@media (max-width: 768px) {
    /* Hide menu by default on mobile */
    .main-navigation .main-nav > ul,
    .main-navigation .menu {
        display: none !important;
        flex-direction: column !important;
        width: 100% !important;
        background: var(--noir) !important;
    }

    /* Show menu only when GeneratePress toggles it */
    .main-navigation.toggled .main-nav > ul,
    .main-navigation.toggled .menu,
    .main-nav.toggled > ul {
        display: flex !important;
    }

    /* Make sure burger button is styled */
    .menu-toggle,
    button.menu-toggle {
        display: block !important;
        background: var(--noir) !important;
        color: #fff !important;
        padding: 14px 20px !important;
        border: none !important;
        font-family: 'Inter', sans-serif !important;
        font-weight: 500 !important;
        text-transform: uppercase !important;
        letter-spacing: .15em !important;
        font-size: .85em !important;
        width: 100%;
        text-align: center;
        cursor: pointer;
    }
    .menu-toggle:hover,
    .menu-toggle:focus { 
        color: var(--or) !important; 
        background: var(--noir) !important; 
    }
    
    /* Burger icon styling */
    .menu-toggle .gp-icon { color: #fff !important; }
    .menu-toggle:hover .gp-icon { color: var(--or) !important; }

    /* Menu items in the burger */
    .main-navigation .main-nav ul li {
        width: 100% !important;
        background: transparent !important;
    }
    .main-navigation .main-nav ul li a {
        color: rgba(255,255,255,.85) !important;
        background: transparent !important;
        padding: 16px 24px !important;
        border-bottom: 1px solid rgba(255,255,255,.05) !important;
        text-align: left !important;
        font-size: .9em !important;
    }
    .main-navigation .main-nav ul li a::after { display: none; }
    .main-navigation .main-nav ul li:hover > a,
    .main-navigation .main-nav ul li.current-menu-item > a {
        color: var(--or) !important;
        background: rgba(255,255,255,.03) !important;
    }
    
    /* Submenu inside mobile */
    .main-navigation .main-nav ul .sub-menu {
        position: static !important;
        background: rgba(0,0,0,.3) !important;
        box-shadow: none !important;
        display: none !important;
    }
    .main-navigation .main-nav ul li.menu-item-has-children.sfHover > .sub-menu,
    .main-navigation .main-nav ul li:hover > .sub-menu,
    .main-navigation .main-nav ul .sub-menu.toggled-on {
        display: block !important;
    }
    .main-navigation .main-nav ul .sub-menu li a {
        padding: 14px 36px !important;
        font-size: .85em !important;
    }

    /* Make sure dropdown indicator works */
    .menu-item-has-children .dropdown-menu-toggle {
        display: inline-block !important;
        background: transparent !important;
        color: rgba(255,255,255,.6) !important;
    }
}

/* Hide burger on desktop */
@media (min-width: 769px) {
    .menu-toggle, button.menu-toggle { display: none !important; }
    .main-navigation .main-nav > ul { display: flex !important; }
}

/* ============= PREVENT HORIZONTAL OVERFLOW ============= */
html, body { overflow-x: hidden !important; max-width: 100vw !important; }
* { max-width: 100% !important; box-sizing: border-box !important; }
img, iframe, video { max-width: 100% !important; height: auto !important; }

/* Hero text wrap on small screens */
.dvp-hero h1, .dvp-section h2, .dvp-cta-banner h2 { word-wrap: break-word; overflow-wrap: break-word; }

/* Force grid items to not overflow */
.dvp-services-grid, .dvp-process-grid, .dvp-testimonial-grid, .dvp-zones-grid,
.footer-widgets .inside-footer-widgets, .dvp-stats {
    width: 100% !important;
    max-width: 100% !important;
}

/* Mobile padding safe-zone */
@media (max-width: 768px) {
    .dvp-hero, .dvp-process, .dvp-zones, .dvp-testimonials, .dvp-faq,
    .dvp-cta-banner, .dvp-section, .footer-widgets, .dvp-stats {
        max-width: 100vw !important;
        overflow: hidden;
    }
    .dvp-stats { margin-left: 16px !important; margin-right: 16px !important; width: calc(100% - 32px) !important; }
    .dvp-services-grid, .dvp-zones-grid { width: 100% !important; }
}

/* ============= MOBILE HEADER COMPACT ============= */
@media (max-width: 1099px) {
    .inside-header {
        padding: 14px 20px !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 12px !important;
    }
    .site-branding {
        flex: 1 1 auto !important;
        text-align: left !important;
    }
    .site-branding .main-title {
        font-size: 1.3em !important;
        line-height: 1.1 !important;
        margin: 0 !important;
    }
    .site-description {
        font-size: .72em !important;
        margin-top: 2px !important;
    }
    .main-navigation {
        flex: 0 0 auto !important;
        width: auto !important;
    }
}

@media (max-width: 768px) {
    .inside-header {
        padding: 12px 16px !important;
        gap: 10px !important;
    }
    .site-branding .main-title { font-size: 1.15em !important; }
    .site-description { font-size: .68em !important; }
    
    /* Burger button : compact, à droite, carré */
    .menu-toggle, button.menu-toggle {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        padding: 0 !important;
        background: var(--noir) !important;
        color: #fff !important;
        border: none !important;
        border-radius: 4px !important;
        cursor: pointer;
        flex: 0 0 auto !important;
    }
    .menu-toggle:hover, .menu-toggle:focus {
        background: var(--or) !important;
        color: var(--noir) !important;
    }
    .menu-toggle .gp-icon { display: flex !important; }
    .menu-toggle span:not(.gp-icon) { display: none !important; }
    
    /* Mobile menu items appear below header */
    .main-navigation .main-nav > ul,
    .main-navigation .menu {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        background: var(--noir) !important;
        flex-direction: column !important;
        margin: 0 !important;
        padding: 0 !important;
        z-index: 999;
        box-shadow: 0 8px 24px rgba(0,0,0,.2);
    }
    .main-navigation { position: relative !important; }
}

@media (max-width: 480px) {
    .inside-header { padding: 10px 14px !important; }
    .site-branding .main-title { font-size: 1.05em !important; }
    .site-description { font-size: .62em !important; }
}

/* ============= FIX MOBILE BURGER POSITION (absolute) ============= */
@media (max-width: 1099px) {
    .site-header { position: relative !important; }
    
    /* Place navigation absolutely in the top-right of header */
    body.home > div > header .main-navigation,
    body > div > header + .main-navigation,
    .site > .main-navigation,
    #site-navigation {
        position: absolute !important;
        top: 12px !important;
        right: 16px !important;
        background: transparent !important;
        z-index: 100 !important;
        width: auto !important;
    }
    
    /* When sticky, keep it visible */
    .site-header.sticky .main-navigation,
    .has-mobile-menu .main-navigation { 
        position: absolute !important;
    }
    
    /* Header gets minimum height for the burger */
    .inside-header { min-height: 64px !important; padding-right: 70px !important; }
}

@media (max-width: 768px) {
    /* Burger sized and positioned */
    .menu-toggle, button.menu-toggle {
        width: 44px !important; height: 44px !important;
        padding: 0 !important; margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: var(--noir) !important;
        color: #fff !important;
        border: none !important;
        border-radius: 4px !important;
    }
    
    /* Menu dropdown when toggled */
    .main-navigation.toggled .main-nav > ul,
    .main-nav.toggled > ul {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 80vw !important;
        max-width: 320px !important;
        background: var(--noir) !important;
        padding: 70px 0 30px !important;
        box-shadow: -8px 0 32px rgba(0,0,0,.3);
        overflow-y: auto;
        z-index: 9999;
    }
}

/* ============= REMOVE GAP BETWEEN HEADER AND HERO ============= */
.site-content, .content-area, main#main, article, .inside-article, .entry-content,
.page article, .post article, body.home main, body.page main {
    margin: 0 !important;
    padding: 0 !important;
}

.site > .site-content,
.site > main,
header + main,
header + .site-content,
header + div {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Remove top spacing on first child of hero/sections */
.dvp-hero { 
    margin-top: 0 !important; 
    margin-left: 0 !important; 
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Force entry-header hidden if visible */
body.home .entry-header,
body.page .entry-header,
.page-template-default .entry-header { display: none !important; }

/* Generate Press containers - remove top margin */
.generate-columns-container, .grid-container { margin-top: 0 !important; }

/* Site main */
.site-main { margin: 0 !important; padding: 0 !important; }

/* Hide breadcrumbs if present */
.rank-math-breadcrumb { display: none !important; }

/* ============= MOBILE PADDING FIX ============= */
@media (max-width: 768px) {
    .dvp-hero {
        padding: 60px 24px 80px !important;
    }
    .dvp-hero-cta {
        padding: 0 !important;
        gap: 12px !important;
    }
    .dvp-hero-cta a, .dvp-btn-primary, .dvp-btn-secondary {
        width: 100%;
        max-width: 360px;
        margin: 0 auto;
    }
    
    /* Sections internal padding */
    .dvp-section, .dvp-process, .dvp-zones, .dvp-testimonials, .dvp-faq, .dvp-cta-banner {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
    
    /* Stats card with proper margins */
    .dvp-stats {
        margin: -40px 24px 60px !important;
        padding: 36px 20px !important;
        width: calc(100% - 48px) !important;
    }
    
    /* Service cards padding */
    .dvp-service-card { padding: 32px 28px !important; }
    
    /* Footer */
    .footer-widgets { padding: 50px 24px 30px !important; }
    
    /* Make sure no element touches edges */
    .dvp-hero-content, .dvp-section > *, .dvp-cta-banner > * {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

@media (max-width: 480px) {
    .dvp-hero { padding: 50px 20px 70px !important; }
    .dvp-section, .dvp-process, .dvp-zones, .dvp-testimonials, .dvp-faq, .dvp-cta-banner {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    .dvp-stats {
        margin: -30px 20px 50px !important;
        width: calc(100% - 40px) !important;
        padding: 30px 16px !important;
    }
    .footer-widgets { padding: 40px 20px 24px !important; }
}
