/* ---------------------------------------------------------
   ROOT / THEME
--------------------------------------------------------- */
:root{
    --aol-primary:#0f2f57;
    --aol-secondary:#1f4f86;
    --aol-accent:#d4a017;
    --aol-text:#1f2937;
    --aol-muted:#6b7280;
    --aol-bg:#f8fafc;
    --aol-white:#ffffff;
    --aol-border:#e5e7eb;
    --aol-dark:#0b1220;
    --aol-radius:18px;
    --aol-shadow:0 14px 35px rgba(15, 47, 87, 0.08);
}

/* ---------------------------------------------------------
   GLOBAL
--------------------------------------------------------- */
html{
    scroll-behavior:smooth;
}

body{
    font-family:"Segoe UI", Roboto, Arial, sans-serif;
    color:var(--aol-text);
    background:var(--aol-white);
    line-height:1.65;
}

main{
    min-height:50vh;
}

a{
    text-decoration:none;
}

img{
    max-width:100%;
    height:auto;
}

.text-muted{
    color:var(--aol-muted) !important;
}

/* ---------------------------------------------------------
   BUTTONS
--------------------------------------------------------- */
.btn-aol-primary{
    background:var(--aol-primary);
    color:#fff;
    border:1px solid var(--aol-primary);
    border-radius:10px;
    padding:0.75rem 1.2rem;
    font-weight:600;
}

.btn-aol-primary:hover{
    background:var(--aol-secondary);
    border-color:var(--aol-secondary);
    color:#fff;
}

.btn-aol-outline{
    background:transparent;
    color:var(--aol-primary);
    border:1px solid var(--aol-primary);
    border-radius:10px;
    padding:0.75rem 1.2rem;
    font-weight:600;
}

.btn-aol-outline:hover{
    background:var(--aol-primary);
    color:#fff;
}

.btn-primary,
.btn-primary:focus{
    background-color:var(--aol-primary);
    border-color:var(--aol-primary);
    box-shadow:none;
}

.btn-primary:hover{
    background-color:var(--aol-secondary);
    border-color:var(--aol-secondary);
}

.btn{
    font-weight:600;
}

/* ---------------------------------------------------------
   TOPBAR
--------------------------------------------------------- */
.topbar{
    background:var(--aol-dark);
    color:rgba(255,255,255,0.85);
    font-size:0.92rem;
}

.topbar a{
    color:rgba(255,255,255,0.9);
}

.topbar span,
.topbar a{
    color:rgba(255,255,255,0.88);
}

.topbar a:hover{
    color:#ffffff;
}

.social-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,0.18);
    transition:all 0.2s ease;
}

.social-icon:hover{
    background:rgba(255,255,255,0.10);
    border-color:rgba(255,255,255,0.35);
    transform:translateY(-1px);
}

/* ---------------------------------------------------------
   NAVBAR
--------------------------------------------------------- */
.navbar{
    background:rgba(255,255,255,0.96);
    backdrop-filter:blur(10px);
    box-shadow:0 2px 18px rgba(0,0,0,0.04);
    z-index:1030;
}

.navbar-brand{
    font-weight:700;
    color:var(--aol-primary) !important;
    letter-spacing:0.2px;
    line-height:1.1;
}

.navbar-brand img,
.aol-brand-logo{
    height:44px;
    width:auto;
    display:block;
    flex-shrink:0;
}

.navbar-brand span,
.aol-brand-text{
    display:flex;
    flex-direction:column;
    justify-content:center;
    color:var(--aol-primary);
    line-height:1.05;
    min-width:0;
}

.navbar-brand small,
.aol-brand-text small{
    display:block;
    font-size:0.72rem;
    font-weight:500;
    color:var(--aol-muted);
    letter-spacing:0.4px;
    margin-top:9px;
}

.nav-link{
    color:var(--aol-text) !important;
    font-weight:500;
    padding-left:0.9rem !important;
    padding-right:0.9rem !important;
}

.nav-link:hover,
.nav-link.active{
    color:var(--aol-primary) !important;
}

.navbar-toggler{
    border:0;
    box-shadow:none !important;
    padding:0.35rem 0.5rem;
}

.navbar-toggler:focus{
    box-shadow:none !important;
}

.navbar-toggler-icon{
    filter:none;
}

