/* ==========================================
RESET
========================================== */

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

html{
    scroll-behavior:smooth;
}

body{
    font-family:Inter,Arial,sans-serif;
    background:#f5f7fb;
    color:#1f2937;
    line-height:1.7;
}

/* ==========================================
CONTAINER
========================================== */

.container{
    width:min(1180px,92%);
    margin:auto;
}

/* ==========================================
LINKS
========================================== */

a{
    text-decoration:none;
    color:inherit;
}

img{
    max-width:100%;
    display:block;
}

/* ==========================================
HEADER
========================================== */

.header{

    position:sticky;

    top:0;

    z-index:999;

    background:#ffffff;

    box-shadow:0 8px 24px rgba(0,0,0,.05);

}

.header .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px 0;

}

.brand{

    display:flex;

    align-items:center;

    gap:14px;

}

.logo{

    width:52px;

    height:52px;

}

.brand-title{

    display:block;

    font-size:22px;

    font-weight:700;

    color:#0f172a;

}

.brand-subtitle{

    display:block;

    font-size:13px;

    color:#64748b;

}

.navigation ul{

    display:flex;

    list-style:none;

    gap:28px;

}

.navigation a{

    color:#334155;

    font-weight:600;

    transition:.25s;

}

.navigation a:hover{

    color:#2563eb;

}

/* ==========================================
HERO
========================================== */

.hero{

    padding:70px 0;

}

.hero .container{

    display:grid;

    grid-template-columns:1.1fr .9fr;

    gap:45px;

    align-items:center;

}

.hero-badge{

    display:inline-block;

    padding:8px 16px;

    border-radius:30px;

    background:#dbeafe;

    color:#1d4ed8;

    font-weight:700;

    margin-bottom:18px;

}

.hero h1{

    font-size:52px;

    line-height:1.15;

    color:#0f172a;

    margin-bottom:22px;

}

.hero-description{

    font-size:18px;

    color:#475569;

    margin-bottom:30px;

}

.hero-features{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:15px;

}

.feature{

    background:#fff;

    padding:16px;

    border-radius:14px;

    font-weight:600;

    box-shadow:0 10px 30px rgba(0,0,0,.05);

}

/* ==========================================
CALCULATOR CARD
========================================== */

.calculator-card{

    background:#fff;

    border-radius:22px;

    padding:35px;

    box-shadow:0 20px 50px rgba(0,0,0,.08);

}

.calculator-card h2{

    font-size:28px;

    margin-bottom:12px;

}

.form-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:20px;

    margin-top:25px;

}

.form-group{

    display:flex;

    flex-direction:column;

}

.form-group label{

    margin-bottom:8px;

    font-weight:600;

    color:#334155;

}

.form-group input,
.form-group select{

    height:54px;

    border:1px solid #dbe3ef;

    border-radius:12px;

    padding:0 16px;

    font-size:16px;

    outline:none;

    transition:.25s;

}

.form-group input:focus,
.form-group select:focus{

    border-color:#2563eb;

}

.calculate-button{

    width:100%;

    height:58px;

    margin-top:30px;

    border:none;

    border-radius:14px;

    background:#2563eb;

    color:#fff;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

    transition:.25s;

}

.calculate-button:hover{

    background:#1d4ed8;

}
/* ==========================================
SECTION RÉSULTAT
========================================== */

.result-section{

    padding:90px 0;

    background:#ffffff;

}

.section-header{

    text-align:center;

    margin-bottom:60px;

}

.section-badge{

    display:inline-block;

    padding:8px 18px;

    background:#dbeafe;

    color:#2563eb;

    border-radius:999px;

    font-weight:700;

    margin-bottom:16px;

}

.section-header h2{

    font-size:42px;

    color:#0f172a;

    margin-bottom:18px;

}

.section-header p{

    max-width:720px;

    margin:auto;

    color:#64748b;

    font-size:18px;

}

/* ==========================================
CARTE PRINCIPALE
========================================== */

.result-card{

    background:#ffffff;

    border-radius:24px;

    padding:40px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:40px;

    box-shadow:0 15px 45px rgba(15,23,42,.08);

    margin-bottom:35px;

}

.result-score{

    text-align:center;

    min-width:250px;

}

.result-title{

    display:block;

    font-size:16px;

    color:#64748b;

    margin-bottom:12px;

}

