:root {
    --cms-ink: #16202a;
    --cms-ink-soft: #5f6b76;
    --cms-line: rgba(16, 24, 32, 0.12);
    --cms-surface: #ffffff;
    --cms-shell: #f7f9fb;
    --cms-brand: #0a58ca;
}

html {
    scroll-behavior: smooth;
}

body.site-shell {
    min-height: 100vh;
    margin: 0;
    color: var(--cms-ink);
    background: var(--cms-shell);
}

body.site-shell p,
body.site-shell li,
body.site-shell label,
body.site-shell .form-text,
body.site-shell .alert {
    color: var(--cms-ink-soft);
}

body.site-shell a {
    transition: all 0.25s ease-in-out;
}

.navbar-top {
    position: relative;
    z-index: 55;
}

.navbar.navbar-area {
    position: relative;
    z-index: 40;
    background: #fff;
}

.navbar.navbar-area.sticky-active {
    animation: none;
}

.navbar.navbar-area.cms-nav-fixed,
.navbar.navbar-area.cms-nav-fixed.sticky-active {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 80;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.cms-nav-spacer {
    display: none;
    width: 100%;
}

.cms-nav-spacer.is-active {
    display: block;
}

.navbar-top {
    padding: 10px 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff;
}

.cms-topbar-shell {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px 28px;
}

.cms-topbar-brand,
.cms-topbar-tools {
    display: flex;
    align-items: center;
    gap: 12px 20px;
}

.cms-topbar-brand {
    min-width: 0;
}

.site-main {
    overflow: clip;
}

.cms-topbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    align-items: center;
}

.navbar-top .cms-topbar-actions li a {
    color: var(--cms-ink);
}

.cms-topbar-actions {
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 8px;
}

.cms-topbar-tools {
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.cms-language-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 100%;
    min-height: 0;
    padding: 9px 14px;
    border-radius: 10px;
    color: var(--cms-ink-soft);
    background: transparent;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.08em;
}

.cms-language-link.is-active,
.cms-language-link:hover {
    color: var(--cms-ink);
    background: #eef3f7;
}

.cms-language-flag {
    width: 18px;
    height: 12px;
    border-radius: 3px;
    flex: 0 0 auto;
    display: inline-block;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.12);
    object-fit: cover;
    background: linear-gradient(180deg, #d9e2ec 0%, #bcccdc 100%);
}

.cms-language-name {
    flex: 1 1 auto;
    min-width: 0;
    text-transform: none;
    letter-spacing: 0;
    font-size: 13px;
    font-weight: 600;
}

.cms-language-code {
    flex: 0 0 auto;
}

.cms-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    flex: 0 0 auto;
}

.cms-topbar-actions li {
    flex: 0 0 auto;
}

.cms-brand__media {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 14px;
    background: #0f1720;
}

.cms-brand__media--custom {
    width: min(var(--brand-logo-width), 180px);
    height: min(var(--brand-logo-height), 58px);
    flex-basis: min(var(--brand-logo-width), 180px);
    padding: 6px 12px;
    background: transparent;
}

.cms-brand__media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.cms-brand__media--custom img {
    width: auto;
    max-width: 100%;
    max-height: 100%;
}

.cms-brand__copy {
    display: grid;
    gap: 2px;
}

.cms-brand__copy strong {
    color: #16202a;
    font-size: 28px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.04em;
}

.cms-brand__copy small {
    color: #7a8693;
    font-size: 13px;
    line-height: 1.35;
}

.cms-language-dropdown {
    position: relative;
    z-index: 130;
}

.cms-language-dropdown summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 96px;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 999px;
    color: var(--cms-ink);
    background: #fff;
    cursor: pointer;
    list-style: none;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cms-language-dropdown summary::-webkit-details-marker {
    display: none;
}

.cms-language-dropdown[open] summary {
    background: #f5f8fb;
}

.cms-language-dropdown__menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 210px;
    margin: 0;
    padding: 8px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
    z-index: 140;
    list-style: none;
}

.cms-language-dropdown__menu li + li {
    margin-top: 4px;
}

.cms-language-dropdown__menu li {
    display: block;
    margin: 0;
    padding: 0;
}

.cms-language-dropdown__menu li a {
    margin: 0;
    color: var(--cms-ink-soft) !important;
}

.navbar-top .cms-language-dropdown__menu li {
    display: block;
    margin-right: 0;
    padding-bottom: 0;
}