/* ---------------------------------------------------------
   OFFCANVAS MOBILE MENU
--------------------------------------------------------- */
.offcanvas.offcanvas-end{
    width:300px;
    border-left:1px solid var(--aol-border);
    background:#ffffff;
}

.offcanvas-header{
    padding:1rem 1.25rem;
    border-bottom:1px solid var(--aol-border);
}

.offcanvas-title{
    color:var(--aol-primary);
    font-weight:700;
}

.offcanvas-body{
    padding:1rem 1.25rem 1.5rem;
}

.offcanvas .nav-link{
    padding:0.8rem 0.25rem !important;
    font-weight:600;
    color:var(--aol-text) !important;
    border-bottom:1px solid #f1f5f9;
}

.offcanvas .nav-link.active,
.offcanvas .nav-link:hover{
    color:var(--aol-primary) !important;
}

/* ---------------------------------------------------------
   COMMON SECTIONS / INNER PAGE HERO
--------------------------------------------------------- */
.page-hero,
.aol-page-hero{
    background:linear-gradient(135deg, #f8fafc 0%, #eef4fb 100%);
    padding:70px 0 50px;
    border-bottom:1px solid var(--aol-border);
}

.section-pad{
    padding:72px 0;
}

.section-title{
    font-size:2rem;
    font-weight:700;
    color:var(--aol-primary);
    margin-bottom:0.75rem;
}

.section-subtitle{
    color:var(--aol-muted);
    max-width:760px;
}

.aol-kicker{
    display:inline-block;
    font-size:0.88rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--aol-accent);
    margin-bottom:0.8rem;
}

/* ---------------------------------------------------------
   FLASH / STICKY CTA
--------------------------------------------------------- */
.flash-wrap{
    position:relative;
    z-index:10;
}

.alert{
    border:0;
    border-radius:14px;
    box-shadow:0 10px 24px rgba(15,47,87,0.08);
}

.sticky-cta{
    position:fixed;
    right:18px;
    bottom:40px;
    z-index:1050;
}

.sticky-cta .btn{
    border-radius:999px;
    box-shadow:0 10px 25px rgba(15, 47, 87, 0.25);
    padding:0.85rem 1.15rem;
    font-weight:600;
}

/* ---------------------------------------------------------
   FOOTER
--------------------------------------------------------- */
.footer-main{
    background:var(--aol-dark);
    color:rgba(255,255,255,0.82);
}

.footer-main h5,
.footer-main h6{
    color:#fff;
    font-weight:700;
}

.footer-main a{
    color:rgba(255,255,255,0.82);
}

.footer-main a:hover{
    color:#fff;
}

.footer-bottom{
    border-top:1px solid rgba(255,255,255,0.10);
    color:rgba(255,255,255,0.65);
}

.footer-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 14px;
    border:1px solid rgba(255,255,255,0.12);
    border-radius:999px;
    background:rgba(255,255,255,0.04);
    color:rgba(255,255,255,0.9);
    font-size:0.92rem;
}

/* ---------------------------------------------------------
   HOME PAGE
--------------------------------------------------------- */
.aol-hero{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at top right, rgba(212,160,23,0.14), transparent 22%),
        radial-gradient(circle at left center, rgba(31,79,134,0.10), transparent 28%),
        linear-gradient(135deg, #f8fbff 0%, #eef4fb 55%, #f9fafb 100%);
    padding:92px 0 84px;
    border-bottom:1px solid var(--aol-border);
}

.aol-hero::before{
    content:"";
    position:absolute;
    top:-80px;
    right:-80px;
    width:280px;
    height:280px;
    background:rgba(15,47,87,0.05);
    border-radius:50%;
    filter:blur(20px);
}

.aol-hero::after{
    content:"";
    position:absolute;
    bottom:-90px;
    left:-90px;
    width:260px;
    height:260px;
    background:rgba(212,160,23,0.08);
    border-radius:50%;
    filter:blur(20px);
}

.aol-hero-card{
    position:relative;
    background:#fff;
    border:1px solid rgba(15,47,87,0.08);
    border-radius:24px;
    box-shadow:0 22px 50px rgba(15,47,87,0.10);
    padding:1.5rem;
}

.aol-hero-card h5,
.aol-info-card h5,
.aol-card h5,
.aol-step-card h5,
.aol-stat-card h3{
    color:var(--aol-primary);
    font-weight:700;
}

