/* =====================================================================
   uchiezici.com – тема на сайта върху Bootstrap 5.3
   Цветовете и шрифтът са в :root.
   ===================================================================== */

@font-face {
    font-family: "Raleway";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/raleway-cyrillic-wght-normal.woff2") format("woff2-variations");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "Raleway";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/raleway-latin-wght-normal.woff2") format("woff2-variations");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    --site-font: "Raleway", system-ui, sans-serif;
    --site-ink: #000;
    --site-text: #333;
    --site-muted: #666;
    --site-green: #00a12d;
    --site-green-dark: #008925;
    --site-green-deep: #177430;
    --site-orange: #ef8e34;
    --site-orange-dark: #e07a1c;
    --site-yellow: #ffce00;
    --site-bg: #f7f9fc;
    --site-field: #f1f2f6;
    --site-line: #d9d9d9;
    --site-shadow: 0 0 15px rgba(0, 0, 0, .15);

    --bs-body-font-family: var(--site-font);
    --bs-body-color: var(--site-ink);
    --bs-link-color: var(--site-ink);
    --bs-link-color-rgb: 0, 0, 0;
    --bs-link-hover-color: var(--site-orange);
    --bs-link-hover-color-rgb: 239, 142, 52;
}

html:has(body.site),
body.site {
    overflow-x: clip;
    font-weight: 400;
}

body.is-home {
    background: var(--site-bg);
}

.site a {
    text-decoration: none;
    transition: color .2s;
}

@media (min-width: 1600px) {
    .site .container { max-width: 1420px; }
}

.site-skip {
    position: absolute;
    z-index: 1100;
    top: .5rem;
    left: .5rem;
    padding: .5rem 1rem;
    background: #fff;
}

.site-hp {
    position: absolute;
    left: -9999px;
}

/* ---------- Бутони ---------- */

.site-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 45px;
    padding: .5rem 1.75rem;
    border: 0;
    border-radius: 30px;
    background: var(--site-green);
    color: #fff;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.2;
    transition: background-color .2s, color .2s;
}

.site .site-btn:hover {
    color: #fff;
}

.site-btn .bi-arrow-right {
    font-size: 1.25rem;
    -webkit-text-stroke: .5px;
}

.site-btn-green:hover { background: var(--site-green-dark); }

.site-btn-orange { background: var(--site-orange); }
.site-btn-orange:hover { background: var(--site-orange-dark); }

.site-btn-lg {
    min-height: 50px;
    padding: .625rem 2rem;
    font-size: 1.25rem;
}

/* ---------- Ленти ---------- */

.site-announcement {
    padding: .5rem 1rem;
    background: var(--site-green-deep);
    color: #fff;
    font-weight: 600;
    text-align: center;
}

.site-preview-bar {
    position: relative;
    z-index: 1040;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .5rem 1rem;
    background: #1f2430;
    color: #fff;
    font-size: .875rem;
}

.site-preview-bar a {
    color: var(--site-orange);
    font-weight: 700;
}

/* ---------- Хедър ---------- */

.site-header {
    position: relative;
    z-index: 1030;
    background: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, .09);
}

.site-header-inner {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 90px;
}

.site-logo {
    flex-shrink: 0;
    margin-right: auto;
    color: var(--site-ink);
    font-size: 1.5rem;
    font-weight: 700;
}

.site-logo img {
    display: block;
    width: auto;
    height: 60px;
}

.site-nav {
    flex: 1;
}

.site-nav ul {
    display: flex;
    justify-content: center;
    gap: clamp(1.25rem, 2.6vw, 2.5rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-nav a {
    color: var(--site-ink);
    font-size: 1.125rem;
}

.site .site-nav a:hover,
.site .site-nav a.is-current {
    color: var(--site-orange);
}

.site-header-cta {
    min-height: 40px;
    padding: .375rem 1.25rem;
}

.site-header-cta .bi {
    font-size: 1rem;
    transform: scaleX(-1);
}

.site-burger {
    display: grid;
    gap: 5px;
    width: 44px;
    height: 44px;
    place-content: center;
    padding: 0;
    border: 0;
    background: none;
}

.site-burger span {
    display: block;
    width: 26px;
    height: 2px;
    border-radius: 2px;
    background: var(--site-ink);
}

/* на началната страница хедърът е прозрачен върху снимката */
@media (min-width: 1200px) {
    .is-home .site-header {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        padding: 20px 0;
        background: transparent;
        box-shadow: none;
    }

    .is-home .site-preview-bar ~ .site-header,
    .is-home .site-announcement ~ .site-header {
        position: relative;
        margin-bottom: -130px;
    }

    .is-home .site-nav a,
    .is-home .site-logo { color: #fff; }
}

@media (max-width: 575.98px) {
    .site-header-inner { min-height: 76px; }
    .site-logo img { height: 46px; }
}

/* мобилно меню */
.site-offcanvas {
    --bs-offcanvas-width: min(340px, 86vw);
    background: var(--site-bg);
}

.site-offcanvas-logo {
    height: 44px;
}

.site-offcanvas .offcanvas-body {
    display: flex;
    flex-direction: column;
}

.site-offcanvas-nav {
    display: grid;
}

.site-offcanvas-nav a {
    padding: .875rem 0;
    border-bottom: 1px solid var(--site-line);
    font-size: 1.125rem;
}

.site .site-offcanvas-nav a.is-current {
    color: var(--site-orange);
}

/* ---------- Начало (слайдер) ---------- */

.site-hero {
    position: relative;
    overflow: hidden;
    background: var(--site-green-deep);
}

.site-hero .carousel-item {
    position: relative;
    min-height: clamp(520px, 72vw, 960px);
}

.site-hero-media,
.site-hero-media :is(img, video, iframe) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
}

.site-hero .focus-left .site-hero-media img { object-position: left center; }
.site-hero .focus-right .site-hero-media img { object-position: right center; }

/* зеленото було върху снимката */
.site-hero-media::after {
    position: absolute;
    inset: 0;
    background: rgba(13, 84, 40, .55);
    content: "";
}

.site-hero-content {
    position: relative;
    z-index: 1;
    padding-top: clamp(4rem, 12vw, 15rem);
    padding-bottom: clamp(9rem, 18vw, 20rem);
    color: #fff;
    text-align: center;
}

.site-hero-content :is(h1, h2) {
    max-width: 1250px;
    margin: 0 auto 1.25rem;
    font-size: clamp(2.25rem, 5vw, 4.375rem);
    font-weight: 700;
    line-height: 1.15;
}

.site-hero-content :is(h1, h2) span {
    color: var(--site-orange);
}

.site-hero-content p {
    max-width: 600px;
    margin: 0 auto 2rem;
    font-size: 1.125rem;
    font-weight: 500;
}

.site-hero .carousel-indicators {
    bottom: 7rem;
}

@media (min-width: 1200px) {
    .site-hero {
        border-bottom-right-radius: 30px;
        border-bottom-left-radius: 30px;
    }
}

/* ---------- Езиците ---------- */

.site-languages {
    position: relative;
    z-index: 2;
    margin-top: -100px;
}

.site-languages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
    gap: 1.5rem 2%;
}

.site-language {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 25px;
    border-radius: 5px;
    background: center / cover no-repeat;
    color: #fff;
}

.site-language::before {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .15);
    content: "";
    transition: background-color .3s;
}

.site-language:hover::before {
    background: rgba(0, 0, 0, .3);
}

.site-language > * {
    position: relative;
}

.site-language-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.site-language h2 {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 500;
    line-height: .9;
}

.site-language-head img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
}

.site-language .site-btn {
    margin-top: 1.5rem;
    padding: .5rem 2rem;
}

@media (max-width: 1199.98px) {
    .site-languages { margin-top: 2rem; }
    .site-language-head img { width: 50px; height: 50px; }
}

/* ---------- Защо да изберете нас ---------- */

.site-why {
    padding: clamp(3rem, 6vw, 4rem) 0 clamp(3rem, 6vw, 4rem);
    background: var(--site-bg);
}

.site-why-media {
    position: relative;
    max-width: 475px;
    margin: 0 auto;
}

.site-why-main {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    border-radius: 50%;
    object-fit: cover;
}

.site-why-second {
    position: absolute;
    top: 0;
    right: -12%;
    width: 45%;
    aspect-ratio: 3 / 4;
    border: 8px solid #fff;
    border-radius: 15px;
    object-fit: cover;
}

.site-eyebrow {
    display: block;
    color: var(--site-green);
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
}

.site-why-title {
    margin: 1rem 0 2rem;
    font-size: clamp(2rem, 3vw, 2.5rem);
    font-weight: 700;
    line-height: 1.05;
}

