:root {
    color-scheme: light;
    --ink: #14211d;
    --muted: #60706a;
    --line: #dfe6e2;
    --surface: #f5f8f6;
    --surface-strong: #edf4f0;
    --brand: #146c5c;
    --brand-dark: #0b3f36;
    --accent: #c2662e;
    --gold: #b8872d;
    --white: #ffffff;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    color: var(--ink);
    background: #fbfcfb;
}

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

img {
    max-width: 100%;
}

.site-header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    min-height: 76px;
    padding: 0 clamp(20px, 4vw, 56px);
    border-bottom: 1px solid rgba(20, 33, 29, 0.08);
    background: rgba(255, 255, 255, 0.94);
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(14px);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--brand-dark);
    font-size: 21px;
    font-weight: 900;
}

.brand-mark {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 7px;
    background: var(--brand);
    color: #fff;
}

.site-header nav {
    display: flex;
    justify-content: center;
    gap: 22px;
    color: var(--muted);
    font-size: 15px;
    font-weight: 700;
}

.site-header nav a:hover {
    color: var(--brand);
}

.header-cta,
.primary-link,
.secondary-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: 7px;
    font-weight: 600;
}

.header-cta,
.primary-link {
    padding: 0 18px;
    background: var(--accent);
    color: #fff;
}

.secondary-link {
    padding: 0 18px;
    border: 1px solid rgba(255, 255, 255, 0.58);
    color: #fff;
}

.secondary-link.dark {
    border-color: var(--line);
    color: var(--brand-dark);
}

main {
    min-height: calc(100vh - 154px);
}

.site-navigation-loader {
    position: fixed;
    inset: 0;
    z-index: 2147483646;
    display: grid;
    place-items: center;
    background: rgba(248, 250, 252, .68);
    opacity: 0;
    pointer-events: none;
    backdrop-filter: blur(6px);
    transition: opacity 160ms ease;
}

.site-navigation-loader.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.site-navigation-loader-card {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 0 18px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 12px;
    background: rgba(255, 255, 255, .94);
    color: #0f172a;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
}

.site-navigation-loader-card strong {
    font-size: 14px;
    font-weight: 950;
}

.site-navigation-spinner {
    width: 22px;
    height: 22px;
    border: 3px solid #e2e8f0;
    border-top-color: #ff7a18;
    border-radius: 999px;
    animation: site-navigation-spin 720ms linear infinite;
}

@keyframes site-navigation-spin {
    to {
        transform: rotate(360deg);
    }
}

.hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    align-items: end;
    gap: 28px;
    min-height: 620px;
    padding: 88px clamp(20px, 4vw, 56px);
    color: #fff;
    background:
        linear-gradient(90deg, rgba(7, 36, 32, 0.92), rgba(7, 36, 32, 0.56)),
        url("https://images.unsplash.com/photo-1523240795612-9a054b0db644?auto=format&fit=crop&w=1800&q=82") center/cover;
}

.legacy-static-hero {
    display: none;
}

.hero-slider {
    display: block;
    overflow: hidden;
    padding: 0;
    background: #0b3f36;
}

.hero-slides,
.hero-slide {
    position: absolute;
    inset: 0;
}

.hero-slides {
    z-index: 0;
}

.hero-slide {
    display: flex;
    align-items: end;
    min-height: 620px;
    padding: 88px clamp(20px, 4vw, 56px);
    overflow: hidden;
    background-position: center;
    background-size: cover;
    opacity: 0;
    pointer-events: none;
    transform: scale(1.015);
    transition: opacity 700ms ease, transform 900ms ease;
}

.hero-slide-image {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.hero-slide.is-active {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
    z-index: 1;
}

.hero-slide-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    align-items: end;
    gap: 28px;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.hero-content {
    min-width: 0;
}

.hero-slider-dots {
    position: absolute;
    left: 50%;
    bottom: 24px;
    z-index: 3;
    display: flex;
    gap: 9px;
    transform: translateX(-50%);
}

.hero-slider-dots span {
    width: 9px;
    height: 9px;
    border: 1px solid rgba(255, 255, 255, 0.82);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.24);
    cursor: pointer;
}

.hero-slider-dots span.is-active {
    background: #fff;
}

.hero > div,
.section,
.detail-hero {
    width: min(1180px, 100%);
    margin: 0 auto;
}

.hero-slider > .hero-slides {
    width: auto;
    margin: 0;
}

.hero h1,
.hero .hero-slide-title {
    max-width: 780px;
    margin: 12px 0 18px;
    font-size: clamp(42px, 6vw, 72px);
    line-height: 1.02;
    letter-spacing: 0;
}

.hero p {
    max-width: 690px;
    color: rgba(255, 255, 255, 0.86);
    font-size: 20px;
    line-height: 1.6;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.site-search-form {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(150px, 0.8fr)) auto;
    gap: 10px;
    align-items: end;
    width: min(1100px, 100%);
}

.hero-search-form {
    margin-top: 28px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(14px);
}

.search-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.search-field span {
    color: rgba(255, 255, 255, 0.82);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.search-field input,
.search-field select {
    width: 100%;
    min-height: 46px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.96);
    color: var(--ink);
    font: inherit;
    font-weight: 700;
    padding: 0 12px;
}

.search-submit {
    min-height: 46px;
    border: 0;
    border-radius: 7px;
    background: var(--accent);
    color: #fff;
    font: inherit;
    font-weight: 900;
    padding: 0 20px;
    cursor: pointer;
}

.hero-search-card {
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 8px;
    color: var(--ink);
    padding: 24px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.2);
}

.hero-search-card span,
.stats-strip span,
.product-code,
.quick-facts dt,
.contact-list span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.hero-search-card strong {
    display: block;
    margin: 4px 0;
    color: var(--brand-dark);
    font-size: 56px;
    line-height: 1;
}

.eyebrow {
    margin: 0;
    color: var(--accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.section {
    padding: 58px clamp(20px, 4vw, 56px);
}

.compact-section {
    padding-top: 24px;
    padding-bottom: 8px;
}

.page-title {
    padding-bottom: 28px;
}

.listing-title {
    background: linear-gradient(180deg, #f4f8f6, #fbfcfb);
}

.search-title {
    background: linear-gradient(180deg, #f4f8f6, #fbfcfb);
}

.search-section {
    padding-top: 24px;
}

.search-page-form {
    margin-bottom: 18px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.search-page-form .search-field span {
    color: var(--muted);
}

.search-page-form .search-field input,
.search-page-form .search-field select {
    border-color: var(--line);
    background: var(--surface);
}

.search-filter-toggle,
.search-mobile-filter-bar,
.search-filter-backdrop,
.search-filter-head {
    display: none;
}

.search-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 10px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.search-summary div {
    display: flex;
    align-items: baseline;
    gap: 8px;
    color: var(--muted);
    font-weight: 600;
}

.search-summary strong {
    color: var(--brand-dark);
    font-size: 30px;
}

.search-summary p {
    margin: 0;
    text-align: right;
}

.section h1,
.section h2 {
    margin: 8px 0 12px;
}

.section h1 {
    max-width: 860px;
    font-size: clamp(36px, 5vw, 58px);
    line-height: 1.06;
}

.section h2 {
    font-size: 31px;
}

.section p {
    max-width: 800px;
    color: var(--muted);
    line-height: 1.65;
}

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

.section-heading a {
    color: var(--brand-dark);
    font-weight: 600;
}

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

.stats-strip div {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 18px;
}

.stats-strip strong {
    display: block;
    margin-top: 4px;
    font-size: 28px;
}

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

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

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

.catalog-results .product-grid.grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.product-card {
    min-width: 0;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.product-card:hover {
    border-color: rgba(20, 108, 92, 0.46);
    box-shadow: 0 18px 42px rgba(20, 33, 29, 0.1);
    transform: translateY(-3px);
}

.product-card-sponsored {
    border-color: rgba(255, 122, 24, .34);
    box-shadow: 0 12px 32px rgba(255, 122, 24, .1);
}

.product-card a {
    display: grid;
    height: 100%;
}

.product-media {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--surface-strong);
}

.catalog-results .product-media {
    aspect-ratio: 16 / 9;
}

.catalog-results .product-media::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 56%;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0), rgba(15, 23, 42, .82));
    pointer-events: none;
}

.product-media img,
.detail-main-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-fallback {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 22% 18%, rgba(255, 255, 255, .92), rgba(255, 255, 255, 0) 34%),
        linear-gradient(135deg, #f2f8f5 0%, #eef5fb 52%, #fbf3e9 100%);
    color: rgba(6, 55, 91, .58);
    font-size: 34px;
    font-weight: 800;
}

.product-media:has(.image-fallback)::after {
    background: linear-gradient(180deg, rgba(15, 23, 42, 0), rgba(15, 23, 42, .42));
}

.product-badge {
    position: absolute;
    right: 12px;
    top: 12px;
    left: auto;
    bottom: auto;
    max-width: calc(100% - 28px);
    padding: 6px 9px;
    border-radius: 7px;
    background: #0d8dff;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.product-sponsor-badge {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 10px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 999px;
    background: linear-gradient(135deg, #ff7a18, #ffb020);
    color: #fff;
    font-size: 12px;
    font-weight: 950;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .22);
}

.product-brand-logo {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 5px;
    border: 1px solid rgba(226, 232, 240, .9);
    border-radius: 10px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .16);
    backdrop-filter: blur(8px);
}

.product-brand-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-media-title {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 1;
}

.product-media-title h2 {
    margin: 0;
    color: #fff;
    font-size: 18px;
    line-height: 1.15;
    text-shadow: 0 2px 10px rgba(15, 23, 42, .35);
}

.product-body {
    display: grid;
    gap: 10px;
    padding: 18px;
}

.product-card h2,
.product-card h3 {
    margin: 0;
    font-size: 18px;
    line-height: 1.18;
}

.product-location {
    color: var(--ink);
    font-size: 14px;
}

.product-status-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #9ca3af;
    font-size: 12px;
}

.product-status-row em {
    flex: 0 0 auto;
    max-width: 54%;
    padding: 5px 8px;
    border-radius: 5px;
    background: #dcfce7;
    color: #16a34a;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.product-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.product-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 8px;
    color: var(--muted);
    font-size: 14px;
}

.product-meta strong {
    color: var(--accent);
}

.teacher-preview-section {
    background: #f8fbf9;
}

.teacher-mini-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.teacher-mini-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.teacher-mini-card:hover {
    border-color: rgba(20, 108, 92, 0.44);
    box-shadow: 0 18px 38px rgba(20, 33, 29, 0.09);
    transform: translateY(-2px);
}

.teacher-mini-card a {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 14px;
    min-height: 128px;
    padding: 14px;
}

.teacher-mini-card img {
    aspect-ratio: 1;
    border-radius: 8px;
    object-fit: cover;
    width: 92px;
}

.teacher-mini-card div {
    display: grid;
    align-content: center;
    gap: 5px;
    min-width: 0;
}

.teacher-mini-card span,
.teacher-role {
    color: var(--accent);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.teacher-mini-card h3 {
    margin: 0;
    font-size: 18px;
    line-height: 1.18;
}

.teacher-mini-card p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.teacher-mini-card strong {
    color: var(--brand-dark);
    font-size: 14px;
}

.teacher-search-section {
    display: grid;
    gap: 22px;
    padding-top: 28px;
}

.teacher-list-page-header .site-page-header-inner {
    padding-top: 24px;
    padding-bottom: 30px;
}

.teacher-list-page-header h1 {
    max-width: none;
    font-size: clamp(30px, 4vw, 44px);
    line-height: 1;
}

.teacher-list-page-header .site-page-header-description {
    max-width: 640px;
    margin-top: 12px;
    line-height: 1.45;
}

.teacher-search-section .search-summary {
    margin-bottom: 4px;
    padding: 10px 12px;
}

.teacher-search-section .search-summary strong {
    font-size: 22px;
}

.teacher-search-section .search-summary p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.35;
}

.teacher-filter-form {
    grid-template-columns: minmax(220px, 1.5fr) repeat(5, minmax(145px, 1fr)) auto;
}

.teacher-filter-toggle,
.teacher-mobile-filter-bar,
.teacher-filter-backdrop,
.teacher-filter-head {
    display: none;
}

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

.teacher-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.teacher-card:hover {
    border-color: rgba(20, 108, 92, 0.48);
    box-shadow: 0 18px 42px rgba(20, 33, 29, 0.1);
    transform: translateY(-3px);
}

.teacher-card a {
    display: grid;
    height: 100%;
}

.teacher-avatar-wrap {
    position: relative;
    aspect-ratio: 1;
    background: var(--surface-strong);
    overflow: hidden;
}

.teacher-avatar-wrap img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.teacher-status {
    align-items: center;
    background: rgba(255, 255, 255, 0.94);
    border-radius: 999px;
    bottom: 12px;
    color: var(--brand-dark);
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    gap: 6px;
    left: 12px;
    padding: 7px 10px;
    position: absolute;
}

.teacher-status::before {
    background: #94a3b8;
    border-radius: 999px;
    content: "";
    height: 8px;
    width: 8px;
}

.teacher-status.online::before {
    background: #16a34a;
}

.teacher-status.busy::before {
    background: #f59e0b;
}

.teacher-card-body {
    display: grid;
    gap: 10px;
    padding: 18px;
}

.teacher-card-body h2 {
    font-size: 22px;
    line-height: 1.16;
    margin: 0;
}

.teacher-card-body p {
    color: var(--muted);
    display: -webkit-box;
    line-height: 1.5;
    margin: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.teacher-meta {
    align-items: center;
    color: var(--muted);
    display: flex;
    font-size: 13px;
    gap: 10px;
    justify-content: space-between;
    padding-top: 6px;
}

.teacher-meta strong {
    color: var(--brand-dark);
    white-space: nowrap;
}

.teacher-location {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.teacher-profile-hero {
    padding-bottom: 0;
}

.teacher-cover {
    align-items: flex-start;
    background-position: center;
    background-size: cover;
    border-radius: 8px 8px 0 0;
    display: flex;
    min-height: 220px;
    padding: 20px;
}

.teacher-cover .breadcrumb-link {
    background: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    padding: 8px 12px;
}

.teacher-profile-main {
    align-items: end;
    background: #fff;
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 8px 8px;
    display: grid;
    gap: 22px;
    grid-template-columns: 150px minmax(0, 1fr);
    padding: 0 24px 24px;
}

.teacher-profile-avatar {
    background: #fff;
    border: 6px solid #fff;
    border-radius: 24px;
    box-shadow: 0 18px 40px rgba(20, 33, 29, 0.16);
    margin-top: -62px;
    overflow: hidden;
}

.teacher-profile-avatar img {
    aspect-ratio: 1;
    object-fit: cover;
    width: 100%;
}

.teacher-profile-main h1 {
    font-size: clamp(32px, 4vw, 56px);
    line-height: 1.02;
    margin: 4px 0 8px;
}

.teacher-profile-main p {
    color: var(--muted);
    font-size: 18px;
    line-height: 1.55;
    margin: 0;
    max-width: 760px;
}

.teacher-profile-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.teacher-profile-stats span {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--brand-dark);
    font-size: 13px;
    font-weight: 900;
    padding: 8px 12px;
    position: static;
}

.teacher-profile-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 20px;
}

.teacher-info-card,
.teacher-lesson-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 22px;
}

.teacher-contact-card {
    align-self: start;
    display: grid;
    gap: 12px;
}

.teacher-availability-section {
    display: grid;
    gap: 12px;
}

.site-availability-timezone {
    color: var(--muted);
    font-size: 13px;
}

.site-availability-grid {
    display: grid;
    grid-template-columns: 64px repeat(7, minmax(82px, 1fr));
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.site-availability-head,
.site-availability-hour {
    padding: 10px 8px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: #fff;
    color: var(--brand-dark);
    font-size: 13px;
}

.site-availability-head {
    font-weight: 800;
    text-align: left;
}

.site-availability-hour {
    color: var(--muted);
}

.site-availability-cell {
    min-height: 37px;
    margin: 4px;
    border-radius: 6px;
    background: #f5f5f4;
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.site-availability-cell.available {
    background: #10b981;
}

.site-availability-legend {
    display: flex;
    gap: 18px;
    align-items: center;
    color: var(--muted);
    font-size: 13px;
}

.site-availability-legend span {
    display: inline-flex;
    gap: 7px;
    align-items: center;
}

.site-availability-legend i {
    width: 12px;
    height: 12px;
    border: 1px solid var(--line);
    border-radius: 3px;
    background: #f5f5f4;
}

.site-availability-legend .available-box {
    border-color: #10b981;
    background: #10b981;
}

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

.teacher-lesson-card {
    display: grid;
    gap: 8px;
}

.teacher-lesson-card span {
    color: var(--accent);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.teacher-lesson-card h3 {
    margin: 0;
}

.teacher-lesson-card p {
    color: var(--muted);
    margin: 0;
}

.teacher-lesson-card strong {
    color: var(--brand-dark);
}

.brand-strip-section {
    align-items: center;
    background: #f8fbf9;
    display: grid;
    gap: 10px;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    overflow: hidden;
}

.brand-strip-section .section-heading,
.brand-strip-section > .eyebrow,
.brand-strip-section > h2 {
    display: none !important;
}

.brand-rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 136px;
    gap: 14px;
    overflow-x: auto;
    padding-bottom: 8px;
    scrollbar-width: none;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
}

.brand-rail::-webkit-scrollbar {
    display: none;
}

.brand-rail-nav {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    color: #061a45;
    cursor: pointer;
    display: inline-flex;
    font-size: 34px;
    font-weight: 400;
    height: 44px;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 34px;
}

.brand-rail-nav:hover {
    color: #ff6b1a;
}

.brand-rail-nav.prev {
    justify-self: end;
}

.brand-rail-nav.next {
    justify-self: start;
}

.brand-tile,
.brand-card {
    display: grid;
    gap: 10px;
    align-content: start;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-dark);
    text-decoration: none;
}

.brand-tile {
    position: relative;
    min-height: 160px;
    padding: 0;
    scroll-snap-align: start;
}

.brand-tile small,
.brand-card small {
    color: var(--accent);
    font-size: 13px;
    font-weight: 900;
}

.brand-logo {
    display: inline-grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-height: inherit;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(135deg, #edf5ff, #fff7ed);
    color: var(--brand-dark);
    font-size: 24px;
    font-weight: 900;
    overflow: hidden;
}

.brand-logo.large {
    width: 86px;
    height: 86px;
}

.brand-logo img,
.brand-profile-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    padding: 0;
}

.brand-tile-caption {
    background: rgba(255, 255, 255, 0.84);
    border-radius: 999px;
    bottom: 10px;
    display: grid;
    gap: 1px;
    left: 10px;
    max-width: calc(100% - 20px);
    padding: 7px 12px;
    position: absolute;
    z-index: 1;
}

.brand-all-tile {
    align-content: center;
    background: #061a45;
    border-color: #061a45;
    color: #fff;
    min-height: 112px;
    text-align: center;
}

.brand-all-tile .brand-tile-caption {
    background: transparent;
    bottom: auto;
    left: auto;
    max-width: none;
    padding: 0;
    position: static;
}

.brand-all-tile strong {
    color: #fff;
    font-weight: 600;
    white-space: normal !important;
}

.home-page .brand-all-tile strong {
    color: #fff !important;
}

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

.brand-card {
    padding: 18px;
}

.brand-card p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
}

.brand-profile-hero {
    background: linear-gradient(135deg, #f5faf7, #fff8ef);
    padding: 64px clamp(20px, 4vw, 56px);
}

.brand-profile-hero-inner {
    width: min(1180px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(160px, 220px) minmax(0, 760px);
    gap: 28px;
    align-items: center;
}

.brand-profile-hero-inner > div:last-child {
    min-width: 0;
}

.brand-profile-section-inner {
    width: min(1180px, 100%);
    margin: 0 auto;
}

.brand-profile-logo {
    display: grid;
    place-items: center;
    aspect-ratio: 1;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-dark);
    font-size: 54px;
    font-weight: 900;
    overflow: hidden;
}

.brand-profile-logo img {
    object-fit: contain;
    padding: 12px;
}

.brand-profile-hero h1 {
    margin: 8px 0 12px;
    color: var(--brand-dark);
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1;
    overflow-wrap: anywhere;
}

.brand-profile-hero p {
    max-width: 760px;
    color: var(--muted);
    font-size: 18px;
}

.brand-profile-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.brand-profile-meta span {
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-dark);
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 900;
}

.brand-facts {
    padding: 0;
}

.chip-row,
.tag-list,
.social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.chip-row span,
.tag-list span,
.social-links a,
.taxonomy-grid a {
    display: inline-flex;
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--brand-dark);
    font-size: 13px;
    font-weight: 600;
}

.catalog-layout {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.catalog-filter-toggle,
.quote-menu-toggle,
.catalog-mobile-filter-bar,
.catalog-filter-backdrop,
.catalog-filter-close,
.quote-menu-toggle-button,
.quote-menu-backdrop,
.quote-menu-close {
    display: none;
}

.catalog-filters,
.content-panel,
.quick-facts {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.catalog-filters {
    display: grid;
    gap: 18px;
    padding: 18px;
    position: sticky;
    top: 96px;
}

.catalog-filter-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.filter-block {
    display: grid;
    gap: 8px;
}

.filter-block span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.filter-block a {
    color: var(--brand-dark);
    font-size: 14px;
    font-weight: 700;
}

.listing-filter-form {
    display: grid;
    gap: 14px;
}

.listing-filter-form label {
    display: grid;
    gap: 7px;
}

.listing-filter-form label span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.listing-filter-form select {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--brand-dark);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 12px;
}

.listing-filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.listing-filter-actions .primary-link,
.listing-filter-actions .secondary-link {
    justify-content: center;
    min-height: 40px;
    padding: 10px 14px;
}

.catalog-results {
    min-width: 0;
}

.catalog-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 600;
}

