/* Public portal presentation. Data access and access rules live in the existing PHP application. */

:root {
    --ink:#112d3b;
    --muted:#526875;
    --teal:#087d76;
    --teal-dark:#055c58;
    --line:#dce5e8;
    --wash:#f3f7f7;
    --lime:#deeea9;
    --radius:16px
}

html {
    scroll-behavior:smooth
}

body.portal {
    margin:0;
    background:#fff;
    color:var(--ink);
    font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    -webkit-font-smoothing:antialiased
}

body.portal * {
    box-sizing:border-box
}

.portal a {
    color:var(--teal)
}

.portal a:hover {
    color:var(--teal-dark)
}

.portal a:focus-visible,.portal button:focus-visible,.portal summary:focus-visible,.portal input:focus-visible,.portal select:focus-visible,.portal textarea:focus-visible {
    outline:3px solid #c47b09;
    outline-offset:4px
}

.portal h1,.portal h2,.portal h3,.portal p {
    margin-top:0
}

.portal h1,.portal h2,.portal h3 {
    color:var(--ink);
    line-height:1.2;
    letter-spacing:-.035em;
    font-weight:730
}

.portal h1 {
    font-size:clamp(32px,4.8vw,58px);
    overflow-wrap:anywhere
}

.portal h2 {
    font-size:clamp(24px,3vw,34px)
}

.portal h3 {
    font-size:21px
}

.portal p {
    color:var(--muted)
}

.portal .page-width {
    width:min(1180px,calc(100% - 64px));
    margin-inline:auto
}

.portal .container {
    max-width:1180px;
    width:100%;
    padding-inline:24px
}

.portal .skip-link {
    position:absolute;
    z-index:20;
    top:-100px;
    left:16px;
    padding:12px 20px;
    background:var(--ink);
    color:#fff
}

.portal .skip-link:focus {
    top:12px
}

.portal .local-notice {
    background:#eef3e6;
    color:#455735;
    font-size:12px;
    padding:7px 0;
    border-bottom:1px solid #dce6cf
}

.portal .site-header {
    background:#fff;
    border-bottom:1px solid var(--line)
}

.portal .header-top {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    padding-block:24px
}

.portal .wordmark {
    display:inline-flex;
    flex-direction:column;
    align-items:flex-start;
    color:var(--ink);
    font-size:30px;
    font-weight:800;
    text-decoration:none;
    line-height:1.05;
    letter-spacing:-1.1px
}

.portal .brand-name {
    white-space:nowrap
}

.portal .brand-accent {
    color:var(--teal)
}

.portal .wordmark small {
    display:block;
    font-size:9px;
    font-weight:600;
    letter-spacing:1.7px;
    text-transform:uppercase;
    margin-top:8px;
    color:var(--muted)
}

.portal .header-actions {
    display:flex;
    align-items:center;
    gap:24px
}

.portal .quiet-link {
    font-size:14px;
    color:var(--ink);
    font-weight:600;
    white-space:nowrap
}

.portal .user-name {
    font-size:13px;
    max-width:190px;
    overflow-wrap:anywhere
}

.portal .main-nav {
    display:flex;
    align-items:center;
    gap:32px;
    flex-wrap:wrap;
    min-height:55px
}

.portal .main-nav a {
    padding:14px 0;
    color:var(--muted);
    text-decoration:none;
    font-size:14px;
    font-weight:650;
    border-bottom:3px solid transparent
}

.portal .main-nav a[aria-current=page] {
    color:var(--teal);
    border-color:var(--teal)
}

.portal .main-nav a:hover {
    color:var(--teal)
}

.portal .main-nav .nav-end {
    margin-left:auto;
    font-weight:500
}

.portal .portal-button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:22px;
    min-height:50px;
    padding:12px 24px;
    border:1px solid transparent;
    border-radius:9px;
    background:var(--teal);
    color:#fff;
    font-family:inherit;
    font-size:15px;
    font-weight:650;
    line-height:1.4;
    text-decoration:none;
    cursor:pointer;
    white-space:nowrap;
    transition:background .15s
}

.portal .portal-button:hover {
    background:var(--teal-dark);
    color:#fff
}

.portal .portal-button.small {
    min-height:43px;
    padding:10px 17px;
    font-size:13px;
    gap:24px
}

.portal .portal-button.secondary {
    background:#fff;
    color:var(--teal);
    border-color:var(--line)
}

.portal .portal-button.secondary:hover {
    border-color:var(--teal)
}

.portal .portal-button.light {
    background:var(--lime);
    color:var(--ink)
}

.portal .portal-button.light:hover {
    background:#c9e18a
}

.portal .eyebrow {
    font-size:11px;
    letter-spacing:1.8px;
    text-transform:uppercase;
    font-weight:750;
    color:var(--teal);
    margin-bottom:17px
}

.portal .hero {
    background:linear-gradient(110deg,#f2f7f5 0%,#f7f9f8 72%,#eef3ef 100%);
    border-bottom:1px solid var(--line)
}

.portal .hero-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    gap:70px;
    align-items:center;
    padding-block:64px
}

.portal .hero h1 {
    font-size:clamp(38px,4.8vw,61px);
    line-height:1.08;
    margin-bottom:24px;
    letter-spacing:-2.7px
}

