/*
 * Responsibility: city-only navigation, rankings, article/news cards, and
 * interview modules that are unique to /miasto/{city}/.
 * Does not cover: shared listing cards, map styles, or global layout chrome.
 */

.miasto-route .city-toc-wrapper {
    width: 100%;
    margin: 0 auto 24px;
}

.miasto-route .city-university-section {
    margin-bottom: 12px;
}

.miasto-route .city-university-section .subtitle.resultList_title {
    margin-top: 30px;
    margin-bottom: 18px;
}

.miasto-route .city-university-section .city-toc-row {
    margin-bottom: 0;
}

.miasto-route .city-university-section .kierunki-right-menu-li a {
    padding-top: 0.3rem;
    padding-bottom: 0.42rem;
}

.miasto-route .city-study-mode-section {
    margin-top: 10px;
}

.miasto-route .city-study-mode-section .subtitle.resultList_title {
    margin-bottom: 18px;
}

.miasto-route .city-intro-toc {
    margin-top: 48px;
}

.miasto-route .city-intro-toc .subtitle.resultList_title {
    margin-bottom: 18px;
}

.miasto-route .city-toc-row {
    width: 100%;
    --bs-gutter-x: 0;
    margin-left: 0;
    margin-right: 0;
}

.miasto-route .city-toc-row .card,
.miasto-route .card-ranking {
    width: 100%;
    border: 0;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(0, 84, 124, 0.16);
    height: 100%;
}

.miasto-route .card-ranking-img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 7;
    object-fit: cover;
}

.miasto-route .city-ranking-hero__media {
    position: relative;
}

.miasto-route .city-ranking-hero__mask {
    background-color: rgba(251, 251, 251, 0.15);
}

.miasto-route .city-ranking-hero__body {
    padding: 0.65rem 0.85rem 0.85rem;
    background: linear-gradient(180deg, #cf1b1b 0%, #c20000 100%);
}

.miasto-route .city-ranking-hero__title {
    font-size: 1.08rem;
    line-height: 1.3;
    font-weight: 600;
}

/* Legacy utility classes still referenced by extracted city templates. */
.miasto-route .font-weight-bold {
    color: #fff;
    font-weight: 600;
}

.miasto-route .f-size-one-4 {
    font-size: 1.4rem;
}

.miasto-route .f-s-one {
    font-size: 1rem;
}

.miasto-route .line-height-30 {
    line-height: 30px;
}

.miasto-route .border-kreska-left {
    border-left: 5px solid #b7364a;
}

.miasto-route .miasto-sidebar-ad {
    width: 100%;
}

.miasto-route .miasto-sidebar-ad__sticky {
    position: sticky;
    top: 20px;
    z-index: 10;
}

.miasto-route #closesky {
    top: auto;
}

.miasto-route #closesky.position-fixed {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
}

.miasto-route #closesky.position-relative {
    position: relative;
    top: auto;
    transform: none;
}

.miasto-route .miasto-sidebar-ad__creative {
    width: 100%;
    max-width: 229px;
    margin: 0 auto 10px;
}

.miasto-route .miasto-sidebar-ad__imageLink,
.miasto-route .miasto-sidebar-ad__image {
    display: block;
    width: 100%;
}

.miasto-route .miasto-sidebar-ad__image {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(0, 84, 124, 0.16);
}

.miasto-route .miasto-sidebar-ad__ctaWrap {
    text-align: center;
}

.miasto-route .miasto-sidebar-ad__cta {
    display: inline-block;
    max-width: 100%;
    padding: 10px 14px;
    border-radius: 10px;
    background: #2f7cf6;
    color: #fff;
    text-decoration: none;
    font-size: 0.95rem;
    line-height: 1.35;
    box-shadow: 0 10px 24px rgba(47, 124, 246, 0.2);
    transition: background-color 0.18s ease, transform 0.18s ease;
}

.miasto-route .miasto-sidebar-ad__cta:hover,
.miasto-route .miasto-sidebar-ad__cta:focus {
    background: #1f67d9;
    color: #fff;
    transform: translateY(-1px);
}

.miasto-route .miasto-top-promo-slot,
.miasto-route .miasto-top-promo-video {
    margin: 0 auto 28px;
}

.miasto-route .miasto-top-promo-slot__inner,
.miasto-route .miasto-top-promo-video__inner {
    width: 100%;
    text-align: left;
}

