:root {
    --primary: #03BDD6;
    --primary50: #E6F8FB; /* double check */
    --primary100: #B2EAF1; /* double check */
    --primary200: #8DDFEA /* double check */
    --primary300: #56D3E4;
    --primary400: #35CADE;
    --primary500: #03BDD6;
    --primary700: #048698;
    --primary800: #037A8A;
    --primary900: #014F5A;
    --secondary: #449BC4;
    --secondary50: #ECF5F9; /* double check */
    --secondary100: #C6DFEC; /* double check */
    --secondary200: #AAD0E3; /* double check */
    --secondary300: #84BBD5; /* double check */
    --secondary400: #6CADCE; /* double check */
    --secondary500: #449BC4;
    --secondary600: #438BB0; /* double check */
    --secondary700: #346D89; /* double check */
    --secondary800: #28546B; /* double check */
    --secondary900: #1F4051; /* double check */
    --tertiary: #F8D680;
    --tertiary50: #FEFBEF;
    --tertiary100: #FBF3D0; /* double check */
    --tertiary200: #FAEDBA; /* double check */
    --tertiary300: #fff3cd; /* #F7E59A; */
    --tertiary400: #F6DF88; /* double check */
    --tertiary500: #F8D680; /* #F4D86C; */
    --tertiary600: #DEC462; /* double check */
    --tertiary700: #EDC357; /* #AD994C; */
    --tertiary800: #937833; /* #86773B; */
    --tertiary900: #776027; /* #665B2D; */
    --text-dark: #2d2d2d;
    --text-muted: #6c757d;
    --bg-light: #f5f7f9;
    --side-menu-bg: #D3E1E7;
    --neutral-white: #FFFFFF;
    --neutral-white50: #FEFEFF; /* double check */
    --neutral-white100: #FDFDFD; /* double check */
    --neutral-white200: #FCFCFD; /* double check */
    --neutral-white300: #FAFBFC; /* double check */
    --neutral-white400: #F9FAFB; /* double check */
    --neutral-white500: #F8F9FA;
    --neutral-white600: #E2E3E4; /* double check */
    --neutral-white700: #B0B1B2; /* double check */
    --neutral-white800: #88898A; /* double check */
    --neutral-white900: #686969; /* double check */
    --neutral-grey: #394047;
    --neutral-grey50: #EBECED; /* double check */
    --neutral-grey100: #C2C4C6; /* double check */
    --neutral-grey200: #A5A8AB; /* double check */
    --neutral-grey300: #7A7F84; /* double check */
    --neutral-grey400: #6C7176; /* double check */
    --neutral-grey500: #394047; /* #5A5F64; */
    --neutral-grey600: #43484F; /* double check */
    --neutral-grey700: #282D32; /* double check */
    --neutral-grey800: #1F2327; /* double check */
    --neutral-grey900: #171A1D; /* double check */
    --success-green: #30870B;
    --red-backgroud: #BC3219;
    --text-dark: #2d2d2d;
    --text-muted: #6c757d;
    --bg-light: #f5f7f9;
    --neutral-grey: #394047;
    --red-backgroud: #BC3219;
}

.btn:disabled,
.btn.disabled,
.btn[aria-disabled="true"],
fieldset:disabled .btn {
    opacity: 1 /*.8*/;
}

.btn-primary {
    background-color: var(--primary500);
    color: var(--neutral-grey500);
    border-color: var(--primary500);
    font-weight: 700;
}

    .btn-primary:hover,
    .btn-primary:focus,
    .btn-primary:active {
        background-color: var(--tertiary);
        border-color: var(--tertiary);
        color: var(--neutral-grey500);
    }


.btn-outline-primary {
    background: #ffffff;
    border: 1px solid var(--primary900);
    color: var(--primary900);
    font-weight: 700;
}

    .btn-outline-primary:hover,
    .btn-outline-primary:focus,
    .btn-outline-primary:active {
        background: var(--tertiary300);
        border-color: var(--primary900);
        color: var(--primary900);
    }