.site-why p {
    margin-bottom: 1.5rem;
    color: var(--site-muted);
}

.site .site-why-lead {
    color: var(--site-ink);
    font-size: clamp(1.125rem, 1.6vw, 1.375rem);
    font-weight: 600;
}

.site-why-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem 2%;
    margin: 0 0 2rem;
    padding: 0;
    list-style: none;
}

.site-why-list li {
    display: flex;
    gap: .75rem;
}

.site-why-icon {
    display: grid;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 50%;
    background: rgba(0, 161, 45, .1);
    color: var(--site-green);
    font-size: 1.125rem;
}

.site-why-list li:nth-child(2n) .site-why-icon {
    background: rgba(239, 142, 52, .14);
    color: var(--site-orange);
}

.site-why-list strong {
    display: block;
    font-weight: 600;
}

.site-why-list small {
    display: block;
    color: var(--site-muted);
    font-size: .875rem;
}

@media (max-width: 991.98px) {
    .site-why-second { right: 0; }
}

/* ---------- Секции ---------- */

.site-section {
    padding: clamp(3rem, 6vw, 4rem) 0;
    background: #fff;
}

.site-section-head {
    max-width: 900px;
    margin: 0 auto 1.5rem;
    text-align: center;
}

.site-section-head h2 {
    margin: 0 0 2rem;
    font-size: clamp(2rem, 3vw, 2.5rem);
    font-weight: 700;
}

.site-section-head p {
    margin: -1rem 0 0;
}

/* ---------- Популярни курсове ---------- */

.site-tabs {
    display: flex;
    margin-bottom: 1.5rem;
}

.site-tabs button {
    flex: 1;
    height: 55px;
    border: 0;
    border-radius: 5px;
    background: #f4f4f4;
    color: var(--site-ink);
    font-size: clamp(1rem, 1.5vw, 1.125rem);
    font-weight: 600;
}

.site-tabs button.active {
    background: var(--site-green);
    color: #fff;
}

.site-course {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 15px;
    border-radius: 15px;
    background: #fff;
    box-shadow: var(--site-shadow);
}

.site-course-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    border-radius: 10px;
    background: var(--site-bg);
}

.site-course-media > img:first-child {
    width: 100%;
    height: 100%;
    border-radius: 10px;
    object-fit: cover;
}

.site-course-flag {
    position: absolute;
    right: 30px;
    bottom: -12px;
    width: 50px;
    height: 50px;
    border: 5px solid #fff;
    border-radius: 50%;
    background: #fff;
}

.site-course-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1.25rem 15px 15px;
}

.site-course-price {
    margin-bottom: .75rem;
    font-size: 1.125rem;
    font-weight: 700;
}

.site-course-price span {
    color: var(--site-orange);
}

.site-course h3 {
    margin-bottom: .75rem;
    font-size: 1.5rem;
    font-weight: 700;
}

.site-course-excerpt {
    font-size: .9375rem;
}

.site-course-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .25rem 1rem;
    margin: auto 0 .75rem;
    padding: 0;
    color: var(--site-text);
    list-style: none;
}

.site-course-meta .bi,
.site-course-facts .bi {
    margin-right: .375rem;
    color: var(--site-orange);
}

.site-course-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: auto;
}

.site-course-meta + .site-course-foot {
    margin-top: 0;
}

.site-course-foot .site-btn {
    margin-left: auto;
    padding: .5rem 1.75rem;
}

.site-stars {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    color: var(--site-text);
}

.site-stars .bi {
    color: var(--site-yellow);
}

.site-stars .bi:first-of-type {
    margin-left: .25rem;
}

/* ---------- Предстоящ курс с брояч (Админ → Брояч) ---------- */

.site-cd {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    overflow: hidden;
    border-radius: 24px;
    background:
        radial-gradient(circle at 100% 0, rgba(239, 142, 52, .22) 0, rgba(239, 142, 52, 0) 38%),
        linear-gradient(135deg, #1b7d36 0%, var(--site-green-deep) 55%, #0f5323 100%);
    box-shadow: 0 24px 60px rgba(23, 116, 48, .25);
    color: #fff;
}

/* снимка с „календарче“ */
.site-cd-media {
    position: relative;
    min-height: 100%;
    background: #0f5323 center / cover no-repeat;
}

.site-cd-media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(15, 83, 35, 0) 55%, rgba(15, 83, 35, .55) 100%);
    content: "";
}

.site-cd-date {
    position: absolute;
    z-index: 1;
    top: 1.5rem;
    left: 1.5rem;
    display: grid;
    min-width: 92px;
    padding: .75rem .875rem;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .2);
    color: var(--site-ink);
    line-height: 1;
    text-align: center;
}

.site-cd-date strong {
    color: var(--site-orange);
    font-size: 2.5rem;
    font-weight: 800;
}

.site-cd-date span {
    margin-top: .25rem;
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
}

.site-cd-date small {
    margin-top: .5rem;
    padding-top: .5rem;
    border-top: 1px solid #eef0f4;
    color: var(--site-muted);
    font-size: .8125rem;
}

.site-cd-flag {
    position: absolute;
    z-index: 1;
    right: 1.25rem;
    bottom: 1.25rem;
    width: 48px;
    height: 48px;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .25);
    object-fit: cover;
}

.site-cd-body {
    padding: clamp(1.75rem, 4vw, 3rem);
}

.site-cd-label {
    display: inline-flex;
    align-items: center;
    gap: .625rem;
    margin-bottom: 1rem;
    padding: .375rem .875rem;
    border-radius: 30px;
    background: rgba(255, 255, 255, .12);
    font-size: .875rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

/* пулсираща точка – „на живо“ */
.site-cd-pulse {
    position: relative;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--site-orange);
}

.site-cd-pulse::after {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: var(--site-orange);
    animation: site-cd-pulse 1.8s ease-out infinite;
    content: "";
}

@keyframes site-cd-pulse {
    from { opacity: .7; transform: scale(1); }
    to { opacity: 0; transform: scale(3); }
}

.site-cd h2 {
    margin: 0 0 .75rem;
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
    font-weight: 700;
    line-height: 1.15;
}

.site-cd-text {
    max-width: 560px;
    margin: 0 0 1.25rem;
    color: rgba(255, 255, 255, .85);
    font-size: 1.0625rem;
    line-height: 1.6;
}

.site-cd-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.5rem;
    margin: 0 0 1.75rem;
    padding: 0;
    color: rgba(255, 255, 255, .9);
    font-size: .9375rem;
    list-style: none;
}

.site-cd-meta .bi {
    margin-right: .4rem;
    color: #ffc58c;
}

/* броячът */
.site-cd-timer {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    max-width: 520px;
}

.site-cd-unit {
    position: relative;
    padding: 1rem .5rem .75rem;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
    color: var(--site-green-deep);
    text-align: center;
}

.site-cd-unit + .site-cd-unit::before {
    position: absolute;
    top: 50%;
    left: -.5rem;
    color: rgba(255, 255, 255, .55);
    font-size: 1.25rem;
    font-weight: 700;
    transform: translate(-50%, -60%);
    content: ":";
}