/* !important removed: the top promo wrapper already wins by route scoping and
   later load order over the shared YouTube shell. */
.miasto-route .miasto-top-promo-slot .youtube-lazy-wrapper,
.miasto-route .miasto-top-promo-video .youtube-lazy-wrapper {
    margin-left: auto;
    margin-right: auto;
}

.miasto-route .miasto-top-promo-slot__imageLink {
    display: inline-block;
    max-width: 100%;
}

.miasto-route .miasto-top-promo-slot__image {
    display: block;
    width: 100%;
    max-width: 780px;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

.miasto-route .city-direction-card {
    border: 0;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(0, 84, 124, 0.16);
}

.miasto-route .city-direction-card--compact {
    min-height: 0;
    border-radius: 8px;
    box-shadow: 0 6px 18px rgba(0, 84, 124, 0.12);
    background: linear-gradient(135deg, #0e7cba 0%, #0a97d6 100%);
}

.miasto-route .city-direction-card__media {
    position: relative;
    min-height: 160px;
    background: #eef6fb;
}

.miasto-route .city-direction-card__image {
    display: block;
    width: 100%;
    height: 160px;
    object-fit: cover;
}

.miasto-route .city-direction-card__mask {
    background: linear-gradient(to bottom, rgba(0, 112, 171, 0.15) 0%, rgba(0, 112, 171, 0.35) 100%);
}

.miasto-route .city-direction-card__imageFade {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 52px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.45) 0%, transparent 100%);
}

.miasto-route .city-direction-card__body {
    min-height: 20px;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: left;
    text-align: center;
    background: linear-gradient(135deg, rgba(0, 112, 171, 1) 0%, rgba(0, 150, 200, 1) 50%, rgba(0, 212, 255, 1) 100%);
}