.bmi-value{

    font-size:72px;

    font-weight:800;

    color:#2563eb;

    line-height:1;

    margin-bottom:10px;

}

.bmi-category{

    display:inline-block;

    padding:10px 20px;

    border-radius:999px;

    background:#eff6ff;

    color:#2563eb;

    font-weight:700;

}

.result-gauge{

    flex:1;

}

.gauge-bar{

    width:100%;

    height:18px;

    background:#e5e7eb;

    border-radius:999px;

    overflow:hidden;

}

.gauge-fill{

    width:0;

    height:100%;

    background:linear-gradient(90deg,#22c55e,#facc15,#ef4444);

    border-radius:999px;

    transition:.4s;

}

.gauge-labels{

    display:flex;

    justify-content:space-between;

    margin-top:12px;

    font-size:14px;

    color:#64748b;

}

/* ==========================================
GRILLE DES CARTES
========================================== */

.result-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:22px;

    margin-bottom:35px;

}

.info-card{

    background:#fff;

    border-radius:20px;

    padding:28px;

    box-shadow:0 10px 30px rgba(15,23,42,.06);

}

.info-card h3{

    font-size:18px;

    margin-bottom:14px;

    color:#0f172a;

}

.info-card p{

    color:#475569;

    font-size:17px;

    line-height:1.7;

}

/* ==========================================
ANALYSE
========================================== */

.analysis-card{

    background:#ffffff;

    padding:40px;

    border-radius:24px;

    box-shadow:0 10px 35px rgba(15,23,42,.06);

    margin-bottom:35px;

}

.analysis-card h2{

    margin-bottom:20px;

    font-size:30px;

    color:#0f172a;

}

.analysis-card p{

    font-size:17px;

    color:#475569;

    line-height:1.9;

}

/* ==========================================
RECOMMANDATIONS
========================================== */

.recommendation-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:24px;

    margin-bottom:40px;

}

.recommendation-card{

    background:#fff;

    border-radius:20px;

    padding:28px;

    box-shadow:0 10px 30px rgba(15,23,42,.06);

}

.recommendation-card h3{

    margin-bottom:16px;

    color:#0f172a;

}

.recommendation-card p{

    color:#475569;

    line-height:1.8;

}

/* ==========================================
TABLEAU OMS
========================================== */

.classification-card{

    background:#fff;

    border-radius:24px;

    padding:35px;

    box-shadow:0 10px 30px rgba(15,23,42,.06);

}

.classification-card h2{

    margin-bottom:25px;

}

.classification-card table{

    width:100%;

    border-collapse:collapse;

}

.classification-card th{

    background:#2563eb;

    color:#fff;

    padding:16px;

    text-align:left;

}

.classification-card td{

    padding:16px;

    border-bottom:1px solid #e5e7eb;

}

/* ==========================================
BANNER PC
========================================== */

.desktop-banner{

    display:block;

    padding:70px 0;

}