.view-switcher {
    display: inline-flex;
    gap: 6px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.view-switcher a,
.view-switcher button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 30px;
    padding: 7px 9px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font-size: 13px;
    font-weight: 800;
    font-family: inherit;
    text-decoration: none;
    transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.view-switcher a.active,
.view-switcher a:hover,
.view-switcher button.active,
.view-switcher button:hover {
    background: #0d6efd;
    color: #fff;
}

.view-switcher button:active {
    transform: translateY(1px);
}

.view-icon {
    display: grid;
    width: 17px;
    height: 17px;
    gap: 2px;
}

.view-icon span {
    display: block;
    border-radius: 2px;
    background: currentColor;
}

.view-icon-3 {
    grid-template-columns: repeat(3, 1fr);
}

.view-icon-2 {
    grid-template-columns: repeat(2, 1fr);
}

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

.taxonomy-showcase {
    background: var(--surface);
}

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

.taxonomy-grid article {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 18px;
}

.taxonomy-grid article > span {
    display: block;
    margin-bottom: 12px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.taxonomy-grid article div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.site-page-header {
    width: 100%;
    margin: 0;
    border-bottom: 1px solid var(--line);
    background:
        linear-gradient(135deg, rgba(247, 250, 248, 0.98), rgba(243, 247, 245, 0.9)),
        radial-gradient(circle at 86% 18%, rgba(255, 122, 31, 0.12), transparent 28%),
        radial-gradient(circle at 16% 82%, rgba(12, 116, 139, 0.1), transparent 32%);
    background-position: center;
    background-size: cover;
}

.site-page-header-inner {
    box-sizing: border-box;
    width: min(1180px, 100%);
    margin: 0 auto;
    padding: 34px clamp(20px, 4vw, 56px) 46px;
}

.site-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin-bottom: 20px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.4;
}

.site-breadcrumb a,
.site-breadcrumb span {
    color: inherit;
    font-weight: 700;
    text-decoration: none;
}

.site-breadcrumb a:hover {
    color: var(--brand);
}

.site-breadcrumb a::after {
    content: ">";
    margin-left: 7px;
    color: rgba(81, 98, 111, 0.62);
    font-weight: 800;
}

.site-breadcrumb span:last-child {
    color: var(--ink);
    font-weight: 800;
}

.site-page-header .eyebrow {
    display: none;
    margin-bottom: 12px;
}

.site-page-header h1 {
    max-width: 880px;
    margin: 0;
    color: var(--ink);
    font-size: 2.5rem;
    line-height: 1.08;
}

.site-page-header-description {
    max-width: 860px;
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.65;
}

.institution-identity-hero {
    display: grid;
    grid-template-columns: 124px minmax(0, 1fr);
    gap: 24px;
    align-items: center;
    width: min(1180px, calc(100% - 40px));
    margin: 28px auto 8px;
    padding: clamp(18px, 2.6vw, 28px);
    border: 1px solid rgba(214, 222, 228, 0.92);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 248, 0.98)),
        radial-gradient(circle at 96% 0%, rgba(255, 122, 31, 0.11), transparent 26%);
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.06);
}

.institution-logo-frame {
    display: grid;
    place-items: center;
    width: 112px;
    aspect-ratio: 1;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
}

.institution-logo-frame img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    padding: 8px;
}

.institution-logo-frame span {
    color: var(--brand-dark);
    font-size: 34px;
    font-weight: 900;
}

.institution-identity-hero .institution-title-block {
    gap: 6px;
    min-width: 0;
}

.institution-identity-hero h1 {
    max-width: 680px;
    margin: 0;
    color: var(--ink);
    font-size: clamp(30px, 3.8vw, 46px);
    line-height: 1.08;
    overflow-wrap: anywhere;
}

.institution-identity-hero p:not(.eyebrow) {
    max-width: 760px;
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.6;
}

.detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
    gap: 34px;
    padding: 56px clamp(20px, 4vw, 56px);
}

.institution-hero {
    position: relative;
    align-items: center;
    grid-template-columns: minmax(420px, 1.08fr) minmax(330px, 0.92fr);
    margin-top: 28px;
    margin-bottom: 8px;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid rgba(214, 222, 228, 0.9);
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(247, 250, 248, 0.96)),
        radial-gradient(circle at 8% 18%, rgba(255, 122, 31, 0.12), transparent 26%),
        radial-gradient(circle at 88% 14%, rgba(12, 116, 139, 0.1), transparent 28%);
    box-shadow: 0 22px 50px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.institution-hero::before {
    content: "";
    position: absolute;
    inset: 18px auto 18px 50%;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(151, 163, 175, 0.35), transparent);
}

.detail-gallery {
    display: grid;
    gap: 12px;
}

.institution-hero-media {
    position: relative;
    z-index: 1;
}

.detail-main-image {
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    background: var(--surface-strong);
    overflow: hidden;
    object-fit: cover;
    width: 100%;
}

.institution-hero .detail-main-image {
    aspect-ratio: 16 / 10;
    border-radius: 14px;
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.16);
}

.thumb-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.detail-thumb {
    display: block;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
}

.detail-thumb.active {
    border-color: var(--primary);
}

.institution-hero .detail-thumb {
    background: #fff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.detail-thumb img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 6px;
    object-fit: cover;
}

.detail-summary {
    align-self: center;
}

.institution-summary {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 16px;
    align-self: stretch;
    align-content: center;
    padding: clamp(6px, 1vw, 14px);
}

.institution-title-block {
    display: grid;
    gap: 10px;
}

.detail-summary h1 {
    margin: 10px 0 14px;
    font-size: clamp(38px, 5vw, 62px);
    line-height: 1.05;
}

.detail-summary p {
    color: var(--muted);
    font-size: 18px;
    line-height: 1.65;
}

.detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 8px 0 0;
}

.contact-actions {
    margin: 0 0 12px;
}

.institution-meta-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.institution-meta-strip span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid rgba(214, 222, 228, 0.92);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.8);
    color: var(--brand-dark);
    font-size: 13px;
    font-weight: 800;
}

.quick-facts {
    display: grid;
    margin: 0;
    overflow: hidden;
}

.institution-summary .quick-facts {
    border-radius: 12px;
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.06);
}

.quick-facts div {
    padding: 14px 16px;
    border-bottom: 1px solid var(--line);
}

.quick-facts div:last-child {
    border-bottom: 0;
}

.quick-facts dd {
    margin: 5px 0 0;
    font-weight: 600;
}

.detail-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.45fr);
    gap: 22px;
    padding-left: 0;
    padding-right: 0;
}

.detail-map-section {
    display: block;
    padding-left: 0;
    padding-right: 0;
}

.map-contact-facts {
    margin: 0 0 22px;
}

.content-panel {
    padding: 24px;
}

.content-panel h2 {
    margin-top: 8px;
}

.prose {
    color: var(--ink);
    font-size: 17px;
    line-height: 1.75;
}

.prose p:first-child {
    margin-top: 0;
}

.contact-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.contact-list li {
    display: grid;
    gap: 4px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
}

.contact-list li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.contact-list strong {
    overflow-wrap: anywhere;
}

.lead-form {
    display: grid;
    gap: 14px;
}

.lead-form label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-weight: 700;
}

.lead-form input,
.lead-form textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    padding: 12px 14px;
    font: inherit;
}

.lead-form textarea {
    resize: vertical;
}

.lead-form button {
    border: 0;
    justify-self: start;
}

.quote-layout {
    display: grid;
    grid-template-columns: minmax(220px, 270px) minmax(0, 1fr) minmax(180px, 220px);
    gap: 34px;
    align-items: start;
}

.quote-page-section {
    padding: 36px 0 58px;
    background: linear-gradient(180deg, #fff 0, #f8faf9 100%);
}

.quote-page-section > .quote-layout,
.quote-page-section > .quote-seo-section {
    width: min(1180px, calc(100% - 40px));
    margin-right: auto;
    margin-left: auto;
}

.quote-side-menu {
    align-self: start;
    display: grid;
    gap: 8px;
    padding: 16px;
    border: 1px solid rgba(207, 216, 227, 0.8);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 16px 34px rgba(17, 24, 39, 0.06);
}

.quote-side-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 38px;
    padding: 8px 10px;
    border-bottom: 0;
    border-radius: 8px;
    color: #0f4c5c;
    font-weight: 800;
    text-decoration: none;
}

.quote-side-menu a span {
    color: var(--accent);
}

.quote-side-menu a.active,
.quote-side-menu a:hover {
    color: var(--ink);
    background: #eef6f1;
}

.quote-district-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
    padding-top: 14px;
    border-top: 1px solid rgba(207, 216, 227, 0.8);
}

.quote-district-menu a {
    display: inline-flex;
    min-height: 28px;
    padding: 5px 8px;
    border: 0;
    border-radius: 999px;
    color: #0f4c5c;
    background: #f3f7f5;
    font-size: 14px;
    font-weight: 700;
}

.quote-district-menu a.active,
.quote-district-menu a:hover {
    color: var(--ink);
    background: #ffe8d6;
    text-decoration: none;
}

.quote-panel {
    min-width: 0;
    padding: 0 0 8px;
}

.quote-form fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.quote-form legend {
    margin-bottom: 12px;
    color: var(--ink);
    font-size: 17px;
    font-weight: 800;
}

.quote-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 22px;
}

.quote-choice-grid.compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quote-choice {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 12px 9px 40px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: #f6f8fb;
    color: var(--ink);
    font-weight: 700;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.quote-choice input {
    position: absolute;
    left: 13px;
    top: 50%;
    width: 20px;
    height: 20px;
    margin: 0;
    padding: 0;
    border-radius: 6px;
    transform: translateY(-50%);
    accent-color: var(--accent);
    cursor: pointer;
}

.quote-choice:has(input:checked) {
    border-color: rgba(255, 122, 31, 0.45);
    background: #fff4ea;
    box-shadow: 0 8px 18px rgba(255, 122, 31, .1);
}

.lead-form .quote-consent,
.lead-form .quote-agreement {
    position: relative;
    display: flex;
    grid-template-columns: none;
    align-items: flex-start;
    gap: 12px;
    color: var(--ink);
    font-weight: 500;
}

.lead-form .quote-consent input,
.lead-form .quote-agreement input {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    padding: 0;
    border: 2px solid #c7d2de;
    border-radius: 6px;
    background: #fff;
    accent-color: var(--accent);
    cursor: pointer;
}

.lead-form .quote-consent span,
.lead-form .quote-agreement span {
    min-width: 0;
    line-height: 1.45;
}

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

.quote-agreements {
    display: grid;
    gap: 8px;
    padding: 14px 16px;
    border: 0;
    border-radius: 8px;
    background: #f7faf9;
}

.quote-text-button {
    border: 0;
    background: transparent;
    color: #0f4c5c;
    padding: 0;
    font: inherit;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.quote-form .quote-consent {
    margin: -2px 0 6px;
    padding: 0 16px;
}

.quote-form > .primary-link {
    min-height: 44px;
    padding: 12px 22px;
    border-radius: 8px;
    font-weight: 900;
}

.quote-dialog {
    width: min(560px, calc(100% - 28px));
    border: 0;
    border-radius: 12px;
    padding: 0;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .24);
}

.quote-dialog::backdrop {
    background: rgba(15, 23, 42, .45);
}

.quote-dialog form {
    position: relative;
    display: grid;
    gap: 14px;
    padding: 24px;
}

.quote-dialog h2,
.quote-dialog p {
    margin: 0;
}

.quote-dialog-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    border: 1px solid #d7dee8;
    border-radius: 50%;
    background: #fff;
    color: var(--ink);
    font-weight: 800;
    cursor: pointer;
}

.quote-visual {
    display: grid;
    justify-items: center;
    gap: 8px;
    color: var(--ink);
    text-align: center;
}

.quote-icon {
    width: 152px;
    height: 152px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(135deg, #67e8f9, #0ea5e9);
    color: #fff;
    font-size: 64px;
    font-weight: 900;
    box-shadow: 0 24px 44px rgba(14, 165, 233, .24);
}

.quote-visual strong {
    font-size: 42px;
    line-height: 1;
}

.quote-seo-section {
    display: grid;
    grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin-top: 32px;
}

.quote-seo-media {
    display: grid;
    gap: 12px;
}

.quote-seo-media img {
    width: 100%;
    display: block;
    object-fit: cover;
    border-radius: 10px;
}

.quote-seo-main {
    aspect-ratio: 16 / 10;
}

.quote-seo-media div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.quote-seo-media div img {
    aspect-ratio: 16 / 9;
}

.quote-seo-copy {
    color: var(--ink);
    line-height: 1.65;
}

.quote-seo-copy h2 {
    margin: 0 0 12px;
    font-size: clamp(24px, 2.2vw, 32px);
}

.quote-seo-copy p {
    margin: 0 0 14px;
}

.quote-tags {
    font-size: 14px;
}

.form-success,
.form-error {
    margin: 12px 0 16px;
    padding: 12px 14px;
    border-radius: 8px;
    font-weight: 700;
}

.form-success {
    color: #0f5132;
    background: #d1e7dd;
}

.form-error {
    color: #842029;
    background: #f8d7da;
}

.map-panel iframe {
    width: 100%;
    min-height: 360px;
    border: 0;
    border-radius: 8px;
}

.blog-strip {
    padding-top: 8px;
}

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

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

.blog-card a {
    display: grid;
    gap: 12px;
    min-height: 320px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: inherit;
    text-decoration: none;
}

.site-feed-card {
    min-height: 320px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    overflow: hidden;
}

.site-feed-card-link {
    display: grid;
    gap: 12px;
    height: 100%;
    padding: 22px;
    color: inherit;
    text-decoration: none;
}

.site-feed-grid {
    align-items: stretch;
}

.listing-feed-section {
    margin-bottom: 28px;
}

.section-heading.compact {
    margin-bottom: 16px;
}

.site-feed-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin-top: 12px;
    padding: 9px 13px;
    border-radius: 6px;
    background: #ff7a1a;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.site-feed-cta:hover {
    color: #fff;
    background: #0f766e;
}

.blog-card-media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 8px;
    background: #dbeafe;
}

.blog-card-media img,
.blog-detail-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.blog-image-fallback {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    background:
        linear-gradient(135deg, rgba(15, 76, 92, 0.96), rgba(223, 111, 43, 0.88)),
        repeating-linear-gradient(45deg, rgba(255,255,255,0.14) 0 2px, transparent 2px 10px);
    color: #fff;
    font-size: 54px;
    font-weight: 900;
}

.blog-card span,
.blog-meta,
.breadcrumb-link {
    color: var(--muted);
    font-weight: 700;
}

.blog-card h2,
.blog-card h3 {
    margin: 0;
    line-height: 1.18;
}

.blog-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.news-index-section {
    width: min(1180px, calc(100% - 40px));
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
}

.news-index-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
}

.news-index-grid .blog-card a {
    gap: 14px !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
}

.news-index-grid .blog-card-media {
    border-radius: 8px 8px 0 0 !important;
}

.news-index-grid .blog-card span,
.news-index-grid .blog-card h2,
.news-index-grid .blog-card p {
    margin-right: 16px;
    margin-left: 16px;
}

.news-index-grid .blog-card h2 {
    font-size: 20px !important;
}

.news-index-grid .blog-card p {
    display: block !important;
    margin-bottom: 18px;
}

@media (max-width: 980px) {
    .news-index-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    .news-index-grid {
        grid-template-columns: 1fr !important;
    }
}

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

.faq-accordion {
    display: grid;
    gap: 12px;
    width: min(920px, 100%);
}

.faq-item {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(20, 33, 29, 0.06);
    overflow: hidden;
}

.faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 68px;
    padding: 18px 22px;
    color: var(--brand-dark);
    font-weight: 900;
    cursor: pointer;
    list-style: none;
}

.faq-item summary::-webkit-details-marker {
    display: none;
}

.faq-icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: var(--surface-strong);
    color: var(--brand);
    font-size: 20px;
    line-height: 1;
}

.faq-item[open] .faq-icon {
    background: var(--brand);
    color: #fff;
    transform: rotate(45deg);
}

.faq-answer {
    padding: 0 22px 22px;
    color: var(--muted);
    line-height: 1.7;
}

.faq-answer p {
    margin: 0;
}

.blog-detail {
    max-width: 920px;
}

.blog-detail h1 {
    margin: 10px 0 14px;
    font-size: clamp(40px, 5vw, 68px);
    line-height: 1.05;
}

.blog-detail-image {
    aspect-ratio: 16 / 9;
    margin: 24px 0;
    border-radius: 8px;
    background: var(--surface-strong);
}

.blog-lead {
    color: var(--muted);
    font-size: 20px;
    line-height: 1.7;
}

.social-section {
    padding-top: 12px;
}

.empty-state {
    padding: 28px;
    border: 1px dashed var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--muted);
}

.site-footer {
    display: grid;
    grid-template-columns: minmax(220px, 0.3fr) minmax(0, 1fr);
    gap: 20px;
    padding: 30px clamp(20px, 4vw, 56px);
    border-top: 1px solid var(--line);
    color: var(--muted);
}

.site-footer strong {
    color: var(--brand-dark);
}

.footer-brand-block {
    display: grid;
    gap: 8px;
    align-content: start;
}

