/* Échelle commune : lisibilité, colonnes fluides et images contenues. */
:root { --content-max: 1180px; --header-max: 1440px; --footer-max: 1180px; }
body { font-size: 17px; line-height: 1.65; }
h1, .hero h1, .page-hero h1, .directory-detail-hero h1 { font-size: clamp(34px, 4vw, 56px); line-height: 1.12; letter-spacing: -.035em; }
.hero h1 { font-size:clamp(34px,3.4vw,50px); }
h2 { font-size: clamp(27px, 2.7vw, 40px); line-height: 1.18; letter-spacing: -.025em; }
h3 { font-size: 22px; line-height: 1.25; letter-spacing: -.015em; }
p, li, dd, td, th { overflow-wrap: break-word; }
.section, .section--depth, .visibility-section { padding-block: 64px; }
.section-intro { max-width: 800px; margin-bottom: 30px; }
.section-intro p, .section-intro p:last-child { font-size: 17px; line-height: 1.65; }
.hero__inner { min-height: auto; padding-block: 60px 76px; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 40px; }
.hero__lead, .page-hero__lead { font-size: 18px; line-height: 1.6; margin-top: 22px; }
.hero-photo-stage { min-height: 440px; }
.hero-photo--main { inset: 0 38px 80px 0; border-radius: 80px 20px 20px 20px; border-width: 5px; }
.hero-photo--side { width: 46%; height: 180px; border-width: 4px; }
.hero-brief-card { display:none; }
.hero-photo--main figcaption { left:24px; bottom:24px; max-width:210px; }
.hero-brief-card strong { font-size: 22px; margin-bottom: 12px; }
.since-stamp { transform: none; width: 92px; height: 92px; }
.page-hero { min-height: auto; }
.page-hero__inner { min-height: 360px; padding-block: 60px; }
.page-hero__inner > div { max-width: 780px; padding-right: 0; }
.page-hero::after { display: none; }
.page-hero .text-link { color: var(--ivory); }
.signal-strip { margin-bottom: 32px; }
.answer-band { padding-block: 32px; }
.card-grid, .city-grid, .sector-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); gap: 22px; }
.tourism-grid, .work-grid, .process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.service-card, .plain-card, .process-item, .city-card, .notice-card { padding: 26px; min-height: auto; }
.service-card span, .city-card strong { font-size: 22px; margin-bottom: 14px; }
.tourism-grid .plain-card { padding-top: 180px; }
.tourism-grid .plain-card::before { height: 150px; }
.tourism-grid .plain-card h3 { font-family: inherit; font-weight: 750; font-size: 22px; }
.split-layout, .local-layout, .depth-layout { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 36px; }
.depth-copy > p:not(.eyebrow), .depth-copy > p:not(.eyebrow):first-of-type { font-size: 17px; line-height: 1.7; }
.depth-points { position: static; }
.territory-gallery { min-height: auto; grid-template-columns: 1fr; grid-template-rows: auto; }
.territory-gallery__large { grid-row: auto; }
.territory-gallery figure { min-height: 0; height: 300px; }
.territory-note { padding: 24px; }
.editorial-stack { min-height: 400px; }
.editorial-stack article { height: 275px; }
.region-ribbon { margin-top: 24px; margin-bottom: 48px; grid-template-columns: minmax(0,.9fr) minmax(0,1.2fr) minmax(0,.7fr); }
.region-ribbon__main { min-height: 0; max-height: 360px; }
.region-ribbon__main img { height: 100%; object-fit: cover; }
.region-ribbon figure { min-height:0; height:360px; }
.region-ribbon__side { margin-top:0 !important; min-height:0 !important; }
.region-ribbon__copy { padding: 32px; }
.region-ribbon__copy h2 { font-size: 28px; line-height: 1.18; }
.region-ribbon__copy > p:not(.eyebrow) { margin-top:18px; font-size:16px; }
.region-ribbon figcaption small { font-size:13px; }
.region-ribbon figcaption a { color:inherit; text-decoration:underline; }
.demo-showcase { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.demo-showcase__visual { min-height: 0; max-height: 400px; }
.demo-showcase__content { padding: 32px; }
.demo-showcase__content h3 { font-family: inherit; font-size: 30px; font-weight: 750; line-height: 1.2; }
.resource-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.resource-card { padding: 22px; min-height: auto; }
.resource-card__image { height: 180px; aspect-ratio: 16/10; object-fit: cover; margin-bottom: 18px; }
.resource-card h2, .resource-card h3 { font-size: 23px; line-height: 1.25; }
.resource-card__top { margin-bottom: 14px; }
.resource-card__number { width:36px; height:36px; }
.resource-card__type { margin-bottom:8px; }
.link-cloud { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.link-cloud a { min-height:0; padding:20px; }
.resource-card__type, .resource-card__duration { font-size: 12px; letter-spacing: .03em; }
.resource-card__link { padding-top: 20px; }
.resource-answer { grid-template-columns: minmax(0,1.4fr) minmax(0,.8fr); gap: 32px; }
.resource-meta { margin: 20px auto 0; font-size: 14px; }
.directory-hero__inner, .page-hero--detail .page-hero__inner { min-height: auto; padding-block: 56px; gap: 32px; grid-template-columns: minmax(0,1.5fr) minmax(0,.7fr); }
.directory-card > a { min-height: auto; padding: 24px; }
.directory-card h3 { font-size: 22px; }
.directory-fact-sheet dl div { grid-template-columns: minmax(130px,.4fr) minmax(0,1fr); }
.directory-priority-grid article { min-height: auto; }
.directory-priority-grid article > span { margin-bottom: 20px; }
.directory-hub-hero .page-hero__inner { min-height: auto; }
.portfolio-detail { padding-block: 48px; }
.portfolio-detail h1 { font-size: clamp(32px,4vw,50px); }
.portfolio-detail__capture { margin-block: 24px; }
.footer-cta { padding-block: 48px; }
.check-list li::before { content: '✓'; }
.hero-photo figcaption a, .territory-gallery figcaption a { color: inherit; text-decoration: underline; }
.hero-photo figcaption small { font-size: 12px; line-height: 1.5; }
.real-photo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr)); gap:28px; }
.real-photo-grid figure { margin:0; }
.real-photo-grid img { width:100%; height:280px; object-fit:cover; border-radius:18px; }
.real-photo-grid figcaption { padding-block:20px; }
.real-photo-grid figcaption h2 { font-size:26px; }
.real-local-photo figure { margin:0; }
.real-local-photo img { width:100%; height:320px; object-fit:cover; border-radius:18px; }
.real-local-photo figcaption { margin-top:12px; font-size:14px; line-height:1.6; }
.real-local-photo h2 { font-size:30px; }
.real-local-photo p { margin-top:18px; font-size:17px; }
.resource-list p, .resource-card p { font-size:16px; line-height:1.65; }
.section-intro h2 { font-size:clamp(27px,2.7vw,40px); }
@media (max-width: 1100px) {
 .resource-grid, .card-grid, .city-grid, .sector-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .hero__inner { gap: 28px; }
 .hero-photo-stage { min-height: 400px; }
}
@media (max-width: 820px) {
 .hero__inner, .split-layout, .local-layout, .depth-layout, .region-ribbon, .demo-showcase, .resource-answer { grid-template-columns: minmax(0,1fr); }
 .hero-photo-stage { width: min(100%,500px); margin-inline: auto; min-height: 370px; }
 .directory-hero__inner, .page-hero--detail .page-hero__inner { grid-template-columns: minmax(0,1fr); }
 .page-hero__inner { min-height: auto; }
 .page-hero::before { width: 100%; opacity: .3; }
 .demo-showcase__visual { height: 280px; }
 .region-ribbon__main { height: 280px; }
 .partner-promo { grid-template-columns: minmax(0,1fr); gap: 16px; }
 .partner-promo__link { justify-self: start; white-space: normal; }
}
@media (max-width: 600px) {
 .hero-photo-stage { display:grid; grid-template-columns:1fr; gap:14px; min-height:0; }
 .hero-photo--main, .hero-photo--side { position:relative; inset:auto; width:100%; transform:none; border-radius:22px; margin:0; }
 .hero-photo--main { height:250px; }
 .hero-photo--side { height:150px; }
 .hero-photo--main figcaption { max-width:none; left:20px; right:20px; bottom:20px; }
 .hero-photo--side figcaption { left:20px; right:20px; bottom:16px; }
 .section, .section--depth, .visibility-section { padding-block: 40px; }
 .resource-grid, .card-grid, .city-grid, .sector-grid, .tourism-grid, .work-grid, .process-grid, .deliverables-grid, .resource-principles, .directory-grid, .directory-priority-grid { grid-template-columns: minmax(0,1fr); }
 h1, .hero h1, .page-hero h1, .directory-detail-hero h1 { font-size: clamp(32px,8.7vw,40px); }
 h2 { font-size: 28px; }
 .hero__inner, .page-hero__inner, .directory-hero__inner { padding-block: 40px; }
 .hero__lead, .page-hero__lead { font-size: 17px; }
 .hero__chips { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:24px; }
 .hero__chips li { padding:10px; font-size:11px; line-height:1.5; }
 .hero-brief-card { width: 175px; padding: 12px; }
 .hero-brief-card strong { font-size: 19px; }
 .resource-card__image { height: auto; max-height: 220px; }
 .resource-card, .plain-card, .service-card { padding: 22px; }
 .directory-fact-sheet dl div { grid-template-columns: minmax(0,1fr); gap: 6px; }
 .territory-gallery figure { height: 240px; }
 .editorial-stack { min-height: 340px; }
 .editorial-stack article { height: 230px; }
 .region-ribbon__copy, .demo-showcase__content { padding: 24px; }
 .resource-jump { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { transition-duration: .01ms; animation-duration: .01ms; animation-iteration-count: 1; }
}
