:root {
    --blue:#07599f;
    --deep:#0a3d73;
    --ink:#263747;
    --muted:#8998a6;
    --line:#e5edf4
}

* {
    box-sizing:border-box
}

body {
    margin:0;
    color:var(--ink);
    font:15px/1.7 "Microsoft YaHei","PingFang SC",Arial,sans-serif;
    background:#fff
}

a {
    text-decoration:none;
    color:inherit
}

a:hover {
    color:var(--blue)
}

.wrap {
    max-width:1200px;
    margin:auto;
    padding:0 18px
}

.topline {
    background:#f2f6fa;
    color:#81919f;
    font-size:12px;
    padding:6px 0
}

.topline .wrap {
    display:flex;
    justify-content:space-between
}

.brand {
    height:112px;
    display:flex;
    align-items:center;
    justify-content:space-between
}

.brand-link {
    display:flex;
    align-items:center;
    gap:15px;
    color:var(--deep)
}

.brand-mark {
    width:64px;
    height:64px;
    border:3px solid var(--blue);
    border-radius:50%;
    display:grid;
    place-items:center;
    font-size:32px;
    font-weight:700
}

.brand-link strong {
    display:block;
    font-size:30px;
    letter-spacing:2px;
    line-height:1.3
}

.brand-link small {
    display:block;
    color:#8aa0b3;
    font-size:10px;
    letter-spacing:1.4px
}

.brand-slogan {
    color:#93a6b6;
    letter-spacing:3px
}

.main-nav {
    background:var(--blue)
}

.nav-inner {
    display:flex
}

.nav-inner a {
    color:#fff;
    text-align:center;
    flex:1;
    padding:14px 4px;
    font-size:17px
}

.nav-inner a.active,.nav-inner a:hover {
    background:#08457e;
    color:#fff
}

