.public-body{
    background:
        radial-gradient(circle at top left, rgba(var(--color-accent-rgb), 0.16), transparent 22rem),
        radial-gradient(circle at top right, rgba(var(--color-primary-rgb), 0.1), transparent 28rem),
        var(--color-page-bg);
}

.site-shell{
    min-height:100vh;
}

.site-header{
    position:sticky;
    top:0;
    z-index:120;
    backdrop-filter:blur(18px);
    background:rgba(255, 255, 255, 0.82);
    border-bottom:1px solid rgba(var(--color-secondary-rgb), 0.12);
}

.site-utilitybar{
    display:none;
    border-bottom:1px solid rgba(var(--color-secondary-rgb), 0.08);
    background:rgba(var(--color-secondary-rgb), 0.06);
}

.utilitybar-inner,
.utilitybar-items,
.utilitybar-actions{
    display:flex;
    align-items:center;
    gap:var(--space-4);
}

.utilitybar-inner{
    justify-content:space-between;
    min-height:2.65rem;
    font-size:0.88rem;
    color:var(--color-text-soft);
}

.utilitybar-items{
    flex-wrap:wrap;
    gap:var(--space-3);
}

.utilitybar-actions a{
    font-weight:700;
    color:var(--color-secondary);
}

.header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-3);
    min-height:5rem;
}

.brand{
    display:flex;
    align-items:center;
    gap:var(--space-3);
    min-width:0;
}

.brand-mark{
    flex:0 0 auto;
    width:3.4rem;
    height:3.4rem;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:1.15rem;
    background:linear-gradient(180deg, rgba(var(--color-primary-rgb), 0.16), rgba(var(--color-secondary-rgb), 0.18));
    border:1px solid rgba(var(--color-secondary-rgb), 0.12);
}

.brand-mark img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.brand-monogram{
    font-family:var(--font-display);
    font-size:1.18rem;
    font-weight:700;
    color:var(--color-secondary);
}

.brand-copy{
    display:grid;
    gap:0.08rem;
    min-width:0;
}

.brand-copy strong{
    font-family:var(--font-display);
    font-size:1.08rem;
    line-height:1.05;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.brand-copy small{
    display:none;
    color:var(--color-text-soft);
    font-size:0.82rem;
    line-height:1.35;
}

.header-nav-shell{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    margin-left:auto;
    flex:0 0 auto;
    min-width:0;
    position:relative;
}

.main-nav-desktop{
    display:none;
}

.nav-toggle{
    display:grid;
    gap:0.27rem;
    place-items:center;
    width:3rem;
    height:3rem;
    border:none;
    border-radius:1rem;
    background:rgba(var(--color-secondary-rgb), 0.06);
    color:var(--color-text);
}

.nav-toggle span:not(.sr-only){
    width:1.2rem;
    height:2px;
    border-radius:999px;
    background:currentColor;
    transition:transform var(--transition-base), opacity var(--transition-base);
}

.main-nav{
    position:fixed;
    top:5rem;
    right:0.75rem;
    left:0.75rem;
    display:grid;
    gap:var(--space-2);
    padding:var(--space-4);
    z-index:140;
    border:1px solid rgba(var(--color-secondary-rgb), 0.12);
    border-radius:var(--radius-lg);
    background:rgba(255, 255, 255, 0.96);
    box-shadow:var(--shadow-md);
    opacity:0;
    visibility:hidden;
    transform:translateY(-0.5rem);
    transition:opacity var(--transition-base), visibility var(--transition-base), transform var(--transition-base);
}

.nav-drawer-section,
.nav-drawer-links,
.nav-drawer-actions{
    display:grid;
    gap:var(--space-2);
}

.nav-drawer-section + .nav-drawer-section{
    padding-top:var(--space-3);
    border-top:1px solid rgba(var(--color-secondary-rgb), 0.1);
}

.nav-drawer-title{
    margin:0;
    font-size:0.78rem;
    font-weight:700;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--color-text-soft);
}

.nav-drawer-actions{
    padding-top:var(--space-3);
    border-top:1px solid rgba(var(--color-secondary-rgb), 0.1);
}

.main-nav a{
    display:flex;
    align-items:center;
    min-height:3rem;
    padding:0.85rem 1rem;
    border-radius:1rem;
    font-weight:600;
    color:var(--color-text-soft);
}

.main-nav a:hover,
.main-nav a.active{
    background:rgba(var(--color-primary-rgb), 0.08);
    color:var(--color-primary);
}