.aol-info-card{
    background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border:1px solid rgba(15, 23, 42, 0.08);
    border-radius:20px;
    padding:2rem;
    box-shadow:0 18px 50px rgba(15, 23, 42, 0.08);
}

.aol-card,
.aol-step-card,
.aol-stat-card,
.aol-pill-box{
    height:100%;
    border:1px solid var(--aol-border);
    border-radius:22px;
    background:#fff;
    box-shadow:var(--aol-shadow);
    transition:transform 0.25s ease, box-shadow 0.25s ease;
}

.aol-card:hover,
.aol-step-card:hover,
.aol-stat-card:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 40px rgba(15,47,87,0.12);
}

.aol-card .card-body,
.aol-step-card,
.aol-stat-card{
    padding:1.6rem;
}

.aol-card p,
.aol-step-card p,
.aol-stat-card p{
    color:var(--aol-muted);
    margin-bottom:0;
}

.aol-pill-box{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:1rem 1.1rem;
    text-align:center;
    color:var(--aol-primary);
    font-weight:600;
    background:#f8fafc;
}

.aol-step-number{
    font-size:0.92rem;
    font-weight:700;
    color:var(--aol-accent);
    margin-bottom:0.75rem;
}

.aol-cta-section{
    background:linear-gradient(135deg, var(--aol-primary) 0%, var(--aol-secondary) 100%);
    color:#fff;
}

.aol-cta-section h2,
.aol-cta-section p{
    color:#fff;
}

/* ---------------------------------------------------------
   FORMS
--------------------------------------------------------- */
.form-card{
    background:#ffffff;
    border:1px solid rgba(15, 23, 42, 0.08);
    border-radius:20px;
    box-shadow:0 18px 50px rgba(15, 23, 42, 0.08);
    padding:2rem;
}

.form-control,
.form-select{
    min-height:50px;
    border-radius:12px;
    border:1px solid #dbe2ea;
    box-shadow:none;
}

.form-control:focus,
.form-select:focus{
    border-color:#1d4ed8;
    box-shadow:0 0 0 0.2rem rgba(29, 78, 216, 0.12);
}

textarea.form-control{
    min-height:150px;
}

.form-label{
    font-weight:600;
    color:var(--aol-primary);
    margin-bottom:0.45rem;
}

.card{
    border-radius:20px;
}

.card.shadow-sm{
    box-shadow:0 14px 34px rgba(15, 23, 42, 0.08) !important;
}

/* ---------------------------------------------------------
   TABLES / ADMIN
--------------------------------------------------------- */
.table thead th{
    font-weight:700;
    color:var(--aol-primary);
    white-space:nowrap;
}

.table td,
.table th{
    vertical-align:top;
}

.badge.bg-primary{
    background-color:var(--aol-primary) !important;
}

/* ---------------------------------------------------------
   UTILITIES
--------------------------------------------------------- */
.bg-light{
    background-color:#f8fafc !important;
}

/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */
@media (max-width: 991.98px){
    .page-hero,
    .aol-page-hero{
        padding:56px 0 36px;
    }

    .section-pad{
        padding:56px 0;
    }

    .section-title{
        font-size:1.65rem;
    }

    .navbar-brand small,
    .aol-brand-text small{
        font-size:0.66rem;
    }

    .navbar-brand img,
    .aol-brand-logo{
        height:40px !important;
    }

    .aol-hero{
        padding:68px 0 58px;
    }

    .sticky-cta{
        right:14px;
        bottom:14px;
    }

    .sticky-cta .btn{
        padding:0.72rem 1rem;
        font-size:0.92rem;
    }
}

@media (max-width: 767.98px){
    .topbar{
        text-align:center;
    }

    .footer-bottom{
        text-align:center;
    }

    .sticky-cta{
        left:14px;
        right:14px;
        bottom:14px;
    }

    .sticky-cta .btn{
        width:100%;
        justify-content:center;
    }
}

@media (max-width: 575.98px){
    .aol-brand-text{
        max-width:160px;
    }

    .aol-brand-text small{
        display:none;
    }
}
/* ---------------------------------------------------------
   TECHNOLOGY SECTION
--------------------------------------------------------- */
.aol-tech-section{
    background:
        radial-gradient(circle at top left, rgba(31,79,134,0.08), transparent 24%),
        radial-gradient(circle at bottom right, rgba(212,160,23,0.10), transparent 26%),
        #ffffff;
}