.site-cd-unit strong {
    display: block;
    font-size: clamp(1.875rem, 3.6vw, 2.625rem);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.site-cd-unit span {
    display: block;
    margin-top: .375rem;
    color: var(--site-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

/* свободни места */
.site-cd-seats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem 1rem;
    max-width: 520px;
    margin-top: 1.5rem;
    font-size: .9375rem;
}

.site-cd-seats-bar {
    flex: 1 1 180px;
    height: 8px;
    overflow: hidden;
    border-radius: 8px;
    background: rgba(255, 255, 255, .18);
}

.site-cd-seats-bar span {
    display: block;
    height: 100%;
    border-radius: 8px;
    background: linear-gradient(90deg, #ffc58c, var(--site-orange));
}

.site-cd-seats strong {
    color: #ffc58c;
}

.site-cd-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.75rem;
    margin-top: 2rem;
}

.site-cd-more {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.site .site-cd-more:hover {
    color: #ffc58c;
}

.site-cd-more .bi {
    transition: transform .2s;
}

.site-cd-more:hover .bi {
    transform: translateX(4px);
}

@media (max-width: 991.98px) {
    .site-cd {
        grid-template-columns: 1fr;
    }

    .site-cd-media {
        min-height: 240px;
    }

    .site-cd-media::after {
        background: linear-gradient(180deg, rgba(15, 83, 35, 0) 55%, rgba(15, 83, 35, .5) 100%);
    }
}

@media (max-width: 575.98px) {
    .site-cd-timer {
        gap: .5rem;
    }

    .site-cd-unit {
        padding: .75rem .25rem .625rem;
    }

    .site-cd-unit + .site-cd-unit::before {
        display: none;
    }

    .site-cd-unit span {
        font-size: .625rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-cd-pulse::after { animation: none; }
}

/* ---------- Вътрешни страници ---------- */

.site-main {
    min-height: 50vh;
    padding: 2rem 0 4rem;
}

.site-main h1 {
    margin-bottom: 1.5rem;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    font-weight: 700;
}

.site-main nav[aria-label="Навигация"] ol {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 1.5rem;
    padding: 0;
    color: var(--site-muted);
    font-size: .9375rem;
    list-style: none;
}

.site-main nav[aria-label="Навигация"] [aria-current] {
    color: var(--site-orange);
}

.site-main nav[aria-label="Навигация"] li + li::before {
    margin-right: .5rem;
    content: "/";
}

.site-course-group + .site-course-group {
    margin-top: 3rem;
}

.site-course-group-title {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1.5rem;
    font-size: 1.75rem;
    font-weight: 700;
}

.site-course-group-title img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
}

.site-course-cover {
    width: 100%;
    margin-bottom: 1.5rem;
    border-radius: 15px;
}

.site-course-lead {
    font-size: 1.25rem;
    font-weight: 600;
}

.site-course-box {
    position: sticky;
    top: 1.5rem;
    padding: 1.75rem;
    border-radius: 15px;
    background: #fff;
    box-shadow: var(--site-shadow);
}

.site-course-box-lang {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 700;
}

.site-course-box-lang img {
    width: 32px;
    height: 32px;
    border-radius: 50%;
}

.site-course-box .site-course-price {
    font-size: 1.5rem;
}

.site-course-facts {
    display: grid;
    gap: .5rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.site-related {
    margin-top: 4rem;
}

.site-related h2 {
    margin-bottom: 1.5rem;
    font-size: 1.75rem;
    font-weight: 700;
}

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

/* ---------- Футър ---------- */

.site-footer {
    position: relative;
    /* винаги по-голямо от височината на вълната (.site-footer-wave), за да не застъпва съдържанието */
    margin-top: calc(clamp(60px, 8vw, 110px) + 1.5rem);
    padding-top: 3.5rem;
    background: var(--site-bg);
}

/* вълната над футъра: светло зелено и светло оранжево, после цвета на футъра */
.site-footer-wave {
    position: absolute;
    bottom: 100%;
    left: 0;
    display: block;
    width: 100%;
    height: clamp(60px, 8vw, 110px);
    margin-bottom: -1px;
    background: #fff; /* еднакво на всички страници, и на началната със синкавия фон */
    box-shadow: 0 -2rem 0 #fff; /* бялата ивица над вълната – отстоянието от съдържанието */
}

.site-footer-wave .is-green { fill: #d9f0df; }   /* светло зелено от логото */
.site-footer-wave .is-orange { fill: #fde3c8; }  /* светло оранжево */
.site-footer-wave .is-base { fill: var(--site-bg); }

/* на светлия фон полето за имейл е бяло */
.site-footer .site-subscribe .form-control {
    border-color: #e6e9ef;
    background: #fff;
}

.site-footer-logo img {
    display: block;
    width: auto;
    height: 60px;
    margin-bottom: 1rem;
}

.site-footer p {
    font-size: .9375rem;
}

.site-footer-contact {
    display: block;
}

.site-social {
    display: flex;
    gap: .75rem;
    margin-top: 1rem;
}

.site-social a {
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 50%;
    background: var(--site-ink);
    color: #fff;
    font-size: .8125rem;
}

.site .site-social a:hover {
    background: var(--site-orange);
    color: #fff;
}

.site-footer-title {
    margin-bottom: 1.5rem;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--site-line);
    font-size: 1.375rem;
    font-weight: 600;
}

.site-footer-title.is-plain {
    border: 0;
}

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

.site-footer-links li {
    margin-bottom: 1rem;
}

.site-subscribe .form-control {
    height: 50px;
    margin-bottom: 1rem;
    padding: 1rem 1.5rem;
    border: 1px solid var(--site-field);
    border-radius: 5px;
    background: var(--site-field);
}

.site-subscribe .form-control:focus {
    border-color: var(--site-orange);
    box-shadow: none;
}

.site-subscribe-consent {
    display: flex;
    gap: .5rem;
    margin-bottom: 1rem;
    font-size: .875rem;
}

.site-subscribe-consent input {
    flex-shrink: 0;
    margin-top: .2rem;
}

.site-subscribe-consent a {
    text-decoration: underline;
}

.site-subscribe .site-btn {
    min-width: 175px;
}

.site-error {
    color: #c62828;
    font-size: .875rem;
}

.site-footer-done {
    color: var(--site-green);
    font-weight: 600;
}

.site-footer-done .bi {
    margin-right: .5rem;
}

.site-footer-bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .5rem 2rem;
    margin-top: 3rem;
    padding: 25px 0;
    border-top: 1px solid var(--site-line);
    font-size: .875rem;
}

@media (max-width: 575.98px) {
    .site-footer-bottom {
        flex-direction: column;
        text-align: center;
    }
}

/* ---------- reCAPTCHA ---------- */

.grecaptcha-badge { visibility: hidden; }

.captcha-note {
    color: var(--site-muted);
    font-size: .75rem;
}

/* ---------- „За мен“ ---------- */

@font-face {
    font-family: "Marck Script";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/marck-script-cyrillic-400-normal.woff2") format("woff2");
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: "Marck Script";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/marck-script-latin-400-normal.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.site-about {
    padding: 1.5rem 0 1rem;
}

.site-about-photo {
    position: relative;
    max-width: 475px;
    margin: 0 auto;
}

.site-about-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    border-radius: 50%;
    object-fit: cover;
}

/* значката „12 години опит“: бял кръг с пунктирана зелена рамка вътре */
.site-about-badge {
    position: absolute;
    right: -4%;
    bottom: 0;
    display: grid;
    width: 40%;
    aspect-ratio: 1;
    place-content: center;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 10px 25px rgba(0, 0, 0, .12);
    font-size: clamp(.875rem, 1.3vw, 1rem);
    font-weight: 600;
    line-height: 1.1;
    text-align: center;
}

.site-about-badge::before {
    position: absolute;
    inset: 14%;
    border: 1px dashed var(--site-green);
    border-radius: 50%;
    content: "";
}

.site-about-badge strong {
    display: block;
    color: var(--site-green);
    font-size: clamp(2rem, 3.4vw, 2.75rem);
    font-weight: 800;
}

.site-main .site-about-name {
    margin-bottom: .25rem;
    color: var(--site-orange);
    font-family: "Marck Script", var(--site-font);
    font-size: clamp(2.75rem, 5.5vw, 4.5rem);
    font-weight: 400;
    line-height: 1.1;
}

.site-about-role {
    margin-bottom: 1.25rem;
    font-size: clamp(1.125rem, 1.6vw, 1.375rem);
    font-weight: 600;
}

.site-about p {
    line-height: 1.6;
}

.site-about-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 2rem;
    margin-top: 1rem;
}

.site-about-actions .site-social {
    margin: 0;
}

.site-social.is-green a {
    width: 32px;
    height: 32px;
    background: var(--site-green);
    font-size: 1rem;
}

/* карти за контакт */
.site-contact-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    gap: 1.5rem 2rem;
    margin-top: 3.5rem;
}

.site-contact-card {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    padding: 20px 40px;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 0 25px rgba(0, 0, 0, .08);
    color: var(--site-muted);
}

.site .site-contact-card:hover {
    color: var(--site-muted);
}

.site-contact-card strong {
    display: block;
    color: var(--site-ink);
    font-size: 1.125rem;
    font-weight: 600;
}

.site-contact-card-icon {
    display: grid;
    flex-shrink: 0;
    width: 62px;
    height: 62px;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 15px rgba(0, 0, 0, .12);
    color: var(--site-green);
    font-size: 1.5rem;
}

@media (max-width: 575.98px) {
    .site-contact-card { padding: 16px 20px; gap: 1rem; }
    .site-about-badge { right: 0; }
}

/* ---------- Контакти ---------- */

.site-contact-cards.is-first {
    margin: .5rem 0 3rem;
}

.site-contact-eyebrow {
    display: block;
    margin-bottom: .75rem;
    color: var(--site-green);
    font-size: 1.125rem;
}

.site-main .site-contact-title {
    margin-bottom: 1rem;
    font-size: clamp(2.25rem, 4vw, 3.75rem);
    font-weight: 700;
    line-height: 1.05;
}

.site-contact-lead,
.site-contact-note {
    color: var(--site-muted);
}

.site-contact-note {
    margin-top: 2rem;
}

/* формата: сиви полета с текст вътре, както в абонамента */
.site-form .form-control {
    min-height: 50px;
    padding: .75rem 1.5rem;
    border: 1px solid var(--site-field);
    border-radius: 5px;
    background: var(--site-field);
    color: var(--site-ink);
}

.site-form textarea.form-control {
    min-height: 250px;
    padding-top: 1rem;
}

.site-form .form-control::placeholder {
    color: var(--site-muted);
}

.site-form .form-control:focus {
    border-color: var(--site-orange);
    background: var(--site-field);
    box-shadow: none;
}

.site-form .form-control.is-invalid {
    border-color: #dc3545;
}

.site-form-subject {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1rem;
    padding: .75rem 1.25rem;
    border-radius: 5px;
    background: rgba(0, 161, 45, .08);
    color: var(--site-green-deep);
    font-weight: 600;
}

.site-check {
    display: flex;
    gap: .625rem;
    margin: 1.25rem 0 .5rem;
    color: var(--site-muted);
    font-size: .9375rem;
}

.site-check input {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: .15rem;
    accent-color: var(--site-green);
}

.site-check a {
    text-decoration: underline;
}

.site-form .captcha {
    margin: 1rem 0;
}

.site-form > .site-btn {
    margin-top: 1rem;
}

.site-form .site-btn .bi-send-fill {
    transform: rotate(-30deg);
}

.site-contact-done {
    padding: 3rem 2rem;
    border-radius: 10px;
    background: var(--site-bg);
    text-align: center;
}

.site-contact-done-icon {
    display: inline-grid;
    width: 70px;
    height: 70px;
    place-items: center;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: var(--site-green);
    color: #fff;
    font-size: 2rem;
}

.site-contact-done h2 {
    font-weight: 700;
}

/* ---------- Запиши се ---------- */

.site-register {
    max-width: 860px;
    margin: 0 auto 3.5rem;
}

.site-main .site-register-title {
    margin-bottom: .75rem;
    color: var(--site-orange);
    font-size: clamp(2.75rem, 6vw, 4.375rem);
    font-weight: 700;
    line-height: 1.05;
}

.site-register-lead {
    margin-bottom: 1.5rem;
    color: var(--site-text);
}

.site-form .form-select {
    min-height: 50px;
    padding: .75rem 3rem .75rem 1.5rem;
    border: 1px solid var(--site-field);
    border-radius: 5px;
    background-color: var(--site-field);
    background-position: right 1.25rem center;
    color: var(--site-ink);
    cursor: pointer;
}

.site-form .form-select.is-empty {
    color: var(--site-muted);
}

.site-form .form-select option,
.site-form .form-select optgroup {
    color: var(--site-ink);
}

.site-form .form-select:focus {
    border-color: var(--site-orange);
    box-shadow: none;
}

.site-form .form-select.is-invalid {
    border-color: #dc3545;
}

/* на телефон отстоянието между колоните е като полето на контейнера – иначе редът излиза извън екрана */
@media (max-width: 767.98px) {
    .site .row.g-5 { --bs-gutter-x: 1.5rem; }
}

/* ---------- Страница „Курсове“ ---------- */

.site-courses-head {
    max-width: 900px;
    margin-bottom: 2rem;
}

.site-main .site-courses-head h1 {
    margin-bottom: .75rem;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    font-weight: 500;
}

.site-courses-head p {
    margin: 0;
    font-size: 1.0625rem;
}

/* бутони за език */
.site-filter {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 2rem;
}

.site-filter button {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 46px;
    padding: .375rem 1.25rem;
    border: 1px solid #e3e6eb;
    border-radius: 30px;
    background: #fff;
    color: var(--site-ink);
    font-weight: 600;
    transition: background-color .2s, border-color .2s, color .2s;
}

.site-filter button:hover {
    border-color: var(--site-green);
}

.site-filter button.is-active {
    border-color: var(--site-green);
    background: var(--site-green);
    color: #fff;
}

.site-filter img {
    width: 24px;
    height: 24px;
    border-radius: 50%;
}

.site-filter span {
    display: inline-grid;
    min-width: 24px;
    height: 24px;
    place-items: center;
    padding: 0 .375rem;
    border-radius: 12px;
    background: var(--site-bg);
    color: var(--site-muted);
    font-size: .8125rem;
}

.site-filter .is-active span {
    background: rgba(255, 255, 255, .22);
    color: #fff;
}

/* карта на курс: повдигане, дата на старт върху снимката, текстът – най-много 4 реда */
.site-course {
    transition: transform .25s, box-shadow .25s;
}

.site-course:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .14);
}

