/* =============================================
   TŰZHELY – CLEANED + GROUPED CSS (no semantic changes)
   ============================================= */

/* ========== ROOT TOKENS & GLOBALS ========== */
:root {
    --wp--preset--spacing--100: min(10rem, 10vw);
    --wp--preset--spacing--140: min(14rem, 12vw);
    /* --wp--preset--color--background: #ffffff;
     --wp--preset--color--background: #ebe9e0; */
    --wp--custom--elements--button--border--radius: 25px;
    --wp--preset--font-family--brandon-grotesque: 'Brandon Grotesque', 'Roboto Flex', Arial, sans-serif;
    --wp--preset--font-family--roboto-flex: 'Roboto Flex', Roboto, Arial, sans-serif;
    --wp--preset--font-family--roboto: Roboto, Arial, sans-serif;
    --tzh-color-text: #1d1d1b;
    --tzh-color-dark: #1b1b1b;
    --tzh-color-light: #f9f9f9;
    --tzh-color-surface: #ebe9e0;
    --tzh-color-sage: #babfa9;
    --tzh-color-muted: #abab9a;
    --tzh-color-border: #e5e7eb;
    --tzh-color-white: #ffffff;
    --tzh-font-weight-light: 320;
    --tzh-font-weight-regular: 390;
    --tzh-font-weight-medium: 420;
    --tzh-font-weight-semibold: 490;
    --tzh-transition-base: all 0.3s ease;
}

/* Gutenberg flow fix for .tk-courses blocks */
:root :where(.tk-courses .is-layout-flow)> :last-child {
    margin-block-end: 0;
    margin-block-start: 0;
}

/* ========== BASE ELEMENTS ========== */
body {
    font-size: 1rem;
    font-weight: 400;
    background: var(--tzh-color-white) !important;
    color: var(--tzh-color-text);
}

ul {
    padding-inline-start: 1rem;
}

.wp-block-site-logo img {
    height: auto;
    max-width: 50px;
}

/* ========== UTILITY CLASSES ========== */
.mt-1 {
    margin-top: 1rem !important;
}

.mb-1 {
    margin-bottom: 1rem !important;
}

.my-1 {
    margin-bottom: 1rem !important;
    margin-top: 1rem !important;
}

.mt-2 {
    margin-top: 2rem !important;
}

.mb-2 {
    margin-bottom: 2rem !important;
}

.mx-auto {
    margin-left: auto !important;
    margin-right: auto !important;
}

body:not(.wp-admin) .d-none {
    display: none;
}

.align-center-flex {
    align-items: center;
}

.text-center {
    text-align: center;
}

.v-hidden {
    visibility: hidden;
}

.is-justify-self-center {
    justify-self: center;
}

.flex-wrap {
    flex-wrap: wrap;
}

strong {
    font-weight: var(--tzh-font-weight-semibold);
}

/* used in mobile */

.pe-none {
    pointer-events: none;
}

/* ========== HEADER / NAV LAYOUT ========== */
.wp-block-group.header-inner {
    width: 100%;
    margin: 0 !important;
    max-width: 100% !important;
}

.wp-block-group.header-inner nav {
    margin-left: auto;
}

/* Navigation labels */
.wp-block-navigation__responsive-container.has-modal-open.is-menu-open .wp-block-navigation-item {
    padding-left: 1rem;
    padding-right: 1rem;
}

.wp-block-navigation__responsive-container.has-modal-open.is-menu-open .site-logo-title {
    padding-left: 1rem;
    padding-top: 1rem;
}

.wp-block-navigation-item__content {
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    text-transform: uppercase;
    line-height: 1.3;
    font-weight: var(--tzh-font-weight-regular);
    font-size: 1.063rem;
}

/* Mobile nav override */

.wp-block-navigation__responsive-container.has-modal-open.is-menu-open .wp-block-site-logo img {
    /*min-height: 107px;*/
    max-width: 50px;
}

.wp-block-navigation__responsive-container.has-modal-open.is-menu-open .site-logo-title img {
    max-height: unset !important;
    /*height: auto !important;
    width: auto !important;*/
}

.has-modal-open .wp-block-navigation__responsive-dialog ul.wp-block-navigation__container>li:not(.wp-block-navigation__submenu-container)>a.wp-block-navigation-item__content {
    font-size: 1.25rem;
    font-weight: var(--tzh-font-weight-semibold);
    text-decoration: none;
    outline: none;
    border: 0;
}

