:root {		
  --blue:#093c7d;
  --blue2:#0078bd;
  --cyan:#00a6d8;
  --magenta:#d0007f;
  --yellow:#ffd900;
  --black:#262626;
  --ink:#182333;
  --muted:#6d7782;
  --soft:#f4f8fb;
  --line:#e8eef3;
  --white:#fff;
  --radius:18px;
  --wrap:1240px;
  --shadow:0 18px 45px rgba(9,60,125,.13);
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

body {			
  margin:0;
  font-family:Montserrat,Arial,sans-serif;
  color:var(--ink);
  font-size:16px;
  line-height:1.68;
  background:#fff;
}

a {
  color:var(--blue);
  text-decoration:none;
}

a:hover {
  color:var(--blue2);
}

img {
  max-width:100%;
  height:auto;
}

.wrap {
  width:min(var(--wrap),calc(100% - 48px));
  margin-inline:auto;
}

.narrow {
  max-width:850px;
}

.topbar {
  background:linear-gradient(90deg,#05336e,#0a5796);
  color:#fff;
  font-size:13px;
}

.topbar-inner {
  min-height:34px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}

.topbar a {
  color:#fff;
  margin-right:18px;
  font-weight:600;
}

.site-header {
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
  position:sticky;
  top:0;
  z-index:60;
  border-bottom:1px solid var(--line);
  box-shadow:0 2px 15px rgba(9,60,125,.04);
}

.header-inner {
  height:122px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}

.brand img,.custom-logo {
  display:block;
  max-width:310px;
  max-height:95px;
  width:auto;
}

.main-nav ul {
  display:flex;
  align-items:center;
  gap:28px;
  list-style:none;
  margin:0;
  padding:0;
}

.main-nav a {
  color:#101927;
  font-size:13px;
  text-transform:uppercase;
  font-weight:600;
  letter-spacing:.02em;
}

.main-nav a:hover,.main-nav .current-menu-item>a {
  color:var(--blue2);
}

.nav-toggle {
  display:none;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
}

.nav-toggle span {
  display:block;
  width:25px;
  height:2px;
  background:var(--blue);
  margin:5px 0;
}

h1,h2,h3 {
  margin:0 0 20px;
  line-height:1.05;
  letter-spacing:-.035em;
  color:var(--blue);
  font-weight:600;
}

h1 {
  font-size:clamp(44px,6vw,82px);
}

h2 {
  font-size:clamp(32px,4vw,54px);
}

h3 {
  font-size:clamp(21px,2vw,28px);
}

p {
  margin:0 0 18px;
}

.eyebrow {
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  font-weight:700;
  color:var(--blue2);
  margin-bottom:16px;
}

			.home-hero {
  position:relative;
  overflow:hidden;
  background:#fff;
  border-bottom:1px solid var(--line);
}
/* HAUTEUR ZONE PHOTO - la photo doit être au format 2200 x 1200 pixels et le nom: home.webp */
.hero-layout {
  display:grid;
  grid-template-columns:1.05fr 1.1fr;
  align-items:stretch;
  min-height:430px;
}
/* ZONE BOUTONS */
.hero-text {
  padding:42px 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  z-index:2;
}

.hero-text h1 {
  font-size:clamp(52px,6.4vw,90px);
  text-transform:uppercase;
  color:#073a7a;
  margin-bottom:14px;
}

.hero-text h1 span {
  display:block;
  color:#0088d2;
}

.hero-text h1 em {
  display:block;
  margin:0;
  padding:0;
  line-height:0;
}

.lead {
  font-size:18px;
  max-width:620px;
  color:#303b48;
  line-height:1.55;
  margin-bottom:14px;
}

.hero-actions {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:8px;
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:var(--blue);
  border:2px solid var(--blue);
  color:#fff!important;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:13px;
  padding:14px 23px;
  box-shadow:0 10px 22px rgba(9,60,125,.18);
}

.btn:hover {
  background:var(--blue2);
  border-color:var(--blue2);
  color:#fff!important;
}

.btn.outline {
  background:#fff;
  color:var(--blue)!important;
  box-shadow:none;
}

.btn.outline:hover {
  background:var(--blue);
  color:#fff!important;
}

.btn.light {
  background:#fff;
  border-color:#fff;
  color:var(--blue)!important;
}

.hero-visual {
  position:relative;
  background:linear-gradient(135deg,#ebf3f8,#ffffff);
  overflow:hidden;
}

.hero-visual:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(118deg,#fff 0,#fff 28%,rgba(255,255,255,0) 28.3%);
}

.hero-visual:after {
  content:"";
  position:absolute;
  right:-4%;
  top:0;
  width:92%;
  height:100%;
  background:linear-gradient(145deg,#cdd6de,#506170 48%,#1f2a35);
  clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);
  opacity:.96;
}

.signboard {
  position:absolute;
  right:7%;
  top:30%;
  width:min(560px,60%);
  background:linear-gradient(135deg,#064480,#052a5a);
  border-radius:6px;
  padding:26px 36px;
  z-index:2;
  box-shadow:0 24px 55px rgba(0,0,0,.28);
  transform:perspective(700px) rotateY(-7deg);
}

.signboard img {
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.25));
}

.section {
  padding:90px 0;
}

.overlap {
  padding-top:28px;
}

.soft {
  background:var(--soft);
}

.intro {
  background:#fff;
}

.center {
  text-align:center;
}

.service-cards {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}

.service-card {
  position:relative;
  overflow:hidden;
  background:#fff;
  border-radius:var(--radius);
  padding:28px 26px 26px;
  box-shadow:var(--shadow);
  border:1px solid var(--line);
  min-height:250px;
}

.service-card:after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:6px;
  background:var(--blue2);
}

.service-card.magenta:after {
  background:var(--magenta);
}

.service-card.yellow:after {
  background:var(--yellow);
}

.service-card.black:after {
  background:var(--black);
}

.service-icon {
  font-size:32px;
  color:var(--blue);
  margin-bottom:18px;
}

.service-card h3 {
  font-size:24px;
  text-transform:uppercase;
  color:var(--blue);
  margin-bottom:14px;
}

.service-card p {
  color:#3e4650;
  font-size:14px;
}

.more {
  font-size:13px;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.04em;
}

.split-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start;
}

