/* ═══════════════════════════════════════════════════════════════
   SEO Local Cluster — .geo-* scoped styles
   Palette: #9ECA4F #7BA73B #5A9BD5 #D7EDB0 #2C3236 #F5F5F5
   ═══════════════════════════════════════════════════════════════ */

.geo-hero { padding: 60px 0 40px; background: #FFFFFF; }
.geo-hero-content { text-align: left; max-width: 900px; margin: 0 auto; }
.geo-hero-content h1 { font-family: 'Poppins', sans-serif; font-weight: 800; font-size: clamp(30px, 4.5vw, 46px); line-height: 1.1; color: #2C3236; margin: 20px 0 16px; letter-spacing: -0.01em; }
.geo-hero-sub { font-family: 'Open Sans', sans-serif; font-size: 18px; line-height: 1.55; color: #4A4A4A; margin: 0 0 28px; max-width: 700px; }
.geo-hero-ctas { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
.geo-hero-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 20px; margin-top: 24px; display: block; }
.geo-body-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 16px; margin: 28px 0; display: block; }

.geo-section-head { text-align: center; max-width: 760px; margin: 0 auto 36px; }
.geo-section-head h2 { font-family: 'Poppins', sans-serif; font-weight: 800; font-size: clamp(26px, 3.5vw, 38px); line-height: 1.2; color: #2C3236; margin: 16px 0 14px; }
.geo-section-head p { font-family: 'Open Sans', sans-serif; font-size: 17px; line-height: 1.6; color: #4A4A4A; margin: 0; }

.geo-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 28px; border-radius: 12px; font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 16px; text-decoration: none; transition: background 0.25s, transform 0.25s, box-shadow 0.25s; }
.geo-btn-primary { background: #9ECA4F; color: #FFFFFF; }
.geo-btn-primary:hover { background: #7BA73B; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(123,167,59,0.3); }
.geo-btn-cta { background: #FFFFFF; color: #2C3236; }
.geo-btn-cta:hover { background: #D7EDB0; transform: translateY(-2px); }

.geo-phone { display: inline-flex; align-items: center; gap: 8px; padding: 14px 22px; border-radius: 12px; background: transparent; border: 1.5px solid #5A9BD5; color: #5A9BD5; font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 16px; text-decoration: none; transition: background 0.25s, color 0.25s; }
.geo-phone:hover { background: #5A9BD5; color: #FFFFFF; }
.geo-phone i, .geo-phone svg { width: 18px; height: 18px; }
.geo-phone-inverse { border-color: rgba(255,255,255,0.5); color: #FFFFFF; }
.geo-phone-inverse:hover { background: rgba(255,255,255,0.15); color: #FFFFFF; }

.geo-marche-2026, .geo-zones-tension { padding: 48px 0; background: #FFFFFF; }
.geo-marche-2026 p, .geo-zones-tension p, .geo-estimation-section p, .geo-cas-recents p { font-family: 'Open Sans', sans-serif; font-size: 16.5px; line-height: 1.7; color: #2C3236; margin: 0 0 16px; }
.geo-marche-2026 ul, .geo-zones-tension ul, .geo-estimation-section ul { font-family: 'Open Sans', sans-serif; font-size: 16.5px; line-height: 1.7; color: #2C3236; padding-left: 24px; margin: 0 0 20px; }
.geo-marche-2026 ul li, .geo-zones-tension ul li, .geo-estimation-section ul li { margin-bottom: 6px; }
.geo-zones-tension h3 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 20px; color: #2C3236; margin: 32px 0 14px; }
.geo-zones-tension .container { max-width: 900px; }

.geo-departements { padding: 48px 0; background: #F5F5F5; }
.geo-territoires-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.geo-territoire-card { display: block; background: #FFFFFF; border: 1px solid #E5EBE0; border-radius: 18px; padding: 24px 22px; text-decoration: none; transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s; }
.geo-territoire-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(158,202,79,0.15); border-color: #9ECA4F; }
.geo-territoire-card h3 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 20px; color: #2C3236; margin: 0 0 8px; }
.geo-territoire-count { font-family: 'Poppins', sans-serif; font-weight: 800; font-size: 18px; color: #7BA73B; margin: 0 0 6px; }
.geo-territoire-tagline { font-family: 'Open Sans', sans-serif; font-size: 14px; color: #4A4A4A; margin: 0 0 14px; }
.geo-territoire-cta { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 14px; color: #5A9BD5; }
@media (max-width: 900px) { .geo-territoires-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .geo-territoires-grid { grid-template-columns: 1fr; } }

.geo-estimation-section { padding: 48px 0; background: #FFFFFF; }
.geo-cta-inline { text-align: center; margin: 24px 0 0; }

.geo-cas-recents { padding: 48px 0; background: #F5F5F5; }
.geo-cas-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 24px 0; }
.geo-cas-card { background: #FFFFFF; border: 1px solid #E5EBE0; border-radius: 18px; padding: 24px 22px; }
.geo-cas-quartier { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 15px; color: #7BA73B; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 14px; }
.geo-cas-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 0; padding: 12px 0; border-top: 1px solid #F0F2F4; border-bottom: 1px solid #F0F2F4; }
.geo-cas-metrics > div { text-align: center; }
.geo-cas-metrics strong { display: block; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 16px; color: #2C3236; }
.geo-cas-metrics span { font-family: 'Open Sans', sans-serif; font-size: 11px; color: #6C757D; }
.geo-cas-prix { text-align: center; padding: 14px 0; background: #D7EDB0; border-radius: 10px; margin: 12px 0; }
.geo-cas-prix span { display: block; font-family: 'Open Sans', sans-serif; font-size: 12px; color: #7BA73B; text-transform: uppercase; letter-spacing: 0.05em; }
.geo-cas-prix strong { display: block; font-family: 'Poppins', sans-serif; font-weight: 800; font-size: 24px; color: #2C3236; margin: 4px 0; }
.geo-cas-prix em { font-family: 'Open Sans', sans-serif; font-size: 13px; color: #4A4A4A; font-style: normal; }
.geo-cas-contexte { font-family: 'Open Sans', sans-serif; font-size: 14px; line-height: 1.55; color: #4A4A4A; margin: 0; }
.geo-cas-note { font-family: 'Open Sans', sans-serif; font-size: 14px; color: #6C757D; font-style: italic; text-align: center; margin-top: 20px; }
@media (max-width: 900px) { .geo-cas-grid { grid-template-columns: 1fr; } }

.geo-methode { padding: 48px 0; background: #FFFFFF; }
.geo-methode-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 24px 0; }
.geo-methode-step { background: #FFFFFF; border: 1px solid #E5EBE0; border-radius: 16px; padding: 24px 20px; text-align: center; position: relative; }
.geo-methode-num { display: inline-block; width: 44px; height: 44px; line-height: 44px; border-radius: 50%; background: #9ECA4F; color: #FFFFFF; font-family: 'Poppins', sans-serif; font-weight: 800; font-size: 20px; margin-bottom: 12px; }
.geo-methode-step h3 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 17px; color: #2C3236; margin: 0 0 10px; }
.geo-methode-step p { font-family: 'Open Sans', sans-serif; font-size: 14px; line-height: 1.55; color: #4A4A4A; margin: 0; }
@media (max-width: 900px) { .geo-methode-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .geo-methode-grid { grid-template-columns: 1fr; } }

.geo-pourquoi { padding: 48px 0; background: #F5F5F5; }
.geo-pourquoi-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.geo-pourquoi-card { background: #FFFFFF; border-radius: 18px; padding: 24px 22px; border-top: 4px solid #9ECA4F; }
.geo-pourquoi-card h3 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 18px; color: #2C3236; margin: 0 0 12px; }
.geo-pourquoi-card p { font-family: 'Open Sans', sans-serif; font-size: 15px; line-height: 1.55; color: #4A4A4A; margin: 0; }
@media (max-width: 900px) { .geo-pourquoi-grid { grid-template-columns: 1fr; } }

.geo-faq { padding: 48px 0; background: #FFFFFF; }
.geo-faq-list { max-width: 780px; margin: 0 auto; }
.geo-faq-item { border-top: 1px solid #E5EBE0; padding: 0; }
.geo-faq-item:last-child { border-bottom: 1px solid #E5EBE0; }
.geo-faq-item summary { list-style: none; cursor: pointer; padding: 20px 0; font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 17px; color: #2C3236; display: flex; justify-content: space-between; align-items: center; }
.geo-faq-item summary::after { content: "+"; font-size: 24px; color: #7BA73B; transition: transform 0.25s; }
.geo-faq-item[open] summary::after { content: "−"; }
.geo-faq-item summary::-webkit-details-marker { display: none; }
.geo-faq-body { padding: 0 0 20px; font-family: 'Open Sans', sans-serif; font-size: 15.5px; line-height: 1.65; color: #4A4A4A; }

.geo-cta-final { padding: 48px 0; background: #2C3236; text-align: center; }
.geo-cta-final h2 { font-family: 'Poppins', sans-serif; font-weight: 800; font-size: clamp(26px, 3.5vw, 38px); color: #FFFFFF; margin: 0 0 14px; }
.geo-cta-final p { font-family: 'Open Sans', sans-serif; font-size: 17px; color: rgba(255,255,255,0.78); margin: 0 0 28px; }
.geo-cta-final-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }

.geo-articles-blog { padding: 48px 0; background: #FFFFFF; }
.geo-articles-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
.geo-article-card { display: block; background: rgba(158,202,79,0.05); border: 1px solid rgba(158,202,79,0.25); border-radius: 14px; padding: 20px; text-decoration: none; transition: background 0.25s, transform 0.25s; }
.geo-article-card:hover { background: rgba(158,202,79,0.12); transform: translateY(-2px); }
.geo-article-badge { display: inline-block; font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 11px; color: #7BA73B; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 8px; }
.geo-article-card h3 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 17px; line-height: 1.35; color: #2C3236; margin: 0 0 10px; }
.geo-article-cta { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 14px; color: #5A9BD5; }
@media (max-width: 700px) { .geo-articles-grid { grid-template-columns: 1fr; } }

.geo-related-territoires { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.geo-related-card { display: inline-flex; align-items: center; padding: 10px 18px; background: #F5F5F5; border-radius: 999px; font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 14px; color: #2C3236; text-decoration: none; transition: background 0.25s; }
.geo-related-card:hover { background: #D7EDB0; }
.geo-related-hub { background: #9ECA4F; color: #FFFFFF; }
.geo-related-hub:hover { background: #7BA73B; color: #FFFFFF; }

/* DROM-COM specifics section — commit 2/2 */
.geo-drom-specificites { padding: 48px 0; background: #FFFFFF; }
.geo-drom-specificites .container { max-width: 900px; }
.geo-drom-specificites p, .geo-drom-specificites ul li { font-family: 'Open Sans', sans-serif; font-size: 16.5px; line-height: 1.7; color: #2C3236; }
.geo-drom-specificites p { margin: 0 0 16px; }
.geo-drom-specificites ul { padding-left: 24px; margin: 0 0 20px; }
.geo-drom-specificites ul li { margin-bottom: 8px; }
.geo-drom-specificites h3 { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 20px; color: #2C3236; margin: 32px 0 14px; padding-bottom: 8px; border-bottom: 2px solid rgba(158, 202, 79, 0.25); }
.geo-drom-specificites h3:first-child { margin-top: 0; }
