/*
 * FPMS first-pass design system.
 * Color and component direction are visually referenced to the public
 * Suivis Zaro interface observed on 2026-10-17. Exact production CSS values
 * were not available in this audit; confirm against the canonical stylesheet
 * before using this palette in a final implementation.
 */
:root {
  color-scheme: dark;
  --ink-950: #070b10;
  --ink-900: #0b1118;
  --ink-850: #0d151f;
  --ink-800: #111b26;
  --ink-700: #1a2735;
  --paper: #f4f7fa;
  --paper-2: #eaf0f5;
  --white: #f6f8fb;
  --text: #e7edf4;
  --text-dark: #15202b;
  --muted: #a4b0bd;
  --muted-dark: #526171;
  --blue: #287df2;
  --blue-light: #79b5ff;
  --cyan: #42bfdf;
  --line-dark: #293747;
  --line-light: #d7e0e8;
  --radius: 18px;
  --radius-small: 12px;
  --shadow: 0 24px 70px rgba(1, 7, 14, .24);
  --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font); font-size: 16px; line-height: 1.65; color: var(--text); background: var(--ink-950); text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--blue-light); outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 20; left: 1rem; top: -5rem; padding: .7rem 1rem; background: var(--white); color: var(--ink-950); border-radius: 9px; font-weight: 700; }
.skip-link:focus { top: 1rem; }
.container { width: min(1160px, calc(100% - 48px)); margin-inline: auto; }