.bold-a {
    color: var(--primary800);
    font-weight: 700;
    text-decoration: underline;
}

    .bold-a:visited {
        color: var(--primary800);
    }

    .bold-a:hover,
    .bold-a:focus {
        color: var(--primary800);
        text-decoration: none;
    }
/* Section background */
.contact-section {
    background-color: #eef2f5;
    padding: 60px 0;
}

/* Title styling */
.contact-title {
    font-size: 32px;
    font-weight: 600;
}

    .contact-title span {
        color: #3e8db2; /*var(--secondary); */ /* #449BC4 */
    }

/* Subtitle */
.contact-subtitle {
    max-width: 700px;
    margin: 15px auto 50px;
    color: var(--neutral-grey); /*#6c757d;*/
}

/* Card layout */
.contact-card {
    background-color: #f7f7f7;
    border: 1px solid #dcdcdc;
    border-radius: 10px;
    padding: 25px;
    text-align: left;
    height: 100%;
    transition: all 0.2s ease;
}

    /* subtle hover */
    .contact-card:hover {
        border-color: var(--secondary);
    }

/* Icon square */
.icon-box {
    width: 42px;
    height: 42px;
    border-radius: 8px;
    border: 1px solid #dcdcdc;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    color: var(--primary); /* #03BDD6 */
    font-size: 18px;
}

/* Titles inside cards */
.contact-card h5 {
    font-weight: 600;
    margin-bottom: 8px;
}

/* Text */
.contact-card p {
    font-size: 14px;
    color: var(--neutral-grey); /*#6c757d;*/
}

/* Button */
.ticket-btn {
    display: inline-block;
    padding: 8px 14px;
    border: 1px solid var(--secondary);
    border-radius: 6px;
    color: #1f3b4d;
    text-decoration: none;
    font-size: 14px;
    margin-top: 10px;
}

    .ticket-btn:hover {
        background-color: var(--secondary);
        color: #fff;
    }

.contact-card a:hover {
    text-decoration: underline;
}

.new-topbar-actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.new-topbar-actions .nav-link {
    color: #2f3a40;
    text-decoration: none;
}

.new-topbar-actions .nav-link:hover,
.new-topbar-actions .nav-link:focus {
    color: #117b9c;
}

.sidebar-logo {
    min-width: 0;
}

.sidebar-logo .logo-full {
    max-height: 64px;
    object-fit: contain;
}

.sidebar-toggle {
    color: #2f3a40;
}

@media (max-width: 767.98px) {
    .new-topbar-actions {
        gap: 12px;
    }

    .new-topbar-actions .nav-link span {
        display: none;
    }
}

/* Keep the common-portal footprint compact like the Legacy IPS page. */
.ips-new-shell {
    min-height: 100vh;
    background: #dce8ed url("../Images/new/TowerBridge-BG.jpg") center / cover fixed no-repeat;
}

.ips-new-shell .ips-new-background,
.ips-new-shell .ips-new-overlay,
.ips-new-shell .ips-new-header {
    display: none;
}

.ips-new-page {
    width: min(960px, calc(100% - 32px));
    min-height: 0;
    margin: 54px auto 0;
    display: block;
}

.ips-new-main {
    display: block;
    padding: 0;
}

.ips-agency-selection {
    width: 100%;
    min-height: 220px;
    padding: 28px 30px;
    grid-template-columns: 240px minmax(0, 1fr);
    align-items: center;
    gap: 28px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 12px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 14px 32px rgba(8, 29, 39, .24);
    backdrop-filter: blur(5px);
}

.ips-agency-hero-copy {
    color: var(--neutral-grey500);
    text-shadow: none;
}

.ips-agency-eyebrow {
    margin-bottom: 7px;
    color: var(--secondary700);
    font-size: 11px;
}

.ips-agency-hero-copy h1 {
    display: block;
    margin: 0 0 14px;
    color: var(--neutral-grey500) !important;
    font-size: 38px !important;
    font-weight: 600;
    line-height: 1.1;
}

