    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
		--bleu_fonce:	#1a3a5c;
		--bleu_moyen:   #2162a0;
		--bleu_pale:   	#ddeaf7;
		--bleu_pale2:  	#eef5fb;
		--azer:      	#4eb1c8;
		--azer_fonce:  	#3a8fa3;
		--azer_clair:  	#e8f6fa;
		--blanc:       	#ffffff;
		--gris_clair:  	#f4f6f8;
		--gris_moyen:   #c8d5e0;
		--gris_texte:   #5a6a7a;
		--text:        	#1e2e3e;
		--vert_valide:  #2e7d32;
		--orange:		#ff4000;
		--font-head:   'Raleway', sans-serif;
		--font-body:   'Open Sans', sans-serif;
    }
    html { overflow-x: clip;scroll-behavior: smooth; scroll-padding-top: 10px; }
    body { overflow-x: clip;font-family: var(--font-body); color: var(--text); background: var(--blanc); font-size: 15px; line-height: 1.75; }
	
    /* CONTAINER — limite la largeur du contenu */
    .container { max-width: 1100px; margin: 0 auto; width: 100%; }

    /* TOPBAR */
    .topbar { background: var(--azer); color: rgba(255,255,255,0.7); text-align: center; font-size: .8rem; font-weight:600 ;  padding: .45rem 1rem; letter-spacing: .04em; }
    .topbar a { color: rgba(255,255,255,0.9); text-decoration: none; }

    /* Barre de navigation */
    nav { background: var(--blanc); border-bottom: 3px solid var(--azer); padding: 0 5vw; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
	.hamburger { display: none; }
    .barre_contenu { max-width: 1100px; margin: 0 auto; display: flex; align-items: stretch; justify-content: space-between; }
    .barre_logo { display: flex; align-items: center; gap: .8rem; padding: .9rem 0; text-decoration: none; }
    .barre_logo_icone { width: 42px; height: 42px;display: flex; align-items: center;}
    .barre_logo_texte { font-family: var(--font-head); font-weight: 700; font-size: 1.25rem; color: var(--bleu_fonce); letter-spacing: .5px; }
    .barre_logo_texte span { display: block; font-size: .5rem; font-weight: 400; color: var(--gris_texte); letter-spacing: .08em; text-transform: uppercase; }
    .barre_lien { display: flex; list-style: none; align-items: stretch; }
    .barre_lien a { display: flex; align-items: center; padding: 0 1.1rem; color: var(--bleu_fonce); text-decoration: none; font-size: .87rem; font-weight: 600; border-bottom: 3px solid transparent; margin-bottom: -3px; transition: color .2s, border-color .2s; white-space: nowrap; }
    .barre_lien a:hover { color: var(--azer); border-bottom-color: var(--azer); }

    /* presentation */
    .presentation-outer { background: linear-gradient(135deg, var(--azer_fonce) 0%, var(--azer) 60%, var(--azer_clair) 100%); padding: 5rem 5vw 4rem; position: relative; overflow: hidden; }
    .presentation { color: white; display: flex; align-items: center; gap: 4rem; flex-wrap: wrap; position: relative; z-index: 1; }
    .presentation-content { flex: 1; min-width: 280px; position: relative; z-index: 1; }
    .presentation-tag { display: inline-block; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.3); border-radius: 3px; padding: .25rem .8rem; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; margin-bottom: 1.2rem; }
    .presentation h1 { font-family: var(--font-head); font-size: clamp(2rem, 4.5vw, 3.2rem); font-weight: 800; line-height: 1.15; margin-bottom: .6rem; }
    .presentation h1 strong { color: #a8d4f5; }
    .presentation-subtitle { font-size: 1.1rem; font-weight: 600; color: rgba(255,255,255,0.9); margin-bottom: 1rem; font-family: var(--font-head); }
    .presentation p { font-size: .97rem; color: rgba(255,255,255,0.8); max-width: 520px; margin-bottom: 2rem; font-weight: 300; line-height: 1.8; }
    .cta-group { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }

    .btn-playstore { display: inline-flex; align-items: center; gap: .75rem; background: #000; color: white; text-decoration: none; padding: .7rem 1.4rem; border-radius: 8px; font-size: .9rem; transition: transform .2s, box-shadow .2s; border: 1px solid rgba(255,255,255,0.2); }
    .btn-playstore:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.4); }
    .btn-playstore svg { width: 22px; height: 22px; flex-shrink: 0; }
    .btn-playstore-text { text-align: left; }
    .btn-playstore-text small { display: block; font-size: .65rem; opacity: .75; font-weight: 300; }
    .btn-playstore-text strong { font-size: 1rem; font-weight: 700; }

    .btn-secondary { display: inline-flex; align-items: center; gap: .5rem; color: white; text-decoration: none; padding: .7rem 1.4rem; border-radius: 8px; font-size: .9rem; font-weight: 600; border: 2px solid rgba(255,255,255,0.4); transition: background .2s; }
    .btn-secondary:hover { background: rgba(255,255,255,0.1); }

    .tablette { height: 400px;width: min(300px, 80vw);  border: 3px solid rgba(255,255,255,0.25); border-radius: 20px; overflow: hidden; box-shadow: 10px 10px 10px rgba(0,0,0,0.25); position: relative; z-index: 1; flex-shrink: 0; }

    /* quelques chiffres */
    .chiffre-outer { background: var(--bleu_pale2); border-top: 1px solid var(--gris_moyen); border-bottom: 1px solid var(--gris_moyen); padding: 2rem 5vw; }
    .chiffre { display: flex; justify-content: center; flex-wrap: wrap; }
    .stat { flex: 1; min-width: 160px; max-width: 220px; text-align: center; padding: 1rem 1.5rem; border-right: 1px solid var(--gris_moyen); }
    .stat:last-child { border-right: none; }
    .stat-num { font-family: var(--font-head); font-size: 2.2rem; font-weight: 800; color: var(--azer); line-height: 1; }
    .stat-label { font-size: .8rem; color: var(--gris_texte); margin-top: .3rem; text-transform: uppercase; letter-spacing: .06em; }

    /* SECTIONS */
    .section { padding: 4.5rem 5vw; }
    .section-inner { max-width: 1100px; margin: 0 auto; }
    .section-header { margin-bottom: 2.5rem; }
    .section-tag { display: inline-block; background: var(--azer_clair); color: var(--azer); border-left: 3px solid var(--azer); padding: .2rem .8rem; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: .8rem; }
    .section-header h2 { font-family: var(--font-head); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 700; color: var(--bleu_fonce); line-height: 1.2;}
    .section-header p,.section-pied p { color: var(--gris_texte); margin-top: .6rem;  font-size: .95rem; }
    .divider { width: 50px; height: 3px; background: var(--azer); margin: 1rem 0 0; }

    /* Présentation */
    .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; }
    .feature-card { background: white; border: 1px solid var(--gris_moyen); border-top: 3px solid var(--azer); border-radius: 4px; padding: 1.8rem 1.5rem; transition: box-shadow .25s, transform .25s; }
    .feature-card:hover { box-shadow: 0 6px 24px rgba(78,177,200,0.13); transform: translateY(-3px); }
	.feature-card-header { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
	.feature-icon { width: 44px; height: 44px; background: var(--azer_clair); border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: 1rem; }
    .feature-card h3 { font-family: var(--font-head); font-size: 1rem; font-weight: 700; color: var(--bleu_fonce); margin-bottom: .5rem; }
    .feature-card p { font-size: .9rem; color: var(--gris_texte); }
    .feature-card ul { font-size: .9rem; color: var(--gris_texte); }

    .steps-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2rem; }
    .step-item { text-align: center; }
    .step-num-circle { width: 56px; height: 56px; background: var(--azer); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-head); font-size: 1.3rem; font-weight: 800; margin: 0 auto 1.2rem; box-shadow: 0 4px 14px rgba(78,177,200,0.35); }
    .step-item h3 { font-family: var(--font-head); font-weight: 700; font-size: 1rem; color: var(--bleu_fonce); margin-bottom: .4rem; }
    .step-item p { font-size: .88rem; color: var(--gris_texte); }

    .notice-link { display: inline-flex; align-items: center; gap: .5rem; color: rgba(255,255,255,0.75); text-decoration: none; font-size: .88rem; margin-top: 1.2rem; border-bottom: 1px dashed rgba(255,255,255,0.35); padding-bottom: 1px; transition: color .2s; }
    .notice-link:hover { color: white; }

    /* CONTACT FORM */
    .contact_section { padding: 4.5rem 5vw; background: var(--gris_clair); }
    .contact_section > .container { max-width: 1100px; margin: 0 auto; }
    .contact_inner { display: grid; grid-template-columns: 1fr 1.6fr; gap: 4rem; align-items: start; }
    .contact_info h2 { font-family: var(--font-head); font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 700; color: var(--bleu_fonce); line-height: 1.2; margin-bottom: .8rem; }
    .contact_info .divider { margin-bottom: 1.5rem; }
    .contact_info p { color: var(--gris_texte); font-size: .95rem; margin-bottom: 1.5rem; }
    .contact_detail { display: flex; align-items: flex-start; gap: .8rem; margin-bottom: 1rem; }
    .contact_detail_icone { width: 36px; height: 36px; background: var(--azer_clair); border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 1rem; flex-shrink: 0; }
    .contact_detail_texte { font-size: .9rem; }
    .contact_detail_texte strong { display: block; color: var(--bleu_fonce); font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: .1rem; }
    .contact_detail_texte a { color: var(--azer); text-decoration: none; }
    .contact_detail_texte a:hover { text-decoration: underline; }

    /* Formulaire */
    .form-card { background: white; border: 1px solid var(--gris_moyen); border-radius: 8px; padding: 2.2rem; box-shadow: 0 4px 20px rgba(0,0,0,0.06); }
    .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
    .form-group { margin-bottom: 1.2rem; }
    .form-group label { display: block; font-size: .82rem; font-weight: 700; color: var(--bleu_fonce); letter-spacing: .04em; text-transform: uppercase; margin-bottom: .45rem; }
    .form-group label .required { color: var(--orange); margin-left: 2px; vertical-align: super; font-weight:400;}
    .form-group input,
    .form-group select,
    .form-group textarea {
      width: 100%;
      padding: .65rem .9rem;
      border: 1px solid var(--gris_moyen);
      border-radius: 4px;
      font-family: var(--font-body);
      font-size: .92rem;
      color: var(--text);
      background: var(--blanc);
      transition: border-color .2s, box-shadow .2s;
      outline: none;
      appearance: none;
    }
    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus {
      border-color: var(--azer);
      box-shadow: 0 0 0 3px rgba(78,177,200,0.13);
    }
    .form-group textarea { resize: vertical; min-height: 130px; }
    .form-group select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%232162a0' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .9rem center; padding-right: 2.5rem; cursor: pointer; }


	.ligne_btn_cr { display:flex; align-items:center; gap:16px; }
    .formulaire_btn { display: inline-flex; align-items: center; gap: .6rem; background: var(--azer); color: white; border: none; padding: .8rem 2rem; margin: 1rem 0; border-radius: 4px; font-family: var(--font-body); font-size: .95rem; font-weight: 600; cursor: pointer; letter-spacing: .03em; transition: background .2s, transform .2s; flex-shrink: 0;}
    .formulaire_btn:hover { background: var(--azer_fonce); transform: translateY(-1px); }
	#compte_rendu { display: none; font-size: 0.92rem; line-height: 1.5; text-align:center;}
    #compte_rendu.succes { display: block; color: green; }
    #compte_rendu.erreur   { display: block; color: red; }

    .rgpd-note { font-size: .78rem; color: var(--gris_texte); margin-top: 1rem; line-height: 1.5; }
    .rgpd-note a { color: var(--azer); text-decoration: none; }


    /* FOOTER */
