/* T&T Turnov global styles */
@font-face {
    font-family: 'Material Symbols Outlined';
    font-style: normal;
    font-weight: 100 700;
    font-display: swap;
    src: url('fonts/material-symbols-outlined.ttf') format('truetype');
}

html { scroll-behavior: smooth; }

body {
    background-color: #ffffff;
    color: #1a1a1a;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.material-symbols-outlined {
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    font-feature-settings: 'liga';
    -webkit-font-feature-settings: 'liga';
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.tt-skip-link {
    position: fixed;
    left: 1rem;
    top: 1rem;
    z-index: 9999;
    transform: translateY(-150%);
    background: #ffffff;
    color: #1a1a1a;
    border: 2px solid #ff6b00;
    padding: 0.75rem 1rem;
    font-weight: 700;
}
.tt-skip-link:focus { transform: translateY(0); }

/* Block group display:contents fix to allow Tailwind grid/flex on core/group */
.wp-block-group:where(.flex, .grid, .inline-flex, .inline-grid, .absolute,
                       [class*=":grid"], [class*=":flex"])
  > .wp-block-group__inner-container { display: contents; }
.wp-block-group:where(.flex, .grid, .inline-flex, .inline-grid, .absolute,
                       [class*=":grid"], [class*=":flex"])
  > .wp-block-group__inner-container > * { margin-block-start: 0; margin-block-end: 0; }

/* Buttons */
.wp-block-button.is-style-tt-primary .wp-block-button__link {
    background-color: #ff6b00;
    color: #351000;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 0;
    padding: 12px 24px;
}
.wp-block-button.is-style-tt-outline .wp-block-button__link {
    background-color: transparent;
    color: #ffffff;
    border: 1px solid #ffffff;
    border-radius: 0;
    padding: 12px 24px;
}

/* Page hero block (reused) */
.tt-hero { position: relative; }
.tt-hero img { object-fit: cover; }

/* HP HERO Swiper carousel */
.tt-hero-swiper-wrap { min-height: 600px; }
.tt-hero-swiper.swiper {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    max-width: 1920px;
    height: 100%;
}
.tt-hp-hero .tt-hero-swiper {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
}
.tt-hero-swiper .swiper-slide { overflow: hidden; }
.tt-hero-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.tt-hero-swiper-pagination .swiper-pagination-bullet {
    width: 32px;
    height: 3px;
    border-radius: 0;
    background: rgba(255,255,255,0.4);
    opacity: 1;
    margin: 0 4px;
    cursor: pointer;
    transition: background 0.3s ease;
}
.tt-hero-swiper-pagination .swiper-pagination-bullet-active {
    background: #ff6b00;
}
.tt-hero-overlay {
    background: linear-gradient(
        to right,
        rgba(13,13,13,0.92) 0%,
        rgba(13,13,13,0.88) 35%,
        rgba(13,13,13,0.45) 65%,
        rgba(13,13,13,0.10) 100%
    );
}
@media (max-width: 768px) {
    .tt-hero-overlay {
        background: rgba(13,13,13,0.72);
    }
}

/* HP katalog — vertikální scroll seznamu karet bez viditelného scrollbaru */
.tt-catalog-list {
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 3.5rem; /* clearance for the h-12 fade + arrow */
}
.tt-catalog-list::-webkit-scrollbar { display: none; height: 0; width: 0; }

/* Cap image to same height as the list (max-h-[420px]) so both columns
   are equal height and section padding is visually balanced */
.tt-catalog-img {
    max-height: 420px;
    overflow: hidden;
    margin: 0;
}
.tt-catalog-img img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    display: block;
}
.tt-catalog-list-arrow {
    animation: tt-arrow-bounce 1.8s ease-in-out infinite;
    transition: opacity 0.25s ease;
}
.tt-catalog-list-arrow-up {
    animation-name: tt-arrow-bounce-up;
}
.tt-catalog-list-fade { transition: opacity 0.25s ease; }
@keyframes tt-arrow-bounce {
    0%, 100% { transform: translate(-50%, 0); }
    50%      { transform: translate(-50%, 5px); }
}
@keyframes tt-arrow-bounce-up {
    0%, 100% { transform: translate(-50%, 0); }
    50%      { transform: translate(-50%, -5px); }
}

/* HP tradice — equal-height photos + outline button */
.tt-hp-tradice .wp-block-column figure {
    margin: 0;
    overflow: hidden;
}
.tt-hp-tradice .wp-block-column figure img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    display: block;
}
.tt-hp-tradice .wp-block-buttons {
    margin-top: 1.5rem;
}
.tt-gb-content .tt-hp-tradice .wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent !important;
    color: #1a1a1a !important;
    border: 1px solid #1a1a1a !important;
    border-radius: 0 !important;
    padding: 11px 24px !important;
    text-transform: uppercase;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}