.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container-open {
    outline: none;
}

/* WS text background */
.ws-text-background {
    background-color: rgba(243, 240, 221, 0.5);
    padding: 40px 20px;
    max-width: 390px;
    margin: 0 auto;
}

.ws-text-background .wp-block-heading {
    font-weight: var(--tzh-font-weight-medium);
    font-size: 1.5rem;
}


/* Tűzhely – Cookie banner alapstílusok */
.tz-cookie-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 15px;
    background: rgba(0, 0, 0, 0.9);
    color: var(--tzh-color-white);
    z-index: 99999;
    font-size: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    align-items: center;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.4);
}

/* Szövegblokk – hogy ne legyen túl széles */
.tz-cookie-text {
    max-width: 600px;
    line-height: 1.4;
}

/* Gomb – kis „pill” stílus */
.tz-cookie-accept {
    border: none;
    padding: 6px 16px;
    cursor: pointer;
    border-radius: 999px;
    background: var(--tzh-color-white);
    color: #000000;
    font-size: 14px;
    font-weight: 500;
}

/* Hover állapot – kis visszajelzés */
.tz-cookie-accept:hover {
    opacity: 0.9;
}

/* Mobil finomhangolás */
@media (max-width: 600px) {
    .tz-cookie-banner {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }

    .tz-cookie-text {
        max-width: 100%;
    }

    .tz-cookie-accept {
        width: auto;
        align-self: center;
    }
}



/* ========== HERO SECTION ========== */
.wp-site-blocks .entry-content {
    margin-top: 0;
}

.wp-block-group.hero-inner-bg {
    /* backdrop-filter intentionally commented */
    /* backdrop-filter: blur(10px); */
    max-width: 1280px;
}

.wp-block-group.hero-inner.hero-book .hero-inner-bg {
    max-width: 560px;
}

.wp-block-group.hero-inner.hero-book h1 {
    font-size: 34px;
    font-weight: 420 !important;
    color: var(--tzh-color-text) !important;
}

.wp-block-group.hero-inner.hero-book p {
    font-weight: 390 !important;
    color: var(--tzh-color-text) !important;
}

.wp-block-group.hero-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 200px);
    background-repeat: no-repeat;
}

.wp-block-group.hero-inner p {
    margin-top: 2rem;
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    font-size: 1.75rem;
    font-weight: var(--tzh-font-weight-regular);
    line-height: 1.3;
}

h1.hero-h1 {
    text-transform: uppercase;
    font-size: 36px;
    font-weight: var(--tzh-font-weight-regular);
}

/* ========== TYPOGRAPHY / HEADINGS ========== */
.wp-block-heading {
    font-weight: var(--tzh-font-weight-regular);
    font-style: normal;
    /* text-transform: uppercase; */
}

h1.wp-block-heading {
    font-weight: var(--tzh-font-weight-regular);
}

h2.wp-block-heading {
    font-weight: var(--tzh-font-weight-light);
}

h3.wp-block-heading {
    font-weight: var(--tzh-font-weight-regular);
    font-size: 1.75rem;
    text-transform: uppercase;
}

h3 span.small {
    font-size: 1.25rem;
    text-transform: none;
    font-weight: var(--tzh-font-weight-regular);
    display: inline-flex;
    margin-right: 1rem;
}

h4.wp-block-heading {
    font-weight: var(--tzh-font-weight-regular);
    text-transform: none;
    font-size: 1.5rem;
}

.wp-block-heading.heading-custom-uppercase {
    text-transform: uppercase;
    font-weight: var(--tzh-font-weight-medium);
}

.wp-block-heading.heading-custom-size {
    font-size: 2.25rem;
}

.wp-block-heading.heading-custom-size-small {
    font-size: 1.5rem;
}

.wp-block-heading.heading-custom-bg {
    background: #f3f0dd;
    border-radius: 25px;
    padding: 0.5rem 0.3rem 0.3rem;
}

.wp-block-heading.heading-strong {
    font-weight: var(--tzh-font-weight-semibold);
}

.wp-block-heading.heading-no-transform {
    text-transform: none;
}

.text-shadow {
    text-shadow: 2px 2px 2px rgb(44 44 44 / 80%);
}

/* ÁSZF en a menü ne legyen */
body:has(.entry-content .aszf-content) .aszf-d-none {
    display: none !important;
}