.aol-tech-highlight{
    background:linear-gradient(135deg, var(--aol-primary) 0%, var(--aol-secondary) 100%);
    color:#ffffff;
    border-radius:24px;
    padding:1.6rem;
    box-shadow:0 22px 50px rgba(15,47,87,0.16);
}

.aol-tech-highlight h5,
.aol-tech-highlight p{
    color:#ffffff;
}

.aol-tech-highlight .btn-aol-outline{
    color:#ffffff;
    border-color:rgba(255,255,255,0.75);
}

.aol-tech-highlight .btn-aol-outline:hover{
    background:#ffffff;
    color:var(--aol-primary);
}

.aol-tech-badge{
    display:inline-flex;
    align-items:center;
    padding:0.35rem 0.75rem;
    border-radius:999px;
    background:rgba(255,255,255,0.12);
    border:1px solid rgba(255,255,255,0.20);
    color:#ffffff;
    font-size:0.78rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.06em;
    margin-bottom:0.9rem;
}

.aol-tech-divider{
    border:0;
    border-top:1px solid rgba(255,255,255,0.25);
    margin:1.25rem 0;
}
.aol-tech-card,
.aol-tech-mini{
    background:#ffffff;
    border:1px solid var(--aol-border);
    border-radius:22px;
    padding:1.5rem;
    box-shadow:var(--aol-shadow);
    transition:transform 0.25s ease, box-shadow 0.25s ease;
}

.aol-tech-card:hover,
.aol-tech-mini:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 42px rgba(15,47,87,0.13);
}

.aol-tech-icon{
    width:48px;
    height:48px;
    border-radius:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef4fb;
    color:var(--aol-primary);
    font-size:1.35rem;
    margin-bottom:1rem;
}

.aol-tech-card h5,
.aol-tech-mini h5{
    color:var(--aol-primary);
    font-weight:700;
    margin-bottom:0.6rem;
}

.aol-tech-card p,
.aol-tech-mini p{
    color:var(--aol-muted);
    margin-bottom:0;
}

.aol-platform-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.aol-platform-card {
    display: flex;
    gap: 1rem;
    padding: 1.15rem;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 14px 35px rgba(15, 23, 42, 0.08);
    transition: all 0.25s ease;
}

.aol-platform-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
}

.aol-platform-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 16px;
    background: linear-gradient(135deg, #0d6efd, #2f80ed);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

.aol-platform-label {
    display: inline-block;
    margin-bottom: 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #0d6efd;
}

.aol-platform-card h5 {
    margin-bottom: 0.35rem;
    font-weight: 700;
    color: #102a43;
}

.aol-platform-card p {
    margin-bottom: 0.35rem;
    color: #5f6f89;
    font-size: 0.92rem;
    line-height: 1.55;
}

.aol-platform-card a {
    font-size: 0.88rem;
    font-weight: 700;
    color: #0d6efd;
    text-decoration: none;
}

.aol-platform-card a:hover {
    text-decoration: underline;
}

@media (max-width: 575.98px) {
    .aol-platform-card {
        flex-direction: column;
    }
}

.aol-platform-row {
    margin-top: 0.25rem;
}

.aol-platform-card {
    display: flex;
    gap: 1rem;
    padding: 1.25rem;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 14px 35px rgba(15, 23, 42, 0.08);
    transition: all 0.25s ease;
}

.aol-platform-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
}

.aol-platform-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 16px;
    background: linear-gradient(135deg, #0d6efd, #2f80ed);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

.aol-platform-label {
    display: inline-block;
    margin-bottom: 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #0d6efd;
}

.aol-platform-card h5 {
    margin-bottom: 0.35rem;
    font-weight: 700;
    color: #102a43;
}

.aol-platform-card p {
    margin-bottom: 0.35rem;
    color: #5f6f89;
    font-size: 0.92rem;
    line-height: 1.55;
}

.aol-platform-card a {
    font-size: 0.88rem;
    font-weight: 700;
    color: #0d6efd;
    text-decoration: none;
}

.aol-platform-card a:hover {
    text-decoration: underline;
}

@media (max-width: 767.98px) {
    .aol-platform-card {
        flex-direction: column;
    }
}