.selected-city-pill {
    display: inline-flex;
    align-items: center;
    border: 1px solid transparent;
    width: fit-content;
    padding: 6px 10px;
    border-radius: 999px;
    background: #e7f6f0;
    color: var(--brand-dark);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.footer-city-links {
    display: grid;
    gap: 10px;
}

.footer-city-links > span {
    color: var(--brand-dark);
    font-weight: 900;
}

.footer-city-links div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.footer-city-links a {
    padding: 6px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.footer-city-links a.active {
    border-color: var(--brand);
    background: var(--brand);
    color: #fff;
}

#blazor-error-ui {
    display: none;
}

@media (max-width: 980px) {
    .site-header {
        grid-template-columns: 1fr;
        align-items: start;
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .site-header nav {
        justify-content: start;
        flex-wrap: wrap;
    }

    .header-cta {
        justify-self: start;
    }

    .hero,
    .detail-hero,
    .detail-content-grid,
    .catalog-layout,
    .brand-profile-hero-inner {
        grid-template-columns: 1fr;
    }

    .institution-hero {
        grid-template-columns: 1fr;
    }

    .institution-hero::before {
        display: none;
    }

    .institution-identity-hero {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 16px;
    }

    .institution-logo-frame {
        width: 92px;
    }

    .hero-slide-inner {
        grid-template-columns: 1fr;
    }

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

    .search-field-wide,
    .search-submit {
        grid-column: 1 / -1;
    }

    .hero-search-card,
    .catalog-filters {
        position: static;
    }

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

    .teacher-mini-grid,
    .teacher-catalog-grid,
    .teacher-lesson-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .teacher-filter-form,
    .teacher-profile-grid,
    .teacher-profile-main {
        grid-template-columns: 1fr;
    }

    .teacher-profile-main {
        align-items: start;
    }

    .teacher-profile-avatar {
        width: 150px;
    }

    .site-availability-grid {
        grid-template-columns: 58px repeat(7, 92px);
    }

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

@media (max-width: 680px) {
    .hero {
        min-height: auto;
        padding-top: 62px;
        padding-bottom: 62px;
    }

    .hero-slider {
        min-height: 720px;
        padding: 0;
    }

    .hero-slide {
        min-height: 720px;
        padding-top: 62px;
        padding-bottom: 62px;
    }

    .stats-strip,
    .product-grid,
    .teacher-mini-grid,
    .teacher-lesson-grid,
    .blog-grid,
    .taxonomy-grid,
    .brand-grid,
    .thumb-row {
        grid-template-columns: 1fr;
    }

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

    .teacher-card-body {
        gap: 7px;
        padding: 12px;
    }

    .teacher-card-body h2 {
        font-size: 15px;
        line-height: 1.18;
    }

    .teacher-card-body p {
        font-size: 12px;
        line-height: 1.35;
        -webkit-line-clamp: 2;
    }

    .teacher-role,
    .teacher-location,
    .teacher-meta {
        font-size: 11px;
    }

    .teacher-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .teacher-status {
        bottom: 8px;
        left: 8px;
        padding: 5px 7px;
        font-size: 10px;
    }

    .institution-hero {
        margin-top: 12px;
        padding: 14px;
        border-radius: 14px;
    }

    .institution-hero .detail-main-image {
        aspect-ratio: 4 / 3;
    }

    .institution-identity-hero {
        grid-template-columns: 1fr;
        margin-top: 12px;
        padding: 16px;
        gap: 12px;
    }

    .detail-content-grid,
    .detail-map-section {
        padding-left: 14px;
        padding-right: 14px;
    }

    .institution-identity-hero,
    .detail-content-grid,
    .detail-map-section,
    .review-section,
    .profile-content-page {
        width: calc(100% - 28px);
        max-width: calc(100% - 28px);
        margin-right: auto;
        margin-left: auto;
        padding-right: 0;
        padding-left: 0;
    }

    .detail-content-grid,
    .review-grid,
    .review-list,
    .review-forms,
    .content-panel,
    .contact-panel,
    .lead-form,
    .lead-form label,
    .lead-form input,
    .lead-form textarea,
    .map-panel,
    .map-panel iframe {
        min-width: 0;
        max-width: 100%;
    }

    .institution-logo-frame {
        width: 86px;
        max-width: 86px;
        overflow: hidden;
        justify-self: start;
    }

    .institution-logo-frame img {
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
        padding: 6px;
    }

    .institution-identity-hero h1 {
        font-size: clamp(25px, 8vw, 34px);
        line-height: 1.08;
    }

    .institution-identity-hero p:not(.eyebrow) {
        font-size: 14px;
        line-height: 1.48;
    }

    .profile-content-nav-section {
        width: calc(100% - 28px);
        padding: 14px 0 0;
        overflow: hidden;
    }

    .profile-content-nav {
        flex-wrap: nowrap;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 4px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .profile-content-nav::-webkit-scrollbar {
        display: none;
    }

    .profile-content-nav a {
        flex: 0 0 auto;
        min-height: 34px;
        padding: 7px 11px;
        font-size: 13px;
        font-weight: 800;
    }

    .content-panel {
        padding: 18px;
    }

    .brand-profile-hero {
        padding: 24px 14px 28px;
    }

    .brand-profile-hero-inner {
        gap: 16px;
    }

    .brand-profile-logo {
        width: min(150px, 48vw);
        justify-self: start;
    }

    .brand-profile-hero h1 {
        font-size: clamp(28px, 10vw, 38px);
        line-height: 1.06;
    }

    .brand-profile-hero p {
        font-size: 15px;
        line-height: 1.5;
    }

    .brand-profile-meta span {
        padding: 7px 10px;
        font-size: 12px;
        font-weight: 800;
    }

    .section-heading,
    .catalog-toolbar,
    .search-summary,
    .site-footer {
        align-items: flex-start;
        grid-template-columns: 1fr;
    }

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

    .site-page-header-inner {
        width: min(1180px, 100%);
        padding: 24px 14px 34px;
    }

    .site-breadcrumb {
        margin-bottom: 14px;
        font-size: 12px;
    }

    .site-page-header h1 {
        font-size: clamp(27px, 9vw, 36px);
    }

    .site-page-header-description {
        margin-top: 12px;
        font-size: 15px;
    }

    .teacher-list-page-header .site-page-header-inner {
        padding-top: 14px;
        padding-bottom: 14px;
    }

    .teacher-list-page-header .site-breadcrumb {
        margin-bottom: 8px;
        font-size: 10px;
    }

    .teacher-list-page-header .eyebrow {
        margin-bottom: 6px;
        font-size: 10px;
    }

    .teacher-list-page-header h1 {
        font-size: clamp(24px, 8vw, 30px);
        line-height: .98;
        white-space: nowrap;
    }

    .teacher-list-page-header .site-page-header-description {
        margin-top: 8px;
        font-size: 12px;
        line-height: 1.4;
    }

    .teacher-search-section {
        gap: 10px;
        padding-top: 8px;
        padding-bottom: 36px;
    }

    .teacher-search-section .search-summary {
        align-items: center;
        gap: 8px;
        margin-bottom: 0;
        padding: 8px 10px;
    }

    .teacher-search-section .search-summary div {
        gap: 5px;
        white-space: nowrap;
    }

    .teacher-search-section .search-summary strong {
        font-size: 18px;
    }

    .teacher-search-section .search-summary span,
    .teacher-search-section .search-summary p {
        font-size: 11px;
        line-height: 1.25;
    }

    .teacher-search-section .search-summary p {
        text-align: right;
    }

    .teacher-mini-card a {
        grid-template-columns: 76px minmax(0, 1fr);
    }

    .teacher-mini-card img {
        width: 76px;
    }

    .teacher-cover {
        min-height: 170px;
    }

    .teacher-profile-main {
        padding: 0 16px 20px;
    }

    .search-summary {
        display: grid;
    }

    .search-summary p {
        text-align: left;
    }

    .teacher-search-section .search-summary {
        display: flex;
    }

    .teacher-search-section .search-summary p {
        text-align: right;
    }
}

/* Footer mega sitemap */
.site-footer {
    display: block !important;
    padding: 0 !important;
    border-top: 1px solid #cfd8e3 !important;
    background: #f7faf9 !important;
    color: #111827 !important;
}

.footer-inner {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 24px 0 20px;
}

.footer-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-bottom: 22px;
    border-bottom: 1px solid #dbe3ea;
}

.footer-logo {
    color: #27c253;
    font-size: 28px;
    font-weight: 950;
    letter-spacing: 0 !important;
}

.footer-social {
    display: flex;
    align-items: center;
    gap: 9px;
}

.cookie-consent {
    position: fixed;
    left: 50%;
    bottom: 18px;
    z-index: 120;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    width: min(720px, calc(100vw - 28px));
    padding: 16px 18px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 10px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 24px 60px rgba(15, 23, 42, .22);
    color: #0f172a;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, calc(100% + 34px));
    transition: transform 520ms cubic-bezier(.18, .78, .22, 1), opacity 420ms ease;
}

.cookie-consent.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.cookie-consent.is-hiding {
    opacity: 0;
    transform: translate(-50%, calc(100% + 34px));
    transition-duration: 220ms;
}

.cookie-consent strong {
    display: block;
    margin-bottom: 4px;
    font-size: 16px;
    font-weight: 900;
}

.cookie-consent p {
    margin: 0;
    color: #64748b;
    font-size: 14px;
    line-height: 1.45;
}

.cookie-consent button {
    min-height: 42px;
    padding: 0 18px;
    border: 0;
    border-radius: 8px;
    background: #ff7a1a;
    color: #fff;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.cookie-consent button:hover {
    background: #f06f10;
}

.footer-social span {
    margin-right: 6px;
    color: #111827;
    font-size: 12px;
    font-weight: 900;
}

.footer-social a {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

.footer-link-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 34px;
    padding: 30px 0 36px;
}

.footer-link-grid div {
    display: grid;
    align-content: start;
    gap: 10px;
}

.footer-link-grid h3 {
    margin: 0 0 4px;
    color: #111827;
    font-size: 13px;
    font-weight: 900;
}

.footer-link-grid a {
    color: #111827 !important;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.25;
}

.footer-link-grid a:hover,
.footer-link-grid a.active {
    color: var(--brand) !important;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding-top: 20px;
    border-top: 1px solid #dbe3ea;
}

.footer-brand-note {
    margin: 16px 0 0;
    color: #cbd5e1;
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
}

.footer-brand-note a {
    color: #ffffff;
    font-weight: 900;
    text-decoration: none;
}

.footer-brand-note a:hover {
    color: #ff7a18;
}

.footer-newsletter {
    display: grid;
    grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr);
    gap: 20px;
    align-items: start;
    padding: 22px 0;
    border-top: 1px solid rgba(219, 231, 240, .18);
}

.footer-newsletter strong {
    display: block;
    margin-bottom: 6px;
    color: #f8fbff !important;
    font-size: 16px;
    font-weight: 800 !important;
}

.footer-newsletter p {
    margin: 0;
    color: #dbe7f0;
    font-size: 13px;
    line-height: 1.5;
}

.footer-newsletter form {
    display: grid;
    grid-template-columns: minmax(130px, .7fr) minmax(180px, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.footer-newsletter input[type="text"],
.footer-newsletter input[type="email"] {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(248, 251, 255, .22);
    border-radius: 6px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    padding: 8px 10px;
    font: inherit;
}

.footer-newsletter input::placeholder {
    color: rgba(219, 231, 240, .74);
}

.footer-newsletter label {
    grid-column: 1 / -1;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    color: #dbe7f0;
    font-size: 12px;
    line-height: 1.35;
}

.footer-newsletter label input {
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: #ff7a1a;
}

.footer-newsletter button {
    min-height: 40px;
    border: 0;
    border-radius: 6px;
    background: #ff7a1a;
    color: #fff;
    padding: 0 16px;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.footer-newsletter button:disabled {
    opacity: .72;
    cursor: wait;
}

.footer-newsletter form > p {
    grid-column: 1 / -1;
    min-height: 18px;
    color: #7dd3fc;
    font-size: 12px;
    font-weight: 800;
}

.footer-trust {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.footer-qr {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border: 5px solid #fff;
    background:
        linear-gradient(90deg, #111 8px, transparent 8px) 0 0 / 16px 16px,
        linear-gradient(#111 8px, transparent 8px) 0 0 / 16px 16px,
        #fff;
    color: #27c253;
    font-size: 18px;
    font-weight: 950;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}

.footer-badge {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 16px;
    border: 2px solid #50c7e8;
    border-radius: 999px;
    color: #0a6f8f;
    font-weight: 900;
}

.footer-apps {
    display: grid;
    justify-items: end;
    gap: 12px;
}

.footer-apps strong {
    color: #111827 !important;
    font-size: 13px;
}

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

.footer-apps a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 5px;
    background: #020617;
    color: #fff !important;
    font-size: 11px;
    font-weight: 600;
}

.site-footer .selected-city-pill {
    border-radius: 999px;
    background: #e8f8f5 !important;
    color: var(--brand-dark) !important;
}

@media (max-width: 1080px) {
    .footer-link-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .footer-inner {
        width: min(100% - 28px, 1180px);
    }

    .footer-top,
    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .footer-newsletter,
    .footer-newsletter form {
        grid-template-columns: 1fr;
    }

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

    .footer-apps {
        justify-items: start;
    }

    .footer-apps div {
        justify-content: start;
    }
}

.review-section {
    display: grid;
    gap: 22px;
}

.review-summary {
    display: grid;
    justify-items: end;
    gap: 2px;
    color: #64748b;
    font-size: 13px;
}

.review-summary strong {
    color: #0f172a;
    font-size: 28px;
    line-height: 1;
}

.review-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
    gap: 24px;
    align-items: start;
}

.review-list,
.review-forms {
    display: grid;
    gap: 14px;
}

.review-item {
    display: grid;
    gap: 10px;
    box-sizing: border-box;
    min-width: 0;
    padding: 16px;
    border: 1px solid #dbe4ee;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}

.review-item.depth-1 {
    margin-left: 24px;
    width: calc(100% - 24px);
}

.review-item.depth-2 {
    margin-left: 48px;
    width: calc(100% - 48px);
}

.review-item.depth-3 {
    margin-left: 72px;
    width: calc(100% - 72px);
}

.review-item header,
.review-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.review-item header span,
.review-item header em {
    color: #64748b;
    font-size: 12px;
}

.review-item header em {
    padding: 3px 8px;
    border-radius: 999px;
    background: #eef6ff;
    color: #0f7da0;
    font-style: normal;
    font-weight: 800;
}

.review-item p {
    margin: 0;
    color: #334155;
    line-height: 1.55;
}

.review-vote-form button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 32px;
    border: 1px solid #d8e2ec;
    border-radius: 8px;
    background: #fff;
    color: #334155;
    font-weight: 800;
    cursor: pointer;
}

.review-form {
    padding: 16px;
    border: 1px solid #dbe4ee;
    border-radius: 8px;
    background: #fff;
}

.reply-form {
    margin-top: 4px;
    background: #f8fafc;
}

.review-form h3 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
}

.sentiment-picker,
.rating-picker {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sentiment-picker label,
.rating-picker label {
    cursor: pointer;
}

.sentiment-picker input,
.rating-picker input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.sentiment-picker span,
.rating-picker span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid #d8e2ec;
    border-radius: 8px;
    background: #f8fafc;
    color: #334155;
    font-weight: 800;
}

.sentiment-picker input:checked + span,
.rating-picker input:checked + span {
    border-color: #ff7a1a;
    background: #fff3ea;
    color: #c24c00;
}

.rating-picker span {
    width: 42px;
    font-size: 18px;
}

.verification-panel {
    display: flex;
    align-items: end;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
}

.verification-panel label {
    display: grid;
    gap: 6px;
    min-width: 240px;
    color: #1e3a8a;
    font-weight: 800;
}

.verification-panel input {
    min-height: 42px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    padding: 0 12px;
}

@media (max-width: 900px) {
    .review-grid {
        grid-template-columns: 1fr;
    }

    .review-summary {
        justify-items: start;
    }

    .review-item.depth-1,
    .review-item.depth-2,
    .review-item.depth-3 {
        margin-left: 12px;
        width: calc(100% - 12px);
    }
}

@media (max-width: 460px) {
    .footer-link-grid {
        grid-template-columns: 1fr;
    }

    .footer-social {
        flex-wrap: wrap;
    }
}

.site-footer {
    background: #071a2d !important;
    color: #dbe7f0 !important;
}

.footer-top,
.footer-bottom {
    border-color: rgba(219, 231, 240, 0.18) !important;
}

.footer-social span,
.footer-link-grid h3,
.footer-apps strong {
    color: #f8fbff !important;
}

.footer-link-grid a {
    color: #dbe7f0 !important;
}

.footer-link-grid a:hover,
.footer-link-grid a.active {
    color: #7dd3fc !important;
}

.footer-social a,
.footer-apps a {
    background: #f8fbff !important;
    color: #071a2d !important;
}

.footer-badge {
    border-color: #7dd3fc !important;
    color: #eaf6ff !important;
}

.site-footer .selected-city-pill {
    border-color: rgba(125, 211, 252, .45) !important;
    background: rgba(125, 211, 252, 0.15) !important;
    color: #eaf6ff !important;
}

.site-footer .selected-city-pill:hover {
    border-color: #7dd3fc !important;
    background: rgba(125, 211, 252, .24) !important;
}

.city-select-modal {
    position: fixed;
    inset: 0;
    z-index: 2147483645;
    display: grid;
    place-items: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}

.city-select-modal.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.city-select-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(15, 23, 42, .56);
    cursor: pointer;
}

.city-select-panel {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 18px;
    width: min(760px, 100%);
    max-height: min(720px, calc(100dvh - 40px));
    min-height: 0;
    overflow: hidden;
    padding: 20px;
    border: 1px solid #dbe4ee;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .28);
}

.city-select-panel header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.city-select-panel header div {
    display: grid;
    gap: 4px;
}

.city-select-panel header strong {
    color: #0f172a;
    font-size: 22px;
    font-weight: 950;
}

.city-select-panel header span {
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
}

.city-select-panel header button {
    display: inline-grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid #d8e2ec;
    border-radius: 9px;
    background: #f8fafc;
    color: #0f172a;
    font-weight: 950;
    cursor: pointer;
}

.city-select-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
    align-content: start;
    gap: 10px;
    min-height: 0;
    overflow-y: auto;
    padding-right: 4px;
    overscroll-behavior: contain;
}

.city-select-grid button {
    min-height: 42px;
    border: 1px solid #dbe4ee;
    border-radius: 10px;
    background: #f8fafc;
    color: #1f2937;
    font: inherit;
    font-size: 13px;
    font-weight: 850;
    cursor: pointer;
    transition: border-color 160ms ease, background 160ms ease, color 160ms ease, transform 160ms ease;
}

.city-select-grid button:hover,
.city-select-grid button.active {
    border-color: #ff7a18;
    background: #fff7ed;
    color: #9a3412;
    transform: translateY(-1px);
}

body.city-select-open {
    overflow: hidden;
}

.static-page-header .site-page-header-inner,
.static-page-section {
    width: min(1120px, calc(100% - 40px)) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.faq-page-list {
    max-width: 920px;
}

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

.static-card,
.static-cta-panel {
    border: 1px solid #d8e2ec;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}

.static-card {
    display: grid;
    gap: 12px;
    padding: 22px;
}

.static-card span {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: #fff7ed;
    color: #ff6b16;
    font-weight: 950;
}

.static-card h2,
.static-cta-panel h2 {
    margin: 0;
    color: #0f172a;
    font-size: 22px;
    font-weight: 950;
    line-height: 1.18;
}

.static-card p,
.static-cta-panel p {
    margin: 0;
    color: #475569;
    line-height: 1.6;
}

.static-cta-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 22px;
    padding: 24px;
}

.primary-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
    border-radius: 8px;
    background: #ff7418;
    color: #fff;
    font-weight: 950;
    text-decoration: none;
    box-shadow: 0 12px 26px rgba(255, 116, 24, .22);
}

.primary-button:hover {
    background: #ea5f0f;
    color: #fff;
}

@media (max-width: 820px) {
    .static-page-grid,
    .static-cta-panel {
        grid-template-columns: 1fr;
    }

    .static-page-grid {
        display: grid;
    }

    .static-cta-panel {
        flex-direction: column;
        align-items: flex-start;
    }
}

.news-page-header .site-page-header-inner,
.news-index-section {
    width: min(1180px, calc(100% - 40px)) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.news-index-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 24px;
    align-items: start;
}

.news-results {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.news-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.news-toolbar > span {
    color: #64748b;
    font-size: 13px;
    font-weight: 850;
}

.news-card-grid {
    display: grid;
    gap: 22px;
}

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

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

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

.news-card {
    min-width: 0;
}

.news-card-link {
    display: flex;
    height: 100%;
    min-height: 390px;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #d8e2ec;
    border-radius: 10px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.news-card-grid.grid-list .news-card-link {
    display: grid;
    grid-template-columns: minmax(220px, 34%) minmax(0, 1fr);
    min-height: 0;
}

.news-card-grid.grid-list .news-card-media {
    height: 100%;
    min-height: 260px;
}

.news-card-link:hover {
    border-color: rgba(255, 122, 24, .48);
    box-shadow: 0 18px 42px rgba(15, 23, 42, .1);
    transform: translateY(-2px);
}

.news-card-media {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #e8eef5;
}

.news-card-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 220ms ease;
}

.news-card-link:hover .news-card-media img {
    transform: scale(1.035);
}

.news-image-fallback {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background:
        linear-gradient(135deg, rgba(15, 76, 92, .96), rgba(223, 111, 43, .9)),
        repeating-linear-gradient(45deg, rgba(255, 255, 255, .14) 0 2px, transparent 2px 10px);
    color: #fff;
    font-size: 56px;
    font-weight: 950;
}

.news-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 12px;
    padding: 18px;
}

.news-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
}

.news-card-meta time {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.news-calendar-icon {
    position: relative;
    display: inline-block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    border: 1.5px solid #0b335f;
    border-radius: 5px;
    background: #fff;
}

.news-calendar-icon::before {
    content: "";
    position: absolute;
    top: 4px;
    right: 2px;
    left: 2px;
    height: 1.5px;
    background: #0b335f;
}

.news-calendar-icon::after {
    content: "";
    position: absolute;
    top: -3px;
    left: 4px;
    width: 6px;
    height: 5px;
    border-right: 1.5px solid #0b335f;
    border-left: 1.5px solid #0b335f;
}

.news-card-category {
    max-width: 58%;
    overflow: hidden;
    padding: 5px 8px;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.news-card h2 {
    margin: 0;
    color: #0f172a;
    font-size: 21px;
    font-weight: 950;
    line-height: 1.18;
}

.news-card p {
    display: -webkit-box;
    margin: 0;
    color: #475569;
    font-size: 14px;
    line-height: 1.55;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-card strong {
    margin-top: auto;
    color: #ff7a18;
    font-size: 13px;
    font-weight: 950;
}

.news-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: auto;
    padding-top: 12px;
}

.news-card-footer small {
    min-width: 0;
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.news-category-panel {
    grid-column: 2;
    grid-row: 1;
    position: sticky;
    top: 92px;
    display: grid;
    gap: 8px;
    padding: 16px;
    border: 1px solid #d8e2ec;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
}

.news-category-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.news-category-head strong {
    color: #0f172a;
    font-size: 15px;
    font-weight: 950;
}

.news-side-search {
    display: grid;
    gap: 8px;
    margin-bottom: 10px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e2e8f0;
}

.news-side-search label {
    color: #64748b;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}

.news-side-search div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.news-side-search input {
    width: 100%;
    min-height: 38px;
    min-width: 0;
    border: 1px solid #d8e2ec;
    border-radius: 8px;
    padding: 0 11px;
    color: #0f172a;
    font-size: 13px;
    font-weight: 750;
}

.news-side-search button {
    min-height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 0 12px;
    background: #ff7a18;
    color: #fff;
    font-size: 12px;
    font-weight: 950;
}

.news-category-close,
.news-category-toggle,
.news-mobile-category-bar,
.news-category-backdrop {
    display: none;
}

.news-category-panel a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 40px;
    padding: 0 11px;
    border: 1px solid transparent;
    border-radius: 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 850;
}

.news-category-panel a span {
    display: inline-grid;
    min-width: 26px;
    min-height: 22px;
    place-items: center;
    border-radius: 999px;
    background: #eef3f8;
    color: #64748b;
    font-size: 11px;
}

.news-category-panel a.active,
.news-category-panel a:hover {
    border-color: rgba(255, 122, 24, .35);
    background: #fff7ed;
    color: #9a3412;
}

.news-detail-header .site-page-header-inner,
.news-detail-section {
    width: min(1180px, calc(100% - 40px)) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

.news-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 28px;
    align-items: start;
}

.news-detail-article {
    min-width: 0;
    padding: 28px;
    border: 1px solid #d8e2ec;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(15, 23, 42, .06);
}

.news-detail-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
    color: #64748b;
    font-size: 13px;
    font-weight: 850;
}

.news-detail-meta time,
.news-detail-meta a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.news-detail-meta a {
    min-height: 30px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
}

.news-detail-image {
    width: 100%;
    display: block;
    aspect-ratio: 16 / 9;
    margin-bottom: 24px;
    border-radius: 10px;
    object-fit: cover;
    background: #e8eef5;
}

.news-detail-lead {
    margin: 0 0 22px;
    color: #334155;
    font-size: 18px;
    font-weight: 750;
    line-height: 1.7;
}

.news-detail-prose {
    max-width: none;
    color: #1f2937;
    font-size: 16px;
    line-height: 1.82;
}

.news-detail-prose :where(h1,h2,h3,p,ul,ol,blockquote) {
    margin-top: 0;
}

.news-detail-side {
    top: 92px;
}

.news-latest-panel {
    display: grid;
    gap: 10px;
    margin-top: 12px;
    padding-top: 14px;
    border-top: 1px solid #e2e8f0;
}

.news-latest-panel > strong {
    color: #0f172a;
    font-size: 14px;
    font-weight: 950;
}

.news-category-panel .news-latest-item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-height: 0;
    padding: 8px;
    border-color: #e2e8f0;
    background: #fff;
}

.news-category-panel .news-latest-item span {
    display: grid;
    width: 58px;
    height: 58px;
    min-width: 58px;
    min-height: 58px;
    place-items: center;
    overflow: hidden;
    border-radius: 8px;
    background: linear-gradient(135deg, #0b335f, #ff7a18);
    color: #fff;
    font-weight: 950;
}

.news-category-panel .news-latest-item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.news-category-panel .news-latest-item em {
    display: grid;
    gap: 5px;
    min-width: 0;
    font-style: normal;
}

.news-category-panel .news-latest-item b {
    display: -webkit-box;
    color: #0f172a;
    font-size: 12px;
    font-weight: 950;
    line-height: 1.25;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-category-panel .news-latest-item small {
    color: #64748b;
    font-size: 11px;
    font-weight: 850;
}

.news-related-section {
    margin-top: 34px;
}

@media (max-width: 980px) {
    .news-index-layout {
        grid-template-columns: 1fr;
    }

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

    .news-results,
    .news-detail-article,
    .news-category-panel {
        grid-column: auto;
        grid-row: auto;
    }

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

    .news-card-grid.grid-list {
        grid-template-columns: 1fr !important;
    }

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

    .news-card-grid.grid-list .news-card-media {
        min-height: 0;
    }
}

@media (max-width: 640px) {
    .news-card-grid.grid-3,
    .news-card-grid.grid-2,
    .news-card-grid.grid-list {
        grid-template-columns: 1fr !important;
    }

    .news-card-link {
        min-height: 0;
    }

    .news-detail-article {
        padding: 20px;
    }
}

@media (max-width: 720px) {
    .news-mobile-category-bar {
        display: flex;
        position: fixed;
        left: 0;
        top: 156px;
        z-index: 60;
        justify-content: flex-start;
        margin: 0;
    }

    .news-mobile-category-bar .secondary-link {
        min-height: 40px;
        border-color: #d8e2ec;
        border-left: 0;
        border-radius: 0 8px 8px 0;
        background: #fff;
        color: #0f172a;
        box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
    }

    .news-category-panel {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 80;
        width: min(88vw, 340px);
        height: 100dvh;
        overflow-y: auto;
        align-content: start;
        border-radius: 0;
        border-width: 0 1px 0 0;
        padding: 18px;
        transform: translateX(-105%);
        transition: transform 220ms ease;
        box-shadow: 20px 0 45px rgba(15, 23, 42, .22);
    }

    .news-category-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border: 1px solid #d8e2ec;
        border-radius: 8px;
        background: #f8fafc;
        color: #0f172a;
        font-weight: 900;
        cursor: pointer;
    }

    .news-category-backdrop {
        position: fixed;
        inset: 0;
        z-index: 70;
        display: block;
        background: rgba(15, 23, 42, .42);
        opacity: 0;
        pointer-events: none;
        transition: opacity 220ms ease;
    }

    .news-category-toggle:checked ~ .news-index-layout .news-category-panel {
        transform: translateX(0);
    }

    .news-category-toggle:checked ~ .news-index-layout .news-category-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    .news-category-toggle:checked ~ .news-detail-layout .news-category-panel {
        transform: translateX(0);
    }

    .news-category-toggle:checked ~ .news-detail-layout .news-category-backdrop {
        opacity: 1;
        pointer-events: auto;
    }
}

/* Typography softening across the site */
body,
button,
input,
select,
textarea {
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 400 !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.hero h1,
.section h1,
.section h2,
.product-card h3,
.teacher-mini-card h3,
.teacher-card-body h2,
.blog-card h2,
.blog-card h3,
.brand,
.footer-logo {
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
}

.hero h1 {
    font-weight: 700 !important;
}

.section-heading h2,
.promo-content h2 {
    font-weight: 700 !important;
}

.eyebrow,
.search-field span,
.search-tabs a,
.header-cta,
.header-ghost,
.primary-link,
.secondary-link,
.search-submit,
.service-shortcuts span,
.service-shortcuts strong,
.product-badge,
.deal-card-title,
.deal-card-row em,
.teacher-mini-card span,
.teacher-role,
.blog-tags span,
.blog-author-row strong,
.city-card strong,
.city-card em,
.why-grid span,
.why-grid h3,
.popular-routes-grid h3,
.footer-link-grid h3,
.footer-social span,
.footer-apps strong,
.footer-apps a {
    font-weight: 700 !important;
}

.hero p,
.section p,
.service-shortcuts small,
.product-card p,
.teacher-mini-card p,
.blog-card p,
.why-grid p,
.popular-routes-grid a,
.footer-link-grid a,
.blog-author-row small {
    font-weight: 400 !important;
}

.service-shortcuts a {
    border-color: #dce3ea !important;
}

.service-shortcuts strong {
    font-size: 20px !important;
    line-height: 1.18 !important;
}

.service-shortcuts span {
    font-size: 13px !important;
}

.product-meta strong,
.promo-phone strong,
.promo-checks span,
.footer-badge {
    font-weight: 600 !important;
}

.blog-strip .section-heading h2,
.blog-card h2,
.blog-card h3 {
    font-weight: 600 !important;
}

.blog-tags span,
.blog-author-row strong,
.blog-author-avatar {
    font-weight: 600 !important;
}

.blog-card span,
.blog-author-row small {
    font-weight: 400 !important;
}

/* Home page final typography lock */
.home-page,
.home-page *,
.site-header,
.site-header *,
.site-footer,
.site-footer * {
    font-family: Arial, Helvetica, sans-serif !important;
    letter-spacing: 0 !important;
}

.home-page h1,
.home-page h2,
.home-page h3,
.home-page h4,
.home-page .brand,
.site-header h1,
.site-header h2,
.site-header h3,
.site-footer h1,
.site-footer h2,
.site-footer h3 {
    font-weight: 700 !important;
}

.home-page .hero h1,
.home-page .promo-content h2,
.home-page .section-heading h2 {
    font-weight: 700 !important;
}

.home-page .service-shortcuts strong,
.home-page .product-card h3,
.home-page .deal-card-title,
.home-page .teacher-mini-card h3,
.home-page .blog-card h2,
.home-page .blog-card h3,
.home-page .city-card strong,
.home-page .why-grid h3,
.home-page .popular-routes-grid h3 {
    font-weight: 700 !important;
}

.home-page .eyebrow,
.home-page .search-tabs a,
.home-page .search-field span,
.home-page .service-shortcuts span,
.home-page .product-badge,
.home-page .deal-card-row em,
.home-page .blog-tags span,
.home-page .city-card em,
.home-page .why-grid span,
.home-page .search-submit,
.home-page .primary-link,
.home-page .secondary-link,
.site-header nav a,
.site-header .header-cta,
.site-header .header-ghost,
.site-footer .footer-logo,
.site-footer .footer-link-grid h3,
.site-footer .footer-social span,
.site-footer .footer-apps strong {
    font-weight: 600 !important;
}

.home-page p,
.home-page small,
.home-page .section p,
.home-page .service-shortcuts small,
.home-page .product-card p,
.home-page .teacher-mini-card p,
.home-page .blog-author-row strong,
.home-page .blog-author-row small,
.home-page .popular-routes-grid a,
.site-footer .footer-link-grid a {
    font-weight: 400 !important;
}

.home-page .hero p,
.home-page .promo-checks span,
.home-page .product-meta strong,
.home-page .footer-badge {
    font-weight: 600 !important;
}

/* Home page section alignment lock */
.home-page > .section:not(.promo-banner-section) {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    padding-left: max(16px, calc((100vw - 1180px) / 2)) !important;
    padding-right: max(16px, calc((100vw - 1180px) / 2)) !important;
}

.home-page > .brand-strip-section > *,
.home-page > .teacher-preview-section > *,
.home-page > .taxonomy-showcase > *,
.home-page > .faq-section > * {
    width: auto !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.home-page .section-heading,
.home-page .brand-rail,
.home-page .product-grid,
.home-page .teacher-mini-grid,
.home-page .blog-grid,
.home-page .city-card-grid,
.home-page .why-grid,
.home-page .popular-routes-grid,
.home-page .faq-list {
    width: 100% !important;
}

/* Header login actions */
.site-navbar .header-actions {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.site-navbar .header-login-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 42px !important;
    padding: 0 16px !important;
    border-radius: 999px !important;
    border: 1px solid #d9e2ec !important;
    background: #fff !important;
    color: #08213f !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    box-shadow: 0 7px 18px rgba(15, 23, 42, 0.07) !important;
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease !important;
    white-space: nowrap !important;
}

.site-navbar .header-login-button span {
    display: inline-grid !important;
    place-items: center !important;
    width: 24px !important;
    height: 24px !important;
    border-radius: 999px !important;
    background: #edf6ff !important;
    font-size: 14px !important;
}

.site-navbar .header-login-button strong {
    font-weight: 600 !important;
}

.site-navbar .header-login-button:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.12) !important;
}

.site-navbar .header-login-student {
    border-color: transparent !important;
    background: linear-gradient(135deg, #ff7a1a, #ff9b42) !important;
    color: #fff !important;
}

.site-navbar .header-login-student span {
    background: rgba(255, 255, 255, 0.22) !important;
}

.site-navbar .header-login-student:hover {
    background: linear-gradient(135deg, #f06f10, #ff8f2c) !important;
    color: #fff !important;
}

.site-navbar .header-login-institution {
    border-color: #cfe0f5 !important;
    background: #fff !important;
    color: #08213f !important;
}

.site-navbar .header-login-institution:hover {
    border-color: #1f75cb !important;
    color: #0b4ea2 !important;
}

@media (max-width: 980px) {
    .site-navbar .header-actions {
        width: 100% !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
    }
}

@media (max-width: 560px) {
    .site-navbar .header-login-button {
        flex: 1 1 150px !important;
        padding: 0 12px !important;
    }
}

@media (max-width: 680px) {
    .home-page .teacher-preview-section .teacher-mini-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .home-page .teacher-preview-section .teacher-mini-card a {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        min-height: 0 !important;
        padding: 10px !important;
    }

    .home-page .teacher-preview-section .teacher-mini-card img {
        width: 58px !important;
        height: 58px !important;
        border-radius: 14px !important;
    }

    .home-page .teacher-preview-section .teacher-mini-card div {
        align-content: start !important;
        gap: 4px !important;
    }

    .home-page .teacher-preview-section .teacher-mini-card span {
        font-size: 10px !important;
        line-height: 1.15 !important;
    }

    .home-page .teacher-preview-section .teacher-mini-card h3 {
        display: -webkit-box !important;
        margin: 0 !important;
        overflow: hidden !important;
        color: #0f172a !important;
        font-size: 14px !important;
        line-height: 1.15 !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
    }

    .home-page .teacher-preview-section .teacher-mini-card p {
        font-size: 11px !important;
        line-height: 1.2 !important;
    }

    .home-page .teacher-preview-section .teacher-mini-card strong {
        font-size: 12px !important;
        line-height: 1.2 !important;
    }
}

/* Mobile slide menu */
.nav-toggle,
.nav-toggle-button,
.mobile-nav-head,
.nav-backdrop {
    display: none;
}

@media (min-width: 761px) {
    .site-navbar .mobile-nav-panel {
        display: contents;
    }
}

@media (max-width: 760px) {
    .site-topbar {
        display: none !important;
    }

    .site-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 10000 !important;
        isolation: isolate !important;
    }

    .site-navbar {
        display: flex !important;
        min-height: 64px !important;
        padding: 0 16px !important;
        justify-content: space-between !important;
    }

    .site-navbar > .brand {
        position: relative !important;
        z-index: 1 !important;
    }

    .nav-toggle-button {
        display: inline-flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        width: 36px !important;
        height: 36px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        cursor: pointer !important;
    }

    .nav-toggle-button span {
        display: block !important;
        width: 27px !important;
        height: 4px !important;
        border-radius: 999px !important;
        background: #09233d !important;
        opacity: 1 !important;
    }

    .nav-toggle-button span:nth-child(1) {
        transform: none !important;
    }

    .nav-toggle-button span:nth-child(2) {
        width: 27px !important;
    }

    .nav-toggle-button span:nth-child(3) {
        width: 27px !important;
        transform: none !important;
    }

    .nav-toggle-button:hover {
        opacity: 0.82 !important;
    }

    .site-navbar .mobile-nav-panel {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        z-index: 10030 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 18px !important;
        width: min(84vw, 330px) !important;
        max-width: 330px !important;
        padding: 18px 16px 22px !important;
        background: #fff !important;
        border-right: 1px solid #dce5ee !important;
        box-shadow: 22px 0 60px rgba(15, 23, 42, 0.22) !important;
        transform: translateX(-105%) !important;
        transition: transform 220ms ease !important;
        overflow-y: auto !important;
    }

    .mobile-nav-head {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 14px !important;
        padding-bottom: 6px !important;
    }

    .mobile-nav-close {
        display: inline-grid !important;
        place-items: center !important;
        width: 36px !important;
        height: 36px !important;
        border: 1px solid #d8e2ec !important;
        border-radius: 999px !important;
        color: #64748b !important;
        font-size: 18px !important;
        font-weight: 600 !important;
        cursor: pointer !important;
    }

    .site-navbar .mobile-nav-panel nav {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        justify-content: stretch !important;
        color: #0f172a !important;
    }

    .site-navbar .mobile-nav-panel nav a {
        display: flex !important;
        align-items: center !important;
        min-height: 42px !important;
        padding: 0 12px !important;
        border-radius: 10px !important;
        color: #0f172a !important;
        font-size: 12px !important;
        font-weight: 600 !important;
    }

    .site-navbar .mobile-nav-panel nav a:hover {
        background: #f1f5f9 !important;
    }

    .site-navbar .mobile-nav-panel .header-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        margin-top: 4px !important;
    }

    .site-navbar .mobile-nav-panel .header-login-button {
        width: 100% !important;
        min-height: 44px !important;
    }

    .nav-backdrop {
        position: fixed !important;
        inset: 0 !important;
        z-index: 10020 !important;
        background: rgba(15, 23, 42, 0.32) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: opacity 180ms ease !important;
    }

    .nav-toggle:checked ~ .site-navbar .mobile-nav-panel {
        transform: translateX(0) !important;
    }

    .nav-toggle:checked ~ .nav-backdrop {
        display: block !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    .nav-toggle:checked ~ .site-navbar {
        z-index: 10040 !important;
    }
}

/* Marketplace theme layer */
:root {
    --ink: #17241f;
    --muted: #66746f;
    --line: #e2e7e3;
    --surface: #f3f6f4;
    --surface-strong: #eaf2ed;
    --brand: #0b8f74;
    --brand-dark: #073f34;
    --accent: #f47b20;
    --gold: #f2b544;
    --white: #ffffff;
}

body {
    background: #f4f7f5;
}

.site-header {
    min-height: 72px;
    border-bottom: 1px solid rgba(7, 63, 52, 0.08);
    box-shadow: 0 10px 28px rgba(7, 63, 52, 0.08);
}

.brand-mark {
    border-radius: 999px;
    background: linear-gradient(135deg, var(--brand), #0a6d5b);
}

.site-header nav {
    gap: 18px;
}

.site-header nav a {
    padding: 9px 0;
    border-bottom: 2px solid transparent;
}

.site-header nav a:hover {
    border-bottom-color: var(--accent);
    color: var(--brand-dark);
}

.header-cta,
.primary-link,
.search-submit {
    background: linear-gradient(135deg, #ff8a2b, var(--accent));
    box-shadow: 0 12px 26px rgba(244, 123, 32, 0.24);
}

.hero-slider {
    min-height: 680px;
    background: #073f34;
}

.hero-slide {
    min-height: 680px;
    align-items: center;
    padding-top: 86px;
    padding-bottom: 118px;
}

.hero-slide-inner {
    align-items: center;
    grid-template-columns: minmax(0, 1fr) minmax(270px, 330px);
}

.hero h1 {
    max-width: 760px;
    font-size: clamp(44px, 5.7vw, 76px);
    font-weight: 950;
    text-shadow: 0 12px 34px rgba(0, 0, 0, 0.26);
}

.hero p {
    max-width: 700px;
    font-weight: 650;
}

.hero-actions {
    margin-top: 22px;
}

.hero-search-form {
    position: relative;
    z-index: 4;
    grid-template-columns: minmax(240px, 1.55fr) repeat(3, minmax(145px, 0.8fr)) minmax(92px, auto);
    gap: 12px;
    margin-top: 34px;
    padding: 18px;
    border: 0;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 26px 70px rgba(3, 33, 27, 0.26);
    backdrop-filter: blur(18px);
}

.search-tabs {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 2px;
}

.search-tabs a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-dark);
    font-size: 13px;
    font-weight: 900;
}

.search-tabs a.active {
    border-color: rgba(244, 123, 32, 0.35);
    background: #fff1e6;
    color: #c7570e;
}

.hero-search-form .search-field span {
    color: var(--brand-dark);
}

.hero-search-form .search-field input,
.hero-search-form .search-field select {
    min-height: 50px;
    border-color: #d8e1dc;
    background: #f8faf9;
}

.hero-search-form .search-field input:focus,
.hero-search-form .search-field select:focus {
    outline: 2px solid rgba(11, 143, 116, 0.18);
    border-color: var(--brand);
    background: #fff;
}

.hero-search-card {
    border: 0;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.78));
    box-shadow: 0 28px 74px rgba(3, 33, 27, 0.28);
}

.hero-search-card strong {
    color: var(--brand);
}

.hero-slider-dots {
    bottom: 32px;
}

.hero-slider-dots span {
    width: 22px;
    height: 7px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.42);
}

.hero-slider-dots span.is-active {
    width: 38px;
    background: var(--accent);
}

.compact-section {
    margin-top: -54px;
    position: relative;
    z-index: 6;
}

.stats-strip div {
    border: 0;
    border-radius: 14px;
    box-shadow: 0 16px 42px rgba(7, 63, 52, 0.1);
}

.stats-strip strong {
    color: var(--brand-dark);
}

.section-heading {
    align-items: center;
}

.section-heading a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
}

.section h2 {
    color: #101c18;
    font-size: clamp(28px, 3vw, 38px);
    font-weight: 950;
}

.brand-strip-section,
.teacher-preview-section,
.taxonomy-showcase,
.faq-section {
    width: 100%;
    max-width: none;
    background: linear-gradient(180deg, #f8fbf9, #eef5f1);
}

.brand-strip-section > *,
.teacher-preview-section > *,
.taxonomy-showcase > *,
.faq-section > * {
    width: min(1180px, 100%);
    margin-left: auto;
    margin-right: auto;
}

.product-card,
.teacher-mini-card,
.teacher-card,
.brand-tile,
.brand-card,
.blog-card a,
.faq-item,
.teacher-info-card,
.teacher-lesson-card {
    border-radius: 14px;
    border-color: rgba(7, 63, 52, 0.12);
    box-shadow: 0 14px 34px rgba(7, 63, 52, 0.06);
}

.product-card:hover,
.teacher-mini-card:hover,
.teacher-card:hover,
.brand-tile:hover,
.brand-card:hover,
.blog-card a:hover {
    border-color: rgba(244, 123, 32, 0.36);
    box-shadow: 0 24px 56px rgba(7, 63, 52, 0.14);
}

.product-media,
.blog-card-media,
.teacher-avatar-wrap {
    background: linear-gradient(135deg, #e6f4ef, #fff2e5);
}

.product-badge {
    bottom: 12px;
    left: 12px;
    background: #fff;
    color: var(--brand-dark);
    box-shadow: 0 10px 24px rgba(7, 63, 52, 0.14);
}

.product-code,
.blog-card span,
.teacher-mini-card span,
.teacher-role {
    color: var(--accent);
}

.product-meta strong,
.teacher-mini-card strong {
    color: var(--brand);
}

.brand-rail {
    grid-auto-columns: minmax(170px, 210px);
}

.brand-tile {
    min-height: 150px;
}

.brand-logo {
    border-radius: 14px;
    background: #f8faf9;
}

.teacher-mini-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.teacher-mini-card a {
    grid-template-columns: 84px minmax(0, 1fr);
}

.teacher-mini-card img {
    width: 84px;
    border-radius: 14px;
}

.taxonomy-grid article {
    border-radius: 14px;
}

.blog-card a {
    background: #fff;
}

.blog-card p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.site-footer {
    background: #07241f;
    border-top: 0;
    color: rgba(255, 255, 255, 0.74);
}

.site-footer strong,
.footer-city-links > span {
    color: #fff;
}

.footer-city-links a {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.86);
}

@media (max-width: 980px) {
    .hero-search-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .search-tabs,
    .search-field-wide,
    .search-submit {
        grid-column: 1 / -1;
    }

    .compact-section {
        margin-top: -36px;
    }
}

@media (max-width: 680px) {
    .site-header {
        gap: 14px;
    }

    .site-header nav {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: max-content;
        gap: 16px;
        overflow-x: auto;
        width: 100%;
        padding-bottom: 6px;
    }

    .hero-slider,
    .hero-slide {
        min-height: 800px;
    }

    .hero h1 {
        font-size: 40px;
    }

    .hero-search-form {
        grid-template-columns: 1fr;
        padding: 14px;
        border-radius: 12px;
    }

    .search-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 2px;
    }

    .hero-search-card {
        display: none;
    }

    .compact-section {
        margin-top: -24px;
    }

    .section-heading a {
        min-height: 34px;
    }
}

/* Travel-marketplace redesign */
:root {
    --brand: #00856f;
    --brand-dark: #063f36;
    --accent: #ff7a1a;
    --accent-dark: #dc5f08;
    --ink: #18231f;
    --muted: #68766f;
    --line: #dfe8e3;
    --surface: #f4f7f6;
    --surface-strong: #e9f2ee;
}

body {
    background: #eef3f1 !important;
}

.site-header {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
    border-bottom: 0 !important;
    background: #fff !important;
    box-shadow: 0 16px 42px rgba(4, 40, 34, 0.12) !important;
}

.site-topbar {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    min-height: 34px;
    padding: 0 clamp(18px, 4vw, 58px);
    align-items: center;
    background: linear-gradient(90deg, var(--brand-dark), #087260);
    color: rgba(255, 255, 255, 0.88);
    font-size: 13px;
    font-weight: 600;
}

.site-topbar div {
    display: flex;
    gap: 16px;
}

.site-topbar a {
    color: #fff;
}

.site-navbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
    min-height: 78px;
    padding: 0 clamp(18px, 4vw, 58px);
}

.brand {
    font-size: 24px !important;
    color: var(--brand-dark) !important;
}

.brand-mark {
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, var(--accent), #ff9d46) !important;
    box-shadow: 0 14px 26px rgba(255, 122, 26, 0.24);
}

.site-navbar nav {
    display: flex;
    justify-content: center;
    gap: 8px !important;
    color: #34453f !important;
}

.site-navbar nav a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    padding: 0 13px !important;
    border: 0 !important;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 900;
}

