:root {
    --talta-navy: #062f5f;
    --talta-navy-dark: #03284f;
    --talta-green: #0aae4b;
    --talta-green-dark: #07963f;
    --talta-blue: #079fe3;
    --talta-cyan: #16b6d4;
    --talta-orange: #f7941d;
    --talta-white: #fff;
    --talta-background: #f8fbfd;
    --talta-light-blue: #f2f8fc;
    --talta-text: #092a52;
    --talta-body: #59697c;
    --talta-border: #e5edf3;
    color-scheme: light;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 105px;
}

body {
    margin: 0;
    background: var(--talta-white);
    color: var(--talta-text);
    font-family: Poppins, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
    height: auto;
}

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

a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible {
    outline: 3px solid var(--talta-blue);
    outline-offset: 3px;
}

.container {
    width: min(88%, 1680px);
    margin-inline: auto;
}

.topbar {
    min-height: 34px;
    background: var(--talta-navy-dark);
    color: #fff;
    font-size: 11px;
}

.topbar-inner,
.topbar-contact,
.topbar-contact span,
.topbar-contact a,
.topbar-social {
    display: flex;
    align-items: center;
}

.topbar-inner {
    min-height: 34px;
    justify-content: space-between;
    gap: 20px;
}

.topbar-contact {
    flex-wrap: wrap;
    gap: 26px;
}

.topbar-contact span,
.topbar-contact a {
    gap: 7px;
}

.topbar-contact svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.topbar-social {
    gap: 9px;
}

.topbar-social span,
.footer-social span {
    display: grid;
    width: 18px;
    height: 18px;
    place-items: center;
    border: 1px solid rgb(255 255 255 / 0.56);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

.site-header {
    position: relative;
    z-index: 10;
    background: #fff;
    box-shadow: 0 5px 22px rgb(6 47 95 / 0.045);
}

.header-inner {
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
}

.brand,
.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--talta-navy);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
}

.brand img {
    width: 58px;
    height: 58px;
    object-fit: contain;
}

.desktop-nav {
    display: flex;
    align-items: center;
    gap: clamp(10px, 1.3vw, 21px);
}

.header-search {
    display: grid;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 50%;
    background: #f3f7fa;
    color: var(--talta-navy);
}

.header-search svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.nav-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 4px;
    color: var(--talta-navy);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    transition: color 160ms ease;
}

.nav-link:hover,
.nav-link:focus-visible,
.nav-current {
    color: var(--talta-orange);
}

.nav-dropdown {
    position: relative;
}

.nav-dropdown > a span {
    font-size: 15px;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: -12px;
    display: none;
    min-width: 205px;
    padding: 8px;
    border: 1px solid var(--talta-border);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 30px rgb(6 47 95 / 0.12);
}

.dropdown-menu a {
    display: block;
    padding: 9px 11px;
    border-radius: 6px;
    color: var(--talta-text);
    font-size: 12px;
}

.dropdown-menu a:hover,
.dropdown-menu a:focus-visible {
    background: var(--talta-light-blue);
}

.nav-dropdown:hover .dropdown-menu,
.nav-dropdown:focus-within .dropdown-menu {
    display: block;
}

.button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 19px;
    border: 1px solid transparent;
    border-radius: 7px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.button:hover {
    transform: translateY(-1px);
}

.button-green {
    background: var(--talta-green);
}

.button-green:hover {
    background: var(--talta-green-dark);
}

.button-blue {
    background: var(--talta-blue);
}

.button-blue:hover {
    background: #078ac6;
}

.button-orange {
    background: var(--talta-orange);
}

.button-outline {
    border-color: var(--talta-navy);
    background: #fff;
    color: var(--talta-navy);
}

.button-outline:hover {
    background: var(--talta-light-blue);
}

.header-cta {
    min-height: 40px;
    padding-inline: 16px;
    white-space: nowrap;
}

.header-auth-actions { display: flex; align-items: center; gap: 9px; }
.header-auth-actions > form { margin: 0; }
.header-logout { min-height: 40px; padding-inline: 14px; color: var(--talta-navy); }
.header-logout:hover { background: var(--talta-light-blue); }

.mobile-nav {
    display: none;
}

.hero-section {
    overflow: hidden;
    padding: 0;
    background: #fff;
}

.hero-grid {
    display: grid;
    min-height: 505px;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    align-items: center;
    gap: 22px;
}

.hero-copy {
    position: relative;
    z-index: 2;
    padding-block: 42px;
}

.eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 12px;
    color: var(--talta-orange);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.035em;
    line-height: 1.4;
    text-transform: uppercase;
}

.eyebrow > span {
    display: inline-block;
    width: 25px;
    height: 2px;
    background: var(--talta-green);
}

.hero-copy .eyebrow {
    color: #536a83;
}

.hero-copy h1 {
    margin: 0;
    color: var(--talta-navy-dark);
    font-size: clamp(38px, 4.15vw, 60px);
    font-weight: 800;
    letter-spacing: -0.055em;
    line-height: 1.08;
}

.hero-copy h1 span {
    color: var(--talta-blue);
}

.hero-description {
    max-width: 470px;
    margin: 18px 0 20px;
    color: var(--talta-body);
    font-size: 13px;
    line-height: 1.65;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
}

.hero-visual {
    position: relative;
    min-width: 0;
    min-height: 505px;
    align-self: stretch;
    display: flex;
    align-items: flex-start;
}

.hero-visual::before {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 15%;
    width: 31%;
    height: 33%;
    background: rgb(137 217 248 / 0.38);
    clip-path: polygon(51% 0, 80% 0, 0 100%, 0 46%);
    content: "";
    pointer-events: none;
}

.hero-photo {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 480px;
    object-fit: cover;
    object-position: center;
    -webkit-mask-image: url('/images/hero-photo-mask.svg');
    mask-image: url('/images/hero-photo-mask.svg');
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}

.hero-vest-logo {
    position: absolute;
    z-index: 2;
    top: 67%;
    left: 44%;
    width: 12%;
    height: auto;
    mix-blend-mode: multiply;
    opacity: 0.88;
    transform: rotate(4deg);
    pointer-events: none;
}

.shape {
    position: absolute;
    display: block;
    pointer-events: none;
}

.hero-visual .shape-green {
    z-index: 2;
    top: 0;
    right: 0;
    width: 23%;
    height: 58%;
    background: var(--talta-green);
    clip-path: polygon(28% 0, 100% 0, 100% 100%, 69% 73%, 0 17%);
}

.hero-visual .shape-orange {
    z-index: 2;
    top: 22%;
    left: 2%;
    width: 5%;
    height: 27%;
    border-radius: 30px 10px 10px 30px;
    background: var(--talta-orange);
    transform: rotate(25deg);
}

.hero-visual .shape-cyan {
    z-index: 2;
    bottom: 12px;
    left: 13%;
    width: 88px;
    height: 22px;
    border-radius: 50%;
    background: var(--talta-cyan);
    transform: rotate(-28deg);
}

.hero-note {
    position: absolute;
    z-index: 3;
    right: 2%;
    bottom: 2.5%;
    display: flex;
    width: 29%;
    max-width: 290px;
    min-height: 112px;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px 22px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgb(6 47 95 / 0.12);
}

.hero-note svg {
    flex: 0 0 36px;
    width: 36px;
    fill: none;
    stroke: var(--talta-blue);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.hero-note p {
    margin: 0;
    color: var(--talta-body);
    font-size: 10px;
    line-height: 1.4;
}

.hero-note strong {
    color: var(--talta-navy);
    font-size: 11px;
}

.hero-note p::after {
    display: block;
    width: 27px;
    height: 2px;
    margin-top: 15px;
    background: var(--talta-orange);
    content: "";
}

.section-space {
    padding-block: 55px;
}

.about-section {
    padding-top: 20px;
    padding-bottom: 48px;
}

.about-grid,
.services-grid,
.president-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: center;
    gap: clamp(40px, 7vw, 100px);
}

.about-grid {
    align-items: start;
}

.about-copy h2,
.section-heading h2,
.services-copy h2,
.president-copy h2 {
    margin: 0 0 13px;
    color: var(--talta-navy-dark);
    font-size: clamp(28px, 3vw, 39px);
    font-weight: 750;
    letter-spacing: -0.04em;
    line-height: 1.15;
}

.about-copy > p:not(.eyebrow),
.section-heading > p:not(.eyebrow),
.section-intro {
    max-width: 520px;
    color: var(--talta-body);
    font-size: 12px;
    line-height: 1.7;
}

.about-copy > p:not(.eyebrow) {
    margin: 0 0 18px;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--talta-green);
    font-size: 12px;
    font-weight: 700;
}

.text-link:hover {
    color: var(--talta-green-dark);
}

.about-photo-wrap {
    position: relative;
    margin: 0;
    padding: 0 0 0 14px;
}

.about-photo-wrap img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 320px;
    border-radius: 10px;
    object-fit: cover;
}

.about-photo-wrap .shape-orange {
    left: 0;
    top: 35%;
    width: 28px;
    height: 95px;
    border-radius: 12px 30px;
    background: var(--talta-orange);
    transform: rotate(20deg);
}

.about-photo-wrap::after {
    position: absolute;
    z-index: 0;
    bottom: 0;
    left: -18px;
    width: 46px;
    height: 112px;
    border-radius: 24px 17px 0 16px;
    background: var(--talta-blue);
    content: "";
    transform: skewX(-13deg);
}

.membership-section {
    background: var(--talta-light-blue);
    padding-block: 20px 18px;
}

.section-heading-centered {
    max-width: 670px;
    margin: 0 auto 30px;
    text-align: center;
}

.section-heading-centered .eyebrow {
    justify-content: center;
}

.section-heading-centered > p:not(.eyebrow) {
    margin: 0 auto;
}

.membership-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.membership-card {
    position: relative;
    display: grid;
    min-height: 185px;
    grid-template-columns: 86px minmax(0, 1fr) 32px;
    align-items: center;
    gap: 16px;
    overflow: hidden;
    padding: 23px 24px;
    border: 1px solid rgb(229 237 243 / 0.85);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 22px rgb(6 47 95 / 0.045);
}

.membership-card::before {
    position: absolute;
    bottom: -47px;
    left: -32px;
    width: 100px;
    height: 100px;
    border-radius: 44% 56% 0 0;
    background: #e8f7ff;
    content: "";
    transform: rotate(38deg);
}

.member-students::before {
    background: #eaf8ef;
}

.membership-icon {
    position: relative;
    z-index: 1;
    display: grid;
    width: 72px;
    height: 72px;
    place-items: center;
    border-radius: 50%;
    background: #e5f7ff;
}

.member-students .membership-icon {
    background: #e5f7eb;
}

.membership-icon svg,
.service-card svg {
    width: 38px;
    height: 38px;
    fill: none;
    stroke: var(--talta-blue);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.member-students .membership-icon svg {
    stroke: var(--talta-green);
}

.membership-copy {
    position: relative;
    z-index: 1;
}

.membership-copy h3,
.service-card h3 {
    margin: 0 0 4px;
    color: var(--talta-navy-dark);
    font-size: 15px;
    font-weight: 700;
}

.membership-copy p {
    margin: 0 0 13px;
    color: var(--talta-body);
    font-size: 11px;
    line-height: 1.55;
}

.membership-copy .button {
    min-height: 36px;
    padding-inline: 13px;
    font-size: 10px;
}

.round-arrow,
.service-card > a {
    display: grid;
    width: 31px;
    height: 31px;
    place-items: center;
    border: 1px solid var(--talta-border);
    border-radius: 50%;
    color: var(--talta-navy);
    font-size: 17px;
    transition: color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.round-arrow:hover,
.service-card > a:hover {
    transform: translateX(2px);
    border-color: var(--talta-blue);
    color: var(--talta-blue);
}

.services-grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 5vw;
}

.services-section {
    padding-bottom: 20px;
}

.services-copy h2 {
    font-size: clamp(26px, 2.6vw, 34px);
}

.section-intro {
    margin: 0 0 22px;
}

.service-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(14px, 2vw, 36px);
}

.service-card {
    display: flex;
    min-height: clamp(190px, 18.2vw, 326px);
    flex-direction: column;
    align-items: center;
    padding: 19px 15px 14px;
    border: 1px solid #f0f4f7;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 7px 22px rgb(6 47 95 / 0.045);
    text-align: center;
}

.service-card svg {
    width: clamp(42px, 3.7vw, 67px);
    height: clamp(42px, 3.7vw, 67px);
    margin: 0 0 13px;
}

.service-card h3 {
    margin-bottom: 3px;
    font-size: clamp(12px, 1.15vw, 21px);
}

.service-card p {
    flex: 1;
    margin: 0 0 9px;
    color: var(--talta-body);
    font-size: clamp(11px, 0.92vw, 17px);
    line-height: 1.45;
}

.service-card > a {
    width: 27px;
    height: 27px;
    align-self: center;
}

.services-visual {
    position: relative;
    min-height: 310px;
}

.services-visual::before {
    position: absolute;
    z-index: 2;
    bottom: 15%;
    left: -13%;
    width: clamp(22px, 2.3vw, 42px);
    height: 21%;
    border-radius: 22px;
    background: var(--talta-orange);
    content: "";
    transform: rotate(15deg);
}

.services-visual > img {
    display: block;
    width: 100%;
    height: 335px;
    border-radius: 10px;
    object-fit: cover;
}

.services-message {
    position: absolute;
    left: -11%;
    bottom: 0;
    display: flex;
    width: 92%;
    min-height: 44%;
    flex-direction: column;
    justify-content: center;
    padding: 8% 9% 7% 18%;
    border-radius: 16px 10px 10px 10px;
    background: var(--talta-navy);
    color: #fff;
}

.services-message > span {
    display: block;
    width: 24px;
    height: 2px;
    margin-bottom: 9px;
    background: var(--talta-orange);
}

