/* ANDRYALE / ATELIER NUMÉRIQUE — version 1.3
 * Révisions : navigation sans rupture de survol, logo jamais déformé,
 * bandeau en haute définition, identité concise et accessible.
 * Chargé APRÈS main.css ; aucune dépendance distante.
 */
:root { --max-content: 1340px; }
html { scroll-padding-top: 94px; }
body { font-family: system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; }
h1,h2,h3,h4,h5,h6 { font-weight: 520; letter-spacing: -.025em; }
:where(.site-header,.header-inner,.primary-navigation,.primary-menu,.primary-menu>li){overflow:visible}
.site-header { isolation: isolate; }
.header-inner {
  grid-template-columns: 186px minmax(0,1fr) auto auto;
  grid-template-areas:"brand nav actions utility";
  min-height: 76px;
  gap: clamp(8px,1.15vw,20px);
  align-items: center;
}
.site-branding { min-width:0; padding:0; }
.brand-link {display:flex;align-items:center;justify-content:flex-start;width:186px;height:auto;min-height:0;flex:none;}
.brand-default {
  display:block;
  width:186px !important;
  height:auto !important;
  min-width:0;
  max-width:100%;
  max-height:none !important;
  object-fit:contain !important;
  flex:none;
}
.brand-for-light{display:none;}
.brand-for-dark{display:block;}
:root[data-theme="light"] .brand-for-light{display:block;}
:root[data-theme="light"] .brand-for-dark{display:none;}
.brand-custom-image {display:block;max-width:186px;max-height:62px;width:auto!important;height:auto!important;object-fit:contain!important;flex-shrink:0}
.primary-navigation{padding:0;border:0;min-width:0;}
.primary-menu{display:flex;align-items:stretch;gap:clamp(1px,.2vw,7px);flex-wrap:nowrap;white-space:nowrap;}
.primary-menu>li{position:relative;display:flex;align-items:center;align-self:stretch;flex-shrink:0;}
.primary-menu>li>a{font-size:clamp(.8rem,.93vw,.91rem);min-height:42px;display:inline-flex;align-items:center;padding:9px clamp(6px,.75vw,13px);white-space:nowrap;font-weight:530;}
.primary-menu>li.menu-item-has-children>a {padding-right:5px;}
.primary-menu .current-menu-item>a,.primary-menu .current-menu-ancestor>a,
.primary-menu .current_page_item>a,.primary-menu .current_page_ancestor>a {background:transparent;color:var(--text-2);}
.primary-menu a:focus-visible,.primary-menu a:hover{color:var(--text);background:var(--surface-3);}
.submenu-button{flex:none;min-height:42px;width:26px;margin:0;padding:6px;color:var(--muted);}
.submenu-button:hover,.submenu-button:focus-visible{color:var(--text);background:var(--surface-3);}
/* CRITIQUE : panneau contigu au bord inférieur du LI. L'ancien +5px créait
 * une zone morte où :hover était perdu entre parent et sous-menu. */