/* ========== BUTTONS ========== */
.wp-block-buttons .wp-block-button__link {
    padding: calc(0.667em + 2px) calc(1.333em + 2px) calc(0.667em + 1px);
}

/* Core button transitions */
.wp-element-button {
    transition: var(--tzh-transition-base) !important;
}

.wp-element-button:hover {
    transform: translateY(-5px);
}

.wp-element-button:focus {
    transform: translateY(0px);
}

/* TK button variants */
.wp-element-button.tk-button {
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    text-transform: uppercase;
    width: auto;
    display: inline-flex;
    line-height: 1;
    justify-self: center;
    justify-content: center;
}

.tk-button:hover,
.tk-button:focus {
    outline: none;
    background-color: var(--tzh-color-dark);
    color: var(--tzh-color-white);
}

.tk-button.tk-default:hover,
.tk-button.tk-default:focus {
    color: var(--tzh-color-dark);
    background-color: var(--tzh-color-light);
}

.tk-back-main,
.tk-back-2,
.tk-back-1,
.m-back-3,
.m-back-main {
    display: none;
}

:root :where(.tk-button.tk-dark, .tk-dark .wp-element-button) {
    background-color: var(--tzh-color-dark);
    color: var(--tzh-color-white);
}

:root :where(.tk-button.tk-light) {
    color: var(--tzh-color-dark);
    background-color: var(--tzh-color-light);
}

:root :where(.tk-button.tk-inverse, .tk-inverse .wp-element-button) {
    background-color: var(--tzh-color-surface);
    color: var(--tzh-color-dark);
}

:root :where(.tk-bordered) {
    color: var(--tzh-color-dark);
    background-color: var(--tzh-color-light);
    border: 2px solid var(--tzh-color-dark);
    transform: none;
}

.wp-element-button.tk-button.tk-small {
    font-size: 0.95rem;
    padding: 0.5rem 1rem;
    line-height: 1.2;
    transform: none;
}

.tk-bordered:hover {
    background: var(--tzh-color-dark);
    color: var(--tzh-color-light);
}

/* Product card buttons */
.wp-block-group.tk-product-card {
    background: #eeebd7;
}

.wp-block-group.tk-product-card .tk-slot-available {
    border: 0;
    text-align: center;
}

.wp-block-group.tk-product-card .wp-element-button.tk-button {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
}

.tk-button.tk-disabled {
    background-color: #dfe1d9;
    color: #61635a;
}

.wp-block-button.tk-block-button .wp-element-button.tk-button {
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    text-transform: uppercase;
    width: auto;
    display: unset;
    line-height: 1;
    margin: 0 auto;
}

.wp-block-button.tk-block-button {
    display: flex;
    justify-content: center;
}

/* === USER ACCOUNT ===*/
.wp-block-button__link.wp-element-button.tk-button.tk-inverse.tz-tab[data-tab='m'] {
    display: none;
}

.tz-account .tz-modal__box h3 {
    margin: 10px 0;
    font-size: 1.5rem;
}


/* ========== SOCIAL ICONS ========== */
.wp-block-social-links .wp-social-link svg {
    height: 1.5rem;
    width: 1.5rem;
}

ul.wp-block-social-links.has-icon-color {
    gap: 1rem 0.5rem;
}

.wp-social-link-x {
    display: none;
}

/* ========== MEDIA / IMAGES ========== */
figure.tk-booking-img-box img {
    border-radius: 0 !important;
}

.tk-contact .wp-block-image img {
    filter: brightness(10);
}

/* ========== HERO – LARGE SCREENS ========== */
@media (min-width: 1200px) {
    .wp-block-group.hero-inner {
        height: calc(100vh - 200px);
        max-height: 460px;
    }
}

@media (min-width: 1400px) {

    header>header>div,
    footer>.wp-block-group {
        padding-right: var(--wp--preset--spacing--60) !important;
        padding-left: var(--wp--preset--spacing--50) !important;
    }

    .wp-block-group.hero-inner {
        height: calc(100vh - 220px);
        padding-top: var(--wp--preset--spacing--70) !important;
        padding-right: var(--wp--preset--spacing--50) !important;
        padding-bottom: var(--wp--preset--spacing--80) !important;
        padding-left: var(--wp--preset--spacing--100) !important;
        background-position: 21% -145px !important;
    }

    .wp-block-group.hero-inner.hero-book {
        padding-left: var(--wp--preset--spacing--50) !important;
    }

}

