:root {
    --forest:#1b2a4e;
    --forest-2:#24376a;
    --emerald:#2f4a9a;
    --emerald-d:#233a7d;
    --emerald-l:#e6ebf8;
    --mint:#f3f5fb;
    --gold:#f2a900;
    --gold-d:#a86d00;
    --gold-l:#fff1cc;
    --gold-soft:#ffd97a;
    --terra:#d9573b;
    --terra-l:#fbe6e0;
    --ink:#141c33;
    --text:#3a4562;
    --muted:#66708c;
    --line:#e6e3da;
    --ivory:#fffaf0;
    --white:#ffffff;
    --r:18px;
    --r-sm:12px;
    --shadow:0 20px 44px rgba(13,21,45,.11);
    --shadow-sm:0 6px 18px rgba(13,21,45,.07);
    --ease:cubic-bezier(.2,.7,.2,1);
    --font-head:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
    --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:96px;
}
body {
    overflow-x:clip;
    margin:0;
    font-family:var(--font-body);
    color:var(--text);
    background:#ffffff;
    line-height:1.7;
    font-size:16px;
    -webkit-font-smoothing:antialiased;
    animation:pageIn .7s ease both;
}
img {
    max-width:100%;
    display:block;
}
a {
    color:var(--emerald);
    text-decoration:none;
    transition:color .2s;
}
a:hover {
    color:var(--gold-d);
}
h1,h2,h3,h4 {
    font-family:var(--font-head);
    color:var(--forest);
    line-height:1.22;
    margin:0 0 .5em;
    font-weight:700;
    letter-spacing:-.015em;
}
h1 {
    font-size:clamp(2.1rem,4.5vw,3.4rem);
    font-weight:700;
    letter-spacing:-.025em;
    line-height:1.14;
}
h2 {
    font-size:clamp(1.6rem,2.9vw,2.3rem);
}
h3 {
    font-size:1.14rem;
    font-weight:600;
}
p {
    margin:0 0 1em;
}
ul {
    padding-left:1.2em;
}
.container {
    width:min(1200px,92%);
    margin-inline:auto;
}
.section {
    padding:92px 0;
}
.section--alt {
    background:var(--ivory);
}
.center {
    text-align:center;
}
.muted {
    color:var(--muted);
}
.ic {
    flex:none;
}
/* Section headings */ .eyebrow {
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:var(--font-head);
    font-weight:600;
    font-size:.76rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--emerald);
    margin-bottom:12px;
}
.eyebrow::before {
    content:"";
    width:26px;
    height:2px;
    border-radius:2px;
    background:var(--gold);
    transition:width .9s .15s var(--ease);
}
.js .eyebrow::before {
    width:0;
}
.js .eyebrow.in::before {
    width:26px;
}
.sec-title {
    margin-bottom:42px;
}
.sec-title h2 {
    margin:0 0 10px;
}
.sec-title p {
    margin:0;
    color:var(--muted);
    max-width:640px;
}
.sec-title--center {
    text-align:center;
}
.sec-title--center p {
    margin-inline:auto;
}
.sec-title--center .eyebrow::after {
    content:"";
    width:26px;
    height:2px;
    border-radius:2px;
    background:var(--gold);
    transition:width .9s .15s var(--ease);
}
.js .sec-title--center .eyebrow::after {
    width:0;
}
.js .sec-title--center .eyebrow.in::after {
    width:26px;
}
/* Buttons */ .btn {
    position:relative;
    overflow:hidden;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:13px 28px;
    font-family:var(--font-head);
    font-weight:600;
    font-size:.94rem;
    border:1.5px solid transparent;
    border-radius:99px;
    cursor:pointer;
    line-height:1.2;
    transition:transform .25s var(--ease),box-shadow .25s,background .25s,color .25s,border-color .25s;
}
.btn:hover {
    transform:translateY(-3px);
}
.btn:active {
    transform:translateY(-1px);
}
.btn::before {
    content:"";
    position:absolute;
    top:0;
    left:-120%;
    width:55%;
    height:100%;
    background:none;
    transform:skewX(-20deg);
    transition:left .7s var(--ease);
    pointer-events:none;
}
.btn:hover::before {
    left:150%;
}
.btn .ic {
    transition:transform .25s var(--ease);
}
.btn:hover .ic {
    transform:translateX(4px);
}
.btn--primary {
    background:var(--emerald);
    color:#ffffff;
    box-shadow:0 10px 24px rgba(26,49,108,.28);
}
.btn--primary:hover {
    background:var(--emerald-d);
    color:#ffffff;
    box-shadow:0 14px 30px rgba(26,49,108,.35);
}
.btn--gold {
    background:var(--gold);
    color:var(--forest);
    box-shadow:0 10px 24px rgba(242,169,0,.34);
}
.btn--gold:hover {
    background:#d6b25c;
    color:var(--forest);
    box-shadow:0 14px 30px rgba(242,169,0,.42);
}
.btn--outline {
    background:transparent;
    color:var(--emerald-d);
    border-color:var(--emerald);
}
.btn--outline:hover {
    background:var(--emerald);
    color:#ffffff;
}
.btn--light {
    background:rgba(255,255,255,.06);
    color:#ffffff;
    border-color:rgba(255,255,255,.55);
}
.btn--light:hover {
    background:#ffffff;
    color:var(--forest);
}
.btn-ripple {
    position:absolute;
    width:12px;
    height:12px;
    border-radius:50%;
    background:rgba(255,255,255,.55);
    transform:translate(-50%,-50%) scale(0);
    animation:ripple .65s ease-out forwards;
    pointer-events:none;
}
/* Top strip */ .topstrip {
    background:var(--forest);
    color:#bec3d1;
    font-size:.84rem;
}
.topstrip a {
    color:#bec3d1;
}
.topstrip a:hover {
    color:#ffffff;
}
.topstrip__inner {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    padding:8px 0;
    flex-wrap:wrap;
}
.topstrip__group {
    display:flex;
    gap:22px;
    flex-wrap:wrap;
    align-items:center;
}
.topstrip .ic {
    vertical-align:-3px;
    margin-right:6px;
    color:var(--gold);
}
/* Navbar */ .navbar {
    position:sticky;
    top:0;
    z-index:100;
    isolation:isolate;
    border-bottom:1px solid var(--line);
    transition:box-shadow .3s;
}
/* blur lives on a pseudo-element so the mobile menu (position:fixed) is positioned against the screen, not the header */ .navbar::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:rgba(251,249,244,.9);
    backdrop-filter:blur(14px) saturate(1.3);
    -webkit-backdrop-filter:blur(14px) saturate(1.3);
    transition:background .3s;
}
.navbar.scrolled {
    box-shadow:0 8px 28px rgba(13,21,45,.09);
}
.navbar.scrolled::before {
    background:rgba(255,255,255,.94);
}
.navbar__inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:10px 0;
    transition:padding .3s var(--ease);
}
.navbar.scrolled .navbar__inner {
    padding:5px 0;
}
.brand {
    display:block;
    flex:0 1 auto;
    min-width:0;
}
.brand img {
    height:52px;
    width:auto;
    max-width:100%;
    transition:height .3s var(--ease);
}
.navbar.scrolled .brand img {
    height:44px;
}
.main-nav>ul {
    list-style:none;
    display:flex;
    align-items:center;
    gap:2px;
    margin:0;
    padding:0;
}
.main-nav li {
    position:relative;
}
.main-nav>ul>li>a {
    position:relative;
    display:block;
    padding:10px 15px;
    font-family:var(--font-head);
    font-weight:500;
    font-size:.94rem;
    color:var(--forest);
    border-radius:99px;
    transition:color .25s;
}
.main-nav>ul>li:not(.nav-cta)>a::after {
    content:"";
    position:absolute;
    left:50%;
    bottom:3px;
    width:0;
    height:2px;
    border-radius:2px;
    background:var(--gold);
    transform:translateX(-50%);
    transition:width .35s var(--ease);
}
.main-nav>ul>li:not(.nav-cta):hover>a,.main-nav>ul>li.is-active>a {
    color:var(--emerald);
}
.main-nav>ul>li:not(.nav-cta):hover>a::after,.main-nav>ul>li.is-active>a::after {
    width:calc(100% - 30px);
}
.nav-cta {
    margin-left:10px;
}
.nav-cta>a {
    position:relative;
    overflow:hidden;
    background:var(--emerald);
    color:#ffffff!important;
    padding:10px 24px!important;
    box-shadow:0 8px 20px rgba(26,49,108,.28);
    transition:transform .25s var(--ease),background .25s,box-shadow .25s;
}
.nav-cta>a::before {
    content:"";
    position:absolute;
    top:0;
    left:-120%;
    width:55%;
    height:100%;
    background:none;
    transform:skewX(-20deg);
    transition:left .7s var(--ease);
}
.nav-cta>a:hover {
    background:var(--emerald-d);
    transform:translateY(-2px);
}
.nav-cta>a:hover::before {
    left:150%;
}
.nav-toggle {
    display:none;
    background:var(--emerald-l);
    border:0;
    border-radius:12px;
    cursor:pointer;
    padding:11px 12px;
}
.nav-toggle span {
    display:block;
    width:22px;
    height:2px;
    background:var(--forest);
    margin:4px 0;
    border-radius:2px;
    transition:.3s var(--ease);
}
.nav-toggle[aria-expanded=true] span:nth-child(1) {
    transform:translateY(6px) rotate(45deg);
}
.nav-toggle[aria-expanded=true] span:nth-child(2) {
    opacity:0;
    transform:scaleX(0);
}
.nav-toggle[aria-expanded=true] span:nth-child(3) {
    transform:translateY(-6px) rotate(-45deg);
}
/* Hero */ .hero {
    position:relative;
    overflow:hidden;
    isolation:isolate;
    color:#ffffff;
    padding:96px 0 170px;
    background:var(--forest);
}
.hero::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background-image:radial-gradient(rgba(255,255,255,.11) 1.4px,transparent 1.4px);
    background-size:32px 32px;
    -webkit-mask-image:radial-gradient(ellipse at 70% 30%,#000000 10%,transparent 72%);
    mask-image:radial-gradient(ellipse at 70% 30%,#000000 10%,transparent 72%);
}
.hero__orbs {
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    overflow:hidden;
}
.hero__orbs span {
    position:absolute;
    border-radius:50%;
    filter:blur(64px);
    will-change:transform;
}
.hero__orbs .o1 {
    width:520px;
    height:520px;
    background:#284591;
    opacity:.5;
    top:-190px;
    right:-90px;
    animation:drift1 19s ease-in-out infinite alternate;
}
.hero__orbs .o2 {
    width:400px;
    height:400px;
    background:var(--gold);
    opacity:.26;
    bottom:-170px;
    left:-90px;
    animation:drift2 23s ease-in-out infinite alternate;
}
.hero__orbs .o3 {
    width:280px;
    height:280px;
    background:#4665bb;
    opacity:.22;
    top:38%;
    left:44%;
    animation:drift3 27s ease-in-out infinite alternate;
}
.hero__grid {
    display:grid;
    grid-template-columns:1.2fr .9fr;
    gap:60px;
    align-items:center;
    position:relative;
    z-index:2;
}
.hero__badge {
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.22);
    backdrop-filter:blur(6px);
    padding:7px 18px;
    border-radius:99px;
    font-size:.84rem;
    font-weight:500;
    margin-bottom:22px;
    animation:riseIn .8s .1s var(--ease) both;
}
.hero__badge i {
    position:relative;
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--gold);
    display:block;
}
.hero__badge i::after {
    content:"";
    position:absolute;
    inset:-5px;
    border-radius:50%;
    border:1.5px solid var(--gold);
    animation:pulseRing 2s ease-out infinite;
}
.hero h1 {
    color:#ffffff;
    margin-bottom:20px;
    animation:riseIn .95s .2s var(--ease) both;
}
.hero h1 em {
    font-style:normal;
    background:var(--gold-soft);
    background-size:220% auto;
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    -webkit-text-fill-color:transparent;
    animation:shimmer 7s linear infinite;
}
.hero p.lead {
    font-size:1.1rem;
    color:#d0d6e2;
    max-width:580px;
    animation:riseIn .95s .34s var(--ease) both;
}
.hero__btns {
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    margin-top:30px;
    animation:riseIn .95s .48s var(--ease) both;
}
.hero__panel {
    position:relative;
    min-height:380px;
    animation:panelIn 1.1s .3s var(--ease) both;
}
.hero__panel::before {
    content:"";
    position:absolute;
    inset:-34px -26px;
    border-radius:50%;
    border:1px dashed rgba(242,169,0,.38);
    animation:spin 46s linear infinite;
    pointer-events:none;
}
.glass {
    background:rgba(255,255,255,.09);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.22);
    border-radius:24px;
    box-shadow:0 24px 56px rgba(0,0,0,.28);
}
.next-card {
    padding:30px;
    position:relative;
    z-index:2;
    transform-style:preserve-3d;
    transition:transform .25s ease-out,box-shadow .35s;
}
.next-card .tagline {
    display:inline-block;
    background:var(--gold);
    color:var(--forest);
    font-family:var(--font-head);
    font-weight:700;
    font-size:.7rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    padding:4px 13px;
    border-radius:99px;
    margin-bottom:16px;
}
.next-card h3 {
    color:#ffffff;
    font-size:1.4rem;
    margin-bottom:14px;
}
.next-card ul {
    list-style:none;
    padding:0;
    margin:0 0 22px;
    color:#d7dce7;
}
.next-card li {
    display:flex;
    gap:10px;
    align-items:center;
    margin-bottom:7px;
}
.next-card li .ic {
    color:var(--gold);
}
.hero__emblem {
    position:absolute;
    z-index:4;
    left:-22px;
    top:-34px;
    width:86px;
    height:86px;
    border-radius:50%;
    background:#ffffff;
    display:grid;
    place-items:center;
    box-shadow:var(--shadow);
    animation:floatChip 5.5s ease-in-out infinite;
}
.hero__emblem img {
    height:62px;
    width:auto;
}
.chip {
    position:absolute;
    z-index:3;
    display:flex;
    align-items:center;
    gap:10px;
    background:#ffffff;
    color:var(--forest);
    padding:12px 18px;
    border-radius:16px;
    font-family:var(--font-head);
    font-weight:600;
    font-size:.86rem;
    box-shadow:var(--shadow);
}
.chip .ic {
    color:var(--emerald);
}
.chip--1 {
    left:-30px;
    bottom:40px;
    animation:floatChip 4.8s ease-in-out infinite;
}
.chip--2 {
    right:-12px;
    top:-22px;
    animation:floatChip 5.6s .8s ease-in-out infinite;
}
.chip--2 .ic {
    color:var(--terra);
}
.hero__wave {
    position:absolute;
    bottom:-1px;
    left:0;
    right:0;
    height:80px;
    line-height:0;
    z-index:2;
    overflow:hidden;
}
.hero__wave svg {
    position:absolute;
    bottom:0;
    left:0;
    width:200%;
    height:80px;
}
.hero__wave .w1 {
    fill:#ffffff;
    animation:waveMove 22s linear infinite;
}
.hero__wave .w2 {
    fill:rgba(255,255,255,.4);
    height:70px;
    animation:waveMove 34s linear infinite reverse;
}
/* Stats */ .stats {
    margin-top:-112px;
    position:relative;
    z-index:5;
}
.stats__grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
}
.stat {
    position:relative;
    overflow:hidden;
    background:#ffffff;
    border-radius:var(--r);
    box-shadow:var(--shadow);
    padding:26px 22px;
    display:flex;
    gap:16px;
    align-items:center;
    border:1px solid var(--line);
    transition:transform .3s var(--ease),box-shadow .3s;
}
.stat:hover {
    transform:translateY(-6px);
    box-shadow:0 26px 52px rgba(13,21,45,.15);
}
.stat__ic {
    width:56px;
    height:56px;
    border-radius:16px;
    display:grid;
    place-items:center;
    background:var(--emerald-l);
    color:var(--emerald);
    flex:none;
    transition:transform .45s var(--ease);
}
.stat:hover .stat__ic {
    transform:rotate(-8deg) scale(1.1);
}
.stat:nth-child(2) .stat__ic {
    background:var(--gold-l);
    color:var(--gold-d);
}
.stat:nth-child(3) .stat__ic {
    background:var(--mint);
    color:var(--forest-2);
}
.stat:nth-child(4) .stat__ic {
    background:var(--terra-l);
    color:var(--terra);
}
.stat__num {
    font-family:var(--font-head);
    font-size:1.95rem;
    font-weight:700;
    color:var(--forest);
    line-height:1.1;
}
.stat__label {
    color:var(--muted);
    font-size:.88rem;
    font-weight:500;
}
/* Layout helpers */ .cols {
    display:grid;
    grid-template-columns:1.6fr 1fr;
    gap:44px;
    align-items:start;
}
.split {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
}
.grid {
    display:grid;
    gap:24px;
}
.grid--2 {
    grid-template-columns:repeat(2,1fr);
}
.grid--3 {
    grid-template-columns:repeat(3,1fr);
}
.grid--4 {
    grid-template-columns:repeat(4,1fr);
}
/* Cards (shared hover: gold top line + cursor spotlight) */ .card,.event,.news-card,.plan,.person {
    position:relative;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:var(--r);
    transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;
}
.card::before,.news-card::before,.plan::after,.person::before {
    content:"";
    position:absolute;
    left:22px;
    right:22px;
    top:-1px;
    height:3px;
    border-radius:0 0 4px 4px;
    background:var(--gold);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .5s var(--ease);
    z-index:2;
}
.card:hover::before,.news-card:hover::before,.plan:hover::after,.person:hover::before {
    transform:scaleX(1);
}
.card::after,.event::after,.news-card::after,.person::after,.stat::after {
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:none;
    opacity:0;
    transition:opacity .35s;
    pointer-events:none;
}
.card:hover::after,.event:hover::after,.news-card:hover::after,.person:hover::after,.stat:hover::after {
    opacity:1;
}
.card {
    padding:32px;
    height:100%;
}
.card:hover,.event:hover,.news-card:hover,.plan:hover,.person:hover {
    transform:translateY(-8px);
    box-shadow:var(--shadow);
    border-color:rgba(242,169,0,.4);
}
.card__icon {
    width:60px;
    height:60px;
    border-radius:18px;
    display:grid;
    place-items:center;
    background:var(--emerald-l);
    color:var(--emerald);
    margin-bottom:20px;
    transition:transform .5s var(--ease),background .3s,color .3s;
}
.card:hover .card__icon {
    background:var(--emerald);
    color:#ffffff;
    transform:translateY(-4px) rotate(-8deg) scale(1.06);
}
.grid>.card:nth-child(3n+2) .card__icon {
    background:var(--gold-l);
    color:var(--gold-d);
}
.grid>.card:nth-child(3n+2):hover .card__icon {
    background:var(--gold);
    color:var(--forest);
}
.grid>.card:nth-child(3n) .card__icon {
    background:var(--terra-l);
    color:var(--terra);
}
.grid>.card:nth-child(3n):hover .card__icon {
    background:var(--terra);
    color:#ffffff;
}
.card p {
    color:var(--muted);
    margin:0 0 4px;
    font-size:.96rem;
}
.card h3 {
    margin-bottom:8px;
}
.card .more {
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:14px;
    font-family:var(--font-head);
    font-weight:600;
    font-size:.9rem;
}
.card .more .ic {
    transition:transform .25s var(--ease);
}
.card .more:hover .ic {
    transform:translateX(5px);
}
/* Mission block */ .mission {
    background:var(--emerald);
    color:#ffffff;
    border-radius:28px;
    padding:46px;
    position:relative;
    overflow:hidden;
    box-shadow:var(--shadow);
}
.mission::before {
    content:"";
    position:absolute;
    right:-90px;
    bottom:-90px;
    width:300px;
    height:300px;
    border-radius:50%;
    border:1px dashed rgba(236,217,160,.5);
    animation:spin 50s linear infinite;
}
.mission::after {
    content:"";
    position:absolute;
    right:-40px;
    bottom:-40px;
    width:200px;
    height:200px;
    border-radius:50%;
    background:rgba(255,255,255,.07);
}
.mission h3 {
    color:#ffffff;
    font-size:1.55rem;
}
.mission p {
    color:#dde2ed;
    position:relative;
    z-index:1;
}
.mission .eyebrow::before {
    background:var(--gold);
}
.objlist {
    list-style:none;
    padding:0;
    margin:0;
}
.objlist li {
    display:flex;
    gap:16px;
    align-items:flex-start;
    padding:18px 20px;
    margin-bottom:14px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:16px;
    transition:transform .3s var(--ease),box-shadow .3s,border-color .3s;
}
.objlist li:hover {
    box-shadow:var(--shadow-sm);
    transform:translateX(8px);
    border-color:rgba(242,169,0,.45);
}
.objlist .ic {
    background:var(--emerald-l);
    color:var(--emerald);
    border-radius:13px;
    padding:10px;
    width:44px;
    height:44px;
    flex:none;
    transition:.3s;
}
.objlist li:hover .ic {
    background:var(--emerald);
    color:#ffffff;
}
.objlist strong {
    display:block;
    font-family:var(--font-head);
    color:var(--forest);
    font-weight:600;
}
.objlist span {
    color:var(--muted);
    font-size:.93rem;
}
/* Districts marquee */ .marquee {
    overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000000 9%,#000000 91%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000000 9%,#000000 91%,transparent);
}
.marquee__row {
    display:flex;
    width:max-content;
    margin-bottom:14px;
    animation:marquee 46s linear infinite;
}
.marquee__row--rev {
    animation-direction:reverse;
    animation-duration:54s;
}
.marquee:hover .marquee__row {
    animation-play-state:paused;
}
.marquee span {
    margin-right:14px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:99px;
    padding:10px 24px;
    font-family:var(--font-head);
    font-weight:500;
    font-size:.92rem;
    color:var(--forest);
    white-space:nowrap;
    transition:background .25s,color .25s,border-color .25s,transform .25s;
}
.marquee span:hover {
    background:var(--emerald);
    color:#ffffff;
    border-color:var(--emerald);
    transform:translateY(-3px);
}
/* Events */ .event {
    display:flex;
    gap:20px;
    padding:24px;
    align-items:flex-start;
    height:100%;
    overflow:hidden;
}
.event__date {
    flex:0 0 78px;
    text-align:center;
    background:var(--forest-2);
    color:#ffffff;
    border-radius:16px;
    padding:13px 6px;
    font-family:var(--font-head);
    transition:transform .4s var(--ease);
}
.event:hover .event__date {
    transform:scale(1.07) rotate(-3deg);
}
.event__date b {
    display:block;
    font-size:1.9rem;
    line-height:1;
}
.event__date span {
    font-size:.76rem;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:var(--gold);
}
.event h3 {
    margin:7px 0 6px;
    font-size:1.1rem;
}
.event p {
    color:var(--muted);
    margin:0 0 10px;
    font-size:.94rem;
}
.event small {
    display:flex;
    align-items:center;
    gap:6px;
    color:var(--muted);
}
.tag {
    display:inline-block;
    font-family:var(--font-head);
    font-size:.68rem;
    font-weight:600;
    padding:3px 12px;
    border-radius:99px;
    background:var(--emerald-l);
    color:var(--emerald-d);
    text-transform:uppercase;
    letter-spacing:.08em;
}
.filters {
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:28px;
}
.filters .btn {
    padding:9px 22px;
    font-size:.88rem;
}
/* Table (events page) */ .table-wrap {
    overflow-x:auto;
    border-radius:var(--r);
    border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
}
table.data {
    width:100%;
    border-collapse:collapse;
    background:#ffffff;
}
table.data th {
    background:var(--forest-2);
    color:#ffffff;
    text-align:left;
    padding:15px 18px;
    font-family:var(--font-head);
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.09em;
    font-weight:600;
}
table.data td {
    padding:17px 18px;
    border-bottom:1px solid var(--line);
    vertical-align:top;
    transition:background .25s;
}
table.data tr:last-child td {
    border-bottom:0;
}
table.data tr:hover td {
    background:var(--ivory);
}
table.data .date {
    white-space:nowrap;
    font-weight:700;
    color:var(--forest);
}
/* News */ .news-card {
    overflow:hidden;
    height:100%;
    display:flex;
    flex-direction:column;
}
.news-card__top {
    padding:26px 26px 0;
    display:flex;
    align-items:center;
    gap:14px;
}
.news-card__date {
    font-family:var(--font-head);
    font-weight:600;
    font-size:.8rem;
    color:var(--gold-d);
    background:var(--gold-l);
    padding:5px 15px;
    border-radius:99px;
}
.news-card__body {
    padding:16px 26px 28px;
    flex:1;
}
.news-card p {
    color:var(--muted);
    margin:0;
    font-size:.95rem;
}
/* Gallery */ .gallery {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.gallery__item {
    position:relative;
    aspect-ratio:4/3;
    border-radius:16px;
    overflow:hidden;
    cursor:pointer;
    background:#dde1ea;
    transition:transform .4s var(--ease),box-shadow .4s;
}
.gallery__item:nth-child(3n+2) {
    background:#f6ecd0;
}
.gallery__item:nth-child(3n) {
    background:#f2e0d9;
}
.gallery__item:hover {
    transform:translateY(-6px);
    box-shadow:var(--shadow);
}
.gallery__item img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .8s var(--ease);
}
.gallery__item:hover img {
    transform:scale(1.1);
}
.gallery__item span {
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    background:rgba(13,21,45,.86);
    color:#ffffff;
    font-size:.86rem;
    font-weight:500;
    padding:34px 14px 12px;
    transform:translateY(60%);
    opacity:0;
    transition:transform .4s var(--ease),opacity .4s;
}
.gallery__item:hover span {
    transform:none;
    opacity:1;
}
.gallery__item .ph {
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    color:rgba(13,21,45,.38);
    font-family:var(--font-head);
    font-weight:600;
    transition:transform .5s var(--ease);
}
.gallery__item:hover .ph {
    transform:scale(1.15);
}
.lightbox {
    position:fixed;
    inset:0;
    background:rgba(8,12,24,.93);
    z-index:300;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
}
.lightbox.open {
    display:flex;
    animation:fadeIn .3s ease both;
}
.lightbox__box {
    max-width:900px;
    width:100%;
    text-align:center;
    color:#ffffff;
    animation:zoomIn .4s var(--ease) both;
}
.lightbox__box img {
    max-height:75vh;
    margin:auto;
    border-radius:16px;
}
.lightbox__ph {
    background:#dde1ea;
    color:#404c67;
    padding:120px 20px;
    font-family:var(--font-head);
    font-size:1.3rem;
    border-radius:18px;
}
.lightbox__close {
    position:absolute;
    top:14px;
    right:24px;
    background:none;
    border:0;
    color:#ffffff;
    font-size:2.4rem;
    cursor:pointer;
    transition:transform .3s var(--ease);
}
.lightbox__close:hover {
    transform:rotate(90deg);
}
/* Inner page title band */ .page-title {
    position:relative;
    overflow:hidden;
    isolation:isolate;
    color:#ffffff;
    padding:70px 0 78px;
    background:var(--forest);
}
.page-title::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:3px;
    background:var(--gold);
    background-size:50% 100%;
    background-repeat:no-repeat;
    animation:lineSlide 5s ease-in-out infinite alternate;
}
.page-title .hero__orbs .o1 {
    width:380px;
    height:380px;
    top:-170px;
    right:-60px;
}
.page-title .hero__orbs .o2 {
    width:280px;
    height:280px;
    bottom:-150px;
    left:-50px;
}
.page-title .container {
    position:relative;
    z-index:1;
}
.page-title h1 {
    color:#ffffff;
    margin:8px 0 8px;
    font-size:clamp(1.9rem,3.6vw,2.7rem);
    animation:riseIn .8s .1s var(--ease) both;
}
.page-title p {
    margin:0;
    color:#cacfdb;
    animation:riseIn .8s .22s var(--ease) both;
}
.crumbs {
    font-size:.88rem;
    color:#abb2c3;
    animation:riseIn .7s var(--ease) both;
}
.crumbs a {
    color:var(--gold-soft);
}
/* About page section tabs */ .subnav {
    position:sticky;
    top:73px;
    z-index:60;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
}
.subnav__inner {
    display:flex;
    gap:8px;
    justify-content:center;
    padding:12px 0;
    flex-wrap:wrap;
}
.subnav a {
    padding:8px 20px;
    border-radius:99px;
    font-family:var(--font-head);
    font-weight:500;
    font-size:.88rem;
    color:var(--forest);
    background:var(--mint);
    border:1px solid transparent;
    transition:.3s var(--ease);
}
.subnav a:hover {
    border-color:var(--gold);
    color:var(--emerald-d);
}
.subnav a.is-active {
    background:var(--emerald);
    color:#ffffff;
    box-shadow:0 6px 16px rgba(26,49,108,.25);
}
.anchor {
    scroll-margin-top:140px;
}
/* CTA / callout */ .callout {
    background:var(--emerald);
    color:#ffffff;
    border-radius:28px;
    padding:50px 52px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    flex-wrap:wrap;
    position:relative;
    overflow:hidden;
    box-shadow:var(--shadow);
}
.callout::before {
    content:"";
    position:absolute;
    left:-60px;
    top:-80px;
    width:240px;
    height:240px;
    border-radius:50%;
    border:1px dashed rgba(236,217,160,.5);
    animation:spin 40s linear infinite;
}
.callout::after {
    content:"";
    position:absolute;
    top:0;
    left:-60%;
    width:36%;
    height:100%;
    background:none;
    transform:skewX(-18deg);
    animation:sheenSweep 7s ease-in-out infinite;
}
.callout>* {
    position:relative;
    z-index:1;
}
.callout h3 {
    color:#ffffff;
    font-size:1.65rem;
    margin:0 0 6px;
}
.callout p {
    margin:0;
    color:#d9dfeb;
    max-width:560px;
}
.callout .btn--primary {
    background:var(--gold);
    color:var(--forest);
    box-shadow:0 10px 24px rgba(0,0,0,.2);
}
.callout .btn--primary:hover {
    background:#ffffff;
    color:var(--forest);
}
/* People */ .person {
    text-align:center;
    padding:28px 18px;
    height:100%;
    overflow:hidden;
}
.person__photo {
    width:116px;
    height:116px;
    margin:0 auto 16px;
    border-radius:50%;
    background:var(--emerald-l);
    border:4px solid #ffffff;
    box-shadow:0 0 0 2px var(--gold-soft),var(--shadow-sm);
    display:grid;
    place-items:center;
    color:var(--emerald-d);
    font-family:var(--font-head);
    font-weight:600;
    font-size:.8rem;
    overflow:hidden;
    transition:transform .5s var(--ease);
}
.person:hover .person__photo {
    transform:scale(1.06);
}
.person__photo img {
    width:100%;
    height:100%;
    object-fit:cover;
}
.person h3 {
    margin:0 0 2px;
    font-size:1.05rem;
}
.person small {
    color:var(--gold-d);
    font-family:var(--font-head);
    font-weight:600;
    font-size:.76rem;
    text-transform:uppercase;
    letter-spacing:.09em;
}
/* Side panel */ .panel {
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:var(--r);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
}
.panel__head {
    padding:16px 22px;
    background:var(--forest-2);
    color:#ffffff;
    font-family:var(--font-head);
    font-weight:600;
}
.panel ul.links {
    list-style:none;
    margin:0;
    padding:6px;
}
.panel ul.links a {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:13px 16px;
    border-radius:12px;
    font-weight:500;
    color:var(--forest);
    transition:background .25s,padding .3s var(--ease);
}
.panel ul.links a::after {
    content:"\2192";
    color:var(--gold-d);
    transition:transform .25s var(--ease);
}
.panel ul.links a:hover {
    background:var(--mint);
    color:var(--emerald-d);
    padding-left:22px;
}
.panel ul.links a:hover::after {
    transform:translateX(5px);
}
/* Forms */ .form-wrap {
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:38px;
    box-shadow:var(--shadow);
}
.form-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.field {
    margin-bottom:18px;
}
.field label {
    display:block;
    font-family:var(--font-head);
    font-weight:600;
    margin-bottom:7px;
    color:var(--forest);
    font-size:.88rem;
}
.field input,.field select,.field textarea {
    width:100%;
    padding:13px 16px;
    border:1.5px solid var(--line);
    border-radius:13px;
    font:inherit;
    background:#fdfcf9;
    transition:border-color .25s,box-shadow .25s,background .25s,transform .25s;
}
.field input:focus,.field select:focus,.field textarea:focus {
    outline:0;
    border-color:var(--emerald);
    background:#ffffff;
    box-shadow:0 0 0 4px rgba(26,49,108,.13);
    transform:translateY(-1px);
}
.field textarea {
    min-height:140px;
    resize:vertical;
}
.hp {
    position:absolute;
    left:-9999px;
    opacity:0;
}
.alert {
    padding:14px 18px;
    border-radius:13px;
    margin-bottom:22px;
    font-weight:500;
    animation:riseIn .5s var(--ease) both;
}
.alert--ok {
    background:#e6eaf3;
    color:#1d325c;
    border:1px solid #b9c4dc;
}
.alert--err {
    background:#fbe9e5;
    color:#9c2c1b;
    border:1px solid #f0bfb4;
}
.alert ul {
    margin:6px 0 0;
}
.info-box {
    position:relative;
    overflow:hidden;
    background:var(--forest-2);
    color:#ffffff;
    border-radius:22px;
    padding:36px;
    height:100%;
}
.info-box::after {
    content:"";
    position:absolute;
    right:-70px;
    bottom:-70px;
    width:220px;
    height:220px;
    border-radius:50%;
    border:1px dashed rgba(236,217,160,.45);
    animation:spin 45s linear infinite;
}
.info-box h3 {
    color:#ffffff;
    font-size:1.4rem;
}
.info-box p {
    color:#bec4d3;
}
.info-box dl {
    margin:0;
    position:relative;
    z-index:1;
}
.info-box dt {
    font-family:var(--font-head);
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--gold);
    margin-top:20px;
    font-weight:600;
}
.info-box dd {
    margin:3px 0 0;
}
.info-box a {
    color:#ffffff;
    text-decoration:underline;
    text-underline-offset:3px;
}
/* Plans */ .plan {
    padding:36px 30px;
    height:100%;
}
.plan--hot {
    border:2px solid var(--gold);
    box-shadow:var(--shadow);
}
.plan--hot::before {
    content:"Most Popular";
    position:absolute;
    top:-13px;
    left:28px;
    background:var(--gold);
    color:var(--forest);
    font-family:var(--font-head);
    font-weight:700;
    font-size:.7rem;
    padding:4px 15px;
    border-radius:99px;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.plan__price {
    font-family:var(--font-head);
    font-size:2.2rem;
    font-weight:700;
    color:var(--forest);
}
.plan__price small {
    font-size:.9rem;
    color:var(--muted);
    font-weight:500;
}
.plan ul {
    list-style:none;
    padding:0;
    margin:18px 0 0;
}
.plan li {
    padding:10px 0 10px 30px;
    position:relative;
    border-bottom:1px dashed var(--line);
}
.plan li::before {
    content:"";
    position:absolute;
    left:0;
    top:14px;
    width:19px;
    height:19px;
    border-radius:50%;
    background:var(--emerald) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;
}
/* FAQ */ .faq details {
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:4px 24px;
    margin-bottom:12px;
    transition:box-shadow .3s,border-color .3s;
}
.faq details[open] {
    box-shadow:var(--shadow-sm);
    border-color:rgba(242,169,0,.5);
}
.faq summary {
    padding:17px 0;
    font-family:var(--font-head);
    font-weight:600;
    color:var(--forest);
    cursor:pointer;
    list-style:none;
    display:flex;
    justify-content:space-between;
    gap:12px;
}
.faq summary::-webkit-details-marker {
    display:none;
}
.faq summary::after {
    content:"+";
    font-size:1.5rem;
    color:var(--gold-d);
    line-height:1;
    transition:transform .35s var(--ease);
}
.faq details[open] summary::after {
    transform:rotate(45deg);
}
.faq details p {
    margin:0 0 16px;
    color:var(--muted);
    animation:riseIn .45s var(--ease) both;
}
.prose {
    max-width:820px;
}
.prose h2 {
    margin-top:1.5em;
    font-size:1.5rem;
}
/* Footer */ .site-footer {
    background:var(--forest);
    color:#b5bac8;
    position:relative;
}
.site-footer::before {
    content:"";
    display:block;
    height:5px;
    background:var(--emerald);
    background-size:200% 100%;
    animation:barFlow 10s linear infinite;
}
.footer__grid {
    display:grid;
    grid-template-columns:1.6fr 1fr 1fr 1.3fr;
    gap:44px;
    padding:68px 0 42px;
}
.footer__logo {
    background:#ffffff;
    border-radius:16px;
    padding:12px 16px;
    display:inline-block;
    margin-bottom:20px;
    max-width:100%;
}
.footer__logo img {
    height:46px;
    width:auto;
    max-width:100%;
}
.site-footer h4 {
    color:#ffffff;
    font-size:1rem;
    margin-bottom:18px;
    position:relative;
    padding-bottom:11px;
}
.site-footer h4::after {
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:34px;
    height:3px;
    border-radius:3px;
    background:var(--gold);
    transition:width .4s var(--ease);
}
.site-footer div:hover>h4::after {
    width:56px;
}
.site-footer ul {
    list-style:none;
    padding:0;
    margin:0;
}
.site-footer li {
    margin-bottom:10px;
}
.site-footer a {
    color:#b5bac8;
    display:inline-block;
    transition:color .25s,transform .25s var(--ease);
}
.site-footer li a:hover {
    color:#ffffff;
    transform:translateX(5px);
}
.site-footer a:hover {
    color:#ffffff;
}
.site-footer .ci {
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin-bottom:10px;
}
.site-footer .ci .ic {
    color:var(--gold);
    margin-top:3px;
}
.socials {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:18px;
}
.socials a {
    padding:7px 15px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:99px;
    font-size:.84rem;
    font-family:var(--font-head);
    font-weight:500;
}
.socials a:hover {
    background:var(--gold);
    color:var(--forest);
    border-color:var(--gold);
    transform:translateY(-3px);
}
.footer__bottom {
    border-top:1px solid rgba(255,255,255,.1);
    padding:20px 0;
    font-size:.88rem;
}
.footer__bottom .container {
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:8px;
}
.to-top {
    position:fixed;
    right:22px;
    bottom:22px;
    width:48px;
    height:48px;
    border-radius:50%;
    border:0;
    background:var(--emerald);
    color:#ffffff;
    font-size:1.2rem;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(13,21,45,.3);
    opacity:0;
    visibility:hidden;
    transform:translateY(16px) scale(.8);
    transition:opacity .35s,visibility .35s,transform .4s var(--ease),background .25s;
    z-index:90;
}
.to-top.show {
    opacity:1;
    visibility:visible;
    transform:none;
}
.to-top:hover {
    background:var(--gold);
    color:var(--forest);
    transform:translateY(-4px);
}
/* Scroll progress bar */ body::before {
    content:"";
    position:fixed;
    z-index:9999;
    left:0;
    top:0;
    width:100%;
    height:3px;
    transform:scaleX(var(--page-progress,0));
    transform-origin:left;
    background:var(--gold);
    pointer-events:none;
}
/* Reveal on scroll (only when JS is running) */ .js .reveal {
    transition:opacity .8s var(--ease),transform .8s var(--ease);
}
.js .reveal:not(.in) {
    opacity:0;
    transform:translateY(30px);
}
.js .reveal--left:not(.in) {
    transform:translateX(-46px);
}
.js .reveal--right:not(.in) {
    transform:translateX(46px);
}
.js .reveal--zoom:not(.in) {
    transform:scale(.9) translateY(18px);
}
/* once a reveal has finished, restore snappy hover transitions */ .js .reveal.done {
    transition:transform .35s var(--ease),box-shadow .35s,border-color .35s,background .3s,color .3s;
}
/* Hero parallax (uses the individual translate property so it never fights the float animations) */ .hero__orbs span {
    transition:translate .9s var(--ease);
}
.hero__orbs .o1 {
    translate:calc(var(--hx,0)*-46px) calc(var(--hy,0)*-34px);
}
.hero__orbs .o2 {
    translate:calc(var(--hx,0)*52px) calc(var(--hy,0)*38px);
}
.hero__orbs .o3 {
    translate:calc(var(--hx,0)*-30px) calc(var(--hy,0)*30px);
}
.hero__emblem {
    translate:calc(var(--hx,0)*-16px) calc(var(--hy,0)*-12px);
    transition:translate .5s var(--ease);
}
.chip--1 {
    translate:calc(var(--hx,0)*22px) calc(var(--hy,0)*16px);
    transition:translate .5s var(--ease);
}
.chip--2 {
    translate:calc(var(--hx,0)*-22px) calc(var(--hy,0)*-16px);
    transition:translate .5s var(--ease);
}
/* Keyframes */ @keyframes pageIn {
    from {
        opacity:0;
    }
    to {
        opacity:1;
    }
}
@keyframes fadeIn {
    from {
        opacity:0;
    }
    to {
        opacity:1;
    }
}
@keyframes zoomIn {
    from {
        opacity:0;
        transform:scale(.92);
    }
    to {
        opacity:1;
        transform:none;
    }
}
@keyframes riseIn {
    from {
        opacity:0;
        transform:translateY(30px);
        filter:blur(6px);
    }
    to {
        opacity:1;
        transform:none;
        filter:blur(0);
    }
}
@keyframes panelIn {
    from {
        opacity:0;
        transform:translate(34px,22px) scale(.95);
    }
    to {
        opacity:1;
        transform:none;
    }
}
@keyframes floatChip {
    0%,100% {
        transform:translateY(0) rotate(0);
    }
    50% {
        transform:translateY(-10px) rotate(-1.2deg);
    }
}
@keyframes shimmer {
    to {
        background-position:220% center;
    }
}
@keyframes spin {
    to {
        transform:rotate(360deg);
    }
}
@keyframes pulseRing {
    0% {
        transform:scale(.6);
        opacity:.9;
    }
    100% {
        transform:scale(2.2);
        opacity:0;
    }
}
@keyframes drift1 {
    from {
        transform:translate(0,0) scale(1);
    }
    to {
        transform:translate(-90px,70px) scale(1.15);
    }
}
@keyframes drift2 {
    from {
        transform:translate(0,0) scale(1);
    }
    to {
        transform:translate(110px,-60px) scale(1.2);
    }
}
@keyframes drift3 {
    from {
        transform:translate(0,0);
    }
    to {
        transform:translate(-70px,-50px) scale(1.25);
    }
}
@keyframes waveMove {
    to {
        transform:translateX(-50%);
    }
}
@keyframes marquee {
    to {
        transform:translateX(-50%);
    }
}
@keyframes ripple {
    to {
        transform:translate(-50%,-50%) scale(20);
        opacity:0;
    }
}
@keyframes sheenSweep {
    0%,55% {
        left:-60%;
    }
    100% {
        left:130%;
    }
}
@keyframes lineSlide {
    from {
        background-position:0 0;
    }
    to {
        background-position:200% 0;
    }
}
@keyframes barFlow {
    to {
        background-position:200% 0;
    }
}
@keyframes navLink {
    from {
        opacity:0;
        transform:translateX(24px);
    }
    to {
        opacity:1;
        transform:none;
    }
}
/* Responsive */ @media (max-width:1050px) {
    .grid--4 {
        grid-template-columns:repeat(2,1fr);
    }
    .grid--3 {
        grid-template-columns:repeat(2,1fr);
    }
    .stats__grid {
        grid-template-columns:repeat(2,1fr);
    }
    .footer__grid {
        grid-template-columns:1fr 1fr;
    }
    .gallery {
        grid-template-columns:repeat(3,1fr);
    }
    .hero__grid,.cols,.split {
        grid-template-columns:1fr;
    }
    .hero__panel {
        max-width:520px;
        min-height:0;
        margin:14px 0 0 26px;
    }
    .chip--1 {
        left:-12px;
    }
    .chip--2 {
        right:-4px;
    }
    .js .reveal--left:not(.in),.js .reveal--right:not(.in) {
        transform:translateY(30px);
    }
}
@media (max-width:1250px) {
    .nav-toggle {
        display:block;
    }
    .main-nav {
        position:fixed;
        top:0;
        right:0;
        width:min(340px,88%);
        height:100vh;
        background:#ffffff;
        padding:88px 22px 30px;
        box-shadow:-14px 0 40px rgba(0,0,0,.2);
        display:none;
        overflow-y:auto;
        z-index:150;
    }
    .main-nav.open {
        display:block;
        animation:navPanel .35s var(--ease);
    }
    @keyframes navPanel {
        from {
            transform:translateX(60px);
            opacity:0;
        }
        to {
            transform:none;
            opacity:1;
        }
    }
    .main-nav.open>ul>li {
        animation:navLink .5s var(--ease) both;
    }
    .main-nav.open>ul>li:nth-child(1) {
        animation-delay:.08s;
    }
    .main-nav.open>ul>li:nth-child(2) {
        animation-delay:.14s;
    }
    .main-nav.open>ul>li:nth-child(3) {
        animation-delay:.2s;
    }
    .main-nav.open>ul>li:nth-child(4) {
        animation-delay:.26s;
    }
    .main-nav.open>ul>li:nth-child(5) {
        animation-delay:.32s;
    }
    .main-nav.open>ul>li:nth-child(6) {
        animation-delay:.38s;
    }
    .main-nav.open>ul>li:nth-child(7) {
        animation-delay:.44s;
    }
    .main-nav.open>ul>li:nth-child(8) {
        animation-delay:.5s;
    }
    .main-nav.open>ul>li:nth-child(9) {
        animation-delay:.56s;
    }
    .nav-toggle {
        position:relative;
        z-index:200;
    }
    .main-nav>ul {
        flex-direction:column;
        align-items:stretch;
        gap:2px;
    }
    .main-nav>ul>li>a {
        border-radius:12px;
        padding:13px 16px;
    }
    .main-nav>ul>li:not(.nav-cta)>a::after {
        display:none;
    }
    .main-nav>ul>li.is-active>a {
        background:var(--emerald-l);
    }
    .nav-cta {
        margin:12px 0 0;
    }
    .nav-cta>a {
        text-align:center;
    }
    .subnav {
        top:68px;
    }
}
@media (max-width:700px) {
    .section {
        padding:64px 0;
    }
    .hero {
        padding:58px 0 130px;
    }
    .topstrip__group:last-child {
        display:none;
    }
    .brand img {
        height:42px;
    }
    .navbar.scrolled .brand img {
        height:38px;
    }
    .grid--2,.grid--3,.grid--4,.form-row {
        grid-template-columns:1fr;
    }
    .stats__grid {
        grid-template-columns:1fr 1fr;
        gap:12px;
    }
    .stat {
        flex-direction:column;
        text-align:center;
        padding:20px 12px;
    }
    .footer__grid {
        grid-template-columns:1fr;
    }
    .gallery {
        grid-template-columns:repeat(2,1fr);
    }
    .event {
        flex-direction:column;
    }
    .callout {
        padding:34px 26px;
    }
    .form-wrap {
        padding:24px 18px;
    }
    .chip,.hero__emblem {
        display:none;
    }
    .hero__panel {
        margin-left:0;
    }
    .hero__panel::before {
        display:none;
    }
}
/* Respect reduced-motion preferences */ @media (prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        animation:none!important;
        transition:none!important;
    }
    html {
        scroll-behavior:auto;
    }
    .js .reveal:not(.in) {
        opacity:1;
        transform:none;
    }
    .hero__orbs {
        display:none;
    }
    .marquee {
        -webkit-mask-image:none;
        mask-image:none;
    }
    .marquee__row {
        width:auto;
        flex-wrap:wrap;
        justify-content:center;
    }
    .marquee__row[aria-hidden="true"] {
        display:none;
    }
    .marquee span[aria-hidden="true"] {
        display:none;
    }
}
/* Client-requested homepage rotating photographic hero */ .hero--slideshow {
    background:#0d152d;
}
.hero--slideshow .hero-slides {
    position:absolute;
    inset:0;
    z-index:-2;
    overflow:hidden;
    background:#0d152d;
}
.hero--slideshow .hero-slide {
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center 42%;
    opacity:0;
    transform:scale(1.055);
    transition:opacity 1.25s ease,transform 7s ease;
}
.hero--slideshow .hero-slide:after {
    content:"";
    position:absolute;
    inset:0;
    background:rgba(7,14,33,.91);
}
.hero--slideshow .hero-slide.is-active {
    opacity:1;
    transform:scale(1);
}
.hero--slideshow:before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background:rgba(10,18,41,.25);
}
.hero--slideshow .hero__orbs {
    opacity:.5;
}
.hero__community-card {
    position:relative;
    margin:25px 0 12px;
    padding:30px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.28);
    border-radius:24px;
    backdrop-filter:blur(12px);
    box-shadow:0 20px 60px rgba(0,0,0,.12);
    animation:riseIn .8s both;
}
.hero__community-card h3 {
    font-size:clamp(1.4rem,2.4vw,2rem);
    color:#ffffff;
    margin:12px 0;
}
.hero__community-card p {
    color:#d5dbe6;
    font-size:.98rem;
}
.hero__community-card .tagline {
    color:var(--gold-soft);
    font-size:.75rem;
    letter-spacing:.13em;
    font-weight:700;
    text-transform:uppercase;
}
.hero__panel:has(.hero__community-card) .hero__emblem {
    display:none;
}
.hero__panel:has(.hero__community-card) .chip {
    display:none;
}
/* Image-led inner-page banners, each section has a relevant visual */ .page-title {
    background-size:cover;
    background-position:center 45%;
}
.page-title:before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background-size:cover;
    background-position:center;
    opacity:.25;
    transform:scale(1.02);
}
.page-title--about {
    background-image:linear-gradient(rgba(10,19,45,.86),rgba(10,19,45,.86)),url('../img/banners/banner-group.svg');
}
.page-title--events {
    background-image:linear-gradient(rgba(10,19,45,.86),rgba(10,19,45,.86)),url('../img/banners/banner-art.svg');
}
.page-title--news {
    background-image:linear-gradient(rgba(10,19,45,.86),rgba(10,19,45,.86)),url('../img/banners/banner-reading.svg');
}
.page-title--gallery {
    background-image:linear-gradient(rgba(10,19,45,.86),rgba(10,19,45,.86)),url('../img/banners/banner-art.svg');
}
.page-title--contact {
    background-image:linear-gradient(rgba(10,19,45,.86),rgba(10,19,45,.86)),url('../img/banners/banner-hello.svg');
}
.page-title .hero__orbs {
    opacity:.4;
}
.page-title .crumbs,.page-title h1,.page-title p {
    position:relative;
    z-index:1;
}
@media(max-width:760px) {
    .hero--slideshow .hero-slide {
        background-position:58% center;
    }
    .hero--slideshow .hero-slide:after {
        background:rgba(7,14,33,.91);
    }
    .hero__community-card {
        padding:22px;
    }
}
@media(prefers-reduced-motion:reduce) {
    .hero--slideshow .hero-slide {
        transition:none;
        transform:none;
    }
}
/* Refined photo banners: distinct, page-relevant photography and reliable coverage */ .page-title {
    background-color:#0d152d!important;
    background-size:cover!important;
    background-position:center 44%!important;
    min-height:205px;
}
.page-title--about {
    background-image:linear-gradient(rgba(8,15,36,.86),rgba(8,15,36,.86)),url('../img/banners/banner-group.svg')!important;
}
.page-title--events {
    background-image:linear-gradient(rgba(8,15,36,.86),rgba(8,15,36,.86)),url('../img/banners/banner-art.svg')!important;
}
.page-title--news {
    background-image:linear-gradient(rgba(8,15,36,.86),rgba(8,15,36,.86)),url('../img/banners/banner-reading.svg')!important;
}
.page-title--gallery {
    background-image:linear-gradient(rgba(8,15,36,.86),rgba(8,15,36,.86)),url('../img/banners/banner-art.svg')!important;
}
.page-title--contact {
    background-image:linear-gradient(rgba(8,15,36,.86),rgba(8,15,36,.86)),url('../img/banners/banner-hello.svg')!important;
}
.page-title--membership {
    background-image:linear-gradient(rgba(8,15,36,.86),rgba(8,15,36,.86)),url('../img/banners/banner-group.svg')!important;
}
.page-title--privacy {
    background-image:linear-gradient(rgba(8,15,36,.86),rgba(8,15,36,.86)),url('../img/banners/banner-reading.svg')!important;
}
.page-title--terms {
    background-image:linear-gradient(rgba(8,15,36,.86),rgba(8,15,36,.86)),url('../img/banners/banner-reading.svg')!important;
}
.page-title .container {
    position:relative;
    z-index:2;
}
.page-title:after {
    z-index:1;
}
.page-title .hero__orbs {
    z-index:0;
    opacity:.18;
}
.hero--slideshow .hero-slide:nth-child(1) {
    background-position:center 38%;
}
.hero--slideshow .hero-slide:nth-child(2) {
    background-position:center 46%;
}
.hero--slideshow .hero-slide:nth-child(3) {
    background-position:center 40%;
}
@media(max-width:760px) {
    .page-title {
        min-height:180px;
        background-position:58% center!important;
    }
    .page-title--about,.page-title--events,.page-title--news,.page-title--gallery,.page-title--contact,.page-title--membership,.page-title--privacy,.page-title--terms {
        background-position:62% center!important;
    }
}
/* Office Bearers / Board Members */ .office-bearers-grid {
    align-items: stretch;
    gap: 22px;
}
.office-bearers-grid .person {
    padding: 25px 17px 22px;
    text-align: center;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}