.site-course-media {
    overflow: visible;
}

.site-course-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    padding: .3rem .75rem;
    border-radius: 30px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
    color: var(--site-ink);
    font-size: .8125rem;
    font-weight: 700;
}

.site-course-badge .bi {
    color: var(--site-green);
}

.site-course-excerpt {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.site-course h3 a {
    color: inherit;
}

.site-course h3 a:hover {
    color: var(--site-green);
}

/* допълнителният текст под курсовете */
.site-courses-text {
    max-width: 1100px;
    margin-top: 4.5rem;
}

.site-prose h2 {
    margin: 0 0 1rem;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 500;
}

.site-prose h3,
.site-prose h4 {
    margin: 1.75rem 0 .75rem;
    font-weight: 700;
}

.site-prose p,
.site-prose li {
    font-size: 1.0625rem;
    line-height: 1.6;
}

.site-prose a {
    color: var(--site-green);
    text-decoration: underline;
}

.site-prose a:hover {
    color: var(--site-orange);
}

.site-empty {
    padding: 3rem 1rem;
    border-radius: 10px;
    background: var(--site-bg);
    text-align: center;
}

/* на телефон бутоните за език са в един ред и се плъзгат настрани */
@media (max-width: 575.98px) {
    .site-filter {
        flex-wrap: nowrap;
        margin-right: calc(var(--bs-gutter-x) * -.5);
        padding-right: calc(var(--bs-gutter-x) * .5);
        overflow-x: auto;
        scrollbar-width: none;
    }

    .site-filter button {
        flex-shrink: 0;
        min-height: 42px;
        padding: .25rem 1rem;
    }
}

/* ---------- Страница на курс ---------- */

/* лента отгоре: снимката от началото под тъмнозелено було */
.site-course-hero {
    position: relative;
    padding: 1.75rem 0 3.5rem;
    background: var(--site-green-deep) center / cover no-repeat;
    color: #fff;
}

.site-course-hero::before {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(14, 64, 32, .92) 0%, rgba(14, 64, 32, .78) 60%, rgba(14, 64, 32, .6) 100%);
    content: "";
}

.site-course-hero .container {
    position: relative;
}

.site-course-hero nav[aria-label="Навигация"] ol {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 1.75rem;
    padding: 0;
    font-size: .9375rem;
    list-style: none;
}