.miasto-route .city-direction-card__title {
    margin: 0;
    color: #fff;
    font-size: 1.02rem;
    line-height: 1.35;
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.miasto-route .city-direction-card__count {
    color: rgba(255, 255, 255, 0.96);
}

.miasto-route .city-direction-card__compactBody {
    min-height: 40px;
    padding: 10px 14px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    background: linear-gradient(135deg, #0b78b4 0%, #0690cf 100%);
}

.miasto-route .city-direction-card__compactTitle {
    margin: 0;
    color: #fff;
    font-size: 1rem;
    line-height: 1.35;
    font-weight: 500;
}

.miasto-route .city-direction-card__compactPrefix {
    font-weight: 400;
    opacity: 0.95;
    margin-right: 0.35rem;
}

.miasto-route .city-direction-card__compactCount {
    font-weight: 700;
    margin-left: 0.35rem;
}

/* !important retained: this card-list reset must beat Bootstrap spacing
   utilities (`p-2`, `mb-*`) that are still present in legacy-shaped markup. */
.miasto-route .kierunki-right-menu-li {
    line-height: 1.5;
    list-style: none;
    border-bottom: 2px solid #fff;
    padding: 0 !important;
    margin-bottom: 0 !important;
}

.miasto-route .kierunki-right-menu-li:nth-child(n+1) {
    background-color: #0592dc;
}

.miasto-route .kierunki-right-menu-li:nth-child(even) {
    background-color: #0070ab;
}

.miasto-route .kierunki-right-menu-li a {
    display: block;
    padding: 0.3rem 0.75rem;
    color: #fff;
    text-decoration: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-size: 16px;
    line-height: 1.25;
    transition: background-color 0.18s ease, opacity 0.18s ease;
}

.miasto-route .kierunki-right-menu-li a:hover,
.miasto-route .kierunki-right-menu-li a:focus {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.12);
}

.miasto-route .city-university-index {
    margin: 16px 0 34px;
}

.miasto-route .city-university-index__list {
    list-style: none;
    padding: 0;
    margin: 0;
    column-count: 2;
    column-gap: 32px;
    counter-reset: city-uni-index;
}

.miasto-route .city-university-index__item {
    break-inside: avoid;
    counter-increment: city-uni-index;
    margin: 0 0 4px;
}

.miasto-route .city-university-index__link {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    text-decoration: none;
    line-height: 1.35;
    font-size: 16px;
}

.miasto-route .city-university-index__link--featured {
    color: #0c5f92;
}

.miasto-route .city-university-index__link--basic {
    color: #7f8c97;
}

.miasto-route .city-university-index__link::before {
    content: counter(city-uni-index) ".";
    flex: 0 0 auto;
    font-weight: 600;
    color: #0d537e;
}

.miasto-route .city-university-index__label {
    flex: 1 1 auto;
}

.miasto-route .city-university-index__type {
    flex: 0 0 auto;
    color: #9da8b4;
    font-size: 0.82rem;
    white-space: nowrap;
}

.miasto-route .city-university-index__type--public,
.miasto-route .city-university-index__type--private {
    color: inherit;
    opacity: 0.75;
}

.miasto-route .city-university-index__link:hover,
.miasto-route .city-university-index__link:focus {
    text-decoration: underline;
}

.miasto-route .podzial-card__link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.miasto-route .podzial-card {
    border: 1px solid #d9e3ec;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 12px 26px rgba(10, 67, 104, 0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.miasto-route .podzial-card:hover {
    transform: translateY(-2px);
    border-color: #c6d8ea;
    box-shadow: 0 16px 30px rgba(10, 67, 104, 0.14);
}

.miasto-route .stopnie-belka {
    background: linear-gradient(180deg, #2a9cf5 0%, #2869e0 100%);
    color: #fff;
    min-height: 92px;
    height: auto;
    border: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 12px;
    text-align: center;
}

/* !important retained: Bootstrap's .bg-gradient uses !important on the same
   element, so these extracted study-mode gradients must keep force. */
.miasto-route .podzial-card__header {
    border-bottom: 0;
    background-image: none !important;
}

/* !important retained: these study-mode gradient classes must beat Bootstrap's
   .bg-gradient utility applied in the template markup. */
.miasto-route .stacjonarne-color {
    background: linear-gradient(135deg, #00BFFF 0%, #1E90FF 50%, #4169E1 100%) !important;
}

.miasto-route .niestacjonarne-color {
    background: linear-gradient(135deg, #1E90FF 0%, #4169E1 50%, #0000CD 100%) !important;
}

.miasto-route .i-stopien-color {
    background: linear-gradient(135deg, #FFA07A 0%, #FF8C69 50%, #FF7F50 100%) !important;
}

.miasto-route .ii-stopien-color {
    background: linear-gradient(135deg, #FF7F50 0%, #FF6347 50%, #FF4500 100%) !important;
}

.miasto-route .jednolite-color {
    background: linear-gradient(135deg, #FF6347 0%, #FF4500 50%, #DC143C 100%) !important;
}

.miasto-route .podyplomowe-color {
    background: linear-gradient(135deg, #FF0000 0%, #DC143C 50%, #B22222 100%) !important;
}

.miasto-route .podzial-card__title {
    display: block;
    font-size: 1.18rem;
    line-height: 1.22;
    font-weight: 600;
    text-align: center;
}

.miasto-route .podzial-card__body {
    min-height: 100px;
    padding: 16px 14px 12px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.miasto-route .podzial-card__text {
    color: #1c2f42;
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
}

.miasto-route .podzial-card__count {
    color: #4f6273;
    font-size: 0.96rem;
    text-align: center;
}

.miasto-route .podzial-card__footer {
    padding: 12px;
    background: #fff;
    border-top: 1px solid #e3edf5;
    display: flex;
    align-items: center;
    justify-content: center;
}

.miasto-route .podzial-card__footer .btn {
    min-width: 92px;
    border-radius: 10px;
    font-weight: 600;
    pointer-events: none;
}

/* !important removed: this title block is route-scoped and loaded after the
   shared card styles, so the typography overrides already win naturally. */
.miasto-route .city-listing-card__title {
    padding-top: 8px;
    padding-bottom: 6px;
    line-height: 1.15;
    font-size: 1.46rem;
    color: #0070ab;
}

.miasto-route #resultList .resultList__presentationStudy-title.city-listing-card__title {
    /* Paid/expanded cards should stand out above basic entries in city lists. */
    font-size: 1.72rem !important;
    line-height: 1.18 !important;
}

.miasto-route #resultList .resultList__presentationStudy.basic-vesion .resultList__presentationStudy-title.card__title-wrap {
    /* Basic cards are secondary to paid cards, so keep their heading quieter. */
    font-size: 1.38rem !important;
    line-height: 1.25 !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

.miasto-route #resultList .resultList__presentationStudy.basic-vesion .card__type-suffix,
.miasto-route #resultList .resultList__presentationStudy.basic-vesion .card__more-suffix {
    font-size: 0.68em;
}

.miasto-route .city-listing-card__type {
    color: #6f8ca3;
    font-size: 0.86em;
    font-weight: 500;
}

.miasto-route .city-listing-card__body {
    padding: 0 0 12px;
}

.miasto-route .city-listing-card__media {
    margin-bottom: 0.75rem;
}

.miasto-route .city-listing-card__imageWrap {
    position: relative;
    min-height: 308px;
    border-radius: 8px;
    overflow: hidden;
    background: #eef4f8;
}

.miasto-route .city-listing-card__image {
    display: block;
    width: 100%;
    height: 308px;
    object-fit: cover;
}

.miasto-route .city-listing-card__gallery-swiper {
    width: 100%;
    height: 308px;
}

.miasto-route .city-listing-card__gallery-slide {
    width: 100%;
}

.miasto-route .city-listing-card__galleryImage {
    height: 308px;
}

.miasto-route .city-listing-card__logoWrap {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 125px;
    height: 125px;
    border-radius: 100% 100% 100% 0;
    background: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.miasto-route .city-listing-card__logo {
    opacity: 1;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: contain;
    padding: 18px;
}

.miasto-route .city-listing-card__content {
    padding-right: 10px;
}

.miasto-route .city-listing-card__stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px 16px;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 14px;
}

.miasto-route .city-listing-card__stats > [class*="col-"] {
    width: auto;
    max-width: none;
    flex: 0 0 auto;
    padding-left: 0;
    padding-right: 0;
}

.miasto-route .city-listing-card__statText {
    margin: 0;
    color: #1f3546;
    font-size: 1.04rem;
    font-weight: 700;
}

.miasto-route .city-listing-card__statValue {
    color: #0070ab;
    font-weight: 700;
}

.miasto-route .city-listing-card__description {
    color: #263746;
    font-size: 14px;
    line-height: 1.58;
}

.miasto-route .city-listing-card__description p {
    margin: 0 0 0.65rem;
}

.miasto-route .city-listing-card__description p:last-child {
    margin-bottom: 0;
}

.miasto-route .resultList__presentationStudy-body .text-justify.test {
    line-height: 1.58;
}

.miasto-route .resultList__presentationStudy-body .text-justify.test p {
    margin-top: 0;
    margin-bottom: 0.65rem;
}

.miasto-route .resultList__presentationStudy-body .text-justify.test p:last-child {
    margin-bottom: 0;
}

.miasto-route .container.container-level-three > table.table,
.miasto-route section .table.table-striped {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(4, 75, 109, 0.08);
}

.miasto-route section .table.table-striped th,
.miasto-route section .table.table-striped td {
    padding: 10px 14px;
    vertical-align: middle;
}

.miasto-route #departments .department__item {
    position: relative;
    overflow: hidden;
    margin-bottom: 16px;
    min-height: 220px;
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
    background-size: cover;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.miasto-route #departments .department__item-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.miasto-route #departments .department__item p {
    position: relative;
    z-index: 1;
    margin: 0;
    width: 100%;
    min-height: 0;
    padding: 5px 15px;
    color: #fff;
    font-size: 19px;
    line-height: 1.4;
    font-family: "BebasNeue_Book";
    position: absolute;
    bottom: 0;
    background: #027396;
    transition: .4s padding;
}

.miasto-route #departments .department__item:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.18);
}

.miasto-route #departments .department__item:hover p {
    padding: 15px;
}

.miasto-route .news-feed.gallery-block {
    display: block;
    height: 100%;
    text-decoration: none;
}

/* !important retained: `.mb-2` is a Bootstrap utility with !important, so the
   city news wrapper needs force to restore legacy section spacing. */
.miasto-route .news-feed.mb-2 {
    clear: both;
    margin-bottom: 28px !important;
}

/* !important retained: same reason as above; the inner title wrapper also
   carries Bootstrap utility classes that otherwise win. */
.miasto-route .news-feed.mb-2 .news-feed.title {
    margin-top: 0 !important;
    margin-bottom: 14px !important;
}

/* High specificity retained: this title rule is scoped to the legacy news
   wrapper so the heading polish does not leak into other `.news-feed` blocks. */
.miasto-route .news-feed.mb-2 .news-feed.title h2 {
    font-size: 1.75rem;
    line-height: 1.15;
    letter-spacing: 0.01em;
    border-bottom: 8px solid #0070ab;
    font-weight: 400;
}

.miasto-route .news-feed.mb-2 .row {
    row-gap: 16px;
}

.miasto-route .news-feed.mb-2 .text-right {
    margin-top: 12px;
}

.miasto-route .news-feed.mb-2 .reviews__show-more {
    justify-content: flex-start;
}

.miasto-route .news-feed.gallery-block .image {
    min-height: 200px;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}

.miasto-route .news-feed.gallery-block .image h3 {
    margin: 0;
    width: 100%;
    color: #fff;
    font-size: 1rem;
    text-align: center;
    line-height: 1.4;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
    background-image: linear-gradient(to top, rgba(0, 0, 0, .9), rgba(0, 0, 0, .8), rgba(0, 0, 0, .5), transparent);
}

.miasto-route .miasto-video-block {
    margin-top: 28px;
    margin-bottom: 28px;
}

.miasto-route #swiper-container-interview {
    padding-bottom: 16px;
}

/* !important removed: these interview heading overrides already beat the older
   utility classes by route scope and later file order. */
.miasto-route #swiper-container-interview h3.f-size-one-3,
.miasto-route #swiper-container-interview .f-size-one-3.color-dark-blue {
    font-family: "Poppins", sans-serif;
    font-size: 1.08rem;
    line-height: 1.28;
    font-weight: 600;
    color: #0f4f77;
    margin: 0;
    padding: 0;
}

/* High specificity retained: the interview slider still uses Bootstrap grid
   alignment classes, so this narrow selector avoids changing other rows. */
.miasto-route #swiper-container-interview .row > .col-sm-8.align-self-center,
.miasto-route #swiper-container-interview .row > .col-sm-12.align-self-center {
    padding-top: 4px;
}

/* !important removed: pagination container spacing now wins over the vendor
   Swiper defaults due to route scoping and load order. */
.miasto-route #swiper-pagination-aktualnosci {
    position: relative;
    text-align: center;
    transition: 300ms opacity;
    transform: translate3d(0, 0, 0);
    z-index: 10;
    margin-top: 2px;
}