.tt-gb-content .tt-hp-tradice .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: #1a1a1a !important;
    color: #ffffff !important;
}

/* Produktové spec tabulky */
.tt-specs-table { margin: 1.5rem 0; }
.tt-specs-table table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.95rem;
}
.tt-specs-table td {
    padding: 10px 14px;
    border: 1px solid #e5e5e5;
    vertical-align: top;
    line-height: 1.45;
}
.tt-specs-table td:first-child {
    width: 42%;
    color: #1a1a1a;
    background: #fafafa;
}
.tt-specs-table td:nth-child(2) {
    color: #444;
}
.tt-specs-table.is-style-stripes tbody tr:nth-child(odd) td:nth-child(2) {
    background: #fdfdfd;
}
.tt-specs-table.is-style-stripes tbody tr:nth-child(even) td:first-child {
    background: #f3f3f3;
}

/* Card hover */
.tt-card { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.tt-card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0,0,0,0.08); }

/* Blog card: obrázek grayscale → barevný na hover karty */
.tt-blog-card .tt-blog-img {
    filter: grayscale(100%);
    transition: filter 0.4s ease;
}
.tt-blog-card:hover .tt-blog-img {
    filter: grayscale(0);
}

/* O nás */
@media (min-width: 1024px) {
    .tt-onas-hero .wp-block-columns > .wp-block-column:first-child {
        padding-left: 32px;
    }
}

@media (max-width: 499px) {
    .tt-onas-experience {
        transform: translateY(50px);
    }

    .tt-onas-experience p:first-child {
        font-size: 24px;
    }
}

@media (max-width: 319px) {
    .tt-onas-experience-wrap {
        padding-left: 0;
        padding-bottom: 0;
    }

    .tt-onas-experience {
        position: static;
        width: fit-content;
        transform: none;
    }
}

@media (max-width: 460px) {
    .tt-onas-milniky .max-w-4xl > .absolute {
        left: 18px;
        transform: none;
    }

    .tt-onas-milniky .max-w-4xl > .relative.grid {
        grid-template-columns: 1fr;
        gap: 0;
        padding-left: 24px;
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .tt-onas-milniky .max-w-4xl > .relative.grid > div {
        grid-column: 1;
        text-align: left;
        padding-left: 14px;
        padding-right: 0;
    }

    .tt-onas-milniky .max-w-4xl > .relative.grid p:first-child {
        font-size: 24px;
    }

    .tt-onas-milniky .max-w-4xl > .relative.grid p:last-child {
        font-size: 14px;
        line-height: 1.5;
    }

    .tt-onas-milniky .max-w-4xl > .relative.grid > span {
        left: 18px;
    }
}

/* O nás — team card: stejný grayscale efekt */
.tt-team-card .tt-team-img {
    filter: grayscale(100%);
    transition: filter 0.4s ease;
}
.tt-team-card:hover .tt-team-img {
    filter: grayscale(0);
}

/* O nás — mobilní popisky obrázků odvětví */
@media (max-width: 767px) {
    .tt-onas-odvetvi .grid.grid-cols-2 .absolute.inset-0.flex {
        padding: 0.75rem !important;
    }
    .tt-onas-odvetvi .grid.grid-cols-2 .text-2xl {
        font-size: 0.875rem !important;
        line-height: 1.25rem !important;
    }
}

/* HP — Lídři v oboru galerie: grayscale → barevný na hover */
.tt-gallery-card .tt-gallery-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: filter 0.4s ease;
}
.tt-gallery-card:hover .tt-gallery-img {
    filter: grayscale(0);
}

/* HP — tagy v kartách se mají zalomit, když se nevejdou do řádku. */
.tt-gb-content .wp-block-column > .flex.gap-2.mt-4 {
    flex-wrap: wrap;
}

/* Header: desktop menu se kvůli dlouhému CTA přepíná až od 1200 px. */
@media (max-width: 1199px) {
    .tt-desktop-nav,
    .tt-menu-cta {
        display: none !important;
    }

    .tt-burger {
        display: inline-flex !important;
        align-items: center;
    }

    .tt-mobile-nav:not(.hidden) {
        display: block !important;
    }
}

@media (min-width: 1200px) {
    .tt-desktop-nav {
        display: flex !important;
    }

    .tt-menu-cta {
        display: inline-flex !important;
        white-space: nowrap;
    }

    .tt-burger,
    .tt-mobile-nav {
        display: none !important;
    }
}

/* Research: spec řádky v dark sekci */
.tt-res-spec-row {
    border-left: 3px solid #ff6b00;
    padding-left: 1.25rem;
    padding-bottom: 1.75rem;
    margin-bottom: 1.75rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
.tt-res-spec-row:last-of-type {
    border-bottom: none;
    margin-bottom: 1.75rem;
}
.tt-res-spec-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.35);
    margin-bottom: 0.4rem;
}
.tt-res-spec-value {
    font-size: 1.15rem;
    color: #ffffff;
    font-weight: 400;
}