.ips-agency-hero-copy p {
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.4;
}

.ips-agency-card {
    align-self: center;
    display: flex;
    align-items: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.ips-agency-form {
    width: 100%;
    height: 100%;
    align-items: flex-end;
    justify-content: flex-end;
}

.ips-agency-field {
    max-width: 390px;
}

.ips-agency-go {
    min-width: 92px;
}

.ips-agency-selection.ips-agency-selection-refined {
    min-height: 132px;
    padding: 26px 30px;
    align-items: center;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 28px;
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: 5px;
    background: rgba(5, 10, 13, .86);
    box-shadow: 0 10px 26px rgba(0, 0, 0, .24);
    backdrop-filter: none;
}

.ips-agency-selection-refined .ips-agency-hero-copy {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.ips-agency-selection-refined .ips-agency-hero-copy h1 {
    max-width: none;
    margin: 0;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 500;
    text-decoration: underline;
    text-transform: uppercase;
    white-space: nowrap;
}

.ips-agency-selection-refined .ips-agency-card {
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ips-agency-selection-refined .ips-agency-form {
    width: 100%;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 28px;
}

.ips-agency-selection-refined .ips-agency-field {
    max-width: 390px;
}

.ips-agency-selection-refined .ips-agency-field label {
    color: #fff;
    font-size: 14px;
}

.ips-agency-selection-refined .ips-agency-go {
    min-width: 48px;
    min-height: 38px;
    padding: 0 14px;
    border-color: #17396f;
    border-radius: 4px;
    background: #17396f;
    color: #fff;
    font-weight: 600;
}

.ips-agency-selection-refined .ips-agency-go:hover,
.ips-agency-selection-refined .ips-agency-go:focus {
    border-color: #23529b;
    background: #23529b;
    color: #fff;
}

@media (max-width: 767.98px) {
    .ips-agency-selection.ips-agency-selection-refined {
        grid-template-columns: 1fr;
        padding: 24px 20px;
    }

    .ips-agency-selection-refined .ips-agency-form {
        align-items: stretch;
        gap: 14px;
    }

    .ips-agency-selection-refined .ips-agency-field {
        max-width: none;
    }
}

.ips-new-footer {
    width: 100%;
    margin-top: 28px;
    padding: 22px 30px;
    border-radius: 10px 10px 0 0;
    background: rgba(31, 40, 47, .94);
    box-shadow: 0 10px 30px rgba(8, 29, 39, .2);
}

@media (max-width: 767.98px) {
    .ips-new-page {
        width: min(560px, calc(100% - 28px));
        margin-top: 24px;
    }

    .ips-agency-selection {
        padding: 26px 22px;
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .ips-agency-field {
        max-width: none;
    }
}

/* Common IPS agency-selection portal */
.ips-new-shell {
    min-height: 100vh;
    margin: 0;
    color: var(--neutral-grey500);
    background: #13252f;
}

.ips-new-background,
.ips-new-overlay {
    position: fixed;
    inset: 0;
}

.ips-new-background {
    z-index: 0;
    background: url("../Images/new/TowerBridge-BG.jpg") center / cover no-repeat;
}

.ips-new-overlay {
    z-index: 1;
    background: linear-gradient(110deg, rgba(12, 34, 45, .78), rgba(12, 34, 45, .42));
}

.ips-new-page {
    position: relative;
    z-index: 2;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.ips-new-header {
    height: 76px;
    padding: 0 clamp(24px, 5vw, 72px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 2px 14px rgba(8, 25, 34, .14);
}

.ips-new-header img {
    width: auto;
    height: 34px;
}

.ips-new-header span {
    color: var(--neutral-grey500);
    font-size: 15px;
    font-weight: 600;
}

.ips-new-main {
    width: 100%;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px 24px;
}

.ips-agency-selection {
    width: min(960px, 100%);
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr);
    align-items: center;
    gap: clamp(38px, 7vw, 90px);
}

.ips-agency-hero-copy {
    color: #fff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .2);
}

.ips-agency-eyebrow {
    display: block;
    margin-bottom: 12px;
    color: #8de3ee;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ips-agency-hero-copy h1 {
    margin: 0 0 18px;
    color: #fff;
    font-size: clamp(36px, 5vw, 58px);
    font-weight: 600;
    line-height: 1.05;
}

.ips-agency-hero-copy p {
    max-width: 440px;
    margin: 0;
    color: #fff;
    font-size: 17px;
    line-height: 1.55;
}

.ips-agency-card {
    padding: clamp(30px, 4vw, 48px);
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 18px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 24px 60px rgba(7, 25, 34, .28);
}

.ips-agency-form {
    display: flex;
    align-items: flex-end;
    gap: 16px;
}

.ips-agency-field {
    min-width: 0;
    flex: 1;
    margin: 0;
}

.ips-agency-field label {
    display: block;
    margin-bottom: 9px;
    color: var(--neutral-grey500);
    font-weight: 700;
}

.ips-agency-field .k-dropdown,
.ips-agency-field .k-dropdownlist {
    width: 100%;
}

.ips-agency-go {
    min-height: 42px;
    padding: 0 22px;
    border-radius: 8px;
}

.ips-new-footer {
    padding: 22px clamp(24px, 5vw, 72px);
    color: #dbe7eb;
    background: rgba(31, 40, 47, .96);
    font-size: 13px;
}

.ips-new-footer-links {
    display: flex;
    gap: 24px;
    margin-bottom: 10px;
}

.ips-new-footer a,
.ips-new-terms-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    text-decoration: underline;
    cursor: pointer;
}

.ips-new-contact {
    margin: 10px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.ips-new-footer p {
    margin: 0;
}

.ips-new-terms-document,
.ips-new-terms-document embed {
    width: min(600px, 100%);
    height: 600px;
}

@media (max-width: 767.98px) {
    .ips-new-header {
        height: 66px;
    }

    .ips-new-main {
        padding: 40px 20px;
    }

    .ips-agency-selection {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .ips-agency-hero-copy {
        text-align: center;
    }

    .ips-agency-form {
        align-items: stretch;
        flex-direction: column;
    }

    .ips-agency-go {
        width: 100%;
    }

    .ips-new-footer-links,
    .ips-new-contact {
        justify-content: center;
    }

    .ips-new-footer {
        text-align: center;
    }
}

/* New Home */
.new-home {
    min-height: 100%;
    color: var(--neutral-grey500);
    background: #edf6fa;
}

.new-home-hero {
    position: relative;
    min-height: 290px;
    display: flex;
    align-items: center;
    overflow: hidden;
    color: #fff;
    background: url("../Images/new/TowerBridge-BG.jpg") center 48% / cover no-repeat;
}

.new-home-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(10, 25, 34, .76) 0%, rgba(10, 25, 34, .5) 46%, rgba(10, 25, 34, .2) 100%);
}

.new-home-hero-content {
    position: relative;
    z-index: 1;
    width: min(720px, calc(100% - 48px));
    margin-left: clamp(36px, 8vw, 120px);
}

.new-home-hero h1 {
    margin: 0 0 24px;
    color: #fff;
    font-size: clamp(30px, 3vw, 42px);
    font-weight: 500;
}

.new-home-hero p {
    max-width: 590px;
    margin: 0;
    color: #fff;
    font-size: 16px;
    line-height: 1.45;
}

.new-home-actions {
    padding: 72px 30px 84px;
    background: #edf6fa;
}

.new-home-actions h2,
.new-home-updates h2 {
    margin: 0 0 30px;
    color: var(--neutral-grey500);
    font-size: 28px;
    font-weight: 700;
    text-align: center;
}

.new-home-actions h2 span,
.new-home-updates h2 span {
    color: var(--secondary500);
}

.new-home-action-grid {
    width: min(900px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.new-home-action {
    min-height: 96px;
    padding: 18px 26px;
    display: flex;
    align-items: center;
    gap: 18px;
    border: 1px solid #cbd5da;
    border-radius: 14px;
    background: #fff;
    color: var(--neutral-grey500);
    font-size: 15px;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.new-home-action:hover,
.new-home-action:focus {
    border-color: var(--primary500);
    color: var(--neutral-grey500);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(31, 64, 81, .1);
}

.new-home-action-primary {
    border-color: var(--primary500);
    background: var(--primary500);
    font-weight: 700;
}

.new-home-action-primary:hover,
.new-home-action-primary:focus {
    border-color: var(--primary700);
    background: var(--primary700);
    color: #fff;
}

.new-home-action-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #b8dce5;
    border-radius: 50%;
    background: #fff;
    color: var(--secondary500);
    font-size: 17px;
}

.new-home-updates {
    min-height: 260px;
    padding: 70px 30px;
    background-color: #fff;
}

.new-home-updates > .alert,
.new-home-news-list {
    width: min(900px, 100%);
    margin-left: auto;
    margin-right: auto;
}

.new-home-news-card {
    margin-bottom: 18px;
    padding: 24px 28px;
    border: 1px solid #e0e6e9;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(31, 64, 81, .06);
}

.new-home-news-card h3 {
    margin: 0 0 12px;
    color: var(--neutral-grey500);
    font-size: 20px;
}

.new-home-news-description {
    margin-bottom: 16px;
    line-height: 1.55;
}

.new-home-news-card time {
    color: var(--text-muted);
    font-size: 13px;
}

.new-home-empty {
    text-align: center;
    color: var(--text-muted);
}

@media (max-width: 767.98px) {
    .new-home-hero {
        min-height: 250px;
    }

    .new-home-hero-content {
        width: calc(100% - 40px);
        margin: 0 20px;
    }

    .new-home-actions,
    .new-home-updates {
        padding: 48px 20px;
    }

    .new-home-action-grid {
        grid-template-columns: 1fr;
    }

    .new-home-action {
        min-height: 78px;
    }
}

/* Final IPS sizing overrides: retain the Legacy page footprint. */
.ips-new-shell {
    min-height: 100vh;
    background: #dce8ed url("../Images/new/TowerBridge-BG.jpg") center / cover fixed no-repeat;
}

.ips-new-shell .ips-new-background,
.ips-new-shell .ips-new-overlay,
.ips-new-shell .ips-new-header {
    display: none;
}

.ips-new-page {
    width: min(960px, calc(100% - 32px));
    min-height: 0;
    margin: 54px auto 0;
    display: block;
}

.ips-new-main {
    display: block;
    padding: 0;
}

.ips-agency-selection {
    width: 100%;
    min-height: 120px;
    padding: 28px 30px;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 28px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 12px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 14px 32px rgba(8, 29, 39, .24);
    backdrop-filter: blur(5px);
}

.ips-agency-hero-copy {
    color: var(--neutral-grey500);
    text-shadow: none;
}

.ips-agency-eyebrow {
    margin-bottom: 7px;
    color: var(--secondary700);
    font-size: 11px;
}

.ips-agency-hero-copy h1 {
    margin-bottom: 8px;
    color: var(--neutral-grey500);
    font-size: 25px;
    line-height: 1.15;
}

.ips-agency-hero-copy p {
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.4;
}

.ips-agency-card {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.ips-agency-form {
    height: 100%;
    justify-content: flex-end;
}

.ips-agency-field {
    max-width: 390px;
}

.ips-agency-go {
    min-width: 92px;
}

.ips-new-footer {
    width: 100%;
    margin-top: 28px;
    padding: 22px 30px;
    border-radius: 10px 10px 0 0;
    background: rgba(31, 40, 47, .94);
    box-shadow: 0 10px 30px rgba(8, 29, 39, .2);
}

@media (max-width: 767.98px) {
    .ips-new-page {
        width: min(560px, calc(100% - 28px));
        margin-top: 24px;
    }

    .ips-agency-selection {
        padding: 26px 22px;
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .ips-agency-field {
        max-width: none;
    }
}