.nav-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:2.85rem;
    padding:0.78rem 1rem;
    border-radius:var(--radius-pill);
    background:transparent;
    color:var(--color-text-soft);
    font-weight:600;
    white-space:nowrap;
    transition:
        background-color var(--transition-fast),
        color var(--transition-fast),
        border-color var(--transition-fast);
}

.nav-link:hover,
.nav-link.active{
    background:rgba(var(--color-primary-rgb), 0.08);
    color:var(--color-primary);
}

.nav-backdrop{
    position:fixed;
    inset:0;
    z-index:-1;
    opacity:0;
    visibility:hidden;
    border:none;
    background:rgba(15, 23, 42, 0.28);
    transition:opacity var(--transition-base), visibility var(--transition-base);
}

.header-cta{
    display:none;
}

.public-body.nav-open .main-nav{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.public-body.nav-open .nav-backdrop{
    z-index:100;
    opacity:1;
    visibility:visible;
}

.public-body.nav-open .nav-toggle span:nth-child(1){
    transform:translateY(0.35rem) rotate(45deg);
}

.public-body.nav-open .nav-toggle span:nth-child(2){
    opacity:0;
}

.public-body.nav-open .nav-toggle span:nth-child(3){
    transform:translateY(-0.35rem) rotate(-45deg);
}

.site-main{
    padding-bottom:var(--space-9);
}

.hero{
    padding:clamp(2rem, 6vw, 4.25rem) 0 var(--space-6);
}

.hero-layout{
    display:grid;
    gap:var(--space-5);
}

.hero-panel{
    position:relative;
    overflow:hidden;
    padding:clamp(1.4rem, 4vw, 2.25rem);
    background:
        radial-gradient(circle at top right, rgba(var(--color-accent-rgb), 0.2), transparent 14rem),
        linear-gradient(145deg, rgba(var(--color-secondary-rgb), 0.98), rgba(var(--color-primary-rgb), 0.94));
    color:var(--color-on-secondary);
}

.hero-panel::after{
    content:"";
    position:absolute;
    inset:auto -5rem -6rem auto;
    width:13rem;
    height:13rem;
    border-radius:50%;
    background:rgba(255, 255, 255, 0.08);
}

.hero-copy{
    position:relative;
    z-index:1;
    display:grid;
    gap:var(--space-4);
}

.hero-copy h1,
.page-hero h1,
.simple-state h1{
    margin:0;
    font-family:var(--font-display);
    font-size:clamp(2.4rem, 8vw, 4.4rem);
    line-height:0.98;
}

.hero-copy p{
    margin:0;
    max-width:62ch;
    font-size:1.02rem;
    color:rgba(255, 255, 255, 0.82);
}

.hero-pills{
    display:flex;
    flex-wrap:wrap;
    gap:var(--space-2);
}

.hero-pills span{
    display:inline-flex;
    align-items:center;
    min-height:2rem;
    padding:0.35rem 0.8rem;
    border-radius:var(--radius-pill);
    background:rgba(255, 255, 255, 0.12);
    font-size:0.82rem;
    font-weight:700;
}

.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:var(--space-3);
    margin-top:var(--space-2);
}

.hero-actions > *{
    width:100%;
}

.hero-actions .button-secondary{
    color:#fff;
    border-color:rgba(255, 255, 255, 0.22);
    background:rgba(255, 255, 255, 0.1);
}

.hero-side{
    display:grid;
    gap:var(--space-4);
}

.hero-metrics{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:var(--space-3);
}

.hero-stat{
    padding:1rem;
    background:rgba(255, 255, 255, 0.9);
}

.hero-stat strong{
    display:block;
    font-size:1.5rem;
    font-family:var(--font-display);
    color:var(--color-secondary);
}

.hero-stat span{
    display:block;
    color:var(--color-text-soft);
    font-size:0.88rem;
}

.hero-card{
    padding:1.15rem;
    display:grid;
    gap:var(--space-3);
}

.hero-card-header{
    display:flex;
    justify-content:space-between;
    gap:var(--space-3);
    align-items:flex-start;
}

.hero-card h2{
    margin:0;
    font-size:1.12rem;
    font-family:var(--font-display);
    color:var(--color-secondary);
}

.hero-card p{
    margin:0;
    color:var(--color-text-soft);
}

.hero-contact-list{
    display:grid;
    gap:var(--space-2);
}

