@font-face{font-family:'Space Grotesk';src:url('assets/fonts/space-grotesk-latin-wght-normal.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
    @font-face{font-family:'Inter';src:url('assets/fonts/inter-latin-wght-normal.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}
    @font-face{font-family:'JetBrains Mono';src:url('assets/fonts/jetbrains-mono-latin-wght-normal.woff2') format('woff2');font-weight:400 500;font-style:normal;font-display:swap}
    *{box-sizing:border-box;margin:0;padding:0}
    html,body{background:#06121f;color:#e8f1f5;font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}
    a{color:inherit;text-decoration:none}
    a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #20E28F !important;outline-offset:3px;box-shadow:0 0 0 5px rgba(32,226,143,.18)}
    .hover-green:hover{color:#20E28F !important}
    .hover-lift-small:hover{transform:translateY(-1px)}
    .hover-lift:hover{transform:translateY(-2px)}
    .hover-secondary:hover{border-color:rgba(32,226,142,.6) !important;background:rgba(32,226,142,.1) !important}
    .service-card:hover{border-color:rgba(32,226,142,.5) !important;transform:translateY(-4px)}
    @keyframes scanline{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
    @keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
    @keyframes pulse{0%,100%{opacity:.4}50%{opacity:1}}
    @keyframes dash{to{stroke-dashoffset:-40}}
    @keyframes glowpulse{0%,100%{box-shadow:0 0 0 0 rgba(32,226,142,.4)}50%{box-shadow:0 0 0 14px rgba(32,226,142,0)}}
    @keyframes pulseRing{0%{transform:scale(.85);opacity:.7}100%{transform:scale(1.8);opacity:0}}
    @keyframes bob{0%,100%{transform:translate(0,0)}50%{transform:translate(1px,-1px)}}
    .send-btn{padding:0;height:54px;min-width:220px;line-height:54px;background:#20E28F;color:#06121f;border-radius:12px;border:1.5px solid transparent;font-weight:600;font-size:15px;letter-spacing:.02em;cursor:pointer;font-family:'Inter',sans-serif;position:relative;overflow:hidden;transition:background .25s,transform .25s,box-shadow .25s,border-color .25s;animation:glowpulse 2.5s infinite}
    .send-btn:hover{background:#06121f;border-color:#20E28F;transform:translateY(-1px);box-shadow:0 0 0 4px rgba(32,226,142,.15),0 12px 30px -8px rgba(32,226,142,.3) !important;animation:none !important}
    .send-mg{position:relative;height:54px;width:100%;overflow:hidden;display:block}
    .send-mg-inner{display:flex;flex-direction:column;transition:transform .4s cubic-bezier(.6,0,.3,1)}
    .send-mg-line{height:54px;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
    .send-mg-line img{height:18px;width:auto;display:block}
    .send-btn:hover .send-mg-inner{transform:translateY(-54px)}

    @media (prefers-reduced-motion:reduce){
      html{scroll-behavior:auto}
      *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
    }

    /* ===== RESPONSIVE ===== */
    /* Fluid typography across all sizes */
    h1{font-size:clamp(44px,7vw,96px) !important}
    h2{font-size:clamp(36px,5.5vw,72px) !important}
    h3{font-size:clamp(22px,2.4vw,28px) !important}

    /* TABLET — ≤1024px */
    @media (max-width:1024px){
      section{padding-left:32px !important;padding-right:32px !important}
      section[id]{padding-top:96px !important;padding-bottom:96px !important}
      :is(.about-layout){grid-template-columns:1fr !important;gap:48px !important}
      :not(*){gap:40px !important}
      :is(.footer-grid){grid-template-columns:1fr 1fr !important;gap:40px !important}
      :is(.about-intro-sticky){position:static !important}
    }

    /* MOBILE — ≤768px */
    @media (max-width:768px){
      nav{padding:14px 0 !important}
      nav > div{padding:0 20px !important}
      nav .nav-links a:not(:last-child){display:none !important}
      nav .nav-links{gap:12px !important}

      section{padding-left:20px !important;padding-right:20px !important}
      section[id]{padding-top:72px !important;padding-bottom:72px !important}

      /* Hero padding */
      #top > div:is(.nav-container,.hero-container,.hero-stats-container,.content-container,.section-content,.metrics-grid){padding:120px 20px 220px !important}

      /* Hero stats bar stacks */
      #top > div:is(.hero-image,.hero-overlay-horizontal,.hero-overlay-vertical,.hero-eyebrow-pulse,.hero-stats-bar,.about-card-number,.services-grid-background,.contact-glow):is(.hero-stats-bar) > div{flex-direction:column !important;align-items:flex-start !important;gap:18px !important;padding:0 20px !important}
      #top > div:is(.hero-image,.hero-overlay-horizontal,.hero-overlay-vertical,.hero-eyebrow-pulse,.hero-stats-bar,.about-card-number,.services-grid-background,.contact-glow):is(.hero-stats-bar) > div > div:is(.hero-stats-note){margin-left:0 !important;text-align:left !important;font-size:10px !important}

      /* All multi-col grids collapse */
      :is(.partners-grid,.contact-layout,.contact-name-grid){grid-template-columns:1fr !important;gap:20px !important}
      :is(.about-layout){grid-template-columns:1fr !important;gap:40px !important}
      :not(*){grid-template-columns:1fr !important;gap:40px !important}
      :not(*){grid-template-columns:1fr !important;gap:40px !important}
      :is(.services-grid){grid-template-columns:1fr !important}
      :not(*){grid-template-columns:1fr 1fr !important}
      :is(.metrics-grid){grid-template-columns:1fr 1fr !important;gap:32px !important}
      :is(.footer-grid){grid-template-columns:1fr 1fr !important;gap:32px !important}

      /* Zahlen band: kill right borders */
      section:not(*) > div > div{border-right:none !important}
      section:not(*) :is(.about-title,.services-title,.metric-value,.partners-title){font-size:44px !important}

      /* Card padding */
      :is(.partner-card){padding:28px !important}
      :is(.service-card-layout,.contact-form-card){padding:26px !important}
      :is(.about-card){padding:24px !important}

      /* Flex rows with space-between stack */
      section :is(.nav-container,.services-header,.footer-bottom){flex-direction:column !important;align-items:flex-start !important;gap:16px !important}

      /* Big gaps reduce */
      :is(.about-layout){gap:48px !important}
      :is(.contact-layout){gap:48px !important}
      :is(.footer-grid){gap:40px !important}

      /* Footer */
      footer :is(.about-layout,.services-grid,.metrics-grid,.partners-grid,.contact-layout,.contact-name-grid,.footer-grid){grid-template-columns:1fr !important;gap:32px !important}

      /* Send button full width on mobile */
      .send-btn{width:100% !important}
    }

/* Styles extraits du balisage HTML */
.page-shell{background:#06121f;color:#e8f1f5;font-family:'Inter',sans-serif;min-height:100vh;overflow-x:hidden}
.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;backdrop-filter:blur(14px);background:rgba(6,18,31,.72);border-bottom:1px solid rgba(32,226,142,.12)}
.nav-container{max-width:1320px;margin:0 auto;padding:18px 40px;display:flex;align-items:center;justify-content:space-between}
.brand-link{display:flex;align-items:center;gap:14px}
.brand-logo{width:120px;height:auto}
.nav-menu{display:flex;gap:36px;align-items:center;font-size:14px;font-weight:500;letter-spacing:.02em}
.nav-link{color:rgba(232,241,245,.78);transition:color .2s}
.nav-cta{background:#20E28F;color:#06121f;padding:10px 20px;border-radius:999px;font-weight:600;font-size:13px;letter-spacing:.04em;transition:all .2s}
.hero{position:relative;min-height:100vh;background:#06121f;overflow:hidden}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero > picture{position:absolute;inset:0;display:block;z-index:0}
.hero-overlay-horizontal,.hero-overlay-vertical{z-index:1}
.hero-container,.hero-stats-bar{z-index:2}
.hero-overlay-horizontal{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,18,31,.92) 0%,rgba(6,18,31,.7) 32%,rgba(6,18,31,.25) 58%,transparent 85%);pointer-events:none}
.hero-overlay-vertical{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,18,31,.45) 0%,transparent 25%,transparent 65%,rgba(6,18,31,.75) 100%);pointer-events:none}
.hero-container{position:relative;max-width:1320px;margin:0 auto;padding:180px 40px 180px;min-height:100vh;display:flex;flex-direction:column;justify-content:center}
.hero-content{max-width:780px}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border:1px solid rgba(32,226,142,.4);border-radius:999px;background:rgba(6,18,31,.5);backdrop-filter:blur(10px);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:#20E28F;margin-bottom:32px}
.hero-eyebrow-icon{position:relative;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.hero-eyebrow-pulse{position:absolute;inset:0;border:1.5px solid #20E28F;border-radius:50%;animation:pulseRing 2s ease-out infinite}
.hero-eyebrow-symbol{width:14px;height:auto;animation:bob 2.5s ease-in-out infinite}
.hero-title{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:96px;line-height:.95;letter-spacing:-.03em;margin-bottom:28px;text-shadow:0 2px 20px rgba(6,18,31,.4)}
.hero-title-accent{background:linear-gradient(90deg,#20E28F,#20E28F);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-description{font-size:19px;line-height:1.55;color:rgba(232,241,245,.88);max-width:560px;margin-bottom:42px;text-shadow:0 1px 12px rgba(6,18,31,.5)}
.hero-description-strong{color:#fff;font-weight:600}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.button-primary{display:inline-flex;align-items:center;gap:10px;background:#20E28F;color:#06121f;padding:16px 28px;border-radius:999px;font-weight:600;font-size:15px;letter-spacing:.02em;transition:all .2s}
.button-secondary{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.3);background:rgba(6,18,31,.4);backdrop-filter:blur(8px);padding:16px 28px;border-radius:999px;font-weight:500;font-size:15px;letter-spacing:.02em;transition:all .2s}
.hero-stats-bar{position:absolute;left:0;right:0;bottom:0;border-top:1px solid rgba(32,226,142,.2);background:linear-gradient(180deg,transparent,rgba(6,18,31,.7));backdrop-filter:blur(10px);padding:32px 0}
.hero-stats-container{max-width:1320px;margin:0 auto;padding:0 40px;display:flex;gap:56px;align-items:center;flex-wrap:wrap}
.hero-stat-value{font-family:'Space Grotesk',sans-serif;font-size:38px;font-weight:600;color:#fff;letter-spacing:-.02em;line-height:1}
.accent-text{color:#20E28F}
.hero-stat-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:rgba(232,241,245,.6);letter-spacing:.14em;margin-top:6px}
.hero-stats-note{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:11px;color:rgba(232,241,245,.55);letter-spacing:.16em;text-align:right}
.about-section{position:relative;padding:140px 40px;background:#06121f}
.content-container{max-width:1320px;margin:0 auto}
.about-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px;align-items:start}
.about-intro-sticky{position:sticky;top:120px}
.section-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;color:#20E28F;margin-bottom:20px}
.section-eyebrow-icon{width:14px;height:auto;flex-shrink:0}
.about-title{font-family:'Space Grotesk',sans-serif;font-size:64px;font-weight:600;line-height:1;letter-spacing:-.025em;margin-bottom:28px}
.about-description{color:rgba(232,241,245,.7);font-size:17px;line-height:1.6}
.about-cards{display:flex;flex-direction:column;gap:20px}
.about-card{padding:36px;border:1px solid rgba(32,226,142,.15);border-radius:20px;background:linear-gradient(135deg,rgba(19,58,91,.4),rgba(6,18,31,.2));position:relative;overflow:hidden}
.about-card-number{position:absolute;top:0;right:0;font-family:'JetBrains Mono',monospace;font-size:140px;font-weight:700;color:rgba(32,226,142,.04);line-height:1;padding:20px}
.about-card-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:#20E28F;margin-bottom:14px}
.about-card-title{font-family:'Space Grotesk',sans-serif;font-size:26px;font-weight:600;margin-bottom:12px;line-height:1.2}
.card-description{color:rgba(232,241,245,.72);line-height:1.65;font-size:15px}
.services-section{position:relative;padding:140px 40px;background:linear-gradient(180deg,#06121f 0%,#0a1d31 100%);overflow:hidden}
.services-grid-background{position:absolute;inset:0;background-image:linear-gradient(rgba(32,226,142,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(32,226,142,.04) 1px,transparent 1px);background-size:80px 80px;pointer-events:none}
.section-content{position:relative;max-width:1320px;margin:0 auto}
.services-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:64px;flex-wrap:wrap;gap:24px}
.services-title{font-family:'Space Grotesk',sans-serif;font-size:64px;font-weight:600;line-height:1;letter-spacing:-.025em;max-width:780px}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.service-card-layout{padding:44px;border:1px solid rgba(32,226,142,.18);border-radius:24px;background:rgba(13,40,69,.4);transition:all .3s;position:relative;overflow:hidden}
.service-icon{width:56px;height:56px;border-radius:14px;background:rgba(32,226,142,.12);border:1px solid rgba(32,226,142,.3);display:flex;align-items:center;justify-content:center;margin-bottom:28px}
.feature-card-title{font-family:'Space Grotesk',sans-serif;font-size:28px;font-weight:600;margin-bottom:12px}
.service-description{color:rgba(232,241,245,.7);line-height:1.6;font-size:15px;margin-bottom:24px}
.service-tags{display:flex;flex-wrap:wrap;gap:8px}
.service-tag{font-family:'JetBrains Mono',monospace;font-size:11px;padding:5px 10px;border:1px solid rgba(32,226,142,.2);border-radius:999px;color:rgba(232,241,245,.7)}
.metrics-section{background:#0a1d31;padding:80px 40px;border-top:1px solid rgba(32,226,142,.1);border-bottom:1px solid rgba(32,226,142,.1)}
.metrics-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:40px;text-align:center}
.metric-item-bordered{border-right:1px solid rgba(32,226,142,.12);padding:0 20px}
.metric-value{font-family:'Space Grotesk',sans-serif;font-size:64px;font-weight:600;color:#20E28F;letter-spacing:-.03em;line-height:1}
.metric-label{font-family:'JetBrains Mono',monospace;font-size:12px;color:rgba(232,241,245,.6);letter-spacing:.14em;margin-top:8px}
.metric-item{padding:0 20px}
.partners-section{padding:140px 40px;background:#06121f}
.partners-header{text-align:center;margin-bottom:72px}
.partners-title{font-family:'Space Grotesk',sans-serif;font-size:64px;font-weight:600;line-height:1;letter-spacing:-.025em;margin-bottom:20px}
.partners-description{color:rgba(232,241,245,.7);font-size:17px;max-width:640px;margin:0 auto;line-height:1.6}
.partners-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.partner-card{padding:48px;border:1px solid rgba(32,226,142,.15);border-radius:24px;background:linear-gradient(135deg,rgba(19,58,91,.3),rgba(6,18,31,.2));display:flex;flex-direction:column}
.partner-logo-panel{border-radius:14px;padding:24px;display:flex;align-items:center;justify-content:center;height:180px;border:1px solid rgba(32,226,142,.1);background:rgba(6,18,31,.35);margin-bottom:32px}
.partner-logo-lakal{max-width:240px;max-height:90px;width:100%;height:auto}
.partner-type{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:#20E28F;margin-bottom:10px}
.partner-logo-rein{max-width:220px;max-height:140px;width:100%;height:auto}
.contact-section{position:relative;padding:140px 40px;background:linear-gradient(180deg,#06121f 0%,#0d2845 50%,#1a6b6e 100%);overflow:hidden}
.contact-glow{position:absolute;top:10%;left:10%;width:400px;height:400px;background:radial-gradient(circle,rgba(32,226,142,.2),transparent 70%);filter:blur(40px)}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-title{font-family:'Space Grotesk',sans-serif;font-size:72px;font-weight:600;line-height:.95;letter-spacing:-.025em;margin-bottom:28px}
.contact-description{color:rgba(232,241,245,.78);font-size:18px;line-height:1.6;margin-bottom:48px;max-width:480px}
.contact-details{display:flex;flex-direction:column;gap:24px}
.contact-detail{display:flex;gap:16px;align-items:flex-start}
.contact-icon{width:44px;height:44px;border-radius:12px;background:rgba(32,226,142,.12);border:1px solid rgba(32,226,142,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-detail-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;color:rgba(232,241,245,.55);margin-bottom:6px}
.contact-address{font-size:17px;line-height:1.5}
.contact-detail-value{font-size:17px}
.contact-form-card{background:rgba(6,18,31,.55);backdrop-filter:blur(12px);border:1px solid rgba(32,226,142,.2);border-radius:24px;padding:44px}
.contact-form-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;color:#20E28F;margin-bottom:8px}
.contact-form-title{font-family:'Space Grotesk',sans-serif;font-size:28px;font-weight:600;margin-bottom:28px}
.contact-form-fields{display:flex;flex-direction:column;gap:18px}
.contact-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-label{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;color:rgba(232,241,245,.55);margin-bottom:8px}
.form-input{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(32,226,142,.2);border-radius:10px;padding:14px 16px;color:#fff;font-family:inherit;font-size:15px;outline:none}
.form-textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(32,226,142,.2);border-radius:10px;padding:14px 16px;color:#fff;font-family:inherit;font-size:15px;outline:none;resize:vertical}
.site-footer{background:#040b14;padding:64px 40px 32px;border-top:1px solid rgba(32,226,142,.1)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;margin-bottom:48px}
.footer-logo{width:140px;height:auto;margin-bottom:20px}
.footer-description{color:rgba(232,241,245,.55);font-size:14px;line-height:1.6;max-width:340px}
.footer-heading{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;color:#20E28F;margin-bottom:18px}
.footer-links{display:flex;flex-direction:column;gap:12px;font-size:14px;color:rgba(232,241,245,.7)}
.footer-address{font-size:14px;color:rgba(232,241,245,.7);line-height:1.7}
.footer-bottom{padding-top:32px;border-top:1px solid rgba(32,226,142,.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;color:rgba(232,241,245,.4)}

/* Thème final LAREGO */
:root {
  color-scheme: light;
  --ink: #003057;
  --muted: #526b7e;
  --paper: #f6f9f7;
  --surface: #ffffff;
  --soft: #eaf3ee;
  --line: rgba(0, 48, 87, 0.14);
  --accent: #20e28f;
  --accent-readable: #087a57;
  --brand-green: var(--accent);
  --shadow: 0 22px 60px rgba(0, 48, 87, 0.09);
}

html,
body {
  background: var(--paper);
  color: var(--ink);
}

.page-shell {
  background: var(--paper);
  color: var(--ink);
}

/* Navigation et hero */
.site-nav {
  background: rgba(6, 18, 31, 0.82);
  border-bottom-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 8px 30px rgba(6, 18, 31, 0.12);
}

.hero {
  color: #e8f1f5;
}

.hero-overlay-horizontal {
  background: linear-gradient(90deg, rgba(6, 18, 31, 0.9) 0%, rgba(6, 18, 31, 0.66) 34%, rgba(6, 18, 31, 0.18) 67%, transparent 88%);
}

.hero-overlay-vertical {
  background: linear-gradient(180deg, rgba(6, 18, 31, 0.4) 0%, transparent 30%, transparent 62%, rgba(6, 18, 31, 0.75) 100%);
}

.hero .accent-text {
  color: #20e28f;
}

/* Sections claires */
.about-section,
.partners-section {
  background: var(--paper);
}

.services-section {
  background: linear-gradient(180deg, #ffffff 0%, #edf5f1 100%);
}

.services-grid-background {
  background-image: linear-gradient(rgba(8, 122, 87, 0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(8, 122, 87, 0.055) 1px, transparent 1px);
}

.metrics-section {
  background: #e7f1ec;
  border-color: var(--line);
}

.contact-section {
  background: linear-gradient(145deg, #f8fbf9 0%, #e3f2ea 54%, #cbe8de 100%);
}

.contact-glow {
  background: radial-gradient(circle, rgba(32, 226, 143, 0.2), transparent 70%);
}

/* Titres, textes et accents */
.section-eyebrow,
.about-card-label,
.partner-type,
.contact-form-eyebrow,
.footer-heading {
  color: var(--accent-readable);
}

.accent-text {
  color: var(--accent);
}

.metric-value {
  color: var(--ink);
}

.about-description,
.card-description,
.service-description,
.partners-description,
.contact-description {
  color: var(--muted);
}

/* Cartes */
.about-card,
.service-card-layout,
.partner-card {
  background: rgba(255, 255, 255, 0.86);
  border-color: var(--line);
  box-shadow: var(--shadow);
}

.about-card-number {
  color: rgba(8, 122, 87, 0.07);
}

.service-card:hover {
  border-color: rgba(8, 122, 87, 0.42) !important;
  box-shadow: 0 28px 70px rgba(0, 48, 87, 0.14);
}

.service-icon,
.contact-icon {
  background: rgba(8, 122, 87, 0.08);
  border-color: rgba(8, 122, 87, 0.22);
}

.service-tag {
  color: #36574f;
  background: #f4f9f6;
  border-color: rgba(8, 122, 87, 0.2);
}

.metric-item-bordered {
  border-color: var(--line);
}

.metric-label,
.contact-detail-label,
.form-label {
  color: #60756f;
}

/* Les logos partenaires sont blancs : panneau bleu conservé */
.partner-logo-panel {
  background: linear-gradient(145deg, #003057, #07547a);
  border-color: rgba(8, 122, 87, 0.2);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

/* Formulaire */
.contact-form-card {
  background: rgba(255, 255, 255, 0.82);
  border-color: rgba(8, 122, 87, 0.18);
  box-shadow: 0 28px 80px rgba(0, 48, 87, 0.13);
}

.form-input,
.form-textarea {
  background: #ffffff;
  color: var(--ink);
  border-color: rgba(0, 48, 87, 0.2);
  box-shadow: inset 0 1px 2px rgba(0, 48, 87, 0.035);
}

.form-input::placeholder,
.form-textarea::placeholder {
  color: #82928d;
}

.form-input:focus,
.form-textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(8, 122, 87, 0.11);
}

/* Footer */
.site-footer {
  color: #e8f1f5;
  background: #003057;
}

.site-footer .footer-heading {
  color: #20e28f;
}

.footer-description,
.footer-links,
.footer-address {
  color: rgba(232, 241, 245, 0.7);
}

.footer-bottom {
  color: rgba(232, 241, 245, 0.45);
}

/* AGB */
.legal-page {
  min-height: 100vh;
  background: var(--paper);
}

.legal-hero {
  padding: 190px 40px 88px;
  background:
    linear-gradient(rgba(0, 48, 87, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 48, 87, 0.045) 1px, transparent 1px),
    linear-gradient(145deg, #f8fbfa 0%, #e5f3ec 100%);
  background-size: 72px 72px, 72px 72px, auto;
  border-bottom: 1px solid var(--line);
}

.legal-hero-inner,
.legal-content {
  max-width: 920px;
  margin: 0 auto;
}

.legal-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
  color: var(--accent-readable);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .16em;
}

.legal-kicker::before {
  content: '';
  width: 30px;
  height: 2px;
  background: var(--accent);
}

.legal-title {
  max-width: 820px;
  margin: 0;
  color: var(--ink);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 64px;
  font-weight: 650;
  line-height: 1.04;
}

.legal-content-section {
  padding: 88px 40px 120px;
}

.legal-content {
  color: var(--muted);
  font-size: 18px;
  line-height: 1.75;
}

.legal-content p {
  max-width: 790px;
  margin: 0 0 24px;
}

.legal-content h2 {
  margin: 72px 0 20px;
  color: var(--ink);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 32px;
  line-height: 1.2;
}

.legal-download {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 12px 0 30px;
  padding: 15px 22px;
  border: 1px solid rgba(0, 48, 87, 0.18);
  border-radius: 6px;
  background: var(--ink);
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.legal-download:hover,
.legal-download:focus-visible {
  background: var(--accent);
  color: var(--ink);
  transform: translateY(-2px);
}

.legal-download svg {
  flex: 0 0 auto;
}

.legal-note {
  margin-top: 64px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.legal-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 48px;
  color: var(--accent-readable);
  font-weight: 600;
}

@media (max-width: 720px) {
  .legal-hero {
    padding: 142px 20px 64px;
    background-size: 48px 48px, 48px 48px, auto;
  }

  .legal-title {
    font-size: 42px;
  }

  .legal-content-section {
    padding: 60px 20px 84px;
  }

  .legal-content {
    font-size: 16px;
  }

  .legal-content h2 {
    margin-top: 56px;
    font-size: 27px;
  }

  .legal-download {
    width: 100%;
    justify-content: center;
  }
}

@media print {
  .legal-page .site-nav,
  .legal-page .site-footer,
  .legal-download,
  .legal-back-link {
    display: none;
  }

  .legal-hero,
  .legal-content-section {
    padding: 32px 0;
    background: #ffffff;
  }

  .legal-content {
    color: #000000;
  }
}

/* Hiérarchie plus compacte pour l'Impressum */
.impressum-page .legal-hero {
  padding-top: 165px;
  padding-bottom: 64px;
}

.impressum-page .legal-content-section {
  padding-top: 64px;
}

.impressum-page .legal-content {
  font-size: 17px;
}

.impressum-page .legal-content h2 {
  margin: 28px 0 5px;
  font-family: 'Inter', sans-serif;
  font-size: 18px !important;
  font-weight: 700;
  line-height: 1.45;
}

.impressum-page .legal-content h2:first-child {
  margin-top: 0;
}

.impressum-page .legal-content p {
  margin-bottom: 18px;
}

@media (max-width: 720px) {
  .impressum-page .legal-hero {
    padding-top: 132px;
    padding-bottom: 48px;
  }

  .impressum-page .legal-content-section {
    padding-top: 48px;
  }

  .impressum-page .legal-content h2 {
    margin-top: 26px;
    font-size: 17px !important;
  }
}
/* Hero */
.site-nav {
  background: rgba(249, 252, 251, 0.88);
  border-bottom-color: rgba(0, 48, 87, 0.12);
  box-shadow: 0 8px 30px rgba(0, 48, 87, 0.08);
}

.brand-logo path {
  fill: #003057;
}

.brand-logo path[fill="#20E28F"] {
  fill: var(--brand-green);
}

.nav-link {
  color: rgba(0, 48, 87, 0.78);
}

.nav-cta {
  background: var(--ink);
  color: #ffffff;
}

.hero {
  background: #f4faf8;
  color: var(--ink);
}

.hero-overlay-horizontal {
  background: linear-gradient(90deg, rgba(248, 252, 250, 0.98) 0%, rgba(248, 252, 250, 0.9) 32%, rgba(248, 252, 250, 0.48) 54%, rgba(248, 252, 250, 0.08) 75%, transparent 90%);
}

.hero-overlay-vertical {
  background: linear-gradient(180deg, rgba(248, 252, 250, 0.45) 0%, transparent 28%, transparent 62%, rgba(248, 252, 250, 0.96) 100%);
}

.hero-eyebrow {
  color: var(--accent-readable);
  background: rgba(255, 255, 255, 0.72);
  border-color: rgba(8, 122, 87, 0.3);
  box-shadow: 0 8px 24px rgba(0, 48, 87, 0.06);
}

.hero-title {
  color: var(--ink);
  text-shadow: 0 2px 20px rgba(255, 255, 255, 0.7);
}

.hero-title-accent {
  background: none;
  color: var(--accent);
}

.hero .accent-text {
  background: none;
  color: var(--accent);
}

.hero-description {
  color: rgba(0, 48, 87, 0.78);
  text-shadow: 0 1px 12px rgba(255, 255, 255, 0.86);
}

.hero-description-strong {
  color: var(--ink);
}

.button-primary {
  background: var(--ink);
  color: #ffffff;
  box-shadow: 0 12px 28px rgba(0, 48, 87, 0.18);
}

.button-secondary {
  color: var(--ink);
  background: rgba(255, 255, 255, 0.74);
  border-color: rgba(0, 48, 87, 0.25);
}

.hero-stats-bar {
  background: linear-gradient(180deg, transparent, rgba(248, 252, 250, 0.92));
  border-top-color: rgba(8, 122, 87, 0.14);
}

.hero-stat-value {
  color: var(--ink);
}

.hero-stat-label,
.hero-stats-note {
  color: rgba(0, 48, 87, 0.62);
}

/* Le bleu du logo domine ; le vert reste un accent visuel. */
.about-title .accent-text,
.partners-title .accent-text,
.contact-title .accent-text {
  background: none;
  color: var(--accent);
}

.send-btn {
  animation: none;
  background: var(--ink);
  color: #ffffff;
  box-shadow: 0 12px 28px rgba(0, 48, 87, 0.18);
}

.send-btn:hover {
  background: #07547a;;
  border-color: var(--ink);
  color: var(--ink);
  box-shadow: 0 12px 28px rgba(0, 48, 87, 0.14) !important;
}

/* Corrections finales responsive et cohérence visuelle */
.site-nav .brand-logo {
  display: block;
}

@media (max-width: 768px) {
  html,
  body,
  .page-shell {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .nav-container {
    width: 100%;
    padding: 14px 18px !important;
    gap: 12px !important;
  }

  .brand-logo {
    width: 112px !important;
    flex: 0 0 auto;
  }

  .nav-menu {
    min-width: 0;
    margin-left: auto;
    gap: 0 !important;
  }

  .nav-cta {
    max-width: 118px;
    padding: 10px 14px !important;
    overflow: hidden;
    font-size: 0 !important;
    white-space: nowrap;
  }

  .nav-cta::before {
    content: "ANFRAGEN";
    font-size: 12px;
    line-height: 1;
  }

  .hero-container {
    padding: 116px 24px 150px !important;
  }

  .hero-content,
  .content-container,
  .section-content,
  .partners-header,
  .contact-layout,
  .partners-grid,
  .services-grid,
  .about-layout {
    width: 100%;
    max-width: 100%;
  }

  .hero-title,
  .about-title,
  .services-title,
  .partners-title,
  .contact-title {
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
  }

  .hero-title {
    font-size: clamp(44px, 13vw, 54px) !important;
    line-height: 0.95 !important;
  }

  .about-title,
  .services-title,
  .partners-title,
  .contact-title {
    font-size: clamp(34px, 10vw, 42px) !important;
    line-height: 1.04 !important;
  }

  .partners-header {
    text-align: center;
  }

  .partners-title .accent-text {
    display: inline;
  }

  .hero-description,
  .about-description,
  .partners-description,
  .contact-description,
  .card-description,
  .service-description {
    max-width: 100%;
    font-size: 16px;
  }

  .partner-card,
  .service-card-layout,
  .about-card,
  .contact-form-card {
    width: 100%;
    min-width: 0;
  }

  .partner-logo-panel {
    height: 138px;
    padding: 18px;
  }

  .partner-logo-lakal,
  .partner-logo-rein {
    max-width: 210px;
  }
}

/* Navigation mobile */
.menu-toggle {
  display: none;
}

@media (max-width: 768px) {
  .nav-container {
    position: relative;
    justify-content: space-between !important;
  }

  .menu-toggle {
    display: inline-flex !important;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    margin-left: auto;
    align-items: center;
    justify-content: center;
    border: 1px solid #003057;
    border-radius: 6px;
    background: #003057;
    color: #ffffff;
    cursor: pointer;
  }

  .menu-toggle-lines {
    display: grid;
    width: 20px;
    gap: 4px;
  }

  .menu-toggle-lines span {
    display: block;
    width: 20px;
    height: 2px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle-lines span:first-child {
    transform: translateY(6px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle-lines span:nth-child(2) {
    opacity: 0;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle-lines span:last-child {
    transform: translateY(-6px) rotate(-45deg);
  }

  .nav-menu {
    display: none;
    position: absolute;
    top: calc(100% + 1px);
    left: 18px;
    right: 18px;
    z-index: 60;
    margin: 0;
    width: auto;
    min-width: 0;
    padding: 10px;
    flex-direction: column;
    align-items: stretch;
    gap: 2px !important;
    border: 1px solid rgba(0, 48, 87, 0.13);
    border-radius: 6px;
    background: rgba(249, 252, 251, 0.98);
    box-shadow: 0 18px 40px rgba(0, 48, 87, 0.16);
  }

  .nav-menu.is-open {
    display: flex;
  }

  .nav-menu a,
  .nav-menu a:not(:last-child),
  .site-nav .nav-menu a:not(:last-child),
  .nav-menu .nav-cta {
    display: flex !important;
    width: 100%;
    min-height: 46px;
    padding: 12px 14px !important;
    align-items: center;
    border-radius: 4px;
    font-size: 15px !important;
  }

  .nav-menu .nav-link:hover {
    background: rgba(32, 226, 143, 0.1);
  }

  .nav-menu .nav-cta {
    max-width: none;
    margin-top: 6px;
    justify-content: center;
    white-space: normal;
  }

  .nav-menu .nav-cta::before {
    content: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-toggle-lines span {
    transition: none;
  }
}

@media (max-width: 420px) {
  .hero-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .hero-eyebrow {
    max-width: 100%;
    white-space: normal;
    line-height: 1.45;
  }

  .button-primary,
  .button-secondary {
    width: 100%;
    justify-content: center;
  }

  .partners-title {
    font-size: 33px !important;
  }
}
@media (max-width: 420px) {
  .nav-cta {
    display: none !important;
  }

  .nav-container {
    justify-content: flex-start !important;
  }

  .hero-title,
  .partners-title {
    font-size: 31px !important;
  }

  .hero-description,
  .partners-description {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }
}
@media (max-width: 768px) {
  .nav-cta {
    display: none !important;
  }

  .nav-container {
    justify-content: flex-start !important;
  }

  .hero-container,
  .content-container,
  .section-content {
    max-width: 100vw !important;
  }

  .hero-content {
    width: min(100%, 340px) !important;
    max-width: calc(100vw - 40px) !important;
  }

  .hero-eyebrow,
  .hero-description,
  .partners-description,
  .about-description,
  .contact-description {
    max-width: calc(100vw - 40px) !important;
  }

  .hero-eyebrow {
    font-size: 10px !important;
    letter-spacing: 0.12em !important;
  }

  .hero-title {
    font-size: clamp(40px, 11vw, 46px) !important;
  }

  .partners-title,
  .services-title,
  .about-title,
  .contact-title {
    max-width: calc(100vw - 40px) !important;
    margin-left: auto;
    margin-right: auto;
    font-size: clamp(30px, 8.6vw, 38px) !important;
  }

  .partner-card,
  .service-card-layout,
  .about-card,
  .contact-form-card {
    max-width: calc(100vw - 40px) !important;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 768px) {
  .hero-content,
  .partners-header,
  .about-intro-sticky,
  .contact-layout > div:first-child {
    max-width: min(310px, calc(100vw - 40px)) !important;
  }

  .hero-description,
  .partners-description,
  .about-description,
  .contact-description {
    max-width: min(310px, calc(100vw - 40px)) !important;
  }

  .hero-title {
    font-size: 38px !important;
  }

  .about-title,
  .services-title,
  .partners-title,
  .contact-title {
    max-width: min(310px, calc(100vw - 40px)) !important;
    font-size: 28px !important;
  }

  .partner-card,
  .service-card-layout,
  .about-card,
  .contact-form-card {
    max-width: min(350px, calc(100vw - 40px)) !important;
  }
}