@media (min-width: 1600px) {
    .wp-block-group.hero-section {
        max-height: unset;
    }

    .wp-block-group.hero-inner {
        max-height: unset;
        background-position: 21% 52% !important;
    }
}

/* ========== TK – TEXT STYLES ========== */
.tk-title {
    font-size: 2rem;
    font-weight: var(--tzh-font-weight-regular);
}

.tk-subtitle {
    font-size: 1.5rem;
    font-weight: var(--tzh-font-weight-regular);
}

.tk-step-subtitle {
    font-size: 1.125rem;
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    font-weight: var(--tzh-font-weight-regular);
    line-height: 1.4;
    margin: 0.5rem 0 0;
}

.tk-step-subtitle a {
    font-weight: var(--tzh-font-weight-semibold);
}

body:not(.home) .tk-step.step-main .tk-step-left .tk-step-subtitle {
    display: none;
}

@media (min-width: 901px) {
    .tk-step.step-main .tk-step-left .tk-step-subtitle {
        max-width: 440px;
    }
}

.tk-service-title {
    display: flex;
    align-items: center;
    font-weight: var(--tzh-font-weight-regular);
    margin-bottom: 6px;
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    text-transform: uppercase;
    font-size: 1.5rem;
}

/* ========== TK – TEACHERS ========== */
.tk-teacher {
    display: flex;
    gap: 12px;
    align-items: center;
}

.tk-teacher img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}

/* merged duplicate: keep font-family & size; use later weight=700 */
.tk-teacher .name {
    font-family: var(--wp--preset--font-family--roboto-flex);
    font-size: 1rem;
    font-weight: 700;
}

/* ========== TK – SERVICE / SLOT LINES ========== */
.tk-service-desc,
.tk-teacher .bio,
.tk-slotline {
    font-size: 1.125rem;
    line-height: 1.3;
    font-family: var(--wp--preset--font-family--roboto-flex);
    display: flex;
    flex-direction: column;
}

.tk-teacher .bio {
    color: var(--muted);
}

.tk-service-desc {
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    font-weight: var(--tzh-font-weight-regular);
}

.tk-slotline p {
    margin: 0.15rem 0.5rem;
    font-weight: var(--tzh-font-weight-regular);
    justify-content: space-between;
    display: flex;
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    text-transform: uppercase;
}

.tk-slotline p:last-child {
    text-transform: none;
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    font-size: 1.15rem;
}

.tk-card.active .tk-slotline p {
    color: #111;
}

/* == TK – TEAM == */
.team-box {
    position: relative;
    text-align: left;
    max-width: 400px;
}

.team-box .team-panel {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 300ms ease, opacity 200ms ease;
    will-change: max-height;
    display: block;
}

.team-box .team-panel.is-open {
    opacity: 1;
}

.team-box .team-toggle,
.team-box .open-team-more[role="button"] {
    display: inline-block;
    margin-top: .5rem;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    outline: none;
}


/* JOIN mód: folytatás egy sorban (csak egyszerű, inline tartalomhoz ajánlott) */
.team-box.continuous .team-intro {
    display: inline;
}

.team-box.continuous .team-panel {
    display: inline-block;
    vertical-align: baseline;
    margin-top: 0;
}

.team-box.continuous .ellipsis {
    display: inline;
}

.team-box.continuous.open .ellipsis {
    display: none;
}

.team-box.continuous .team-panel>* {
    display: inline;
    margin: 0;
    padding: 0;
}



/* ========== TK – COMPACT WRAPPER ========== */
.tk-compact {
    background: transparent;
    /* #efeed8; */
    padding: 2rem;
    /* box-shadow: 0 30px 40px #0000001f; */
    transition: max-width 0.3s ease-in-out;
    max-width: 90%;
    display: flex;
    flex-direction: column;
    /* theme tokens */
    --pri: var(--tzh-color-text);
    --sec: var(--tzh-color-muted);
    --muted: #6b7280;
    --card: var(--tzh-color-sage);
    /* zöld:#babfa9 drapp:#c5c1a1 */
    --br: 0;
    --gap: 1rem;
}

/* ========== TK – GRID / CARDS / PACKS ========== */
.tk-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gap);
}

.tk-grid#tk-slots {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
}