.hero-contact-item{
    display:grid;
    gap:0.1rem;
    padding:0.8rem 0.9rem;
    border-radius:var(--radius-sm);
    background:rgba(var(--color-secondary-rgb), 0.04);
}

.hero-contact-item span{
    font-size:0.78rem;
    font-weight:700;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:var(--color-text-soft);
}

.hero-contact-item strong{
    color:var(--color-secondary);
    word-break:break-word;
}

.page-section{
    padding:var(--space-5) 0;
}

.section-shell{
    padding:clamp(1.25rem, 3vw, 1.6rem);
}

.section-lead-grid{
    display:grid;
    gap:var(--space-5);
}

.carousel-shell{
    display:grid;
    gap:var(--space-4);
}

.carousel{
    position:relative;
    overflow:hidden;
    min-height:20rem;
    border-radius:var(--radius-lg);
    border:1px solid rgba(var(--color-secondary-rgb), 0.12);
    background:#d9e6e1;
}

.carousel-track{
    position:relative;
    min-height:20rem;
}

.carousel-slide{
    position:absolute;
    inset:0;
    opacity:0;
    visibility:hidden;
    transition:opacity 280ms ease, visibility 280ms ease;
}

.carousel-slide.is-active{
    opacity:1;
    visibility:visible;
}

.carousel-slide img{
    width:100%;
    height:20rem;
    object-fit:cover;
}

.carousel-slide::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(15, 23, 42, 0.02), rgba(15, 23, 42, 0.62));
}

.carousel-caption{
    position:absolute;
    inset:auto 1rem 1rem 1rem;
    z-index:1;
    display:grid;
    gap:var(--space-2);
    max-width:min(34rem, calc(100% - 2rem));
    padding:1rem 1rem 1.05rem;
    border-radius:var(--radius-md);
    background:rgba(12, 22, 22, 0.62);
    color:#fff;
    backdrop-filter:blur(10px);
}

.carousel-caption h3{
    margin:0;
    font-size:1.15rem;
    font-family:var(--font-display);
}

.carousel-caption p{
    margin:0;
    color:rgba(255, 255, 255, 0.84);
}

.carousel-control{
    position:absolute;
    top:50%;
    z-index:2;
    display:grid;
    place-items:center;
    width:2.4rem;
    height:2.4rem;
    border:none;
    border-radius:50%;
    background:rgba(255, 255, 255, 0.76);
    color:var(--color-secondary);
    box-shadow:var(--shadow-xs);
    transform:translateY(-50%);
}

.carousel-control:hover{
    background:#fff;
}

.carousel-control.prev{left:0.8rem}
.carousel-control.next{right:0.8rem}

.carousel-dots{
    position:absolute;
    left:1rem;
    bottom:1rem;
    z-index:2;
    display:flex;
    gap:0.45rem;
}

.carousel-dots button{
    width:0.72rem;
    height:0.72rem;
    padding:0;
    border:none;
    border-radius:50%;
    background:rgba(255, 255, 255, 0.38);
    transition:transform var(--transition-fast), background-color var(--transition-fast);
}

.carousel-dots button.is-active{
    background:var(--color-accent);
    transform:scale(1.08);
}

.story-card,
.contact-banner,
.content-card,
.document-category,
.contact-info-card{
    padding:clamp(1.25rem, 3vw, 1.6rem);
}

.story-card{
    display:grid;
    gap:var(--space-4);
}

.story-split{
    display:grid;
    gap:var(--space-4);
}

.quick-links-grid{
    display:grid;
    gap:var(--space-4);
}

.quick-link-card{
    display:grid;
    gap:var(--space-3);
    min-height:12rem;
    padding:1.2rem;
    border:1px solid rgba(var(--color-secondary-rgb), 0.12);
    border-radius:var(--radius-lg);
    background:linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(var(--color-primary-rgb), 0.035));
    box-shadow:var(--shadow-sm);
    transition:transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.quick-link-card:hover{
    transform:translateY(-2px);
    border-color:rgba(var(--color-primary-rgb), 0.28);
    box-shadow:var(--shadow-md);
}

.quick-link-meta{
    display:flex;
    justify-content:space-between;
    gap:var(--space-3);
    align-items:flex-start;
}

.quick-link-card strong{
    font-size:1.15rem;
    color:var(--color-secondary);
}

.quick-link-card span{
    color:var(--color-text-soft);
}

