/*
 * Brand System Perguruan Islam An-Nizam — shared across TK / SD / SMP / SMA
 * Master brand: green, logo, identity, language and footer.
 * Unit colors remain distinct for each level.
 */
:root { --anz-brand-green:#0b7c4e; --anz-brand-dark:#082b20; --anz-ink:#123226; --anz-muted:#61766b; --anz-border:#dfece5; }
.site .site-header { border-bottom:1px solid #e8f0eb; }
.site .header-row { gap:18px; }
.site .brand { min-width:0; gap:10px; }
.site .brand img { object-fit:cover; border-radius:50%; background:#fff; flex-shrink:0; }
.site .brand-copy { line-height:1.3; }
.site .brand-copy strong { color:#087a4d; font-size:13px; font-weight:700; letter-spacing:.035em; max-width:270px; }
.site .brand-copy small { font-size:11px; font-weight:600; letter-spacing:0; color:#4f6a5f; margin-top:5px; }
.site .navlinks { gap:clamp(8px,1vw,13px); }
.site .navlinks > a:not(.nav-register) { font-size:12px; }
.site .navlinks .nav-register { background:var(--anz-brand-green); color:#fff!important; border-radius:10px; padding:10px 14px; font-size:12px; white-space:nowrap; }
.site .navlinks > a.current:not(.nav-register) { color:var(--anz-brand-green); border-bottom-color:var(--anz-brand-green); }
.site .navlinks > a:hover:not(.nav-register) { color:var(--anz-brand-green); border-bottom-color:var(--anz-brand-green); }
.anz-short-about { padding-top:38px; padding-bottom:24px; }
.anz-short-about-inner { border-top:1px solid #e5ece8; padding-top:36px; display:grid; grid-template-columns:1fr .95fr; gap:46px; align-items:start; }
.anz-short-about h2 { font-size:clamp(27px,3vw,39px); line-height:1.15; letter-spacing:-.025em; font-weight:700; color:var(--deep); max-width:545px; margin:11px 0 0; }
.anz-short-about p { color:#567168; font-size:16px; line-height:1.8; margin:0 0 15px; }
.anz-short-about a { display:inline-flex; align-items:center; gap:8px; color:var(--anz-brand-green); font-size:14px; font-weight:700; }
.anz-principal-section { background:#f3f9f5; padding:85px 0; }
.anz-principal-grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(45px,6.5vw,100px); align-items:center; }
.anz-principal-photo { max-width:430px; position:relative; min-height:370px; height:405px; }
.anz-principal-photo > img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 24%; border-radius:20px; position:relative; z-index:2; }
.anz-principal-placeholder { height:100%; width:100%; border-radius:20px; border:1px dashed #accdc0; background:linear-gradient(145deg,#e1f0e9,#f9fcfa); color:#598474; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; text-align:center; padding:20px; position:relative; z-index:2; }
.anz-principal-placeholder .icon { width:74px; height:74px; stroke-width:1.1; color:#76a591; margin-bottom:10px; }
.anz-principal-placeholder span { font-size:16px; font-weight:700; color:#3f7863; letter-spacing:.08em; }
.anz-principal-placeholder small { font-size:12px; color:#608474; line-height:1.6; }
.anz-principal-photo-accent { position:absolute; inset:20px -22px -22px 22px; z-index:0; border:2px solid color-mix(in srgb,var(--accent),transparent 56%); border-radius:21px; }
.anz-principal-kicker { display:block; color:var(--anz-brand-green); font-size:12px; letter-spacing:.13em; font-weight:800; line-height:1.5; }
.anz-principal-content h2 { color:var(--deep); font-size:clamp(30px,3.4vw,45px); line-height:1.13; font-weight:700; letter-spacing:-.025em; margin:13px 0 20px; }
.anz-principal-draft { display:inline-flex; font-size:11px; font-weight:650; color:#746231; background:#fff4d9; padding:7px 11px; border-radius:7px; margin-bottom:8px; }
.anz-principal-content p { color:#526c61; font-size:16px; line-height:1.75; }
.anz-principal-content .anz-principal-greeting { color:#1b5740; font-size:15px; font-weight:600; margin:13px 0 7px; }
.anz-principal-excerpt { margin:0 0 18px; }
.anz-principal-byline { border-left:3px solid var(--accent); padding:8px 0 9px 14px; margin:24px 0 25px; }
.anz-principal-byline strong, .anz-principal-profile-name strong, .anz-principal-signature strong { display:block; color:#183d2b; font-size:15px; font-weight:700; }
.anz-principal-byline span, .anz-principal-profile-name span, .anz-principal-signature span { display:block; color:#6d8278; font-size:13px; line-height:1.55; margin-top:5px; }
.anz-principal-link { display:inline-flex; align-items:center; gap:8px; color:var(--anz-brand-green); font-size:14px; font-weight:750; text-decoration:none; }
.anz-principal-link:hover,.anz-short-about a:hover { text-decoration:underline; text-underline-offset:4px; }
.anz-principal-page { background:#fafcfb; padding:36px 0 98px; min-height:65vh; }
.anz-breadcrumb { display:flex; gap:10px; align-items:center; color:#76877e; font-size:13px; margin-bottom:35px; }
.anz-breadcrumb a { color:#087a4d; font-weight:600; }
.anz-principal-page-heading { text-align:center; max-width:830px; margin:0 auto 42px; }
.anz-principal-page-heading h1 { color:#0b5f3d; font-size:clamp(34px,4vw,54px); font-weight:700; line-height:1.1; letter-spacing:-.035em; margin:12px 0 16px; }
.anz-principal-page-heading p { color:#667d71; font-size:17px; line-height:1.7; }
.anz-principal-notice { max-width:1020px; margin:0 auto 30px; padding:15px 20px; color:#775f20; background:#fff4d9; border:1px solid #eed99a; border-radius:10px; font-size:13px; line-height:1.6; }
.anz-principal-page-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:55px; max-width:1020px; margin:0 auto; align-items:start; }
.anz-principal-profile { position:sticky; top:108px; background:#fff; border:1px solid #dfede5; border-radius:16px; overflow:hidden; box-shadow:0 8px 30px #0a53300c; }
.anz-principal-profile > img,.anz-principal-profile > .anz-principal-placeholder { display:block; width:100%; height:310px; object-fit:cover; border-radius:0; }
.anz-principal-profile > .anz-principal-placeholder { display:flex; }
.anz-principal-profile-name { padding:20px 18px; }
.anz-principal-article { color:#536e62; font-size:16px; line-height:1.9; }
.anz-principal-article h2 { font-weight:700; color:#0b5f3d; font-size:30px; line-height:1.2; margin:10px 0 24px; letter-spacing:-.025em; }
.anz-principal-article p { color:#536e62; margin:0 0 19px; text-align:left; }
.anz-principal-signature { border-top:1px solid #dce9e1; padding-top:20px; margin:30px 0 24px; }
.anz-brand-footer { background:var(--anz-brand-dark); color:#d7e8dc; }
.anz-brand-footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr; gap:30px; padding:61px 0 52px; }
.anz-footer-brand { display:flex; align-items:center; gap:13px; margin-bottom:18px; }
.anz-footer-brand img { display:block; flex-shrink:0; width:56px; height:56px; object-fit:cover; border-radius:50%; background:#fff; }
.anz-footer-brand strong { display:block; color:#fff; font-size:14px; font-weight:700; letter-spacing:.015em; line-height:1.45; }
.anz-footer-brand small { display:block; color:#bfdbc9; font-size:12px; margin-top:5px; }
.anz-footer-identity p { color:#aec8b8; font-size:13px; line-height:1.7; margin:0 0 8px; }
.anz-footer-links { display:flex; flex-direction:column; align-items:start; gap:11px; }
.anz-footer-links h2 { color:#fff; font-size:15px; font-weight:700; margin:0 0 9px; }
.anz-footer-links a,.anz-footer-links span,.anz-footer-links p { font-size:13px; line-height:1.65; color:#c1dacc; margin:0; }
.anz-footer-links a:hover { color:#a4ecc8; text-decoration:underline; }
.anz-footer-links p { color:#a5bdaf; }
.anz-footer-bottom { padding:20px 0 24px; border-top:1px solid #ffffff26; display:flex; justify-content:space-between; gap:20px; font-size:12px; color:#acc3b6; }
/* Desktop menus with 8 links become a mobile drawer before crowding the logo. */
@media(max-width:1130px) {
 .site .site-header { height:68px; }
 .site .header-row { min-height:68px; }
 .site .menu-toggle { display:inline-flex; }
 .site .navlinks { display:none; position:absolute; top:68px; left:0; right:0; padding:14px max(24px,calc((100vw - 1180px)/2)) 22px; background:#fff; box-shadow:0 16px 25px #132c4126; border-top:1px solid #edf1f3; flex-direction:column; align-items:stretch; gap:0; max-height:calc(100dvh - 68px); overflow-y:auto; }
 .site .navlinks.open { display:flex; }
 .site .navlinks > a:not(.nav-register) { padding:13px 4px; border-bottom:1px solid #edf1f3; font-size:14px; }
 .site .navlinks > a.current:not(.nav-register) { border-bottom-color:#edf1f3; color:#087a4d; }
 .site .navlinks .nav-register { width:max-content; margin-top:14px; }
 .site .menu-toggle[aria-expanded="true"] .menu-open { display:none; }
 .site .menu-toggle[aria-expanded="true"] .menu-close { display:block; }
 .anz-brand-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px; }
}
@media(max-width:760px) {
 .anz-short-about { padding-top:26px; }
 .anz-short-about-inner { grid-template-columns:1fr; gap:16px; padding-top:26px; }
 .anz-short-about h2 { font-size:29px; }
 .anz-short-about p { font-size:15px; }
 .anz-principal-section { padding:57px 0 64px; }
 .anz-principal-grid { grid-template-columns:1fr; gap:35px; }
 .anz-principal-photo { height:310px; min-height:0; max-width:none; margin-right:14px; }
 .anz-principal-photo-accent { inset:15px -12px -13px 14px; }
 .anz-principal-content h2 { font-size:30px; }
 .anz-principal-content p { font-size:15px; line-height:1.8; }
 .anz-principal-page { padding:26px 0 62px; }
 .anz-principal-page-layout { grid-template-columns:1fr; gap:30px; }
 .anz-principal-profile { position:static; max-width:450px; }
 .anz-principal-profile > img,.anz-principal-profile > .anz-principal-placeholder { height:285px; }
 .anz-principal-page-heading { text-align:left; margin-bottom:25px; }
 .anz-principal-page-heading p { font-size:15px; }
 .anz-principal-article h2 { font-size:26px; }
 .anz-principal-article p { font-size:15px; }
 .anz-brand-footer-grid { gap:30px 18px; padding:46px 0; }
 .anz-footer-identity { grid-column:1 / -1; }
 .anz-footer-links:last-child { grid-column:1 / -1; }
 .anz-footer-bottom { flex-direction:column; gap:7px; }
}
@media(max-width:420px) {
 .site .brand-copy strong { font-size:11px; max-width:226px; }
 .site .brand-copy small { font-size:10px; }
 .anz-principal-section { padding-top:44px; }
 .anz-principal-photo { height:260px; }
 .anz-principal-content h2 { font-size:28px; }
 .anz-footer-links h2 { font-size:14px; }
 .anz-footer-links a,.anz-footer-links span,.anz-footer-links p { font-size:12px; }
}

@media(max-width:360px) {
  /* Very small phones: preserve long single-word program labels without clipping. */
  .site .program-caption .icon { display:none; }
  .site .program-caption strong { font-size:13px; overflow-wrap:anywhere; }
}

/* Unit's verified-by-user Instagram handle, not linked to personal accounts. */
.site .anz-contact-instagram { margin:20px 0 0; font-size:15px; line-height:1.6; color:#486b5a; }
.site .anz-contact-instagram a { color:var(--anz-brand-green); font-weight:700; overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:3px; }

/* Published news, achievements and gallery cards from Central Admin */
.unit-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.unit-post-card{background:#fff;border:1px solid #e5eae7;border-radius:13px;overflow:hidden;box-shadow:0 8px 25px #16462b0b}
.unit-post-image{height:195px;background:#f0f6f2}
.unit-post-image img{height:100%;width:100%;object-fit:cover;display:block}
.unit-post-body{padding:20px}
.unit-post-body time{font-size:12px;color:#82948a;display:block;margin:7px 0}
.unit-post-body h3{color:var(--deep);font-size:20px;line-height:1.3;margin:10px 0;font-weight:700;overflow-wrap:anywhere}
.unit-post-body p{font-size:13px;line-height:1.7;color:#657e70}
@media(max-width:850px){.unit-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.unit-post-grid{grid-template-columns:1fr}.unit-post-image{height:230px}}
