/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.6.1.1775940817
Updated: 2026-04-11 20:53:37

*/

/* ============================================
   PROGRESS IMMO — Feuille de style principale
   Style: moderne, epure, palette coral/orange
   ============================================ */

:root {
  --primary: #eb5757;
  --primary-dark: #c94343;
  --primary-btn: #c42f2f;   /* blanc dessus : 5,53:1 */
  --accent-btn:  #c2410c;   /* blanc dessus : 5,18:1 */
  --accent: #f2994a;
  --accent-light: #f5c360;
  --bg: #ffffff;
  --bg-soft: #faf7f4;
  --bg-muted: #f5f0ea;
  --text: #1e1e1e;
  --text-muted: #6b6b6b;
  --border: #eae4dc;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow-md: 0 8px 24px rgba(235,87,87,0.08);
  --shadow-lg: 0 20px 60px rgba(0,0,0,0.12);
  --radius: 14px;
  --radius-lg: 20px;
  --max-width: 1240px;
  --font: 'Inter', 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font); color: var(--text); background: var(--bg); line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }

/* HEADER */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,0.95); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; max-width: var(--max-width); margin: 0 auto; }
.logo { display: flex; align-items: center; gap: 12px; }
.logo img { height: 52px; width: auto; }
.nav { display: flex; gap: 32px; align-items: center; }
.nav a { font-weight: 500; font-size: 15px; color: var(--text); transition: color 0.2s; }
.nav a:hover, .nav a.active { color: var(--primary); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 24px; border-radius: var(--radius); font-weight: 600; font-size: 15px; border: none; cursor: pointer; transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, transform 0.2s; text-align: center; }
.btn-primary { background: linear-gradient(135deg, var(--primary-btn) 0%, var(--accent-btn) 100%); color: #fff; box-shadow: var(--shadow-md); }
/* Contraste AA : le blanc sur les couleurs de marque d'origine donnait 3,48:1 (rouge) et 2,23:1 (orange).
   Teintes assombries pour atteindre 5,5:1 et 5,2:1, sans changer l'identite visuelle. Correctif 19/09/2026. */
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(235,87,87,0.25); }
.btn-outline { background: transparent; color: var(--primary); border: 2px solid var(--primary); }
.btn-outline:hover { background: var(--primary); color: white; }
.btn-ghost { background: var(--bg-muted); color: var(--text); }
.btn-ghost:hover { background: var(--border); }
.mobile-toggle { display: none; background: none; border: none; font-size: 24px; cursor: pointer; color: var(--text); }

/* HERO */
.hero { position: relative; min-height: 640px; display: flex; align-items: center; padding: 80px 0 100px; overflow: hidden; }
.hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.6) 100%); }
.hero .container { position: relative; z-index: 1; }
.hero-eyebrow { display: inline-block; padding: 6px 14px; background: white; border-radius: 100px; font-size: 13px; font-weight: 600; color: var(--primary); margin-bottom: 20px; box-shadow: var(--shadow-sm); }
.hero h1 { font-size: clamp(32px, 5vw, 56px); font-weight: 800; letter-spacing: -1px; line-height: 1.1; max-width: 820px; margin-bottom: 20px; }
.hero h1 span { background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero p.lead { font-size: 19px; color: var(--text-muted); max-width: 640px; margin-bottom: 40px; }
.search-card { background: white; border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow-lg); max-width: 820px; }
.search-tabs { display: flex; gap: 4px; background: var(--bg-muted); padding: 4px; border-radius: var(--radius); margin-bottom: 20px; width: fit-content; }
.search-tabs button { padding: 10px 24px; border: none; background: transparent; border-radius: 10px; font-weight: 600; cursor: pointer; color: var(--text-muted); transition: background-color 0.2s, color 0.2s; }
.search-tabs button.active { background: white; color: var(--primary); box-shadow: var(--shadow-sm); }
.search-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 16px; align-items: end; }
.field label { display: block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); margin-bottom: 8px; }
.field input, .field select { width: 100%; padding: 14px 16px; border: 1.5px solid var(--border); border-radius: var(--radius); font-size: 15px; font-family: inherit; background: var(--bg-soft); transition: border-color 0.2s, box-shadow 0.2s; }
.field input:focus, .field select:focus { outline: none; border-color: var(--primary); background: white; }
.field.with-suggestions { position: relative; }
.suggestions { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: white; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-lg); max-height: 280px; overflow-y: auto; z-index: 50; display: none; }
.suggestions.open { display: block; }
.suggestions div { padding: 12px 16px; cursor: pointer; font-size: 15px; border-bottom: 1px solid var(--bg-muted); }
.suggestions div:hover { background: var(--bg-soft); color: var(--primary); }
.suggestions div:last-child { border-bottom: none; }
.search-form .btn { height: 52px; padding: 0 32px; }

