*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --teal:#1B8A7A;
  --teal-dark:#136860;
  --teal-light:#E1F4F1;
  --teal-mid:#5DCAA5;
  --black:#0F0F0F;
  --off-black:#1A1A1A;
  --gray:#F5F4F2;
  --gray2:#ECEAE6;
  --text:#1A1A1A;
  --text2:#5F5E5A;
  --border:#E0DDD8;
  --teal-lt:#E1F4F1;
}
body{font-family:var(--font-sans);
    background:#fff;
    color:var(--text);}

nav{display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0px 28px;
    border-bottom:0.5px solid var(--border);
    background:#fff;}

.logo-wrap{display:flex;
    align-items:center;
    padding: 10px 0;
    gap:10px ; }

.logo-box img{width:auto;max-width:140px;height:auto;}

.logo-box a:hover{color:var(--teal);}

.logo-sub{display:flex;flex-direction:column;line-height:1.1;}
.logo-sub .n1{font-size:10px;font-weight:500;color:var(--teal);letter-spacing:2px;}
.logo-sub .n2{font-size:8px;color:var(--text2);letter-spacing:1px;}
.nav-links{display:flex;gap:22px;}
.nav-links a{display: inline-block;
    padding: 7px 12px;
    border-radius: 6px;

    color: var(--text2);
    background: transparent;

    font-size: 13px;
    font-family: var(--font-sans);
    text-decoration: none;

    transition: all 0.2s ease;}
.btn-teal{background:var(--teal);color:#fff;border:none;padding:8px 18px;border-radius:6px;font-size:13px;cursor:pointer;font-weight:500;}
.btn-teal:hover{background:var(--teal-dark);}

.nav-links a:hover {
    color: var(--teal);
    background: var(--teal-lt);
}

.nav-links a.active-nav {
    color: var(--teal);
    background: var(--teal-lt);
}

.hero{padding:56px 28px 48px;background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.hero-badge{display:inline-flex;align-items:center;gap:6px;background:var(--teal-light);color:var(--teal-dark);border:0.5px solid var(--teal-mid);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:500;margin-bottom:18px;}
.hero h1{font-size:30px;font-weight:500;color:var(--black);line-height:1.25;margin-bottom:14px;}
.hero h1 em{font-style:normal;color:var(--teal);}
.hero p{font-size:14px;color:var(--text2);line-height:1.7;margin-bottom:24px;max-width:420px;}
.hero-btns{display:flex;gap:10px;}
.btn-outline-teal{background:#fff;color:var(--teal);border:0.5px solid var(--teal);padding:9px 18px;border-radius:6px;font-size:13px;cursor:pointer;}
.hero-visual{background:var(--gray);border-radius:16px;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.stat-card{background:#fff;border:0.5px solid var(--border);border-radius:10px;padding:14px;text-align:center;}
.stat-card .num{font-size:22px;font-weight:500;color:var(--teal);}
.stat-card .lbl{font-size:10px;color:var(--text2);margin-top:2px;}
.stat-card.accent{background:var(--black);}
.stat-card.accent .num{color:var(--teal-mid);}
.stat-card.accent .lbl{color:rgba(255,255,255,0.5);}

.stats-bar{display:grid;grid-template-columns:repeat(4,1fr);border-top:0.5px solid var(--border);border-bottom:0.5px solid var(--border);}
.sbar{padding:16px;text-align:center;border-right:0.5px solid var(--border);}
.sbar:last-child{border-right:none;}
.sbar .n{font-size:20px;font-weight:500;color:var(--teal);}
.sbar .l{font-size:11px;color:var(--text2);margin-top:2px;}

section{padding:44px 28px;}
.sec-tag{display:inline-block;background:var(--teal-light);color:var(--teal-dark);font-size:10px;font-weight:500;padding:3px 10px;border-radius:20px;margin-bottom:8px;letter-spacing:0.5px;}
.sec-head{font-size:22px;font-weight:500;color:var(--black);margin-bottom:6px;}
.sec-sub{font-size:13px;color:var(--text2);margin-bottom:28px;}

.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.svc{background:#fff;border:0.5px solid var(--border);border-radius:12px;padding:18px 14px;cursor:pointer;transition:border-color 0.15s,background 0.15s;}
.svc:hover{border-color:var(--teal);background:var(--teal-light);}
.svc-icon{width:40px;height:40px;border-radius:10px;background:var(--teal-light);display:flex;align-items:center;justify-content:center;color:var(--teal);font-size:18px;margin-bottom:10px;}
.svc h3{font-size:12px;font-weight:500;color:var(--black);margin-bottom:4px;}
.svc p{font-size:11px;color:var(--text2);line-height:1.5;}
.svc-icon img{
    width: 30px;
}

.bg-gray{background:var(--gray);}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.step-box{background:#fff;border:0.5px solid var(--border);border-radius:12px;padding:18px 14px;text-align:center;}
.step-num{width:34px;height:34px;border-radius:50%;background:var(--teal);color:#fff;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;}
.step-box h3{font-size:12px;font-weight:500;color:var(--black);margin-bottom:4px;}
.step-box p{font-size:11px;color:var(--text2);line-height:1.5;}
.tech-wrap{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;justify-content:center;}
.tech{background:#fff;border:0.5px solid var(--border);border-radius:20px;padding:5px 12px;font-size:11px;color:var(--text2);display:flex;align-items:center;gap:5px;}
.tech i{color:var(--teal);font-size:13px;}

.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.port-card{border:0.5px solid var(--border);border-radius:12px;overflow:hidden;}
.port-thumb{height:90px;display:flex;align-items:center;justify-content:center;font-size:26px;}
.port-info{padding:10px 12px;background:#fff;}
.port-info h4{font-size:12px;font-weight:500;color:var(--black);}
.port-info p{font-size:11px;color:var(--text2);}

.cta-sec{background:var(--black);padding:48px 28px;text-align:center;}
.cta-sec h2{font-size:24px;font-weight:500;color:#fff;margin-bottom:8px;}
.cta-sec p{color:rgba(255,255,255,0.55);font-size:14px;margin-bottom:24px;}
.cta-btns{display:flex;gap:10px;justify-content:center;}
.btn-teal-lg{background:var(--teal);color:#fff;border:none;padding:11px 24px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;}
.btn-outline-w{background:transparent;color:rgba(255,255,255,0.8);border:0.5px solid rgba(255,255,255,0.3);padding:11px 24px;border-radius:6px;font-size:14px;cursor:pointer;}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;}
.cinfo{display:flex;flex-direction:column;gap:14px;}
.ci{display:flex;align-items:flex-start;gap:12px;}
.ci-ico{width:36px;height:36px;border-radius:8px;background:var(--teal-light);color:var(--teal);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;}
.ci-text h4{font-size:13px;font-weight:500;color:var(--black);}
.ci-text p{font-size:12px;color:var(--text2);margin-top:2px;}
.cform{display:flex;flex-direction:column;gap:10px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ff{display:flex;flex-direction:column;gap:4px;}
.ff label{font-size:11px;color:var(--text2);}
.ff input,.ff select,.ff textarea{padding:8px 10px;border:0.5px solid var(--border);border-radius:6px;font-size:13px;background:#fff;color:var(--text);font-family:var(--font-sans);outline:none;}
.ff input:focus,.ff select:focus,.ff textarea:focus{border-color:var(--teal);}
.ff textarea{height:68px;resize:none;}

footer{background:var(--off-black);padding:32px 28px;}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:24px;margin-bottom:24px;}
.fbrand p{font-size:12px;color:rgba(255,255,255,0.4);margin-top:8px;line-height:1.6;}
.fcol h4{font-size:11px;font-weight:500;color:rgba(255,255,255,0.6);margin-bottom:10px;letter-spacing:0.5px;}
.fcol ul{list-style:none;display:flex;flex-direction:column;gap:7px;}
.fcol ul li a{font-size:12px;color:rgba(255,255,255,0.4);text-decoration:none;}
.fbot{border-top:0.5px solid rgba(255,255,255,0.08);padding-top:16px;display:flex;justify-content:space-between;align-items:center;}
.fbot p{font-size:11px;color:rgba(255,255,255,0.25);}
.socials{display:flex;gap:8px;}
.soc{width:28px;height:28px;border-radius:6px;border:0.5px solid rgba(255,255,255,0.12);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.4);font-size:14px;}

/* =========================
   MODALE SERVICES
   ========================= */

.service-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}

.service-modal.active {
    display: flex;
}

/* Fond noir transparent */
.modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(5px);
}

/* Carré principal */
.modal-content {
    position: relative;
    z-index: 2;

    width: min(850px, 90%);
    max-height: 90vh;

    background: #fff;
    border-radius: 14px;

    overflow: hidden;

    display: grid;
    grid-template-columns: 1.2fr 1fr;

    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);

    animation: modalOpen 0.25s ease;
}

/* Animation */
@keyframes modalOpen {
    from {
        opacity: 0;
        transform: scale(0.95);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Image */
.modal-image {
    background: var(--gray);
    min-height: 450px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-image img {
    width: 100%;
    height: 100%;
    max-height: 600px;

    object-fit: cover;
    display: block;
}

/* Informations */
.modal-info {
    padding: 35px 28px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

.modal-info h2 {
    font-size: 24px;
    font-weight: 500;
    color: var(--black);
    margin-bottom: 12px;
}

.modal-info p {
    font-size: 14px;
    color: var(--text2);
    line-height: 1.7;
}

/* Bouton fermer */
.modal-close {
    position: absolute;
    z-index: 5;

    top: 12px;
    right: 12px;

    width: 34px;
    height: 34px;

    border: none;
    border-radius: 50%;

    background: rgba(0, 0, 0, 0.65);
    color: #fff;

    font-size: 24px;
    line-height: 1;

    cursor: pointer;

    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-close:hover {
    background: var(--teal);
}

.admin {
    text-decoration: none;
    font-size:11px;color:rgba(255,255,255,0.25);
}


@media (max-width: 600px) {

    .modal-content {
        width: 92%;
        max-height: 90vh;

        display: block;

        overflow-y: auto;
    }

    .modal-image {
        height: 300px;
        min-height: 0;
    }

    .modal-image img {
        height: 300px;
    }

    .modal-info {
        padding: 22px;
    }

    .modal-info h2 {
        font-size: 20px;
    }

    .modal-info p {
        font-size: 13px;
    }

}
/* =====================================================
   MENU MOBILE (hamburger)
   ===================================================== */

.nav-burger{
    display:none;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:32px;
    height:32px;
    background:none;
    border:none;
    cursor:pointer;
    padding:0;
    flex-shrink:0;
}

.nav-burger span{
    display:block;
    width:100%;
    height:2px;
    background:var(--text-primary,#1A1A1A);
    border-radius:2px;
    transition:transform .2s ease, opacity .2s ease;
}

.nav-burger-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-burger-open span:nth-child(2){ opacity:0; }
.nav-burger-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width: 700px){

    nav{ flex-wrap:wrap; }

    nav > .logo-wrap{ order:1; }

    nav > .nav-burger{ order:2; display:flex; }

    nav > .btn-teal,
    nav > .btn-outline-teal,
    nav > .btn-t,
    nav > .btn-out{ order:3; }

    nav > .nav-links{
        order:4;
        display:none;
        flex-direction:column;
        align-items:flex-start;
        width:100%;
        gap:2px;
        padding-top:12px;
    }

    nav > .nav-links.nav-links-open{ display:flex; }

    .nav-links a{
        width:100%;
        padding:10px 6px;
    }

}

/* WhatsApp / call CTAs */
.btn-wa{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:#25D366;color:#fff;border:none;border-radius:6px;
  padding:9px 18px;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;
  font-family:inherit;
}
.btn-wa:hover{background:#1ebe57;color:#fff;}
a.btn-outline-w{
  display:inline-flex;align-items:center;justify-content:center;
  text-decoration:none;
}
.cta-btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;}
.hero-btns{flex-wrap:wrap;}
.cinfo a{color:var(--teal);text-decoration:none;}
.cinfo a:hover{text-decoration:underline;}

/* Responsivité renforcée */
@media (max-width: 900px){
  .services-grid{grid-template-columns:repeat(2,1fr)!important;}
  .hero{grid-template-columns:1fr!important;gap:20px;}
  .hero-visual{order:-1;}
  .stats-bar{grid-template-columns:repeat(2,1fr)!important;}
  .contact-grid{grid-template-columns:1fr!important;gap:20px;}
  .fgrid{grid-template-columns:1fr 1fr!important;gap:20px;}
  .port-grid{grid-template-columns:repeat(2,1fr)!important;}
}
@media (max-width: 560px){
  section{padding:28px 16px!important;}
  nav{padding:10px 14px!important;}
  .hero{padding:24px 16px!important;}
  .hero h1{font-size:24px!important;}
  .hero p{font-size:13px!important;}
  .hero-btns{flex-direction:column;align-items:stretch;}
  .hero-btns .btn-teal,
  .hero-btns .btn-outline-teal,
  .hero-btns .btn-wa{width:100%;text-align:center;justify-content:center;}
  .services-grid{grid-template-columns:1fr!important;}
  .stats-bar{grid-template-columns:1fr 1fr!important;}
  .sbar{padding:12px 8px;}
  .port-grid{grid-template-columns:1fr!important;}
  .cta-sec{padding:32px 16px!important;}
  .cta-btns{flex-direction:column;align-items:stretch;}
  .cta-btns .btn-teal-lg,
  .cta-btns .btn-outline-w,
  .cta-btns .btn-wa{width:100%;text-align:center;justify-content:center;box-sizing:border-box;}
  .fgrid{grid-template-columns:1fr!important;}
  .fbot{flex-direction:column;gap:12px;text-align:center;}
  .row-2{grid-template-columns:1fr!important;}
}

/* === Design Atypique — couleurs logo (teal #007070) === */
:root{
  --teal:#007070;
  --teal-dark:#005858;
  --teal-mid:#2a9a9a;
  --teal-light:#e6f5f5;
  --teal-glow:rgba(0,112,112,.18);
}

/* Animations d'apparition */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(18px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
  from { opacity:0; }
  to { opacity:1; }
}
@keyframes scaleIn {
  from { opacity:0; transform:scale(.96); }
  to { opacity:1; transform:scale(1); }
}
.reveal{
  animation: fadeUp .55s ease both;
}
.svc, .port-card, .stat-card, .ci{
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.svc:hover, .port-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 28px var(--teal-glow);
  border-color: var(--teal);
}
.svc-icon{
  transition: transform .25s ease, background .25s ease;
}
.svc:hover .svc-icon{
  transform: scale(1.08);
  background: var(--teal);
  color: #fff;
}
.svc-icon i{ font-size:20px; }

/* Portfolio cards as links */
a.port-card{
  text-decoration:none; color:inherit; display:block;
  background:#fff; border:0.5px solid var(--border); border-radius:12px; overflow:hidden;
}
a.port-card .port-thumb{
  height:120px; display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, var(--teal-light), #fff);
  font-size:36px; color: var(--teal);
  transition: background .25s ease;
}
a.port-card:hover .port-thumb{ background: linear-gradient(135deg, var(--teal), var(--teal-dark)); color:#fff; }
a.port-card .port-info{ padding:12px 14px; }
a.port-card .port-info h4{ font-size:13px; font-weight:600; margin-bottom:4px; color:var(--black); }
a.port-card .port-info p{ font-size:11px; color:var(--text2); line-height:1.45; }

/* Modal gallery controls */
.service-modal.active{ display:flex; animation: fadeIn .2s ease; }
.service-modal .modal-content{ animation: scaleIn .28s ease; }
.modal-image{ position:relative; }
.gallery-btn{
  position:absolute; top:50%; transform:translateY(-50%);
  width:40px; height:40px; border-radius:50%;
  border:none; background:rgba(0,0,0,.55); color:#fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:22px; z-index:2;
  transition: background .2s ease, transform .2s ease;
}
.gallery-btn:hover{ background:var(--teal); transform:translateY(-50%) scale(1.06); }
.gallery-prev{ left:10px; }
.gallery-next{ right:10px; }
.gallery-counter{
  position:absolute; bottom:10px; left:50%; transform:translateX(-50%);
  background:rgba(0,0,0,.6); color:#fff; font-size:11px;
  padding:4px 10px; border-radius:20px;
}
.modal-close{
  display:flex; align-items:center; justify-content:center;
  font-size:20px;
}
.modal-close i{ line-height:1; }

/* Boutons teal unifiés */
.btn-teal, .btn-teal-lg{
  background:var(--teal)!important;
  transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
}
.btn-teal:hover, .btn-teal-lg:hover{
  background:var(--teal-dark)!important;
  box-shadow:0 6px 16px var(--teal-glow);
}
.btn-outline-teal:hover{
  background:var(--teal-light);
}

/* Nav active */
.nav-links a.active-nav{ color:var(--teal); font-weight:600; }

/* Hero soft animation */
.hero h1{ animation: fadeUp .6s ease both; }
.hero p{ animation: fadeUp .6s ease .1s both; }
.hero-btns{ animation: fadeUp .6s ease .18s both; }
.hero-visual{ animation: fadeUp .7s ease .12s both; }

/* Stats bar */
.sbar .n{ color:var(--teal); }

/* Social hover */
.soc{ transition: background .2s ease, color .2s ease; cursor:pointer; }
.soc:hover{ background:var(--teal); color:#fff; }

/* ========== Anti-scroll horizontal + responsive ========== */
html, body {
  overflow-x: hidden;
  max-width: 100%;
  width: 100%;
  position: relative;
}
img, video, iframe, svg {
  max-width: 100%;
  height: auto;
}
.logo-box img {
  width: auto !important;
  max-width: 140px;
  height: auto;
}
nav, .hero, section, footer, .stats-bar, .cta-sec, .contact-grid, .fgrid {
  max-width: 100%;
}
.hero-btns, .cta-btns {
  max-width: 100%;
}
.services-grid, .portfolio-grid, .process-grid {
  max-width: 100%;
}

@media (max-width: 900px) {
  .hero {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 32px 16px !important;
  }
  .hero-visual {
    order: -1;
    max-width: 100%;
  }
  .services-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .portfolio-grid, .port-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .process-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .stats-bar {
    grid-template-columns: 1fr 1fr !important;
  }
  .contact-grid {
    grid-template-columns: 1fr !important;
  }
  .fgrid {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 700px) {
  nav {
    padding: 8px 12px !important;
    gap: 8px;
  }
  .logo-box img {
    max-width: 110px !important;
  }
  .btn-teal, nav > .btn-teal {
    padding: 7px 12px !important;
    font-size: 12px !important;
    white-space: nowrap;
  }
  section {
    padding: 28px 14px !important;
  }
  .hero h1 {
    font-size: 22px !important;
  }
  .hero p {
    max-width: 100% !important;
  }
  .hero-btns {
    flex-direction: column;
    width: 100%;
  }
  .hero-btns > * {
    width: 100%;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
  }
  .services-grid {
    grid-template-columns: 1fr !important;
  }
  .portfolio-grid, .port-grid {
    grid-template-columns: 1fr !important;
  }
  .process-grid {
    grid-template-columns: 1fr !important;
  }
  .fgrid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .fbot {
    flex-direction: column;
    gap: 12px;
    text-align: center;
  }
  .cta-sec {
    padding: 28px 14px !important;
  }
  .cta-btns {
    flex-direction: column;
    width: 100%;
  }
  .cta-btns > * {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    justify-content: center;
  }
  .frow {
    grid-template-columns: 1fr !important;
  }
  .modal-content {
    grid-template-columns: 1fr !important;
    width: 94% !important;
    max-height: 90vh;
    overflow-y: auto;
  }
  .modal-image {
    min-height: 200px !important;
  }
}

@media (max-width: 400px) {
  .hero h1 { font-size: 20px !important; }
  .stats-bar { grid-template-columns: 1fr !important; }
}


.contact-plain-link,
.ci-text a,
.cinfo a {
  text-decoration: none !important;
  color: inherit;
}
.contact-plain-link:hover,
.ci-text a:hover {
  color: var(--teal, #007070);
  text-decoration: none !important;
}
a.soc, a.fs {
  text-decoration: none;
}
a.hero-badge:hover {
  opacity: 0.9;
}


/* Icônes réseaux footer — visibles sur fond sombre */
footer .socials a.soc,
footer .soc,
footer a.soc,
footer .fsoc a.fs,
footer .fs,
footer a.fs {
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.35) !important;
  background: transparent;
  text-decoration: none !important;
}
footer .socials a.soc:hover,
footer a.soc:hover,
footer .fsoc a.fs:hover,
footer a.fs:hover {
  background: var(--teal, #007070) !important;
  color: #ffffff !important;
  border-color: var(--teal, #007070) !important;
}
footer .soc i,
footer .fs i,
footer a.soc i,
footer a.fs i {
  color: #ffffff !important;
  font-size: inherit;
}