/* Research: vývojový proces — kroky s outline rámečkem */
.tt-res-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    position: relative;
}
.tt-res-steps::before {
    content: '';
    position: absolute;
    top: 1.75rem;
    left: 1.75rem;
    right: 1.75rem;
    height: 1px;
    background: #d4d4d4;
    z-index: 0;
}
.tt-res-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    position: relative;
    z-index: 1;
}
.tt-res-step-num {
    width: 3.5rem;
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #ff6b00;
    color: #ff6b00;
    font-weight: 700;
    font-size: 0.85rem;
    background: #f5f5f5;
    border-radius: 4px;
}
.tt-res-step-title {
    font-size: 0.9rem;
    color: #1a1a1a;
    font-weight: 400;
    text-align: center;
}
@media (max-width: 900px) {
    .tt-res-steps { grid-template-columns: 1fr; gap: 2.5rem; }
    .tt-res-steps::before { display: none; }
    .tt-res-step { flex-direction: column; align-items: center; }
    .tt-res-step-title { text-align: center; }
}

/* Research: CTA sloupce 55/45 */
.tt-res-cta-left {
    flex: 0 0 55%;
    min-width: 0;
}
.tt-res-cta-form {
    flex: 0 0 45%;
    min-width: 0;
}

/* Research: standalone grayscale → barevný na hover */
.tt-res-hero-img,
.tt-res-nx10-img {
    filter: grayscale(100%);
    transition: filter 0.4s ease;
}
.tt-res-hero-img:hover,
.tt-res-nx10-img:hover {
    filter: grayscale(0);
}

/* Product pages */
.tt-prod-hero .relative > .absolute.bg-zinc-900.text-white {
    left: -1rem !important;
    right: auto !important;
    bottom: calc(-1.25rem - 50px) !important;
}

@media (max-width: 767px) {
    .tt-prod-hero .relative > .absolute.bg-zinc-900.text-white {
        left: 0 !important;
        bottom: calc(-0.75rem - 50px) !important;
        max-width: calc(100% - 1rem);
    }
}

.tt-prod-spec-card {
    background-color: #ffffff;
    border: 1px solid #e5e7eb;
    padding: 1.75rem;
}
.tt-prod-spec-title {
    font-size: 1rem;
    line-height: 1.25;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #ff6b00;
    font-weight: 600;
    padding-bottom: 0.75rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #e5e7eb;
}
.tt-prod-spec-row {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid #f3f3f3;
}
.tt-prod-spec-key {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #999;
}
.tt-prod-spec-val {
    font-size: 0.9rem;
    color: #1a1a1a;
    font-weight: 500;
}
.tt-prod-feat-item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}
.tt-prod-feat-icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border: 1px solid #ff6b00;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Kariéra: sekce pozadí */
.tt-kar-benefity,
.tt-kar-pozice.wp-block-group {
    background-color: #f9f9f9 !important;
}

/* Kariéra: benefit karty */
.tt-kar-benefit-card {
    background-color: #f5f5f5;
    border: 1.5px solid #ff6b00;
    padding: 1.5rem 1.75rem;
}

/* Kariéra: větší odsazení nad sekčními nadpisy a volnější mezera pod nimi */
.tt-kar-benefity h2,
.tt-kar-pozice h2,
.tt-kar-odpovedet h2 {
    margin-top: 1.25rem !important;
    margin-bottom: 1.25rem !important;
}

.tt-kar-benefity .mb-12,
.tt-kar-pozice h2 + div {
    margin-bottom: 4rem !important;
}

.tt-kariera-content h1,
.tt-kariera-content h2,
.tt-kariera-content h3,
.tt-kariera-content h4,
.tt-kariera-content h5,
.tt-kariera-content h6 {
    margin-top: 20px !important;
    margin-bottom: 10px !important;
    font-weight: 600 !important;
}
.tt-kariera-content h1 { font-size: 2.25rem !important; line-height: 1.2 !important; }
.tt-kariera-content h2 { font-size: 1.75rem !important; line-height: 1.25 !important; }
.tt-kariera-content h3 { font-size: 1.375rem !important; line-height: 1.3 !important; }
.tt-kariera-content h4 { font-size: 1.125rem !important; line-height: 1.4 !important; }
.tt-kariera-content h5,
.tt-kariera-content h6 { font-size: 1rem !important; line-height: 1.45 !important; }

@media (min-width: 768px) {
    .tt-kar-benefity h2,
    .tt-kar-pozice h2,
    .tt-kar-odpovedet h2 {
        margin-top: 2rem !important;
        margin-bottom: 1.5rem !important;
    }
}

