/* ========== Base / Reset ========== */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body{
    margin: 0;
    font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    color:#0f172a; /* slate-900 */
    background:#f8fafc; /* slate-50 */
    line-height: 2;
}

/* ========== Theme Tokens ========== */
:root{
    --bg:#f8fafc;
    --card:#ffffff;
    --text:#0f172a;
    --muted:#475569;          /* slate-600 */
    --border:#e2e8f0;         /* slate-200 */
    --brand:#2563eb;          /* blue-600 */
    --brand-700:#1d4ed8;
    --accent:#60a5fa;         /* blue-400 */
    --radius:16px;
    --shadow:0 10px 30px rgba(2,6,23,.08);
    --maxw:1450px;
    --space:clamp(16px, 2vw, 24px);
}

.container{
    max-width:var(--maxw);
    margin-inline:auto;
    padding-inline:var(--space);
}

img{ display:block; max-width:100%; height:auto; }

a{ color:inherit; text-decoration:none; }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
    outline:none;
    box-shadow:0 0 0 4px rgba(37,99,235,.18);
    border-radius:10px;
}

/* ========== Buttons ========== */
.button, button, input[type="submit"], input[type="reset"]{
    display:inline-block;
    background:var(--brand);
    color:#fff;
    padding:10px 18px;
    border:none;
    border-radius:999px;
    font-weight:600;
    cursor:pointer;
    transition:transform .15s ease, background .2s ease, box-shadow .2s ease;
    box-shadow:0 8px 20px rgba(37,99,235,.22);
}

.button:hover, button:hover, input[type="submit"]:hover, input[type="reset"]:hover{
    background:var(--brand-700); transform:translateY(-1px);
}

.button:active, button:active, input[type="submit"]:active, input[type="reset"]:active{
    transform:translateY(0);
}

/* ========== Navigation ========== */
nav{
    position:sticky; top:0; z-index:50;
    background:rgb(255,255,255);
    border-bottom:1px solid var(--border);
}

nav .container{
    display:flex; 
    align-items:center; 
    justify-content:space-between; 
    gap:12px;
    /* margin-inline: auto; */
}

nav img{
    width:100px;
    height:auto;
    object-fit:contain;
}

.btn-links{
    display:flex;
    align-items:center;
    gap:14px;
}

.btn-links > div{
    display:flex; gap:18px;
    padding:4px 4px;
    border-radius:999px;
}

.btn-links a:not(.button){
    color:var(--muted);
    font-weight:600;
    padding:8px 16px;
    border-radius:50px;
}

.btn-links a:not(.button):hover{ 
    color:var(--text); 
    background:#eaf2ff; 
}

.btn-links a.active{ 
    color:var(--text); 
    background:#eaf2ff; 
}

/* ========== Shared Sections & Typography ========== */
main{ 
    padding-block:clamp(24px, 5vw, 56px); 
    margin-inline: auto;
    /* max-width: 1350px; */
}

.section{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:clamp(18px, 3vw, 28px);
}

h1,h2,h3{ 
    line-height:1.25; 
    margin:0 0 .6em; 
    color:var(--text); 
}

h1{ font-size:clamp(28px, 4vw, 40px); }

h2{ font-size:clamp(22px, 3.2vw, 30px); }

h3{ font-size:clamp(18px, 2.4vw, 22px); }

p{ 
    margin:0 0 1em;
    color:var(--muted);
    font-size:clamp(15px, 1.6vw, 17px);
}

.page-title{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-bottom: 20px;
}

.page-title h1{text-align: center;}

.page-title p{text-align: center;}

.get-in-touch {
    padding: 50px;
    background-color: var(--accent);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.get-in-touch p {
    font-size: large;
    color: #fff;
}

/* ========== Footer ========== */
footer{
    /* margin-top:60px; */
    background:#0b1220;
    color:#e2e8f0;
    padding-top:40px;
    padding-bottom:30px;
}

.footer{
    display: flex;
    justify-content: space-evenly;
    align-items: flex-start;
    /* margin-inline: auto; */
}

.footer .f-contact,

.footer .f-pages {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.footer img{ 
    width:160px; 
    filter:drop-shadow(0 8px 20px rgba(0,0,0,.25)); 
}

footer h3{ 
    margin:0 0 10px; 
    font-size:16px; 
    letter-spacing:.3px; 
    color:#f1f5f9; 
}

footer a{ 
    display:inline-block; 
    color:#cbd5e1; 
    padding:6px 0; 
}

footer a:hover{ color:#fff; }

footer p{
    margin:14px 0 0; 
    font-size:14px; 
    color:#94a3b8; 
    text-align:center;
    border-top:1px solid rgba(148,163,184,.25); 
    padding-top:14px;
}

/* ========== Media Queries (global) ========== */
@media (max-width:1024px){
    nav div img{ width: 80px; }
    .btn-links > div{ gap:14px; }
}

@media (max-width:768px){
    main {margin-inline: 20px;}
    
    nav .container{
        flex-wrap:wrap;
        gap:10px;
        padding-block:10px; 
        margin-inline: 0;
    }

    .btn-links > a.button {
        position: absolute;
        top: 50%;
        right: 15px;
        transform: translateY(-100%);
    }
    
    .btn-links{ 
        width:100%; 
        justify-content:space-between; 
    }
    
    .btn-links > div{
        overflow-x:auto; 
        white-space:nowrap; 
        width:100%; 
        border-radius:14px;
    }

    .footer img{ width:140px; }
}

@media (max-width:480px){
    nav img{ width:120px; }
    
    .btn-links{ 
        flex-direction:column; 
        align-items:stretch; 
        gap:8px; 
    }
    
    main{ padding-block:18px; }
    
    .footer{
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 40px; 
    }
    
    .footer .f-contact,
    .footer .f-pages{align-items: center;}
}