.cms-language-dropdown__menu li a:hover,
.cms-language-dropdown__menu li a:focus,
.cms-language-dropdown__menu li a.is-active {
    color: var(--cms-ink) !important;
    background: #eef3f7;
}

.cms-topbar-search {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    min-width: 42px;
    height: 42px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 999px;
    color: var(--cms-ink);
    background: #fff;
}

.cms-topbar-account.btn.btn-base {
    min-width: 132px;
    border-radius: 999px;
    color: #fff;
    background: var(--cms-ink);
}

.cms-topbar-account.btn.btn-base:hover {
    color: #fff;
    background: #0b1220;
}

.navbar-area .nav-container {
    gap: 24px;
    justify-content: center;
    padding-top: 12px;
    padding-bottom: 12px;
    background: #fff;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.navbar-area .navbar-collapse {
    margin-left: 0;
    justify-content: center;
}

.navbar.navbar-area.cms-nav-scrolled .nav-container,
.navbar.navbar-area.sticky-active .nav-container,
.navbar.navbar-area.cms-nav-fixed .nav-container {
    box-shadow: none;
}

.navbar-area .navbar-nav {
    gap: 4px;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav,
.navbar-area .navbar-nav.menu-open {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding-left: 0;
    margin: 0;
    row-gap: 6px;
    column-gap: 14px;
    text-align: center;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav > li,
.navbar-area .navbar-nav.menu-open > li {
    display: inline-flex;
    align-items: center;
    float: none;
    margin: 0;
    line-height: 1.2;
}

.navbar-area .navbar-nav > li > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 999px;
    background: #fff;
    color: var(--cms-ink);
    font-weight: 600;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li + li,
.navbar-area .navbar-nav.menu-open li + li {
    margin-left: 0;
}

.navbar-area,
.navbar-area .nav-container,
.navbar-area .navbar-collapse,
.navbar-area .navbar-nav,
.navbar-area .navbar-nav li {
    overflow: visible;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu {
    overflow: visible;
    z-index: 1001;
    background: #fff;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu .menu-item-has-children > .sub-menu {
    top: -1px;
    left: calc(100% + 6px);
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li {
    background: #fff;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li > a {
    color: #050a30 !important;
    padding: 10px 20px !important;
    background: transparent;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li:hover > a {
    color: #fff !important;
    padding: 10px 20px 10px 30px !important;
    background: #061539;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li:hover > a:before {
    visibility: visible;
    opacity: 1;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu .menu-item-has-children:after {
    content: none;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu .menu-item-has-children:before {
    content: none;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu .menu-item-has-children > a::after {
    content: "\203A";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #050a30;
    font-size: 20px;
    line-height: 1;
    font-weight: 600;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu .menu-item-has-children:hover > a::after {
    color: #fff;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li:hover > .sub-menu li > a {
    color: #050a30 !important;
    padding: 10px 20px !important;
    background: #fff;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li:hover > .sub-menu li > a:before {
    visibility: hidden;
    opacity: 0;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li:hover > .sub-menu li:hover > a {
    color: #fff !important;
    padding: 10px 20px 10px 30px !important;
    background: #061539;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li:hover > .sub-menu li:hover > a:before {
    visibility: visible;
    opacity: 1;
}

.navbar-area .navbar-nav > .current-menu-item > a,
.navbar-area .navbar-nav > li > a:hover {
    color: var(--cms-brand);
    border-color: rgba(10, 88, 202, 0.22);
    background: #f5f8fb;
}

.navbar-area .navbar-nav > li.menu-item-has-children > a::before {
    right: 16px;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children,
.navbar-area .navbar-nav.menu-open li.menu-item-has-children {
    padding-right: 0;
}

.navbar-area .navbar-nav > li.menu-item-has-children > a {
    padding-right: 42px;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children:before,
.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children:after {
    right: 18px;
}

.navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children:after {
    top: 50%;
}

.navbar-area .sub-menu li.current-menu-item > a {
    color: var(--cms-brand);
}

.td-search-popup .search-form {
    width: min(560px, calc(100vw - 32px));
}

.td-search-popup.active .search-form {
    width: min(620px, calc(100vw - 32px));
}

.td-search-popup .search-form .form-group {
    position: relative;
    margin-bottom: 0;
}

.cms-tagline-link {
    white-space: nowrap;
}

.cms-home-banner .banner-inner .title {
    max-width: 12ch;
}

.cms-home-banner {
    padding: 110px 0 110px;
    background: linear-gradient(180deg, #eef3f9 0%, #e9eff7 100%);
}

.cms-home-banner .banner-inner {
    position: relative;
    z-index: 1;
}

.cms-home-banner .banner-inner .sub-title,
.cms-home-banner .banner-inner .title,
.cms-home-banner .banner-inner .content {
    color: var(--cms-ink);
}

.cms-home-banner .banner-inner .sub-title::after {
    background: var(--cms-brand);
}

.cms-banner-copy {
    max-width: 52ch;
    margin: 22px 0 0;
}

.cms-banner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.cms-hero-media {
    position: relative;
    padding: 24px;
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.58));
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.1);
}

.cms-hero-media img {
    width: 100%;
    max-height: 560px;
    object-fit: cover;
    border-radius: 20px;
}

.cms-hero-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 32px;
}

.cms-hero-summary div {
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.72);
}

.cms-hero-summary strong {
    display: block;
    color: var(--cms-ink);
    font-size: 28px;
    line-height: 1;
}

.cms-hero-summary span {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--cms-ink-soft);
}

.cms-module-card {
    display: block;
    height: 100%;
    text-decoration: none;
}

.cms-module-card .details p {
    min-height: 48px;
}

.cms-feature-page {
    min-height: 100%;
}

.cms-page-card .thumb img {
    height: 230px;
    object-fit: cover;
}

.cms-page-card .details p {
    margin-top: 12px;
    min-height: 66px;
}

.cms-page-card .price a {
    color: var(--cms-brand);
    font-weight: 700;
}

.cms-breadcrumb .page-title {
    max-width: 14ch;
    margin-inline: auto;
}

.breadcrumb-area {
    padding: 96px 0 42px;
}

.breadcrumb-area .page-title {
    margin-bottom: 8px;
    font-size: clamp(2rem, 4vw, 2.5rem);
    line-height: 1.05;
}

.breadcrumb-area .page-list li {
    font-size: 14px;
}

.breadcrumb-area.bg-overlay::after {
    background: rgba(0, 33, 71, 0.72);
}

.cms-page-content .single-blog-inner,
.blog-details-page-content .single-blog-inner,
.single-blog-inner.cms-empty-state {
    background: var(--cms-surface);
}

.cms-article-breadcrumb {
    padding-bottom: 34px;
}

.cms-page-content .thumb img,
.blog-details-page-content .thumb img,
.single-blog-inner .thumb img {
    width: 100%;
    display: block;
    object-fit: cover;
}

.cms-page-lead {
    font-size: 18px;
    line-height: 1.8;
}

.cms-richtext {
    color: var(--cms-ink);
    font-size: 16px;
    line-height: 1.9;
}

.cms-richtext > * + * {
    margin-top: 18px;
}

.cms-richtext > *:first-child {
    margin-top: 0;
}

.cms-richtext h2,
.cms-richtext h3,
.cms-richtext h4 {
    color: var(--cms-ink);
}

.cms-richtext img {
    max-width: 100%;
    height: auto;
    border-radius: 18px;
}

.cms-richtext table {
    width: 100%;
    margin: 24px 0;
}

.cms-richtext blockquote {
    margin: 28px 0;
    padding: 24px 28px;
    border-left: 4px solid var(--cms-brand);
    background: #f6f9fc;
}

.cms-richtext ul,
.cms-richtext ol {
    padding-left: 1.4rem;
}

.cms-richtext li + li {
    margin-top: 10px;
}

.cms-article-shell .single-blog-inner {
    overflow: hidden;
    border-radius: 28px;
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.08);
}

.cms-article-card .details {
    padding: 28px 34px 34px !important;
}

.cms-article-cover {
    overflow: hidden;
    border-radius: 28px 28px 0 0;
    background: #edf2f7;
}

.cms-article-cover img {
    min-height: 300px;
    max-height: 520px;
}

.cms-article-shell .blog-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.cms-article-shell .blog-meta li {
    margin-right: 0 !important;
    font-size: 13px !important;
    font-weight: 600;
    color: var(--cms-ink-soft) !important;
}

.cms-article-sidebar .widget {
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.06);
    padding: 26px 24px;
}

.cms-article-sidebar .widget + .widget {
    margin-top: 24px;
}

.cms-article-sidebar .widget .widget-title {
    margin-bottom: 18px;
}

.cms-article-sidebar .widget ul {
    margin: 0;
}

.cms-article-sidebar .widget-recent-post ul li .media {
    align-items: center;
    gap: 14px;
}

.cms-article-sidebar .widget-recent-post ul li .media .media-left {
    width: 88px;
    min-width: 88px;
}

.cms-article-sidebar .widget-recent-post ul li .media .media-left img {
    width: 88px;
    height: 88px;
    border-radius: 16px;
    object-fit: cover;
}

.cms-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 28px;
}

.cms-gallery-grid__item {
    display: block;
    overflow: hidden;
    border-radius: 18px;
}

.cms-gallery-grid__item img {
    width: 100%;
    height: 220px;
    display: block;
    object-fit: cover;
}

.cms-sidebar-list li {
    display: grid;
    gap: 6px;
}

.cms-sidebar-list li span {
    color: var(--cms-ink-soft);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.cms-sidebar-list li strong {
    color: var(--cms-ink);
    font-size: 15px;
    font-weight: 600;
}

.cms-immersive-hero {
    position: relative;
    padding: 42px 0 58px;
    background:
        radial-gradient(circle at top right, rgba(255, 196, 0, 0.18), transparent 34%),
        linear-gradient(180deg, #f5f8fc 0%, #eef3f8 100%);
}

.cms-immersive-hero::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 1px;
    background: rgba(15, 23, 42, 0.08);
}

.cms-immersive-hero__content {
    max-width: 44rem;
    padding-right: 24px;
}

.cms-immersive-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-bottom: 18px;
}

.cms-immersive-hero__meta li {
    margin-right: 0 !important;
    font-size: 13px !important;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cms-ink-soft) !important;
}

.cms-immersive-hero__title {
    margin: 0;
    max-width: 12ch;
    color: var(--cms-ink);
    font-size: clamp(2.6rem, 5vw, 4.75rem);
    line-height: 0.98;
    text-wrap: balance;
}

.cms-immersive-hero__lead {
    margin: 20px 0 0;
    max-width: 38rem;
    color: var(--cms-ink-soft);
    font-size: 18px;
    line-height: 1.75;
}

.cms-immersive-hero__media {
    position: relative;
    overflow: hidden;
    border-radius: 32px;
    aspect-ratio: 4 / 5;
    min-height: 320px;
    background: #dfe8f1;
    box-shadow: 0 26px 60px rgba(15, 23, 42, 0.1);
}

.cms-immersive-hero__media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.cms-immersive-hero__media.is-empty {
    background:
        linear-gradient(135deg, rgba(255, 196, 0, 0.15), transparent 60%),
        linear-gradient(180deg, #eaf0f7 0%, #dce6f0 100%);
}

.cms-immersive-hero__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-end;
    padding: 28px;
}

.cms-immersive-hero__placeholder span {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 18px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--cms-ink);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cms-immersive-shell {
    margin-top: -18px;
    padding-bottom: 120px;
    background: linear-gradient(180deg, #eef3f8 0, #f7f9fc 86px, #ffffff 86px);
}

.cms-immersive-shell__content {
    position: relative;
    z-index: 1;
}

.cms-immersive-article {
    border: 1px solid rgba(15, 23, 42, 0.06);
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.cms-immersive-article .details {
    padding: 36px 40px 42px !important;
}

.cms-immersive-body {
    color: var(--cms-ink);
    font-size: 17px;
    line-height: 1.95;
}

.cms-immersive-body > * + * {
    margin-top: 20px;
}

.cms-immersive-body h2,
.cms-immersive-body h3,
.cms-immersive-body h4 {
    margin-top: 34px;
}

.cms-immersive-gallery {
    margin-top: 34px;
}

.cms-immersive-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-top: 34px;
    padding-top: 28px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.cms-immersive-info-panel {
    padding: 24px 26px;
    border: 1px solid rgba(15, 23, 42, 0.06);
    border-radius: 22px;
    background: #f8fbff;
}

.cms-immersive-info-panel h4 {
    margin: 0 0 18px;
    color: var(--cms-ink);
    font-size: 20px;
}

.cms-immersive-info-panel ul {
    margin: 0;
}

.cms-immersive-link-list li + li {
    margin-top: 12px;
}

.cms-immersive-link-list a {
    color: var(--cms-ink);
    font-weight: 600;
}

.cms-immersive-link-list a:hover,
.cms-immersive-link-list a:focus {
    color: var(--cms-brand);
}

.cms-category-timeline .single-blog-list-inner {
    align-items: flex-start;
}

.cms-empty-state .details {
    padding-top: 40px;
    padding-bottom: 40px;
}

.cms-footer-shell {
    margin-top: 0;
}

.cms-footer-brand__link {
    display: inline-flex;
    margin-bottom: 18px;
}

.cms-footer-brand__media {
    width: 62px;
    height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 16px;
    background: #0f1720;
}

.cms-footer-brand__media--custom {
    width: min(var(--brand-logo-width), 180px);
    height: min(var(--brand-logo-height), 58px);
    padding: 6px 12px;
    background: transparent;
}

.cms-footer-brand__media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.cms-footer-mark {
    display: inline-flex;
    max-width: 220px;
}

.cms-footer-mark img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
}

.cms-footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.cms-footer-links li {
    margin: 0;
}

.cms-footer-links li a {
    width: auto;
    height: auto;
    min-height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    color: var(--cms-ink);
    background: rgba(15, 23, 32, 0.06);
    font-size: 13px;
    font-weight: 700;
    line-height: 38px;
}

.cms-footer-links li a:hover {
    color: #fff;
    background: var(--cms-brand);
}

.public-form-shell,
.survey-public-results__card {
    padding: 110px 0 120px;
}

.public-form-shell {
    max-width: 100%;
}

.public-form-shell > * {
    width: min(100%, 920px);
    margin-left: auto;
    margin-right: auto;
}

.public-form-shell .eyebrow {
    margin-bottom: 10px;
}

.public-form-shell h1 {
    margin-bottom: 18px;
    font-size: clamp(2.1rem, 4vw, 3.8rem);
    line-height: 1.05;
}

.form-shell__lead,
.public-form-welcome,
.public-form-completion-note,
.feedback-banner {
    margin-bottom: 18px;
}

.public-form-welcome,
.public-form-completion-note,
.feedback-banner,
.survey-public-results,
.public-form-question,
.public-form-section__header {
    padding: 24px 28px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
}

.feedback-banner--success {
    border-left: 4px solid #16a34a;
}

.feedback-banner--error {
    border-left: 4px solid #dc2626;
}

.feedback-banner--info {
    border-left: 4px solid var(--cms-brand);
}

.public-form {
    display: grid;
    gap: 18px;
}

.public-form-progress {
    padding: 20px 24px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
}

.public-form-progress__meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    font-size: 14px;
}

.public-form-progress__track {
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
    background: #e7edf3;
}

.public-form-progress__fill,
.survey-public-results__fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0d6efd, #12344d);
}

.public-form-section {
    display: none;
    gap: 18px;
}

.public-form-section.is-active {
    display: grid;
}

.public-form-section__header h2,
.survey-public-results__header h2 {
    margin: 0 0 8px;
    font-size: 26px;
}

.public-form-section__header p,
.survey-public-results__header p {
    margin: 0;
}

.public-form-section__questions {
    display: grid;
    gap: 18px;
}

.public-form-question__header {
    margin-bottom: 16px;
}

.public-form-question__title {
    margin: 0;
    color: var(--cms-ink);
    font-size: 20px;
}

.public-form-question__description,
.public-form-question__sensitive {
    margin: 8px 0 0;
}

.public-form-question__media {
    margin-bottom: 18px;
}

.public-form-question__media img,
.public-form-question__media video {
    width: 100%;
    max-height: 360px;
    border-radius: 18px;
    object-fit: cover;
}

.public-form-question__required {
    color: #dc2626;
}

.public-form-choice,
.public-form-scale__option,
.public-form-rating__option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--cms-line);
    border-radius: 14px;
    background: #fbfdff;
}