.office-bearers-grid .person__photo {
    width: 132px;
    height: 150px;
    margin: 0 auto 17px;
    overflow: hidden;
    position: relative;
    border-radius: 18px;
    border: 3px solid #ffffff;
    box-shadow: 0 0 0 2px var(--gold-soft), 0 9px 22px rgba(13,21,45,.13);
    background: #f4efe3;
    flex: 0 0 auto;
}
.office-bearers-grid .person__photo img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center center;
}
.office-bearers-grid .person__details {
    width: 100%;
}
.office-bearers-grid .person h3 {
    font-size: .98rem;
    line-height: 1.4;
    margin: 0 0 7px;
}
.office-bearers-grid .person small {
    display: inline-block;
    line-height: 1.5;
    margin-bottom: 10px;
    color: var(--emerald-d);
}
.office-bearers-grid .person p {
    font-size: .82rem;
    line-height: 1.55;
    color: var(--muted);
    margin: 0 0 10px;
}
.office-bearers-grid .person a {
    display: block;
    font-weight: 700;
    font-size: .83rem;
    color: var(--forest-2);
    margin-bottom: 3px;
}
.office-bearers-grid .person__city {
    display: block;
    font-size: .77rem;
    color: var(--gold-d);
    font-weight: 700;
}
.office-bearers-grid .person--president {
    background: #fffdf7;
    border-color: #e6d6a6;
}
.office-bearers-grid .person--president .person__photo {
    width: 145px;
    height: 150px;
}
@media (max-width: 900px) {
    .office-bearers-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 520px) {
    .office-bearers-grid {
        grid-template-columns: 1fr;
    }
    .office-bearers-grid .person {
        max-width: 390px;
        width: 100%;
        margin-inline: auto;
    }
    .office-bearers-grid .person__photo {
        width: 132px;
        height: 150px;
    }
    .office-bearers-grid .person--president .person__photo {
        width: 145px;
        height: 150px;
    }
    .office-bearers-grid .person:nth-child(4) .person__photo {
        width: 132px;
        height: 150px;
    }
}
/* Office-bearer portraits: uniform frame size and head-safe crop */ .office-bearers-grid .person__photo {
    width: 132px;
    height: 150px;
    flex: 0 0 150px;
    margin: 0 auto 17px;
    overflow: hidden;
    position: relative;
    display: block;
    box-sizing: border-box;
    border-radius: 18px;
    border: 3px solid #ffffff;
    box-shadow: 0 0 0 2px var(--gold-soft), 0 9px 22px rgba(13,21,45,.13);
    background: #f4efe3;
}
.office-bearers-grid .person__photo img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center top;
    transform: none;
}
/* Keep the president and every other member on identical dimensions */ .office-bearers-grid .person--president .person__photo, .office-bearers-grid .person:nth-child(2) .person__photo, .office-bearers-grid .person:nth-child(3) .person__photo, .office-bearers-grid .person:nth-child(4) .person__photo, .office-bearers-grid .person:nth-child(5) .person__photo, .office-bearers-grid .person:nth-child(6) .person__photo, .office-bearers-grid .person:nth-child(7) .person__photo {
    width: 132px;
    height: 150px;
}
@media (max-width: 520px) {
    .office-bearers-grid .person__photo,     .office-bearers-grid .person--president .person__photo,     .office-bearers-grid .person:nth-child(2) .person__photo,     .office-bearers-grid .person:nth-child(3) .person__photo,     .office-bearers-grid .person:nth-child(4) .person__photo,     .office-bearers-grid .person:nth-child(5) .person__photo,     .office-bearers-grid .person:nth-child(6) .person__photo,     .office-bearers-grid .person:nth-child(7) .person__photo {
        width: 132px;
        height: 150px;
    }
}
/* Main navigation dropdowns */ .main-nav>ul>li.has-sub {
    position: relative;
}
.main-nav .nav-item-row {
    display: flex;
    align-items: center;
    gap: 0;
}
.main-nav .nav-item-row>a {
    display: block;
    position: relative;
    padding: 10px 8px 10px 15px;
    font-family: var(--font-head);
    font-size: .94rem;
    font-weight: 500;
    color: var(--forest);
    border-radius: 99px;
    transition: color .25s;
    white-space: nowrap;
}
.main-nav .nav-item-row>a:hover, .main-nav .has-sub.is-active .nav-item-row>a {
    color: var(--emerald);
}
.main-nav .nav-item-row>a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 3px;
    width: 0;
    height: 2px;
    border-radius: 2px;
    background: var(--gold);
    transform: translateX(-50%);
    transition: width .35s var(--ease);
}
.main-nav .has-sub:hover .nav-item-row>a::after, .main-nav .has-sub:focus-within .nav-item-row>a::after, .main-nav .has-sub.is-active .nav-item-row>a::after {
    width: calc(100% - 24px);
}
.main-nav .dropdown-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 38px;
    padding: 0;
    margin-left: -5px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--forest);
    cursor: pointer;
}
.main-nav .dropdown-toggle:hover, .main-nav .dropdown-toggle:focus-visible {
    color: var(--emerald);
    background: var(--emerald-l);
    outline: none;
}
.main-nav .dropdown-arrow {
    display: block;
    width: 7px;
    height: 7px;
    border-right: 1.7px solid currentColor;
    border-bottom: 1.7px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform .22s ease;
}
.main-nav .has-sub:hover>.nav-item-row .dropdown-arrow, .main-nav .has-sub:focus-within>.nav-item-row .dropdown-arrow, .main-nav .has-sub.is-open>.nav-item-row .dropdown-arrow {
    transform: translateY(2px) rotate(225deg);
}
.main-nav .sub {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1200;
    display: block;
    min-width: 230px;
    margin: 0;
    padding: 8px;
    list-style: none;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--white);
    box-shadow: 0 16px 38px rgba(13,21,45,.16);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.main-nav .sub li {
    display: block;
    width: 100%;
}
.main-nav .sub li a {
    display: block;
    padding: 11px 13px;
    border-radius: 8px;
    color: var(--forest);
    font-size: .88rem;
    line-height: 1.4;
    white-space: nowrap;
}
.main-nav .sub li a:hover, .main-nav .sub li a:focus-visible {
    background: var(--emerald-l);
    color: var(--emerald-d);
}
.main-nav .has-sub:hover>.sub, .main-nav .has-sub:focus-within>.sub, .main-nav .has-sub.is-open>.sub {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
@media (max-width: 1250px) {
    .main-nav .nav-item-row {
        width: 100%;
    }
    .main-nav .nav-item-row>a {
        flex: 1 1 auto;
        padding: 11px 10px;
    }
    .main-nav .dropdown-toggle {
        width: 42px;
        height: 42px;
        margin-left: 0;
    }
    .main-nav .sub {
        position: static;
        min-width: 0;
        padding: 0 0 6px 14px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        transition: none;
    }
    .main-nav .has-sub:not(.is-open)>.sub {
        display: none;
    }
    .main-nav .has-sub.is-open>.sub {
        display: block;
    }
    .main-nav .sub li a {
        padding: 10px 12px;
        white-space: normal;
    }
}
@media (prefers-reduced-motion: reduce) {
    .main-nav .dropdown-arrow,     .main-nav .sub {
        transition: none;
    }
}
/* Contact page two-column layout (was inline style, so it never collapsed on phones) */ .contact-grid {
    display:grid;
    grid-template-columns:1fr 1.5fr;
    gap:34px;
    align-items:start;
}
@media (max-width:900px) {
    .contact-grid {
        grid-template-columns:1fr;
    }
}
/* =====================================================================
   About pages: tabs, illustrations, photo strip, journey, objectives
   ===================================================================== */ .about-tabs-wrap {
    position:relative;
    z-index:6;
    margin-top:-30px;
}
.about-tabs {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:6px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:999px;
    box-shadow:var(--shadow);
    padding:8px;
    width:fit-content;
    max-width:92%;
}
.about-tabs a {
    padding:10px 22px;
    border-radius:999px;
    font-family:var(--font-head);
    font-weight:600;
    font-size:.92rem;
    color:var(--forest);
    transition:background .25s,color .25s,transform .25s var(--ease);
}
.about-tabs a:hover {
    background:var(--mint);
    transform:translateY(-2px);
}
.about-tabs a.is-current {
    background:var(--emerald);
    color:#ffffff;
}
.lead-text {
    font-size:1.12rem;
    color:var(--muted);
}
.about-intro__btns {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:22px;
}
/* ---- Illustrations ---- */ .illo {
    width:100%;
    height:auto;
    display:block;
}
.illo-frame {
    position:relative;
    border-radius:28px;
    overflow:visible;
    border:6px solid #ffffff;
    box-shadow:var(--shadow);
    background:#ffffff;
}
.illo-frame .illo {
    border-radius:22px;
}
.illo-frame::before {
    content:"";
    position:absolute;
    inset:-22px -22px auto auto;
    width:120px;
    height:120px;
    border-radius:50%;
    border:2px dashed var(--gold);
    opacity:.6;
    z-index:-1;
    animation:spin 40s linear infinite;
}
.illo-chip {
    position:absolute;
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:#ffffff;
    color:var(--forest);
    font-family:var(--font-head);
    font-weight:600;
    font-size:.82rem;
    padding:8px 14px;
    border-radius:999px;
    box-shadow:var(--shadow-sm);
    border:1px solid var(--line);
    animation:floatChip 5s ease-in-out infinite;
}
.illo-chip .ic {
    color:var(--terra);
}
.illo-chip--1 {
    left:-18px;
    bottom:34px;
}
.illo-chip--2 {
    right:-14px;
    top:26px;
    animation-delay:-2s;
}
.illo-chip--2 .ic {
    color:var(--emerald);
}
.obj-scene {
    border-radius:26px;
    overflow:hidden;
    border:5px solid #ffffff;
    box-shadow:var(--shadow);
    background:#ffffff;
    transition:transform .5s var(--ease),box-shadow .5s;
}
.obj-scene:hover {
    transform:translateY(-6px) rotate(-1deg);
}
.il-kid {
    animation:ilBounce 2.4s ease-in-out infinite;
}
.il-arm {
    transform-box:fill-box;
    transform-origin:50% 8%;
    animation:ilWave 1.6s ease-in-out infinite;
}
.il-spin {
    transform-box:fill-box;
    transform-origin:center;
    animation:spin 26s linear infinite;
}
.il-cloud {
    animation:ilDrift 16s ease-in-out infinite alternate;
}
.il-float {
    animation:ilFloat 3.6s ease-in-out infinite;
}
.il-blk {
    animation:ilBob 3s ease-in-out infinite;
}
.il-pulse {
    transform-box:fill-box;
    transform-origin:center;
    animation:ilPulse 1.6s ease-in-out infinite;
}
.il-twinkle {
    transform-box:fill-box;
    transform-origin:center;
    animation:ilTwinkle 2.2s ease-in-out infinite;
}
.il-draw {
    stroke-dasharray:120;
    stroke-dashoffset:120;
    animation:ilDraw 4.5s ease-in-out infinite;
}
.il-flow {
    stroke-dasharray:5 7;
    animation:ilFlow 1.4s linear infinite;
}
.il-wave {
    transform-box:fill-box;
    transform-origin:left center;
    animation:ilWaveOut 2.4s ease-out infinite;
    opacity:0;
}
.il-pop {
    transform-box:fill-box;
    transform-origin:center;
    animation:ilPop 3.2s ease-in-out infinite;
}
.il-rise {
    animation:ilRise 7s ease-in-out infinite alternate;
}
.il-flag {
    transform-box:fill-box;
    transform-origin:left center;
    animation:ilFlag 1.8s ease-in-out infinite;
}
.il-step {
    transform-box:fill-box;
    transform-origin:bottom center;
    animation:ilStep 6s ease-in-out infinite both;
}
.il-up {
    animation:ilUp 3.6s ease-in-out infinite;
}
.il-bubble {
    transform-box:fill-box;
    transform-origin:30% 100%;
    animation:ilBubble 4s ease-in-out infinite;
}
@keyframes ilBounce {
    0%,100% {
        transform:translateY(0)
    }
    50% {
        transform:translateY(-7px)
    }
}
@keyframes ilWave {
    0%,100% {
        transform:rotate(0)
    }
    50% {
        transform:rotate(-32deg)
    }
}
@keyframes ilDrift {
    to {
        transform:translateX(46px);
    }
}
@keyframes ilFloat {
    0%,100% {
        transform:translateY(0)
    }
    50% {
        transform:translateY(-12px)
    }
}
@keyframes ilBob {
    0%,100% {
        transform:translateY(0) rotate(0)
    }
    50% {
        transform:translateY(-5px) rotate(-3deg)
    }
}
@keyframes ilPulse {
    0%,100% {
        transform:scale(1)
    }
    50% {
        transform:scale(1.14)
    }
}
@keyframes ilTwinkle {
    0%,100% {
        transform:scale(.6);
        opacity:.5
    }
    50% {
        transform:scale(1.15);
        opacity:1
    }
}
@keyframes ilDraw {
    0% {
        stroke-dashoffset:120
    }
    45%,85% {
        stroke-dashoffset:0
    }
    100% {
        stroke-dashoffset:-120
    }
}
@keyframes ilFlow {
    to {
        stroke-dashoffset:-24;
    }
}
@keyframes ilWaveOut {
    0% {
        transform:scale(.5);
        opacity:0
    }
    25% {
        opacity:1
    }
    100% {
        transform:scale(1.1);
        opacity:0
    }
}
@keyframes ilPop {
    0%,100% {
        transform:scale(1)
    }
    50% {
        transform:scale(1.12)
    }
}
@keyframes ilRise {
    from {
        transform:translateY(40px)
    }
    to {
        transform:translateY(0)
    }
}
@keyframes ilFlag {
    0%,100% {
        transform:scaleX(1) skewY(0)
    }
    50% {
        transform:scaleX(.82) skewY(6deg)
    }
}
@keyframes ilStep {
    0% {
        transform:scaleY(0)
    }
    18%,88% {
        transform:scaleY(1)
    }
    100% {
        transform:scaleY(0)
    }
}
@keyframes ilUp {
    0% {
        transform:translateY(34px);
        opacity:0
    }
    30% {
        opacity:1
    }
    100% {
        transform:translateY(-14px);
        opacity:0
    }
}
@keyframes ilBubble {
    0%,8% {
        transform:scale(0);
        opacity:0
    }
    20%,70% {
        transform:scale(1);
        opacity:1
    }
    90%,100% {
        transform:scale(.9);
        opacity:.15
    }
}
/* ---- Pillars / numbered cards ---- */ .pillar {
    overflow:hidden;
}
.pillar__no {
    position:absolute;
    top:14px;
    right:20px;
    font-family:var(--font-head);
    font-weight:800;
    font-size:2.6rem;
    line-height:1;
    color:var(--gold-soft);
    opacity:.55;
    transition:transform .4s var(--ease),opacity .3s;
}
.pillar:hover .pillar__no {
    transform:translateY(-4px) scale(1.08);
    opacity:.9;
}
/* ---- Why band ---- */ .why-band {
    position:relative;
    overflow:hidden;
    isolation:isolate;
    padding:84px 0;
    color:#ffffff;
    background:var(--forest);
}
.why-band .hero__orbs {
    opacity:.25;
    z-index:-1;
}
.why-band__grid {
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr 1fr;
    gap:26px;
    align-items:start;
}
.why-band h2 {
    color:#ffffff;
}
.why-band__lead p {
    color:#d1d7e4;
}
.why-item {
    background:rgba(255,255,255,.07);
    border:1px solid rgba(236,217,160,.28);
    border-radius:20px;
    padding:26px 22px;
    backdrop-filter:blur(4px);
    transition:transform .35s var(--ease),background .3s;
}
.why-item:hover {
    transform:translateY(-8px);
    background:rgba(255,255,255,.12);
}
.why-item h3 {
    color:#ffffff;
    font-size:1.05rem;
}
.why-item p {
    color:#d1d7e4;
    font-size:.92rem;
    margin:0;
}
.why-item__ic {
    width:52px;
    height:52px;
    border-radius:16px;
    display:grid;
    place-items:center;
    background:rgba(242,169,0,.2);
    color:var(--gold-soft);
    margin-bottom:16px;
    animation:ilFloat 4s ease-in-out infinite;
}
/* ---- Photo strip ---- */ .photo-strip {
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr;
    gap:22px;
}
.photo {
    position:relative;
    margin:0;
    border-radius:24px;
    overflow:hidden;
    min-height:300px;
    background:var(--emerald-l);
    box-shadow:var(--shadow-sm);
}
.photo img {
    width:100%;
    height:100%;
    object-fit:cover;
    position:absolute;
    inset:0;
    transition:transform 1.2s var(--ease);
    animation:kenBurns 18s ease-in-out infinite alternate;
}
.photo:hover img {
    transform:scale(1.08);
}
.photo figcaption {
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    padding:44px 20px 18px;
    color:#ffffff;
    font-family:var(--font-head);
    font-weight:600;
    background:rgba(8,15,36,.86);
}
@keyframes kenBurns {
    from {
        scale:1
    }
    to {
        scale:1.07
    }
}
/* ---- Journey timeline ---- */ .journey {
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    position:relative;
    counter-reset:j;
}
.journey::before {
    content:"";
    position:absolute;
    top:28px;
    left:12%;
    right:12%;
    height:3px;
    border-radius:3px;
    background:repeating-linear-gradient(90deg,var(--gold) 0 10px,transparent 10px 20px);
    animation:ilFlow 2s linear infinite;
    background-size:20px 3px;
}
.journey__step {
    text-align:center;
    position:relative;
    padding:0 8px;
}
.journey__dot {
    width:58px;
    height:58px;
    margin:0 auto 16px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--emerald);
    color:#ffffff;
    font-family:var(--font-head);
    font-weight:700;
    font-size:1.2rem;
    box-shadow:0 0 0 6px #ffffff,0 0 0 8px var(--gold-soft),var(--shadow-sm);
    transition:transform .4s var(--ease);
}
.journey__step:hover .journey__dot {
    transform:scale(1.12) rotate(-6deg);
}
.journey__step p {
    color:var(--muted);
    font-size:.94rem;
}
/* ---- Vision & mission ---- */ .vm-row {
    gap:70px;
}
.illo-frame--sun::before {
    border-color:var(--emerald);
}
.tick-list {
    list-style:none;
    padding:0;
    margin:18px 0 0;
    display:grid;
    gap:10px;
}
.tick-list li {
    display:flex;
    gap:12px;
    align-items:flex-start;
    color:var(--text);
}
.tick-list .ic {
    color:#ffffff;
    background:var(--emerald);
    border-radius:50%;
    padding:3px;
    width:22px;
    height:22px;
    margin-top:2px;
}
.mission-steps {
    display:grid;
    gap:14px;
    margin-top:22px;
}
.mission-step {
    display:flex;
    gap:16px;
    align-items:flex-start;
    padding:16px 18px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:16px;
    transition:transform .3s var(--ease),box-shadow .3s;
}
.mission-step:hover {
    transform:translateX(8px);
    box-shadow:var(--shadow-sm);
}
.mission-step > span {
    flex:none;
    width:46px;
    height:46px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:var(--emerald-l);
    color:var(--emerald);
}
.mission-step h3 {
    margin:0 0 2px;
    font-size:1.02rem;
}
.mission-step p {
    margin:0;
    color:var(--muted);
    font-size:.92rem;
}
.value-card {
    text-align:left;
}
.motto-band {
    position:relative;
    overflow:hidden;
    isolation:isolate;
    padding:74px 0;
    color:#ffffff;
    background:var(--emerald);
}
.motto-band .hero__orbs {
    opacity:.25;
    z-index:-1;
}
.motto-band__inner {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:44px;
    flex-wrap:wrap;
    text-align:left;
}
.motto-band h2 {
    color:#ffffff;
    font-size:clamp(2rem,4vw,3rem);
    margin-bottom:8px;
}
.motto-band p {
    color:#d5dbe8;
    max-width:520px;
    margin:0;
}
.motto-band__emblem {
    width:150px;
    height:150px;
    border-radius:50%;
    background:#ffffff;
    display:grid;
    place-items:center;
    box-shadow:0 0 0 8px rgba(236,217,160,.35),0 0 0 18px rgba(236,217,160,.15);
    animation:pulseGlow 3.6s ease-in-out infinite;
}
.motto-band__emblem img {
    width:70px;
    height:auto;
}
@keyframes pulseGlow {
    0%,100% {
        box-shadow:0 0 0 8px rgba(236,217,160,.35),0 0 0 18px rgba(236,217,160,.15)
    }
    50% {
        box-shadow:0 0 0 14px rgba(236,217,160,.28),0 0 0 28px rgba(236,217,160,.08)
    }
}
/* ---- Objectives zig-zag ---- */ .obj-list {
    display:grid;
    gap:64px;
    margin-top:10px;
}
.obj-row {
    gap:64px;
}
.obj-text {
    position:relative;
}
.obj-no {
    display:block;
    font-family:var(--font-head);
    font-weight:800;
    font-size:4.2rem;
    line-height:1;
    color:transparent;
    -webkit-text-stroke:2px var(--gold);
    opacity:.8;
    margin-bottom:4px;
}
.obj-text h3 {
    font-size:1.6rem;
}
.obj-text > p {
    color:var(--muted);
    font-size:1.04rem;
}
/* ---- Office bearers extras ---- */ .chips {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
    margin-top:20px;
}
.chips__label {
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-weight:600;
    color:var(--forest);
}
.chip-soft {
    background:var(--emerald-l);
    color:var(--emerald-d);
    padding:6px 14px;
    border-radius:999px;
    font-weight:600;
    font-size:.86rem;
}
.office-bearers-grid .person a .ic {
    vertical-align:-2px;
}
.about-cta-sec {
    padding-top:40px;
}
.callout__btns {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
/* ---- Responsive ---- */ @media (max-width:1050px) {
    .why-band__grid {
        grid-template-columns:1fr 1fr;
    }
    .why-band__lead {
        grid-column:1 / -1;
    }
    .photo-strip {
        grid-template-columns:1fr 1fr;
    }
    .photo-strip .photo:first-child {
        grid-column:1 / -1;
        min-height:260px;
    }
    .journey {
        grid-template-columns:1fr 1fr;
        row-gap:34px;
    }
    .journey::before {
        display:none;
    }
    .vm-row,.obj-row {
        gap:34px;
    }
    .obj-row .obj-scene {
        max-width:520px;
    }
    .obj-list {
        gap:48px;
    }
    .illo-chip--1 {
        left:6px;
    }
    .illo-chip--2 {
        right:6px;
    }
}
@media (max-width:700px) {
    .about-tabs {
        border-radius:22px;
    }
    .about-tabs a {
        padding:9px 16px;
        font-size:.86rem;
    }
    .why-band__grid,.photo-strip,.journey {
        grid-template-columns:1fr;
    }
    .motto-band__inner {
        text-align:center;
        justify-content:center;
    }
    .obj-no {
        font-size:3.2rem;
    }
}
@media (prefers-reduced-motion:reduce) {
    .il-draw {
        stroke-dasharray:none;
        stroke-dashoffset:0;
    }
    .il-wave {
        opacity:1;
    }
    .il-bubble,.il-up,.il-step {
        opacity:1;
    }
}
@media (max-width:700px) {
    .illo-frame::before {
        display:none;
    }
    .illo-chip--1 {
        left:4px;
    }
    .illo-chip--2 {
        right:4px;
    }
}
/* ---- Office bearers hierarchy: President, then 3 + 3 ---- */ .ob-tree {
    display:flex;
    flex-direction:column;
    gap:44px;
    align-items:center;
}
.ob-tier {
    display:grid;
    gap:22px;
    width:100%;
    position:relative;
}
.ob-tier--1 {
    grid-template-columns:minmax(0,300px);
    justify-content:center;
}
.ob-tier--2,.ob-tier--3 {
    grid-template-columns:repeat(3,minmax(0,1fr));
    max-width:960px;
    margin-inline:auto;
}
.ob-tier--1 .person {
    box-shadow:var(--shadow);
}
.office-bearers-grid .person--zoom .person__photo img {
    transform:scale(1.12);
}
.office-bearers-grid .person--tall .person__photo img {
    object-position:center 18%;
    transform:none;
}
.office-bearers-grid .person--president .person__photo img {
    transform:none;
}
@media (max-width:820px) {
    .ob-tier--2,.ob-tier--3 {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:520px) {
    .ob-tier--2,.ob-tier--3 {
        grid-template-columns:1fr;
    }
    .ob-tier--1 {
        grid-template-columns:1fr;
    }
}
/* =====================================================================
   Events: spotlight, search + filters, list rows, detail page
   ===================================================================== */ .ev-row[hidden],.ev-empty[hidden] {
    display:none!important;
}
.ev-spot-sec {
    padding-bottom:50px;
}
.ev-spot {
    display:grid;
    grid-template-columns:auto 1.2fr 1fr;
    gap:34px;
    align-items:center;
    background:var(--emerald);
    color:#ffffff;
    border-radius:28px;
    padding:34px 38px;
    box-shadow:var(--shadow);
    position:relative;
    overflow:hidden;
    transition:transform .4s var(--ease),box-shadow .4s;
}
.ev-spot:hover {
    transform:translateY(-6px);
    color:#ffffff;
}
.ev-spot::before {
    content:"";
    position:absolute;
    right:-80px;
    top:-80px;
    width:260px;
    height:260px;
    border-radius:50%;
    border:1px dashed rgba(236,217,160,.5);
    animation:spin 45s linear infinite;
}
.ev-spot__date {
    width:118px;
    height:118px;
    border-radius:24px;
    background:#ffffff;
    color:var(--forest);
    display:grid;
    place-content:center;
    text-align:center;
    box-shadow:0 12px 28px rgba(0,0,0,.22);
}
.ev-spot__date b {
    font-family:var(--font-head);
    font-size:3rem;
    line-height:1;
}
.ev-spot__date span {
    font-weight:600;
    color:var(--gold-d);
    font-size:.9rem;
}
.ev-spot h3 {
    color:#ffffff;
    font-size:1.7rem;
    margin:10px 0 8px;
}
.ev-spot p {
    color:#d5dbe8;
}
.ev-spot ul {
    list-style:none;
    padding:0;
    margin:0 0 18px;
    display:flex;
    flex-wrap:wrap;
    gap:8px 22px;
    color:#eaedf4;
}
.ev-spot li {
    display:flex;
    align-items:center;
    gap:6px;
}
.ev-spot__art .illo {
    border-radius:20px;
    border:4px solid rgba(255,255,255,.9);
}
.ev-cat {
    display:inline-block;
    padding:5px 14px;
    border-radius:999px;
    font-family:var(--font-head);
    font-weight:600;
    font-size:.74rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    background:var(--emerald-l);
    color:var(--emerald-d);
}
.ev-cat--training {
    background:var(--gold-l);
    color:var(--gold-d);
}
.ev-cat--seminar {
    background:var(--terra-l);
    color:var(--terra);
}
.ev-cat--meet {
    background:#e2eef6;
    color:#1f5f7e;
}
.ev-spot .ev-cat {
    background:rgba(255,255,255,.18);
    color:#ffffff;
}
.ev-past {
    display:inline-block;
    font-size:.76rem;
    font-weight:600;
    color:var(--muted);
    background:#efece3;
    border-radius:999px;
    padding:4px 12px;
}
.ev-past--block {
    display:block;
    text-align:center;
    padding:12px;
    margin-bottom:12px;
}
/* tools */ .ev-tools {
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:24px;
    padding:24px;
    box-shadow:var(--shadow-sm);
    display:grid;
    gap:18px;
}
.ev-search {
    display:flex;
    align-items:center;
    gap:12px;
    border:2px solid var(--line);
    border-radius:999px;
    padding:4px 20px;
    background:var(--mint);
    transition:border-color .25s,box-shadow .25s;
}
.ev-search:focus-within {
    border-color:var(--emerald);
    box-shadow:0 0 0 4px rgba(26,49,108,.12);
}
.ev-search .ic {
    color:var(--emerald);
}
.ev-search input {
    flex:1;
    border:0;
    background:transparent;
    font:inherit;
    padding:12px 0;
    outline:0;
    color:var(--ink);
    min-width:0;
}
.ev-filter {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px 14px;
}
.ev-filter__label {
    font-family:var(--font-head);
    font-weight:600;
    font-size:.82rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
    min-width:74px;
}
.ev-filter__label label {
    cursor:pointer;
}
.ev-filter-row {
    display:flex;
    flex-wrap:wrap;
    gap:18px 40px;
}
.ev-chips {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.ev-chips button {
    font:inherit;
    font-weight:600;
    font-size:.88rem;
    cursor:pointer;
    padding:8px 18px;
    border-radius:999px;
    border:1.5px solid var(--line);
    background:#ffffff;
    color:var(--forest);
    transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease);
}
.ev-chips button:hover {
    border-color:var(--emerald);
    transform:translateY(-2px);
}
.ev-chips button.is-on {
    background:var(--emerald);
    border-color:var(--emerald);
    color:#ffffff;
}
.ev-select {
    font:inherit;
    font-weight:600;
    padding:9px 16px;
    border-radius:999px;
    border:1.5px solid var(--line);
    background:#ffffff;
    color:var(--forest);
    cursor:pointer;
}
.ev-count {
    margin:26px 0 14px;
    color:var(--muted);
    font-weight:600;
}
/* rows */ .ev-list {
    display:grid;
    gap:16px;
}
.ev-row {
    display:grid;
    grid-template-columns:auto 1fr auto auto;
    gap:24px;
    align-items:center;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:20px;
    padding:20px 26px;
    color:inherit;
    transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;
}
.ev-row:hover {
    transform:translateX(8px);
    box-shadow:var(--shadow);
    border-color:rgba(242,169,0,.5);
    color:inherit;
}
.ev-date {
    width:74px;
    height:80px;
    border-radius:16px;
    background:var(--forest-2);
    color:#ffffff;
    display:grid;
    place-content:center;
    text-align:center;
    line-height:1.1;
}
.ev-date b {
    font-family:var(--font-head);
    font-size:1.7rem;
}
.ev-date span {
    font-size:.8rem;
    color:var(--gold-soft);
    text-transform:uppercase;
    letter-spacing:.1em;
    font-weight:600;
}
.ev-main h3 {
    margin:0 0 4px;
    font-size:1.18rem;
    transition:color .25s;
}
.ev-row:hover .ev-main h3 {
    color:var(--emerald);
}
.ev-meta {
    margin:0 0 4px;
    color:var(--gold-d);
    font-weight:600;
    font-size:.88rem;
    display:flex;
    align-items:center;
    gap:4px;
    flex-wrap:wrap;
}
.ev-sum {
    margin:0;
    color:var(--muted);
    font-size:.92rem;
}
.ev-side {
    display:grid;
    gap:8px;
    justify-items:end;
}
.ev-arrow {
    width:42px;
    height:42px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--emerald-l);
    color:var(--emerald);
    transition:transform .3s var(--ease),background .3s,color .3s;
}
.ev-row:hover .ev-arrow {
    background:var(--emerald);
    color:#ffffff;
    transform:translateX(4px);
}
.ev-empty {
    text-align:center;
    padding:48px 24px;
    background:#ffffff;
    border:2px dashed var(--line);
    border-radius:24px;
}
.ev-empty h3 {
    margin-bottom:6px;
}
.ev-empty p {
    color:var(--muted);
    margin-bottom:14px;
}
.ev-reset {
    font:inherit;
    font-weight:600;
    color:var(--emerald);
    background:none;
    border:0;
    text-decoration:underline;
    cursor:pointer;
    padding:0;
}
.ev-row .ic {
    vertical-align:-2px;
}
/* detail */ .evd__grid {
    display:grid;
    grid-template-columns:1fr 360px;
    gap:40px;
    align-items:start;
}
.evd__banner {
    position:relative;
    border-radius:26px;
    overflow:hidden;
    border:5px solid #ffffff;
    box-shadow:var(--shadow);
    margin-bottom:34px;
}
.evd__banner .ev-cat {
    position:absolute;
    left:18px;
    top:18px;
    background:#ffffff;
    box-shadow:var(--shadow-sm);
}
.evd__block {
    margin-bottom:36px;
}
.evd__block h2 {
    font-size:1.45rem;
    position:relative;
    padding-bottom:10px;
}
.evd__block h2::after {
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:44px;
    height:3px;
    border-radius:3px;
    background:var(--gold);
}
.evd__block p {
    color:var(--text);
}
.evd__sub {
    margin:26px 0 12px;
    font-size:1.02rem;
}
.tick-list--2 {
    grid-template-columns:1fr 1fr;
    gap:12px 24px;
}
.speaker {
    display:flex;
    gap:16px;
    align-items:flex-start;
    padding:20px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:18px;
}
.speaker--soon {
    background:var(--gold-l);
    border-color:#e6d6a6;
}
.speaker__ic {
    flex:none;
    width:48px;
    height:48px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:var(--emerald-l);
    color:var(--emerald);
}
.speaker--soon .speaker__ic {
    background:#ffffff;
    color:var(--gold-d);
}
.speaker h3 {
    margin:0 0 4px;
    font-size:1.05rem;
}
.speaker p {
    margin:0;
    color:var(--muted);
    font-size:.94rem;
}
.speaker small {
    color:var(--gold-d);
    font-weight:600;
}
.speaker-grid {
    display:grid;
    gap:14px;
}
.host-grid {
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}
.host {
    display:flex;
    align-items:center;
    gap:14px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:10px 18px 10px 10px;
}
.host img {
    width:54px;
    height:54px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid var(--gold-soft);
}
.host strong {
    display:block;
    font-size:.94rem;
    color:var(--forest);
}
.host small {
    color:var(--gold-d);
    font-weight:600;
}
.agenda {
    list-style:none;
    margin:0;
    padding:0 0 0 18px;
    border-left:3px dashed var(--gold-soft);
    display:grid;
    gap:14px;
}
.agenda li {
    position:relative;
    display:grid;
    grid-template-columns:110px 1fr;
    gap:14px;
    align-items:baseline;
    padding:14px 18px;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:14px;
    transition:transform .3s var(--ease),border-color .3s;
}
.agenda li:hover {
    transform:translateX(6px);
    border-color:rgba(242,169,0,.5);
}
.agenda li::before {
    content:"";
    position:absolute;
    left:-30px;
    top:50%;
    width:15px;
    height:15px;
    margin-top:-7px;
    border-radius:50%;
    background:var(--emerald);
    box-shadow:0 0 0 4px #ffffff;
}
.agenda time {
    font-family:var(--font-head);
    font-weight:700;
    color:var(--emerald-d);
    font-size:.92rem;
}
.evd__side {
    position:sticky;
    top:100px;
    display:grid;
    gap:20px;
}
.evd__card {
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:24px;
    padding:26px;
    box-shadow:var(--shadow);
}
.evd__datebadge {
    display:flex;
    align-items:baseline;
    gap:10px;
    margin-bottom:12px;
    font-family:var(--font-head);
}
.evd__datebadge b {
    font-size:2.6rem;
    color:var(--forest);
    line-height:1;
}
.evd__datebadge span {
    font-weight:600;
    color:var(--gold-d);
}
.evd__facts {
    margin:0 0 18px;
    display:grid;
    gap:14px;
}
.evd__facts dt {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--emerald);
    margin-bottom:2px;
}
.evd__facts dd {
    margin:0;
    color:var(--ink);
    font-weight:500;
}
.evd__facts small {
    color:var(--muted);
    font-weight:400;
}
.evd__btn {
    display:flex;
    width:100%;
    justify-content:center;
    margin-bottom:10px;
}
.evd__share {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:6px;
    font-weight:600;
    font-size:.9rem;
}
.evd__card--help {
    background:var(--mint);
    box-shadow:none;
}
.evd__card--help h3 {
    margin-bottom:4px;
}
.evd__card--help p {
    color:var(--muted);
    font-size:.92rem;
}
.evd__card--help a {
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:600;
    margin-top:6px;
}
@media (max-width:1050px) {
    .ev-spot {
        grid-template-columns:auto 1fr;
    }
    .ev-spot__art {
        display:none;
    }
    .evd__grid {
        grid-template-columns:1fr;
    }
    .evd__side {
        position:static;
    }
}
@media (max-width:700px) {
    .ev-spot {
        grid-template-columns:1fr;
        padding:26px;
    }
    .ev-spot__date {
        width:96px;
        height:96px;
    }
    .ev-row {
        grid-template-columns:auto 1fr;
        gap:14px 16px;
        padding:18px;
    }
    .ev-side {
        grid-column:1 / -1;
        justify-items:start;
        grid-auto-flow:column;
        justify-content:start;
    }
    .ev-arrow {
        display:none;
    }
    .ev-sum {
        display:none;
    }
    .tick-list--2 {
        grid-template-columns:1fr;
    }
    .agenda li {
        grid-template-columns:1fr;
        gap:2px;
    }
    .ev-filter__label {
        min-width:0;
        width:100%;
    }
}
/* =====================================================================
   Client fixes (Oct 2026)
   1. Home hero: background photo must be clearly visible (no heavy dark wash)
   2. Inner-page banners: lighter wash, kids visible
   3. Office bearers: large portrait cards, no connector line between tiers
   ===================================================================== */ .hero--slideshow {
    background:#1d2c5b;
}
.hero--slideshow .hero-slides {
    background:#1d2c5b;
}
.hero--slideshow:before {
    background:none;
}
.hero--slideshow .hero-slide {
    background-position:center 72%;
}
.hero--slideshow .hero-slide:nth-child(1), .hero--slideshow .hero-slide:nth-child(2), .hero--slideshow .hero-slide:nth-child(3) {
    background-position:center 72%;
}
.hero--slideshow .hero-slide:after {
    background:rgba(9,19,49,.86);
}
.hero--slideshow h1,.hero--slideshow p.lead,.hero--slideshow .hero__badge {
    text-shadow:0 1px 2px rgba(6,12,28,.55),0 2px 10px rgba(6,12,28,.35);
}
.hero--slideshow::after {
    opacity:.45;
}
.hero--slideshow .hero__orbs {
    opacity:.25;
}
.page-title {
    background-position:center 72%!important;
}
.page-title h1,.page-title p,.page-title .crumbs {
    text-shadow:0 1px 2px rgba(6,12,28,.55),0 2px 10px rgba(6,12,28,.3);
}
/* ---- Office bearers: big portrait cards (reference: large photo, name, role, company line, phone pill) ---- */ .ob-tree.office-bearers-grid {
    gap:40px;
}
.ob-tree.office-bearers-grid .ob-tier {
    gap:28px;
}
.ob-tree.office-bearers-grid .ob-tier--1 {
    grid-template-columns:minmax(0,360px);
}
.ob-tree.office-bearers-grid .ob-tier--2, .ob-tree.office-bearers-grid .ob-tier--3 {
    grid-template-columns:repeat(3,minmax(0,1fr));
    max-width:1120px;
}
.ob-tree.office-bearers-grid .ob-tier .person {
    padding:14px 14px 22px;
    border-radius:24px;
    overflow:hidden;
}
.ob-tree.office-bearers-grid .ob-tier .person .person__photo {
    width:100%;
    height:auto;
    flex:0 0 auto;
    aspect-ratio:4 / 4.7;
    margin:0 0 18px;
    border:0;
    border-radius:18px;
    box-shadow:none;
    background:#ece7d8;
}
.ob-tree.office-bearers-grid .ob-tier--1 .person .person__photo {
    aspect-ratio:1 / 1;
}
.ob-tree.office-bearers-grid .ob-tier .person .person__photo img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 20%;
    transform:none;
}
.ob-tree.office-bearers-grid .ob-tier .person--zoom .person__photo img {
    transform:none;
}
.ob-tree.office-bearers-grid .ob-tier .person--tall .person__photo img {
    object-position:center 12%;
}
.ob-tree.office-bearers-grid .ob-tier .person:hover .person__photo {
    transform:none;
}
.ob-tree.office-bearers-grid .person h3 {
    font-size:1.12rem;
    margin:0 0 8px;
}
.ob-tree.office-bearers-grid .person small {
    font-size:.78rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-bottom:8px;
}
.ob-tree.office-bearers-grid .person p {
    font-size:.9rem;
    margin:0 0 14px;
}
.ob-tree.office-bearers-grid .person__details a {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    background:#f1f3f1;
    border-radius:999px;
    padding:9px 20px;
    margin:0 0 12px;
    font-size:.92rem;
    color:var(--forest-2);
}
.ob-tree.office-bearers-grid .person__details a:hover {
    background:var(--emerald-l);
}
.ob-tree.office-bearers-grid .person__city {
    font-size:.82rem;
}
@media (max-width:900px) {
    .ob-tree.office-bearers-grid .ob-tier--2,     .ob-tree.office-bearers-grid .ob-tier--3 {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:560px) {
    .ob-tree.office-bearers-grid .ob-tier--1,     .ob-tree.office-bearers-grid .ob-tier--2,     .ob-tree.office-bearers-grid .ob-tier--3 {
        grid-template-columns:minmax(0,420px);
        justify-content:center;
    }
}
/* =====================================================================
   Home hero v2: clean green hero, readable text, photo in its own frame
   ===================================================================== */ .hero--slideshow, .hero.hero--slideshow {
    background:var(--forest);
}
.hero--slideshow::after {
    opacity:1;
}
.hero--slideshow .hero__orbs {
    opacity:.5;
}
.hero--slideshow h1,.hero--slideshow p.lead,.hero--slideshow .hero__badge {
    text-shadow:none;
}
.hero--slideshow .hero__grid {
    grid-template-columns:1fr 1fr;
    gap:64px;
}
.hero--slideshow .hero__panel {
    min-height:0;
    padding-bottom:40px;
}
.hero--slideshow .hero__panel::before {
    display:none;
}
.hero--slideshow .hero-frame {
    position:relative;
    height:430px;
    border-radius:30px;
    overflow:hidden;
    border:6px solid rgba(255,255,255,.92);
    box-shadow:0 30px 60px rgba(0,0,0,.30), 0 0 0 2px rgba(242,169,0,.55);
    background:#e0e5f0;
}
.hero--slideshow .hero-frame .hero-slides {
    position:absolute;
    inset:0;
    z-index:0;
    background:#e0e5f0;
}
.hero--slideshow .hero-frame .hero-slide, .hero--slideshow .hero-frame .hero-slide:nth-child(n) {
    background-size:auto 104%;
    background-repeat:no-repeat;
    background-position:100% 100%;
    transform:none;
}
.hero--slideshow .hero-frame .hero-slide:after {
    display:none;
}
/* Next-workshop card: solid white, overlaps the bottom-left corner of the photo */ .hero--slideshow .next-card {
    position:absolute;
    left:-44px;
    bottom:-8px;
    width:280px;
    z-index:3;
    background:#ffffff;
    border:1px solid #efe7d2;
    border-radius:22px;
    padding:22px 24px 24px;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    box-shadow:0 22px 48px rgba(6,12,28,.32);
}
.hero--slideshow .next-card .tagline {
    margin-bottom:12px;
}
.hero--slideshow .next-card h3 {
    color:var(--forest);
    font-size:1.2rem;
    line-height:1.3;
    margin-bottom:12px;
}
.hero--slideshow .next-card ul {
    color:var(--muted);
    margin-bottom:16px;
    font-size:.92rem;
}
.hero--slideshow .next-card li .ic {
    color:var(--emerald);
}
.hero--slideshow .next-card .btn {
    padding:11px 22px;
    font-size:.9rem;
}
.hero--slideshow .hero__emblem {
    left:-24px;
    top:-28px;
}
.hero--slideshow .chip--2 {
    right:-14px;
    top:-20px;
}
.hero--slideshow .chip--1 {
    left:-34px;
    right:auto;
    top:130px;
    bottom:auto;
}
@media (max-width:900px) {
    .hero--slideshow .hero__grid {
        grid-template-columns:1fr;
        gap:48px;
    }
    .hero--slideshow .hero-frame {
        height:320px;
    }
}
@media (max-width:560px) {
    .hero--slideshow .hero-frame {
        height:260px;
    }
    .hero--slideshow .next-card {
        position:relative;
        left:auto;
        bottom:auto;
        width:auto;
        margin:-34px 14px 0;
    }
    .hero--slideshow .hero__panel {
        padding-bottom:10px;
    }
    .hero--slideshow .chip--1 {
        display:none;
    }
    .hero--slideshow .hero__emblem {
        left:-8px;
        top:-22px;
        width:70px;
        height:70px;
    }
    .hero--slideshow .hero__emblem img {
        height:50px;
    }
}
/* =====================================================================
   Events: single-row filter bar (search + dropdowns)
   ===================================================================== */ .ev-bar {
    display:grid;
    grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(140px,1fr)) auto;
    gap:14px;
    align-items:end;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:20px;
    padding:18px 20px;
    box-shadow:var(--shadow-sm);
}
.ev-bar__search {
    display:flex;
    align-items:center;
    gap:10px;
    height:48px;
    padding:0 16px;
    border:1.5px solid var(--line);
    border-radius:12px;
    background:#ffffff;
    color:var(--emerald);
    transition:border-color .2s, box-shadow .2s;
}
.ev-bar__search:focus-within {
    border-color:var(--emerald);
    box-shadow:0 0 0 4px rgba(26,49,108,.12);
}
.ev-bar__search input {
    flex:1;
    min-width:0;
    border:0;
    outline:0;
    background:transparent;
    font:inherit;
    color:var(--ink);
    height:100%;
}
.ev-bar__field {
    display:flex;
    flex-direction:column;
    gap:6px;
}
.ev-bar__field span {
    font-family:var(--font-head);
    font-weight:600;
    font-size:.72rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
}
.ev-bar__field select {
    height:48px;
    padding:0 38px 0 14px;
    border:1.5px solid var(--line);
    border-radius:12px;
    background-color:#ffffff;
    font:inherit;
    color:var(--ink);
    cursor:pointer;
    outline:0;
    appearance:none;
    -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2313734c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 14px center;
    transition:border-color .2s, box-shadow .2s;
}
.ev-bar__field select:focus {
    border-color:var(--emerald);
    box-shadow:0 0 0 4px rgba(26,49,108,.12);
}
.ev-bar__clear {
    height:48px;
    padding:0 22px;
    border-radius:12px;
    border:1.5px solid var(--line);
    background:#ffffff;
    font:inherit;
    font-weight:600;
    color:var(--forest);
    cursor:pointer;
    transition:background .2s,border-color .2s;
}
.ev-bar__clear:hover {
    background:var(--emerald-l);
    border-color:var(--emerald);
}
@media (max-width:1000px) {
    .ev-bar {
        grid-template-columns:1fr 1fr 1fr;
    }
    .ev-bar__search {
        grid-column:1 / -1;
    }
    .ev-bar__clear {
        grid-column:1 / -1;
    }
}
@media (max-width:620px) {
    .ev-bar {
        grid-template-columns:1fr;
    }
}
/* =====================================================================
   HOME: clean split banner (v4) - text on solid colour, photos never overlapped
   ===================================================================== */ .btn--ghost {
    background:transparent;
    color:#ffffff;
    border:1.5px solid rgba(255,255,255,.75);
}
.btn--ghost:hover {
    background:#ffffff;
    color:var(--forest);
}
.bh {
    display:grid;
    grid-template-columns:minmax(0,5fr) minmax(0,7fr);
    background:var(--forest);
    position:relative;
}
.bh__panel {
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:center;
    color:#ffffff;
    background:#0f1936;
    padding:48px 44px 40px max(24px,calc((100vw - 1200px)/2 + 24px));
    min-height:clamp(380px,48vh,500px);
}
.bh__leaf {
    position:absolute;
    opacity:.14;
    pointer-events:none;
}
.bh__leaf svg {
    width:100%;
    height:100%;
    fill:#8296c1;
}
.bh__leaf .v {
    fill:none;
    stroke:#0f1936;
    stroke-width:3;
    stroke-linecap:round;
}
.bh__leaf--1 {
    width:130px;
    left:-30px;
    bottom:-20px;
    transform:rotate(28deg);
}
.bh__leaf--2 {
    width:86px;
    right:22px;
    top:-14px;
    transform:rotate(196deg);
    opacity:.1;
}
.bh__inner {
    position:relative;
    z-index:2;
}
.bh__count {
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:16px;
    font-family:var(--font-head);
}
.bh__count b {
    display:inline-grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:var(--gold);
    color:var(--forest);
    font-size:.98rem;
    font-weight:700;
}
.bh__count b.pop {
    animation:bhPop .5s var(--ease);
}
@keyframes bhPop {
    0% {
        transform:scale(.6);
    }
    60% {
        transform:scale(1.12);
    }
    100% {
        transform:scale(1);
    }
}
.bh__count span {
    color:#c1cade;
    font-size:.88rem;
}
.bh__kicker {
    margin:0 0 10px;
    font-family:var(--font-head);
    font-size:.74rem;
    font-weight:600;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--gold-soft);
}
.bh h1 {
    margin:0 0 16px;
    color:#ffffff;
    font-size:clamp(1.8rem,2.9vw,2.8rem);
    line-height:1.12;
    font-weight:700;
}
.bh h1 em {
    font-style:normal;
    display:inline-block;
    white-space:nowrap;
    margin-top:6px;
    padding:2px 14px 4px;
    background:var(--gold);
    color:var(--forest);
    border-radius:10px;
}
.bh__lead {
    color:#d5dbe8;
    font-size:1rem;
    max-width:42ch;
    margin:0 0 24px;
}
.bh__btns {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.bh__inner > * {
    animation:bhIn .8s var(--ease) both;
}
.bh__inner > :nth-child(2) {
    animation-delay:.08s;
}
.bh__inner > :nth-child(3) {
    animation-delay:.16s;
}
.bh__inner > :nth-child(4) {
    animation-delay:.26s;
}
.bh__inner > :nth-child(5) {
    animation-delay:.36s;
}
@keyframes bhIn {
    from {
        opacity:0;
        transform:translateY(20px);
    }
    to {
        opacity:1;
        transform:none;
    }
}
.bh__ctrl {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:30px;
}
.bh__arrow {
    width:40px;
    height:40px;
    border-radius:50%;
    border:1.5px solid rgba(255,255,255,.4);
    display:grid;
    place-items:center;
    cursor:pointer;
    background:transparent;
    color:#ffffff;
    transition:background .25s,color .25s,transform .25s var(--ease);
}
.bh__arrow:hover {
    background:var(--gold);
    border-color:var(--gold);
    color:var(--forest);
    transform:scale(1.08);
}
.bh__arrow--prev svg {
    transform:rotate(180deg);
}
.bh__dots {
    display:flex;
    gap:7px;
    padding:0 6px;
}
.bh__dots button {
    width:9px;
    height:9px;
    padding:0;
    border:0;
    border-radius:99px;
    background:rgba(255,255,255,.4);
    cursor:pointer;
    transition:width .35s var(--ease),background .25s;
}
.bh__dots button.is-on {
    width:26px;
    background:var(--gold);
}
.bh__media {
    position:relative;
    overflow:hidden;
    background:#0f1936;
    min-height:clamp(380px,48vh,500px);
}
.bh__slide {
    position:absolute;
    inset:0;
    margin:0;
    overflow:hidden;
    visibility:hidden;
    z-index:1;
}
.bh__slide img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:50% 30%;
    display:block;
}
.bh__slide.is-leaving {
    visibility:visible;
    z-index:2;
    animation:bhOut 1s var(--ease) both;
}
.bh__slide.is-active {
    visibility:visible;
    z-index:3;
    animation:bhIn2 1s var(--ease) both;
}
.bh__slide:first-child.is-active {
    animation:none;
}
.bh__slide.is-active img {
    animation:bhZoom 6.5s ease-out both;
}
@keyframes bhIn2 {
    from {
        clip-path:inset(0 0 0 100%);
    }
    to {
        clip-path:inset(0);
    }
}
@keyframes bhOut {
    from {
        transform:translateX(0);
    }
    to {
        transform:translateX(-8%);
    }
}
@keyframes bhZoom {
    from {
        transform:scale(1.05);
    }
    to {
        transform:scale(1);
    }
}
.bh__bar {
    position:absolute;
    z-index:6;
    left:0;
    right:0;
    bottom:0;
    height:4px;
    background:rgba(255,255,255,.15);
}
.bh__bar i {
    display:block;
    height:100%;
    background:var(--gold);
    transform-origin:left;
    transform:scaleX(0);
}
@media (max-width:900px) {
    .bh {
        grid-template-columns:1fr;
    }
    .bh__media {
        order:-1;
        min-height:0;
        aspect-ratio:3/2;
    }
    .bh__panel {
        min-height:0;
        padding:34px 22px 34px;
    }
    .bh__leaf--2 {
        display:none;
    }
}
@media (prefers-reduced-motion:reduce) {
    .bh__slide.is-active,.bh__slide.is-leaving,.bh__slide.is-active img,.bh__inner > * {
        animation:none!important;
    }
}
.stats {
    margin-top:0!important;
    padding-top:44px;
    z-index:1!important;
    position:relative;
    margin-bottom:0!important;
}
/* Featured news (home) + story (news page) */ .feat {
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:42px;
    align-items:center;
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:28px;
    padding:26px;
    box-shadow:var(--shadow);
}
.feat__imgs {
    position:relative;
    display:block;
    min-height:380px;
}
.feat__imgs img {
    position:absolute;
    object-fit:cover;
    border-radius:20px;
    box-shadow:var(--shadow-sm);
    border:5px solid #ffffff;
    transition:transform .6s var(--ease);
}
.feat__a {
    left:0;
    top:0;
    width:72%;
    height:78%;
}
.feat__b {
    right:0;
    bottom:0;
    width:58%;
    height:58%;
}
.feat__imgs:hover .feat__a {
    transform:translate(-4px,-4px) scale(1.02);
}
.feat__imgs:hover .feat__b {
    transform:translate(4px,4px) scale(1.03);
}
.feat__tag {
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:var(--font-head);
    font-size:.76rem;
    font-weight:600;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--gold-d);
    background:var(--gold-l);
    padding:6px 14px;
    border-radius:999px;
}
.feat__tag i {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--gold-d);
}
.feat__body h3 {
    font-size:1.7rem;
    line-height:1.25;
    margin:14px 0 10px;
}
.feat__body p {
    color:var(--muted);
}
.feat__body blockquote {
    margin:18px 0 22px;
    padding:4px 0 4px 18px;
    border-left:4px solid var(--gold);
    color:var(--forest);
    font-style:italic;
}
.story {
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:28px;
    padding:clamp(22px,4vw,46px);
    box-shadow:var(--shadow-sm);
    scroll-margin-top:100px;
}
.story__head h2 {
    font-size:clamp(1.6rem,3vw,2.3rem);
    line-height:1.2;
    margin:14px 0 24px;
    max-width:26ch;
}
.story__photos {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin-bottom:30px;
}
.story__photos figure {
    margin:0;
    border-radius:20px;
    overflow:hidden;
    background:var(--mint);
}
.story__photos img {
    width:100%;
    height:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    display:block;
    transition:transform .6s var(--ease);
}
.story__photos figure:hover img {
    transform:scale(1.04);
}
.story__photos figcaption {
    grid-column:1/-1;
    font-size:.88rem;
    color:var(--muted);
    text-align:center;
}
.story__body {
    max-width:74ch;
    margin-inline:auto;
}
.story__body p {
    font-size:1.06rem;
    line-height:1.8;
}
.story__hi {
    font-family:var(--font-head);
    font-weight:600;
    color:var(--forest);
}
.story__sig {
    color:var(--gold-d);
    font-weight:600;
    margin-top:26px;
}
@media (max-width:900px) {
    .feat {
        grid-template-columns:1fr;
        padding:18px;
        gap:24px;
    }
    .feat__imgs {
        min-height:300px;
    }
    .story__photos {
        grid-template-columns:1fr;
    }
}
/* =====================================================================
   Events filter (v3): command bar
   ===================================================================== */ .ev-list[hidden] {
    display:none!important;
}
.evf {
    background:#ffffff;
    border:1px solid var(--line);
    border-radius:26px;
    padding:22px 24px 18px;
    box-shadow:var(--shadow);
    position:relative;
    overflow:hidden;
}
.evf::before {
    content:"";
    position:absolute;
    left:0;
    top:0;
    right:0;
    height:4px;
    background:var(--emerald);
}
.evf__top {
    display:flex;
    gap:12px;
    margin:6px 0 20px;
    flex-wrap:wrap;
}
.evf__search {
    flex:1 1 320px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 14px 0 20px;
    border:2px solid var(--line);
    border-radius:16px;
    background:var(--mint);
    color:var(--emerald);
    transition:border-color .25s,box-shadow .25s,background .25s;
}
.evf__search:focus-within {
    border-color:var(--emerald);
    background:#ffffff;
    box-shadow:0 0 0 4px rgba(26,49,108,.12);
}
.evf__search input {
    flex:1;
    min-width:0;
    border:0;
    outline:0;
    background:transparent;
    font:inherit;
    font-size:1.02rem;
    padding:15px 0;
    color:var(--ink);
}
.evf__search kbd {
    font:600 .78rem var(--font-head);
    color:var(--muted);
    border:1px solid var(--line);
    border-bottom-width:2px;
    border-radius:7px;
    padding:2px 8px;
    background:#ffffff;
}
.evf__search:focus-within kbd {
    display:none;
}
.evf__x {
    display:none;
    border:0;
    background:var(--emerald-l);
    color:var(--emerald);
    width:26px;
    height:26px;
    border-radius:50%;
    font-size:1.1rem;
    line-height:1;
    cursor:pointer;
}
.evf__search:has(input:not(:placeholder-shown)) .evf__x {
    display:block;
}
.evf__search:has(input:not(:placeholder-shown)) kbd {
    display:none;
}
.evf__sort {
    display:inline-flex;
    align-items:center;
    gap:9px;
    font:600 .92rem var(--font-body);
    padding:0 20px;
    min-height:52px;
    border-radius:16px;
    border:2px solid var(--line);
    background:#ffffff;
    color:var(--forest);
    cursor:pointer;
    transition:border-color .25s,transform .25s var(--ease);
}
.evf__sort:hover {
    border-color:var(--gold);
    transform:translateY(-2px);
}
.evf__row {
    display:flex;
    margin-bottom:16px;
}
.evf__row--2 {
    gap:18px 40px;
    flex-wrap:wrap;
}
.evf__group {
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    min-width:0;
}
.evf__label {
    font:600 .74rem var(--font-head);
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--muted);
    min-width:70px;
}
.evf__seg {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.evf__seg button {
    display:inline-flex;
    align-items:center;
    gap:8px;
    font:600 .9rem var(--font-body);
    padding:9px 16px;
    border-radius:12px;
    border:1.5px solid var(--line);
    background:#ffffff;
    color:var(--forest);
    cursor:pointer;
    transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease),box-shadow .25s;
}
.evf__seg--pill button {
    border-radius:999px;
    padding:8px 16px;
}
.evf__seg button:hover {
    border-color:var(--emerald);
    transform:translateY(-2px);
}
.evf__seg button em {
    font-style:normal;
    font-size:.74rem;
    min-width:22px;
    padding:1px 7px;
    border-radius:99px;
    background:var(--emerald-l);
    color:var(--emerald-d);
    text-align:center;
    transition:background .25s,color .25s;
}
.evf__seg button.is-on {
    background:var(--forest);
    border-color:var(--forest);
    color:#ffffff;
    box-shadow:0 8px 18px rgba(13,21,45,.22);
}
.evf__seg button.is-on em {
    background:var(--gold);
    color:var(--forest);
}
.evf__seg button.is-zero {
    opacity:.45;
}
.evf__t i {
    width:9px;
    height:9px;
    border-radius:50%;
    background:var(--emerald);
}
.evf__t--training i {
    background:var(--gold);
}
.evf__t--seminar i {
    background:var(--terra);
}
.evf__t--meet i {
    background:#1f5f7e;
}
.evf__foot {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px 20px;
    flex-wrap:wrap;
    padding-top:16px;
    border-top:1px dashed var(--line);
}
.evf .ev-count {
    margin:0;
    font-weight:500;
}
.evf .ev-count b {
    color:var(--forest);
    font-size:1.1rem;
}
.evf__active {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
}
.evf__active[hidden] {
    display:none;
}
.ev-chip {
    display:inline-flex;
    align-items:center;
    gap:8px;
    font:600 .82rem var(--font-body);
    padding:6px 8px 6px 14px;
    border-radius:99px;
    background:var(--gold-l);
    color:var(--gold-d);
    border:1px solid #e6d6a6;
    cursor:pointer;
    animation:bhPop .35s var(--ease);
}
.ev-chip i {
    font-style:normal;
    width:20px;
    height:20px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#ffffff;
    line-height:1;
}
.ev-chip:hover i {
    background:var(--terra);
    color:#ffffff;
}
.ev-clearall {
    font:600 .82rem var(--font-body);
    background:none;
    border:0;
    color:var(--emerald);
    text-decoration:underline;
    cursor:pointer;
}
.ev-list {
    margin-top:24px;
}
@media (max-width:700px) {
    .evf {
        padding:18px 16px 14px;
    }
    .evf__group {
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }
    .evf__sort {
        width:100%;
        justify-content:center;
        min-height:46px;
    }
    .evf__seg button {
        padding:8px 13px;
        font-size:.85rem;
    }
}
.evf__search input::-webkit-search-cancel-button {
    -webkit-appearance:none;
    display:none;
}
.bh {
    min-height:clamp(500px,72vh,650px);
}
.bh__panel {
    padding-bottom:34px;
}
.bh__ctrl {
    margin-top:22px;
}
.bh__bar {
    bottom:0;
    display:block;
}
@media (max-width:900px) {
    .bh__panel {
        padding-bottom:26px;
    }
    .bh__ctrl {
        margin-top:18px;
    }
}
/* Real TNPSA event photography for inner-page banners; no cartoon artwork */ .page-title,.page-title[class*="page-title--"] {
    background-size:cover!important;
    background-position:center 42%!important;
    background-color:#0f1936!important;
}
.page-title--about {
    background-image:linear-gradient(rgba(8,15,36,.88),rgba(8,15,36,.88)),url('../img/hero/annual-meet-1.jpg')!important;
}
.page-title--events {
    background-image:linear-gradient(rgba(8,15,36,.88),rgba(8,15,36,.88)),url('../img/gallery/member-audience.jpg')!important;
}
.page-title--news {
    background-image:linear-gradient(rgba(8,15,36,.88),rgba(8,15,36,.88)),url('../img/gallery/annual-meet-stage.png')!important;
}
.page-title--gallery {
    background-image:linear-gradient(rgba(8,15,36,.88),rgba(8,15,36,.88)),url('../img/gallery/special-session.png')!important;
}
.page-title--contact {
    background-image:linear-gradient(rgba(8,15,36,.88),rgba(8,15,36,.88)),url('../img/gallery/microgreens-session.png')!important;
}
.page-title--membership {
    background-image:linear-gradient(rgba(8,15,36,.88),rgba(8,15,36,.88)),url('../img/hero/annual-meet-3.jpg')!important;
}
.page-title--privacy,.page-title--terms {
    background-image:linear-gradient(rgba(8,15,36,.90),rgba(8,15,36,.90)),url('../img/hero/annual-meet-4.jpg')!important;
}
/* Real-photo frames used on inner pages */ .photo-frame {
    position:relative;
    border-radius:24px;
    overflow:hidden;
    border:5px solid #ffffff;
    box-shadow:var(--shadow);
}
.photo-frame img {
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}
.evd__banner img {
    display:block;
    width:100%;
    aspect-ratio:16/8;
    object-fit:cover;
}
.ev-spot__art img {
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:20px;
    border:4px solid rgba(255,255,255,.9);
}
/* TNPSA refinement: seamless dropdown hover target and compact hero-to-stats spacing */ .main-nav .has-sub {
    position: relative;
}
.main-nav .sub {
    padding-top: 6px;
}
.main-nav .has-sub::after {
    content:'';
    position:absolute;
    top:100%;
    left:0;
    right:0;
    height:8px;
}
.activity-year-filter {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    margin:0 0 30px;
    padding:16px 18px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--white);
}
.activity-year-filter label {
    font-weight:600;
    color:var(--forest);
}
.activity-year-filter select {
    min-width:220px;
    max-width:100%;
    padding:11px 38px 11px 13px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#ffffff;
    color:var(--forest);
    font:inherit;
}
@media (max-width: 900px) {
    .bh__panel {
        min-height: 350px;
    }
    .stats {
        margin-top: -38px;
    }
    .stats__grid {
        gap: 12px;
    }
}
/* =====================================================================
   Home + Annual Meet pages: navy, marigold and cream. Flat colours only.
   ===================================================================== */ .btn--primary {
    background:var(--forest);
    color:#fff;
}
.btn--primary:hover {
    background:var(--emerald);
    color:#fff;
}
.btn--gold {
    background:var(--gold);
    color:var(--forest);
}
.btn--gold:hover {
    background:#ffc233;
    color:var(--forest);
}
.btn--outline {
    border-color:var(--forest);
    color:var(--forest);
}
.btn--outline:hover {
    background:var(--forest);
    color:#fff;
}
.hv {
    background:var(--ivory);
    padding:clamp(34px,5vw,72px) 0;
}
.hv__grid {
    display:grid;
    grid-template-columns:minmax(0,5fr) minmax(0,6fr);
    gap:clamp(28px,4vw,64px);
    align-items:center;
}
.hv__kicker {
    display:inline-block;
    font:600 .76rem var(--font-head);
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--forest);
    background:var(--gold);
    padding:7px 14px;
    border-radius:6px;
    margin-bottom:20px;
}
.hv__kicker--on-dark {
    background:var(--gold);
    color:var(--forest);
}
.hv h1 {
    font-size:clamp(2.2rem,4.4vw,3.7rem);
    margin:0 0 18px;
    color:var(--forest);
}
.hv h1 span {
    color:var(--terra);
}
.hv__copy p {
    font-size:1.08rem;
    color:var(--text);
    max-width:46ch;
    margin:0 0 26px;
}
.hv__btns {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.hv__media {
    position:relative;
    padding:0 18px 18px 0;
}
.hv__media::before {
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:82%;
    height:82%;
    background:var(--gold);
    border-radius:26px;
}
.hv__frame {
    position:relative;
    overflow:hidden;
    border-radius:26px;
    background:var(--forest);
    aspect-ratio:3/2;
    border:6px solid #fff;
}
.hv-track {
    display:flex;
    height:100%;
    will-change:transform;
}
.hv-slide {
    position:relative;
    flex:0 0 100%;
    margin:0;
    height:100%;
}
.hv-slide img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:50% 45%;
    display:block;
}
.hv-slide figcaption {
    position:absolute;
    left:16px;
    bottom:16px;
    background:var(--forest);
    color:#fff;
    font:600 .82rem var(--font-head);
    padding:7px 14px;
    border-radius:6px;
}
.hv-arrow {
    position:absolute;
    top:50%;
    width:42px;
    height:42px;
    margin-top:-21px;
    border:0;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff;
    color:var(--forest);
    cursor:pointer;
    z-index:3;
    transition:background .25s;
}
.hv-arrow:hover {
    background:var(--gold);
}
.hv-arrow--prev {
    left:12px;
}
.hv-arrow--prev svg {
    transform:rotate(180deg);
}
.hv-arrow--next {
    right:12px;
}
.hv-band {
    background:var(--forest);
    color:#fff;
}
.hv-band__in {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 30px;
    padding:16px 0;
    font-size:.95rem;
}
.hv-band b {
    font-family:var(--font-head);
    color:var(--gold);
    letter-spacing:.14em;
}
.hv-band a {
    margin-left:auto;
    color:var(--gold-soft);
    font-weight:600;
}
.hv-band a:hover {
    color:#fff;
}
.hv-nums {
    background:#fff;
    border-bottom:1px solid var(--line);
}
.hv-nums__grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
}
.hv-num {
    padding:30px 20px;
    text-align:center;
    border-right:1px solid var(--line);
}
.hv-num:last-child {
    border-right:0;
}
.hv-about {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(28px,5vw,80px);
    align-items:center;
}
.hv-list {
    list-style:none;
    margin:0;
    padding:0;
    counter-reset:x;
}
.hv-list li {
    display:grid;
    grid-template-columns:56px 1fr;
    gap:16px;
    padding:20px 0;
    border-bottom:1px solid var(--line);
}
.hv-list li:first-child {
    border-top:1px solid var(--line);
}
.hv-list li > span {
    font:700 1.5rem var(--font-head);
    color:var(--terra);
}
.hv-list h3 {
    margin:0 0 4px;
}
.hv-list p {
    margin:0;
    color:var(--muted);
}
.hv-feature {
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:34px;
    align-items:center;
    background:var(--forest);
    color:#fff;
    border-radius:30px;
    padding:clamp(26px,4vw,52px);
}
.hv-feature h2 {
    color:#fff;
    font-size:clamp(1.5rem,2.8vw,2.2rem);
    margin-bottom:12px;
}
.hv-feature p {
    color:#c9d3ee;
    margin-bottom:24px;
}
.hv-feature__pics {
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:12px;
    align-items:end;
}
.hv-feature__pics img {
    width:100%;
    border-radius:16px;
    object-fit:cover;
    border:4px solid #fff;
}
.hv-feature__pics img:first-child {
    aspect-ratio:4/5;
}
.hv-feature__pics img:last-child {
    aspect-ratio:3/2;
}
.hm-head {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:24px;
    flex-wrap:wrap;
    margin-bottom:30px;
}
.hm-head p {
    max-width:44ch;
    color:var(--muted);
    margin:0;
}
.hv-cards {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}
.hv-card {
    background:#fff;
    border:1px solid var(--line);
    border-top:6px solid var(--forest);
    border-radius:18px;
    padding:26px 24px;
    transition:transform .3s var(--ease);
}
.hv-card:hover {
    transform:translateY(-5px);
}
.hv-card--0 {
    border-top-color:var(--gold);
}
.hv-card--1 {
    border-top-color:var(--terra);
}
.hv-card--2 {
    border-top-color:var(--emerald);
}
.hv-card--3 {
    border-top-color:var(--forest);
}
.hv-card__ic {
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:var(--gold-l);
    color:var(--forest);
    margin-bottom:14px;
}
.hv-card p {
    margin:0;
    color:var(--muted);
}
@media (max-width:900px) {
    .hv__grid,.hv-about,.hv-feature {
        grid-template-columns:1fr;
    }
    .hv-nums__grid {
        grid-template-columns:1fr 1fr;
    }
    .hv-num:nth-child(2) {
        border-right:0;
    }
    .hv-num:nth-child(-n+2) {
        border-bottom:1px solid var(--line);
    }
    .hv-cards {
        grid-template-columns:1fr 1fr;
    }
    .hv-band a {
        margin-left:0;
    }
}
@media (max-width:560px) {
    .hv-cards {
        grid-template-columns:1fr;
    }
}
/* Annual Meet page */ .am-hero {
    background:var(--forest);
    color:#fff;
    padding:44px 0 56px;
}
.am-hero .crumbs {
    color:#aab6d8;
    margin-bottom:26px;
}
.am-hero .crumbs a {
    color:#fff;
}
.am-hero__in {
    text-align:center;
}
.am-kicker {
    display:inline-block;
    font:600 .8rem var(--font-head);
    letter-spacing:.18em;
    text-transform:uppercase;
    background:var(--gold);
    color:var(--forest);
    padding:7px 16px;
    border-radius:6px;
}
.am-date {
    margin:18px 0 6px;
    font:600 1.15rem var(--font-head);
    color:var(--gold-soft);
    letter-spacing:.06em;
}
.am-hero h1 {
    color:#fff;
    font-size:clamp(2.6rem,7vw,5.2rem);
    margin:0 0 14px;
}
.am-hero h1 em {
    font-style:normal;
    color:var(--gold);
}
.am-tag {
    color:#c9d3ee;
    font-style:italic;
    max-width:60ch;
    margin:0 auto 34px;
}
.am-facts {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0;
    max-width:1000px;
    margin:0 auto;
    border:1px solid #3a4a7c;
    border-radius:16px;
    overflow:hidden;
    text-align:left;
}
.am-facts div {
    padding:18px 20px;
    border-right:1px solid #3a4a7c;
}
.am-facts div:last-child {
    border-right:0;
}
.am-facts small {
    display:block;
    color:var(--gold);
    font:600 .72rem var(--font-head);
    letter-spacing:.14em;
    text-transform:uppercase;
    margin-bottom:4px;
}
.am-facts b {
    font-weight:600;
    font-size:.98rem;
}
.am-about {
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:clamp(28px,5vw,70px);
    align-items:center;
}
.am-session {
    background:var(--ivory);
    border-left:6px solid var(--gold);
    border-radius:12px;
    padding:20px 24px;
    margin:22px 0 26px;
}
.am-session h3 {
    font-size:1.35rem;
    margin:10px 0 6px;
}
.am-person {
    margin:8px 0 0;
}
.am-person b {
    color:var(--terra);
    margin-right:8px;
}
.am-chip {
    display:inline-block;
    font:600 .72rem var(--font-head);
    letter-spacing:.14em;
    text-transform:uppercase;
    background:var(--forest);
    color:#fff;
    padding:5px 12px;
    border-radius:6px;
}
.am-portrait {
    margin:0;
    position:relative;
    padding:0 16px 16px 0;
}
.am-portrait::before {
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:86%;
    height:86%;
    background:var(--gold);
    border-radius:22px;
}
.am-portrait img {
    position:relative;
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    border-radius:22px;
    border:6px solid #fff;
    display:block;
}
.am-portrait figcaption {
    position:relative;
    margin-top:12px;
    font-weight:600;
    color:var(--forest);
}
.am-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}
.am-grid__item {
    display:block;
    overflow:hidden;
    border-radius:14px;
    aspect-ratio:4/3;
    background:var(--forest);
}
.am-grid__item img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s var(--ease);
}
.am-grid__item:hover img {
    transform:scale(1.06);
}
.am-contact {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:28px;
    flex-wrap:wrap;
    background:var(--gold-l);
    border-radius:26px;
    padding:clamp(24px,4vw,44px);
}
.am-contact h2 {
    margin-bottom:6px;
}
.am-contact p {
    margin:0;
}
.am-contact__box {
    display:flex;
    flex-direction:column;
    gap:10px;
    align-items:flex-start;
}
.am-contact__box a:not(.btn) {
    font-weight:600;
    color:var(--forest);
}
.am-contact__box .ic {
    vertical-align:-3px;
    color:var(--terra);
}
@media (max-width:900px) {
    .am-facts {
        grid-template-columns:1fr 1fr;
    }
    .am-facts div:nth-child(2) {
        border-right:0;
    }
    .am-facts div:nth-child(-n+2) {
        border-bottom:1px solid #3a4a7c;
    }
    .am-about {
        grid-template-columns:1fr;
    }
    .am-portrait {
        max-width:420px;
    }
    .am-grid {
        grid-template-columns:1fr 1fr;
    }
}
/* =========================================================
   TNPSA homepage refresh — editorial layout, solid colours,
   clean photo space and responsive content.
   ========================================================= */ .home-hero {
    background:#f8f5ee;
    padding:clamp(38px,5.5vw,76px) 0 clamp(34px,4vw,58px);
    overflow:hidden;
}
.home-hero__grid {
    display:grid;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    align-items:center;
    gap:clamp(30px,5vw,72px);
}
.home-hero__copy {
    min-width:0;
}
.home-hero__eyebrow {
    display:inline-flex;
    align-items:center;
    gap:10px;
    font:700 .76rem var(--font-head);
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#24477a;
    margin-bottom:22px;
}
.home-hero__eyebrow i {
    width:5px;
    height:5px;
    border-radius:50%;
    background:#c18a24;
    display:inline-block;
}
.home-hero__association {
    margin:0 0 10px;
    color:#b06b34;
    font:700 .82rem var(--font-head);
    text-transform:uppercase;
    letter-spacing:.1em;
}
.home-hero h1 {
    font-size:clamp(2.45rem,4.7vw,4.45rem);
    line-height:1.06;
    letter-spacing:-.045em;
    color:#1b2a4e;
    margin:0 0 20px;
    max-width:12ch;
}
.home-hero h1 em {
    color:#b75e45;
    font-style:normal;
}
.home-hero__intro {
    max-width:49ch;
    color:#4c566b;
    font-size:1.04rem;
    line-height:1.8;
    margin:0 0 26px;
}
.home-hero__actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.home-hero__actions .btn--outline {
    background:#fff;
    border-color:#d5d9e2;
    color:#1b2a4e;
}
.home-hero__actions .btn--outline:hover {
    border-color:#c18a24;
    background:#fffaf0;
}
.home-hero__note {
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:26px;
    color:#687186;
    font-size:.83rem;
}
.home-hero__note span {
    color:#b88322;
}
.home-hero__visual {
    min-width:0;
}
.home-slider {
    position:relative;
    width:100%;
    overflow:hidden;
    aspect-ratio:1.18 / 1;
    background:#e6e0d5;
    border-radius:8px 36px 8px 36px;
    box-shadow:0 22px 46px rgba(27,42,78,.13);
}
.home-slider__track {
    display:flex;
    height:100%;
    will-change:transform;
}
.home-slider__slide {
    flex:0 0 100%;
    width:100%;
    height:100%;
    margin:0;
    overflow:hidden;
}
.home-slider__slide img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 43%;
}
.home-slider__arrow {
    position:absolute;
    top:50%;
    z-index:3;
    transform:translateY(-50%);
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border:1px solid rgba(255,255,255,.8);
    border-radius:50%;
    background:rgba(255,255,255,.94);
    color:#1b2a4e;
    cursor:pointer;
    box-shadow:0 5px 16px rgba(15,28,54,.15);
    transition:background .2s,transform .2s;
}
.home-slider__arrow:hover {
    background:#f2c45f;
    transform:translateY(-50%) scale(1.04);
}
.home-slider__arrow--prev {
    left:14px;
}
.home-slider__arrow--prev .ic {
    transform:rotate(180deg);
}
.home-slider__arrow--next {
    right:14px;
}
.home-hero__photo-note {
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:13px;
    color:#6b7280;
    font-size:.82rem;
}
.home-hero__photo-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:#c18a24;
}
.home-stats {
    background:#fff;
    border-bottom:1px solid #e7e4dc;
}
.home-stats__grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
}
.home-stat {
    min-width:0;
    padding:26px 18px 25px;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    border-right:1px solid #e7e4dc;
}
.home-stat:last-child {
    border-right:0;
}
.home-stat__number {
    color:#1b2a4e;
    font:700 clamp(1.8rem,3vw,2.4rem) var(--font-head);
    line-height:1.15;
}
.home-stat span {
    margin-top:5px;
    color:#687186;
    font-size:.87rem;
}
.home-intro__grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,.95fr);
    gap:clamp(34px,6vw,84px);
    align-items:center;
}
.home-intro__photo {
    position:relative;
    min-width:0;
    padding:0 16px 16px 0;
}
.home-intro__photo::after {
    content:"";
    position:absolute;
    z-index:0;
    right:0;
    bottom:0;
    width:68%;
    height:70%;
    border-radius:8px 26px 8px 26px;
    background:#e8c779;
}
.home-intro__photo img {
    position:relative;
    z-index:1;
    width:100%;
    aspect-ratio:1.2 / 1;
    object-fit:cover;
    border-radius:8px 26px 8px 26px;
}
.home-intro__photo-label {
    position:absolute;
    z-index:2;
    left:20px;
    bottom:28px;
    width:min(310px,calc(100% - 44px));
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:15px 18px;
    background:#fff;
    border-left:4px solid #c18a24;
    box-shadow:0 8px 22px rgba(20,28,51,.12);
}
.home-intro__photo-label strong {
    color:#1b2a4e;
    font:700 1rem var(--font-head);
}
.home-intro__photo-label span {
    color:#5f687b;
    font-size:.82rem;
}
.home-intro__content h2 {
    font-size:clamp(1.9rem,3.5vw,2.85rem);
    max-width:15ch;
    margin-bottom:17px;
}
.home-intro__content > p {
    color:#5f687b;
    line-height:1.85;
}
.home-checks {
    list-style:none;
    padding:0;
    margin:22px 0 28px;
    display:grid;
    gap:12px;
}
.home-checks li {
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:#36435b;
}
.home-checks .ic {
    flex:0 0 18px;
    color:#b17821;
    margin-top:4px;
}
.home-support {
    background:#f8f5ee;
}
.home-section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:26px;
    margin-bottom:30px;
}
.home-section-heading h2 {
    margin:0;
    font-size:clamp(1.8rem,3vw,2.6rem);
}
.home-section-heading > p {
    max-width:43ch;
    margin:0;
    color:#687186;
}
.home-support__grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.home-support-card {
    position:relative;
    min-width:0;
    background:#fff;
    border:1px solid #e5e1d7;
    border-radius:8px 22px 8px 22px;
    padding:26px 25px 28px;
    transition:transform .22s,box-shadow .22s;
}
.home-support-card:hover {
    transform:translateY(-4px);
    box-shadow:0 15px 32px rgba(27,42,78,.08);
}
.home-support-card__number {
    position:absolute;
    top:20px;
    right:22px;
    color:#c8cbd3;
    font:700 .8rem var(--font-head);
    letter-spacing:.08em;
}
.home-support-card__icon {
    display:grid;
    place-items:center;
    width:50px;
    height:50px;
    margin-bottom:18px;
    border-radius:14px;
    background:#f5e8c9;
    color:#1b2a4e;
}
.home-support-card:nth-child(3n+2) .home-support-card__icon {
    background:#f8e5df;
    color:#a94e3b;
}
.home-support-card h3 {
    margin-bottom:9px;
    font-size:1.13rem;
}
.home-support-card p {
    margin:0;
    color:#687186;
    font-size:.94rem;
}
.home-news {
    background:#fff;
}
.home-news-card {
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    border:1px solid #e6e3da;
    border-radius:8px 28px 8px 28px;
    overflow:hidden;
    background:#fff;
}
.home-news-card__photos {
    min-width:0;
    display:block;
    overflow: hidden;
    background:#eee7d8;
}
.home-news-card__photos img {
    display:block;
    width:100%;
    height:100%;
    min-height:0;
    object-fit:cover;
    object-position: center;
}
.home-news-card__body {
    padding:clamp(24px,4vw,46px);
    align-self:center;
}
.home-news-card__date {
    color:#9a6722;
    font:700 .72rem var(--font-head);
    text-transform:uppercase;
    letter-spacing:.1em;
}
.home-news-card__date i {
    font-style:normal;
    padding:0 4px;
}
.home-news-card__body h3 {
    font-size:clamp(1.35rem,2.4vw,1.85rem);
    margin:13px 0 13px;
}
.home-news-card__body p {
    color:#687186;
    line-height:1.8;
}
.home-events {
    background:#f8f5ee;
}
.home-events__grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}
.home-event-card {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:0;
    padding:25px 24px;
    background:#fff;
    border:1px solid #e5e1d7;
    border-radius:8px 20px 8px 20px;
    color:#36435b;
}
.home-event-card:hover {
    color:#36435b;
    border-color:#d1ad5e;
    box-shadow:0 12px 28px rgba(27,42,78,.07);
}
.home-event-card__type {
    padding:5px 9px;
    border-radius:4px;
    background:#f5e8c9;
    color:#77521a;
    font:700 .7rem var(--font-head);
    letter-spacing:.08em;
    text-transform:uppercase;
}
.home-event-card h3 {
    margin:15px 0 9px;
}
.home-event-card p {
    color:#687186;
    font-size:.92rem;
}
.home-event-card__meta {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:5px;
    color:#687186;
    font-size:.78rem;
    margin-top:auto;
    padding-top:12px;
}
.home-event-card__meta i {
    font-style:normal;
    padding:0 3px;
}
.home-event-card__link {
    display:flex;
    align-items:center;
    gap:7px;
    margin-top:18px;
    color:#1b2a4e;
    font-weight:700;
    font-size:.88rem;
}
.home-events__empty {
    padding:32px;
    border:1px solid #e5e1d7;
    background:#fff;
    border-radius:12px;
    text-align:center;
}
.home-events__empty p {
    color:#687186;
}
.home-districts__head {
    text-align:center;
    max-width:700px;
    margin:0 auto 28px;
}
.home-districts__head h2 {
    margin-bottom:10px;
}
.home-districts__head p {
    color:#687186;
}
.home-districts__list {
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
}
.home-districts__list span {
    border:1px solid #e2dfd5;
    background:#fff;
    border-radius:99px;
    padding:7px 14px;
    color:#47536b;
    font-size:.86rem;
}
.home-join {
    padding:0 0 82px;
    background:#fff;
}
.home-join__inner {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:28px;
    padding:clamp(28px,4vw,48px);
    background:#1b2a4e;
    color:#fff;
    border-radius:8px 28px 8px 28px;
}
.home-join__inner > div {
    max-width:700px;
}
.home-join__inner > div > span {
    color:#f2c45f;
    font:700 .72rem var(--font-head);
    letter-spacing:.14em;
    text-transform:uppercase;
}
.home-join__inner h2 {
    color:#fff;
    margin:8px 0 9px;
    font-size:clamp(1.6rem,3vw,2.35rem);
}
.home-join__inner p {
    color:#d4d9e4;
    margin:0;
}
.home-join__inner .btn--gold {
    flex-shrink:0;
    background:#f2c45f;
    color:#1b2a4e;
}
.home-join__inner .btn--gold:hover {
    background:#fff;
}
@media (max-width:900px) {
    .home-hero__grid,.home-intro__grid,.home-news-card {
        grid-template-columns:1fr;
    }
    .home-hero__grid {
        gap:34px;
    }
    .home-hero h1 {
        max-width:16ch;
    }
    .home-slider {
        aspect-ratio:1.45 / 1;
    }
    .home-intro__photo {
        max-width:680px;
    }
    .home-news-card__photos img {
        min-height:240px;
        max-height:360px;
    }
    .home-support__grid,.home-events__grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .home-support-card:last-child:nth-child(odd) {
        grid-column:1 / -1;
    }
}
@media (max-width:620px) {
    .home-hero {
        padding:32px 0 35px;
    }
    .home-hero__grid {
        gap:26px;
    }
    .home-hero h1 {
        font-size:clamp(2.2rem,10vw,3rem);
        max-width:13ch;
    }
    .home-hero__intro {
        font-size:.97rem;
    }
    .home-hero__actions .btn {
        padding:12px 18px;
    }
    .home-slider {
        aspect-ratio:1.05 / 1;
        border-radius:8px 24px 8px 24px;
    }
    .home-slider__arrow {
        width:38px;
        height:38px;
    }
    .home-stats__grid {
        grid-template-columns:1fr 1fr;
    }
    .home-stat {
        padding:20px 10px;
        border-bottom:1px solid #e7e4dc;
    }
    .home-stat:nth-child(2n) {
        border-right:0;
    }
    .home-stat:nth-last-child(-n+2) {
        border-bottom:0;
    }
    .home-section-heading {
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }
    .home-support__grid,.home-events__grid {
        grid-template-columns:1fr;
    }
    .home-support-card:last-child:nth-child(odd) {
        grid-column:auto;
    }
    .home-news-card__photos img {
        min-height:190px;
    }
    .home-news-card__body {
        padding:24px 20px;
    }
    .home-join {
        padding-bottom:54px;
    }
    .home-join__inner {
        align-items:flex-start;
        flex-direction:column;
    }
    .home-join__inner .btn {
        align-self:flex-start;
    }
}
/* Inner-page banners use distinct real event photographs with a light wash for clear titles. */ .page-title {
    min-height:250px;
    padding:76px 0 82px;
    color:#1b2a4e !important;
    background-color:#f8f5ee !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
    background-position:center 35% !important;
}
.page-title--about {
    background-image:url('../img/hero/slide-1.jpg') !important;
}
.page-title--events {
    background-image:url('../img/gallery/member-audience.jpg') !important;
}
.page-title--news {
    background-image:url('../img/gallery/microgreens-session.png') !important;
}
.page-title--gallery {
    background-image:url('../img/gallery/special-session.png') !important;
}
.page-title--contact {
    background-image:url('../img/news/minister-1.jpg') !important;
}
.page-title--membership {
    background-image:url('../img/hero/slide-3.jpg') !important;
}
.page-title--privacy {
    background-image:url('../img/hero/slide-1.jpg') !important;
}
.page-title--terms {
    background-image:url('../img/hero/slide-2.jpg') !important;
}
.page-title::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:rgba(248,245,238,.84);
    pointer-events:none;
}
.page-title h1 {
    max-width:100%;
    overflow-wrap:anywhere;
    color:#1b2a4e !important;
    text-shadow:none;
}
.page-title p {
    color:#46516a !important;
    max-width:70ch;
}
.page-title .crumbs {
    color:#46516a !important;
}
.page-title .crumbs a {
    color:#a56c24 !important;
}
.page-title .hero__orbs {
    opacity:0 !important;
}
.page-title::after {
    background:#d6a644 !important;
}
@media (max-width:760px) {
    .page-title {
        min-height:220px;
        padding:62px 0 68px;
        background-position:center 38% !important;
    }
}
@media (max-width:420px) {
    .page-title {
        min-height:205px;
        padding:50px 0 58px;
    }
    .page-title h1 {
        font-size:1.85rem;
    }
}
/* Annual Meet has concluded; facts and speaker caption stay neatly within their cards. */ .am-facts--past {
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:760px;
}
.am-facts--past div {
    min-width:0;
}
.am-facts--past b {
    display:block;
    overflow-wrap:anywhere;
}
.am-past-note {
    margin:18px auto 0;
    max-width:58ch;
    color:#e5e9f1;
}
.am-portrait {
    min-width:0;
}
.am-portrait figcaption {
    display:block;
    position:relative;
    z-index:2;
    width:100%;
    max-width:100%;
    margin:12px 0 0;
    padding:12px 14px;
    box-sizing:border-box;
    border-radius:8px;
    background:#fff5d9;
    color:#1b2a4e;
    line-height:1.45;
    white-space:normal;
    overflow-wrap:anywhere;
}
@media (max-width:900px) {
    .am-facts--past {
        grid-template-columns:1fr 1fr;
    }
}
@media (max-width:520px) {
    .am-facts--past {
        grid-template-columns:1fr;
    }
    .am-facts--past div {
        border-right:0 !important;
        border-bottom:1px solid #3a4a7c;
    }
    .am-facts--past div:last-child {
        border-bottom:0;
    }
}
/* Keep the utility bar useful without allowing its links to create narrow-screen glitches. */ .topstrip__inner {
    gap:8px 18px;
}
.topstrip__group {
    gap:12px 20px;
    min-width:0;
}
.topstrip a {
    overflow-wrap:anywhere;
}
@media (max-width:760px) {
    .topstrip__inner {
        align-items:flex-start;
        padding:8px 0;
    }
    .topstrip__group {
        gap:7px 14px;
    }
    .topstrip__group:last-child {
        margin-left:auto;
    }
}
@media (max-width:520px) {
    .topstrip {
        font-size:.75rem;
    }
    .topstrip__inner {
        display:grid;
        grid-template-columns:1fr;
    }
    .topstrip__group:last-child {
        margin-left:0;
    }
}
/* The Annual Meet page now reads like an event keepsake rather than an active registration page. */ .am-hero {
    background:#f8f5ee !important;
    color:#1b2a4e !important;
    padding:50px 0 58px;
}
.am-hero .crumbs {
    color:#58627a !important;
}
.am-hero .crumbs a {
    color:#a56c24 !important;
}
.am-hero .am-kicker {
    background:#f2c45f;
    color:#1b2a4e;
}
.am-hero .am-date {
    color:#a56c24;
}
.am-hero h1 {
    color:#1b2a4e !important;
}
.am-hero h1 em {
    color:#b75e45 !important;
}
.am-hero .am-tag {
    color:#58627a !important;
}
.am-facts--past {
    border-color:#d9d3c5;
}
.am-facts--past div {
    border-color:#d9d3c5;
}
.am-facts--past small {
    color:#9a6722;
}
.am-facts--past b {
    color:#1b2a4e;
}
.am-past-note {
    color:#58627a;
}
/* =====================================================================
   2026 REFRESH  (everything below intentionally comes last so it wins)
   1. Header: no top utility strip, no backdrop blur (fixes scroll glitches)
   2. Home hero: photo slider, headline reveal, staggered features, button hovers
   3. Inner-page banners: text panel + photo with its own space
   4. Events page: filters on the left, events on the right
   ===================================================================== */  /* ---------- 1. Header ---------- */ .topstrip {
    display:none !important;
}
.navbar {
    position:sticky;
    top:0;
    z-index:100;
    isolation:auto;
    background:#fbf9f4;
    border-bottom:1px solid var(--line);
}
.navbar::before {
    display:none;
}
/* backdrop-filter on a sticky bar caused the scroll flicker */ .navbar.scrolled {
    background:#fff;
    box-shadow:0 6px 20px rgba(13,21,45,.08);
}
.navbar__inner, .brand img {
    transition:none;
}
/* no height animation while scrolling = no layout jumps */ .navbar.scrolled .navbar__inner {
    padding:10px 0;
}
.navbar.scrolled .brand img {
    height:52px;
}
/* ---------- Buttons: richer hover, still quick ---------- */ .btn {
    transition:transform .28s var(--ease),box-shadow .28s,background-color .28s,color .28s,border-color .28s;
    will-change:transform;
}
.btn::before {
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);
}
.btn:hover {
    transform:translateY(-3px);
}
.btn:active {
    transform:translateY(0) scale(.98);
    transition-duration:.1s;
}
.btn:focus-visible, .th button:focus-visible, .th a:focus-visible {
    outline:3px solid #f2a900;
    outline-offset:3px;
}
.btn--outline {
    background-image:linear-gradient(var(--forest),var(--forest));
    background-repeat:no-repeat;
    background-position:0 100%;
    background-size:100% 0;
}
.btn--outline:hover {
    background-size:100% 100%;
    color:#fff;
    box-shadow:0 12px 26px rgba(27,42,78,.22);
}
.btn--primary:hover {
    background:var(--forest);
}
/* ---------- 2. Home hero: see the "TNPSA HERO" block at the end of this file ---------- */  /* ---------- 3. Inner-page banners ---------- */ .pbanner {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    min-height:clamp(260px,24vw,340px);
    background:#f8f5ee;
    border-bottom:4px solid #d6a644;
    overflow:hidden;
}
.pbanner__copy {
    position:relative;
    z-index:2;
    align-self:center;
    min-width:0;
    padding:48px 36px 76px max(4vw,calc((100vw - min(1200px,92vw)) / 2));
}
.pbanner .crumbs {
    color:#58627a;
    font-size:.86rem;
    margin-bottom:12px;
}
.pbanner .crumbs a {
    color:#a56c24;
    font-weight:600;
}
.pbanner .crumbs a:hover {
    text-decoration:underline;
}
.pbanner h1 {
    color:#1b2a4e;
    font-size:clamp(2rem,3.6vw,3rem);
    line-height:1.1;
    letter-spacing:-.03em;
    margin:0;
    overflow-wrap:anywhere;
}
.pbanner p {
    color:#46516a;
    max-width:46ch;
    margin:12px 0 0;
    font-size:1.02rem;
    line-height:1.6;
}
.pbanner__media {
    position:relative;
    min-width:0;
    background:#e6e0d5;
}
.pbanner__media img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.pbanner__media::before {
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:90px;
    z-index:1;
    background:linear-gradient(90deg,#f8f5ee,rgba(248,245,238,0));
    pointer-events:none;
}
@media (prefers-reduced-motion:no-preference) {
    .pbanner__copy > * {
        animation:hhFade .7s var(--ease) both;
    }
    .pbanner__copy > :nth-child(2) {
        animation-delay:.08s;
    }
    .pbanner__copy > :nth-child(3) {
        animation-delay:.16s;
    }
}
@media (max-width:760px) {
    .pbanner {
        grid-template-columns:1fr;
        min-height:0;
    }
    .pbanner__media {
        order:-1;
        height:200px;
    }
    .pbanner__media::before {
        display:none;
    }
    .pbanner__copy {
        padding:26px 4vw 64px;
    }
}
/* about-page pills overlap the banner bottom */ .about-tabs-wrap {
    margin-top:-30px;
}
.pbanner--about .pbanner__copy {
    padding-bottom:76px;
}
.pbanner__copy {
    padding-bottom:52px;
}
/* ---------- 4. Events: filter column on the left, events on the right ---------- */ .ev-layout {
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    gap:30px;
    align-items:start;
}
.ev-aside {
    position:sticky;
    top:96px;
    min-width:0;
}
.ev-layout .ev-bar {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px;
    padding:22px 20px;
    border-radius:20px;
}
.ev-layout .ev-bar__search, .ev-layout .ev-bar__clear {
    grid-column:auto !important;
}
.ev-bar__title {
    margin:0 0 2px;
    font:700 1.05rem var(--font-head);
    color:#1b2a4e;
}
.ev-bar__clear {
    width:100%;
}
.ev-results {
    min-width:0;
}
.ev-results .ev-count {
    margin:0 0 16px;
}
.ev-results .ev-list {
    margin-top:0;
}
.ev-layout .ev-row:hover {
    transform:translateX(5px);
}
@media (max-width:980px) {
    .ev-layout {
        grid-template-columns:1fr;
        gap:22px;
    }
    .ev-aside {
        position:static;
    }
    .ev-layout .ev-bar {
        grid-template-columns:1fr 1fr !important;
    }
    .ev-layout .ev-bar__title, .ev-layout .ev-bar__search, .ev-layout .ev-bar__clear {
        grid-column:1 / -1 !important;
    }
}
@media (max-width:560px) {
    .ev-layout .ev-bar {
        grid-template-columns:1fr !important;
    }
}
@media (min-width:981px) and (max-width:1180px) {
    .ev-layout .ev-row {
        grid-template-columns:auto 1fr auto;
        gap:16px;
        padding:18px;
    }
    .ev-layout .ev-arrow {
        display:none;
    }
}
.ev-layout .ev-bar {
    grid-template-columns:minmax(0,1fr) !important;
}
.ev-layout .ev-bar > * {
    min-width:0;
}
.ev-layout .ev-bar__search, .ev-layout .ev-bar__field select {
    width:100%;
}
@media (min-width:561px) and (max-width:980px) {
    .ev-layout .ev-bar {
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}
/* =====================================================================
   TNPSA HERO (homepage): cream + forest green + gold, Tamil Nadu map,
   three fixed circular photo frames. ONLY the photos change; nothing else moves.
   ===================================================================== */ .th {
    --tg:#0f4a33;
    --tg2:#1f6b4a;
    --tgold:#c9972e;
    --tgold-d:#a97a17;
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,#fbf7ec 0%,#f7f1e1 100%);
    padding:clamp(28px,3.6vw,50px) 0 clamp(30px,4vw,54px);
}
.th__grid {
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
    align-items:center;
    gap:clamp(18px,3vw,44px);
}
.th__copy {
    min-width:0;
}
.th__eyebrow {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin:0 0 14px;
    font:600 .78rem var(--font-head);
    letter-spacing:.2em;
    text-transform:uppercase;
    color:#35503f;
}
.th__eyebrow i {
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--tgold);
}
.th__title {
    margin:0 0 18px;
    font:800 clamp(2.2rem,3.9vw,3.5rem)/1.1 var(--font-head);
    letter-spacing:-.03em;
    color:var(--tg);
}
.th__title > span {
    display:block;
}
.th__gold {
    color:var(--tgold-d);
}
.th__intro {
    margin:0 0 26px;
    max-width:44ch;
    font-size:1.05rem;
    line-height:1.65;
    color:#2f4a3c;
}
.th-btn {
    position:relative;
    overflow:hidden;
    display:inline-flex;
    align-items:center;
    gap:12px;
    padding:15px 32px;
    border-radius:99px;
    background:var(--tg);
    color:#fff;
    font:600 1rem var(--font-head);
    box-shadow:0 12px 26px rgba(15,74,51,.28);
    transition:transform .3s var(--ease),box-shadow .3s,background-color .3s;
}
.th-btn .ic {
    transition:transform .3s var(--ease);
}
.th-btn:hover {
    transform:translateY(-3px);
    background:var(--tg2);
    color:#fff;
    box-shadow:0 16px 32px rgba(15,74,51,.34);
}
.th-btn:hover .ic {
    transform:translateX(5px);
}
.th-btn:active {
    transform:translateY(0) scale(.98);
}
/* visual stage: fixed geometry, so nothing shifts while photos change */ .th__visual {
    min-width:0;
}
.th-stage {
    position:relative;
    width:100%;
    max-width:640px;
    margin-left:auto;
    aspect-ratio:1.25/1;
}
.th-map {
    position:absolute;
    left:0;
    top:4%;
    width:48%;
    z-index:1;
}
.th-map__svg {
    display:block;
    width:100%;
    height:auto;
    overflow:visible;
}
.th-frame {
    position:absolute;
    z-index:2;
    aspect-ratio:1;
    border-radius:50%;
}
.th-frame--1 {
    width:43%;
    left:57%;
    top:0;
}
.th-frame--2 {
    width:39%;
    left:29%;
    top:30%;
    z-index:3;
}
.th-frame--3 {
    width:39%;
    left:61%;
    top:52%;
    z-index:4;
}
.th-frame__ring {
    position:absolute;
    inset:0;
    border-radius:50%;
    overflow:hidden;
    background:#e6e0d5;
    border:5px solid #fff;
    box-shadow:0 14px 32px rgba(15,74,51,.22);
    isolation:isolate;
}
.th-frame--1 {
    --sd:0s;
}
.th-frame--2 {
    --sd:.18s;
}
.th-frame--3 {
    --sd:.36s;
}
.th-ph {
    position:absolute;
    inset:0;
    margin:0;
    opacity:0;
    visibility:hidden;
    transition:opacity 1.2s ease var(--sd),visibility 0s linear calc(1.2s + var(--sd));
}
.th-ph.is-active {
    opacity:1;
    visibility:visible;
    transition:opacity 1.2s ease var(--sd),visibility 0s;
}
.th-ph img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transform:scale(1);
    transition:transform 0s linear 1.6s;
}
.th-ph.is-active img {
    transform:scale(1.06);
    transition:transform 8s linear;
}
/* static decoration */ .th-curve {
    position:absolute;
    z-index:0;
    pointer-events:none;
}
.th-curve--a {
    left:0;
    bottom:0;
    width:100%;
    height:46%;
}
.th-curve--b {
    right:0;
    top:0;
    width:min(36%,460px);
    height:100%;
}
.th-leaf {
    position:absolute;
    z-index:1;
    pointer-events:none;
    overflow:visible;
}
.th-leaf--1 {
    left:-14px;
    bottom:-12px;
    width:118px;
    transform:rotate(-8deg);
}
.th-leaf--3 {
    right:-12px;
    bottom:14%;
    width:100px;
    transform:rotate(32deg);
}
.th-leaf--2 {
    left:-6%;
    top:-6%;
    width:15%;
    transform:rotate(172deg);
}
.th-leaf--s {
    left:34%;
    bottom:-4%;
    width:15%;
    transform:rotate(8deg);
    z-index:5;
}
@media (prefers-reduced-motion:reduce) {
    .th *, .th *::before, .th *::after {
        transition-duration:.01ms !important;
        transition-delay:0s !important;
    }
    .th-ph.is-active img {
        transform:none;
    }
}
@media (max-width:900px) {
    .th__grid {
        grid-template-columns:1fr;
        gap:30px;
    }
    .th-stage {
        margin:0 auto;
        max-width:540px;
    }
}
@media (max-width:560px) {
    .th {
        padding:24px 0 36px;
    }
    .th__title {
        font-size:clamp(2.1rem,10vw,2.8rem);
    }
    .th__intro {
        font-size:.98rem;
    }
    .th-frame__ring {
        border-width:4px;
    }
    .th-leaf--3 {
        display:none;
    }
}
@media (max-width:640px) {
}
/* ================================================================
   HOMEPAGE HERO — close layout match to the supplied TNPSA reference
   Scope is homepage .th only; inner-page banners are not affected.
   ================================================================ */ .th {
    --tg:#0c4a35;
    --tg2:#17684c;
    --tgold:#d4a12b;
    --tgold-d:#b78112;
    width:calc(100% - 32px);
    max-width:1440px;
    margin:16px auto 18px;
    padding:18px 0 16px;
    min-height:0;
    border-radius:14px;
    isolation:isolate;
    background:#fbf8ef;
    box-shadow:0 1px 0 rgba(20,61,43,.04);
}
.th__grid {
    width:100%;
    max-width:none;
    min-height:278px;
    grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr);
    gap:8px;
    padding:0 clamp(16px,2.2vw,30px);
}
.th__copy {
    position:relative;
    z-index:3;
    padding:4px 0 0 clamp(0px,1.1vw,14px);
}
.th__eyebrow {
    gap:9px;
    margin:0 0 10px;
    color:#345647;
    font-size:.65rem;
    letter-spacing:.22em;
    line-height:1.4;
}
.th__eyebrow i {
    width:4px;
    height:4px;
    flex:0 0 4px;
}
.th__title {
    max-width:14ch;
    margin:0 0 12px;
    font-size:clamp(1.8rem,3.05vw,2.8rem);
    line-height:1.02;
    letter-spacing:-.045em;
    color:#0c4a35;
}
.th__gold {
    color:#b98518;
}
.th__intro {
    max-width:39ch;
    margin:0 0 16px;
    color:#263b31;
    font-size:clamp(.82rem,1.12vw,.96rem);
    line-height:1.48;
}
.th-btn {
    gap:10px;
    padding:12px 22px;
    background:#0c4a35;
    font-size:.82rem;
    box-shadow:0 6px 14px rgba(12,74,53,.16);
}
.th-btn:hover {
    background:#17684c;
}
.th__visual {
    min-width:0;
    align-self:stretch;
    display:flex;
    align-items:center;
}
.th-stage {
    width:100%;
    max-width:570px;
    margin:0 0 0 auto;
    aspect-ratio:1.52 / 1;
    flex:0 0 auto;
}
.th-map {
    left:0;
    top:2%;
    width:47%;
}
.th-frame--1 {
    width:43%;
    left:57%;
    top:-1%;
}
.th-frame--2 {
    width:39%;
    left:29%;
    top:29%;
}
.th-frame--3 {
    width:39%;
    left:61%;
    top:51%;
}
.th-frame__ring {
    border-width:4px;
    box-shadow:0 8px 18px rgba(15,74,51,.16);
}
.th-curve--a {
    bottom:-2%;
    height:34%;
}
.th-curve--b {
    width:30%;
    opacity:.75;
}
.th-leaf--1 {
    width:88px;
    left:-8px;
    bottom:-9px;
    opacity:.75;
}
.th-leaf--3 {
    width:76px;
    right:0;
    bottom:10%;
    opacity:.72;
}
.th-leaf--2 {
    width:12%;
    left:-2%;
    top:-2%;
    opacity:.8;
}
.th-leaf--s {
    width:12%;
    bottom:-1%;
    opacity:.8;
}
@media (min-width:901px) {
    .th__grid {
        grid-template-columns:minmax(0, .93fr) minmax(0, 1.07fr);
    }
    .th__copy {
        padding-right:12px;
    }
}
@media (max-width:900px) {
    .th {
        width:calc(100% - 24px);
        margin:12px auto;
        padding:22px 0 16px;
    }
    .th__grid {
        grid-template-columns:1fr;
        gap:8px;
        min-height:0;
        padding:0 clamp(18px,4vw,30px);
    }
    .th__copy {
        padding:0;
    }
    .th__title {
        max-width:15ch;
        font-size:clamp(2rem,5.5vw,2.8rem);
    }
    .th__intro {
        max-width:48ch;
        font-size:.95rem;
    }
    .th__visual {
        width:100%;
    }
    .th-stage {
        width:min(100%,560px);
        max-width:560px;
        margin:0 auto;
        aspect-ratio:1.55 / 1;
    }
}
@media (max-width:560px) {
    .th {
        width:calc(100% - 16px);
        margin:8px auto;
        padding:17px 0 10px;
        border-radius:11px;
    }
    .th__grid {
        padding:0 15px;
        gap:4px;
    }
    .th__eyebrow {
        font-size:.56rem;
        letter-spacing:.14em;
        margin-bottom:8px;
    }
    .th__title {
        font-size:clamp(1.8rem,8.5vw,2.4rem);
        max-width:14ch;
        margin-bottom:10px;
    }
    .th__intro {
        font-size:.84rem;
        line-height:1.45;
        margin-bottom:13px;
    }
    .th-btn {
        padding:11px 18px;
        font-size:.78rem;
    }
    .th-stage {
        aspect-ratio:1.34 / 1;
        width:100%;
    }
    .th-map {
        width:47%;
        top:4%;
    }
    .th-frame--1 {
        width:45%;
        left:55%;
        top:0;
    }
    .th-frame--2 {
        width:42%;
        left:22%;
        top:29%;
    }
    .th-frame--3 {
        width:42%;
        left:56%;
        top:53%;
    }
    .th-frame__ring {
        border-width:3px;
    }
    .th-leaf--1 {
        width:54px;
    }
    .th-leaf--3 {
        width:45px;
    }
    .th-leaf--2,.th-leaf--s {
        width:10%;
    }
}
/* ================================================================
   HOMEPAGE HERO — exact match to the approved banner design
   Desktop: the hero is one banner (719 x 278 proportions) and every
   element scales with its width, so it always looks like the design.
   Mobile/tablet (<=900px): stacked layout. Homepage .th only.
   ================================================================ */ .th-bg {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:0;
    pointer-events:none;
}
.th {
    background:linear-gradient(100deg,#fdf9ee 0%,#faf4e3 55%,#f3f0e0 100%);
}
.th-map__land {
    stroke-width:3;
}
.th-frame__ring {
    border-color:#fff;
}
@media (min-width:901px) {
    .th {
        container-type:inline-size;
        aspect-ratio:719 / 278;
        width:calc(100% - 32px);
        max-width:1400px;
        margin:16px auto 18px;
        padding:0;
        border-radius:1.9cqw;
    }
    .th__grid {
        position:static;
        display:block;
        max-width:none;
        min-height:0;
        padding:0;
    }
    .th__copy {
        position:absolute;
        left:8.9%;
        top:10.8%;
        width:46%;
        padding:0;
        z-index:3;
    }
    .th__eyebrow {
        margin:0 0 1.55cqw;
        font-size:1.3cqw;
        letter-spacing:.2em;
        gap:1.1cqw;
        color:#33503f;
        font-weight:600;
    }
    .th__eyebrow i {
        width:.55cqw;
        height:.55cqw;
        flex-basis:.55cqw;
    }
    .th__title {
        max-width:none;
        margin:0 0 1.9cqw;
        font-size:4.05cqw;
        line-height:1.02;
        letter-spacing:-.035em;
    }
    .th__intro {
        max-width:none;
        width:41cqw;
        margin:0 0 2.7cqw;
        font-size:1.8cqw;
        line-height:1.34;
        color:#22382e;
    }
    .th-btn {
        gap:1.2cqw;
        padding:0 3cqw 0 2.9cqw;
        height:5.2cqw;
        font-size:1.6cqw;
        box-shadow:0 .8cqw 1.8cqw rgba(12,74,53,.18);
    }
    .th-btn .ic {
        width:1.9cqw;
        height:1.9cqw;
    }
    .th__visual {
        position:static;
        display:block;
    }
    .th-stage {
        position:absolute;
        inset:0;
        width:auto;
        max-width:none;
        margin:0;
        aspect-ratio:auto;
        z-index:1;
    }
    .th-map {
        left:47.3%;
        top:10%;
        width:23%;
    }
    .th-frame--1 {
        width:22.6%;
        left:70.9%;
        top:-1%;
    }
    .th-frame--2 {
        width:20.6%;
        left:60.8%;
        top:33%;
    }
    .th-frame--3 {
        width:21.2%;
        left:76%;
        top:46%;
    }
    .th-frame__ring {
        border-width:.62cqw;
        box-shadow:0 1cqw 2.4cqw rgba(15,74,51,.18);
    }
    .th-leaf--1 {
        display:none;
    }
    .th-leaf--3 {
        left:auto;
        right:.4%;
        top:36%;
        bottom:auto;
        width:4.6%;
        opacity:.9;
        transform:rotate(38deg);
        z-index:5;
    }
    .th-leaf--2 {
        left:49.4%;
        top:9%;
        width:4.4%;
        opacity:.95;
        transform:rotate(0deg);
    }
    .th-leaf--s {
        left:62.4%;
        top:auto;
        bottom:1%;
        width:4.6%;
        opacity:.95;
        transform:rotate(8deg);
        z-index:1;
    }
}
/* mobile / tablet: keep it tidy and use the same artwork */ @media (max-width:900px) {
    .th-stage {
        aspect-ratio:1.5 / 1;
    }
    .th-map {
        left:0;
        top:2%;
        width:43%;
    }
    .th-frame--1 {
        width:41%;
        left:58%;
        top:0;
    }
    .th-frame--2 {
        width:37%;
        left:31%;
        top:31%;
    }
    .th-frame--3 {
        width:37%;
        left:62%;
        top:53%;
    }
}
/* ================================================================
   HOMEPAGE HERO — traced Tamil Nadu map, animation and photo slider
   ================================================================ */ .th-map {
    left:48.2%;
    top:5%;
    width:20.8%;
}
.th-map__land {
    stroke:none;
}
.th-pin__drop {
    transform-box:fill-box;
    transform-origin:50% 100%;
}
.th-pin__pulse, .th-ring__pulse {
    transform-box:fill-box;
    transform-origin:50% 50%;
    opacity:0;
}
/* photo slider: new photo slides in, old one slides out */ .th-ph {
    transform:translateX(9%);
    transition:opacity .9s ease var(--sd), transform .9s cubic-bezier(.22,.8,.3,1) var(--sd), visibility 0s linear calc(.9s + var(--sd));
}
.th-ph.is-active {
    transform:none;
    transition:opacity .9s ease var(--sd), transform .9s cubic-bezier(.22,.8,.3,1) var(--sd), visibility 0s;
}
.th-ph.is-prev {
    opacity:0;
    visibility:visible;
    transform:translateX(-9%);
}
/* slider controls */ .th-ctrl {
    position:absolute;
    z-index:6;
    left:61.2%;
    bottom:2.4%;
    width:14%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.5cqw;
}
.th-ctrl__btn {
    flex:0 0 auto;
    width:3.1cqw;
    height:3.1cqw;
    min-width:22px;
    min-height:22px;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    border-radius:50%;
    background:#fff;
    color:#0c4a35;
    cursor:pointer;
    box-shadow:0 .4cqw 1cqw rgba(12,74,53,.2);
    transition:background-color .25s, color .25s, transform .25s;
}
.th-ctrl__btn:hover {
    background:#0c4a35;
    color:#fff;
    transform:scale(1.1);
}
.th-dots {
    display:flex;
    align-items:center;
    gap:.55cqw;
}
.th-dot {
    width:.9cqw;
    height:.9cqw;
    min-width:7px;
    min-height:7px;
    padding:0;
    border:0;
    border-radius:99px;
    background:rgba(12,74,53,.28);
    cursor:pointer;
    transition:width .35s, background-color .35s;
}
.th-dot.is-active {
    width:2.4cqw;
    background:#0c4a35;
}
@media (prefers-reduced-motion:no-preference) {
    /* entrance */   .th__eyebrow, .th__title > span, .th__intro, .th-btn {
        opacity:0;
        animation:thRise .8s cubic-bezier(.22,.8,.3,1) forwards;
    }
    .th__eyebrow {
        animation-delay:.1s;
    }
    .th__title > span:nth-child(1) {
        animation-delay:.25s;
    }
    .th__title > span:nth-child(2) {
        animation-delay:.4s;
    }
    .th__title > span:nth-child(3) {
        animation-delay:.55s;
    }
    .th__intro {
        animation-delay:.75s;
    }
    .th-btn {
        animation-delay:.95s, 2.4s;
        animation-name:thRise, thBtnGlow;
        animation-duration:.8s, 2.8s;
        animation-iteration-count:1, infinite;
        animation-timing-function:cubic-bezier(.22,.8,.3,1), ease-in-out;
    }
    .th-bg {
        animation:thFade 1.4s ease both, thBgDrift 14s ease-in-out 1.4s infinite alternate;
    }
    .th-map__land {
        transform-box:fill-box;
        transform-origin:50% 60%;
        animation:thMapIn 1.1s cubic-bezier(.22,.8,.3,1) .2s both;
    }
    .th-net path {
        animation:thFlow 2.6s linear infinite;
    }
    .th-pin__drop {
        animation:thPinDrop .8s cubic-bezier(.3,1.5,.5,1) calc(.9s + var(--i) * .16s) both, thPinBob 2.8s ease-in-out calc(2.2s + var(--i) * .3s) infinite;
    }
    .th-pin__pulse {
        animation:thPulse 2.6s ease-out calc(1.8s + var(--i) * .35s) infinite;
    }
    .th-ring__pulse {
        animation:thPulse 2.6s ease-out 2s infinite;
    }
    .th-frame {
        animation:thFramePop .9s cubic-bezier(.3,1.3,.5,1) both, thFloat 6s ease-in-out 1.2s infinite alternate;
    }
    .th-frame--1 {
        animation-delay:.35s, 1.4s;
        animation-duration:.9s, 6s;
    }
    .th-frame--2 {
        animation-delay:.6s, 1.6s;
        animation-duration:.9s, 7s;
        animation-direction:normal, alternate-reverse;
    }
    .th-frame--3 {
        animation-delay:.85s, 1.8s;
        animation-duration:.9s, 5.4s;
    }
    .th-leaf {
        animation:thSway 5s ease-in-out infinite alternate;
        transform-origin:50% 100%;
    }
    .th-leaf--2 {
        animation-duration:6s;
        animation-delay:-2s;
    }
    .th-leaf--3 {
        animation-duration:5.5s;
        animation-delay:-1s;
    }
    .th-leaf--s {
        animation-duration:4.6s;
        animation-delay:-3s;
    }
    .th-ctrl {
        animation:thFade .8s ease 1.3s both;
    }
    /* parallax (set by home-slider.js) */   .th-map {
        translate:calc(var(--px,0) * -7px) calc(var(--py,0) * -5px);
        transition:translate .35s ease-out;
    }
    .th-frame--1 {
        translate:calc(var(--px,0) * 9px) calc(var(--py,0) * 6px);
        transition:translate .35s ease-out;
    }
    .th-frame--2 {
        translate:calc(var(--px,0) * 5px) calc(var(--py,0) * 8px);
        transition:translate .35s ease-out;
    }
    .th-frame--3 {
        translate:calc(var(--px,0) * 12px) calc(var(--py,0) * 7px);
        transition:translate .35s ease-out;
    }
}
@keyframes thRise {
    from {
        opacity:0;
        transform:translateY(22px);
    }
    to {
        opacity:1;
        transform:none;
    }
}
@keyframes thFade {
    from {
        opacity:0;
    }
    to {
        opacity:1;
    }
}
@keyframes thBgDrift {
    from {
        transform:translateX(0) scale(1.02);
    }
    to {
        transform:translateX(-1.2%) scale(1.04);
    }
}
@keyframes thMapIn {
    from {
        opacity:0;
        transform:translateY(24px) scale(.94);
    }
    to {
        opacity:1;
        transform:none;
    }
}
@keyframes thFlow {
    to {
        stroke-dashoffset:-32;
    }
}
@keyframes thPinDrop {
    0% {
        opacity:0;
        transform:translateY(-34px) scale(.5);
    }
    60% {
        opacity:1;
    }
    100% {
        opacity:1;
        transform:none;
    }
}
@keyframes thPinBob {
    0%,100% {
        transform:translateY(0);
    }
    50% {
        transform:translateY(-3px);
    }
}
@keyframes thPulse {
    0% {
        opacity:.85;
        transform:scale(.4);
    }
    100% {
        opacity:0;
        transform:scale(2.6);
    }
}
@keyframes thFramePop {
    from {
        opacity:0;
        transform:scale(.6);
    }
    to {
        opacity:1;
        transform:none;
    }
}
@keyframes thFloat {
    from {
        transform:translateY(-5px);
    }
    to {
        transform:translateY(6px);
    }
}
@keyframes thSway {
    from {
        rotate:-4deg;
    }
    to {
        rotate:5deg;
    }
}
@keyframes thBtnGlow {
    0%,100% {
        box-shadow:0 .8cqw 1.8cqw rgba(12,74,53,.18);
    }
    50% {
        box-shadow:0 .8cqw 2.4cqw rgba(12,74,53,.18), 0 0 0 .8cqw rgba(12,74,53,.07);
    }
}
@media (min-width:901px) {
    .th-map {
        left:48.2%;
        top:5%;
        width:20.8%;
    }
    .th-leaf--2 {
        left:46.4%;
        top:8%;
        width:4.2%;
    }
    .th-leaf--s {
        left:56.8%;
        bottom:1.4%;
        width:3.8%;
    }
}
@media (max-width:900px) {
    .th-stage {
        aspect-ratio:1.15 / 1;
        margin-bottom:38px;
        container-type:inline-size;
    }
    .th-map {
        left:2%;
        top:2%;
        width:40%;
    }
    .th-frame--1 {
        width:42%;
        left:57%;
        top:0;
    }
    .th-frame--2 {
        width:38%;
        left:30%;
        top:36%;
    }
    .th-frame--3 {
        width:38%;
        left:60%;
        top:52%;
    }
    .th-leaf--2 {
        left:36%;
        top:2%;
        width:9%;
    }
    .th-leaf--s {
        left:1%;
        bottom:2%;
        width:9%;
    }
    .th-ctrl {
        left:50%;
        bottom:-40px;
        width:210px;
        transform:translateX(-50%);
    }
    .th-ctrl__btn {
        width:30px;
        height:30px;
    }
    .th-dot {
        width:8px;
        height:8px;
    }
    .th-dot.is-active {
        width:22px;
    }
}
/* map gloss sweep (home hero) */ .th-shine {
    transform-box:fill-box;
}
@media (prefers-reduced-motion:no-preference) {
    .th-shine {
        animation:thShine 5.5s ease-in-out 1.6s infinite;
    }
}
@keyframes thShine {
    0%,35% {
        transform:translateX(-120px);
    }
    80%,100% {
        transform:translateX(360px);
    }
}
/* ================================================================
   OCT 2026 UPDATE
   - hero photos shown in full (3:2 frames instead of circles) + supplied Tamil Nadu map image
   - "New" badge in the header, "Join TNPSA" on one line, AGM pages
   ================================================================ */  /* ---- header: keep every item on one line, "New" badge ---- */ .main-nav>ul>li>a, .nav-item-row>a {
    white-space:nowrap;
}
.nav-cta>a {
    white-space:nowrap;
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:1.2;
}
.nav-badge {
    display:inline-block;
    margin-left:7px;
    padding:2px 7px 3px;
    border-radius:99px;
    background:var(--terra);
    color:#fff;
    font:700 .6rem/1 var(--font-head);
    letter-spacing:.07em;
    text-transform:uppercase;
    vertical-align:2px;
    box-shadow:0 3px 8px rgba(217,87,59,.35);
}
@media (prefers-reduced-motion:no-preference) {
    .nav-badge {
        animation:navBadgePulse 2.2s ease-in-out infinite;
    }
}
@keyframes navBadgePulse {
    0%,100% {
        box-shadow:0 3px 8px rgba(217,87,59,.35), 0 0 0 0 rgba(217,87,59,.45);
    }
    50% {
        box-shadow:0 3px 8px rgba(217,87,59,.35), 0 0 0 5px rgba(217,87,59,0);
    }
}
/* wider header on big screens so the logo is never squeezed; two compact steps below that (menu turns into the button at 1250px and under) */ .navbar .container {
    width:min(1380px,96%);
}
.brand img {
    height:44px;
}
.navbar.scrolled .brand img {
    height:40px;
}
.main-nav>ul>li>a {
    padding:10px 11px;
}
@media (min-width:1251px) and (max-width:1360px) {
    .brand img, .navbar.scrolled .brand img {
        height:36px;
    }
    .main-nav>ul>li>a {
        padding:9px 8px;
        font-size:.85rem;
    }
    .nav-cta {
        margin-left:4px;
    }
    .nav-cta>a {
        padding:9px 15px !important;
    }
    .nav-badge {
        margin-left:4px;
    }
}
/* ---- home hero: Tamil Nadu map (supplied image) ---- */ .th-map__art {
    position:relative;
    display:block;
    width:100%;
}
.th-map__img {
    display:block;
    width:100%;
    height:auto;
    filter:drop-shadow(0 .8cqw 1.4cqw rgba(15,74,51,.18));
}
.th-map__sheen {
    position:absolute;
    inset:0;
    pointer-events:none;
    -webkit-mask:url(../img/tn-map-512.webp) center/100% 100% no-repeat;
    mask:url(../img/tn-map-512.webp) center/100% 100% no-repeat;
    background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.34) 50%,transparent 62%) 140% 0/260% 100% no-repeat;
}
.th-map__pulses {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:visible;
    pointer-events:none;
}
.th-pin__pulse {
    transform-box:fill-box;
    transform-origin:50% 50%;
    opacity:0;
}
@media (prefers-reduced-motion:no-preference) {
    .th-map__img {
        transform-origin:50% 60%;
        animation:thMapIn 1.1s cubic-bezier(.22,.8,.3,1) .2s both, thMapFloat 7s ease-in-out 1.4s infinite alternate;
    }
    .th-map__sheen {
        animation:thMapSheen 5.5s ease-in-out 1.6s infinite;
    }
    .th-pin__pulse {
        animation:thPulse 2.6s ease-out calc(1.2s + var(--i) * .3s) infinite;
    }
}
@keyframes thMapFloat {
    from {
        transform:translateY(-4px);
    }
    to {
        transform:translateY(5px);
    }
}
@keyframes thMapSheen {
    0%,30% {
        background-position:140% 0;
    }
    80%,100% {
        background-position:-40% 0;
    }
}
/* ---- home hero: photo frames show the WHOLE photo (3:2) ---- */ .th-frame {
    aspect-ratio:3 / 2;
    border-radius:20px;
}
.th-frame__ring {
    border-radius:inherit;
}
.th-ph img {
    transform:scale(1);
}
.th-ph.is-active img {
    transform:scale(1.02);
    transition:transform 8s linear;
}
@media (min-width:901px) {
    .th-map {
        left:45.4%;
        top:4%;
        width:22.6%;
    }
    .th-frame {
        border-radius:1.9cqw;
    }
    .th-frame--1 {
        width:24%;
        left:72%;
        top:3%;
    }
    .th-frame--2 {
        width:23%;
        left:59.5%;
        top:30%;
    }
    .th-frame--3 {
        width:24%;
        left:73%;
        top:54%;
    }
    .th-frame__ring {
        border-width:.55cqw;
    }
    .th-ctrl {
        left:58.5%;
        width:12.5%;
    }
    .th-leaf--3 {
        top:41%;
    }
}
@media (max-width:900px) {
    .th-stage {
        aspect-ratio:1 / 1.08;
    }
    .th-map {
        left:0;
        top:1%;
        width:40%;
    }
    .th-frame {
        border-radius:5cqw;
    }
    .th-frame--1 {
        width:58%;
        left:42%;
        top:0;
    }
    .th-frame--2 {
        width:54%;
        left:14%;
        top:30%;
    }
    .th-frame--3 {
        width:58%;
        left:42%;
        top:63%;
    }
    .th-frame__ring {
        border-width:4px;
    }
    .th-leaf--2 {
        left:34%;
        top:1%;
    }
}
@media (max-width:560px) {
    .th-frame__ring {
        border-width:3px;
    }
}
/* ---- AGM pages ---- */ .agm-tabs {
    display:inline-flex;
    gap:8px;
    margin-top:26px;
    padding:5px;
    border-radius:99px;
    background:rgba(255,255,255,.1);
}
.agm-tab {
    padding:9px 22px;
    border-radius:99px;
    color:#fff;
    font:600 .88rem var(--font-head);
    transition:background-color .25s,color .25s;
}
.agm-tab:hover {
    background:rgba(255,255,255,.16);
    color:#fff;
}
.agm-tab.is-active {
    background:var(--gold);
    color:var(--forest);
}
.agm-agenda {
    margin-top:26px;
    display:grid;
    gap:14px;
}
.agm-agenda__row {
    display:flex;
    gap:18px;
    align-items:flex-start;
    padding:18px 20px;
    border:1px solid var(--line);
    border-radius:var(--r-sm);
    background:#fff;
    box-shadow:var(--shadow-sm);
}
.agm-agenda__n {
    flex:0 0 auto;
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:var(--emerald-l);
    color:var(--emerald-d);
    font:700 .9rem var(--font-head);
}
.agm-agenda__row h3 {
    margin:0 0 4px;
    font-size:1.05rem;
}
.agm-agenda__row p {
    margin:0;
}
/* Text-only intro sections: remove the right-side photo while keeping the full copy. */ .split--text-only {
    display: block;
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 48px 32px;
    box-sizing: border-box;
}
.split--text-only > .reveal:first-child {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.split--text-only h1, .split--text-only h2, .split--text-only p {
    width: 100%;
    max-width: 100%;
    overflow-wrap: break-word;
    box-sizing: border-box;
}
.split--text-only h1, .split--text-only h2 {
    line-height: 1.25;
}
.split--text-only p {
    line-height: 1.8;
}
@media (max-width: 768px) {
    .split--text-only {
        padding: 32px 20px;
    }
}
/* ---- Objectives artwork (16:9 posters) ---- */ .photo-frame--obj img {
    aspect-ratio:16/9;
    object-fit:cover;
}
/* ---- SOP page ---- */ .sop-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px;
    max-width:1000px;
    margin:0 auto;
}
.sop-page {
    display:block;
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--r);
    box-shadow:var(--shadow-sm);
    overflow:hidden;
    transition:transform .3s var(--ease),box-shadow .3s;
}
.sop-page:hover {
    transform:translateY(-4px);
    box-shadow:var(--shadow);
}
.sop-page img {
    display:block;
    width:100%;
    height:auto;
}
.sop-page span {
    display:block;
    padding:12px 16px;
    text-align:center;
    font:600 .88rem var(--font-head);
    color:var(--emerald-d);
}
@media (max-width:760px) {
    .sop-grid {
        grid-template-columns:1fr;
    }
}
/* ---- District pages ---- */ .agm-tabs--light {
    background:var(--emerald-l);
    margin-top:20px;
}
.agm-tabs--light .agm-tab {
    color:var(--emerald-d);
}
.agm-tabs--light .agm-tab:hover {
    background:rgba(47,74,154,.12);
    color:var(--emerald-d);
}
.agm-tabs--light .agm-tab.is-active {
    background:var(--gold);
    color:var(--forest);
}
.dist-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px;
    max-width:1040px;
    margin:34px auto 0;
}
.dist-card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--r);
    box-shadow:var(--shadow-sm);
    overflow:hidden;
    text-align:center;
}
.dist-card__photo {
    position:relative;
    aspect-ratio:4/5;
    background:linear-gradient(160deg,var(--emerald-l),#fff);
    display:grid;
    place-items:center;
    border-bottom:4px solid var(--gold);
}
.dist-card__photo img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 20%;
}
.dist-card__photo svg {
    width:55%;
    fill:#c3cce6;
}
.dist-card__photo span {
    position:absolute;
    bottom:14px;
    left:0;
    right:0;
    font:500 .82rem var(--font-body);
    color:var(--muted);
}
.dist-card__body {
    padding:18px 16px 22px;
}
.dist-card__body small {
    display:block;
    font:600 .78rem var(--font-head);
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--gold-d);
    margin-bottom:6px;
}
.dist-card__body h3 {
    margin:0 0 8px;
    font-size:1.1rem;
}
@media (max-width:900px) {
    .dist-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:560px) {
    .dist-grid {
        grid-template-columns:minmax(0,340px);
        justify-content:center;
    }
}
/* ---- State President's message ---- */ .pm {
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    gap:44px;
    align-items:start;
    max-width:1040px;
}
.pm__photo {
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--r);
    box-shadow:var(--shadow-sm);
    overflow:hidden;
    text-align:center;
}
.pm__photo img {
    display:block;
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    object-position:center 15%;
}
.pm__name {
    padding:16px 14px 20px;
    border-top:4px solid var(--gold);
}
.pm__name strong {
    display:block;
    font:700 1.02rem var(--font-head);
    color:var(--ink);
}
.pm__name span {
    display:block;
    margin-top:4px;
    font-size:.88rem;
    color:var(--muted);
}
.pm__text blockquote {
    margin:10px 0 18px;
    padding-left:18px;
    border-left:4px solid var(--gold);
    font:600 1.25rem/1.4 var(--font-head);
    color:var(--forest);
}
.pm__text blockquote cite {
    display:block;
    margin-top:6px;
    font:500 .9rem var(--font-body);
    font-style:normal;
    color:var(--muted);
}
.pm__thanks {
    font:italic 700 1.1rem var(--font-head);
    color:var(--emerald-d);
}
@media (max-width:820px) {
    .pm {
        grid-template-columns:1fr;
        gap:24px;
    }
    .pm__photo {
        max-width:300px;
    }
}
/* General Secretary's message: mirror of the State President block (text left, photo right) */ .pm--reverse {
    grid-template-columns:minmax(0,1fr) 300px;
}
.pm__said {
    margin:10px 0 18px;
    padding-left:18px;
    border-left:4px solid var(--gold);
    font:600 1.25rem/1.4 var(--font-head);
    color:var(--forest);
}
.pm__said small {
    font:500 .9rem var(--font-body);
    color:var(--muted);
}
@media (max-width:820px) {
    .pm--reverse {
        grid-template-columns:1fr;
    }
    .pm--reverse .pm__photo {
        order:-1;
    }
}
/* ---- Vision / Mission wide images ---- */ .photo-frame--wide img {
    aspect-ratio:auto;
    height:auto;
    object-fit:contain;
    background:#fff;
}
/* ---- SOP text page ---- */ .sop {
    max-width:980px;
}
.sop-sections {
    display:grid;
    gap:24px;
}
.sop-card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:var(--r);
    box-shadow:var(--shadow-sm);
    padding:26px 30px;
    scroll-margin-top:100px;
}
.sop-card header {
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:14px;
}
.sop-card header h3 {
    margin:0;
    font-size:1.3rem;
}
.sop-list {
    margin:0;
    padding-left:22px;
    display:grid;
    gap:9px;
}
.sop-list li::marker {
    color:var(--gold-d);
    font-weight:700;
}
.sop-sub {
    margin:8px 0 2px;
    padding-left:22px;
    display:grid;
    gap:5px;
}
.sop-note {
    margin:16px 0 0;
    padding:12px 16px;
    border-left:4px solid var(--gold);
    background:var(--gold-l);
    border-radius:0 var(--r-sm) var(--r-sm) 0;
    font-weight:500;
}
.sop-quotes {
    margin-top:34px;
    display:grid;
    gap:10px;
    text-align:center;
}
.sop-quotes blockquote {
    margin:0;
    font:italic 500 1.02rem var(--font-body);
    color:var(--forest);
}
.sop-quotes blockquote:last-child {
    font:700 1.3rem var(--font-head);
    font-style:normal;
    margin-top:8px;
}
.sop-quotes cite {
    font-style:normal;
    color:var(--muted);
    font-size:.92rem;
}
@media (max-width:600px) {
    .sop-card {
        padding:20px 18px;
    }
}
.blog-tag {
    font:600 .76rem var(--font-head);
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--gold-d);
}
/* Posts: blog + board messages (cards, article view) */ .posts .sec-title p {
    max-width:640px;
    margin:10px auto 0;
    color:var(--muted);
}
.post-grid {
    margin-top:34px;
    gap:30px;
}
.post-card {
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid var(--line);
    border-radius:10px;
    box-shadow:var(--shadow-sm);
    transition:transform .35s var(--ease), box-shadow .35s;
}
.post-card:hover {
    transform:translateY(-6px);
    box-shadow:var(--shadow);
}
.post-card__media {
    position:relative;
    display:block;
    aspect-ratio:3/2;
    border-radius:10px 10px 0 0;
    overflow:hidden;
}
.post-card__media img, .post-card__art {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    border-radius:10px 10px 0 0;
}
.post-card__art {
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,var(--forest-2),var(--emerald));
}
.post-card__art--1 {
    background:linear-gradient(135deg,#a86d00,var(--gold));
}
.post-card__art--2 {
    background:linear-gradient(135deg,#1f6f6b,#2fa39a);
}
.post-card__art b {
    font:700 7rem/1 Georgia,serif;
    color:rgba(255,255,255,.55);
    height:.55em;
    display:block;
}
.post-card__avatar {
    position:absolute;
    left:18px;
    bottom:-28px;
    z-index:2;
    width:60px !important;
    height:60px !important;
    border-radius:50% !important;
    object-fit:cover;
    object-position:center 20%;
    border:3px solid #fff;
    box-shadow:0 4px 10px rgba(13,21,45,.25);
    background:#fff;
}
.post-card__media--person {
    aspect-ratio:1/1;
}
.post-card__media--person img {
    object-position:center top;
}
.post-card__media--person {
    background:var(--ivory);
}
.post-card__body {
    display:flex;
    flex-direction:column;
    flex:1;
    padding:22px 22px 24px;
    text-align:center;
}

.post-card__body h3 {
    margin:12px 0 10px;
    font-size:1.18rem;
    line-height:1.45;
}
.post-card__body h3 a {
    color:var(--forest);
}
.post-card__body p {
    flex:1;
    margin:0 0 16px;
    font-size:.9rem;
    line-height:1.75;
    color:var(--muted);
}
.post-card__by {
    font-size:.8rem;
    color:var(--muted);
    margin-bottom:16px;
}
.post-card__by strong {
    color:var(--ink);
    font-family:var(--font-head);
    font-weight:600;
}
.post-card__btn {
    align-self:center;
    padding:10px 26px;
    border-radius:99px;
    background:var(--forest-2);
    color:#fff;
    font:700 .78rem var(--font-head);
    letter-spacing:.08em;
    text-transform:uppercase;
    transition:background .25s, transform .25s;
}
.post-card__btn:hover {
    background:var(--gold);
    color:var(--forest);
    transform:translateY(-2px);
}
.hl {
    background:linear-gradient(transparent 58%, rgba(242,169,0,.38) 58%);
    padding:0 3px;
    box-decoration-break:clone;
    -webkit-box-decoration-break:clone;
}
.post-article {
    max-width:820px;
    margin:0 auto;
}
.post-article[hidden], #postIndex[hidden] {
    display:none;
}
.post-back {
    display:inline-block;
    margin-bottom:20px;
    font:600 .9rem var(--font-head);
    color:var(--emerald-d);
}
.post-back:hover {
    color:var(--gold-d);
}
.post-back--bottom {
    margin:34px 0 0;
}
.post-article__head {
    margin-bottom:26px;
    padding-bottom:18px;
    border-bottom:1px solid var(--line);
}
.post-article__head h2 {
    margin:14px 0 0;
    font-size:clamp(1.6rem,3.2vw,2.35rem);
    line-height:1.3;
}
.post-article__meta {
    display:flex;
    align-items:center;
    gap:16px;
    margin:0 0 26px;
    padding-bottom:18px;
    border-bottom:1px solid var(--line);
    font-size:.88rem;
    color:var(--muted);
}
.post-article__meta img {
    width:76px;
    height:76px;
    flex:none;
    border-radius:50%;
    object-fit:cover;
    object-position:center 20%;
    border:3px solid var(--gold);
    background:#fff;
}
.post-article__meta p {
    margin:0;
    line-height:1.6;
}
.post-article__meta strong {
    color:var(--ink);
    font-family:var(--font-head);
}
.post-article__meta em, .post-article__meta span {
    display:block;
}
.post-article__meta em {
    font-style:italic;
}
.post-article__img {
    margin:0 0 30px;
}
.post-article__img img {
    width:100%;
    border-radius:14px;
    box-shadow:var(--shadow-sm);
    display:block;
}
.post-article__body p, .post-article__body li {
    font-size:1.04rem;
    line-height:1.9;
    color:#3f4a66;
}
.post-article__body p {
    margin:0 0 18px;
}
.post-article__body > p:first-of-type::first-letter {
    float:left;
    font:700 3.4rem/.9 var(--font-head);
    color:var(--forest-2);
    padding:6px 10px 0 0;
}
.post-article__body h3 {
    margin:34px 0 12px;
    font-size:1.3rem;
    color:var(--forest);
}
.post-article__body ul, .post-article__body ol {
    margin:0 0 20px;
    padding-left:24px;
}
.post-article__body li {
    margin-bottom:10px;
}
.post-article__body li::marker {
    color:var(--gold-d);
    font-weight:700;
}
.post-article__body blockquote {
    margin:0 0 26px;
    padding:18px 24px;
    border-left:4px solid var(--gold);
    background:var(--ivory);
    border-radius:0 12px 12px 0;
    font-size:1.1rem;
    font-style:italic;
    color:var(--forest);
}
.post-article__body cite {
    font-style:normal;
    font-weight:600;
    font-size:.9rem;
}
.post-related {
    margin-top:56px;
    padding-top:34px;
    border-top:1px solid var(--line);
}
.post-related > h3 {
    text-align:center;
    margin:0 0 24px;
    font-size:1.4rem;
}
.post-related .grid {
    gap:22px;
}
@media (max-width:1000px) {
    .post-related .grid--3 {
        grid-template-columns:1fr;
    }
    .post-article {
        max-width:100%;
    }
}
.post-card__media:has(.post-card__avatar) + .post-card__body {
    padding-top:42px;
}
/* AGM 2026: extra special sessions */ .am-about--flip .am-portrait {
    order:-1;
}
.am-about + .am-about {
    margin-top:clamp(48px,7vw,84px);
}
.am-sess-body p {
    margin:0 0 14px;
    line-height:1.85;
    color:#3f4a66;
}
.am-sess-body p.am-lead {
    font-weight:600;
    color:var(--forest);
}
.am-mg {
    margin:26px 0 0;
    display:grid;
    gap:18px;
}
.am-mg__img {
    margin:0;
}
.am-mg__img img {
    width:100%;
    height:auto;
    display:block;
    border-radius:16px;
    border:5px solid #fff;
    box-shadow:var(--shadow-sm);
}
.am-mg__img figcaption {
    margin-top:8px;
    font-size:.85rem;
    color:var(--muted);
}
.am-mg__stats {
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}
.am-mg__stats li {
    background:var(--ivory);
    border-radius:14px;
    padding:14px 10px;
    text-align:center;
    font-size:.8rem;
    line-height:1.4;
    color:var(--muted);
}
.am-mg__stats b {
    display:block;
    font:700 1.5rem var(--font-head);
    color:var(--forest-2);
}
@media (max-width:1000px) {
    .am-about--flip .am-portrait {
        order:0;
    }
    .am-mg__stats {
        grid-template-columns:1fr 1fr;
    }
}
/* AGM 2026 page (ag26-*) */ .ag26-hero {
    position:relative;
    background:var(--forest) center/cover no-repeat;
    color:#fff;
    padding:44px 0 64px;
}
.ag26-hero::before {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(14,24,56,.96) 0%,rgba(14,24,56,.86) 45%,rgba(14,24,56,.5) 100%);
}
.ag26-hero__in {
    position:relative;
    text-align:left;
}
.ag26-hero .crumbs {
    color:#aab6d8;
    margin-bottom:34px;
}
.ag26-hero .crumbs a {
    color:#fff;
}
.ag26-hero h1 {
    color:#fff;
    font-size:clamp(2.8rem,7vw,5rem);
    margin:0;
    line-height:1.05;
}
.ag26-hero h1 em {
    font-style:normal;
    color:var(--gold);
}
.ag26-hero__sub {
    margin:8px 0 12px;
    font:600 1.4rem var(--font-head);
    color:#fff;
}
.ag26-hero__tag {
    max-width:56ch;
    margin:0 0 34px;
    color:#d3dbf2;
    font-style:italic;
}
.ag26-facts {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    max-width:980px;
}
.ag26-fact {
    display:flex;
    gap:14px;
    align-items:center;
    padding:16px 18px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:14px;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(4px);
}
.ag26-fact__ic {
    flex:none;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:12px;
    background:rgba(242,196,95,.16);
    color:var(--gold);
}
.ag26-fact small {
    display:block;
    color:var(--gold);
    font:600 .72rem var(--font-head);
    letter-spacing:.12em;
    text-transform:uppercase;
    margin-bottom:2px;
}
.ag26-fact b {
    display:block;
    font-weight:600;
    font-size:.98rem;
}
.ag26-fact div > span {
    display:block;
    font-size:.88rem;
    color:#d3dbf2;
}
.ag26-h {
    font-size:clamp(1.6rem,3vw,2.1rem);
    margin:0 0 22px;
    position:relative;
    padding-bottom:12px;
}
.ag26-h::after {
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:54px;
    height:3px;
    border-radius:3px;
    background:var(--gold);
}
.ag26-overview {
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:clamp(24px,5vw,60px);
    align-items:center;
}
.ag26-overview p {
    color:#3f4a66;
    line-height:1.85;
    margin:0 0 14px;
}
.ag26-overview__img {
    margin:0;
}
.ag26-overview__img img {
    width:100%;
    display:block;
    border-radius:16px;
    box-shadow:var(--shadow);
}
.ag26-band {
    background:var(--emerald-l);
}
.ag26-cards {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px;
    align-items:start;
}
.ag26-card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    overflow:hidden;
    box-shadow:var(--shadow-sm);
}
.ag26-card__img {
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    background:var(--ivory);
}
.ag26-card__img img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.ag26-card__no {
    position:absolute;
    left:18px;
    bottom:14px;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:50%;
    background:var(--forest-2);
    color:#fff;
    font:700 1rem var(--font-head);
    border:3px solid #fff;
    box-shadow:0 4px 10px rgba(13,21,45,.25);
}
.ag26-card__body {
    padding:22px 24px 26px;
}
.ag26-card__body h3 {
    margin:12px 0 10px;
    font-size:1.2rem;
    line-height:1.4;
}
.ag26-card__who {
    margin:0 0 12px;
    display:flex;
    flex-direction:column;
    font-size:.85rem;
    color:var(--muted);
}
.ag26-card__who b {
    color:var(--terra);
    font-family:var(--font-head);
    font-size:.95rem;
}
.ag26-card__txt {
    margin:0 0 12px;
    font-size:.92rem;
    line-height:1.8;
    color:#3f4a66;
}
.ag26-stats {
    list-style:none;
    margin:18px 0 0;
    padding:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}