/* SECTIONS */
section { padding: 100px 0; }
.section-head { text-align: center; max-width: 680px; margin: 0 auto 64px; }
.section-head .eyebrow, .eyebrow { display: inline-block; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: var(--primary); margin-bottom: 12px; }
.section-head h2 { font-size: clamp(28px, 3.5vw, 40px); font-weight: 800; letter-spacing: -0.5px; line-height: 1.2; margin-bottom: 16px; }
.section-head p { font-size: 17px; color: var(--text-muted); }

/* A PROPOS */
.about { background: var(--bg-soft); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.about-text h2 { font-size: 36px; letter-spacing: -0.5px; line-height: 1.2; margin-bottom: 20px; }
.about-text p { color: var(--text-muted); margin-bottom: 16px; font-size: 16px; }
.about-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 32px; }
.stat .num { display: block; font-size: 36px; font-weight: 800; background: linear-gradient(135deg, var(--primary), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat .label { font-size: 13px; color: var(--text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }
.about-visual { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); aspect-ratio: 4/5; background: url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?w=700&q=65&fm=webp&auto=format') center/cover; }

/* SERVICES */
.services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 24px; }
.service-card { background: white; padding: 32px; border-radius: var(--radius-lg); border: 1px solid var(--border); transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
.service-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: transparent; }
.service-icon { width: 56px; height: 56px; border-radius: 14px; background: linear-gradient(135deg, rgba(235,87,87,0.1) 0%, rgba(245,195,96,0.15) 100%); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; font-size: 26px; }
.service-card h3 { font-size: 20px; margin-bottom: 12px; font-weight: 700; }
.service-card p { color: var(--text-muted); font-size: 15px; }
/* .service-card-link — défini dans assets/pi-theme.css */

/* AVIS */
.reviews { background: var(--bg-soft); }
.reviews-header { display: flex; align-items: center; justify-content: center; gap: 24px; margin-bottom: 48px; flex-wrap: wrap; }
.google-badge { display: inline-flex; align-items: center; gap: 14px; background: white; padding: 14px 24px; border-radius: 100px; box-shadow: var(--shadow-md); }
.google-logo { width: 28px; height: 28px; background: conic-gradient(from 0deg, #4285f4, #34a853, #fbbc05, #ea4335, #4285f4); border-radius: 50%; position: relative; }
.google-logo::after { content: 'G'; position: absolute; inset: 3px; background: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-family: Arial; color: #4285f4; font-size: 14px; }
.google-rating-value { font-size: 28px; font-weight: 800; color: var(--text); line-height: 1; }
.google-rating-meta { display: flex; flex-direction: column; gap: 2px; }
.google-rating-meta .stars { color: #fbbc05; font-size: 16px; letter-spacing: 2px; }
.google-rating-meta .count { font-size: 13px; color: var(--text-muted); }
.reviews-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px,1fr)); gap: 24px; }
.review-card { background: white; padding: 28px; border-radius: var(--radius-lg); border: 1px solid var(--border); display: flex; flex-direction: column; gap: 16px; }
.review-head { display: flex; align-items: center; gap: 14px; }
.review-avatar { width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--accent)); color: white; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; }
.review-name { font-weight: 700; font-size: 15px; }
.review-date { font-size: 13px; color: var(--text-muted); }
.review-stars { color: #fbbc05; font-size: 16px; letter-spacing: 2px; }
.review-text { color: var(--text-muted); font-size: 15px; line-height: 1.6; }
.reviews-cta { text-align: center; margin-top: 40px; }

/* BLOG */
.blog-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: 28px; }
.blog-card { background: white; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--border); transition: transform 0.3s, box-shadow 0.3s; display: flex; flex-direction: column; }
.blog-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.blog-thumb { aspect-ratio: 16/10; background-size: cover; background-position: center; background-color: var(--bg-muted); }
.blog-body { padding: 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.blog-tag { align-self: flex-start; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--primary); background: rgba(235,87,87,0.08); padding: 4px 10px; border-radius: 100px; }
.blog-card h3 { font-size: 19px; font-weight: 700; line-height: 1.35; }
.blog-card p { color: var(--text-muted); font-size: 14px; flex: 1; }
.blog-card .read-more { color: var(--primary); font-weight: 600; font-size: 14px; display: inline-flex; align-items: center; gap: 6px; }
.blog-cta { text-align: center; margin-top: 48px; }

/* CTA */
.cta-banner { background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); color: white; text-align: center; padding: 80px 24px; border-radius: var(--radius-lg); max-width: calc(var(--max-width) - 48px); margin: 80px auto; }
.cta-banner h2 { font-size: clamp(28px, 4vw, 42px); font-weight: 800; margin-bottom: 16px; }
.cta-banner p { font-size: 18px; margin-bottom: 32px; opacity: 0.95; }
.cta-banner .btn { background: white; color: var(--primary); }
.cta-banner .btn:hover { background: var(--bg-soft); }

