/* ============================================================
   Ville article — styling for SEO local pages (article body)
   ============================================================ */

.ville-article {
    /* fond + chevauchement sur le hero, comme .child-section--first */
    background: linear-gradient(180deg, rgba(237, 247, 239, 1) 34%, rgba(255, 255, 255, 0) 100%);
    border-radius: 120px 120px 0 0;
    margin-top: -131px;
    position: relative;
    z-index: 2;
    padding: 80px 0 40px;
}
.ville-article__inner {
    max-width: 880px;
    margin: 0 auto;
    padding: 0 24px;
}

/* dégradé bleu (clim) — la classe is-*-gradient est sur le <main>, pas le body */
.is-blue-gradient .ville-article {
    background: linear-gradient(180deg, rgba(231, 240, 250, 1) 34%, rgba(255, 255, 255, 0) 100%);
}
/* dégradé orange (solaire) */
.is-orange-gradient .ville-article {
    background: linear-gradient(180deg, rgba(251, 240, 231, 1) 34%, rgba(255, 255, 255, 0) 100%);
}
.ville-article__content {
    font-family: 'Lato', sans-serif;
    font-size: 1.0625rem;
    line-height: 1.7;
    color: #1B1B1B;
}
.ville-article__content > p:first-child {
    font-size: 1.15rem;
    color: #2b2b2b;
}
.ville-article__content h2 {
    font-family: 'Alegreya', serif;
    font-size: clamp(1.65rem, 2.5vw, 2.15rem);
    line-height: 1.2;
    font-weight: 800;
    margin: 3rem 0 1rem;
    color: #1B1B1B;
    scroll-margin-top: 100px;
}
.ville-article__content h2:first-child {
    margin-top: 0;
}
.ville-article__content h3 {
    font-family: 'Alegreya', serif;
    font-size: 1.35rem;
    line-height: 1.3;
    font-weight: 700;
    margin: 2.25rem 0 0.75rem;
    color: #1B1B1B;
}
.ville-article__content p {
    margin: 0 0 1.2rem;
}
.ville-article__content a {
    color: var(--pillar-green, #69B578);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s;
}
.ville-article__content a:hover {
    color: #070707;
}
.is-blue-gradient .ville-article__content a {
    color: var(--pillar-blue, #24A4FF);
}
.is-orange-gradient .ville-article__content a {
    color: var(--pillar-orange, #FF934F);
}
.ville-article__content ul,
.ville-article__content ol {
    margin: 0 0 1.4rem;
    padding-left: 1.5rem;
}
.ville-article__content li {
    margin-bottom: 0.5rem;
}
.ville-article__content li > p {
    margin: 0;
}
.ville-article__content strong {
    font-weight: 700;
    color: #111;
}
.ville-article__content hr {
    border: 0;
    border-top: 1px solid #e3e3e3;
    margin: 2.5rem 0;
}

/* Tableaux de prix */
.ville-article__content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0 2rem;
    font-size: 0.97rem;
    background: #fafbfc;
    border: 1px solid #e1e4e8;
    border-radius: 8px;
    overflow: hidden;
}
.ville-article__content thead,
.ville-article__content tr:first-child {
    background: #f1f4f7;
}
.ville-article__content th,
.ville-article__content td {
    padding: 0.85rem 1rem;
    text-align: left;
    border-bottom: 1px solid #e1e4e8;
    vertical-align: top;
}
.ville-article__content th p,
.ville-article__content td p {
    margin: 0;
}
.ville-article__content tr:last-child td {
    border-bottom: 0;
}

/* Variantes de teinte du H2 selon service */
.is-blue-gradient .ville-article__content h2 { border-left: 4px solid var(--pillar-blue, #24A4FF); padding-left: 0.85rem; }
.is-green-gradient .ville-article__content h2 { border-left: 4px solid var(--pillar-green, #69B578); padding-left: 0.85rem; }
.is-orange-gradient .ville-article__content h2 { border-left: 4px solid var(--pillar-orange, #FF934F); padding-left: 0.85rem; }

@media (max-width: 991px) {
    .ville-article {
        border-radius: 60px 60px 0 0;
        margin-top: -80px;
        padding: 60px 0 40px;
    }
    .ville-article__inner { padding: 0 40px; }
}
@media (max-width: 640px) {
    .ville-article { padding: 40px 0 32px; border-radius: 40px 40px 0 0; margin-top: -60px; }
    .ville-article__inner { padding: 0 20px; }
    .ville-article__content { font-size: 1rem; }
    .ville-article__content table { font-size: 0.9rem; }
    .ville-article__content th, .ville-article__content td { padding: 0.6rem 0.7rem; }
}