/* !important removed: the bullet sizing and opacity rules already beat Swiper's
   default stylesheet without needing force. */
.miasto-route #swiper-pagination-aktualnosci .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    margin: 0 4px;
    opacity: 1;
    background: #a8c2d2;
}

.miasto-route #swiper-pagination-aktualnosci .swiper-pagination-bullet-active {
    background: #25648b;
}

.miasto-route .swipper-interview-border-right {
    border-right: 1px solid #e5edf3;
}

.miasto-route .image-index-interview-border-radius {
    border-radius: 14px;
}

.miasto-route .miasto-interview-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 6px 0 20px;
}

.miasto-route .miasto-interview-controls #swiper-pagination-aktualnosci {
    margin: 0;
}

.miasto-route .miasto-interview-nav__btn {
    width: 28px;
    height: 28px;
    border: 2px solid #25648b;
    border-radius: 999px;
    background: #fff;
    color: #25648b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-size: 1.65rem;
    line-height: 1;
    transition: background-color 0.18s ease, color 0.18s ease, opacity 0.18s ease;
}

.miasto-route .miasto-interview-nav__btn > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    line-height: 1;
    transform: translateY(-2px);
}

.miasto-route .miasto-interview-nav__btn:hover,
.miasto-route .miasto-interview-nav__btn:focus-visible {
    background: #25648b;
    color: #fff;
}