.desktop-banner-card{

    background:linear-gradient(135deg,#2563eb,#1d4ed8);

    color:#fff;

    border-radius:26px;

    padding:55px;

    box-shadow:0 20px 50px rgba(37,99,235,.35);

}

.banner-badge{

    display:inline-block;

    padding:8px 16px;

    border-radius:999px;

    background:rgba(255,255,255,.18);

    margin-bottom:18px;

    font-weight:700;

}

.banner-content h2{

    font-size:38px;

    margin-bottom:16px;

}

.banner-content p{

    font-size:18px;

    opacity:.95;

    max-width:650px;

}

.banner-button{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    margin-top:30px;

    padding:15px 34px;

    background:#fff;

    color:#2563eb;

    border-radius:12px;

    font-weight:700;

    transition:.25s;

}

.banner-button:hover{

    transform:translateY(-2px);

}
/* ==========================================
FAQ
========================================== */

.faq-section{

    padding:90px 0;

    background:#f8fafc;

}

.faq-container{

    max-width:900px;

    margin:auto;

}

.faq-item{

    background:#ffffff;

    border-radius:18px;

    margin-bottom:18px;

    overflow:hidden;

    box-shadow:0 10px 25px rgba(15,23,42,.05);

}

.faq-item summary{

    cursor:pointer;

    list-style:none;

    padding:24px;

    font-size:18px;

    font-weight:700;

    color:#0f172a;

}

.faq-item summary::-webkit-details-marker{

    display:none;

}

.faq-item p{

    padding:0 24px 24px;

    color:#475569;

    line-height:1.8;

}

/* ==========================================
CONTACT
========================================== */

.contact-section{

    padding:90px 0;

    background:#ffffff;

}

.contact-form{

    max-width:850px;

    margin:auto;

    background:#fff;

    padding:40px;

    border-radius:24px;

    box-shadow:0 15px 40px rgba(15,23,42,.06);

}

.form-row{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:22px;

}

.contact-form textarea{

    width:100%;

    border:1px solid #dbe3ef;

    border-radius:14px;

    padding:18px;

    resize:vertical;

    font-size:16px;

    outline:none;

    transition:.25s;

}

.contact-form textarea:focus{

    border-color:#2563eb;

}

.contact-button{

    margin-top:25px;

    width:100%;

    height:58px;

    border:none;

    border-radius:14px;

    background:#2563eb;

    color:#fff;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

}

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

.footer{

    background:#0f172a;

    color:#fff;

    padding:70px 0 30px;

}

.footer-top{

    display:flex;

    justify-content:space-between;

    gap:60px;

    margin-bottom:40px;

}

.footer-brand{

    display:flex;

    gap:20px;

    align-items:flex-start;

    max-width:550px;

}

.footer-logo{

    width:60px;

    height:60px;

}

.footer-brand h3{

    margin-bottom:12px;

}

.footer-brand p{

    color:#cbd5e1;

    line-height:1.8;

}

.footer-navigation{

    display:grid;

    gap:14px;

}

.footer-navigation a{

    color:#cbd5e1;

    transition:.25s;

}

.footer-navigation a:hover{

    color:#ffffff;

}

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.08);

    padding-top:25px;

    text-align:center;

    color:#94a3b8;

}

/* ==========================================
MOBILE BANNER
========================================== */

.mobile-banner{

    display:none;

    position:fixed;

    left:0;

    right:0;

    bottom:0;

    background:#ffffff;

    box-shadow:0 -6px 24px rgba(0,0,0,.15);

    z-index:9999;

    padding:10px 14px;

}

.mobile-banner-inner{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:15px;

}

.mobile-banner-text{

    display:flex;

    flex-direction:column;

}

.mobile-banner-text strong{

    color:#0f172a;

    font-size:15px;

}

.mobile-banner-text span{

    font-size:13px;

    color:#64748b;

}

