:root {
    --lavybes-primary: var(--theme-color-primary, #8341AF);
    --lavybes-text: var(--theme-color-text, #1f2937);
    --lavybes-muted: var(--theme-color-text-secondary, #6b7280);
    --lavybes-bg: #f9fafb;
    --lavybes-radius: 1rem;
    --lavybes-font: "Plus Jakarta Sans", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    font-family: var(--lavybes-font);
    color: var(--lavybes-text);
    background: var(--lavybes-bg);
    line-height: 1.6;
}

a { color: var(--theme-color-link, var(--lavybes-primary)); text-decoration: none; }
a:hover { text-decoration: underline; }

.lavybes-container {
    width: min(1120px, calc(100% - 2rem));
    margin-inline: auto;
}

.lavybes-container--narrow { max-width: 720px; }

.screen-reader-text {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Header */
.lavybes-header {
    background: var(--theme-color-header-bg, #0e1524);
    color: var(--theme-color-header-text, #fff);
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 1px 0 rgba(255,255,255,.06);
}

.lavybes-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 72px;
}

.lavybes-brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    color: inherit;
    text-decoration: none;
}

.lavybes-brand:hover { text-decoration: none; opacity: .92; }

.lavybes-brand__logo {
    height: 44px;
    width: auto;
    object-fit: contain;
}

.lavybes-brand__title {
    font-weight: 800;
    font-size: 1.05rem;
    letter-spacing: -0.02em;
}

.lavybes-nav-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    cursor: pointer;
    padding: 0;
}

.lavybes-nav-toggle__bar {
    display: block;
    height: 2px;
    width: 22px;
    background: currentColor;
    margin-inline: auto;
    transition: transform .2s, opacity .2s;
}

.lavybes-nav__list {
    display: flex;
    gap: 1.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}

.lavybes-nav__list a {
    color: inherit;
    font-weight: 600;
    font-size: .9375rem;
    opacity: .92;
}

.lavybes-nav__list a:hover { opacity: 1; text-decoration: none; color: var(--theme-color-primary, #8341AF); }

.lavybes-main { min-height: 60vh; }

/* Hero */
.lavybes-hero {
    background: linear-gradient(135deg, var(--theme-color-primary, #8341AF), #111827);
    color: var(--theme-color-hero-text, #fff);
    padding: clamp(3rem, 8vw, 6rem) 0;
}

.lavybes-hero__inner { max-width: 720px; }
.lavybes-hero__badge { opacity: .85; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; font-size: .8125rem; }
.lavybes-hero__title { font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.08; margin: .5rem 0 1rem; font-weight: 800; }
.lavybes-hero__subtitle { font-size: clamp(1rem, 2.5vw, 1.25rem); opacity: .92; max-width: 36rem; }

.lavybes-button {
    display: inline-flex;
    align-items: center;
    padding: .875rem 1.5rem;
    border-radius: 999px;
    background: #fff;
    color: var(--theme-color-primary, #8341AF);
    font-weight: 700;
    margin-top: 1.25rem;
    box-shadow: 0 4px 14px rgba(0,0,0,.12);
}

.lavybes-button:hover { text-decoration: none; transform: translateY(-1px); }

.lavybes-section { padding: 3rem 0; }
.lavybes-section__header h1, .lavybes-section__header h2 { margin: 0 0 .5rem; font-weight: 800; }

.lavybes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.25rem;
}

.lavybes-grid--sections { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

.lavybes-card, .lavybes-section-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: var(--lavybes-radius);
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
    transition: box-shadow .2s, transform .2s;
}

.lavybes-card:hover, .lavybes-section-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
    transform: translateY(-2px);
}

.lavybes-section-card {
    display: block;
    padding: 1.5rem;
    color: inherit;
    border-top: 4px solid var(--section-color, var(--lavybes-primary));
}

.lavybes-section-card h3 { margin: 0 0 .5rem; font-weight: 700; }

.lavybes-card__image img { width: 100%; height: 180px; object-fit: cover; display: block; }
.lavybes-card__body { padding: 1rem 1.25rem 1.25rem; }
.lavybes-card__title { margin: 0 0 .5rem; font-size: 1.125rem; }
.lavybes-card__title a { color: inherit; }
.lavybes-card__excerpt { color: var(--lavybes-muted); margin: 0 0 .75rem; font-size: .95rem; }

.lavybes-single { padding: 2.5rem 0; }
.lavybes-single__header h1 { margin: 0 0 .5rem; font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 800; }
.lavybes-single__meta { color: var(--lavybes-muted); margin: 0 0 1.5rem; }
.lavybes-single__thumb img { width: 100%; border-radius: var(--lavybes-radius); margin-bottom: 1.5rem; }
.lavybes-content { max-width: 72ch; }

.lavybes-page { padding: 2rem 0 3rem; }
.lavybes-page__header { margin-bottom: 1.5rem; max-width: 48rem; }
.lavybes-page__header h1 {
    margin: 0;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 800;
    line-height: 1.15;
}

.lavybes-content--page {
    max-width: none;
}

.lavybes-content--page > .alignwide {
    max-width: min(1120px, 100%);
    margin-left: auto;
    margin-right: auto;
}

.lavybes-content--page > .alignfull {
    max-width: none;
    width: 100%;
}

.lavybes-content--page .wp-block-button__link {
    border-radius: 999px;
    font-weight: 700;
    padding: .75rem 1.5rem;
}

.lavybes-content--page .wp-block-image img {
    border-radius: var(--lavybes-radius);
}

.lavybes-content--page .wp-block-heading {
    font-weight: 800;
    letter-spacing: -0.02em;
}

.lavybes-content--page .wp-block-list li {
    margin-bottom: .35rem;
}

.lavybes-content--page .wp-block-separator {
    border-color: #e5e7eb;
    margin: 2rem auto;
}

.lavybes-page:has(.lavybes-pattern-hero) {
    padding-top: 0;
}

.lavybes-page:has(.lavybes-pattern-hero) .lavybes-page__header {
    display: none;
}

/* Footer */
.lavybes-footer {
    background: var(--theme-color-footer-bg, #111827);
    color: var(--theme-color-footer-text, #e5e7eb);
    padding: 2.5rem 0 0;
    margin-top: 2rem;
}

.lavybes-footer a { color: #fff; }
.lavybes-footer__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 2rem;
    padding-bottom: 2rem;
}

.lavybes-footer__brand { font-weight: 800; margin: 0 0 .35rem; font-size: 1.1rem; }
.lavybes-footer__tagline, .lavybes-footer__newsletter-desc { color: #9ca3af; margin: 0; font-size: .9375rem; }
.lavybes-footer__newsletter-title { font-weight: 700; margin: 0 0 .35rem; }
.lavybes-footer-nav__list { display: flex; flex-direction: column; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.lavybes-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); padding: 1rem 0 1.5rem; }
.lavybes-footer__copy { color: #9ca3af; margin: 0; font-size: .875rem; }

@media (max-width: 768px) {
    .lavybes-nav-toggle { display: flex; color: inherit; }

    .lavybes-nav {
        position: absolute;
        top: 72px;
        left: 0;
        right: 0;
        background: var(--theme-color-header-bg, #0e1524);
        padding: 1rem;
        display: none;
        border-top: 1px solid rgba(255,255,255,.08);
    }

    .lavybes-nav.is-open { display: block; }

    .lavybes-nav__list { flex-direction: column; gap: .25rem; }
    .lavybes-nav__list a { display: block; padding: .65rem 0; }

    .lavybes-header__inner { position: relative; }

    .lavybes-footer__grid { grid-template-columns: 1fr; }
}

.lavybes-header.is-nav-open .lavybes-nav-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.lavybes-header.is-nav-open .lavybes-nav-toggle__bar:nth-child(2) { opacity: 0; }
.lavybes-header.is-nav-open .lavybes-nav-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Section hero */
.lavybes-section-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(3rem, 7vw, 5rem) 0;
    background: linear-gradient(135deg, var(--section-color, var(--lavybes-primary)), color-mix(in srgb, var(--section-color, #333) 70%, #111));
    color: #fff;
    text-align: center;
}

.lavybes-section-hero--compact { padding: clamp(2rem, 5vw, 3rem) 0; }

.lavybes-section-hero__pattern,
.lavybes-hero__pattern {
    position: absolute;
    inset: 0;
    opacity: .12;
    background-image: linear-gradient(#fff 1px, transparent 1px), linear-gradient(90deg, #fff 1px, transparent 1px);
    background-size: 24px 24px;
}

.lavybes-section-hero__badge,
.lavybes-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .4rem 1rem;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    font-weight: 600;
    font-size: .875rem;
    margin: 0 0 1rem;
}

.lavybes-section-hero__title { font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 800; margin: 0 0 .75rem; line-height: 1.1; }
.lavybes-section-hero__subtitle { font-size: clamp(1rem, 2.5vw, 1.25rem); opacity: .92; max-width: 40rem; margin: 0 auto; }

.lavybes-hero--home { position: relative; overflow: hidden; }
.lavybes-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.lavybes-button--ghost { background: rgba(255,255,255,.15); color: #fff; border: 1px solid rgba(255,255,255,.35); }
.lavybes-button--ghost:hover { background: rgba(255,255,255,.25); }

.lavybes-button--section {
    background: var(--section-color, var(--lavybes-primary));
    color: #fff;
    border-radius: .75rem;
}

.lavybes-button--section:hover { filter: brightness(1.05); text-decoration: none; }

.lavybes-section-card p { color: var(--lavybes-muted); font-size: .9375rem; margin: 0 0 .75rem; }
.lavybes-section-card__icon { font-size: 1.75rem; color: var(--section-color); display: block; margin-bottom: .5rem; }

.lavybes-card { border-color: color-mix(in srgb, var(--section-color, #e5e7eb) 25%, #e5e7eb); }
.lavybes-card__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 180px;
    background: color-mix(in srgb, var(--section-color, #eee) 12%, #f3f4f6);
    color: var(--section-color, #999);
    font-size: 2.5rem;
}

.lavybes-card__meta { font-size: .8125rem; color: var(--section-color, var(--lavybes-primary)); font-weight: 600; margin: 0 0 .5rem; display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.lavybes-card__meta-sep { color: var(--lavybes-muted); }
.lavybes-card__link { font-weight: 700; color: var(--section-color, var(--lavybes-primary)); display: inline-flex; align-items: center; gap: .25rem; }
.lavybes-card__price { font-weight: 800; font-size: 1.125rem; margin: 0 0 .5rem; color: var(--section-color); }

.lavybes-empty { text-align: center; padding: 4rem 1rem; grid-column: 1 / -1; }
.lavybes-empty__icon { width: 5rem; height: 5rem; border-radius: 50%; margin: 0 auto 1rem; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--section-color) 12%, #fff); color: var(--section-color); font-size: 2rem; }

.lavybes-filter-bar { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 2rem; align-items: center; }

.lavybes-input {
    width: 100%;
    padding: .75rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: .75rem;
    font: inherit;
}

.lavybes-filter-bar .lavybes-input { flex: 1; min-width: 200px; }
.lavybes-input--textarea { resize: vertical; min-height: 120px; }

.lavybes-form label { display: block; margin-bottom: 1rem; font-weight: 600; font-size: .9375rem; }
.lavybes-form .lavybes-input { margin-top: .35rem; }
.lavybes-form__hint { font-size: .8125rem; color: var(--lavybes-muted); margin-top: .75rem; }

.lavybes-notice { padding: .875rem 1rem; border-radius: .75rem; margin-bottom: 1.25rem; font-weight: 600; }
.lavybes-notice--success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.lavybes-notice--error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

.lavybes-cf7--contact .wpcf7-form-control-wrap { display: block; }
.lavybes-cf7--contact .wpcf7-not-valid-tip { font-size: .8125rem; color: #b91c1c; margin-top: .25rem; }
.lavybes-cf7--contact .wpcf7-response-output {
    padding: .875rem 1rem;
    border-radius: .75rem;
    margin: 0 0 1.25rem;
    font-weight: 600;
    border: 0;
}
.lavybes-cf7--contact .wpcf7-mail-sent-ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.lavybes-cf7--contact .wpcf7-validation-errors,
.lavybes-cf7--contact .wpcf7-aborted,
.lavybes-cf7--contact .wpcf7-mail-sent-ng { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

.lavybes-back-link { display: inline-block; margin-bottom: 1.5rem; font-weight: 700; color: var(--section-color, var(--lavybes-primary)); }
.lavybes-back-link:hover { text-decoration: none; opacity: .85; }

.lavybes-single__badges { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; color: var(--lavybes-muted); font-size: .875rem; margin-bottom: .75rem; }
.lavybes-badge { display: inline-block; padding: .2rem .65rem; border-radius: 999px; background: color-mix(in srgb, var(--section-color) 15%, #fff); color: var(--section-color); font-weight: 700; font-size: .75rem; }
.lavybes-related { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #e5e7eb; }

.lavybes-single__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1rem; }
.lavybes-favorite-btn { display: inline-flex; align-items: center; gap: .35rem; padding: .5rem 1rem; border: 1px solid #e5e7eb; border-radius: 999px; background: #fff; font-size: .875rem; font-weight: 600; cursor: pointer; color: var(--theme-color-text, #111827); }
.lavybes-favorite-btn.is-active { border-color: var(--theme-color-primary); color: var(--theme-color-primary); }

.lavybes-share { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.lavybes-share--compact { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid #f3f4f6; }
.lavybes-share__label { font-size: .75rem; font-weight: 700; color: var(--lavybes-muted, #6b7280); text-transform: uppercase; letter-spacing: .04em; }
.lavybes-share__buttons { display: flex; gap: .35rem; flex: 1; }
.lavybes-share__btn { flex: 1; text-align: center; padding: .35rem .5rem; border-radius: .5rem; font-size: .6875rem; font-weight: 700; text-decoration: none; background: rgba(var(--theme-color-primary-rgb), .1); color: var(--theme-color-primary); }
.lavybes-share__btn--primary { background: var(--theme-color-primary); color: #fff; }
.lavybes-share__btn:hover { filter: brightness(.95); }
.lavybes-related h2 { margin: 0 0 1.25rem; font-size: 1.35rem; }

.lavybes-formation-layout { padding: 2rem 0 3rem; }
.lavybes-formation-grid { display: grid; grid-template-columns: 1fr 320px; gap: 2rem; align-items: start; }
.lavybes-formation-sidebar { background: #fff; border: 1px solid #e5e7eb; border-radius: var(--lavybes-radius); padding: 1.25rem; position: sticky; top: 88px; }
.lavybes-formation-sidebar h2 { margin: 0 0 1rem; font-size: 1.125rem; }
.lavybes-sessions { list-style: none; padding: 0; margin: 0 0 1.25rem; }
.lavybes-sessions li { padding: .65rem 0; border-bottom: 1px solid #f3f4f6; font-size: .9375rem; }
.lavybes-sessions li span { display: block; color: var(--lavybes-muted); font-size: .8125rem; }

.lavybes-contact-alt { margin-top: 1.5rem; color: var(--lavybes-muted); font-size: .9375rem; }

@media (max-width: 900px) {
    .lavybes-formation-grid { grid-template-columns: 1fr; }
    .lavybes-formation-sidebar { position: static; }
}