.services-message p {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.president-section {
    background: #fff;
}

.president-grid {
    grid-template-columns: 330px minmax(0, 1fr);
    align-items: start;
    gap: 40px;
}

.president-copy {
    padding-top: 5px;
}

.president-photo {
    position: relative;
    min-height: 285px;
    display: flex;
    align-items: end;
    justify-content: center;
}

.president-photo .shape-mint {
    bottom: 0;
    left: -30px;
    width: 120px;
    height: 150px;
    border-radius: 0 70% 0 0;
    background: #e7f7ed;
}

.president-photo img {
    position: relative;
    z-index: 1;
    display: block;
    width: 330px;
    height: 260px;
    border-radius: 10px;
    object-fit: cover;
    object-position: center 46%;
}

.message-body {
    display: grid;
    grid-template-columns: 75px minmax(0, 1fr);
    gap: 20px;
}

.president-eyebrow {
    margin-bottom: 20px;
}

.quote-mark {
    color: var(--talta-blue);
    font-family: Georgia, serif;
    font-size: 78px;
    font-weight: 700;
    line-height: 0.9;
}

.message-body p {
    margin: 0 0 13px;
    color: var(--talta-body);
    font-size: 12px;
    line-height: 1.65;
}

.message-body .president-signature {
    margin: 16px 0;
    color: var(--talta-navy);
}

.message-body .button {
    min-height: 37px;
    padding-inline: 15px;
    font-size: 10px;
}

.news-section {
    background: var(--talta-background);
    padding-block: 35px 25px;
}

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

.news-heading h2 {
    margin: 0;
    color: var(--talta-navy-dark);
    font-size: clamp(27px, 2.6vw, 34px);
    font-weight: 750;
    letter-spacing: -0.04em;
    line-height: 1.15;
}

.news-view-all,
.news-card-body a {
    color: var(--talta-blue);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.news-view-all span,
.news-card-body a span {
    padding-left: 8px;
    font-size: 17px;
    vertical-align: -1px;
}

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

.news-card {
    overflow: hidden;
    border: 1px solid #edf2f6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 7px 22px rgb(6 47 95 / 0.045);
}

.news-card img,
.news-reference-photo {
    display: block;
    width: 100%;
    height: 105px;
    object-fit: cover;
}

.news-image-placeholder {
    display: grid;
    width: 100%;
    height: 105px;
    place-items: center;
    background: linear-gradient(125deg, #eaf6fc, #dceef8 52%, #f9f6ef);
    color: var(--talta-navy);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .12em;
}

.news-type {
    display: inline-block;
    margin-bottom: 4px;
    color: var(--talta-orange);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.news-empty-state {
    padding: 30px;
    border: 1px solid #edf2f6;
    border-radius: 10px;
    background: #fff;
    color: var(--talta-body);
    text-align: center;
}

.news-archive-grid .news-card img,
.news-archive-grid .news-image-placeholder {
    height: clamp(180px, 22vw, 320px);
}

.news-article { max-width: 940px; }
.news-article-image { display: block; width: 100%; max-height: 620px; margin: 28px 0; border-radius: 14px; object-fit: contain; background: #f2f6f8; }
.news-article-date { color: var(--talta-orange); font-weight: 700; }
.news-article-copy { max-width: 800px; color: var(--talta-body); font-size: 17px; line-height: 1.85; }

.admin-page { min-height: 100vh; margin: 0; background: #f3f7fa; color: #153755; font-family: Poppins, sans-serif; }
.admin-shell { min-height: 100vh; }
.admin-topbar { display: flex; min-height: 76px; align-items: center; justify-content: space-between; padding: 12px max(24px, calc((100vw - 1280px) / 2)); background: #062f5f; }
.admin-brand { color: #fff; font-size: 22px; font-weight: 800; text-decoration: none; }
.admin-brand span { margin-left: 10px; color: #bfd1e2; font-size: 13px; font-weight: 500; }
.admin-main { width: min(1280px, calc(100% - 48px)); margin: 54px auto; }
.admin-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.admin-heading h1,.admin-login-card h1 { margin: 4px 0 6px; color: #062f5f; font-size: clamp(28px, 4vw, 42px); }
.admin-heading p:not(.eyebrow),.admin-login-card > p { margin: 0; color: #65788a; }
.admin-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 12px 20px; border: 0; border-radius: 7px; background: #08a94e; color: #fff; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.admin-button:hover { background: #078a42; color: #fff; }
.admin-link-button,.admin-danger-link { padding: 0; border: 0; background: transparent; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.admin-table-wrap { overflow-x: auto; border: 1px solid #e1eaf0; border-radius: 12px; background: #fff; box-shadow: 0 10px 30px rgb(6 47 95 / .05); }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th,.admin-table td { padding: 16px 18px; border-bottom: 1px solid #edf2f5; text-align: left; vertical-align: top; }
.admin-table th { color: #60758a; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
.admin-table td { color: #344d63; font-size: 14px; }
.admin-table td small { display: block; max-width: 460px; margin-top: 5px; color: #738597; }
.admin-actions { display: flex; gap: 14px; white-space: nowrap; }
.admin-actions a { color: #0876b8; font-weight: 700; }
.admin-danger-link { color: #b53131; }
.admin-empty { padding: 42px !important; color: #6b7e90 !important; text-align: center !important; }
.admin-alert { margin: 0 0 20px; padding: 14px 18px; border: 1px solid #b8e5cc; border-radius: 8px; background: #effaf3; color: #176738; }
.admin-alert-error { border-color: #f1c4c4; background: #fff4f4; color: #9b2828; }
.admin-alert ul { margin: 0; padding-left: 20px; }
.admin-pagination { margin-top: 20px; }
.admin-back,.admin-cancel { color: #12639c; font-weight: 600; text-decoration: none; }
.admin-form-main { max-width: 900px; }
.admin-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding: 28px; border: 1px solid #e1eaf0; border-radius: 12px; background: #fff; }
.admin-form label { display: grid; gap: 8px; color: #24435e; font-size: 13px; font-weight: 700; }
.admin-form input:not([type=checkbox]),.admin-form select,.admin-form textarea { width: 100%; box-sizing: border-box; min-height: 44px; padding: 11px 12px; border: 1px solid #cfdae3; border-radius: 6px; background: #fff; color: #20394f; font: inherit; font-size: 14px; }
.admin-form textarea { resize: vertical; }
.admin-form label small { color: #74889a; font-weight: 400; }
.admin-full-width { grid-column: 1 / -1; }
.admin-checkbox { display: flex !important; align-items: center; font-weight: 500 !important; }
.admin-checkbox input { margin: 0; }
.admin-form-actions { display: flex; align-items: center; gap: 20px; padding-top: 4px; }
.admin-image-preview { display: block; max-width: 280px; max-height: 180px; margin-top: 10px; border-radius: 8px; object-fit: contain; background: #f1f5f8; }
.admin-login-card { width: min(440px, calc(100% - 40px)); box-sizing: border-box; margin: 12vh auto 0; padding: 38px; border: 1px solid #e1eaf0; border-radius: 14px; background: #fff; box-shadow: 0 20px 55px rgb(6 47 95 / .1); }
.admin-login-card .admin-brand { display: inline-block; margin-bottom: 22px; color: #062f5f; }
.admin-login-card .admin-brand span { color: #718394; }
.admin-login-card .admin-form { display: grid; gap: 18px; margin-top: 26px; }

/* News and events editor */
.content-editor-main { width: min(1510px, calc(100% - 48px)); margin: 18px auto 28px; }
.content-editor-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 390px); align-items: center; gap: clamp(24px, 3vw, 44px); margin-bottom: 20px; }
.content-editor-heading > div:first-child > .admin-back { display: inline-block; margin-bottom: 15px; }
.content-editor-heading .eyebrow { margin: 0 0 7px; }
.content-editor-heading h1 { margin: 0 0 5px; color: #082f5e; font-size: clamp(28px, 3vw, 39px); line-height: 1.2; }
.content-editor-heading p:not(.eyebrow) { margin: 0; color: #667d98; font-size: 14px; }
.content-editor-hero { position: relative; height: 215px; overflow: hidden; border-radius: 12px; background: #d6e9f6; box-shadow: 0 8px 24px rgb(5 43 81 / .10); }
.content-editor-hero > img { width: 100%; height: 100%; object-fit: cover; }
.content-editor-hero > div { position: absolute; right: 0; bottom: 0; display: grid; gap: 9px; width: 57%; box-sizing: border-box; padding: 17px 19px; background: linear-gradient(110deg, rgb(255 255 255 / .97), #fff); clip-path: polygon(16% 0,100% 0,100% 100%,0 100%); color: #092f5d; font-size: 15px; line-height: 1.35; }
.content-editor-hero > div i { width: 23px; height: 3px; margin-left: 16%; border-radius: 4px; background: #ff941d; }
.content-editor-layout { display: grid; grid-template-columns: minmax(0, 1.95fr) minmax(275px, .9fr); align-items: start; gap: 20px; }
.content-editor-card { display: grid; gap: 0; padding: 20px 23px 18px; border: 1px solid #e5edf4; border-radius: 13px; background: #fff; box-shadow: 0 10px 28px rgb(6 47 95 / .055); }
.editor-section { padding: 0 0 15px; border-bottom: 1px solid #e8eef4; }
.editor-section + .editor-section { padding-top: 13px; }
.editor-section-title { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.editor-section-title > span { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 50%; background: #078cf4; color: #fff; font-size: 18px; font-weight: 700; }
.editor-section-title h2 { margin: 0; color: #0a315f; font-size: 16px; line-height: 1.3; }
.editor-section-title h2 small { color: #355b84; font-size: 13px; font-weight: 600; }
.editor-section-title p { margin: 2px 0 0; color: #6c83a0; font-size: 12px; }
.editor-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 16px; }
.editor-fields label { display: grid; min-width: 0; gap: 5px; color: #0d315d; font-size: 12px; }
.editor-fields label b { display: inline; color: #e44747; }
.editor-fields input,.editor-fields select,.editor-fields textarea { min-height: 39px !important; padding: 9px 11px !important; border-color: #d5e0ec !important; border-radius: 6px !important; color: #1d3d64 !important; font-size: 12px !important; }
.editor-fields textarea { min-height: 53px !important; resize: vertical; }
.editor-fields input::placeholder,.editor-fields textarea::placeholder { color: #91a2b7; }
.editor-field-wide { grid-column: 1 / -1; }
.editor-counter { justify-self: end; margin-top: -3px; color: #7186a0 !important; }
.field-error { color: #b53131 !important; font-size: 11px !important; }
.editor-three-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.editor-toolbar { display: flex; min-height: 37px; align-items: center; gap: 2px; overflow-x: auto; border: 1px solid #d5e0ec; border-radius: 6px 6px 0 0; background: #f8fafc; }
.editor-toolbar select { width: 125px; min-width: 125px; height: 35px; padding: 0 8px; border: 0; border-right: 1px solid #dce5ed; background: transparent; color: #304c6a; font: inherit; font-size: 11px; }
.editor-toolbar button { width: 32px; height: 33px; flex: 0 0 32px; border: 0; border-radius: 4px; background: transparent; color: #102f53; font: inherit; font-weight: 700; cursor: pointer; }
.editor-toolbar button:hover { background: #e8f3fc; }
.article-editor { min-height: 105px; max-height: 280px; overflow-y: auto; padding: 11px; border: 1px solid #d5e0ec; border-top: 0; border-radius: 0 0 6px 6px; background: #fff; color: #253f5b; font-size: 12px; line-height: 1.6; outline-color: #078cf4; }
.article-editor:empty::before { color: #91a2b7; content: 'Write the full content here...'; }
.article-editor h2,.article-editor h3 { margin: 8px 0; }
.editor-image-picker { display: grid; grid-template-columns: minmax(180px, .95fr) minmax(0, 1.8fr); gap: 10px; align-items: start; }
.image-drop-zone { display: flex !important; min-height: 120px; align-items: center; justify-content: center; gap: 3px !important; padding: 11px; border: 1px dashed #abc4dd; border-radius: 8px; background: #f8fbfe; color: #15395f !important; text-align: center; cursor: pointer; }
.image-drop-zone .upload-symbol { color: #078cf4; font-size: 25px; line-height: 1; }
.image-drop-zone strong { font-size: 12px; }
.image-drop-zone > span:not(.upload-symbol) { color: #7186a0; font-size: 11px; font-weight: 400; }
.image-drop-zone small { color: #7186a0 !important; font-size: 10px !important; }
.image-drop-zone em { margin-top: 3px; padding: 4px 9px; border-radius: 5px; background: #e4f2ff; color: #0876bf; font-size: 10px; font-style: normal; }
.editor-image-previews { display: grid; grid-template-columns: repeat(auto-fill, minmax(82px, 1fr)); gap: 8px; }
.editor-image-thumb { position: relative; min-width: 0; margin: 0; }
.editor-image-thumb img { display: block; width: 100%; height: 75px; border-radius: 7px; background: #edf3f7; object-fit: cover; }
.editor-image-thumb figcaption { overflow: hidden; margin-top: 3px; color: #536c86; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.editor-image-remove { position: absolute; top: 4px; right: 4px; display: grid; width: 20px; height: 20px; place-items: center; border: 1px solid #e4edf4; border-radius: 50%; background: white; color: #315174; font-size: 16px; line-height: 1; cursor: pointer; }
.image-count { display: block; margin-top: 4px; color: #7186a0 !important; font-size: 10px !important; }
.editor-publish-section { border-bottom: 0; }
.content-editor-actions { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; }
.content-editor-actions .admin-button { min-height: 42px; padding: 10px 17px; font-size: 12px; }
.editor-cancel { padding: 11px 14px; border-radius: 6px; background: #f1f5f9; color: #274b73; font-size: 12px; font-weight: 700; text-decoration: none; }
.content-editor-aside { display: grid; gap: 14px; }
.editor-help-card { padding: 17px; border: 1px solid #e7eef5; border-radius: 11px; background: #fff; box-shadow: 0 8px 22px rgb(6 47 95 / .04); }
.editor-help-card h2 { display: flex; align-items: center; gap: 9px; margin: 0 0 10px; color: #0a315f; font-size: 14px; }
.editor-help-card h2 > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 50%; background: #eff7fd; font-size: 19px; }
.editor-help-card p { margin: 0; color: #617a96; font-size: 12px; line-height: 1.6; }
.editor-tip-card { background: linear-gradient(140deg, #edf7ff, #e9f5fd); }
.editor-tip-card ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.editor-tip-card li { display: flex; gap: 9px; color: #365879; font-size: 12px; line-height: 1.45; }
.editor-tip-card li::before { color: #08ad5b; content: '✓'; font-size: 17px; font-weight: 800; line-height: 1; }
.editor-help-card .help-icon-blue { background: #e6f3ff; color: #058df2; }
.editor-help-card .help-icon-green { background: #e4f8ec; color: #04a654; font-size: 23px; font-weight: 700; }
.editor-contact-card { background: #f0fbf5; }
.editor-contact-card a { display: block; margin-top: 9px; color: #163b65; font-size: 12px; font-weight: 600; text-decoration: none; }
.content-list-main { width: min(1510px, calc(100% - 48px)); }
.content-list-hero { display: flex; justify-content: space-between; align-items: end; gap: 22px; margin: 24px 0 22px; }
.content-list-hero h1 { margin: 0 0 5px; color: #082f5e; font-size: clamp(29px, 3vw, 40px); }
.content-list-hero p:not(.eyebrow) { margin: 0; color: #667d98; font-size: 14px; }
.content-list-hero .eyebrow { margin: 0 0 5px; }
.content-list-table .admin-table td { vertical-align: middle; }
.content-list-title { display: flex; align-items: center; gap: 12px; min-width: 260px; }
.content-list-title img { width: 72px; height: 52px; flex: 0 0 72px; border-radius: 6px; background: #edf3f7; object-fit: cover; }
.content-type-pill { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: #edf6ff; color: #0878c1; font-size: 11px; font-weight: 700; }
.content-publish-status { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: #eaf8ef; color: #158044; font-size: 11px; font-weight: 700; }
.content-publish-status.is-draft { background: #fff5e8; color: #a96100; }

/* Admin member directory */
.member-admin-main,.member-form-main { width: min(1510px, calc(100% - 48px)); }
.member-admin-heading { display: flex; justify-content: space-between; align-items: end; gap: 22px; margin: 28px 0 22px; }
.member-admin-heading h1 { margin: 0 0 5px; color: #082f5e; font-size: clamp(29px, 3vw, 40px); }
.member-admin-heading p:not(.eyebrow) { margin: 0; color: #667d98; font-size: 14px; }
.member-admin-heading .eyebrow { margin: 0 0 5px; }
.member-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.member-stat-grid article { display: grid; gap: 4px; padding: 16px 19px; border: 1px solid #e4edf4; border-radius: 10px; background: #fff; box-shadow: 0 5px 18px rgb(6 47 95 / .035); }
.member-stat-grid article span { color: #617991; font-size: 12px; font-weight: 600; }
.member-stat-grid article strong { color: #082f5e; font-size: 25px; }
.member-import-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 20px; margin-bottom: 17px; padding: 19px; border: 1px solid #dcebf7; border-radius: 12px; background: linear-gradient(110deg, #f6fbff, #fff); }
.member-import-panel > div:first-child { display: flex; align-items: flex-start; gap: 12px; }
.member-import-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 10px; background: #e4f3ff; color: #0588e8; font-size: 23px; font-weight: 700; }
.member-import-panel h2 { margin: 0 0 4px; color: #12385f; font-size: 15px; }
.member-import-panel p { max-width: 790px; margin: 0; color: #667d98; font-size: 11px; line-height: 1.55; }
.member-import-actions { display: flex; align-items: center; justify-content: end; gap: 8px; }
.member-account-unlinked { display:inline-flex; padding:4px 7px; border-radius:12px; background:#fff5e8; color:#a5620c; font-size:10px; font-weight:700; }
.admin-outline-button { display: inline-flex; min-height: 37px; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid #c8d8e7; border-radius: 6px; background: white; color: #174872; font-size: 11px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.admin-outline-button:hover { border-color: #078cf4; color: #0878c1; }
.member-import-form { display: flex; grid-column: 1 / -1; align-items: center; gap: 10px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid #e3edf5; }
.member-import-form label { color: #24435e; font-size: 11px; font-weight: 700; }
.member-import-form input { max-width: 330px; color: #526b84; font: inherit; font-size: 11px; }
.member-import-form .admin-button { min-height: 36px; padding: 7px 13px; font-size: 11px; }
.member-import-form > small { flex: 1 1 100%; color: #778ba0; font-size: 10px; }
.member-filters { margin-bottom: 13px; }
.member-table-wrap { overflow-x: auto; }
.member-table { min-width: 1040px; }
.member-table th,.member-table td { padding: 13px 14px; }
.member-table td { font-size: 12px; }
.member-table td small { font-size: 10px; }
.member-table .admin-actions { gap: 11px; }
.member-registration { color: #12385f; font-weight: 700; }
.member-form-main { margin-top: 28px; }
.member-form-main > .admin-back { display: inline-block; margin-bottom: 12px; }
.member-record-form { max-width: 1080px; }
.member-record-form label b { color: #e44747; }
@media(max-width:900px) { .member-import-panel { grid-template-columns: 1fr; } .member-import-actions { justify-content: start; } }
@media(max-width:650px) { .member-admin-main,.member-form-main { width: calc(100% - 28px); } .member-admin-heading { align-items: stretch; flex-direction: column; } .member-stat-grid { gap: 8px; } .member-stat-grid article { padding: 12px; } .member-stat-grid article span { font-size: 10px; } .member-stat-grid article strong { font-size: 20px; } .member-import-panel { padding: 14px; } .member-import-form { align-items: stretch; flex-direction: column; } .member-import-form input { max-width: 100%; } .member-import-actions { align-items: stretch; flex-direction: column; } .admin-outline-button { width: 100%; } }
@media(max-width:1050px) { .content-editor-layout { grid-template-columns: minmax(0, 1.6fr) minmax(245px, .8fr); } .content-editor-heading { grid-template-columns: minmax(0,1fr) 300px; } }
@media(max-width:820px) { .content-editor-heading { grid-template-columns: 1fr; } .content-editor-hero { display: none; } .content-editor-layout { grid-template-columns: 1fr; } .content-editor-aside { grid-template-columns: repeat(2,minmax(0,1fr)); } .editor-contact-card { grid-column: 1 / -1; } }
@media(max-width:580px) { .content-editor-main,.content-list-main { width: calc(100% - 26px); margin-top: 15px; } .content-editor-card { padding: 15px 13px; } .editor-fields,.editor-three-fields { grid-template-columns: 1fr; } .editor-field-wide { grid-column: auto; } .editor-image-picker { grid-template-columns: 1fr; } .content-editor-aside { grid-template-columns: 1fr; } .editor-contact-card { grid-column: auto; } .content-editor-actions { gap: 10px; } .content-editor-actions .admin-button { padding-inline: 10px; } .content-list-hero { align-items: stretch; flex-direction: column; } }

@media(max-width:650px) {
    .admin-main { width: calc(100% - 28px); margin: 30px auto; }
    .admin-heading { align-items: stretch; flex-direction: column; }
    .admin-editor { grid-template-columns: 1fr; padding: 18px; }
    .admin-full-width { grid-column: auto; }
    .admin-topbar { padding-inline: 16px; }
    .admin-brand span { display: block; margin: -3px 0 0; }
    .admin-login-card { padding: 26px; }
}

/* TALTA administrator sign-in */
.admin-login-page { overflow-x: hidden; background: #f4f8fc; }
.login-screen { position: relative; display: flex; min-height: 100vh; min-height: 100svh; align-items: center; }
.login-card { position: relative; z-index: 2; width: min(35.5vw, 545px); min-width: 480px; box-sizing: border-box; margin-left: 9.05vw; padding: clamp(36px, 4vw, 60px) clamp(38px, 4.1vw, 64px); border: 1px solid rgb(255 255 255 / .8); border-radius: 20px; background: rgb(255 255 255 / .96); box-shadow: 0 22px 60px rgb(18 54 91 / .09); }
.login-brand { display: flex; align-items: center; gap: 14px; margin-bottom: 36px; color: #092f5d; font-size: 15px; font-weight: 700; line-height: 1.35; text-decoration: none; }
.login-brand img { display: block; width: 86px; height: 86px; object-fit: contain; }
.login-intro h1 { margin: 0; color: #082e5b; font-size: clamp(36px, 3.15vw, 50px); font-weight: 800; letter-spacing: -.045em; line-height: 1.14; }
.login-subtitle { margin: 4px 0 12px; color: #6c819d; font-size: clamp(17px, 1.5vw, 23px); line-height: 1.4; }
.login-description { max-width: 390px; margin: 0 0 30px; color: #7186a0; font-size: 15px; line-height: 1.7; }
.login-form { display: grid; gap: 10px; }
.login-form > label { margin-top: 2px; color: #092e5d; font-size: 14px; font-weight: 600; }
.login-input-wrap { display: flex; min-height: 55px; align-items: center; gap: 13px; box-sizing: border-box; margin-bottom: 10px; padding: 0 15px; border: 1px solid #ccd9e8; border-radius: 9px; background: #fff; box-shadow: inset 0 1px 2px rgb(8 46 91 / .025); transition: border-color 150ms ease, box-shadow 150ms ease; }
.login-input-wrap:focus-within { border-color: #178ce2; box-shadow: 0 0 0 3px rgb(23 140 226 / .12); }
.login-input-wrap > svg { width: 23px; height: 23px; flex: 0 0 auto; fill: none; stroke: #526f94; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.login-input-wrap input { width: 100%; min-width: 0; height: 51px; padding: 0; border: 0; outline: 0; background: transparent; color: #153c66; font: inherit; font-size: 14px; }
.login-input-wrap input::placeholder { color: #8294ab; opacity: 1; }
.login-password-toggle { display: grid; width: 31px; height: 34px; flex: 0 0 auto; place-items: center; padding: 0; border: 0; background: transparent; color: #526f94; cursor: pointer; }
.login-password-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.login-password-toggle .eye-slash { display: none; }
.login-password-toggle[aria-pressed="false"] .eye-slash { display: block; }
.login-options { display: flex; align-items: center; justify-content: space-between; margin: -1px 0 12px; }
.login-remember { display: inline-flex; align-items: center; gap: 10px; color: #526d8d; font-size: 14px; cursor: pointer; }
.login-remember input { width: 18px; height: 18px; margin: 0; accent-color: #078ee8; }
.login-submit { display: flex; width: 100%; min-height: 58px; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 8px; background: linear-gradient(100deg, #08a94e, #00a84a); color: #fff; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; transition: filter 150ms ease, transform 150ms ease; }
.login-submit:hover { filter: brightness(.96); transform: translateY(-1px); }
.login-submit span { font-size: 22px; font-weight: 400; line-height: 1; }
.login-footer { margin-top: 34px; color: #7186a0; font-size: 13px; text-align: center; }
.login-footer a { margin-left: 5px; color: #078be5; font-weight: 600; text-underline-offset: 3px; }
.login-visual { position: absolute; inset: 0 0 0 42%; overflow: hidden; background-color: #d7eaf7; background-image: url('../images/port-worker-composed.png'); background-position: 42% center; background-size: cover; }
.login-visual::before { position: absolute; inset: 0 auto 0 0; width: 18%; background: linear-gradient(115deg, #f5f9fd 0%, #f5f9fd 34%, rgb(245 249 253 / .85) 100%); clip-path: polygon(0 0, 100% 0, 73% 14%, 45% 34%, 36% 48%, 42% 64%, 67% 88%, 85% 100%, 0 100%); content: ''; }
.login-visual::after { position: absolute; top: 0; right: 0; width: 13%; height: 30%; border-radius: 0 0 0 72px; background: #08a94e; clip-path: polygon(28% 0, 100% 0, 100% 100%, 0 18%); content: ''; }
.login-visual .login-message { position: absolute; right: 0; bottom: 0; z-index: 1; display: flex; width: 54%; min-height: 36%; flex-direction: column; justify-content: center; box-sizing: border-box; padding: 45px clamp(24px, 3vw, 46px) 38px clamp(75px, 8vw, 124px); background: linear-gradient(110deg, #07305d, #052a52); clip-path: polygon(27% 18%, 100% 0, 100% 100%, 0 100%); color: #fff; }
.login-message > span { width: 50px; height: 7px; border-radius: 8px; background: #ff9b16; }
.login-message h2 { margin: 17px 0 3px; color: #fff; font-size: clamp(23px, 2vw, 34px); font-weight: 700; letter-spacing: -.025em; line-height: 1.22; }
.login-message p { margin: 0 0 19px; color: #fff; font-size: clamp(17px, 1.7vw, 27px); line-height: 1.3; }
.login-message > span:last-child { margin-top: 1px; }
.login-visual .login-message::before { position: absolute; top: 28%; left: 7%; width: 36px; height: 160px; border-radius: 40px; background: #11b4dc; transform: rotate(29deg); content: ''; opacity: .9; }
.login-orange-accent { position: absolute; top: 17%; left: 5%; z-index: 1; width: 66px; height: 180px; border-radius: 40px; background: #ff9812; transform: rotate(27deg); }

@media (max-width: 1050px) {
    .login-card { width: 46vw; min-width: 0; margin-left: 5vw; padding: 36px; }
    .login-visual { left: 44%; }
    .login-visual .login-message { width: 58%; padding-left: 82px; }
}
@media (max-width: 700px) {
    .login-screen { min-height: 100svh; justify-content: center; padding: 24px 16px; box-sizing: border-box; }
    .login-card { width: min(100%, 500px); min-width: 0; margin: 0; padding: 30px clamp(22px, 7vw, 38px); border-radius: 16px; }
    .login-brand { gap: 11px; margin-bottom: 27px; font-size: 13px; }
    .login-brand img { width: 68px; height: 68px; }
    .login-intro h1 { font-size: clamp(34px, 10vw, 43px); }
    .login-subtitle { font-size: 18px; }
    .login-description { margin-bottom: 22px; font-size: 14px; }
    .login-visual { position: fixed; inset: 0; opacity: .16; background-position: 40% center; }
    .login-visual::before { width: 55%; opacity: .8; }
    .login-visual::after,.login-visual .login-message { display: none; }
    .login-orange-accent { display: none; }
    .login-footer { margin-top: 26px; }
}
@media (min-width: 701px) and (max-height: 820px) {
    .login-card { padding-top: 28px; padding-bottom: 28px; }
    .login-brand { margin-bottom: 20px; }
    .login-brand img { width: 68px; height: 68px; }
    .login-description { margin-bottom: 18px; }
    .login-input-wrap { min-height: 48px; margin-bottom: 5px; }
    .login-input-wrap input { height: 44px; }
    .login-footer { margin-top: 23px; }
}

/* TALTA admin dashboard */
.portal-page { min-height: 100vh; background: #f0f5fa; }
.portal-layout { display: grid; min-height: 100vh; grid-template-columns: 250px minmax(0, 1fr); }
.portal-sidebar { position: relative; display: flex; min-height: 100vh; flex-direction: column; overflow: hidden; box-sizing: border-box; padding: 27px 13px 20px; background: linear-gradient(180deg, #062f5f, #05284e); color: #fff; }
.portal-brand { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; padding: 0 7px 28px; color: #fff; font-size: 12px; font-weight: 700; line-height: 1.4; text-decoration: none; }
.portal-brand img { width: 65px; height: 65px; border-radius: 50%; background: #fff; object-fit: contain; }
.portal-label { position: relative; z-index: 1; margin: 1px 12px 12px; color: #94aec8; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.portal-nav { position: relative; z-index: 1; display: grid; gap: 7px; }
.portal-nav a,.portal-logout button { display: flex; min-height: 46px; align-items: center; gap: 13px; padding: 0 13px; border-radius: 8px; color: #eef6ff; font: inherit; font-size: 13px; text-decoration: none; transition: background 140ms ease; }
.portal-nav a:hover { background: rgb(255 255 255 / .09); }
.portal-nav a.is-active { background: linear-gradient(100deg, #078ee8, #087feb); color: #fff; font-weight: 600; box-shadow: 0 8px 20px rgb(0 111 220 / .2); }
.portal-nav a > span,.portal-logout button > span { display: inline-grid; width: 23px; place-items: center; color: #d6e9fc; font-size: 21px; line-height: 1; }
.portal-logout { position: relative; z-index: 1; margin-top: auto; }
.portal-logout button { width: 100%; border: 0; background: transparent; text-align: left; cursor: pointer; }
.portal-logout button:hover { background: rgb(255 255 255 / .09); }
.portal-sidebar-decoration { position: absolute; right: -72px; bottom: 80px; left: -38px; height: 145px; border-radius: 55% 45% 0 0; background: linear-gradient(160deg, transparent 35%, rgb(0 139 232 / .26) 36% 58%, transparent 59%), linear-gradient(15deg, transparent 42%, rgb(0 180 98 / .65) 43% 49%, transparent 50%); transform: rotate(-7deg); }
.portal-main { display: flex; min-width: 0; min-height: 100vh; flex-direction: column; }
.portal-main > .admin-main { flex: 1 0 auto; margin-bottom: 18px; }
.portal-main > .portal-footer { width: 100%; max-width: 1550px; box-sizing: border-box; margin: auto auto 0; padding: 18px clamp(20px, 2.3vw, 35px) 28px; }
.portal-topbar { display: flex; height: 76px; align-items: center; justify-content: space-between; box-sizing: border-box; padding: 0 clamp(22px, 3vw, 44px); border-bottom: 1px solid #e5edf4; background: rgb(255 255 255 / .82); }
.portal-topbar-title { display: flex; align-items: center; gap: 12px; color: #7588a0; font-size: 13px; }
.portal-topbar-title a { color: #7588a0; text-decoration: none; }
.portal-topbar-title a:hover { color: #0876b8; }
.portal-topbar-title i { color: #c2cfdb; font-style: normal; }
.portal-topbar-title strong { color: #173a62; font-weight: 600; }
.portal-account { display: flex; align-items: center; gap: 11px; color: #16395f; text-decoration: none; }
.portal-avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #078bea; color: #fff; font-size: 15px; font-weight: 600; }
.portal-account strong,.portal-account small { display: block; }
.portal-account strong { font-size: 12px; }
.portal-account small { margin-top: 2px; color: #71839a; font-size: 10px; }
.portal-account b { margin-left: 6px; color: #607897; font-size: 17px; font-weight: 500; }
.portal-content { max-width: 1550px; margin: 0 auto; padding: 25px clamp(20px, 2.3vw, 35px) 28px; }
.portal-welcome { position: relative; display: grid; min-height: 196px; grid-template-columns: .9fr 1.1fr; overflow: hidden; margin-bottom: 17px; border-radius: 13px; background: linear-gradient(110deg, #f8fbfe, #eaf4fb); }
.portal-welcome-copy { position: relative; z-index: 1; align-self: center; padding: 26px 10px 26px 28px; }
.portal-welcome-copy > p:first-child { margin: 0 0 1px; color: #607b9e; font-size: 18px; }
.portal-welcome-copy h1 { margin: 0 0 5px; color: #082f5e; font-size: clamp(27px, 2.3vw, 38px); font-weight: 800; letter-spacing: -.045em; line-height: 1.18; }
.portal-welcome-copy h1 span { margin-left: 6px; font-size: .78em; }
.portal-welcome-note { margin: 0 0 13px; color: #7287a1; font-size: 12px; }
.portal-primary-link { display: inline-flex; align-items: center; gap: 8px; color: #0786dc; font-size: 12px; font-weight: 700; text-decoration: none; }
.portal-welcome-photo { position: relative; min-height: 196px; background: linear-gradient(90deg, rgb(236 246 253 / .08), transparent), url('../images/port-worker-composed.png') center 40% / cover; clip-path: polygon(11% 0, 100% 0, 100% 100%, 6% 100%, 0 48%); }
.portal-photo-caption { position: absolute; right: 0; bottom: 12px; display: grid; width: 235px; gap: 8px; box-sizing: border-box; padding: 15px 19px; border-radius: 10px 0 0 10px; background: rgb(255 255 255 / .95); color: #0a315f; }
.portal-photo-caption span { width: 35px; height: 4px; border-radius: 5px; background: #ff9812; }
.portal-photo-caption strong { font-size: 13px; line-height: 1.35; }
.portal-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 17px; }
.portal-stat { position: relative; min-height: 136px; box-sizing: border-box; padding: 15px 17px; border: 1px solid #e8eef4; border-radius: 10px; background: #fff; box-shadow: 0 7px 20px rgb(12 52 89 / .035); }
.portal-stat-icon { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 9px; color: #fff; font-size: 22px; }
.stat-blue { background: #078de7; }.stat-green { background: #06a951; }.stat-orange { background: #ff9711; }.stat-violet { background: #8850e8; }
.portal-stat p { margin: 8px 0 1px; color: #70839c; font-size: 12px; }
.portal-stat > strong { color: #082f5e; font-size: 26px; font-weight: 800; line-height: 1.2; }
.portal-stat > a,.portal-stat-hint { position: absolute; right: 16px; bottom: 18px; color: #0786dc; font-size: 10px; text-decoration: none; }
.portal-stat > a span { margin-left: 5px; font-size: 14px; }
.portal-stat-hint { color: #8192a6; }
.portal-lower-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(265px, .8fr); gap: 16px; }
.portal-panel { min-width: 0; padding: 18px; border: 1px solid #e8eef4; border-radius: 10px; background: #fff; box-shadow: 0 7px 20px rgb(12 52 89 / .035); }
.portal-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-bottom: 13px; border-bottom: 1px solid #edf2f6; }
.portal-panel-heading h2 { margin: 0; color: #092f5e; font-size: 15px; font-weight: 700; }
.portal-panel-heading p { margin: 3px 0 0; color: #8292a6; font-size: 10px; }
.portal-panel-heading > a { color: #0786dc; font-size: 10px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.portal-panel-heading > a span { margin-left: 5px; font-size: 14px; }
.portal-recent-list { display: grid; }
.portal-recent-row { display: grid; min-height: 77px; grid-template-columns: 62px minmax(0,1fr) auto 28px; align-items: center; gap: 12px; border-bottom: 1px solid #edf2f6; }
.portal-recent-row:last-child { border-bottom: 0; }
.portal-recent-row > img,.portal-recent-placeholder { display: grid; width: 62px; height: 49px; place-items: center; border-radius: 7px; background: #eaf4fb; color: #0c5489; font-size: 9px; font-weight: 700; object-fit: cover; }
.portal-recent-copy { display: grid; min-width: 0; gap: 2px; }
.portal-content-type { color: #f28a12; font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.portal-recent-copy strong { overflow: hidden; color: #183b61; font-size: 11px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.portal-recent-copy small { color: #8191a4; font-size: 9px; }
.portal-status { padding: 5px 8px; border-radius: 5px; font-size: 9px; font-weight: 600; white-space: nowrap; }
.status-live { background: #e9f8ef; color: #07964a; }.status-draft { background: #fff5e7; color: #dc8110; }.status-scheduled { background: #eaf4ff; color: #277ac0; }
.portal-row-edit { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid #e5edf4; border-radius: 50%; color: #547394; font-size: 16px; text-decoration: none; }
.portal-quick-panel { display: flex; flex-direction: column; gap: 10px; }
.portal-quick-panel .portal-panel-heading { margin-bottom: 1px; }
.portal-action-card { position: relative; display: grid; min-height: 76px; grid-template-columns: 42px minmax(0,1fr) 18px; align-content: center; align-items: center; column-gap: 11px; padding: 11px 12px; border-radius: 8px; color: #12395f; text-decoration: none; }
.portal-action-card > span { display: grid; width: 40px; height: 40px; grid-row: span 2; place-items: center; border-radius: 9px; background: rgb(255 255 255 / .75); font-size: 21px; }
.portal-action-card strong { align-self: end; font-size: 11px; }
.portal-action-card small { align-self: start; margin-top: 2px; color: #74869b; font-size: 9px; }
.portal-action-card b { grid-column: 3; grid-row: 1 / span 2; color: #1d5f91; font-size: 16px; font-weight: 500; }
.action-green { background: #eaf9f0; }.action-green > span { color: #05a74d; }
.action-blue { background: #eaf5fd; }.action-blue > span { color: #078de7; }
.action-orange { background: #fff5e8; }.action-orange > span { color: #f18e10; }
.portal-empty { display: grid; min-height: 270px; align-content: center; justify-items: center; padding: 20px; color: #183b61; text-align: center; }
.portal-empty > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; background: #eaf5fd; color: #078de7; font-size: 22px; }
.portal-empty strong { margin-top: 10px; font-size: 14px; }
.portal-empty p { margin: 5px 0 12px; color: #8191a4; font-size: 11px; }
.portal-footer { padding: 18px 2px 0; color: #8292a6; font-size: 10px; }
.portal-footer span { padding: 0 5px; color: #f18e10; }
.admin-topbar-links { display: flex; align-items: center; gap: 20px; }
.admin-topbar-links > a { color: #dceaf7; font-size: 13px; font-weight: 600; text-decoration: none; }
.admin-topbar-links form { margin: 0; }

@media (max-width: 1050px) {
    .portal-layout { grid-template-columns: 218px minmax(0,1fr); }
    .portal-brand { gap: 8px; font-size: 10px; }
    .portal-brand img { width: 55px; height: 55px; }
    .portal-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-lower-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .portal-layout { display: block; }
    .portal-sidebar { min-height: 0; padding: 9px 12px; }
    .portal-brand { padding: 0 5px 8px; font-size: 11px; }
    .portal-brand img { width: 42px; height: 42px; }
    .portal-label,.portal-sidebar-decoration { display: none; }
    .portal-nav { display: flex; overflow-x: auto; gap: 5px; padding-bottom: 3px; }
    .portal-nav a { min-height: 38px; flex: 0 0 auto; gap: 6px; padding: 0 10px; font-size: 10px; }
    .portal-nav a > span { width: 17px; font-size: 16px; }
    .portal-logout { position: absolute; top: 14px; right: 12px; margin: 0; }
    .portal-logout button { min-height: 34px; gap: 4px; padding: 0 5px; font-size: 10px; }
    .portal-logout button > span { width: 17px; font-size: 17px; }
    .portal-topbar { height: 54px; padding: 0 17px; }
    .portal-topbar-title { font-size: 11px; }
    .portal-account { gap: 7px; }
    .portal-avatar { width: 33px; height: 33px; font-size: 12px; }
    .portal-account > span:nth-child(2),.portal-account b { display: none; }
    .portal-content { padding: 15px 13px 22px; }
    .portal-welcome { min-height: 210px; grid-template-columns: 1fr; }
    .portal-welcome-copy { padding: 20px 20px 18px; }
    .portal-welcome-copy > p:first-child { font-size: 15px; }
    .portal-welcome-copy h1 { max-width: 75%; font-size: 27px; }
    .portal-welcome-note { max-width: 76%; font-size: 10px; }
    .portal-welcome-photo { position: absolute; top: 0; right: 0; bottom: 0; width: 48%; opacity: .45; }
    .portal-photo-caption { display: none; }
    .portal-stats { gap: 9px; }
    .portal-stat { min-height: 124px; padding: 12px; }
    .portal-stat-icon { width: 36px; height: 36px; font-size: 18px; }
    .portal-stat p { font-size: 10px; }
    .portal-stat > strong { font-size: 22px; }
    .portal-stat > a,.portal-stat-hint { right: 11px; bottom: 12px; font-size: 8px; }
    .portal-panel { padding: 13px; }
    .portal-recent-row { grid-template-columns: 48px minmax(0,1fr) auto; gap: 8px; }
    .portal-recent-row > img,.portal-recent-placeholder { width: 48px; height: 43px; }
    .portal-row-edit { display: none; }
}
@media (max-width: 420px) {
    .portal-nav a { font-size: 9px; padding-inline: 7px; }
    .portal-nav a > span { display: none; }
    .portal-recent-row { grid-template-columns: 40px minmax(0,1fr); }
    .portal-recent-row > img,.portal-recent-placeholder { width: 40px; height: 38px; }
    .portal-status { grid-column: 2; justify-self: start; margin-top: -5px; }
}

/* Admin user and role management */
.admin-filters { display: flex; align-items: end; gap: 12px; margin: 0 0 18px; padding: 16px; border: 1px solid #e1eaf0; border-radius: 10px; background: #fff; }
.admin-filters label { display: grid; min-width: 180px; gap: 6px; color: #60758a; font-size: 11px; font-weight: 600; }
.admin-filters .admin-search-label { flex: 1; }
.admin-filters input,.admin-filters select { min-height: 40px; box-sizing: border-box; padding: 8px 11px; border: 1px solid #cfdae3; border-radius: 6px; background: #fff; color: #20394f; font: inherit; font-size: 12px; }
.admin-filter-button { min-height: 40px; padding: 0 18px; border: 0; border-radius: 6px; background: #0b76b8; color: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.admin-clear-filter { padding: 10px 3px; color: #12639c; font-size: 12px; font-weight: 600; text-decoration: none; }
.role-badge { display: inline-block; padding: 5px 9px; border-radius: 20px; background: #edf5fc; color: #255a86; font-size: 11px; font-weight: 600; }
.account-state { display: inline-block; padding: 5px 9px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.account-active { background: #e9f8ef; color: #08783f; }.account-inactive { background: #fff0f0; color: #ae3232; }
.admin-checkbox.admin-full-width { display: flex !important; align-items: start; }
.permission-fieldset { display: grid; gap: 0; padding: 0; border: 0; }
.permission-fieldset legend { margin-bottom: 5px; color: #24435e; font-size: 14px; font-weight: 700; }
.permission-fieldset > p { margin: 0 0 8px; color: #74889a; font-size: 12px; }
.permission-option { display: flex !important; grid-template-columns: none !important; align-items: flex-start; gap: 12px !important; padding: 14px 2px; border-top: 1px solid #edf2f5; cursor: pointer; }
.permission-option input { width: 17px; height: 17px; flex: 0 0 auto; margin: 2px 0 0; accent-color: #08a94e; }
.permission-option strong,.permission-option small { display: block; }
.permission-option strong { color: #24435e; font-size: 13px; }
.permission-option small { margin-top: 3px; color: #74889a; font-size: 11px; font-weight: 400; }
.role-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px; }
.role-card { display: flex; min-height: 300px; flex-direction: column; padding: 19px; border: 1px solid #e1eaf0; border-radius: 11px; background: #fff; box-shadow: 0 10px 30px rgb(6 47 95 / .045); }
.role-card-heading { display: flex; align-items: center; justify-content: space-between; }
.role-avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 11px; font-size: 16px; font-weight: 700; }
.role-admin { background: #eaf3fd; color: #087bd0; }.role-agent { background: #eaf8ef; color: #089348; }.role-member { background: #fff5e7; color: #e2830e; }
.role-user-count { color: #778a9d; font-size: 10px; }
.role-card h2 { margin: 13px 0 4px; color: #153b63; font-size: 17px; }
.role-card > p { min-height: 34px; margin: 0 0 10px; color: #788ba0; font-size: 11px; line-height: 1.5; }
.role-permission-list { display: grid; gap: 8px; margin: 0 0 14px; padding: 12px 0 0; border-top: 1px solid #edf2f5; list-style: none; }
.role-permission-list li { display: flex; gap: 8px; color: #9aa7b4; font-size: 10px; }
.role-permission-list li > span { color: #aeb9c4; font-weight: 800; }
.role-permission-list li.permission-enabled { color: #3d5c77; }
.role-permission-list li.permission-enabled > span { color: #08a451; }
.role-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 12px; border-top: 1px solid #edf2f5; }
.role-card-actions a { color: #0876b8; font-size: 11px; font-weight: 700; text-decoration: none; }
.role-card-actions .role-protected-label { color: #8292a6; font-size: 10px; font-weight: 600; }
.role-security-note { margin: 18px 0 0; padding: 14px 16px; border: 1px solid #dcebf6; border-radius: 8px; background: #f0f8fd; color: #58718b; font-size: 11px; }
@media(max-width:850px) { .role-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
    .admin-filters { align-items: stretch; flex-direction: column; }
    .admin-filters label { min-width: 0; }
    .role-card-grid { grid-template-columns: 1fr; }
    .admin-topbar-links { gap: 10px; }
    .admin-topbar-links > a { font-size: 11px; }
}

.news-card-body {
    display: grid;
    min-height: 155px;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 14px;
    padding: 14px 16px 13px;
}

.news-date {
    display: flex;
    align-items: center;
    flex-direction: column;
    color: var(--talta-navy);
    line-height: 1.25;
}

.news-date strong {
    font-size: 20px;
    font-weight: 800;
}

.news-date span {
    color: var(--talta-body);
    font-size: 9px;
    white-space: nowrap;
}

.news-card-body h3 {
    margin: 0 0 6px;
    color: var(--talta-navy);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}

.news-card-body p {
    margin: 0 0 6px;
    color: var(--talta-body);
    font-size: 10px;
    line-height: 1.4;
}

.partners-section {
    padding-top: 10px;
    padding-bottom: 38px;
    background: var(--talta-background);
}

.partners-section > .container > .eyebrow {
    margin-bottom: 19px;
}

.partner-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.partner-name {
    display: flex;
    min-height: 98px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 12px;
    border: 1px solid #eef3f6;
    border-radius: 9px;
    background: #fff;
    text-align: center;
}

.partner-name strong {
    color: var(--talta-blue);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.1;
}

.partner-logo {
    display: block;
    width: min(75%, 160px);
    height: 75px;
    object-fit: contain;
}

.partner-logo-crest {
    width: 75px;
}

.partner-logo-square { width: 70px; height: 70px; }
.partner-logo-nit { width: 67px; height: 67px; }
.partner-logo-taa { width: min(78%, 150px); height: 70px; }
.partner-logo-ministry { width: min(78%, 150px); height: 70px; }

.partner-logo-latra {
    width: min(75%, 150px);
    height: 75px;
}

.partner-logo-tasac {
    width: 115px;
}

.partner-name:nth-child(2) strong {
    color: var(--talta-green);
}

.partner-name span {
    color: var(--talta-navy);
    font-size: 10px;
    font-weight: 600;
    line-height: 1.35;
}

.site-footer {
    background: linear-gradient(115deg, #002a55, #002447 62%, #00305e);
    color: #fff;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.85fr 1.1fr 1fr;
    gap: 42px;
    padding-block: 48px 36px;
}

.footer-grid > div + div {
    padding-left: 26px;
    border-left: 1px solid rgb(255 255 255 / 0.15);
}

.footer-brand {
    color: #fff;
    font-size: 11px;
}

.footer-brand img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
}

.footer-grid h2 {
    margin: 0 0 14px;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.footer-grid p,
.footer-links,
.footer-contact {
    color: #d4e0eb;
    font-size: 11px;
    line-height: 1.6;
}

.footer-about p {
    max-width: 245px;
    margin: 15px 0;
}

.footer-social {
    display: flex;
    gap: 8px;
}

.footer-social span {
    width: 34px;
    height: 34px;
    border: 0;
    background: #fff;
    color: var(--talta-navy-dark);
}

.footer-links,
.footer-contact {
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-links li,
.footer-contact li {
    margin: 0 0 7px;
}

.footer-contact li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.footer-contact-icon {
    display: inline-flex;
    width: 23px;
    height: 23px;
    flex: 0 0 23px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgb(255 255 255 / 0.75);
    border-radius: 50%;
}

.footer-contact-icon svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.footer-links li::before {
    padding-right: 7px;
    color: var(--talta-orange);
    content: "›";
    font-weight: 700;
}

.footer-links a:hover,
.footer-contact a:hover {
    color: #fff;
    text-decoration: underline;
}

.newsletter-form {
    display: grid;
    gap: 9px;
    margin-top: 14px;
}

.newsletter-form input {
    width: 100%;
    min-height: 50px;
    padding: 0 12px;
    border: 1px solid #d9e2eb;
    border-radius: 5px;
    background: #fff;
    color: var(--talta-text);
    font: inherit;
    font-size: 11px;
}

.newsletter-form .button {
    min-height: 50px;
    justify-self: stretch;
    border: 0;
    cursor: pointer;
}

.copyright {
    padding-block: 15px;
    border-top: 1px solid rgb(255 255 255 / 0.16);
    color: #cad9e7;
    font-size: 9px;
    text-align: center;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    clip-path: inset(50%);
}

.interior-content {
    width: 100%;
    min-height: 360px;
    margin-inline: auto;
    padding: 0;
}

.interior-content > h2 {
    margin: 0 0 20px;
    color: var(--talta-navy);
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.2;
}

.interior-content > h3 {
    margin: 28px 0 10px;
    color: var(--talta-navy);
    font-size: 22px;
}

.interior-content p,
.interior-content li {
    color: var(--talta-body);
}

.interior-content img {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
}

.interior-content iframe {
    border: 1px solid var(--talta-border);
    border-radius: 8px;
}

.interior-content input,
.interior-content textarea {
    max-width: 100%;
    padding: 9px 11px;
    border: 1px solid var(--talta-border);
    border-radius: 5px;
    font: inherit;
}

@media (max-width: 1100px) {
    .desktop-nav {
        gap: 12px;
    }

    .nav-link {
        font-size: 11px;
    }

    .brand {
        font-size: 10px;
    }

    .brand img {
        width: 49px;
        height: 49px;
    }

    .header-inner {
        gap: 14px;
    }

    .header-search {
        flex-basis: 32px;
        width: 32px;
        height: 32px;
    }

    .header-cta {
        padding-inline: 12px;
        font-size: 10px;
    }

    .footer-grid {
        gap: 24px;
    }
}

@media (min-width: 1300px) {
    body {
        font-size: clamp(14px, 1.02vw, 20px);
    }

    .topbar,
    .topbar-inner {
        min-height: clamp(38px, 3vw, 58px);
    }

    .topbar {
        font-size: clamp(11px, 0.94vw, 18px);
    }

    .header-inner {
        min-height: clamp(90px, 6.85vw, 132px);
    }

    .brand {
        font-size: clamp(12px, 0.91vw, 18px);
    }

    .brand img {
        width: clamp(64px, 5.4vw, 104px);
        height: clamp(64px, 5.4vw, 104px);
    }

    .nav-link {
        font-size: clamp(12px, 0.86vw, 17px);
    }

    .button {
        min-height: clamp(44px, 3.5vw, 67px);
        padding-inline: clamp(19px, 1.6vw, 31px);
        font-size: clamp(12px, 0.85vw, 17px);
    }

    .header-cta {
        min-height: clamp(42px, 3.2vw, 61px);
    }

    .hero-grid,
    .hero-visual {
        min-height: clamp(505px, 39vw, 750px);
    }

    .hero-photo {
        height: clamp(480px, 38vw, 730px);
    }

    .hero-visual,
    .services-visual {
        margin-right: calc((100vw - min(88vw, 1680px)) / -2);
    }

    .hero-copy {
        transform: translateY(-15px);
    }

    .hero-copy h1 {
        font-size: clamp(60px, 4.2vw, 81px);
    }

    .hero-description {
        max-width: clamp(530px, 36vw, 690px);
        font-size: clamp(15px, 1.18vw, 23px);
        line-height: 1.55;
    }

    .eyebrow {
        font-size: clamp(11px, 0.82vw, 16px);
    }

    .hero-note {
        right: 2%;
        width: 29%;
        max-width: 290px;
    }

    .hero-note p {
        font-size: clamp(12px, 0.82vw, 16px);
    }

    .hero-note strong {
        font-size: clamp(13px, 0.9vw, 18px);
    }

    .about-photo-wrap img {
        height: clamp(320px, 25.25vw, 485px);
    }

    .about-copy h2,
    .section-heading h2,
    .services-copy h2 {
        font-size: clamp(39px, 2.85vw, 55px);
    }

    .about-copy > p:not(.eyebrow),
    .section-heading > p:not(.eyebrow),
    .section-intro {
        max-width: 790px;
        font-size: clamp(13px, 0.98vw, 19px);
    }

    .membership-section {
        padding-block: clamp(25px, 2.5vw, 48px) clamp(23px, 2.4vw, 46px);
    }

    .section-heading-centered {
        margin-bottom: 18px;
    }

    .membership-card {
        min-height: clamp(210px, 15.7vw, 300px);
        grid-template-columns: clamp(92px, 6.7vw, 120px) minmax(0, 1fr) 40px;
        align-items: start;
        gap: clamp(24px, 3.9vw, 70px);
        padding-top: clamp(25px, 1.8vw, 34px);
        padding-left: clamp(30px, 2.8vw, 50px);
    }

    .membership-icon {
        width: clamp(90px, 6.2vw, 112px);
        height: clamp(90px, 6.2vw, 112px);
    }

    .membership-icon svg {
        width: clamp(44px, 3.4vw, 60px);
        height: clamp(44px, 3.4vw, 60px);
    }

    .membership-copy {
        margin-top: clamp(8px, 0.6vw, 12px);
    }

    .membership-card .round-arrow {
        margin-top: clamp(44px, 3.7vw, 70px);
    }

    .membership-copy h3 {
        font-size: clamp(18px, 1.3vw, 25px);
    }

    .membership-copy p {
        font-size: clamp(14px, 1.04vw, 20px);
    }

    .membership-copy .button {
        min-height: clamp(40px, 2.9vw, 54px);
        font-size: clamp(12px, 0.87vw, 17px);
    }

    .services-section {
        padding-top: 30px;
    }

    .services-visual,
    .services-visual > img {
        min-height: 0;
        height: clamp(335px, 29vw, 557px);
    }

    .service-card {
        min-height: clamp(220px, 18.2vw, 350px);
        align-items: center;
        text-align: center;
    }

    .service-card svg {
        width: clamp(48px, 3.7vw, 67px);
        height: clamp(48px, 3.7vw, 67px);
    }

    .service-card h3 {
        font-size: clamp(14px, 1.15vw, 22px);
    }

    .service-card p {
        font-size: clamp(12px, 0.92vw, 18px);
    }

    .services-message {
        width: 92%;
        min-height: 50%;
    }

    .services-message p {
        font-size: clamp(19px, 1.42vw, 27px);
    }

    .president-section {
        padding-block: 52px 65px;
    }

    .president-grid {
        grid-template-columns: clamp(340px, 26.7vw, 513px) minmax(0, 1fr);
        gap: clamp(40px, 3vw, 58px);
    }

    .president-photo {
        min-height: clamp(265px, 20.8vw, 400px);
    }

    .president-photo img {
        width: 100%;
        height: clamp(265px, 20.8vw, 400px);
    }

    .message-body p {
        font-size: clamp(14px, 1.08vw, 21px);
    }

    .news-heading h2 {
        font-size: clamp(34px, 2.5vw, 48px);
    }

    .news-card img,
    .news-reference-photo {
        height: clamp(110px, 8.2vw, 157px);
    }

    .news-card-body {
        min-height: clamp(160px, 12.7vw, 244px);
    }

    .news-card-body h3 {
        font-size: clamp(11px, 0.87vw, 17px);
    }

    .news-card-body p,
    .news-view-all,
    .news-card-body a {
        font-size: clamp(10px, 0.78vw, 15px);
    }

    .partners-section {
        padding-top: 50px;
        padding-bottom: 60px;
    }

    .partner-name {
        min-height: clamp(135px, 12.5vw, 240px);
    }

    .partner-logo {
        height: clamp(78px, 5.5vw, 105px);
    }

    .partner-name strong {
        font-size: clamp(22px, 1.75vw, 34px);
    }

    .partner-name span {
        font-size: clamp(11px, 0.78vw, 15px);
    }

    .footer-grid {
        padding-block: 55px 38px;
    }

    .footer-grid h2 {
        font-size: clamp(19px, 1.25vw, 24px);
    }

    .footer-grid p,
    .footer-links,
    .footer-contact {
        font-size: clamp(16px, 1.08vw, 21px);
    }

    .footer-brand {
        font-size: clamp(15px, 0.98vw, 19px);
    }

    .footer-brand img {
        width: clamp(78px, 5.5vw, 105px);
        height: clamp(78px, 5.5vw, 105px);
    }

    .footer-about p {
        max-width: 355px;
    }

    .footer-social span {
        width: clamp(34px, 2.25vw, 43px);
        height: clamp(34px, 2.25vw, 43px);
    }

    .newsletter-form input,
    .newsletter-form .button {
        min-height: clamp(50px, 3.3vw, 64px);
    }

.copyright {
        padding-block: 23px 50px;
        font-size: clamp(11px, 0.8vw, 15px);
    }
}

.interior-heading {
    position: relative;
    overflow: hidden;
    padding: 34px 0 56px;
    background: linear-gradient(112deg, #f3f9fc 0%, #f8fbfd 58%, #eef7fb 100%);
}

.interior-heading::after {
    position: absolute;
    right: -70px;
    bottom: -180px;
    width: 470px;
    height: 330px;
    border: 44px solid rgb(10 174 75 / 0.07);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.interior-heading .container {
    position: relative;
    z-index: 1;
}

.interior-breadcrumb {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 34px;
    color: #77889a;
    font-size: 12px;
}

.interior-breadcrumb a {
    color: var(--talta-navy);
    font-weight: 600;
}

.interior-heading .eyebrow {
    margin-bottom: 10px;
}

.interior-heading h1 {
    max-width: 940px;
    margin: 0;
    color: var(--talta-navy-dark);
    font-size: clamp(34px, 4vw, 58px);
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.1;
}

.interior-intro {
    max-width: 760px;
    margin: 15px 0 0;
    color: var(--talta-body);
    font-size: clamp(14px, 1.2vw, 18px);
    line-height: 1.7;
}

.interior-section {
    padding: 62px 0 88px;
}

.interior-section h2 {
    margin: 0 0 16px;
    color: var(--talta-navy-dark);
    font-size: clamp(25px, 3vw, 39px);
    font-weight: 750;
    letter-spacing: -0.035em;
    line-height: 1.2;
}

.interior-section h3 {
    color: var(--talta-navy);
}

.interior-section p,
.interior-section li {
    color: var(--talta-body);
}

.interior-section p {
    line-height: 1.8;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 13px;
    color: var(--talta-blue);
    font-size: 14px;
    font-weight: 700;
}

.leader-feature {
    position: relative;
    display: grid;
    grid-template-columns: minmax(270px, 0.78fr) minmax(0, 1.5fr);
    min-height: 330px;
    overflow: hidden;
    margin-bottom: 36px;
    border-radius: 20px;
    background: linear-gradient(110deg, #062f5f 0%, #073966 100%);
    box-shadow: 0 22px 55px rgb(6 47 95 / 0.14);
}

.leader-feature-photo {
    min-height: 330px;
    background: #eaf1f5;
}

.leader-feature-photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 330px;
    object-fit: contain;
    object-position: center;
    background: #eaf1f5;
}

.leader-feature-copy {
    position: relative;
    z-index: 1;
    align-self: center;
    padding: 42px 56px;
}

.leader-feature-copy .eyebrow {
    color: #ffb34f;
}

.leader-feature-copy h2 {
    max-width: 640px;
    color: #fff;
}

.leader-feature-copy > p:not(.eyebrow) {
    max-width: 620px;
    margin: 0;
    color: #d0deea;
}

.leader-feature-copy .text-link {
    color: #61c4f1;
}

.leader-feature-mark {
    position: absolute;
    right: 35px;
    bottom: -42px;
    color: rgb(255 255 255 / 0.055);
    font-size: clamp(88px, 14vw, 190px);
    font-weight: 800;
    letter-spacing: -0.09em;
    line-height: 1;
    pointer-events: none;
}

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

.leader-card {
    overflow: hidden;
    border: 1px solid var(--talta-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 28px rgb(6 47 95 / 0.055);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.leader-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 36px rgb(6 47 95 / 0.11);
}

.leader-card img {
    display: block;
    width: 100%;
    height: 280px;
    object-fit: contain;
    object-position: center;
    background: #f2f6f8;
}

.leader-card div {
    min-height: 112px;
    padding: 18px 20px 20px;
}

.leader-role {
    display: block;
    color: var(--talta-orange);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.055em;
    line-height: 1.5;
    text-transform: uppercase;
}

.leader-card h3 {
    margin: 6px 0 0;
    font-size: 17px;
    line-height: 1.45;
}

.history-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
    align-items: center;
    gap: clamp(38px, 6vw, 100px);
}

.history-copy h2 {
    max-width: 620px;
}

.history-copy > p:not(.eyebrow) {
    margin: 0 0 17px;
}

.history-photo {
    margin: 0;
    padding: 10px;
    border: 1px solid var(--talta-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 22px 50px rgb(6 47 95 / 0.1);
}

.history-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 1.22;
    object-fit: cover;
    border-radius: 11px;
}

.history-photo figcaption {
    padding: 12px 8px 3px;
    color: #718195;
    font-size: 12px;
}

.history-facts {
    display: flex;
    gap: 18px;
    margin-top: 26px;
}

.history-facts div {
    display: flex;
    min-width: 165px;
    flex-direction: column;
    padding: 17px 20px;
    border-left: 3px solid var(--talta-green);
    border-radius: 0 10px 10px 0;
    background: var(--talta-light-blue);
}

.history-facts strong {
    color: var(--talta-navy);
    font-size: 24px;
    line-height: 1.2;
}

.history-facts span {
    color: var(--talta-body);
    font-size: 12px;
}

.purpose-section {
    background: linear-gradient(180deg, #fff 0%, #f8fbfd 100%);
}

.motto-panel {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: 26px;
    padding: 25px 32px;
    border: 1px solid #dcedf7;
    border-radius: 14px;
    background: #f2f9fd;
}

.motto-icon {
    color: var(--talta-blue);
    font-size: 64px;
    font-weight: 700;
    line-height: 0.75;
}

.motto-panel p {
    margin: 5px 0 0;
    color: var(--talta-navy);
    font-size: clamp(18px, 2vw, 25px);
    font-weight: 600;
}

.purpose-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.purpose-card {
    position: relative;
    min-height: 260px;
    overflow: hidden;
    padding: 32px;
    border: 1px solid var(--talta-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 35px rgb(6 47 95 / 0.06);
}

.purpose-card .eyebrow {
    position: relative;
    z-index: 1;
}

.purpose-card h2 {
    position: relative;
    z-index: 1;
    margin-bottom: 9px;
    font-size: 25px;
}

.purpose-card p:last-child {
    position: relative;
    z-index: 1;
    max-width: 580px;
    margin: 0;
}

.purpose-number {
    position: absolute;
    right: 20px;
    bottom: -30px;
    color: rgb(7 159 227 / 0.065);
    font-size: 150px;
    font-weight: 800;
    line-height: 1;
}

.purpose-mission .purpose-number {
    color: rgb(10 174 75 / 0.07);
}

.objectives-panel {
    display: grid;
    grid-template-columns: 0.75fr 1.25fr;
    gap: 55px;
    margin-top: 26px;
    padding: 38px;
    border-radius: 16px;
    background: var(--talta-navy-dark);
}

.objectives-heading h2,
.objectives-heading > p:last-child {
    color: #fff;
}

.objectives-heading .eyebrow {
    color: #ffb34f;
}

.objectives-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 28px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: objective;
}

.objectives-list li {
    position: relative;
    padding: 0 0 0 38px;
    color: #dce8f1;
    counter-increment: objective;
}

.objectives-list li::before {
    position: absolute;
    top: -2px;
    left: 0;
    color: #57c2ef;
    content: "0" counter(objective);
    font-size: 13px;
    font-weight: 700;
}

.membership-page-section {
    background: #fff;
}

.membership-types-heading {
    margin-bottom: 22px;
}

.membership-types-heading .eyebrow,
.membership-types-heading h2 {
    margin-bottom: 8px;
}

.membership-type-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.membership-type-card {
    position: relative;
    padding: 28px 30px;
    border: 1px solid var(--talta-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 12px 32px rgb(6 47 95 / 0.055);
}

.membership-type-icon {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 50%;
    background: var(--talta-light-blue);
    color: var(--talta-blue);
    font-size: 12px;
    font-weight: 800;
}

.membership-type-card h3 {
    margin: 15px 0 10px;
    font-size: 20px;
}

.membership-type-card ul,
.qualification-card ol {
    margin: 0;
    padding-left: 20px;
}

.membership-type-card li,
.qualification-card li {
    margin: 0 0 9px;
    padding-left: 3px;
    line-height: 1.65;
}

.membership-type-card li::marker,
.qualification-card li::marker {
    color: var(--talta-green);
    font-weight: 700;
}

.membership-next-steps {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 24px;
    margin-top: 26px;
}

.qualification-card,
.benefits-card {
    padding: 32px;
    border-radius: 16px;
    background: #f5f9fc;
}

.benefits-card {
    background: #eff8f3;
}

.qualification-card h2,
.benefits-card h2 {
    font-size: 27px;
}

.qualification-card a {
    color: var(--talta-blue);
    font-weight: 700;
}

.benefits-card ul {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 16px 0 24px;
    padding: 0;
    list-style: none;
}

.benefits-card li {
    padding: 7px 11px;
    border: 1px solid #cfe6d9;
    border-radius: 20px;
    background: #fff;
    color: #426b55;
    font-size: 12px;
}

.message-layout {
    display: grid;
    grid-template-columns: minmax(240px, 0.68fr) minmax(0, 1.6fr);
    align-items: start;
    gap: clamp(35px, 6vw, 95px);
}

.message-profile {
    position: sticky;
    top: 30px;
    overflow: hidden;
    border: 1px solid var(--talta-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 16px 40px rgb(6 47 95 / 0.08);
}

.message-profile img {
    display: block;
    width: 100%;
    aspect-ratio: 0.9;
    object-fit: cover;
    object-position: center 20%;
    background: #eef3f6;
}

.message-profile div {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 17px 20px 20px;
}

.message-profile strong {
    color: var(--talta-navy);
    font-size: 16px;
}

.message-profile span {
    color: var(--talta-body);
    font-size: 12px;
}

.message-copy {
    position: relative;
    padding-left: 50px;
}

.message-copy p {
    margin: 0 0 20px;
}

.message-copy > p:first-of-type {
    color: var(--talta-navy);
    font-size: 19px;
    font-weight: 500;
    line-height: 1.75;
}

.message-quote {
    position: absolute;
    top: -23px;
    left: -3px;
    color: var(--talta-blue);
    font-size: 86px;
    font-weight: 800;
    line-height: 1;
}

.message-signature {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 30px !important;
    padding-top: 20px;
    border-top: 1px solid var(--talta-border);
}

.message-signature strong {
    color: var(--talta-navy);
}

.message-signature span {
    color: var(--talta-orange);
    font-size: 12px;
    font-weight: 700;
}

.contact-section {
    background: linear-gradient(180deg, #fff 0%, #f7fafc 100%);
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
    gap: clamp(38px, 6vw, 90px);
}

.contact-details h2,
.contact-form-card h2 {
    font-size: clamp(27px, 3vw, 36px);
}

.contact-lead {
    max-width: 450px;
    margin: 0 0 24px;
}

.contact-info-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-top: 13px;
    padding: 17px;
    border: 1px solid var(--talta-border);
    border-radius: 12px;
    background: #fff;
    color: inherit;
    box-shadow: 0 9px 25px rgb(6 47 95 / 0.045);
}

.contact-info-icon {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 50%;
    background: var(--talta-light-blue);
    color: var(--talta-blue);
    font-size: 20px;
}

.contact-info-card > span:last-child {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.contact-info-card strong {
    color: var(--talta-navy);
    font-size: 14px;
}

.contact-info-card small {
    color: var(--talta-body);
    font-size: 12px;
    line-height: 1.65;
}

.contact-info-card small a {
    color: var(--talta-blue);
    font-weight: 600;
}

.contact-form-card {
    padding: 34px;
    border: 1px solid var(--talta-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 46px rgb(6 47 95 / 0.08);
}

.contact-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.contact-form label {
    display: flex;
    flex-direction: column;
    gap: 7px;
    color: var(--talta-navy);
    font-size: 12px;
    font-weight: 600;
}

.contact-form input,
.contact-form textarea {
    width: 100%;
    max-width: none;
    padding: 12px 14px;
    border: 1px solid #dce6ed;
    border-radius: 8px;
    background: #fbfdfe;
    color: var(--talta-text);
    font: inherit;
    font-weight: 400;
}

.contact-form textarea {
    resize: vertical;
}

.contact-form-wide {
    grid-column: 1 / -1;
}

.document-section {
    padding-top: 42px;
}

.document-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.document-toolbar h2 {
    margin-bottom: 0;
    font-size: 25px;
}

.document-toolbar .eyebrow {
    margin-bottom: 6px;
}

.document-toolbar .button {
    white-space: nowrap;
}

.document-frame {
    overflow: hidden;
    border: 1px solid var(--talta-border);
    border-radius: 14px;
    background: #e9eef2;
    box-shadow: 0 18px 46px rgb(6 47 95 / 0.09);
}

.document-frame iframe {
    display: block;
    width: 100%;
    height: min(82vh, 1000px);
    min-height: 680px;
    border: 0;
    border-radius: 0;
    background: #fff;
}

@media (min-width: 1001px) and (max-width: 1299px) {
    .services-visual {
        margin-right: calc((100vw - min(88vw, 1680px)) / -2);
    }
}

@media (max-width: 1000px) {
    .container {
        width: min(100% - 36px, 900px);
    }

    .topbar-inner {
        justify-content: center;
    }

    .topbar-social {
        display: none;
    }

    .topbar-contact {
        justify-content: center;
        gap: 7px 19px;
        padding-block: 7px;
    }

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

    .desktop-nav,
    .header-search,
    .header-auth-actions {
        display: none;
    }

    .mobile-nav {
        position: relative;
        display: block;
    }

    .mobile-nav summary {
        display: flex;
        width: 42px;
        height: 42px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        border: 1px solid var(--talta-border);
        border-radius: 8px;
        cursor: pointer;
        list-style: none;
    }

    .mobile-nav summary::-webkit-details-marker {
        display: none;
    }

    .mobile-nav summary span {
        width: 18px;
        height: 2px;
        background: var(--talta-navy);
    }

    .mobile-nav nav {
        position: absolute;
        top: calc(100% + 12px);
        right: 0;
        display: grid;
        width: min(82vw, 310px);
        padding: 12px;
        border: 1px solid var(--talta-border);
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 16px 36px rgb(6 47 95 / 0.16);
    }

    .mobile-nav nav a {
        padding: 10px 11px;
        border-radius: 6px;
        color: var(--talta-navy);
        font-size: 13px;
        font-weight: 600;
    }

    .mobile-nav nav a:hover,
    .mobile-nav nav a:focus-visible {
        background: var(--talta-light-blue);
    }

    .mobile-nav nav form { margin: 0; }
    .mobile-nav nav button { width: 100%; padding: 10px 11px; border: 0; border-radius: 6px; background: transparent; color: var(--talta-navy); font: inherit; font-size: 13px; font-weight: 600; text-align: left; }
    .mobile-nav nav button:hover,.mobile-nav nav button:focus-visible { background: var(--talta-light-blue); }

    .hero-section {
        padding-top: 0;
    }

    .hero-grid {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 0;
    }

    .hero-copy {
        padding: 48px 0 28px;
    }

    .hero-copy h1 {
        font-size: clamp(40px, 8vw, 58px);
    }

    .hero-visual {
        min-height: 320px;
        margin-right: 12px;
        align-items: center;
    }

    .hero-photo {
        height: 315px;
    }

    .hero-vest-logo {
        display: none;
    }

    .hero-note {
        right: -10px;
        bottom: 4px;
        width: 188px;
        min-height: 0;
        height: auto;
        flex-direction: row;
        align-items: center;
        gap: 12px;
        padding: 15px;
        border-radius: 8px;
        box-shadow: 0 10px 28px rgb(6 47 95 / 0.1);
        clip-path: none;
    }

    .hero-note p::after {
        display: none;
    }

    .section-space {
        padding-block: 52px;
    }

    .about-grid,
    .services-grid,
    .president-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .about-photo-wrap {
        order: -1;
    }

    .about-photo-wrap img {
        height: auto;
        max-height: 360px;
    }

    .services-visual {
        min-height: 290px;
    }

    .services-visual::before {
        display: none;
    }

    .services-visual > img {
        height: 275px;
    }

    .services-message {
        right: 0;
        left: auto;
        width: min(86%, 340px);
        min-height: 118px;
        padding: 23px 28px;
    }

    .president-photo {
        min-height: 260px;
        justify-content: start;
    }

    .president-photo img {
        width: min(70%, 275px);
        height: 260px;
    }

    .partner-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

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

    .footer-grid > div + div {
        padding-left: 0;
        border-left: 0;
    }
}

/* Online TALTA membership application */
.membership-application-hero { position: relative; overflow: hidden; min-height: 190px; display: flex; align-items: center; background: linear-gradient(90deg, rgb(236 246 255 / .98) 0%, rgb(236 246 255 / .94) 37%, rgb(236 246 255 / .18) 74%), url('../images/port-worker.jpg') center 43% / cover no-repeat; }
.membership-application-hero .container { position: relative; z-index: 1; padding-block: 26px; }
.membership-application-hero .eyebrow { margin: 0 0 17px; color: var(--talta-navy); }
.membership-application-hero h1 { max-width: 780px; margin: 0; color: #0b315d; font-size: clamp(32px, 4.1vw, 52px); font-weight: 800; letter-spacing: -.045em; line-height: 1.08; }
.membership-application-hero > .container > p:last-child { max-width: 620px; margin: 10px 0 0; color: #627e9c; font-size: 15px; line-height: 1.55; }
.membership-application-section { padding: 24px 0 60px; background: linear-gradient(180deg, #f8fbfe, #f3f8fb); }
.membership-application-layout { display: grid; grid-template-columns: minmax(0, 2.08fr) minmax(275px, .85fr); align-items: start; gap: 18px; }
.application-card,.application-aside-card { border: 1px solid #e7eef5; border-radius: 14px; background: rgb(255 255 255 / .97); box-shadow: 0 12px 35px rgb(10 50 91 / .055); }
.application-card { min-width: 0; padding: clamp(20px, 2.1vw, 34px); }
.application-stepper { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); margin: 0 0 28px; }
.application-stepper::before { position: absolute; top: 17px; right: 10%; left: 10%; height: 2px; background: #e5edf5; content: ''; }
.application-step-indicator { position: relative; z-index: 1; display: grid; width: 100%; justify-items: center; gap: 7px; padding: 0; border: 0; background: transparent; color: #687e98; font: inherit; text-align: center; cursor: pointer; }
.application-step-indicator:focus-visible { border-radius: 8px; outline: 3px solid rgb(7 142 232 / .28); outline-offset: 4px; }
.application-step-indicator:hover > span { box-shadow: 0 0 0 4px rgb(7 142 232 / .1); }
.application-step-indicator > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #f0f4f8; color: #526984; font-size: 13px; font-weight: 700; }
.application-step-indicator > small { max-width: 150px; font-size: 10px; font-weight: 600; line-height: 1.35; }
.application-step-indicator.is-current > span,.application-step-indicator.is-complete > span { background: #078ee8; color: #fff; box-shadow: 0 4px 12px rgb(7 142 232 / .2); }
.application-step-indicator.is-current > small,.application-step-indicator.is-complete > small { color: #0d3967; }
.application-step-panel[hidden] { display: none; }
.application-step-panel h2 { margin: 0 0 5px; color: #103a68; font-size: clamp(20px, 2vw, 25px); font-weight: 800; letter-spacing: -.035em; }
.application-step-intro { margin: 0 0 21px; color: #72859a; font-size: 13px; line-height: 1.55; }
.membership-type-options { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 13px; margin-bottom: 22px; }
.membership-choice { position: relative; display: grid; min-height: 110px; grid-template-columns: 64px minmax(0,1fr) 19px; align-items: center; gap: 14px; padding: 16px; border: 1px solid #e1eaf2; border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.membership-choice:hover { border-color: #9edeb9; }
.membership-choice.is-selected { border-color: #08a94e; background: linear-gradient(110deg,#effbf4,#f8fdf9); box-shadow: 0 8px 18px rgb(8 169 78 / .08); }
.membership-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.membership-choice:focus-within { outline: 3px solid rgb(7 142 232 / .22); outline-offset: 2px; }
.membership-choice-icon { display: grid; width: 62px; height: 62px; place-items: center; border-radius: 50%; background: #e8f6ed; color: #05a94e; font-size: 29px; }
.membership-choice:nth-child(2) .membership-choice-icon { background: #e8f4fc; color: #078de7; }
.membership-choice:nth-child(3) .membership-choice-icon { background: #fff4e6; color: #ed8c0d; }
.membership-choice strong,.membership-choice small { display: block; }
.membership-choice strong { color: #103a68; font-size: 14px; }
.membership-choice small { margin-top: 5px; color: #6d8198; font-size: 11px; line-height: 1.5; }
.membership-choice-check { display: grid; width: 19px; height: 19px; place-items: center; border: 1px solid #c9d6e3; border-radius: 50%; color: transparent; font-size: 11px; }
.membership-choice.is-selected .membership-choice-check { border-color: #08a94e; background: #08a94e; color: #fff; }
.application-subsection { margin-top: 20px; padding-top: 19px; border-top: 1px solid #e2eaf2; }
.application-subsection h3 { margin: 0; color: #123c68; font-size: 16px; font-weight: 800; }
.application-subsection > div:first-child p { margin: 4px 0 14px; color: #7a8ca0; font-size: 12px; }
.application-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px 17px; }
.application-fields > label,.application-upload { display: grid; align-content: start; gap: 7px; color: #173c66; font-size: 12px; font-weight: 700; }
.application-fields label > b,.application-upload > b,.application-declaration b { color: #e54848; }
.application-fields label > span { color: #8394a8; font-size: 10px; font-weight: 500; }
.application-fields input,.application-fields select,.application-fields textarea,.application-upload input { width: 100%; min-height: 43px; box-sizing: border-box; padding: 10px 12px; border: 1px solid #d3dfeb; border-radius: 7px; outline: 0; background: #fff; color: #294b6e; font: inherit; font-size: 12px; }
.application-fields textarea { resize: vertical; }
.application-fields input:focus,.application-fields select:focus,.application-fields textarea:focus,.application-upload input:focus { border-color: #078de7; box-shadow: 0 0 0 3px rgb(7 141 231 / .12); }
.application-field-wide { grid-column: 1 / -1; }
.field-error { color: #b72d34; font-size: 11px; font-weight: 500; }
.application-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 23px; }
.application-actions-end { justify-content: flex-end; }
.application-next,.application-submit,.application-back { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 10px; padding: 0 18px; border: 0; border-radius: 7px; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.application-next,.application-submit { background: #078de7; color: #fff; }
.application-next:hover,.application-submit:hover { background: #087bc6; }
.application-back { background: #f0f4f8; color: #6b809a; }
.application-back:hover { background: #e5edf4; }
.application-fee-card { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; margin: 19px 0; padding: 18px; border: 1px solid #deebf4; border-radius: 10px; background: linear-gradient(135deg,#f5faff,#f0f8fd); }
.application-fee-card .eyebrow { margin: 0 0 9px; font-size: 10px; }
.application-fee-card h3 { margin: 0 0 5px; color: #123c68; font-size: 15px; }
.application-fee-card p:not(.eyebrow) { margin: 0; color: #6f849d; font-size: 11px; line-height: 1.5; }
.application-fee-card dl { display: grid; align-content: center; gap: 8px; margin: 0; }
.application-fee-card dl > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid #dce8f1; }
.application-fee-card dt { color: #5d7591; font-size: 11px; }
.application-fee-card dd { margin: 0; color: #103a68; font-size: 14px; font-weight: 800; text-align: right; }
.application-fee-card dd small { display: block; color: #8394a8; font-size: 9px; font-weight: 500; }
.application-bank-details { display: grid; grid-column: 1 / -1; gap: 5px; padding-top: 12px; border-top: 1px solid #dce8f1; color: #637a94; font-size: 11px; }
.application-bank-details strong { margin-bottom: 2px; color: #143c68; }
.application-upload { margin-top: 5px; }
.application-upload input { min-height: 54px; padding: 9px; background: #fff; }
.application-upload > small:not(.field-error) { color: #7b8fa5; font-size: 10px; font-weight: 400; }
.application-review { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; margin: 0 0 20px; padding: 8px 16px; border: 1px solid #e5edf4; border-radius: 9px; background: #fafcfe; }
.application-review > div { padding: 10px 0; border-bottom: 1px solid #e9eff4; }
.application-review dt { color: #8292a5; font-size: 10px; }
.application-review dd { margin: 3px 0 0; color: #163d68; font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.application-declaration { display: flex; align-items: flex-start; gap: 10px; margin: 20px 0 15px; padding: 14px; border: 1px solid #dce8f1; border-radius: 8px; background: #f7fbfe; color: #425f7d; font-size: 12px; line-height: 1.55; }
.application-declaration input { flex: 0 0 auto; width: 17px; height: 17px; margin: 1px 0 0; accent-color: #08a94e; }
.application-signature-fields { margin-top: 15px; }
.application-privacy-note { margin: 14px 0 0; color: #8090a3; font-size: 10px; line-height: 1.5; }
.application-errors { margin-bottom: 19px; padding: 13px 16px; border: 1px solid #f2c4c4; border-radius: 8px; background: #fff6f6; color: #952f35; font-size: 12px; }
.application-errors ul { margin: 7px 0 0; padding-left: 19px; }
.application-success { display: grid; min-height: 400px; align-content: center; justify-items: start; }
.application-success-icon { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 50%; background: #e7f8ed; color: #08a94e; font-size: 27px; }
.application-success .eyebrow { margin: 18px 0 7px; }
.application-success h2 { margin: 0 0 6px; color: #113c69; font-size: 27px; }
.application-success > p:not(.eyebrow) { margin: 0 0 12px; color: #697f98; font-size: 13px; }
.application-reference { display: block; margin-bottom: 20px; padding: 10px 13px; border: 1px dashed #aac6dc; border-radius: 7px; background: #f6fbff; color: #164778; font-size: 13px; letter-spacing: .025em; }
.application-aside { display: grid; gap: 14px; }
.application-aside-card { position: relative; padding: 20px 20px 20px 67px; }
.application-aside-card h2 { margin: 1px 0 8px; color: #153e69; font-size: 15px; font-weight: 800; }
.application-aside-card p { margin: 0 0 11px; color: #6c8198; font-size: 11px; line-height: 1.5; }
.application-aside-icon { position: absolute; top: 18px; left: 17px; display: grid; width: 39px; height: 39px; place-items: center; border-radius: 50%; background: #e8f8ee; color: #06a84d; font-size: 20px; font-weight: 700; }
.application-aside-card ul,.application-aside-card ol { display: grid; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.application-aside-card li { position: relative; color: #617895; font-size: 11px; line-height: 1.45; }
.benefits-aside li { padding-left: 22px; }
.benefits-aside li::before { position: absolute; left: 0; color: #08ad52; font-size: 15px; font-weight: 800; content: '✓'; }
.before-apply-aside { background: linear-gradient(135deg,#f2f9ff,#eaf5fc); }
.before-apply-aside .application-aside-icon { background: #e2f3ff; color: #078de7; }
.before-apply-aside ol { counter-reset: apply-list; }
.before-apply-aside li { display: flex; align-items: flex-start; gap: 9px; counter-increment: apply-list; }
.before-apply-aside li::before { content: counter(apply-list); display: grid; width: 18px; height: 18px; flex: 0 0 18px; place-items: center; border-radius: 50%; background: #078de7; color: #fff; font-size: 9px; font-weight: 700; }
.help-aside { background: linear-gradient(135deg,#effbf4,#e8f8ef); }
.help-aside a { display: block; margin-top: 8px; color: #123e6a; font-size: 11px; font-weight: 700; text-decoration: none; }

@media(max-width:900px) {
    .membership-application-layout { grid-template-columns: 1fr; }
    .application-aside { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .application-aside-card { padding: 68px 16px 18px; }
    .application-aside-icon { left: 16px; }
}
@media(max-width:650px) {
    .membership-application-hero { min-height: 220px; background-position: 62% center; }
    .membership-application-hero h1 { font-size: 34px; }
    .membership-application-hero > .container > p:last-child { max-width: 95%; font-size: 13px; }
    .membership-application-section { padding-top: 14px; }
    .application-card { padding: 17px 14px; }
    .application-stepper { gap: 4px; margin-bottom: 22px; }
    .application-stepper::before { top: 14px; right: 9%; left: 9%; }
    .application-step-indicator { gap: 5px; }
    .application-step-indicator > span { width: 29px; height: 29px; font-size: 11px; }
    .application-step-indicator > small { max-width: 66px; font-size: 8px; }
    .membership-type-options,.application-fields,.application-review { grid-template-columns: 1fr; }
    .membership-choice { min-height: 96px; grid-template-columns: 52px minmax(0,1fr) 18px; gap: 11px; padding: 12px; }
    .membership-choice-icon { width: 50px; height: 50px; font-size: 23px; }
    .application-field-wide { grid-column: auto; }
    .application-fee-card { grid-template-columns: 1fr; padding: 14px; }
    .application-bank-details { grid-column: auto; }
    .application-actions { align-items: stretch; }
    .application-next,.application-submit,.application-back { min-height: 42px; padding-inline: 12px; font-size: 10px; }
    .application-aside { grid-template-columns: 1fr; }
    .application-aside-card { padding: 17px 17px 18px 66px; }
    .application-aside-icon { top: 16px; left: 16px; }
}

@media (max-width: 560px) {
    body {
        font-size: 13px;
    }

    .container {
        width: min(100% - 30px, 460px);
    }

    .topbar {
        font-size: 10px;
    }

    .topbar-contact {
        column-gap: 12px;
    }

    .topbar-contact svg {
        width: 12px;
        height: 12px;
    }

    .brand {
        gap: 8px;
        font-size: 9px;
    }

    .brand img {
        width: 46px;
        height: 46px;
    }

    .hero-copy {
        padding-top: 39px;
    }

    .hero-copy h1 {
        font-size: clamp(36px, 10vw, 48px);
    }

    .hero-description {
        font-size: 12px;
    }

    .hero-visual {
        min-height: 245px;
    }

    .hero-photo {
        height: 235px;
    }

    .hero-note {
        right: -12px;
        bottom: -8px;
        width: 166px;
        padding: 11px;
    }

    .hero-note svg {
        flex-basis: 30px;
        width: 30px;
    }

    .section-space {
        padding-block: 42px;
    }

    .about-copy h2,
    .section-heading h2,
    .services-copy h2,
    .president-copy h2 {
        font-size: 28px;
    }

    .about-photo-wrap img {
        max-height: 245px;
    }

    .membership-grid {
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .membership-card {
        min-height: 168px;
        grid-template-columns: 56px minmax(0, 1fr) 28px;
        gap: 11px;
        padding: 17px 14px;
    }

    .membership-icon {
        width: 52px;
        height: 52px;
    }

    .membership-icon svg {
        width: 30px;
        height: 30px;
    }

    .membership-copy h3 {
        font-size: 13px;
    }

    .membership-copy p {
        font-size: 10px;
    }

    .membership-copy .button {
        min-height: 34px;
        padding-inline: 9px;
        font-size: 9px;
    }

    .round-arrow {
        width: 27px;
        height: 27px;
    }

    .service-cards {
        grid-template-columns: 1fr;
    }

    .service-card {
        min-height: 0;
        display: grid;
        grid-template-columns: 44px 1fr 30px;
        align-items: center;
        gap: 0 10px;
        padding: 14px;
    }

    .service-card svg {
        grid-row: span 2;
        margin: 0;
    }

    .service-card h3 {
        margin: 0;
    }

    .service-card p {
        margin: 2px 0 0;
    }

    .service-card > a {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .services-visual {
        min-height: 240px;
    }

    .services-visual > img {
        height: 220px;
    }

    .services-message {
        min-height: 95px;
        padding: 16px 20px;
    }

    .services-message p {
        font-size: 15px;
    }

    .message-body {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 7px;
    }

    .quote-mark {
        font-size: 62px;
    }

    .partner-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .news-grid {
        grid-template-columns: 1fr;
    }

    .partner-name {
        min-height: 90px;
        padding: 9px;
    }

    .partner-name span {
        font-size: 9px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 26px;
        padding-block: 38px 28px;
    }

    .footer-about p {
        max-width: 320px;
    }

    .copyright {
        font-size: 8px;
    }

}

@media (max-width: 1000px) {
    .interior-heading {
        padding-block: 28px 44px;
    }

    .interior-breadcrumb {
        margin-bottom: 26px;
    }

    .interior-section {
        padding-block: 48px 65px;
    }

    .leader-feature {
        grid-template-columns: minmax(230px, 0.78fr) minmax(0, 1.4fr);
    }

    .leader-feature-photo,
    .leader-feature-photo img {
        min-height: 300px;
    }

    .leader-feature-copy {
        padding: 32px;
    }

    .leader-card img {
        height: 235px;
    }

    .history-layout {
        grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
        gap: 32px;
    }

    .objectives-panel {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .message-layout,
    .contact-layout {
        gap: 36px;
    }
}

@media (max-width: 760px) {
    .leader-feature {
        grid-template-columns: 1fr;
    }

    .leader-feature-photo,
    .leader-feature-photo img {
        min-height: 0;
        height: 330px;
    }

    .leader-feature-copy {
        padding: 28px;
    }

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

    .leader-card img {
        height: 220px;
    }

    .leader-card div {
        padding: 15px;
    }

    .history-layout,
    .message-layout,
    .contact-layout {
        grid-template-columns: 1fr;
    }

    .history-photo {
        max-width: 650px;
    }

    .purpose-grid,
    .membership-type-grid,
    .membership-next-steps {
        grid-template-columns: 1fr;
    }

    .objectives-list {
        grid-template-columns: 1fr;
    }

    .message-profile {
        position: static;
        display: grid;
        max-width: 600px;
        grid-template-columns: 190px 1fr;
        align-items: center;
    }

    .message-profile img {
        aspect-ratio: 1;
        height: 190px;
    }

    .message-copy {
        padding-left: 42px;
    }

    .contact-form-card {
        padding: 27px;
    }
}

@media (max-width: 560px) {
    .interior-heading {
        padding-block: 22px 35px;
    }

    .interior-heading::after {
        right: -160px;
    }

    .interior-breadcrumb {
        margin-bottom: 23px;
        font-size: 11px;
    }

    .interior-heading h1 {
        font-size: clamp(31px, 9vw, 40px);
    }

    .interior-intro {
        font-size: 13px;
    }

    .interior-section {
        padding-block: 38px 52px;
    }

    .leader-feature {
        margin-bottom: 20px;
        border-radius: 14px;
    }

    .leader-feature-photo,
    .leader-feature-photo img {
        height: 265px;
    }

    .leader-feature-copy {
        padding: 24px;
    }

    .leader-grid {
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .leader-card {
        display: grid;
        grid-template-columns: 112px minmax(0, 1fr);
        align-items: center;
    }

    .leader-card img {
        height: 132px;
    }

    .leader-card div {
        min-height: auto;
        padding: 14px;
    }

    .leader-card h3 {
        font-size: 14px;
    }

    .leader-role {
        font-size: 9px;
    }

    .history-facts {
        flex-wrap: wrap;
        gap: 10px;
    }

    .history-facts div {
        min-width: 135px;
        padding: 13px 15px;
    }

    .motto-panel,
    .purpose-card,
    .objectives-panel,
    .membership-type-card,
    .qualification-card,
    .benefits-card {
        padding: 22px;
    }

    .motto-panel {
        gap: 14px;
    }

    .motto-icon {
        font-size: 48px;
    }

    .message-profile {
        grid-template-columns: 120px 1fr;
    }

    .message-profile img {
        height: 130px;
    }

    .message-copy {
        padding-left: 31px;
    }

    .message-quote {
        left: -9px;
        font-size: 62px;
    }

    .message-copy > p:first-of-type {
        font-size: 16px;
    }

    .contact-form-card {
        padding: 22px;
    }

    .contact-form {
        grid-template-columns: 1fr;
    }

    .contact-form-wide {
        grid-column: auto;
    }

    .document-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .document-frame iframe {
        height: 70vh;
        min-height: 560px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* TALTA member portal */
.member-portal-page { background: #eff5fa; }
.member-layout { min-height:calc(100vh - 76px); grid-template-columns: 252px minmax(0,1fr); }
.member-sidebar { min-height:calc(100vh - 76px); padding-top: 22px; }
.member-sidebar .portal-nav { gap: 4px; }
.member-sidebar .portal-nav a { min-height: 44px; }
.member-topbar { display:flex; min-height:76px; align-items:center; gap:24px; box-sizing:border-box; padding:10px clamp(18px,2.3vw,34px); border-bottom:1px solid #e7eef5; background:rgba(255,255,255,.94); }
.member-topbar-brand { display:flex; flex:0 0 270px; align-items:center; gap:10px; color:#0b315f; font-size:12px; font-weight:700; line-height:1.35; text-decoration:none; }
.member-topbar-brand img { width:54px; height:54px; object-fit:contain; }
.member-search { display:flex; width:min(530px,45vw); min-height:44px; align-items:center; gap:12px; box-sizing:border-box; padding:0 15px; border-radius:9px; background:#f0f5fa; color:#8192a8; font-size:12px; }
.member-search span:first-child { color:#315b88; font-size:24px; }
.member-top-account { display:flex; align-items:center; gap:10px; margin-left:auto; color:#12365c; }
.member-top-account strong,.member-top-account small { display:block; }
.member-top-account strong { font-size:12px; }
.member-top-account small { margin-top:3px; color:#8192a8; font-size:10px; }
.member-top-account .portal-avatar { width:40px; height:40px; }
.member-content { width:auto; max-width:none; padding-top:15px; }
.member-alert { margin:0 0 14px; }
.member-welcome-banner { position:relative; display:flex; min-height:156px; align-items:center; justify-content:space-between; overflow:hidden; margin-bottom:14px; padding:22px 30px; border-radius:10px; background:linear-gradient(100deg,#347fb4 0%,#164f83 56%,#062f5f 100%); color:white; }
.member-welcome-banner::before { position:absolute; inset:0 20% 0 28%; background:linear-gradient(90deg,transparent,rgb(1 31 66 / .14)),url('../images/port-worker-composed.png') center 39% / cover; content:""; opacity:.62; }
.member-welcome-banner > div:first-child { position:relative; z-index:1; }
.member-welcome-banner p { margin:0; font-size:18px; font-weight:600; }
.member-welcome-banner h1 { margin:1px 0 5px; font-size:clamp(26px,2.4vw,38px); letter-spacing:-.04em; }
.member-welcome-banner h1 span { font-size:.75em; }
.member-welcome-banner small { font-size:11px; }
.member-welcome-banner small i { display:inline-block; height:12px; margin:0 9px -2px; border-left:1px solid rgb(255 255 255 / .6); }
.member-banner-message { position:relative; z-index:1; display:grid; align-content:center; gap:8px; width:190px; min-height:110px; margin:-22px -30px -22px 0; padding:16px 23px; background:linear-gradient(115deg,#073767,#062b55); clip-path:polygon(16% 0,100% 0,100% 100%,0 100%); }
.member-banner-message span { width:36px; height:4px; border-radius:3px; background:#04b95a; }
.member-banner-message strong { font-size:15px; line-height:1.35; }
.member-stat-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:13px; }
.member-stat { position:relative; display:grid; min-height:112px; grid-template-columns:48px minmax(0,1fr); align-content:center; align-items:center; gap:7px 12px; padding:13px 16px; border:1px solid #e7eef4; border-radius:10px; background:white; box-shadow:0 7px 20px rgb(12 52 89 / .035); }
.member-stat-icon { display:grid; width:46px; height:46px; grid-row:span 2; place-items:center; border-radius:10px; color:white; font-size:24px; }
.member-stat-green .member-stat-icon { background:#05aa52; }.member-stat-blue .member-stat-icon { background:#078bea; }.member-stat-orange .member-stat-icon { background:#ff9511; }.member-stat-purple .member-stat-icon { background:#8b45ed; }
.member-stat > div p { margin:0 0 3px; color:#617a97; font-size:11px; }
.member-stat > div strong { color:#082f5e; font-size:23px; line-height:1.2; }
.member-stat > div strong i { color:#06b258; font-size:12px; font-style:normal; }
.member-stat > div small { display:block; margin-top:3px; color:#7288a2; font-size:9px; }
.member-stat > a { grid-column:2; color:#0787dd; font-size:10px; text-decoration:none; }
.member-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr) minmax(280px,1fr); align-items:stretch; gap:12px; }
.member-panel { min-width:0; padding:15px 17px; border:1px solid #e7eef4; border-radius:10px; background:#fff; box-shadow:0 7px 20px rgb(12 52 89 / .035); }
.member-profile-panel { grid-column:span 2; }
.member-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:38px; padding-bottom:10px; border-bottom:1px solid #edf2f6; }
.member-panel-heading > div { display:flex; align-items:center; gap:10px; }
.member-heading-icon { display:grid; width:34px; height:34px; flex:0 0 34px; place-items:center; border-radius:50%; background:#078bea; color:#fff; font-size:19px; }
.member-heading-icon.green { background:#09ad58; }
.member-panel-heading h2 { margin:0; color:#092f5e; font-size:15px; }
.member-panel-heading p { margin:2px 0 0; color:#7a8da5; font-size:10px; }
.member-panel-heading > a { color:#0788df; font-size:10px; font-weight:600; text-decoration:none; white-space:nowrap; }
.member-profile-panel .member-panel-heading > a { padding:8px 11px; border:1px solid #dce7f1; border-radius:6px; color:#173b61; }
.member-profile-summary { display:grid; grid-template-columns:125px minmax(0,1fr); gap:16px; padding-top:10px; }
.member-profile-monogram { display:grid; width:100px; height:112px; place-items:center; border-radius:7px; background:linear-gradient(145deg,#dceffc,#f0f7fb); color:#078bea; font-size:30px; font-weight:700; }
.member-profile-summary dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; margin:0; }
.member-profile-summary dl > div { min-width:0; }
.member-profile-summary dt { color:#193d65; font-size:10px; font-weight:600; }
.member-profile-summary dd { overflow-wrap:anywhere; margin:1px 0 0; color:#7187a2; font-size:10px; }
.member-profile-summary dd small { margin-left:5px; padding:3px 5px; border-radius:4px; background:#edf4fa; color:#456583; font-size:8px; }
.member-quick-panel { grid-column:3; grid-row:1; }
.member-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-top:10px; }
.member-action { display:grid; min-height:89px; align-content:center; justify-items:center; gap:3px; border-radius:8px; color:#0d315e; text-align:center; text-decoration:none; }
.member-action > span { font-size:24px; }
.member-action strong { font-size:10px; }
.member-action b { color:#078bea; font-size:14px; }
.member-action.green { background:#e9f9ef; }.member-action.green > span,.member-action.green b { color:#08ae53; }
.member-action.blue { background:#eaf5fd; }.member-action.orange { background:#fff5e8; }.member-action.orange > span,.member-action.orange b { color:#f19013; }
.member-action.purple { background:#f2edff; }.member-action.purple > span,.member-action.purple b { color:#873ef0; }
.member-list-panel { grid-column:span 1; }
.member-content-row { display:grid; grid-template-columns:70px minmax(0,1fr) 22px; align-items:center; gap:10px; min-height:87px; padding:7px 0; border-bottom:1px solid #edf2f6; color:inherit; text-decoration:none; }
.member-content-row:last-child { border-bottom:0; }
.member-content-row img,.member-content-placeholder { display:grid; width:70px; height:64px; place-items:center; border-radius:6px; background:#eaf5fc; color:#1976a8; font-size:10px; font-weight:700; object-fit:cover; }
.member-content-row > div { min-width:0; }
.member-content-row small { display:block; color:#7f91a7; font-size:9px; }
.member-content-row strong { display:-webkit-box; overflow:hidden; margin-top:2px; color:#14375f; font-size:10px; line-height:1.35; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.member-content-row p { display:-webkit-box; overflow:hidden; margin:3px 0 0; color:#758ba5; font-size:9px; line-height:1.4; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.member-content-row > b { display:grid; width:24px; height:24px; place-items:center; border:1px solid #e1eaf2; border-radius:50%; color:#1688d6; font-size:13px; }
.member-event-row { display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:68px; border-bottom:1px solid #edf2f6; }
.member-event-row time { display:grid; justify-items:center; padding:7px 4px; border-radius:6px; background:#f0f6fb; color:#173b65; }
.member-event-row time strong { font-size:17px; line-height:1; }.member-event-row time small { margin-top:3px; color:#69809d; font-size:8px; }
.member-event-row > div strong,.member-event-row > div small { display:block; }.member-event-row > div strong { color:#173b65; font-size:10px; }.member-event-row > div small { margin-top:4px; color:#7a8da5; font-size:9px; }
.member-event-row > a { padding:7px 8px; border-radius:5px; background:#e8f5fd; color:#0785dc; font-size:9px; text-decoration:none; }
.member-document-row { display:flex; min-height:49px; align-items:center; gap:9px; border-bottom:1px solid #edf2f6; color:inherit; text-decoration:none; }
.member-document-row:last-child { border:0; }
.member-file-icon { display:grid; width:27px; height:32px; flex:0 0 27px; place-items:center; border-radius:4px; background:#f04438; color:#fff; font-size:8px; font-weight:700; }
.member-file-icon.doc { background:#1488e6; }
.member-document-row > div { display:grid; gap:2px; flex:1; }.member-document-row strong { color:#173b65; font-size:10px; }.member-document-row small { color:#7f91a7; font-size:9px; }.member-document-row > b { color:#0788df; font-size:12px; }
.member-empty-inline { padding:23px 8px; color:#7b8da3; font-size:11px; text-align:center; }
.member-page-heading { margin:5px 0 19px; }.member-page-heading .eyebrow { margin:0 0 7px; color:#ff8e12; font-size:12px; font-weight:700; }.member-page-heading .eyebrow span { display:inline-block; width:25px; margin-right:9px; border-top:2px solid #08ae53; vertical-align:middle; }.member-page-heading h1 { margin:0 0 4px; color:#082f5e; font-size:clamp(27px,3vw,39px); }.member-page-heading > p:last-child { margin:0; color:#7287a0; font-size:13px; }
.member-edit-panel { max-width:1120px; padding:24px; }.member-identity { display:flex; align-items:center; gap:15px; margin-bottom:22px; padding-bottom:17px; border-bottom:1px solid #e9eff5; }.member-identity .member-profile-monogram { width:70px; height:70px; border-radius:50%; }.member-identity h2 { margin:0; color:#12365e; font-size:17px; }.member-identity p { margin:4px 0 0; color:#70869f; font-size:11px; }.member-readonly { margin-left:8px; color:#94a2b3; font-size:9px; }
.member-profile-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }.member-profile-form label { display:grid; gap:6px; color:#24435e; font-size:11px; font-weight:600; }.member-profile-form input,.member-profile-form textarea { width:100%; box-sizing:border-box; min-height:43px; padding:10px 12px; border:1px solid #d5e0ec; border-radius:6px; background:#fff; color:#1d3d64; font:inherit; font-size:12px; }.member-profile-form input:disabled { background:#f4f7fa; color:#71849a; }.member-profile-form textarea { resize:vertical; }.member-field-wide { grid-column:1/-1; }.member-form-actions { display:flex; align-items:center; gap:15px; }.member-form-actions a { color:#536d89; font-size:12px; text-decoration:none; }
.member-membership-card { max-width:940px; }.member-membership-status { display:flex; align-items:center; gap:13px; padding:18px; border-radius:8px; background:linear-gradient(100deg,#e8f9ef,#f5fcf8); }.member-membership-status > span { display:grid; width:48px; height:48px; place-items:center; border-radius:10px; background:#08ad53; color:#fff; font-size:27px; }.member-membership-status small,.member-membership-status strong { display:block; }.member-membership-status small { color:#617e6e; font-size:9px; font-weight:700; letter-spacing:.08em; }.member-membership-status strong { margin-top:3px; color:#087d3e; font-size:20px; }.member-membership-status i { margin-left:auto; color:#09b65b; }.member-membership-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; margin:18px 0; }.member-membership-card dl div { padding:12px 0; border-bottom:1px solid #edf2f6; }.member-membership-card dt { color:#74879c; font-size:10px; }.member-membership-card dd { margin:3px 0 0; color:#163a62; font-size:12px; font-weight:600; }.member-note { padding:13px; border-radius:6px; background:#f2f7fb; color:#6e8197; font-size:11px; }
.member-table { min-width:760px; }.member-admin-main .member-table { min-width:1260px; }.member-status-pill { display:inline-block; padding:4px 8px; border-radius:20px; background:#e9f8ef; color:#16814a; font-size:10px; font-weight:700; }
.member-fee-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:15px; }.member-fee-cards article { display:grid; gap:4px; padding:17px; border:1px solid #e6eef5; border-radius:9px; background:#fff; }.member-fee-cards small,.member-fee-cards span { color:#73879e; font-size:10px; }.member-fee-cards strong { color:#082f5e; font-size:21px; }.member-payment-note { color:#71859b; font-size:11px; }.member-payment-note a { color:#0788df; }
.member-payment-numbers { margin-bottom:14px; background:linear-gradient(115deg,#f5fbff,#fff); }.member-payment-numbers h2 { margin:0 0 4px; color:#11375f; font-size:15px; }.member-payment-numbers > p { margin:0; color:#71869d; font-size:11px; }.member-payment-numbers > div { display:flex; gap:10px; margin-top:12px; }.member-payment-numbers article { display:grid; min-width:180px; gap:3px; padding:11px 13px; border:1px solid #e3edf4; border-radius:7px; background:white; }.member-payment-numbers small { color:#778ca3; font-size:9px; }.member-payment-numbers strong { color:#087d42; font-size:16px; letter-spacing:.02em; }
.member-events-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }.member-event-card { overflow:hidden; border:1px solid #e6eef5; border-radius:9px; background:#fff; }.member-event-card > img { display:block; width:100%; height:155px; object-fit:cover; background:#edf3f7; }.member-event-card > div { padding:14px; }.member-event-card small { color:#ef8c12; font-size:10px; font-weight:700; }.member-event-card h2 { margin:5px 0; color:#13375f; font-size:14px; }.member-event-card p { color:#75899f; font-size:11px; line-height:1.55; }.member-event-card a { color:#0787dd; font-size:11px; font-weight:700; text-decoration:none; }.member-event-venue { color:#456889 !important; }
.member-resource-list { max-width:900px; padding:10px 20px; }.member-resource-list .member-document-row { min-height:68px; }.member-help-grid { display:grid; max-width:900px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.member-help-grid h2 { color:#10365f; font-size:16px; }.member-help-grid p { color:#72869e; font-size:12px; line-height:1.6; }.member-help-grid a { color:#0786dc; font-size:13px; font-weight:700; text-decoration:none; }.member-footer { width:auto !important; max-width:none !important; margin:0 !important; padding:16px clamp(20px,2.3vw,35px) 20px !important; border-top:1px solid #e4edf4; }.member-footer a { color:#557391; text-decoration:none; }
.member-login-page { min-height:100vh; margin:0; background:#edf5fa; font-family:Poppins,sans-serif; }.member-login-layout { display:grid; min-height:100vh; grid-template-columns:minmax(430px, .88fr) 1.12fr; gap:5vw; align-items:center; padding:4vh 7vw; box-sizing:border-box; }.member-login-card { width:min(520px,100%); box-sizing:border-box; justify-self:center; padding:clamp(28px,4vw,55px); border:1px solid #edf2f6; border-radius:18px; background:rgba(255,255,255,.96); box-shadow:0 18px 55px rgb(6 47 95 / .10); }.member-login-brand { display:flex; align-items:center; gap:12px; margin-bottom:38px; color:#082f5e; font-size:14px; line-height:1.35; text-decoration:none; }.member-login-brand img { width:72px; height:72px; object-fit:contain; }.member-login-card .eyebrow { margin:0 0 8px; color:#fa8e12; font-size:10px; font-weight:700; }.member-login-card .eyebrow span { display:inline-block; width:25px; margin-right:7px; border-top:2px solid #08ae53; vertical-align:middle; }.member-login-card h1 { margin:0; color:#082f5e; font-size:clamp(31px,4vw,45px); }.member-login-intro { margin:3px 0 22px; color:#70859f; font-size:13px; line-height:1.65; }.member-login-form { display:grid; gap:14px; }.member-login-form label { display:grid; gap:6px; color:#16395f; font-size:11px; font-weight:600; }.member-login-form input:not([type=checkbox]) { min-height:47px; box-sizing:border-box; padding:11px 13px; border:1px solid #d4dfeb; border-radius:7px; color:#183a5e; font:inherit; font-size:12px; }.member-remember { display:flex !important; grid-template-columns:17px auto; align-items:center; gap:8px !important; color:#607b9b !important; font-weight:400 !important; }.member-remember input { width:17px; height:17px; margin:0; accent-color:#078bea; }.member-login-form button { min-height:48px; border:0; border-radius:7px; background:#05ab51; color:#fff; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }.member-login-form button span { margin-left:7px; font-size:17px; }.member-login-help { margin:20px 0 0; color:#73879f; font-size:10px; line-height:1.7; }.member-login-help a { color:#0787dc; }.member-admin-login { display:inline-block; margin-top:17px; color:#607a96; font-size:10px; text-decoration:none; }.member-login-visual { position:relative; display:flex; min-height:76vh; align-items:flex-end; overflow:hidden; border-radius:45% 4% 4% 12% / 9% 4% 4% 10%; background:linear-gradient(0deg,rgb(3 37 75 / .82),transparent 53%),url('../images/port-worker-composed.png') center / cover; }.member-login-visual > div { max-width:460px; padding:45px; color:white; }.member-login-visual > div span { display:block; width:42px; height:5px; margin-bottom:16px; border-radius:3px; background:#ff9711; }.member-login-visual h2 { margin:0; font-size:clamp(24px,3vw,42px); line-height:1.23; }.member-login-visual p { font-size:14px; }
@media(max-width:1100px) { .member-layout { grid-template-columns:218px minmax(0,1fr); }.member-topbar-brand { flex-basis:210px; }.member-dashboard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.member-profile-panel { grid-column:span 2; }.member-quick-panel { grid-column:span 1; grid-row:auto; }.member-documents-panel { grid-column:span 1; } }
@media(max-width:760px) { .member-layout { min-height:calc(100vh - 59px); display:block; }.member-sidebar { min-height:0; padding:9px 12px; }.member-topbar { min-height:59px; gap:10px; padding:7px 12px; }.member-topbar-brand { flex:0 0 auto; }.member-topbar-brand img { width:39px; height:39px; }.member-topbar-brand span,.member-search { display:none; }.member-content { padding:13px 12px 18px; }.member-welcome-banner { min-height:135px; padding:17px; }.member-welcome-banner p { font-size:14px; }.member-welcome-banner small { font-size:8px; }.member-banner-message { width:128px; min-height:100px; margin:-17px -17px -17px 0; padding:12px 16px; }.member-banner-message strong { font-size:11px; }.member-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.member-stat { min-height:100px; grid-template-columns:37px minmax(0,1fr); gap:5px 8px; padding:10px; }.member-stat-icon { width:36px; height:36px; font-size:18px; }.member-stat > div strong { font-size:19px; }.member-stat > div p { font-size:9px; }.member-stat > div small,.member-stat > a { font-size:8px; }.member-dashboard-grid { grid-template-columns:1fr; }.member-profile-panel,.member-quick-panel,.member-list-panel,.member-documents-panel { grid-column:auto; grid-row:auto; }.member-profile-summary { grid-template-columns:75px minmax(0,1fr); gap:10px; }.member-profile-summary .member-profile-monogram { width:70px; height:82px; font-size:22px; }.member-profile-summary dl { gap:8px; }.member-profile-summary dt,.member-profile-summary dd { font-size:8px; }.member-profile-summary dd small { display:block; width:max-content; margin:3px 0 0; }.member-events-grid { grid-template-columns:1fr; }.member-profile-form,.member-membership-card dl,.member-help-grid,.member-fee-cards { grid-template-columns:1fr; }.member-field-wide { grid-column:auto; }.member-login-layout { display:block; padding:20px 14px; }.member-login-card { margin:4vh auto; padding:25px; }.member-login-brand { margin-bottom:25px; }.member-login-visual { display:none; }.member-footer { font-size:9px; } }