.public-form-choice + .public-form-choice,
.public-form-scale__option + .public-form-scale__option,
.public-form-rating__option + .public-form-rating__option {
    margin-top: 10px;
}

.public-form-scale__labels {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    font-size: 13px;
}

.public-form-scale__options,
.public-form-rating {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
    gap: 10px;
}

.public-form-grid th,
.public-form-grid td {
    padding: 12px;
    vertical-align: middle;
}

.public-form-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.public-form-section__actions .btn {
    min-width: 180px;
}

.survey-public-results {
    display: grid;
    gap: 18px;
    margin-top: 20px;
}

.survey-public-results__card-head,
.survey-public-results__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px;
}

.survey-public-results__row + .survey-public-results__row {
    margin-top: 16px;
}

.survey-public-results__bar {
    height: 10px;
    margin-top: 8px;
    border-radius: 999px;
    overflow: hidden;
    background: #e7edf3;
}

.survey-public-results__average,
.survey-public-results__note {
    margin: 14px 0 0;
}

@media (max-width: 1199.98px) {
    .cms-brand__copy strong {
        font-size: 24px;
    }

    .cms-page-card .details p {
        min-height: 0;
    }
}

@media (max-width: 991.98px) {
    .cms-topbar-actions {
        flex-wrap: wrap;
        justify-content: center;
    }

    .cms-topbar-shell {
        align-items: center;
        gap: 14px 18px;
    }

    .cms-topbar-brand {
        flex: 1 1 auto;
        min-width: 0;
    }

    .cms-topbar-tools {
        width: auto;
        max-width: 100%;
        justify-content: flex-end;
        gap: 10px;
    }

    .cms-hero-summary,
    .cms-gallery-grid {
        grid-template-columns: 1fr;
    }

    .cms-home-banner {
        padding: 90px 0 90px;
    }

    .cms-immersive-hero {
        padding: 30px 0 40px;
    }

    .cms-immersive-hero__content {
        padding-right: 0;
    }

    .cms-immersive-hero__media {
        max-width: 520px;
        margin: 0 auto;
        min-height: 280px;
    }

    .cms-immersive-shell {
        margin-top: -12px;
        padding-bottom: 96px;
    }

    .cms-immersive-info-grid {
        grid-template-columns: 1fr;
    }

    .cms-article-sidebar {
        margin-top: 28px;
    }

    .cms-article-sidebar .widget {
        padding: 22px 20px;
    }

    .cms-footer-links {
        justify-content: center;
    }

    .public-form-shell,
    .survey-public-results__card {
        padding: 80px 0 90px;
    }
}