.site-course-hero nav a { color: #fff; }
.site-course-hero nav [aria-current] { color: var(--site-orange); }
.site-course-hero nav li + li::before { margin-right: .5rem; opacity: .6; content: "/"; }

.site-course-hero h1 {
    margin-bottom: .75rem;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
    font-weight: 700;
}

.site-course-hero-price {
    margin-bottom: .25rem;
    color: var(--site-orange);
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    font-weight: 800;
}

.site-course-hero-price small {
    color: #fff;
    font-size: 1.125rem;
    font-weight: 500;
}

.site-course-hero-format {
    margin-bottom: 1rem;
    font-size: 1.375rem;
}

.site-course-hero-lead {
    max-width: 760px;
    margin-bottom: 1rem;
    opacity: .92;
}

.site-course-hero-rating {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
}

.site-course-hero-rating .site-stars { color: #fff; }

.site-course-page {
    padding-top: 2rem;
    padding-bottom: 1rem;
}

/* карта вдясно – качва се върху лентата и остава при превъртане */
.site-course-side {
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 992px) {
    .site-course-side {
        position: sticky;
        top: 1.5rem;
        margin-top: -14rem;
    }
}

.site-course-buy,
.site-course-card {
    padding: 1.5rem;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 10px 35px rgba(0, 0, 0, .1);
}

.site-course-buy-media {
    position: relative;
    margin-bottom: 1.75rem;
}

.site-course-buy-media > img:first-child {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    border-radius: 10px;
    object-fit: cover;
}

.site-course-buy-facts {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    margin: 0 0 1.25rem;
    padding: 0;
    color: var(--site-text);
    font-size: .9375rem;
    list-style: none;
}

.site-course-buy-facts .bi {
    margin-right: .375rem;
    color: var(--site-orange);
}

.site-course-card-title {
    margin-bottom: 1rem;
    font-size: 1.375rem;
    font-weight: 700;
}

.site-course-card p {
    margin: 0;
    color: var(--site-text);
    font-size: .9375rem;
    line-height: 1.65;
}

/* за кого: заглавието на сива лента, като на стария сайт */
.site-course-side .site-course-card:not(.site-teacher) .site-course-card-title {
    margin: -.25rem -.25rem 1rem;
    padding: .875rem 1rem;
    border-radius: 8px;
    background: #ececec;
    font-size: 1.125rem;
}

/* преподавател */
.site-teacher-head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.site-teacher-head img {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
}

.site-teacher-head strong {
    display: block;
    color: var(--site-orange);
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.2;
}

.site-teacher-head span {
    color: var(--site-text);
    font-size: .9375rem;
}

.site-teacher-link {
    display: inline-flex;
    gap: .375rem;
    margin-top: 1rem;
    color: var(--site-green);
    font-weight: 700;
}

/* умения */
.site-skills ul {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-skills li {
    display: flex;
    gap: .625rem;
    font-size: .9875rem;
}

.site-skills .bi {
    flex-shrink: 0;
    color: var(--site-green);
    font-size: 1.125rem;
    -webkit-text-stroke: .4px;
}

.site-course-content {
    margin-top: 2rem;
}

/* раздели и теми */
.site-course-sections {
    margin-top: 2.5rem;
}

.site-course-sections > h2 {
    margin-bottom: 1.25rem;
    font-size: 1.5rem;
    font-weight: 700;
}

.site-accordion {
    display: grid;
    gap: .875rem;
}

.site-accordion-item {
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .08);
}

.site-accordion-item > button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 1rem 1.25rem;
    border: 0;
    background: none;
    color: var(--site-ink);
    text-align: left;
}

.site-accordion-item > button strong {
    display: block;
    font-size: 1.0625rem;
    font-weight: 600;
}

.site-accordion-item > button small {
    display: flex;
    gap: .5rem;
    font-size: .875rem;
}

.site-accordion-item > button small span + span {
    padding-left: .5rem;
    border-left: 1px solid var(--site-line);
}

.site-accordion-item > button .bi {
    flex-shrink: 0;
    font-size: 1.25rem;
    -webkit-text-stroke: .5px;
    transition: transform .25s;
}

.site-accordion-item > button:not(.collapsed) .bi {
    transform: rotate(90deg);
}

.site-accordion-item > button:not(.collapsed) strong {
    color: var(--site-green);
}

.site-accordion-item > button:disabled {
    cursor: default;
}

.site-accordion-item > button:disabled .bi {
    visibility: hidden;
}

.site-accordion-item ol {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding: 0 1.25rem 1.25rem;
    border-top: 1px solid #f0f0f0;
    list-style: none;
}

.site-accordion-item ol li:first-child {
    margin-top: 1rem;
}

.site-accordion-item ol span {
    margin-right: .5rem;
    color: var(--site-green);
    font-weight: 600;
}

/* предимства / въпроси – разгъващи се редове в две колони */
.site-benefits {
    margin-top: 3.5rem;
    padding: clamp(3rem, 6vw, 4.5rem) 0;
    background: #eef6f0;
}

.site-benefits-head {
    max-width: 1000px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.site-benefits-label {
    display: block;
    color: var(--site-muted);
    font-size: .9375rem;
    font-weight: 500;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.site-benefits-head h2 {
    margin: .25rem 0 1rem;
    color: var(--site-green);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
}

.site-benefits-head p {
    margin: 0;
    color: var(--site-text);
}

.site-benefit {
    border-top: 1px solid #d6dfd8;
}

.col-lg-6 > .site-benefit:last-child {
    border-bottom: 1px solid #d6dfd8;
}

.site-benefit > button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 1.125rem 0;
    border: 0;
    background: none;
    color: var(--site-ink);
    font-size: 1.0625rem;
    text-align: left;
}

.site-benefit > button .bi {
    flex-shrink: 0;
    color: var(--site-green);
    transition: transform .25s;
    -webkit-text-stroke: .5px;
}

.site-benefit > button:not(.collapsed) {
    color: var(--site-green);
    font-weight: 600;
}

.site-benefit > button:not(.collapsed) .bi {
    transform: rotate(180deg);
}

.site-benefit p {
    margin: 0;
    padding: 0 2rem 1.25rem 0;
    color: var(--site-text);
}

@media (max-width: 991.98px) {
    .site-benefit:last-child { border-bottom: 0; }
    .row > .col-lg-6:last-child > .site-benefit:last-child { border-bottom: 1px solid #d6dfd8; }
}

.site-course-side-cards {
    gap: 1.5rem;
}

/* =====================================================================
   Отзиви (/otzivi)
   ===================================================================== */

/* --- горе: заглавие и обща оценка --- */
.site-tm-hero {
    position: relative;
    overflow: hidden;
    padding: 1.75rem 0 4.5rem;
    background:
        radial-gradient(circle at 92% 18%, rgba(239, 142, 52, .16) 0, rgba(239, 142, 52, 0) 32%),
        radial-gradient(circle at 6% 100%, rgba(0, 161, 45, .12) 0, rgba(0, 161, 45, 0) 38%),
        var(--site-bg);
}

.site-tm-hero nav[aria-label="Навигация"] ol {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0 0 2.25rem;
    padding: 0;
    color: var(--site-muted);
    font-size: .9375rem;
    list-style: none;
}

.site-tm-hero nav [aria-current] { color: var(--site-orange); }
.site-tm-hero nav li + li::before { margin-right: .5rem; content: "/"; }

.site-tm-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1rem;
    padding: .375rem 1rem;
    border-radius: 30px;
    background: rgba(0, 161, 45, .1);
    color: var(--site-green-deep);
    font-size: .9375rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.site-tm-hero h1 {
    margin-bottom: 1rem;
    font-size: clamp(2.25rem, 5vw, 3.75rem);
    font-weight: 700;
    line-height: 1.08;
}

.site-tm-lead {
    max-width: 560px;
    margin-bottom: 2rem;
    color: var(--site-text);
    font-size: 1.125rem;
    line-height: 1.65;
}

/* снимки на курсистите една върху друга */
.site-tm-faces {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    color: var(--site-text);
}

.site-tm-faces-stack {
    display: flex;
}

.site-tm-faces-stack .site-tm-avatar {
    border: 3px solid #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1);
}

.site-tm-faces-stack .site-tm-avatar + .site-tm-avatar {
    margin-left: -14px;
}

/* кръгла снимка или инициали */
.site-tm-avatar {
    display: inline-grid;
    flex-shrink: 0;
    width: var(--size);
    height: var(--size);
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: var(--site-green);
    color: #fff;
    font-size: calc(var(--size) * .36);
    font-weight: 700;
    line-height: 1;
}

.site-tm-avatar.is-orange { background: var(--site-orange); }

.site-tm-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* карта с общата оценка */
.site-tm-score {
    position: relative;
    padding: 2rem;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 20px 50px rgba(23, 116, 48, .12);
}

.site-tm-score::before {
    position: absolute;
    z-index: -1;
    inset: 18px -14px -14px 18px;
    border: 2px dashed rgba(239, 142, 52, .45);
    border-radius: 22px;
    content: "";
}

.site-tm-score-main {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #eef0f4;
}

.site-tm-score-main > strong {
    color: var(--site-green-deep);
    font-size: 4.25rem;
    font-weight: 800;
    line-height: 1;
}

.site-tm-score-main .site-stars {
    font-size: 1.375rem;
}

.site-tm-score-main span:not(.site-stars) {
    display: block;
    margin-top: .25rem;
    color: var(--site-muted);
    font-size: .9375rem;
}

.site-tm-bars {
    display: grid;
    gap: .625rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-tm-bars li {
    display: grid;
    grid-template-columns: 2.75rem 1fr 1.75rem;
    align-items: center;
    gap: .75rem;
    font-size: .9375rem;
}

.site-tm-bars li > span:first-child {
    color: var(--site-text);
    font-weight: 600;
}

.site-tm-bars .bi {
    color: var(--site-yellow);
    font-size: .8125rem;
}

.site-tm-bars li > span:last-child {
    color: var(--site-muted);
    text-align: right;
}

.site-tm-bar {
    height: 8px;
    overflow: hidden;
    border-radius: 8px;
    background: #eef0f4;
}

.site-tm-bar > span {
    display: block;
    height: 100%;
    border-radius: 8px;
    background: linear-gradient(90deg, var(--site-green), #5cc878);
}

/* --- отличените отзиви --- */
.site-tm-spotlight {
    position: relative;
    overflow: hidden;
    padding: clamp(3rem, 7vw, 5.5rem) 0;
    background: var(--site-green-deep);
    color: #fff;
}

.site-tm-spotlight::before,
.site-tm-spotlight::after {
    position: absolute;
    border-radius: 50%;
    content: "";
}

.site-tm-spotlight::before {
    top: -120px;
    right: -80px;
    width: 340px;
    height: 340px;
    background: rgba(255, 255, 255, .05);
}

.site-tm-spotlight::after {
    bottom: -160px;
    left: -100px;
    width: 380px;
    height: 380px;
    border: 40px solid rgba(239, 142, 52, .14);
}

.site-tm-spotlight .container {
    position: relative;
    z-index: 1;
}

.site-tm-spot {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: clamp(2rem, 5vw, 4.5rem);
    max-width: 1050px;
    margin: 0 auto;
}

.site-tm-spot-photo {
    position: relative;
}

.site-tm-spot-photo::before {
    position: absolute;
    inset: -14px;
    border: 3px solid var(--site-orange);
    border-radius: 50%;
    clip-path: polygon(0 0, 100% 0, 100% 55%, 0 55%);
    transform: rotate(-35deg);
    content: "";
}

.site-tm-spot-photo .site-tm-avatar {
    border: 6px solid rgba(255, 255, 255, .15);
    font-size: 4.5rem;
}

.site-tm-spot blockquote {
    margin: 0;
}

.site-tm-spot blockquote > .bi-quote {
    display: block;
    height: 3.25rem;
    color: var(--site-orange);
    font-size: 5rem;
    line-height: .8;
}

.site-tm-spot blockquote p {
    margin: 0 0 1rem;
    font-size: clamp(1.125rem, 2vw, 1.4375rem);
    font-weight: 500;
    line-height: 1.6;
}

.site-tm-spot blockquote footer {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin-top: 1.5rem;
}

.site-tm-spot blockquote footer strong {
    font-size: 1.25rem;
}

.site-tm-spot blockquote footer span:not(.site-stars) {
    color: rgba(255, 255, 255, .75);
}

.site-tm-spot .site-stars .bi { color: var(--site-yellow); }

.site-tm-spot-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    margin-top: 2.75rem;
}

.site-tm-spot-nav > button {
    display: grid;
    width: 50px;
    height: 50px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 50%;
    background: none;
    color: #fff;
    font-size: 1.25rem;
    transition: background-color .2s, border-color .2s;
}

.site-tm-spot-nav > button:hover {
    border-color: var(--site-orange);
    background: var(--site-orange);
}

.site-tm-spot-nav .carousel-indicators {
    position: static;
    margin: 0;
}

.site-tm-spot-nav .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    margin: 0 5px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    opacity: .35;
    transition: opacity .2s, width .2s;
}

.site-tm-spot-nav .carousel-indicators .active {
    width: 28px;
    border-radius: 10px;
    background: var(--site-orange);
    opacity: 1;
}

/* --- всички отзиви: „зидария“ от карти --- */
.site-tm-all {
    padding-top: clamp(3rem, 6vw, 4.5rem);
}

.site-tm-all-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
    margin-bottom: 2rem;
}

.site-tm-all-head h2 {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 700;
}

.site-tm-all-head .site-filter {
    margin: 0;
}

.site-tm-grid {
    column-gap: 1.5rem;
    columns: 3 300px;
}

.site-tm-item {
    padding-bottom: 1.5rem;
    break-inside: avoid;
}

.site-tm-item[hidden] {
    display: none;
}

.site-tm-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 1.75rem;
    border: 1px solid #eef0f4;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .05);
    transition: transform .25s, box-shadow .25s;
}

.site-tm-card:hover {
    box-shadow: 0 18px 40px rgba(0, 0, 0, .09);
    transform: translateY(-4px);
}

.site-tm-card.is-green {
    border-color: transparent;
    background: #eaf6ee;
}

.site-tm-card.is-orange {
    border-color: transparent;
    background: #fff3e6;
}

.site-tm-card:target {
    box-shadow: 0 0 0 3px var(--site-orange), 0 18px 40px rgba(0, 0, 0, .09);
}

.site-tm-card-mark {
    position: absolute;
    top: .5rem;
    right: 1.25rem;
    color: var(--site-green);
    font-size: 4rem;
    line-height: 1;
    opacity: .12;
}

.site-tm-card.is-orange .site-tm-card-mark { color: var(--site-orange); opacity: .25; }

.site-tm-card-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
}