.site-navbar nav a:hover {
    background: #eef7f3;
    color: var(--brand) !important;
}

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

.header-ghost,
.header-cta {
    min-height: 42px;
    padding: 0 16px;
    border-radius: 999px;
    font-weight: 900;
}

.header-ghost {
    border: 1px solid var(--line);
    background: #fff;
    color: var(--brand-dark);
}

.header-cta {
    background: linear-gradient(135deg, var(--accent), var(--accent-dark)) !important;
    color: #fff;
    box-shadow: 0 14px 26px rgba(255, 122, 26, 0.26) !important;
}

.hero-slider {
    min-height: 720px !important;
    margin-bottom: 88px;
    overflow: visible !important;
    background: var(--brand-dark) !important;
}

.hero-slide {
    min-height: 720px !important;
    align-items: center !important;
    padding: 72px clamp(18px, 4vw, 58px) 145px !important;
}

.hero-slide::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 190px;
    z-index: 1;
    background: linear-gradient(180deg, transparent, rgba(4, 40, 34, 0.78));
    pointer-events: none;
}

.hero-slide-inner {
    position: relative;
    z-index: 2;
    display: block !important;
    width: min(1180px, 100%) !important;
}

.hero-content {
    max-width: 940px;
}

.hero .eyebrow {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(255, 122, 26, 0.94);
    color: #fff !important;
    letter-spacing: 0 !important;
}

.hero h1,
.hero .hero-slide-title {
    max-width: 880px !important;
    margin-top: 20px !important;
    font-size: clamp(42px, 5.8vw, 82px) !important;
    font-weight: 950 !important;
}

.hero p {
    max-width: 720px !important;
    color: rgba(255, 255, 255, 0.92) !important;
}

.hero-actions {
    display: none !important;
}

.hero-search-form {
    position: absolute !important;
    left: 50%;
    bottom: -104px;
    transform: translateX(-50%);
    width: min(1180px, calc(100vw - 36px)) !important;
    display: grid !important;
    grid-template-columns: minmax(260px, 1.6fr) repeat(3, minmax(150px, 0.8fr)) 104px !important;
    gap: 12px !important;
    padding: 18px !important;
    border: 1px solid rgba(6, 63, 54, 0.1) !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: 0 28px 80px rgba(4, 40, 34, 0.26) !important;
}

.search-tabs {
    grid-column: 1 / -1 !important;
    display: flex !important;
    gap: 10px !important;
    padding: 0 0 4px !important;
    border-bottom: 1px solid #edf2ef;
}

.search-tabs a {
    min-height: 40px !important;
    padding: 0 18px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f1f5f3 !important;
    color: var(--brand-dark) !important;
    font-weight: 950 !important;
}

.search-tabs a.active {
    background: var(--brand) !important;
    color: #fff !important;
}

.hero-search-form .search-field span {
    color: #53635d !important;
    font-size: 11px !important;
}

.hero-search-form .search-field input,
.hero-search-form .search-field select {
    min-height: 54px !important;
    border: 1px solid #d8e3de !important;
    border-radius: 12px !important;
    background: #f8faf9 !important;
}

.search-submit {
    min-height: 54px !important;
    border-radius: 12px !important;
    align-self: end;
    background: linear-gradient(135deg, var(--accent), var(--accent-dark)) !important;
}

.popular-searches {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    padding-top: 2px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.popular-searches a {
    padding: 6px 10px;
    border-radius: 999px;
    background: #fff3e8;
    color: #bb520b;
}

.popular-searches .popular-highlight-link {
    border: 1.5px solid #ff7a18;
    background: #fff7ed;
    color: #1f2937;
    font-weight: 900;
    box-shadow: none;
}

.popular-searches .quote-link {
    margin-left: auto;
    background: #ff7a1a;
    color: #fff;
    font-weight: 800;
}

.hero-search-card {
    position: absolute !important;
    right: 0;
    top: 30px;
    width: 290px;
    border-radius: 22px !important;
    background: rgba(255, 255, 255, 0.88) !important;
    backdrop-filter: blur(12px);
}

.hero-search-card strong {
    font-size: 60px !important;
    color: var(--accent) !important;
}

.compact-section {
    margin-top: 0 !important;
    padding-top: 42px !important;
}

.stats-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.stats-strip div {
    border-radius: 18px !important;
    border: 1px solid rgba(6, 63, 54, 0.08) !important;
    background: #fff !important;
}

.product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
}

.product-card {
    border-radius: 18px !important;
    background: #fff !important;
}

.product-card a {
    display: flex !important;
    flex-direction: column;
}

.product-media {
    aspect-ratio: 16 / 10 !important;
}

.product-body {
    padding: 16px !important;
}

.product-card h3 {
    font-size: 19px !important;
}