.miasto-route .miasto-interview-nav__btn:focus {
    outline: none;
}

.miasto-route .miasto-interview-nav__btn[disabled],
.miasto-route .miasto-interview-nav__btn[aria-disabled="true"] {
    opacity: 0.4;
    cursor: default;
}

.miasto-route .reviews__item-title,
.miasto-route .reviews__item-title a {
    font-family: "BebasNeue", sans-serif;
    font-size: 22px;
    color: #25648b;
    line-height: 25px;
    padding-bottom: 5px;
    margin-bottom: 3px;
    text-decoration: none;
}

.miasto-route .reviews__show-more {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    width: auto;
    padding-left: 0;
    font-family: "BebasNeue", sans-serif;
    font-size: 1.18rem;
    line-height: 1;
    text-transform: uppercase;
    color: #25648b;
    text-decoration: none;
    letter-spacing: 0.02em;
    transition: color 0.18s ease, transform 0.18s ease;
}

.miasto-route .reviews__show-more:hover,
.miasto-route .reviews__show-more:focus {
    color: #0070ab;
    text-decoration: none;
}

.miasto-route .reviews__show-more::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: translateY(0) rotate(45deg);
    transition: transform 0.18s ease, border-color 0.18s ease;
}

.miasto-route .reviews__show-more:hover::after,
.miasto-route .reviews__show-more:focus::after {
    transform: translate(2px, 0) rotate(45deg);
    border-color: #0070ab;
}