.site-tm-card-top .site-stars {
    font-size: 1.0625rem;
}

.site-tm-card-top time {
    color: var(--site-muted);
    font-size: .8125rem;
}

.site-tm-card-text p {
    margin: 0 0 .75rem;
    color: var(--site-text);
    font-size: 1rem;
    line-height: 1.7;
}

.site-tm-card-text p:last-child {
    margin-bottom: 0;
}

/* дълъг текст: показва се началото, „Прочети още“ го разгъва */
.site-tm-card-text.is-long {
    max-height: 13.5rem;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(#000 65%, transparent);
    mask-image: linear-gradient(#000 65%, transparent);
}

.site-tm-card-text.is-long.is-open {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}

.site-tm-more {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    margin-top: .5rem;
    padding: 0;
    border: 0;
    background: none;
    color: var(--site-green-deep);
    font-size: .9375rem;
    font-weight: 700;
}

.site-tm-more .bi {
    transition: transform .2s;
}

.site-tm-more[aria-expanded="true"] .bi {
    transform: rotate(180deg);
}

.site-tm-card-author {
    display: flex;
    align-items: center;
    gap: .875rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(0, 0, 0, .07);
}

.site-tm-card-author strong {
    display: block;
    color: var(--site-ink);
    font-size: 1.0625rem;
}

.site-tm-card-author > div > span {
    display: block;
    color: var(--site-muted);
    font-size: .875rem;
}

.site-tm-course {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1rem;
    padding: .375rem .875rem;
    border-radius: 30px;
    background: rgba(255, 255, 255, .8);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08);
    color: var(--site-green-deep);
    font-size: .8125rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color .2s, color .2s;
}

.site .site-tm-course:hover {
    background: var(--site-green);
    color: #fff;
}

.site-tm-course img {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    object-fit: cover;
}

/* --- призив най-долу --- */
.site-tm-cta {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem 2.5rem;
    margin: clamp(2rem, 5vw, 3.5rem) 0 clamp(2.5rem, 6vw, 4.5rem);
    padding: clamp(2rem, 5vw, 3.25rem);
    overflow: hidden;
    border-radius: 24px;
    background: linear-gradient(120deg, var(--site-green) 0%, var(--site-green-deep) 100%);
    color: #fff;
}

.site-tm-cta::after {
    position: absolute;
    top: -60px;
    right: 22%;
    width: 200px;
    height: 200px;
    border: 28px solid rgba(255, 255, 255, .08);
    border-radius: 50%;
    content: "";
}

.site-tm-cta > * {
    position: relative;
    z-index: 1;
}

.site-tm-cta h2 {
    margin: 0 0 .5rem;
    font-size: clamp(1.625rem, 3vw, 2.25rem);
    font-weight: 700;
}

.site-tm-cta p {
    max-width: 560px;
    margin: 0;
    color: rgba(255, 255, 255, .88);
}

.site-tm-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.site-btn-light {
    background: rgba(255, 255, 255, .14);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5);
}

.site-btn-light:hover {
    background: rgba(255, 255, 255, .25);
}

.site-tm-empty {
    margin: 3rem auto;
    padding: 3rem 1.5rem;
    border-radius: 20px;
    background: var(--site-bg);
    text-align: center;
}

.site-tm-empty > .bi {
    color: var(--site-orange);
    font-size: 3rem;
}

.site-tm-empty h2 {
    margin: .5rem 0;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
}

.site-tm-empty p {
    max-width: 520px;
    margin: 0 auto 1.5rem;
    color: var(--site-text);
}

/* --- на началната страница --- */
.site-tm-home .site-tm-grid {
    columns: 3 280px;
}

.site-tm-home-more {
    margin-top: .5rem;
    text-align: center;
}

@media (max-width: 767.98px) {
    .site-tm-spot {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .site-tm-spot-photo {
        justify-self: center;
    }

    .site-tm-spot-photo .site-tm-avatar {
        --size: 150px !important;
        font-size: 3rem;
    }

    .site-tm-spot blockquote > .bi-quote {
        margin: 0 auto;
    }

    .site-tm-spot blockquote footer {
        align-items: center;
    }

    .site-tm-score::before {
        display: none;
    }

    .site-tm-score-main > strong {
        font-size: 3.5rem;
    }
}

/* =====================================================================
   Бисквитки – банер за съгласие
   ===================================================================== */

.site-consent {
    position: fixed;
    z-index: 1080;
    bottom: 1.25rem;
    left: 1.25rem;
    width: min(460px, calc(100vw - 2.5rem));
    max-height: calc(100vh - 2.5rem);
    padding: 1.5rem;
    overflow-y: auto;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .18), 0 0 0 1px rgba(0, 0, 0, .04);
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .3s, transform .3s;
}

