*{box-sizing:border-box}
body{margin:0;background:#FDFBFB;color:#2A2946;font-family:"Host Grotesk","Helvetica Neue",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:#E8432D;text-decoration:none}
a:hover{color:#c4331e}
::selection{background:rgba(232,67,45,.16)}
:focus-visible{outline:2px solid #E8432D;outline-offset:3px}
input,textarea,select,button{font:inherit;color:inherit}
[data-lang="fr"] [data-t="en"],[data-lang="en"] [data-t="fr"]{display:none}
[data-page="accueil"] [data-nav="accueil"],[data-page="emploi"] [data-nav="emploi"],[data-page="carriere"] [data-nav="carriere"],[data-page="contact"] [data-nav="contact"]{color:#E8432D}
@keyframes gmoTrust{0%,42%{transform:translateX(0)}50%,92%{transform:translateX(-100%)}100%{transform:translateX(0)}}
@keyframes gmoCue{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(7px);opacity:1}}
@keyframes gmoSpin{to{transform:rotate(360deg)}}
@keyframes gmoLoop{to{transform:translateX(-50%)}}
[data-sec]:hover{transform:translateY(-8px);box-shadow:0 34px 60px -30px rgba(42,41,70,.36);z-index:3}
[data-sec]:hover [data-sec-title]{transform:scale(1.12)}
[data-sec]:hover [data-sec-desc]{grid-template-rows:1fr;opacity:1}
@keyframes gmoOrbit{0%,100%{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-14px)}}
@keyframes gmoOrbitB{0%,100%{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(11px)}}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
details[open] [data-chev]{transform:rotate(45deg)}
@keyframes gmoFloat{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-13px) rotate(.8deg)}}
@keyframes gmoFloatB{0%,100%{transform:translateY(0) rotate(1deg)}50%{transform:translateY(10px) rotate(-1deg)}}
@keyframes gmoPulse{0%{box-shadow:0 0 0 0 rgba(232,67,45,.5)}70%{box-shadow:0 0 0 9px rgba(232,67,45,0)}100%{box-shadow:0 0 0 0 rgba(232,67,45,0)}}
@keyframes gmoDrift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(3%,-4%) scale(1.06)}}

/* --- production-only additions below (not part of the original design-tool stylesheet) --- */

/* Below full desktop width but above the 700px mobile-app cutover (e.g.
   a split-screen window), the header row has no room to fit the logo,
   every nav link, the language toggle and the contact button at their
   natural size. #app-root clips horizontal overflow site-wide (for the
   decorative background shapes), which was silently cutting nav items
   off entirely instead of just cramming them — so the header scrolls
   horizontally on its own here instead, keeping every link reachable. */
@media (max-width:1100px){
  #site-header>div{overflow-x:auto;scrollbar-width:thin}
  #site-header nav{flex:none}
}

/* page/screen switching, driven by data-page on #app-root + data-screen on each page wrapper */
[data-screen]{display:none}
[data-page="accueil"] [data-screen="accueil"],
[data-page="emploi"] [data-screen="emploi"],
[data-page="carriere"] [data-screen="carriere"],
[data-page="offre"] [data-screen="offre"],
[data-page="contact"] [data-screen="contact"]{display:block}

/* image-slot placeholders */
.photo-slot{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;background:#ECE5E6;padding:10px}
.photo-slot img{width:100%;height:100%;display:block;object-fit:cover}
.photo-slot-image{padding:0;overflow:hidden}
.photo-slot-image img{object-position:center}
.photo-slot-faces img{object-position:center 30%}
.photo-slot-career-portrait img{object-position:center 32%}
.photo-slot-career-team img{object-position:center 32%}
.photo-slot-logo{padding:0;background:#FDFBFB;overflow:hidden}
.photo-slot-logo img{object-fit:contain;object-position:center}
.photo-slot-circle{padding:0;border-radius:inherit;overflow:hidden}
.photo-slot-circle img{object-position:center}
.photo-slot span{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#9a97a8;line-height:1.5}
.photo-slot.photo-slot-dark{background:rgba(255,255,255,.06)}
.photo-slot.photo-slot-dark span{color:rgba(255,255,255,.5)}
.photo-slot.photo-slot-sm span{font-size:8.5px}

/* back-office (back-office.html): view switching driven by data-view on #app-root + data-screen on each view wrapper */
[data-screen]{display:none}
[data-view="demandes"] [data-screen="demandes"],
[data-view="candidats"] [data-screen="candidats"],
[data-view="offres"] [data-screen="offres"],
[data-view="cvtheque"] [data-screen="cvtheque"],
[data-view="stats"] [data-screen="stats"],
[data-view="demande-detail"] [data-screen="demande-detail"],
[data-view="candidat-detail"] [data-screen="candidat-detail"]{display:block}
[data-view="demandes"] [data-tab="demandes"],[data-view="demande-detail"] [data-tab="demandes"],[data-view="candidats"] [data-tab="candidats"],[data-view="candidat-detail"] [data-tab="candidats"],[data-view="cvtheque"] [data-tab="cvtheque"],[data-view="offres"] [data-tab="offres"],[data-view="stats"] [data-tab="stats"]{background:#fff !important;color:#2A2946 !important;box-shadow:0 1px 0 #ece5e6,0 10px 24px -18px rgba(42,41,70,.5)}
[data-view="cvtheque"] [data-side="cvtheque"],[data-view="offres"] [data-side="offres"]{background:rgba(255,255,255,.1) !important;color:#fff !important}
[data-view="demandes"] [data-side="demandes"],[data-view="demande-detail"] [data-side="demandes"],[data-view="candidats"] [data-side="candidats"],[data-view="candidat-detail"] [data-side="candidats"],[data-view="stats"] [data-side="stats"]{background:rgba(255,255,255,.1) !important;color:#fff !important}
[data-h]{display:none}
[data-view="demandes"] [data-h="demandes"],[data-view="candidats"] [data-h="candidats"],[data-view="cvtheque"] [data-h="cvtheque"],[data-view="offres"] [data-h="offres"],[data-view="stats"] [data-h="stats"],[data-view="demande-detail"] [data-h="demande-detail"],[data-view="candidat-detail"] [data-h="candidat-detail"]{display:block}
@keyframes gmoPulseGreen{0%{box-shadow:0 0 0 0 rgba(47,158,107,.5)}70%{box-shadow:0 0 0 8px rgba(47,158,107,0)}100%{box-shadow:0 0 0 0 rgba(47,158,107,0)}}