/* Gutenberg homepage (.tt-gb-content) — sjednocení tlačítek s designem
   (square corners, uppercase, ostré barvy bez pill-shape defaultu).         */
.tt-gb-content .wp-block-button__link {
    border-radius: 0 !important;
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: 500;
    padding: 1rem 2rem;
    letter-spacing: 0.02em;
    transition: background-color 0.2s ease;
}
/* Filled orange button */
.tt-gb-content .wp-block-button:not(.is-style-outline) .wp-block-button__link.has-tt-orange-background-color {
    color: #fff !important;
    box-shadow: 4px 4px 0 0 rgba(0,0,0,0.1);
}
.tt-gb-content .wp-block-button:not(.is-style-outline) .wp-block-button__link.has-tt-orange-background-color:hover {
    background-color: #f97316 !important;
}
/* Outline button (white border, transparent bg, white text) */
.tt-gb-content .wp-block-button.is-style-outline .wp-block-button__link {
    background-color: transparent !important;
    color: #fff !important;
    border: 2px solid #fff !important;
}
.tt-gb-content .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background-color: #fff !important;
    color: #000 !important;
}

/* Gutenberg HP — blog featured images: edge-to-edge bez okolního padding,
   grayscale → barvy na hover karty */
.tt-gb-content .tt-gb-post-thumb,
.tt-gb-content .wp-block-post-featured-image {
    margin: 0 !important;
    padding: 0 !important;
}
.tt-gb-content .wp-block-post-featured-image img {
    width: 100% !important;
    height: auto;
    display: block;
    filter: grayscale(100%);
    transition: filter 0.4s ease;
}
.tt-gb-content .wp-block-post:hover .wp-block-post-featured-image img,
.tt-gb-content .wp-block-column:hover .wp-block-post-featured-image img {
    filter: grayscale(0);
}

/* Read-more link "ČÍST ČLÁNEK" + Material Symbol šipka (sjednoceno s ACF) */
.tt-gb-content .tt-gb-read-more,
.tt-gb-content .wp-block-read-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 1.5rem;
    font-size: 0.75rem;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: #1a1a1a;
    text-decoration: none;
    transition: color 0.2s ease;
}
.tt-gb-content .tt-gb-read-more::after,
.tt-gb-content .wp-block-read-more::after {
    content: 'arrow_right_alt';
    font-family: 'Material Symbols Outlined';
    font-feature-settings: 'liga';
    font-weight: normal;
    font-size: 18px;
    line-height: 1;
    text-transform: none;
    letter-spacing: 0;
    font-variation-settings: 'wght' 500;
    display: inline-block;
    transform: translateY(-1px);
}
.tt-gb-content .tt-gb-read-more:hover,
.tt-gb-content .wp-block-read-more:hover {
    color: #ff6b00;
}

/* Gutenberg HP — sekce "Co by vás mohlo zajímat":
   3 karty mají outer border, žádné gaps a vertikální separator mezi sebou. */
.tt-gb-content .tt-hp-blog .wp-block-columns {
    gap: 0 !important;
    border: 1px solid #e4e4e7;
    background: #fff;
}
.tt-gb-content .tt-hp-blog .wp-block-column {
    border-right: 1px solid #f4f4f5;
    margin: 0 !important;
}
.tt-gb-content .tt-hp-blog .wp-block-column:last-child {
    border-right: none;
}

/* O nás — formulář na světlé sekci (sekce KONTAKT na /onas/).
   Černé submit tlačítko, světlé inputy, jiné rozložení než tmavý HP form. */
.tt-form-onas .wpforms-container,
.tt-form-onas div.wpforms-container-full {
    --wpforms-field-background-color: #ffffff !important;
    --wpforms-field-border-color: #d4d4d8 !important;
    --wpforms-field-text-color: #1a1a1a !important;
    --wpforms-label-color: #1a1a1a !important;
    --wpforms-label-sublabel-color: #71717a !important;
    --wpforms-button-background-color: #1a1a1a !important;
    --wpforms-button-background-color-alt: #27272a !important;
    --wpforms-button-text-color: #ffffff !important;
    --wpforms-button-text-color-alt: #ffffff !important;
    --wpforms-container-border-style: none !important;
    --wpforms-background-color: transparent !important;
    --wpforms-field-size-input-height: 50px !important;
    --wpforms-field-size-input-spacing: 8px !important;
    --wpforms-field-size-padding-h: 14px !important;
    --wpforms-label-size-font-size: 11px !important;
    --wpforms-button-size-height: 52px !important;
    --wpforms-button-size-font-size: 14px !important;
}
.tt-form-onas div.wpforms-container-full input[type=text],
.tt-form-onas div.wpforms-container-full input[type=email],
.tt-form-onas div.wpforms-container-full textarea,
.tt-form-onas div.wpforms-container-full select {
    background-color: #ffffff !important;
    border: 1px solid #d4d4d8 !important;
    color: #1a1a1a !important;
}
.tt-form-onas div.wpforms-container-full .wpforms-field-label {
    color: #1a1a1a !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    font-weight: 500 !important;
}
.tt-form-onas div.wpforms-container-full .wpforms-required-label {
    color: #ff6b00 !important;
}
.tt-form-onas div.wpforms-container-full .wpforms-field {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}
.tt-form-onas div.wpforms-container-full textarea.wpforms-field-large {
    height: 170px !important;
}
/* Submit přes celou šířku, černé pozadí */
.tt-form-onas div.wpforms-container-full .wpforms-submit-container {
    text-align: stretch !important;
}
.tt-form-onas div.wpforms-container-full button.wpforms-submit {
    background-color: #1a1a1a !important;
    color: #ffffff !important;
    border-color: transparent !important;
    text-transform: uppercase !important;
    font-weight: 500 !important;
    letter-spacing: 0.05em !important;
    width: 100% !important;
}
.tt-form-onas div.wpforms-container-full button.wpforms-submit:hover {
    background-color: #27272a !important;
}

