/* Toiture Cognacaise — styles consolidés */
:root {
  --accent: #007e8a;
  --navy: #062b4a;
  --soft: #f0f7fa;
  --text: #20262d;
  --muted: #4b4d50;
  --border: #dce9ef;
  --shadow: 0 8px 26px rgba(30,35,40,.07);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Arial,Helvetica,sans-serif; background: #fff; color: var(--text); line-height: 1.55; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button,input,select,textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
[id] { scroll-margin-top: 140px; }
.wrap { width: min(1180px,calc(100% - 42px)); margin-inline: auto; }
.narrow,.legal-content { max-width: 900px; }
.legal-content { margin-inline: auto; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 5000; padding: 10px; background: #fff; color: #111; }
.skip-link:focus { left: 8px; }
.hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Navigation */
.topbar { background: #edf5f8; color: #25465a; font-size: .86rem; border-bottom: 1px solid var(--border); }
.topbar .wrap { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar strong { color: var(--accent); }
.site-header { position: sticky; top: 0; z-index: 1000; background: #fff; border-bottom: 1px solid var(--border); box-shadow: 0 3px 16px rgba(0,0,0,.04); }
.nav { height: 124px; display: flex; align-items: center; gap: 22px; }
.brand { display: flex; align-items: center; flex: 0 0 auto; margin-right: auto; }
.brand img { width: 200px; height: 116px; object-fit: contain; }
.menu { display: flex; align-items: center; gap: 20px; color: #252a30; font-size: .94rem; font-weight: 600; }
.menu a { padding: 12px 0; border-bottom: 2px solid transparent; }
.menu a:hover,.menu a.active { color: var(--accent); border-bottom-color: var(--accent); }
.menu .menu-contact { padding: 12px 19px; border-bottom: 0; border-radius: 6px; background: var(--accent); color: #fff; }
.menu-button { display: none; width: 48px; height: 48px; align-items: center; justify-content: center; border: 1px solid #d9d5ce; border-radius: 4px; background: none; color: #252a30; font-size: 1.7rem; cursor: pointer; }

/* Titres, actions et accueil */
.buttons { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 25px; }
.btn { min-height: 50px; max-width: 100%; display: inline-flex; align-items: center; justify-content: center; padding: 12px 25px; border: 1px solid var(--accent); border-radius: 6px; background: var(--accent); color: #fff; font-weight: 700; text-align: center; line-height: 1.4; transition: background .2s ease; }
.btn:hover,.menu .menu-contact:hover { background: var(--navy); color: #fff; }
.btn.outline { border-color: var(--accent); color: var(--accent); background: #fff; }
.btn.outline:hover { background: #e5f4f6; color: var(--navy); }
.hero { background: linear-gradient(120deg,#f1f8fb 0%,#fff 70%,#e5f4f6 100%); }
.hero .wrap { display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; padding-block: 60px; }
.hero-copy { max-width: 790px; }
.hero h1 { margin: 0 0 18px; max-width: 720px; color: var(--navy); font-size: clamp(2.8rem,4.4vw,4.6rem); line-height: 1.08; letter-spacing: -.035em; }
.hero h1 span { color: var(--accent); }
.hero p { max-width: 760px; color: var(--muted); font-size: 1.08rem; line-height: 1.65; }
.hero .hero-kicker,.hero-kicker { display: inline-flex; margin: 0 0 15px; color: var(--accent); font-size: .82rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.hero-benefits { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 27px 0; max-width: 680px; }
.hero-benefits div { display: flex; align-items: center; gap: 9px; font-weight: 600; font-size: .91rem; }
.hero-benefits b { width: 24px; height: 36px; flex: 0 0 24px; display: grid; place-items: center; color: var(--accent); font-size: 1.35rem; }
.hero-photo { margin: 0; }
.hero-photo img { width: 100%; height: 390px; object-fit: cover; border-radius: 18px; box-shadow: 0 16px 40px rgba(6,43,74,.12); }
.section { padding: 64px 0; }
.section.soft,.page-hero,.info-strip,.agency-faq { background: var(--soft); }
.section.dark { background: #fff; color: var(--text); }
.section-head { text-align: center; max-width: 780px; margin: 0 auto 34px; }
.section-head h2,.why h2 { color: var(--navy); font-size: clamp(1.9rem,3.2vw,2.8rem); line-height: 1.2; margin: 4px 0; }
.section-head p { color: var(--muted); }
.section p,.section li { color: var(--muted); }
.eyebrow { color: var(--accent); font-weight: 700; font-size: .8rem; letter-spacing: .07em; }
.section .eyebrow { color: var(--accent); }
.page-hero { padding: 54px 0; }
.page-hero h1 { max-width: 850px; margin: 0; color: var(--navy); font-size: clamp(2.2rem,4.4vw,3.8rem); line-height: 1.12; }
.page-hero p { max-width: 760px; color: var(--muted); }
.service-seo-hero { min-height: 430px; display: flex; align-items: center; }
.service-seo-hero .wrap { max-width: 950px; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; padding-block: 16px 12px; font-size: .92rem; }
.breadcrumbs a { color: var(--accent); }
.breadcrumbs span[aria-current=page] { color: var(--muted); }

/* Prestations, déroulement et photos */
.services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.service-card { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: #fff; }
.service-card:hover { border-color: var(--accent); box-shadow: var(--shadow); }
.service-card img { width: 100%; height: auto; min-height: 175px; max-height: 210px; aspect-ratio: 3/2; object-fit: cover; object-position: center; }
.service-card .body { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.service-card .icon { display: none; }
.service-card h3,.services-all h2 { color: var(--navy); font-size: 1.25rem; margin: 5px 0; }
.service-card p { color: var(--muted); font-size: .9rem; }
.service-card a { color: var(--accent); font-weight: 700; font-size: .95rem; margin-top: auto; padding-top: 12px; }
.services-more { text-align: center; margin-top: 30px; }
.why { display: grid; grid-template-columns: 1fr 1.1fr; gap: 55px; align-items: center; }
.why h3 { color: var(--accent); margin-top: 2px; }
.why img { height: 405px; width: 100%; object-fit: cover; box-shadow: var(--shadow); }
.checks { display: grid; gap: 12px; margin: 25px 0; }
.check::before { content: "✓"; color: var(--accent); font-weight: 900; margin-right: 10px; }
.process-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 15px; }
.process-card { min-height: 205px; padding: 23px 17px; background: #fff; border: 1px solid var(--border); border-radius: 8px; }
.process-card h3 { margin-top: 0; color: var(--accent); }
.process-card p { color: #333; }
.before-after { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.before-after figure { margin: 0; position: relative; }
.before-after img { height: 370px; width: 100%; object-fit: cover; }
.before-after figcaption { position: absolute; top: 12px; left: 12px; padding: 8px 12px; background: #111; color: #fff; font-weight: 900; }
.before-after figure:last-child figcaption { background: var(--accent); }
.gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.gallery img { height: 300px; width: 100%; object-fit: cover; }
.diagnostic-section { background: var(--soft); }
.diagnostic-highlight { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr); gap: 36px; align-items: center; }
.diagnostic-highlight figure { margin: 0; background: #fff; box-shadow: 0 16px 40px rgba(0,0,0,.12); }
.diagnostic-highlight img { width: 100%; max-height: 560px; object-fit: cover; }
.diagnostic-highlight figcaption { padding: 14px 18px; color: var(--muted); font-size: .95rem; line-height: 1.55; }
.diagnostic-highlight .eyebrow { font-weight: 800; letter-spacing: .1em; font-size: .78rem; }
.diagnostic-photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; background: #fff; }
.diagnostic-photo-pair img { height: 420px; max-height: none; object-fit: cover; }
.chantier-avant-gallery { background: var(--soft); }
.chantier-avant-gallery>.wrap>p { max-width: 850px; }
.photo-grid-four { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin-top: 24px; }
.project-photo { margin: 0; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); }
.project-photo img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.project-photo figcaption { padding: 12px 14px; font-size: .92rem; line-height: 1.45; color: var(--muted); }

/* Pages détaillées, FAQ et liens */
.content-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 35px; }
.box { padding: 30px; background: #fff; border: 1px solid var(--border); border-radius: 10px; }
.quote-card { padding: 29px; text-align: center; background: #fff; border: 1px solid var(--border); border-radius: 10px; }
.quote-card h2 { font-size: 1.7rem; line-height: 1.1; }
.seo-service-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(280px,.75fr); gap: 42px; align-items: start; }
.seo-content-block { padding: 0 0 22px; margin: 0 0 24px; border-bottom: 1px solid var(--border); }
.seo-content-block h2,.faq-section h2,.related-links h2 { margin-top: 0; }
.seo-content-block p { font-size: 1.05rem; line-height: 1.8; }
.seo-content-block p+p { margin-top: .85rem; }
.seo-sidebar { position: sticky; top: 140px; display: grid; gap: 22px; }
.seo-sidebar>img { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: 12px; }
.related-links { background: var(--soft); border: 1px solid var(--border); padding: 22px; border-radius: 12px; }
.related-links a { display: block; padding: 10px 0; border-bottom: 1px solid var(--border); color: var(--accent); }
.related-links a:last-child { border-bottom: 0; }
.faq-section details { background: var(--soft); border: 1px solid var(--border); border-radius: 10px; margin: 12px 0; padding: 0 18px; }
.faq-section summary { cursor: pointer; font-weight: 700; padding: 18px 28px 18px 0; color: var(--text); }
.faq-section details p { margin: 0; padding: 0 0 18px; color: var(--muted); line-height: 1.7; }
.faq-home .faq-section { max-width: 900px; margin-inline: auto; }
.agency-expert { background: #fff; }
.agency-expert h2,.agency-faq h2 { font-size: clamp(1.75rem,3vw,2.45rem); line-height: 1.2; margin: 0 0 18px; }
.agency-expert p { font-size: 1.04rem; line-height: 1.8; }
.agency-faq .faq-intro { color: var(--muted); margin: 0 0 22px; font-size: 1rem; }
.agency-faq details { background: #fff; border-radius: 12px; box-shadow: 0 4px 14px rgba(0,0,0,.04); }
.agency-faq summary { font-size: 1.02rem; line-height: 1.45; position: relative; padding-right: 34px; }
.agency-faq summary::after { content: "+"; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; color: var(--accent); font-weight: 700; }
.agency-faq details[open] summary::after { content: "−"; }
.related-services h2 { text-align: center; margin-bottom: 24px; }
.related-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.related-card { display: flex; flex-direction: column; justify-content: space-between; min-height: 125px; padding: 22px; border-radius: 16px; background: #fff; border: 1px solid var(--border); box-shadow: var(--shadow); transition: box-shadow .2s ease; }
.related-card:hover { box-shadow: 0 12px 32px rgba(0,0,0,.12); }
.related-card strong { color: var(--text); }
.related-card span { margin-top: 18px; font-weight: 700; color: var(--accent); }
.service-alert { padding: 12px; border-left: 4px solid var(--accent); background: var(--soft); }
.legal-content h2 { margin-top: 28px; color: var(--accent); }
.legal-content a:not(.btn) { text-decoration: underline; }

/* Formulaire */
.form { display: grid; gap: 14px; }
.form label { font-weight: 700; }
.form input,.form select,.form textarea { width: 100%; padding: 13px; border: 1px solid #ccc; margin-top: 6px; font-size: 16px; }
.form textarea { min-height: 145px; }
.form textarea::placeholder { color: #59646b; }
.form .consent { display: flex; align-items: flex-start; gap: 10px; font-size: .9rem; font-weight: 400; line-height: 1.45; }
.form .consent input { width: auto; margin: 4px 0 0; flex: 0 0 auto; }
.form .consent a { text-decoration: underline; color: var(--accent); font-weight: 700; }

/* Vidéos, entretien et recherche UV */
.video-projects { background: #fff; color: var(--text); }
.video-projects .section-head { max-width: 820px; }
.video-project-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; align-items: start; max-width: 920px; margin-inline: auto; }
.video-project-card { overflow: hidden; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.video-frame { display: flex; justify-content: center; background: #050607; }
.video-frame video { display: block; width: 100%; max-width: 430px; aspect-ratio: 9/16; background: #000; object-fit: contain; }
.video-project-content { padding: 22px 24px 26px; }
.video-project-content h3 { margin: 0 0 10px; font-size: 1.3rem; }
.video-project-content p { margin: 0; line-height: 1.65; }
.entretien-plans,.uv-plans { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.entretien-plans .box,.uv-plan { display: flex; flex-direction: column; }
.entretien-plans h3 { font-size: 1.8rem; margin: 0 0 12px; }
.entretien-plans .btn,.uv-plan .btn { margin-top: auto; }
.section .entretien-price { font-size: 1.4rem; font-weight: 800; color: var(--accent); margin-bottom: 0; }
.uv-diagnostic { background: #fff; }
.uv-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin: 28px 0; }
.uv-steps article { padding: 20px; background: var(--soft); border-radius: 8px; }
.uv-steps h3 { margin: 0; color: var(--accent); }
.uv-diagnostic-visual { width: 100%; max-width: 100%; margin: 24px 0; }
.uv-diagnostic-visual img,.service-card img[src*="recherche-fuite-traceur"] { width: 100%; height: auto; min-height: 0; max-height: none; aspect-ratio: 1672/941; object-fit: contain; }
.uv-diagnostic-visual img { border-radius: 12px; }
.uv-diagnostic-visual figcaption { margin-top: 10px; font-size: .85rem; color: var(--muted); line-height: 1.5; }
.section .uv-price { color: var(--accent); font-size: 1.35rem; }
.uv-price strong { font-size: 2.5rem; }
.uv-plan { border-radius: 12px; }
.uv-plan h3 { color: var(--navy); font-size: 1.6rem; margin: 0 0 12px; }
.uv-plan .uv-price { margin: 4px 0; }
.section .uv-duration { font-weight: 800; color: var(--navy); }
.uv-plan ul { padding-left: 22px; }
.uv-plan li { margin-bottom: 10px; }
.uv-plan-note { margin: 24px auto 0; max-width: 900px; }
#conditions-forfaits h3 { margin-top: 28px; color: var(--navy); }

/* Urgences et avis Google */
.urgent-callout { background: #e5f4f6; border-bottom: 1px solid #c6e5e9; color: var(--navy); }
.urgent-callout .wrap { display: flex; align-items: center; gap: 24px; padding-block: 16px; }
.urgent-callout p { margin: 0; flex: 1; font-size: .95rem; line-height: 1.6; }
.urgent-callout .btn { flex-shrink: 0; }
.google-review { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 32px; border: 1px solid var(--border); border-radius: 14px; background: #fff; }
.google-review h2 { margin: 0 0 10px; color: var(--navy); }
.google-review p { margin: 0; max-width: 680px; }
.google-review .btn { flex-shrink: 0; }
.google-label { display: block; color: #4285f4; font-size: .9rem; font-weight: 700; margin-bottom: 8px; }

/* Coordonnées et pied de page */
.info-strip { color: #252a30; border-top: 1px solid var(--border); padding: 25px 0; }
.info-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.info-item { display: flex; gap: 12px; align-items: center; min-width: 0; border-right: 1px solid var(--border); padding-right: 12px; }
.info-item:last-child { border-right: 0; }
.info-item div { overflow-wrap: anywhere; }
.info-item .round { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 50%; background: #e0f0f3; color: var(--accent); display: grid; place-items: center; font-size: 1.2rem; }
.info-item small { display: block; color: var(--accent); text-transform: uppercase; font-weight: 900; }
.footer { background: var(--navy); color: #e2e5e7; padding: 48px 0 86px; }
.footer-grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr 1fr; gap: 28px; }
.footer h3 { color: #fff; }
.footer-brand img { width: 220px; height: auto; max-width: 100%; margin-bottom: 18px; padding: 8px; border-radius: 12px; background: #fff; object-fit: contain; }
.footer-brand p { max-width: 360px; margin: 0; }
.footer a:hover { text-decoration: underline; }
.mobile-actions { display: none; }

/* Tablettes */
@media (max-width: 1000px) {
  .menu-button { display: flex; }
  .menu { display: none; position: absolute; top: 124px; left: 0; right: 0; max-height: calc(100dvh - 124px); overflow: auto; flex-direction: column; align-items: stretch; gap: 6px; padding: 18px 24px; background: #fff; border-bottom: 1px solid var(--border); }
  .menu.open { display: flex; }
  .menu a { padding: 13px 0; }
  .menu .menu-contact { text-align: center; margin-top: 8px; }
  .hero .wrap { grid-template-columns: 1fr 1fr; gap: 28px; }
  .hero-benefits { grid-template-columns: 1fr; }
  .services-grid,.process-grid,.info-grid,.footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .why,.content-grid { grid-template-columns: 1fr; }
  .mobile-actions { position: fixed; left: 7px; right: 7px; bottom: 7px; z-index: 2000; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; padding: 5px; border: 1px solid var(--border); border-radius: 10px; background: #fff; box-shadow: 0 3px 16px rgba(0,0,0,.1); }
  .mobile-actions a { padding: 11px 4px; text-align: center; color: #252a30; font-size: .78rem; font-weight: 900; border-radius: 6px; }
  .mobile-actions .devis { background: var(--accent); color: #fff; }
  .mobile-actions .whatsapp { background: #e5f4f6; }
  body { padding-bottom: 70px; }
}
@media (max-width: 900px) {
  .seo-service-layout { grid-template-columns: 1fr; }
  .seo-sidebar { position: static; }
  .photo-grid-four { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 800px) {
  .diagnostic-highlight { grid-template-columns: 1fr; gap: 24px; }
  .diagnostic-highlight img { max-height: 420px; }
  .diagnostic-highlight>div { padding-inline: 4px; }
}
@media (max-width: 760px) {
  .related-grid,.video-project-grid { grid-template-columns: 1fr; }
  .related-card { min-height: auto; }
  .video-project-grid { max-width: 460px; }
  .video-project-content { padding: 20px; }
  .google-review { flex-direction: column; align-items: flex-start; padding: 24px; }
  .google-review .btn { width: 100%; }
}
@media (max-width: 700px) {
  .entretien-plans,.uv-plans { grid-template-columns: 1fr; }
  .box,.entretien-plans .box,.uv-plan { padding: 24px; }
  .btn { white-space: normal; }
  .urgent-callout .wrap { display: block; }
  .urgent-callout .btn { margin-top: 12px; width: 100%; }
  .hero .wrap { gap: 18px; }
}
/* Téléphones */
@media (max-width: 640px) {
  .topbar { display: none; }
  .wrap { width: calc(100% - 26px); }
  [id] { scroll-margin-top: 112px; }
  .nav { height: 100px; }
  .brand img { width: 158px; height: 92px; }
  .menu { top: 100px; max-height: calc(100dvh - 100px); }
  .hero .wrap { grid-template-columns: 1fr; padding-block: 36px; }
  .hero h1 { font-size: 2.4rem; }
  .hero-benefits { grid-template-columns: 1fr 1fr; gap: 12px; }
  .hero-benefits div { font-size: .83rem; }
  .hero-photo img { height: 230px; }
  .buttons { display: grid; grid-template-columns: 1fr; gap: 11px; }
  .buttons .btn { width: 100%; }
  .section { padding: 42px 0; }
  .services-grid,.process-grid,.before-after,.info-grid,.gallery,.uv-steps,.footer-grid { grid-template-columns: 1fr; }
  .service-card img { min-height: 205px; max-height: 235px; }
  .service-card img[src*="recherche-fuite-traceur"] { min-height: 0; max-height: none; }
  .why img,.before-after img { height: 300px; }
  .page-hero { padding: 38px 0; }
  .service-seo-hero { min-height: 0; }
  .info-item { border: 0; }
  .agency-expert h2,.agency-faq h2 { font-size: 1.75rem; }
  .agency-expert p,.faq-section details p { font-size: 1rem; line-height: 1.7; }
  .agency-faq details { padding-inline: 15px; }
  .agency-faq summary { padding-block: 16px; }
  .footer-brand img { width: 180px; }
}
@media (max-width: 560px) {
  .diagnostic-photo-pair { grid-template-columns: 1fr; }
  .diagnostic-photo-pair img { height: 310px; max-height: none; }
}
@media (max-width: 520px) {
  .photo-grid-four { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  .hero h1 { font-size: 2.1rem; }
  .wrap { width: calc(100% - 24px); }
  .mobile-actions a { font-size: .72rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none; }
}

/* V13 bilingual language switch */
.lang-switch{display:flex;align-items:center;gap:.35rem;margin-left:.5rem;font-weight:800;white-space:nowrap}.lang-switch a{padding:.35rem .45rem;border-radius:.35rem;text-decoration:none}.lang-switch a.active{background:#0d2f4f;color:#fff}.lang-switch span{opacity:.45}@media(max-width:900px){.lang-switch{order:2;margin-left:auto}.site-header .nav{gap:.5rem}.menu-button{order:3}.menu{order:4}}
/* V14 — owner portrait, aligned with Toiture Cognacaise navy/teal identity */
.owner-intro img,.why img{border-radius:18px;border:1px solid rgba(0,126,138,.18);box-shadow:0 18px 45px rgba(6,43,74,.16)}
.owner-intro .eyebrow{color:var(--accent);font-weight:900;letter-spacing:.12em;font-size:.78rem}
@media(max-width:700px){.owner-intro img,.why img{height:auto;aspect-ratio:3/2;object-fit:cover}}


/* V15 - homepage conversion & owner identity */
.hero-owner{position:relative;overflow:hidden;border-radius:20px;background:#eaf5f8}
.hero-owner>img:first-child{height:430px;object-fit:cover;object-position:center 30%;border-radius:20px}
.hero-brand-badge{position:absolute;right:16px;bottom:16px;width:150px;padding:9px 12px;background:rgba(255,255,255,.94);border:1px solid rgba(6,43,74,.10);border-radius:12px;box-shadow:0 10px 28px rgba(6,43,74,.16)}
.hero-brand-badge img{display:block;width:100%;height:auto!important;object-fit:contain!important;border-radius:0!important;box-shadow:none!important}
.roof-problems{background:#f7fbfd;padding-top:50px;padding-bottom:58px}
.problems-head{text-align:center;max-width:850px;margin-inline:auto;margin-bottom:28px}
.problems-head .eyebrow{color:var(--accent);font-weight:900;letter-spacing:.08em;font-size:.76rem}
.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.problem-card{display:flex;flex-direction:column;min-height:230px;padding:22px;text-decoration:none;background:#fff;border:1px solid rgba(6,43,74,.10);border-radius:18px;box-shadow:0 10px 28px rgba(6,43,74,.07);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;color:var(--text)}
.problem-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(6,43,74,.12);border-color:rgba(0,126,138,.38)}
.problem-icon{display:grid;place-items:center;width:46px;height:46px;margin-bottom:13px;border-radius:50%;background:#e8f7f9;font-size:1.45rem}
.problem-card h3{margin:0 0 8px;color:var(--navy);font-size:1.08rem}
.problem-card p{margin:0 0 16px;color:var(--muted);line-height:1.5;font-size:.93rem}
.problem-cta{margin-top:auto;color:var(--accent);font-weight:800;font-size:.9rem}
@media(max-width:900px){.problem-grid{grid-template-columns:repeat(2,1fr)}.hero-owner>img:first-child{height:360px}}
@media(max-width:640px){.problem-grid{grid-template-columns:1fr}.problem-card{min-height:0}.hero-brand-badge{width:120px;right:10px;bottom:10px}.hero-owner>img:first-child{height:auto;aspect-ratio:3/2;object-fit:cover}}

/* V16 - accueil plus court et premium */
.lang-switch a{display:inline-flex;align-items:center;gap:.3rem}.lang-switch a span{font-size:1.05em}.roof-problems .problem-card{min-height:150px}.roof-problems .problem-card h3{margin-bottom:.35rem}.v16-split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:42px;align-items:center}.v16-trust{background:#f4f9fc;border:1px solid #dceaf2;border-radius:18px;padding:26px;display:grid;gap:10px}.v16-trust strong{font-size:1.25rem;color:#092f50}.v16-trust span:before{content:'✓';color:#10a8c5;font-weight:800;margin-right:9px}.v16-proof-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px}.v16-proof-card,.v16-review{border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(5,39,66,.08)}.v16-proof-card{display:flex;flex-direction:column;color:inherit;text-decoration:none}.v16-proof-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.v16-proof-card strong,.v16-proof-card span{padding:0 20px}.v16-proof-card strong{padding-top:18px;font-size:1.1rem}.v16-proof-card span{padding-top:7px;padding-bottom:20px;color:#087d9b}.v16-review{padding:28px}.v16-final{text-align:center}.v16-final .buttons{justify-content:center}.v16-about,.v16-proof,.v16-final{padding-top:64px;padding-bottom:64px}@media(max-width:850px){.v16-split,.v16-proof-grid{grid-template-columns:1fr}.v16-about,.v16-proof,.v16-final{padding-top:44px;padding-bottom:44px}.roof-problems .problem-card{min-height:auto}}
\n/* V16.1 — premium compact hero: owner visible immediately */
.v16-urgent{padding:0!important}.v16-urgent .wrap{min-height:44px;display:flex;align-items:center;justify-content:center;gap:16px;padding-block:7px}.v16-urgent strong{color:#fff}.v16-urgent span{opacity:.9}.v16-urgent a{font-weight:900;color:#fff;text-decoration:none;white-space:nowrap}
.hero .wrap{align-items:center}.hero-copy{max-width:660px}.hero-owner{box-shadow:0 22px 55px rgba(6,43,74,.17)}
@media(max-width:700px){.v16-urgent .wrap{gap:8px;justify-content:space-between}.v16-urgent span{display:none}.hero .wrap{display:flex!important;flex-direction:column;padding-block:24px!important}.hero-owner{order:-1;width:100%;margin:0 0 6px}.hero-owner>img:first-child{aspect-ratio:4/3;height:auto!important;object-position:center 24%}.hero-copy{width:100%}.hero-kicker{margin-top:8px}.hero h1{margin-top:4px}.hero-benefits{margin-top:16px}.roof-problems{padding-top:38px;padding-bottom:42px}.problems-head{margin-bottom:20px}}


/* V17 — accueil restructuré : plus court, rassurant, premium */
.v17-hero{background:linear-gradient(135deg,#f7fbfd 0%,#eef8fb 100%);border-bottom:1px solid #dceaf2}.v17-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:56px;align-items:center;padding-block:58px}.v17-copy h1{font-size:clamp(2.6rem,5vw,4.7rem);line-height:.98;letter-spacing:-.045em;color:var(--navy);max-width:720px;margin:.3rem 0 1.15rem}.v17-lead{font-size:1.12rem;line-height:1.7;max-width:650px;color:#435466}.v17-mini-trust{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:20px;font-size:.9rem;font-weight:800;color:#28455c}.v17-owner{position:relative;margin:0;border-radius:24px;overflow:hidden;background:#dcecf2;box-shadow:0 24px 60px rgba(6,43,74,.18)}.v17-owner>img:first-child{display:block;width:100%;height:470px;object-fit:cover;object-position:center 25%}.v17-owner figcaption{position:absolute;left:18px;bottom:18px;z-index:2;display:flex;flex-direction:column;padding:12px 16px;background:rgba(6,43,74,.92);color:#fff;border-radius:12px;backdrop-filter:blur(8px)}.v17-owner figcaption strong{font-size:1rem}.v17-owner figcaption span{font-size:.78rem;opacity:.86}.v17-logo-badge{position:absolute;right:18px;top:18px;width:135px;padding:8px 10px;background:rgba(255,255,255,.95);border-radius:12px;box-shadow:0 8px 25px rgba(6,43,74,.12)}.v17-logo-badge img{display:block;width:100%;height:auto}.v17-problems{padding-block:56px}.v17-problems .problem-grid{grid-template-columns:repeat(3,1fr)}.v17-problems .problem-card{min-height:142px;padding:20px}.v17-problems .problem-icon{width:42px;height:42px;font-size:1.25rem}.v17-confidence-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center}.v17-confidence h2,.v17-two h2{font-size:clamp(2rem,3.5vw,3rem);margin:.35rem 0 1rem;color:var(--navy)}.text-link{display:inline-block;margin-top:8px;color:var(--accent);font-weight:900;text-decoration:none}.v17-commitments{display:grid;grid-template-columns:1fr 1fr;gap:12px}.v17-commitments span{padding:20px;border:1px solid #dceaf2;border-radius:15px;background:#fff;font-weight:800;color:var(--navy)}.v17-commitments b{display:block;margin-bottom:7px;color:var(--accent);font-size:.78rem}.v17-reassure{background:var(--navy);color:#fff}.v17-reassure .wrap{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:78px;font-weight:800;font-size:.9rem}.v17-reassure a{color:#fff;text-decoration:none;font-weight:950}.v17-two{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}.v17-reviewbox,.v17-area-card{padding:30px;border-radius:20px;background:#fff;border:1px solid #dceaf2;box-shadow:0 12px 34px rgba(6,43,74,.07)}.v17-reviewbox strong{font-size:1.35rem;color:var(--navy)}.v17-area-card{text-align:center}.v17-area-card img{display:block;width:210px;max-width:75%;height:auto;margin:0 auto 14px}.v17-area-card strong,.v17-area-card span{display:block}.v17-area-card strong{color:var(--navy);font-size:1.15rem}.v17-area-card span{color:var(--muted);margin-top:4px}.v17-final{text-align:center}.v17-final .buttons{justify-content:center}.v17-final .eyebrow{color:#7ce2ed}.v17-final h2{font-size:clamp(2.2rem,4vw,3.5rem);margin:.35rem 0 .7rem}.v17-final p{max-width:650px;margin-inline:auto}.v17-reviews,.v17-area,.v17-confidence{padding-block:64px}
@media(max-width:900px){.v17-hero-grid{grid-template-columns:1fr 1fr;gap:28px}.v17-owner>img:first-child{height:390px}.v17-reassure .wrap{flex-wrap:wrap;justify-content:center;padding-block:18px}.v17-confidence-grid,.v17-two{gap:32px}}
@media(max-width:700px){.v17-hero-grid{display:flex;flex-direction:column;padding-block:24px}.v17-owner{order:-1;width:100%}.v17-owner>img:first-child{height:auto;aspect-ratio:4/3}.v17-logo-badge{width:112px;right:12px;top:12px}.v17-owner figcaption{left:12px;bottom:12px}.v17-copy h1{font-size:2.55rem}.v17-lead{font-size:1rem}.v17-problems .problem-grid{grid-template-columns:1fr 1fr;gap:10px}.v17-problems .problem-card{padding:16px;min-height:136px}.v17-problems .problem-card h3{font-size:.98rem}.v17-confidence-grid,.v17-two{grid-template-columns:1fr}.v17-commitments{grid-template-columns:1fr 1fr}.v17-reassure .wrap{display:grid;grid-template-columns:1fr 1fr;text-align:center}.v17-reassure a{grid-column:1/-1}.v17-reviews,.v17-area,.v17-confidence{padding-block:46px}}
@media(max-width:420px){.v17-problems .problem-grid{grid-template-columns:1fr}.v17-commitments{grid-template-columns:1fr}.v17-copy h1{font-size:2.25rem}}


/* V18 — premium finishing pass: restraint, rhythm, mobile conversion */
:root{--v18-shadow:0 18px 48px rgba(6,43,74,.11)}
.v17-hero-grid{padding-block:52px;gap:64px}.v17-owner{box-shadow:var(--v18-shadow)}
.v17-copy .buttons{margin-top:26px}.v17-mini-trust{margin-top:18px;color:#365166}
.v17-problems{padding-block:50px}.v17-problems .problem-card{box-shadow:none;border-color:#dbe8ef;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.v17-problems .problem-card:hover{box-shadow:0 12px 28px rgba(6,43,74,.09)}
.v17-confidence,.v17-reviews,.v17-area{padding-block:58px}.v17-reviewbox,.v17-area-card{box-shadow:none}.v17-commitments span{box-shadow:none}
.v17-final{padding-block:62px}.v17-final .buttons{margin-top:24px}
@media(min-width:701px){.mobile-actions{display:none!important}}
@media(max-width:700px){
 body{padding-bottom:68px}.nav{height:84px}.brand img{height:76px;width:132px}.menu{top:84px;max-height:calc(100dvh - 84px)}
 .v17-hero-grid{padding-block:18px 30px;gap:18px}.v17-owner{border-radius:18px}.v17-owner>img:first-child{aspect-ratio:5/4;object-position:center 22%}.v17-owner figcaption{padding:8px 10px}.v17-owner figcaption span{font-size:.75rem}.v17-copy h1{margin-bottom:.8rem}.v17-copy .buttons{margin-top:20px}.v17-mini-trust{gap:7px 12px;margin-top:14px;font-size:.82rem}
 .v17-problems{padding-block:38px}.v17-confidence,.v17-reviews,.v17-area{padding-block:42px}.v17-final{padding-block:46px}
 .mobile-actions{grid-template-columns:1fr 1fr;left:8px;right:8px;bottom:8px;padding:5px;border-radius:14px;box-shadow:0 8px 28px rgba(6,43,74,.18)}.mobile-actions a{padding:12px 5px}.mobile-actions .whatsapp{display:none}
}

/* === V26 Premium real-work upgrade — preserves the blue Toiture Cognacaise identity === */
.real-work{background:linear-gradient(180deg,#f7fbff 0%,#fff 100%);position:relative;overflow:hidden}
.real-work:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-170px;top:-160px;background:radial-gradient(circle,rgba(32,132,214,.16),rgba(32,132,214,0) 70%);pointer-events:none}
.real-work .section-head{max-width:780px;margin-bottom:28px}
.real-work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.real-step{background:#fff;border:1px solid rgba(20,76,120,.12);border-radius:22px;overflow:hidden;box-shadow:0 18px 45px rgba(20,63,96,.09);position:relative}
.real-step img{display:block;width:100%;height:330px;object-fit:cover}
.real-step .real-copy{padding:18px 20px 22px}
.real-step .real-label{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:800;letter-spacing:.08em;color:#0a5d9b;text-transform:uppercase;margin-bottom:8px}
.real-step h3{margin:0 0 8px;font-size:1.15rem}
.real-step p{margin:0;color:#4a6073;font-size:.95rem;line-height:1.55}
.real-step.featured{border-color:rgba(23,124,196,.28);box-shadow:0 22px 54px rgba(11,91,145,.15)}
.real-work-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.proof-strip{background:#083e69;color:#fff}.proof-strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.12)}
.proof-item{padding:22px 18px;background:#083e69;text-align:center}.proof-item strong{display:block;font-size:1.02rem}.proof-item span{font-size:.86rem;color:#c9e5f7}
.repair-proof-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:18px}.repair-proof-card{background:#fff;border-radius:20px;overflow:hidden;border:1px solid #dceaf4;box-shadow:0 12px 34px rgba(14,74,112,.08)}
.repair-proof-card img{width:100%;height:270px;object-fit:cover;display:block}.repair-proof-card div{padding:17px 18px}.repair-proof-card h3{margin:0 0 7px}.repair-proof-card p{margin:0;color:#506779;font-size:.93rem;line-height:1.5}
.owner-proof{display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;align-items:center;background:#eef8ff;border:1px solid #d4ebfb;border-radius:24px;padding:26px}.owner-proof img{width:100%;height:420px;object-fit:cover;border-radius:18px}.owner-proof .eyebrow{margin-top:0}
.portfolio-job{background:#fff;border:1px solid #dbe9f3;border-radius:24px;padding:24px;margin:26px 0;box-shadow:0 14px 38px rgba(13,75,117,.07)}
.portfolio-job-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:20px}.portfolio-job-head p{max-width:680px;margin-bottom:0}.portfolio-stage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.portfolio-stage{border-radius:17px;overflow:hidden;background:#f6fbff}.portfolio-stage img{width:100%;height:330px;object-fit:cover;display:block}.portfolio-stage div{padding:14px 16px}.portfolio-stage b{display:block;color:#0a5d9b;margin-bottom:4px}.portfolio-stage span{font-size:.9rem;color:#52697b}
.trust-cta{background:linear-gradient(135deg,#07588e,#0b77b8);color:#fff;border-radius:26px;padding:34px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}.trust-cta h2{color:#fff;margin:0 0 10px}.trust-cta p{margin:0;color:#dceefa}.trust-cta .buttons{margin:0}
@media(max-width:900px){.real-work-grid,.repair-proof-grid,.portfolio-stage-grid{grid-template-columns:1fr}.real-step img,.repair-proof-card img,.portfolio-stage img{height:290px}.proof-strip .wrap{grid-template-columns:1fr 1fr}.owner-proof{grid-template-columns:1fr}.owner-proof img{height:340px}.trust-cta{grid-template-columns:1fr}.portfolio-job-head{display:block}}
@media(max-width:560px){.proof-strip .wrap{grid-template-columns:1fr}.real-step img,.repair-proof-card img,.portfolio-stage img{height:240px}.owner-proof{padding:18px}.trust-cta{padding:26px 20px}}

/* === V27 final polish: same blue identity, stronger premium finish === */
:root{--premium-blue:#07588e;--premium-deep:#062b4a;--premium-cyan:#0b8fa5}
.site-header{backdrop-filter:saturate(130%) blur(12px);background:rgba(255,255,255,.96)}
.menu .menu-contact,.btn{box-shadow:0 7px 18px rgba(7,88,142,.14)}
.btn:hover{transform:translateY(-1px)}
.real-step,.portfolio-job,.repair-proof-card,.owner-proof,.v17-reviewbox,.v17-area-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.real-step:hover,.repair-proof-card:hover{transform:translateY(-3px);box-shadow:0 22px 52px rgba(6,43,74,.13);border-color:rgba(7,88,142,.25)}
.real-step img,.portfolio-stage img,.repair-proof-card img{background:#eaf4fa}
.real-label:before{content:"";width:7px;height:7px;border-radius:50%;background:#0b8fa5;box-shadow:0 0 0 4px rgba(11,143,165,.12)}
.proof-item{min-height:72px;display:flex;flex-direction:column;justify-content:center}
.lang-switch{padding:4px;border:1px solid #d8e8f1;border-radius:10px;background:#f7fbfd}.lang-switch a{min-width:48px;justify-content:center}.lang-switch a.active{box-shadow:0 4px 12px rgba(6,43,74,.16)}
.v17-owner:after{content:"Photo chantier réel";position:absolute;right:16px;bottom:16px;z-index:2;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.9);color:#07588e;font-size:.72rem;font-weight:900;letter-spacing:.03em}
.v17-owner figcaption{bottom:54px}
@media(max-width:700px){.v17-owner:after{right:10px;bottom:10px}.v17-owner figcaption{bottom:46px}.real-work .section-head{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* V30 — finition visuelle : proportions photo naturelles et portrait artisan restauré */
.v17-owner>img:first-child{
  display:block;
  width:100%;
  height:auto!important;
  aspect-ratio:3/2;
  object-fit:cover;
  object-position:center 42%;
}
.real-step img,
.repair-proof-card img,
.portfolio-stage img{
  display:block;
  width:100%;
  height:auto!important;
  max-height:560px;
  object-fit:contain!important;
  object-position:center;
  background:#edf6fb;
}
.real-step,.repair-proof-card,.portfolio-stage{
  overflow:hidden;
}
.owner-proof img{
  display:block;
  width:100%;
  height:auto!important;
  max-height:560px;
  object-fit:contain!important;
  object-position:center;
  background:#e7f3fa;
}
.gallery img,.before-after img,.diagnostic-photo-pair img,.project-photo img{
  object-fit:contain!important;
  height:auto!important;
  max-height:620px;
  background:#edf6fb;
}
@media(max-width:700px){
  .v17-owner>img:first-child{aspect-ratio:3/2!important;height:auto!important;object-position:center 42%}
  .real-step img,.repair-proof-card img,.portfolio-stage img,.owner-proof img{max-height:none}
}

/* V31 — correction définitive des proportions d’images.
   Aucune photo de contenu n’est forcée dans un ratio ou une hauteur artificielle. */
main figure > img,
main article > img,
main .service-card > img,
main .why img,
main .before-after img,
main .gallery img,
main .diagnostic-highlight img,
main .diagnostic-photo-pair img,
main .project-photo img,
main .seo-sidebar > img,
main .real-step img,
main .repair-proof-card img,
main .portfolio-stage img,
main .owner-proof > img,
main .hero-photo img,
main .v17-owner > img:first-child {
  display:block;
  width:100%;
  max-width:100%;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center !important;
}

/* Les portraits verticaux restent lisibles sans être agrandis démesurément. */
.real-step img,
.repair-proof-card img,
.portfolio-stage img,
.owner-proof > img {
  width:auto;
  max-width:100%;
  margin-inline:auto;
}

/* Présentation de l’artisan : photo entière, ratio original 3:2, sans recadrage forcé. */
.v17-owner > img:first-child {
  width:100%;
  height:auto !important;
  object-fit:contain !important;
  object-position:center !important;
  border-radius:inherit;
}

/* Ne pas altérer les logos décoratifs et pictogrammes. */
.v17-logo-badge img,
.brand img,
.footer-brand img {
  object-fit:contain !important;
  aspect-ratio:auto !important;
}

/* V33 — final photo geometry: true square files + no visual stretching */
main .v17-owner > img:first-child,
main .real-step > img,
main .repair-proof-card > img,
main .portfolio-stage > img,
main .owner-proof > img,
main .gallery img,
main .before-after img,
main .diagnostic-photo-pair img,
main .project-photo img {
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center !important;
}
/* The files used in these cards are physically square. Do not force another ratio. */
.v17-owner,
.real-step,
.repair-proof-card,
.portfolio-stage { overflow:hidden; }


/* V34 — géométrie photo robuste : fichiers carrés + attributs carrés + CSS carré.
   Aucun étirement : recadrage (cover), jamais redimensionnement anisotrope. */
main img.photo-square-v34 {
  display:block !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:1 / 1 !important;
  object-fit:cover !important;
  object-position:center !important;
}
main .v17-owner > img.photo-square-v34:first-child {
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / 1 !important;
  object-fit:cover !important;
  object-position:center 38% !important;
}
main .diagnostic-photo-pair img.photo-square-v34,
main .before-after img.photo-square-v34,
main .gallery img.photo-square-v34,
main .project-photo img.photo-square-v34,
main .service-card img.photo-square-v34,
main .why img.photo-square-v34,
main .real-step img.photo-square-v34,
main .repair-proof-card img.photo-square-v34,
main .portfolio-stage img.photo-square-v34,
main .owner-proof img.photo-square-v34,
main .diagnostic-highlight img.photo-square-v34,
main .hero-photo img.photo-square-v34 {
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / 1 !important;
  object-fit:cover !important;
}