.portal .hero h1 em {
    color:var(--teal);
    font-style:normal
}

.portal .hero-intro {
    font-size:17px;
    max-width:590px;
    margin-bottom:29px
}

.portal .search-box {
    max-width:720px;
    margin:0
}

.portal .search-box label {
    font-size:13px;
    font-weight:700;
    display:block;
    margin-bottom:8px;
    color:var(--ink)
}

.portal .search-controls {
    display:flex;
    padding:6px;
    background:#fff;
    border:1px solid #bfcfd1;
    border-radius:12px;
    box-shadow:0 5px 15px #112d3b06;
    gap:6px
}

.portal .search-type-switch {
    display:flex;
    gap:4px;
    width:fit-content;
    max-width:100%;
    padding:4px;
    margin:0 0 16px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#e9f0ef
}

.portal .search-type-switch label {
    position:relative;
    margin:0;
    font-size:13px;
    font-weight:650;
    cursor:pointer
}

.portal .search-type-switch input {
    position:absolute;
    width:1px;
    height:1px;
    opacity:0
}

.portal .search-type-switch span {
    display:flex;
    align-items:center;
    min-height:44px;
    padding:8px 14px;
    border:1px solid transparent;
    border-radius:7px;
    color:var(--muted)
}

.portal .search-type-switch input:checked + span {
    background:#fff;
    border-color:#bfcfd1;
    color:var(--teal)
}

.portal .search-type-switch input:focus-visible + span {
    outline:3px solid var(--teal);
    outline-offset:2px
}

.portal .search-controls input {
    width:100%;
    min-width:0;
    border:0;
    border-radius:7px;
    background:#fff;
    color:var(--ink);
    padding:10px 13px;
    font:inherit;
    height:auto;
    outline-offset:0;
    box-shadow:none
}

.portal .search-controls input::placeholder {
    color:#71838b;
    font-size:14px
}

.portal .hero-links {
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin-top:18px;
    font-size:12px
}

.portal .hero-links span {
    color:var(--muted)
}

.portal .hero-links a {
    font-weight:650
}

.portal .hero-aside {
    border-radius:var(--radius);
    background:var(--ink);
    padding:30px;
    color:#fff;
    position:relative;
    overflow:hidden;
    box-shadow:0 16px 30px #112d3b0d
}

.portal .hero-aside h2 {
    font-size:29px;
    color:#fff;
    margin-bottom:15px
}

.portal .hero-aside .eyebrow {
    color:var(--lime);
    font-size:10px;
    margin-top:25px;
    letter-spacing:1.2px
}

.portal .hero-aside p {
    color:#c5d6da;
    font-size:14px
}

.portal .hero-aside small {
    display:block;
    color:#b9d0d3;
    font-size:11px;
    margin-top:16px;
    line-height:1.6
}

.portal .aside-symbol {
    display:grid;
    place-items:center;
    background:#294752;
    border-radius:50%;
    width:44px;
    height:44px;
    font-size:27px;
    color:var(--lime)
}

.portal .hero-aside .portal-button {
    width:100%;
    font-size:13px;
    padding-inline:16px
}

.portal .category-section {
    padding-block:43px 24px
}

.portal .section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:28px
}

.portal .section-heading .eyebrow {
    margin-bottom:10px
}

.portal .section-heading h2 {
    margin:0
}

.portal .text-link {
    font-size:13px;
    font-weight:700;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:16px;
    min-height:44px
}

.portal .category-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px
}

.portal .category-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    border:1px solid var(--line);
    border-radius:10px;
    padding:18px;
    color:var(--ink);
    font-size:14px;
    font-weight:650;
    text-decoration:none;
    overflow-wrap:anywhere
}

.portal .category-link:hover {
    background:var(--wash);
    border-color:var(--teal)
}

.portal .category-link span:last-child {
    color:var(--teal);
    font-size:20px
}

.portal .region-picker {
    border-top:1px solid var(--line);
    margin-top:25px;
    padding-top:17px;
    font-size:13px
}

.portal .region-picker summary {
    cursor:pointer;
    min-height:44px;
    color:var(--muted);
    font-weight:650
}

.portal .region-links {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    padding:12px 0 24px
}

.portal .region-links a {
    padding:5px 0;
    min-height:34px
}

.portal .section-tint {
    background:var(--wash)
}

.portal .section-space {
    padding-block:48px
}

.portal .results-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px
}

.portal .result-card {
    min-width:0;
    padding:24px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    display:flex;
    flex-direction:column;
    transition:border-color .15s,box-shadow .15s
}

.portal .result-card:hover {
    border-color:#8dbab4;
    box-shadow:0 8px 25px #112d3b08
}

.portal .result-meta {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:23px;
    font-size:11px;
    color:var(--muted);
    flex-wrap:wrap
}

.portal .type-badge {
    display:inline-flex;
    align-items:center;
    gap:7px;
    border-radius:5px;
    padding:5px 9px;
    font-size:10px;
    font-weight:750;
    letter-spacing:.3px;
    background:#e5f2ef;
    color:#12665c
}

.portal .type-badge:before {
    content:"";
    width:5px;
    height:5px;
    border-radius:50%;
    background:currentColor
}

.portal .type-badge.offer {
    background:#f0f3df;
    color:#566622
}