/* Timeline */
.tt-timeline { position: relative; padding-left: 2rem; }
.tt-timeline::before {
    content: "";
    position: absolute;
    left: 8px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #e5e5e5;
}
.tt-timeline-item { position: relative; padding-bottom: 2.5rem; }
.tt-timeline-item::before {
    content: "";
    position: absolute;
    left: -1.75rem;
    top: 6px;
    width: 14px;
    height: 14px;
    background: #ff6b00;
    border-radius: 50%;
    border: 3px solid #ffffff;
    box-shadow: 0 0 0 2px #ff6b00;
}

/* Section label */
.tt-eyebrow { text-transform: uppercase; letter-spacing: 0.08em; color: #ff6b00; font-size: 11px; font-weight: 700; }

/* WPForms style overrides to match design */
.wpforms-container { max-width: none !important; }
.wpforms-container button.wpforms-submit {
    background-color: #ff6b00 !important;
    color: #351000 !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 14px 28px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 14px !important;
    letter-spacing: 0.05em !important;
}
.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel],
.wpforms-container input[type=url],
.wpforms-container textarea,
.wpforms-container select {
    border-radius: 0 !important;
    border: 1px solid #e5e5e5 !important;
    background: #f7f7f7 !important;
    padding: 12px !important;
}
.wpforms-container label { font-weight: 600 !important; color: #1a1a1a !important; }
.wpforms-container .mailcheck-error,
.wpforms-container .mailcheck-suggestion,
.wpforms-container .mailcheck-suggestion:hover {
    color: #dc2626 !important;
    font-weight: 400 !important;
}

@media (max-width: 767px) {
    .wpforms-container.wpforms-container-full.wpforms-render-modern {
        padding: 10px !important;
    }
}

/* WPForms — tmavá varianta (sekce KONTAKT na bg #131313).
   WPForms Modern Markup používá CSS proměnné. Overriduji je
   na containeru (vyhrává nad :root) a navíc přes direct property
   override s vysokou specifičností (selector odpovídá WPForms vnitřnímu
   `div.wpforms-container-full input[type=...]`). */

/* (1) Variables — vyhrávají nad :root deklarací */
.tt-form-dark .wpforms-container,
.tt-form-dark div.wpforms-container-full {
    /* barvy */
    --wpforms-field-background-color: #27272a !important; /* zinc-800 */
    --wpforms-field-border-color: #3f3f46 !important;     /* zinc-700 */
    --wpforms-field-border-color-spare: #3f3f46 !important;
    --wpforms-field-text-color: #ffffff !important;
    --wpforms-field-menu-color: #ffffff !important;
    --wpforms-label-color: #ffffff !important;
    --wpforms-label-sublabel-color: #a1a1aa !important;
    --wpforms-label-error-color: #ff6b00 !important;
    --wpforms-button-background-color: #ff6b00 !important;
    --wpforms-button-background-color-alt: #f97316 !important;
    --wpforms-button-text-color: #ffffff !important;
    --wpforms-button-text-color-alt: #ffffff !important;
    --wpforms-button-border-color: transparent !important;
    --wpforms-background-color: transparent !important;
    /* container border kolem celého formuláře (dle designu) */
    --wpforms-container-border-style: solid !important;
    --wpforms-container-border-width: 1px !important;
    --wpforms-container-border-color: #3f3f46 !important;
    --wpforms-container-padding: 32px !important;
    /* zvětšené pole + tlačítko, labely přisazené k inputu (malý gap) */
    --wpforms-field-size-input-height: 56px !important;
    --wpforms-field-size-input-spacing: 8px !important;   /* label ↔ input */
    --wpforms-field-size-padding-h: 18px !important;
    --wpforms-field-size-font-size: 15px !important;
    --wpforms-label-size-font-size: 11px !important;
    --wpforms-button-size-height: 56px !important;
    --wpforms-button-size-padding-h: 40px !important;
    --wpforms-button-size-font-size: 15px !important;
}

/* (2) Direct property overrides — pojistka kdyby variables propadly */
.tt-form-dark div.wpforms-container-full input[type=text],
.tt-form-dark div.wpforms-container-full input[type=email],
.tt-form-dark div.wpforms-container-full input[type=tel],
.tt-form-dark div.wpforms-container-full input[type=url],
.tt-form-dark div.wpforms-container-full input[type=number],
.tt-form-dark div.wpforms-container-full input[type=password],
.tt-form-dark div.wpforms-container-full textarea,
.tt-form-dark div.wpforms-container-full select {
    background-color: #27272a !important;
    color: #ffffff !important;
    border-color: #3f3f46 !important;
}
/* Rozbalený seznam selectu má bílé pozadí (nativní OS) — text musí být tmavý,
   jinak bílý text na bílém = nečitelné */
.tt-form-dark div.wpforms-container-full select option {
    background-color: #ffffff !important;
    color: #18181b !important;
}
.tt-form-dark div.wpforms-container-full input::placeholder,
.tt-form-dark div.wpforms-container-full textarea::placeholder {
    color: #71717a !important;
    opacity: 1 !important;
}
.tt-form-dark div.wpforms-container-full .wpforms-field-label,
.tt-form-dark div.wpforms-container-full label.wpforms-field-label,
.tt-form-dark div.wpforms-container-full .wpforms-field-sublabel {
    color: #ffffff !important;
}
/* Kariérní formuláře: kompaktní pole Zpráva / Message */
.tt-form-dark div.wpforms-container-full #wpforms-161-field_5,
.tt-form-dark div.wpforms-container-full #wpforms-201-field_5 {
    height: 72px !important;
    min-height: 72px !important;
    resize: vertical;
}
/* Kariéra + detail pozice: formulář musí navazovat přímo na rámeček wrapperu. */
.tt-form-dark #wpforms-161,
.tt-form-dark #wpforms-201 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
}
/* File upload (modern dropzone) tmavá + kompaktní (1 řádek) */
.tt-form-dark div.wpforms-container-full .wpforms-uploader,
.tt-form-dark div.wpforms-container-full .dropzone,
.tt-form-dark div.wpforms-container-full .dz-default {
    background-color: #27272a !important;
    border: 1px dashed #3f3f46 !important;
    color: #a1a1aa !important;
    min-height: 56px !important;
    padding: 0 18px !important;
}
.tt-form-dark div.wpforms-container-full .wpforms-uploader .dz-message,
.tt-form-dark div.wpforms-container-full .dz-message {
    color: #a1a1aa !important;
    margin: 0 !important;
    padding: 16px 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    justify-content: flex-start !important;
    text-align: left !important;
}
.tt-form-dark div.wpforms-container-full .dz-message * { color: #a1a1aa !important; }
/* Skrýt velkou ikonu uploadu (necháme jen text — kompaktnější) */
.tt-form-dark div.wpforms-container-full .dz-message svg,
.tt-form-dark div.wpforms-container-full .wpforms-uploader-icon { display: none !important; }
/* Skrýt vedlejší hint pod uploaderem ("Můžete nahrát až X souborů.") */
.tt-form-dark div.wpforms-container-full .modern-hint,
.tt-form-dark div.wpforms-container-full .wpforms-uploader-message { display: none !important; }
/* Modern-title splývá s parent flex layoutem */
.tt-form-dark div.wpforms-container-full .modern-title { font-size: 14px !important; }
/* "Choose Files to Upload" odkaz — splývá s textem (dle designu),
   celá drop zone je tak jako tak klikatelná */
.tt-form-dark div.wpforms-container-full .wpforms-file-upload-choose-file {
    color: #a1a1aa !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
/* Submit button — offset shadow jako u HERO tlačítek */
.tt-form-dark div.wpforms-container-full button.wpforms-submit {
    background-color: #ff6b00 !important;
    color: #000000 !important;
    border-color: transparent !important;
    box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 0.4) !important;
    font-size: 17px !important;
    font-weight: 500 !important;
}
.tt-form-dark div.wpforms-container-full button.wpforms-submit:hover {
    background-color: #f97316 !important;
    box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 0.5) !important;
}