.tk-card {
    background: transparent;
    border: 3px solid var(--card);
    border-radius: var(--br);
    padding: 1rem 1.875rem;
    text-align: left;
    cursor: pointer;
    transition: var(--tzh-transition-base);
    min-height: 52px;
    outline: 2px solid transparent;
}

.tk-card:hover {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0);
    outline: 2px solid transparent;
    background: var(--card);
}

.tk-card.active {
    outline: 2px solid var(--card);
    background: var(--card);
}

.tk-card .tk-icon {
    color: #111;
    margin-right: 0;
}

.tk-course {
    max-width: 280px;
    min-width: 280px;
}

.tk-price-section {
    background: var(--tzh-color-surface);
}

/* Services */
.tk-services-block {
    justify-content: center;
}

.tk-services-card {
    max-width: 360px;
}

/* Timetable */
.tk-timetable-block {
    justify-content: center;
}

.tk-timetable-card {
    max-width: 260px;
}

/* Packs */
.tk-packs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    flex-direction: column;
}

.tk-pack {
    border: 3px solid var(--card);
    border-radius: 0;
    padding: 0.9rem;
    cursor: pointer;
    background: transparent;
    min-width: 120px;
    justify-content: space-between;
    display: flex;
    min-height: 52px;
    line-height: 1;
    align-items: center;
    font-family: var(--wp--preset--font-family--roboto-flex);
    font-size: 1rem;
    flex: 1;
    transition: var(--tzh-transition-base);
    outline: 2px solid transparent;
}

.tk-pack small {
    font-size: 0.9rem;
}

.tk-pack:focus {
    outline: 1px solid var(--pri);
}

.tk-pack:hover {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0);
    outline: 2px solid var(--card);
    background: var(--card);
}

.tk-pack.active {
    outline: 2px solid var(--card);
    background: var(--card);
}

/* Actions */
.tk-actions {
    display: flex;
    gap: 10px;
    margin-top: 12px;
}

.tk-btn {
    border: 2px solid var(--tzh-color-border);
    border-radius: 2rem;
    padding: 0.75rem 1.5rem;
    font-weight: 600;
    cursor: pointer;
    background: var(--tzh-color-white);
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    text-transform: uppercase;
}

.tk-btn.tk-primary {
    background: var(--pri);
    border-color: var(--pri);
    color: var(--tzh-color-white);
}

.tk-btn[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
}

/* Slot availability badge */
.tk-slot-available {
    color: var(--tzh-color-text);
    font-size: 1rem;
    padding: 2px 7px;
    border-radius: 3px;
    border: 3px solid var(--tzh-color-sage);
    display: block;
    max-width: 200px;
    margin: 5px 0 0 0;
}

/* ========== TK – STEP LAYOUT ========== */
.tk-step {
    padding: 1rem 0;
}

.tk-step-row {
    display: grid;
    grid-template-columns: 50% 1fr;
    gap: 16px;
    align-items: start;
    margin: 12px 0 18px;
}

.tuzhely .tk-step-left {
    min-width: 0;
}

.tk-step-right {
    min-width: 0;
    position: relative;
}

.tk-step-title {
    margin: 0;
    font-size: 1.875rem;
    line-height: 1.3;
    font-weight: var(--tzh-font-weight-regular);
}

/* Notes */
.tk-note {
    margin-top: 8px;
    font-size: 0.95rem;
    color: #777b6c;
}

.tk-hint,
.tk-count {
    margin-top: 8px;
    font-family: var(--wp--preset--font-family--roboto);
    font-size: 0.95rem;
    font-style: italic;
    color: #878779;
}

/* ========== TK – FORMS ========== */
/* merged duplicate .tk-form label rule */
.tk-form label {
    display: block;
    margin: 10px 0;
    font-family: var(--wp--preset--font-family--roboto-flex);
    font-size: 1rem;
}

.tk-form .tk-fields {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}