.miasto-route .reviews__show-more .icon,
.miasto-route .reviews__item-title .icon {
    display: none;
    font-family: "BebasNeue_Book", sans-serif;
    font-size: 22px;
    color: currentColor;
    position: relative;
    top: 1px;
}

.miasto-route .last_news_city_wrapper {
    margin-bottom: 24px;
}

.miasto-route .last-news-track-city {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.miasto-route .city-faq-section {
    margin-top: 28px;
}

.miasto-route .city-faq-heading-wrap {
    margin-bottom: 0.25rem;
}

.miasto-route .city-faq-lead {
    max-width: 42rem;
    line-height: 1.45;
}

.miasto-route .city-faq-box {
    border: 1px solid #e0e8ee;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 24px rgba(0, 112, 171, 0.07);
    overflow: hidden;
}

.miasto-route .faq-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.miasto-route .faq-item {
    border-bottom: 1px solid #edf2f6;
    text-align: left;
    width: 100%;
}

.miasto-route .faq-item:last-child {
    border-bottom: none;
}

.miasto-route .faq-question {
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.35;
    margin: 0;
    padding: 16px 18px;
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    text-align: left;
    width: 100%;
    color: #1a3a4a;
    background: transparent;
    border: 0;
    border-left: 3px solid transparent;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.miasto-route .faq-question:hover {
    background: #f6fafc;
}

.miasto-route .faq-question:focus {
    outline: none;
}

.miasto-route .faq-question:focus-visible {
    outline: 2px solid #0070ab;
    outline-offset: -2px;
    background: #f6fafc;
}

.miasto-route .faq-item.is-open .faq-question {
    background: linear-gradient(90deg, rgba(0, 112, 171, 0.06) 0%, rgba(0, 112, 171, 0.02) 100%);
    border-left-color: #0070ab;
}

.miasto-route .faq-question strong {
    line-height: inherit;
    font-weight: 600;
}

.miasto-route .faq-chevron {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    margin-top: -2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(0, 112, 171, 0.1);
    color: #0070ab;
    line-height: 1;
    transition: transform 0.25s ease, background 0.2s ease;
}

.miasto-route .faq-chevron .faq-chevron__icon {
    line-height: 1;
    width: 1rem;
    height: 1rem;
}

.miasto-route .faq-item.is-open .faq-chevron {
    background: rgba(0, 112, 171, 0.18);
}

.miasto-route .faq-question.open .faq-chevron {
    transform: rotate(180deg);
}

.miasto-route .faq-answer {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.32s ease;
}

.miasto-route .faq-item.is-open .faq-answer {
    grid-template-rows: 1fr;
}

.miasto-route .faq-answer-inner {
    overflow: hidden;
    min-height: 0;
}

.miasto-route .faq-answer-text {
    padding: 0 18px 18px 22px;
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #3d5260;
    border-left: 3px solid transparent;
}

.miasto-route .faq-item.is-open .faq-answer-text {
    border-left-color: rgba(0, 112, 171, 0.25);
}

.miasto-route .faq-answer-text--html img {
    max-width: 40%;
    height: auto;
    float: right;
    margin-left: 20px;
    margin-bottom: 10px;
}

.miasto-route .news-card-city {
    min-width: 0;
}

.miasto-route .news-card-city__background {
    position: relative;
    min-height: 240px;
    border-radius: 14px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
}

.miasto-route .news-card-city__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.72) 100%);
}

.miasto-route .news-card-city__title {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    margin: 0;
    color: #fff;
    font-size: 1.05rem;
    line-height: 1.35;
}

