:root{
    --eu-blue:#003399;
    --eu-blue-dark:#002266;
    --text:#1f2937;
    --muted:#6b7280;
    --border:#e5e7eb;
    --bg:#ffffff;
    --bg-alt:#f8fafc;
    --max-width:1200px;
    --content-width:760px;
    --radius:8px;
}

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    font-size:16px;
    scroll-behavior:smooth;
}

body{
    margin:0;
    padding:0;
    background:var(--bg);
    color:var(--text);
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        sans-serif;
    line-height:1.7;
    text-rendering:optimizeLegibility;
}

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

a{
    color:var(--eu-blue);
    text-decoration:none;
}

a:hover{
    text-decoration:underline;
}

.container{
    width:min(
        calc(100% - 2rem),
        var(--max-width)
    );
    margin:0 auto;
}

.narrow{
    width:min(
        calc(100% - 2rem),
        var(--content-width)
    );
    margin:0 auto;
}

.site-header{
    border-bottom:1px solid var(--border);
    background:#fff;
}

.site-header .container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:2rem;
    padding:1rem 0;
}

.logo img{
    width:260px;
    height:auto;
}

.main-nav{
    display:flex;
    gap:1.25rem;
    flex-wrap:wrap;
}

.main-nav a{
    color:var(--text);
    font-weight:500;
}

.hero{
    padding:5rem 0;
    background:var(--bg);
}

.hero h1{
    margin:0 0 1rem;
    font-size:clamp(
        2rem,
        4vw,
        3.5rem
    );
    line-height:1.1;
    color:var(--eu-blue-dark);
}

.hero p{
    max-width:800px;
    font-size:1.15rem;
    color:var(--muted);
}

.section{
    padding:4rem 0;
}

.section h2{
    margin-top:0;
    margin-bottom:1.5rem;
    color:var(--eu-blue-dark);
}

.cards{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1.5rem;
}

@media (max-width:900px){
    .cards{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:480px){
    .cards{
        grid-template-columns:1fr;
    }
}

.card{
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:1.5rem;
    background:#fff;
    display:flex;
    flex-direction:column;
}

.card h3{
    margin-top:0;
    line-height:1.3;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.card p{
    color:var(--muted);
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
    margin-bottom:.75rem;
}

.card>a{
    margin-top:auto;
    display:inline-block;
}

.stats{
    background:var(--bg-alt);
}

.stats-grid{
    display:grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(220px,1fr)
        );
    gap:1rem;
}

.stats-grid div{
    border:1px solid var(--border);
    background:#fff;
    padding:1.5rem;
    border-radius:var(--radius);
}

.stats-grid strong{
    display:block;
    font-size:2rem;
    color:var(--eu-blue);
}

.stat-source{
    display:block;
    margin-top:.5rem;
    font-size:.72rem;
    color:var(--muted);
    font-style:italic;
}

.newsletter{
    padding:4rem 0;
}

.alert{
    padding:.9rem 1.25rem;
    border-radius:var(--radius);
    margin-bottom:1.25rem;
    font-size:.95rem;
}

.alert--success{
    background:#d1fae5;
    border:1px solid #6ee7b7;
    color:#065f46;
}

.subscribe-form{
    display:flex;
    flex-direction:column;
    gap:.75rem;
}

.subscribe-row{
    display:flex;
    gap:.75rem;
    flex-wrap:wrap;
}

.subscribe-row--meta input,
.subscribe-row--meta select{
    flex:1 1 140px;
}

.subscribe-row--type{
    display:flex;
    gap:1.25rem;
    align-items:flex-start;
}

.subscribe-type{
    display:flex;
    flex-direction:column;
    gap:.15rem;
    cursor:pointer;
    padding:.5rem .75rem;
    border:1px solid var(--border, #ddd);
    border-radius:.5rem;
    flex:1;
    transition:border-color .15s;
}

.subscribe-type:has(input:checked){
    border-color:var(--eu-blue, #003399);
    background:rgba(0,51,153,.04);
}

.subscribe-type__label{
    display:flex;
    align-items:center;
    gap:.4rem;
    font-size:.9rem;
    font-weight:600;
    color:var(--text, #222);
}

.subscribe-type__desc{
    font-size:.78rem;
    color:var(--text-muted, #666);
    line-height:1.3;
    padding-left:1.35rem;
}

.subscribe-type input[type=radio]{
    accent-color:var(--eu-blue);
    flex-shrink:0;
}

.newsletter input,
.newsletter select{
    flex:1 1 200px;
    min-height:48px;
    padding:0 1rem;
    border:1px solid var(--border);
    border-radius:var(--radius);
    background:#fff;
    font-size:.95rem;
}

.newsletter button{
    align-self:flex-start;
    min-height:48px;
    padding:0 1.5rem;
    border:none;
    border-radius:var(--radius);
    background:var(--eu-blue);
    color:#fff;
    cursor:pointer;
    font-weight:600;
}

.newsletter button:hover{
    background:var(--eu-blue-dark);
}

.site-footer{
    border-top:1px solid var(--border);
    padding:2rem 0;
    margin-top:3rem;
}

.site-footer .container{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:1rem;
}

.site-footer nav{
    display:flex;
    gap:1rem;
    flex-wrap:wrap;
}

.footer-disclosure{
    margin-top:1rem;
    padding-top:1rem;
    border-top:1px solid var(--border);
}

.footer-disclosure p{
    margin:0;
    font-size:.85rem;
    color:var(--muted);
}

.footer-disclosure a{
    color:var(--muted);
}

.related-resources{
    margin-top:2rem;
    padding:1.25rem 1.5rem;
    background:var(--bg-alt);
    border:1px solid var(--border);
    border-radius:var(--radius);
}

.related-resources .label{
    display:block;
    font-size:.7rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--muted);
    margin:0 0 .5rem;
}

.related-resources p{
    margin:0;
    font-size:.9rem;
}

.related-resources a{
    color:var(--eu-blue);
    font-weight:600;
}

.page-header{
    padding:3rem 0;
    border-bottom:1px solid var(--border);
}

.article-container{
    max-width:900px;
    margin:0 auto;
    padding:3rem 1rem;
}

.article-header h1{
    margin-bottom:1rem;
    line-height:1.2;
}

.article-meta,
.meta{
    color:var(--muted);
    font-size:.95rem;
}

.article-category{
    color:var(--eu-blue);
    font-weight:700;
    margin-bottom:.75rem;
}

.article-summary{
    font-size:1.15rem;
    margin:2rem 0;
}

.article-content{
    max-width:760px;
}

.report-grid{
    display:grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(320px,1fr)
        );
    gap:1.5rem;
}

.report-card{
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:1.5rem;
}

.report-card h2{
    margin-top:0;
}

.back-link{
    display:inline-block;
    margin-bottom:1rem;
}

table{
    width:100%;
    border-collapse:collapse;
}

th,
td{
    border:1px solid var(--border);
    padding:.75rem;
    text-align:left;
}

@media (max-width:768px){

    .site-header .container{
        flex-direction:column;
        align-items:flex-start;
    }

    .main-nav{
        width:100%;
    }

    .hero{
        padding:3rem 0;
    }

    .site-footer .container{
        flex-direction:column;
        align-items:flex-start;
    }

    .subscribe-row{
        flex-direction:column;
    }

    .subscribe-row--meta input,
    .subscribe-row--meta select{
        width:100%;
    }

    .newsletter button{
        align-self:stretch;
    }
}