templates/base.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.0">
  6.     <title>
  7.       {% block title %}THA – Talent Horizon Africa {% endblock title %}
  8.       </title>
  9.       {% block stylesheets %}
  10.     <!-- Google Fonts : Montserrat + Inter -->
  11.     <link rel="preconnect" href="https://fonts.googleapis.com">
  12.     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  13.     <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700;800&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
  14.     <!-- Font Awesome 6 (Pro-like) -->
  15.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
  16.     <!-- Slick Carousel -->
  17.     <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css"/>
  18.     <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css"/>
  19.     <!-- AOS Animation -->
  20.     <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
  21.     <style>
  22.         /* ---------- RESET & BASE ---------- */
  23.         * {
  24.             margin: 0;
  25.             padding: 0;
  26.             box-sizing: border-box;
  27.         }
  28.         body {
  29.             font-family: 'Inter', sans-serif;
  30.             color: #122746;
  31.             background-color: #ffffff;
  32.             line-height: 1.6;
  33.             overflow-x: hidden;
  34.         }
  35.         h1, h2, h3, h4 {
  36.             font-family: 'Montserrat', sans-serif;
  37.             font-weight: 700;
  38.             color: #122746;
  39.         }
  40.         .container {
  41.             max-width: 1200px;
  42.             margin: 0 auto;
  43.             padding: 0 24px;
  44.         }
  45.         a {
  46.             text-decoration: none;
  47.             color: inherit;
  48.         }
  49.         img {
  50.             max-width: 100%;
  51.             height: auto;
  52.             display: block;
  53.         }
  54.         /* ---------- COULEURS ---------- */
  55.         .bg-marine { background-color: #122746; }
  56.         .bg-light-gray { background-color: #F6F7F8; }
  57.         .text-marine { color: #122746; }
  58.         .text-gold { color: #C69742; }
  59.         .text-white { color: #ffffff; }
  60.         .text-gray { color: #5C697B; }
  61.         .border-gold { border-color: #C69742; }
  62.         /* ---------- BOUTONS MODERNES ---------- */
  63.         .btn-primary {
  64.             background: linear-gradient(135deg, #C69742, #b0843a);
  65.             color: #122746;
  66.             font-weight: 600;
  67.             padding: 14px 32px;
  68.             border-radius: 50px;
  69.             border: none;
  70.             font-size: 0.95rem;
  71.             cursor: pointer;
  72.             transition: all 0.3s ease;
  73.             display: inline-block;
  74.             font-family: 'Inter', sans-serif;
  75.             box-shadow: 0 4px 15px rgba(198, 151, 66, 0.3);
  76.             letter-spacing: 0.3px;
  77.             position: relative;
  78.             overflow: hidden;
  79.         }
  80.         .btn-primary:hover {
  81.             transform: translateY(-3px);
  82.             box-shadow: 0 8px 25px rgba(198, 151, 66, 0.4);
  83.             background: linear-gradient(135deg, #d4a84a, #b0843a);
  84.             color: #122746;
  85.         }
  86.         .btn-secondary {
  87.             background: #122746;
  88.             color: #ffffff;
  89.             font-weight: 600;
  90.             padding: 14px 32px;
  91.             border-radius: 50px;
  92.             border: none;
  93.             font-size: 0.95rem;
  94.             cursor: pointer;
  95.             transition: all 0.3s ease;
  96.             display: inline-block;
  97.             font-family: 'Inter', sans-serif;
  98.             box-shadow: 0 4px 15px rgba(18, 39, 70, 0.2);
  99.             letter-spacing: 0.3px;
  100.         }
  101.         .btn-secondary:hover {
  102.             background: #C69742;
  103.             color: #122746;
  104.             transform: translateY(-3px);
  105.             box-shadow: 0 8px 25px rgba(198, 151, 66, 0.3);
  106.         }
  107.         .btn-outline {
  108.             background: transparent;
  109.             color: #ffffff;
  110.             font-weight: 600;
  111.             padding: 14px 32px;
  112.             border-radius: 50px;
  113.             border: 2px solid #C69742;
  114.             font-size: 0.95rem;
  115.             cursor: pointer;
  116.             transition: all 0.3s ease;
  117.             display: inline-block;
  118.             font-family: 'Inter', sans-serif;
  119.             letter-spacing: 0.3px;
  120.         }
  121.         .btn-outline:hover {
  122.             background: #C69742;
  123.             color: #122746;
  124.             transform: translateY(-3px);
  125.             box-shadow: 0 8px 25px rgba(198, 151, 66, 0.2);
  126.         }
  127.         /* ---------- HEADER STICKY + GLASS ---------- */
  128.         header {
  129.             background: rgba(18, 39, 70, 0.92);
  130.             backdrop-filter: blur(12px);
  131.             -webkit-backdrop-filter: blur(12px);
  132.             padding: 12px 0;
  133.             position: sticky;
  134.             top: 0;
  135.             z-index: 1000;
  136.             transition: all 0.3s ease;
  137.             border-bottom: 1px solid rgba(198, 151, 66, 0.1);
  138.         }
  139.         .header-inner {
  140.             display: flex;
  141.             align-items: center;
  142.             justify-content: space-between;
  143.             flex-wrap: wrap;
  144.         }
  145.         .text-logo{
  146.             font-size: 1.2rem;
  147.         }
  148.         .logo {
  149.             font-family: 'Montserrat', sans-serif;
  150.             font-weight: 800;
  151.             font-size: 2rem;
  152.             color: #ffffff;
  153.             letter-spacing: -0.5px;
  154.             transition: transform 0.3s ease;
  155.         }
  156.         .logo:hover {
  157.             transform: scale(1.02);
  158.         }
  159.         .logo span {
  160.             color: #C69742;
  161.             font-weight: 300;
  162.         }
  163.         .nav-menu {
  164.             display: flex;
  165.             align-items: center;
  166.             gap: 2.2rem;
  167.             list-style: none;
  168.             font-weight: 500;
  169.         }
  170.         .nav-menu a {
  171.             color: rgba(255,255,255,0.85);
  172.             font-size: 0.95rem;
  173.             transition: all 0.3s ease;
  174.             position: relative;
  175.             font-weight: 500;
  176.             letter-spacing: 0.2px;
  177.         }
  178.         .nav-menu a::after {
  179.             content: '';
  180.             position: absolute;
  181.             bottom: -6px;
  182.             left: 0;
  183.             width: 0;
  184.             height: 2.5px;
  185.             background: linear-gradient(90deg, #C69742, #e0b05a);
  186.             transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  187.             border-radius: 4px;
  188.         }
  189.         .nav-menu a:hover::after,
  190.         .nav-menu a.active::after {
  191.             width: 100%;
  192.         }
  193.         .nav-menu a:hover {
  194.             color: #ffffff;
  195.         }
  196.         .header-cta .btn-primary {
  197.             padding: 8px 24px;
  198.             font-size: 0.85rem;
  199.             box-shadow: 0 2px 10px rgba(198, 151, 66, 0.2);
  200.         }
  201.         /* mobile hamburger */
  202.         .hamburger {
  203.             display: none;
  204.             flex-direction: column;
  205.             gap: 5px;
  206.             cursor: pointer;
  207.             background: none;
  208.             border: none;
  209.             padding: 4px;
  210.         }
  211.         .hamburger span {
  212.             width: 28px;
  213.             height: 2.5px;
  214.             background: #ffffff;
  215.             border-radius: 4px;
  216.             transition: 0.3s ease;
  217.         }
  218.         @media (max-width: 992px) {
  219.             .nav-menu {
  220.                 display: none;
  221.                 flex-direction: column;
  222.                 width: 100%;
  223.                 background: rgba(18, 39, 70, 0.98);
  224.                 backdrop-filter: blur(12px);
  225.                 padding: 24px 0;
  226.                 gap: 1.2rem;
  227.                 margin-top: 1rem;
  228.                 border-radius: 12px;
  229.                 border: 1px solid rgba(198, 151, 66, 0.1);
  230.             }
  231.             .nav-menu.open {
  232.                 display: flex;
  233.             }
  234.             .hamburger {
  235.                 display: flex;
  236.             }
  237.             .header-cta {
  238.                 margin-left: 0;
  239.                 margin-top: 0.5rem;
  240.             }
  241.             .header-inner {
  242.                 flex-wrap: wrap;
  243.             }
  244.         }
  245.         /* ---------- HERO AMÉLIORÉ ---------- */
  246.         .hero {
  247.             background: linear-gradient(135deg, #0f1f33 0%, #1a3a5e 100%);
  248.             padding: 100px 0 80px;
  249.             color: white;
  250.             position: relative;
  251.             overflow: hidden;
  252.         }
  253.         .hero::before {
  254.             content: '';
  255.             position: absolute;
  256.             right: -5%;
  257.             top: -15%;
  258.             width: 600px;
  259.             height: 600px;
  260.             background: radial-gradient(circle, rgba(198, 151, 66, 0.08) 0%, transparent 70%);
  261.             border-radius: 50%;
  262.             pointer-events: none;
  263.         }
  264.         .hero::after {
  265.             content: '';
  266.             position: absolute;
  267.             left: -10%;
  268.             bottom: -20%;
  269.             width: 400px;
  270.             height: 400px;
  271.             background: radial-gradient(circle, rgba(198, 151, 66, 0.05) 0%, transparent 70%);
  272.             border-radius: 50%;
  273.             pointer-events: none;
  274.         }
  275.         .hero-grid {
  276.             display: flex;
  277.             align-items: center;
  278.             gap: 4rem;
  279.             flex-wrap: wrap;
  280.             position: relative;
  281.             z-index: 2;
  282.         }
  283.         .hero-content {
  284.             flex: 1 1 50%;
  285.         }
  286.         .hero-content .badge {
  287.             display: inline-block;
  288.             background: rgba(198, 151, 66, 0.15);
  289.             color: #C69742;
  290.             padding: 4px 16px;
  291.             border-radius: 50px;
  292.             font-size: 0.8rem;
  293.             font-weight: 600;
  294.             letter-spacing: 0.5px;
  295.             margin-bottom: 1rem;
  296.             border: 1px solid rgba(198, 151, 66, 0.2);
  297.         }
  298.         .hero-content h1 {
  299.             font-size: 3.8rem;
  300.             color: white;
  301.             line-height: 1.1;
  302.             margin-bottom: 0.5rem;
  303.             font-weight: 800;
  304.         }
  305.         .hero-content h1 span {
  306.             background: linear-gradient(135deg, #C69742, #e8c06a);
  307.             -webkit-background-clip: text;
  308.             -webkit-text-fill-color: transparent;
  309.             background-clip: text;
  310.         }
  311.         .hero-content p {
  312.             font-size: 1.25rem;
  313.             color: rgba(255,255,255,0.8);
  314.             margin: 1.5rem 0 2rem;
  315.             max-width: 520px;
  316.             font-weight: 300;
  317.             line-height: 1.7;
  318.         }
  319.         .hero-actions {
  320.             display: flex;
  321.             flex-wrap: wrap;
  322.             gap: 1rem;
  323.         }
  324.         .hero-image {
  325.             flex: 1 1 40%;
  326.             border-radius: 16px;
  327.             overflow: hidden;
  328.             box-shadow: 0 30px 60px rgba(0,0,0,0.3);
  329.             transform: perspective(800px) rotateY(-2deg);
  330.             transition: transform 0.6s ease;
  331.         }
  332.         .hero-image:hover {
  333.             transform: perspective(800px) rotateY(0deg);
  334.         }
  335.         .hero-image img {
  336.             width: 100%;
  337.             height: 340px;
  338.             object-fit: cover;
  339.             transition: transform 0.6s ease;
  340.         }
  341.         .hero-image:hover img {
  342.             transform: scale(1.03);
  343.         }
  344.         @media (max-width: 768px) {
  345.             .hero-content h1 { font-size: 2.6rem; }
  346.             .hero-grid { flex-direction: column; }
  347.             .hero-image { width: 100%; }
  348.         }
  349.         /* ---------- STATS AVEC ICÔNES ---------- */
  350.         .stats {
  351.             background: linear-gradient(135deg, #0f1f33, #1a3a5e);
  352.             padding: 50px 0;
  353.             color: white;
  354.             border-top: 1px solid rgba(198, 151, 66, 0.15);
  355.             border-bottom: 1px solid rgba(198, 151, 66, 0.15);
  356.         }
  357.         .stats-grid {
  358.             display: flex;
  359.             justify-content: space-around;
  360.             flex-wrap: wrap;
  361.             gap: 2rem;
  362.             text-align: center;
  363.         }
  364.         .stat-item {
  365.             padding: 0 1rem;
  366.         }
  367.         .stat-item .number {
  368.             font-family: 'Montserrat', sans-serif;
  369.             font-weight: 800;
  370.             font-size: 3.2rem;
  371.             background: linear-gradient(135deg, #C69742, #e8c06a);
  372.             -webkit-background-clip: text;
  373.             -webkit-text-fill-color: transparent;
  374.             background-clip: text;
  375.             line-height: 1.2;
  376.         }
  377.         .stat-item .label {
  378.             font-size: 1rem;
  379.             color: rgba(255,255,255,0.75);
  380.             margin-top: 0.25rem;
  381.             font-weight: 400;
  382.             letter-spacing: 0.3px;
  383.         }
  384.         /* ---------- SECTIONS GÉNÉRIQUES ---------- */
  385.         .section-title {
  386.             font-size: 2.5rem;
  387.             margin-bottom: 0.5rem;
  388.             position: relative;
  389.             display: inline-block;
  390.             font-weight: 800;
  391.         }
  392.         .section-title .gold-line {
  393.             display: block;
  394.             width: 70px;
  395.             height: 4px;
  396.             background: linear-gradient(90deg, #C69742, #e8c06a);
  397.             margin-top: 10px;
  398.             border-radius: 4px;
  399.         }
  400.         .section-sub {
  401.             color: #5C697B;
  402.             max-width: 700px;
  403.             margin: 1rem 0 2.5rem;
  404.             font-size: 1.1rem;
  405.         }
  406.         /* ---------- SERVICES / CARTES MODERNES ---------- */
  407.         .services-grid {
  408.             display: grid;
  409.             grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  410.             gap: 2rem;
  411.             margin: 2rem 0;
  412.         }
  413.         .service-card {
  414.             background: white;
  415.             padding: 2.2rem 1.8rem;
  416.             border-radius: 16px;
  417.             box-shadow: 0 4px 20px rgba(0,0,0,0.04);
  418.             transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  419.             border-bottom: 4px solid #C69742;
  420.             position: relative;
  421.             overflow: hidden;
  422.         }
  423.         .service-card::before {
  424.             content: '';
  425.             position: absolute;
  426.             top: 0;
  427.             left: 0;
  428.             width: 100%;
  429.             height: 100%;
  430.             background: linear-gradient(135deg, rgba(198, 151, 66, 0.03), transparent);
  431.             pointer-events: none;
  432.         }
  433.         .service-card:hover {
  434.             transform: translateY(-10px);
  435.             box-shadow: 0 20px 50px rgba(0,0,0,0.08);
  436.         }
  437.         .service-card i {
  438.             font-size: 2.5rem;
  439.             color: #122746;
  440.             margin-bottom: 1.2rem;
  441.             background: rgba(198, 151, 66, 0.08);
  442.             padding: 12px;
  443.             border-radius: 12px;
  444.             transition: 0.3s ease;
  445.         }
  446.         .service-card:hover i {
  447.             background: #C69742;
  448.             color: white;
  449.         }
  450.         .service-card h3 {
  451.             font-size: 1.3rem;
  452.             margin-bottom: 0.75rem;
  453.             font-weight: 700;
  454.         }
  455.         .service-card p {
  456.             color: #5C697B;
  457.             font-size: 0.95rem;
  458.             line-height: 1.6;
  459.         }
  460.         .service-card .more {
  461.             color: #C69742;
  462.             font-weight: 600;
  463.             display: inline-flex;
  464.             align-items: center;
  465.             gap: 6px;
  466.             margin-top: 1.2rem;
  467.             transition: 0.3s ease;
  468.         }
  469.         .service-card .more i {
  470.             font-size: 0.9rem;
  471.             color: #C69742;
  472.             margin-bottom: 0;
  473.             background: none;
  474.             padding: 0;
  475.             transition: 0.3s ease;
  476.         }
  477.         .service-card:hover .more {
  478.             gap: 12px;
  479.         }
  480.         /* ---------- SLIDER SECTEURS ---------- */
  481.         .slider-section {
  482.             padding: 60px 0;
  483.         }
  484.         .slick-slide {
  485.             padding: 0 14px;
  486.         }
  487.         .sector-item {
  488.             background: white;
  489.             border-radius: 16px;
  490.             padding: 1.8rem 1rem;
  491.             text-align: center;
  492.             box-shadow: 0 4px 16px rgba(0,0,0,0.04);
  493.             border: 1px solid rgba(0,0,0,0.04);
  494.             transition: 0.4s ease;
  495.         }
  496.         .sector-item:hover {
  497.             transform: translateY(-6px);
  498.             box-shadow: 0 12px 30px rgba(0,0,0,0.06);
  499.         }
  500.         .sector-item img {
  501.             width: 100%;
  502.             height: 150px;
  503.             object-fit: cover;
  504.             border-radius: 12px;
  505.             margin-bottom: 1rem;
  506.             transition: 0.4s ease;
  507.         }
  508.         .sector-item:hover img {
  509.             transform: scale(1.02);
  510.         }
  511.         .sector-item h4 {
  512.             font-size: 1.1rem;
  513.             font-weight: 600;
  514.             color: #122746;
  515.         }
  516.         /* Slick override */
  517.         .slick-prev, .slick-next {
  518.             background: #122746;
  519.             border-radius: 50%;
  520.             width: 44px;
  521.             height: 44px;
  522.             z-index: 10;
  523.             transition: 0.3s ease;
  524.             box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  525.         }
  526.         .slick-prev:hover, .slick-next:hover {
  527.             background: #C69742;
  528.             transform: scale(1.05);
  529.         }
  530.         .slick-prev:before, .slick-next:before {
  531.             color: white;
  532.             font-size: 18px;
  533.         }
  534.         .slick-dots li button:before {
  535.             color: #122746;
  536.         }
  537.         .slick-dots li.slick-active button:before {
  538.             color: #C69742;
  539.         }
  540.         /* ---------- PARTENAIRES ---------- */
  541.         .partners-grid {
  542.             display: flex;
  543.             flex-wrap: wrap;
  544.             justify-content: center;
  545.             gap: 3.5rem;
  546.             align-items: center;
  547.             margin: 2.5rem 0;
  548.         }
  549.         .partner-logo {
  550.             background: white;
  551.             padding: 0.8rem 2rem;
  552.             border-radius: 12px;
  553.             box-shadow: 0 4px 12px rgba(0,0,0,0.04);
  554.             transition: all 0.4s ease;
  555.             max-width: 150px;
  556.             border: 1px solid rgba(0,0,0,0.04);
  557.         }
  558.         .partner-logo img {
  559.             max-height: 70px;
  560.             width: auto;
  561.             opacity: 0.6;
  562.             transition: 0.4s ease;
  563.             filter: grayscale(0.4);
  564.         }
  565.         .partner-logo:hover {
  566.             transform: translateY(-4px);
  567.             box-shadow: 0 12px 30px rgba(0,0,0,0.06);
  568.             border-color: rgba(198, 151, 66, 0.2);
  569.         }
  570.         .partner-logo:hover img {
  571.             opacity: 1;
  572.             filter: grayscale(0);
  573.         }
  574.         /* ---------- TALENTS / ENTREPRISES (deux colonnes) ---------- */
  575.         .dual-grid {
  576.             display: grid;
  577.             grid-template-columns: 1fr 1fr;
  578.             gap: 2.5rem;
  579.             margin: 2rem 0;
  580.         }
  581.         .dual-card {
  582.             background: white;
  583.             padding: 2.5rem;
  584.             border-radius: 20px;
  585.             box-shadow: 0 4px 20px rgba(0,0,0,0.04);
  586.             border-left: 6px solid #C69742;
  587.             transition: 0.4s ease;
  588.         }
  589.         .dual-card:hover {
  590.             transform: translateY(-4px);
  591.             box-shadow: 0 16px 40px rgba(0,0,0,0.06);
  592.         }
  593.         .dual-card h3 {
  594.             font-size: 1.6rem;
  595.             font-weight: 700;
  596.             margin-bottom: 0.5rem;
  597.         }
  598.         .dual-card ul {
  599.             list-style: none;
  600.             margin: 1.2rem 0 1.8rem;
  601.         }
  602.         .dual-card li {
  603.             padding: 0.5rem 0;
  604.             display: flex;
  605.             align-items: center;
  606.             gap: 12px;
  607.             color: #5C697B;
  608.             font-weight: 400;
  609.         }
  610.         .dual-card li i {
  611.             color: #C69742;
  612.             width: 22px;
  613.             font-size: 1.1rem;
  614.         }
  615.         @media (max-width: 768px) {
  616.             .dual-grid { grid-template-columns: 1fr; }
  617.         }
  618.         /* ---------- FOOTER MODERNE ---------- */
  619.         footer {
  620.             background: #0f1f33;
  621.             color: rgba(255,255,255,0.8);
  622.             padding: 50px 0 20px;
  623.             margin-top: 3rem;
  624.             border-top: 1px solid rgba(198, 151, 66, 0.1);
  625.         }
  626.         .footer-grid {
  627.             display: grid;
  628.             grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  629.             gap: 2.5rem;
  630.         }
  631.         .footer-grid h4 {
  632.             color: white;
  633.             font-size: 1.1rem;
  634.             margin-bottom: 1.2rem;
  635.             font-weight: 700;
  636.         }
  637.         .footer-grid a {
  638.             display: block;
  639.             color: rgba(255,255,255,0.6);
  640.             margin-bottom: 0.6rem;
  641.             transition: 0.3s ease;
  642.             font-weight: 400;
  643.         }
  644.         .footer-grid a:hover {
  645.             color: #C69742;
  646.             transform: translateX(4px);
  647.         }
  648.         .footer-bottom {
  649.             border-top: 1px solid rgba(255,255,255,0.06);
  650.             padding-top: 24px;
  651.             margin-top: 30px;
  652.             text-align: center;
  653.             font-size: 0.9rem;
  654.             color: rgba(255,255,255,0.4);
  655.         }
  656.         .social-icons a {
  657.             display: inline-block;
  658.             color: white;
  659.             margin-right: 1.2rem;
  660.             font-size: 1.4rem;
  661.             transition: 0.3s ease;
  662.             background: rgba(255,255,255,0.04);
  663.             width: 40px;
  664.             height: 40px;
  665.             line-height: 40px;
  666.             text-align: center;
  667.             border-radius: 50%;
  668.         }
  669.         .social-icons a:hover {
  670.             color: #122746;
  671.             background: #C69742;
  672.             transform: translateY(-3px);
  673.         }
  674.         /* ---------- FORMULAIRE CONTACT ---------- */
  675.         .contact-form input,
  676.         .contact-form textarea {
  677.             width: 100%;
  678.             padding: 14px 18px;
  679.             margin-bottom: 1.2rem;
  680.             border: 2px solid #e8edf2;
  681.             border-radius: 12px;
  682.             font-family: 'Inter', sans-serif;
  683.             font-size: 1rem;
  684.             transition: 0.3s ease;
  685.             background: white;
  686.         }
  687.         .contact-form input:focus,
  688.         .contact-form textarea:focus {
  689.             border-color: #C69742;
  690.             outline: none;
  691.             box-shadow: 0 0 0 4px rgba(198, 151, 66, 0.1);
  692.         }
  693.         .contact-form textarea {
  694.             min-height: 140px;
  695.             resize: vertical;
  696.         }
  697.         .contact-form .btn-primary {
  698.             width: 100%;
  699.             justify-content: center;
  700.             display: flex;
  701.             align-items: center;
  702.             gap: 10px;
  703.             padding: 16px;
  704.         }
  705.         /* ---------- FORMATION SECTION ---------- */
  706.         .formation-grid {
  707.             display: grid;
  708.             grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  709.             gap: 2rem;
  710.             margin-top: 2rem;
  711.         }
  712.         .formation-item {
  713.             text-align: center;
  714.             padding: 1.5rem;
  715.             border-radius: 16px;
  716.             background: white;
  717.             box-shadow: 0 4px 12px rgba(0,0,0,0.04);
  718.             transition: 0.4s ease;
  719.         }
  720.         .formation-item:hover {
  721.             transform: translateY(-6px);
  722.             box-shadow: 0 12px 30px rgba(0,0,0,0.06);
  723.         }
  724.         .formation-item i {
  725.             color: #C69742;
  726.             font-size: 2.2rem;
  727.             margin-bottom: 0.8rem;
  728.         }
  729.         .formation-item h4 {
  730.             font-size: 1.1rem;
  731.             font-weight: 700;
  732.         }
  733.         .formation-item p {
  734.             color: #5C697B;
  735.             font-size: 0.9rem;
  736.         }
  737.         /* ---------- UTILITAIRES ---------- */
  738.         .py-4 { padding: 3rem 0; }
  739.         .text-center { text-align: center; }
  740.         .mt-2 { margin-top: 2rem; }
  741.         .mb-2 { margin-bottom: 2rem; }
  742.         .flex-center { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; }
  743.         .section-padding {
  744.             padding: 70px 0;
  745.         }
  746.         @media (max-width: 600px) {
  747.             .section-title { font-size: 2rem; }
  748.         }
  749.     </style>
  750.     {% endblock stylesheets %}
  751. </head>
  752. <body>
  753. {% block header %}
  754. <!-- HEADER -->
  755. <header>
  756.     <div class="container header-inner">
  757.         <span class="logo">THA<span>.</span><span class="text-logo">Talent Horizon Africa</span></span>
  758.         <button class="hamburger" id="hamburger" aria-label="menu">
  759.             <span></span><span></span><span></span>
  760.         </button>
  761.         <ul class="nav-menu" id="navMenu">
  762.             <li><a href="#accueil" class="active">Accueil</a></li>
  763.             <li><a href="#a-propos">À propos</a></li>
  764.             <li><a href="#expertises">Expertises</a></li>
  765.             <li><a href="#talents">Talents</a></li>
  766.             <li><a href="#entreprises">Entreprises</a></li>
  767.             <li><a href="#contact">Contact</a></li>
  768.             <li class="header-cta"><a href="#contact" class="btn-primary">Nous contacter</a></li>
  769.         </ul>
  770.     </div>
  771. </header>
  772. {% endblock header %}
  773. {% block body %}
  774. {% block contenu %}
  775. {% endblock contenu %}
  776. {% endblock body %}
  777. {% block footer %}
  778. <!-- FOOTER -->
  779. <footer>
  780.     <div class="container">
  781.         <div class="footer-grid">
  782.             <div><h4>THA</h4><p style="color:rgba(255,255,255,0.5);">Talent Horizon Africa<br>Panafricain, RH & conseil</p></div>
  783.             <div><h4>Liens utiles</h4><a href="#expertises">Expertises</a><a href="#talents">Talents</a><a href="#entreprises">Entreprises</a></div>
  784.             <div><h4>Formation</h4><a href="#formation">Leadership</a><a href="#formation">Coaching</a><a href="#formation">Teambuilding</a></div>
  785.             <div><h4>Suivez-nous</h4><div class="social-icons"><a href="#"><i class="fab fa-linkedin-in"></i></a><a href="#"><i class="fab fa-twitter"></i></a></div></div>
  786.         </div>
  787.         <div class="footer-bottom">
  788.             &copy; 2025 THA – Talent Horizon Africa. Tous droits réservés.
  789.         </div>
  790.     </div>
  791. </footer>
  792. {% endblock footer %}
  793. {% block javascripts %}
  794. <!-- jQuery + Slick -->
  795. <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  796. <script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>
  797. <!-- AOS -->
  798. <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
  799. <script>
  800.     // Hamburger toggle
  801.     document.getElementById('hamburger').addEventListener('click', function() {
  802.         document.getElementById('navMenu').classList.toggle('open');
  803.     });
  804.     // Slick slider
  805.     $(document).ready(function(){
  806.         $('#sectorSlider').slick({
  807.             dots: true,
  808.             infinite: true,
  809.             speed: 500,
  810.             slidesToShow: 4,
  811.             slidesToScroll: 1,
  812.             autoplay: true,
  813.             autoplaySpeed: 3000,
  814.             pauseOnHover: true,
  815.             responsive: [
  816.                 { breakpoint: 1024, settings: { slidesToShow: 3 } },
  817.                 { breakpoint: 768, settings: { slidesToShow: 2 } },
  818.                 { breakpoint: 480, settings: { slidesToShow: 1 } }
  819.             ]
  820.         });
  821.     });
  822.     // Navigation active + scroll smooth
  823.     const links = document.querySelectorAll('.nav-menu a');
  824.     links.forEach(link => {
  825.         link.addEventListener('click', function(e) {
  826.             links.forEach(l => l.classList.remove('active'));
  827.             this.classList.add('active');
  828.             document.getElementById('navMenu').classList.remove('open');
  829.         });
  830.     });
  831.     // AOS init
  832.     AOS.init({
  833.         duration: 600,
  834.         once: true,
  835.         offset: 60,
  836.     });
  837.     // Header shadow on scroll
  838.     window.addEventListener('scroll', function() {
  839.         const header = document.querySelector('header');
  840.         if (window.scrollY > 50) {
  841.             header.style.boxShadow = '0 4px 30px rgba(0,0,0,0.15)';
  842.         } else {
  843.             header.style.boxShadow = 'none';
  844.         }
  845.     });
  846. </script>
  847. {% endblock javascripts %}
  848. </body>
  849. </html>