.quick-link-arrow{
    color:var(--color-primary);
    font-weight:700;
}

.contact-banner{
    display:grid;
    gap:var(--space-5);
    background:
        radial-gradient(circle at top right, rgba(var(--color-accent-rgb), 0.16), transparent 14rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(var(--color-secondary-rgb), 0.05));
}

.contact-card-grid{
    display:grid;
    gap:var(--space-3);
}

.contact-detail-card{
    padding:1rem;
    border-radius:var(--radius-md);
    background:rgba(255, 255, 255, 0.82);
    border:1px solid rgba(var(--color-secondary-rgb), 0.1);
}

.contact-detail-card span{
    display:block;
    margin-bottom:0.25rem;
    font-size:0.8rem;
    font-weight:700;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:var(--color-text-soft);
}

.contact-detail-card strong,
.contact-detail-card p{
    margin:0;
}

.page-hero{
    padding:clamp(2rem, 5vw, 3.5rem) 0 var(--space-4);
}

.page-hero-shell{
    display:grid;
    gap:var(--space-4);
    padding:clamp(1.4rem, 3vw, 2rem);
}

.breadcrumbs{
    display:flex;
    flex-wrap:wrap;
    gap:0.45rem;
    margin:0;
    font-size:0.88rem;
    color:var(--color-text-soft);
}

.breadcrumbs a{
    color:var(--color-secondary);
}

.page-hero-copy{
    display:grid;
    gap:var(--space-4);
}

.page-hero-copy > p:last-child{
    margin:0;
    max-width:70ch;
    color:var(--color-text-soft);
}

.page-intro-card{
    padding:1rem 1.1rem;
    border-radius:var(--radius-md);
    background:rgba(var(--color-secondary-rgb), 0.05);
    border:1px solid rgba(var(--color-secondary-rgb), 0.08);
}

.page-banner-wrap{
    overflow:hidden;
    border-radius:var(--radius-lg);
    border:1px solid rgba(var(--color-secondary-rgb), 0.12);
    box-shadow:var(--shadow-sm);
}

.page-banner{
    width:100%;
    height:14rem;
    object-fit:cover;
}

.anchor-nav{
    display:flex;
    gap:var(--space-3);
    overflow:auto;
    padding-bottom:var(--space-2);
}

.anchor-nav a{
    white-space:nowrap;
    min-height:2.7rem;
    padding:0.75rem 1rem;
    border-radius:var(--radius-pill);
    background:rgba(var(--color-primary-rgb), 0.08);
    color:var(--color-primary);
    font-weight:600;
}

.content-stack{
    display:grid;
    gap:var(--space-4);
}

.content-card{
    display:grid;
    gap:var(--space-4);
}

.content-card-content{
    display:grid;
    gap:var(--space-3);
}

.content-card-header{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:var(--space-3);
    align-items:flex-start;
}

.content-card h2,
.document-category h2{
    margin:0;
    font-size:1.45rem;
    font-family:var(--font-display);
    color:var(--color-secondary);
}

.content-card img{
    width:100%;
    height:100%;
    min-height:14rem;
    object-fit:cover;
    border-radius:var(--radius-md);
}

.page-related-grid{
    display:grid;
    gap:var(--space-4);
}

.document-grid{
    display:grid;
    gap:var(--space-4);
}

.document-category{
    display:grid;
    gap:var(--space-4);
}

.document-category-head{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:var(--space-3);
    align-items:flex-start;
}

.document-download{
    display:grid;
    gap:var(--space-4);
    padding:1rem;
    border-radius:var(--radius-md);
    background:rgba(var(--color-primary-rgb), 0.06);
}

.document-download p{
    margin:0;
    color:var(--color-text-soft);
}

.document-file-link{
    display:inline-flex;
    align-items:center;
    gap:0.5rem;
    color:var(--color-primary);
    font-weight:700;
}

.contact-layout{
    display:grid;
    gap:var(--space-5);
}

.contact-info-grid{
    display:grid;
    gap:var(--space-4);
}

.contact-info-card{
    display:grid;
    gap:var(--space-3);
}

.contact-topic-list{
    display:flex;
    flex-wrap:wrap;
    gap:var(--space-2);
}

.contact-form-card{
    display:grid;
    gap:var(--space-4);
    padding:clamp(1.25rem, 3vw, 1.8rem);
}

.contact-form-card header{
    display:grid;
    gap:var(--space-2);
}

