/* Adaptations mobiles uniquement : aucune règle au-dessus de 1000px. */
@media (max-width: 1000px) {
 nav.site-navigation { display:flex; flex-wrap:wrap; gap:12px; min-height:0; padding:12px max(16px, env(safe-area-inset-right)) 16px max(16px, env(safe-area-inset-left)); width:100%; box-sizing:border-box; }
 .site-navigation .nav-left { flex:1 1 auto; gap:8px; min-width:0; }
 .site-navigation .nav-icon { gap:8px; color:#fff; font-weight:800; }
 .site-navigation .nav-icon img { width:36px; height:42px; object-fit:contain; }
 .site-navigation .nav-icon span { font-size:19px; }
 .site-navigation .nav-desktop-container { display:none; }
 .site-navigation .hamburger { display:flex; width:44px; height:44px; padding:8px; gap:5px; flex-shrink:0; }
 .site-navigation .hamburger span { display:block; width:24px; height:2px; background:#fff; transition:transform .2s, opacity .2s; }
 .site-navigation .hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
 .site-navigation .hamburger.open span:nth-child(2) { opacity:0; }
 .site-navigation .hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
 .site-navigation .nav-authentication { display:block; width:auto; margin:0; min-width:0; }
 .site-navigation .Sign-btns { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
 .site-navigation .nav-welcome { display:none; }
 .site-navigation .nav-links { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 10px; box-sizing:border-box; font-size:14px; }
 .site-navigation .avatar-nav { width:40px; height:40px; object-fit:cover; border-radius:50%; }
 nav.site-navigation .nav-search { display:flex; position:relative; order:3; flex:1 1 100%; margin:0; gap:8px; min-width:0; max-width:none; }
 nav.site-navigation .nav-search input[type="search"] { width:100%; min-width:0; height:48px; padding:0 12px; font-size:16px; }
 nav.site-navigation .nav-search button { position:static; transform:none; height:48px; min-width:0; width:auto; padding:0 14px; flex-shrink:0; font-size:14px; }
 nav.site-navigation .nav-search-results { max-height:50vh; overflow-y:auto; }
 .site-navigation .main-nav-container { position:static; transform:none; order:4; flex:1 1 100%; width:100%; max-height:none; margin:0; padding:0; display:none; background:transparent; box-shadow:none; }
 .site-navigation .main-nav-container.active { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .site-navigation .main-nav-container a { display:flex; align-items:center; min-height:48px; padding:10px 14px; border-radius:10px; color:#fff; background:rgba(255,255,255,.1); text-decoration:none; overflow-wrap:anywhere; }
 .site-navigation .mobile-dynamic-links { grid-column:1 / -1; display:grid; gap:8px; }
 .site-navigation .mobile-dynamic-links:empty { display:none; }
 .site-navigation a:focus-visible, .site-navigation button:focus-visible { outline:2px solid #fff; outline-offset:3px; }
 .home-page main { width:100%; min-width:0; }
 .home-page .section-theme-index, .home-page .section-geographie { box-sizing:border-box; width:100%; max-width:100%; margin:0 auto; padding:24px 16px; }
 .home-page .themes-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; width:100%; }
 .home-page .theme-card { min-width:0; width:auto; }
 .home-page .theme-card-circle { width:76px; height:76px; margin:0 auto; }
 .home-page .theme-card-circle img { max-width:100%; max-height:100%; object-fit:contain; }
 .home-page .theme-card-title { font-size:15px; overflow-wrap:anywhere; text-align:center; }
 .home-page .geographie-container { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; width:100%; padding:0; }
 .home-page .ville-card { box-sizing:border-box; width:100%; min-width:0; max-width:none; margin:0; }
 .home-page .ville-card h3, .home-page .ville-infos, .home-page .culture-card-subtitle { overflow-wrap:anywhere; }
 .home-page .site-link-button { min-height:44px; box-sizing:border-box; white-space:normal; }
 .home-page .culture-news-card { transform:none; }
 .home-page .personnage-entry-row { display:flex; gap:14px; }
 .home-page .personnage-entry-infos { flex:1; min-width:0; }
 .home-page .personnage-entry-portrait { flex:0 0 100px; }
 .home-page .personnage-index-image { width:100%; height:140px; object-fit:cover; }
 .pg-footer .footer-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:28px 16px; width:100%; box-sizing:border-box; }
 .pg-footer .footer-content-column { width:auto; min-width:0; min-height:0; padding:20px; box-sizing:border-box; }
 .pg-footer .footer-content-column:first-child { grid-column:1 / -1; }
 .pg-footer .footer-logo-text { font-size:32px; }
 .pg-footer .footer-menu-list a { display:flex; align-items:center; min-height:44px; overflow-wrap:anywhere; }
 .pg-footer .footer-social-links { display:flex; grid-column:1 / -1; flex-wrap:wrap; justify-content:center; gap:12px; }
 .pg-footer .footer-social-link { width:44px; height:44px; }
 .pg-footer .footer-copyright { padding:18px 16px max(18px,env(safe-area-inset-bottom)); }
 .pg-footer .footer-wave-svg { height:32px; }
}
@media (max-width: 600px) {
 .site-navigation .nav-authentication { flex:1 1 100%; }
 .site-navigation .Sign-btns { justify-content:flex-end; }
 .home-page .geographie-container { grid-template-columns:minmax(0,1fr); }
 .home-page .themes-grid { gap:12px 8px; }
 .home-page .culture-entry-poster { min-width:0; }
 .pg-footer .footer-content { grid-template-columns:minmax(0,1fr); }
 .pg-footer .footer-social-title { width:100%; text-align:center; margin:0; }
}
/* Ajustements après contrôle sur iPhone : conserver toute la largeur des titres. */
@media (max-width: 600px) {
 .home-page .section-theme-index { padding:20px 12px; }
 .home-page .themes-grid { gap:12px 10px; margin:0; }
 .home-page .theme-card { box-sizing:border-box; padding:12px 4px; aspect-ratio:auto; min-height:138px; border-radius:16px; gap:10px; }
 .home-page .theme-card-circle { width:64px; height:64px; flex-shrink:0; margin:0; }
 .home-page .theme-card-title { display:block; width:100%; min-height:0; box-sizing:border-box; padding:0; margin:0; font-size:13px; line-height:1.35; overflow-wrap:normal; word-break:normal; hyphens:none; }
 .home-page .section-geographie { padding:22px 12px; }
 .home-page .section-geographie > h2 { font-size:clamp(20px,5.5vw,26px); line-height:1.25; margin:0 0 18px; overflow-wrap:normal; }
 nav.site-navigation { gap:8px; padding-top:10px; padding-bottom:12px; }
 .site-navigation .nav-authentication { flex:0 1 auto; margin-left:auto; }
 .site-navigation .nav-links { font-size:13px; padding:6px 8px; }
 .site-navigation .Sign-btns { gap:6px; }
 .site-navigation .nav-icon { gap:4px; }
 .site-navigation .nav-icon span { font-size:16px; }
 .site-navigation .nav-icon img { width:28px; height:36px; }
 .site-navigation .nav-left { gap:2px; }
 .site-navigation .hamburger { width:36px; min-height:44px; padding:6px; }
}
@media (max-width: 380px) {
 .site-navigation .nav-authentication { flex:1 1 100%; }
 .home-page .theme-card-title { font-size:12px; }
}
/* Connexion iPhone et tablette : formulaire lisible sans zoom. */
@media (max-width: 1000px) {
 body.connexion > main { box-sizing:border-box; min-width:0; align-items:flex-start; padding:28px 16px 40px; }
 body.connexion .form-container { box-sizing:border-box; width:100%; max-width:430px; padding:24px 20px; border-radius:18px; }
 body.connexion .form-container form { gap:16px; min-width:0; }
 body.connexion .form-title { font-size:28px; line-height:1.2; }
 body.connexion .form-container input { font-size:16px; min-height:50px; }
 body.connexion .custom-button { min-height:50px; font-size:16px; }
 body.connexion .social-button a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; }
 body.connexion .google-btn { height:46px; max-width:100%; }
 body.connexion .inscription a { display:inline-block; padding:8px 0; line-height:1.5; }
 body.connexion .error { overflow-wrap:anywhere; }
}
/* Présentation mobile allégée : priorité au contenu et au formulaire. */
@media (max-width: 600px) {
 body.connexion nav.site-navigation .nav-search,
 body.connexion .site-navigation .nav-authentication { display:none; }
 body.connexion nav.site-navigation { padding:8px 16px; }
 body.connexion > main { padding:24px 16px 28px; background:#fff; }
 body.connexion .form-container { padding:12px 8px; border:0; border-radius:0; background:#fff; box-shadow:none; }
 body.connexion .form-container form { gap:14px; }
 body.connexion .form-title { font-size:24px; text-transform:none; }
 body.connexion .form-title::after { display:none; }
 body.connexion .choose-mail { font-size:14px; }
 body.connexion .form-container .form-group { margin:0; }
 body.connexion .custom-button { background:#087f96; border-radius:10px; box-shadow:none; text-align:center; }
 body.connexion .custom-button::before,
 body.connexion .custom-button::after { display:none; }
 body.connexion .inscription { font-size:14px; }
 body.connexion .inscription a { font-weight:500; padding:4px 0; }
 body.connexion .form-container input { background:#fff; border-radius:10px; }
 .pg-footer .footer { padding-top:0; }
 .pg-footer .footer-wave-svg { display:none; }
 .pg-footer .footer-content { gap:8px; padding:20px 20px 12px; }
 .pg-footer .footer-content-column { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
 .pg-footer .footer-logo-text { font-size:24px; }
 .pg-footer .footer-brand-description,
 .pg-footer .footer-menu-name,
 .pg-footer .footer-call-to-action-title,
 .pg-footer .footer-call-to-action-description,
 .pg-footer .footer-social-title { display:none; }
 .pg-footer .footer-menu-list { display:flex; flex-wrap:wrap; gap:0 16px; margin:0; padding:0; list-style:none; }
 .pg-footer .footer-menu-list a { font-size:13px; min-height:44px; }
 .pg-footer .footer-link-icon { display:none; }
 .pg-footer .footer-call-to-action-button { margin:0; min-height:44px; padding:8px 16px; box-shadow:none; }
 .pg-footer .footer-social-links { margin:4px 0 0; padding:0; gap:12px; justify-content:flex-start; }
 .pg-footer .footer-copyright { padding:12px 16px max(12px,env(safe-area-inset-bottom)); }
 .pg-footer .footer-copyright-text { font-size:11px; line-height:1.5; }
}
/* Accueil mobile épuré, sans changement du contenu ni des liens. */
@media (max-width: 600px) {
 body.home-page { background:#fff; }
 .home-page .section-theme-index { background:#fff; padding:20px 12px 12px; }
 .home-page .theme-card { background:#f6f9fa; border:1px solid #e5edef; box-shadow:none; min-height:114px; gap:8px; padding:12px 4px; }
 .home-page .theme-card:hover { transform:none; box-shadow:none; }
 .home-page .theme-card-circle { width:54px; height:54px; box-shadow:none; }
 .home-page .theme-card-title { color:#244957; font-weight:600; }
 .home-page .section-geographie { background:#fff; border:0; border-top:1px solid #e5edef; border-radius:0; box-shadow:none; margin:12px 0 0; padding:24px 16px; gap:16px; align-items:stretch; }
 .home-page .section-geographie > h2 { margin:0; padding:0; border:0; text-align:left; text-transform:none; letter-spacing:0; color:#123f50; font-size:22px; font-weight:700; }
 .home-page .geographie-container { gap:16px; }
 .home-page .ville-card { border:1px solid #e5edef; border-radius:12px; background:#fff; box-shadow:none; }
 .home-page .ville-card:hover, .home-page .culture-news-card.is-active { transform:none; box-shadow:none; }
 .home-page .ville-content, .home-page .culture-entry-infos { padding:16px; }
 .home-page .ville-infos p { line-height:1.55; font-size:14px; }
 .home-page .site-link-button { background:#087f96; box-shadow:none; border-radius:8px; padding:10px 14px; font-size:14px; }
 .home-page .culture-news-card { animation:none; }
 .home-page .culture-created { font-size:12px; color:#637b86; }
 .home-page .culture-badge { box-shadow:none; font-size:12px; }
 .home-page .personnage-entry-row { flex-direction:row; align-items:flex-start; padding:16px; gap:12px; }
 .home-page .personnage-entry-portrait { width:88px; flex:0 0 88px; max-width:30%; align-self:flex-start; }
 .home-page .personnage-index-image { height:auto; aspect-ratio:2 / 3; border-radius:8px; }
}
/* Recherche repliable et compte dans le menu sur mobile. */
.site-navigation .nav-search-toggle { display:none; }
@media (max-width:1000px) {
 nav.site-navigation { gap:8px; min-height:60px; padding:8px 12px; }
 .site-navigation .nav-left { flex:1; gap:6px; }
 .site-navigation .nav-icon img { width:28px; height:34px; }
 .site-navigation .nav-icon span { font-size:16px; }
 .site-navigation .hamburger { width:44px; height:44px; }
 .site-navigation .nav-search-toggle { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid rgba(255,255,255,.3); border-radius:10px; background:transparent; color:#fff; font-size:18px; flex-shrink:0; }
 nav.site-navigation .nav-search,
 body.connexion nav.site-navigation .nav-search { display:none; }
 nav.site-navigation.search-open .nav-search { display:flex; }
 nav.site-navigation .main-nav-container .nav-authentication { display:block; grid-column:1 / -1; width:100%; margin:8px 0 0; padding-top:12px; border-top:1px solid rgba(255,255,255,.25); }
 .site-navigation .main-nav-container .Sign-btns { justify-content:flex-start; gap:8px; }
 .site-navigation .main-nav-container .nav-links { min-height:44px; padding:8px 12px; font-size:14px; }
 .site-navigation .main-nav-container .avatar-link { padding:0; background:transparent; }
}
/* Finition du menu mobile : alignement, rythme et contrastes. */
@media (max-width:1000px) {
 nav.site-navigation { gap:10px; padding:10px 14px; box-shadow:0 2px 8px rgba(4,61,76,.08); }
 .site-navigation .nav-left { order:0; flex:1 1 auto; gap:8px; }
 .site-navigation .nav-search-toggle { order:1; margin-left:auto; width:42px; height:44px; border:0; border-radius:12px; background:rgba(255,255,255,.12); }
 .site-navigation .hamburger { border-radius:10px; background:transparent; }
 .site-navigation .hamburger.open { background:rgba(255,255,255,.1); }
 .site-navigation .nav-icon { gap:6px; }
 .site-navigation .nav-icon img { width:30px; height:36px; }
 .site-navigation .nav-icon span { font-size:17px; font-weight:750; letter-spacing:-.3px; }
 .site-navigation .main-nav-container.active { gap:8px; padding:4px 0 2px; }
 .site-navigation .main-nav-container > a { box-sizing:border-box; min-height:48px; padding:12px 14px; border:1px solid rgba(255,255,255,.12); border-radius:12px; background:rgba(255,255,255,.08); box-shadow:none; font-size:15px; font-weight:600; line-height:1.3; }
 .site-navigation .main-nav-container > a:hover,
 .site-navigation .main-nav-container > a:focus-visible { background:rgba(255,255,255,.18); }
 nav.site-navigation .main-nav-container .nav-authentication { margin-top:6px; padding-top:14px; padding-bottom:4px; border-top:1px solid rgba(255,255,255,.18); }
 .site-navigation .main-nav-container .Sign-btns { align-items:center; gap:8px; }
 .site-navigation .main-nav-container .nav-links { border:1px solid rgba(255,255,255,.25); border-radius:10px; background:transparent; font-size:13px; font-weight:500; padding:8px 12px; }
 .site-navigation .main-nav-container .avatar-link { display:flex; align-items:center; justify-content:center; min-width:44px; height:44px; border:0; }
 .site-navigation .main-nav-container .avatar-nav { width:34px; height:34px; border:2px solid rgba(255,255,255,.65); box-sizing:border-box; }
 nav.site-navigation.search-open .nav-search { gap:8px; margin-top:2px; }
 nav.site-navigation .nav-search input[type="search"] { border-radius:12px; box-shadow:none; }
 nav.site-navigation .nav-search button { border-radius:12px; box-shadow:none; }
}
/* Profil mobile : lecture sans zoom et cartes sobres. */
@media (max-width:1000px) {
 body.profile-page { background:#f7fafb; }
 .profile-page .profile-main { box-sizing:border-box; width:100%; max-width:680px; margin:0 auto; padding:24px 16px 32px; }
 .profile-page .profile-hero__identity { flex-direction:row; align-items:center; gap:14px; }
 .profile-page .profile-hero__identity > div { min-width:0; }
 .profile-page .profile-avatar-link { width:68px; height:68px; }
 .profile-page .profile-avatar { box-sizing:border-box; border-width:3px; box-shadow:none; }
 .profile-page .profile-avatar-edit { width:26px; height:26px; right:-2px; bottom:0; box-shadow:none; }
 .profile-page .profile-hero h1 { font-size:26px; line-height:1.2; overflow-wrap:anywhere; }
 .profile-page .profile-eyebrow { font-size:11px; letter-spacing:.08em; }
 .profile-page .profile-subtitle { font-size:14px; line-height:1.5; margin-top:8px; }
 .profile-page .profile-panel { border:1px solid #e1eaee; border-radius:14px; background:#fff; box-shadow:none; }
 .profile-page .profile-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:12px; }
 .profile-page .profile-stat-card { padding:8px; gap:8px; background:#f7fafb; }
 .profile-page .profile-stat-card:first-child { grid-column:1 / -1; }
 .profile-page .profile-stat-card:first-child p { white-space:normal; overflow-wrap:anywhere; }
 .profile-page .profile-stat-icon { width:32px; height:32px; }
 .profile-page .profile-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
 .profile-page .profile-action-card, .profile-page .profile-security { padding:20px; min-height:0; }
 .profile-page .profile-action-card h2, .profile-page .profile-security h2 { font-size:20px; line-height:1.3; }
 .profile-page .profile-section-kicker { font-size:11px; letter-spacing:.07em; }
 .profile-page .profile-action-card p, .profile-page .profile-security__header > p { font-size:14px; line-height:1.5; }
 .profile-page .profile-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
 .profile-page .profile-button { box-sizing:border-box; min-height:44px; padding:10px 14px; border-radius:10px; box-shadow:none; font-size:14px; white-space:normal; }
 .profile-page .profile-action-card--dnd { background:#fffaf0; box-shadow:none; }
 .profile-page .profile-oauth-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
 .profile-page .profile-oauth-card { min-width:0; padding:14px; border-radius:10px; box-shadow:none; }
 .profile-page .profile-logout { display:inline-flex; align-items:center; min-height:44px; margin-top:16px; padding:10px 14px; border-radius:10px; box-shadow:none; box-sizing:border-box; }
}
@media (max-width:380px) {
 .profile-page .profile-stats { grid-template-columns:minmax(0,1fr); }
 .profile-page .profile-actions { flex-direction:column; }
}
/* Couleurs thématiques de l'accueil, sur PC et mobile. */
.home-page .geo-discover { background:#edf7ed; border:1px solid #b5d5b4; border-top:5px solid #37813c; }
.home-page .geo-discover h2,
.home-page .geo-discover h3 { color:#205c2b; }
.home-page .geo-kicker,
.home-page .geo-location { color:#386345; }
.home-page .geo-summary,
.home-page .geo-recent-intro,
.home-page .geo-recent-item small { color:#435a49; }
.home-page .geo-featured { border-color:#b5d5b4; background:#fff; }
.home-page .geo-featured-badge { color:#fff; background:#287336; }
.home-page .geo-explore,
.home-page .geo-city-link { color:#23632e; }
.home-page .geo-recent-item { color:#205c2b; border-color:#bdd7bd; }
.home-page .geo-recent-item:hover { background:#e0f0df; }
.home-page .section-culture { background:#f3edfc; border:1px solid #d5c2eb; border-top:5px solid #7743ad; }
.home-page .section-culture > h2 { color:#633093; border-bottom-color:#b58ad5; }
.home-page .section-culture .site-link-button { background:#7140a3; color:#fff; }
.home-page .section-culture .culture-badge { background:#eee2fa; color:#582681; }
.home-page .section-personnage { background:#fff3e5; border:1px solid #ebc79f; border-top:5px solid #be6820; }
.home-page .section-personnage > h2 { color:#9b4a11; border-bottom-color:#dda469; }
.home-page .section-personnage .site-link-button { background:#a64f14; color:#fff; }
.home-page .theme-card.geographie { --theme-ink:#276332; --theme-tint:#e3f2df; }
.home-page .theme-card.histoire { --theme-ink:#765045; --theme-tint:#f0e4de; }
.home-page .theme-card.culture { --theme-ink:#673694; --theme-tint:#ede0fa; }
.home-page .theme-card.science { --theme-ink:#126587; --theme-tint:#dff1fa; }
.home-page .theme-card.personnage { --theme-ink:#975413; --theme-tint:#fff0d4; }
.home-page .theme-card.societe { --theme-ink:#365c6a; --theme-tint:#e1ecf0; }
.home-page .section-theme-index .theme-card { background:var(--theme-tint); border:1px solid var(--theme-ink); border-bottom:4px solid var(--theme-ink); }
.home-page .section-theme-index .theme-card-title { color:var(--theme-ink); }
/* Culture : cartes éditoriales compactes pour tous les écrans. */
.home-page .culture-news-section { box-sizing:border-box; width:100%; max-width:1180px; padding:28px; margin:32px auto; gap:24px; align-items:stretch; background:#f5effb; border:1px solid #d7c5e9; border-top:5px solid #7743ad; border-radius:20px; box-shadow:none; }
.home-page .culture-discover-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.home-page .culture-kicker { margin:0 0 7px; color:#754891; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.home-page .culture-discover-heading h2 { margin:0; padding:0; border:0; color:#582681; font-size:clamp(24px,3vw,32px); line-height:1.2; letter-spacing:0; text-transform:none; text-align:left; }
.home-page .culture-explore { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:#633093; font-weight:700; text-decoration:none; flex-shrink:0; }
.home-page .culture-news-grid { width:100%; max-width:none; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.home-page .culture-news-card { display:flex; flex-direction:column; padding:0; gap:0; margin:0; border:1px solid #d7c5e9; border-radius:14px; background:#fff; box-shadow:none; opacity:1; transform:none; transition:none; overflow:hidden; }
.home-page .culture-news-card:hover,.home-page .culture-news-card.is-featured { transform:none; box-shadow:none; border-color:#7743ad; }
.home-page .culture-news-card .culture-card-focus { display:none; }
.home-page .culture-news-card .culture-entry-poster { width:100%; padding:16px; box-sizing:border-box; background:#eee5f5; }
.home-page .culture-news-card .culture-poster-image { display:block; width:100%; height:240px; aspect-ratio:auto; object-fit:contain; border-radius:6px; box-shadow:none; background:transparent; }
.home-page .culture-news-card .culture-entry-infos { padding:18px; flex:1; }
.home-page .culture-card-head { flex-wrap:wrap; gap:8px; }
.home-page .culture-badge { color:#582681; background:#eee2fa; padding:5px 9px; border-radius:20px; font-size:12px; }
.home-page .culture-created { color:#685872; font-size:12px; }
.home-page .culture-entry-infos h3 { margin:12px 0 8px; color:#382347; font-size:20px; line-height:1.3; }
.home-page .culture-card-subtitle,.home-page .culture-meta-list p { color:#61526b; font-size:14px; line-height:1.5; }
.home-page .culture-meta-list p span { color:#633093; }
.home-page .culture-link-button { margin-top:auto; min-height:44px; background:#7140a3; color:#fff; border-radius:8px; box-shadow:none; }
.home-page .culture-explore:focus-visible { outline:3px solid #7743ad; outline-offset:3px; }
@media(max-width:760px) {
 .home-page .culture-news-section { margin:20px 0; padding:24px 16px; border-radius:0; border-width:5px 0 1px; }
 .home-page .culture-discover-heading { flex-direction:column; align-items:flex-start; gap:8px; }
 .home-page .culture-news-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
 .home-page .culture-news-card { display:grid; grid-template-columns:100px minmax(0,1fr); align-items:start; }
 .home-page .culture-news-card .culture-entry-poster { padding:10px; }
 .home-page .culture-news-card .culture-poster-image { height:130px; }
 .home-page .culture-news-card .culture-entry-infos { padding:14px 12px; }
 .home-page .culture-entry-infos h3 { font-size:18px; }
 .home-page .culture-news-card .ville-content { grid-column:1 / -1; }
}
/* Images culture : cadre commun, proportions originales conservées. */
.home-page .culture-news-card .culture-entry-poster {
 display:flex;
 align-items:center;
 justify-content:center;
 width:100%;
 height:280px;
 padding:18px;
 box-sizing:border-box;
 background:linear-gradient(145deg,#eee5f6,#f9f6fc);
 border-bottom:1px solid #e1d5eb;
}
.home-page .culture-news-card .culture-poster-image {
 display:block;
 width:auto;
 height:auto;
 max-width:100%;
 max-height:100%;
 aspect-ratio:auto;
 object-fit:contain;
 border-radius:7px;
 box-shadow:0 5px 14px rgba(53,28,76,.14);
}
@media(max-width:760px) {
 .home-page .culture-news-card { display:flex; flex-direction:column; }
 .home-page .culture-news-card .culture-entry-poster { height:210px; padding:16px; flex:none; }
 .home-page .culture-news-card .culture-poster-image { width:auto; height:auto; max-width:100%; max-height:100%; }
 .home-page .culture-news-card .culture-entry-infos { width:100%; box-sizing:border-box; padding:16px; }
}
/* Une fiche récente par métier. */
.home-page .section-personnage { box-sizing:border-box; max-width:1180px; width:100%; padding:28px; margin:32px auto; gap:24px; align-items:stretch; }
.home-page .section-personnage > h2 { text-align:left; text-transform:none; letter-spacing:0; border:0; padding:0; margin:0; font-size:clamp(24px,3vw,32px); line-height:1.2; }
.home-page .section-personnage .geographie-container { max-width:none; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.home-page .personnage-card { border:1px solid #ebc79f; background:#fff; box-shadow:none; border-radius:14px; overflow:hidden; }
.home-page .personnage-category-label { margin:0; padding:12px 16px; background:#ffecd4; color:#8b440f; font-size:14px; font-weight:700; }
.home-page .personnage-entry-row { flex-direction:column-reverse; padding:16px; gap:14px; }
.home-page .personnage-entry-portrait { width:100%; max-width:none; flex:auto; align-self:center; }
.home-page .personnage-index-image { width:100%; height:200px; aspect-ratio:auto; object-fit:contain; border-radius:8px; background:#fff8ef; }
.home-page .personnage-entry-infos { width:100%; }
.home-page .personnage-entry-infos .ville-infos p { color:#594a3f; line-height:1.5; }
.home-page .personnage-entry-infos .site-link-button { min-height:44px; border-radius:8px; box-shadow:none; }
@media(max-width:760px) {
 .home-page .section-personnage { padding:24px 16px; margin:20px 0; border-radius:0; }
 .home-page .section-personnage .geographie-container { grid-template-columns:minmax(0,1fr); }
 .home-page .personnage-entry-row { flex-direction:row; align-items:center; }
 .home-page .personnage-entry-portrait { width:90px; max-width:90px; flex:0 0 90px; }
 .home-page .personnage-index-image { height:120px; }
 .home-page .personnage-entry-infos { min-width:0; }
}
/* Identité et portraits des personnages. */
.home-page .personnage-card { position:relative; border-radius:18px; }
.home-page .personnage-category-label { padding:12px 18px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.home-page .personnage-entry-row { padding:0; gap:0; flex-direction:column-reverse; }
.home-page .personnage-entry-portrait { width:100%; max-width:none; flex:none; background:#f7eee4; }
.home-page .personnage-index-image { display:block; width:100%; height:auto; aspect-ratio:3 / 4; object-fit:cover; object-position:center top; border-radius:0; }
.home-page .personnage-entry-infos { box-sizing:border-box; width:100%; padding:20px; }
.home-page .personnage-display-name { margin:0 0 12px; color:#472d1b; font-size:24px; line-height:1.2; font-weight:800; letter-spacing:-.4px; overflow-wrap:anywhere; }
.home-page .personnage-nationality { display:inline-flex; align-items:center; gap:9px; max-width:100%; box-sizing:border-box; margin:0 0 18px; padding:7px 10px; border:1px solid #eddcc9; border-radius:999px; background:#fff8ef; color:#68472e; font-size:14px; line-height:1.4; }
.home-page .personnage-nationality span { min-width:0; overflow-wrap:anywhere; }
.home-page .personnage-nationality .personnage-country-flag { display:block; width:24px; height:16px; flex:0 0 24px; object-fit:cover; border-radius:3px; box-shadow:0 0 0 1px rgba(0,0,0,.1); }
.home-page .personnage-nationality .personnage-country-flag[hidden] { display:none; }
.home-page .personnage-entry-infos .site-link-button { display:flex; justify-content:center; margin:0; }
@media(max-width:760px) {
 .home-page .personnage-entry-row { flex-direction:row; align-items:stretch; }
 .home-page .personnage-entry-portrait { width:34%; max-width:none; flex:0 0 34%; align-self:stretch; }
 .home-page .personnage-index-image { height:100%; min-height:190px; aspect-ratio:3 / 4; object-fit:cover; }
 .home-page .personnage-entry-infos { width:66%; padding:16px 12px; }
 .home-page .personnage-display-name { font-size:20px; }
 .home-page .personnage-nationality { border-radius:10px; font-size:13px; padding:6px 8px; }
 .home-page .personnage-entry-infos .site-link-button { font-size:13px; padding:10px 8px; }
}
/* Métier : bandeau principal lisible sur PC comme sur téléphone. */
.home-page .personnage-card .personnage-category-label {
 display:flex; align-items:center; gap:12px; margin:0;
 padding:14px 18px; min-height:64px; box-sizing:border-box;
 background:linear-gradient(120deg,#81400f,#a65315); color:#fff;
 font-size:18px; font-weight:800; line-height:1.25;
 letter-spacing:0; text-transform:none; border-bottom:3px solid #efb36f;
}
.home-page .personnage-profession-icon {
 display:inline-flex; align-items:center; justify-content:center;
 width:34px; height:34px; flex:0 0 34px;
 border:1px solid rgba(255,255,255,.3); border-radius:10px;
 background:rgba(255,255,255,.12); color:#fff; font-size:17px;
}
.home-page .personnage-profession-icon i { color:inherit; }
@media(max-width:760px) {
 .home-page .personnage-card .personnage-category-label { min-height:56px; padding:10px 12px; gap:10px; font-size:17px; }
 .home-page .personnage-profession-icon { width:30px; height:30px; flex-basis:30px; font-size:15px; border-radius:8px; }
}
/* Culture : bandeau de catégorie, cohérent avec les métiers. */
.home-page .culture-news-card .culture-type-banner {
 display:flex; align-items:center; gap:12px; margin:0;
 padding:14px 18px; min-height:64px; box-sizing:border-box;
 width:100%; flex-shrink:0; grid-column:1 / -1;
 background:linear-gradient(120deg,#512479,#7541a3); color:#fff;
 font-size:18px; font-weight:800; line-height:1.25;
 letter-spacing:0; text-transform:none; border-bottom:3px solid #c4a0e3;
}
.home-page .culture-type-icon {
 display:inline-flex; align-items:center; justify-content:center;
 width:34px; height:34px; flex:0 0 34px;
 border:1px solid rgba(255,255,255,.3); border-radius:10px;
 background:rgba(255,255,255,.12); color:#fff; font-size:17px;
}
.home-page .culture-type-icon i { color:inherit; }
.home-page .culture-news-card .culture-card-head { justify-content:flex-start; }
@media(max-width:760px) {
 .home-page .culture-news-card .culture-type-banner { min-height:56px; padding:10px 12px; gap:10px; font-size:17px; }
 .home-page .culture-type-icon { width:30px; height:30px; flex-basis:30px; font-size:15px; border-radius:8px; }
}
/* Personnages : cartes plus compactes sur PC uniquement. */
@media (min-width:1001px) {
 .home-page .section-personnage .geographie-container { grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
 .home-page .personnage-card .personnage-category-label { min-height:54px; padding:10px; gap:8px; font-size:15px; }
 .home-page .personnage-profession-icon { width:28px; height:28px; flex-basis:28px; font-size:14px; border-radius:8px; }
 .home-page .personnage-index-image { width:100%; height:auto; aspect-ratio:3 / 4; min-height:0; object-fit:cover; object-position:center top; }
 .home-page .personnage-entry-infos { padding:14px 12px; }
 .home-page .personnage-display-name { font-size:19px; margin-bottom:10px; }
 .home-page .personnage-nationality { font-size:12px; gap:6px; padding:6px 8px; margin-bottom:12px; }
 .home-page .personnage-entry-infos .site-link-button { font-size:12px; padding:8px; min-height:44px; }
}
.home-page .index-freshness { display:block; width:fit-content; margin:8px 0 12px; padding:5px 9px; border-radius:7px; background:#edf5f0; color:#365a45; font-size:12px; font-weight:600; line-height:1.4; }
.home-page .culture-news-card .index-freshness { background:#f0e7f8; color:#633b80; }
.home-page .personnage-card .index-freshness { background:#fff0dc; color:#805023; }
.home-page .geo-recent-item .index-freshness { margin-bottom:0; font-size:11px; }