.primary-menu .sub-menu,
.primary-menu>li:last-child>.sub-menu {
  position:absolute;
  top:calc(100% - 1px);
  left:0;
  right:auto;
  margin:0;
  padding:7px;
  min-width:238px;
  max-width:min(340px,calc(100vw - 28px));
  border-radius:7px;
  border:1px solid var(--line-strong);
  box-shadow:0 16px 40px rgba(0,0,0,.26);
  background:var(--surface);
}
.primary-menu .sub-menu li{display:flex;min-height:40px;align-items:stretch}
.primary-menu .sub-menu a{font-size:.87rem;font-weight:470;padding:10px 12px;border-radius:4px;line-height:1.35;white-space:normal;}
.primary-menu li:is(:hover,:focus-within,.submenu-open)>.sub-menu{display:block;}
/* Garder la dernière rubrique dans le viewport, même en cas de menu custom. */
.primary-menu>li:nth-last-child(-n+2)>.sub-menu{left:auto;right:0;}
.header-actions{display:flex;align-items:center;gap:8px;min-width:0;}
.header-search input{width:clamp(110px,10.6vw,155px);height:38px;border-radius:6px;padding-left:11px;}
.theme-control{height:38px;padding-left:9px;gap:4px;border-radius:6px}
.theme-control select{min-width:61px;font-size:.8rem;}
.header-utility{display:flex;align-items:center;justify-content:flex-end;min-width:0;}
.paris-clock{border-left:1px solid var(--line);padding-left:10px;gap:6px;font-size:.74rem;}
.clock-city{color:var(--muted);}
.clock-time{font-weight:620;}
/* Édition : moins de gras, détails techniques sans faux jargon. */
.home-hero{height:clamp(428px,35vw,535px);min-height:428px;background:#070b1a;}
.hero-picture img{object-position:center 51%;}
.home-hero::after{background:linear-gradient(90deg,rgba(6,10,25,.90) 0%,rgba(10,10,27,.79) 28%,rgba(12,8,34,.34) 61%,rgba(8,8,24,.06) 100%),linear-gradient(0deg,rgba(10,10,26,.42),transparent 60%);}
.hero-foreground{padding-block:44px 48px;}
.hero-copy{max-width:730px;}
.home-hero .hero-copy h1{font-weight:470;line-height:1.11;font-size:clamp(2.65rem,4.5vw,4.75rem);letter-spacing:-.04em;}
.hero-kicker{color:#ebd9f4;font-size:.72rem;font-weight:550;letter-spacing:.11em;}
.home-hero .hero-copy p{color:#f2e9f6;max-width:560px;}
.home-hero .button {font-weight:550;}
.section-header h2,.activities-heading h2,.about-copy h2 {font-weight:510;letter-spacing:-.028em;}
.section-index {font-weight:550;letter-spacing:.08em;}
.card-title{font-weight:560;}
.portal-card{border-radius:6px;}
.portal-card:hover,.activity-row:hover{border-color:var(--line-strong);}
/* Signatures plutôt que badges et effets pseudo-technologiques. */
.section-projects{border-top:1px solid var(--line);}
.section-header h2::after{content:"";display:block;width:28px;height:2px;background:var(--cyan);margin-top:13px;opacity:.75;}
.section-services .section-header h2::after{background:var(--magenta)}
.footer-bottom{gap:14px;}
.footer-bottom span{color:var(--text-2)}
/* Formulaire et images secondaires : aucune déformation des images WordPress. */
.entry-featured img,.about-picture img,.portal-card-photo img{display:block;width:100%;height:auto;object-fit:cover;}
.about-picture img,.portal-card-photo img{height:100%;}
/* Barre rainbow comme PLACE, discrète mais systématique. */
.rainbow-edge{height:3px;}
/* Zone intermédiaire : recherche un peu réduite avant de passer au menu mobile.
 * Le breakpoint mobile principal reste 1160px (main.css). */
@media (max-width:1240px) and (min-width:1161px){
  .header-inner{grid-template-columns:149px minmax(0,1fr) auto auto;gap:9px;}
  .brand-link,.brand-default{width:149px!important;}
  .primary-menu>li>a{font-size:.79rem;padding:8px 5px;}
  .submenu-button{width:20px;padding:3px;}
  .header-search input{width:114px;}
  .paris-clock .clock-city{display:none}
  .theme-control select{min-width:55px;}
}
@media (max-width:1160px){
  .header-inner{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand utility" "panel panel";min-height:68px;}
  .brand-link,.brand-default{width:154px!important;min-height:0;}
  .navigation-panel{display:none;overflow-y:auto;overflow-x:hidden;max-height:calc(100dvh - 78px);}
  .navigation-panel.is-open{display:flex;}
  .header-utility{min-width:0;justify-content:flex-end;gap:10px;}
  .paris-clock{border:0;padding:0;}
  .mobile-menu-button{display:inline-flex;align-items:center;gap:7px;}
  .primary-navigation{grid-area:auto;order:0;}
  .primary-menu{display:block;white-space:normal;}
  .primary-menu>li{display:flex;align-items:stretch;flex-wrap:wrap;min-height:45px;}
  .primary-menu>li>a{flex:1;font-size:1rem;min-height:45px;white-space:normal;padding:11px 12px;}
  .submenu-button{width:45px;height:45px;padding:10px;}
  .primary-menu .sub-menu,.primary-menu>li:last-child>.sub-menu,.primary-menu>li:nth-last-child(-n+2)>.sub-menu{
    position:static;top:auto;left:auto;right:auto;display:none;order:3;
    width:100%;max-width:100%;min-width:0;
    margin:0 0 9px 14px;padding:3px 0 3px 13px;
    border:0;border-left:1px solid var(--line-strong);border-radius:0;
    box-shadow:none;background:transparent;
  }
  .primary-menu li:is(:hover,:focus-within)>.sub-menu{display:none;}
  .primary-menu li.submenu-open>.sub-menu{display:block;}
  .primary-menu .sub-menu a{padding:11px 12px;font-size:.92rem;}
  .header-actions{order:1;}
}
@media (max-width:700px){
  .header-inner{min-height:65px;}
  .brand-link,.brand-default{width:146px!important;}
  .clock-city{display:none;}
  .home-hero{height:auto;min-height:440px;}
  .hero-foreground{min-height:440px;padding-block:55px 60px;}
  .home-hero .hero-copy h1{font-size:clamp(2.2rem,8.2vw,3.3rem);font-weight:470;}
  .hero-picture img{object-position:57% center;}
  .home-hero::after{background:linear-gradient(90deg,rgba(8,9,25,.93),rgba(9,10,25,.60)),linear-gradient(0deg,rgba(9,10,25,.35),transparent);}
  .section-header h2::after{margin-top:9px;}
}
@media(max-width:390px){
  .paris-clock svg,.clock-solar{display:none;}
  .header-utility{gap:5px;}
  .brand-link,.brand-default{width:132px!important;}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;}}