@media (max-width: 991px) {
    .miasto-route .miasto-sidebar-ad__sticky {
        position: relative;
        top: 0;
    }

    .miasto-route #closesky.position-fixed,
    .miasto-route #closesky.position-relative {
        position: relative;
        top: auto;
        transform: none;
        left: auto !important;
        width: auto !important;
    }

    .miasto-route .last-news-track-city {
        grid-template-columns: 1fr 1fr;
    }

    .miasto-route .swipper-interview-border-right {
        border-right: 0;
    }

    .miasto-route .resultList__presentationStudy-body > .row:last-child,
    .miasto-route .resultList__presentationStudy-contact > .row:last-child {
        display: flex;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 8px;
        margin-left: 0;
        margin-right: 0;
        padding-left: 8px;
        padding-right: 8px;
        box-sizing: border-box;
    }

    .miasto-route .resultList__presentationStudy-body > .row:last-child > [class*="col-"],
    .miasto-route .resultList__presentationStudy-contact > .row:last-child > [class*="col-"] {
        display: block;
        flex: 1 1 0;
        width: 50%;
        max-width: 50%;
        min-width: 0;
        margin-top: 0 !important;
        padding-left: 0;
        padding-right: 0;
    }

    .miasto-route .resultList__presentationStudy-body .opinion-btn-wrapper {
        margin-left: 0;
        margin-right: 0;
    }

    .miasto-route .resultList__presentationStudy-body > .row:last-child .kafelek-inactive,
    .miasto-route .resultList__presentationStudy-body > .row:last-child .resultList__ctaButton,
    .miasto-route .resultList__presentationStudy-contact > .row:last-child .kafelek-inactive,
    .miasto-route .resultList__presentationStudy-contact > .row:last-child .resultList__ctaButton {
        min-height: 34px;
        border-radius: 10px;
        padding: 0.1rem;
    }

    .miasto-route .resultList__presentationStudy-body > .row:last-child .kafelek-inactive .link,
    .miasto-route .resultList__presentationStudy-body > .row:last-child .resultList__ctaButtonLink,
    .miasto-route .resultList__presentationStudy-contact > .row:last-child .kafelek-inactive .link,
    .miasto-route .resultList__presentationStudy-contact > .row:last-child .resultList__ctaButtonLink,
    .miasto-route .resultList__presentationStudy .row .kafelek-inactive .link,
    .miasto-route .resultList__presentationStudy .row .resultList__ctaButtonLink {
        min-height: 30px;
        padding: 4px 8px;
        font-size: 0.82rem;
        line-height: 1.1;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

@media (max-width: 767px) {
    .miasto-route .city-university-index__list {
        column-count: 1;
    }

    .miasto-route .last-news-track-city {
        grid-template-columns: 1fr;
    }

    .miasto-route .city-toc-row {
        padding-left: 8px;
        padding-right: 8px;
    }

    .miasto-route .kierunki-right-menu-li a {
        padding: 0.5rem 0.75rem;
    }

    .miasto-route #departments .department__item,
    .miasto-route .news-feed.gallery-block .image,
    .miasto-route .news-card-city__background {
        min-height: 220px;
    }

    .miasto-route .city-listing-card__imageWrap,
    .miasto-route .city-listing-card__image,
    .miasto-route .city-listing-card__gallery-swiper,
    .miasto-route .city-listing-card__galleryImage {
        min-height: 240px;
        height: 240px;
    }

    .miasto-route .city-listing-card__content {
        padding-right: 0;
    }

    .miasto-route .faq-question {
        padding: 14px 14px;
    }

    .miasto-route .faq-answer-text {
        padding: 0 14px 16px 18px;
    }
}

@media (min-width: 768px) {
    /* The overlap came from inherited Bootstrap column widths on the stats
       items, not from missing card padding. The route now owns the stats row
       layout directly, and this breakpoint only relaxes the old nowrap/text
       alignment contract once the card switches into its desktop shell. */
    .miasto-route .city-listing-card__statText {
        white-space: normal !important;
        text-align: left !important;
        line-height: 1.35;
    }
}

@media (max-width: 1199px) and (min-width: 768px) {
    .miasto-route .city-study-mode-section .row > [class*="col-"] {
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }

    .miasto-route .stopnie-belka {
        min-height: 82px;
        padding: 12px 10px;
    }

    .miasto-route .podzial-card__title {
        font-size: 1rem;
        line-height: 1.18;
    }
}


/* City-only article block that legacy placed before the map. */
.miasto-article-under-list.section-main__article-bottom {
    margin-top: 3rem;
}

.miasto-article-under-list__article {
    width: 100%;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    display: block;
}

.miasto-article-under-list__header {
    width: 100%;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    display: block;
}

.miasto-article-under-list__header > .row {
    margin-left: 0;
    margin-right: 0;
}

.miasto-article-under-list__header > .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}