.portal .type-badge.contract {
    background:#eaf0fa;
    color:#395d8e
}

.portal .result-card h3 {
    font-size:19px;
    line-height:1.45;
    font-weight:650;
    letter-spacing:-.4px;
    margin-bottom:22px;
    overflow-wrap:anywhere
}

.portal .result-card h3 a {
    color:var(--ink);
    text-decoration:none
}

.portal .result-card h3 a:hover {
    color:var(--teal);
    text-decoration:underline;
    text-underline-offset:3px
}

.portal .result-footer {
    display:flex;
    justify-content:space-between;
    gap:10px;
    border-top:1px solid #edf1f2;
    padding-top:16px;
    margin-top:auto;
    font-size:10px;
    color:var(--muted);
    flex-wrap:wrap
}

.portal .result-footer span:last-child {
    font-weight:750;
    color:var(--teal)
}

.portal .join-strip {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    padding-block:45px
}

.portal .join-strip h2 {
    margin-bottom:0;
    font-size:30px
}

.portal .join-strip .eyebrow {
    margin-bottom:10px
}

.portal .page-heading {
    padding-block:28px 36px;
    background:var(--wash);
    border-bottom:1px solid var(--line)
}

.portal .page-heading h1 {
    font-size:clamp(32px,4vw,47px);
    margin-bottom:16px
}

.portal .page-heading p:not(.eyebrow) {
    font-size:16px;
    max-width:700px
}

.portal .page-heading .search-box {
    margin-top:25px;
    max-width:650px
}

.portal .breadcrumbs {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    color:var(--muted);
    font-size:11px;
    margin-bottom:28px;
    align-items:center;
    min-height:20px
}

.portal .breadcrumbs a {
    color:var(--muted);
    text-decoration:none
}

.portal .breadcrumbs a:hover {
    text-decoration:underline
}

.portal .listing-bar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin-bottom:24px;
    flex-wrap:wrap
}

.portal .listing-bar h2 {
    font-size:22px;
    margin-bottom:0
}

.portal .listing-bar>span {
    font-size:12px;
    color:var(--muted)
}

.portal .query-label {
    font-weight:500;
    overflow-wrap:anywhere
}

.portal .filter-links {
    display:flex;
    gap:7px;
    flex-wrap:wrap
}

.portal .filter-links a {
    font-size:12px;
    text-decoration:none;
    padding:10px 16px;
    border:1px solid var(--line);
    border-radius:7px;
    color:var(--muted);
    min-height:40px
}

.portal .filter-links a[aria-current=page] {
    background:var(--teal);
    color:#fff;
    border-color:var(--teal)
}

.portal .empty-state {
    text-align:center;
    background:var(--wash);
    border:1px dashed #bcced0;
    border-radius:var(--radius);
    padding:48px 24px
}

.portal .empty-state h2 {
    font-size:26px
}

.portal .empty-state p {
    font-size:15px
}

.portal .empty-icon {
    display:block;
    font-size:42px;
    line-height:1;
    margin-bottom:17px;
    color:var(--teal)
}

.portal .pagination-wrap {
    margin-top:32px;
    display:flex;
    justify-content:center
}

.portal .pagination-wrap .pbShowed {
    font-size:12px;
    color:var(--muted);
    float:none;
    margin:0 0 10px
}

.portal .pagination-wrap .pbPages {
    float:none;
    font-size:12px
}

.portal .pagination-wrap a,.portal .pagination-wrap .pbPages span {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:40px;
    min-height:40px;
    padding:7px 12px;
    border:1px solid var(--line);
    border-radius:7px;
    margin:4px;
    color:var(--teal);
    text-decoration:none
}

.portal .pagination-wrap .pbPages span {
    background:var(--teal);
    color:#fff
}

.portal .pagination-wrap {
    flex-direction:column;
    align-items:center
}

.portal .detail-heading h1 {
    max-width:950px;
    margin-block:18px 22px
}

.portal .detail-dates {
    display:flex;
    flex-wrap:wrap;
    gap:12px 30px;
    font-size:12px;
    color:var(--muted)
}

.portal .detail-dates time {
    font-weight:650;
    color:var(--ink)
}

.portal .detail-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:60px;
    align-items:start
}

.portal .detail-grid h2 {
    font-size:27px;
    margin-bottom:24px
}

.portal .entry-content {
    font-size:17px;
    line-height:1.9;
    overflow-wrap:anywhere;
    color:#344e5a
}

.portal .contact-panel {
    background:var(--wash);
    border:1px solid var(--line);
    padding:28px;
    border-radius:var(--radius)
}

.portal .contact-panel .eyebrow {
    font-size:10px;
    letter-spacing:1.2px
}

.portal .contact-list {
    margin:0
}

.portal .contact-list dt {
    font-size:11px;
    color:var(--muted);
    font-weight:500;
    margin-top:17px
}

.portal .contact-list dd {
    margin:0;
    font-size:14px;
    font-weight:600;
    overflow-wrap:anywhere
}

.portal .contact-list small {
    display:block;
    font-size:11px;
    font-weight:400;
    color:var(--muted)
}

.portal .attachment-section {
    border-top:1px solid var(--line);
    margin-top:32px;
    padding-top:30px
}