/* Container border kolem celého formu — jistota přes přímý border */
.tt-form-dark div.wpforms-container-full {
    border: 1px solid #3f3f46 !important;
    padding: 32px !important;
    border-radius: 0 !important;
}
/* Labely zmenšeny a uppercase dle designu */
.tt-form-dark .wpforms-container .wpforms-field-label,
.tt-form-dark .wpforms-container .wpforms-field-sublabel {
    font-size: 10px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}
/* Required hvězdička v brand barvě */
.tt-form-dark .wpforms-container .wpforms-required-label,
.tt-form-dark .wpforms-container .wpforms-field-required::after {
    color: #ff6b00 !important;
}
/* Placeholder čitelnější */
.tt-form-dark .wpforms-container input::placeholder,
.tt-form-dark .wpforms-container textarea::placeholder {
    color: #71717a !important;            /* zinc-500 */
    opacity: 1;
}
/* Checkbox text bez uppercase a malý (nepřebírá label styl) */
.tt-form-dark .wpforms-container .wpforms-field-checkbox label,
.tt-form-dark .wpforms-container .wpforms-field-checkbox .wpforms-field-label-inline {
    color: #a1a1aa !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
/* Vlastní checkbox: prázdný rámeček, po zaškrtnutí oranžový s bílou fajfkou */
.tt-form-dark .wpforms-container .wpforms-field-checkbox input[type=checkbox] {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 18px !important;
    height: 18px !important;
    background-color: transparent !important;
    border: 1px solid #71717a !important;
    border-radius: 2px !important;
    cursor: pointer !important;
    position: relative !important;
    margin-right: 10px !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
}
.tt-form-dark .wpforms-container .wpforms-field-checkbox input[type=checkbox]:checked {
    background-color: #ff6b00 !important;
    border-color: #ff6b00 !important;
}
.tt-form-dark .wpforms-container .wpforms-field-checkbox input[type=checkbox]:checked::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
/* Odkaz "osobních údajů" v souhlasu — oranžový */
.tt-form-dark .wpforms-container .wpforms-field-checkbox label a {
    color: #ff6b00 !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
}
.tt-form-dark .wpforms-container .wpforms-field-checkbox label a:hover {
    text-decoration: none !important;
}
/* Submit zarovnaný vpravo */
.tt-form-dark .wpforms-container .wpforms-submit-container {
    text-align: right !important;
}
.tt-form-dark .wpforms-container button.wpforms-submit {
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}
/* File upload drag&drop oblast tmavá */
.tt-form-dark .wpforms-container .wpforms-uploader,
.tt-form-dark .wpforms-container .dz-message {
    background-color: #27272a !important;
    border-color: #3f3f46 !important;
    color: #a1a1aa !important;
}

/* ── Heading unification ─────────────────────────────────────────────────────
   Normalize all headings to semibold (600). Overrides Tailwind font-bold /
   font-extrabold utility classes hardcoded in Gutenberg block attributes.
   Hero / marketing headings inside dedicated wrappers keep their display sizes
   but also get the weight correction.
   ─────────────────────────────────────────────────────────────────────────── */
h1, h2, h3, h4,
.wp-block-heading {
    font-weight: 600 !important;
}

/* Size scale for content headings (Gutenberg) */
h1.wp-block-heading { font-size: 2.25rem !important; line-height: 1.2 !important; }
h2.wp-block-heading { font-size: 1.75rem !important; line-height: 1.25 !important; }
h3.wp-block-heading { font-size: 1.375rem !important; line-height: 1.3 !important; }
h4.wp-block-heading { font-size: 1.125rem !important; line-height: 1.4 !important; }

/* Hero / display headings – keep size, just correct weight */
.tt-hp-hero h1,
.tt-hp-hero h2,
.tt-prod-hero h1,
.tt-prod-hero h2 {
    font-weight: 600 !important;
}

/* Dočasně skrýt odkazy na Facebook a Instagram bez odstranění markupů. */
a[href*="facebook.com"],
a[href*="instagram.com"] {
    display: none !important;
}

/* WPForms — kompaktní jednosloupcové rozložení na mobilu */
@media (max-width: 767px) {
    .wpforms-container .wpforms-one-half,
    .wpforms-container .wpforms-two-fifths,
    .wpforms-container .wpforms-one-fifth {
        float: none !important;
        width: 100% !important;
        margin-left: 0 !important;
    }

    .tt-form-onas {
        padding: 1rem !important;
    }
    .tt-form-onas div.wpforms-container-full {
        padding: 0 !important;
    }
    .tt-form-dark div.wpforms-container-full {
        padding: 1rem !important;
    }
}

/* Accessibility and performance cleanup */
.tt-gb-content .text-tt-orange,
.tt-gb-content .hover\:text-tt-orange:hover,
.tt-eyebrow {
    color: #ff6b00 !important;
}

.tt-gb-content .bg-tt-orange,
.tt-menu-cta,
.wp-block-button__link.has-tt-orange-background-color {
    background-color: #ff6b00 !important;
}

.tt-gb-content .border-tt-orange {
    border-color: #ff6b00 !important;
}

.tt-gb-content .text-tt-light {
    color: #666666 !important;
}

.tt-hp-catalog .text-tt-orange,
.tt-hp-kontakt .text-tt-orange {
    color: #ff6b00 !important;
}

.tt-gb-content .bg-tt-orange .material-symbols-outlined,
.tt-gb-content .tt-catalog-list-arrow .material-symbols-outlined {
    color: #000000 !important;
}

.tt-hp-catalog .bg-tt-orange,
.tt-hp-kontakt .bg-tt-orange {
    background-color: #ff6b00 !important;
}

.tt-hp-catalog .border-tt-orange,
.tt-hp-kontakt .border-tt-orange {
    border-color: #ff6b00 !important;
}

header.bg-black .text-tt-orange,
.tt-hp-hero .text-tt-orange {
    color: #ff6b00 !important;
}

.tt-hp-hero .bg-tt-orange {
    background-color: #ff6b00 !important;
}

.tt-gb-content .bg-tt-orange-soft {
    background-color: #fff7ed !important;
}

.tt-gb-content .tt-hp-blog time {
    color: #666666 !important;
}

.wpforms-error-noscript {
    color: #ffffff !important;
}

.tt-gallery-card:has(img:not([alt])),
.tt-gallery-card:has(img[alt=""]) {
    position: relative;
}

.tt-gallery-card:has(img:not([alt]))::after,
.tt-gallery-card:has(img[alt=""])::after {
    content: attr(aria-label);
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

input.dz-hidden-input {
    pointer-events: none !important;
}

/* Single post: consistent rhythm between article content elements. */
.tt-single-content :is(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, figure, table) {
    margin-bottom: 10px;
}

.tt-single-content {
    font-size: 16px;
    line-height: 1.7;
}

.tt-single-content h1 { font-size: 36px !important; line-height: 1.2 !important; }
.tt-single-content h2 { font-size: 30px !important; line-height: 1.25 !important; }
.tt-single-content h3 { font-size: 24px !important; line-height: 1.3 !important; }
.tt-single-content h4 { font-size: 20px !important; line-height: 1.4 !important; }
.tt-single-content h5 { font-size: 18px !important; line-height: 1.45 !important; }
.tt-single-content h6 { font-size: 16px !important; line-height: 1.5 !important; }

.tt-single-content :is(h1, h2, h3, h4, h5, h6) {
    margin-top: 15px;
}

/* Classic Editor / Gutenberg content defaults (Tailwind reset removes these). */
.tt-single-content ul {
    list-style: disc outside;
    padding-left: 1.75rem;
}

.tt-single-content ol {
    list-style: decimal outside;
    padding-left: 1.75rem;
}

.tt-single-content ul ul { list-style-type: circle; }
.tt-single-content ul ul ul { list-style-type: square; }
.tt-single-content ol ol { list-style-type: lower-alpha; }

.tt-single-content li {
    margin-bottom: 6px;
}

.tt-single-content li:last-child {
    margin-bottom: 0;
}

.tt-single-content li > :is(ul, ol) {
    margin-top: 6px;
    margin-bottom: 0;
}

.tt-single-content li::marker {
    color: #ff6b00;
}

.tt-single-content a:not(.wp-block-button__link) {
    color: #ff6b00;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tt-single-content a:not(.wp-block-button__link):hover {
    color: #1a1a1a;
}

.tt-single-content blockquote {
    border-left: 4px solid #ff6b00;
    background: #f9f9f9;
    padding: 12px 16px;
    font-style: italic;
}

.tt-single-content :is(img, video, iframe) {
    max-width: 100%;
    height: auto;
}

.tt-single-content .alignleft {
    float: left;
    margin: 0 20px 10px 0;
}

.tt-single-content .alignright {
    float: right;
    margin: 0 0 10px 20px;
}

.tt-single-content .aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.tt-single-content::after {
    content: '';
    display: table;
    clear: both;
}

.tt-single-content :is(figcaption, .wp-caption-text) {
    margin-top: 5px;
    color: #666666;
    font-size: 14px;
    line-height: 1.4;
}

.tt-single-content table {
    display: block;
    width: 100%;
    overflow-x: auto;
    border-collapse: collapse;
}

.tt-single-content :is(th, td) {
    border: 1px solid #e4e4e7;
    padding: 8px 10px;
    text-align: left;
}

.tt-single-content th {
    background: #f4f4f5;
    font-weight: 700;
}

.tt-single-content pre {
    max-width: 100%;
    margin-bottom: 10px;
    padding: 14px 16px;
    overflow-x: auto;
    background: #131313;
    color: #ffffff;
    font-size: 14px;
    line-height: 1.5;
}

.tt-single-content :not(pre) > code {
    background: #f4f4f5;
    padding: 2px 5px;
    font-size: 0.9em;
}

.tt-single-content hr {
    margin: 20px 0;
    border-top: 1px solid #e4e4e7;
}

@media (max-width: 1023px) {
    .tt-post-contact-photo {
        max-width: 300px;
    }
}