.site-consent.is-visible {
    opacity: 1;
    transform: none;
}

.site-consent-head {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .75rem;
}

.site-consent-icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 50%;
    background: #fff3e6;
    color: var(--site-orange);
    font-size: 1.375rem;
}

.site-consent h2 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
}

.site-consent p {
    margin: 0 0 .75rem;
    color: var(--site-text);
    font-size: .9375rem;
    line-height: 1.6;
}

.site-consent-links {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
}

.site-consent-links a {
    color: var(--site-green-deep);
    font-size: .875rem;
    font-weight: 600;
    text-decoration: underline;
}

.site-consent-prefs {
    display: grid;
    gap: .5rem;
    margin: 1rem 0 .25rem;
}

.site-consent-cat {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem 1rem;
    border-radius: 12px;
    background: var(--site-bg);
    cursor: pointer;
}

.site-consent-cat strong {
    display: block;
    font-size: .9375rem;
}

.site-consent-cat small {
    display: block;
    color: var(--site-muted);
    font-size: .8125rem;
    line-height: 1.45;
}

/* превключвател */
.site-consent-switch {
    position: relative;
    flex-shrink: 0;
    width: 44px;
    height: 24px;
}

.site-consent-switch input {
    position: absolute;
    inset: 0;
    z-index: 1;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.site-consent-switch input:disabled {
    cursor: not-allowed;
}

.site-consent-switch span {
    position: absolute;
    inset: 0;
    border-radius: 24px;
    background: #cfd5dd;
    transition: background-color .2s;
}

.site-consent-switch span::after {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
    transition: transform .2s;
    content: "";
}

.site-consent-switch input:checked + span {
    background: var(--site-green);
}

.site-consent-switch input:checked + span::after {
    transform: translateX(20px);
}

.site-consent-switch input:disabled + span {
    opacity: .6;
}

.site-consent-switch input:focus-visible + span {
    outline: 2px solid var(--site-orange);
    outline-offset: 2px;
}

.site-consent-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-top: 1rem;
}

.site-consent-actions .site-btn {
    flex: 1 1 auto;
    min-height: 42px;
    padding: .5rem 1.25rem;
    font-size: 1rem;
}

.site-consent-actions .site-btn[hidden] {
    display: none;
}

/* „Само необходимите“ – толкова видим, колкото „Приемам всички“ */
.site-consent-btn-outline {
    background: #fff;
    box-shadow: inset 0 0 0 2px var(--site-green);
    color: var(--site-green-deep);
}

.site .site-consent-btn-outline:hover {
    background: var(--site-green);
    color: #fff;
}

.site-consent-more {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    padding: .5rem .25rem;
    border: 0;
    background: none;
    color: var(--site-muted);
    font-size: .9375rem;
    font-weight: 600;
}

.site-consent-more:hover {
    color: var(--site-ink);
}

.site-consent-more[hidden] {
    display: none;
}

/* връзка във футъра */
.site-footer-consent {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    margin-left: 1rem;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font-size: inherit;
    text-decoration: underline;
}

.site-footer-consent:hover {
    color: var(--site-green-deep);
}

@media (max-width: 575.98px) {
    .site-consent {
        bottom: 0;
        left: 0;
        width: 100%;
        max-height: 85vh;
        border-radius: 18px 18px 0 0;
    }

    .site-footer-consent {
        display: flex;
        margin: .5rem auto 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-consent { transition: none; }
}

/* =====================================================================
   Тест за ниво (/test/{адрес})
   ===================================================================== */

.site-lt {
    padding: clamp(2rem, 5vw, 3.5rem) 0 1rem;
    background:
        radial-gradient(circle at 8% 10%, rgba(0, 161, 45, .1) 0, rgba(0, 161, 45, 0) 30%),
        radial-gradient(circle at 95% 80%, rgba(239, 142, 52, .14) 0, rgba(239, 142, 52, 0) 32%),
        var(--site-bg);
}

.site-lt-card {
    max-width: 820px;
    margin: 0 auto;
    padding: clamp(1.5rem, 5vw, 3rem);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 24px 60px rgba(23, 116, 48, .12);
}

.site-lt-step + .site-lt-step {
    margin-top: 2.5rem;
}

.site-lt.is-js .site-lt-step + .site-lt-step {
    margin-top: 0;
}

.site-lt-step[hidden] {
    display: none;
}

.site-lt-step.is-entering {
    animation: site-lt-in .35s ease;
}

@keyframes site-lt-in {
    from { opacity: 0; transform: translateX(18px); }
    to { opacity: 1; transform: none; }
}

/* начало */
.site-lt-intro {
    text-align: center;
}

.site-lt-flag {
    display: block;
    width: 64px;
    margin-right: auto;
    margin-left: auto;
    height: 64px;
    margin-bottom: 1rem;
    border: 4px solid #fff;
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .15);
    object-fit: cover;
}

.site-lt-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    margin-bottom: .75rem;
    padding: .375rem .875rem;
    border-radius: 30px;
    background: rgba(0, 161, 45, .1);
    color: var(--site-green-deep);
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.site-lt-eyebrow.is-orange {
    background: #fff3e6;
    color: var(--site-orange-dark);
}

.site-lt h1 {
    margin-bottom: 1rem;
    font-size: clamp(1.875rem, 4.5vw, 3rem);
    font-weight: 700;
    line-height: 1.12;
}

.site-lt-lead {
    margin: 0 auto 1.5rem;
    max-width: 620px;
    color: var(--site-text);
    font-size: 1.0625rem;
    line-height: 1.65;
}

.site-lt-facts {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .75rem;
    margin: 0 0 2rem;
    padding: 0;
    list-style: none;
}

.site-lt-facts li {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .625rem 1rem;
    border-radius: 12px;
    background: var(--site-bg);
    font-size: .9375rem;
}

.site-lt-facts .bi {
    color: var(--site-green);
    font-size: 1.125rem;
}

.site-lt-hint {
    margin: 1rem 0 0;
    color: var(--site-muted);
    font-size: .875rem;
}

/* лента за напредъка */
.site-lt-progress {
    margin-bottom: 2rem;
}

.site-lt-progress[hidden] {
    display: none;
}

.site-lt-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .625rem;
    color: var(--site-muted);
    font-size: .9375rem;
    font-weight: 600;
}

.site-lt-back {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    padding: 0;
    border: 0;
    background: none;
    color: var(--site-muted);
    font-weight: 600;
}

.site-lt-back:hover {
    color: var(--site-green-deep);
}

.site-lt-progress-bar {
    height: 8px;
    overflow: hidden;
    border-radius: 8px;
    background: #eef0f4;
}

.site-lt-progress-bar span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: 8px;
    background: linear-gradient(90deg, var(--site-green), #5cc878);
    transition: width .35s ease;
}

/* въпрос */
.site-lt-question {
    margin: 0;
    padding: 0;
    border: 0;
}

.site-lt-question legend {
    display: flex;
    gap: .875rem;
    margin-bottom: 1.5rem;
    font-size: clamp(1.25rem, 2.6vw, 1.625rem);
    font-weight: 700;
    line-height: 1.35;
}

.site-lt-number {
    display: grid;
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 10px;
    background: var(--site-green-deep);
    color: #fff;
    font-size: 1rem;
}

.site-lt-options {
    display: grid;
    gap: .75rem;
}

.site-lt-option {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 2px solid #e6e9ef;
    border-radius: 14px;
    background: #fff;
    font-size: 1.0625rem;
    cursor: pointer;
    transition: border-color .15s, background-color .15s, transform .15s;
}

.site-lt-option:hover {
    border-color: #b9e3c6;
    background: #f6fbf8;
}

.site-lt-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.site-lt-letter {
    display: grid;
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 50%;
    background: var(--site-bg);
    color: var(--site-muted);
    font-weight: 700;
    transition: background-color .15s, color .15s;
}

.site-lt-option:has(input:checked) {
    border-color: var(--site-green);
    background: #eaf6ee;
    transform: scale(1.01);
}

.site-lt-option:has(input:checked) .site-lt-letter {
    background: var(--site-green);
    color: #fff;
}

.site-lt-option:has(input:focus-visible) {
    outline: 3px solid var(--site-orange);
    outline-offset: 2px;
}

/* данни */
.site-lt-contact h2 {
    margin-bottom: .5rem;
    font-size: clamp(1.625rem, 3.5vw, 2.25rem);
    font-weight: 700;
}