.split-layout p,.content p {
  color:#374151;
  font-size:17px;
}

.refs-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:32px;
}

.refs-grid span {
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:18px 14px;
  font-weight:600;
  color:var(--blue);
  box-shadow:0 10px 26px rgba(9,60,125,.06);
}

.portfolio-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:34px;
}

.portfolio-card {
  background:#fff;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid var(--line);
  text-align:left;
}

.portfolio-card a {
  display:block;
  color:var(--ink);
}

.portfolio-card img,.placeholder {
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  background:linear-gradient(135deg,#e3eef6,#a6bed3);
}

.portfolio-card strong {
  display:block;
  padding:18px 20px 4px;
  font-size:18px;
  color:var(--blue);
}

.portfolio-card span {
  display:block;
  padding:0 20px 20px;
  color:var(--muted);
  font-size:14px;
}

.page-hero {
  padding:96px 0;
  background:linear-gradient(135deg,#f8fbfd,#eaf3f8);
  border-bottom:1px solid var(--line);
}

.page-hero.blue {
  background:linear-gradient(135deg,#063775,#0078bd);
  color:#fff;
}

.page-hero.blue h1,.page-hero.blue p,.page-hero.blue .eyebrow {
  color:#fff;
}

.page-hero p {
  font-size:21px;
  max-width:850px;
  color:#43505d;
}

.mini-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  margin-top:32px;
}

.mini-grid article {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:30px;
  box-shadow:var(--shadow);
}

.mini-grid h3 {
  font-size:24px;
}

.checklist {
  list-style:none;
  padding:0;
  margin:24px 0;
}

.checklist li {
  position:relative;
  padding:12px 0 12px 34px;
  border-bottom:1px solid var(--line);
  color:#374151;
}

.checklist li:before {
  content:"✓";
  position:absolute;
  left:0;
  top:12px;
  color:var(--blue2);
  font-weight:700;
}

.note {
  background:#fff7d8;
}

.about-layout {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:70px;
  align-items:center;
}

.mascot {
  max-width:270px;
  display:block;
  margin:auto;
  filter:drop-shadow(0 14px 30px rgba(0,0,0,.12));
}

.timeline {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

.timeline div {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px;
  box-shadow:var(--shadow);
}

.timeline strong {
  font-size:30px;
  color:var(--blue);
  letter-spacing:-.035em;
}

.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}

.contact-card {
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
  padding:36px;
}

.rounded {
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.featured {
  margin-bottom:32px;
}

.post-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.post-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:var(--shadow);
}

.cta-section {
  background:linear-gradient(135deg,#063775,#0078bd);
  color:#fff;
  padding:74px 0;
}

.cta-section h2,.cta-section .eyebrow {
  color:#fff;
}

.cta-section p {
  color:#dbeefe;
}

.cta-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}

.site-footer {
  background:#111923;
  color:#cbd5df;
  padding-top:62px;
}

.footer-main {
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr;
  gap:44px;
}

.footer-brand img {
  max-width:260px;
  background:#fff;
  border-radius:12px;
  padding:10px;
  margin-bottom:18px;
}

.site-footer h3 {
  font-size:18px;
  color:#fff;
  letter-spacing:0;
}

.site-footer a {
  color:#b9e5ff;
}

.footer-bottom {
  margin-top:40px;
  padding:18px 0;
  background:#0b1118;
  color:#8793a0;
  font-size:13px;
}
/* Version réduite tablette & mobiles */
@media(max-width:1050px) {
  .header-inner {
    height:auto;
    padding:18px 0;
  }
  .brand img,.custom-logo {
    max-width:250px;
  }
  .nav-toggle {
    display:block;
  }
  .main-nav {
    display:none;
    position:absolute;
    top:100%;
    left:24px;
    right:24px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:var(--shadow);
    padding:18px;
  }
  .main-nav.open {
    display:block;
  }
  .main-nav ul {
    display:block;
  }
  .main-nav li {
    padding:11px 0;
  }
  .site-header {
    position:sticky;
  }
  .hero-layout,
	.split-layout,
.about-layout,
.contact-grid {
  grid-template-columns:1fr;
}

.hero-layout {
  grid-template-columns:55% 45%;
}
  .hero-layout {
    min-height:0;
  }
  .hero-text {
    padding:58px 0;
  }
  .hero-visual {
    min-height:360px;
  }
  .service-cards,.portfolio-grid,.mini-grid,.refs-grid,.timeline,.post-grid,.footer-main {
    grid-template-columns:1fr 1fr;
  }
  .cta-inner {
    display:block;
  }
  .cta-inner .btn {
    margin-top:20px;
  }
}

@media(max-width:680px) {
  .wrap {
    width:min(100% - 28px,var(--wrap));
  }
  .topbar-inner {
    display:block;
    padding:7px 0;
  }
  .topbar a {
    display:inline-block;
    margin:0 10px 4px 0;
  }
  .brand img,.custom-logo {
    max-width:205px;
  }
  .home-hero h1 {
    font-size:44px;
  }
  .hero-visual {
    min-height:280px;
  }
  .signboard {
    width:78%;
    right:5%;
    top:28%;
    padding:18px;
  }
  .section {
    padding:64px 0;
  }
  .service-cards,.portfolio-grid,.mini-grid,.refs-grid,.timeline,.post-grid,.footer-main {
    grid-template-columns:1fr;
  }
  .page-hero {
    padding:70px 0;
  }
  .service-card {
    min-height:auto;
  }
  .hero-actions {
    display:block;
  }
  .hero-actions .btn {
    width:100%;
    margin-bottom:12px;
  }
}


/* ================================
   Image SVG "depuis 1983"
================================ */
.hero-depuis {
  display:block;
  width:300px;
  max-width:65%;
  height:auto;
  margin-top:6px;
  transform:rotate(-2deg);
}

/* ================================
   Hero image de droite
   Remplace le panneau logo + dégradé gris
================================ */
.hero-visual {
  position:relative;
  overflow:hidden;
  background:#f4f8fb;
}

.hero-visual::before,
.signboard {
  display:none !important;
}

/* Voile bleu léger sur la photo, dans la forme inclinée */
.hero-visual::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(9,60,125,.18), rgba(9,60,125,.04));
  clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);
  z-index:2;
  pointer-events:none;
  display:block !important;
}

.hero-photo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);
  z-index:1;
}

@media(max-width:1050px) {
  .hero-text {
    padding:52px 0 36px;
  }

  .hero-visual {
    min-height:330px;
  }

  .hero-photo,
  .hero-visual::after {
    clip-path:none;
  }
}

@media(max-width:680px) {
  .hero-depuis {
    width:250px;
    max-width:70%;
  }

  .hero-actions {
    display:block;
  }

  .hero-actions .btn {
    width:100%;
    margin-bottom:12px;
  }
}

        display:none;