.hero {
    height:390px;
    position:relative;
    overflow:hidden;
    color:#fff;
    background:linear-gradient(105deg,#07477f,#0a67aa 58%,#5ca6d9)
}

.hero:before {
    content:"";
    position:absolute;
    inset:0;
    background:repeating-linear-gradient(130deg,transparent 0 35px,#ffffff0b 36px 37px)
}

.hero-content {
    position:relative;
    z-index:2;
    padding-top:65px
}

.hero-content>span {
    border-left:3px solid #a8d4f3;
    padding-left:12px;
    letter-spacing:5px;
    color:#d9efff
}

.hero h1 {
    font-size:44px;
    letter-spacing:4px;
    line-height:1.35;
    margin:16px 0 12px;
    font-weight:600
}

.hero p {
    color:#d8ebfa;
    font-size:17px
}

.hero-button {
    display:inline-block;
    margin-top:15px;
    background:#fff;
    color:var(--blue);
    padding:9px 22px;
    font-weight:600
}

.hero-orbit {
    position:absolute;
    width:600px;
    height:600px;
    border:1px solid #ffffff56;
    border-radius:50%;
    right:5%;
    top:-110px;
    box-shadow:0 0 0 75px #ffffff10,0 0 0 150px #ffffff0b;
    background:radial-gradient(circle,#d5f4ff99,transparent 35%)
}

.home-main {
    padding-top:40px;
    padding-bottom:55px
}

.news-grid {
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:38px
}

.panel-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-bottom:2px solid var(--blue);
    margin-bottom:17px
}

.panel-heading h2 {
    font-size:23px;
    color:var(--deep);
    margin:0;
    padding:0 0 10px
}

.panel-heading h2 small {
    font-size:12px;
    font-weight:400;
    color:#a8b6c4;
    letter-spacing:2px;
    margin-left:8px
}

.panel-heading>a {
    font-size:13px;
    color:var(--muted)
}

.feature {
    display:flex;
    gap:18px;
    padding-bottom:12px;
    border-bottom:1px solid var(--line)
}

.feature-visual {
    width:42%;
    min-height:150px;
    flex:none;
    display:grid;
    place-items:center;
    color:white;
    font-size:26px;
    letter-spacing:3px;
    background:linear-gradient(135deg,#0580b5,#103e85)
}

.feature h3 {
    font-size:17px;
    line-height:1.5;
    margin:4px 0 8px
}

.feature p {
    font-size:13px;
    color:var(--muted);
    margin:0 0 10px
}

.feature time {
    font-size:12px;
    color:#a5b1ba
}

.link-list,.notice-list,.article-list {
    list-style:none;
    margin:0;
    padding:0
}

.link-list li {
    display:flex;
    align-items:center;
    gap:14px;
    padding:10px 0;
    border-bottom:1px dashed var(--line)
}

.link-list li:before {
    content:"";
    width:5px;
    height:5px;
    background:#4e99ce;
    border-radius:50%;
    flex:none
}

.link-list li a {
    flex:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis
}

.link-list time {
    color:#9aa8b4;
    font-size:12px;
    white-space:nowrap
}

.notice-list li {
    display:flex;
    align-items:center;
    gap:15px;
    padding:11px 0;
    border-bottom:1px solid var(--line);
    min-height:67px
}

.date-badge {
    width:80px;
    text-align:center;
    color:var(--blue);
    border:1px solid #d5e7f4;
    flex:none;
    font-size:12px;
    padding:7px 2px
}

.notice-list li a {
    line-height:1.5;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden
}

.section-area {
    margin-top:55px
}

.section-title {
    text-align:center;
    margin-bottom:25px
}

.section-title small {
    font-size:12px;
    color:#5c9ccc;
    letter-spacing:4px
}

.section-title h2 {
    font-size:28px;
    color:var(--deep);
    margin:0
}

.section-title p {
    color:var(--muted);
    margin:0
}

.service-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px
}

.service-grid a {
    background:#f3f8fc;
    border:1px solid #e6f0f8;
    min-height:165px;
    text-align:center;
    padding:24px 12px;
    transition:.2s
}

.service-grid a:hover {
    background:#e4f2fc;
    transform:translateY(-3px)
}

.service-grid b {
    display:block;
    font-size:38px;
    color:var(--blue);
    line-height:1.2
}

.service-grid strong {
    display:block;
    font-size:17px;
    color:var(--deep);
    margin:9px 0 2px
}

.service-grid small {
    color:var(--muted)
}

.info-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:38px;
    margin-top:52px
}

.online {
    margin-top:48px;
    padding:30px 36px;
    background:linear-gradient(110deg,#084779,#0874b6);
    color:#fff;
    display:flex;
    gap:35px;
    align-items:center
}

.online>div:first-child {
    width:250px;
    flex:none
}

.online small {
    font-size:11px;
    letter-spacing:3px;
    color:#a5d7f5
}

.online h2 {
    font-size:27px;
    margin:0
}

.online p {
    margin:0;
    color:#c8e3f5;
    font-size:13px
}

.online-links {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:9px;
    flex:1
}

.online-links a {
    color:#fff;
    background:#ffffff1c;
    padding:8px 13px;
    font-size:13px
}

.online-links a:hover {
    background:#ffffff34
}

.site-footer {
    background:#123f67;
    color:#d1e0ee
}

.footer-inner {
    padding-top:32px;
    padding-bottom:30px;
    display:flex;
    justify-content:space-between;
    align-items:center
}

.footer-inner strong {
    font-size:19px;
    color:#fff
}

.footer-inner p {
    font-size:13px;
    margin:5px 0
}

.footer-inner>a {
    font-size:12px;
    color:#adc8dc
}

.page-banner {
    background:linear-gradient(110deg,#075395,#3c8fc5);
    color:#fff;
    padding:37px 0
}

.page-banner h1 {
    font-size:28px;
    margin:0
}

.page-banner p {
    margin:3px 0 0;
    color:#d5e9f8
}

.subpage {
    padding-top:19px;
    padding-bottom:65px;
    min-height:550px
}

.breadcrumb {
    font-size:13px;
    color:var(--muted);
    margin-bottom:20px
}

.content-layout {
    display:grid;
    grid-template-columns:230px 1fr;
    gap:35px
}

.sidebar {
    background:#f3f8fc;
    align-self:start;
    padding-bottom:14px
}

.sidebar h2 {
    font-size:20px;
    color:#fff;
    background:var(--blue);
    margin:0;
    padding:14px 22px
}

.sidebar a {
    display:flex;
    justify-content:space-between;
    padding:12px 22px;
    border-bottom:1px solid #e1ecf5
}

.sidebar a.active,.sidebar a:hover {
    color:var(--blue);
    background:#e7f2fa
}

.page-content {
    min-height:400px
}

.page-heading {
    border-bottom:2px solid var(--blue)
}

.page-heading h2 {
    font-size:24px;
    color:var(--deep);
    margin:0 0 12px
}

.article-list li {
    padding:15px 4px;
    border-bottom:1px dashed #d9e5ee;
    display:flex;
    gap:20px
}

.article-list li:before {
    content:"·";
    color:var(--blue);
    font-weight:700
}

.article-list a {
    flex:1
}

.article-list time {
    color:#9aa7b3;
    font-size:13px
}

.data-note {
    color:#a3afba;
    font-size:12px;
    margin-top:25px
}

.detail-content h1 {
    text-align:center;
    font-size:25px;
    color:var(--deep);
    line-height:1.5;
    margin:10px 0 15px
}

.article-meta {
    text-align:center;
    color:#9aa8b4;
    font-size:13px;
    padding-bottom:18px;
    border-bottom:1px solid var(--line)
}

.article-body {
    padding:25px 5px;
    color:#4b5864;
    font-size:16px;
    line-height:2.1
}

.article-body p {
    text-indent:2em;
    margin:0 0 17px
}

.back-link {
    color:var(--blue);
    font-size:14px
}

@media(max-width:800px) {
    .brand {
        height:85px
    }
    .brand-link strong {
        font-size:20px
    }
    .brand-link small,.brand-slogan {
        display:none
    }
    .brand-mark {
        width:48px;
        height:48px;
        font-size:24px
    }
    .nav-inner {
        overflow-x:auto;
        padding:0
    }
    .nav-inner a {
        white-space:nowrap;
        flex:none;
        padding:11px 15px;
        font-size:14px
    }
    .hero {
        height:330px
    }
    .hero-content {
        padding-top:45px
    }
    .hero h1 {
        font-size:32px
    }
    .hero-orbit {
        right:-350px
    }
    .news-grid,.info-grid {
        grid-template-columns:1fr;
        gap:28px
    }
    .service-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .online {
        display:block;
        padding:25px
    }
    .online>div:first-child {
        width:auto;
        margin-bottom:15px
    }
    .content-layout {
        grid-template-columns:1fr
    }
    .sidebar {
        display:none
    }
    .footer-inner {
        display:block
    }
    .page-banner {
        padding:26px 0
    }
}

@media(max-width:520px) {
    .topline span {
        display:none
    }
    .hero {
        height:290px
    }
    .hero h1 {
        font-size:27px
    }
    .hero p {
        font-size:13px
    }
    .feature {
        display:block
    }
    .feature-visual {
        width:100%;
        height:130px;
        min-height:0
    }
    .feature>div:last-child {
        padding-top:8px
    }
    .service-grid {
        gap:9px
    }
    .service-grid a {
        min-height:145px;
        padding:18px 6px
    }
    .service-grid strong {
        font-size:14px
    }
    .online-links {
        grid-template-columns:1fr
    }
    .article-list li {
        gap:8px
    }
    .article-list time {
        font-size:11px
    }
    .detail-content h1 {
        font-size:20px
    }
}

/* Homepage layout */

.think_page_trace_open {
    display:none!important
}

.ref-container {
    max-width:1140px;
    margin:0 auto
}

.site-header {
    background:#fff
}

.header-wrap {
    max-width:1140px;
    height:143px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px
}

.ref-logo {
    display:block;
    flex:none;
    width:595px;
    height:95px;
    background-image:url('/static/home/images/logo_new.png');
    background-repeat:no-repeat;
}

.header-tools {
    width:540px;
    align-self:center;
    padding-top:22px
}

.site-search {
    display:flex;
    height:36px;
    width:100%
}

.site-search input {
    flex:1;
    min-width:0;
    border:1px solid #d7d7d7;
    padding:4px 9px;
    outline-color:#198fd3
}

.site-search button {
    width:70px;
    border:0;
    background:#d80000;
    color:#fff;
    font-size:15px;
    cursor:pointer
}

.header-meta {
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    color: #8f8f8f;
    font-size: 14px;
    white-space: nowrap;
}

.header-meta input {
    box-sizing: border-box;
    width: 82px;
    min-width: 0;
    height: 27px;
    padding: 2px 5px;
    border: 1px solid #ddd;
    font-size: 14px;
}

.header-meta .mail-password {
    width: 100px;
}

.header-meta .meta-icon {
    display: block;
    flex: none;
    width: 24px;
    height: 24px;
    object-fit: contain;
    margin-left: 3px;
}

.login-pill {
    border: 0;
    border-radius: 14px;
    background: #1e9ade;
    color: #fff;
    padding: 0 16px;
    line-height: 28px;
    font-family: inherit;
    font-size: 14px;
    cursor: pointer;
}

.login-pill:hover {
    color:#fff;
    background:#0c78b8
}

.mobile-menu-toggle {
    display: none;
}

.main-nav {
    background:#188fdb;
    box-shadow:none
}

.main-nav .nav-inner {
    max-width:1140px;
    margin:auto;
    display:flex;
    align-items:stretch
}

.main-nav .nav-inner a {
    padding:16px 6px;
    font-size:16px;
    font-weight:400
}

.main-nav .nav-inner a.active,.main-nav .nav-inner a:hover {
    background:#087fc9
}

.ref-hero {
    height: 26.1vw;
    max-height: 501px;
    min-height: 250px;
    position: relative;
    overflow: hidden;
    background: #0d4c94;
}

.ref-hero>a {
    position:absolute;
    top:40%;
    color:#fff;
    font-size:52px;
    line-height:1;
    text-shadow:0 1px 3px #003e80
}

.ref-hero>a:hover {
    color:#fff
}

.hero-prev {
    left:1%
}

.hero-next {
    right:1%
}

.ref-news {
    background:linear-gradient(#fff,#f0f3ff);
    padding:29px 0 47px
}

.ref-news-layout {
    display:grid;
    grid-template-columns:530px 1fr;
    gap:18px;
    min-height:397px
}

.ref-news-photo {
    display: block;
    width: 530px;
    height: 397px;
    overflow: hidden;
}

.ref-tabs {
    display:flex;
    align-items:stretch;
    height:55px
}

.ref-tabs button {
    border:0;
    background:transparent;
    color:#555;
    padding:0 29px;
    font-size:15px;
    cursor:pointer
}

.ref-tabs button.active {
    background:#095a9d;
    color:#fff
}

.ref-brief-list {
    list-style:none;
    padding:15px 5px 0;
    margin:0
}

.ref-brief-list[hidden] {
    display:none
}

.ref-brief-list li {
    display:flex;
    align-items:center;
    gap:12px;
    padding:11px 0;
    color:#777;
    font-size:14px
}

.ref-brief-list li:before {
    content:"•";
    color:#095a9d
}

.ref-brief-list li a {
    flex:1;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis
}

.ref-brief-list time {
    color:#999;
    white-space:nowrap
}

.ref-services {
    padding:36px 0 40px;
    background:#fff
}

.ref-services-layout {
    display:flex;
    justify-content:space-between;
    align-items:flex-start
}

.hex-grid {
    width:660px;
    display:grid;
    grid-template-columns:repeat(6,100px);
    grid-template-rows:196px 196px;
    column-gap:10px;
    row-gap:12px;
    margin-left:35px
}

.hex-card {
    width:195px;
    height:196px;
    display:grid;
    place-items:center;
    background:#58a5e7;
    clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
    filter:drop-shadow(0 3px 2px #aaa)
}

.hex-card.h1 {
    grid-column:1/3;
    grid-row:1
}

.hex-card.h2 {
    grid-column:3/5;
    grid-row:1
}

.hex-card.h3 {
    grid-column:5/7;
    grid-row:1
}

.hex-card.h4 {
    grid-column:2/4;
    grid-row:2
}

.hex-card.h5 {
    grid-column:4/6;
    grid-row:2
}

.hex-inner {
    width:185px;
    height:186px;
    background:#fff;
    clip-path:inherit;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    text-align:center;
    color:#0963a5;
    line-height:1.15
}

.hex-inner b {
    font-size:48px;
    font-weight:400;
    height:62px
}

.hex-inner strong {
    font-size:20px;
    font-weight:400
}

.hex-card:hover .hex-inner {
    background:#edf8ff
}

.qr-block {
    display:flex;
    align-items:center;
    flex-direction:column;
    margin:46px 110px 0 0
}


.qr-block>span:last-child {
    display:block;
    border-radius:15px;
    background:#00a718;
    color:#fff;
    text-align:center;
    font-size:13px;
    width:170px;
    margin-top:3px
}

.ref-lower {
    background:#e5ebff;
    padding:30px 0 0
}

.party-banner {
    display: block;
    height: auto;
    margin-bottom: 28px;
}

.lower-white {
    background:#fff
}

.lower-columns {
    display:grid;
    grid-template-columns:1fr 320px;
    gap:42px;
    padding:15px 44px 40px
}

.lower-columns h2 {
    font-size:25px;
    text-align:center;
    color:#0b69b4;
    font-weight:400;
    margin:0 0 26px
}

.application-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px 26px
}

.app-card {
    display:flex;
    align-items:center;
    flex-direction:column;
    text-align:center;
    min-height:195px;
    box-shadow:8px 8px 18px #0000001f;
    background:#fff;
    color:#555;
    font-size:13px;
    line-height:1.35
}

.app-card:hover {
    transform:translateY(-3px)
}

.app-graphic {
    height:125px;
    width:100%;
    display:grid;
    place-items:center;
    color:#e2f6ff;
    font-size:75px;
    background:linear-gradient(135deg,#2eb5e2,#629cea)
}

.app-cyan .app-graphic {
    background:linear-gradient(135deg,#17b3d8,#63e1d7)
}

.app-card>span:last-child {
    padding:8px 3px
}


.partners {
    background:#dedede;
    text-align:center;
    padding:11px 30px 30px
}

.partners h2 {
    font-size:24px;
    font-weight:400;
    color:#4d4d4d;
    margin:0 0 19px;
    line-height:1.1
}

.partners h2 small {
    display:block;
    font-size:12px;
    color:#7e7e7e
}

.partners-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px 15px
}

.partners-grid a {
    box-sizing: border-box;
    height: 53px;
    padding: 5px 10px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
}

.partners-grid img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.partners-grid a:hover {
    background:#e9f6ff
}

.site-footer {
    background:#2d79ad;
    color:#fff;
    text-align:center
}

.site-footer .footer-inner {
    display: block;
    padding: 24px 10px 20px;
}

.site-footer .footer-inner p {
    margin: 8px 0;
    color: #fff;
    font-size: 16px;
    line-height: 1.45;
}

.site-footer .footer-inner a {
    color: #fff;
    text-decoration: none;
}

.site-footer .footer-inner a:hover {
    text-decoration: underline;
}

.site-footer .footer-support {
    margin-left: 12px;
}

.site-footer .footer-inner .footer-police {
    margin-top: 28px;
}

.footer-police a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.footer-police img {
    display: block;
    width: 18px;
    height: 18px;
}

@media(max-width:1190px) {
    .header-wrap,.ref-container {
        margin-left:20px;
        margin-right:20px
    }
    .header-wrap {
        height:110px
    }
    .ref-logo {
        width:440px;
        height:75px;
        background-size:1420px auto;
        background-position:-283px -17px
    }
    .header-tools {
        width:calc(100% - 460px)
    }
    .ref-news-layout {
        grid-template-columns:47% 1fr
    }
    .ref-news-photo {
        width:100%;
    }
    .hex-grid {
        margin-left:0;
        transform:scale(.85);
        transform-origin:top left;
        margin-right:-100px
    }
    .qr-block {
        margin-right:30px
    }
    .lower-columns {
        padding-left:25px;
        padding-right:25px;
        gap:20px
    }
}

@media (min-width: 1151px) and (max-width: 1190px) {
    .header-wrap {
        height: 143px;
        margin-left: 10px;
        margin-right: 10px;
    }
    .ref-logo {
        width: 595px;
        height: 95px;
        background-size: contain;
        background-position: left center;
    }
    .header-tools {
        width: 540px;
    }
}

@media(max-width:850px) {
    .header-wrap {
        height:auto;
        min-height:90px;
        padding:10px 0
    }
    .ref-logo {
        width:340px;
        height:65px;
        background-size:1100px auto;
        background-position:-219px -13px
    }
    .header-tools {
        width:45%
    }
    .header-meta {
        display:none
    }
    .main-nav .nav-inner {
        overflow-x:auto
    }
    .main-nav .nav-inner a {
        flex:none;
        white-space:nowrap;
        padding:12px 16px;
        font-size:14px
    }
    .ref-hero {
        min-height:210px
    }
    .ref-news-layout {
        display:block
    }
    .ref-news-photo {
        width:100%;
        height:260px;
    }
    .ref-news-content {
        margin-top:15px
    }
    .ref-brief-list li {
        padding:8px 0
    }
    .ref-services-layout {
        display:block
    }
    .hex-grid {
        margin:auto;
        transform:none
    }
    .qr-block {
        margin:15px auto 0
    }
    .lower-columns {
        grid-template-columns:1fr
    }
    .topic-area {
        display:none
    }
    .partners-grid {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:650px) {
    .header-wrap {
        margin:0 12px;
        display:block
    }
    .ref-logo {
        margin:auto;
        width:300px;
        background-size:970px auto;
        background-position:-196px -11px
    }
    .header-tools {
        width:100%;
        padding:0 0 8px
    }
    .site-search {
        height:28px
    }
    .site-search button {
        width:58px
    }
    .ref-hero {
        height:210px;
    }
    .ref-news {
        padding:15px 0
    }
    .ref-container {
        margin-left:12px;
        margin-right:12px
    }
    .ref-news-photo {
        height:190px;
    }
    .ref-tabs {
        height:42px
    }
    .ref-brief-list li {
        font-size:12px
    }
    .ref-brief-list time {
        font-size:11px
    }
    .ref-services {
        padding:20px 0
    }
    .hex-grid {
        width:330px;
        height:310px;
        grid-template-columns:repeat(6,50px);
        grid-template-rows:150px 150px;
        column-gap:4px;
        row-gap:5px
    }
    .hex-card {
        width:100px;
        height:145px
    }
    .hex-inner {
        width:94px;
        height:139px
    }
    .hex-inner b {
        font-size:30px;
        height:43px
    }
    .hex-inner strong {
        font-size:12px
    }
    .qr-block {
        display:none
    }
    .ref-lower {
        padding-top:15px
    }
    .party-banner {
        margin-bottom:15px
    }
    .lower-columns {
        padding:15px
    }
    .lower-columns h2 {
        font-size:20px;
        margin-bottom:12px
    }
    .application-grid {
        grid-template-columns:repeat(2,1fr);
        gap:12px
    }
    .app-card {
        min-height:140px;
        font-size:11px
    }
    .app-graphic {
        height:85px;
        font-size:52px
    }
    .partners {
        padding:15px
    }
    .partners-grid {
        gap:7px
    }
    .partners-grid a {
        font-size:12px;
        height:45px
    }
}

#think_page_trace_open {
    display:none!important
}

/* 本地原站素材 */


.ref-hero>button.hero-prev,.ref-hero>button.hero-next {
    position:absolute;
    top:40%;
    z-index:2;
    border:0;
    background:transparent;
    color:#fff;
    font-size:52px;
    line-height:1;
    text-shadow:0 1px 3px #003e80;
    cursor:pointer
}

.ref-hero>button.hero-prev {
    left:1%
}

.ref-hero>button.hero-next {
    right:1%
}

.hero-dots {
    position:absolute;
    bottom:13px;
    left:50%;
    transform:translateX(-50%);
    display:flex;
    gap:8px;
    z-index:2
}

.hero-dots button {
    width:9px;
    height:9px;
    border:0;
    border-radius:50%;
    padding:0;
    background:#ffffffa6;
    cursor:pointer
}

.hero-dots button.active {
    background:#fff
}

.ref-news-photo {
    position:relative
}





.app-card .app-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 340 / 211;
    object-fit: contain;
}

@media(max-width:650px) {
}

/* Homepage image slots: replace the src attributes in home.html with final assets. */

.ref-logo {
    background-size: contain;
    background-position: left center;
}

.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .4s ease;
}

.hero-slide.active {
    opacity: 1;
}

.hero-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-slide-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #07599f;
    font-size: clamp(24px, 4vw, 54px);
    font-weight: 700;
    white-space: nowrap;
}

.ref-news-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.qr-block img {
    display: block;
    width: 155px;
    height: 155px;
    object-fit: contain;
}

.party-banner img {
    display: block;
    width: 100%;
    height: auto;
}

.topic-carousel {
    position: relative;
    width: 320px;
    aspect-ratio: 2 / 3;
    overflow: hidden;
    background: #b40012;
}

.topic-card {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s ease;
}

.topic-card.active {
    opacity: 1;
    pointer-events: auto;
}

.topic-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.topic-card-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 24px;
    color: #fff;
    font-size: 28px;
    text-align: center;
}

.topic-dots {
    position: absolute;
    z-index: 2;
    bottom: 12px;
    left: 50%;
    display: flex;
    gap: 7px;
    transform: translateX(-50%);
}

.topic-dots button {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #ffffffa6;
    cursor: pointer;
}

.topic-dots button.active {
    background: #fff;
}

@media (max-width: 650px) {
    .ref-hero {
        height: 210px;
    }

    .hero-slide-title {
        white-space: normal;
        text-align: center;
    }

    .party-banner {
        margin-bottom: 15px;
    }
}


/* Inner pages with section-specific secondary navigation. */

.page-banner {
    position: relative;
    height: 180px;
    padding: 0;
    overflow: hidden;
    background: linear-gradient(110deg, #d3eaff 0%, #5ca7e1 45%, #176db3 100%);
}

.page-banner-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-banner .wrap {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.page-banner-title {
    color: #fff;
    text-align: right;
}

.page-banner-title strong,
.page-banner-title span {
    display: block;
}

.page-banner-title strong {
    font-family: Impact, "Arial Narrow", sans-serif;
    font-size: clamp(26px, 3.3vw, 46px);
    line-height: 1.1;
}

.page-banner-title span {
    font-size: 29px;
    font-weight: 300;
}

.page-banner-service {
    background: linear-gradient(105deg, #c1def5 0%, #548fca 45%, #075ba6 100%);
}

.page-banner-policy {
    background: linear-gradient(110deg, #bb0007, #ef301f 52%, #a5000a);
}

.page-banner-about {
    background: linear-gradient(110deg, #9bd0f7, #4aa5e5 53%, #b2daf5);
}

.page-banner-news,
.page-banner-notice,
.page-banner-science {
    background: linear-gradient(110deg, #b7d9f1, #3992d3 55%, #075a9c);
}

.subpage {
    max-width: 1140px;
    padding: 32px 0 65px;
}

.content-layout {
    grid-template-columns: 273px minmax(0, 1fr);
    gap: 16px;
}

.content-layout.no-sidebar {
    grid-template-columns: minmax(0, 1fr);
}

.sidebar {
    background: #e8f0fd;
    border-radius: 5px;
    padding-bottom: 16px;
    overflow: hidden;
}

.sidebar h2 {
    margin: 0;
    padding: 12px 10px;
    background: transparent;
    color: #168cdd;
    font-size: 17px;
    text-align: center;
}

.sidebar a {
    display: block;
    padding: 12px 10px;
    border: 0;
    color: #1b2e3d;
    text-align: center;
    font-size: 16px;
}

.sidebar a.active,
.sidebar a:hover {
    background: #168fe0;
    color: #fff;
    border-radius: 4px;
}

.breadcrumb {
    padding: 8px 15px 10px;
    margin-bottom: 18px;
    border-bottom: 1px solid #ccc;
    color: #929292;
    font-size: 15px;
}

.article-list li {
    min-width: 0;
    padding: 8px 6px;
    border: 0;
    align-items: center;
    gap: 14px;
    font-size: 16px;
}

.article-list li:before {
    content: "•";
    font-size: 18px;
}

.article-list a {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.article-list time {
    flex: none;
    color: #999;
    font-size: 16px;
    white-space: nowrap;
}

.about-content {
    padding: 10px 18px 30px;
    line-height: 1.95;
    font-size: 16px;
}

.about-content h1 {
    margin: 0 0 24px;
    font-size: 25px;
    font-weight: 400;
    text-align: center;
    letter-spacing: 5px;
}

.about-content p {
    margin: 0 0 12px;
    text-indent: 2em;
}

.empty-results {
    padding: 20px 6px;
    color: #8898a6;
}

@media (max-width: 800px) {
    .subpage {
        padding-right: 12px;
        padding-left: 12px;
    }

    .content-layout,
    .content-layout.no-sidebar {
        grid-template-columns: 1fr;
    }

    .sidebar {
        display: block;
    }

    .page-banner {
        height: 145px;
    }

    .page-banner-title span {
        font-size: 22px;
    }
}

@media (max-width: 520px) {
    .sidebar a {
        font-size: 14px;
    }

    .article-list li {
        gap: 7px;
        font-size: 13px;
    }

    .article-list time {
        font-size: 12px;
    }
}

/* Backend article pagination and rich text. */

.portal-pagination {
    margin: 24px 0 0;
}

.portal-pagination .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    padding: 0;
    list-style: none;
}

.portal-pagination .pagination li a,
.portal-pagination .pagination li span {
    display: block;
    min-width: 34px;
    padding: 5px 10px;
    border: 1px solid #d9e6f2;
    color: #187fc4;
    text-align: center;
}

.portal-pagination .pagination li.active span {
    border-color: #168fe0;
    background: #168fe0;
    color: #fff;
}

.portal-pagination .pagination li.disabled span {
    color: #aab8c3;
}

.article-body img,
.article-body video,
.article-body iframe {
    max-width: 100%;
}

.article-body img,
.article-body video {
    height: auto;
}

.article-body table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}

.hero-slide-link {
    display: block;
    width: 100%;
    height: 100%;
}


/* Homepage sections driven by backend content. */
.news-photo-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s ease;
}

.news-photo-slide.active {
    opacity: 1;
    pointer-events: auto;
}

.news-photo-dots,
.middle-ad-dots {
    position: absolute;
    z-index: 2;
    bottom: 12px;
    left: 50%;
    display: flex;
    gap: 7px;
    transform: translateX(-50%);
}

.news-photo-dots button,
.middle-ad-dots button {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #ffffffa6;
    cursor: pointer;
}

.news-photo-dots button.active,
.middle-ad-dots button.active {
    background: #fff;
}

.news-photo-empty {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: #6992b4;
    background: #e8f1fa;
}

.hex-card.has-image {
    background: none;
    clip-path: none;
    filter: none;
}

.hex-card.has-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.party-banner {
    position: relative;
    display: grid;
}

.middle-ad-slide {
    grid-area: 1 / 1;
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s ease;
}

.middle-ad-slide.active {
    opacity: 1;
    pointer-events: auto;
}

.middle-ad-slide a {
    display: block;
}

.middle-ad-slide img {
    display: block;
    width: 100%;
    height: auto;
}


.news-photo-slide {
    background: linear-gradient(125deg, #dbeefa, #4a96cf);
}

.news-photo-slide img[hidden],
.news-photo-fallback[hidden] {
    display: none;
}

.news-photo-fallback {
    display: flex;
    width: 100%;
    height: 100%;
    padding: 28px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    color: #fff;
    font-size: 22px;
    line-height: 1.5;
    text-align: center;
}

@media (min-width: 651px) {
    .hex-grid {
        grid-template-columns: repeat(6, 110px);
        column-gap: 0;
    }

    .hex-card.has-image {
        width: 175px;
        height: 196px;
        justify-self: center;
    }
}

/* Phone header, navigation drawer, and single-column article pages. */
@media (max-width: 650px) {
    .site-header {
        position: relative;
    }

    .mobile-menu-toggle {
        position: fixed;
        z-index: 1001;
        top: 8px;
        right: 17px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        width: 29px;
        height: 25px;
        padding: 2px 3px;
        border: 0;
        background: transparent;
        cursor: pointer;
    }

    .mobile-menu-toggle span {
        display: block;
        width: 21px;
        height: 2px;
        background: #bfc3c6;
    }

    body.mobile-menu-open .mobile-menu-toggle span {
        background: #fff;
    }

    .header-wrap {
        box-sizing: border-box;
        height: auto;
        min-height: 0;
        margin: 0;
        padding: 42px 14px 32px;
        display: block;
    }

    .ref-logo {
        width: 100%;
        max-width: 360px;
        height: 48px;
        margin: 0 auto 20px;
        background-size: contain;
        background-position: center;
        transform: translateY(4px);
    }

    .header-tools {
        width: 100%;
        padding: 0;
    }

    .site-search {
        height: 34px;
    }

    .site-search button {
        width: 67px;
        font-size: 16px;
    }

    .header-meta {
        display: grid;
        grid-template-columns: 31px minmax(0, 1fr) auto minmax(0, 1.3fr) 58px;
        grid-template-rows: 21px 27px;
        align-items: center;
        column-gap: 4px;
        row-gap: 7px;
        width: 100%;
        height: auto;
        margin-top: 7px;
        font-size: 14px;
    }

    .header-meta .meta-icon {
        width: 21px;
        height: 21px;
        margin: 0;
    }

    .header-meta .meta-date-icon {
        grid-column: 1 / -1;
        grid-row: 1;
        justify-self: center;
    }

    .header-meta .header-date {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
    }

    .header-meta .meta-mail-icon {
        grid-column: 1;
        grid-row: 2;
        margin-left: 5px;
    }

    .header-meta .mail-user {
        grid-column: 2;
        grid-row: 2;
    }

    .header-meta .mail-domain {
        grid-column: 3;
        grid-row: 2;
    }

    .header-meta .mail-password {
        grid-column: 4;
        grid-row: 2;
    }

    .header-meta .login-pill {
        grid-column: 5;
        grid-row: 2;
        justify-self: end;
        width: 58px;
        margin-right: 4px;
        padding: 0;
        line-height: 27px;
    }

    .header-meta input:not([type="hidden"]),
    .header-meta .mail-password {
        width: 100%;
        height: 26px;
    }

    .main-nav {
        display: none;
    }

    body.mobile-menu-open {
        overflow: hidden;
    }

    body.mobile-menu-open .main-nav {
        position: fixed;
        z-index: 1000;
        top: 0;
        left: 0;
        display: block;
        width: 100%;
        height: min(436px, 100svh);
        background: #188fdb;
    }

    body.mobile-menu-open .main-nav .nav-inner {
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        height: 100%;
        padding: 22px 0 0;
        overflow: auto;
    }

    body.mobile-menu-open .main-nav .nav-inner a {
        box-sizing: border-box;
        display: flex;
        flex: 1;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 52px;
        padding: 0;
        color: #fff;
        font-size: 20px;
        text-align: center;
    }

    body.mobile-menu-open .main-nav .nav-inner a.active,
    body.mobile-menu-open .main-nav .nav-inner a:hover {
        background: transparent;
    }

    .page-banner {
        height: auto;
        padding: 0;
    }

    .page-banner-image {
        position: static;
        display: block;
        width: 100%;
        height: auto;
    }

    .page-banner .wrap {
        display: none;
    }

    .subpage {
        padding: 8px 6px 50px;
    }

    .content-layout,
    .content-layout.no-sidebar {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .sidebar {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 91px));
        justify-content: center;
        align-items: stretch;
        column-gap: 6px;
        row-gap: 3px;
        padding: 8px 11px 14px;
    }

    .sidebar h2 {
        grid-column: 1 / -1;
        padding: 4px 0 3px;
        font-size: 18px;
    }

    .sidebar a {
        box-sizing: border-box;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 0;
        min-height: 45px;
        padding: 8px 2px;
        font-size: 16px;
        line-height: 1.25;
    }

    body.mobile-menu-open .sidebar {
        visibility: hidden;
    }

    .breadcrumb {
        padding: 6px 15px 5px;
        margin-bottom: 6px;
    }

    .article-list li {
        gap: 8px;
        padding: 6px 16px 6px 6px;
        font-size: 16px;
    }

    .article-list time {
        font-size: 16px;
    }
}
