templates/Accueil/boite_vocale.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3. <head>
  4.   <meta charset="utf-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1">
  6.   <title>Boîte Vocale 5sur5 : –70% d'appels entrants — Service unique en France</title>
  7.   <meta name="description" content="Réduisez de 70% vos appels entrants. La Boîte Vocale 5sur5 rassure automatiquement les parents sans effort de vos équipes. Service clé-en-main, activation immédiate.">
  8.   
  9.   <!-- Google Fonts -->
  10.   <link rel="preconnect" href="https://fonts.googleapis.com">
  11.   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  12.   <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap" rel="stylesheet">
  13.   
  14.   <!-- Bootstrap 5 -->
  15.   <link href="{{ asset('Accueil/vendors/bootstrap/bootstrap.min.css') }}" rel="stylesheet">
  16.   <link href="{{ asset('Accueil/vendors/bootstrap-icons/font/bootstrap-icons.min.css') }}" rel="stylesheet">
  17.   <link href="{{ asset('Accueil/vendors/aos/aos.css') }}" rel="stylesheet">
  18.   
  19.   <style>
  20.     :root {
  21.       --color-primary: #00A5A5;
  22.       --color-secondary: #FFB88C;
  23.       --color-success: #28a745;
  24.       --color-light: #f8f9fa;
  25.       --color-dark: #153643;
  26.       --border-radius: 12px;
  27.       --shadow-sm: 0 2px 8px rgba(0,0,0,0.08);
  28.       --shadow-md: 0 4px 16px rgba(0,0,0,0.12);
  29.     }
  30.     
  31.     body {
  32.       font-family: 'Inter', sans-serif;
  33.       color: var(--color-dark);
  34.       line-height: 1.6;
  35.     }
  36.     
  37.     /* Header Logo */
  38.     .header-logo {
  39.       position: absolute;
  40.       top: 20px;
  41.       right: 20px;
  42.       z-index: 10;
  43.     }
  44.     
  45.     .header-logo img {
  46.       height: 50px;
  47.       width: auto;
  48.       filter: brightness(0) invert(1);
  49.     }
  50.     
  51.     @media (max-width: 768px) {
  52.       .header-logo {
  53.         top: 15px;
  54.         right: 15px;
  55.       }
  56.       
  57.       .header-logo img {
  58.         height: 40px;
  59.       }
  60.     }
  61.     
  62.     /* Hero Section */
  63.    /* HERO PREMIUM */
  64. .hero-section-premium {
  65.     background: #F7FBFB;
  66.     padding: 120px 0 80px;
  67.     position: relative;
  68. }
  69. .header-logo-premium {
  70.     position: absolute;
  71.     top: 25px;
  72.     right: 30px;
  73.     z-index: 10;
  74. }
  75. .header-logo-premium img {
  76.     height: 48px;
  77.     width: auto;
  78. }
  79. .hero-wrapper {
  80.     padding-top: 40px;
  81. }
  82. .hero-badge {
  83.     display: inline-block;
  84.     background: #E2F3F3;
  85.     color: #007C7C;
  86.     padding: 8px 20px;
  87.     border-radius: 50px;
  88.     font-size: 14px;
  89.     font-weight: 700;
  90.     margin-bottom: 25px;
  91.     text-transform: uppercase;
  92.     letter-spacing: 0.5px;
  93. }
  94. .hero-title-premium {
  95.     font-size: 3rem;
  96.     font-weight: 800;
  97.     color: #0E2A32;
  98.     line-height: 1.1;
  99.     margin-bottom: 25px;
  100. }
  101. .text-gradient {
  102.     background: linear-gradient(135deg, #00A5A5, #006F6F);
  103.     -webkit-background-clip: text;
  104.     -webkit-text-fill-color: transparent;
  105. }
  106. .hero-sub-premium {
  107.     font-size: 1.25rem;
  108.     color: #35545A;
  109.     line-height: 1.7;
  110.     margin-bottom: 35px;
  111.     max-width: 520px;
  112. }
  113. .hero-bullets-premium {
  114.     list-style: none;
  115.     padding: 0;
  116.     margin: 0 0 35px 0;
  117. }
  118. .hero-bullets-premium li {
  119.     display: flex;
  120.     align-items: center;
  121.     gap: 12px;
  122.     font-size: 1.15rem;
  123.     font-weight: 500;
  124.     color: #0E2A32;
  125.     margin-bottom: 14px;
  126. }
  127. .hero-bullets-premium i {
  128.     color: #00A5A5;
  129.     font-size: 22px;
  130. }
  131. .btn-premium-primary {
  132.     background: #00A5A5;
  133.     color: white;
  134.     padding: 16px 34px;
  135.     font-size: 1.15rem;
  136.     font-weight: 700;
  137.     border-radius: 12px;
  138.     display: inline-block;
  139.     text-decoration: none;
  140.     transition: all .25s ease;
  141. }
  142. .btn-premium-primary:hover {
  143.     background: #008989;
  144.     transform: translateY(-3px);
  145.     box-shadow: 0 8px 22px rgba(0, 165, 165, 0.28);
  146. }
  147. .btn-premium-secondary {
  148.     background: transparent;
  149.     border: 2px solid #00A5A5;
  150.     color: #00A5A5;
  151.     padding: 16px 34px;
  152.     font-size: 1.15rem;
  153.     font-weight: 700;
  154.     border-radius: 12px;
  155.     display: inline-block;
  156.     margin-left: 12px;
  157.     text-decoration: none;
  158.     transition: all .25s ease;
  159. }
  160. .btn-premium-secondary:hover {
  161.     background: #00A5A5;
  162.     color: white;
  163.     transform: translateY(-3px);
  164. }
  165. .hero-section-premium {
  166.     background: linear-gradient(
  167.         135deg,
  168.         #F8FEFE 0%,
  169.         #F1F7F7 45%,
  170.         #EBF3F3 100%
  171.     );
  172.     padding: 120px 0 80px;
  173.     position: relative;
  174.     overflow: hidden;
  175. }
  176. /* Halo turquoise */
  177. .hero-section-premium::before {
  178.     content: '';
  179.     position: absolute;
  180.     top: -120px;
  181.     left: -160px;
  182.     width: 420px;
  183.     height: 420px;
  184.     background: radial-gradient(
  185.         circle,
  186.         rgba(0,165,165,0.12),
  187.         transparent 70%
  188.     );
  189.     filter: blur(40px);
  190.     border-radius: 50%;
  191.     z-index: 0;
  192. }
  193. /* Halo orange léger */
  194. .hero-section-premium::after {
  195.     content: '';
  196.     position: absolute;
  197.     bottom: -140px;
  198.     right: -140px;
  199.     width: 380px;
  200.     height: 380px;
  201.     background: radial-gradient(
  202.         circle,
  203.         rgba(255,184,140,0.12),
  204.         transparent 65%
  205.     );
  206.     filter: blur(45px);
  207.     border-radius: 50%;
  208.     z-index: 0;
  209. }
  210. @media (max-width: 768px) {
  211.     .hero-title-premium {
  212.         font-size: 2.2rem;
  213.     }
  214.     .hero-img-premium {
  215.         margin-top: 40px;
  216.     }
  217.     .btn-premium-primary,
  218.     .btn-premium-secondary {
  219.         width: 100%;
  220.         margin: 0 0 12px 0;
  221.     }
  222.     .header-logo-premium img {
  223.         height: 40px;
  224.     }
  225. }
  226.     
  227.     .badge-unique {
  228.       display: inline-block;
  229.       background: rgba(255,255,255,0.2);
  230.       backdrop-filter: blur(10px);
  231.       color: white;
  232.       padding: 10px 24px;
  233.       border-radius: 50px;
  234.       font-size: 14px;
  235.       font-weight: 700;
  236.       margin-bottom: 24px;
  237.       border: 1px solid rgba(255,255,255,0.3);
  238.       text-transform: uppercase;
  239.       letter-spacing: 0.5px;
  240.     }
  241.     
  242.     .hero-title {
  243.       font-size: 3.5rem;
  244.       font-weight: 800;
  245.       margin-bottom: 28px;
  246.       line-height: 1.1;
  247.     }
  248.     
  249.     .hero-subtitle {
  250.       font-size: 1.4rem;
  251.       margin-bottom: 40px;
  252.       opacity: 0.95;
  253.       line-height: 1.6;
  254.       font-weight: 400;
  255.     }
  256.     
  257.     .hero-bullets {
  258.       background: rgba(255,255,255,0.12);
  259.       padding: 30px 40px;
  260.       border-radius: var(--border-radius);
  261.       margin: 40px 0;
  262.       border-left: 4px solid var(--color-secondary);
  263.     }
  264.     
  265.     .hero-bullets ul {
  266.       list-style: none;
  267.       padding: 0;
  268.       margin: 0;
  269.     }
  270.     
  271.     .hero-bullets li {
  272.       display: flex;
  273.       align-items: center;
  274.       gap: 12px;
  275.       margin-bottom: 16px;
  276.       font-size: 1.1rem;
  277.       font-weight: 500;
  278.     }
  279.     
  280.     .hero-bullets li:last-child {
  281.       margin-bottom: 0;
  282.     }
  283.     
  284.     .hero-bullets li i {
  285.       font-size: 24px;
  286.       color: var(--color-secondary);
  287.     }
  288.     
  289.     .btn-hero-primary {
  290.       background: white;
  291.       color: var(--color-primary);
  292.       padding: 18px 48px;
  293.       font-size: 1.2rem;
  294.       font-weight: 700;
  295.       border-radius: var(--border-radius);
  296.       border: none;
  297.       transition: all 0.3s ease;
  298.       text-decoration: none;
  299.       display: inline-block;
  300.       margin-right: 16px;
  301.       margin-bottom: 12px;
  302.     }
  303.     
  304.     .btn-hero-primary:hover {
  305.       background: var(--color-secondary);
  306.       color: white;
  307.       transform: translateY(-3px);
  308.       box-shadow: 0 8px 24px rgba(0,0,0,0.2);
  309.     }
  310.     
  311.     .btn-hero-secondary {
  312.       background: transparent;
  313.       color: white;
  314.       padding: 18px 48px;
  315.       font-size: 1.2rem;
  316.       font-weight: 600;
  317.       border-radius: var(--border-radius);
  318.       border: 2px solid white;
  319.       transition: all 0.3s ease;
  320.       text-decoration: none;
  321.       display: inline-block;
  322.       margin-bottom: 12px;
  323.     }
  324.     
  325.     .btn-hero-secondary:hover {
  326.       background: white;
  327.       color: var(--color-primary);
  328.       transform: translateY(-3px);
  329.     }
  330.     
  331.     /* Section Styles */
  332.     .section-padding {
  333.       padding: 100px 0;
  334.     }
  335.     
  336.     .section-title {
  337.       font-size: 2.8rem;
  338.       font-weight: 800;
  339.       color: var(--color-dark);
  340.       margin-bottom: 24px;
  341.       text-align: center;
  342.       line-height: 1.2;
  343.     }
  344.     
  345.     .section-subtitle {
  346.       font-size: 1.3rem;
  347.       color: #6c757d;
  348.       text-align: center;
  349.       margin-bottom: 60px;
  350.       max-width: 800px;
  351.       margin-left: auto;
  352.       margin-right: auto;
  353.       font-weight: 400;
  354.     }
  355.     
  356.     /* Benefits Section */
  357.     .benefit-card {
  358.       background: white;
  359.       padding: 50px 40px;
  360.       border-radius: var(--border-radius);
  361.       box-shadow: var(--shadow-sm);
  362.       height: 100%;
  363.       transition: transform 0.3s ease, box-shadow 0.3s ease;
  364.       border: 1px solid #e9ecef;
  365.       position: relative;
  366.     }
  367.     
  368.     .benefit-card:hover {
  369.       transform: translateY(-8px);
  370.       box-shadow: var(--shadow-md);
  371.       border-color: var(--color-primary);
  372.     }
  373.     
  374.     .benefit-icon {
  375.       width: 80px;
  376.       height: 80px;
  377.       background: linear-gradient(135deg, var(--color-primary), #008a8a);
  378.       border-radius: 18px;
  379.       display: flex;
  380.       align-items: center;
  381.       justify-content: center;
  382.       color: white;
  383.       font-size: 36px;
  384.       margin-bottom: 28px;
  385.     }
  386.     
  387.     .benefit-title {
  388.       font-size: 1.5rem;
  389.       font-weight: 700;
  390.       color: var(--color-dark);
  391.       margin-bottom: 20px;
  392.       line-height: 1.3;
  393.     }
  394.     
  395.     .benefit-text {
  396.       color: #495057;
  397.       line-height: 1.8;
  398.       font-size: 1.05rem;
  399.     }
  400.     
  401.     .benefit-highlight {
  402.       color: var(--color-primary);
  403.       font-weight: 700;
  404.     }
  405.     
  406.     /* Functioning Section */
  407.     .functioning-section {
  408.       background: var(--color-light);
  409.     }
  410.     
  411.     .functioning-intro {
  412.       text-align: center;
  413.       max-width: 900px;
  414.       margin: 0 auto 70px;
  415.       font-size: 1.2rem;
  416.       color: #495057;
  417.       font-weight: 500;
  418.     }
  419.     
  420.     .functioning-card {
  421.       background: white;
  422.       padding: 50px 40px;
  423.       border-radius: var(--border-radius);
  424.       box-shadow: var(--shadow-sm);
  425.       height: 100%;
  426.       border: 2px solid transparent;
  427.       transition: all 0.3s ease;
  428.     }
  429.     
  430.     .functioning-card:hover {
  431.       border-color: var(--color-primary);
  432.       box-shadow: var(--shadow-md);
  433.     }
  434.     
  435.     .functioning-header {
  436.       display: flex;
  437.       align-items: center;
  438.       gap: 24px;
  439.       margin-bottom: 40px;
  440.       padding-bottom: 24px;
  441.       border-bottom: 3px solid var(--color-light);
  442.     }
  443.     
  444.     .functioning-icon {
  445.       width: 70px;
  446.       height: 70px;
  447.       background: linear-gradient(135deg, var(--color-secondary), #ff9d6b);
  448.       border-radius: 16px;
  449.       display: flex;
  450.       align-items: center;
  451.       justify-content: center;
  452.       color: white;
  453.       font-size: 32px;
  454.     }
  455.     
  456.     .functioning-title {
  457.       font-size: 1.8rem;
  458.       font-weight: 700;
  459.       color: var(--color-dark);
  460.       margin: 0;
  461.     }
  462.     
  463.     .functioning-step {
  464.       display: flex;
  465.       align-items: flex-start;
  466.       gap: 24px;
  467.       margin-bottom: 28px;
  468.       padding: 24px;
  469.       background: var(--color-light);
  470.       border-radius: var(--border-radius);
  471.       transition: all 0.3s ease;
  472.     }
  473.     
  474.     .functioning-step:hover {
  475.       background: #e9ecef;
  476.       transform: translateX(5px);
  477.     }
  478.     
  479.     .step-number {
  480.       width: 48px;
  481.       height: 48px;
  482.       background: var(--color-primary);
  483.       color: white;
  484.       border-radius: 50%;
  485.       display: flex;
  486.       align-items: center;
  487.       justify-content: center;
  488.       font-weight: 800;
  489.       font-size: 1.2rem;
  490.       flex-shrink: 0;
  491.     }
  492.     
  493.     .step-text {
  494.       flex: 1;
  495.       color: var(--color-dark);
  496.       font-size: 1.1rem;
  497.       line-height: 1.7;
  498.       font-weight: 500;
  499.     }
  500.     
  501.     /* Features Section */
  502.     .features-section {
  503.       background: white;
  504.     }
  505.     
  506.     .feature-item {
  507.       display: flex;
  508.       align-items: center;
  509.       gap: 24px;
  510.       padding: 32px;
  511.       background: var(--color-light);
  512.       border-radius: var(--border-radius);
  513.       box-shadow: var(--shadow-sm);
  514.       margin-bottom: 24px;
  515.       transition: all 0.3s ease;
  516.       border-left: 4px solid transparent;
  517.     }
  518.     
  519.     .feature-item:hover {
  520.       transform: translateX(8px);
  521.       border-left-color: var(--color-primary);
  522.       box-shadow: var(--shadow-md);
  523.       background: white;
  524.     }
  525.     
  526.     .feature-icon {
  527.       width: 60px;
  528.       height: 60px;
  529.       background: linear-gradient(135deg, var(--color-primary), #008a8a);
  530.       border-radius: 14px;
  531.       display: flex;
  532.       align-items: center;
  533.       justify-content: center;
  534.       color: white;
  535.       font-size: 28px;
  536.       flex-shrink: 0;
  537.     }
  538.     
  539.     .feature-text {
  540.       font-size: 1.15rem;
  541.       color: var(--color-dark);
  542.       font-weight: 600;
  543.       margin: 0;
  544.     }
  545.     
  546.     /* Pricing Section */
  547.     .pricing-section {
  548.       background: var(--color-light);
  549.     }
  550.     
  551.     .pricing-card {
  552.       background: white;
  553.       border-radius: var(--border-radius);
  554.       box-shadow: var(--shadow-sm);
  555.       padding: 50px 40px;
  556.       text-align: center;
  557.       height: 100%;
  558.       transition: all 0.3s ease;
  559.       border: 3px solid transparent;
  560.       position: relative;
  561.     }
  562.     
  563.     .pricing-card:hover {
  564.       transform: translateY(-10px);
  565.       box-shadow: var(--shadow-md);
  566.       border-color: var(--color-primary);
  567.     }
  568.     
  569.     .pricing-card.featured {
  570.       border-color: var(--color-primary);
  571.       background: linear-gradient(135deg, white 0%, #f0fdfd 100%);
  572.       transform: scale(1.05);
  573.     }
  574.     
  575.     .pricing-card.featured:hover {
  576.       transform: scale(1.05) translateY(-10px);
  577.     }
  578.     
  579.     .pricing-badge {
  580.       position: absolute;
  581.       top: -16px;
  582.       left: 50%;
  583.       transform: translateX(-50%);
  584.       background: linear-gradient(135deg, var(--color-secondary), #ff9d6b);
  585.       color: white;
  586.       padding: 8px 24px;
  587.       border-radius: 50px;
  588.       font-size: 13px;
  589.       font-weight: 700;
  590.       text-transform: uppercase;
  591.       letter-spacing: 0.5px;
  592.       box-shadow: 0 4px 12px rgba(255,184,140,0.4);
  593.     }
  594.     
  595.     .pricing-title {
  596.       font-size: 1.6rem;
  597.       font-weight: 700;
  598.       color: var(--color-dark);
  599.       margin-bottom: 20px;
  600.     }
  601.     
  602.     .pricing-price {
  603.       font-size: 3.5rem;
  604.       font-weight: 800;
  605.       color: var(--color-primary);
  606.       margin: 30px 0;
  607.       line-height: 1;
  608.     }
  609.     
  610.     .pricing-price-small {
  611.       font-size: 1.3rem;
  612.       color: #6c757d;
  613.       font-weight: 500;
  614.     }
  615.     
  616.     .pricing-description {
  617.       color: #495057;
  618.       margin-bottom: 35px;
  619.       line-height: 1.8;
  620.       min-height: 100px;
  621.       font-size: 1.05rem;
  622.     }
  623.     
  624.     .pricing-features {
  625.       list-style: none;
  626.       padding: 0;
  627.       margin: 35px 0;
  628.       text-align: left;
  629.     }
  630.     
  631.     .pricing-features li {
  632.       padding: 12px 0;
  633.       color: var(--color-dark);
  634.       display: flex;
  635.       align-items: center;
  636.       gap: 12px;
  637.       font-size: 1.05rem;
  638.     }
  639.     
  640.     .pricing-features li i {
  641.       color: var(--color-success);
  642.       font-size: 22px;
  643.     }
  644.     
  645.     .btn-pricing {
  646.       width: 100%;
  647.       padding: 16px 30px;
  648.       font-size: 1.15rem;
  649.       font-weight: 700;
  650.       border-radius: var(--border-radius);
  651.       border: none;
  652.       transition: all 0.3s ease;
  653.       text-decoration: none;
  654.       display: inline-block;
  655.       text-align: center;
  656.     }
  657.     
  658.     .btn-pricing-primary {
  659.       background: var(--color-primary);
  660.       color: white;
  661.     }
  662.     
  663.     .btn-pricing-primary:hover {
  664.       background: #008a8a;
  665.       color: white;
  666.       transform: translateY(-3px);
  667.       box-shadow: 0 6px 20px rgba(0,165,165,0.4);
  668.     }
  669.     
  670.     .btn-pricing-outline {
  671.       background: transparent;
  672.       color: var(--color-primary);
  673.       border: 3px solid var(--color-primary);
  674.     }
  675.     
  676.     .btn-pricing-outline:hover {
  677.       background: var(--color-primary);
  678.       color: white;
  679.       transform: translateY(-3px);
  680.     }
  681.     
  682.     /* CTA Section */
  683.     .cta-section {
  684.       background: linear-gradient(135deg, var(--color-primary) 0%, #008a8a 100%);
  685.       color: white;
  686.       padding: 100px 0;
  687.       text-align: center;
  688.     }
  689.     
  690.     .cta-title {
  691.       font-size: 3rem;
  692.       font-weight: 800;
  693.       margin-bottom: 28px;
  694.       line-height: 1.2;
  695.     }
  696.     
  697.     .cta-text {
  698.       font-size: 1.3rem;
  699.       margin-bottom: 50px;
  700.       opacity: 0.95;
  701.       max-width: 700px;
  702.       margin-left: auto;
  703.       margin-right: auto;
  704.       line-height: 1.7;
  705.     }
  706.     
  707.     .cta-bullets {
  708.       list-style: none;
  709.       padding: 0;
  710.       margin: 0 0 50px 0;
  711.       display: flex;
  712.       flex-wrap: wrap;
  713.       justify-content: center;
  714.       gap: 30px;
  715.     }
  716.     
  717.     .cta-bullets li {
  718.       display: flex;
  719.       align-items: center;
  720.       gap: 10px;
  721.       font-size: 1.1rem;
  722.       font-weight: 500;
  723.     }
  724.     
  725.     .cta-bullets li i {
  726.       font-size: 24px;
  727.       color: var(--color-secondary);
  728.     }
  729.     
  730.     .btn-cta {
  731.       padding: 20px 50px;
  732.       font-size: 1.2rem;
  733.       font-weight: 700;
  734.       border-radius: var(--border-radius);
  735.       margin: 0 12px 12px;
  736.       transition: all 0.3s ease;
  737.       text-decoration: none;
  738.       display: inline-block;
  739.     }
  740.     
  741.     .btn-cta-primary {
  742.       background: white;
  743.       color: var(--color-primary);
  744.     }
  745.     
  746.     .btn-cta-primary:hover {
  747.       background: var(--color-secondary);
  748.       color: white;
  749.       transform: translateY(-3px);
  750.       box-shadow: 0 8px 24px rgba(0,0,0,0.25);
  751.     }
  752.     
  753.     .btn-cta-outline {
  754.       background: transparent;
  755.       color: white;
  756.       border: 3px solid white;
  757.     }
  758.     
  759.     .btn-cta-outline:hover {
  760.       background: white;
  761.       color: var(--color-primary);
  762.       transform: translateY(-3px);
  763.     }
  764.     
  765.     /* Footer */
  766.     .footer-simple {
  767.       background: var(--color-dark);
  768.       color: white;
  769.       padding: 50px 0;
  770.     }
  771.     
  772.     .footer-content {
  773.       text-align: center;
  774.     }
  775.     
  776.     .footer-item {
  777.       margin: 18px 0;
  778.       color: rgba(255,255,255,0.85);
  779.       font-size: 1.05rem;
  780.     }
  781.     
  782.     .footer-item a {
  783.       color: white;
  784.       text-decoration: none;
  785.       transition: color 0.3s ease;
  786.     }
  787.     
  788.     .footer-item a:hover {
  789.       color: var(--color-secondary);
  790.     }
  791.     
  792.     /* Responsive */
  793.     @media (max-width: 768px) {
  794.       .hero-title {
  795.         font-size: 2.2rem;
  796.       }
  797.       
  798.       .hero-subtitle {
  799.         font-size: 1.15rem;
  800.       }
  801.       
  802.       .section-title {
  803.         font-size: 2rem;
  804.       }
  805.       
  806.       .section-padding {
  807.         padding: 60px 0;
  808.       }
  809.       
  810.       .pricing-price {
  811.         font-size: 2.8rem;
  812.       }
  813.       
  814.       .cta-title {
  815.         font-size: 2.2rem;
  816.       }
  817.       
  818.       .btn-hero-primary,
  819.       .btn-hero-secondary {
  820.         width: 100%;
  821.         margin-right: 0;
  822.       }
  823.     }
  824.   </style>
  825. </head>
  826. <body>
  827.   <!-- HERO SECTION -->
  828.  <!-- HERO PREMIUM SECTION -->
  829. <section class="hero-section-premium">
  830.     <div class="header-logo-premium">
  831.         <img src="{{ asset('Accueil/imagesAccueil/logoHeader.svg') }}" alt="5sur5 Séjour">
  832.     </div>
  833.     <div class="container">
  834.         <div class="row align-items-center hero-wrapper">
  835.             <!-- Text -->
  836.             <div class="col-lg-6" data-aos="fade-right">
  837.                 <div class="hero-badge">Service unique en France</div>
  838.                 <h1 class="hero-title-premium">
  839.                     Réduisez <span class="text-gradient">70% des appels</span>.  
  840.                     Rassurez instantanément les parents.
  841.                 </h1>
  842.                 <p class="hero-sub-premium">
  843.                     Une Boîte Vocale automatique qui appelle les familles dès qu’un message est enregistré.
  844.                     Sans application, sans configuration. Vos équipes gagnent du temps dès aujourd’hui.
  845.                 </p>
  846.                 <ul class="hero-bullets-premium">
  847.                     <li><i class="bi bi-check-circle-fill"></i> Appels automatiques aux parents</li>
  848.                     <li><i class="bi bi-check-circle-fill"></i> Activation en 2 minutes</li>
  849.                     <li><i class="bi bi-check-circle-fill"></i> Zéro charge pour vos équipes</li>
  850.                 </ul>
  851.                 <div class="hero-cta mt-4">
  852.                     <a href="{{ path('checkout_boite_vocale', {'pack': '35'}) }}" class="btn-premium-primary">
  853.                         <i class="bi bi-cart-plus me-2"></i>Activer la Boîte Vocale
  854.                     </a>
  855.                     <a href="#contact" class="btn-premium-secondary">
  856.                         <i class="bi bi-telephone me-2"></i>Parler à un conseiller
  857.                     </a>
  858.                 </div>
  859.             </div>
  860.             <!-- Image -->
  861.             <div class="col-lg-6 text-center" data-aos="fade-left">
  862.                 <img src="{{ asset('Accueil/imagesAccueil/feature.png') }}" alt="Boîte Vocale 5sur5" class="hero-img-premium">
  863.             </div>
  864.         </div>
  865.     </div>
  866. </section>
  867.   <!-- BENEFITS SECTION -->
  868.   <section class="section-padding">
  869.     <div class="container">
  870.       <h2 class="section-title" data-aos="fade-up">Pourquoi les structures choisissent la Boîte Vocale 5sur5 ?</h2>
  871.       <p class="section-subtitle" data-aos="fade-up" data-aos-delay="100">
  872.         Quatre bénéfices concrets qui transforment la gestion de vos séjours
  873.       </p>
  874.       
  875.       <div class="row g-4">
  876.         <div class="col-md-6 col-lg-3" data-aos="fade-up" data-aos-delay="100">
  877.           <div class="benefit-card">
  878.             <div class="benefit-icon">
  879.               <i class="bi bi-telephone-inbound"></i>
  880.             </div>
  881.             <h3 class="benefit-title">Moins d'appels = équipes libérées</h3>
  882.             <p class="benefit-text">
  883.               Jusqu'à <span class="benefit-highlight">–70% d'appels entrants</span>. Vos animateurs ne sont plus dérangés par les questions répétitives. Les parents sont informés automatiquement dès qu'un message est enregistré. Vos équipes se concentrent sur l'encadrement, pas sur le téléphone.
  884.             </p>
  885.           </div>
  886.         </div>
  887.         
  888.         <div class="col-md-6 col-lg-3" data-aos="fade-up" data-aos-delay="200">
  889.           <div class="benefit-card">
  890.             <div class="benefit-icon">
  891.               <i class="bi bi-heart-pulse"></i>
  892.             </div>
  893.             <h3 class="benefit-title">Parents rassurés automatiquement</h3>
  894.             <p class="benefit-text">
  895.               Chaque message vocal déclenche <span class="benefit-highlight">un appel automatique</span> aux parents. Pas besoin de les contacter : ils reçoivent l'information instantanément. Ils peuvent réécouter le message autant de fois qu'ils le souhaitent, 24h/24. La voix rassure mieux qu'un SMS.
  896.             </p>
  897.           </div>
  898.         </div>
  899.         
  900.         <div class="col-md-6 col-lg-3" data-aos="fade-up" data-aos-delay="300">
  901.           <div class="benefit-card">
  902.             <div class="benefit-icon">
  903.               <i class="bi bi-hand-thumbs-up"></i>
  904.             </div>
  905.             <h3 class="benefit-title">Ultra simple : 1 bouton = 1 message</h3>
  906.             <p class="benefit-text">
  907.               <span class="benefit-highlight">Aucun outil à installer</span>, aucune formation nécessaire. L'accompagnateur appelle un numéro, enregistre son message, c'est tout. Le message est publié automatiquement. Vos équipes l'adoptent en 30 secondes.
  908.             </p>
  909.           </div>
  910.         </div>
  911.         
  912.         <div class="col-md-6 col-lg-3" data-aos="fade-up" data-aos-delay="400">
  913.           <div class="benefit-card">
  914.             <div class="benefit-icon">
  915.               <i class="bi bi-headset"></i>
  916.             </div>
  917.             <h3 class="benefit-title">Support 5sur5 : installation, configuration, accompagnateurs, parents</h3>
  918.             <p class="benefit-text">
  919.               <span class="benefit-highlight">Service 100% clé-en-main</span>. Nous installons, configurons, formons vos accompagnateurs et assistons les parents. Vous n'avez rien à faire. Support illimité pendant toute la durée du séjour.
  920.             </p>
  921.           </div>
  922.         </div>
  923.       </div>
  924.     </div>
  925.   </section>
  926.   <!-- FUNCTIONING SECTION -->
  927.   <section class="section-padding functioning-section">
  928.     <div class="container">
  929.       <h2 class="section-title" data-aos="fade-up">Comment ça fonctionne ?</h2>
  930.       <p class="functioning-intro" data-aos="fade-up" data-aos-delay="100">
  931.         Deux numéros distincts : un pour vos accompagnateurs (enregistrement), un pour les familles (écoute). Simple, sécurisé, efficace.
  932.       </p>
  933.       
  934.       <div class="row g-4">
  935.         <div class="col-lg-6" data-aos="fade-right">
  936.           <div class="functioning-card">
  937.             <div class="functioning-header">
  938.               <div class="functioning-icon">
  939.                 <i class="bi bi-person-badge"></i>
  940.               </div>
  941.               <h3 class="functioning-title">Côté accompagnateur</h3>
  942.             </div>
  943.             <div class="functioning-step">
  944.               <div class="step-number">1</div>
  945.               <div class="step-text"><strong>Appeler le numéro dédié</strong> — Numéro privé fourni par 5sur5</div>
  946.             </div>
  947.             <div class="functioning-step">
  948.               <div class="step-number">2</div>
  949.               <div class="step-text"><strong>Enregistrer le message</strong> — Parler naturellement, comme un SMS vocal</div>
  950.             </div>
  951.             <div class="functioning-step">
  952.               <div class="step-number">3</div>
  953.               <div class="step-text"><strong>Publier automatiquement</strong> — Le message est immédiatement disponible pour les parents</div>
  954.             </div>
  955.           </div>
  956.         </div>
  957.         
  958.         <div class="col-lg-6" data-aos="fade-left">
  959.           <div class="functioning-card">
  960.             <div class="functioning-header">
  961.               <div class="functioning-icon">
  962.                 <i class="bi bi-people"></i>
  963.               </div>
  964.               <h3 class="functioning-title">Côté parents</h3>
  965.             </div>
  966.             <div class="functioning-step">
  967.               <div class="step-number">1</div>
  968.               <div class="step-text"><strong>Recevoir un appel automatique</strong> — Dès qu'un nouveau message est enregistré</div>
  969.             </div>
  970.             <div class="functioning-step">
  971.               <div class="step-number">2</div>
  972.               <div class="step-text"><strong>Appeler le numéro du séjour</strong> — Numéro public communiqué aux familles</div>
  973.             </div>
  974.             <div class="functioning-step">
  975.               <div class="step-number">3</div>
  976.               <div class="step-text"><strong>Écouter et réécouter en illimité</strong> — 24h/24, autant de fois qu'ils le souhaitent</div>
  977.             </div>
  978.           </div>
  979.         </div>
  980.       </div>
  981.       
  982.       <div class="row mt-5">
  983.         <div class="col-12" data-aos="fade-up">
  984.           <img src="{{ asset('Accueil/imagesAccueil/vocal_fonctionnement.png') }}" alt="Fonctionnement Boîte Vocale 5sur5" class="img-fluid rounded w-100">
  985.         </div>
  986.       </div>
  987.     </div>
  988.   </section>
  989.   <!-- FEATURES SECTION -->
  990.   <section class="section-padding features-section">
  991.     <div class="container">
  992.       <h2 class="section-title" data-aos="fade-up">Une solution simple, automatique et sans charge</h2>
  993.       <p class="section-subtitle" data-aos="fade-up" data-aos-delay="100">
  994.         Tout ce dont vous avez besoin, sans contrainte
  995.       </p>
  996.       
  997.       <div class="row">
  998.         <div class="col-lg-6" data-aos="fade-right">
  999.           <div class="feature-item">
  1000.             <div class="feature-icon">
  1001.               <i class="bi bi-calendar-check"></i>
  1002.             </div>
  1003.             <p class="feature-text">Disponible toute la durée du séjour — Activation immédiate, désactivation automatique</p>
  1004.           </div>
  1005.         </div>
  1006.         
  1007.         <div class="col-lg-6" data-aos="fade-left">
  1008.           <div class="feature-item">
  1009.             <div class="feature-icon">
  1010.               <i class="bi bi-infinity"></i>
  1011.             </div>
  1012.             <p class="feature-text">Messages illimités — Aucune restriction, enregistrez autant de messages que nécessaire</p>
  1013.           </div>
  1014.         </div>
  1015.         
  1016.         <div class="col-lg-6" data-aos="fade-right" data-aos-delay="100">
  1017.           <div class="feature-item">
  1018.             <div class="feature-icon">
  1019.               <i class="bi bi-telephone-forward"></i>
  1020.             </div>
  1021.             <p class="feature-text">Appels automatiques aux parents — Chaque nouveau message déclenche un appel immédiat</p>
  1022.           </div>
  1023.         </div>
  1024.         
  1025.         <div class="col-lg-6" data-aos="fade-left" data-aos-delay="100">
  1026.           <div class="feature-item">
  1027.             <div class="feature-icon">
  1028.               <i class="bi bi-clock-history"></i>
  1029.             </div>
  1030.             <p class="feature-text">Écoute illimitée 24h/24 — Les parents écoutent quand ils veulent, où ils veulent</p>
  1031.           </div>
  1032.         </div>
  1033.         
  1034.         <div class="col-lg-6" data-aos="fade-right" data-aos-delay="200">
  1035.           <div class="feature-item">
  1036.             <div class="feature-icon">
  1037.               <i class="bi bi-shield-lock"></i>
  1038.             </div>
  1039.             <p class="feature-text">RGPD & données hébergées en France — Conformité totale, sécurité maximale</p>
  1040.           </div>
  1041.         </div>
  1042.         
  1043.         <div class="col-lg-6" data-aos="fade-left" data-aos-delay="200">
  1044.           <div class="feature-item">
  1045.             <div class="feature-icon">
  1046.               <i class="bi bi-phone"></i>
  1047.             </div>
  1048.             <p class="feature-text">Zéro application à installer — Fonctionne avec n'importe quel téléphone</p>
  1049.           </div>
  1050.         </div>
  1051.         
  1052.         <div class="col-lg-12" data-aos="fade-up" data-aos-delay="300">
  1053.           <div class="feature-item">
  1054.             <div class="feature-icon">
  1055.               <i class="bi bi-key"></i>
  1056.             </div>
  1057.             <p class="feature-text">Service 100% clé-en-main pour les structures — Installation, configuration, support : tout est géré par 5sur5</p>
  1058.           </div>
  1059.         </div>
  1060.       </div>
  1061.     </div>
  1062.   </section>
  1063.   <!-- PRICING SECTION -->
  1064.   <section class="section-padding pricing-section">
  1065.     <div class="container">
  1066.       <h2 class="section-title" data-aos="fade-up">Nos offres</h2>
  1067.       <p class="section-subtitle" data-aos="fade-up" data-aos-delay="100">
  1068.         Une tarification simple, adaptée à la taille de votre séjour. Rentabilisé dès le premier séjour.
  1069.       </p>
  1070.       
  1071.       <div class="row g-4">
  1072.         <!-- Pack 35 enfants -->
  1073.         <div class="col-md-4" data-aos="fade-up" data-aos-delay="100">
  1074.           <div class="pricing-card">
  1075.             <h3 class="pricing-title">Pack 35 enfants</h3>
  1076.             <div class="pricing-price">
  1077.               40€ HT
  1078.             </div>
  1079.             <p class="pricing-description">
  1080.               <strong>Rentabilisé dès le premier séjour.</strong> Boîte vocale illimitée pour toute la durée du séjour. Service complet, activation en moins de 2 minutes. Aucun engagement.
  1081.             </p>
  1082.             <ul class="pricing-features">
  1083.               <li><i class="bi bi-check-circle-fill"></i> Messages illimités</li>
  1084.               <li><i class="bi bi-check-circle-fill"></i> Appels automatiques</li>
  1085.               <li><i class="bi bi-check-circle-fill"></i> Support inclus</li>
  1086.               <li><i class="bi bi-check-circle-fill"></i> Activation immédiate</li>
  1087.             </ul>
  1088.             <a href="{{ path('checkout_boite_vocale', {'pack': '35'}) }}" class="btn btn-pricing btn-pricing-primary">Commander</a>
  1089.           </div>
  1090.         </div>
  1091.         
  1092.         <!-- Pack 70 enfants -->
  1093.         <div class="col-md-4" data-aos="fade-up" data-aos-delay="200">
  1094.           <div class="pricing-card featured">
  1095.             <span class="pricing-badge">Le plus choisi</span>
  1096.             <h3 class="pricing-title">Pack 70 enfants</h3>
  1097.             <div class="pricing-price">
  1098.               70€ HT
  1099.             </div>
  1100.             <p class="pricing-description">
  1101.               <strong>Idéal pour les groupes intermédiaires.</strong> Messages illimités, appels automatiques, support prioritaire. Configuration rapide, aucun engagement. Le meilleur rapport qualité-prix.
  1102.             </p>
  1103.             <ul class="pricing-features">
  1104.               <li><i class="bi bi-check-circle-fill"></i> Messages illimités</li>
  1105.               <li><i class="bi bi-check-circle-fill"></i> Appels automatiques</li>
  1106.               <li><i class="bi bi-check-circle-fill"></i> Support prioritaire</li>
  1107.               <li><i class="bi bi-check-circle-fill"></i> Configuration rapide</li>
  1108.               <li><i class="bi bi-check-circle-fill"></i> Activation en moins de 2 minutes</li>
  1109.             </ul>
  1110.             <a href="{{ path('checkout_boite_vocale', {'pack': '70'}) }}" class="btn btn-pricing btn-pricing-primary">Commander</a>
  1111.           </div>
  1112.         </div>
  1113.         
  1114.         <!-- Grand séjour -->
  1115.         <div class="col-md-4" data-aos="fade-up" data-aos-delay="300">
  1116.           <div class="pricing-card">
  1117.             <h3 class="pricing-title">Grand séjour</h3>
  1118.             <div class="pricing-price">
  1119.               Sur<span class="pricing-price-small"> devis</span>
  1120.             </div>
  1121.             <p class="pricing-description">
  1122.               <strong>Solution adaptée aux grands groupes ou séjours multiples.</strong> Tarif personnalisé, accompagnement dédié, séjours multiples. Contactez-nous pour un devis sur mesure.
  1123.             </p>
  1124.             <ul class="pricing-features">
  1125.               <li><i class="bi bi-check-circle-fill"></i> Tarif personnalisé</li>
  1126.               <li><i class="bi bi-check-circle-fill"></i> Accompagnement dédié</li>
  1127.               <li><i class="bi bi-check-circle-fill"></i> Séjours multiples</li>
  1128.               <li><i class="bi bi-check-circle-fill"></i> Support premium</li>
  1129.             </ul>
  1130.             <button type="button" class="btn btn-pricing btn-pricing-outline" data-bs-toggle="modal" data-bs-target="#boiteVocaleDevisModal">Demander un devis</button>
  1131.           </div>
  1132.         </div>
  1133.       </div>
  1134.     </div>
  1135.   </section>
  1136.   <!-- CTA SECTION -->
  1137.   <section class="cta-section">
  1138.     <div class="container">
  1139.       <h2 class="cta-title" data-aos="fade-up">Prêt à activer votre Boîte Vocale ?</h2>
  1140.       <p class="cta-text" data-aos="fade-up" data-aos-delay="100">
  1141.         Commandez en ligne ou contactez un conseiller. Activation immédiate, aucune installation nécessaire, service clé-en-main. Vos équipes gagnent du temps dès aujourd'hui.
  1142.       </p>
  1143.       
  1144.       <ul class="cta-bullets" data-aos="fade-up" data-aos-delay="200">
  1145.         <li><i class="bi bi-lightning-charge-fill"></i> Activation immédiate</li>
  1146.         <li><i class="bi bi-x-circle-fill"></i> Aucune installation nécessaire</li>
  1147.         <li><i class="bi bi-key-fill"></i> Service clé-en-main</li>
  1148.       </ul>
  1149.       
  1150.       <div data-aos="fade-up" data-aos-delay="300">
  1151.         <a href="{{ path('checkout_boite_vocale', {'pack': '35'}) }}" class="btn-cta btn-cta-primary">
  1152.           <i class="bi bi-cart-plus me-2"></i>Commander une Boîte Vocale
  1153.         </a>
  1154.         <a href="#contact" class="btn-cta btn-cta-outline">
  1155.           <i class="bi bi-telephone me-2"></i>Parler à un conseiller
  1156.         </a>
  1157.       </div>
  1158.     </div>
  1159.   </section>
  1160.   <!-- FOOTER -->
  1161.   <footer class="footer-simple">
  1162.     <div class="container">
  1163.       <div class="footer-content">
  1164.         <div class="footer-item">
  1165.           <i class="bi bi-telephone me-2"></i><strong>05 36 28 29 30</strong>
  1166.         </div>
  1167.         <div class="footer-item">
  1168.           <i class="bi bi-envelope me-2"></i><a href="mailto:contact@5sur5sejour.fr">contact@5sur5sejour.fr</a>
  1169.         </div>
  1170.         <div class="footer-item">
  1171.           <i class="bi bi-geo-alt me-2"></i>Trust Conseils – 199 Avenue Francis de Pressensé, 69200 Vénissieux
  1172.         </div>
  1173.         <div class="footer-item">
  1174.           <i class="bi bi-globe me-2"></i><a href="https://www.5sur5sejour.com" target="_blank">www.5sur5sejour.com</a>
  1175.         </div>
  1176.       </div>
  1177.     </div>
  1178.   </footer>
  1179.   <!-- MODAL FORMULAIRE DEVIS BOÎTE VOCALE -->
  1180.   <div class="modal fade" id="boiteVocaleDevisModal" tabindex="-1" aria-labelledby="boiteVocaleDevisModalLabel" aria-hidden="true">
  1181.     <div class="modal-dialog modal-dialog-centered modal-lg">
  1182.       <div class="modal-content">
  1183.         <div class="modal-header border-0 pb-0">
  1184.           <h5 class="modal-title w-100 text-center" id="boiteVocaleDevisModalLabel">
  1185.             <i class="bi bi-envelope me-2"></i>Demande de devis - Boîte Vocale (Grand séjour)
  1186.           </h5>
  1187.           <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
  1188.         </div>
  1189.         <div class="modal-body px-4 py-4">
  1190.           <p class="text-center text-muted mb-4">Remplissez ce formulaire et notre équipe vous contactera rapidement pour vous proposer une offre personnalisée.</p>
  1191.           
  1192.           <form id="boiteVocaleDevisForm" method="post" action="/contact/boite-vocale-devis">
  1193.             <div class="row g-3">
  1194.               <div class="col-md-6">
  1195.                 <label for="nom_structure_bv" class="form-label">Nom de la structure <span class="text-danger">*</span></label>
  1196.                 <input type="text" class="form-control" id="nom_structure_bv" name="nom_structure" required>
  1197.               </div>
  1198.               <div class="col-md-6">
  1199.                 <label for="type_structure_bv" class="form-label">Type de structure <span class="text-danger">*</span></label>
  1200.                 <select class="form-select" id="type_structure_bv" name="type_structure" required>
  1201.                   <option value="">Sélectionnez...</option>
  1202.                   <option value="ecole">École</option>
  1203.                   <option value="centre_loisirs">Centre de loisirs</option>
  1204.                   <option value="association">Association</option>
  1205.                   <option value="voyagiste">Voyagiste</option>
  1206.                   <option value="autre">Autre</option>
  1207.                 </select>
  1208.               </div>
  1209.               <div class="col-md-6">
  1210.                 <label for="nombre_participants_bv" class="form-label">Nombre de participants <span class="text-danger">*</span></label>
  1211.                 <input type="number" class="form-control" id="nombre_participants_bv" name="nombre_participants" min="71" required placeholder="Ex: 100, 150, 200...">
  1212.                 <div class="form-text">Plus de 70 participants</div>
  1213.               </div>
  1214.               <div class="col-md-6">
  1215.                 <label for="date_debut_bv" class="form-label">Date de début du séjour <span class="text-danger">*</span></label>
  1216.                 <input type="date" class="form-control" id="date_debut_bv" name="date_debut" required>
  1217.               </div>
  1218.               <div class="col-md-6">
  1219.                 <label for="date_fin_bv" class="form-label">Date de fin du séjour <span class="text-danger">*</span></label>
  1220.                 <input type="date" class="form-control" id="date_fin_bv" name="date_fin" required>
  1221.               </div>
  1222.               <div class="col-md-6">
  1223.                 <label for="theme_sejour_bv" class="form-label">Thème du séjour <span class="text-danger">*</span></label>
  1224.                 <input type="text" class="form-control" id="theme_sejour_bv" name="theme_sejour" required placeholder="Ex: Classe verte, Camp d'été">
  1225.               </div>
  1226.               <div class="col-md-6">
  1227.                 <label for="contact_email_bv" class="form-label">Email <span class="text-danger">*</span></label>
  1228.                 <input type="email" class="form-control" id="contact_email_bv" name="contact_email" required>
  1229.               </div>
  1230.               <div class="col-md-6">
  1231.                 <label for="contact_telephone_bv" class="form-label">Téléphone <span class="text-danger">*</span></label>
  1232.                 <input type="tel" class="form-control" id="contact_telephone_bv" name="contact_telephone" required>
  1233.               </div>
  1234.               <div class="col-12">
  1235.                 <label for="message_bv" class="form-label">Message (optionnel)</label>
  1236.                 <textarea class="form-control" id="message_bv" name="message" rows="4" placeholder="Décrivez vos besoins spécifiques, vos contraintes, vos questions..."></textarea>
  1237.               </div>
  1238.               <div class="col-12">
  1239.                 <div class="form-check">
  1240.                   <input class="form-check-input" type="checkbox" id="accept_rgpd_bv" name="accept_rgpd" required>
  1241.                   <label class="form-check-label" for="accept_rgpd_bv">
  1242.                     J'accepte que mes données soient utilisées pour me recontacter concernant cette demande de devis. <span class="text-danger">*</span>
  1243.                   </label>
  1244.                 </div>
  1245.               </div>
  1246.             </div>
  1247.             <div id="formMessageBV" class="mt-3"></div>
  1248.             <div class="d-grid gap-2 mt-4">
  1249.               <button type="submit" class="btn btn-primary btn-lg">
  1250.                 <i class="bi bi-send me-2"></i>Envoyer la demande
  1251.               </button>
  1252.               <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Annuler</button>
  1253.             </div>
  1254.           </form>
  1255.         </div>
  1256.       </div>
  1257.     </div>
  1258.   </div>
  1259.   <!-- Modal de succès pour boîte vocale -->
  1260.   <div class="modal fade" id="boiteVocaleSuccessModal" tabindex="-1" aria-labelledby="boiteVocaleSuccessModalLabel" aria-hidden="true">
  1261.     <div class="modal-dialog modal-dialog-centered">
  1262.       <div class="modal-content">
  1263.         <div class="modal-body text-center p-5">
  1264.           <div class="mb-4">
  1265.             <i class="bi bi-check-circle-fill text-success" style="font-size: 4rem;"></i>
  1266.           </div>
  1267.           <h4 class="fw-bold mb-3">Votre demande a bien été envoyée</h4>
  1268.           <p class="text-muted mb-4">Nous reviendrons vers vous dans les plus brefs délais.</p>
  1269.           <button type="button" class="btn btn-primary btn-lg px-5" data-bs-dismiss="modal">Fermer</button>
  1270.         </div>
  1271.       </div>
  1272.     </div>
  1273.   </div>
  1274.   <!-- Scripts -->
  1275.   <script src="{{ asset('Accueil/vendors/bootstrap/bootstrap.bundle.min.js') }}"></script>
  1276.   <script src="{{ asset('Accueil/vendors/aos/aos.js') }}"></script>
  1277.   <script>
  1278.     AOS.init({
  1279.       duration: 800,
  1280.       easing: 'ease-in-out',
  1281.       once: true,
  1282.       mirror: false
  1283.     });
  1284.     // Gestion du formulaire devis boîte vocale
  1285.     const boiteVocaleDevisForm = document.getElementById('boiteVocaleDevisForm');
  1286.     const formMessageBV = document.getElementById('formMessageBV');
  1287.     
  1288.     // Validation de la date de fin après la date de début
  1289.     const dateDebutBV = document.getElementById('date_debut_bv');
  1290.     const dateFinBV = document.getElementById('date_fin_bv');
  1291.     
  1292.     if (dateDebutBV && dateFinBV) {
  1293.       dateDebutBV.addEventListener('change', function() {
  1294.         if (this.value) {
  1295.           dateFinBV.setAttribute('min', this.value);
  1296.         }
  1297.       });
  1298.     }
  1299.     
  1300.     if (boiteVocaleDevisForm) {
  1301.       boiteVocaleDevisForm.addEventListener('submit', function(e) {
  1302.         e.preventDefault();
  1303.         
  1304.         // Désactiver le bouton pendant l'envoi
  1305.         const submitBtn = boiteVocaleDevisForm.querySelector('button[type="submit"]');
  1306.         const originalText = submitBtn.innerHTML;
  1307.         submitBtn.disabled = true;
  1308.         submitBtn.innerHTML = '<span class="spinner-border spinner-border-sm me-2"></span>Envoi en cours...';
  1309.         
  1310.         // Masquer les messages précédents
  1311.         formMessageBV.innerHTML = '';
  1312.         formMessageBV.className = 'mt-3';
  1313.         
  1314.         // Validation des dates
  1315.         if (dateDebutBV.value && dateFinBV.value && dateFinBV.value < dateDebutBV.value) {
  1316.           formMessageBV.className = 'mt-3 alert alert-danger';
  1317.           formMessageBV.innerHTML = `
  1318.             <div class="d-flex align-items-center">
  1319.               <i class="bi bi-exclamation-triangle-fill me-2 fs-5"></i>
  1320.               <div>
  1321.                 <strong>Erreur :</strong><br>
  1322.                 La date de fin doit être postérieure à la date de début.
  1323.               </div>
  1324.             </div>
  1325.           `;
  1326.           submitBtn.disabled = false;
  1327.           submitBtn.innerHTML = originalText;
  1328.           return;
  1329.         }
  1330.         
  1331.         // Récupérer les données du formulaire
  1332.         const formData = new FormData(boiteVocaleDevisForm);
  1333.         
  1334.         // Envoyer la requête
  1335.         fetch('/contact/boite-vocale-devis', {
  1336.           method: 'POST',
  1337.           body: formData,
  1338.           headers: {
  1339.             'X-Requested-With': 'XMLHttpRequest'
  1340.           }
  1341.         })
  1342.         .then(response => response.json())
  1343.         .then(data => {
  1344.           if (data.success) {
  1345.             // Fermer le modal du formulaire
  1346.             const formModal = bootstrap.Modal.getInstance(document.getElementById('boiteVocaleDevisModal'));
  1347.             if (formModal) formModal.hide();
  1348.             
  1349.             // Réinitialiser le formulaire
  1350.             boiteVocaleDevisForm.reset();
  1351.             
  1352.             // Afficher le modal de succès
  1353.             const successModal = new bootstrap.Modal(document.getElementById('boiteVocaleSuccessModal'));
  1354.             successModal.show();
  1355.           } else {
  1356.             formMessageBV.className = 'mt-3 alert alert-danger';
  1357.             formMessageBV.innerHTML = `
  1358.               <div class="d-flex align-items-center">
  1359.                 <i class="bi bi-exclamation-triangle-fill me-2 fs-5"></i>
  1360.                 <div>
  1361.                   <strong>Erreur :</strong><br>
  1362.                   ${data.message || 'Une erreur est survenue. Veuillez réessayer.'}
  1363.                 </div>
  1364.               </div>
  1365.             `;
  1366.           }
  1367.         })
  1368.         .catch(error => {
  1369.           console.error('Erreur:', error);
  1370.           formMessageBV.className = 'mt-3 alert alert-danger';
  1371.           formMessageBV.innerHTML = `
  1372.             <div class="d-flex align-items-center">
  1373.               <i class="bi bi-exclamation-triangle-fill me-2 fs-5"></i>
  1374.               <div>
  1375.                 <strong>Erreur :</strong><br>
  1376.                 Une erreur est survenue lors de l'envoi. Veuillez réessayer plus tard.
  1377.               </div>
  1378.             </div>
  1379.           `;
  1380.         })
  1381.         .finally(() => {
  1382.           submitBtn.disabled = false;
  1383.           submitBtn.innerHTML = originalText;
  1384.         });
  1385.       });
  1386.     }
  1387.   </script>
  1388. </body>
  1389. </html>