.portal .attachment-section h2 {
    font-size:23px
}

.portal .access-panel {
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:36px;
    background:#fff
}

.portal .access-icon {
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    background:#e3f2ef;
    border-radius:10px;
    color:var(--teal);
    font-size:25px;
    margin-bottom:24px
}

.portal .access-panel p {
    max-width:570px;
    font-size:15px
}

.portal .access-panel .text-link {
    margin-top:20px
}

.portal .login-fields {
    display:grid;
    gap:15px;
    margin-top:25px;
    max-width:420px
}

.portal .login-fields label {
    font-size:12px;
    display:block;
    margin-bottom:6px
}

.portal .login-fields input:not([type=hidden]) {
    width:100%;
    border:1px solid #bdced1;
    border-radius:7px;
    min-height:46px;
    padding:10px;
    font:inherit;
    box-shadow:none
}

.portal .login-fields input.portal-button {
    background:var(--teal);
    color:#fff;
    border:0
}

.portal .detail-note {
    padding-top:15px
}

.portal .detail-note h2 {
    font-size:26px;
    line-height:1.35
}

.portal .detail-note p {
    font-size:14px
}

.portal .form-errors {
    background:#fff0ee;
    color:#8e3022;
    border:1px solid #e7b7ae;
    border-radius:8px;
    padding:14px 16px 14px 32px
}

.portal .flashes:empty {
    display:none
}

.portal .portal-flash {
    border:1px solid #cee5d9;
    border-radius:8px;
    padding:12px 18px;
    margin-block:16px;
    background:#eef8f2
}

.portal .portal-flash.alert-danger {
    border-color:#e7b7ae;
    background:#fff0ee;
    color:#8e3022
}

.portal .site-footer {
    background:#102c38;
    color:#fff;
    padding-top:48px
}

.portal .footer-grid {
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1.3fr;
    gap:44px;
    padding-bottom:40px
}

.portal .footer-brand {
    font-size:24px;
    font-weight:750;
    letter-spacing:-1px;
    color:#fff;
    display:inline-block;
    margin-bottom:15px;
    text-decoration:none
}

.portal .site-footer h2 {
    font-size:13px;
    letter-spacing:0;
    color:#fff;
    margin:8px 0 20px
}

.portal .site-footer p {
    font-size:12px;
    color:#b9cdd3;
    line-height:1.9
}

.portal .site-footer nav a {
    display:block;
    font-size:12px;
    color:#c2d3d8;
    text-decoration:none;
    margin-bottom:12px
}

.portal .site-footer a:hover {
    color:#e1f5c2
}

.portal .footer-bottom {
    border-top:1px solid #31505d;
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-block:20px;
    font-size:10px;
    color:#b8cbd0
}

.portal .pageLogin {
    width:min(100%,440px);
    margin:auto
}

.portal main>.spacer-top,.portal main>.spacer-bottom {
    height:24px
}

.portal input,.portal select,.portal textarea {
    max-width:100%
}

@media(min-width:1400px) {
    .portal .hero-grid {
        padding-block:74px
    }

}

@media(max-width:1000px) {
    .portal .hero-grid {
        gap:35px;
        grid-template-columns:minmax(0,1fr) 280px
    }

    .portal .results-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .portal .category-grid,.portal .region-links {
        grid-template-columns:repeat(3,minmax(0,1fr))
    }

    .portal .detail-grid {
        grid-template-columns:minmax(0,1fr) 290px;
        gap:30px
    }

    .portal .footer-grid {
        gap:25px
    }

    .portal .main-nav {
        gap:24px
    }

}

@media(max-width:760px) {
    .portal .page-width {
        width:calc(100% - 36px)
    }

    .portal .header-top {
        gap:16px;
        flex-wrap:wrap;
        padding-block:19px
    }

    .portal .header-actions {
        gap:18px
    }

    .portal .wordmark {
        font-size:26px
    }

    .portal .main-nav {
        gap:20px;
        flex-wrap:nowrap;
        overflow-x:auto;
        white-space:nowrap
    }

    .portal .main-nav .nav-end {
        display:none
    }

    .portal .main-nav a {
        min-height:50px;
        font-size:13px
    }

    .portal .hero-grid {
        grid-template-columns:1fr;
        gap:27px;
        padding-block:38px
    }

    .portal .hero h1 {
        font-size:43px;
        letter-spacing:-1.8px
    }

    .portal .hero-intro {
        font-size:16px
    }

    .portal .hero-aside {
        padding:24px;
        display:grid;
        grid-template-columns:1fr auto;
        gap:0 20px
    }

    .portal .hero-aside .aside-symbol,.portal .hero-aside small {
        display:none
    }

    .portal .hero-aside .eyebrow,.portal .hero-aside h2,.portal .hero-aside p {
        grid-column:1
    }

    .portal .hero-aside .eyebrow {
        margin-top:0
    }

    .portal .hero-aside h2 {
        font-size:25px
    }

    .portal .hero-aside .portal-button {
        grid-column:2;
        grid-row:1/4;
        align-self:center;
        width:auto
    }

    .portal .category-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .portal .region-links {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .portal .section-heading {
        align-items:start;
        flex-direction:column;
        gap:7px
    }

    .portal .section-space {
        padding-block:32px
    }

    .portal .result-card {
        padding:20px
    }

    .portal .detail-grid {
        grid-template-columns:1fr;
        gap:28px
    }

    .portal .contact-panel {
        max-width:none
    }

    .portal .detail-note {
        padding:0 12px
    }

    .portal .access-panel {
        padding:26px
    }

    .portal .footer-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:25px
    }

    .portal .join-strip {
        padding-block:32px;
        align-items:start;
        flex-direction:column
    }

    .portal .page-heading {
        padding-block:22px 30px
    }

    .portal .breadcrumbs {
        margin-bottom:22px
    }

    .portal .local-notice {
        font-size:10px
    }

    .portal .user-name {
        display:none
    }

}

