.portal-footer{position:relative;overflow:hidden;padding:38px 0 16px;background:radial-gradient(circle at 76% -45%,#159f74 0,transparent 40%),linear-gradient(115deg,#063e38,#035144 60%,#06483e);color:#eef9f5}.portal-footer:before,.portal-footer:after{content:"";position:absolute;pointer-events:none;border:1px solid #a1e5c21c;border-radius:50%;width:560px;height:560px}.portal-footer:before{right:-80px;top:-455px;transform:rotate(-18deg)}.portal-footer:after{left:-370px;bottom:-500px}.portal-footer .footer-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(330px,.95fr) minmax(0,1.25fr);column-gap:30px;row-gap:25px}.footer-intro{padding-right:28px;border-right:1px solid #ffffff2b}.portal-footer .footer-brand{display:inline-flex;gap:15px}.portal-footer .footer-brand .brand-mark{width:72px;height:72px}.portal-footer .footer-brand strong{font-size:clamp(25px,2vw,32px)}.portal-footer .footer-brand small{font-size:14px;color:#a9e2ca}.footer-intro>p{margin:3px 0 21px 87px;color:#b4d9ce;font-size:14px}.portal-footer .portal-footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}.portal-footer-links a{min-width:0;padding:12px 13px;justify-content:flex-start;gap:8px;border-color:#7fd6b661;border-radius:12px;background:linear-gradient(115deg,#ffffff1c,#ffffff08);box-shadow:inset 0 1px #ffffff1b;font-size:13px}.portal-footer-links a .portal-nav-icon{width:19px;height:19px;flex:none;color:#91efbe}.portal-footer-links a span{margin-left:auto;color:#a7edc5}.portal-footer-links a:hover,.portal-footer-links a:focus-visible{background:#ffffff2b;border-color:#a6ebc8;transform:translateY(-3px);box-shadow:0 8px 20px #002e2729}.portal-footer .portal-footer-contact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;gap:12px}.portal-footer-contact>div{display:flex;align-items:flex-start;gap:12px;min-height:117px;padding:17px;border:1px solid #ffffff36;border-radius:15px;background:#ffffff12;backdrop-filter:blur(5px);transition:background .2s,transform .2s}.portal-footer-contact>div:hover{background:#ffffff22;transform:translateY(-3px)}.footer-contact-icon{display:grid!important;place-items:center;flex:none;width:44px;height:44px;margin:0!important;border-radius:14px;background:#25a87370;color:#d6ffe9!important;font-size:24px!important}.portal-footer-contact .footer-contact-copy{display:block;min-width:0;margin:3px 0 0}.portal-footer-contact small{color:#b0dbc9;font-size:10px;letter-spacing:.08em}.portal-footer-contact .footer-contact-copy>span,.portal-footer-contact .footer-contact-copy>a{display:block;margin-top:9px;font-size:13px;font-weight:700;line-height:1.45;color:#f4fff9}.portal-footer-contact .footer-contact-copy>a:hover{color:#a6f2c9}.footer-contact-copy em{display:block;margin-top:4px;font-size:11px;font-style:normal;color:#b8d8cc}.portal-footer .footer-end{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0;padding-top:15px;border-top:1px solid #ffffff35;color:#b6d7ce;font-size:12px}.portal-footer .footer-end .footer-top-link{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;border-color:#5bc495;color:#f4fff9}.portal-footer .footer-end .footer-top-link span{padding:0}.portal-footer .footer-end .footer-top-link:hover{background:#ffffff20}@media(max-width:1100px){.portal-footer .footer-layout{grid-template-columns:1fr}.footer-intro{border-right:0;padding-right:0}.portal-footer .portal-footer-contact{align-content:start}}@media(max-width:700px){.portal-footer .portal-footer-contact{grid-template-columns:1fr}.portal-footer-contact>div{min-height:0}.portal-footer .portal-footer-links{grid-template-columns:1fr 1fr}.portal-footer .footer-end{align-items:flex-start;flex-direction:column}.portal-footer .footer-brand .brand-mark{width:56px;height:56px}.footer-intro>p{margin-left:0}}@media(max-width:430px){.portal-footer .portal-footer-links{grid-template-columns:1fr}}
.portal-footer{padding-top:25px;padding-bottom:12px}.portal-footer .footer-layout{column-gap:24px;row-gap:17px}.footer-intro{padding-right:22px}.portal-footer .footer-brand .brand-mark{width:58px;height:58px}.portal-footer .footer-brand strong{font-size:clamp(23px,1.8vw,28px)}.portal-footer .footer-brand small{font-size:12px}.footer-intro>p{margin:2px 0 14px 73px;font-size:13px}.portal-footer .portal-footer-links{gap:7px}.portal-footer-links a{padding:9px 11px;font-size:12px}.portal-footer-links a .portal-nav-icon{width:17px;height:17px}.portal-footer .portal-footer-contact{gap:9px}.portal-footer-contact>div{min-height:92px;padding:12px;gap:9px}.footer-contact-icon{width:36px;height:36px;font-size:20px!important;border-radius:11px}.portal-footer-contact .footer-contact-copy>span,.portal-footer-contact .footer-contact-copy>a{margin-top:6px;font-size:12px}.portal-footer .footer-end{padding-top:11px}.portal-footer .footer-end .footer-top-link{padding:7px 10px}@media(max-width:700px){.portal-footer .footer-brand .brand-mark{width:52px;height:52px}.footer-intro>p{margin-left:0}.portal-footer-contact>div{min-height:0}}
/* Tautan sosial dinamis dari pengaturan Profil & Kontak. */
.footer-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:2px 0 18px}.footer-socials a{display:flex;align-items:center;gap:7px;min-height:40px;padding:6px 12px 6px 7px;border:1px solid rgba(255,255,255,.19);border-radius:999px;background:rgba(255,255,255,.08);color:#f5faf9;text-decoration:none;transition:transform .18s ease,background .18s ease}.footer-socials a:hover{transform:translateY(-2px);background:rgba(255,255,255,.15)}.footer-socials a>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#08795e;color:#fff;font-size:9px;font-weight:900;text-transform:uppercase}.footer-socials b{font-size:12px}.footer-socials .social-instagram>span{background:linear-gradient(135deg,#6b4fc8,#d83c78,#f39b39)}.footer-socials .social-facebook>span{background:#1877f2}.footer-socials .social-youtube>span{background:#e62117}.footer-socials .social-tiktok>span{background:#17252a;box-shadow:inset 2px 0 #25f4ee,inset -2px 0 #fe2c55}.footer-socials .social-whatsapp>span{background:#20b45a}@media(max-width:600px){.footer-socials b{display:none}.footer-socials a{padding:6px}}
.portal-footer .footer-social-area{grid-column:2;display:flex;align-items:center;gap:13px;min-width:0;margin-top:-8px}.portal-footer .footer-social-label{flex:none;color:#b0dbc9;font-size:11px;font-weight:700;letter-spacing:.04em}.portal-footer .footer-socials{justify-content:flex-start;gap:8px;margin:0}.portal-footer .footer-socials a{min-height:38px!important;color:#f5faf9!important;background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.24)!important;text-decoration:none!important}.portal-footer .footer-socials a:hover{color:#fff!important;background:rgba(255,255,255,.2)!important}.portal-footer .footer-socials a>span{font-size:13px!important}.portal-footer .footer-socials b{color:#f5faf9!important}@media(max-width:1100px){.portal-footer .footer-social-area{grid-column:1/-1;margin-top:0}}@media(max-width:700px){.portal-footer .footer-social-area{align-items:flex-start;flex-direction:column}.portal-footer .footer-socials{width:100%}}
.portal-footer .footer-social-area{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;min-width:0;margin:0;padding:13px 16px;border:1px solid rgba(255,255,255,.17);border-radius:14px;background:rgba(0,31,27,.18)}.footer-social-heading{flex:none}.footer-social-heading strong,.footer-social-heading small{display:block}.footer-social-heading strong{color:#f4fff9;font-size:13px}.footer-social-heading small{margin-top:3px;color:#a9d5c6;font-size:10px}.portal-footer .footer-socials{justify-content:flex-end;gap:8px;margin:0}.portal-footer .footer-socials a{min-width:112px;justify-content:flex-start}.portal-footer .footer-socials a>span{flex:none}.portal-footer .footer-socials a svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.portal-footer .footer-socials a svg .solid{fill:currentColor;stroke:none}.portal-footer .footer-socials b{font-size:11px}@media(max-width:900px){.portal-footer .footer-social-area{align-items:flex-start;flex-direction:column}.portal-footer .footer-socials{justify-content:flex-start;width:100%}}@media(max-width:600px){.portal-footer .footer-socials{display:grid;grid-template-columns:repeat(3,1fr)}.portal-footer .footer-socials a{min-width:0}.portal-footer .footer-socials b{display:block}}

/* Susunan akhir mengikuti mockup: profil kiri, kontak dan sosial kanan. */
.portal-footer{padding:48px 0 18px;min-height:420px;background:radial-gradient(circle at 74% 45%,rgba(5,147,106,.34),transparent 35%),linear-gradient(115deg,#023d37,#00594b 64%,#06483e)}
.portal-footer .footer-layout{display:grid;grid-template-columns:minmax(430px,.8fr) minmax(700px,1.25fr);grid-template-rows:auto auto auto;column-gap:48px;row-gap:18px;align-items:stretch}
.portal-footer .footer-intro{position:relative;grid-column:1;grid-row:1/3;display:flex;flex-direction:column;justify-content:center;padding:8px 48px 8px 12px;border-right:1px solid rgba(255,255,255,.2)}
.portal-footer .footer-intro:after{content:'◆';position:absolute;right:-9px;top:50%;transform:translateY(-50%);color:#25c99b;font-size:17px;text-shadow:0 0 16px rgba(37,201,155,.7)}
.portal-footer .footer-brand .brand-mark{width:84px;height:84px}.portal-footer .footer-brand strong{font-size:35px}.portal-footer .footer-brand small{font-size:15px}.portal-footer .footer-intro>p{margin:7px 0 25px 99px;font-size:15px;color:#c0ded5}
.portal-footer .portal-footer-links{grid-template-columns:1fr 1fr;gap:12px}.portal-footer .portal-footer-links a{min-height:54px;padding:11px 14px;border-radius:14px;font-size:14px}.portal-footer .portal-footer-links a .portal-nav-icon{width:22px;height:22px;padding:0}
.portal-footer .portal-footer-contact{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-content:stretch}.portal-footer .portal-footer-contact>div{min-height:118px;padding:18px;border-radius:17px;background:rgba(255,255,255,.09);border-color:rgba(127,224,190,.34)}.portal-footer .footer-contact-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#0aa477,#078a68);font-size:24px!important}.portal-footer .portal-footer-contact small{font-size:11px}.portal-footer .portal-footer-contact .footer-contact-copy>span,.portal-footer .portal-footer-contact .footer-contact-copy>a{font-size:13px}
.portal-footer .footer-social-area{grid-column:2;grid-row:2;display:grid;grid-template-columns:235px minmax(0,1fr);align-items:center;justify-content:stretch;gap:18px;min-height:92px;margin:0;padding:17px 20px;border-radius:17px;background:rgba(0,35,30,.28);border:1px solid rgba(127,224,190,.28)}
.portal-footer .footer-social-heading{padding-left:15px;border-left:4px solid #20d0a0}.portal-footer .footer-social-heading strong{font-size:12px;letter-spacing:.04em;text-transform:uppercase}.portal-footer .footer-social-heading small{font-size:11px}
.portal-footer .footer-socials{display:grid;grid-template-columns:repeat(5,minmax(105px,1fr));gap:9px;width:100%}.portal-footer .footer-socials a{justify-content:flex-start;min-width:0;min-height:47px!important;padding:7px 10px 7px 7px!important;border-radius:999px!important}.portal-footer .footer-socials a>span{width:32px;height:32px}.portal-footer .footer-socials a svg{width:18px;height:18px}.portal-footer .footer-socials b{font-size:12px}
.portal-footer .footer-end{grid-column:1/-1;grid-row:3;margin-top:10px!important;padding:17px 0 0!important}
@media(max-width:1350px){.portal-footer .footer-layout{grid-template-columns:minmax(330px,.75fr) minmax(620px,1.25fr);column-gap:30px}.portal-footer .footer-intro{padding-right:30px}.portal-footer .footer-brand strong{font-size:29px}.portal-footer .footer-intro>p{margin-left:78px}.portal-footer .footer-social-area{grid-template-columns:190px 1fr}.portal-footer .footer-socials{grid-template-columns:repeat(5,minmax(85px,1fr))}.portal-footer .footer-socials b{font-size:10px}}
@media(max-width:1050px){.portal-footer{min-height:0}.portal-footer .footer-layout{grid-template-columns:1fr;grid-template-rows:auto}.portal-footer .footer-intro,.portal-footer .portal-footer-contact,.portal-footer .footer-social-area,.portal-footer .footer-end{grid-column:1;grid-row:auto}.portal-footer .footer-intro{padding:0 0 22px;border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}.portal-footer .footer-intro:after{display:none}.portal-footer .footer-intro>p{margin-left:0}.portal-footer .footer-social-area{grid-template-columns:190px 1fr}}
@media(max-width:720px){.portal-footer{padding-top:30px}.portal-footer .portal-footer-contact{grid-template-columns:1fr}.portal-footer .portal-footer-contact>div{min-height:0}.portal-footer .footer-social-area{grid-template-columns:1fr}.portal-footer .footer-socials{grid-template-columns:repeat(2,1fr)}.portal-footer .footer-socials b{font-size:11px}.portal-footer .footer-brand strong{font-size:26px}}