.miasto-article-under-list__titleBg {
    color: #fff;
    background-color: #027396;
    padding: 50px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 340px;
}

.miasto-article-under-list__titleBg .title_header {
    font-family: 'BebasNeue_Book', 'Bebas Neue', sans-serif;
    margin: 0;
    color: #fff;
    line-height: 1;
    font-size: clamp(2rem, 2.7vw, 3rem);
}

.miasto-article-under-list__heroImage {
    display: block;
    width: 100%;
    min-height: 340px;
    object-fit: cover;
}

.miasto-article-under-list__heroCol {
    display: flex;
}

.miasto-article-under-list__heroPanel {
    width: 100%;
    min-height: 340px;
    height: 100%;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
}

.miasto-route .article_image_height {
    height: 340px;
}

.miasto-article-under-list__content {
    margin-top: 1rem;
    text-align: justify;
    line-height: 1.52;
    font-size: 1.02rem;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

.miasto-article-under-list__content h3 {
    font-size: 1.4rem;
    line-height: 1.3;
    margin: 18px 0 12px;
}

.miasto-article-under-list__content p {
    margin-top: 0;
    margin-bottom: 0.7rem;
}

.miasto-article-under-list__content p:last-child {
    margin-bottom: 0;
}

.miasto-article-under-list__content img,
.miasto-article-under-list__content iframe {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.miasto-article-under-list__content .row > .col-sm-12 > div[style*="text-align:center"][style*="width:"],
.miasto-article-under-list__content .row > .col-sm-12 > div[style*="text-align: center"][style*="width:"] {
    margin-left: auto !important;
    margin-right: auto !important;
}

.miasto-article-under-list__content .row > .col-sm-12 > div[style*="text-align:center"][style*="width:"] img,
.miasto-article-under-list__content .row > .col-sm-12 > div[style*="text-align: center"][style*="width:"] img {
    border-radius: 12px;
}

.miasto-article-under-list__lead {
    color: #1f516f;
    font-weight: 600;
    margin-bottom: 1rem;
}

.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy-body > .row:last-child .kafelek-inactive,
.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy-body > .row:last-child .resultList__ctaButton,
.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy-contact > .row:last-child .kafelek-inactive,
.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy-contact > .row:last-child .resultList__ctaButton {
    min-height: 32px;
}

.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy-body > .row:last-child .kafelek-inactive .link,
.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy-body > .row:last-child .resultList__ctaButtonLink,
.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy-contact > .row:last-child .kafelek-inactive .link,
.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy-contact > .row:last-child .resultList__ctaButtonLink,
.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy .row .kafelek-inactive .link,
.miasto-route #rekomendowane_uczelnie_section .resultList__presentationStudy .row .resultList__ctaButtonLink {
    /* Keep the city route aligned with the shared recommended-CTA sizing. */
    min-height: 32px;
    padding: 4px 12px;
    font-size: 0.82rem;
    line-height: 1.15;
}

@media (max-width: 991px) {
    .miasto-article-under-list__titleBg,
    .miasto-article-under-list__heroPanel {
        min-height: 260px;
    }

    .miasto-article-under-list__titleBg {
        padding: 1.5rem 1rem;
    }
}

@media (max-width: 540px) {
    .miasto-route .article_image_height {
        height: 200px;
    }

    .miasto-route .faq-chevron {
        width: 32px;
        height: 32px;
    }

    .miasto-route .faq-answer-text--html img {
        max-width: 100%;
        float: none;
        margin-left: 0;
    }
}

@media (min-width: 768px) {
    .miasto-route .faq-question {
        font-size: 1.1rem;
        padding: 18px 22px;
    }

    .miasto-route .faq-answer-text {
        padding: 0 22px 22px 26px;
        font-size: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .miasto-route .faq-answer,
    .miasto-route .faq-chevron,
    .miasto-route .faq-question {
        transition: none;
    }
}