.contact-form-card header h2{
    margin:0;
    font-family:var(--font-display);
    font-size:1.55rem;
}

.contact-form-card header p{
    margin:0;
    color:var(--color-text-soft);
}

.contact-form-card .button{
    width:100%;
}

.site-footer{
    position:relative;
    padding:var(--space-8) 0 var(--space-7);
    color:#fff;
    background:
        radial-gradient(circle at top right, rgba(var(--color-accent-rgb), 0.18), transparent 18rem),
        linear-gradient(180deg, var(--color-secondary) 0%, var(--color-secondary-strong) 100%);
}

.site-footer::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(255,255,255,0.02), transparent 35%);
    pointer-events:none;
}

.footer-grid{
    position:relative;
    display:grid;
    gap:var(--space-6);
}

.footer-brand{
    display:grid;
    gap:var(--space-4);
}

.footer-brand-top{
    display:flex;
    gap:var(--space-4);
    align-items:flex-start;
}

.footer-brand-top img{
    width:4rem;
    height:4rem;
    object-fit:contain;
    border-radius:1rem;
    background:rgba(255,255,255,0.08);
    padding:0.5rem;
}

.footer-brand h2,
.site-footer h3{
    margin:0 0 0.55rem;
    font-family:var(--font-display);
}

.footer-brand p,
.footer-note{
    margin:0;
    color:rgba(255, 255, 255, 0.78);
}

.footer-list{
    display:grid;
    gap:0.7rem;
    padding:0;
    margin:0;
    list-style:none;
}

.footer-list a:hover{
    color:#fff;
}

.footer-contact-list li{
    color:rgba(255, 255, 255, 0.82);
}

.simple-state{
    display:grid;
    gap:var(--space-4);
    justify-items:center;
    padding:5rem 0 6rem;
    text-align:center;
}

@media (min-width: 760px){
    .site-utilitybar{
        display:block;
    }

    .header-inner{
        gap:var(--space-5);
        min-height:5.35rem;
    }

    .brand-copy small{
        display:block;
    }

    .main-nav-desktop{
        display:flex;
        align-items:center;
        gap:var(--space-1);
        flex:1 1 auto;
        flex-wrap:nowrap;
        min-width:0;
        max-width:min(42rem, calc(100vw - 34rem));
        overflow-x:auto;
        scrollbar-width:none;
        -ms-overflow-style:none;
    }

    .main-nav-desktop::-webkit-scrollbar{
        display:none;
    }

    .main-nav{
        position:absolute;
        top:calc(100% + 0.75rem);
        right:0;
        left:auto;
        width:min(22rem, calc(100vw - 1.5rem));
        max-height:min(70vh, 38rem);
        overflow:auto;
        border-radius:var(--radius-lg);
    }

    .nav-backdrop{
        display:none;
    }

    .header-cta{
        display:inline-flex;
    }

    .hero-layout,
    .page-hero-shell,
    .contact-layout,
    .contact-banner{
        grid-template-columns:minmax(0, 1.35fr) minmax(16rem, 0.95fr);
    }

    .story-split{
        grid-template-columns:minmax(0, 0.85fr) minmax(0, 1.15fr);
        align-items:start;
    }

    .hero-actions > *{
        width:auto;
    }

    .quick-links-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .content-card{
        grid-template-columns:minmax(0, 1.1fr) minmax(16rem, 0.9fr);
        align-items:center;
    }

    .content-card.is-reversed{
        grid-template-columns:minmax(16rem, 0.9fr) minmax(0, 1.1fr);
    }

    .content-card.is-reversed .content-card-content{
        order:2;
    }

    .content-card.is-reversed .content-card-media{
        order:1;
    }

    .document-download{
        grid-template-columns:minmax(0, 1fr) auto;
        align-items:center;
    }

    .contact-card-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .contact-form-card .button{
        width:auto;
    }

    .footer-grid{
        grid-template-columns:minmax(0, 1.2fr) minmax(12rem, 0.7fr) minmax(14rem, 0.8fr);
    }
}

@media (max-width: 759px){
    .public-body.nav-open{
        overflow:hidden;
    }
}

@media (min-width: 1024px){
    .hero-layout{
        grid-template-columns:minmax(0, 1.4fr) minmax(22rem, 0.9fr);
        align-items:stretch;
    }

    .quick-links-grid,
    .page-related-grid{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .page-banner{
        height:18rem;
    }
}
