/* OBT v0.2.0 — stabilisation visuelle front sans dépendance externe */
:root {
    --obt-ui-gold: var(--obt-accent-color, #d6b569);
    --obt-ui-ink: var(--obt-text-color, #222222);
    --obt-ui-bg: var(--obt-background-color, #ffffff);
    --obt-ui-muted: #6e6254;
    --obt-ui-line: rgba(36, 30, 24, .14);
    --obt-ui-soft: #f7f4ee;
    --obt-ui-dark: #12100d;
}

html { scroll-behavior: smooth; }
body {
    background: var(--obt-ui-bg);
    color: var(--obt-ui-ink);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
img, video, iframe { max-width: 100%; }
iframe { border: 0; }

:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--obt-ui-gold), white 25%);
    outline-offset: 3px;
}

.page-loader { pointer-events: none; }
.block { position: relative; }
.block.gray { background: #f8f6f2; }
.container { width: min(1170px, calc(100% - 32px)); }

header, .header, .stick, .menu { z-index: 50; }
.logo img, .brand-logo, .login-logo { object-fit: contain; }

.slider,
.tp-banner-container,
.tp-banner,
.tp-banner ul,
.tp-banner li {
    min-height: clamp(520px, 76vh, 820px);
}
.tp-banner li {
    position: relative;
    overflow: hidden;
    background: #090806;
}
.tp-banner li > img:first-child {
    width: 100%;
    height: clamp(520px, 76vh, 820px);
    object-fit: cover;
    opacity: .74;
    filter: contrast(1.05) saturate(.96);
}
.tp-banner li::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.38), rgba(0,0,0,.24) 45%, rgba(0,0,0,.64));
    pointer-events: none;
}
.tp-caption { z-index: 2; }
.slide-title,
.slide-title2,
.white-text-big {
    text-shadow: 0 18px 48px rgba(0,0,0,.48);
}
.slide-text {
    max-width: min(820px, calc(100vw - 42px));
    line-height: 1.7 !important;
    text-shadow: 0 10px 32px rgba(0,0,0,.55);
}

.slider-bar .bottom-bar,
.panel-like,
.cms-public-page .cms-content,
.media-public-filters,
.account-panel,
.public-form-card {
    border: 1px solid var(--obt-ui-line);
    box-shadow: 0 22px 60px rgba(24, 18, 10, .08);
}

input,
select,
textarea,
button {
    font: inherit;
}
input,
select,
textarea {
    border: 1px solid var(--obt-ui-line);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
input:focus,
select:focus,
textarea:focus {
    border-color: var(--obt-ui-gold);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--obt-ui-gold), transparent 82%);
    outline: 0;
}
button,
input[type="submit"],
.btn,
.theme-btn,
.button,
.read-more,
.btn-primary,
.btn-secondary {
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
button:hover,
input[type="submit"]:hover,
.btn:hover,
.theme-btn:hover,
.button:hover,
.read-more:hover {
    transform: translateY(-1px);
}

.cms-public-page .cms-content {
    background: #fff;
    padding: clamp(22px, 4vw, 46px);
    line-height: 1.8;
}
.cms-public-page .cms-content h2,
.cms-public-page .cms-content h3 {
    color: #1e1710;
    margin-top: 1.6em;
}
.cms-public-page .cms-content p,
.cms-public-page .cms-content li {
    color: #443a31;
}
.cms-public-page .cms-content a {
    color: var(--obt-ui-gold);
    font-weight: 700;
}

.cms-block,
.public-card,
.media-public-card,
.event-public-card,
.member-card,
.press-card,
.sponsorship-card,
.opportunity-card {
    border: 1px solid var(--obt-ui-line);
    background: #fff;
    box-shadow: 0 18px 54px rgba(24, 18, 10, .075);
}
.cms-block img,
.media-public-card img,
.event-public-card img,
.member-card img,
.press-card img {
    width: 100%;
    height: auto;
    object-fit: cover;
}
.media-public-filters,
.events-public-filters,
.press-public-filters {
    background: #fff;
    padding: 18px;
    display: grid;
    gap: 12px;
    align-items: end;
}
.media-public-filters button,
.events-public-filters button,
.press-public-filters button {
    background: var(--obt-ui-gold);
    border-color: var(--obt-ui-gold);
    color: #171109;
    font-weight: 800;
}

.badge,
.public-badge,
.status-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid color-mix(in srgb, var(--obt-ui-gold), transparent 60%);
    background: color-mix(in srgb, var(--obt-ui-gold), transparent 88%);
    color: #4d3820;
    padding: 4px 8px;
    font-size: 12px;
    line-height: 1.2;
}

footer,
.footer {
    border-top: 1px solid rgba(255,255,255,.08);
}

@media (min-width: 760px) {
    .media-public-filters,
    .events-public-filters,
    .press-public-filters {
        grid-template-columns: minmax(240px, 1fr) repeat(3, minmax(150px, .45fr)) auto;
    }
}

@media (max-width: 760px) {
    .container { width: min(100% - 24px, 1170px); }
    .slider,
    .tp-banner-container,
    .tp-banner,
    .tp-banner ul,
    .tp-banner li,
    .tp-banner li > img:first-child {
        min-height: 520px;
        height: 520px;
    }
    .slide-title,
    .slide-title2 { font-size: clamp(30px, 9vw, 42px) !important; padding-inline: 18px !important; }
    .slide-text { font-size: 14px !important; padding-inline: 18px !important; }
    .slider-icon img { width: 92px !important; height: 92px !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* v0.3.0 — préproduction client */
.error-page { min-height: 55vh; display: grid; align-items: center; text-align: center; }
.error-page .narrow { max-width: 760px; margin: 0 auto; }
.error-page h1 { margin-bottom: 18px; }
.error-page p { max-width: 620px; margin-left: auto; margin-right: auto; }