@media (max-width: 767.98px) {
    .navbar-area .nav-container {
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
        justify-content: space-between;
        align-items: center;
        padding-top: 14px;
        padding-bottom: 14px;
    }

    .responsive-mobile-menu {
        width: 100% !important;
        flex: 0 0 100%;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        position: relative;
        top: auto;
        right: auto;
        margin-left: 0;
        z-index: 5;
    }

    .responsive-mobile-menu .toggle-btn {
        margin: 0;
        position: relative;
        top: auto;
        left: auto;
        width: 44px;
        height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        z-index: 5;
    }

    .responsive-mobile-menu .toggle-btn::before,
    .responsive-mobile-menu .toggle-btn::after {
        content: "";
        position: absolute;
        left: 13px;
        width: 18px;
        height: 2px;
        background: #16202a;
        transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease, top 0.2s ease;
    }

    .responsive-mobile-menu .toggle-btn::before {
        top: 15px;
        box-shadow: 0 6px 0 #16202a, 0 12px 0 #16202a;
    }

    .responsive-mobile-menu .toggle-btn::after {
        top: 21px;
        opacity: 0;
    }

    .navbar-area .toggle-btn .icon-left,
    .navbar-area .toggle-btn .icon-right {
        display: none !important;
    }

    .responsive-mobile-menu .toggle-btn.open::before {
        top: 21px;
        box-shadow: none;
        transform: rotate(45deg);
    }

    .responsive-mobile-menu .toggle-btn.open::after {
        opacity: 1;
        transform: rotate(-45deg);
    }

    .navbar-area .nav-container .navbar-collapse {
        width: 100%;
        flex: 0 0 100%;
        margin-top: 12px;
        border-top: 1px solid rgba(15, 23, 42, 0.08);
    }

    .navbar-area .nav-container .navbar-collapse.sopen {
        display: block;
    }

    .navbar-area .nav-container .navbar-collapse .navbar-nav,
    .navbar-area .navbar-nav.menu-open {
        margin: 0;
        padding: 16px 0 6px;
        justify-content: flex-start;
        row-gap: 0;
        column-gap: 0;
        text-align: left;
    }

    .navbar-area .nav-container .navbar-collapse .navbar-nav > li,
    .navbar-area .navbar-nav.menu-open > li {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .navbar-area .nav-container .navbar-collapse .navbar-nav > li + li,
    .navbar-area .navbar-nav.menu-open > li + li {
        margin-top: 10px;
    }

    .navbar-area .navbar-nav > li > a {
        width: 100%;
        min-height: 52px;
        padding: 14px 18px;
        justify-content: flex-start;
        border-radius: 18px;
        border: 1px solid rgba(15, 23, 42, 0.12);
        background: #fff;
        color: var(--cms-ink) !important;
        font-weight: 700;
        box-shadow: none;
        text-align: left;
    }

    .navbar-area .navbar-nav > li.current-menu-item > a {
        border-color: rgba(10, 88, 202, 0.22);
        background: #f5f8ff;
    }

    .navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children:before,
    .navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children:after {
        right: 18px;
    }

    .navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu {
        margin-top: 8px;
        padding: 8px 0 0 14px;
    }

    .navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li + li {
        margin-top: 8px;
    }

    .navbar-area .nav-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li a {
        min-height: 44px;
        padding: 10px 14px;
        border-radius: 14px;
        border: 1px solid rgba(15, 23, 42, 0.1);
        background: #fff;
    }

    .cms-brand {
        gap: 10px;
        min-width: 0;
        max-width: 100%;
    }

    .cms-brand__media {
        width: 46px;
        height: 46px;
        flex-basis: 46px;
    }

    .cms-brand__media--custom {
        width: min(var(--brand-logo-width), 150px);
        height: min(var(--brand-logo-height), 48px);
        flex-basis: min(var(--brand-logo-width), 150px);
        padding: 4px 8px;
    }

    .cms-brand__copy strong {
        font-size: 20px;
    }

    .cms-brand__copy small {
        display: none;
    }

    .cms-topbar-shell {
        flex-wrap: nowrap;
        justify-content: space-between;
        align-items: center;
        gap: 10px;
    }

    .cms-topbar-brand {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        justify-content: flex-start;
    }

    .cms-language-dropdown {
        width: auto;
        flex: 0 0 auto;
    }

    .cms-language-dropdown summary {
        width: auto;
        min-width: 78px;
        min-height: 38px;
        padding: 0 12px;
        gap: 6px;
        font-size: 11px;
        letter-spacing: 0.08em;
    }

    .cms-language-dropdown__menu {
        left: auto;
        right: 0;
        min-width: 180px;
    }

    .cms-topbar-tools {
        width: auto;
        max-width: 100%;
        flex: 0 0 auto;
        flex-wrap: nowrap;
        justify-content: flex-end;
        gap: 8px;
    }

    .cms-topbar-search {
        width: 38px;
        min-width: 38px;
        height: 38px;
    }

    .cms-topbar-account.btn.btn-base {
        min-width: 0;
        padding-inline: 14px;
        font-size: 12px;
    }

    .td-search-popup .search-form,
    .td-search-popup.active .search-form {
        width: calc(100vw - 24px);
    }

    .cms-banner-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cms-home-banner {
        padding: 72px 0 70px;
    }

    .cms-immersive-hero {
        padding: 24px 0 30px;
    }

    .cms-immersive-hero__title {
        max-width: none;
        font-size: clamp(2.05rem, 8vw, 2.9rem);
    }

    .cms-immersive-hero__lead {
        font-size: 16px;
        margin-top: 16px;
    }

    .cms-immersive-hero__media {
        border-radius: 24px;
        aspect-ratio: 16 / 11;
        min-height: 0;
    }

    .cms-immersive-hero__placeholder {
        padding: 20px;
    }

    .cms-immersive-shell {
        margin-top: -8px;
    }

    .cms-immersive-info-panel {
        padding: 20px;
        border-radius: 18px;
    }

    .cms-banner-actions .btn {
        width: 100%;
        text-align: center;
    }

    .cms-article-breadcrumb {
        padding-top: 78px;
        padding-bottom: 24px;
    }

    .cms-article-shell .single-blog-inner {
        border-radius: 22px;
    }

    .cms-article-card .details {
        padding: 22px 20px 24px !important;
    }

    .cms-article-cover {
        border-radius: 22px 22px 0 0;
    }

    .cms-article-cover img {
        min-height: 220px;
    }

    .cms-immersive-article .details {
        padding: 24px 20px 26px !important;
    }

    .public-form-welcome,
    .public-form-completion-note,
    .feedback-banner,
    .public-form-progress,
    .public-form-section__header,
    .public-form-question,
    .survey-public-results {
        padding: 18px;
    }

    .public-form-section__actions .btn {
        width: 100%;
        min-width: 0;
    }
}