.product-card p {
    display: -webkit-box;
    min-height: 44px;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.product-meta {
    margin-top: auto;
    border-top: 1px solid #edf2ef;
}

.brand-rail,
.teacher-mini-grid,
.blog-grid {
    gap: 18px !important;
}

.teacher-preview-section,
.brand-strip-section,
.taxonomy-showcase,
.faq-section {
    border-top: 1px solid rgba(6, 63, 54, 0.07);
    border-bottom: 1px solid rgba(6, 63, 54, 0.07);
}

.teacher-mini-card a {
    grid-template-columns: 74px minmax(0, 1fr) !important;
    min-height: 120px !important;
}

.teacher-mini-card img {
    width: 74px !important;
}

.blog-card a {
    min-height: 0 !important;
    padding: 14px !important;
}

.site-footer {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
}

@media (max-width: 1180px) {
    .product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 980px) {
    .site-navbar {
        grid-template-columns: 1fr;
        padding-top: 14px;
        padding-bottom: 14px;
    }

    .site-navbar nav {
        justify-content: start;
        overflow-x: auto;
    }

    .header-actions {
        justify-self: start;
    }

    .hero-search-form {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .hero-search-card {
        display: none !important;
    }

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

@media (max-width: 680px) {
    .site-topbar {
        display: none;
    }

    .site-navbar {
        min-height: 0;
    }

    .hero-slider,
    .hero-slide {
        min-height: 850px !important;
    }

    .hero-slide {
        padding-top: 56px !important;
        padding-bottom: 220px !important;
    }

    .hero h1 {
        font-size: 38px !important;
    }

    .hero-search-form {
        bottom: -178px;
        grid-template-columns: 1fr !important;
        width: calc(100vw - 24px) !important;
        padding: 14px !important;
    }

    .search-tabs {
        overflow-x: auto;
        flex-wrap: nowrap !important;
    }

    .stats-strip,
    .product-grid {
        grid-template-columns: 1fr !important;
    }

    .compact-section {
        padding-top: 150px !important;
    }
}

/* Enuygun-inspired education marketplace structure */
html,
body {
    font-family: Inter, Arial, Helvetica, sans-serif !important;
}

.site-header {
    box-shadow: 0 1px 0 rgba(16, 24, 40, 0.08) !important;
}

.site-topbar {
    background: #f7fafc !important;
    color: #536476 !important;
    border-bottom: 1px solid #e6eef5;
}

.site-topbar a {
    color: #334155 !important;
}

.site-navbar {
    background: #fff;
}

.brand-mark {
    background: #11a88a !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

.site-navbar nav a:hover {
    background: #eef8f6 !important;
}

.hero-slider {
    min-height: 610px !important;
    margin-bottom: 132px !important;
}

.hero-slide {
    min-height: 610px !important;
    align-items: start !important;
    padding-top: 72px !important;
    padding-bottom: 96px !important;
}

.hero-slide::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(5, 53, 65, 0.2), rgba(5, 53, 65, 0.78));
}

.hero-slide::after {
    display: none;
}

.hero-content {
    max-width: none !important;
    padding-top: 18px;
}

.hero .eyebrow {
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.28);
}

.hero h1 {
    max-width: 680px !important;
    font-size: clamp(36px, 4.8vw, 62px) !important;
    line-height: 1.08 !important;
}

.hero p {
    font-size: 18px !important;
}

.hero-search-form {
    bottom: -128px !important;
    grid-template-columns: minmax(260px, 1.6fr) repeat(3, minmax(150px, 0.8fr)) 112px !important;
    gap: 10px !important;
    padding: 0 18px 18px !important;
    border-radius: 12px !important;
    border: 1px solid #e4ecf3 !important;
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.18) !important;
}

.search-tabs {
    margin: 0 -18px 6px !important;
    padding: 0 18px !important;
    min-height: 62px;
    align-items: center;
    border-bottom: 1px solid #e7eef5 !important;
    background: #fff;
    border-radius: 12px 12px 0 0;
}

.search-tabs a {
    min-height: 44px !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: #334155 !important;
}

.search-tabs a.active {
    background: #e8f8f5 !important;
    color: #00856f !important;
}

.hero-search-form .search-field input,
.hero-search-form .search-field select {
    min-height: 58px !important;
    border-radius: 8px !important;
    background: #fff !important;
}

.search-submit {
    min-height: 58px !important;
    border-radius: 8px !important;
    background: #ff6f1a !important;
    box-shadow: none !important;
}

.popular-searches {
    margin-top: 2px;
}

.popular-searches a {
    background: #f1f5f9 !important;
    color: #334155 !important;
}

.hero-search-card {
    display: none !important;
}

.compact-section {
    padding-top: 34px !important;
}

.stats-strip {
    display: none !important;
}

.service-shortcuts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    padding-top: 0 !important;
    padding-bottom: 28px !important;
}

.service-shortcuts a {
    display: grid;
    gap: 8px;
    min-height: 142px;
    padding: 20px;
    border: 1px solid #e2e8f0;
    border-top-width: 2px;
    border-top-color: var(--shortcut-color, #14b8a6);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
}

.service-shortcuts a:nth-child(1) {
    --shortcut-color: #14b8a6;
    --shortcut-soft: #ccfbf1;
    --shortcut-ink: #0f766e;
}

.service-shortcuts a:nth-child(2) {
    --shortcut-color: #f97316;
    --shortcut-soft: #ffedd5;
    --shortcut-ink: #c2410c;
}

.service-shortcuts a:nth-child(3) {
    --shortcut-color: #2563eb;
    --shortcut-soft: #dbeafe;
    --shortcut-ink: #1d4ed8;
}

.service-shortcuts a:nth-child(4) {
    --shortcut-color: #a855f7;
    --shortcut-soft: #f3e8ff;
    --shortcut-ink: #7e22ce;
}

.service-shortcuts span {
    display: inline-flex;
    width: fit-content;
    padding: 5px 9px;
    border-radius: 999px;
    background: var(--shortcut-soft, #e8f8f5);
    color: var(--shortcut-ink, #00856f);
    font-size: 12px;
    font-weight: 900;
}

.service-shortcuts strong {
    color: #0f172a;
    font-size: 19px;
}

.service-shortcuts small {
    color: #64748b;
    line-height: 1.45;
}

.service-shortcuts em {
    align-self: end;
    display: inline-flex;
    width: fit-content;
    margin-top: 8px;
    padding: 7px 11px;
    border-radius: 999px;
    background: var(--shortcut-soft, #eef6ff);
    color: var(--shortcut-ink, #0b4ea2);
    font-size: 13px;
    font-style: normal;
    font-weight: 600;
}

.promo-banner-section {
    padding-top: 14px !important;
    padding-bottom: 28px !important;
}

.promo-banner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    padding: 28px;
    border-radius: 16px;
    background:
        linear-gradient(90deg, rgba(0, 133, 111, 0.94), rgba(0, 104, 132, 0.86)),
        url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1600&q=80") center/cover;
    color: #fff;
    overflow: hidden;
}

.promo-banner h2 {
    max-width: 720px;
    margin: 8px 0;
    color: #fff !important;
    font-size: clamp(26px, 3vw, 38px) !important;
}

.promo-banner p {
    color: rgba(255, 255, 255, 0.88);
    margin: 0;
}

.promo-banner a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 18px;
    border-radius: 8px;
    background: #ff6f1a;
    color: #fff;
    font-weight: 900;
}

.section {
    padding-top: 44px;
    padding-bottom: 44px;
}

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

.section h2 {
    font-size: 28px !important;
    line-height: 1.18;
}

.product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.product-card,
.teacher-mini-card,
.brand-tile,
.blog-card a {
    border-radius: 12px !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06) !important;
}

.product-card:hover,
.teacher-mini-card:hover,
.brand-tile:hover,
.blog-card a:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.12) !important;
}

.brand-strip-section,
.teacher-preview-section,
.taxonomy-showcase,
.faq-section {
    background: #fff !important;
}

.city-discovery-section {
    background: #fff;
}

.city-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.city-card a {
    display: grid;
    gap: 12px;
    min-height: 180px;
    padding: 18px;
    border-radius: 14px;
    color: #fff;
    background:
        linear-gradient(180deg, rgba(15, 23, 42, 0.18), rgba(15, 23, 42, 0.78)),
        url("https://images.unsplash.com/photo-1524231757912-21f4fe3a7200?auto=format&fit=crop&w=900&q=80") center/cover;
    overflow: hidden;
}

.city-card span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    font-weight: 950;
}

.city-card strong {
    align-self: end;
    font-size: 24px;
}

.city-card small {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.city-card em {
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    font-style: normal;
    font-weight: 600;
}

.why-section {
    background: #f8fafc;
}

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

.why-grid article {
    display: grid;
    gap: 10px;
    padding: 22px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
}

.why-grid span {
    color: #00856f;
    font-size: 13px;
    font-weight: 950;
}

.why-grid h3 {
    margin: 0;
    color: #0f172a;
}

.why-grid p {
    margin: 0;
    color: #64748b;
}

.popular-routes-section {
    background: #fff;
}

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

.popular-routes-grid article {
    display: grid;
    align-content: start;
    gap: 9px;
}

.popular-routes-grid h3 {
    margin: 0 0 6px;
    color: #0f172a;
}

.popular-routes-grid a {
    color: #475569;
    font-weight: 750;
}

.popular-routes-grid a:hover {
    color: #00856f;
}

.blog-strip {
    background: #f8fafc;
}

.blog-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.blog-card a {
    padding: 0 !important;
    overflow: hidden;
    background: #fff !important;
}

.blog-card-media {
    border-radius: 0 !important;
}

.blog-card span,
.blog-card h2,
.blog-card h3,
.blog-card p {
    margin-left: 14px !important;
    margin-right: 14px !important;
}

.blog-card p {
    margin-bottom: 16px !important;
}

.site-footer {
    grid-template-columns: minmax(260px, 0.35fr) minmax(0, 1fr) !important;
    background: #0f172a !important;
}

.footer-city-links div {
    column-count: 4;
    display: block !important;
}

.footer-city-links a {
    display: block;
    width: fit-content;
    margin: 0 0 8px;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
}

@media (max-width: 1180px) {
    .blog-grid,
    .city-card-grid,
    .why-grid,
    .popular-routes-grid,
    .service-shortcuts {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 980px) {
    .hero-slider {
        margin-bottom: 250px !important;
    }

    .hero-search-form {
        bottom: -246px !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 680px) {
    .hero-slider {
        min-height: 560px !important;
        margin-bottom: 430px !important;
    }

    .hero-slide {
        min-height: 560px !important;
        padding-bottom: 130px !important;
    }

    .hero-search-form {
        bottom: -426px !important;
        grid-template-columns: 1fr !important;
    }

    .service-shortcuts,
    .product-grid,
    .teacher-mini-grid,
    .blog-grid,
    .city-card-grid,
    .why-grid,
    .popular-routes-grid {
        grid-template-columns: 1fr !important;
    }

    .promo-banner {
        grid-template-columns: 1fr;
    }

    .footer-city-links div {
        column-count: 2;
    }
}

/* Enuygun card and navy refinement */
:root {
    --brand: #0a6f8f;
    --brand-dark: #062f4f;
    --accent: #ff7a1a;
    --accent-dark: #e86612;
    --ink: #111827;
    --muted: #6b7280;
    --line: #d7dee8;
    --surface: #f5f7fa;
    --surface-strong: #eaf0f6;
}

html,
body,
button,
input,
select,
textarea {
    font-family: Arial, Helvetica, sans-serif !important;
}

body {
    background: #fff !important;
    color: var(--ink) !important;
}

.site-topbar {
    background: #f8fafc !important;
}

.brand,
.site-navbar nav a,
.section h2,
.product-card h3,
.teacher-mini-card h3,
.blog-card h2,
.blog-card h3 {
    letter-spacing: 0 !important;
}

.brand-mark,
.search-tabs a.active,
.hero-search-form .search-field input:focus,
.hero-search-form .search-field select:focus {
    background-color: var(--brand) !important;
}

.site-navbar nav a:hover,
.section-heading a,
.popular-routes-grid a:hover,
.product-meta strong {
    color: var(--brand) !important;
}

.hero-slider {
    background: var(--brand-dark) !important;
}

.home-fast-access,
.weekly-stars-section,
.exam-ai-section,
.brand-strip-section,
.home-showcase-section,
.site-feed-strip,
.blog-strip,
.news-strip {
    content-visibility: auto;
    contain-intrinsic-size: auto 720px;
}

.hero-slide {
    background-color: var(--brand-dark) !important;
}

.hero-slide::before {
    background: linear-gradient(180deg, rgba(6, 47, 79, 0.16), rgba(6, 47, 79, 0.82)) !important;
}

.hero .eyebrow {
    background: rgba(6, 47, 79, 0.52) !important;
}

.hero h1 {
    font-weight: 600 !important;
}

.hero-search-form {
    border: 1px solid #d9e1ea !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.14) !important;
}

.search-tabs a {
    font-weight: 700 !important;
}

.search-tabs a.active {
    color: #fff !important;
}

.service-shortcuts a,
.why-grid article,
.faq-item {
    border-radius: 6px !important;
    box-shadow: none !important;
}

.section-heading {
    align-items: center !important;
}

.section-heading h2 {
    font-size: 28px !important;
    font-weight: 600 !important;
}

.section-heading .eyebrow {
    color: var(--brand) !important;
}

.section-heading a {
    min-height: 36px !important;
    border-radius: 4px !important;
    color: #111827 !important;
    font-size: 14px;
}

.product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
}

.product-card {
    border: 1px solid #dce3ea !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08) !important;
    overflow: hidden !important;
    transition: box-shadow 160ms ease, transform 160ms ease !important;
}

.product-card:hover {
    border-color: #dce3ea !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12) !important;
    transform: translateY(-2px) !important;
}

.product-card a {
    display: block !important;
    height: 100%;
}

.product-media {
    aspect-ratio: 1.25 / 0.84 !important;
    border-radius: 0 !important;
    background: #e5edf4 !important;
}

.product-media::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 58%;
    background: linear-gradient(180deg, transparent, rgba(8, 22, 35, 0.82));
    pointer-events: none;
}

.product-media img {
    transition: transform 260ms ease;
}

.product-card:hover .product-media img {
    transform: scale(1.035);
}

.deal-card-title {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 12px;
    z-index: 2;
    color: #fff;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.18;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.32);
}

.product-badge {
    left: auto !important;
    right: 10px !important;
    top: 10px !important;
    bottom: auto !important;
    z-index: 3;
    max-width: calc(100% - 20px) !important;
    padding: 5px 8px !important;
    border-radius: 6px !important;
    background: #1e95ff !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 12px !important;
}

.product-body {
    gap: 7px !important;
    padding: 10px !important;
}

.product-code {
    color: #6b7280 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
}

.product-card h3 {
    min-height: 18px;
    color: #111827;
    font-size: 14px !important;
    font-weight: 600 !important;
}

.product-card p {
    min-height: 34px !important;
    color: #111827 !important;
    font-size: 13px;
    line-height: 1.35 !important;
    -webkit-line-clamp: 2 !important;
}

.deal-card-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #9ca3af;
    font-size: 12px;
}

.deal-card-row em {
    flex: 0 0 auto;
    padding: 5px 7px;
    border-radius: 4px;
    background: #dcfce7;
    color: #22a044;
    font-style: normal;
    font-size: 13px;
    font-weight: 600;
}

.product-meta {
    margin-top: 0 !important;
    padding-top: 5px !important;
    border-top: 0 !important;
    color: #9ca3af !important;
    font-size: 12px !important;
}

.product-meta strong {
    color: #111827 !important;
    font-size: 16px;
    font-weight: 600;
}

.teacher-mini-card,
.blog-card a,
.city-card a {
    border-radius: 8px !important;
    border: 1px solid #dce3ea !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08) !important;
}

.teacher-mini-card:hover,
.blog-card a:hover,
.city-card a:hover {
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12) !important;
}

.teacher-mini-card span,
.teacher-role,
.blog-card span {
    color: var(--brand) !important;
}

.city-card a {
    background:
        linear-gradient(180deg, rgba(6, 47, 79, 0.04), rgba(6, 47, 79, 0.78)),
        url("https://images.unsplash.com/photo-1524231757912-21f4fe3a7200?auto=format&fit=crop&w=900&q=80") center/cover !important;
}

.promo-banner {
    background:
        linear-gradient(90deg, rgba(6, 47, 79, 0.94), rgba(10, 111, 143, 0.84)),
        url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1600&q=80") center/cover !important;
}

.promo-banner a,
.search-submit,
.header-cta {
    background: var(--accent) !important;
}

.blog-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.blog-card a {
    gap: 8px !important;
}

.blog-card h2,
.blog-card h3 {
    color: #111827 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}

.blog-card p {
    color: #4b5563 !important;
    font-size: 13px;
}

.site-footer {
    background: #071a2d !important;
}

@media (max-width: 1180px) {
    .product-grid,
    .blog-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 880px) {
    .product-grid,
    .blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 560px) {
    .product-grid,
    .blog-grid {
        grid-template-columns: 1fr !important;
    }
}

/* City discovery cards like travel marketplaces */
.city-discovery-section {
    background: #fff !important;
}

.city-discovery-section .section-heading {
    margin-bottom: 22px !important;
}

.city-discovery-section .section-heading h2 {
    font-size: 26px !important;
    font-weight: 600 !important;
}

.city-card-grid {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: minmax(250px, 280px) !important;
    grid-template-columns: none !important;
    gap: 16px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding-bottom: 10px !important;
    scroll-snap-type: x proximity !important;
    scrollbar-width: thin !important;
}

.city-card {
    scroll-snap-align: start;
}

.city-card a {
    position: relative;
    display: flex !important;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 200px !important;
    padding: 0 12px 16px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background-position: center !important;
    background-size: cover !important;
    color: #fff !important;
    box-shadow: none !important;
    overflow: hidden;
}

.city-card a::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 64%;
    background: linear-gradient(180deg, transparent, rgba(2, 12, 23, 0.78));
    pointer-events: none;
}

.city-card strong {
    position: relative;
    z-index: 1;
    align-self: flex-start !important;
    margin-bottom: 10px;
    padding: 7px 18px;
    border-radius: 999px;
    background: #fff;
    color: #111827;
    font-size: 18px !important;
    font-weight: 600;
    line-height: 1;
    box-shadow: 0 5px 18px rgba(0, 0, 0, 0.16);
}

.city-card small {
    position: relative;
    z-index: 1;
    display: flex !important;
    gap: 9px !important;
    align-items: center;
    flex-wrap: wrap;
}

.city-card em {
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 1.1;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.48);
}

@media (max-width: 980px) {
    .city-card-grid {
        grid-auto-columns: minmax(230px, 260px) !important;
        grid-template-columns: none !important;
    }
}

@media (max-width: 560px) {
    .city-card-grid {
        grid-auto-columns: minmax(220px, 78vw) !important;
        grid-template-columns: none !important;
    }
}

/* Blog cards matching travel article style */
.blog-strip {
    background: #fff !important;
}

.blog-strip .section-heading h2 {
    font-size: 26px !important;
    font-weight: 600 !important;
}

.blog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 30px !important;
}

.blog-card a {
    display: flex !important;
    flex-direction: column;
    gap: 0 !important;
    min-height: 354px !important;
    padding: 0 !important;
    border: 1px solid #d7dee8 !important;
    border-radius: 4px !important;
    background: #fff !important;
    box-shadow: none !important;
    overflow: hidden;
}

.blog-card a:hover {
    border-color: #c9d3df !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08) !important;
    transform: translateY(-1px) !important;
}

.blog-card-media {
    aspect-ratio: 16 / 7 !important;
    border-radius: 0 !important;
    background: #e5edf4 !important;
}

.blog-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 16px;
}

.blog-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.blog-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 0 8px;
    border-radius: 4px;
    color: #fff !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
}

.blog-tags .orange {
    background: #ff9800;
}

.blog-tags .blue {
    background: #21b44b;
}

.blog-tags .yellow {
    background: #b8d400;
}

.blog-card h2,
.blog-card h3 {
    margin: 0 !important;
    color: #171717 !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    line-height: 1.22 !important;
}

.blog-card p {
    display: none !important;
}

.blog-author-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 17px;
    border-top: 1px solid #eef1f4;
}

.blog-author-avatar {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: linear-gradient(135deg, #e8f8f5, #dbeafe);
    color: var(--brand-dark) !important;
    font-size: 16px;
    font-weight: 900;
}

.blog-author-row > span:last-child {
    display: grid;
    gap: 3px;
}

.blog-author-row strong {
    color: #374151;
    font-size: 14px;
    font-weight: 500;
}

.blog-author-row small {
    color: #9ca3af;
    font-size: 13px;
}

@media (max-width: 980px) {
    .blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 560px) {
    .blog-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Large app-style promo banner */
.promo-banner-section {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 24px 0 44px !important;
    background: transparent !important;
}

.promo-banner {
    position: relative;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 420px !important;
    align-items: center;
    min-height: 430px;
    width: 100% !important;
    max-width: none !important;
    padding: 62px max(24px, calc((100vw - 1180px) / 2)) 42px !important;
    border-radius: 0 !important;
    background:
        linear-gradient(180deg, #073fe9 0 72%, #04e85b 72% 100%) !important;
    color: #fff;
    overflow: hidden;
}

.promo-banner::before,
.promo-banner::after {
    content: "";
    position: absolute;
    border: 12px solid rgba(4, 232, 91, 0.8);
    border-radius: 18px;
    opacity: 0.75;
    transform: rotate(33deg);
}

.promo-banner::before {
    width: 84px;
    height: 84px;
    left: 31%;
    top: -36px;
}

.promo-banner::after {
    width: 58px;
    height: 58px;
    left: 45%;
    bottom: 88px;
}

.promo-content {
    position: relative;
    z-index: 1;
    max-width: 780px;
}

.promo-content h2 {
    max-width: 760px;
    margin: 0 0 28px !important;
    color: #fff !important;
    font-size: clamp(30px, 3.5vw, 44px) !important;
    font-weight: 900 !important;
    line-height: 1.14 !important;
}

.promo-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 38px;
    max-width: 760px;
    margin-bottom: 38px;
}

.promo-checks span {
    position: relative;
    padding-left: 36px;
    color: #fff;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.25;
}

.promo-checks span::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: -2px;
    color: #44ff65;
    font-size: 30px;
    font-weight: 950;
    text-shadow: 0 2px 0 rgba(6, 47, 79, 0.24);
}

.promo-content a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 30px;
    border: 6px solid #fff;
    border-radius: 999px;
    background: #25c84d !important;
    color: #fff;
    font-size: 19px;
    font-weight: 900;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.16);
}

.promo-visual {
    position: relative;
    z-index: 1;
    min-height: 330px;
}

.promo-stars {
    position: absolute;
    top: 0;
    right: 18px;
    color: #ffd23f;
    font-size: 36px;
    letter-spacing: 6px;
    text-shadow: 0 3px 0 rgba(180, 100, 0, 0.24);
    white-space: nowrap;
}

.promo-phone {
    position: absolute;
    right: 74px;
    top: 74px;
    width: 190px;
    height: 342px;
    padding: 46px 18px 18px;
    border: 9px solid #081827;
    border-radius: 34px;
    background: #f8fafc;
    color: #0f172a;
    box-shadow: 0 22px 42px rgba(0, 0, 0, 0.28);
    text-align: center;
}

.promo-phone-top {
    position: absolute;
    top: 10px;
    left: 50%;
    width: 72px;
    height: 18px;
    border-radius: 999px;
    background: #081827;
    transform: translateX(-50%);
}

.promo-app-icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin: 0 auto 14px;
    border-radius: 16px;
    background: #24c84c;
    color: #fff;
    font-size: 34px;
    font-weight: 950;
}

.promo-phone strong {
    display: block;
    color: #24b949;
    font-size: 20px;
    font-weight: 950;
}

