/* =============================================================================
   AREBS SFAX — DESIGN SYSTEM UNIQUE
   Palette extraite et harmonisée depuis le site existant
   ========================================================================== */

:root{

    --primary:        #237A39;
    --primary-light:  #2F9A4A;
    --secondary:      #A3CF91;
    --dark:           #263238;
    --light:          #F4F7F4;
    --white:          #FFFFFF;
    --footer:         #102B1E;

    --radius-sm:  12px;
    --radius-md:  20px;
    --radius-lg:  28px;
    --radius-xl:  35px;
    --radius-pill: 50px;

    --shadow-sm: 0 5px 20px rgba(0,0,0,0.06);
    --shadow-md: 0 10px 30px rgba(0,0,0,0.08);
    --shadow-lg: 0 20px 40px rgba(0,0,0,0.10);

    --transition: 0.3s ease;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Poppins', sans-serif;
    background:var(--white);
    color:var(--dark);
    line-height:1.8;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
}

body.lang-ar{
    font-family:'Cairo', sans-serif;
    text-align:right;
}

body.lang-ar .navbar-nav{
    margin-right:auto !important;
    margin-left:0 !important;
}

a{ color:inherit; }

img{ max-width:100%; }

/* =============================================================================
   NAVBAR
   ========================================================================== */

.navbar{
    background:rgba(255,255,255,0.96);
    backdrop-filter:blur(10px);
    padding:14px 0;
    box-shadow:0 2px 15px rgba(0,0,0,0.06);
    border-bottom:1px solid rgba(0,0,0,0.04);
    z-index:999;
}

.navbar-brand img{
    max-height:72px;
}

.nav-link{
    font-weight:600;
    padding:12px 16px !important;
    border-radius:var(--radius-sm);
    transition:var(--transition);
    color:var(--dark) !important;
}

.nav-link:hover,
.nav-link.active{
    background:#F5F7F6;
    color:var(--primary) !important;
}

.lang-switch .btn.active{
    background:var(--primary);
    color:white !important;
    border-color:var(--primary);
}

/* =============================================================================
   BUTTONS
   ========================================================================== */

.btn{
    transition:var(--transition);
    font-weight:600;
    border-radius:var(--radius-pill);
    padding:12px 26px;
}

.btn-success{
    background:linear-gradient(135deg, var(--primary), var(--primary-light));
    border:none;
}

.btn-success:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-md);
}

.btn-outline-success{
    border-color:var(--primary);
    color:var(--primary);
}

.btn-outline-success:hover,
.btn-outline-success.active{
    background:var(--primary);
    color:white;
    border-color:var(--primary);
}

.btn-main{
    background:var(--primary);
    color:white;
    padding:16px 30px;
    border-radius:18px;
    font-weight:700;
    border:none;
}

.btn-main:hover{
    background:#1C6330;
    color:white;
}

/* =============================================================================
   HERO (générique, réutilisé par toutes les pages secondaires)
   ========================================================================== */

.hero{
    position:relative;
    background:linear-gradient(rgba(35,122,57,0.88), rgba(35,122,57,0.72)),
               var(--hero-bg, url('../img/hero-default.jpg'));
    background-size:cover;
    background-position:center;
    padding:170px 0;
    color:white;
}

.hero.hero-tall{
    min-height:100vh;
    display:flex;
    align-items:center;
}

.hero h1{
    font-size:4rem;
    font-weight:700;
    line-height:1.2;
}

.hero p{
    font-size:1.2rem;
    max-width:850px;
}

.hero-btn{
    padding:16px 40px;
    border-radius:var(--radius-pill);
    background:linear-gradient(135deg, var(--primary), var(--primary-light));
    color:white;
    text-decoration:none;
    font-weight:600;
    transition:var(--transition);
    display:inline-block;
    border:none;
}

.hero-btn:hover{
    transform:translateY(-4px);
    color:white;
}

/* =============================================================================
   SECTIONS
   ========================================================================== */

.section{
    padding:100px 0;
}

.section-light{
    background:var(--light);
}

.section-title{
    text-align:center;
    font-weight:700;
    color:var(--primary);
    margin-bottom:60px;
    font-size:2.3rem;
}

/* =============================================================================
   CARDS (génériques)
   ========================================================================== */

.card-box{
    background:white;
    padding:35px;
    border-radius:var(--radius-md);
    height:100%;
    box-shadow:var(--shadow-sm);
}

.icon-card{
    background:white;
    border-radius:var(--radius-lg);
    padding:40px;
    height:100%;
    position:relative;
    overflow:hidden;
    transition:0.35s;
    box-shadow:0 10px 30px rgba(0,0,0,0.07);
}

.icon-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow-lg);
}

.icon-circle{
    width:90px;
    height:90px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:30px;
    background:linear-gradient(135deg, rgba(35,122,57,0.10), rgba(163,207,145,0.20));
}

.icon-circle i{
    font-size:2.6rem;
    color:var(--primary);
}

/* =============================================================================
   FOOTER
   ========================================================================== */