@media(max-width:480px) {
    .portal .header-top {
        gap:20px
    }

    .portal .header-actions {
        width:100%;
        justify-content:space-between
    }

    .portal .header-actions .small {
        flex:0 1 auto
    }

    .portal .hero h1 {
        font-size:37px
    }

    .portal .search-controls {
        flex-wrap:wrap
    }

    .portal .search-controls input {
        min-height:46px
    }

    .portal .search-controls button {
        width:100%
    }

    .portal .hero-links {
        gap:10px 16px
    }

    .portal .hero-aside {
        display:block
    }

    .portal .hero-aside .portal-button {
        display:flex;
        width:100%;
        margin-top:20px
    }

    .portal .results-grid {
        grid-template-columns:1fr
    }

    .portal .category-grid {
        grid-template-columns:1fr
    }

    .portal .region-links {
        grid-template-columns:1fr
    }

    .portal .result-card h3 {
        font-size:20px
    }

    .portal .result-meta {
        margin-bottom:18px
    }

    .portal .listing-bar {
        align-items:start;
        flex-direction:column
    }

    .portal .footer-grid {
        gap:28px 18px
    }

    .portal .footer-grid>div:first-child,.portal .footer-grid>div:last-child {
        grid-column:1/-1
    }

    .portal .footer-bottom {
        flex-direction:column;
        gap:8px
    }

    .portal .contact-panel {
        padding:24px
    }

    .portal .detail-dates {
        gap:8px 18px
    }

    .portal .access-panel {
        padding:23px
    }

    .portal .detail-grid {
        gap:26px
    }

    .portal .hero-aside .eyebrow {
        font-size:10px
    }

    .portal .hero-aside p {
        margin-bottom:0
    }

}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }

    .portal * {
        transition:none!important
    }

}

@media print {
    .portal .local-notice,.portal .site-header,.portal .site-footer,.portal .search-box,.portal .access-panel {
        display:none
    }

    .portal .page-width {
        width:100%
    }

    .portal .detail-grid {
        display:block
    }

    .portal .contact-panel {
        margin-top:24px
    }

    .portal .hero {
        background:white
    }

    .portal a {
        color:inherit
    }

}

.portal .partner-banner {
    max-width:800px;
    margin:24px auto 0
}

.portal .partner-banner-label {
    display:block;
    margin-bottom:6px;
    color:var(--muted);
    font-size:10px;
    letter-spacing:1px;
    text-transform:uppercase
}

.portal .partner-banner a {
    display:block
}

.portal .partner-banner img {
    display:block;
    max-width:100%;
    height:auto;
    margin-inline:auto
}