.promo-phone span {
    display: block;
    margin: 8px 0 18px;
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.promo-phone button {
    width: 100%;
    min-height: 42px;
    border: 0;
    border-radius: 999px;
    background: #0744e9;
    color: #fff;
    font: inherit;
    font-weight: 950;
}

.promo-qr {
    position: absolute;
    left: 38px;
    bottom: 22px;
    display: grid;
    place-items: center;
    width: 96px;
    height: 96px;
    border: 8px solid #fff;
    background:
        linear-gradient(90deg, #111 12px, transparent 12px) 0 0 / 24px 24px,
        linear-gradient(#111 12px, transparent 12px) 0 0 / 24px 24px,
        #fff;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.16);
}

.promo-qr span {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #24c84c;
    color: #fff;
    font-size: 20px;
    font-weight: 950;
}

@media (max-width: 980px) {
    .promo-banner {
        grid-template-columns: 1fr !important;
        padding-bottom: 260px !important;
    }

    .promo-visual {
        position: absolute;
        inset: auto 20px 0 auto;
        width: 340px;
    }
}

@media (max-width: 680px) {
    .promo-banner {
        min-height: 620px;
        padding-top: 38px !important;
        padding-bottom: 240px !important;
    }

    .promo-content h2 {
        font-size: 27px !important;
    }

    .promo-checks {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .promo-checks span {
        font-size: 16px;
    }

    .promo-visual {
        right: 0;
        width: 250px;
        transform: scale(0.78);
        transform-origin: bottom right;
    }

    .promo-stars,
    .promo-qr {
        display: none;
    }
}

/* Promo banner visual refinement */
.promo-banner {
    grid-template-columns: minmax(0, 1fr) 360px !important;
    min-height: 400px !important;
    padding-top: 56px !important;
    padding-bottom: 54px !important;
    background:
        radial-gradient(circle at 20% 0%, rgba(45, 212, 191, 0.2), transparent 28%),
        radial-gradient(circle at 78% 18%, rgba(56, 189, 248, 0.16), transparent 24%),
        linear-gradient(135deg, #08213f 0%, #0b4a70 54%, #0f766e 100%) !important;
}

.promo-banner::before,
.promo-banner::after {
    border-color: rgba(125, 211, 252, 0.28) !important;
    opacity: 0.52 !important;
}

.promo-content {
    max-width: 740px !important;
}

.promo-content h2 {
    max-width: 680px !important;
    margin-bottom: 24px !important;
    color: #f8fbff !important;
    font-size: clamp(28px, 3vw, 40px) !important;
    font-weight: 600 !important;
    line-height: 1.18 !important;
}

.promo-checks {
    grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
    gap: 12px 22px !important;
    max-width: 720px !important;
    margin-bottom: 28px !important;
}

.promo-checks span {
    display: flex !important;
    align-items: flex-start !important;
    min-height: 48px !important;
    padding: 13px 14px 13px 44px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 12px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #eef7ff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.32 !important;
    backdrop-filter: blur(10px) !important;
}

.promo-checks span::before {
    top: 12px !important;
    left: 14px !important;
    display: grid !important;
    place-items: center !important;
    width: 20px !important;
    height: 20px !important;
    border-radius: 999px !important;
    background: #dffcf0 !important;
    color: #067647 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-shadow: none !important;
}

.promo-content a {
    min-height: 46px !important;
    padding: 0 22px !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
    background: #ffffff !important;
    color: #08213f !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    box-shadow: 0 12px 28px rgba(2, 12, 23, 0.16) !important;
}

.promo-stars {
    top: 18px !important;
    right: 42px !important;
    color: #facc15 !important;
    font-size: 24px !important;
    letter-spacing: 4px !important;
    text-shadow: none !important;
}

.promo-phone {
    right: 48px !important;
    top: 70px !important;
    width: 164px !important;
    height: 292px !important;
    padding: 38px 15px 16px !important;
    border: 7px solid #06182c !important;
    border-radius: 30px !important;
    box-shadow: 0 22px 42px rgba(2, 12, 23, 0.26) !important;
}

.promo-phone-top {
    width: 58px !important;
    height: 15px !important;
}

.promo-app-icon {
    width: 54px !important;
    height: 54px !important;
    margin-bottom: 12px !important;
    border-radius: 14px !important;
    background: #14b8a6 !important;
    font-size: 29px !important;
    font-weight: 600 !important;
}

.promo-phone strong {
    color: #0f766e !important;
    font-size: 18px !important;
    font-weight: 600 !important;
}

.promo-phone span {
    margin: 7px 0 16px !important;
    font-size: 12px !important;
}

.promo-phone button {
    min-height: 38px !important;
    background: #0b4ea2 !important;
    font-weight: 600 !important;
}

.promo-qr {
    left: 10px !important;
    bottom: 70px !important;
    width: 76px !important;
    height: 76px !important;
    border-width: 6px !important;
    opacity: 0.94 !important;
}

@media (max-width: 980px) {
    .promo-banner {
        grid-template-columns: 1fr !important;
        padding-bottom: 270px !important;
    }
}

@media (max-width: 680px) {
    .promo-banner {
        min-height: 0 !important;
        padding: 34px 18px 220px !important;
    }

    .promo-content h2 {
        font-size: 25px !important;
    }

    .promo-checks {
        grid-template-columns: 1fr !important;
    }
}

/* Final mobile menu stacking override */
@media (max-width: 760px) {
    .site-header {
        position: sticky !important;
        top: 0 !important;
        z-index: 2147483000 !important;
        isolation: isolate !important;
        overflow: visible !important;
    }

    .site-navbar {
        position: relative !important;
        z-index: 2147483001 !important;
        overflow: visible !important;
    }

    .site-navbar .mobile-nav-panel {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: auto !important;
        bottom: 0 !important;
        z-index: 2147483003 !important;
        transform: translateX(-105%) !important;
        will-change: transform !important;
    }

    .nav-toggle:checked ~ .site-navbar .mobile-nav-panel {
        transform: translateX(0) !important;
    }

    .nav-backdrop {
        position: fixed !important;
        inset: 0 !important;
        z-index: 2147483002 !important;
    }

    .hero-slider,
    .hero-slides,
    .hero-slide,
    .hero-slide.is-active {
        z-index: 0 !important;
    }
}

/* Final mobile drawer structure override */
.desktop-nav-wrap {
    display: contents;
}

.site-header > .mobile-nav-panel {
    display: none;
}

@media (max-width: 760px) {
    .desktop-nav-wrap {
        display: none !important;
    }

    .site-header > .mobile-nav-panel {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: auto !important;
        bottom: 0 !important;
        z-index: 2147483003 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 18px !important;
        width: min(84vw, 330px) !important;
        max-width: 330px !important;
        padding: 18px 16px 22px !important;
        background: #fff !important;
        border-right: 1px solid #dce5ee !important;
        box-shadow: 22px 0 60px rgba(15, 23, 42, 0.22) !important;
        transform: translateX(-105%) !important;
        transition: transform 220ms ease !important;
        overflow-y: auto !important;
        will-change: transform !important;
    }

    .site-header > .mobile-nav-panel .mobile-nav-head {
        display: flex !important;
    }

    .site-header > .mobile-nav-panel nav {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        color: #0f172a !important;
    }

    .site-header > .mobile-nav-panel nav a {
        display: flex !important;
        align-items: center !important;
        min-height: 38px !important;
        padding: 0 8px !important;
        border-radius: 10px !important;
        color: #0f172a !important;
        font-size: 12px !important;
        font-weight: 600 !important;
    }

    .site-header > .mobile-nav-panel nav a:hover {
        background: #f1f5f9 !important;
    }

    .site-header > .mobile-nav-panel .header-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        margin-top: 4px !important;
    }

    .site-header > .mobile-nav-panel .header-login-button {
        width: 100% !important;
        min-height: 44px !important;
    }

    .nav-toggle:checked ~ .mobile-nav-panel {
        transform: translateX(0) !important;
    }
}

/* Root-level mobile drawer, independent from header and hero stacking */
.nav-toggle {
    position: fixed !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body > .mobile-nav-panel,
body > .nav-backdrop {
    display: none;
}

@media (max-width: 760px) {
    body > .mobile-nav-panel {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        z-index: 2147483647 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 18px !important;
        width: min(84vw, 330px) !important;
        max-width: 330px !important;
        min-height: 100dvh !important;
        padding: 18px 16px 22px !important;
        background: #fff !important;
        border-right: 1px solid #dce5ee !important;
        box-shadow: 22px 0 60px rgba(15, 23, 42, 0.28) !important;
        transform: translateX(-105%) !important;
        transition: transform 220ms ease !important;
        overflow-y: auto !important;
        will-change: transform !important;
    }

    body > .mobile-nav-panel .mobile-nav-head {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 14px !important;
        padding-bottom: 6px !important;
    }

    body > .mobile-nav-panel nav {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        color: #0f172a !important;
    }

    body > .mobile-nav-panel nav a {
        display: flex !important;
        align-items: center !important;
        gap: 9px !important;
        min-height: 42px !important;
        padding: 0 12px !important;
        border-radius: 10px !important;
        color: #0f172a !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
    }

    body > .mobile-nav-panel nav a::before {
        content: "›";
        display: inline-grid;
        place-items: center;
        width: 18px;
        height: 18px;
        flex: 0 0 auto;
        border-radius: 999px;
        background: #edf6ff;
        color: #0b4ea2;
        font-size: 17px;
        font-weight: 600;
        line-height: 1;
    }

    body > .mobile-nav-panel nav a:hover {
        background: #f1f5f9 !important;
    }

    body > .mobile-nav-panel .header-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        margin-top: 4px !important;
    }

    body > .mobile-nav-panel .header-login-button {
        width: 100% !important;
        min-height: 44px !important;
    }

    body > .nav-backdrop {
        position: fixed !important;
        inset: 0 !important;
        z-index: 2147483646 !important;
        display: block !important;
        background: rgba(15, 23, 42, 0.34) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: opacity 180ms ease !important;
    }

    body > .nav-toggle:checked ~ .mobile-nav-panel {
        transform: translateX(0) !important;
    }

    body > .nav-toggle:checked ~ .nav-backdrop {
        opacity: 1 !important;
        pointer-events: auto !important;
    }
}

.site-navbar nav a {
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}

.site-navbar nav a.nav-deals-link,
body > .mobile-nav-panel nav a.nav-deals-link {
    background: #010034 !important;
    box-shadow: 0 10px 22px rgba(1, 0, 52, 0.18);
    color: #fff !important;
    gap: 0.45rem;
    overflow: hidden;
    position: relative;
}

.site-navbar nav a.nav-deals-link::before,
body > .mobile-nav-panel nav a.nav-deals-link::before {
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.5), transparent);
    content: "";
    height: 120%;
    left: 0;
    position: absolute;
    top: -10%;
    transform: translateX(-180%) rotate(18deg);
    transition: transform 0.5s ease;
    width: 2.2rem;
}

.site-navbar nav a.nav-deals-link:hover::before,
body > .mobile-nav-panel nav a.nav-deals-link:hover::before {
    transform: translateX(520%) rotate(18deg);
}

.site-navbar nav a.nav-deals-link small,
body > .mobile-nav-panel nav a.nav-deals-link small {
    background: #facc15;
    border-radius: 999px;
    color: #010034;
    font-size: 0.64rem;
    font-weight: 900;
    line-height: 1;
    padding: 0.22rem 0.38rem;
    text-transform: uppercase;
}

.desktop-nav-wrap nav a[href="/egitim-turleri"],
.desktop-nav-wrap nav a[href$="/ozel-okullar"] {
    display: none !important;
}

.site-navbar nav a.nav-bonus-link {
    gap: .38rem;
    border: 1.5px solid #010034 !important;
    background: #fff !important;
    color: #1f2937 !important;
    box-shadow: none;
}

.site-navbar nav a.nav-bonus-link small {
    display: inline-grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 999px;
    background: #f3f4ff;
    color: #010034;
    font-size: 1.35rem;
    font-weight: 950;
    line-height: 1;
}

.site-navbar nav a.nav-search-link {
    aspect-ratio: 1;
    justify-content: center;
    padding: 0 !important;
    width: 40px;
}

.nav-search-icon {
    border: 2px solid currentColor;
    border-radius: 999px;
    display: inline-block;
    height: 1rem;
    position: relative;
    width: 1rem;
}

.nav-search-icon::after {
    background: currentColor;
    border-radius: 999px;
    bottom: -0.28rem;
    content: "";
    height: 0.45rem;
    position: absolute;
    right: -0.18rem;
    transform: rotate(-45deg);
    width: 2px;
}

.site-navbar nav a.nav-search-link .nav-search-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.mobile-bottom-nav {
    display: none;
}

.bottom-nav-icon {
    position: relative;
    display: block;
    width: 22px;
    height: 22px;
    color: currentColor;
}

.bottom-nav-icon::before,
.bottom-nav-icon::after {
    content: "";
    position: absolute;
    box-sizing: border-box;
}

.bottom-nav-home::before {
    left: 3px;
    top: 8px;
    width: 16px;
    height: 11px;
    border: 2px solid currentColor;
    border-top: 0;
    border-radius: 2px;
}

.bottom-nav-home::after {
    left: 4px;
    top: 3px;
    width: 14px;
    height: 14px;
    border-top: 2px solid currentColor;
    border-left: 2px solid currentColor;
    transform: rotate(45deg);
}

.bottom-nav-school::before {
    left: 3px;
    top: 5px;
    width: 16px;
    height: 14px;
    border: 2px solid currentColor;
    border-radius: 3px;
}

.bottom-nav-school::after {
    left: 7px;
    top: 9px;
    width: 8px;
    height: 2px;
    background: currentColor;
    box-shadow: 0 4px 0 currentColor;
}

.bottom-nav-search::before {
    left: 3px;
    top: 3px;
    width: 13px;
    height: 13px;
    border: 2px solid currentColor;
    border-radius: 999px;
}

.bottom-nav-search::after {
    right: 3px;
    bottom: 4px;
    width: 8px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(45deg);
}

.bottom-nav-teacher::before {
    left: 7px;
    top: 3px;
    width: 8px;
    height: 8px;
    border: 2px solid currentColor;
    border-radius: 999px;
}

.bottom-nav-teacher::after {
    left: 3px;
    bottom: 3px;
    width: 16px;
    height: 8px;
    border: 2px solid currentColor;
    border-radius: 10px 10px 3px 3px;
}

.bottom-nav-offers::before {
    left: 4px;
    top: 5px;
    width: 14px;
    height: 12px;
    border: 2px solid currentColor;
    border-radius: 4px;
    transform: rotate(-8deg);
}

.bottom-nav-offers::after {
    left: 9px;
    top: 10px;
    width: 4px;
    height: 4px;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 6px -3px 0 -1px currentColor;
}

.bottom-nav-quote::before {
    left: 4px;
    top: 4px;
    width: 14px;
    height: 15px;
    border: 2px solid currentColor;
    border-radius: 3px;
}

.bottom-nav-quote::after {
    left: 8px;
    top: 8px;
    width: 6px;
    height: 2px;
    background: currentColor;
    box-shadow: 0 4px 0 currentColor;
}

.bottom-nav-bonus::before {
    left: 4px;
    top: 4px;
    width: 14px;
    height: 14px;
    background: currentColor;
    clip-path: polygon(50% 0, 62% 34%, 98% 35%, 69% 56%, 79% 91%, 50% 70%, 21% 91%, 31% 56%, 2% 35%, 38% 34%);
}

.bottom-nav-bonus::after {
    display: none;
}

.offers-feed-page {
    padding-top: 28px;
}

.offers-feed-shell {
    display: grid;
    gap: 22px;
    width: min(640px, 100%);
    margin: 0 auto;
}

.offers-feed-card {
    overflow: hidden;
    border: 1px solid #dbe4ee;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 38px rgba(15, 23, 42, .08);
    cursor: pointer;
}

.offers-feed-head {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid #edf2f7;
}

.offers-feed-avatar {
    display: inline-grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 999px;
    background: #fff1e8;
    color: #ff7a1a;
    font-weight: 950;
}

.offers-feed-head strong,
.offers-feed-body h2 {
    color: #0f172a;
}

.offers-feed-head small {
    display: block;
    margin-top: 2px;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.offers-feed-chip {
    border-radius: 999px;
    background: #06182c;
    color: #fff;
    padding: 6px 9px;
    font-size: 11px;
    font-weight: 900;
}

.offers-feed-media {
    display: grid;
    background: #0f172a;
}

.offers-feed-media img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

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

.offers-feed-video {
    aspect-ratio: 16 / 9;
}

.offers-feed-video iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.offers-feed-body {
    display: grid;
    gap: 10px;
    padding: 14px;
}

.offers-feed-body h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.18;
}

.offers-feed-text {
    color: #334155;
    font-size: 14px;
    line-height: 1.55;
}

.offers-feed-text.is-clamped {
    overflow: hidden;
    max-height: calc(1.55em * 3);
}

.offers-feed-more {
    justify-self: start;
    border: 0;
    background: transparent;
    color: #2563eb;
    padding: 0;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}

.offers-feed-text p {
    margin: 0 0 10px;
}

.offers-feed-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 4px;
}

.offers-feed-links a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    border-radius: 999px;
    background: #ff7a1a;
    color: #fff;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 900;
}

.offers-feed-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    border-top: 1px solid #edf2f7;
    padding-top: 10px;
}

.offers-feed-actions button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 34px;
    border: 1px solid #dbe4ee;
    border-radius: 999px;
    background: #f8fafc;
    color: #334155;
    padding: 7px 11px;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.offers-feed-actions button.is-liked {
    border-color: #fecdd3;
    background: #fff1f2;
    color: #e11d48;
}

.offers-feed-comment-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.offers-feed-comment-form[hidden] {
    display: none;
}

.offers-feed-comment-form input {
    min-height: 38px;
    border: 1px solid #dbe4ee;
    border-radius: 999px;
    padding: 8px 12px;
    font: inherit;
    font-size: 13px;
}

.offers-feed-comment-form button {
    border: 0;
    border-radius: 999px;
    background: #06182c;
    color: #fff;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.offers-feed-modal {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: none;
}

.offers-feed-modal.is-open {
    display: block;
}

body.feed-modal-open {
    overflow: hidden;
}

.offers-feed-modal-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(15, 23, 42, .58);
}

.offers-feed-modal-panel {
    position: absolute;
    top: 24px;
    left: 50%;
    z-index: 1;
    display: grid;
    width: min(680px, calc(100vw - 24px));
    max-height: calc(100dvh - 48px);
    overflow-y: auto;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .32);
    transform: translateX(-50%);
}

.offers-feed-modal-head {
    position: sticky;
    top: 0;
    z-index: 1;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid #edf2f7;
    background: rgba(255, 255, 255, .96);
    padding: 12px 14px;
}

.offers-feed-modal-head strong {
    display: block;
    color: #0f172a;
    font-size: 16px;
}

.offers-feed-modal-head span {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}

.offers-feed-modal-back {
    position: relative;
    display: inline-grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid #dbe4ee;
    border-radius: 999px;
    background: #f8fafc;
    color: #0f172a;
    cursor: pointer;
}

.offers-feed-modal-back span {
    width: 12px;
    height: 12px;
    border-left: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateX(2px) rotate(45deg);
}

.offers-feed-modal-body {
    display: grid;
    gap: 12px;
    padding: 14px;
}

@media (max-width: 980px) {
    .offers-page-header .site-breadcrumb,
    .bonus-page-header .site-breadcrumb {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        margin: 0 !important;
        overflow: hidden !important;
    }
}

@media (max-width: 680px) {
    .offers-feed-page {
        padding-top: 18px;
    }

    .offers-feed-shell {
        width: 100%;
    }

    .offers-feed-card {
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }
}

@media (max-width: 720px) {
    body {
        padding-bottom: calc(78px + env(safe-area-inset-bottom));
    }

    .site-footer {
        padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important;
    }

    .mobile-bottom-nav {
        position: fixed;
        left: 50%;
        bottom: calc(8px + env(safe-area-inset-bottom));
        z-index: 90;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 2px;
        width: calc(100vw - 20px);
        width: calc(100dvw - 20px);
        max-width: 420px;
        min-height: 64px;
        padding: 6px;
        border: 1px solid rgba(203, 213, 225, .9);
        border-radius: 18px;
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 18px 44px rgba(15, 23, 42, .18);
        backdrop-filter: blur(18px);
        box-sizing: border-box;
        transform: translateX(-50%);
    }

    .mobile-bottom-nav a,
    .mobile-bottom-nav label {
        display: grid;
        place-items: center;
        align-content: center;
        min-width: 0;
        min-height: 52px;
        gap: 3px;
        border-radius: 14px;
        color: #64748b;
        font-size: 10px;
        font-weight: 800;
        line-height: 1.05;
        text-align: center;
        cursor: pointer;
        transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
    }

    .mobile-bottom-nav a.active,
    .mobile-bottom-nav label.active {
        background: #fff1e8;
        color: #ff7a1a;
    }

    .mobile-bottom-nav .bottom-nav-bonus-link {
        background: #06182c;
        color: #f8fafc;
        box-shadow: 0 8px 18px rgba(6, 24, 44, .22);
    }

    .mobile-bottom-nav .bottom-nav-bonus-link.active {
        background: #020617;
        color: #ffd166;
    }

    .mobile-bottom-nav a:active,
    .mobile-bottom-nav label:active {
        transform: translateY(1px);
    }

    .mobile-bottom-nav a span:last-child,
    .mobile-bottom-nav label span:last-child {
        display: block;
        overflow: hidden;
        max-width: 100%;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .cookie-consent {
        bottom: calc(84px + env(safe-area-inset-bottom));
    }
}

.brand-logo-image {
    display: block;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    object-fit: contain;
    background: #fff;
}

.footer-logo {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
}

.footer-logo-image {
    display: block;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    object-fit: contain;
    background: rgba(255, 255, 255, 0.94);
    padding: 4px;
}

/* AI exam preparation band */
.home-page .exam-ai-section {
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-top: 24px !important;
    padding-bottom: 42px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background:
        radial-gradient(circle at 10% 96%, rgba(255, 255, 255, 0.54), transparent 24%),
        linear-gradient(135deg, #e8f0ff 0%, #dce9fb 52%, #eaf7f4 100%) !important;
}

.exam-ai-panel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 26px 34px;
    width: min(1180px, calc(100vw - 32px));
    margin: 0 auto;
    padding: 38px 44px 46px;
    border-radius: 0;
    background:
        radial-gradient(circle at 7% 95%, rgba(255, 255, 255, 0.54), transparent 28%),
        radial-gradient(circle at 62% 28%, rgba(255, 255, 255, 0.46), transparent 20%),
        transparent;
    color: #08213f;
    overflow: hidden;
}

.exam-ai-panel::before,
.exam-ai-panel::after {
    content: "";
    position: absolute;
    border-radius: 32px;
    background: rgba(255, 255, 255, 0.32);
    transform: rotate(-34deg);
}

.exam-ai-panel::before {
    width: 220px;
    height: 220px;
    left: -92px;
    bottom: -122px;
}

.exam-ai-panel::after {
    width: 180px;
    height: 180px;
    left: 46%;
    top: 52px;
}

.exam-ai-copy,
.exam-ai-store,
.exam-type-grid {
    position: relative;
    z-index: 1;
}

.exam-ai-copy {
    max-width: 760px;
}

.exam-ai-copy .eyebrow {
    margin-bottom: 12px;
    color: #00856f !important;
}

.exam-ai-copy h2 {
    margin: 0 0 12px;
    color: #06182c;
    font-size: clamp(26px, 3vw, 34px);
    font-weight: 600;
    line-height: 1.18;
}

.exam-ai-copy p {
    max-width: 720px;
    margin: 0 0 14px;
    color: #1e3854;
    font-size: 15px;
    line-height: 1.58;
}

.exam-ai-copy strong {
    display: block;
    color: #06182c;
    font-size: 15px;
    font-weight: 600;
}

.exam-ai-store {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-self: start;
    min-width: 160px;
}

.store-button {
    display: grid;
    grid-template-columns: 30px 1fr;
    grid-template-areas:
        "icon small"
        "icon strong";
    align-items: center;
    min-height: 48px;
    padding: 7px 12px;
    border-radius: 8px;
    background: #06182c;
    color: #fff;
    box-shadow: 0 10px 22px rgba(2, 12, 23, 0.13);
}

.store-button span {
    grid-area: icon;
    font-size: 22px;
    line-height: 1;
}

.store-button small {
    grid-area: small;
    color: rgba(255, 255, 255, 0.82);
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
}

.store-button strong {
    grid-area: strong;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.1;
}

.play-store {
    background: #071f2f;
}

.exam-type-grid {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
}

.exam-type-grid a {
    display: grid;
    align-content: start;
    gap: 10px;
    min-height: 126px;
    padding: 16px 14px;
    border: 1px solid #d5e0ef;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.88);
    color: #08213f;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.exam-type-grid a span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #e8f8f5;
    color: #00856f;
    font-size: 13px;
    font-weight: 600;
}

.exam-type-grid a:nth-child(2) span,
.exam-type-grid a:nth-child(5) span {
    background: #eef2ff;
    color: #4f46e5;
}

.exam-type-grid a:nth-child(3) span,
.exam-type-grid a:nth-child(6) span {
    background: #fff7ed;
    color: #f97316;
}

.exam-type-grid a:nth-child(4) span {
    background: #fef9c3;
    color: #ca8a04;
}

.exam-type-grid a strong {
    color: #06182c;
    font-size: 20px;
    font-weight: 600;
}

.exam-type-grid a small {
    color: #475569;
    font-size: 12px;
    line-height: 1.35;
}

@media (max-width: 980px) {
    .exam-ai-panel {
        grid-template-columns: 1fr;
        padding: 30px 22px 34px;
    }

    .exam-ai-store {
        grid-template-columns: repeat(2, minmax(0, 150px));
    }

    .exam-type-grid {
        grid-auto-flow: column;
        grid-auto-columns: minmax(150px, 170px);
        grid-template-columns: none;
        overflow-x: auto;
        padding-bottom: 8px;
        scroll-snap-type: x proximity;
    }

    .exam-type-grid a {
        scroll-snap-align: start;
    }
}

@media (max-width: 560px) {
    .exam-ai-copy h2 {
        font-size: 24px;
    }

    .exam-ai-store {
        grid-template-columns: 1fr;
        max-width: 170px;
    }
}

/* Why cards numbered badge */
.home-page .why-grid span {
    display: inline-grid !important;
    place-items: center !important;
    width: 58px !important;
    height: 58px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 999px !important;
    background: #f8faf7 !important;
    color: #00856f !important;
    font-size: 21px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86), 0 8px 20px rgba(15, 23, 42, 0.04) !important;
}

