/*
Theme Name: Portal Dinas Child
Description: Portal resmi Diskominfo Provinsi NTT berbasis Kadence.
Template: kadence
Version: 1.1.0
Text Domain: portal-dinas-child
Requires PHP: 8.0
*/
@font-face{font-family:Inter;src:url("assets/fonts/inter-variable.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url("assets/fonts/plus-jakarta-sans-variable.ttf") format("truetype");font-style:normal;font-weight:200 800;font-display:swap}
:root{--portal-primary:#0b3d91;--portal-primary-dark:#06265e;--portal-primary-deep:#041b45;--portal-accent:#2e86c1;--portal-red:#ce1126;--portal-gold:#f4b400;--portal-gold-soft:#fff4c7;--portal-text:#2c3e50;--portal-muted:#64748b;--portal-strong:#111827;--portal-bg:#f4f6f8;--portal-blue-soft:#edf5ff;--portal-white:#fff;--portal-success:#27864f;--portal-danger:#c83a2f;--portal-radius:12px;--portal-radius-lg:24px;--portal-shadow:0 12px 36px rgba(15,35,75,.09);--portal-shadow-lg:0 24px 70px rgba(4,27,69,.18);--portal-ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}
html{font-size:100%;scroll-behavior:smooth;scroll-padding-top:7rem}
body{margin:0;color:var(--portal-text);background:var(--portal-white);font:1rem/1.65 Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
body.portal-contrast{background:#000;color:#fff}
body.portal-contrast main,body.portal-contrast .portal-section{filter:contrast(1.2)}
body.admin-bar .portal-nav{top:32px}
[hidden]{display:none!important}
a{color:#176a9d;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--portal-gold);outline-offset:3px}
button,input{font:inherit}
img{display:block;max-width:100%}
h1,h2,h3{margin-top:0;color:var(--portal-strong);font-family:"Plus Jakarta Sans",system-ui,sans-serif;line-height:1.16;letter-spacing:-.025em}
p{margin-top:0}
.portal-wrap{width:min(1200px,calc(100% - 3rem));margin-inline:auto}
.skip-link{position:fixed;left:1rem;top:-100px;z-index:9999;border-radius:8px;background:var(--portal-gold);color:#111;padding:.75rem 1rem;font-weight:800}
.skip-link:focus{top:1rem}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.portal-top{position:relative;z-index:51;background:var(--portal-primary-deep);color:#dbeafe;font-size:.78rem}
.portal-top-inner{display:flex;min-height:37px;align-items:center;justify-content:space-between;gap:1rem}
.portal-top p{display:flex;align-items:center;gap:.55rem;margin:0}
.portal-status-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.13)}
.portal-top-links{display:flex;align-items:center;gap:1.25rem}
.portal-top a,.portal-access-trigger{border:0;background:none;color:#dbeafe;text-decoration:none}
.portal-access-trigger{padding:0;cursor:pointer}
.portal-access-panel{position:relative;z-index:52;border-bottom:1px solid #dbe4ef;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.08)}
.portal-tools{display:flex;min-height:58px;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.5rem 0}
.portal-tools-label{margin-right:.25rem;color:var(--portal-strong);font-weight:750}
.portal-tools button{border:1px solid #d8e0ea;border-radius:8px;background:#fff;color:var(--portal-strong);padding:.48rem .7rem;font-weight:700;cursor:pointer}
.portal-tools button:hover{border-color:var(--portal-primary);background:var(--portal-blue-soft)}
.portal-header{position:relative;z-index:50;background:#fff}
.portal-header-inner{display:flex;min-height:92px;align-items:center;justify-content:space-between;gap:2rem}
.portal-brand{display:flex;align-items:center;gap:.9rem;color:var(--portal-strong);text-decoration:none}
.portal-logo{position:relative;display:grid;width:54px;height:54px;place-items:center;overflow:hidden;border-radius:18px 7px 18px 7px;background:linear-gradient(145deg,var(--portal-primary),var(--portal-primary-dark));box-shadow:0 8px 22px rgba(11,61,145,.25);color:#fff;font-family:"Plus Jakarta Sans";font-size:.8rem;font-weight:800;letter-spacing:.08em}
.portal-logo:after{position:absolute;right:-10px;bottom:-12px;width:34px;height:34px;border-radius:50%;background:var(--portal-gold);content:"";opacity:.9}
.portal-logo span{position:relative;z-index:1}
.portal-brand-copy{display:flex;flex-direction:column}
.portal-brand strong{font-size:1rem}
.portal-brand small{margin-top:.1rem;color:var(--portal-muted);font-size:.8rem}
.portal-header-actions,.portal-language{display:flex;align-items:center;gap:.75rem}
.portal-language{font-size:.8rem;font-weight:800}
.portal-language a{color:var(--portal-primary);text-decoration:none}
.portal-language span{color:#cbd5e1}
.portal-header-cta,.portal-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:.6rem;border:0;border-radius:10px;background:var(--portal-primary);color:#fff;padding:.75rem 1rem;font-weight:750;text-decoration:none;transition:transform .25s var(--portal-ease),box-shadow .25s var(--portal-ease),background .25s}
.portal-header-cta:hover,.portal-button:hover{background:var(--portal-primary-dark);box-shadow:0 10px 24px rgba(11,61,145,.22);transform:translateY(-2px)}
.portal-menu-toggle{display:none;align-items:center;gap:.55rem;border:0;border-radius:9px;background:var(--portal-primary);color:#fff;padding:.65rem .8rem;font-weight:750}
.portal-menu-icon,.portal-menu-icon:before,.portal-menu-icon:after{display:block;width:19px;height:2px;border-radius:2px;background:currentColor;content:""}
.portal-menu-icon{position:relative}.portal-menu-icon:before{position:absolute;top:-6px}.portal-menu-icon:after{position:absolute;top:6px}
.portal-nav{position:sticky;top:0;z-index:49;border-top:1px solid #eef2f7;border-bottom:1px solid #e5eaf1;background:rgba(255,255,255,.96);box-shadow:0 5px 20px rgba(15,23,42,.04);backdrop-filter:blur(14px)}
.portal-nav>.portal-wrap{display:flex;align-items:stretch;justify-content:space-between}
.portal-nav .menu{display:flex;flex:1;align-items:stretch;gap:.15rem;list-style:none;margin:0;padding:0}
.portal-nav .menu>li{position:relative}
.portal-nav .menu a{display:flex;min-height:50px;align-items:center;padding:.7rem .75rem;color:var(--portal-strong);font-size:.86rem;font-weight:680;text-decoration:none}
.portal-nav .menu>li>a:after{position:absolute;right:.75rem;bottom:-1px;left:.75rem;height:3px;border-radius:4px 4px 0 0;background:var(--portal-gold);content:"";transform:scaleX(0);transition:transform .25s}
.portal-nav .menu>li:hover>a:after,.portal-nav .current-menu-item>a:after,.portal-nav .current-menu-ancestor>a:after{transform:scaleX(1)}
.portal-nav .menu-item-has-children>a{padding-right:1.45rem}
.portal-nav .menu-item-has-children>a:before{position:absolute;right:.45rem;content:"⌄";color:var(--portal-muted)}
.portal-nav .sub-menu{position:absolute;top:calc(100% + 1px);left:0;display:none;width:250px;border:1px solid #e3e9f1;border-radius:0 0 12px 12px;background:#fff;box-shadow:var(--portal-shadow);list-style:none;margin:0;padding:.5rem}
.portal-nav li:hover>.sub-menu,.portal-nav li:focus-within>.sub-menu{display:block}
.portal-nav .sub-menu a{min-height:auto;border-radius:7px;padding:.65rem .7rem}
.portal-nav .sub-menu a:hover{background:var(--portal-blue-soft);color:var(--portal-primary)}
.portal-nav .sub-menu .sub-menu{top:0;left:100%;border-radius:12px}
.portal-nav-search-trigger{display:flex;align-items:center;gap:.25rem;border:0;border-left:1px solid #e5eaf1;background:#fff;color:var(--portal-primary);padding:0 1rem;font-weight:750;cursor:pointer}
.portal-nav-search-trigger>span:first-child{font-size:1.5rem;line-height:1}
.portal-header-search{position:absolute;right:0;left:0;border-top:1px solid #e5eaf1;background:#fff;box-shadow:0 20px 40px rgba(15,23,42,.12)}
.portal-header-search form{padding:1.2rem 0 1.4rem}
.portal-header-search label{display:block;margin-bottom:.4rem;color:var(--portal-strong);font-weight:750}
.portal-search-field{display:flex}
.portal-search-field input{width:100%;border:1px solid #cbd5e1;border-right:0;border-radius:10px 0 0 10px;padding:.8rem 1rem}
.portal-search-field button{border:0;border-radius:0 10px 10px 0;background:var(--portal-primary);color:#fff;padding:.8rem 1.5rem;font-weight:750}
.portal-ticker{position:relative;z-index:10;border-bottom:1px solid #f0d475;background:var(--portal-gold-soft)}
.portal-ticker .portal-wrap{display:flex;min-height:42px;align-items:center;gap:1rem}
.portal-ticker strong{display:flex;align-items:center;gap:.4rem;color:#594400;font-size:.78rem;white-space:nowrap;text-transform:uppercase;letter-spacing:.06em}
.portal-ticker strong span{color:var(--portal-red);font-size:.55rem}
.portal-ticker-list{flex:1;overflow:hidden;color:#4b410e;white-space:nowrap}
.portal-ticker-track{display:inline-flex;gap:4rem;animation:portal-ticker 26s linear infinite}
.portal-ticker-list.is-paused .portal-ticker-track{animation-play-state:paused}
.portal-ticker-track span:after{margin-left:4rem;color:#d2aa00;content:"◆";font-size:.5rem}
.portal-ticker button{border:0;background:transparent;color:#594400;font-size:.75rem;font-weight:750;cursor:pointer}
@keyframes portal-ticker{to{transform:translateX(-50%)}}
.portal-hero{position:relative;min-height:610px;overflow:hidden;background:linear-gradient(118deg,#061e4d 0%,var(--portal-primary) 56%,#075c9a 100%);color:#fff}
.portal-hero:before{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px;content:"";mask-image:linear-gradient(to right,#000,transparent)}
.portal-hero-layout{position:relative;z-index:2;display:grid;min-height:610px;grid-template-columns:1.12fr .88fr;align-items:center;gap:3rem;padding-top:3rem;padding-bottom:4rem}
.portal-hero-copy{max-width:680px}
.portal-eyebrow,.portal-kicker{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1rem;color:var(--portal-accent);font-size:.76rem;font-weight:820;letter-spacing:.12em;text-transform:uppercase}
.portal-eyebrow{color:#fff}
.portal-eyebrow span{width:28px;height:2px;background:var(--portal-gold)}
.portal-hero h1{max-width:760px;margin-bottom:1.25rem;color:#fff;font-size:clamp(2.65rem,5.1vw,4.75rem);font-weight:760;letter-spacing:-.055em}
.portal-hero-copy>p{max-width:610px;margin-bottom:1.75rem;color:#dbeafe;font-size:1.08rem}
.portal-hero-search{max-width:640px}
.portal-hero-search>label{display:block;margin-bottom:.55rem;color:#fff;font-size:.82rem;font-weight:720}
.portal-hero-search>div{display:flex;align-items:center;border:6px solid rgba(255,255,255,.14);border-radius:17px;background:#fff;background-clip:padding-box;box-shadow:0 18px 45px rgba(0,0,0,.2)}
.portal-hero-search>div>span{padding-left:1rem;color:var(--portal-muted);font-size:1.5rem}
.portal-hero-search input{min-width:0;flex:1;border:0;outline:0;padding:1rem;color:var(--portal-strong)}
.portal-hero-search button{align-self:stretch;border:0;border-radius:9px;background:var(--portal-gold);color:#312600;margin:.32rem;padding:0 1.55rem;font-weight:800;cursor:pointer}
.portal-popular{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.8rem;color:#bfdbfe;font-size:.76rem}
.portal-popular a{border-bottom:1px solid rgba(255,255,255,.32);color:#fff;text-decoration:none}
.portal-hero-visual{position:relative;height:430px}
.portal-hero-pattern{position:absolute;inset:12% 2% 0 14%;border:1px solid rgba(255,255,255,.15);border-radius:46% 54% 47% 53%;background:radial-gradient(circle at 30% 30%,rgba(244,180,0,.18),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.025));box-shadow:inset 0 0 80px rgba(255,255,255,.06);animation:portal-float 7s ease-in-out infinite}
.portal-hero-pattern:before,.portal-hero-pattern:after{position:absolute;border:1px solid rgba(255,255,255,.13);border-radius:50%;content:""}
.portal-hero-pattern:before{inset:8% 14%}.portal-hero-pattern:after{inset:23% 28%}
.portal-hero-orbit{position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%;pointer-events:none}
.portal-hero-orbit-one{top:-220px;right:-160px;width:620px;height:620px}
.portal-hero-orbit-two{right:80px;bottom:-300px;width:530px;height:530px}
.portal-hero-stat{position:absolute;z-index:3;border:1px solid rgba(255,255,255,.28);border-radius:16px;background:rgba(255,255,255,.93);box-shadow:var(--portal-shadow-lg);color:var(--portal-strong);backdrop-filter:blur(10px);animation:portal-float 5s ease-in-out infinite}
.portal-hero-stat-one{top:9%;right:0;padding:1rem 1.25rem}.portal-hero-stat-one strong{display:block;color:var(--portal-primary);font:800 2rem/1 "Plus Jakarta Sans"}.portal-hero-stat-one span{font-size:.72rem}
.portal-hero-stat-two{bottom:11%;left:1%;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:.6rem;padding:.85rem 1rem;animation-delay:-2s}.portal-hero-stat-two strong{font-size:.84rem}.portal-hero-stat-two>span:last-child{grid-column:2;color:var(--portal-muted);font-size:.68rem}
.portal-pulse{grid-row:1/3;width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 6px rgba(34,197,94,.13)}
.portal-island{position:absolute;border-radius:55% 45% 60% 40%;background:var(--portal-gold);box-shadow:0 8px 20px rgba(0,0,0,.18);transform:rotate(-18deg)}
.portal-island-one{top:42%;left:40%;width:115px;height:42px}.portal-island-two{top:57%;left:55%;width:76px;height:27px}.portal-island-three{top:35%;left:62%;width:45px;height:18px}
.portal-scroll-cue{position:absolute;right:calc((100% - min(1200px,calc(100% - 3rem)))/2);bottom:1.5rem;z-index:4;display:flex;align-items:center;gap:.6rem;color:#dbeafe;font-size:.72rem;text-decoration:none}
.portal-scroll-cue span:last-child{display:grid;width:30px;height:30px;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:50%;animation:portal-bounce 2s infinite}
@keyframes portal-float{50%{transform:translateY(-12px) rotate(1deg)}}@keyframes portal-bounce{50%{transform:translateY(5px)}}
.portal-section{padding:6rem 0}
.portal-section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.2rem}
.portal-section-heading h2,.portal-agenda-intro h2,.portal-data-panel h2{margin-bottom:.65rem;font-size:clamp(2rem,3.5vw,3rem)}
.portal-section-heading p{max-width:600px;margin:0;color:var(--portal-muted)}
.portal-text-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--portal-primary);font-size:.88rem;font-weight:780;text-decoration:none;white-space:nowrap}
.portal-text-link svg{width:18px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .25s}
.portal-text-link:hover svg{transform:translateX(4px)}
.portal-services-section{position:relative;background:#fff}
.portal-services-section:after{position:absolute;right:0;bottom:0;width:180px;height:180px;background:linear-gradient(135deg,transparent 50%,var(--portal-blue-soft) 50%);content:"";z-index:0}
.portal-services-section .portal-wrap{position:relative;z-index:1}
.portal-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.portal-service-card{position:relative;min-height:300px;overflow:hidden;border:1px solid #e1e8f0;border-radius:var(--portal-radius-lg);background:#fff;color:var(--portal-text);padding:1.5rem;text-decoration:none;transition:border-color .3s,box-shadow .3s,transform .3s var(--portal-ease)}
.portal-service-card:before{position:absolute;inset:auto 0 0;height:5px;background:linear-gradient(90deg,var(--portal-primary),var(--portal-accent));content:"";transform:scaleX(0);transform-origin:left;transition:transform .3s}
.portal-service-card:hover{border-color:#bdd2ed;box-shadow:var(--portal-shadow);transform:translateY(-7px)}
.portal-service-card:hover:before{transform:scaleX(1)}
.portal-service-icon{display:grid;width:54px;height:54px;place-items:center;border-radius:15px;background:var(--portal-blue-soft);color:var(--portal-primary)}
.portal-service-icon svg,.portal-card-arrow svg,.portal-agenda-card svg,.portal-document-icon svg{width:25px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.portal-service-number{position:absolute;top:1.3rem;right:1.4rem;color:#dbe5f2;font:800 2rem/1 "Plus Jakarta Sans"}
.portal-service-card h3{margin:2.5rem 0 .65rem;font-size:1.16rem}
.portal-service-card p{color:var(--portal-muted);font-size:.9rem}
.portal-card-arrow{position:absolute;right:1.5rem;bottom:1.4rem;display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:#f3f6fa;color:var(--portal-primary);transition:background .25s,color .25s,transform .25s}
.portal-card-arrow svg{width:18px}.portal-service-card:hover .portal-card-arrow{background:var(--portal-primary);color:#fff;transform:translateX(3px)}
.portal-news-section{background:var(--portal-bg)}
.portal-news-layout{display:grid;grid-template-columns:1.28fr .72fr;grid-template-rows:1fr 1fr;gap:1rem}
.portal-news-card{display:grid;grid-template-columns:190px 1fr;overflow:hidden;border:1px solid #e1e7ee;border-radius:18px;background:#fff;box-shadow:0 6px 20px rgba(15,35,75,.04);transition:box-shadow .3s,transform .3s}
.portal-news-card:hover{box-shadow:var(--portal-shadow);transform:translateY(-4px)}
.portal-news-featured{grid-row:1/3;grid-template-columns:1fr;grid-template-rows:330px auto}
.portal-news-image{display:block;overflow:hidden;background:#dbeafe}
.portal-news-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--portal-ease)}
.portal-news-card:hover img{transform:scale(1.045)}
.portal-news-content{padding:1.25rem}
.portal-news-featured .portal-news-content{padding:1.6rem}
.portal-news-meta{display:flex;align-items:center;gap:.65rem;margin-bottom:.65rem;color:var(--portal-muted);font-size:.73rem}
.portal-news-meta span{border-radius:999px;background:var(--portal-blue-soft);color:var(--portal-primary);padding:.2rem .55rem;font-weight:780}
.portal-news-card h3{margin-bottom:.6rem;font-size:1rem}
.portal-news-featured h3{font-size:1.55rem}
.portal-news-card h3 a{color:var(--portal-strong);text-decoration:none}
.portal-news-card p{display:-webkit-box;overflow:hidden;color:var(--portal-muted);font-size:.84rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.portal-news-featured p{font-size:.92rem;-webkit-line-clamp:3}
.portal-read-more{color:var(--portal-primary);font-size:.8rem;font-weight:780;text-decoration:none}
.portal-agenda-section{position:relative;overflow:hidden;background:var(--portal-primary-deep);color:#dbeafe}
.portal-agenda-section:after{position:absolute;top:-170px;right:-120px;width:440px;height:440px;border:80px solid rgba(46,134,193,.12);border-radius:50%;content:""}
.portal-agenda-layout{position:relative;z-index:1;display:grid;grid-template-columns:.72fr 1.28fr;gap:5rem;align-items:start}
.portal-kicker-light{color:var(--portal-gold)}
.portal-agenda-intro h2{color:#fff}
.portal-agenda-intro p{max-width:420px;color:#b8cbe5}
.portal-button-light{margin-top:1rem;background:#fff;color:var(--portal-primary)}
.portal-agenda-list{display:grid;gap:.75rem}
.portal-agenda-card{display:grid;grid-template-columns:90px 1fr;gap:1.2rem;align-items:center;border:1px solid rgba(255,255,255,.13);border-radius:16px;background:rgba(255,255,255,.07);padding:1rem;transition:background .25s,transform .25s}
.portal-agenda-card:hover{background:rgba(255,255,255,.12);transform:translateX(5px)}
.portal-agenda-card>time{display:flex;min-height:78px;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;background:var(--gold,var(--portal-gold));color:#2f2600}
.portal-agenda-card time strong{font:800 1.75rem/1 "Plus Jakarta Sans"}.portal-agenda-card time span{margin-top:.25rem;font-size:.67rem;font-weight:700;text-transform:uppercase}
.portal-agenda-card h3{margin:.25rem 0;color:#fff;font-size:1rem}
.portal-agenda-card p,.portal-agenda-time{display:flex;align-items:center;gap:.4rem;margin:0;color:#a9c0dc;font-size:.76rem}.portal-agenda-card svg{width:14px}
.portal-data-section{background:#fff}
.portal-data-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:5rem;align-items:center}
.portal-data-panel{position:relative;border-radius:var(--portal-radius-lg);background:var(--portal-blue-soft);padding:2.4rem}
.portal-data-panel:after{position:absolute;right:1.5rem;bottom:1.5rem;width:70px;height:70px;border:14px solid rgba(46,134,193,.14);border-radius:50%;content:""}
.portal-data-panel p{color:var(--portal-muted)}
.portal-data-number{display:flex;align-items:center;gap:1rem;margin:2rem 0}.portal-data-number strong{color:var(--portal-primary);font:800 3.5rem/1 "Plus Jakarta Sans"}.portal-data-number span{color:var(--portal-muted);font-size:.78rem}
.portal-document-list{display:grid}
.portal-document-card{display:grid;grid-template-columns:auto 1fr auto;gap:1.15rem;align-items:center;border-bottom:1px solid #e4eaf1;padding:1.25rem .2rem}
.portal-document-card:first-child{border-top:1px solid #e4eaf1}
.portal-document-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:12px;background:#fff4ee;color:var(--portal-red)}
.portal-document-type{color:var(--portal-muted);font-size:.67rem;font-weight:760;text-transform:uppercase;letter-spacing:.08em}
.portal-document-card h3{margin:.25rem 0;font-size:1rem}.portal-document-card p{margin:0;color:var(--portal-muted);font-size:.78rem}
.portal-document-card>a{border-radius:8px;background:#f1f5f9;color:var(--portal-primary);padding:.55rem .75rem;font-size:.76rem;font-weight:780;text-decoration:none}
.portal-gallery-section{background:var(--portal-bg)}
.portal-gallery-grid{display:grid;grid-template-columns:1.35fr .65fr;grid-template-rows:230px 230px;gap:1rem}
.portal-gallery-item{position:relative;overflow:hidden;border-radius:18px;background:var(--portal-primary);color:#fff}
.portal-gallery-item:first-child{grid-row:1/3}
.portal-gallery-item:after{position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(3,18,47,.9));content:""}
.portal-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--portal-ease)}
.portal-gallery-item:hover img{transform:scale(1.05)}
.portal-gallery-item>span{position:absolute;right:1.2rem;bottom:1.2rem;left:1.2rem;z-index:2;display:flex;flex-direction:column}
.portal-gallery-item small{color:#dbeafe;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.portal-gallery-item strong{font:750 1rem/1.25 "Plus Jakarta Sans"}.portal-gallery-item:first-child strong{font-size:1.5rem}
.portal-cta-section{padding-top:4rem;padding-bottom:4rem}
.portal-cta{position:relative;display:flex;overflow:hidden;align-items:center;justify-content:space-between;gap:2rem;border-radius:var(--portal-radius-lg);background:linear-gradient(115deg,var(--portal-primary),#075f9e);padding:3rem;color:#dbeafe;box-shadow:var(--portal-shadow-lg)}
.portal-cta:after{position:absolute;top:-70px;right:28%;width:190px;height:190px;border:45px solid rgba(255,255,255,.07);border-radius:50%;content:""}
.portal-cta h2{max-width:670px;margin-bottom:.65rem;color:#fff;font-size:clamp(1.7rem,3vw,2.5rem)}.portal-cta p{margin:0}.portal-cta-actions{position:relative;z-index:1;display:flex;flex-direction:column;gap:.65rem;min-width:250px}.portal-button-gold{background:var(--portal-gold);color:#2c2300}.portal-button-ghost{border:1px solid rgba(255,255,255,.45);background:transparent}
.portal-main{min-height:55vh;padding:5rem 0;background:var(--portal-bg)}
.portal-main article{max-width:880px;border-radius:var(--portal-radius-lg);background:#fff;box-shadow:var(--portal-shadow);padding:clamp(1.5rem,5vw,4rem)}
.portal-main article h1{font-size:clamp(2.1rem,4vw,3.7rem)}
.portal-main img{height:auto}
.portal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.portal-card{position:relative;overflow:hidden;border:1px solid #dde3ea;border-radius:var(--portal-radius);background:#fff;box-shadow:var(--portal-shadow);padding:1.2rem}.portal-card img{width:100%;height:190px;object-fit:cover;border-radius:8px}
.portal-badge{display:inline-block;border-radius:999px;background:var(--portal-gold-soft);color:#5a4300;padding:.22rem .62rem;font-size:.72rem;font-weight:800}
.portal-meta{color:var(--portal-muted);font-size:.86rem}
.portal-empty{border:2px dashed #aab4c2;border-radius:12px;padding:2rem;text-align:center}
table{width:100%;border-collapse:collapse}th,td{border:1px solid #ccd3dc;padding:.65rem;text-align:left}
.portal-footer{position:relative;background:var(--portal-primary-deep);color:#b9c9df;padding:5rem 0 1.5rem}
.portal-footer-accent{position:absolute;top:0;right:0;left:0;height:5px;background:linear-gradient(90deg,var(--portal-gold) 0 32%,var(--portal-red) 32% 40%,var(--portal-accent) 40%)}
.portal-footer-grid{display:grid;grid-template-columns:1.6fr .7fr .75fr 1fr;gap:3rem}
.portal-footer h2{margin-bottom:1rem;color:#fff;font-size:1rem;letter-spacing:0}
.portal-footer-brand h2{font-size:1.35rem}.portal-footer-brand p{max-width:390px}
.portal-footer-kicker{display:block;margin-bottom:.7rem;color:var(--portal-gold);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.portal-footer ul{list-style:none;margin:0;padding:0}.portal-footer li{margin:.45rem 0}.portal-footer a{color:#cbd9eb;font-size:.84rem;text-decoration:none}.portal-footer a:hover{color:#fff}
.portal-footer-contact{border-left:1px solid rgba(255,255,255,.12);padding-left:2rem}.portal-footer-contact p{font-size:.82rem}
.portal-footer-contact-link{display:inline-block;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:.25rem}
.portal-footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding-top:1.25rem;color:#8195b0;font-size:.72rem}.portal-footer-bottom p{margin:0}
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s var(--portal-ease) var(--delay,0ms),transform .7s var(--portal-ease) var(--delay,0ms)}
[data-reveal].is-visible{opacity:1;transform:none}
@media(max-width:1060px){
	.portal-header-cta{display:none}.portal-nav .menu a{padding-inline:.5rem;font-size:.8rem}.portal-service-grid{grid-template-columns:repeat(2,1fr)}.portal-service-card{min-height:250px}.portal-news-layout{grid-template-columns:1fr 1fr}.portal-news-card{grid-template-columns:1fr;grid-template-rows:170px auto}.portal-news-featured{grid-template-rows:280px auto}.portal-agenda-layout,.portal-data-layout{gap:2.5rem}.portal-footer-grid{grid-template-columns:1.5fr 1fr 1fr}.portal-footer-contact{grid-column:1/4;border-top:1px solid rgba(255,255,255,.12);border-left:0;padding-top:1.5rem;padding-left:0}
}
@media(max-width:820px){
	body.admin-bar .portal-nav{top:46px}.portal-wrap{width:min(100% - 2rem,1200px)}.portal-top-links>a{display:none}.portal-header-inner{min-height:76px}.portal-logo{width:46px;height:46px;border-radius:14px 6px}.portal-brand strong{font-size:.86rem}.portal-brand small{font-size:.7rem}.portal-language{display:none}.portal-menu-toggle{display:flex}.portal-nav{position:relative}.portal-nav>.portal-wrap{display:block}.portal-nav .menu{display:none;max-height:70vh;overflow:auto;flex-direction:column;padding:.75rem 0}.portal-nav.is-open .menu{display:flex}.portal-nav .menu a{min-height:44px;border-radius:7px;padding:.65rem .75rem}.portal-nav .menu>li>a:after{display:none}.portal-nav .menu-item-has-children>a:before{right:.8rem}.portal-nav .sub-menu,.portal-nav .sub-menu .sub-menu{position:static;display:block;width:auto;border:0;border-left:2px solid #dce7f4;border-radius:0;box-shadow:none;margin-left:1rem;padding:.15rem 0 .15rem .5rem}.portal-nav-search-trigger{position:absolute;right:1rem;top:-61px;width:42px;height:42px;justify-content:center;border:1px solid #dce3ec;border-radius:9px;padding:0}.portal-nav-search-label{display:none}.portal-header-search{position:relative}.portal-hero,.portal-hero-layout{min-height:650px}.portal-hero-layout{grid-template-columns:1fr;padding-top:4rem}.portal-hero-visual{position:absolute;right:-100px;bottom:-40px;width:350px;height:260px;opacity:.55}.portal-hero-copy{position:relative;z-index:2}.portal-hero h1{font-size:clamp(2.5rem,9vw,4rem)}.portal-scroll-cue{display:none}.portal-section{padding:4.5rem 0}.portal-news-layout{grid-template-columns:1fr;grid-template-rows:auto}.portal-news-featured{grid-row:auto}.portal-news-card{grid-template-columns:190px 1fr;grid-template-rows:auto}.portal-news-featured{grid-template-columns:1fr;grid-template-rows:280px auto}.portal-agenda-layout,.portal-data-layout{grid-template-columns:1fr}.portal-gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:300px 210px}.portal-gallery-item:first-child{grid-column:1/3;grid-row:auto}.portal-cta{align-items:flex-start;flex-direction:column}.portal-cta-actions{width:100%;flex-direction:row}.portal-footer-grid{grid-template-columns:1fr 1fr}.portal-footer-brand{grid-column:1/3}.portal-footer-contact{grid-column:1/3}.portal-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
	html{scroll-padding-top:1rem}.portal-top p{max-width:65%;font-size:.68rem}.portal-top-links{gap:.5rem}.portal-access-trigger{font-size:.7rem}.portal-tools-label{width:100%}.portal-header-actions{gap:.4rem}.portal-brand-copy{max-width:210px}.portal-hero,.portal-hero-layout{min-height:670px}.portal-hero-layout{padding-top:3.5rem;padding-bottom:3rem}.portal-hero h1{font-size:2.6rem}.portal-hero-copy>p{font-size:.96rem}.portal-hero-search>div{border-width:4px}.portal-hero-search>div>span{display:none}.portal-hero-search input{padding:.85rem}.portal-hero-search button{padding-inline:1rem}.portal-hero-visual{right:-150px}.portal-section-heading{align-items:start;flex-direction:column;gap:1rem}.portal-service-grid{grid-template-columns:1fr}.portal-service-card{min-height:225px}.portal-news-card{grid-template-columns:1fr;grid-template-rows:180px auto}.portal-news-featured{grid-template-rows:240px auto}.portal-agenda-card{grid-template-columns:72px 1fr;padding:.8rem}.portal-agenda-card>time{min-height:70px}.portal-data-panel{padding:1.5rem}.portal-document-card{grid-template-columns:auto 1fr}.portal-document-card>a{grid-column:2;justify-self:start}.portal-gallery-grid{display:grid;grid-template-columns:1fr;grid-template-rows:280px 190px 190px}.portal-gallery-item:first-child{grid-column:auto}.portal-cta{padding:2rem 1.4rem}.portal-cta-actions{flex-direction:column;min-width:0}.portal-footer-grid{grid-template-columns:1fr;gap:2rem}.portal-footer-brand,.portal-footer-contact{grid-column:auto}.portal-footer-contact{padding-left:0}.portal-footer-bottom{align-items:flex-start;flex-direction:column;gap:.3rem}.portal-grid{grid-template-columns:1fr}
}

/* Portal UI 2026 — consolidated responsive and accessible presentation layer. */
:root {
	--portal-container: 1200px;
	--portal-space-section: clamp(4rem, 7vw, 6.5rem);
	--portal-border-strong: #c9d6e5;
	--portal-glow: 0 24px 80px rgba(11, 61, 145, .16);
}

body {
	min-width: 320px;
	background: var(--portal-bg);
}

body:not(.home) .portal-main {
	background:
		radial-gradient(circle at 8% 16%, rgba(46, 134, 193, .08), transparent 24rem),
		var(--portal-surface-soft);
}

.portal-wrap {
	width: min(var(--portal-container), calc(100% - clamp(1.25rem, 5vw, 3rem)));
}

.portal-header {
	box-shadow: 0 1px 0 rgba(15, 23, 42, .06);
}

.portal-brand {
	min-width: 0;
}

.portal-brand-copy {
	min-width: 0;
}

.portal-brand strong,
.portal-brand small {
	overflow-wrap: anywhere;
}

.portal-access-trigger,
.portal-menu-toggle,
.portal-nav-search-trigger,
.portal-tools button {
	min-height: 44px;
}

.portal-access-trigger {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin-block: -.3rem;
	padding: .3rem .55rem;
	border-radius: 8px;
}

.portal-access-trigger:hover,
.portal-access-trigger[aria-expanded="true"] {
	background: rgba(255, 255, 255, .12);
}

.portal-access-panel {
	position: fixed;
	inset: auto 0 0;
	z-index: 100;
	max-height: min(80vh, 680px);
	overflow-y: auto;
	border: 1px solid var(--portal-border);
	border-radius: 24px 24px 0 0;
	box-shadow: 0 -24px 70px rgba(4, 27, 69, .2);
}

.portal-tools {
	grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(130px, auto));
	min-height: 112px;
	gap: 1rem;
}

.portal-tools button {
	white-space: nowrap;
}

.portal-tools button[aria-pressed="true"] {
	border-color: var(--portal-primary);
	background: var(--portal-primary);
	color: #fff;
}

.portal-nav .current-menu-item > a,
.portal-nav .current-menu-ancestor > a {
	color: var(--portal-primary);
}

.portal-nav .sub-menu {
	overflow: visible;
}

.portal-hero {
	isolation: isolate;
	min-height: clamp(600px, 72vh, 760px);
}

.portal-hero:after {
	position: absolute;
	inset: auto -12% -35% 35%;
	z-index: -1;
	width: 58vw;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(46, 134, 193, .32), transparent 67%);
	content: "";
	pointer-events: none;
}

.portal-hero-search input,
.portal-search-field input,
.portal-result-search input,
.portal-result-search select {
	min-height: 48px;
	font-size: max(1rem, 16px);
}

.portal-section {
	padding-block: var(--portal-space-section);
}

.portal-service-card,
.portal-news-card,
.portal-card,
.portal-content,
.portal-detail-aside {
	transform: translateZ(0);
}

.portal-service-card:hover .portal-service-icon,
.portal-service-card:focus-visible .portal-service-icon {
	background: var(--portal-primary);
	color: #fff;
	transform: rotate(-4deg) scale(1.06);
}

.portal-service-icon {
	transition: color .25s, background .25s, transform .3s var(--portal-ease);
}

.portal-card:focus-within,
.portal-news-card:focus-within,
.portal-service-card:focus-visible,
.portal-gallery-item:focus-visible {
	border-color: var(--portal-primary);
	box-shadow: var(--portal-glow);
}

.portal-entry-content {
	overflow-wrap: anywhere;
}

.portal-entry-content > * {
	max-width: 100%;
}

.portal-entry-content iframe {
	width: 100%;
	border: 0;
	aspect-ratio: 16 / 9;
}

.portal-entry-content img {
	border-radius: 14px;
}

.portal-entry-content blockquote {
	border-left: 4px solid var(--portal-gold);
	border-radius: 0 12px 12px 0;
	background: var(--portal-blue-soft);
	margin-inline: 0;
	padding: 1rem 1.25rem;
}

.portal-entry-content table {
	display: block;
	overflow-x: auto;
	white-space: nowrap;
}

.portal-footer a {
	display: inline-flex;
	min-height: 36px;
	align-items: center;
}

@media (min-width: 821px) {
	.portal-access-panel {
		position: relative;
		inset: auto;
		border-width: 0 0 1px;
		border-radius: 0;
		box-shadow: 0 12px 36px rgba(15, 23, 42, .1);
	}

	.portal-nav .menu-item-has-children:hover > .sub-menu,
	.portal-nav .menu-item-has-children:focus-within > .sub-menu,
	.portal-nav .menu-item-has-children.submenu-open > .sub-menu {
		display: block;
		animation: portal-menu-reveal .2s ease-out;
	}

	.portal-submenu-toggle {
		display: flex;
	}
}

@media (max-width: 1020px) and (min-width: 821px) {
	.portal-tools {
		grid-template-columns: repeat(3, 1fr);
		padding-block: 1.25rem;
	}

	.portal-tools-heading {
		grid-column: 1 / -1;
	}

	.portal-nav .menu a {
		padding-inline: .45rem;
		font-size: .75rem;
	}
}

@media (max-width: 820px) {
	body.admin-bar .portal-nav {
		top: 46px;
	}

	.portal-header {
		position: sticky;
		top: 0;
		z-index: 48;
	}

	body.admin-bar .portal-header {
		top: 46px;
	}

	.portal-header-inner {
		min-height: 72px;
	}

	.portal-menu-toggle {
		display: inline-flex;
	}

	.portal-nav {
		position: fixed;
		inset: 0 0 0 auto;
		z-index: 102;
		width: min(90vw, 390px);
		overflow-y: auto;
		border: 0;
		background: #fff;
		box-shadow: -20px 0 60px rgba(4, 27, 69, .22);
		transform: translateX(105%);
		transition: transform .32s var(--portal-ease);
	}

	.portal-nav.is-open {
		transform: translateX(0);
	}

	.portal-nav > .portal-wrap {
		display: block;
		width: 100%;
		padding: 1rem;
	}

	.portal-mobile-nav-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		border-bottom: 1px solid var(--portal-border);
		padding-bottom: 1rem;
	}

	.portal-nav .menu,
	.portal-nav.is-open .menu {
		display: flex;
		max-height: none;
		flex-direction: column;
		gap: .2rem;
		overflow: visible;
		padding: .85rem 0;
	}

	.portal-nav .menu > li {
		width: 100%;
	}

	.portal-nav .menu a {
		min-height: 48px;
		border-radius: 10px;
		padding: .65rem 3.15rem .65rem .8rem;
		font-size: .94rem;
	}

	.portal-nav .menu a:hover,
	.portal-nav .menu a:focus-visible {
		background: var(--portal-blue-soft);
		color: var(--portal-primary);
	}

	.portal-nav .sub-menu,
	.portal-nav .sub-menu .sub-menu {
		position: static;
		display: none;
		width: auto;
		border: 0;
		border-left: 2px solid #dce7f4;
		border-radius: 0;
		box-shadow: none;
		margin: 0 0 .35rem .85rem;
		padding: .15rem 0 .15rem .5rem;
	}

	.portal-nav .submenu-open > .sub-menu {
		display: block;
		animation: portal-menu-reveal .22s ease-out;
	}

	.portal-submenu-toggle {
		display: flex;
		right: .35rem;
		top: 5px;
		width: 40px;
		height: 40px;
		transform: none;
	}

	.portal-nav-overlay {
		position: fixed;
		inset: 0;
		z-index: 101;
		display: block;
		border: 0;
		background: rgba(3, 18, 47, .62);
		backdrop-filter: blur(3px);
	}

	.portal-nav-search-trigger {
		position: static;
		width: 100%;
		height: 48px;
		justify-content: center;
		border: 0;
		border-radius: 10px;
		background: var(--portal-blue-soft);
	}

	.portal-header-search {
		position: static;
		box-shadow: none;
	}

	.portal-header-search form {
		width: 100%;
		padding-inline: 0;
	}

	.portal-tools {
		grid-template-columns: repeat(3, 1fr);
		padding: 1.2rem 3.2rem 1.2rem 0;
	}

	.portal-tools-heading {
		grid-column: 1 / -1;
	}

	.portal-tool-group > div {
		flex-wrap: wrap;
	}

	.portal-hero-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.portal-hero-copy {
		max-width: 680px;
	}

	.portal-hero-visual {
		opacity: .38;
	}
}

@media (max-width: 600px) {
	.portal-top p {
		max-width: calc(100% - 105px);
	}

	.portal-header-inner {
		min-height: 66px;
	}

	.portal-logo {
		width: 43px;
		height: 43px;
		flex: 0 0 43px;
	}

	.portal-brand-copy {
		max-width: min(56vw, 190px);
	}

	.portal-access-panel {
		max-height: 88vh;
	}

	.portal-tools {
		grid-template-columns: 1fr;
		padding: 1rem 0 1.4rem;
	}

	.portal-tools-heading,
	.portal-tool-group {
		grid-column: auto;
	}

	.portal-tools-close {
		top: 1rem;
		transform: none;
	}

	.portal-tool-group > div {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.portal-tool-group:nth-of-type(3) > div {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.portal-tools button {
		white-space: normal;
	}

	.portal-hero {
		min-height: auto;
	}

	.portal-hero-layout {
		padding-block: 4.25rem;
	}

	.portal-hero-search > div {
		align-items: stretch;
		border-width: 3px;
	}

	.portal-hero-search input {
		padding-inline: .8rem;
	}

	.portal-hero-search button {
		padding-inline: .9rem;
	}

	.portal-section-heading {
		margin-bottom: 1.65rem;
	}

	.portal-service-card,
	.portal-news-card,
	.portal-card {
		border-radius: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.portal-nav,
	.portal-service-icon {
		transition: none;
	}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}}

/* Modern UI refinement — mobile-first interaction and content templates. */
:root{--portal-border:#dde6f0;--portal-surface:#fff;--portal-surface-soft:#f7f9fc;--portal-focus:#f4b400}
body{overflow-x:hidden}
body.portal-menu-open{overflow:hidden}
.portal-mobile-nav-head,.portal-submenu-toggle,.portal-nav-overlay{display:none}
.portal-access-panel{background:rgba(255,255,255,.98);backdrop-filter:blur(18px)}
.portal-tools{position:relative;display:grid;grid-template-columns:1.35fr repeat(3,auto);gap:1.5rem;padding:1rem 3.25rem 1rem 0}
.portal-tools-heading{display:flex;align-items:center;gap:.85rem;color:var(--portal-strong)}
.portal-tools-heading>span:last-child{display:flex;flex-direction:column}
.portal-tools-heading strong{font-family:"Plus Jakarta Sans";font-size:.9rem}
.portal-tools-heading small{color:var(--portal-muted);font-size:.7rem}
.portal-tools-symbol{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:var(--portal-blue-soft);color:var(--portal-primary);font-weight:850}
.portal-tool-group{display:flex;flex-direction:column;gap:.25rem}
.portal-tool-group>div{display:flex;gap:.3rem}
.portal-tools-label{color:var(--portal-muted);font-size:.65rem;font-weight:760;text-transform:uppercase;letter-spacing:.07em}
.portal-tools button{min-height:36px;padding:.38rem .65rem;font-size:.75rem}
.portal-tools button[aria-pressed=true]{border-color:var(--portal-primary);background:var(--portal-primary);color:#fff}
.portal-tools-close{position:absolute;right:0;top:50%;width:34px;min-height:34px!important;border-radius:50%!important;transform:translateY(-50%);font-size:1.35rem!important;line-height:1}
.portal-nav .menu-item-has-children{padding-right:1.65rem}
.portal-nav .menu-item-has-children>a{padding-right:.35rem}
.portal-nav .menu-item-has-children>a:before{display:none}
.portal-submenu-toggle{position:absolute;right:.35rem;top:50%;width:28px;height:30px;align-items:center;justify-content:center;border:0;background:transparent;color:var(--portal-muted);transform:translateY(-50%);cursor:pointer}
.portal-submenu-toggle span{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}
.portal-nav .menu-item-has-children:hover>.portal-submenu-toggle span,.portal-nav .menu-item-has-children:focus-within>.portal-submenu-toggle span{transform:rotate(225deg)}
.portal-page-hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#061e4d,#0b3d91 62%,#0c659e);padding:5.5rem 0;color:#dbeafe}
.portal-page-hero:before{position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(244,180,0,.19),transparent 25%),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,44px 44px,44px 44px;content:""}
.portal-page-hero .portal-wrap{position:relative}
.portal-page-hero h1{max-width:820px;margin:0 0 .8rem;color:#fff;font-size:clamp(2.4rem,5vw,4.5rem)}
.portal-page-hero p{max-width:660px;margin:0;color:#c9dbf2;font-size:1.02rem}
.portal-page-hero-compact{padding:4.5rem 0}
.portal-listing-body{padding-top:4rem;padding-bottom:6rem}
.portal-main{padding:0;background:var(--portal-surface-soft)}
.portal-main article{max-width:none;padding:0}
.portal-grid{gap:1.5rem}
.portal-card{display:flex;min-height:100%;flex-direction:column;border:1px solid var(--portal-border);border-radius:20px;padding:0;box-shadow:0 8px 28px rgba(15,35,75,.055);transition:transform .3s var(--portal-ease),box-shadow .3s,border-color .3s}
.portal-card:hover{border-color:#b9cee7;box-shadow:0 20px 45px rgba(15,35,75,.12);transform:translateY(-6px)}
.portal-card-media{display:block;height:210px;overflow:hidden;background:var(--portal-blue-soft)}
.portal-card-media img{width:100%;height:100%;border-radius:0;object-fit:cover;transition:transform .55s var(--portal-ease)}
.portal-card:hover .portal-card-media img{transform:scale(1.045)}
.portal-card-placeholder{position:relative;display:grid;width:100%;height:100%;place-items:center;overflow:hidden;background:linear-gradient(145deg,#0b3d91,#1478b8);color:rgba(255,255,255,.88);font:850 1.35rem "Plus Jakarta Sans";letter-spacing:.18em}
.portal-card-placeholder:after,.portal-card-placeholder:before{position:absolute;width:130px;height:130px;border:28px solid rgba(255,255,255,.09);border-radius:50%;content:""}.portal-card-placeholder:before{top:-65px;right:-30px}.portal-card-placeholder:after{bottom:-70px;left:-35px}
.portal-card-body{display:flex;flex:1;flex-direction:column;padding:1.35rem}
.portal-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.9rem;color:var(--portal-muted);font-size:.7rem}
.portal-card h2{margin-bottom:.7rem;font-size:1.2rem}.portal-card h2 a{color:var(--portal-strong);text-decoration:none}.portal-card p{color:var(--portal-muted);font-size:.88rem}
.portal-card .portal-read-more{margin-top:auto;padding-top:.8rem}
.navigation.pagination{margin-top:3rem}.nav-links{display:flex;flex-wrap:wrap;gap:.45rem}.page-numbers{display:grid;min-width:40px;min-height:40px;place-items:center;border:1px solid var(--portal-border);border-radius:10px;background:#fff;color:var(--portal-primary);padding:.35rem .7rem;text-decoration:none}.page-numbers.current{border-color:var(--portal-primary);background:var(--portal-primary);color:#fff}
.portal-detail-hero{padding-bottom:7rem}.portal-detail-hero .portal-badge{margin-bottom:1rem}.portal-back-link{display:inline-flex;margin-bottom:2rem;color:#dbeafe;font-size:.82rem;font-weight:750;text-decoration:none}
.portal-detail-meta{display:flex;flex-wrap:wrap;gap:1.5rem;color:#c4d6ed;font-size:.82rem}.portal-detail-meta span:before{margin-right:.5rem;content:"•";color:var(--portal-gold)}
.portal-detail-layout{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:2rem;align-items:start;margin-top:-3rem;padding-bottom:6rem}
.portal-content{border:1px solid var(--portal-border);border-radius:24px;background:#fff;box-shadow:var(--portal-shadow);padding:clamp(1.5rem,5vw,4rem)!important}
.portal-featured-image{overflow:hidden;border-radius:16px;margin:-1rem -1rem 2.5rem}.portal-featured-image img{width:100%;height:auto}
.portal-entry-content{color:#334155;font-size:1.02rem;line-height:1.82}.portal-entry-content>:first-child{margin-top:0}.portal-entry-content h2{margin-top:2.25rem;font-size:1.7rem}.portal-entry-content h3{margin-top:1.8rem;font-size:1.3rem}.portal-entry-content a{font-weight:650}.portal-entry-content blockquote{border-left:4px solid var(--portal-gold);background:var(--portal-blue-soft);margin:2rem 0;padding:1rem 1.25rem}.portal-entry-content img{border-radius:14px}
.portal-detail-aside{position:sticky;top:5.5rem;border:1px solid var(--portal-border);border-radius:18px;background:#fff;padding:1.35rem;box-shadow:0 10px 28px rgba(15,35,75,.06)}.portal-detail-aside strong{color:var(--portal-strong);font-family:"Plus Jakarta Sans"}.portal-detail-aside p{color:var(--portal-muted);font-size:.8rem}.portal-detail-aside>a{display:block;margin-top:1rem;font-size:.76rem;font-weight:700;text-decoration:none}
.portal-copy-link{width:100%;border:1px solid var(--portal-primary);border-radius:9px;background:var(--portal-blue-soft);color:var(--portal-primary);padding:.65rem;font-weight:750;cursor:pointer}
.portal-download-box{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-radius:16px;background:var(--portal-blue-soft);margin-top:2.5rem;padding:1.25rem}.portal-download-box>div{display:flex;flex-direction:column}.portal-download-box span{color:var(--portal-muted);font-size:.76rem}
.portal-page-layout{max-width:1000px;padding-top:4rem;padding-bottom:6rem}.portal-page-layout .portal-content{width:100%}.portal-page-layout .portal-badge{margin-bottom:1.5rem}
.portal-result-search{max-width:800px;margin-top:2rem}.portal-result-search label{display:block;margin-bottom:.45rem;color:#fff;font-size:.76rem;font-weight:750}.portal-result-search>div{display:flex;border:5px solid rgba(255,255,255,.12);border-radius:14px;background:#fff;background-clip:padding-box}.portal-result-search input,.portal-result-search select{min-width:0;border:0;background:#fff;padding:.85rem 1rem}.portal-result-search input{flex:1}.portal-result-search select{border-left:1px solid var(--portal-border)}.portal-result-search button{border:0;border-radius:8px;background:var(--portal-gold);color:#312600;margin:.25rem;padding:0 1.3rem;font-weight:800}
.portal-result-count{color:var(--portal-muted);font-size:.85rem}.portal-search-results{display:grid;gap:.8rem}.portal-search-results article{display:grid;grid-template-columns:120px 1fr auto;gap:1.2rem;align-items:start;border:1px solid var(--portal-border);border-radius:16px;background:#fff;padding:1.4rem;transition:transform .25s,box-shadow .25s}.portal-search-results article:hover{box-shadow:var(--portal-shadow);transform:translateX(4px)}.portal-search-results h2{margin-bottom:.4rem;font-size:1.2rem}.portal-search-results h2 a{color:var(--portal-strong);text-decoration:none}.portal-search-results p{margin-bottom:.45rem;color:var(--portal-muted);font-size:.85rem}.portal-result-arrow{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--portal-blue-soft);color:var(--portal-primary);font-weight:850;text-decoration:none}
.portal-empty{max-width:700px;border:1px dashed #a9bbce;border-radius:22px;background:#fff;margin-inline:auto;padding:4rem 2rem;text-align:center}.portal-empty>span{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;background:var(--portal-blue-soft);color:var(--portal-primary);margin:0 auto 1rem;font-size:1.7rem}.portal-empty h2{font-size:1.6rem}
.portal-error-page{display:grid;min-height:68vh;align-items:center;background:linear-gradient(135deg,#f7f9fc,#edf5ff)}.portal-error-layout{display:grid;grid-template-columns:1fr .7fr;gap:4rem;align-items:center;padding-top:5rem;padding-bottom:5rem}.portal-error-code{display:block;color:var(--portal-primary);font:850 clamp(4rem,10vw,8rem)/.9 "Plus Jakarta Sans";opacity:.13}.portal-error-layout h1{font-size:clamp(2.3rem,4vw,4rem)}.portal-error-layout p{max-width:590px;color:var(--portal-muted)}.portal-error-layout .portal-result-search label{color:var(--portal-strong)}.portal-error-layout .portal-text-link{margin-top:1.5rem}.portal-error-art{position:relative;display:grid;aspect-ratio:1;place-items:center;border-radius:48% 52% 61% 39%;background:linear-gradient(145deg,var(--portal-primary),#0878b5);box-shadow:var(--portal-shadow-lg);color:#fff;font:850 2rem "Plus Jakarta Sans";letter-spacing:.2em;animation:portal-float 7s ease-in-out infinite}.portal-error-art:before,.portal-error-art:after{position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:50%;content:""}.portal-error-art:before{inset:12%}.portal-error-art:after{inset:28%}
.portal-survey-form{border-top:1px solid var(--portal-border);margin-top:2rem;padding-top:2rem}.portal-survey-form fieldset{border:1px solid var(--portal-border);border-radius:12px;margin-bottom:1rem;padding:1rem}.portal-survey-form legend{color:var(--portal-strong);font-weight:750;padding-inline:.35rem}.portal-rating{display:flex;gap:.5rem}.portal-rating label{cursor:pointer}.portal-rating input{position:absolute;opacity:0}.portal-rating span{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--portal-border);border-radius:9px;background:#fff;font-weight:750}.portal-rating input:checked+span{border-color:var(--portal-primary);background:var(--portal-primary);color:#fff}.portal-rating input:focus-visible+span{outline:3px solid var(--portal-gold);outline-offset:2px}.portal-form-note{color:var(--portal-muted);font-size:.8rem}
body.portal-contrast{--portal-surface:#000;--portal-surface-soft:#090909;--portal-border:#fff;--portal-text:#fff;--portal-muted:#f1f1f1;--portal-strong:#fff;--portal-blue-soft:#111;background:#000}.portal-contrast .portal-card,.portal-contrast .portal-content,.portal-contrast .portal-detail-aside,.portal-contrast .portal-search-results article,.portal-contrast .portal-empty,.portal-contrast .portal-access-panel,.portal-contrast .portal-tools button{background:#000;color:#fff}.portal-contrast .portal-tools-heading,.portal-contrast .portal-tools button,.portal-contrast .portal-nav a{color:#fff}

@media(max-width:820px){
	.portal-tools{grid-template-columns:1fr 1fr;gap:1rem}.portal-tools-heading{grid-column:1/3}.portal-tools-close{top:1rem;transform:none}
	.portal-nav-overlay{position:fixed;inset:0;z-index:59;display:block;background:rgba(3,15,35,.62);backdrop-filter:blur(3px)}
	.portal-nav{position:fixed;top:0!important;right:0;bottom:0;left:auto;z-index:60;width:min(88vw,390px);border:0;background:#fff;box-shadow:-20px 0 50px rgba(0,0,0,.18);transform:translateX(105%);transition:transform .3s var(--portal-ease)}
	.portal-nav.is-open{transform:none}.portal-nav>.portal-wrap{width:100%;height:100%;overflow:auto;padding:0 1rem 2rem}
	.portal-mobile-nav-head{position:sticky;top:0;z-index:2;display:flex;min-height:70px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--portal-border);background:#fff}.portal-mobile-nav-head strong{color:var(--portal-strong);font-family:"Plus Jakarta Sans"}.portal-mobile-nav-head button{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--portal-border);border-radius:50%;background:#fff;color:var(--portal-strong);font-size:1.5rem}
	.portal-nav .menu{display:flex;max-height:none;overflow:visible;padding:.75rem 0}.portal-nav .menu-item-has-children{padding-right:0}.portal-nav .menu a{padding-right:3.2rem;font-size:.9rem}
	.portal-submenu-toggle{display:flex;right:.35rem;top:22px;width:38px;height:38px;transform:none}.portal-nav .menu-item-has-children:hover>.portal-submenu-toggle span,.portal-nav .menu-item-has-children:focus-within>.portal-submenu-toggle span{transform:rotate(45deg) translate(-2px,-2px)}.portal-nav .menu-item-has-children.submenu-open>.portal-submenu-toggle span{transform:rotate(225deg)}
	.portal-nav .sub-menu,.portal-nav .sub-menu .sub-menu{display:none}.portal-nav .submenu-open>.sub-menu{display:block;animation:portal-menu-reveal .24s ease-out}
	.portal-nav-search-trigger{position:static;width:100%;height:44px;border:0;border-radius:9px;background:var(--portal-blue-soft);margin-top:.5rem}.portal-nav-search-label{display:inline}.portal-header-search{position:static;box-shadow:none}.portal-header-search form{width:100%}
	.portal-detail-layout{grid-template-columns:1fr}.portal-detail-aside{position:static}.portal-error-layout{grid-template-columns:1fr}.portal-error-art{display:none}
}
@keyframes portal-menu-reveal{from{opacity:0;transform:translateY(-5px)}}
@media(max-width:600px){
	.portal-wrap{width:min(100% - 1.25rem,1200px)}.portal-top{font-size:.66rem}.portal-top-inner{min-height:34px}.portal-top p{max-width:72%}.portal-access-trigger span{display:none}
	.portal-header-inner{gap:.5rem}.portal-brand{gap:.6rem}.portal-brand-copy{max-width:175px}.portal-brand strong{font-size:.74rem;line-height:1.25}.portal-brand small{font-size:.62rem}.portal-menu-toggle{padding:.6rem}.portal-menu-toggle>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
	.portal-tools{grid-template-columns:1fr;padding:1rem 0}.portal-tools-heading{grid-column:auto;padding-right:2.5rem}.portal-tools-heading small{max-width:230px}.portal-tool-group{border-top:1px solid var(--portal-border);padding-top:.7rem}.portal-tool-group>div{display:grid;grid-template-columns:repeat(3,1fr)}.portal-tool-group button{width:100%}
	.portal-hero,.portal-hero-layout{min-height:auto}.portal-hero-layout{display:block;padding-top:4rem;padding-bottom:4rem}.portal-hero-visual{display:none}.portal-hero h1{font-size:clamp(2.25rem,12vw,3.15rem)}.portal-popular{align-items:flex-start;flex-direction:column}.portal-popular a{margin-right:.6rem}
	.portal-section{padding:3.75rem 0}.portal-section-heading h2,.portal-agenda-intro h2,.portal-data-panel h2{font-size:2rem}.portal-service-card{min-height:210px}.portal-service-card h3{margin-top:1.8rem}
	.portal-page-hero,.portal-page-hero-compact{padding:3.75rem 0}.portal-page-hero h1{font-size:2.35rem}.portal-listing-body{padding-top:2.5rem;padding-bottom:4rem}.portal-grid{gap:1rem}.portal-card-media{height:190px}
	.portal-detail-hero{padding-bottom:5.5rem}.portal-detail-layout{margin-top:-2rem;padding-bottom:4rem}.portal-content{border-radius:18px;padding:1.25rem!important}.portal-entry-content{font-size:.96rem}.portal-detail-aside{display:none}.portal-download-box{align-items:stretch;flex-direction:column}
	.portal-result-search>div{flex-wrap:wrap}.portal-result-search input{width:100%;flex-basis:65%}.portal-result-search select{width:100%;order:3;border-top:1px solid var(--portal-border);border-left:0}.portal-result-search button{min-height:46px}
	.portal-search-results article{grid-template-columns:1fr auto;gap:.75rem}.portal-search-results article>.portal-badge{grid-column:1/3;justify-self:start}.portal-search-results p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
	.portal-error-layout{padding-top:3.5rem;padding-bottom:3.5rem}.portal-error-code{font-size:5rem}.portal-error-layout h1{font-size:2.4rem}
}

/* Production calendar and final responsive layer. */
.portal-calendar-section {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 90% 10%, rgba(46, 134, 193, .28), transparent 30rem),
		linear-gradient(135deg, #041b45, #0b3d91 58%, #075f9e);
	color: #dbeafe;
}

.portal-calendar-section:before {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
	background-size: 52px 52px;
	content: "";
	pointer-events: none;
}

.portal-calendar-section .portal-wrap {
	position: relative;
}

.portal-calendar-section h2,
.portal-calendar-section .portal-section-heading p {
	color: #fff;
}

.portal-text-link-light {
	color: #fff;
}

.portal-calendar-shell {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 28px;
	background: rgba(255, 255, 255, .09);
	box-shadow: 0 28px 80px rgba(0, 0, 0, .22);
	backdrop-filter: blur(18px);
}

.portal-calendar {
	border-right: 1px solid rgba(255, 255, 255, .14);
	padding: clamp(1.2rem, 3vw, 2.25rem);
}

.portal-calendar-toolbar {
	display: grid;
	grid-template-columns: 44px 1fr 44px;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.portal-calendar-toolbar h3 {
	margin: 0;
	color: #fff;
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	text-align: center;
	text-transform: capitalize;
}

.portal-calendar-toolbar button {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, .24);
	border-radius: 13px;
	background: rgba(255, 255, 255, .09);
	color: #fff;
	cursor: pointer;
	transition: background .2s, transform .2s;
}

.portal-calendar-toolbar button:hover {
	background: rgba(255, 255, 255, .18);
	transform: translateY(-2px);
}

.portal-calendar-weekdays,
.portal-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: clamp(.3rem, 1vw, .65rem);
}

.portal-calendar-weekdays {
	margin-bottom: .65rem;
	color: #a9c7e8;
	font-size: .68rem;
	font-weight: 800;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.portal-calendar-day,
.portal-calendar-spacer {
	aspect-ratio: 1;
}

.portal-calendar-day {
	position: relative;
	display: grid;
	min-width: 0;
	place-items: center;
	border: 1px solid transparent;
	border-radius: 14px;
	background: rgba(255, 255, 255, .055);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	transition: border-color .2s, background .2s, transform .2s;
}

.portal-calendar-day:hover {
	border-color: rgba(255, 255, 255, .28);
	background: rgba(255, 255, 255, .12);
	transform: translateY(-2px);
}

.portal-calendar-day.has-events:after {
	position: absolute;
	bottom: 8px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--portal-gold);
	box-shadow: 0 0 0 4px rgba(244, 180, 0, .13);
	content: "";
}

.portal-calendar-day.is-today {
	border-color: rgba(255, 255, 255, .4);
}

.portal-calendar-day[aria-selected="true"] {
	border-color: var(--portal-gold);
	background: var(--portal-gold);
	box-shadow: 0 10px 24px rgba(244, 180, 0, .25);
	color: #2d2400;
}

.portal-calendar-day[aria-selected="true"]:after {
	background: #2d2400;
	box-shadow: none;
}

.portal-calendar-events {
	min-height: 480px;
	background: #fff;
	padding: clamp(1.4rem, 3vw, 2.4rem);
	color: var(--portal-text);
}

.portal-calendar-events-head {
	border-bottom: 1px solid var(--portal-border);
	margin-bottom: 1rem;
	padding-bottom: 1rem;
}

.portal-calendar-events-head .portal-kicker {
	margin-bottom: .4rem;
}

.portal-calendar-events-head h3 {
	margin: 0;
	font-size: clamp(1.3rem, 2.5vw, 1.8rem);
}

.portal-calendar-event {
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 1rem;
	border-bottom: 1px solid var(--portal-border);
	padding: 1rem 0 !important;
}

.portal-calendar-event time {
	align-self: start;
	border-radius: 9px;
	background: var(--portal-blue-soft);
	color: var(--portal-primary);
	padding: .5rem;
	font-size: .74rem;
	font-weight: 800;
	text-align: center;
}

.portal-calendar-event h4 {
	margin: 0 0 .3rem;
	font-size: 1rem;
}

.portal-calendar-event h4 a {
	color: var(--portal-strong);
	text-decoration: none;
}

.portal-calendar-event p {
	margin: 0;
	color: var(--portal-muted);
	font-size: .8rem;
}

.portal-calendar-empty {
	display: grid;
	min-height: 270px;
	place-items: center;
	align-content: center;
	color: var(--portal-muted);
	text-align: center;
}

.portal-calendar-empty > span {
	display: grid;
	width: 58px;
	height: 58px;
	place-items: center;
	border-radius: 18px;
	background: var(--portal-blue-soft);
	color: var(--portal-primary);
	margin-bottom: .8rem;
	font-size: 1.5rem;
}

.portal-calendar-empty strong {
	color: var(--portal-strong);
	font-family: "Plus Jakarta Sans";
}

.portal-calendar-empty p {
	max-width: 300px;
	margin: .3rem auto 0;
	font-size: .82rem;
}

.portal-media-placeholder {
	position: relative;
	display: grid;
	width: 100%;
	height: 100%;
	overflow: hidden;
	place-items: center;
	background:
		radial-gradient(circle at 78% 22%, rgba(244, 180, 0, .9) 0 8%, transparent 8.5%),
		linear-gradient(145deg, var(--portal-primary), #1478b8);
	color: rgba(255, 255, 255, .9);
}

.portal-media-placeholder:before,
.portal-media-placeholder:after {
	position: absolute;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 50%;
	content: "";
}

.portal-media-placeholder:before {
	width: 65%;
	aspect-ratio: 1;
}

.portal-media-placeholder:after {
	width: 38%;
	aspect-ratio: 1;
}

.portal-media-placeholder > span {
	position: relative;
	z-index: 1;
	font: 800 clamp(.75rem, 2vw, 1.05rem) "Plus Jakarta Sans";
	letter-spacing: .16em;
}

@media(max-width:820px) {
	.portal-calendar-shell {
		grid-template-columns: 1fr;
	}

	.portal-calendar {
		border-right: 0;
		border-bottom: 1px solid rgba(255, 255, 255, .14);
	}

	.portal-calendar-events {
		min-height: 340px;
	}
}

@media(max-width:480px) {
	.portal-calendar-shell {
		border-radius: 20px;
	}

	.portal-calendar-weekdays,
	.portal-calendar-grid {
		gap: .25rem;
	}

	.portal-calendar-day {
		border-radius: 9px;
		font-size: .78rem;
	}

	.portal-calendar-day.has-events:after {
		bottom: 4px;
	}

	.portal-calendar-event {
		grid-template-columns: 1fr;
	}
}