.ag26-stats li {
    background:var(--ivory);
    border-radius:12px;
    padding:10px 8px;
    text-align:center;
    font-size:.75rem;
    line-height:1.4;
    color:var(--muted);
}
.ag26-stats b {
    display:block;
    font:700 1.25rem var(--font-head);
    color:var(--forest-2);
}
.ag26-gallery-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:22px;
}
.ag26-gallery-head .ag26-h {
    margin:0;
}
.ag26-viewall {
    padding:9px 18px;
    border-radius:8px;
    background:var(--forest-2);
    color:#fff;
    font:600 .82rem var(--font-head);
}
.ag26-viewall:hover {
    background:var(--gold);
    color:var(--forest);
}
.ag26-gallery {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:170px;
    gap:12px;
}
.ag26-gallery__item {
    display:block;
    overflow:hidden;
    border-radius:12px;
    background:var(--forest);
}
.ag26-gallery__item:first-child {
    grid-column:span 2;
    grid-row:span 2;
}
.ag26-gallery__item img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .5s var(--ease);
}
.ag26-gallery__item:hover img {
    transform:scale(1.06);
}
.ag26-cta {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    flex-wrap:wrap;
    background:var(--forest);
    color:#fff;
    border-radius:16px;
    padding:clamp(26px,4vw,42px);
}
.ag26-cta h2 {
    color:#fff;
    margin:0 0 8px;
    font-size:clamp(1.4rem,3vw,1.9rem);
}
.ag26-cta p {
    margin:0 0 10px;
    color:#d3dbf2;
    max-width:60ch;
}
.ag26-cta__contact {
    display:flex;
    gap:22px;
    flex-wrap:wrap;
}
.ag26-cta__contact a {
    color:#fff;
    font-weight:600;
}
.ag26-cta__contact .ic {
    vertical-align:-3px;
    color:var(--gold);
}
@media (max-width:1000px) {
    .ag26-facts {
        grid-template-columns:1fr;
        max-width:460px;
    }
    .ag26-overview {
        grid-template-columns:1fr;
    }
    .ag26-gallery {
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-auto-rows:150px;
    }
}
@media (max-width:760px) {
    .ag26-cards {
        grid-template-columns:1fr;
    }
    .ag26-gallery__item:first-child {
        grid-row:span 1;
    }
    .ag26-hero::before {
        background:rgba(14,24,56,.9);
    }
}
/* AGM 2026 hero: split layout */ .ag26-hero {
    background:radial-gradient(900px 420px at 85% 10%,rgba(242,196,95,.16),transparent 60%),linear-gradient(135deg,#0e1838 0%,#1b2a5e 100%);
    padding:40px 0 56px;
}
.ag26-hero::before {
    display:none;
}
.ag26-hero__in {
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:20px clamp(24px,5vw,64px);
    align-items:center;
}
.ag26-hero__text {
    min-width:0;
}
.ag26-hero__tag {
    margin-bottom:0;
}
.ag26-hero__photo {
    margin:0;
    position:relative;
    padding:0 14px 14px 0;
}
.ag26-hero__photo::before {
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:88%;
    height:88%;
    border-radius:20px;
    background:var(--gold);
}
.ag26-hero__photo img {
    position:relative;
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:20px;
    border:5px solid #fff;
}
.ag26-hero__photo figcaption {
    position:absolute;
    left:18px;
    bottom:32px;
    padding:6px 14px;
    border-radius:99px;
    background:rgba(14,24,56,.85);
    color:#fff;
    font:600 .8rem var(--font-head);
}
.ag26-hero .ag26-facts {
    grid-column:1 / -1;
    margin-top:14px;
}
@media (max-width:1000px) {
    .ag26-hero__in {
        grid-template-columns:1fr;
    }
    .ag26-hero__photo {
        max-width:520px;
    }
}
/* AGM 2026 hero: text only, centred */ .ag26-hero__in {
    grid-template-columns:1fr;
    text-align:center;
}
.ag26-hero__text {
    max-width:760px;
    margin:0 auto;
}
.ag26-hero__date {
    margin:0 0 10px;
    font:600 1.05rem var(--font-head);
    letter-spacing:.04em;
    color:var(--gold);
}
.ag26-hero .ag26-hero__tag {
    margin-left:auto;
    margin-right:auto;
}
.ag26-hero .ag26-facts {
    text-align:left;
}
.ag26-hero .ag26-facts {
    margin-left:auto;
    margin-right:auto;
}
/* Teacher Training Program page (ttp-*) */ .ttp-intro {
    display:grid;
    grid-template-columns:1.25fr 1fr;
    gap:clamp(24px,5vw,60px);
    align-items:start;
}
.ttp-letter p {
    margin:0 0 14px;
    color:#3f4a66;
    line-height:1.85;
}
.ttp-meet {
    list-style:none;
    margin:18px 0 20px;
    padding:0;
    display:grid;
    gap:10px;
}
.ttp-meet li {
    display:flex;
    gap:14px;
    align-items:center;
    padding:12px 16px;
    border:1px solid var(--line);
    border-left:4px solid var(--gold);
    border-radius:var(--r-sm);
    background:#fff;
    box-shadow:var(--shadow-sm);
}
.ttp-meet span {
    flex:0 0 84px;
    font:600 .72rem var(--font-head);
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--gold-d);
}
.ttp-meet b {
    color:var(--ink);
    font-weight:600;
}
.ttp-sign {
    margin-top:22px !important;
}
.ttp-poster {
    margin:0;
    position:sticky;
    top:96px;
}
.ttp-poster img {
    width:100%;
    display:block;
    border-radius:16px;
    box-shadow:var(--shadow);
    border:1px solid var(--line);
}
@media (max-width:1000px) {
    .ttp-intro {
        grid-template-columns:1fr;
    }
    .ttp-poster {
        position:static;
        max-width:480px;
        margin:0 auto;
    }
}
/* Highlighted "TTP" header menu item */ .main-nav>ul>li.nav-highlight>a {
    background:var(--gold);
    color:var(--forest);
    font-weight:700;
    letter-spacing:.06em;
    padding:9px 18px;
    box-shadow:0 4px 12px rgba(242,169,0,.35);
    transition:background .25s,color .25s,transform .25s;
}
.main-nav>ul>li.nav-highlight>a::after {
    display:none;
}
.main-nav>ul>li.nav-highlight:hover>a,.main-nav>ul>li.nav-highlight.is-active>a {
    background:var(--forest-2);
    color:#fff;
    transform:translateY(-1px);
}
@media (prefers-reduced-motion:no-preference) {
    .main-nav>ul>li.nav-highlight>a {
        animation:ttpGlow 2.4s ease-in-out infinite;
    }
}
@keyframes ttpGlow {
    0%,100% {
        box-shadow:0 4px 12px rgba(242,169,0,.3);
    }
    50% {
        box-shadow:0 4px 18px rgba(242,169,0,.65);
    }
}
/* ===== Home: TTP card + Events and News panels ===== */  /* ----- Events and News panels ----- */  .panel-box {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.panel {
    background: #ffffff;
    border: 1px solid #dddddd;
    border-radius: 14px;
    overflow: hidden;
}
.panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    border-bottom: 3px solid #f2a900;
}
.panel-news .panel-head {
    border-bottom: 3px solid #2f4a9a;
}
.panel-head h2 {
    font-size: 18px;
    margin: 0;
}
.panel-head a {
    font-size: 13px;
    font-weight: bold;
}
.panel-scroll {
    height: auto;
    overflow-y: auto;
    padding: 0 20px;
}
.panel-item {
    display: flex;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px dashed #dddddd;
}
.panel-date {
    width: 56px;
    height: 58px;
    flex-shrink: 0;
    background: #fff1cc;
    border-radius: 10px;
    text-align: center;
    font-size: 11px;
    line-height: 1.2;
    padding-top: 8px;
}
.panel-news .panel-date {
    background: #e6ebf8;
}
.panel-date b {
    display: block;
    font-size: 20px;
    color: #1b2a4e;
}
.panel-item h3 {
    font-size: 15px;
    margin: 0 0 4px 0;
}
.panel-item p {
    font-size: 14px;
    margin: 0 0 4px 0;
}
.panel-item a {
    font-size: 13px;
    font-weight: bold;
}
.panel-empty {
    height: 230px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #666666;
    padding: 0 20px;
}
.panel-empty b {
    color: #1b2a4e;
    font-size: 16px;
}
/* ----- Mobile ----- */    /* ---------- Footer credit bar ("Designed By") ---------- */ .footer-credit {
    background:#0e1838;
    text-align:center;
    padding:12px 16px;
    font-size:.95rem;
    color:#fff;
    border-top:1px solid rgba(255,255,255,.08);
}
.footer-credit span {
    color:#fff;
}
.footer-credit a {
    color:#ffd21f;
    font-weight:500;
    transition:color .2s;
}
.footer-credit a:hover {
    color:#fff;
    text-decoration:underline;
}
/* ---------- Home: stat cards ---------- */ .home-stats {
    background:#f3f5fb;
    border-bottom:0;
    padding:30px 0 8px;
}
.home-stats__grid {
    gap:18px;
}
.home-stat {
    background:#fff;
    border:1px solid #dfe5f4 !important;
    border-radius:16px;
    box-shadow:0 8px 22px rgba(27,42,78,.06);
    padding:22px 14px 20px;
}
.home-stat__number {
    font-size:clamp(1.7rem,2.6vw,2.2rem);
}
@media (max-width: 900px) {
    .home-stats__grid {
        grid-template-columns:1fr 1fr;
    }
}
/* ---------- Home: Who We Are + small Events / News scrollers on the right ---------- */ .home-intro__layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:clamp(28px,4vw,52px);
    align-items:center;
}
.home-intro__layout .home-intro__grid {
    gap:clamp(24px,3.4vw,44px);
}
.home-aside {
    min-width:0;
}
.upd {
    display:grid;
    gap:18px;
}
.upd-box {
    background:#fff;
    border:1px solid #dfe5f4;
    border-radius:18px;
    box-shadow:0 10px 28px rgba(27,42,78,.08);
    overflow:hidden;
}
.upd-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    padding:14px 16px 10px;
}
.upd-head h2 {
    display:flex;
    align-items:center;
    gap:9px;
    margin:0;
    font-size:16px;
    color:#1b2a4e;
}
.upd-head a {
    font-size:12.5px;
    font-weight:600;
    color:#2f4a9a;
}
.upd-ico {
    display:inline-grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:9px;
}
.upd-ico--events {
    background:#fff1cc;
    color:#a86d00;
}
.upd-ico--news {
    background:linear-gradient(135deg,#2f4a9a,#1b2a4e);
    color:#fff;
}
.upd-box--events .upd-head {
    border-bottom:3px solid #f2a900;
}
.upd-box--news .upd-head {
    border-bottom:3px solid #2f4a9a;
}
.upd-scroll {
    height:268px;
    overflow-y:auto;
    scrollbar-width:none;
    padding:10px 12px 4px;
    -webkit-mask-image:linear-gradient(transparent,#000 6%,#000 94%,transparent);
    mask-image:linear-gradient(transparent,#000 6%,#000 94%,transparent);
}
.upd-scroll::-webkit-scrollbar {
    display:none;
}
.upd-item {
    display:grid;
    grid-template-columns:64px minmax(0,1fr);
    gap:12px;
    align-items:start;
    margin-bottom:10px;
    padding:10px;
    border:1px solid #e7ebf6;
    border-radius:14px;
    background:#f8f9fd;
    color:inherit;
    transition:background .25s, transform .25s, border-color .25s;
}
.upd-item:hover {
    background:#fff;
    border-color:#f2a900;
    transform:translateX(-3px);
    color:inherit;
}
.upd-thumb {
    display:grid;
    place-items:center;
    width:64px;
    height:64px;
    border-radius:12px;
    overflow:hidden;
    background:#fff1cc;
    text-align:center;
    font-size:11px;
    line-height:1.2;
    color:#a86d00;
}
.upd-thumb img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s;
}
.upd-item:hover .upd-thumb img {
    transform:scale(1.12);
}
.upd-thumb b {
    display:block;
    font-size:20px;
    color:#1b2a4e;
}
.upd-body {
    display:grid;
    gap:2px;
    min-width:0;
}
.upd-body time {
    font:700 10.5px var(--font-head);
    letter-spacing:.09em;
    text-transform:uppercase;
    color:#a86d00;
}
.upd-body strong {
    font:600 13.5px/1.35 var(--font-head);
    color:#1b2a4e;
}
.upd-text {
    font-size:12.5px;
    line-height:1.45;
    color:#5d6784;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.upd-body em {
    font-style:normal;
    font-weight:700;
    font-size:12px;
    color:#2f4a9a;
}
.upd-empty {
    display:grid;
    gap:4px;
    padding:22px 18px 26px;
    font-size:14px;
    color:#5d6784;
}
@media (max-width: 1000px) {
    .home-intro__layout {
        grid-template-columns:1fr;
        align-items:start;
    }
    .home-aside {
        max-width:560px;
    }
}
/* ---- News page (blog-style) ---- */ .post-article__date {
    margin:10px 0 0;
    font:600 .85rem var(--font-head);
    color:var(--gold-d);
    letter-spacing:.04em;
}
.post-article__img img + img {
    margin-top:14px;
}
.post-article__img figcaption {
    margin-top:10px;
    font-size:.88rem;
    font-style:italic;
    color:var(--muted);
    text-align:center;
}
.post-article--news .post-article__body > p:first-of-type::first-letter {
    float:none;
    font:inherit;
    color:inherit;
    padding:0;
}
.post-card--plain .post-card__body {
    padding-top:28px;
}


/* Event detail: poster-style banner (portrait image shown whole) */
.evd__banner--poster { background:var(--cream, #fbf7ee); text-align:center; padding:18px; }
.evd__banner--poster img { aspect-ratio:auto; width:auto; max-width:100%; max-height:640px; height:auto; object-fit:contain; margin:0 auto; border-radius:12px; }

/* News date highlight */
.post-card__date {
    display:inline-flex;
    align-items:center;
    gap:6px;
    align-self:center;
    padding:5px 14px;
    border-radius:99px;
    background:rgba(212,160,23,.15);
    color:var(--gold-d);
    font:700 .82rem var(--font-head);
    letter-spacing:.03em;
}
.post-article__date {
    display:inline-block;
    padding:6px 16px;
    border-radius:99px;
    background:rgba(212,160,23,.15);
    border:1px solid rgba(212,160,23,.4);
}
/* Board message article: photo on the left */
.post-article__person {
    display:grid;
    grid-template-columns:220px 1fr;
    gap:32px;
    align-items:start;
}
.post-article__photo {
    position:sticky;
    top:100px;
    text-align:center;
}
.post-article__photo img {
    width:100%;
    aspect-ratio:1/1;
    object-fit:cover;
    object-position:center top;
    border-radius:14px;
    border:4px solid #fff;
    box-shadow:0 0 0 2px var(--gold),0 8px 22px rgba(13,21,45,.18);
}
.post-article__photo strong {
    display:block;
    margin-top:14px;
    font:700 1.02rem var(--font-head);
    color:var(--ink);
}
.post-article__photo span {
    display:block;
    margin-top:2px;
    font-size:.82rem;
    color:var(--muted);
}
@media (max-width:720px) {
    .post-article__person {
        grid-template-columns:1fr;
    }
    .post-article__photo {
        position:static;
        max-width:200px;
        margin:0 auto;
    }
}

/* ---- District Convenors / Honorary Members: cards flow in rows ---- */
.conv-grid {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:24px;
    max-width:1140px;
    margin:34px auto 0;
}
.conv-card {
    flex:0 1 200px;
    width:200px;
}
.conv-card .dist-card__body a {
    display:inline-flex;
    align-items:center;
    gap:6px;
    font:600 .88rem var(--font-head);
    color:var(--emerald-d);
}
.conv-card .dist-card__body h3 {
    font-size:1rem;
    min-height:2.6em;
}
@media (max-width:760px) {
    .conv-grid { gap:16px; }
    .conv-card { flex:0 1 calc(50% - 8px); width:calc(50% - 8px); }
}
@media (max-width:380px) {
    .conv-card { flex-basis:100%; width:100%; max-width:300px; }
}

/* District Convenors / Honorary: name first, then district / role; quick, restrained entrance */
.conv-card .dist-card__body small {
    margin:0 0 10px;
    font-size:.74rem;
    letter-spacing:.08em;
}
.conv-card .dist-card__body h3 {
    margin:0 0 4px;
}
.conv-card .dist-card__body a {
    margin-top:2px;
}
.conv-card {
    transition:box-shadow .2s ease,border-color .2s ease;
}
.conv-card:hover {
    box-shadow:var(--shadow-md,0 8px 22px rgba(20,32,70,.10));
}
.js .conv-card.reveal {
    transition:opacity .25s ease-out,transform .25s ease-out;
    transition-delay:0ms !important;
}
.js .conv-card.reveal:not(.in) {
    opacity:0;
    transform:translateY(8px);
}
.js .conv-card.reveal.done {
    transition:box-shadow .2s ease,border-color .2s ease;
}
.conv-grid--plain .conv-card .dist-card__body h3 {
    min-height:0;
    margin-bottom:6px;
}
.conv-grid--plain .conv-card .dist-card__body {
    padding-bottom:24px;
}

/* ---- District Convenors / Honorary Members: larger cards with hover lift ---- */
.conv-grid { gap:30px; max-width:1240px; }
.conv-card { flex:0 1 250px; width:250px; }
.conv-card .dist-card__body { padding:22px 18px 26px; }
.conv-card .dist-card__body h3 { font-size:1.12rem; }
.conv-card .dist-card__body small { font-size:.8rem; }
.conv-card .dist-card__body a { font-size:.95rem; }
.conv-card,
.js .conv-card.reveal.done {
    transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease;
}
.conv-card .dist-card__photo img { transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.conv-card:hover,
.js .conv-card.reveal.done:hover {
    transform:translateY(-10px);
    box-shadow:0 18px 38px rgba(20,32,70,.18);
    border-color:var(--gold,#d9a93c);
}
.conv-card:hover .dist-card__photo img { transform:scale(1.07); }
@media (max-width:760px) {
    .conv-grid { gap:16px; }
    .conv-card { flex:0 1 calc(50% - 8px); width:calc(50% - 8px); }
}
@media (max-width:380px) {
    .conv-card { flex-basis:100%; width:100%; max-width:320px; }
}
@media (prefers-reduced-motion:reduce) {
    .conv-card, .conv-card .dist-card__photo img { transition:none; }
    .conv-card:hover, .conv-card:hover .dist-card__photo img { transform:none; }
}

/* =====================================================================
   Events (Nov 2026): photo/poster presentation, thumbnails, gallery
   ===================================================================== */
/* Any picture shown whole (poster, collage or photo) over a soft blurred copy of itself, so nothing is cropped */
.fitimg { position:relative; isolation:isolate; display:grid; place-items:center; overflow:hidden; background:#1b2a4e; }
.fitimg .fitimg__bg { position:absolute !important; inset:-24px; width:calc(100% + 48px) !important; height:calc(100% + 48px) !important; max-width:none !important; max-height:none !important; object-fit:cover !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; filter:blur(22px) brightness(.9) saturate(1.1); z-index:-1; transform:none !important; }
.fitimg img { display:block; max-width:100%; height:auto; }

/* Detail page banner */
.evd__banner--fit { margin:0 0 34px; background:#ffffff; }
.evd__banner--fit .evd__zoom { display:block; width:100%; padding:0; border:0; background:none; cursor:zoom-in; }
.evd__banner--fit .fitimg--banner { padding:22px; min-height:260px; }
.evd__banner--fit .fitimg--banner img { width:auto; aspect-ratio:auto; max-height:560px; object-fit:contain; border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.28); }
.evd__banner--fit figcaption, .evd__gallery figcaption { padding:12px 18px; font-size:.88rem; color:var(--muted); background:#ffffff; line-height:1.45; }
.evd__banner--fit .ev-cat { z-index:2; }

/* Photos & posters grid */
.evd__gallery { display:grid; gap:18px; grid-template-columns:repeat(2, minmax(0,1fr)); margin-top:18px; }
.evd__gallery--1 { grid-template-columns:minmax(0,1fr); }
.evd__gallery figure { margin:0; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:#ffffff; box-shadow:var(--shadow-sm); }
.evd__gallery .evd__zoom { display:block; width:100%; padding:0; border:0; background:none; cursor:zoom-in; }
.evd__gallery .fitimg--gal { padding:14px; min-height:220px; }
.evd__gallery .fitimg--gal img { width:auto; max-height:380px; object-fit:contain; border-radius:8px; box-shadow:0 8px 22px rgba(0,0,0,.25); transition:transform .4s var(--ease); }
.evd__gallery--1 .fitimg--gal img { max-height:480px; }
.evd__zoom:hover img { transform:scale(1.02); }
.evd__zoom:focus-visible { outline:3px solid var(--gold); outline-offset:-3px; }

/* Event cards: thumbnail */
.ev-thumb { width:104px; height:88px; border-radius:14px; overflow:hidden; background:#e9ecf3; border:1px solid var(--line); }
.ev-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.ev-row--thumb { grid-template-columns:auto auto 1fr auto auto; }
.ev-note { text-align:center; color:var(--muted); margin:18px 0 0; }

/* Spotlight card on the Events page */
.ev-spot--noart { grid-template-columns:auto 1fr; }
.ev-spot__art .fitimg { aspect-ratio:4/3; border-radius:20px; border:4px solid rgba(255,255,255,.9); padding:10px; }
.ev-spot__art .fitimg img { width:100%; height:100%; aspect-ratio:auto; border:0; border-radius:8px; object-fit:contain; }

@media (min-width:981px) and (max-width:1180px) {
    .ev-layout .ev-row--thumb { grid-template-columns:auto auto 1fr auto; }
    .ev-thumb { width:84px; height:72px; }
}
@media (max-width:760px) {
    .evd__gallery { grid-template-columns:minmax(0,1fr); }
    .evd__banner--fit .fitimg--banner { padding:14px; }
}
@media (max-width:700px) {
    .ev-row--thumb { grid-template-columns:auto 1fr; }
    .ev-row--thumb .ev-thumb { grid-column:1 / -1; order:-1; width:100%; height:170px; }
}
@media (prefers-reduced-motion:reduce) { .evd__zoom:hover img { transform:none; } }

/* Tall poster images inside a post: keep them to a comfortable width */
.post-article__img--poster img { max-width:560px; margin-left:auto; margin-right:auto; }

/* Education Insights: full-story layout */
.edu-article { max-width:1100px; margin:0 auto; }
.edu-head { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; padding:18px 0 26px; border-bottom:1px solid var(--line); }
.edu-chips { display:inline-flex; align-items:center; gap:10px; padding:10px 20px 10px 14px; border-radius:999px; background:var(--gold-l); color:var(--forest); font-weight:700; font-size:.95rem; }
.edu-chips svg { color:var(--forest); }
.edu-chips i { width:12px; height:12px; border-radius:50%; background:var(--gold); display:inline-block; margin:0 2px; }
.edu-head h2 { font-family:var(--font-head); font-size:clamp(1.9rem, 4.2vw, 3rem); line-height:1.12; color:var(--forest); margin:18px 0 18px; letter-spacing:-.01em; }
.edu-meta { list-style:none; display:flex; flex-wrap:wrap; gap:10px 32px; margin:0; padding:0; color:var(--text); }
.edu-meta li { display:inline-flex; align-items:center; gap:9px; font-size:1rem; }
.edu-meta svg { color:var(--forest); }
.edu-head__art { flex:0 0 150px; width:150px; height:auto; margin-top:-4px; }
.edu-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:44px; align-items:start; padding:34px 0 30px; }
.edu-poster { margin:0; }
.edu-poster img { display:block; width:100%; height:auto; border-radius:22px; border:1px solid var(--line); box-shadow:var(--shadow); }
.edu-text p { font-size:1.12rem; line-height:1.75; color:var(--text); margin:0 0 22px; }
.edu-text strong { color:var(--forest); font-weight:700; }
.edu-quote { position:relative; margin:30px 0 0; padding:26px 30px 26px 76px; border-radius:20px; background:var(--gold-l); color:var(--forest); font-family:var(--font-head); font-weight:600; font-size:1.3rem; line-height:1.4; }
.edu-quote b { position:absolute; left:22px; top:6px; font-size:4.6rem; line-height:1; color:var(--gold); }
.edu-quote span { display:block; }
.edu-quote span::first-letter { color:inherit; }
.edu-tags { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:22px 0; border-top:1px solid var(--line); }
.edu-tags strong { color:var(--forest); margin-right:6px; }
.edu-tags span { padding:9px 20px; border-radius:999px; background:var(--emerald-l); color:var(--forest); font-weight:500; font-size:.95rem; }
@media (max-width:860px) {
    .edu-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
    .edu-poster { max-width:520px; margin:0 auto; }
}
@media (max-width:640px) {
    .edu-head__art { display:none; }
    .edu-quote { padding:22px 20px 22px 62px; font-size:1.12rem; }
    .edu-quote b { left:16px; }
}