.mobile-banner-action{

    background:#2563eb;

    color:#fff;

    padding:10px 18px;

    border-radius:10px;

    font-weight:700;

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

/* ----------- Large Desktop ----------- */

@media (max-width:1400px){

.container{

    width:min(1200px,94%);

}

.hero h1{

    font-size:46px;

}

}

/* ----------- Laptop ----------- */

@media (max-width:1200px){

.hero .container{

    grid-template-columns:1fr;

    gap:50px;

}

.result-grid{

    grid-template-columns:repeat(2,1fr);

}

.recommendation-grid{

    grid-template-columns:repeat(2,1fr);

}

.footer-top{

    flex-direction:column;

}

}

/* ----------- Tablet ----------- */

@media (max-width:992px){

.navigation{

    display:none;

}

.hero{

    padding:55px 0;

}

.hero h1{

    font-size:38px;

}

.section-header h2{

    font-size:34px;

}

.result-card{

    flex-direction:column;

    text-align:center;

}

.form-grid{

    grid-template-columns:1fr;

}

.form-row{

    grid-template-columns:1fr;

}

.desktop-banner{

    display:none;

}

.mobile-banner{

    display:flex;

}

.contact-form{

    padding:30px;

}

.footer{

    padding-bottom:90px;

}

}

/* ----------- Mobile ----------- */

@media (max-width:768px){

.container{

    width:94%;

}

.hero{

    padding:40px 0;

}

.hero h1{

    font-size:31px;

}

.hero-description{

    font-size:16px;

}

.hero-features{

    grid-template-columns:1fr;

}

.calculator-card{

    padding:22px;

}

.result-section{

    padding:55px 0;

}

.result-grid{

    grid-template-columns:1fr;

}

.recommendation-grid{

    grid-template-columns:1fr;

}

.analysis-card{

    padding:25px;

}

.classification-card{

    overflow-x:auto;

}

.classification-card table{

    min-width:600px;

}

.footer-brand{

    flex-direction:column;

}

.footer-navigation{

    margin-top:25px;

}

.mobile-banner{

    display:flex;

}

.mobile-banner-inner{

    width:100%;

}

.mobile-banner-action{

    white-space:nowrap;

}

}

/* ----------- Petit téléphone ----------- */

@media (max-width:480px){

.hero h1{

    font-size:27px;

}

.section-header h2{

    font-size:28px;

}

.bmi-value{

    font-size:54px;

}

.calculate-button{

    height:54px;

    font-size:16px;

}

.contact-button{

    height:54px;

}

.mobile-banner{

    height:68px;

}

.mobile-banner-text strong{

    font-size:14px;

}

.mobile-banner-text span{

    font-size:12px;

}

.mobile-banner-action{

    padding:9px 16px;

    font-size:14px;

}

}

/* ==========================================
VISIBILITÉ DES BANNERS
========================================== */

/* Desktop */

@media (min-width:993px){

.desktop-banner{

    display:block;

}

.mobile-banner{

    display:none;

}

}

/* Mobile & tablette */

@media (max-width:992px){

.desktop-banner{

    display:none !important;

}

.mobile-banner{

    display:flex !important;

}

}

/* ==========================================
ESPACE POUR LE BANNER MOBILE
========================================== */

@media (max-width:992px){

body{

    padding-bottom:90px;

}

}
/* ==========================================
ANIMATIONS
========================================== */

@keyframes fadeUp{

0%{

opacity:0;

transform:translateY(40px);

}

100%{

opacity:1;

transform:translateY(0);

}

}

@keyframes zoomIn{

0%{

opacity:0;

transform:scale(.9);

}

100%{

opacity:1;

transform:scale(1);

}

}

@keyframes pulse{

0%{

transform:scale(1);

}

50%{

transform:scale(1.05);

}

100%{

transform:scale(1);

}

}

@keyframes progressAnimation{

0%{

width:0;

}

100%{

width:100%;

}

}

/* ==========================================
ANIMATION CLASSES
========================================== */

.hero-content,
.calculator-card,
.result-card,
.info-card,
.analysis-card,
.recommendation-card,
.classification-card,
.faq-item,
.contact-form,
.desktop-banner-card{

animation:fadeUp .7s ease;

}

.bmi-value{

animation:zoomIn .6s ease;

}

.gauge-fill{

animation:progressAnimation 1.4s ease;

}

/* ==========================================
HOVER EFFECTS
========================================== */

.info-card:hover,
.recommendation-card:hover,
.analysis-card:hover,
.classification-card:hover,
.calculator-card:hover,
.desktop-banner-card{

transform:translateY(-6px);

box-shadow:0 22px 55px rgba(0,0,0,.12);

transition:.30s;

}

.feature:hover{

transform:translateY(-4px);

transition:.25s;

}

.banner-button:hover,
.calculate-button:hover,
.contact-button:hover{

transform:translateY(-2px);

filter:brightness(.96);

}

.mobile-banner:hover{

background:#f8fafc;

}

/* ==========================================
FOCUS
========================================== */

input:focus,
select:focus,
textarea:focus{

border-color:#2563eb;

box-shadow:0 0 0 4px rgba(37,99,235,.15);

}

/* ==========================================
SCROLLBAR
========================================== */

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#eef2f7;

}

::-webkit-scrollbar-thumb{

background:#2563eb;

border-radius:999px;

}

::-webkit-scrollbar-thumb:hover{

background:#1d4ed8;

}

/* ==========================================
SELECTION
========================================== */

::selection{

background:#2563eb;

color:#fff;

}

/* ==========================================
TABLE HOVER
========================================== */

.classification-card tbody tr:hover{

background:#eff6ff;

}

/* ==========================================
FAQ
========================================== */

.faq-item[open]{

border-left:5px solid #2563eb;

}

/* ==========================================
TRANSITIONS
========================================== */

a,
button,
input,
select,
textarea,
.card,
.info-card,
.recommendation-card{

transition:.25s ease;

}

/* ==========================================
PRINT
========================================== */

@media print{

header,
footer,
.mobile-banner,
.desktop-banner{

display:none !important;

}

body{

background:#fff;

color:#000;

}

.result-card,
.info-card,
.analysis-card{

box-shadow:none;

border:1px solid #ddd;

}

}

/* ==========================================
FIN
========================================== */