.tk-form .tk-fields>li {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tk-form .tk-label {
    align-items: center;
    gap: 6px;
    margin-bottom: 7px;
    text-rendering: optimizelegibility;
    -webkit-font-smoothing: antialiased;
    box-sizing: border-box;
    color: rgb(14, 14, 14);
    font-weight: var(--tzh-font-weight-regular);
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    text-transform: uppercase;
    display: flex;
    font-size: 14px;
    letter-spacing: -0.05px;
    line-height: 16px;
}

.tk-form .tk-req {
    color: #c0392b;
    font-weight: 700;
}

.tk-form .tk-input {
    border-radius: 0;
    background-color: transparent;
    border-top: none;
    border-right: none;
    border-left: none;
    border-image: initial;
    color: var(--tzh-color-text);
    line-height: 22px;
    padding: 0px;
    text-align: left;
    caret-color: black;
    border-bottom: 3px solid rgb(186 191 169 / 80%);
    height: 44px;
    width: 100%;
    margin-bottom: 0px;
    font-family: var(--wp--preset--font-family--roboto-flex);
    font-size: 1rem;
    transition: var(--tzh-transition-base);
}

.tk-form .tk-input:focus {
    border-bottom-color: rgb(29 29 27 / 80%);
    outline: none;
}

.tk-form .tk-terms {
    display: block;
    margin: 25px 0;
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    font-size: 1rem;
    font-weight: var(--tzh-font-weight-regular);
}

.tk-form .tk-terms a {
    text-decoration: underline;
}

.tk-picked {
    border-left: 1px solid var(--tzh-color-border);
    padding: 10px 12px;
    white-space: pre-wrap;
    word-break: break-word;
    min-height: 1px;
    font-family: var(--wp--preset--font-family--roboto);
    font-size: 1rem;
}

#tk-picker {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--tzh-color-border);
    border-radius: 12px;
}

/* Alerts */
.tk-msg.alert-danger {
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #7f1d1d;
    border-radius: 0;
}

/* ========== FLATPICKR OVERRIDES ========== */
.dayContainer {
    gap: 4px;
}

.flatpickr-calendar.inline {
    background: transparent;
}

.flatpickr-day {
    background: none;
    border: 2px solid transparent;
    border-radius: 0;
    font-family: var(--wp--preset--font-family--roboto-flex);
    font-size: 1rem;
    color: var(--tzh-color-dark);
    font-weight: 500;
}

.flatpickr-day:hover {
    background: transparent;
    border: 2px solid var(--tzh-color-text);
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    cursor: not-allowed;
    color: rgba(57, 57, 57, 0.4);
}

.flatpickr-day.today {
    border-color: var(--tzh-color-border);
}

.flatpickr-day.today:hover,
.flatpickr-day.today:focus {
    border-color: var(--tzh-color-muted);
    background: var(--tzh-color-muted);
    color: var(--tzh-color-white);
}

.flatpickr-day.selected,
.flatpickr-day.prevMonthDay.selected,
.flatpickr-day.selected.nextMonthDay {
    background: var(--card);
    border-color: var(--card);
    color: var(--tzh-color-text);
    border-width: 2px;
}

.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus {
    background: var(--card);
    -webkit-box-shadow: none;
    box-shadow: none;
    color: #393939;
    border-color: var(--tzh-color-text);
}

.flatpickr-day.prevMonthDay.selected {
    opacity: 0.6;
}

