.extra-public-section{margin-top:65px;padding-top:40px;border-top:1px solid #dfe7ef}
.extra-public-section>h2,.article-gallery>h2{font-family:"Playfair Display",serif;color:var(--navy);margin-bottom:1.4rem}
.achievement-public-grid{display:grid;gap:14px}
.achievement-public-grid article{display:flex;gap:18px;background:var(--soft);border-radius:17px;overflow:hidden}
.achievement-public-grid img{width:180px;min-height:140px;object-fit:cover}
.achievement-public-grid article>div{padding:20px}
.achievement-public-grid small{color:var(--blue);font-weight:700}
.achievement-public-grid h3{font-family:"Playfair Display",serif;margin:.4rem 0}
.achievement-public-grid p{color:var(--muted);margin:0}
.organizer-public-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.organizer-public-grid article{background:var(--soft);border-radius:16px;padding:12px;text-align:center}
.organizer-public-grid img,.organizer-placeholder{width:100%;height:190px;border-radius:12px;object-fit:cover;object-position:top;background:var(--sky)}
.organizer-placeholder{display:grid;place-items:center;font-size:3rem;color:var(--blue)}
.organizer-public-grid b,.organizer-public-grid span{display:block}
.organizer-public-grid b{font-size:.88rem;margin-top:10px}
.organizer-public-grid span{font-size:.7rem;color:var(--muted)}
.public-docs{position:static;margin-top:18px}
.public-docs>a{display:flex;gap:13px;padding:12px 0;border-top:1px solid #ffffff1f;color:#fff}
.public-docs>a>i{color:var(--gold);font-size:1.3rem}
.public-docs span{font-size:.82rem}.public-docs small{display:block;color:#ffffff85;font-size:.62rem}
.article-gallery{margin-top:50px}.article-gallery .gallery-photo{height:220px}
@media(max-width:767px){.organizer-public-grid{grid-template-columns:repeat(2,1fr)}.achievement-public-grid article{flex-direction:column}.achievement-public-grid img{width:100%;height:220px}.article-gallery .gallery-photo{height:150px}}
.contact-card p{display:flex;gap:10px;align-items:flex-start}.contact-card p i{color:var(--blue);width:20px}.map-frame{min-height:330px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.map-frame iframe{width:100%;height:330px;border:0}.calendar-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px}.event-list{display:grid;gap:10px}.event-list article{display:flex;gap:18px;padding:14px;border-radius:12px;background:var(--soft)}.event-list time{min-width:100px;color:var(--blue);font-weight:800}.event-list p{margin:.25rem 0 0;color:var(--muted);font-size:.85rem}
.calendar-head{display:flex;align-items:center;justify-content:space-between;text-align:center;margin-bottom:18px}.calendar-head a{width:38px;height:38px;border-radius:10px;background:var(--sky);color:var(--blue);display:grid;place-items:center;text-decoration:none}.calendar-head span{font-size:.65rem;letter-spacing:.14em;color:var(--blue);font-weight:800}.calendar-head h2{margin:.25rem 0 0;font-size:1.35rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-grid>b{text-align:center;color:var(--muted);font-size:.72rem;padding:8px}.calendar-day,.calendar-empty{min-height:82px;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}.calendar-day strong{font-size:.8rem}.calendar-day.has-event{background:#eef7ff;border-color:#9ac8ee}.calendar-day small{display:block;color:var(--blue);font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:7px}.calendar-day.has-event strong{color:var(--blue)}
@media(max-width:575px){.calendar-day,.calendar-empty{min-height:62px;padding:5px}.calendar-day small{font-size:.54rem}.calendar-grid{gap:3px}}
.gallery-public-card{height:220px;position:relative;background:var(--navy)}.gallery-public-card img{width:100%;height:100%;object-fit:cover;transition:.35s}.gallery-public-card span{position:absolute;left:0;right:0;bottom:0;padding:18px 12px 10px;color:#fff;font-size:.72rem;font-weight:700;background:linear-gradient(0deg,#041a33e8,transparent)}.gallery-public-card:hover img{transform:scale(1.05)}
.gallery-sidebar{position:sticky;top:110px;align-self:flex-start}.gallery-sidebar .gallery-filter-panel{position:static}.gallery-filter-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.gallery-filter-panel h2{font-size:1.1rem;line-height:1.2;margin:8px 0 12px}.gallery-filter{display:block;width:100%;border:0;border-radius:9px;background:transparent;color:var(--text);text-align:left;padding:7px 12px;margin:1px 0;font-size:.78rem;line-height:1.25;font-weight:700}.gallery-filter:hover,.gallery-filter.active{background:var(--sky);color:var(--blue)}.gallery-sentinel{height:2px}.gallery-public-card{height:220px;position:relative;background:var(--navy)}.gallery-public-card img{width:100%;height:100%;object-fit:cover;transition:.35s}.gallery-public-card span{position:absolute;left:0;right:0;bottom:0;padding:18px 12px 10px;color:#fff;font-size:.72rem;font-weight:700;background:linear-gradient(0deg,#041a33e8,transparent)}.gallery-public-card:hover img{transform:scale(1.05)}
.news-filter-panel,.news-related-panel{position:sticky;top:110px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.news-filter-panel h2,.news-related-panel h2{font-size:1.1rem;margin:8px 0 14px}.news-filter{display:block;width:100%;border:0;border-radius:9px;background:transparent;color:var(--text);text-align:left;padding:10px 12px;margin:3px 0;font-size:.78rem;font-weight:700}.news-filter:hover,.news-filter.active{background:var(--sky);color:var(--blue)}.news-side-note{background:var(--navy);color:#fff;border-radius:16px;padding:20px}.news-side-note i:first-child{color:var(--gold);font-size:1.4rem}.news-side-note b,.news-side-note p{display:block;margin-top:8px}.news-side-note p{font-size:.78rem;color:#ffffffad}.news-side-note a{color:var(--gold);font-size:.78rem;font-weight:700;text-decoration:none}.news-related-panel{position:sticky}.related-news{display:flex;gap:10px;padding:11px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--text)}.related-news img{width:68px;height:58px;border-radius:9px;object-fit:cover}.related-news b,.related-news small{display:block}.related-news b{font-size:.76rem;line-height:1.3}.related-news small{color:var(--muted);font-size:.65rem;margin-top:5px}
.news-sidebar{position:sticky;top:110px;align-self:flex-start}.news-sidebar .news-filter-panel{position:static}.news-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px}.news-meta time{display:block}.news-category{margin-left:auto;color:var(--blue);font-size:.68rem;font-weight:700;text-align:right}.news-author{display:block;margin-top:1rem;color:var(--muted);font-size:.72rem;text-align:left}.news-author i{color:var(--blue)}
@media(max-width:991px){.news-sidebar{position:static}.news-sidebar .news-filter-panel{position:static}}
.vision-mission-content{max-width:960px}.vm-block{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 30px;margin-bottom:22px;box-shadow:0 12px 30px #092b520b}.vm-block h2{font-family:"Playfair Display",serif;font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.45;color:var(--navy);margin:10px 0 0}.vm-block ol{margin:14px 0 0;padding-left:1.4rem}.vm-block li{padding:10px 0 10px 8px;color:#34465a;line-height:1.75}.core-value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}.core-value-grid article{background:var(--sky);border-radius:14px;padding:18px 16px;min-height:135px}.core-value-grid b{color:var(--gold);font-size:1.3rem}.core-value-grid h3{font-size:1rem;color:var(--navy);margin:18px 0 3px}.core-value-grid small{color:var(--muted)}
@media(max-width:767px){.vm-block{padding:22px 20px}.core-value-grid{grid-template-columns:repeat(2,1fr)}}
.synergy-content{max-width:1040px}.synergy-logo-wrap{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;text-align:center;margin-bottom:24px}.synergy-logo-wrap img{display:block;width:min(100%,760px);max-height:260px;object-fit:contain;margin:auto}.synergy-lead{font-size:1.18rem;line-height:1.8;text-align:center;color:var(--muted);margin:0 auto 30px;max-width:850px}.synergy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.synergy-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 20px;box-shadow:0 12px 30px #092b520b}.synergy-word{display:inline-flex;padding:7px 10px;border-radius:999px;background:var(--gold);color:var(--navy);font-weight:800;font-size:.78rem;letter-spacing:.08em}.synergy-grid h2{font-family:"Playfair Display",serif;color:var(--navy);font-size:1.35rem;margin:18px 0 10px}.synergy-grid p{color:var(--muted);line-height:1.7;margin:0}.synergy-grid article:nth-child(2) .synergy-word{background:#7cc9ff}.synergy-grid article:nth-child(3) .synergy-word{background:#a9dfb0}.synergy-grid article:nth-child(4) .synergy-word{background:#f3a6c8}@media(max-width:991px){.synergy-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:575px){.synergy-grid{grid-template-columns:1fr}.synergy-lead{text-align:left;font-size:1rem}}
.principal-welcome{max-width:1080px}.principal-card{display:grid;grid-template-columns:minmax(260px,360px) 1fr;grid-template-areas:"photo heading" "photo lead" "photo body";gap:12px 42px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 16px 38px #092b5210}.principal-heading{grid-area:heading}.principal-photo{grid-area:photo;position:relative;align-self:center}.principal-lead{grid-area:lead}.principal-body{grid-area:body}.principal-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:18px;background:var(--sky)}.principal-badge{position:absolute;left:16px;bottom:16px;background:var(--gold);color:var(--navy);padding:9px 13px;border-radius:999px;font-size:.75rem;font-weight:800}.principal-heading h2{font-family:"Playfair Display",serif;color:var(--navy);font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.2;margin:12px 0 10px}.principal-lead p,.principal-body p{color:#34465a;line-height:1.85;margin-bottom:15px}.principal-greeting{font-size:1.15rem;font-weight:800;color:var(--blue)!important}.principal-signature{border-top:1px solid var(--line);margin-top:25px;padding-top:17px}.principal-signature strong,.principal-signature span{display:block}.principal-signature strong{color:var(--navy)}.principal-signature span{color:var(--muted);font-size:.82rem;margin-top:4px}@media(max-width:767px){.principal-card{grid-template-columns:110px minmax(0,1fr);grid-template-areas:"heading heading" "photo lead" "body body";gap:16px 14px;padding:18px}.principal-heading h2{font-size:clamp(1.55rem,7vw,2.1rem);margin-top:9px;margin-bottom:0}.principal-photo{align-self:start}.principal-photo img{aspect-ratio:3/4;border-radius:13px}.principal-badge{left:5px;right:5px;bottom:6px;padding:6px 4px;font-size:.57rem;text-align:center}.principal-lead p,.principal-body p{font-size:.92rem;line-height:1.55;margin-bottom:13px}.principal-greeting{font-size:1rem!important;line-height:1.35!important}.principal-signature{margin-top:18px;padding-top:13px;font-size:.9rem}}
.org-content{max-width:1080px}.org-intro{text-align:center;color:var(--muted);font-size:1.05rem;line-height:1.7;max-width:760px;margin:0 auto 30px}.org-level{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.org-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px 15px;min-width:210px;box-shadow:0 10px 26px #092b520c}.org-card img{width:54px;height:62px;object-fit:cover;object-position:top;border-radius:10px;background:var(--sky)}.org-card span{display:block;color:var(--blue);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.org-card h3{font-size:.9rem;line-height:1.25;color:var(--navy);margin:5px 0 0}.org-top .org-card{border:2px solid var(--gold);min-width:290px}.org-top .org-card img{width:70px;height:80px}.org-connector{height:34px;width:2px;background:var(--gold);margin:auto}.org-four{position:relative}.org-four:before{content:"";position:absolute;top:-17px;left:12%;right:12%;height:1px;background:var(--gold)}.org-support{margin-top:40px;padding-top:25px;border-top:1px solid var(--line)}.org-support-title{text-align:center;color:var(--navy);font-weight:800;margin-bottom:22px}.org-note{text-align:center;color:var(--muted);font-size:.78rem;margin:28px auto 0}.org-content .org-card{transition:.25s}.org-content .org-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}@media(max-width:767px){.org-four:before{display:none}.org-card{min-width:min(100%,300px);width:100%;justify-content:flex-start}.org-top .org-card{min-width:min(100%,300px)}}
.org-chart{text-align:center}.org-node{display:inline-flex;flex-direction:column;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 20px;min-width:220px;color:var(--navy);box-shadow:0 10px 26px #092b520d}.org-node>i{font-size:1.6rem;color:var(--blue)}.org-node>span{font-weight:800}.org-foundation{border:2px solid var(--gold);min-width:300px}.org-foundation i{color:var(--gold)}.org-principal{background:var(--navy);color:#fff;border-color:var(--navy);min-width:270px}.org-principal i{color:var(--gold)}.org-line{height:34px;width:2px;background:var(--gold);margin:auto}.org-branch{display:flex;justify-content:center;gap:28px;position:relative}.org-branch:before{content:"";position:absolute;top:-17px;left:25%;right:25%;height:1px;background:var(--gold)}.org-branch .org-node{min-width:280px}.org-branch-wide{gap:45px}.org-branch-wide:before{left:20%;right:20%}.org-branch-wide .org-node{min-width:320px}.org-node .org-card{margin-top:12px;min-width:260px;text-align:left}.org-node .org-card img{width:48px;height:56px}.org-student{background:var(--gold);border-color:var(--gold)}.org-student i{color:var(--navy)}.org-note{max-width:720px}.org-node>span>.org-card{display:flex}@media(max-width:767px){.org-branch{flex-direction:column;gap:16px}.org-branch:before{display:none}.org-branch .org-node,.org-branch-wide .org-node{min-width:min(100%,320px);width:100%}.org-line{height:24px}}
.org-node>strong{font-size:.86rem;color:var(--navy);line-height:1.3}.org-principal>strong{color:#fff}.org-node>span>.org-card{display:flex}
.org-head-row{display:flex;align-items:center;justify-content:center;gap:0}.org-head-row .org-principal{margin:0}.org-committee{min-width:190px;padding:13px 17px}.org-committee i{color:var(--blue)}.org-dashed-line{width:100px;border-top:2px dashed #8c9caf;margin:0 10px}@media(max-width:767px){.org-head-row{flex-direction:column;gap:12px}.org-dashed-line{width:2px;height:32px;border-top:0;border-left:2px dashed #8c9caf;margin:0}}
.staff-role-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.staff-role-option{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;background:#fff;color:var(--text);font-size:.78rem;cursor:pointer}.staff-role-option:has(input:checked){border-color:var(--blue);background:var(--sky);color:var(--blue);font-weight:700}.staff-role-option input{accent-color:var(--blue)}@media(max-width:575px){.staff-role-checks{grid-template-columns:1fr}}
.org-principal img{width:62px;height:70px;object-fit:cover;object-position:top;border-radius:10px;background:var(--sky)}.org-principal>span{font-size:.72rem;font-weight:600;color:#ffffffc9}.org-branch-wide{justify-content:flex-start}.org-branch-wide .org-node{align-items:flex-start;text-align:left}.org-branch-wide .org-node>i,.org-branch-wide .org-node>strong{align-self:flex-start}.org-branch-wide .org-card{width:100%}
@media(min-width:992px){.org-branch-wide{gap:20px}.org-branch-wide .org-node{min-width:260px}.org-branch-wide .org-card{min-width:230px}}
.org-staff-support{margin-top:8px}.org-staff-support .org-node{min-width:340px}.org-staff-support:before{left:35%;right:35%}@media(max-width:767px){.org-staff-support .org-node{min-width:min(100%,320px)}}
.map-frame{min-height:420px;overflow:hidden;border-radius:18px;background:var(--sky)}.map-frame iframe{display:block;width:100%;height:420px;border:0}
.map-open-link{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--navy);color:#fff;text-decoration:none;padding:12px 15px;font-size:.8rem;font-weight:700}.map-open-link:hover{background:var(--blue);color:#fff}
.curriculum-content{max-width:1060px}.curriculum-intro{text-align:center;margin-bottom:30px}.curriculum-intro h2{font-family:"Playfair Display",serif;color:var(--navy);font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.2;margin:12px auto 18px}.curriculum-intro p{color:var(--muted);line-height:1.8;max-width:820px;margin:8px auto}.curriculum-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.curriculum-grid article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 18px}.curriculum-grid i{font-size:1.7rem;color:var(--blue)}.curriculum-grid h3{color:var(--navy);font-size:1rem;margin:15px 0 9px}.curriculum-grid p,.curriculum-columns p,.curriculum-section>p{color:var(--muted);font-size:.86rem;line-height:1.7}.curriculum-section{margin-top:38px;padding-top:28px;border-top:1px solid var(--line)}.curriculum-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:15px}.curriculum-columns>div{background:var(--sky);border-radius:14px;padding:20px}.curriculum-columns h3{color:var(--navy);font-size:1.1rem}.phase-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:15px}.phase-row>div{display:grid;grid-template-columns:auto 1fr;column-gap:13px;align-items:center;background:var(--navy);color:#fff;border-radius:14px;padding:20px}.phase-row b{grid-row:span 2;color:var(--gold);font-size:1.45rem}.phase-row span{font-weight:700}.phase-row small{grid-column:2;color:#ffffffb8;margin-top:5px}.curriculum-closing{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.curriculum-closing h3{color:var(--navy)}@media(max-width:991px){.curriculum-grid{grid-template-columns:repeat(2,1fr)}.curriculum-columns{grid-template-columns:1fr}}@media(max-width:575px){.curriculum-grid,.phase-row{grid-template-columns:1fr}.phase-row>div{grid-template-columns:auto 1fr}}
.program-content{max-width:1060px}.program-intro{text-align:center;max-width:820px;margin:0 auto 32px}.program-intro h2{font-family:"Playfair Display",serif;color:var(--navy);font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.2;margin:12px 0 18px}.program-intro p{color:var(--muted);line-height:1.8}.program-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.program-list article{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.program-icon{flex:0 0 48px;height:48px;border-radius:13px;background:var(--sky);color:var(--blue);display:grid;place-items:center;font-size:1.35rem}.program-list h3{font-size:1.05rem;color:var(--navy);margin:2px 0 8px}.program-list p{color:var(--muted);font-size:.86rem;line-height:1.7;margin:0}.program-closing{margin-top:28px;background:var(--navy);color:#fff;border-radius:18px;padding:26px}.program-closing h3{font-family:"Playfair Display",serif}.program-closing p{color:#ffffffbd;line-height:1.7}.program-closing .btn{margin-top:6px}@media(max-width:767px){.program-list{grid-template-columns:1fr}}
.calendar-day.has-event small{font-weight:700}
.calendar-bullet{display:inline-block!important;color:var(--gold);font-size:1rem;margin-right:5px;line-height:.5;vertical-align:-1px}
.academic-info-intro{max-width:780px;margin-bottom:2rem}.academic-info-intro h2{font-size:clamp(1.6rem,3vw,2.35rem);margin:.45rem 0 1rem}.academic-info-content .panel-card{padding:1.35rem;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.academic-info-content .panel-card h3{color:var(--blue)}.academic-info-content .panel-card>i{color:var(--blue)!important}.academic-info-flow{padding-top:1rem}.academic-step{height:100%;padding:1.1rem;border-radius:14px;background:var(--soft);border:1px solid var(--line)}.academic-step>b{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff;font-size:.8rem}.academic-step h3{font-size:1rem;margin:.8rem 0 .35rem;color:var(--blue)}.academic-step p{font-size:.86rem;margin:0;color:var(--muted)}.academic-info-note{display:flex;gap:10px;align-items:flex-start;padding:1rem 1.15rem;border-radius:12px;background:#fff8e5;color:#6d5313;border:1px solid #f5d477}.academic-info-note i{font-size:1.2rem;color:var(--gold)}
.osis-hero-copy{max-width:820px;margin-bottom:2rem}.osis-hero-copy h2{font-size:clamp(1.7rem,3vw,2.5rem);margin:.45rem 0 1rem}.osis-content .panel-card{padding:1.5rem;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.osis-content .panel-card h3{color:var(--blue);margin:.65rem 0}.osis-values{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.25rem}.osis-values span{padding:.55rem .75rem;border-radius:999px;background:var(--soft);color:var(--blue);font-size:.84rem;font-weight:700}.osis-values i{margin-right:4px}.osis-highlight{padding:1.6rem;border-radius:18px;background:linear-gradient(135deg,#082f62,#1466a7);color:#fff;box-shadow:var(--shadow)}.osis-highlight>i{font-size:2rem;color:var(--gold);display:block;margin-bottom:1.2rem}.osis-highlight .section-kicker{color:#ffd36a}.osis-highlight h3{font-size:1.5rem;margin:.5rem 0}.osis-section>.section-kicker{display:block}.osis-vision,.osis-mission{height:100%;padding:1.35rem;border-radius:15px;background:var(--soft);border:1px solid var(--line)}.osis-vision h3,.osis-mission h3{color:var(--blue)}.osis-mission ol{margin-bottom:0;padding-left:1.2rem}.osis-mission li{margin-bottom:.55rem}.osis-feature{height:100%;padding:1.25rem;border-radius:15px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.osis-feature i{font-size:1.8rem;color:var(--blue)}.osis-feature h3{font-size:1.05rem;margin:.75rem 0 .4rem;color:var(--blue)}.osis-feature p{margin:0;color:var(--muted);font-size:.9rem}.osis-note{display:flex;gap:10px;align-items:flex-start;padding:1rem 1.15rem;border-radius:12px;background:#fff8e5;color:#6d5313;border:1px solid #f5d477}.osis-note i{font-size:1.2rem;color:var(--gold)}
.osis-managed-section{padding:1.5rem 0;border-bottom:1px solid var(--line)}.osis-managed-section:last-child{border-bottom:0}.osis-managed-section>.section-kicker{display:block;margin-bottom:.65rem}.osis-managed-section>div{line-height:1.8}.osis-managed-section img{max-width:100%;height:auto;border-radius:12px}
.osis-public-intro{width:100%;max-width:850px;margin-bottom:2rem}.osis-public-intro h2{font-size:clamp(1.8rem,3vw,2.7rem);margin:.5rem 0 1rem}.osis-period-picker{max-width:320px;margin:0 0 2.5rem}.osis-period-picker label{font-weight:700;color:var(--blue);margin-bottom:.5rem}.osis-public-section{margin-top:2.5rem}.section-heading h2{margin:.4rem 0 1.4rem}.osis-member-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.osis-member-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease}.osis-member-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px #082b5520}.osis-member-photo{height:230px;background:linear-gradient(145deg,#e8f3ff,#cfe5fa);display:grid;place-items:center;overflow:hidden}.osis-member-photo img{width:100%;height:100%;object-fit:cover}.osis-member-photo i{font-size:5rem;color:#8aabc9}.osis-member-body{padding:1rem 1.1rem}.osis-member-body>span{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--gold)}.osis-member-body h3{font-size:1.05rem;color:var(--blue);margin:.35rem 0}.osis-member-body small{color:var(--muted)}.osis-member-body p{font-size:.82rem;color:var(--muted);margin:.6rem 0 0}.osis-public-content{padding:1.5rem;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}@media(max-width:991px){.osis-member-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.osis-member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.osis-member-photo{height:190px}}@media(max-width:480px){.osis-member-grid{grid-template-columns:1fr 1fr}.osis-member-photo{height:160px}.osis-member-body{padding:.8rem}.osis-member-body h3{font-size:.92rem}}
.osis-admin-notice{display:flex;gap:16px;align-items:flex-start;padding:1.5rem;border-radius:16px;background:#f1f7ff;border:1px solid #cfe3f7}.osis-admin-notice>i{font-size:1.5rem;color:var(--blue)}.osis-admin-notice h2{font-size:1.3rem;color:var(--blue);margin:0 0 .5rem}.osis-admin-notice p{color:var(--muted);margin-bottom:1rem}
.osis-member-photo a{display:block;width:100%;height:100%;cursor:zoom-in}.osis-member-photo a img{display:block}
.osis-photo-modal{display:block;width:100%;height:100%;cursor:zoom-in}.osis-photo-modal-wrap .modal-dialog{max-width:min(92vw,1100px);margin:1rem auto}.osis-photo-modal-wrap .modal-content{overflow:hidden;border:0;border-radius:18px;background:#071d36;box-shadow:0 24px 70px #0009}.osis-photo-modal-wrap .modal-header{border:0;background:#071d36;color:#fff;padding:.75rem 1rem}.osis-photo-modal-wrap .modal-title{font-size:.9rem;font-weight:700}.osis-photo-modal-wrap .btn-close{filter:invert(1);opacity:.85}.osis-photo-modal-wrap .modal-body{display:flex;align-items:center;justify-content:center;padding:0;background:#071d36;min-height:0}.osis-photo-modal-wrap .modal-body img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(88vh - 60px);object-fit:contain}.osis-photo-modal-wrap.show{background:#000b}
.instagram-side-card{padding:20px 20px;border-radius:16px;background:linear-gradient(145deg,#7b2cbf,#e1306c 52%,#f9ce34);color:#fff;box-shadow:var(--shadow)}.instagram-side-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid #ffffff80;border-radius:12px;margin-bottom:13px;font-size:1.35rem}.instagram-side-card .section-kicker{color:#fff}.instagram-side-card h3{font-size:1.15rem;line-height:1.2;margin:.4rem 0 .5rem}.instagram-side-card p{font-size:.78rem;line-height:1.42;color:#fff;opacity:.9;margin:0 0 14px}.instagram-side-card a{display:inline-flex;align-items:center;gap:7px;color:#fff;text-decoration:none;font-size:.78rem;font-weight:800}.instagram-side-card a:hover{color:#fff;text-decoration:underline}

@media(max-width:991px){.gallery-sidebar{position:static}.gallery-sidebar .gallery-filter-panel{position:static}}

.alumni-intro{max-width:760px;margin-bottom:2rem}.alumni-intro h2{color:var(--navy);font-family:"Playfair Display",serif;margin:.45rem 0 .8rem}.alumni-intro p{color:var(--muted);line-height:1.7}.alumni-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.alumni-filter button{border:0;border-radius:999px;background:#fff;color:var(--text);padding:9px 15px;font-size:.78rem;font-weight:700}.alumni-filter button.active,.alumni-filter button:hover{background:var(--blue);color:#fff}.alumni-card{height:100%;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.alumni-card>img{width:100%;height:230px;object-fit:cover;object-position:top;background:var(--sky)}.alumni-card>div{padding:18px}.alumni-card span{color:var(--gold);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.alumni-card h3{color:var(--navy);font-size:1.12rem;margin:.45rem 0}.alumni-card small,.alumni-card p{display:block;color:var(--muted);font-size:.8rem;margin:.3rem 0}.alumni-card p{line-height:1.5}.alumni-card i{color:var(--blue)}
.alumni-testimonial-section{position:relative;overflow:hidden;color:#fff;background:#082b55}
.alumni-testimonial-section:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#041a33e8,#082b5599 58%,#041a33d9);z-index:1}
.alumni-testimonial-section>.container{position:relative;z-index:2}
.alumni-testimonial-section .display-heading{color:#fff}
.alumni-testimonial-section .text-link{color:#fff}
.alumni-testimonial-section .parallax-bg{z-index:0}
.alumni-accordion-wrap{position:relative}
.alumni-accordion{display:flex;gap:12px;min-height:360px;cursor:grab;touch-action:pan-y;user-select:none;will-change:transform;transition:transform .38s cubic-bezier(.22,.61,.36,1)}
.alumni-accordion.is-dragging{cursor:grabbing;transition:none}
.alumni-accordion-nav{position:absolute;top:50%;z-index:6;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #ffffff8f;border-radius:50%;background:#061a31dc;color:#fff;box-shadow:0 10px 28px #0005;cursor:pointer;transform:translateY(-50%);transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.alumni-accordion-nav:hover,.alumni-accordion-nav:focus-visible{background:var(--gold);color:var(--navy);box-shadow:0 12px 30px #0007;transform:translateY(-50%) scale(1.06)}
.alumni-accordion-nav i{font-size:1.05rem;line-height:1}
.alumni-accordion-prev{left:-22px}
.alumni-accordion-next{right:-22px}
.alumni-accordion-item{position:relative;flex:1;min-width:78px;overflow:hidden;border-radius:18px;background:#fff;transition:box-shadow .3s ease;box-shadow:0 14px 35px #0003;will-change:transform,opacity}
.alumni-accordion-item.is-outside-window{display:none}
.alumni-accordion-item.active{flex:3}
.alumni-accordion-trigger{position:absolute;inset:0;width:100%;padding:0;border:0;background:linear-gradient(0deg,#061a31e8 0%,#061a3114 65%),#0b3157;cursor:pointer;text-align:left;color:#fff}
.alumni-accordion-trigger:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(3,25,55,.95) 0%,rgba(5,35,76,.62) 38%,rgba(6,34,70,.18) 72%,rgba(6,34,70,.04) 100%);transition:background .35s ease}
.alumni-accordion-trigger img{position:absolute;left:50%;top:50%;width:auto;height:100%;max-width:none;object-fit:cover;object-position:center;transform:translate(-50%,-50%);background:#0b3157}
.alumni-accordion-item:hover .alumni-accordion-trigger img{transform:translate(-50%,-50%)}
.alumni-accordion-trigger span{position:absolute;left:18px;right:12px;bottom:18px;z-index:2;display:block;writing-mode:vertical-rl;transform:rotate(180deg);transition:all .35s ease}
.alumni-accordion-item.active .alumni-accordion-trigger span{writing-mode:vertical-rl;transform:rotate(180deg)}
.alumni-accordion-trigger strong,.alumni-accordion-trigger small{display:block}.alumni-accordion-trigger strong{font-size:.9rem}.alumni-accordion-trigger small{font-size:.7rem;color:#ffffffb8;margin-top:4px}
.alumni-accordion-content{position:absolute;left:86px;right:0;bottom:0;z-index:3;padding:20px 22px;color:#fff;background:linear-gradient(0deg,#061a31f5,#061a31cc 78%,transparent);opacity:0;transform:translateY(16px);transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.alumni-accordion-item.active .alumni-accordion-content{opacity:1;transform:none;pointer-events:auto}
.alumni-accordion-content i{font-size:1.7rem;color:var(--gold)}.alumni-accordion-content p{margin:7px 0;color:#fff;line-height:1.55;font-size:.9rem}.alumni-accordion-content>small{color:#ffffffb8}
@media(max-width:767px){.alumni-accordion-wrap{padding:0 2px}.alumni-accordion{display:grid;grid-template-columns:1fr;min-height:0;gap:10px}.alumni-accordion-nav{width:38px;height:38px}.alumni-accordion-prev{left:-10px}.alumni-accordion-next{right:-10px}.alumni-accordion-item,.alumni-accordion-item.active{flex:none;height:82px}.alumni-accordion-item.active{height:320px}.alumni-accordion-trigger span{writing-mode:horizontal-tb;transform:none;left:92px;bottom:16px}.alumni-accordion-item.active .alumni-accordion-trigger span{left:12px;right:auto;bottom:16px;writing-mode:vertical-rl;transform:rotate(180deg)}.alumni-accordion-trigger img{width:auto;height:100%}.alumni-accordion-content{left:90px;padding:14px 16px}.alumni-accordion-content i{font-size:1.25rem}.alumni-accordion-content p{font-size:.82rem}}
.alumni-submit-card{padding:28px}.alumni-submit-card label{font-weight:700;color:var(--navy);margin-top:12px}.alumni-submit-card .form-control{border-color:var(--line);padding:.72rem .85rem}.alumni-submit-card .form-check-label{font-weight:400;color:var(--muted);font-size:.86rem;margin-top:0}

/* OSIS leadership slider, populated from the selected period's member cards. */
.osis-slider-section{position:relative;isolation:isolate;overflow:hidden;color:#fff;background-image:linear-gradient(180deg,rgba(5,22,42,.94),rgba(5,22,42,.78)),url('../img/hero/header-web.webp');background-size:cover;background-position:center;background-attachment:fixed}
.osis-slider-section .container{position:relative;z-index:1}
.osis-slider-section .section-head{max-width:760px;margin-bottom:1.2rem}
.osis-slider-section .display-heading{color:#fff}
.osis-slider-section .section-head p{color:rgba(255,255,255,.76)}
.osis-slider-section .section-kicker{color:#ffba18}
.osis-slider-wrap{position:relative;display:flex;align-items:center;gap:8px;min-height:430px}
.osis-member-swiper{width:100%;padding:25px 0 42px;overflow:hidden}
.osis-member-slide{height:350px;transition:filter .55s ease,opacity .55s ease}
.osis-slider-card{height:100%;position:relative;overflow:hidden;border-radius:18px;background:#0b3157;box-shadow:0 14px 30px rgba(0,0,0,.25)}
.osis-slider-photo,.osis-slider-photo img{width:100%;height:100%}
.osis-slider-photo{display:grid;place-items:center;background:linear-gradient(145deg,#197fc1,#082b55)}
.osis-slider-photo img{display:block;object-fit:cover;object-position:top center}
.osis-slider-photo i{font-size:5rem;color:#a9d5f6}
.osis-slider-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;color:#fff;background:linear-gradient(180deg,transparent 28%,rgba(3,26,53,.94));opacity:.82;transition:opacity .55s ease}
.osis-slider-overlay small{color:#ffca36;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.osis-slider-overlay strong{margin-top:5px;font-size:1.05rem;line-height:1.2}
.osis-slider-overlay span{margin-top:5px;color:rgba(255,255,255,.78);font-size:.78rem}
.osis-member-swiper .swiper-slide-active{z-index:3;filter:none}
.osis-member-swiper .swiper-slide:not(.swiper-slide-active){filter:brightness(.72)}
.osis-member-swiper .swiper-slide-active .osis-slider-overlay{opacity:1}
.osis-slider-prev,.osis-slider-next{position:absolute;top:50%;z-index:5;transform:translateY(-50%);width:42px;height:42px;border:0;background:transparent;color:#fff;font-size:3rem;line-height:1;cursor:pointer}
.osis-slider-prev{left:-38px}.osis-slider-next{right:-38px}
.osis-slider-prev:hover,.osis-slider-next:hover{color:#ffba18}
@media(max-width:767px){.osis-slider-section{background-attachment:scroll}.osis-slider-wrap{min-height:315px}.osis-member-swiper{padding:18px 0 28px}.osis-member-slide{height:270px}.osis-slider-overlay{padding:12px}.osis-slider-overlay strong{font-size:.82rem}.osis-slider-overlay span{font-size:.66rem}.osis-slider-prev{left:-14px}.osis-slider-next{right:-14px}}

/* Keep the slider visually separate from Visi dan Misi and make the lower
   section a compact two-column detail list. */
.osis-slider-section{margin-top:4.5rem}
.osis-detail-section{margin-top:4.5rem}
.osis-detail-section .section-heading{margin-bottom:1.25rem}
.osis-detail-section .osis-member-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}
.osis-detail-section .osis-member-card{display:flex;align-items:flex-start;min-height:132px;padding:12px;border-radius:14px;transform:none;box-shadow:0 10px 26px #082b5514}
.osis-detail-section .osis-member-card:hover{transform:translateY(-2px);box-shadow:0 16px 32px #082b5520}
.osis-detail-section .osis-member-photo{flex:0 0 100px;width:100px;height:108px;border-radius:10px}
.osis-detail-section .osis-member-body{min-width:0;padding:3px 5px 3px 15px;text-align:left}
.osis-detail-section .osis-member-body>span,.osis-detail-section .osis-member-body h3,.osis-detail-section .osis-member-body small,.osis-detail-section .osis-member-body p{display:block;margin:0 0 6px;line-height:1.3}
.osis-detail-section .osis-member-body>span{font-size:.78rem;letter-spacing:0;text-transform:none;color:var(--text);font-weight:600}
.osis-detail-section .osis-member-body>span:before{content:'Jabatan: ';color:var(--muted);font-weight:500}
.osis-detail-section .osis-member-body h3{font-size:.9rem;color:var(--blue);font-weight:700}
.osis-detail-section .osis-member-body h3:before{content:'Nama: ';color:var(--muted);font-weight:500}
.osis-detail-section .osis-member-body small{font-size:.74rem;color:var(--muted)}
.osis-detail-section .osis-member-body small:before{content:'Kelas: ';font-weight:500}
.osis-detail-section .osis-member-body p{font-size:.72rem;color:var(--muted);margin-top:4px}
.osis-detail-section .osis-member-body p:before{content:'Biografi: ';font-weight:600;color:#70839a}
@media(max-width:767px){.osis-slider-section,.osis-detail-section{margin-top:3rem}.osis-detail-section .osis-member-grid{grid-template-columns:1fr;gap:13px}.osis-detail-section .osis-member-card{min-height:116px}.osis-detail-section .osis-member-photo{flex-basis:86px;width:86px;height:94px}.osis-detail-section .osis-member-body{padding-left:12px}}

/* Full-bleed backdrop and a clear size hierarchy for the centered slide. */
.osis-slider-section{width:100vw;margin-left:calc((100% - 100vw)/2);margin-right:calc((100% - 100vw)/2)}
.osis-member-swiper .swiper-slide{transition:filter .8s ease,opacity .8s ease}
.osis-member-swiper .swiper-slide .osis-slider-card{transform:scale(.9);opacity:.82;transition:transform .8s ease,opacity .8s ease}
.osis-member-swiper .swiper-slide-active .osis-slider-card{transform:scale(1);opacity:1}
@media(max-width:767px){.osis-member-swiper .swiper-slide .osis-slider-card{transform:scale(.93)}.osis-member-swiper .swiper-slide-active .osis-slider-card{transform:scale(1)}}

/* Coverflow cards stay opaque; side slides use brightness and inner shadow. */
.osis-member-swiper .swiper-slide .osis-slider-card{opacity:1}
.osis-member-swiper .swiper-slide:not(.swiper-slide-active){filter:none}
.osis-member-swiper .swiper-slide:not(.swiper-slide-active) .osis-slider-photo img{filter:brightness(.58)}
.osis-member-swiper .swiper-slide-active .osis-slider-photo img{filter:brightness(1)}
.osis-member-swiper .swiper-slide:not(.swiper-slide-active) .osis-slider-card{box-shadow:none}
.osis-member-swiper .swiper-slide-active .osis-slider-card{box-shadow:0 16px 34px rgba(0,0,0,.28)}
.osis-member-swiper .swiper-slide:not(.swiper-slide-active) .osis-slider-card:after{display:none}
.osis-member-swiper .swiper-slide:not(.swiper-slide-active) .osis-slider-overlay{opacity:0;visibility:hidden;pointer-events:none}
.osis-member-swiper .swiper-slide-active .osis-slider-overlay{opacity:1;visibility:visible;z-index:3}

/* Duta Demokrasi */
.democracy-page{background:linear-gradient(180deg,#f7fbff 0%,#fff 42%)}
.democracy-hero{--hero-overlay:linear-gradient(110deg,rgba(3,34,66,.94),rgba(7,75,127,.68))}
.democracy-intro{max-width:860px;margin:0 auto 3rem;text-align:center}
.democracy-intro h2{margin:.6rem 0 1rem;color:var(--navy);font-size:clamp(1.65rem,3vw,2.7rem);line-height:1.16}
.democracy-intro p{color:var(--muted);font-size:1.05rem;line-height:1.75}
.democracy-content-grid{margin-bottom:4.4rem}
.democracy-info-card{height:100%;padding:28px;border:1px solid #dce8f3;border-radius:22px;background:#fff;box-shadow:0 16px 34px rgba(8,43,85,.08)}
.democracy-info-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:18px;border-radius:15px;background:#eaf4ff;color:var(--blue);font-size:1.35rem}
.democracy-info-card .section-kicker{display:block;margin-bottom:10px}
.democracy-info-card .page-copy{color:#405773;line-height:1.7}
.democracy-info-card .page-copy p:last-child,.democracy-info-card .page-copy ul:last-child,.democracy-info-card .page-copy ol:last-child{margin-bottom:0}
.democracy-election{padding-top:1.2rem}
.democracy-period-bar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:1.2rem 0;padding:20px 24px;border:1px solid #dce8f3;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(8,43,85,.07)}
.democracy-period-bar label{display:block;margin-bottom:7px;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.democracy-period-bar select{min-width:220px}
.democracy-election-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px;color:var(--muted);font-size:.9rem}
.democracy-vote-button{white-space:nowrap;margin-left:auto}
.democracy-ballot-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;border:1px solid #dce8f3;border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(8,43,85,.07)}
.democracy-ballot-head h2{margin:.35rem 0 .2rem;color:var(--navy)}
.democracy-ballot-card{position:relative;display:flex!important;flex-direction:column!important;height:100%;overflow:hidden;border:2px solid #dce8f3;border-radius:22px;background:#fff;cursor:pointer;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;box-shadow:0 12px 28px rgba(8,43,85,.06)}
.democracy-ballot-card:hover{border-color:#75b9ec;box-shadow:0 16px 34px rgba(8,43,85,.14);transform:translateY(-2px)}
.democracy-ballot-card:has(input:checked),.democracy-ballot-card.is-selected{border-color:var(--blue);box-shadow:0 18px 38px rgba(8,43,85,.2);transform:translateY(-3px)}
.democracy-ballot-card.is-locked{cursor:default;transform:none!important}
.democracy-ballot-card.is-locked:not(.is-selected){border-color:#dce8f3;box-shadow:0 10px 24px rgba(8,43,85,.05)}
.democracy-ballot-card>input{position:absolute;opacity:0;pointer-events:none}
.democracy-ballot-photo{position:relative!important;flex:0 0 360px!important;width:100%;height:360px!important;aspect-ratio:auto;display:grid;place-items:center;overflow:hidden;background:#edf5fb;isolation:isolate}
.democracy-ballot-photo:after{position:absolute;inset:0;z-index:1;background:rgba(1,18,38,.72);box-shadow:inset 0 0 84px rgba(0,0,0,.72);content:"";opacity:1;transition:opacity .45s ease,box-shadow .45s ease}
.democracy-ballot-photo img{position:relative;z-index:0;display:block;width:100%;height:100%;object-fit:cover;object-position:top center;filter:brightness(.8) saturate(.88);transition:filter .38s ease,transform .38s ease}
.democracy-ballot-card:hover .democracy-ballot-photo:after,.democracy-ballot-card:has(input:checked) .democracy-ballot-photo:after,.democracy-ballot-card.is-selected .democracy-ballot-photo:after{opacity:0;box-shadow:inset 0 0 0 rgba(0,0,0,0)}
.democracy-ballot-card:hover .democracy-ballot-photo img,.democracy-ballot-card:has(input:checked) .democracy-ballot-photo img,.democracy-ballot-card.is-selected .democracy-ballot-photo img{filter:brightness(1) saturate(1);transform:scale(1.012)}
.democracy-ballot-photo i{font-size:5rem;color:#79a9d5}
.democracy-ballot-body{position:relative!important;z-index:3;display:block!important;flex:1 1 auto;min-height:136px;padding:18px 22px 22px;background:#fff;border-top:1px solid #e7eef5}
.democracy-ballot-body h3{margin:5px 0;color:var(--navy);font-size:1.2rem}
.democracy-ballot-body small{display:block;color:var(--muted)}
.democracy-ballot-check{display:block;margin-top:17px;color:var(--blue);font-size:.85rem;font-weight:700}
.democracy-ballot-check i{margin-right:6px}
.democracy-ballot-check.choice-selected{display:none}
.democracy-ballot-card:has(input:checked) .choice-default,.democracy-ballot-card.is-selected .choice-default{display:none}
.democracy-ballot-card:has(input:checked) .choice-selected,.democracy-ballot-card.is-selected .choice-selected{display:block;color:#138a52}
.democracy-ballot-card.is-locked:not(.is-selected) .choice-locked{display:block;color:#8494a5}
.democracy-ballot-submit{text-align:center;padding:22px 20px;border-top:1px solid #e7eef5}
.democracy-voted-note{display:flex;align-items:flex-start;gap:14px;padding:20px 22px;border:1px solid #bde8d0;border-radius:16px;background:#effbf4;color:#146c3a}
.democracy-voted-note>i{font-size:1.5rem}
.democracy-period-description{margin:-.25rem 0 1.2rem;color:var(--muted)}
.democracy-candidate-card{position:relative;height:100%;overflow:hidden;border:1px solid #dce8f3;border-radius:22px;background:#fff;box-shadow:0 15px 35px rgba(8,43,85,.08)}
.democracy-candidate-card.is-winner{border-color:#f3c24c;box-shadow:0 18px 40px rgba(205,147,0,.16)}
.democracy-winner-badge{padding:10px 16px;background:#fff4cf;color:#946b00;font-size:.78rem;font-weight:800;letter-spacing:.04em}
.democracy-candidate-photo{height:255px;display:grid;place-items:center;background:linear-gradient(145deg,#1788cf,#092d57)}
.democracy-candidate-photo img{width:100%;height:100%;object-fit:cover;object-position:top center}
.democracy-candidate-photo i{font-size:5rem;color:#b9def5}
.democracy-candidate-body{padding:22px}
.democracy-candidate-body .section-kicker{font-size:.68rem}
.democracy-candidate-body h3{margin:6px 0 3px;color:var(--navy);font-size:1.22rem}
.democracy-candidate-body>small{color:var(--muted)}
.democracy-candidate-copy{margin-top:16px;padding-top:14px;border-top:1px solid #e7eef5}
.democracy-candidate-copy b{color:var(--navy);font-size:.82rem}
.democracy-candidate-copy p{margin:.35rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.6}
.democracy-votes{margin-top:17px;color:var(--blue);font-size:.82rem;font-weight:700}
.democracy-empty{padding:58px 20px;border:1px dashed #c7d8e8;border-radius:20px;text-align:center;color:var(--muted)}
.democracy-empty i{display:block;margin-bottom:10px;color:#79a9d5;font-size:2.5rem}
@media(max-width:767px){.democracy-period-bar{display:block}.democracy-election-meta{justify-content:flex-start;margin-top:14px}.democracy-period-bar select{width:100%;min-width:0}.democracy-content-grid{margin-bottom:3rem}}
@media(max-width:767px){.democracy-vote-button{display:block;width:100%;margin:14px 0 0;text-align:center}.democracy-ballot-head{display:block}.democracy-ballot-head .btn{margin-top:16px}.democracy-ballot-photo{height:300px!important;flex-basis:300px!important}.democracy-ballot-body{min-height:126px;padding:16px 18px 19px}}

/* Candidate cards: keep poster/photo separate from the readable information. */
.democracy-candidate-grid{row-gap:28px}
.democracy-candidate-card{display:flex;flex-direction:column;min-height:100%;overflow:hidden}
.democracy-candidate-card .democracy-candidate-photo{height:auto;min-height:0;aspect-ratio:4/5;flex:0 0 auto;overflow:hidden;background:#edf5fb}
.democracy-candidate-card .democracy-candidate-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:#edf5fb}
.democracy-candidate-card .democracy-candidate-body{position:relative;z-index:1;flex:1;background:#fff;padding:20px 22px 24px}
.democracy-candidate-body .section-kicker{display:block;margin:0 0 7px;font-size:.64rem;line-height:1.2}
.democracy-candidate-body h3{max-width:100%;margin:0;color:var(--navy);font-size:1.14rem;line-height:1.28;overflow-wrap:anywhere}
.democracy-candidate-body>small{display:block;margin-top:7px}
.democracy-candidate-copy{margin-top:16px;padding-top:13px}
.democracy-candidate-copy b{display:block;margin-bottom:4px;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
.democracy-candidate-copy p{margin:0;color:#51677f;font-size:.86rem;line-height:1.58;overflow-wrap:anywhere}
.democracy-period-control{min-width:230px}
.democracy-period-control label{display:block}
@media(max-width:767px){.democracy-candidate-grid{row-gap:20px}.democracy-candidate-card .democracy-candidate-photo{aspect-ratio:4/5}.democracy-candidate-card .democracy-candidate-body{padding:17px 18px 20px}.democracy-period-control{min-width:0}}

/* Candidate count layout: desktop keeps 2, 3, or 4 cards in one row. */
@media(min-width:768px){
  .democracy-candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;margin-left:0;margin-right:0}
  .democracy-candidate-grid>[class*="col-"]{width:auto;max-width:none;padding-left:0;padding-right:0}
}
@media(min-width:1200px){
  .democracy-candidate-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .democracy-candidate-grid:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
  .democracy-candidate-grid:has(> :nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
  .democracy-candidate-grid:has(> :only-child){grid-template-columns:minmax(0,1fr)}
}
@media(max-width:767px){
  .democracy-candidate-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-left:0;margin-right:0}
  .democracy-candidate-grid>[class*="col-"]{width:auto;max-width:none;padding-left:0;padding-right:0}
}

/* Kompatibel dengan markup lama yang masih memakai row g-4 pada daftar kandidat. */
@media(min-width:768px){
  .democracy-election>.row.g-4.mt-1{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;margin-left:0;margin-right:0}
  .democracy-election>.row.g-4.mt-1>[class*="col-"]{width:auto;max-width:none;padding-left:0;padding-right:0}
}
@media(min-width:1200px){
  .democracy-election>.row.g-4.mt-1:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .democracy-election>.row.g-4.mt-1:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
  .democracy-election>.row.g-4.mt-1:has(> :nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
  .democracy-election>.row.g-4.mt-1:has(> :only-child){grid-template-columns:minmax(0,1fr)}
}
@media(max-width:767px){
  .democracy-election>.row.g-4.mt-1{display:grid;grid-template-columns:1fr;gap:20px;margin-left:0;margin-right:0}
  .democracy-election>.row.g-4.mt-1>[class*="col-"]{width:auto;max-width:none;padding-left:0;padding-right:0}
}

/* Hierarki navigasi publik: Akademik > Kokurikuler > Duta Demokrasi. */
.dropdown-menu .menu-parent-header{margin:.35rem .75rem .15rem;padding:.4rem .75rem;color:var(--navy);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.dropdown-menu .dropdown-item.ps-4{padding-left:2rem!important}

/* Sambutan Kepala Sekolah: pada layar di bawah 1024px teks mengalir alami
   mengitari foto, seperti layout editorial pada tampilan ponsel/tablet. */
@media(max-width:1023px){
  .principal-card{display:block;padding:18px}
  .principal-heading{margin-bottom:16px}
  .principal-heading h2{font-size:clamp(1.55rem,4.8vw,2.15rem);margin:0;line-height:1.18}
  .principal-photo{float:left;width:110px;margin:0 10px 5px 0;align-self:auto}
  .principal-photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:12px}
  .principal-lead,.principal-body{display:block}
  .principal-lead p,.principal-body p{font-size:.88rem;line-height:1.45;margin-bottom:13px}
  .principal-greeting{font-size:.98rem!important;line-height:1.3!important}
  .principal-signature{border-top:0;margin-top:17px;padding-top:0}
  .principal-card:after{content:"";display:block;clear:both}
}

/* Static Instagram profile card: avoids a third-party iframe spinner while
   keeping the official school account one click away. */