footer{
    background:var(--footer);
    color:white;
    padding:70px 0 30px;
}

footer img{
    max-height:90px;
    margin-bottom:25px;
}

footer a{
    color:#DDD;
    text-decoration:none;
}

footer a:hover{
    color:white;
}

/* =============================================================================
   ACCESSIBILITY
   ========================================================================== */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
    outline:3px solid var(--primary);
    outline-offset:2px;
}

.skip-link{
    position:absolute;
    left:-9999px;
    top:0;
    background:var(--primary);
    color:white;
    padding:10px 18px;
    z-index:2000;
    border-radius:0 0 8px 0;
}

.skip-link:focus{
    left:0;
}

/* =============================================================================
   RTL ADJUSTMENTS
   ========================================================================== */

body.lang-ar .hero,
body.lang-ar .section-title{
    text-align:right;
}

body.lang-ar .eligibility-list i,
body.lang-ar .bi-check-circle-fill{
    margin-left:8px;
    margin-right:0 !important;
}

/* =============================================================================
   RESPONSIVE
   ========================================================================== */

@media(max-width:992px){
    .hero{
        padding:120px 0;
        text-align:center;
    }
    .hero h1{
        font-size:2.8rem;
    }
}

@media(max-width:768px){
    .hero h1{
        font-size:2rem;
    }
    .section{
        padding:70px 0;
    }
    .section-title{
        font-size:1.8rem;
    }
    .card-box,
    .icon-card{
        padding:25px;
    }
    .btn{
        width:100%;
    }
    .navbar .btn{
        width:auto;
    }
}

/* =============================================================================
   POLISH PROFESSIONNEL — finitions, badges, séparateurs, micro-interactions
   ========================================================================== */

.section-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:rgba(35,122,57,0.08);
    color:var(--primary);
    font-weight:700;
    font-size:0.78rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    padding:8px 18px;
    border-radius:var(--radius-pill);
    margin-bottom:18px;
}

.section-eyebrow i{
    font-size:0.95rem;
}

.section-subtitle{
    text-align:center;
    max-width:720px;
    margin:0 auto 50px;
    color:#5A6B62;
    font-size:1.05rem;
}

.section-header{
    text-align:center;
    margin-bottom:55px;
}

.divider-accent{
    width:64px;
    height:4px;
    background:linear-gradient(90deg, var(--primary), var(--secondary));
    border-radius:50px;
    margin:0 auto 24px;
}

.stat-pill{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:white;
    border-radius:var(--radius-pill);
    padding:10px 22px;
    box-shadow:var(--shadow-sm);
    font-weight:700;
    color:var(--primary);
}

.badge-soft{
    display:inline-block;
    background:rgba(35,122,57,0.10);
    color:var(--primary);
    font-weight:700;
    font-size:0.75rem;
    text-transform:uppercase;
    letter-spacing:0.04em;
    padding:6px 14px;
    border-radius:var(--radius-pill);
}

.icon-card{
    border:1px solid rgba(0,0,0,0.04);
}

.icon-card .icon-circle{
    transition:var(--transition);
}

.icon-card:hover .icon-circle{
    background:var(--primary);
    transform:scale(1.06);
}

.icon-card:hover .icon-circle i{
    color:white;
}

.card-numbered{
    position:relative;
    padding-top:55px;
}

.card-numbered .number-tag{
    position:absolute;
    top:-22px;
    left:30px;
    width:48px;
    height:48px;
    border-radius:50%;
    background:var(--primary);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    font-size:1.1rem;
    box-shadow:0 8px 20px rgba(35,122,57,0.35);
}

body.lang-ar .card-numbered .number-tag{
    left:auto;
    right:30px;
}

.cta-banner{
    background:linear-gradient(135deg, var(--primary), var(--dark));
    border-radius:var(--radius-xl);
    padding:60px;
    color:white;
    text-align:center;
    box-shadow:var(--shadow-lg);
}

.cta-banner h2{
    font-weight:700;
    margin-bottom:18px;
}

.cta-banner .btn-light-outline{
    border:2px solid white;
    color:white;
    background:transparent;
    padding:14px 32px;
    border-radius:var(--radius-pill);
    font-weight:600;
    display:inline-block;
    transition:var(--transition);
}

.cta-banner .btn-light-outline:hover{
    background:white;
    color:var(--primary);
}

.table-clean{
    width:100%;
    border-collapse:separate;
    border-spacing:0 10px;
}

.table-clean td{
    background:white;
    padding:18px 22px;
    box-shadow:var(--shadow-sm);
}

.table-clean tr td:first-child{
    border-radius:var(--radius-sm) 0 0 var(--radius-sm);
}

.table-clean tr td:last-child{
    border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}

body.lang-ar .table-clean tr td:first-child{
    border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}

body.lang-ar .table-clean tr td:last-child{
    border-radius:var(--radius-sm) 0 0 var(--radius-sm);
}

@media(max-width:768px){
    .cta-banner{
        padding:40px 25px;
    }
}