/* 100% calendar at ≥480px */
@media (min-width: 480px) {
    .flatpickr-calendar.inline {
        display: block;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box;
        flex: 1 1 auto;
        justify-self: stretch;
        align-self: stretch;
        position: relative;
        box-shadow: none;
        border-radius: 0;
        border: 3px solid var(--card);
    }

    .flatpickr-calendar .flatpickr-months,
    .flatpickr-calendar .flatpickr-innerContainer,
    .flatpickr-calendar .flatpickr-weekdays,
    .flatpickr-calendar .flatpickr-days {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box;
    }

    .flatpickr-innerContainer {
        display: block;
    }

    .flatpickr-calendar .flatpickr-rContainer {
        display: contents !important;
        width: auto !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .flatpickr-weekwrapper {
        display: none !important;
    }

    .flatpickr-weekdaycontainer {
        display: grid !important;
        grid-template-columns: repeat(7, 1fr);
        gap: 4px;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box;
    }

    .flatpickr-weekday {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-width: 0;
        white-space: nowrap;
    }

    .flatpickr-days .dayContainer {
        display: grid !important;
        grid-template-columns: repeat(7, 1fr);
        gap: 4px;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box;
        justify-items: center;
    }

    .flatpickr-day {
        margin: 0 !important;
        padding: 0 !important;
        line-height: 1 !important;
        box-sizing: border-box;
        display: flex !important;
        align-items: center;
        justify-content: center;
        text-align: center !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1;
        transition: var(--tzh-transition-base) !important;
    }

    .flatpickr-calendar .flatpickr-days .dayContainer {
        display: grid !important;
        grid-template-columns: repeat(7, 1fr);
        column-gap: 0 !important;
        row-gap: 11px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box;
    }
}

/* ========== MAP EMBED ========== */
.tuzhely-map-embed {
    aspect-ratio: 620 / 420;
    width: 100%;
    max-height: 420px;
    max-width: 620px;
    justify-self: end;
    margin-left: auto;
}

.tuzhely-map-embed>iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

/* ========== TK EVENT TABLE (Schedule) ========== */
.tk-schedule {
    --clr-border: #b16f42;
    --clr-text: #2b140b;
    --clr-head: #fff6e9;
    --clr-hatch1: #fff6e9;
    --clr-hatch2: #f3e7db;
    --clr-event: #cf9975;
    --clr-event-t: #24130c;
    --col-w: 1fr;
    --cell-pad: 10px;
    color: var(--clr-text);
}

/* Header */
.tk-header {
    display: grid;
    grid-template-columns: repeat(4, var(--col-w));
    border: 2px solid var(--clr-border);
    border-bottom: none;
}

.tk-header>div {
    padding: 10px 8px;
    text-align: center;
    font-weight: var(--tzh-font-weight-medium);
    background: var(--clr-head);
    border-right: 2px solid var(--clr-border);
    text-transform: uppercase;
    font-family: var(--wp--preset--font-family--brandon-grotesque);
}

.tk-header>div:last-child {
    border-right: none;
}

/* Grid */
.tk-grid.tk-schedule-grid {
    display: grid;
    grid-template-columns: repeat(4, var(--col-w));
    border: 2px solid var(--clr-border);
    border-top: none;
}

/* Day */
.tk-day {
    position: relative;
    height: 400px;
    /* fixed height */
    border-right: 2px solid var(--clr-border);
    background: repeating-linear-gradient(45deg, var(--clr-hatch1) 0 3px, var(--clr-hatch2) 3px 6px);
}

.tk-day:last-child {
    border-right: none;
}

/* Event */
.tk-event {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(var(--start-pct) * 1%);
    height: calc(var(--dur-pct) * 1%);
    padding: var(--cell-pad);
    box-sizing: border-box;
    background: var(--clr-event);
    color: var(--clr-event-t);
    border: 0;
    outline: 2px solid var(--clr-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.tk-event.event-am {
    --start-pct: 0;
    --dur-pct: 30;
}

.tk-event.event-pm {
    --start-pct: 60;
    --dur-pct: 30;
}

.tk-event.event-pm.pm-late {
    --start-pct: 65;
    --dur-pct: 30;
}

.tk-event h4 {
    margin: 0 0 4px;
    font-size: 1rem;
    text-transform: uppercase;
}

.tk-event p {
    font-weight: var(--tzh-font-weight-regular);
    font-family: var(--wp--preset--font-family--brandon-grotesque);
    text-transform: uppercase;
    margin: 1rem 0 0 0;
    line-height: 1.3;
    font-size: 1rem;
}

.tk-event time {
    font-size: 1rem;
    font-weight: var(--tzh-font-weight-regular);
    font-family: var(--wp--preset--font-family--brandon-grotesque);
}

/* ========== LOADER ========== */
.loader-box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
}

.loader-box .loader-spinner {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    animation: spinner 1s infinite linear;
    background: radial-gradient(farthest-side, var(--card) 94%, rgba(0, 0, 0, 0)) top / 4px 4px no-repeat,
        conic-gradient(rgba(0, 0, 0, 0) 30%, var(--card));
    mask: radial-gradient(farthest-side, rgba(0, 0, 0, 0) calc(100% - 4px), var(--card) 0);
}

@keyframes spinner {
    100% {
        transform: rotate(1turn);
    }
}

/* ========== WS ========== */

#tuzhely-workshops .step-loader {
    position: relative;
    min-height: 40px;
}

#tuzhely-workshops .step-loader .loader-box {
    left: 1rem;
}

#tuzhely-workshops .tk-msg.tk-full-message {
    margin-top: 1rem;
}

.ws-page-main .ws-teaser-section {
    display: none;
}