/*    footer { background: linear-gradient(135deg, var(--azer_fonce) 0%, var(--azer) 60%, var(--azer_clair) 100%); color: rgba(255,255,255,0.65); padding: 3rem 5vw 1.5rem; }*/
    footer { background: var(--azer_fonce); color: rgba(255,255,255,0.65); padding: 3rem 5vw 1.5rem; }
    footer .pied_contenu { max-width: 1100px; margin: 0 auto; }
    .pied_haut { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255,255,255,0.1); margin-bottom: 1.5rem; }
    .pied_marque .logo-text { font-family: var(--font-head); font-size: 1.3rem; font-weight: 800; color: white; letter-spacing: 1px; }
    .pied_marque p { font-size: .82rem; margin-top: .5rem; max-width: 260px; line-height: 1.6; }
    .pied_lien h4 { color: white; font-size: .85rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: .8rem; }
    .pied_lien ul { list-style: none; display: flex; flex-direction: column; gap: .4rem; }
    .pied_lien a { color: rgba(255,255,255,0.55); text-decoration: none; font-size: .85rem; transition: color .2s; }
    .pied_lien a:hover { color: white; }
    .pied_bas { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; font-size: .78rem; }
    .pied_bas a { color: rgba(255,255,255,0.4); text-decoration: none; }
    .pied_bas a:hover { color: rgba(255,255,255,0.8); }

    /* Capture ANDROID */
    .capture_android_section { padding: 4.5rem 5vw; background: var(--gris_clair); }
    .capture_android_scroll { display: flex; gap: 1.8rem; overflow-x: auto; padding-bottom: 1.5rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--azer) var(--bleu_pale); }
    .capture_android_bloc { flex-shrink: 0; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; gap: .9rem; }
    .capture_android_titre { font-size: .82rem; font-weight: 700; color: var(--gris_texte); text-transform: uppercase; letter-spacing: .07em; text-align: center; }
    .capture_android_cadre { width: 250px; border: 5px solid #1a1a2e; border-radius: 28px; overflow: hidden; box-shadow: 10px 10px 10px rgba(0,0,0,0.25); position: relative;}
    .capture_android_cadre::before { content: ''; position: absolute; top: 10px; left: 50%; transform: translateX(-50%); width: 50px; height: 8px; background: #1a1a2e; border-radius: 4px; z-index: 10; }
    .capture_android_img { padding-top: 28px; min-height: 360px; display: flex; flex-direction: column; position: relative; overflow: hidden; background: #4285f4;}

    /* Capture WINDOWS */
    .capture_windows_section { padding: 4.5rem 5vw;}
    .capture_windows_scroll { display: flex; gap: 1.8rem; overflow-x: auto; padding-bottom: 1.5rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--azer) var(--bleu_pale); }
    .capture_windows_bloc { flex-shrink: 0; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; gap: .9rem; }
    .capture_windows_titre { font-size: .82rem; font-weight: 700; color: var(--gris_texte); text-transform: uppercase; letter-spacing: .07em; text-align: center; }
    .capture_windows_cadre { width: min(450px, 85vw); border: 5px solid #1a1a2e; border-radius: 5px; overflow: hidden; box-shadow: 10px 10px 10px rgba(0,0,0,0.25); position: relative; }
    .capture_windows_img { min-height: 200px; display: flex; flex-direction: column; position: relative; overflow: hidden; background: #4285f4;}

	.capture_android_img img,
	.capture_windows_img img{ cursor: pointer;}

	#photo_pardessus { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.8); z-index:999; text-align:center;}
	#photo_zoomee {max-height:90vh; max-width:90vw; margin-top:5vh; border: 3px solid var(--azer);border-radius: 15px;}
    /* Comment ça marche */
	.comment_section { padding: 4.5rem 5vw; background: var(--gris_clair); }

    /* RESPONSIVE */
    @media (max-width: 860px) {
      .contact_inner { grid-template-columns: 1fr; gap: 2rem; }
      .form-row { grid-template-columns: 1fr; }
    }
    @media (max-width: 640px) {
      .barre_lien { display: none; }
      .barre_lien.ouvert {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--blanc);
        border-bottom: 3px solid var(--azer);
        box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        z-index: 99;
        padding: .5rem 0;
      }
      .barre_lien.ouvert a {
        padding: .8rem 1.5rem;
        border-bottom: 1px solid var(--gris_moyen);
        font-size: 1rem;
      }
      .barre_lien.ouvert li:last-child a { border-bottom: none; }
      .hamburger {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 28px;
        height: 20px;
        background: none;
        border: none;
        cursor: pointer;
        padding: 0;
		margin-top: 15px;
      }
      .hamburger span {
        display: block;
        height: 3px;
        background: var(--azer);
        border-radius: 2px;
        transition: transform .25s, opacity .25s;
      }
      .hamburger.actif span:nth-child(1) { transform: translateY(8.75px) rotate(45deg); }
      .hamburger.actif span:nth-child(2) { opacity: 0; }
      .hamburger.actif span:nth-child(3) { transform: translateY(-8.75px) rotate(-45deg); }
      .phone-mockup { display: none; }
      .stat { border-right: none; border-bottom: 1px solid var(--gris_moyen); }
      .stat:last-child { border-bottom: none; }
      .formulaire_btn { width: 100%; justify-content: center; }
      .ligne_btn_cr { flex-direction: column; align-items: stretch; }
      #compte_rendu { width: 100%; text-align: center; }
    }
	
	.plus_loin { display:flex; justify-content:flex-end;color: var(--gris_texte); font-size: .90rem; font-weight: 500; gap:0.5rem;align-items: center;margin-top: 1rem;text-align:center;}
	.plus_loin a { display: inline-flex;  color: var(--azer);  border: 1px solid var(--azer); padding: .3rem .7rem; border-radius: 8px; font-size: .80rem; font-weight: 600; cursor: pointer; letter-spacing: .03em; text-decoration:none;transition: background .3s,transform .2s;}
	.plus_loin a:hover { background: var(--azer_clair); transform: translateY(-2px); }
	
	.hebergement { display:flex; justify-content:flex-end; }
	
	.toast { cursor: help; color: var(--azer); font-weight:550;letter-spacing: .04em;}
	.asterisque { color: var(--azer); font-size: .75em; vertical-align: super; margin-left: 1px;font-weight:400; }

	.obligatoire { position: relative; cursor: help; }
	.obligatoire::after {
		content: attr(data-tip);
		position: absolute;
		bottom: auto%;
		left: 125%;
		top: 50%;
		transform: translateY(-50%);
		background: var(--orange);
		color: white;
		padding: .4rem .8rem;
		border-radius: 6px;
		font-size: .82rem;
		white-space: nowrap;
		opacity: 0;
		pointer-events: none;
		transition: opacity .2s;
		z-index: 200;
	}

	.obligatoire:hover::after { opacity: 1; }
	/* Snackbar */
	#snackbar {
		position: fixed;
		bottom: 24px;
		left: 50%;
		transform: translateX(-50%) translateY(20px);
		background: var(--azer);
		border: 2px solid var(--azer_clair);
		color: #fff;
		padding: .6rem 1.4rem;
		border-radius: 25px;
		font-family: var(--font-body);
		white-space: normal;
		max-width: min(360px, 90vw);
		text-align: center;
		line-height: 1.5;
		opacity: 0;
		pointer-events: none;
		transition: opacity .25s ease, transform .25s ease;
		z-index: 9999;
		box-shadow: 0 4px 16px rgba(0,0,0,0.25);
	}
	#snackbar.visible {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
	