/* Compact brand showcase cards */
.home-page .brand-strip-section {
    max-width: none !important;
    padding: 24px 28px !important;
    width: 100% !important;
}

.home-page > .brand-strip-section.section {
    padding: 24px 28px !important;
}

.home-page .brand-rail {
    grid-auto-columns: 132px !important;
    gap: 10px !important;
}

.home-page .brand-tile {
    min-height: 112px !important;
    gap: 6px !important;
    padding: 0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

.home-page .brand-logo {
    width: 100% !important;
    height: 100% !important;
    min-height: inherit !important;
    border-radius: 8px !important;
    font-size: 18px !important;
}

.home-page .brand-logo img {
    padding: 0 !important;
}

.home-page .teacher-preview-section {
    background:
        linear-gradient(135deg, rgba(0, 133, 111, 0.08) 0%, rgba(255, 122, 24, 0.055) 48%, rgba(7, 23, 58, 0.045) 100%),
        repeating-linear-gradient(135deg, rgba(15, 23, 42, 0.025) 0 1px, transparent 1px 18px),
        #f6faf8 !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    border-top: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: inset 0 18px 52px rgba(255, 255, 255, 0.68);
}

.home-page .teacher-preview-section .teacher-mini-card {
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06);
}

.weekly-stars-section {
    background: #fff;
}

.weekly-stars-section .section-heading {
    align-items: center;
}

.weekly-stars-section .section-heading a {
    align-items: center;
    border: 1px solid rgba(0, 38, 120, 0.2);
    border-radius: 999px;
    color: #061a45;
    display: inline-flex;
    font-size: 13px;
    font-weight: 500;
    padding: 8px 12px;
}

.weekly-stars-layout {
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr);
}

.weekly-star-featured {
    border-right: 1px solid rgba(15, 23, 42, 0.12);
    padding-right: 24px;
}

.weekly-star-featured a {
    align-items: center;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(260px, 0.95fr) minmax(0, 1fr);
}

.weekly-star-image,
.weekly-star-thumb {
    background: #f1f5f9;
    border: 1px solid rgba(203, 213, 225, 0.9);
    overflow: hidden;
}

.weekly-star-image {
    aspect-ratio: 16 / 9;
    border-radius: 8px;
}

.weekly-star-image img,
.weekly-star-thumb img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.weekly-star-copy {
    display: grid;
    gap: 9px;
}

.weekly-star-copy span {
    color: #007f73;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.weekly-star-copy h3 {
    color: #101827;
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.12;
    margin: 0;
}

.weekly-star-copy p,
.weekly-star-row p {
    color: #475569;
    margin: 0;
}

.weekly-star-copy em,
.weekly-star-row em {
    align-items: center;
    background: #00bfe8;
    border-radius: 5px;
    color: #061a45;
    display: inline-flex;
    font-size: 13px;
    font-style: normal;
    font-weight: 500;
    justify-content: center;
    padding: 9px 13px;
}

.weekly-star-copy em {
    justify-self: start;
    margin-top: 5px;
}

.weekly-star-list {
    display: grid;
    gap: 10px;
}

.weekly-star-row {
    background: #f8fafc;
    border: 1px solid rgba(203, 213, 225, 0.88);
    border-radius: 8px;
}

.weekly-star-row a {
    align-items: center;
    display: grid;
    gap: 14px;
    grid-template-columns: 94px minmax(0, 1fr) auto;
    min-height: 86px;
    padding: 10px;
}

.weekly-star-thumb {
    aspect-ratio: 16 / 10;
    border-radius: 6px;
}

.weekly-star-row h3 {
    color: #101827;
    font-size: 17px;
    line-height: 1.18;
    margin: 0 0 5px;
}

.weekly-star-row .customer-rating {
    margin-top: 6px;
}

@media (max-width: 900px) {
    .weekly-stars-layout,
    .weekly-star-featured a {
        grid-template-columns: 1fr;
    }

    .weekly-star-featured {
        border-right: 0;
        border-bottom: 1px solid rgba(15, 23, 42, 0.12);
        padding: 0 0 18px;
    }
}