/* Header v2: existing brand, separate account controls and accessible mobile menu. */
.portal .header-top {display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px}
.portal .header-actions {justify-content:flex-end;gap:12px;min-width:0;flex-wrap:wrap}
.portal .account-actions {display:flex;flex-direction:column;align-items:flex-end;min-width:0;max-width:200px;gap:2px}
.portal .account-actions .quiet-link {min-height:44px;display:inline-flex;align-items:center}
.portal .user-name {display:block;max-width:100%;overflow-wrap:anywhere;line-height:1.4}
.portal .registration-cta {background:#e8f6f4;border-color:var(--teal);color:var(--teal-dark)}
.portal .registration-cta:hover {background:#d1eeea;color:var(--teal-dark)}
.portal .is-disabled {cursor:default;white-space:normal;text-align:center}
.portal .menu-toggle {display:none;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font:600 14px system-ui}
.portal .main-nav a {min-height:48px;display:inline-flex;align-items:center}
@media(max-width:900px){
 .portal .header-top {grid-template-columns:minmax(0,1fr) auto;padding-block:18px;gap:16px}
 .portal .menu-toggle {display:inline-flex;gap:10px;align-items:center}
 .portal .header-actions {grid-column:1/-1;width:100%;justify-content:flex-start;margin:0;gap:10px}
 .portal .header-actions .small {flex:1 1 180px;min-height:46px;margin:0}
 .portal .account-actions {flex:1 1 140px;max-width:100%;align-items:flex-start}
 .portal .main-nav {gap:4px 24px;flex-wrap:wrap;overflow:visible;padding-bottom:10px}
 .portal .main-nav[data-collapsed=true] {display:none}
 .portal .main-nav a {white-space:normal;font-size:14px}
}
@media(max-width:480px){
 .portal .header-actions {flex-wrap:wrap}
 .portal .header-actions .small {flex-basis:100%;width:100%}
 .portal .main-nav {display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
}

/* Shared geographic/category filters; same controls on all result views. */
.portal .search-filters {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 14px}
.portal .search-filters select {width:100%;min-width:0;min-height:46px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font:inherit}
.portal .search-type-switch {flex-wrap:wrap}
.portal .category-link[aria-current=page] {background:#e8f6f4;border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal);color:var(--teal-dark)}
.portal .category-navigation {margin-block:12px}
.portal .filter-links {flex-wrap:wrap}
@media(max-width:600px){.portal .search-filters{grid-template-columns:1fr}.portal .filter-links a{min-height:44px;display:inline-flex;align-items:center}}

/* Unified accessible form presentation — replaces the legacy table layout. */
.portal .form-page{padding:clamp(40px,6vw,84px) 0 96px;background:linear-gradient(180deg,#eff6f5 0,#fff 310px)}
.portal .form-page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,480px);align-items:start;gap:clamp(30px,6vw,90px)}
.portal .form-page-eyebrow{color:var(--teal-dark);text-transform:uppercase;letter-spacing:.12em;font-weight:750;font-size:12px;margin-bottom:14px}
.portal .form-page-heading{max-width:770px;margin-bottom:32px}
.portal .form-page-intro h1,.portal .form-page-heading h1{font-size:clamp(32px,4.4vw,52px);margin-bottom:20px}
.portal .form-page-intro p:not(.form-page-eyebrow),.portal .form-page-heading p:not(.form-page-eyebrow){max-width:650px;line-height:1.7;color:var(--muted)}
.portal .form-page-back{display:inline-block;margin-top:22px;font-weight:650;text-decoration:none}
.portal .form-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 45px rgba(15,49,54,.08);padding:clamp(24px,4vw,44px)}
.portal .form-card--wide{max-width:940px}
.portal .form-card h2{font-size:clamp(22px,2vw,28px);margin-bottom:24px}
.portal .portal-modern-form{display:block}
.portal .form-section{border:0;padding:0;margin:0 0 32px;min-width:0}
.portal .form-section+ .form-section{border-top:1px solid var(--line);padding-top:28px}
.portal .form-section legend{display:block;float:none;width:100%;font-size:21px;font-weight:730;color:var(--ink);padding:0;margin-bottom:18px}
.portal .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}
.portal .form-field{min-width:0;margin-bottom:18px}
.portal .form-grid>.form-field{margin-bottom:0}
.portal .form-field--full{grid-column:1/-1}
.portal .form-field label{display:block;font-size:14px;font-weight:650;color:var(--ink);margin:0 0 7px}
.portal .portal-modern-form .form-control{display:block;width:100%;max-width:none;min-height:48px;border:1px solid #b9cbd0;border-radius:9px;background:#fff;color:var(--ink);padding:11px 13px;font:inherit;font-size:15px;box-shadow:none;outline-offset:2px}
.portal .portal-modern-form textarea.form-control{min-height:140px;resize:vertical}
.portal .portal-modern-form .form-control:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(8,125,118,.12)}
.portal .portal-modern-form .form-control[type=file]{height:auto;min-height:48px}
.portal .form-verification{margin:22px 0;max-width:100%;overflow-x:auto}
.portal .form-consent{margin:22px 0;line-height:1.6}
.portal .form-consent label{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:500}
.portal .form-consent input[type=checkbox]{flex:0 0 auto;margin-top:5px}
.portal .form-actions{margin-top:22px}
.portal .portal-modern-form .form-submit{min-width:205px;cursor:pointer}
.portal .form-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;max-height:360px;overflow:auto;padding:12px 16px;border:1px solid var(--line);border-radius:9px}
.portal .form-category{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:14px;line-height:1.45;font-weight:500;cursor:pointer}
.portal .form-category input{margin-top:4px;flex:0 0 auto}
.portal .form-note{font-size:13px;color:var(--muted);margin:8px 0 14px}
@media(max-width:760px){.portal .form-page-grid{grid-template-columns:1fr}.portal .form-page{padding:30px 0 55px}.portal .form-grid{grid-template-columns:1fr}.portal .form-categories{grid-template-columns:1fr}.portal .form-card{padding:22px}.portal .form-page-heading{margin-bottom:24px}}


/* Poptavka-EU: stronger contrast, corporate palette, visual-only release 20261105 */
:root {--ink:#132e3c;--muted:#425e6a;--teal:#087a77;--teal-dark:#075b59;--line:#c7d7db;--wash:#e5eff1;--lime:#dbeaab}
body.portal {background:#edf3f5;color:var(--ink)}
.portal .site-header {background:#102c3c;border-bottom:1px solid #294b5a;box-shadow:0 4px 18px rgba(7,30,44,.13)}
.portal .wordmark,.portal .quiet-link,.portal .main-nav a,.portal .wordmark small {color:#f0f7f8}
.portal .brand-accent {color:#7ee1d3}
.portal .main-nav a[aria-current=page] {color:#8fe5d9;border-color:#6bd9cb}
.portal .main-nav a:hover,.portal .quiet-link:hover {color:#aff1e9}
.portal .registration-cta {background:#e0f4f0;border-color:#80d4c8;color:#075653}
.portal .registration-cta:hover {background:#c8ece6;color:#075653}
.portal .menu-toggle {background:#193d4d;border-color:#66828b;color:#f7ffff}
.portal .hero {background:linear-gradient(115deg,#123748 0%,#175267 66%,#176b72 100%);border-bottom:4px solid #24a39a}
.portal .hero h1,.portal .hero h1 em {color:#ffffff}
.portal .hero .eyebrow,.portal .hero-intro,.portal .hero p {color:#d9edf0}
.portal .hero-links,.portal .hero-links span {color:#dfedef}
.portal .hero-links a {color:#b9f5e8}
.portal .hero-aside {background:#0d2836;border:1px solid #35717b;box-shadow:0 18px 35px rgba(0,15,30,.24)}
.portal .hero-aside h2 {color:#fff}
.portal .hero-aside .eyebrow {color:var(--lime)}
.portal .hero-aside p {color:#c5d6da}
.portal .search-box {color:#ebf7f7}
.portal .hero .search-box label {color:#e6f7f8}
.portal .hero .search-type-switch label {color:var(--ink)}
.portal .search-controls,.portal .search-filters select {background:#fff;color:#112d3b}
.portal .section-tint {background:#dfeaed}
.portal .category-section {background:#edf3f5}
.portal .category-link {background:#fff;border-color:#bfcfd3;box-shadow:0 2px 8px rgba(24,52,63,.045)}
.portal .category-link:hover {background:#d9eeec;border-color:#76bcb8}
.portal .result-card {background:#fff;border-color:#bfcfd3;border-left:4px solid #148c87;box-shadow:0 4px 14px rgba(19,48,58,.06)}
.portal .result-card:hover {border-color:#67b0ac;box-shadow:0 10px 25px rgba(19,48,58,.13)}
.portal .page-heading {background:#dce9ed}
.portal .form-page {background:linear-gradient(180deg,#dce9ed 0,#edf3f5 350px)}
.portal .form-card {border-color:#c1d2d7;box-shadow:0 12px 34px rgba(17,50,65,.1)}
.portal .site-footer {background:#102c3c}
@media(max-width:900px) {.portal .main-nav {background:#102c3c}}

/* === PREMIUM_REFRESH_20261105_START === */
:root {
  --ink:#112a39;
  --muted:#4e6672;
  --teal:#0b7f7a;
  --teal-dark:#075b59;
  --line:#cad8dd;
  --wash:#edf3f5;
  --wash-strong:#e4edef;
  --lime:#deeea9;
}

body.portal {
  background: linear-gradient(180deg,#eff4f6 0,#f8fbfb 220px,#eef3f5 220px,#eef3f5 100%);
  color: var(--ink);
}

.portal .page-width {width:min(1280px,calc(100% - 56px));}
.portal .container {max-width:1280px;}
.portal h1 {font-size:clamp(42px,5vw,72px);letter-spacing:-.045em;}
.portal h2 {font-size:clamp(28px,3vw,40px);letter-spacing:-.03em;}
.portal p {font-size:16px;}
.portal .eyebrow {font-size:12px;letter-spacing:.18em;}

.portal .site-header {
  position:sticky;top:0;z-index:50;
  background:rgba(10,31,43,.94);
  border-bottom:1px solid rgba(118,160,173,.28);
  backdrop-filter: blur(12px);
  box-shadow:0 8px 30px rgba(0,16,28,.18);
}
.portal .header-top {padding-block:18px;}
.portal .wordmark,.portal .wordmark small,.portal .main-nav a,.portal .quiet-link {color:#eef7f8;}
.portal .brand-accent {color:#88e3d9;}
.portal .main-nav {min-height:58px;gap:28px;}
.portal .main-nav a {font-size:14px;font-weight:700;padding:18px 0;opacity:.9;}
.portal .main-nav a:hover,.portal .quiet-link:hover {color:#bdf4ed;opacity:1;}
.portal .main-nav a[aria-current=page] {color:#9dece0;border-color:#69dacd;}
.portal .registration-cta {background:#dff4ef;border:1px solid #91d8cf;color:#0a605f;box-shadow:0 8px 24px rgba(9,69,68,.15)}
.portal .registration-cta:hover {background:#cdece6;color:#0a605f;}
.portal .menu-toggle {background:#173d4d;border-color:#597885;color:#fff;}

.portal .hero {
  background:
    radial-gradient(circle at 0% 0%,rgba(85,198,183,.18),transparent 38%),
    radial-gradient(circle at 100% 0%,rgba(182,234,168,.16),transparent 24%),
    linear-gradient(125deg,#0f2f3f 0%,#16485d 52%,#0f6973 100%);
  border-bottom:0;
}
.portal .hero-grid {grid-template-columns:minmax(0,1fr) 340px;gap:64px;padding-block:76px 82px;align-items:stretch;}
.portal .hero h1,.portal .hero h1 em {color:#fff;}
.portal .hero h1 em {color:#b8fff3;}
.portal .hero-intro,.portal .hero p,.portal .hero .eyebrow,.portal .hero-links span {color:#d7e8ee;}
.portal .hero-links {margin-top:20px;font-size:13px;gap:20px;}
.portal .hero-links a {color:#b8fff3;text-decoration:none;}
.portal .hero-links a:hover {color:#fff;text-decoration:underline;}
.portal .search-box {max-width:780px;}
.portal .search-type-switch {background:rgba(255,255,255,.08);border-color:rgba(200,223,228,.18);padding:5px;backdrop-filter:blur(8px);}
.portal .search-type-switch span {color:#d5e8ee;}
.portal .search-type-switch input:checked + span {background:#fff;color:#0e5860;border-color:#fff;box-shadow:0 10px 22px rgba(0,0,0,.12);}
.portal .search-controls {
  padding:10px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:18px;
  box-shadow:0 20px 40px rgba(0,13,24,.18);
}
.portal .search-controls input {padding:14px 16px;font-size:15px;}
.portal .search-filters select,.portal .search-controls select {min-height:50px;border-radius:12px;border-color:#d0dcdf;}
.portal .search-controls .portal-button {min-height:54px;border-radius:13px;box-shadow:0 10px 22px rgba(7,93,89,.22);}

.portal .hero-aside {
  background:linear-gradient(180deg,#0c2533 0%,#133748 100%);
  border:1px solid rgba(117,197,197,.38);
  padding:34px;
  border-radius:24px;
  box-shadow:0 20px 42px rgba(0,17,32,.28);
}
.portal .aside-symbol {background:#1a4957;color:#bdf3e8;width:52px;height:52px;font-size:30px;}
.portal .hero-aside h2 {font-size:32px;line-height:1.14;}
.portal .hero-aside p {font-size:15px;color:#d1e3e7;}
.portal .hero-aside small {color:#b8d0d7;}
.portal .hero-aside .portal-button {min-height:52px;border-radius:12px;font-size:14px;}

.portal .category-section {padding-block:60px 28px;}
.portal .section-heading {margin-bottom:30px;}
.portal .text-link {font-size:14px;gap:12px;}
.portal .category-grid {gap:16px;}
.portal .category-link {
  min-height:72px;
  border-radius:16px;
  padding:18px 20px;
  border-color:#d0dde1;
  background:rgba(255,255,255,.92);
  box-shadow:0 4px 14px rgba(16,42,57,.04);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.portal .category-link:hover {
  transform:translateY(-2px);
  background:#fff;
  border-color:#77c3bf;
  box-shadow:0 14px 30px rgba(16,42,57,.11);
}
.portal .region-picker {margin-top:30px;padding-top:20px;}

.portal .section-tint {background:linear-gradient(180deg,#e8eff2 0,#eef3f5 100%);}
.portal .section-space {padding-block:60px;}
.portal .results-grid {gap:22px;}
.portal .result-card {
  padding:26px 26px 22px;
  border-radius:18px;
  border:1px solid #d0dde1;
  border-top:4px solid #118b85;
  box-shadow:0 8px 24px rgba(16,42,57,.05);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.portal .result-card:hover {
  transform:translateY(-4px);
  border-color:#83c2be;
  box-shadow:0 18px 36px rgba(16,42,57,.12);
}
.portal .result-meta {margin-bottom:20px;font-size:11px;}
.portal .type-badge {border-radius:999px;padding:6px 10px;font-size:10px;letter-spacing:.04em;}
.portal .result-card h3 {font-size:20px;line-height:1.4;margin-bottom:18px;min-height:5.6em;}
.portal .result-footer {padding-top:14px;font-size:11px;}

.portal .join-strip {
  margin-block:18px 36px;
  padding:34px 36px;
  border:1px solid #d0dde1;
  border-radius:24px;
  background:linear-gradient(135deg,#ffffff 0%,#eef6f5 100%);
  box-shadow:0 12px 34px rgba(16,42,57,.06);
}
.portal .join-strip h2 {font-size:36px;line-height:1.18;}
.portal .join-strip .portal-button {min-height:54px;border-radius:13px;}

.portal .page-heading {
  padding-block:42px 44px;
  background:linear-gradient(180deg,#dbe8ec 0,#edf3f5 100%);
}
.portal .listing-bar h2 {font-size:24px;}
.portal .filter-links a {border-radius:11px;padding:10px 16px;}
.portal .empty-state {background:#f9fcfc;border-color:#c7d8dc;}

.portal .site-footer {background:#0e2b3a;color:#d5e8ee;}
.portal .site-footer a {color:#d7fff8;}

.portal .form-page {
  background:linear-gradient(180deg,#dbe7ec 0,#eff4f6 280px,#eff4f6 100%);
}
.portal .form-card {
  border-radius:24px;
  border:1px solid #cbd9de;
  box-shadow:0 16px 38px rgba(16,42,57,.08);
}

@media(max-width:1000px){
  .portal .page-width{width:min(100%,calc(100% - 36px));}
  .portal .hero-grid{grid-template-columns:1fr;gap:26px;padding-block:56px 62px;}
  .portal .hero-aside{max-width:520px;}
  .portal .results-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
  .portal .page-width{width:min(100%,calc(100% - 24px));}
  .portal .header-top{padding-block:14px;}
  .portal .hero h1{font-size:clamp(34px,11vw,48px);}
  .portal .search-controls{padding:8px;border-radius:16px;}
  .portal .category-grid,.portal .results-grid,.portal .region-links{grid-template-columns:1fr;}
  .portal .join-strip{padding:24px 22px;border-radius:20px;}
  .portal .join-strip h2{font-size:30px;}
}
/* === PREMIUM_REFRESH_20261105_END === */