.site-header { position: relative; z-index: 10; min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 12px max(24px, calc((100vw - 1240px) / 2)); background: #080d12; border-bottom: 1px solid rgba(220,232,244,.09); }
.brand { flex: 0 0 auto; display: inline-flex; width: 168px; align-items: center; }
.brand img { width: 100%; height: auto; object-fit: contain; }
.main-nav { display: flex; justify-content: center; align-items: center; gap: clamp(14px, 2vw, 30px); }
.main-nav a { color: #bac4cf; text-decoration: none; font-size: 13px; font-weight: 650; letter-spacing: .01em; white-space: nowrap; transition: color .15s ease; }
.main-nav a:hover, .main-nav a.active { color: #fff; }
.main-nav a.active { position: relative; }
.main-nav a.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -9px; height: 2px; background: var(--blue); border-radius: 2px; }
.menu-toggle { display: none; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 12px 20px; border-radius: 10px; border: 1px solid transparent; text-decoration: none; font-size: 14px; font-weight: 750; line-height: 1.2; transition: transform .16s ease, background .16s ease, border-color .16s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: white; background: var(--blue); box-shadow: 0 8px 24px rgba(40,125,242,.2); }
.button-primary:hover { background: #176cde; }
.button-secondary { color: #edf3fa; background: rgba(14,23,33,.64); border-color: #465568; }
.button-secondary:hover { background: #182432; border-color: #74869b; }
.button-outline { color: var(--text-dark); border-color: #b8c5d1; background: transparent; }
.button-outline:hover { background: white; }
.button-small { min-height: 41px; padding: 10px 14px; font-size: 12px; border-radius: 9px; }
.header-cta { white-space: nowrap; }

.hero { position: relative; isolation: isolate; min-height: 660px; display: flex; align-items: center; overflow: hidden; background: var(--ink-900); }
.hero-backdrop { position: absolute; inset: 0 0 0 36%; z-index: -2; background-image: url("../media/v1/rdc-zone-de-trie0.jpg"); background-position: center; background-size: cover; opacity: .72; }
.hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #080e15 0%, rgba(8,14,21,.97) 28%, rgba(8,14,21,.77) 51%, rgba(8,14,21,.12) 100%), linear-gradient(0deg, rgba(7,11,16,.45), transparent 54%); }
.hero-content { padding-block: 94px 106px; }
.hero-content > * { max-width: 670px; }
.eyebrow { margin: 0 0 16px; color: #c3ced9; font-size: 11px; font-weight: 800; line-height: 1.5; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow-blue { color: var(--blue-light); }
.eyebrow-dot { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 5px rgba(40,125,242,.14); vertical-align: 1px; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 20px; font-size: clamp(43px, 6.2vw, 74px); line-height: 1.04; letter-spacing: -.052em; font-weight: 760; }
h1 span { color: #c9d7e6; }
h2 { margin-bottom: 18px; font-size: clamp(32px, 4.3vw, 48px); line-height: 1.12; letter-spacing: -.04em; font-weight: 740; }
h3 { margin-bottom: 12px; font-size: 22px; line-height: 1.25; letter-spacing: -.025em; }
.hero-lede { margin-bottom: 28px; color: #bac5d0; font-size: clamp(17px, 1.6vw, 19px); line-height: 1.65; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-note { display: flex; align-items: center; gap: 9px; margin: 27px 0 0; color: #b1bdc9; font-size: 13px; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: #56cfad; box-shadow: 0 0 0 4px rgba(86,207,173,.13); }
.hero-caption { position: absolute; right: max(24px, calc((100vw - 1160px) / 2)); bottom: 20px; display: flex; gap: 16px; color: rgba(237,244,250,.72); font-size: 10px; letter-spacing: .05em; text-shadow: 0 2px 8px #000; }
.hero-caption span + span { padding-left: 16px; border-left: 1px solid rgba(255,255,255,.45); }

.trust-strip { background: var(--ink-850); border-block: 1px solid #1c2937; }
.trust-items { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: #c1ccd7; font-size: 13px; font-weight: 670; }
.trust-items i { width: 4px; height: 4px; border-radius: 50%; background: var(--blue); }
.section { padding-block: 96px; }
.section-light { color: var(--text-dark); background: var(--paper); }
.section-wash { color: var(--text-dark); background: var(--paper-2); }
.section-deep { color: var(--text); background: var(--ink-900); }
.section-heading { max-width: 720px; margin-bottom: 38px; }
.section-heading h2 { margin-bottom: 13px; }
.section-heading > p:last-child, .split-heading > p { color: var(--muted-dark); font-size: 16px; }
.section-deep .section-heading > p:last-child, .section-deep .split-heading > p { color: var(--muted); }
.split-heading { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 48px; }
.split-heading > div { flex: 1 1 auto; }
.split-heading > p { max-width: 420px; margin-bottom: 5px; }
.audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.audience-card { min-height: 272px; display: flex; flex-direction: column; align-items: flex-start; padding: 27px 28px 24px; color: var(--text-dark); background: #fff; border: 1px solid #dfe6ec; border-radius: var(--radius); text-decoration: none; box-shadow: 0 8px 24px rgba(20,37,54,.04); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.audience-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #b9cce0; }
.icon-tile, .service-illustration { width: 50px; height: 50px; display: grid; place-items: center; margin-bottom: 21px; border-radius: 13px; }
.icon-tile svg, .service-illustration svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-blue { color: #246dd2; background: #e7f0ff; }
.icon-cyan { color: #1c93b0; background: #e2f6fa; }
.icon-violet { color: #6c57bd; background: #eeeafd; }
.icon-green { color: #248862; background: #e5f5ed; }
.card-kicker { display: block; margin-bottom: 7px; color: #657384; font-size: 11px; font-weight: 800; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
.audience-card strong { max-width: 280px; font-size: 20px; line-height: 1.35; letter-spacing: -.02em; }
.card-link { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 19px; color: #236dcf; font-size: 13px; font-weight: 760; }
.card-link b { font-size: 18px; line-height: 1; }
.two-column { display: grid; grid-template-columns: 1fr .9fr; align-items: center; gap: 80px; }
.body-large { max-width: 620px; color: var(--muted); font-size: 18px; }
.text-link { display: inline-flex; align-items: center; gap: 10px; color: #2878e2; font-size: 14px; font-weight: 760; text-decoration: none; }
.text-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.section-deep .text-link { color: #83baff; }
.scope-card { padding: 17px 27px; border: 1px solid #2b3b4d; border-radius: var(--radius); background: linear-gradient(145deg, #111c29, #0d151e); }
.scope-line { display: grid; grid-template-columns: 46px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid #293645; }
.scope-line:last-child { border: 0; }
.scope-number { color: #63a5ff; font-size: 12px; font-weight: 850; letter-spacing: .12em; }
.scope-line strong { font-size: 16px; }
.scope-line p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.case-card { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 380px; overflow: hidden; background: white; border: 1px solid var(--line-light); border-radius: var(--radius); box-shadow: 0 14px 38px rgba(15,33,48,.08); }
.case-image { min-height: 360px; background: #d4dce4; }
.case-image img, .case-highlight-image img { width: 100%; height: 100%; object-fit: cover; }
.case-copy { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(28px, 4vw, 48px); }
.case-copy h3 { font-size: clamp(25px, 3vw, 33px); }
.case-copy > p:not(.eyebrow) { color: #566474; }
.tag-row { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0 24px; }
.tag-row span { padding: 6px 10px; color: #506071; background: #eef2f6; border-radius: 999px; font-size: 10px; font-weight: 720; }
.case-copy .text-link { margin-top: auto; }
.about-panel { display: grid; grid-template-columns: .42fr 1fr; gap: 54px; align-items: center; padding: clamp(34px, 6vw, 68px); background: white; border: 1px solid #dde5ec; border-radius: 22px; box-shadow: 0 15px 45px rgba(20,37,54,.06); }
.about-panel p:not(.eyebrow) { max-width: 740px; margin-bottom: 18px; color: #526171; }
.about-mark { color: var(--ink-800); font-size: clamp(70px, 10vw, 126px); line-height: 1; font-weight: 900; letter-spacing: -.1em; }
.about-mark span { color: var(--blue); }
.contact-band { padding-block: 66px; color: var(--text); background: #0b141e; border-top: 1px solid #273544; }
.contact-band-inner { display: flex; justify-content: space-between; align-items: center; gap: 38px; }
.contact-band h2 { max-width: 650px; margin-bottom: 12px; font-size: clamp(30px, 4vw, 42px); }
.contact-band p:not(.eyebrow) { max-width: 680px; margin-bottom: 0; color: var(--muted); }
.contact-actions { display: flex; min-width: 205px; flex-direction: column; align-items: flex-start; gap: 13px; }
.phone-link { color: #dbe7f3; font-size: 14px; font-weight: 700; text-decoration: none; }
.phone-link:hover { text-decoration: underline; }
.site-footer { background: #070b10; border-top: 1px solid #1f2a36; }
.footer-top { min-height: 116px; display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-block: 20px; }
.footer-brand { width: 146px; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; }
.footer-links a { color: #aeb9c5; text-decoration: none; font-size: 12px; }
.footer-links a:hover { color: white; }
.footer-bottom { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid #202b37; color: #82909e; font-size: 10px; }
.powered { letter-spacing: .02em; }.powered b { color: #dce6f1; }

.page-hero { padding-block: 86px 76px; background: radial-gradient(ellipse at 80% 30%, rgba(29,94,170,.18), transparent 42%), var(--ink-900); }
.page-hero-inner { max-width: 900px; }
.page-hero h1 { font-size: clamp(48px, 7vw, 76px); }
.page-hero .hero-lede { max-width: 720px; }
.page-hero-business { padding-block: 96px 88px; background: linear-gradient(115deg, var(--ink-900), #0e1a27 65%, #12263a); }
.page-hero-business .page-hero-inner { max-width: 950px; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.service-card { min-height: 278px; display: flex; flex-direction: column; overflow: hidden; color: var(--text-dark); text-decoration: none; background: #fff; border: 1px solid #dce4eb; border-radius: 15px; box-shadow: 0 8px 24px rgba(17,36,55,.04); transition: transform .18s ease, box-shadow .18s ease; }
.service-card:hover { transform: translateY(-3px); box-shadow: 0 17px 38px rgba(17,36,55,.12); }
.service-card > img { width: 100%; height: 150px; object-fit: cover; background: #d9e1e8; }
.service-card-body { min-height: 128px; display: flex; flex-direction: column; align-items: flex-start; padding: 18px 19px; }
.service-card-body .card-kicker { margin-bottom: 5px; font-size: 9px; }
.service-card-body strong { font-size: 17px; line-height: 1.3; }
.service-card-body .card-link { padding-top: 12px; font-size: 11px; }
.service-illustration { width: 100%; height: 150px; flex: 0 0 150px; margin: 0; border-radius: 0; }
.service-illustration svg { width: 40px; height: 40px; stroke-width: 1.5; }
.service-grid-dark .service-card { color: #e5edf5; background: #121c28; border-color: #2a3847; }
.service-grid-dark .service-card-body .card-kicker { color: #a8b6c5; }
.service-grid-dark .service-card-body .card-link { color: #80b7ff; }
.commercial-preview { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 33px 36px; color: var(--text); background: #101b27; border: 1px solid #263748; border-radius: var(--radius); }
.commercial-preview-copy { max-width: 690px; }
.commercial-preview h3 { font-size: 24px; }
.commercial-preview p { margin-bottom: 14px; color: var(--muted); }
.notice-band { padding-block: 23px; color: #3d4d5e; background: #e8eef4; }
.notice-content { display: flex; align-items: center; gap: 15px; }
.notice-content p { margin: 0; font-size: 13px; }
.notice-icon { width: 30px; height: 30px; flex: 0 0 auto; display: grid; place-items: center; color: white; background: #2777df; border-radius: 50%; font-weight: 800; }

.service-hero { padding-block: 58px 78px; background: radial-gradient(ellipse at 86% 45%, rgba(34,100,182,.19), transparent 42%), var(--ink-900); }
.service-hero-grid { display: grid; grid-template-columns: 1fr .88fr; gap: 54px; align-items: center; }
.service-hero-copy h1 { font-size: clamp(42px, 5.7vw, 65px); }
.service-hero-copy .hero-lede { max-width: 620px; }
.service-location-note { max-width: 590px; margin: 19px 0 0; color: #9daaba; font-size: 12px; }
.service-photo { position: relative; overflow: hidden; height: 400px; border-radius: 18px; box-shadow: var(--shadow); background: #23303c; }
.service-photo img { width: 100%; height: 100%; object-fit: cover; }
.photo-caption { position: absolute; left: 12px; bottom: 12px; padding: 7px 10px; color: #eef4fa; background: rgba(4,10,16,.74); border: 1px solid rgba(255,255,255,.15); border-radius: 7px; font-size: 10px; }
.service-detail-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: start; }
.service-detail-grid h2 { font-size: 38px; }
.service-detail-grid p { color: #566474; }
.detail-card { padding: 28px; background: white; border: 1px solid #dbe3ea; border-radius: 16px; box-shadow: 0 12px 32px rgba(18,37,55,.06); }
.detail-card h3 { font-size: 19px; }
.detail-card ul, .capability-card ul { padding-left: 19px; color: #536273; }
.detail-card li, .capability-card li { margin-block: 7px; }
.related-block { display: flex; justify-content: space-between; align-items: center; gap: 35px; }
.related-block h2 { font-size: 36px; }
.related-block p { max-width: 500px; margin: 0; color: #596777; }
.related-links { display: flex; min-width: 280px; flex-direction: column; gap: 11px; }
.related-links a { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; color: #206ed1; border-bottom: 1px solid #cbd5df; font-size: 13px; font-weight: 720; text-decoration: none; }
.related-links a:hover { color: #124f9c; }

.process-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }
.process-card { padding: 25px 26px; background: white; border: 1px solid #dfe6ec; border-radius: 15px; }
.process-card > span { display: inline-flex; align-items: center; justify-content: center; width: 33px; height: 33px; margin-bottom: 19px; color: #176bd5; background: #e7f0ff; border-radius: 9px; font-size: 11px; font-weight: 850; }
.process-card h3 { font-size: 19px; }
.process-card p { margin: 0; color: #596879; font-size: 14px; }
.capability-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }
.capability-card { min-height: 300px; padding: 25px 27px; background: linear-gradient(155deg, #131f2c, #101822); border: 1px solid #2a3948; border-radius: 16px; }
.capability-icon { display: inline-grid; width: 40px; height: 40px; place-items: center; margin-bottom: 17px; color: #8cc0ff; background: #1b3450; border-radius: 10px; font-size: 22px; }
.capability-card h3 { font-size: 19px; }
.capability-card ul { padding-left: 18px; color: #a6b3c1; font-size: 13px; }
.scope-warning { display: flex; gap: 22px; margin-top: 22px; padding: 19px 23px; color: #c9d5e2; background: #1b2027; border: 1px solid #4c4540; border-radius: 12px; }
.scope-warning strong { flex: 0 0 auto; color: #ffcf7b; font-size: 13px; }
.scope-warning p { margin: 0; color: #c2bfba; font-size: 12px; }
.case-highlight { display: grid; grid-template-columns: .85fr 1.15fr; gap: 45px; align-items: center; }
.case-highlight-copy h2 { font-size: clamp(31px, 4vw, 43px); }
.case-highlight-copy p:not(.eyebrow) { color: #586879; }
.case-highlight-image { height: 340px; overflow: hidden; border-radius: 17px; background: #d7e0e8; }

@media (max-width: 980px) {
  .site-header { gap: 16px; }
  .brand { width: 148px; }
  .main-nav { gap: 15px; }
  .main-nav a { font-size: 12px; }
  .header-cta { padding-inline: 11px; }
  .two-column { gap: 44px; }
  .service-hero-grid { gap: 32px; }
}
@media (max-width: 760px) {
  .container { width: min(100% - 36px, 600px); }
  .site-header { min-height: 70px; flex-wrap: wrap; padding: 10px 18px; gap: 12px; }
  .brand { width: 140px; }
  .menu-toggle { width: 42px; height: 42px; display: grid; place-items: center; margin-left: auto; color: #edf4fa; background: #131d28; border: 1px solid #2c3a48; border-radius: 10px; font-size: 20px; cursor: pointer; }
  .header-cta { min-height: 40px; padding: 9px 11px; font-size: 11px; }
  .main-nav { display: none; order: 4; width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding: 7px 0 10px; border-top: 1px solid #263341; }
  .main-nav[data-open="true"] { display: flex; }
  .main-nav a { padding: 12px 4px; font-size: 14px; border-bottom: 1px solid rgba(255,255,255,.07); }
  .main-nav a.active::after { display: none; }
  .hero { min-height: 650px; align-items: flex-end; }
  .hero-backdrop { inset: 0; opacity: .54; background-position: center; }
  .hero::before { background: linear-gradient(0deg, rgba(6,10,15,.99) 4%, rgba(6,10,15,.87) 46%, rgba(6,10,15,.2) 100%); }
  .hero-content { padding-block: 150px 76px; }
  .hero-content > * { max-width: none; }
  h1 { font-size: clamp(39px, 11vw, 57px); }
  h2 { font-size: clamp(31px, 8vw, 39px); }
  .hero-caption { left: 18px; right: 18px; bottom: 14px; gap: 9px; font-size: 9px; }
  .hero-caption span + span { padding-left: 9px; }
  .trust-items { min-height: auto; justify-content: flex-start; flex-wrap: wrap; gap: 10px 13px; padding-block: 18px; font-size: 11px; }
  .trust-items i { width: 3px; height: 3px; }
  .section { padding-block: 66px; }
  .split-heading, .contact-band-inner, .related-block { display: block; }
  .split-heading > p { margin-top: 14px; }
  .split-heading .button { margin-top: 10px; }
  .audience-grid, .service-grid, .process-grid, .capability-grid { grid-template-columns: 1fr; }
  .audience-card { min-height: 230px; }
  .two-column, .case-card, .about-panel, .service-hero-grid, .service-detail-grid, .case-highlight { grid-template-columns: 1fr; }
  .two-column { gap: 34px; }
  .case-image { min-height: 255px; max-height: 330px; }
  .case-card { min-height: 0; }
  .about-panel { gap: 20px; padding: 28px; }
  .about-mark { font-size: 70px; }
  .contact-band { padding-block: 52px; }
  .contact-actions { margin-top: 23px; }
  .footer-top { flex-wrap: wrap; justify-content: space-between; padding-block: 27px; }
  .footer-links { order: 3; width: 100%; justify-content: flex-start; gap: 11px 18px; }
  .footer-bottom { min-height: 70px; flex-wrap: wrap; justify-content: flex-start; padding-block: 12px; }
  .footer-bottom span:first-child { flex-basis: 100%; }
  .page-hero { padding-block: 68px 58px; }
  .page-hero h1 { font-size: clamp(44px, 11vw, 60px); }
  .commercial-preview { display: block; padding: 25px; }
  .commercial-preview .button { margin-top: 18px; }
  .service-hero { padding-block: 42px 58px; }
  .service-photo { height: min(94vw, 380px); order: -1; }
  .service-hero-copy h1 { font-size: clamp(39px, 10vw, 54px); }
  .service-detail-grid { gap: 27px; }
  .related-links { margin-top: 20px; }
  .process-card, .capability-card { min-height: auto; }
  .scope-warning { display: block; }
  .scope-warning p { margin-top: 6px; }
  .case-highlight { gap: 24px; }
  .case-highlight-image { height: 270px; }
}
@media (max-width: 400px) {
  .site-header { padding-inline: 12px; }
  .brand { width: 119px; }
  .button-small { padding-inline: 9px; font-size: 10px; }
  .container { width: min(100% - 28px, 600px); }
  .button-row .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* V2: links between the four market categories */
.market-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.market-link { min-height: 78px; display: flex; align-items: center; gap: 13px; padding: 13px 18px; color: #d9e2ec; text-decoration: none; font-size: 13px; font-weight: 720; border-inline-start: 1px solid rgba(255,255,255,.07); }
.market-link:last-child { border-inline-end: 1px solid rgba(255,255,255,.07); }
.market-link:hover, .market-link:focus-visible { background: rgba(40,125,242,.1); color: #fff; }
.market-icon { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; color: #83baff; }
.market-icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.market-arrow { margin-left: auto; color: #83baff; font-size: 18px; }
.home-proof { padding-block: 62px; }
.home-proof-inner { display: grid; grid-template-columns: .85fr 1.15fr; gap: 48px; align-items: center; }
.home-proof-inner > div > p:not(.eyebrow) { max-width: 480px; color: #586879; }
.home-proof-image { height: 285px; overflow: hidden; border-radius: 16px; }
.home-proof-image img { width: 100%; height: 100%; object-fit: cover; }
.request-section { scroll-margin-top: 20px; }
.request-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 62px; align-items: start; }
.request-intro h2 { font-size: clamp(30px, 4vw, 44px); }
.request-intro > p:not(.eyebrow) { color: #526171; }
.simulation-note { padding: 13px 15px; color: #35485a !important; background: #e9f1fa; border-left: 3px solid var(--blue); border-radius: 5px 10px 10px 5px; font-size: 13px; }
.request-form { padding: 26px; background: #fff; border: 1px solid #d7e0e8; border-radius: 16px; box-shadow: 0 12px 34px rgba(15,33,48,.07); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; margin-bottom: 21px; }
.request-form label { display: flex; flex-direction: column; gap: 7px; color: #253342; font-size: 13px; font-weight: 720; }
.request-form .form-wide { grid-column: 1 / -1; }
.request-form input, .request-form textarea { width: 100%; min-height: 46px; padding: 11px 12px; color: #172330; background: #fff; border: 1px solid #bac6d1; border-radius: 8px; font: inherit; font-size: 15px; }
.request-form textarea { min-height: 112px; resize: vertical; }
.request-form input:focus, .request-form textarea:focus { outline: 3px solid rgba(40,125,242,.19); border-color: var(--blue); }
.request-form [aria-invalid="true"] { border-color: #b33b3b; }
.form-status { min-height: 1.5em; margin: 14px 0 0; color: #185a3d; font-size: 14px; font-weight: 700; }
@media (max-width: 760px) {
  .market-grid { grid-template-columns: 1fr 1fr; }
  .market-link { min-height: 67px; padding: 10px 8px; gap: 8px; font-size: 12px; }
  .market-link:nth-child(odd) { border-inline-start: 0; }
  .market-link:nth-child(even) { border-inline-end: 0; }
  .home-proof-inner, .request-layout { grid-template-columns: 1fr; gap: 25px; }
  .home-proof { padding-block: 48px; }
  .home-proof-image { height: 220px; }
  .request-form { padding: 19px; }
  .form-grid { grid-template-columns: 1fr; gap: 13px; }
  .request-form .form-wide { grid-column: auto; }
}
@media (max-width: 360px) {
  .market-link { font-size: 11px; }
  .market-icon { width: 26px; }
}

/* Extensions propres au prototype PHP, sans remplacer la base visuelle V1. */
.audience-grid-4 { grid-template-columns: repeat(4, 1fr); }
.catalog-link-wrap { margin: 28px 0 0; }
.market-intro { max-width: 720px; color: #c5d0db; font-size: 16px; }
.market-needs p:not(.eyebrow) { color: #526171; }
.scope-card-light { color: var(--text); }
.scope-card-light .scope-line strong { color: #f0f5fb; }
.scope-card-light .scope-line p { color: var(--muted); }
.market-more { margin: 28px 0 0; }
.external-note { margin-left: 4px; color: #728297; font-size: 9px; font-weight: 650; }
.service-grid-dark .external-note { color: #9baaba; }
.request-layout { align-items: start; }
.dds-form { min-width: 0; }
@media (max-width: 980px) {
  .audience-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .audience-grid-4 { grid-template-columns: 1fr; }
  .market-grid { grid-template-columns: repeat(2, 1fr); }
  .market-link { min-height: 68px; gap: 8px; padding: 10px 9px; font-size: 11px; }
  .market-icon { width: 25px; height: 25px; }
  .market-icon svg { width: 23px; height: 23px; }
  .market-arrow { font-size: 15px; }
  .request-layout { grid-template-columns: 1fr; gap: 24px; }
  .form-grid { grid-template-columns: 1fr; }
  .request-form .form-wide { grid-column: auto; }
  .request-form { padding: 20px; }
  .market-links-inline .button { width: 100%; }
}
@media (max-width: 400px) {
  .market-grid { grid-template-columns: 1fr 1fr; }
  .market-link { font-size: 10px; }
}

/* Pages autonomes de présentation */
.home-entry { padding-block: 25px; color: var(--text-dark); background: var(--paper); border-bottom: 1px solid var(--line-light); }
.home-entry-inner { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.home-entry-inner p { margin: 0; color: var(--muted-dark); font-weight: 650; }
.case-list { display: grid; gap: 28px; }
.case-list .case-card { min-height: 330px; }
.case-list .case-copy h2 { font-size: clamp(25px, 3vw, 34px); }
.about-page-panel { margin-bottom: 0; }
.about-principles { display: grid; grid-template-columns: .7fr 1.3fr; gap: 50px; align-items: start; }
.about-principles h2 { max-width: 400px; }
.principle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.principle-grid article { padding: 23px; background: #111d29; border: 1px solid #2b3a49; border-radius: 14px; }
.principle-grid article > span { color: #83baff; font-size: 12px; font-weight: 800; }
.principle-grid h3 { margin: 20px 0 9px; font-size: 18px; }
.principle-grid p { margin: 0; color: var(--muted); font-size: 14px; }
.contact-page-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.contact-card { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(25px, 4vw, 38px); background: white; border: 1px solid var(--line-light); border-radius: var(--radius); box-shadow: 0 12px 30px rgba(15,33,48,.05); }
.contact-card h2 { margin-bottom: 12px; font-size: clamp(25px, 3vw, 34px); }
.contact-card p:not(.eyebrow) { color: var(--muted-dark); }
.contact-detail { margin: 6px 0 24px; color: var(--text-dark); font-size: clamp(20px, 2.8vw, 28px); font-weight: 750; text-decoration: none; }
.contact-detail:hover { color: var(--blue); }
@media (max-width: 760px) {
  .home-entry-inner { align-items: flex-start; flex-direction: column; gap: 6px; }
  .about-principles { grid-template-columns: 1fr; gap: 26px; }
  .principle-grid { grid-template-columns: 1fr; }
  .contact-page-grid { grid-template-columns: 1fr; }
}

/* Catalogue compact et filtre régional accessible sans JavaScript. */
.section-white { color: var(--text-dark); background: #fff; }
.region-filter { max-width: 590px; margin-top: 25px; }
.region-filter label { display: block; margin-bottom: 8px; color: #dfe8f1; font-size: 13px; font-weight: 700; }
.region-filter-controls { display: flex; gap: 10px; }
.region-filter select { min-width: 0; flex: 1; padding: 0 14px; color: var(--text-dark); background: #fff; border: 1px solid #cad5df; border-radius: 9px; font: inherit; }
.catalog-category { padding-block: 34px; scroll-margin-top: 82px; }
.catalog-category .section-heading { margin-bottom: 16px; }
.catalog-category .section-heading p:last-child { max-width: 720px; }
.service-grid-compact { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.service-card-compact { min-height: 144px; flex-direction: row; align-items: flex-start; gap: 16px; padding: 20px; border-radius: 14px; box-shadow: 0 4px 15px rgba(17,36,55,.04); }
.service-card-compact:hover { transform: translateY(-2px); }
.service-card-compact .service-illustration { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 12px; }
.service-card-compact .service-illustration svg { width: 30px; height: 30px; }
.service-card-compact .service-card-body { min-width: 0; min-height: 0; flex: 1; padding: 0; }
.service-card-compact .service-card-body strong { color: #152536; font-size: 19px; line-height: 1.28; font-weight: 800; }
.service-card-description { margin-top: 7px; color: #5c6b79; font-size: 14px; line-height: 1.45; }
.service-card-compact .card-link { display: inline-flex; align-items: center; gap: 7px; padding-top: 12px; color: #176fc9; font-size: 13px; font-weight: 750; }
.service-card-compact:focus-visible { outline: 3px solid #287df2; outline-offset: 3px; }
.empty-region { color: #526171; font-size: 13px; }
.catalog-availability { color: #aeb9c5; font-size: 13px; }
.catalog-availability { margin-top: 22px; }
@media(max-width:900px){.service-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.service-grid-compact{grid-template-columns:1fr;gap:11px}.service-card-compact{min-height:0;padding:17px}.service-card-compact .service-card-body strong{font-size:19px}.catalog-category{padding-block:28px}}

/* Catalogue filtré par marché; aucune disponibilité globale par région. */
.market-catalog-section { padding-block: 54px; }
.market-catalog-section .section-heading { margin-bottom: 24px; }
.market-card-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.market-card { min-height:260px; display:flex; flex-direction:column; align-items:flex-start; gap:18px; padding:23px; color:#172330; background:#fff; border:1px solid #d6e0e8; border-radius:15px; box-shadow:0 8px 22px rgba(17,36,55,.05); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; cursor:pointer; }
.market-card:hover { transform:translateY(-3px); border-color:#79aee9; box-shadow:0 15px 32px rgba(17,36,55,.12); }
.market-card:focus-visible { outline:3px solid #287df2; outline-offset:3px; border-color:#287df2; }
.market-card.is-selected { border-color:#176fc9; box-shadow:0 0 0 2px rgba(23,111,201,.18),0 12px 28px rgba(17,36,55,.08); }
.market-card-icon { width:48px;height:48px;display:grid;place-items:center;color:#176fc9;background:#e7f0ff;border-radius:13px; }
.market-card-icon svg { width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round; }
.market-card-copy { display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:8px; }
.market-card-copy strong { font-size:19px;line-height:1.25; }
.market-card-copy > span { color:#526171;font-size:14px;line-height:1.5; }
.market-card-copy b { display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:12px;color:#176fc9;font-size:12px; }
.market-select-button { margin-top:auto;padding:9px 12px;color:#fff;background:#176fc9;border:1px solid #176fc9;border-radius:8px;font:inherit;font-size:12px;font-weight:700;cursor:pointer; }
.market-select-button:hover { background:#0d559d;border-color:#0d559d; }
.market-select-button:focus-visible,.catalog-reset:focus-visible { outline:3px solid #68a9f6;outline-offset:3px; }
.market-select-button[aria-pressed="true"] { color:#123b63;background:#e7f0ff;border-color:#7facdd; }
.market-page-link { color:#176fc9;font-size:12px;font-weight:700; }
.market-page-link:hover { color:#0d559d;text-decoration-thickness:2px; }
.market-filter-status { margin:22px 0 0;color:#455568;font-size:14px; }
.catalog-reset { display:inline-block;margin-top:8px;padding:8px 0;border:0;background:none;color:#176fc9;font:inherit;font-size:13px;font-weight:700;cursor:pointer; }
.catalog-intro { padding-block:36px; }
.catalog-intro h2 { margin-bottom:9px; }
.catalog-intro p:last-child { max-width:850px;color:#d5e0ec; }
.service-visual-card { min-height:290px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:10px;padding:30px;color:#f5f8fc;background:linear-gradient(145deg,#1e3852,#101b28);border:1px solid #3b536b;border-radius:18px; }
.service-visual-card strong { font-size:clamp(23px,3vw,34px); }
.service-visual-card > span:last-child { color:#c4d2df;font-size:13px; }
.territory-card { border-top:4px solid #176fc9; }
.territory-card small { display:block;margin-top:16px;color:#657384;line-height:1.5; }
.service-points { padding-left:20px;line-height:1.7; }
.market-card[hidden],.service-card[hidden],.catalog-category[hidden] { display:none!important; }
.region-selector-section { padding-block:40px; }
.region-selector-layout { display:grid;grid-template-columns:1fr minmax(280px,.65fr);gap:48px;align-items:center; }
.region-selector-layout h2 { margin-bottom:10px;font-size:clamp(27px,3vw,36px); }
.region-selector-layout p:not(.eyebrow) { max-width:650px;margin-bottom:0;color:#bac5d0;font-size:14px; }
.region-selector-section .region-filter { margin:0; }
.region-selector-section .region-filter-controls { align-items:stretch; }
.region-selector-section .region-filter select { min-height:48px; }
.region-selector-section .region-filter .button { white-space:nowrap; }
@media(max-width:960px){.market-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.market-card-grid{grid-template-columns:1fr;gap:11px}.market-card{min-height:0;flex-direction:row;align-items:flex-start;padding:17px}.market-card-icon{width:42px;height:42px;flex:0 0 42px}.market-card-copy{min-height:95px}.market-select-button{min-height:42px}.market-catalog-section{padding-block:42px}}

.selected-region { display:flex;align-items:center;gap:8px;margin-top:16px;color:#bac5d0;font-size:13px; }
.selected-region strong { display:inline-block;padding:5px 10px;color:#f4f8fc;background:#172637;border:1px solid #3d5874;border-radius:999px;font-size:12px; }

/* Cartes de services dans les parcours de marchés à fond sombre. */
.service-grid-dark .service-card-compact {
  color: #e8eef5;
  background: #121c28;
  border-color: #34485c;
}
.service-grid-dark .service-card-compact .service-card-body strong {
  color: #f5f8fc;
}
.service-grid-dark .service-card-compact .service-card-description {
  color: #c5d0db;
}
.service-grid-dark .service-card-compact .card-link {
  color: #80b7ff;
}
.service-grid-dark .service-card-compact:hover {
  background: #172637;
  border-color: #6685a4;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .24);
}
.service-grid-dark .service-card-compact:hover .service-card-body strong {
  color: #ffffff;
}
.service-grid-dark .service-card-compact:hover .service-card-description {
  color: #e0e8f0;
}
.service-grid-dark .service-card-compact:hover .card-link {
  color: #a7ceff;
}
.service-grid-dark .service-card-compact:focus-visible {
  outline: 3px solid #80b7ff;
  outline-offset: 3px;
  border-color: #80b7ff;
}
.service-grid-dark .service-card-compact:focus-visible .service-card-body strong {
  color: #ffffff;
}
.service-grid-dark .service-card-compact:focus-visible .service-card-description {
  color: #e0e8f0;
}
.service-grid-dark .service-card-compact:focus-visible .card-link {
  color: #a7ceff;
}

/* Sections migrées de V1 dans le système visuel V2 — première page pilote. */
.v1-service-hero { padding-block: 58px 68px; }
.v1-service-hero .service-hero-grid { grid-template-columns: 1.05fr .95fr; }
.v1-service-hero .service-hero-copy h1 { margin-bottom: 18px; font-size: clamp(39px, 5vw, 58px); }
.v1-service-hero .service-hero-copy h2 { margin: 0; color: #c7d2df; font-size: clamp(25px, 3vw, 34px); line-height: 1.2; letter-spacing: -.03em; }
.v1-service-photo { min-height: 330px; margin: 0; overflow: hidden; border: 1px solid #334456; border-radius: var(--radius); background: #111b26; box-shadow: var(--shadow); }
.v1-service-photo img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; }
.v1-service-page--gouttieres-shawinigan > .v1-content-section { padding-block: clamp(23px, 3vw, 34px); }
.v1-service-page--gouttieres-shawinigan > .v1-content-section.section-light { background: #fff; }
.v1-service-page--gouttieres-shawinigan > .v1-content-section.section-wash { background: #f6f8fa; }
.v1-service-page--gouttieres-shawinigan > .v1-content-section.section-deep { padding-block: 25px; background: #111b26; }
.v1-service-page--gouttieres-shawinigan .v1-content-section > .container { max-width: 960px; }
.v1-service-page--gouttieres-shawinigan .v1-content-section h2 { margin: 0 0 13px; color: #172635; font-size: clamp(25px, 2.6vw, 32px); line-height: 1.2; letter-spacing: -.025em; }
.v1-service-page--gouttieres-shawinigan .v1-content-section p { color: #526171; }
.v1-service-page--gouttieres-shawinigan .v1-intro-layout { display: block; max-width: 960px; }
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-prose { max-width: 72ch; }
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-prose p { margin: 0 0 12px; font-size: 17px; }
.v1-service-page--gouttieres-shawinigan .v1-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 17px; }
.v1-service-page--gouttieres-shawinigan .v1-list-layout { display: block; }
.v1-service-page--gouttieres-shawinigan .v1-check-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 30px; margin: 0; padding: 0 0 0 20px; list-style: disc; }
.v1-service-page--gouttieres-shawinigan .v1-check-list li { padding: 5px 4px 7px 0; color: #273747; background: transparent; border: 0; border-bottom: 1px solid #e7edf2; }
.v1-service-page--gouttieres-shawinigan .v1-check-list li::marker { color: #287df2; }
.v1-service-page--gouttieres-shawinigan .v1-source-note { margin: 13px 0 0; padding-left: 12px; border-left: 3px solid var(--blue); font-weight: 650; }
.v1-service-page--gouttieres-shawinigan .v1-list-layout .v1-prose { max-width: 72ch; margin: 14px 0 0; }
.v1-service-page--gouttieres-shawinigan .v1-related-section { padding-block: 25px; }
.v1-service-page--gouttieres-shawinigan .v1-related-layout { display: block; }
.v1-service-page--gouttieres-shawinigan .v1-related-layout h2 { margin: 0 0 7px; }
.v1-service-page--gouttieres-shawinigan .v1-related-layout a { display: inline-flex; max-width: 72ch; }
.v1-service-page--gouttieres-shawinigan .v1-locality-card { display: block; padding: 20px 24px; background: #fff; border: 1px solid var(--line-light); border-radius: 14px; box-shadow: 0 8px 22px rgba(15,33,48,.045); }
.v1-service-page--gouttieres-shawinigan .v1-locality-card h2 { margin-bottom: 8px; }
.v1-service-page--gouttieres-shawinigan .v1-locality-card blockquote { margin: 8px 0 11px; padding: 0 0 0 13px; color: #243342; background: transparent; border-left: 3px solid var(--blue); border-radius: 0; font-size: 16px; font-weight: 650; }
.v1-service-page--gouttieres-shawinigan .v1-contact-card { max-width: 960px; margin-inline: auto; padding: 23px 26px; color: var(--text); background: linear-gradient(145deg, #182635, #111b26); border: 1px solid #2b3b4d; border-radius: 16px; box-shadow: var(--shadow); }
.v1-service-page--gouttieres-shawinigan .v1-contact-card h2,
.v1-service-page--gouttieres-shawinigan .v1-contact-card h3 { color: #fff; }
.v1-service-page--gouttieres-shawinigan .v1-contact-card p,
.v1-service-page--gouttieres-shawinigan .v1-contact-card li { color: #d2dbe4; }
.v1-service-page--gouttieres-shawinigan .v1-contact-card h3 { margin: 0 0 8px; font-size: 18px; }
.v1-service-page--gouttieres-shawinigan .v1-contact-links { display: flex; flex-wrap: wrap; gap: 5px 22px; margin: 14px 0 0; padding: 0; list-style: none; }
.v1-service-page--gouttieres-shawinigan .v1-contact-links a { color: #8fc1ff; text-underline-offset: 3px; }
.v1-service-page--gouttieres-shawinigan .v1-faq-section .container { max-width: 960px; }
.v1-service-page--gouttieres-shawinigan .v1-faq-section .section-heading { margin-bottom: 16px; }
.v1-service-page--gouttieres-shawinigan .v1-faq-list { display: grid; gap: 8px; max-width: 900px; }
.v1-service-page--gouttieres-shawinigan .v1-faq-item { overflow: hidden; padding: 16px 18px; background: #fff; border: 1px solid var(--line-light); border-radius: 12px; }
.v1-service-page--gouttieres-shawinigan .v1-faq-item h3 { margin: 0 0 8px; color: #192735; font-size: 17px; line-height: 1.35; }
.v1-service-page--gouttieres-shawinigan .v1-faq-answer p { margin: 0 0 8px; color: #526171; }
.v1-service-page--gouttieres-shawinigan .v1-faq-answer p:last-child { margin-bottom: 0; }
.v1-service-page--gouttieres-shawinigan .v1-faq-answer ul { margin: 0 0 8px; padding-left: 24px; color: #526171; }
@media (max-width: 760px) {
  .v1-service-hero { padding-block: 42px 52px; }
  .v1-service-hero .service-hero-copy h1 { font-size: clamp(37px, 9vw, 49px); }
  .v1-service-photo, .v1-service-photo img { min-height: 230px; }
  .v1-service-page--gouttieres-shawinigan > .v1-content-section { padding-block: 22px; }
  .v1-service-page--gouttieres-shawinigan .v1-check-list { grid-template-columns: 1fr; gap: 3px; }
  .v1-service-page--gouttieres-shawinigan .v1-actions { display: flex; }
  .v1-service-page--gouttieres-shawinigan .v1-locality-card { padding: 18px; }
  .v1-service-page--gouttieres-shawinigan .v1-contact-card { padding: 20px 18px; }
  .v1-service-page--gouttieres-shawinigan .v1-contact-links { display: grid; gap: 7px; }
}

/* Pilote gouttières : hiérarchie conversion d’abord, contenu complémentaire ensuite. */
.v1-service-page--gouttieres-shawinigan > .v1-content-section { padding-block: clamp(30px, 4vw, 48px); }
.v1-service-page--gouttieres-shawinigan .v1-content-section > .container { width: min(100% - 40px, 1080px); }

/* Niveau 1 : comprendre, voir, demander. */
.v1-service-page--gouttieres-shawinigan .v1-service-intro { padding-block: clamp(34px, 4.5vw, 52px) 30px; background: #fff; }
.v1-service-page--gouttieres-shawinigan .v1-intro-layout { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px 52px; max-width: 1080px; }
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-prose { max-width: 73ch; }
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-prose h2 { margin: 0 0 14px; color: #172b3c; font-size: clamp(26px, 3vw, 34px); line-height: 1.18; letter-spacing: -.025em; }
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-prose p { margin: 0 0 11px; color: #465868; font-size: 16px; line-height: 1.68; }
.v1-service-page--gouttieres-shawinigan .v1-actions { display: flex; align-items: center; margin: 0; }
.v1-service-page--gouttieres-shawinigan .v1-actions .button { min-height: 47px; white-space: nowrap; }

.v1-service-page--gouttieres-shawinigan .v1-project-gallery { padding-block: 24px clamp(36px, 4.5vw, 52px); background: #fff; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 18px; padding-top: 22px; border-top: 1px solid #e6edf3; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-heading .eyebrow { margin: 0 0 5px; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-heading h2 { margin: 0; color: #172b3c; font-size: clamp(25px, 2.8vw, 32px); letter-spacing: -.02em; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 15px; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-item { min-width: 0; margin: 0; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-placeholder { display: flex; min-height: 238px; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 18px; color: #5a6d7f; text-align: center; background: linear-gradient(145deg, #e8eff6, #f8fafc); border: 1px dashed #a9bacb; border-radius: 13px; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-placeholder svg { width: 44px; height: 44px; fill: none; stroke: #748ba0; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-placeholder span { font-size: 13px; font-weight: 650; }
.v1-service-page--gouttieres-shawinigan .v1-gallery-item figcaption { margin-top: 8px; color: #25394b; font-size: 14px; font-weight: 750; }

.v1-service-page--gouttieres-shawinigan .v1-request-mockup { padding-block: clamp(38px, 5vw, 58px); background: #101b27; }
.v1-service-page--gouttieres-shawinigan .v1-request-layout { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); align-items: center; gap: clamp(24px, 5vw, 62px); max-width: 1080px; }
.v1-service-page--gouttieres-shawinigan .v1-request-heading .eyebrow { margin: 0 0 9px; }
.v1-service-page--gouttieres-shawinigan .v1-request-heading h2 { margin: 0 0 10px; color: #fff; font-size: clamp(28px, 3.2vw, 38px); line-height: 1.15; letter-spacing: -.025em; }
.v1-service-page--gouttieres-shawinigan .v1-request-heading > p:last-child { max-width: 36ch; margin: 0; color: #c6d2df; font-size: 14px; line-height: 1.55; }
.v1-service-page--gouttieres-shawinigan .v1-request-card { padding: clamp(19px, 2.7vw, 28px); background: #fff; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; box-shadow: 0 18px 42px rgba(0,0,0,.24); }
.v1-service-page--gouttieres-shawinigan .v1-request-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.v1-service-page--gouttieres-shawinigan .v1-request-fields label { display: grid; gap: 6px; color: #273b4d; font-size: 13px; font-weight: 750; }
.v1-service-page--gouttieres-shawinigan .v1-request-field-wide { grid-column: 1 / -1; }
.v1-service-page--gouttieres-shawinigan .v1-request-fields input,
.v1-service-page--gouttieres-shawinigan .v1-request-fields textarea { width: 100%; min-height: 44px; padding: 10px 12px; color: #536273; background: #f8fafc; border: 1px solid #d9e3ec; border-radius: 8px; font: inherit; font-size: 14px; }
.v1-service-page--gouttieres-shawinigan .v1-request-fields textarea { min-height: 88px; resize: vertical; }
.v1-service-page--gouttieres-shawinigan .v1-request-fields input:disabled,
.v1-service-page--gouttieres-shawinigan .v1-request-fields textarea:disabled { opacity: 1; -webkit-text-fill-color: #687888; }
.v1-service-page--gouttieres-shawinigan .v1-mock-submit { min-height: 46px; margin-top: 15px; opacity: .82; cursor: not-allowed; }

/* Niveau 2 : explications et présence locale. */
.v1-service-page--gouttieres-shawinigan .v1-service-details { padding-block: clamp(42px, 5.5vw, 66px); background: #f6f8fb; }
.v1-service-page--gouttieres-shawinigan .v1-details-layout { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.45fr); align-items: start; gap: clamp(34px, 6vw, 76px); max-width: 1020px; }
.v1-service-page--gouttieres-shawinigan .v1-details-heading { position: sticky; top: 96px; }
.v1-service-page--gouttieres-shawinigan .v1-details-heading .eyebrow { margin: 0 0 7px; }
.v1-service-page--gouttieres-shawinigan .v1-details-heading h2 { margin: 0; color: #1b2f40; font-size: clamp(25px, 2.8vw, 32px); line-height: 1.2; letter-spacing: -.02em; }
.v1-service-page--gouttieres-shawinigan .v1-details-copy { max-width: 67ch; }
.v1-service-page--gouttieres-shawinigan .v1-detail-group + .v1-detail-group { margin-top: 26px; padding-top: 24px; border-top: 1px solid #dfe7ee; }
.v1-service-page--gouttieres-shawinigan .v1-detail-group h3 { margin: 0 0 9px; color: #22384a; font-size: 19px; }
.v1-service-page--gouttieres-shawinigan .v1-detail-group p { margin: 0 0 10px; color: #506171; line-height: 1.7; }
.v1-service-page--gouttieres-shawinigan .v1-detail-link { margin: 24px 0 0; color: #506171; line-height: 1.65; }
.v1-service-page--gouttieres-shawinigan .v1-detail-link a { color: #1769c2; font-weight: 700; text-underline-offset: 3px; }
.v1-service-page--gouttieres-shawinigan .v1-back-to-request { display: inline-flex; align-items: center; gap: 7px; margin-top: 18px; color: #1769c2; font-weight: 750; text-decoration: none; }
.v1-service-page--gouttieres-shawinigan .v1-back-to-request:hover { text-decoration: underline; text-underline-offset: 4px; }
.v1-service-page--gouttieres-shawinigan .v1-back-to-request:focus-visible { outline: 3px solid #3187ee; outline-offset: 4px; border-radius: 3px; }

.v1-service-page--gouttieres-shawinigan .v1-locality-section { padding-block: 28px 38px; background: #fff; }
.v1-service-page--gouttieres-shawinigan .v1-locality-inner { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr); align-items: center; gap: 24px 48px; max-width: 1020px; padding-top: 26px; border-top: 1px solid #e4ebf1; }
.v1-service-page--gouttieres-shawinigan .v1-locality-title { display: flex; align-items: flex-start; gap: 10px; }
.v1-service-page--gouttieres-shawinigan .v1-locality-title svg { width: 22px; height: 22px; flex: 0 0 22px; margin-top: 2px; fill: none; stroke: #2676d2; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.v1-service-page--gouttieres-shawinigan .v1-locality-title h2 { margin: 0; color: #1b3042; font-size: 19px; line-height: 1.35; }
.v1-service-page--gouttieres-shawinigan .v1-locality-inner > p { margin: 0; color: #506171; line-height: 1.65; }

@media (max-width: 760px) {
  .v1-service-page--gouttieres-shawinigan > .v1-content-section { padding-block: 30px; }
  .v1-service-page--gouttieres-shawinigan .v1-content-section > .container { width: min(100% - 32px, 1080px); }
  .v1-service-page--gouttieres-shawinigan .v1-intro-layout { grid-template-columns: 1fr; gap: 8px; }
  .v1-service-page--gouttieres-shawinigan .v1-actions { margin-top: 7px; }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-item:first-child { grid-column: 1 / -1; }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-placeholder { min-height: 174px; }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-item:first-child .v1-gallery-placeholder { min-height: 226px; }
  .v1-service-page--gouttieres-shawinigan .v1-request-layout { grid-template-columns: 1fr; gap: 21px; }
  .v1-service-page--gouttieres-shawinigan .v1-details-layout,
  .v1-service-page--gouttieres-shawinigan .v1-locality-inner { grid-template-columns: 1fr; gap: 20px; }
  .v1-service-page--gouttieres-shawinigan .v1-details-heading { position: static; }
}
@media (max-width: 460px) {
  .v1-service-page--gouttieres-shawinigan .v1-content-section > .container { width: min(100% - 28px, 1080px); }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-grid { grid-template-columns: 1fr; }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-item:first-child { grid-column: auto; }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-placeholder,
  .v1-service-page--gouttieres-shawinigan .v1-gallery-item:first-child .v1-gallery-placeholder { min-height: 205px; }
  .v1-service-page--gouttieres-shawinigan .v1-request-fields { grid-template-columns: 1fr; }
  .v1-service-page--gouttieres-shawinigan .v1-request-field-wide { grid-column: auto; }
}

/* Ajustements du pilote fidèle à la V1. */
.v1-service-page--gouttieres-shawinigan .v1-request-heading > p { margin: 0 0 9px; color: #c6d2df; line-height: 1.55; }
.v1-service-page--gouttieres-shawinigan .v1-request-heading > p strong { color: #fff; }
.v1-service-page--gouttieres-shawinigan .v1-request-heading > small { display: block; margin-top: 13px; color: #9eacbb; line-height: 1.45; }
.v1-service-page--gouttieres-shawinigan .v1-request-contacts { display: flex; flex-wrap: wrap; gap: 7px 18px; margin-top: 14px; }
.v1-service-page--gouttieres-shawinigan .v1-request-contacts a { color: #9bc9ff; font-weight: 700; text-underline-offset: 3px; }
.v1-service-page--gouttieres-shawinigan .v1-request-contacts a:focus-visible { outline: 3px solid #9bc9ff; outline-offset: 4px; border-radius: 2px; }
.v1-service-page--gouttieres-shawinigan .v1-details-copy ul { margin: 9px 0 0; padding-left: 21px; color: #506171; }
.v1-service-page--gouttieres-shawinigan .v1-details-copy li { margin: 0 0 7px; line-height: 1.58; }
.v1-service-page--gouttieres-shawinigan .v1-detail-note { margin-top: 12px !important; color: #334b5d !important; font-weight: 650; }
.v1-service-page--gouttieres-shawinigan .v1-article-link { margin: 13px 0 0; }
.v1-service-page--gouttieres-shawinigan .v1-article-link a { color: #1769c2; font-weight: 700; text-underline-offset: 3px; }
.v1-service-page--gouttieres-shawinigan .v1-locality-title { display: block; }
.v1-service-page--gouttieres-shawinigan .v1-locality-copy p { margin: 0 0 8px; color: #506171; line-height: 1.65; }
.v1-service-page--gouttieres-shawinigan .v1-locality-copy p:last-child { margin-bottom: 0; }
.v1-service-page--gouttieres-shawinigan .v1-locality-note { color: #667686 !important; font-size: 14px; }

/* FPMS V2 — pilote conversion en premier : surcharge limitée à la page gouttières. */
.v1-service-page--gouttieres-shawinigan .v1-service-intro {padding:30px 0 20px;background:#fff}
.v1-service-page--gouttieres-shawinigan .v1-intro-layout {display:flex;align-items:center;justify-content:space-between;gap:20px 36px}
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-prose {max-width:650px}
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-prose p {margin:0 0 5px;font-size:16px;line-height:1.65}
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-actions {flex-shrink:0;gap:9px}
.v1-service-page--gouttieres-shawinigan .v1-project-gallery {padding:12px 0 36px}
.v1-service-page--gouttieres-shawinigan .v1-gallery-heading {padding-top:16px;margin-bottom:15px}
.v1-service-page--gouttieres-shawinigan .v1-gallery-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.v1-service-page--gouttieres-shawinigan .v1-gallery-placeholder {min-height:175px;background:#f3f6fa;border-color:#d4dde8;border-radius:12px}
.v1-service-page--gouttieres-shawinigan .v1-gallery-item figcaption {font-size:13px;color:#566779}
.v1-service-page--gouttieres-shawinigan .v1-request-mockup {padding:36px 0;background:#101b27}
.v1-service-page--gouttieres-shawinigan .v1-request-layout {grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:36px}
.v1-service-page--gouttieres-shawinigan .v1-request-heading h2 {font-size:clamp(30px,3.4vw,43px);max-width:12ch}
.v1-service-page--gouttieres-shawinigan .v1-request-heading > p:not(.eyebrow) {color:#dbe5ee;font-size:16px}
.v1-service-page--gouttieres-shawinigan .v1-request-card {box-shadow:none}
.v1-service-page--gouttieres-shawinigan .v1-service-details {padding:38px 0;background:#f7f9fb}
.v1-service-page--gouttieres-shawinigan .v1-details-layout {display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px;max-width:1040px}
.v1-service-page--gouttieres-shawinigan .v1-details-heading {position:static}
.v1-service-page--gouttieres-shawinigan .v1-details-heading h2 {font-size:23px;line-height:1.25}
.v1-service-page--gouttieres-shawinigan .v1-details-summary {font-size:13px;color:#718294;line-height:1.6;margin-top:9px}
.v1-service-page--gouttieres-shawinigan .v1-details-copy {max-width:73ch;font-size:14px;color:#5d6b7b}
.v1-service-page--gouttieres-shawinigan .v1-details-copy > p {margin-top:0;line-height:1.7}
.v1-service-page--gouttieres-shawinigan .v1-detail-group + .v1-detail-group {margin-top:18px;padding-top:16px}
.v1-service-page--gouttieres-shawinigan .v1-detail-group h3 {font-size:16px}
.v1-service-page--gouttieres-shawinigan .v1-detail-group p {font-size:14px;line-height:1.65;margin-bottom:9px}
.v1-service-page--gouttieres-shawinigan .v1-details-copy li {font-size:14px;line-height:1.5;margin-bottom:5px}
.v1-service-page--gouttieres-shawinigan .v1-locality-section {padding:21px 0 32px}
.v1-service-page--gouttieres-shawinigan .v1-locality-inner {grid-template-columns:200px 1fr;gap:20px;padding-top:17px}
.v1-service-page--gouttieres-shawinigan .v1-locality-title h2 {font-size:16px}
.v1-service-page--gouttieres-shawinigan .v1-locality-copy p {font-size:13px;line-height:1.6;margin-bottom:4px}
@media(max-width:850px){
 .v1-service-page--gouttieres-shawinigan .v1-intro-layout {flex-direction:column;align-items:flex-start}
 .v1-service-page--gouttieres-shawinigan .v1-request-layout {grid-template-columns:1fr;gap:24px}
 .v1-service-page--gouttieres-shawinigan .v1-details-layout {grid-template-columns:1fr;gap:15px}
 .v1-service-page--gouttieres-shawinigan .v1-locality-inner {grid-template-columns:1fr;gap:10px}
}
@media(max-width:600px){
 .v1-service-page--gouttieres-shawinigan .v1-gallery-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 .v1-service-page--gouttieres-shawinigan .v1-gallery-item:first-child {grid-column:1/-1}
 .v1-service-page--gouttieres-shawinigan .v1-gallery-placeholder,.v1-service-page--gouttieres-shawinigan .v1-gallery-item:first-child .v1-gallery-placeholder {min-height:142px}
 .v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-actions {flex-wrap:wrap;white-space:normal}
 .v1-service-page--gouttieres-shawinigan .v1-request-fields {grid-template-columns:1fr}
}

/* Deux sujets complémentaires distincts : titres alignés à gauche, contenu à droite. */
.v1-service-page--gouttieres-shawinigan .v1-details-stack { max-width: 1040px; }
.v1-service-page--gouttieres-shawinigan .v1-details-row { max-width: none; }
.v1-service-page--gouttieres-shawinigan .v1-details-row + .v1-details-row {
  margin-top: 28px;
  padding-top: 28px;
  border-top: 1px solid #dfe7ee;
}
.v1-service-page--gouttieres-shawinigan .v1-details-row .v1-details-copy > ul:first-child { margin-top: 0; }
@media (max-width: 850px) {
  .v1-service-page--gouttieres-shawinigan .v1-details-row { grid-template-columns: 1fr; gap: 15px; }
}

/* Réalisations FPMS : photographies authentiques, format cohérent */
.v1-service-page--gouttieres-shawinigan .v1-gallery-photo {display:block;width:100%;height:230px;object-fit:cover;object-position:center 48%;border-radius:12px;background:#e8eff6;}
@media(max-width:760px){.v1-service-page--gouttieres-shawinigan .v1-gallery-photo{height:205px}}

/* Grille flexible pour cinq photos authentiques sur la page pilote. */
@media (min-width: 761px) {
  /* Disposition 3 + 2 centrée réservée aux galeries de cinq photos. */
  .v1-service-page--gouttieres-shawinigan .v1-gallery-grid--five { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-grid--five .v1-gallery-item { grid-column:span 2; }
  .v1-service-page--gouttieres-shawinigan .v1-gallery-grid--five .v1-gallery-item:nth-last-child(2) { grid-column:2 / span 2; }
}
@media (max-width:760px) {
 .v1-service-page--gouttieres-shawinigan .v1-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .v1-service-page--gouttieres-shawinigan .v1-gallery-item:first-child { grid-column: auto; }
 .v1-service-page--gouttieres-shawinigan .v1-gallery-item:last-child { grid-column:1/-1; }
}
@media (max-width:460px) {
 .v1-service-page--gouttieres-shawinigan .v1-gallery-grid { grid-template-columns:1fr; }
 .v1-service-page--gouttieres-shawinigan .v1-gallery-item { grid-column:auto !important; }
}

/* Catalogue FPMS V2 : révision ciblée de « Nos services ». N'affecte pas le pilote gouttières. */
.fpms-catalog-hero { background:#0b1118; padding-block:64px 70px; }
.fpms-catalog-hero .page-hero-inner { max-width:1160px; }
.fpms-catalog-hero h1 { max-width:800px; }
.fpms-catalog-hero .hero-lede { max-width:690px; }
.fpms-catalog-market { padding-block:52px 42px; }
.fpms-catalog-head { margin-bottom:24px; }
.fpms-catalog-head h2 { color:#172330; font-size:clamp(28px,3vw,38px); margin:0 0 5px; }
.fpms-catalog-head p:last-child { color:#526171; margin:0; }
.fpms-market-choices { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px; }
.fpms-market-choice { min-height:214px; padding:19px; gap:13px; }
.fpms-market-choice .market-card-copy strong { font-size:18px; }
.fpms-market-choice .market-card-copy > span { font-size:13px; }
.fpms-market-choice .market-select-button { margin-top:auto; }
.fpms-filter-line { display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px; }
.fpms-filter-line .market-filter-status { margin:0; }
.fpms-filter-line .catalog-reset { margin:0; }
.fpms-catalog-list { background:#fff; }
.fpms-service-group { background:#fff; border-top:1px solid #e4eaf0; padding-block:30px 39px; }
.fpms-service-group:nth-of-type(even) { background:#f7f9fb; }
.fpms-group-head { display:flex; align-items:baseline; justify-content:space-between;gap:28px; margin-bottom:17px; }
.fpms-group-head h2 { color:#172330; font-size:clamp(24px,2.5vw,31px); margin:0; }
.fpms-group-head p { max-width:440px; color:#526171; font-size:14px; margin:0; }
.fpms-catalog-services { gap:13px; }
.fpms-service-tile { min-height:145px; box-shadow:none; background:#fff; }
.fpms-service-tile:hover { border-color:#8eb9e3; }
.fpms-service-tile .service-illustration { flex-shrink:0; }
.fpms-service-tile .service-card-body strong { font-size:17px; }
.fpms-service-tile .service-card-description { font-size:13px; }
.fpms-service-tile .card-link { margin-top:auto; font-size:12px; }
.fpms-catalog-close { background:#101c29; text-align:center; padding-block:55px; }
.fpms-catalog-close h2 { color:#fff; margin:0 0 9px; }
.fpms-catalog-close p { max-width:630px; margin:0 auto 24px; color:#cad5e1; }
@media(max-width:960px){.fpms-market-choices{grid-template-columns:repeat(2,minmax(0,1fr));}.fpms-group-head{display:block}.fpms-group-head p{margin-top:6px}}
@media(max-width:600px){.fpms-market-choices{grid-template-columns:1fr}.fpms-market-choice{min-height:0;}.fpms-catalog-market{padding-block:35px}.fpms-service-group{padding-block:27px}.fpms-catalog-hero{padding-block:43px}.fpms-catalog-close{padding-block:40px}}

/* Catalogue FPMS V2 : révision ciblée de « Nos services ». N'affecte pas le pilote gouttières. */
.fpms-catalog-hero { background:#0b1118; padding-block:64px 70px; }
.fpms-catalog-hero .page-hero-inner { max-width:1160px; }
.fpms-catalog-hero h1 { max-width:800px; }
.fpms-catalog-hero .hero-lede { max-width:690px; }
.fpms-catalog-market { padding-block:52px 42px; }
.fpms-catalog-head { margin-bottom:24px; }
.fpms-catalog-head h2 { color:#172330; font-size:clamp(28px,3vw,38px); margin:0 0 5px; }
.fpms-catalog-head p:last-child { color:#526171; margin:0; }
.fpms-market-choices { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px; }
.fpms-market-choice { min-height:214px; padding:19px; gap:13px; }
.fpms-market-choice .market-card-copy strong { font-size:18px; }
.fpms-market-choice .market-card-copy > span { font-size:13px; }
.fpms-market-choice .market-select-button { margin-top:auto; }
.fpms-filter-line { display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px; }
.fpms-filter-line .market-filter-status { margin:0; }
.fpms-filter-line .catalog-reset { margin:0; }
.fpms-catalog-list { background:#fff; }
.fpms-service-group { background:#fff; border-top:1px solid #e4eaf0; padding-block:30px 39px; }
.fpms-service-group:nth-of-type(even) { background:#f7f9fb; }
.fpms-group-head { display:flex; align-items:baseline; justify-content:space-between;gap:28px; margin-bottom:17px; }
.fpms-group-head h2 { color:#172330; font-size:clamp(24px,2.5vw,31px); margin:0; }
.fpms-group-head p { max-width:440px; color:#526171; font-size:14px; margin:0; }
.fpms-catalog-services { gap:13px; }
.fpms-service-tile { min-height:145px; box-shadow:none; background:#fff; }
.fpms-service-tile:hover { border-color:#8eb9e3; }
.fpms-service-tile .service-illustration { flex-shrink:0; }
.fpms-service-tile .service-card-body strong { font-size:17px; }
.fpms-service-tile .service-card-description { font-size:13px; }
.fpms-service-tile .card-link { margin-top:auto; font-size:12px; }
.fpms-catalog-close { background:#101c29; text-align:center; padding-block:55px; }
.fpms-catalog-close h2 { color:#fff; margin:0 0 9px; }
.fpms-catalog-close p { max-width:630px; margin:0 auto 24px; color:#cad5e1; }
@media(max-width:960px){.fpms-market-choices{grid-template-columns:repeat(2,minmax(0,1fr));}.fpms-group-head{display:block}.fpms-group-head p{margin-top:6px}}
@media(max-width:600px){.fpms-market-choices{grid-template-columns:1fr}.fpms-market-choice{min-height:0;}.fpms-catalog-market{padding-block:35px}.fpms-service-group{padding-block:27px}.fpms-catalog-hero{padding-block:43px}.fpms-catalog-close{padding-block:40px}}


/* FPMS V2 — Le catalogue entier garde les cartes FPMS, avec ou sans filtre.
   Le choix des profils conserve son apparence existante. */
.fpms-catalog-list { background:#13171d; }
.fpms-catalog-list .fpms-service-group,
.fpms-catalog-list .fpms-service-group:nth-of-type(even) {
  background:#202329; border-top:1px solid rgba(255,255,255,.08); padding-block:37px 46px;
}
.fpms-catalog-list .fpms-service-group:nth-of-type(even) { background:#25282e; }
.fpms-catalog-list .fpms-group-head h2 { color:#f7f8fb; }
.fpms-catalog-list .fpms-group-head p { color:#ccd3dd; }
.fpms-catalog-list .fpms-catalog-services { gap:17px; }
.fpms-catalog-list .fpms-service-tile {
  --tile-accent:#5eb6ff; --tile-accent-dark:#165c9e;
  background:linear-gradient(155deg,#32353a,#292c32); border:1px solid rgba(255,255,255,.16);
  border-radius:17px; padding:22px 19px; min-height:190px;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px;
  box-shadow:0 6px 16px rgba(0,0,0,.14); transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.fpms-catalog-list .fpms-service-tile:hover {
  transform:translateY(-3px); border-color:var(--tile-accent); box-shadow:0 12px 22px rgba(0,0,0,.22);
}
.fpms-catalog-list .fpms-service-tile .service-illustration {
  width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--tile-accent) 16%,#25282e);
  color:var(--tile-accent);border-radius:16px;
}
.fpms-catalog-list .fpms-service-tile .service-illustration svg {width:33px;height:33px;}
.fpms-catalog-list .fpms-service-tile .service-card-body {
  display:flex;flex-direction:column;align-items:center; flex:1; width:100%;
}
.fpms-catalog-list .fpms-service-tile .service-card-body strong {
  color:#fff;font-size:17px;line-height:1.3;
}
.fpms-catalog-list .fpms-service-tile .service-card-description {
  color:#d7dce5;font-size:13px;line-height:1.5; margin:8px 0 13px;
}
.fpms-catalog-list .fpms-service-tile .card-link {
  display:inline-flex;justify-content:center;align-items:center;margin-top:auto;padding:9px 16px;
  border-radius:999px;background:var(--tile-accent-dark);color:white;font-size:13px;font-weight:800;
  width:min(100%,192px);transition:filter .16s ease;
}
.fpms-catalog-list .fpms-service-tile:hover .card-link {filter:brightness(1.19);}
.fpms-catalog-list [data-catalog-category="nettoyage"] .fpms-service-tile {--tile-accent:#65b3ff;--tile-accent-dark:#1569ad;}
.fpms-catalog-list [data-catalog-category="exterieur"] .fpms-service-tile {--tile-accent:#87d97e;--tile-accent-dark:#317c39;}
.fpms-catalog-list [data-catalog-category="piscines"] .fpms-service-tile {--tile-accent:#61d5e8;--tile-accent-dark:#147c97;}
.fpms-catalog-list [data-catalog-category="hiver"] .fpms-service-tile {--tile-accent:#a3c7ff;--tile-accent-dark:#416aa6;}
.fpms-catalog-list [data-catalog-category="interventions"] .fpms-service-tile {--tile-accent:#ffb578;--tile-accent-dark:#ae6227;}
@media(max-width:600px){
  .fpms-catalog-list .fpms-catalog-services {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .fpms-catalog-list .fpms-service-tile {padding:17px 11px; min-height:190px;}
  .fpms-catalog-list .fpms-service-tile .service-card-body strong {font-size:15px;}
  .fpms-catalog-list .fpms-service-tile .service-card-description {font-size:12px;}
  .fpms-catalog-list .fpms-service-tile .card-link {font-size:12px;padding:9px;}
}
@media(prefers-reduced-motion:reduce){.fpms-catalog-list .fpms-service-tile {transition:none;}}

/* Emojis distincts par service, sur tous les marchés, inspirés de FPMS V1.
   Le choix des profils demeure inchangé. */
.fpms-service-tile .service-icon-residentiel { display:none; }
.fpms-catalog-list .fpms-service-tile:has(.service-icon-residentiel) .service-icon-default { display:none; }
.fpms-catalog-list .fpms-service-tile .service-icon-residentiel {
  display:block; font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  font-size:34px; line-height:1.2; text-align:center; font-weight:400;
}
.fpms-catalog-list .fpms-service-tile .service-illustration:has(.service-icon-residentiel) {
  background:transparent; border-radius:0;
}

/* Garantit le masquage des catégories filtrées, même avec les styles des sections. */
.fpms-catalog-list .fpms-service-group[hidden] {display:none !important;}

/* Accueil FPMS V2 — styles autonomes, sans changer les pages de services */
.fpms-home-hero { min-height: 590px; }
.fpms-home-hero .hero-content { padding-block: 84px; }
.fpms-home-hero h1 { font-size: clamp(38px,5.6vw,68px); }
.fpms-home-profiles, .fpms-home-work, .fpms-home-media { padding: 64px 0; background: #fff; color: #15202b; }
.fpms-home-profiles { background: #f5f8fc; }
.fpms-home-heading { display:flex; align-items:end; justify-content:space-between; gap: 22px; margin-bottom: 24px; }
.fpms-home-heading h2 { margin-bottom: 7px; font-size: clamp(27px,3vw,39px); }
.fpms-home-heading p:not(.eyebrow) { color:#59697b; margin: 0; max-width: 640px; }
.fpms-home-market-grid { display:grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.fpms-home-market { display:flex; flex-direction:column; gap:9px; padding:22px; border:1px solid #d8e2ec; border-radius:16px; background:#fff; color:#17283b; text-decoration:none; box-shadow:0 10px 24px rgba(10,30,50,.045); transition: transform .15s ease,border-color .15s ease; }
.fpms-home-market:hover { transform:translateY(-3px); border-color:#3c8af2; }
.fpms-home-market-emoji { font-size:30px; line-height:1.25; }
.fpms-home-market strong { font-size:19px; line-height:1.22; }
.fpms-home-market > span:not(.fpms-home-market-emoji) { font-size:13px; line-height:1.5; color:#566677; flex:1; }
.fpms-home-market b { color:#176ed4; font-size:13px; }
.fpms-home-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.fpms-home-photo-grid a { position:relative; min-height:255px; border-radius:15px; overflow:hidden; text-decoration:none; background:#263444; }
.fpms-home-photo-grid img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .2s ease; }
.fpms-home-photo-grid a:hover img { transform:scale(1.035); }
.fpms-home-photo-grid a:after { content:''; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(4,12,22,.85)); }
.fpms-home-photo-grid a > span { position:absolute; left:20px; right:15px; bottom:17px; z-index:1; color:white; font-size:19px; font-weight:800; }
.fpms-home-photo-grid a b { display:block; font-size:12px; color:#a5d0ff; padding-top:3px; }
.fpms-home-story { background:#101a25; padding: 65px 0; color:#fff; }
.fpms-home-story-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap: 62px; }
.fpms-home-story h2 { font-size:clamp(29px,3.6vw,43px); }
.fpms-home-story-layout > div:last-child { color:#c3cfdb; }
.fpms-home-media { background:#f5f8fc; }
.fpms-home-media-feature { display:grid; grid-template-columns:1fr .85fr; overflow:hidden; border-radius:17px; background:#112030; color:#fff; margin-bottom: 18px; }
.fpms-home-media-feature > div { padding:34px; }
.fpms-media-label { font-size:11px; font-weight:800; color:#90c2ff; letter-spacing:.08em; text-transform:uppercase; }
.fpms-home-media-feature h3 { font-size:clamp(25px,3vw,34px); margin-top:14px; }
.fpms-home-media-feature p { color:#bac9d8; }
.fpms-home-media-feature img { width:100%; height:100%; min-height:290px; object-fit:cover; }
.fpms-home-media-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.fpms-home-media-card { display:flex; flex-direction:column; gap:8px; padding:21px; border:1px solid #dce4ee; border-radius:12px; background:#fff; color:#182838; text-decoration:none; }
.fpms-home-media-card:hover { border-color:#2d7ddd; }
.fpms-home-media-card span { color:#64758a; font-size:12px; }
.fpms-home-media-card strong { font-size:16px; line-height:1.35; flex:1; }
.fpms-home-media-card b { color:#176ed4; font-size:12px; }
.fpms-home-final { background:#0b131c; padding:50px 0; }
.fpms-home-final-inner { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.fpms-home-final h2 { margin-bottom:8px; font-size:clamp(29px,3.5vw,43px); }
.fpms-home-final p:not(.eyebrow) { margin:0; color:#bfcbda; }
@media(max-width:900px) { .fpms-home-market-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .fpms-home-media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .fpms-home-photo-grid a { min-height:210px; } }
@media(max-width:640px) { .fpms-home-profiles,.fpms-home-work,.fpms-home-media { padding:43px 0; } .fpms-home-hero { min-height:540px; } .fpms-home-heading,.fpms-home-final-inner { align-items:flex-start; flex-direction:column; } .fpms-home-market-grid { grid-template-columns:1fr 1fr; gap:10px; } .fpms-home-market { padding:15px; } .fpms-home-market strong { font-size:16px; } .fpms-home-photo-grid { grid-template-columns:1fr; } .fpms-home-photo-grid a { min-height:230px; } .fpms-home-story-layout,.fpms-home-media-feature { grid-template-columns:1fr; gap:12px; } .fpms-home-story { padding:48px 0; } .fpms-home-media-feature img { min-height:200px; max-height:240px; } .fpms-home-media-grid { grid-template-columns:1fr; } }


/* Accueil : deux dossiers médias autonomes, liens intégrés au reportage concerné. */
.fpms-home-media-feature--story { margin-bottom:22px; }
.fpms-home-media-feature--story > .fpms-home-media-feature-content { min-width:0; padding:32px; }
.fpms-home-media-feature--story > img { min-width:0; object-position:center; }
.fpms-home-media-links { display:grid; gap:7px; margin-top:18px; }
.fpms-home-media-links a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 10px; padding:10px 12px; border-radius:9px; border:1px solid rgba(255,255,255,.16); color:#fff; text-decoration:none; background:rgba(255,255,255,.07); }
.fpms-home-media-links a:hover,.fpms-home-media-links a:focus-visible { background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.4); }
.fpms-home-media-links a span:first-child { grid-column:1; color:#afc8e1; font-size:11px; }
.fpms-home-media-links a strong { grid-column:1; font-size:13px; font-weight:600; line-height:1.3; }
.fpms-home-media-links a span:last-child { grid-column:2; grid-row:1 / span 2; align-self:center; font-size:18px; }
@media(max-width:640px) { .fpms-home-media-feature--story > .fpms-home-media-feature-content { padding:23px; } }

/* À propos : présentation commune aux deux chemins de ressources. */
.fpms-story-hero{background:#0b141e;color:#fff;padding:clamp(55px,7vw,92px) 0}
.fpms-story-hero-grid{display:grid;grid-template-columns:1.05fr .85fr;gap:clamp(28px,6vw,90px);align-items:center}
.fpms-story-hero h1{font-size:clamp(39px,5.1vw,67px);line-height:1.06;letter-spacing:-.035em;max-width:780px;margin:13px 0 22px;color:#f2f6fb}
.fpms-story-lede{font-size:clamp(18px,1.6vw,22px);line-height:1.65;color:#cbd9e8;max-width:650px;margin:0 0 30px}
.fpms-story-portrait{margin:0;min-width:0}
.fpms-story-portrait img{width:100%;height:clamp(350px,40vw,510px);object-fit:cover;object-position:center 26%;border-radius:22px;display:block;box-shadow:0 18px 55px rgba(0,0,0,.19)}
.fpms-story-portrait figcaption{color:#a9bcd0;font-size:13px;padding-top:10px}
.fpms-story-section{padding:clamp(54px,6vw,86px) 0}
.fpms-story-white{background:#fff}
.fpms-story-soft{background:#f3f7fb}
.fpms-story-layout{display:grid;grid-template-columns:minmax(235px,.68fr) minmax(0,1.3fr);gap:clamp(32px,7vw,112px);align-items:start}
.fpms-story-side h2{font-size:clamp(28px,3.1vw,42px);line-height:1.15;letter-spacing:-.025em;margin:12px 0 0;color:#102235}
.fpms-story-prose{max-width:720px;color:#40556b;font-size:clamp(16px,1.25vw,18px);line-height:1.78}
.fpms-story-prose p{margin:0 0 19px}
.fpms-story-prose strong{color:#172a40}
.fpms-story-quote{border-left:4px solid #287cf0;padding:11px 0 11px 22px;font-size:clamp(19px,1.8vw,24px);font-weight:700;line-height:1.48;color:#13283d;margin-top:22px!important}
.fpms-story-market-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.fpms-story-market-links a{display:inline-block;border:1px solid #d4e2f1;background:#fff;color:#123454;padding:10px 13px;border-radius:12px;text-decoration:none;font-size:14px;font-weight:700}
.fpms-story-market-links a:hover{border-color:#2979e8;color:#1263c6}
.fpms-story-cta{background:#101d2a;color:#fff;padding:clamp(54px,6vw,78px) 0}
.fpms-story-cta-inner{display:flex;gap:28px;align-items:center;justify-content:space-between}
.fpms-story-cta h2{color:#fff;font-size:clamp(30px,3.8vw,46px);margin:10px 0 14px}
.fpms-story-cta p:not(.eyebrow){color:#c9d9e8;margin:0}
.fpms-story-actions{display:flex;flex-wrap:wrap;gap:12px;flex-shrink:0}
.fpms-story-secondary{border:1px solid #829ab3;color:#fff!important;background:transparent}
@media(max-width:760px){.fpms-story-hero-grid,.fpms-story-layout{grid-template-columns:1fr}.fpms-story-hero{padding:48px 0}.fpms-story-portrait img{height:360px}.fpms-story-section{padding:48px 0}.fpms-story-cta-inner{display:block}.fpms-story-actions{margin-top:24px}.fpms-story-side h2{max-width:570px}}

/* Présentation cohérente d'une galerie de service avec une seule photo réelle. */
.v1-service-page--gouttieres-shawinigan .v1-gallery-grid--single {
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
}
.v1-service-page--gouttieres-shawinigan .v1-gallery-grid--single .v1-gallery-item {
  grid-column: auto;
  width: 100%;
}
.v1-service-page--gouttieres-shawinigan .v1-gallery-grid--single .v1-gallery-photo {
  height: auto;
  max-height: 440px;
  object-fit: contain;
}


/* Dispositions de galerie et d’en-tête texte seul pour les pages résidentielles migrées.
   Les trois pages pilotes existantes conservent leur balisage et leurs règles actuelles. */
.v1-service-page--residential-migrated .v1-gallery-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; margin-inline: auto; }
.v1-service-page--residential-migrated .v1-gallery-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v1-service-page--residential-migrated .v1-gallery-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; margin-inline: auto; }
.v1-service-page--residential-migrated .v1-service-hero-grid--text-only { grid-template-columns: minmax(0, 1fr); }
.v1-service-page--residential-migrated .v1-service-hero-grid--text-only .service-hero-copy { max-width: 900px; }
@media (max-width: 760px) {
  .v1-service-page--residential-migrated .v1-gallery-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 460px) {
  .v1-service-page--residential-migrated .v1-gallery-grid--two,
  .v1-service-page--residential-migrated .v1-gallery-grid--three,
  .v1-service-page--residential-migrated .v1-gallery-grid--four { grid-template-columns: 1fr; }
}

/* Sélecteur de marché des pages de service — composant isolé. */
.service-market-selector { padding: 25px 0; color: var(--text-dark); background: var(--paper-2); border-block: 1px solid #dce5ed; }
.service-market-selector-inner { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.5fr); gap: 26px; align-items: center; }
.service-market-selector-heading h2 { margin: 0 0 5px; color: #15202b; font-size: clamp(20px, 2.2vw, 25px); line-height: 1.2; letter-spacing: -.025em; }
.service-market-selector-heading p { margin: 0; color: #526171; font-size: 14px; line-height: 1.5; }
.service-market-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.service-market-option { min-height: 56px; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 14px; color: #17344f; background: #fff; border: 1px solid #cfdbe6; border-radius: 12px; font-size: 14px; font-weight: 740; line-height: 1.3; text-decoration: none; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease; }
.service-market-option:hover { border-color: #75a8e8; background: #fafdff; box-shadow: 0 5px 15px rgba(20,55,90,.08); transform: translateY(-1px); }
.service-market-option:focus-visible { outline: 3px solid #287df2; outline-offset: 3px; }
.service-market-option.is-current { color: #124f9d; background: #e8f1ff; border-color: #6ea2e9; box-shadow: inset 0 0 0 1px rgba(40,125,242,.12); }
.service-market-current-label { color: #315b86; font-size: 10px; font-weight: 700; text-align: right; }
.service-market-arrow { color: #216ed0; font-size: 19px; line-height: 1; }
@media (max-width: 820px) { .service-market-selector-inner { grid-template-columns: 1fr; gap: 15px; } }
@media (max-width: 600px) { .service-market-selector { padding: 20px 0; } .service-market-options { grid-template-columns: 1fr; gap: 8px; } .service-market-option { min-height: 50px; } }

/* Gabarit partagé : lien secondaire vers les informations complémentaires. */
.v1-service-page--gouttieres-shawinigan .v1-intro-layout .v1-actions { flex-direction: column; align-items: stretch; }
.v1-service-page--gouttieres-shawinigan .v1-actions .v1-details-jump { color: #205caa; background: #fff; border: 1px solid #a6c3e5; box-shadow: none; text-align: center; }
.v1-service-page--gouttieres-shawinigan .v1-actions .v1-details-jump:hover { color: #134680; background: #edf5ff; border-color: #5793da; }
.v1-service-page--gouttieres-shawinigan .v1-service-details#details-service { scroll-margin-top: 84px; }

/* Les mêmes cartes de sélection sur l’accueil et dans Mes services. */
.fpms-catalog-home-grid .fpms-catalog-home-card {
  display:flex; flex-direction:column; align-items:stretch; min-height:0;
  gap:9px; padding:22px; border:1px solid #d8e2ec; border-radius:16px;
  box-shadow:0 10px 24px rgba(10,30,50,.045);
}
.fpms-catalog-home-grid .fpms-catalog-home-card:hover { border-color:#3c8af2; }
.fpms-catalog-home-grid .fpms-catalog-home-card > span:not(.fpms-home-market-emoji) { flex:1; }
.fpms-catalog-home-select {
  display:block; width:max-content; padding:0; margin-top:auto;
  border:0; background:transparent; font:700 13px/1.5 inherit;
  font-size:13px; font-weight:700; font-family:inherit;
  color:#176ed4; text-align:left; cursor:pointer;
}
.fpms-catalog-home-select:focus-visible { outline:2px solid #176ed4; outline-offset:4px; border-radius:3px; }
.fpms-catalog-home-card.is-selected { border-color:#176fc9; box-shadow:0 0 0 2px rgba(23,111,201,.18),0 12px 28px rgba(17,36,55,.08); }
@media(max-width:640px) { .fpms-catalog-home-grid .fpms-catalog-home-card { padding:15px; flex-direction:column; } }

/* FPMS: montage avant/apres sans recadrage, exclusivement galerie desencombrement. */
.v1-service-page--gouttieres-shawinigan .v1-gallery-grid--desencombrement .v1-gallery-image-link {
 display:flex; align-items:center; justify-content:center; width:100%; height:230px;
 background:#e8eff6; border-radius:12px; overflow:hidden;
}
.v1-service-page--gouttieres-shawinigan .v1-gallery-grid--desencombrement .v1-gallery-photo--contain {
 display:block; width:100%; height:100%; object-fit:contain; object-position:center; border-radius:0;
}
@media(max-width:760px){
 .v1-service-page--gouttieres-shawinigan .v1-gallery-grid--desencombrement .v1-gallery-image-link{height:205px;}
}

/* Affichage partagé des montages avant/après sur toutes les pages de service.
   Les photos ordinaires conservent object-fit: cover. */
.v1-service-page .v1-gallery-grid .v1-gallery-photo.v1-gallery-photo--contain {
  display:block; width:100%; height:230px; object-fit:contain; object-position:center;
  background:#e8eff6; border-radius:12px;
}
@media(max-width:760px){
  .v1-service-page .v1-gallery-grid .v1-gallery-photo.v1-gallery-photo--contain {height:205px;}
}

/* FPMS 2026-10-18 : montages avant/apres, toutes pages V1 de services */
.v1-service-page--gouttieres-shawinigan .v1-gallery-grid img.v1-gallery-photo--contain {
  width:100%; height:230px; object-fit:contain; object-position:center; background:#e8eff6;
}
@media(max-width:760px){.v1-service-page--gouttieres-shawinigan .v1-gallery-grid img.v1-gallery-photo--contain{height:205px}}

/* Mandat 4.5 : ajouts limités à À propos; les autres pages gardent leur présentation. */
.fpms-founder{scroll-margin-top:105px}
.fpms-founder-grid{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.3fr);gap:clamp(28px,5vw,72px);align-items:center}
.fpms-founder-photo{margin:0;min-width:0}
.fpms-founder-photo img{display:block;width:100%;height:auto;border-radius:16px}
.fpms-founder-photo figcaption{color:#617386;font-size:13px;margin-top:10px}
.fpms-founder h2{font-size:clamp(28px,3.1vw,42px);line-height:1.18;letter-spacing:-.025em;color:#102235;margin:0 0 26px}
.fpms-community{border-top:1px solid #e5edf5}
.fpms-community-copy{max-width:790px;margin:0 auto;color:#40556b;font-size:clamp(16px,1.25vw,18px);line-height:1.78}
.fpms-community-copy p{margin:0 0 20px}
.fpms-community-photos{display:flex;flex-wrap:wrap;gap:22px;max-width:1000px;margin:38px auto 0}
.fpms-community-photos figure{flex:1 1 280px;min-width:0;max-width:768px;margin:0 auto}
.fpms-community-photos figure[hidden]{display:none}
.fpms-community-photos img{display:block;width:100%;height:auto;border-radius:12px}
@media(max-width:760px){.fpms-founder-grid{grid-template-columns:1fr}.fpms-founder-photo{max-width:520px}.fpms-founder{scroll-margin-top:85px}.fpms-community-photos{margin-top:28px}}

/* Correctif visuel 4.5.1 : page À propos, contraste et photos. */
.fpms-founder .fpms-founder-grid{display:block;max-width:860px;margin-left:auto;margin-right:auto}
.fpms-founder .fpms-founder-copy{max-width:790px;margin:0 auto}
.fpms-community.fpms-story-soft{background:#f1f5fa!important;color:#253b52!important}
.fpms-community .fpms-community-copy,.fpms-community .fpms-community-copy p{color:#34495f!important;opacity:1!important;visibility:visible!important}
.fpms-community #fpms-community-title{color:#102235!important;opacity:1!important}
.fpms-community .fpms-community-photos{max-width:790px}
.fpms-community .fpms-community-photos figure{flex:0 1 540px;max-width:540px;margin:0}
.fpms-community .fpms-community-photos img{max-height:360px;object-fit:cover;object-position:center;border-radius:14px}
@media(max-width:760px){.fpms-community .fpms-community-photos figure{flex:1 1 100%;max-width:100%}.fpms-community .fpms-community-photos img{max-height:290px}}

/* 4.5.4 — Communauté : même grille titre à gauche / contenu à droite que les autres sections À propos. */
.fpms-community .fpms-story-side h2{margin:12px 0 0;color:#102235}
.fpms-community .fpms-community-content{min-width:0}
.fpms-community .fpms-community-copy{max-width:none;margin:0}
.fpms-community .fpms-community-photos{max-width:none;margin:28px 0 0}
.fpms-community .fpms-community-photos figure{margin:0}
@media(max-width:760px){.fpms-community .fpms-community-photos{margin-top:22px}}

/* Contact — reprend la grille native des demandes de service FPMS. */
.fpms-contact-form-wrap { min-width:0; }
.fpms-contact-form-wrap .request-form { width:100%; }
.fpms-contact-alternatives-heading { margin-bottom:28px; }
.fpms-contact-alternatives-heading h2 { max-width:720px; }
.fpms-contact-alternatives .contact-card h3 { color:var(--text-dark); font-size:clamp(23px,2.7vw,31px); }
.fpms-contact-alternatives .contact-card { min-width:0; }
.fpms-contact-alternatives .contact-detail { overflow-wrap:anywhere; }
@media (max-width:760px) { .fpms-contact-alternatives-heading { margin-bottom:20px; } }

/* 4.6 — uniquement les longues galeries des services; grille inchangée dès 601 px. */
.service-gallery-counter { display:none; }
@media (max-width:600px) {
 .v1-service-page .v1-gallery-grid[data-service-carousel] {
  display:flex; gap:12px; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-padding-inline:0;
  max-width:100%; min-width:0; padding-bottom:12px; margin-inline:0;
 }
 .v1-service-page .v1-gallery-grid[data-service-carousel] > .v1-gallery-item {
  flex:0 0 88%; min-width:0; margin:0; scroll-snap-align:start;
 }
 .v1-service-page .v1-gallery-grid[data-service-carousel] .v1-gallery-photo {
  width:100%; height:205px; object-fit:cover;
 }
 .v1-service-page .v1-gallery-grid[data-service-carousel] .v1-gallery-photo--contain { object-fit:contain; }
 .v1-service-page .v1-gallery-grid[data-service-carousel] .v1-gallery-image-link { display:block; height:205px; }
 .v1-service-page .v1-gallery-grid[data-service-carousel]:focus-visible { outline:3px solid #145da0; outline-offset:4px; }
 .v1-service-page .service-gallery-counter:not([hidden]) { display:block; margin:8px 0 0; text-align:center; font-size:13px; color:#526273; }
}

/* Carrefour déneigement Shawinigan — cartes de services, sans effet sur les autres pages. */
.fpms-snow-choice h2{margin:0 0 24px}
.fpms-snow-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.fpms-snow-choice-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid #d4e1ed;border-radius:16px;background:#fff;text-decoration:none;color:#102333;box-shadow:0 8px 22px rgba(10,30,50,.08);transition:transform .2s,box-shadow .2s}
.fpms-snow-choice-card:hover,.fpms-snow-choice-card:focus-visible{transform:translateY(-3px);box-shadow:0 14px 30px rgba(10,30,50,.17)}
.fpms-snow-choice-card img{display:block;width:100%;height:235px;object-fit:cover}
.fpms-snow-choice-content{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:22px;flex:1}
.fpms-snow-choice-content strong{font-size:clamp(20px,2.1vw,27px);line-height:1.2}
.fpms-snow-choice-content>span:not(.fpms-snow-choice-cta){font-size:15px;color:#46576a}
.fpms-snow-choice-cta{display:inline-flex;gap:20px;align-items:center;justify-content:space-between;margin-top:auto;padding:13px 20px;border-radius:9px;background:#287cf0;color:#fff;font-weight:750}
@media(max-width:700px){.fpms-snow-choice-grid{grid-template-columns:1fr}.fpms-snow-choice-card img{height:205px}}