/* FOOTER */
.site-footer { background: #1e1e1e; color: #d1d1d1; padding: 80px 0 40px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: 48px; margin-bottom: 48px; }
.footer-brand img { width: 120px; height: auto; margin-bottom: 20px; }
.footer-brand p { color: #a0a0a0; font-size: 14px; line-height: 1.7; }
.footer-col h4 { font-size: 13px; text-transform: uppercase; letter-spacing: 1.5px; color: white; margin-bottom: 20px; font-weight: 700; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-col a { color: #a0a0a0; font-size: 14px; transition: color 0.2s; }
.footer-col a:hover { color: var(--accent-light); }
.footer-contact div { font-size: 14px; line-height: 1.7; margin-bottom: 10px; color: #a0a0a0; }
.footer-contact strong { color: white; display: block; font-weight: 600; }
.footer-bottom { border-top: 1px solid #2a2a2a; padding-top: 32px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; font-size: 13px; color: #777; }

/* PAGE HEADER */
.page-header { padding: 80px 0 60px; background: var(--bg-soft); text-align: center; }
.page-header h1 { font-size: clamp(32px, 4.5vw, 48px); font-weight: 800; letter-spacing: -0.5px; margin-bottom: 12px; }
.page-header p { font-size: 18px; color: var(--text-muted); max-width: 640px; margin: 0 auto; }

/* ARTICLE */
.article-page { max-width: 760px; margin: 0 auto; padding: 80px 24px; }
.article-page .back-link { display: inline-flex; align-items: center; gap: 6px; color: var(--primary); font-weight: 600; margin-bottom: 32px; font-size: 14px; }
.article-page .meta { display: flex; gap: 16px; font-size: 13px; color: var(--text-muted); margin-bottom: 16px; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; }
.article-page h1 { font-size: clamp(32px, 4vw, 44px); line-height: 1.2; letter-spacing: -0.5px; margin-bottom: 24px; }
.article-hero { aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 40px; background: var(--bg-muted); }
.article-content h2 { font-size: 26px; font-weight: 800; margin: 40px 0 16px; }
.article-content h3 { font-size: 20px; font-weight: 700; margin: 32px 0 12px; }
.article-content p { font-size: 17px; line-height: 1.8; color: #333; margin-bottom: 20px; }
.article-content ul, .article-content ol { padding-left: 24px; margin-bottom: 20px; color: #333; }
.article-content li { margin-bottom: 10px; line-height: 1.7; }

/* CONTACT */
.contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 64px; }
.contact-info { display: flex; flex-direction: column; gap: 28px; }
.info-block { background: var(--bg-soft); padding: 24px; border-radius: var(--radius); display: flex; gap: 16px; align-items: flex-start; }
.info-icon { width: 48px; height: 48px; border-radius: 12px; background: linear-gradient(135deg, rgba(235,87,87,0.1), rgba(245,195,96,0.15)); display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.info-block strong { display: block; margin-bottom: 4px; font-size: 15px; }
.info-block div { color: var(--text-muted); font-size: 14px; line-height: 1.6; }
.info-block a { color: var(--primary); font-weight: 600; }
.contact-form { background: white; border: 1px solid var(--border); padding: 36px; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.contact-form .field { margin-bottom: 20px; }
.contact-form textarea { width: 100%; padding: 14px 16px; border: 1.5px solid var(--border); border-radius: var(--radius); font-size: 15px; font-family: inherit; background: var(--bg-soft); min-height: 140px; resize: vertical; }
.contact-form textarea:focus { outline: none; border-color: var(--primary); background: white; }
.contact-form .btn { width: 100%; padding: 16px; font-size: 16px; }

/* RESPONSIVE */
@media (max-width: 900px) {
  .nav { display: none; }
  .mobile-toggle { display: block; }
  .nav.open { display: flex; flex-direction: column; position: absolute; top: 100%; left: 0; right: 0; background: white; padding: 24px; gap: 20px; border-bottom: 1px solid var(--border); box-shadow: var(--shadow-md); }
  .hero { padding: 60px 0 80px; min-height: auto; }
  .search-form { grid-template-columns: 1fr; }
  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  /* Image about réduite sur mobile : 400px suffisent, économise ~50 KiB */
  .about-visual { background-image: url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?w=400&q=60&fm=webp&auto=format'); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  section { padding: 70px 0; }
}
@media (max-width: 540px) {
  .footer-grid { grid-template-columns: 1fr; }
  .about-stats { grid-template-columns: 1fr 1fr; }
  .header-inner { padding: 14px 20px; }
  .logo img { height: 44px; }
}