/* ========== MISC ========== */
.wp-block-column .teacher-box-1,
.wp-block-column .teacher-box-2 {
    max-width: 420px;
}

.wp-block-column:has(.teacher-box-3) {
    display: none;
}

.wp-block-column.teacher-box-item .teacher-box-1 {
    margin-left: auto;
}

.tk-fireing-prices {
    display: none;
}

button[class*='back-'] {
    margin-left: auto;
}

/* ========== RESPONSIVE ========== */
@media (min-width: 1200px) {
    .tk-services-block .tk-services-card .wp-block-group.tk-product-card {
        min-height: 300px;
        display: flex;
        flex-direction: column;
    }

    .tk-services-block .tk-services-card .wp-block-group.tk-product-card .wp-element-button.tk-button {
        margin-top: auto;
        width: 100%;
        max-width: 200px;
    }
}

/* Workshop wervice cards 4 column */
@media (max-width: 1199px) {
    .is-layout-constrained>.alignwide.tk-services-block {
        flex-wrap: wrap !important;
        max-width: 960px;
    }

    .tk-services-card {
        min-width: 260px;
    }
}

/* Phone-first tweaks */
@media (max-width: 767px) {
    .wp-block-navigation__container {
        gap: 0.5rem;
    }

    .footer-teacher.wp-block-group {
        flex-wrap: wrap;
    }

    .wp-block-navigation__responsive-container-close {
        right: 10px;
        /*top: 32px !important;*/
    }

    .tk-timetable-card p {
        font-size: 1.375rem !important;
    }

    /* mobile adminbar */
    html #wpadminbar {
        display: none !important;
    }

    html {
        margin-top: 0 !important;
    }

    p,
    ul {
        font-size: 1.125rem;
    }

    .tk-membership-block .wp-block-column:first-child {
        order: 3;
    }

    .tk-services-block {
        gap: var(--wp--preset--spacing--30);
    }

    .wp-block-spacer {
        display: none;
    }

    .wp-block-group.img-fixed {
        min-height: unset !important;
        background-size: cover !important;
        background-attachment: scroll !important;
        background-repeat: no-repeat;
        aspect-ratio: 1920 / 1080;
    }

    .hero-inner p.hero-lead {
        font-weight: 390 !important;
        line-height: 1.2;
        font-size: 1.5rem;
    }

    .wp-block-group.hero-inner {
        background-position: 27% 0px !important;
        min-height: calc(100vh - 140px);
    }

    .wp-block-group.hero-inner-bg {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

@media (max-width: 781px) {
    .tuzhely-map-embed {
        width: 100%;
        max-width: 100%;
        max-height: 420px;
    }
}

@media (max-width: 600px) {
    .tk-header>div {
        font-size: 3vw;
    }

    .tk-day {
        height: 480px;
    }

    .tk-event.event-am {
        --start-pct: 0;
        --dur-pct: 40;
    }

    .tk-event.event-pm {
        --start-pct: 52;
        --dur-pct: 40;
    }

    .tk-event.event-pm.pm-late {
        --start-pct: 57;
        --dur-pct: 40;
    }

    #tuzhely-app .tk-form .tk-fields {
        gap: 12px;
    }

    .tk-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .tk-step-row {
        grid-template-columns: 1fr;
    }

    .tk-compact {
        padding: 1rem 0;
        max-width: 100%;
    }

    .tk-course {
        width: 100%;
        max-width: 360px;
    }
}

/* Hero responsiveness on short viewports */
@media (min-width: 1200px) and (max-height: 679px) {
    .wp-block-group.hero-inner {
        min-height: calc(100vh - 200px);
    }
}

@media (max-height: 679px) {
    .wp-block-group.hero-inner {
        min-height: calc(100vh - 150px) !important;
        height: unset;
        padding-top: var(--wp--preset--spacing--20) !important;
        padding-bottom: var(--wp--preset--spacing--20) !important;
        padding-left: var(--wp--preset--spacing--80) !important;
        padding-right: var(--wp--preset--spacing--20) !important;
    }

    .wp-block-group.hero-inner.hero-book {
        padding-left: var(--wp--preset--spacing--20) !important;
    }

    .wp-block-group.hero-inner h1 {
        font-size: 34px;
        font-weight: var(--tzh-font-weight-light);
    }

    .wp-block-group.hero-inner p {
        font-size: 1.375rem;
        font-weight: var(--tzh-font-weight-light);
    }
}