/* IFB telc-Prüfungen – finale Fassung 1.0.3 */

.ifb-telc-page .site.grid-container,
.ifb-telc-page .site-content,
.ifb-telc-page .content-area,
.ifb-telc-page #main,
.ifb-telc-page .inside-article {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ifb-telc-page .entry-header,
.ifb-telc-page .entry-content {
    display: none !important;
}

.ifb-telc-page--final {
    --telc-ink: #1d2738;
    --telc-text: #4b5565;
    --telc-muted: #667085;
    --telc-accent: #7a5c35;
    --telc-accent-dark: #60441f;
    --telc-warm: #f8f3eb;
    --telc-soft: #f4f5f7;
    --telc-line: #e3d9cc;
    --telc-panel: #2f3542;
    --telc-blue: #0000aa;
    overflow: clip;
}

.ifb-telc-page--final *,
.ifb-telc-page--final *::before,
.ifb-telc-page--final *::after { box-sizing: border-box; }

.ifb-telc-page--final h1,
.ifb-telc-page--final h2,
.ifb-telc-page--final h3,
.ifb-telc-page--final strong,
.ifb-telc-page--final summary {
    hyphens: none !important;
    -webkit-hyphens: none !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

.ifb-telc-page--final p,
.ifb-telc-page--final li,
.ifb-telc-page--final small { overflow-wrap: break-word; }

.ifb-telc-page--final svg {
    width: 1em;
    height: 1em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ifb-telc-hero {
    background:
        radial-gradient(circle at 95% 8%, rgba(176, 138, 85, .14), transparent 29%),
        linear-gradient(135deg, #fff 0%, #f8f5f0 100%) !important;
}

.ifb-telc-page--final .ifb-course-hero__media {
    isolation: isolate;
}

.ifb-telc-page--final .ifb-course-hero__media > img {
    z-index: 1;
    aspect-ratio: 12 / 8;
    object-fit: cover;
    object-position: 50% 48%;
}

.ifb-telc-page--final .ifb-course-hero__badge {
    z-index: 3;
}

.ifb-telc-facts {
    border-bottom: 1px solid var(--telc-line);
    background: #fff;
}

.ifb-telc-facts .ifb-course-shell {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ifb-telc-facts .ifb-course-shell > div {
    min-width: 0;
    padding: 22px 24px;
    border-right: 1px solid var(--telc-line);
}

.ifb-telc-facts .ifb-course-shell > div:last-child { border-right: 0; }
.ifb-telc-facts strong,
.ifb-telc-facts span { display: block; }
.ifb-telc-facts strong { color: var(--telc-ink); font-size: 16px; }
.ifb-telc-facts span { margin-top: 4px; color: var(--telc-muted); font-size: 13px; }

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

.ifb-telc-path-card {
    min-width: 0;
    min-height: 340px;
    padding: 30px;
    border: 1px solid var(--telc-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(41, 47, 58, .055);
}

.ifb-telc-icon {
    width: 54px;
    height: 54px;
    display: inline-grid;
    place-items: center;
    color: #fff;
    border-radius: 17px;
    background: var(--telc-accent);
}

.ifb-telc-icon svg { width: 25px; height: 25px; }
.ifb-telc-icon--light { color: var(--telc-panel); background: #fff; }

.ifb-telc-label {
    display: block;
    margin-top: 24px;
    color: var(--telc-accent-dark);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .08em;
}

.ifb-telc-path-card h3 { margin-top: 9px; font-size: clamp(22px, 1.7vw, 27px); }
.ifb-telc-path-card p { color: var(--telc-text); line-height: 1.72; }

.ifb-telc-notice {
    margin-top: 20px;
    padding: 22px 24px;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    border: 1px solid #d9cbb8;
    border-radius: 18px;
    background: #fbf7f1;
}

.ifb-telc-notice strong { display: block; margin-bottom: 4px; color: var(--telc-ink); font-size: 18px; }
.ifb-telc-notice p { margin: 0; color: var(--telc-text); line-height: 1.62; }

.ifb-telc-split,
.ifb-telc-locations-layout,
.ifb-telc-registration,
.ifb-telc-result-layout {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
    align-items: center;
    gap: clamp(44px, 6vw, 82px);
}

.ifb-telc-compare,
.ifb-telc-result-grid { display: grid; gap: 14px; }

.ifb-telc-compare article,
.ifb-telc-result-grid article {
    min-width: 0;
    padding: 24px;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: start;
    gap: 17px;
    border: 1px solid var(--telc-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(41, 47, 58, .045);
}

.ifb-telc-compare article > span,
.ifb-telc-result-grid article > span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    color: #fff;
    border-radius: 14px;
    background: var(--telc-accent);
}

.ifb-telc-compare article > span svg,
.ifb-telc-result-grid article > span svg { width: 22px; height: 22px; }
.ifb-telc-compare h3,
.ifb-telc-result-grid h3 { margin-bottom: 6px; font-size: 21px; }
.ifb-telc-compare p,
.ifb-telc-result-grid p { margin: 0; color: var(--telc-text); line-height: 1.65; }

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

.ifb-telc-skill-grid article {
    min-width: 0;
    min-height: 275px;
    padding: 26px;
    border: 1px solid #e1d6c8;
    border-radius: 20px;
    background: #fff;
}

.ifb-telc-skill-grid h3 { margin-top: 22px; font-size: 22px; }
.ifb-telc-skill-grid p { margin: 0; color: var(--telc-text); line-height: 1.65; }

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

.ifb-telc-level-grid article {
    min-width: 0;
    padding: 24px;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 16px;
    border: 1px solid var(--telc-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(41, 47, 58, .04);
}

.ifb-telc-level-grid article > span {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    color: #fff;
    border-radius: 14px;
    background: var(--telc-accent);
    font-weight: 850;
}

.ifb-telc-level-grid h3 { margin-bottom: 5px; font-size: 19px; }
.ifb-telc-level-grid p { margin: 0; color: var(--telc-text); font-size: 14px; line-height: 1.6; }

.ifb-telc-locations-layout { grid-template-columns: minmax(0, .8fr) minmax(460px, 1.2fr); }

.ifb-telc-location-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ifb-telc-location-grid a {
    min-width: 0;
    padding: 18px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 12px;
    color: inherit !important;
    border: 1px solid var(--telc-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(41, 47, 58, .045);
    text-decoration: none !important;
    transition: transform .18s ease, border-color .18s ease;
}

.ifb-telc-location-grid a:hover,
.ifb-telc-location-grid a:focus-visible { transform: translateY(-2px); border-color: rgba(122, 92, 53, .35); }
.ifb-telc-location-grid a:focus-visible { outline: 3px solid rgba(122, 92, 53, .24); outline-offset: 3px; }

.ifb-telc-location-pin {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--telc-accent-dark);
    border-radius: 50%;
    background: #f3ebdf;
}

.ifb-telc-location-pin svg { width: 20px; height: 20px; }
.ifb-telc-location-grid strong,
.ifb-telc-location-grid small { display: block; }
.ifb-telc-location-grid strong { color: var(--telc-ink); font-size: 17px; }
.ifb-telc-location-grid small { margin-top: 3px; color: var(--telc-muted); font-size: 12px; line-height: 1.45; }
.ifb-telc-location-arrow { color: var(--telc-accent); }
.ifb-telc-location-arrow svg { width: 18px; height: 18px; }

.ifb-telc-registration { align-items: start; }

.ifb-telc-dark-panel {
    padding: clamp(30px, 4vw, 44px);
    color: #fff;
    border-radius: 24px;
    background: var(--telc-panel);
    box-shadow: 0 20px 55px rgba(37, 42, 52, .16);
}

.ifb-telc-dark-panel h3,
.ifb-telc-dark-panel strong { color: #fff !important; }
.ifb-telc-dark-panel .ifb-course-eyebrow { color: #e6d4b7 !important; }
.ifb-telc-dark-panel p { color: rgba(255,255,255,.8); line-height: 1.7; }

/* Ablauf – explizites Raster, damit die vier Schritte unabhängig vom Basis-CSS als Karten erscheinen. */
.ifb-telc-steps {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    list-style: none;
}

.ifb-telc-steps li {
    min-width: 0;
    min-height: 230px;
    padding: 26px;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--telc-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(41, 47, 58, .055);
}

.ifb-telc-steps li > span {
    width: 40px;
    height: 40px;
    margin-bottom: 24px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: #fff;
    border-radius: 50%;
    background: var(--telc-accent);
    font-weight: 850;
    line-height: 1;
}

.ifb-telc-steps h3 {
    margin: 0 0 10px;
    color: var(--telc-ink);
    font-size: clamp(18px, 1.45vw, 21px);
    line-height: 1.25;
}

.ifb-telc-steps p {
    margin: 0;
    color: var(--telc-text);
    font-size: 15px;
    line-height: 1.65;
}


@media (max-width: 1080px) {
    .ifb-telc-skill-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ifb-telc-level-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
    .ifb-telc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ifb-telc-steps li { min-height: 0; }

    .ifb-telc-split,
    .ifb-telc-locations-layout,
    .ifb-telc-registration,
    .ifb-telc-result-layout { grid-template-columns: 1fr; }

    .ifb-telc-facts .ifb-course-shell { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ifb-telc-facts .ifb-course-shell > div:nth-child(2) { border-right: 0; }
    .ifb-telc-facts .ifb-course-shell > div:nth-child(-n+2) { border-bottom: 1px solid var(--telc-line); }
}

@media (max-width: 780px) {
    .ifb-telc-path-grid,
    .ifb-telc-level-grid,
    .ifb-telc-skill-grid,
    .ifb-telc-location-grid { grid-template-columns: 1fr; }

    .ifb-telc-path-card,
    .ifb-telc-skill-grid article { min-height: 0; }

    .ifb-telc-notice { grid-template-columns: 48px minmax(0, 1fr); }
    .ifb-telc-notice .ifb-course-button { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 580px) {
    .ifb-telc-steps { grid-template-columns: 1fr; }
    .ifb-telc-steps li { padding: 22px; }
    .ifb-telc-steps li > span { margin-bottom: 18px; }
}

@media (max-width: 520px) {
    .ifb-telc-facts .ifb-course-shell { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ifb-telc-facts .ifb-course-shell > div { padding: 16px 12px; }
    .ifb-telc-facts strong { font-size: 14px; }
    .ifb-telc-facts span { font-size: 11px; }

    .ifb-telc-level-grid article,
    .ifb-telc-compare article,
    .ifb-telc-result-grid article { grid-template-columns: 44px minmax(0, 1fr); padding: 20px; }

    .ifb-telc-level-grid article > span,
    .ifb-telc-compare article > span,
    .ifb-telc-result-grid article > span { width: 42px; height: 42px; }

    .ifb-telc-path-card { padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .ifb-telc-page--final * { scroll-behavior: auto !important; transition: none !important; }
}
