*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Segoe UI,Arial,sans-serif;color:#101a2e;line-height:1.5}a{color:inherit}header{height:76px;padding:0 5vw;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fffffff4;backdrop-filter:blur(10px);z-index:10;border-bottom:1px solid #e3e8f1}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand>span:last-child{display:flex;flex-direction:column;line-height:1}.brand b{font-size:20px}.brand small{font-weight:800}.mark{background:linear-gradient(135deg,#101a2e,#096cff);color:white;padding:10px;border-radius:8px;font-weight:900}nav{display:flex;gap:25px;align-items:center}nav a{text-decoration:none;font-weight:700;font-size:14px}.btn{display:inline-block;background:#086cff;color:#fff;text-decoration:none;padding:14px 22px;border-radius:9px;font-weight:800;box-shadow:0 8px 25px #086cff3d}.mini{padding:9px 14px}.hero{padding:70px 6vw;min-height:590px;background:radial-gradient(circle at 75% 30%,#174c85 0,#0d2a4d 24%,#07182c 60%,#061426 100%);color:white;display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center}.eyebrow{color:#1680ff;font-weight:900;font-size:12px;letter-spacing:.13em}.hero h1{font-size:clamp(43px,5vw,70px);line-height:1.02;letter-spacing:-.04em;margin:12px 0}.hero h1 span,.nofile h2 span{color:#1680ff}.lead{font-size:21px;max-width:720px;color:#dce7f6}.quick{display:flex;gap:28px;margin:28px 0}.quick div{display:grid;grid-template-columns:auto 1fr;column-gap:10px}.quick div:first-letter{color:#1680ff}.quick small{grid-column:2;color:#a9bad0}.hint{font-size:13px;color:#a9bad0}.identity{border:1px solid #3e79bb;border-radius:20px;background:#07192bd9;padding:42px;box-shadow:0 25px 60px #0006;text-align:center}.identity>div:nth-child(2){display:flex;flex-direction:column;line-height:1}.identity strong{font-size:45px;color:#1680ff}.identity b{font-size:26px}.cube{width:120px;height:120px;margin:0 auto 25px;background:linear-gradient(145deg,#ddd,#1680ff);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);display:grid;place-items:center;color:#07182c;font-size:38px;font-weight:900}.cube span{color:white}.identity p{font-size:11px;color:#c3d2e5}section{padding:75px 6vw}h2{font-size:clamp(32px,3.5vw,48px);letter-spacing:-.035em;line-height:1.08;margin:5px 0 10px}.sub{color:#6d7890}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:35px}.cards article{border:1px solid #dfe5ef;border-radius:14px;padding:25px;box-shadow:0 12px 35px #1020400d}.cards i{font-style:normal;color:#0875ff;font-size:28px}.cards p{color:#66748c}.dark{background:#07182c;color:white}.dark .eyebrow{color:#49a0ff}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:35px}.steps div{border:1px solid #22476d;background:#0a2039;padding:24px;border-radius:12px}.steps b{font-size:30px;color:#1680ff}.steps p{color:#b6c4d7}.nofile{display:grid;grid-template-columns:1fr 1fr;gap:70px;background:#f3f7fc;align-items:center}.nofile ul{list-style:none;padding:0}.nofile li{background:white;border:1px solid #dde6f1;margin:9px 0;padding:13px 17px;border-radius:9px}.nofile li:before{content:'✓';color:#0875ff;font-weight:900;margin-right:12px}.audiences{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.audiences div{padding:30px;border-radius:14px;background:#f4f7fb}.audiences p{color:#65728a}.realisations{background:#fbfcfe}.realisations>p:not(.eyebrow){color:#66748c}.placeholders{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:30px}.placeholders div{min-height:180px;background:linear-gradient(145deg,#0a1b31,#173b63);border-radius:14px;color:white;display:flex;flex-direction:column;justify-content:flex-end;padding:22px;font-weight:800}.placeholders span{font-weight:400;color:#8ebcf0}.important{padding:25px 6vw;background:#fff7e7;display:flex;gap:30px;border-block:1px solid #f1ddb3}.important b{white-space:nowrap}.important p{margin:0;color:#685f50}.contact{margin:35px 4vw 55px;padding:45px 3vw;border-radius:18px;background:linear-gradient(135deg,#075ae0,#087cff);color:white;display:flex;justify-content:space-between;align-items:center}.contact .eyebrow{color:#d7eaff}.contact a{background:white;color:#075bdc;padding:15px 20px;border-radius:9px;text-decoration:none;font-weight:800}footer{padding:35px 6vw;background:#061426;color:#c2cddd;display:grid;grid-template-columns:1.3fr 1.5fr 1fr;gap:20px;align-items:center;font-size:13px}footer p{grid-column:1/-1;border-top:1px solid #203148;padding-top:18px;color:#8292a8}@media(max-width:900px){nav a:not(.btn){display:none}.hero{grid-template-columns:1fr}.identity{display:none}.cards{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}.nofile{grid-template-columns:1fr}.quick{flex-direction:column}.contact{flex-direction:column;align-items:flex-start;gap:20px}}@media(max-width:560px){header{padding:0 15px}.brand small{font-size:10px}.cards,.steps,.audiences,.placeholders{grid-template-columns:1fr}.hero,section{padding-left:20px;padding-right:20px}.hero h1{font-size:42px}.contact{margin:20px}.contact a{font-size:13px}footer{grid-template-columns:1fr}}
/* Section Pour qui ? enrichie */
.pro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}.pro-grid article{border:1px solid #dfe5ef;border-radius:14px;padding:25px;background:#f7f9fc;box-shadow:0 12px 35px #1020400d}.pro-grid span{font-size:25px;color:#0875ff}.pro-grid h3{margin:12px 0 8px}.pro-grid p{margin:0;color:#65728a}.pro-cta{margin-top:24px;padding:25px 28px;border-radius:14px;background:#07182c;color:white;display:flex;align-items:center;justify-content:space-between;gap:25px}.pro-cta p{margin:6px 0 0;color:#b6c4d7}.pro-cta .btn{white-space:nowrap}@media(max-width:900px){.pro-grid{grid-template-columns:1fr 1fr}.pro-cta{flex-direction:column;align-items:flex-start}}@media(max-width:560px){.pro-grid{grid-template-columns:1fr}.pro-cta{padding:22px}.pro-cta .btn{white-space:normal}}

/* Réalisations / portfolio */
.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:32px}
.project-card{background:#fff;border:1px solid #dfe5ef;border-radius:16px;overflow:hidden;box-shadow:0 14px 38px #10204012;transition:transform .18s ease,box-shadow .18s ease}
.project-card:hover{transform:translateY(-3px);box-shadow:0 18px 45px #1020401f}
.project-card>a{display:block;background:#eef3f9}
.project-card img{display:block;width:100%;height:240px;object-fit:cover}
.project-content{padding:22px}
.project-content h3{margin:8px 0 12px;font-size:20px;line-height:1.2}
.project-content p{margin:7px 0;color:#65728a;font-size:14px}
.project-content b{color:#101a2e}
.project-tag{display:inline-block;font-size:11px;font-weight:900;letter-spacing:.08em;color:#0875ff}
.portfolio-note{margin-top:25px;padding:16px 18px;border-left:3px solid #0875ff;background:#f4f7fb;border-radius:0 10px 10px 0;color:#65728a!important;font-size:13px}
@media(max-width:1000px){.projects{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.projects{grid-template-columns:1fr}.project-card img{height:auto}}

.admin-link{color:#8fa0b9;font-size:12px;text-decoration:none;opacity:.72}
.admin-link:hover{opacity:1;text-decoration:underline}
.footer-sep{color:#51627a;margin:0 8px}

/* Boutons et contact rendus explicitement interactifs */
.btn, nav a, .contact a, .admin-link, .project-card a{position:relative;z-index:2;pointer-events:auto;cursor:pointer}
#contact{scroll-margin-top:95px}
.contact-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;min-width:245px}
.contact-email{font-weight:800;margin-top:12px}
.contact .contact-mail{display:block;background:white;color:#075bdc;padding:15px 20px;border-radius:9px;text-decoration:none;font-weight:800;text-align:center}
.copy-mail{background:#0750c6;color:white;border:1px solid #ffffff66;padding:13px 18px;border-radius:9px;font-weight:800;cursor:pointer}
.copy-mail:hover{background:#0649b5}
.copy-status{min-height:20px;font-size:13px;text-align:center;color:#e8f2ff}
@media(max-width:900px){.contact-actions{width:100%;min-width:0}.contact .contact-mail,.copy-mail{width:100%}}

/* Formulaire de demande d'étude */
.modal-open{overflow:hidden}.request-modal{display:none;position:fixed;inset:0;z-index:1000}.request-modal.show{display:block}.request-backdrop{position:absolute;inset:0;background:#061426d9;backdrop-filter:blur(5px)}.request-dialog{position:relative;z-index:2;width:min(900px,calc(100% - 30px));max-height:92vh;overflow:auto;margin:4vh auto;background:white;color:#101a2e;border-radius:18px;padding:30px;box-shadow:0 30px 90px #0008}.request-close{position:absolute;right:17px;top:13px;border:0;background:#eef3f9;color:#102040;width:38px;height:38px;border-radius:50%;font-size:26px;cursor:pointer}.request-warning{background:#fff7e7;border:1px solid #f1ddb3;border-radius:10px;padding:14px 16px;margin:15px 0 22px;color:#5e5444}.request-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.request-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#34445d}.request-form input,.request-form select,.request-form textarea{width:100%;border:1px solid #ccd6e4;border-radius:9px;background:white;color:#101a2e;padding:11px;font:inherit}.request-form textarea{min-height:110px;resize:vertical}.request-form .wide{grid-column:1/-1}.file-field{background:#f5f8fc;border:1px dashed #b8c8dc;border-radius:11px;padding:14px}.file-field small{font-weight:400;color:#65728a}.consent{flex-direction:row!important;align-items:flex-start!important;font-weight:500!important}.consent input{width:auto!important;margin-top:3px}.request-actions{display:flex!important;flex-direction:row!important;gap:10px;align-items:center}.secondary-request{border:1px solid #ccd6e4;background:#f5f7fa;color:#27364d;padding:13px 20px;border-radius:9px;font-weight:800;cursor:pointer}.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}.form-result{padding:16px;border-radius:10px;margin:15px 0}.form-ok{background:#e9f8f0;border:1px solid #9dd8b8;color:#155c37}.form-error{background:#fff0f0;border:1px solid #e8aaaa;color:#8a2929}
@media(max-width:650px){.request-dialog{padding:24px 18px}.request-form{grid-template-columns:1fr}.request-form .wide{grid-column:1}.request-actions{flex-direction:column!important;align-items:stretch!important}}

/* Formulaire compact : actions toujours visibles */
.request-modal.show{display:grid;place-items:center;padding:14px}
.request-dialog{
  width:min(900px,100%);
  height:min(860px,calc(100vh - 28px));
  max-height:calc(100vh - 28px);
  margin:0;padding:0;overflow:hidden;
  display:grid;grid-template-rows:auto 1fr auto;background:#fff
}
.request-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 14px;border-bottom:1px solid #e4eaf2;background:#fff}
.request-head h2{font-size:clamp(25px,3vw,36px);margin:3px 42px 0 0}
.request-head .eyebrow{margin:0}
.request-close{position:static;flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;padding:0}
.request-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 24px 20px}
.request-warning{margin:0 0 16px;padding:11px 13px;font-size:13px}
.request-form{gap:10px 12px}
.request-form label{gap:4px}
.request-form input,.request-form select{padding:9px 10px;min-height:39px}
.request-form textarea{min-height:78px;padding:9px 10px}
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.file-field{padding:11px}
.file-field input{padding:7px;background:#fff}
.file-field small{line-height:1.35}
.consent{margin-top:2px}
.request-footer{display:flex;gap:10px;align-items:center;justify-content:flex-end;padding:13px 24px;border-top:1px solid #e4eaf2;background:#fff;box-shadow:0 -8px 22px #1020400a}
.request-footer .btn,.request-footer .secondary-request{margin:0}
@media(max-width:650px){
  .request-modal.show{padding:0}
  .request-dialog{width:100%;height:100dvh;max-height:100dvh;border-radius:0}
  .request-head{padding:16px 16px 10px}
  .request-head h2{font-size:26px}
  .request-scroll{padding:12px 16px 16px}
  .request-form{grid-template-columns:1fr}
  .request-form .wide{grid-column:1}
  .upload-grid{grid-template-columns:1fr}
  .request-footer{padding:10px 16px max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto}
  .request-footer .btn{width:100%;text-align:center}
}
