/* ReparaBox V32 — optimisation smartphone */

/* Aucun débordement horizontal parasite sur petits écrans */
html,body{max-width:100%;overflow-x:hidden}

/* Barre d'actions mobile : discrète sur desktop */
.mobile-bottom-bar{display:none}

@media (max-width: 920px){
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}

  /* En-tête plus compact et plus lisible */
  .site-header{background:rgba(5,17,28,.96);backdrop-filter:blur(16px)}
  .nav-wrap{min-height:68px;gap:12px}
  .brand{min-width:0;gap:9px}
  .brand img{width:38px;height:38px;flex:0 0 38px}
  .brand b{font-size:21px}
  .brand small{font-size:9px;letter-spacing:.75px;white-space:nowrap}
  .menu-toggle{
    display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;
    border:1px solid rgba(104,174,217,.18);border-radius:14px;
    background:rgba(255,255,255,.045);font-size:0;line-height:1;
  }
  .menu-toggle::before{content:"☰";font-size:25px;line-height:1}
  .menu-toggle[aria-expanded="true"]::before{content:"×";font-size:32px;font-weight:300}
  .main-nav{
    position:fixed;top:68px;left:10px;right:10px;
    border:1px solid rgba(99,171,216,.18);border-radius:0 0 18px 18px;
    background:rgba(6,21,34,.985);box-shadow:0 22px 50px rgba(0,0,0,.38);
    overflow:hidden;z-index:100;
  }
  .main-nav a{width:100%;padding:16px 18px;border-top:1px solid rgba(76,132,172,.11);font-size:16px}
  .main-nav a:first-child{border-top:0}

  /* Barre d'actions toujours accessible au pouce */
  .mobile-bottom-bar{
    position:fixed;display:grid;grid-template-columns:1fr 1fr 1fr;
    left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:90;
    padding:7px;gap:6px;border:1px solid rgba(100,178,225,.22);border-radius:19px;
    background:rgba(6,20,32,.96);backdrop-filter:blur(18px);
    box-shadow:0 14px 42px rgba(0,0,0,.42)
  }
  .mobile-bottom-bar a{
    min-height:48px;display:flex;align-items:center;justify-content:center;gap:6px;
    border-radius:13px;text-decoration:none;font-size:13px;font-weight:800;color:#eaf5fc;
    background:rgba(255,255,255,.055);white-space:nowrap
  }
  .mobile-bottom-bar a:last-child{background:linear-gradient(135deg,#149cf0,#287fff);color:white}

  /* Hero : moins haut, texte mieux hiérarchisé, photo encore visible */
  .hero{min-height:0;align-items:flex-start}
  .hero-bg{background-position:64% center}
  .hero-overlay{
    background:
      linear-gradient(90deg,rgba(4,14,24,.94) 0%,rgba(4,14,24,.84) 52%,rgba(4,14,24,.54) 100%),
      linear-gradient(180deg,rgba(3,10,18,.2),rgba(3,10,18,.82));
  }
  .hero-content{padding:54px 0 42px}
  .hero-copy{max-width:none!important}
  .hero .eyebrow{max-width:330px;font-size:10.5px;line-height:1.55;letter-spacing:1.2px;margin-bottom:10px}
  .hero-title{
    margin-bottom:16px!important;font-size:clamp(36px,9.5vw,44px)!important;
    line-height:.97!important;letter-spacing:-1.6px!important
  }
  .hero-title .hero-line{white-space:nowrap!important}
  .lead{font-size:15.5px;line-height:1.68;max-width:600px}
  .hero-actions{gap:9px;margin-top:20px}
  .hero>.hero-content .hero-actions .btn{flex:1 1 145px;min-height:50px;padding:13px 15px}
  .hero-points{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:20px}
  .hero-points div{border-radius:14px;padding:12px 13px;min-width:0}
  .hero-points b{font-size:13px;margin-bottom:2px}
  .hero-points span{font-size:11.5px;line-height:1.4}

  /* Espacements plus courts sur tablette/mobile */
  .section{padding:64px 0}
  .intro-cards{padding:16px 0 46px}
  .section-head{margin-bottom:28px}
  .section-head h2{font-size:clamp(31px,7vw,42px);line-height:1.03;letter-spacing:-1px}
  .section-head p:last-child{font-size:15.5px;line-height:1.65}

  /* Tuiles d'introduction : 2 x 2 au lieu d'une longue colonne */
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .mini-card{padding:17px 15px;border-radius:16px}
  .mini-card h3{font-size:18px;margin-bottom:6px}
  .mini-card p{font-size:13px;line-height:1.5}

  /* Services */
  .service-feature{gap:18px;border-radius:22px;padding:18px;margin-bottom:16px}
  .service-feature .service-media{order:-1}
  .service-media img{min-height:0;height:235px;border-radius:17px}
  .service-copy h3{font-size:clamp(29px,7.4vw,38px);line-height:1.02}
  .service-copy p,.service-body p{font-size:15px;line-height:1.68}
  .check-list{margin-top:15px}
  .check-list li{font-size:14px;line-height:1.55;padding-left:24px;margin:9px 0}
  .service-grid{gap:14px}
  .service-card{border-radius:20px}
  .service-card.large img{height:220px}
  .service-body{padding:19px}
  .service-body h3{font-size:25px;line-height:1.07}
  .service-feature .hero-actions{display:grid;grid-template-columns:1fr 1fr}
  .service-feature .hero-actions .btn{padding:12px 10px;font-size:13px}
  .service-card .hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .service-card .hero-actions .btn{padding:11px 9px;font-size:12.5px;min-width:0}
  .service-card .hero-actions .btn:only-child{grid-column:1/-1}

  /* Tarifs : 2 cartes par ligne, la prestation Switch prend toute la largeur */
  .price-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .price-card{padding:16px 14px;border-radius:16px;min-width:0}
  .price-card h3{font-size:16px;line-height:1.2}
  .price-card p{font-size:12.5px;line-height:1.45;min-height:0;margin-bottom:12px}
  .price-card strong{font-size:22px;line-height:1.1;overflow-wrap:anywhere}
  .price-card small{font-size:11px;line-height:1.4}
  .price-card.highlight{grid-column:1/-1;text-align:center;padding:20px}
  .price-note{font-size:13px;line-height:1.6;margin-top:15px}

  /* Contact : compact, grands champs tactiles, pas de zoom iOS */
  .contact-grid{gap:22px}
  .contact-copy h2{font-size:36px}
  .contact-copy p{font-size:15.5px;line-height:1.68}
  .contact-boxes{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:19px}
  .contact-box{padding:13px 11px;border-radius:14px;min-width:0}
  .contact-box b{font-size:11px;line-height:1.3}
  .contact-box a,.contact-box span{font-size:12px;overflow-wrap:anywhere}
  .contact-form{padding:18px;border-radius:20px}
  .contact-form label{font-size:13px;margin-bottom:12px}
  .contact-form input,.contact-form select,.contact-form textarea{
    font-size:16px;min-height:50px;padding:13px 14px;border-radius:12px
  }
  .contact-form textarea{min-height:132px;resize:vertical}
  .contact-form .btn.full{min-height:52px;font-size:15px}

  /* Footer */
  .site-footer{padding:24px 0 28px}
  .footer-wrap{gap:18px}
  .footer-links{grid-template-columns:repeat(2,auto);gap:8px 22px}
  .footer-wrap p{font-size:13px}
}

@media (max-width: 640px){
  .shell{width:calc(100% - 28px)}
  .brand small{display:none}

  /* On garde deux lignes nettes sur les téléphones courants */
  .hero-title{font-size:clamp(35px,9.8vw,40px)!important}
  .section{padding:56px 0}
  .intro-cards{padding:14px 0 42px}

  .contact-boxes{grid-template-columns:1fr}
  .contact-box{display:grid;grid-template-columns:minmax(120px,.8fr) 1.2fr;gap:10px;align-items:center}
  .contact-box b{margin:0}
  .contact-box a,.contact-box span{text-align:right}

  /* Pages SEO */
  .seo-hero{padding:38px 0 48px}
  .seo-breadcrumb{font-size:11.5px;margin-bottom:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .seo-hero h1{font-size:clamp(35px,9.5vw,43px);line-height:1;letter-spacing:-1.4px}
  .seo-lead{font-size:15.5px;line-height:1.68}
  .seo-hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
  .seo-hero-actions .btn{padding:13px 10px;font-size:13px;min-width:0}
  .seo-hero-media{border-radius:19px}
  .seo-hero-media img{height:225px}
  .console-badge{height:225px;padding:20px;gap:12px}
  .console-badge-icon{width:70px;height:70px;border-radius:17px}
  .console-badge-icon svg{width:38px;height:38px}
  .console-badge-name{font-size:22px}
  .console-badge-chips span{padding:5px 11px;font-size:11px}
  .seo-proof{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:18px}
  .seo-proof div{padding:11px 9px;border-radius:13px;min-width:0}
  .seo-proof b{font-size:11px;overflow-wrap:anywhere}.seo-proof span{font-size:10px;line-height:1.3}
  .seo-section{padding:52px 0}
  .seo-head{margin-bottom:25px}
  .seo-title{font-size:31px;line-height:1.04}
  .seo-head>p:last-child{font-size:14.5px;line-height:1.65}
  .seo-cards{gap:11px}
  .seo-card{padding:17px;border-radius:17px}
  .seo-card h3{font-size:19px}.seo-card p{font-size:14px;line-height:1.62}
  .seo-card img{height:185px;border-radius:13px}
  .seo-copy h2{font-size:31px}.seo-copy p{font-size:14.5px;line-height:1.68}
  .seo-list li{font-size:14px;line-height:1.55;padding-left:24px}
  .seo-photo img{height:235px}
  .faq-list details{padding:15px 0}.faq-list summary{font-size:15px;line-height:1.45}.faq-list p{font-size:14px;line-height:1.65}
  .local-strip{justify-content:flex-start;gap:7px}.local-strip span{font-size:11.5px;padding:7px 10px}
  .related-grid{gap:9px}.related-grid a{padding:14px;border-radius:14px;font-size:14px}
  .seo-cta{padding:21px;border-radius:19px}.seo-cta h2{font-size:26px}.seo-cta p{font-size:14px}
  .seo-footer{padding:27px 0}.seo-footer-grid{gap:20px}.seo-footer p,.seo-footer a{font-size:13px}
}

@media (max-width: 359px){
  .shell{width:calc(100% - 22px)}
  .hero-title .hero-line{white-space:normal!important}
  .quick-grid,.price-grid{grid-template-columns:1fr}
  .price-card.highlight{grid-column:auto}
  .service-feature .hero-actions,.service-card .hero-actions,.seo-hero-actions{grid-template-columns:1fr}
  .seo-proof{grid-template-columns:1fr}
  .mobile-bottom-bar a{font-size:12px}
}


/* V36 — header premium */
@media (max-width: 920px){
  .nav-wrap{min-height:78px}
  .brand-copy small{display:none}
  .brand-copy strong{font-size:21px}
}
@media (max-width: 640px){
  .nav-wrap{gap:12px}
  .brand{max-width:calc(100% - 60px)}
  .brand-copy strong{font-size:19px}
}


/* V45 — menu mobile fiable + bandeau toujours visible */
@media (max-width: 920px){
  html{scroll-padding-top:88px}

  body{
    padding-top:78px;
  }

  .site-header{
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    width:100%;
    z-index:1000 !important;
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
  }

  .nav-wrap{
    min-height:78px;
    position:relative;
  }

  .menu-toggle{
    position:relative;
    z-index:1003;
    display:grid !important;
    place-items:center;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    cursor:pointer;
  }

  .main-nav{
    display:none !important;
    position:fixed !important;
    top:78px !important;
    left:10px !important;
    right:10px !important;
    width:auto !important;
    max-height:calc(100dvh - 96px);
    overflow-y:auto;
    z-index:1002 !important;
    flex-direction:column;
    gap:0;
    border:1px solid rgba(99,171,216,.22);
    border-radius:0 0 18px 18px;
    background:rgba(6,21,34,.99);
    box-shadow:0 22px 50px rgba(0,0,0,.42);
  }

  .main-nav.open{
    display:flex !important;
  }

  .main-nav a{
    display:block;
    width:100%;
    padding:17px 18px !important;
    border-top:1px solid rgba(76,132,172,.12);
    font-size:16px;
  }

  body.menu-open{
    overflow:hidden;
  }
}

@media (max-width: 640px){
  body{padding-top:72px}
  html{scroll-padding-top:82px}

  .nav-wrap{min-height:72px}

  .main-nav{
    top:72px !important;
    left:8px !important;
    right:8px !important;
    max-height:calc(100dvh - 88px);
  }
}


/* V47 — correctif final bouton menu mobile */
@media (max-width: 920px){
  .menu-toggle{
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
    border-radius:14px;
    border:1px solid rgba(91,176,229,.18);
    background:rgba(10,28,44,.82);
    color:#fff;
    font-size:27px;
    line-height:1;
    user-select:none;
    -webkit-user-select:none;
  }

  .menu-toggle:active{
    transform:scale(.96);
  }

  .menu-toggle.is-open{
    background:rgba(20,156,240,.16);
    border-color:rgba(57,184,255,.38);
    color:#7ed9ff;
  }

  .main-nav.open{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }
}


/* V48 — menu mobile simplifié, sans double icône ni conflit JS */
@media (max-width: 920px){
  html{
    scroll-padding-top:76px !important;
  }

  body{
    padding-top:68px !important;
  }

  .site-header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    z-index:5000 !important;
    background:rgba(5,17,28,.97) !important;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(76,132,172,.18);
  }

  .nav-wrap{
    min-height:68px !important;
    height:68px;
    gap:10px !important;
    position:relative;
  }

  .brand-premium{
    gap:9px !important;
    min-width:0;
  }

  .brand-mark{
    width:42px !important;
    height:42px !important;
    flex:0 0 42px !important;
    border-radius:13px !important;
  }

  .brand-mark img{
    width:34px !important;
    height:34px !important;
  }

  .brand-copy strong{
    font-size:20px !important;
    line-height:1 !important;
  }

  .brand-copy small{
    display:none !important;
  }

  .call-btn{
    display:none !important;
  }

  .menu-toggle{
    display:flex !important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    padding:0 !important;
    margin-left:auto;
    border:1px solid rgba(91,176,229,.22) !important;
    border-radius:13px !important;
    background:rgba(10,28,44,.88) !important;
    cursor:pointer;
    position:relative;
    z-index:5002 !important;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    color:transparent !important;
    font-size:0 !important;
    line-height:0 !important;
  }

  .menu-toggle::before,
  .menu-toggle::after{
    content:none !important;
    display:none !important;
  }

  .menu-toggle > span{
    display:block;
    width:23px;
    height:2.5px;
    border-radius:999px;
    background:#f2f7fb;
    transition:transform .2s ease, opacity .2s ease;
    transform-origin:center;
  }

  .menu-toggle.is-open > span:nth-child(1){
    transform:translateY(7.5px) rotate(45deg);
  }

  .menu-toggle.is-open > span:nth-child(2){
    opacity:0;
  }

  .menu-toggle.is-open > span:nth-child(3){
    transform:translateY(-7.5px) rotate(-45deg);
  }

  .main-nav{
    display:none !important;
    position:fixed !important;
    top:68px !important;
    left:10px !important;
    right:10px !important;
    width:auto !important;
    max-height:calc(100dvh - 84px);
    overflow-y:auto;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    z-index:5001 !important;
    border:1px solid rgba(99,171,216,.22) !important;
    border-top:0 !important;
    border-radius:0 0 18px 18px !important;
    background:#071522 !important;
    box-shadow:0 22px 50px rgba(0,0,0,.45) !important;
    opacity:1 !important;
    visibility:visible !important;
  }

  .main-nav.open{
    display:flex !important;
  }

  .main-nav a{
    display:block !important;
    width:100% !important;
    padding:17px 18px !important;
    margin:0 !important;
    border-top:1px solid rgba(76,132,172,.13) !important;
    color:#f0f7fd !important;
    font-size:16px !important;
    font-weight:750 !important;
    text-decoration:none !important;
  }

  .main-nav a:first-child{
    border-top:0 !important;
  }
}

@media (max-width: 640px){
  html{scroll-padding-top:74px !important}
  body{padding-top:66px !important}

  .nav-wrap{
    min-height:66px !important;
    height:66px !important;
  }

  .main-nav{
    top:66px !important;
    left:8px !important;
    right:8px !important;
  }

  .brand-copy strong{
    font-size:19px !important;
  }

  .brand-mark{
    width:40px !important;
    height:40px !important;
    flex-basis:40px !important;
  }

  .brand-mark img{
    width:32px !important;
    height:32px !important;
  }

  .menu-toggle{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
  }
}

@media (max-width: 920px){
  .nav-dd{width:100%;border-top:1px solid rgba(76,132,172,.11)}
  .nav-dd-btn{width:100%;justify-content:space-between;padding:16px 18px;font-size:16px}
  .nav-dd-menu{position:static;display:none;transform:none;min-width:0;grid-template-columns:1fr;gap:0;padding:0 0 8px;border:0;border-radius:0;box-shadow:none;background:rgba(255,255,255,.03)}
  .nav-dd:hover .nav-dd-menu,.nav-dd:focus-within .nav-dd-menu{display:none}
  .nav-dd.open .nav-dd-menu{display:grid}
  .nav-dd-col b{margin:10px 18px 2px}
  .nav-dd-col a{padding:12px 18px 12px 30px;border-top:0 !important;font-size:15px !important;white-space:normal}
}