.site-lt-contact .site-lt-lead {
    margin-left: 0;
}

.site-lt-consents {
    margin-top: 1.25rem;
}

.site-lt-consents .site-check em {
    color: #dc3545;
    font-style: normal;
}

.site-lt-marketing {
    margin-top: .75rem;
    padding: 1rem 1.125rem;
    border: 1px dashed rgba(239, 142, 52, .6);
    border-radius: 12px;
    background: #fff9f2;
}

.site-lt-marketing strong {
    display: block;
    color: var(--site-ink);
}

.site-lt-marketing small {
    display: block;
    margin-top: .375rem;
    color: var(--site-muted);
}

.site-lt-submit {
    margin-top: 1.25rem;
}

/* ---------- резултат ---------- */

.site-lt-result {
    display: flex;
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3rem);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: 24px;
    background: linear-gradient(135deg, #1b7d36 0%, var(--site-green-deep) 60%, #0f5323 100%);
    box-shadow: 0 24px 60px rgba(23, 116, 48, .25);
    color: #fff;
}

.site-lt-result h1 {
    margin-bottom: .5rem;
}

.site-lt-result h1 em {
    color: #ffc58c;
    font-style: normal;
}

.site-lt-result .site-lt-eyebrow {
    background: rgba(255, 255, 255, .14);
    color: #fff;
}

.site-lt-result .site-lt-lead {
    margin: 0;
    color: rgba(255, 255, 255, .88);
}

/* кръг с процента */
.site-lt-score {
    display: grid;
    flex-shrink: 0;
    width: clamp(140px, 20vw, 180px);
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--site-orange) calc(var(--p) * 1%), rgba(255, 255, 255, .15) 0);
}

.site-lt-score > div {
    display: grid;
    width: 78%;
    aspect-ratio: 1;
    place-content: center;
    border-radius: 50%;
    background: #fff;
    color: var(--site-green-deep);
    text-align: center;
}

.site-lt-score strong {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 800;
    line-height: 1;
}

.site-lt-score span {
    margin-top: .25rem;
    font-size: .8125rem;
    color: var(--site-muted);
    font-weight: 700;
}

.site-lt-panel {
    padding: clamp(1.5rem, 3vw, 2rem);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .05);
}

.site-lt-panel + .site-lt-panel {
    margin-top: 1.5rem;
}

.site-lt-panel h2,
.site-lt-panel h3 {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1rem;
    font-size: 1.375rem;
    font-weight: 700;
}

.site-lt-analysis {
    color: var(--site-text);
    line-height: 1.7;
}

.site-lt-levels {
    display: grid;
    gap: .875rem;
    margin: 1.5rem 0 .75rem;
    padding: 0;
    list-style: none;
}

.site-lt-levels li {
    display: grid;
    grid-template-columns: 3.25rem 1fr auto;
    align-items: center;
    gap: 1rem;
}

.site-lt-levels-code {
    display: grid;
    height: 2.5rem;
    place-items: center;
    border-radius: 10px;
    background: #fff3e6;
    color: var(--site-orange-dark);
    font-weight: 800;
}

.site-lt-levels li.is-passed .site-lt-levels-code {
    background: #eaf6ee;
    color: var(--site-green-deep);
}

.site-lt-levels-title {
    display: block;
    margin-bottom: .375rem;
    font-size: .9375rem;
    font-weight: 600;
}

.site-lt-levels-bar {
    display: block;
    height: 8px;
    overflow: hidden;
    border-radius: 8px;
    background: #eef0f4;
}

.site-lt-levels-bar span {
    display: block;
    height: 100%;
    border-radius: 8px;
    background: var(--site-orange);
}

.site-lt-levels li.is-passed .site-lt-levels-bar span {
    background: var(--site-green);
}

.site-lt-levels-score {
    color: var(--site-muted);
    font-size: .9375rem;
    font-weight: 600;
    white-space: nowrap;
}

.site-lt-levels li.is-passed .site-lt-levels-score .bi {
    color: var(--site-green);
}

.site-lt-note {
    margin: 0;
    color: var(--site-muted);
    font-size: .8125rem;
}

.site-lt-badge {
    padding: .125rem .625rem;
    border-radius: 20px;
    background: #fff3e6;
    color: var(--site-orange-dark);
    font-size: .875rem;
}

.site-lt-review {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-lt-review li {
    display: grid;
    gap: .25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eef0f4;
}

.site-lt-review li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.site-lt-review span {
    display: flex;
    gap: .5rem;
    font-size: .9375rem;
}

.site-lt-review .is-wrong { color: #c2343b; }
.site-lt-review .is-right { color: var(--site-green-deep); }

.site-lt-review small {
    color: var(--site-muted);
}

.site-lt-side {
    position: sticky;
    top: 1.5rem;
}

.site-lt-course {
    padding: 1.5rem;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .08);
}

.site-lt-course-media {
    position: relative;
    margin-bottom: 1.25rem;
}

.site-lt-course-media > img:first-child {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    border-radius: 12px;
    object-fit: cover;
}

.site-lt-course-flag {
    position: absolute;
    right: .75rem;
    bottom: -.75rem;
    width: 40px;
    height: 40px;
    border: 3px solid #fff;
    border-radius: 50%;
    object-fit: cover;
}

.site-lt-course h3 {
    margin-bottom: .75rem;
    font-size: 1.375rem;
    font-weight: 700;
}

.site-lt-course .site-cd-meta {
    color: var(--site-text);
}

.site-lt-course .site-cd-meta .bi {
    color: var(--site-orange);
}

.site-lt-course-more {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    margin-top: .875rem;
    color: var(--site-green-deep);
    font-weight: 700;
    text-decoration: none;
}

.site-lt-next {
    margin-top: 1.5rem;
}

.site-lt-next p {
    color: var(--site-text);
}

.site-lt-link {
    display: flex;
    align-items: center;
    gap: .625rem;
    padding: .625rem 0;
    border-top: 1px solid #eef0f4;
    color: var(--site-green-deep);
    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 767.98px) {
    .site-lt-result {
        flex-direction: column;
        text-align: center;
    }

    .site-lt-side {
        position: static;
    }

    .site-lt-option {
        padding: .875rem 1rem;
        font-size: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-lt-step.is-entering { animation: none; }
}

/* ---------- Напиши отзив (/otzivi/napishi) ---------- */

.site-rate {
    margin: 0 0 1.5rem;
    padding: 1.25rem 1.5rem;
    border: 0;
    border-radius: 14px;
    background: var(--site-bg);
}

.site-rate legend {
    float: left;
    width: 100%;
    margin-bottom: .5rem;
    font-size: 1.0625rem;
    font-weight: 700;
}

.site-rate legend em {
    color: #dc3545;
    font-style: normal;
}

/* радио бутоните са наобратно, за да светват и предишните звезди с ~ */
.site-rate-stars {
    clear: both;
    display: inline-flex;
    flex-direction: row-reverse;
    gap: .375rem;
}

.site-rate-stars input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.site-rate-stars label {
    color: #d6dbe3;
    font-size: 2.25rem;
    line-height: 1;
    cursor: pointer;
    transition: color .12s, transform .12s;
}

.site-rate-stars label:hover,
.site-rate-stars label:hover ~ label,
.site-rate-stars input:checked ~ label {
    color: var(--site-yellow);
}

.site-rate-stars label:hover {
    transform: scale(1.15);
}

.site-rate-stars input:focus-visible + label {
    outline: 3px solid var(--site-orange);
    outline-offset: 2px;
    border-radius: 6px;
}

/* качване на снимка */
.site-photo {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 50px;
    height: 100%;
    padding: .5rem 1rem;
    border: 1px dashed #cfd5dd;
    border-radius: 5px;
    cursor: pointer;
}

.site-photo:hover {
    border-color: var(--site-orange);
}

.site-photo input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.site-photo:focus-within {
    outline: 3px solid var(--site-orange);
    outline-offset: 2px;
}

.site-photo-preview {
    display: grid;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: var(--site-bg);
    color: var(--site-muted);
    font-size: 1.25rem;
}

.site-photo-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.site-photo strong,
.site-photo small {
    display: block;
}

.site-photo small {
    color: var(--site-muted);
}

.site-tm-write .site-tm-eyebrow {
    margin-bottom: .75rem;
}

/* бутон „Напиши отзив“ на страницата с отзивите */
.site-tm-write-cta {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.5rem;
}

/* примерен отзив – вижда се само от влезли администратори */
.site-tm-demo {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    align-self: flex-start;
    margin-bottom: .75rem;
    padding: .25rem .625rem;
    border-radius: 20px;
    background: #fff3cd;
    color: #8a6d00;
    font-size: .75rem;
    font-weight: 700;
}