@media (max-width: 640px) {
    .weekly-star-row a {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .weekly-star-row em {
        grid-column: 2;
        justify-self: start;
    }
}

.home-fast-access {
    background:
        radial-gradient(circle at 7% 20%, rgba(255, 122, 24, 0.13), transparent 24%),
        radial-gradient(circle at 88% 10%, rgba(0, 133, 111, 0.14), transparent 25%),
        linear-gradient(180deg, #fbfcfb 0%, #f4f8f6 100%);
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    border-top: 1px solid rgba(15, 23, 42, 0.05);
    padding-top: 42px !important;
    padding-bottom: 46px !important;
}

.fast-access-shell {
    display: grid;
    gap: 22px;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.fast-access-location {
    align-items: center;
    display: grid;
    gap: 16px;
    grid-template-columns: 54px minmax(0, 1fr);
}

.location-mark {
    border: 2px solid #ff6b1a;
    border-radius: 18px 18px 18px 4px;
    display: grid;
    height: 44px;
    place-items: center;
    transform: rotate(-45deg);
    width: 44px;
}

.location-mark::before {
    background: #ff6b1a;
    border-radius: 999px;
    content: "";
    height: 12px;
    width: 12px;
}

.fast-access-location h2 {
    color: #101827;
    font-size: clamp(25px, 3vw, 38px);
    margin: 4px 0 10px;
}

.city-quick-row,
.pill-cloud,
.fast-cta-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.city-quick-row a,
.city-quick-row button,
.pill-cloud a {
    border: 1px solid rgba(0, 38, 120, 0.2);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.8);
    color: #061a45;
    font-size: 13px;
    font-weight: 500;
    padding: 8px 12px;
}

.city-quick-row button {
    cursor: pointer;
    font-family: inherit;
}

.city-quick-row .city-select-trigger {
    background: #061a45;
    border-color: #061a45;
    color: #fff;
    box-shadow: none;
}

.city-quick-row a.active,
.city-quick-row button.active,
.city-quick-row a:hover,
.city-quick-row button:hover,
.pill-cloud a:hover {
    border-color: rgba(255, 107, 26, 0.7);
    color: #c2410c;
}

.city-quick-row .city-select-trigger:hover {
    background: #020066;
    border-color: #020066;
    color: #fff;
}

.fast-access-grid {
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
}

.fast-access-panel {
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(203, 213, 225, 0.82);
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.07);
    padding: 24px;
}

.mini-heading {
    display: grid;
    gap: 4px;
    margin-bottom: 16px;
}

.mini-heading span {
    color: #007f73;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.mini-heading strong {
    color: #101827;
    font-size: 20px;
}

.fast-cta-row {
    margin-bottom: 20px;
}

.fast-cta-row a {
    background: #020066;
    border-radius: 999px;
    box-shadow: none;
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    padding: 8px 12px;
}

.fast-cta-row a:nth-child(n+3) {
    background: linear-gradient(135deg, #ff6b1a, #ff9f43);
    box-shadow: none;
}

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

.exam-tile-grid a {
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 8px;
    color: #fff;
    display: grid;
    gap: 4px;
    min-height: 82px;
    padding: 16px;
    place-items: center;
    text-align: center;
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.exam-tile-grid a:hover {
    box-shadow: 0 16px 28px rgba(15, 23, 42, 0.14);
    transform: translateY(-2px);
}

.exam-tile-grid strong {
    font-size: 25px;
    line-height: 1;
}

.exam-tile-grid span {
    font-size: 12px;
    font-weight: 800;
    opacity: 0.9;
}

.exam-lgs { background: linear-gradient(135deg, #007f9f, #6ac7d7); }
.exam-yks { background: linear-gradient(135deg, #7ba13c, #bfd979); }
.exam-tyt { background: linear-gradient(135deg, #ff3d00, #ff7a18); }
.exam-ayt { background: linear-gradient(135deg, #0ca7d9, #50cceb); }
.exam-kpss { background: linear-gradient(135deg, #5b45aa, #9581ce); }
.exam-ales { background: linear-gradient(135deg, #e11d48, #fb638b); }
.exam-dgs { background: linear-gradient(135deg, #cf54c8, #e9a0df); }

.fast-service-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.fast-service-card {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(37, 99, 235, 0.24);
    border-radius: 8px;
    display: grid;
    gap: 8px;
    min-height: 132px;
    padding: 16px 12px;
    text-align: center;
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.fast-service-card:hover {
    border-color: rgba(255, 107, 26, 0.56);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.08);
    transform: translateY(-2px);
}

.service-icon {
    align-items: center;
    background: #f1f7ff;
    border: 1px solid rgba(37, 99, 235, 0.14);
    border-radius: 18px;
    color: #020066;
    display: inline-flex;
    font-size: 17px;
    font-weight: 950;
    height: 46px;
    justify-content: center;
    justify-self: center;
    width: 46px;
}

.fast-service-card strong {
    color: #0f172a;
    font-size: 15px;
}

.fast-service-card small {
    color: #64748b;
    font-weight: 700;
}

.home-fast-access-cta-banners .site-banner-group {
    margin-bottom: 0;
    margin-top: 0;
    width: 100%;
}

@media (max-width: 900px) {
    .fast-access-grid {
        grid-template-columns: 1fr;
    }

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

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

@media (max-width: 640px) {
    .home-fast-access {
        padding-top: 26px !important;
        padding-bottom: 30px !important;
    }

    .fast-access-location {
        align-items: start;
        grid-template-columns: 40px minmax(0, 1fr);
    }

    .location-mark {
        height: 34px;
        width: 34px;
    }

    .fast-access-panel {
        padding: 18px;
    }

    .exam-tile-grid,
    .fast-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

.home-page .brand-tile strong {
    overflow: hidden !important;
    color: #0f172a !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.home-page .brand-tile small {
    color: #ff7a1a !important;
    font-size: 11px !important;
    font-weight: 500 !important;
}

.home-page .brand-tile.brand-all-tile strong {
    color: #fff !important;
}

/* Hero spacing cleanup */
.hero-slider {
    margin-bottom: 64px !important;
}

.hero-search-form {
    bottom: -78px !important;
}

@media (min-width: 981px) {
    .hero-slider {
        margin-bottom: 28px !important;
    }

    .hero-search-form {
        top: 330px !important;
        bottom: auto !important;
    }
}

@media (max-width: 980px) {
    .hero-slider {
        margin-bottom: 42px !important;
    }

    .hero-search-form {
        position: static !important;
        left: auto !important;
        bottom: auto !important;
        transform: none !important;
        width: 100% !important;
        margin-top: 22px !important;
    }
}

@media (max-width: 680px) {
    .hero-slider {
        min-height: 0 !important;
        margin-bottom: 26px !important;
        overflow: hidden !important;
    }

    .hero-slides {
        position: relative !important;
        inset: auto !important;
    }

    .hero-slide {
        position: relative !important;
        inset: auto !important;
        display: none !important;
        min-height: 0 !important;
        padding: 34px 16px 26px !important;
    }

    .hero-slide.is-active {
        display: flex !important;
    }

    .hero-slider,
    .hero-slider .hero-content,
    .hero-slider .hero-search-card {
        text-align: center !important;
    }

    .hero-slider .hero-slide-inner,
    .hero-slider .hero-content,
    .hero-slider h1,
    .hero-slider p,
    .hero-slider .hero-search-card {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .hero-slider .eyebrow {
        justify-content: center !important;
    }

    .hero-slider .hero-actions {
        justify-content: center !important;
    }

    .hero-search-form {
        grid-template-columns: 1fr !important;
        padding: 14px !important;
    }

    .service-shortcuts {
        padding-top: 0 !important;
    }
}

.home-mobile-filter-toggle,
.home-mobile-search-modal {
    display: none;
}

@media (max-width: 680px) {
    .home-page > .hero-slider > .hero-search-form,
    .home-page .legacy-static-hero .hero-search-form {
        display: none !important;
    }

    .home-mobile-search-modal {
        position: fixed;
        inset: 0;
        z-index: 120;
        display: block;
        opacity: 0;
        pointer-events: none;
        transition: opacity 200ms ease;
    }

    .home-mobile-search-backdrop {
        position: absolute;
        inset: 0;
        background: rgba(15, 23, 42, .48);
    }

    .home-mobile-search-panel {
        position: absolute;
        right: 12px;
        left: 12px;
        top: 74px;
        display: grid;
        gap: 14px;
        max-height: calc(100dvh - 110px);
        overflow-y: auto;
        padding: 14px;
        border: 1px solid #dbe4ee;
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 24px 64px rgba(15, 23, 42, .28);
        transform: translateY(12px) scale(.98);
        transition: transform 200ms ease;
    }

    .home-mobile-search-panel header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }

    .home-mobile-search-panel header div {
        display: grid;
        gap: 2px;
    }

    .home-mobile-search-panel header strong {
        color: #0f172a;
        font-size: 16px;
        font-weight: 950;
    }

    .home-mobile-search-panel header span {
        color: #64748b;
        font-size: 12px;
        font-weight: 700;
    }

    .home-mobile-search-panel header label {
        display: inline-grid;
        width: 34px;
        height: 34px;
        place-items: center;
        border: 1px solid #d8e2ec;
        border-radius: 8px;
        background: #f8fafc;
        color: #0f172a;
        font-weight: 900;
        cursor: pointer;
    }

    .home-mobile-search-form {
        display: grid !important;
        width: 100% !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
    }

    .home-mobile-search-form .search-submit {
        grid-column: auto;
        width: 100%;
    }

    .discover-category-pick {
        display: inline-flex;
        align-items: center;
        min-height: 28px;
        padding: 0 11px;
        border: 0;
        border-radius: 999px;
        background: #eef3f8;
        color: #334155;
        font: inherit;
        font-size: 12px;
        font-weight: 900;
        line-height: 1;
        cursor: pointer;
        white-space: nowrap;
        transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease, color 160ms ease;
    }

    .discover-category-pick.warm {
        background: #fff3e7;
        color: #9a3412;
    }

    .discover-category-pick.blue {
        background: #edf5ff;
        color: #1d4ed8;
    }

    .discover-category-pick.dark {
        background: #eef2ff;
        color: #312e81;
    }

    .discover-category-pick.is-selected {
        background: #ff7a18;
        color: #fff;
        box-shadow: 0 8px 18px rgba(255, 122, 24, .24);
        transform: translateY(-1px);
    }

    .home-mobile-search-panel .popular-searches {
        margin: 0;
        color: #64748b;
    }

    .home-mobile-filter-toggle:checked ~ .home-mobile-search-modal {
        opacity: 1;
        pointer-events: auto;
    }

    .home-mobile-filter-toggle:checked ~ .home-mobile-search-modal .home-mobile-search-panel {
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 980px) {
    .quote-layout,
    .quote-two,
    .quote-choice-grid,
    .quote-choice-grid.compact {
        grid-template-columns: 1fr;
    }

    .quote-layout {
        padding: 18px;
    }

    .quote-page-section > .quote-layout {
        width: min(100% - 28px, 1180px);
    }

    .quote-menu-toggle-button {
        position: fixed;
        left: 0;
        bottom: 168px;
        z-index: 90;
        display: inline-flex !important;
        align-items: center;
        min-height: 42px;
        padding: 8px 13px 8px 11px;
        border: 1px solid rgba(255, 122, 31, .28);
        border-left: 0;
        border-radius: 0 10px 10px 0;
        background: #ff7a1f;
        color: #fff;
        font-size: 13px;
        font-weight: 900;
        box-shadow: 0 14px 34px rgba(15, 23, 42, .18);
        cursor: pointer;
        opacity: 1;
        pointer-events: auto;
    }

    .quote-page-section:has(.quote-menu-toggle) .quote-side-menu {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 110;
        width: min(86vw, 340px);
        height: 100dvh;
        overflow-y: auto;
        align-content: start;
        border-radius: 0;
        border-width: 0 1px 0 0;
        padding: 18px;
        transform: translateX(-105%);
        transition: transform 240ms ease;
        box-shadow: 20px 0 45px rgba(15, 23, 42, .22);
    }

    .quote-menu-close {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        justify-self: end;
        width: 34px;
        height: 34px;
        margin-bottom: 6px;
        border: 1px solid #d8e2ec;
        border-radius: 8px;
        background: #fff;
        color: #0f172a;
        font-weight: 900;
        cursor: pointer;
    }

    .quote-menu-backdrop {
        position: fixed;
        inset: 0;
        z-index: 105;
        display: block !important;
        background: rgba(15, 23, 42, .42);
        opacity: 0;
        pointer-events: none;
        transition: opacity 220ms ease;
    }

    .quote-menu-toggle:checked ~ .quote-layout .quote-side-menu {
        transform: translateX(0);
    }

    .quote-menu-toggle:checked ~ .quote-layout .quote-menu-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    .quote-visual {
        display: none;
    }

    .quote-seo-section,
    .quote-seo-media div {
        grid-template-columns: 1fr;
    }
}

/* Panel-managed banner groups */
.site-banner-slot-stack {
    display: grid;
    gap: 1px;
}

.site-banner-group {
    width: var(--banner-width);
    margin: var(--banner-margin-top) auto var(--banner-margin-bottom);
    display: grid !important;
    grid-template-columns: repeat(var(--banner-columns-desktop), minmax(0, 1fr)) !important;
    gap: var(--banner-gap);
    align-items: stretch;
}

.site-banner-card {
    display: block;
    min-width: 0;
    overflow: hidden;
    border-radius: 10px;
    background: #f6f7fb;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .12);
}

.site-banner-card img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: var(--banner-ratio);
    object-fit: var(--banner-fit);
}

.site-banner-group.card-soft .site-banner-card {
    border: 1px solid rgba(148, 163, 184, .34);
    box-shadow: none;
}

.site-banner-group.card-plain .site-banner-card {
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.site-banner-group.layout-single,
.site-banner-group.layout-carousel {
    grid-template-columns: 1fr !important;
}

.site-banner-group.layout-grid-2x2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.site-banner-group.layout-feature-grid {
    grid-template-columns: 2fr 1fr !important;
}

.site-banner-group.layout-feature-grid .site-banner-card:first-child {
    grid-row: span 2;
}

.site-banner-group.layout-feature-grid .site-banner-card:first-child img {
    height: 100%;
}

@media (max-width: 1024px) {
    .site-banner-group,
    .site-banner-group.layout-feature-grid,
    .site-banner-group.layout-grid-2x2 {
        grid-template-columns: repeat(var(--banner-columns-tablet), minmax(0, 1fr)) !important;
    }
}

@media (max-width: 720px) {
    .site-banner-group,
    .site-banner-group.layout-feature-grid,
    .site-banner-group.layout-grid-2x2 {
        width: min(calc(100% - 20px), 1180px);
        grid-template-columns: repeat(var(--banner-columns-mobile), minmax(0, 1fr)) !important;
        margin-block: 20px;
    }

    .detail-top-banners,
    .detail-top-banners .site-banner-group {
        max-width: 100%;
        overflow: hidden;
    }

    .site-banner-card {
        border-radius: 8px;
    }
}

/* Listing card view controls and marketplace cards */
.catalog-toolbar {
    align-items: center;
}

.view-switcher {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px;
    border: 1px solid #d8e1ea;
    border-radius: 8px;
    background: #f8fafc;
}

.view-switcher a,
.view-switcher button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    min-width: 34px;
    padding: 7px 9px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #475569;
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
    font-family: inherit;
    line-height: 1;
    text-decoration: none;
    transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.view-switcher a.active,
.view-switcher a:hover,
.view-switcher button.active,
.view-switcher button:hover {
    background: #ff7a1a;
    color: #fff;
}

.view-switcher button:active {
    transform: translateY(1px);
}

.listing-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 28px;
}

.listing-pagination a,
.listing-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #d8e1ea;
    border-radius: 8px;
    background: #fff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.listing-pagination a.active,
.listing-pagination a:hover {
    border-color: #ff7a1a;
    background: #ff7a1a;
    color: #fff;
}

.listing-pagination a.disabled {
    pointer-events: none;
    opacity: .48;
}

.listing-pagination .dots {
    border-color: transparent;
    background: transparent;
}

.listing-seo-content {
    display: grid;
    gap: 14px;
    margin-top: 34px;
    padding: 26px;
    border: 1px solid #dce3ea;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .06);
}

.listing-seo-content .lead {
    max-width: 860px;
    margin: 0;
    color: #475569;
}

.listing-seo-content .rich-content {
    display: grid;
    gap: 12px;
    color: #1f2937;
    line-height: 1.72;
}

.listing-seo-content .rich-content :where(h1,h2,h3,p,ul,ol) {
    margin: 0;
}

.listing-seo-content .rich-content :where(h1,h2,h3) {
    color: #0f172a;
    line-height: 1.2;
}

.location-seo-content {
    display: grid;
    grid-template-columns: minmax(220px, 360px) minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
    margin-top: 34px;
    padding: 24px;
    border: 1px solid #dce3ea;
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 18px 42px rgba(15, 23, 42, .07);
}

.location-seo-media {
    min-height: 240px;
    overflow: hidden;
    border-radius: 8px;
    background: #e2e8f0;
}

.location-seo-media img {
    width: 100%;
    height: 100%;
    min-height: 240px;
    display: block;
    object-fit: cover;
}

.location-seo-copy {
    display: grid;
    align-content: center;
    gap: 14px;
}

.location-seo-copy h2 {
    margin: 0;
    color: #0f172a;
    font-size: clamp(1.6rem, 2vw, 2.25rem);
    line-height: 1.15;
}

.location-seo-copy .lead {
    margin: 0;
    max-width: 820px;
    color: #475569;
    line-height: 1.7;
}

.location-seo-copy .rich-content {
    display: grid;
    gap: 12px;
    color: #1f2937;
    line-height: 1.72;
}

.location-seo-copy .rich-content :where(h1,h2,h3,p,ul,ol) {
    margin: 0;
}

.location-keyword-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
}

.location-keyword-row span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 11px;
    border: 1px solid #ffd7bc;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    font-size: .82rem;
    font-weight: 800;
}

.catalog-results .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
}

.catalog-results .product-grid.is-view-switching .product-card {
    will-change: transform, opacity;
}

.catalog-results .product-grid.grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.catalog-results .product-grid.grid-list {
    grid-template-columns: 1fr !important;
}

.catalog-results .product-card {
    min-width: 0;
    border: 1px solid #dce3ea !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08) !important;
    overflow: hidden !important;
}

.catalog-results .product-card a {
    display: grid !important;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.catalog-results .product-media {
    position: relative;
    aspect-ratio: 16 / 10 !important;
    border-radius: 0 !important;
    background: #e5edf4 !important;
    overflow: hidden;
}

.catalog-results .product-media::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    z-index: 1;
    height: 58%;
    background: linear-gradient(180deg, rgba(8, 22, 35, 0), rgba(8, 22, 35, 0.84));
    pointer-events: none;
}

.catalog-results .product-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 260ms ease;
}

.catalog-results .product-card:hover .product-media img {
    transform: scale(1.035);
}

.catalog-results .image-fallback {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 24% 16%, rgba(255, 255, 255, .94), rgba(255, 255, 255, 0) 36%),
        linear-gradient(135deg, #f2f8f5 0%, #eef5fb 52%, #fbf3e9 100%);
    color: rgba(6, 55, 91, .58);
    font-size: 38px;
    font-weight: 800;
}

.catalog-results .product-media:has(.image-fallback)::after {
    background: linear-gradient(180deg, transparent, rgba(8, 22, 35, .46));
}

.catalog-results .product-badge {
    position: absolute;
    top: 10px !important;
    right: 10px !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 3;
    max-width: calc(100% - 20px) !important;
    padding: 6px 9px !important;
    border-radius: 6px !important;
    background: #168bff !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    line-height: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.catalog-results .product-media-title {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 2;
}

.catalog-results .product-media-title h2 {
    display: -webkit-box;
    margin: 0;
    color: #fff !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.16 !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.36);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.catalog-results .product-body {
    display: grid;
    gap: 7px !important;
    padding: 12px !important;
}

.catalog-results .product-code {
    color: #64748b !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.customer-rating {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #475569;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

.customer-stars {
    --score-percent: 0%;
    position: relative;
    display: inline-block;
    color: #d6dde6;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0;
}

.customer-stars::before {
    content: "★★★★★";
    position: absolute;
    inset: 0;
    width: var(--score-percent);
    color: #ffb020;
    overflow: hidden;
    white-space: nowrap;
}

.score-value {
    color: #0f172a;
    font-weight: 900;
}

.score-count {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}

.score-new-badge {
    align-items: center;
    background: #fff3e9;
    border: 1px solid rgba(255, 107, 26, 0.32);
    border-radius: 999px;
    color: #c2410c;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    padding: 6px 9px;
}

.teacher-score {
    margin: 2px 0;
}

.profile-score {
    margin: 8px 0 10px;
}

.catalog-results .product-location {
    color: #111827;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
}

.catalog-results .product-card p {
    display: -webkit-box;
    min-height: 36px !important;
    margin: 0;
    color: #111827 !important;
    font-size: 13px;
    line-height: 1.38 !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.catalog-results .chip-row {
    display: none;
}

.catalog-results .product-status-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #9ca3af;
    font-size: 12px;
}

.catalog-results .product-status-row em {
    flex: 0 0 auto;
    max-width: 54%;
    padding: 5px 8px;
    border-radius: 5px;
    background: #dcfce7;
    color: #16a34a;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.catalog-results .product-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 0 !important;
    padding-top: 4px !important;
    border-top: 0 !important;
    color: #9ca3af !important;
    font-size: 12px !important;
}

.catalog-results .product-meta strong {
    color: #111827;
    font-size: 15px;
    font-weight: 900;
}

.catalog-results .product-grid.grid-list .product-card a {
    grid-template-columns: minmax(220px, 34%) 1fr;
}

.catalog-results .product-grid.grid-list .product-media {
    aspect-ratio: auto !important;
    min-height: 190px;
}

@media (max-width: 1180px) {
    .catalog-results .product-grid,
    .catalog-results .product-grid.grid-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 720px) {
    .cookie-consent {
        grid-template-columns: 1fr;
        gap: 12px;
        bottom: 12px;
        padding: 14px;
    }

    .cookie-consent button {
        width: 100%;
    }

    .search-page-header {
        display: none;
    }

    .search-section {
        padding-top: 18px;
    }

    .search-section .search-summary {
        display: none;
    }

    .search-section .product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .search-mobile-filter-bar {
        display: flex;
        position: fixed;
        left: 0;
        top: 156px;
        z-index: 60;
        justify-content: flex-start;
        margin: 0;
    }

    .search-mobile-filter-bar .secondary-link {
        min-height: 40px;
        border-color: #d8e2ec;
        border-left: 0;
        border-radius: 0 8px 8px 0;
        background: #fff;
        color: #0f172a;
        box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
    }

    .search-filter-form {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 80;
        display: grid !important;
        width: min(88vw, 340px);
        height: 100dvh;
        overflow-y: auto;
        align-content: start;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        margin: 0;
        border-radius: 0;
        border-width: 0 1px 0 0;
        padding: 18px;
        transform: translateX(-105%);
        transition: transform 220ms ease;
        box-shadow: 20px 0 45px rgba(15, 23, 42, .22);
    }

    .search-filter-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 4px;
    }

    .search-filter-head strong {
        color: #0f172a;
        font-size: 14px;
        font-weight: 900;
    }

    .search-filter-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border: 1px solid #d8e2ec;
        border-radius: 8px;
        background: #f8fafc;
        color: #0f172a;
        font-weight: 900;
        cursor: pointer;
    }

    .search-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 70;
        display: block;
        background: rgba(15, 23, 42, .42);
        opacity: 0;
        pointer-events: none;
        transition: opacity 220ms ease;
    }

    .search-filter-toggle:checked ~ .search-filter-form {
        transform: translateX(0);
    }

    .search-filter-toggle:checked ~ .search-filter-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    .catalog-mobile-filter-bar {
        display: flex;
        position: fixed;
        left: 0;
        top: 50%;
        z-index: 60;
        justify-content: flex-start;
        margin: 0;
        transform: translateY(-50%);
    }

    .catalog-mobile-filter-bar .secondary-link {
        min-height: 40px;
        border-color: #d8e2ec;
        border-left: 0;
        border-radius: 0 8px 8px 0;
        background: #fff;
        color: #0f172a;
        box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
    }

    .catalog-layout {
        display: block;
    }

    .catalog-filters {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 80;
        width: min(86vw, 340px);
        height: 100dvh;
        overflow-y: auto;
        border-radius: 0;
        border-width: 0 1px 0 0;
        padding: 20px;
        transform: translateX(-105%);
        transition: transform 220ms ease;
        box-shadow: 20px 0 45px rgba(15, 23, 42, .22);
    }

    .catalog-filter-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border: 1px solid #d8e2ec;
        border-radius: 8px;
        background: #f8fafc;
        color: #0f172a;
        font-weight: 900;
        cursor: pointer;
    }

    .catalog-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 70;
        display: block;
        background: rgba(15, 23, 42, .42);
        opacity: 0;
        pointer-events: none;
        transition: opacity 220ms ease;
    }

    .catalog-filter-toggle:checked ~ .catalog-layout .catalog-filters {
        transform: translateX(0);
    }

    .catalog-filter-toggle:checked ~ .catalog-layout .catalog-filter-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

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

    .catalog-results .product-grid,
    .catalog-results .product-grid.grid-2,
    .catalog-results .product-grid.grid-list {
        grid-template-columns: 1fr !important;
    }

    .catalog-results .product-grid.grid-list .product-card a {
        grid-template-columns: 1fr;
    }

    .catalog-results .product-grid.grid-list .product-media {
        aspect-ratio: 16 / 10 !important;
        min-height: 0;
    }

    .location-seo-content {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 24px;
        padding: 18px;
    }

    .location-seo-media,
    .location-seo-media img {
        min-height: 190px;
    }

    .teacher-mobile-filter-bar {
        display: flex;
        position: fixed;
        left: 0;
        top: 177px;
        z-index: 60;
        justify-content: flex-start;
        margin: 0;
    }

    .teacher-mobile-filter-bar .secondary-link {
        min-height: 40px;
        border-color: #d8e2ec;
        border-left: 0;
        border-radius: 0 8px 8px 0;
        background: #fff;
        color: #0f172a;
        box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
    }

    .teacher-filter-form {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 80;
        display: grid;
        width: min(88vw, 340px);
        height: 100dvh;
        overflow-y: auto;
        align-content: start;
        grid-template-columns: 1fr;
        gap: 12px;
        border-radius: 0;
        border-width: 0 1px 0 0;
        padding: 18px;
        transform: translateX(-105%);
        transition: transform 220ms ease;
        box-shadow: 20px 0 45px rgba(15, 23, 42, .22);
    }

    .teacher-filter-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 4px;
    }

    .teacher-filter-head strong {
        color: #0f172a;
        font-size: 14px;
        font-weight: 900;
    }

    .teacher-filter-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border: 1px solid #d8e2ec;
        border-radius: 8px;
        background: #f8fafc;
        color: #0f172a;
        font-weight: 900;
        cursor: pointer;
    }

    .teacher-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 70;
        display: block;
        background: rgba(15, 23, 42, .42);
        opacity: 0;
        pointer-events: none;
        transition: opacity 220ms ease;
    }

    .teacher-filter-toggle:checked ~ .teacher-filter-form {
        transform: translateX(0);
    }

    .teacher-filter-toggle:checked ~ .teacher-filter-backdrop {
        opacity: 1;
        pointer-events: auto;
    }
}

.whatsapp-ask-toggle {
    position: fixed;
    right: 0;
    bottom: 112px;
    z-index: 95;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    min-height: 44px;
    padding: 8px 10px 8px 12px;
    border: 1px solid rgba(22, 163, 74, .28);
    border-right: 0;
    border-radius: 10px 0 0 10px;
    background: #25d366;
    color: #073b22;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .2);
    cursor: pointer;
}

.whatsapp-ask-toggle span,
.whatsapp-ask-head span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #fff;
    color: #16a34a;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0;
}

.whatsapp-ask-toggle svg {
    display: block;
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.whatsapp-ask-drawer {
    position: fixed;
    right: 0;
    bottom: 18px;
    z-index: 100;
    width: min(280px, calc(100vw - 32px));
    padding: 10px;
    border: 2px solid #22c55e;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .22);
    transform: translateX(100%);
    transition: transform 260ms ease;
}

.whatsapp-ask-drawer.is-open {
    transform: translateX(-16px);
}

.whatsapp-ask-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: #065f46;
}

.whatsapp-ask-head strong {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 900;
}

.whatsapp-ask-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid #86efac;
    border-radius: 999px;
    background: #f0fdf4;
    color: #22c55e;
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.whatsapp-ask-drawer textarea {
    width: 100%;
    min-height: 58px;
    resize: vertical;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    padding: 9px;
    color: #0f172a;
    font: inherit;
    font-size: 13px;
}

.whatsapp-ask-send {
    width: 100%;
    min-height: 38px;
    margin-top: 10px;
    border: 0;
    border-radius: 5px;
    background: #25d366;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
}

.whatsapp-ask-send:hover {
    background: #16a34a;
}

.exam-ask-toggle {
    position: fixed;
    right: 0;
    bottom: 172px;
    z-index: 95;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 8px 10px 8px 12px;
    border: 1px solid rgba(37, 99, 235, .24);
    border-right: 0;
    border-radius: 10px 0 0 10px;
    background: #2563eb;
    color: #fff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .2);
    cursor: pointer;
    width: 54px;
    max-width: min(280px, calc(100vw - 24px));
    overflow: hidden;
    transition: transform 260ms cubic-bezier(.2, .8, .2, 1), box-shadow 240ms ease, background 240ms ease;
    white-space: nowrap;
}

.exam-ask-toggle.is-expanded,
.exam-ask-toggle:hover,
.exam-ask-toggle:focus-visible {
    box-shadow: 0 18px 42px rgba(37, 99, 235, .28);
    width: min(280px, calc(100vw - 24px));
}

.exam-ask-toggle.is-nudging {
    transform: translateX(-50px);
}

.exam-ask-toggle span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #fff;
    color: #2563eb;
    font-size: 14px;
    font-weight: 900;
}

.exam-ask-toggle strong {
    font-size: 13px;
    font-weight: 900;
    line-height: 1.15;
}

@media (max-width: 720px) {
    .exam-ask-toggle {
        top: calc(50% - 8px);
        bottom: auto;
    }

    .whatsapp-ask-toggle {
        top: calc(50% + 42px);
        bottom: auto;
    }
}

.exam-ask-drawer {
    position: fixed;
    right: 0;
    bottom: 18px;
    z-index: 100;
    width: min(320px, calc(100vw - 32px));
    padding: 14px;
    border: 1px solid #bfdbfe;
    border-top: 3px solid #2563eb;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .22);
    transform: translateX(100%);
    transition: transform 260ms ease;
}

.exam-ask-drawer.is-open {
    transform: translateX(-16px);
}

.exam-ask-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.exam-ask-head strong {
    color: #0f172a;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.2;
}

.exam-ask-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.exam-ask-options {
    display: grid;
    gap: 8px;
}

.exam-ask-options label,
.exam-ask-consent {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 0;
    padding: 9px 10px;
    border: 1px solid #dbeafe;
    border-radius: 7px;
    background: #f8fbff;
    color: #0f172a;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.exam-ask-options input,
.exam-ask-consent input {
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: #2563eb;
}

.exam-ask-contact {
    display: grid;
    gap: 9px;
    margin-top: 12px;
}

.exam-ask-contact[hidden] {
    display: none;
}

.exam-ask-contact > label:not(.exam-ask-consent) {
    color: #475569;
    font-size: 12px;
    font-weight: 900;
}

.exam-ask-contact input[type="tel"] {
    width: 100%;
    min-height: 40px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    padding: 8px 10px;
    color: #0f172a;
    font: inherit;
}

.exam-ask-consent {
    background: #fff;
    color: #334155;
    font-weight: 700;
    line-height: 1.3;
}

.exam-ask-send {
    min-height: 40px;
    border: 0;
    border-radius: 7px;
    background: #ff7a1a;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.exam-ask-send:disabled {
    opacity: .72;
    cursor: wait;
}

.exam-ask-status {
    min-height: 18px;
    margin: 0;
    color: #2563eb;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
}

.profile-content-nav-section {
    width: min(1180px, calc(100% - 40px));
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
    padding-top: 28px;
    padding-bottom: 0;
}

.profile-content-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.profile-content-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 14px;
    border: 1px solid #dbeafe;
    border-radius: 7px;
    background: #fff;
    color: #0f3768;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

.profile-content-nav a.active {
    border-color: #ff7a1a;
    background: #ff7a1a;
    color: #fff;
}

.profile-content-page {
    width: min(1180px, calc(100% - 40px));
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
    padding-top: 18px;
    padding-bottom: 0;
}

.profile-content-page .content-panel {
    max-width: none;
}

.profile-blocks {
    display: grid;
    gap: 22px;
    margin-top: 18px;
}

.profile-block {
    border-radius: 8px;
    padding: clamp(22px, 4vw, 42px);
}

.profile-block-plain {
    padding-inline: 0;
}

.profile-block-soft {
    background: #f8fbff;
    border: 1px solid #dbeafe;
}

.profile-block-accent {
    background: #0f3768;
    color: #fff;
}

.profile-block-accent p {
    color: rgba(255, 255, 255, .82);
}

.profile-block-hero-inner,
.profile-block-split-inner,
.profile-block-cta-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr);
    gap: clamp(20px, 4vw, 42px);
    align-items: center;
}

.profile-block-layout-image-left .profile-block-split-inner {
    grid-template-columns: minmax(260px, .9fr) minmax(0, 1.1fr);
}

.profile-block-cta-inner {
    grid-template-columns: minmax(0, 1fr) auto;
}

.profile-block h2 {
    margin: 0 0 12px;
    color: inherit;
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1.1;
}

.profile-block h3 {
    margin: 0 0 8px;
    color: #0f172a;
    font-size: 18px;
    line-height: 1.25;
}

.profile-block p {
    margin: 0;
    color: #475569;
    line-height: 1.7;
}

.profile-block-header {
    max-width: 760px;
    margin-bottom: 18px;
}

.profile-block-image,
.profile-block-card-image,
.profile-block-gallery-image {
    width: 100%;
    display: block;
    border-radius: 8px;
    object-fit: cover;
    background: #edf2f7;
}

.profile-block-image {
    aspect-ratio: 4 / 3;
}

.profile-block-card-grid,
.profile-block-gallery,
.profile-block-steps,
.profile-block-process-grid,
.profile-block-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.profile-block-card-grid.two-by-two,
.profile-block-gallery.two-by-two,
.profile-block-steps.two-by-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.profile-block-card-grid article,
.profile-block-process-grid article,
.profile-block-tabs article,
.profile-block-steps li,
.profile-block-faq details {
    border: 1px solid #dbeafe;
    border-radius: 8px;
    padding: 16px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .06);
}

.profile-block-process-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    padding: 22px;
}

.profile-block-process-grid article {
    border: 0;
    border-right: 1px solid #e2e8f0;
    border-radius: 0;
    box-shadow: none;
    padding: 16px 18px;
}

.profile-block-process-grid article:last-child {
    border-right: 0;
}

.profile-block-process-grid article > span {
    display: block;
    margin-bottom: 22px;
    color: transparent;
    -webkit-text-stroke: 1px #315466;
    font-size: clamp(42px, 5vw, 64px);
    font-weight: 900;
    line-height: 1;
}

.profile-block-about-split,
.profile-block-testimonial-split {
    display: grid;
    grid-template-columns: minmax(260px, .9fr) minmax(0, 1.1fr);
    gap: clamp(24px, 5vw, 56px);
    align-items: center;
}

.profile-block-image-stack {
    display: grid;
    gap: 14px;
}

.profile-block-image-stack .profile-block-image:first-child {
    aspect-ratio: 4 / 5;
}

.profile-block-image-stack .profile-block-image:nth-child(2) {
    width: min(72%, 360px);
    margin-top: -120px;
    margin-left: auto;
    border: 10px solid #fff;
    box-shadow: 0 18px 36px rgba(15, 23, 42, .16);
}

.profile-block-feature-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 28px;
    margin-top: 22px;
}

.profile-block-feature-list > div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
}

.profile-block-feature-list > div > span {
    color: #0f766e;
    font-weight: 900;
}

.profile-block-tabs {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.profile-block-testimonial-image {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 8px;
}

.profile-block-card-image {
    aspect-ratio: 16 / 10;
    margin-bottom: 14px;
}

.profile-block-steps {
    padding: 0;
    list-style: none;
}

.profile-block-steps li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
}

.profile-block-steps li > span {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 999px;
    background: #ff7a1a;
    color: #fff;
    font-weight: 900;
}

.profile-block-faq {
    display: grid;
    gap: 10px;
}

.profile-block-faq summary {
    cursor: pointer;
    color: #0f172a;
    font-weight: 900;
}

.profile-block-faq p {
    margin-top: 10px;
}

.profile-block-gallery figure {
    margin: 0;
}

.profile-block-gallery-image {
    aspect-ratio: 4 / 3;
}

.profile-block-gallery figcaption {
    margin-top: 8px;
    color: #334155;
    font-weight: 800;
}

@media (max-width: 820px) {
    .profile-block-hero-inner,
    .profile-block-split-inner,
    .profile-block-layout-image-left .profile-block-split-inner,
    .profile-block-cta-inner,
    .profile-block-about-split,
    .profile-block-testimonial-split,
    .profile-block-process-grid,
    .profile-block-card-grid,
    .profile-block-card-grid.two-by-two,
    .profile-block-gallery,
    .profile-block-gallery.two-by-two,
    .profile-block-steps,
    .profile-block-steps.two-by-two,
    .profile-block-tabs {
        grid-template-columns: 1fr;
    }

    .profile-block-process-grid article {
        border-right: 0;
        border-bottom: 1px solid #e2e8f0;
    }

    .profile-block-process-grid article:last-child {
        border-bottom: 0;
    }

    .profile-block-feature-list {
        grid-template-columns: 1fr;
    }

    .profile-block-plain {
        padding-inline: 0;
    }
}

@media (max-width: 720px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden !important;
    }

    main:has(.institution-identity-hero) {
        position: relative;
        left: 0;
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
        overscroll-behavior-x: none;
        touch-action: pan-y;
    }

    main:has(.institution-identity-hero) .section {
        width: calc(100% - 28px);
        max-width: calc(100% - 28px);
        margin-right: auto;
        margin-left: auto;
        padding-right: 0;
        padding-left: 0;
    }

    main:has(.institution-identity-hero) .content-panel,
    main:has(.institution-identity-hero) .prose,
    main:has(.institution-identity-hero) .prose *,
    main:has(.institution-identity-hero) .quick-facts,
    main:has(.institution-identity-hero) .taxonomy-grid,
    main:has(.institution-identity-hero) .taxonomy-grid article,
    main:has(.institution-identity-hero) .taxonomy-grid article div {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    body {
        padding-bottom: calc(78px + env(safe-area-inset-bottom)) !important;
    }

    .site-footer {
        padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important;
    }

    .mobile-bottom-nav {
        display: grid !important;
    }
}
