/* =========================================================
   ORIBIRD - UI FOUNDATION
   Global design system for Divi child theme
   ========================================================= */

/* ---------- 1. Design tokens ---------- */

:root {
    /* Colors */
    --ob-color-bg: #f5f2ed;
    --ob-color-bg-soft: #f9f7f3;
    --ob-color-white: #ffffff;

    --ob-color-text: #4a4741;
    --ob-color-text-light: #6e6a64;
    --ob-color-muted: #6e6a64;

    --ob-color-primary: #d4a373;
    --ob-color-primary-dark: #b88453;
    --ob-color-primary-light: #ead2bd;
    --ob-color-primary-wash: rgba(211, 163, 107, 0.10);
    --ob-color-primary-wash-strong: rgba(211, 163, 107, 0.14);
    --ob-color-primary-border-soft: rgba(211, 163, 107, 0.18);

    --ob-color-secondary: #a8b2a1;
    --ob-color-border: #e7dfd4;

    /* Typography */
    --ob-font-heading: 'Playfair Display', serif;
    --ob-font-body: 'Bricolage Grotesque', sans-serif;

    /* Radius */
    --ob-radius-sm: 10px;
    --ob-radius-md: 18px;
    --ob-radius-card: 26px;
    --ob-radius-lg: 32px;
    --ob-radius-pill: 999px;

    /* Shadows */
    --ob-shadow-soft: 0 12px 40px rgba(74, 71, 65, 0.08);
    --ob-shadow-card: 0 12px 38px rgba(74, 71, 65, 0.05);
    --ob-shadow-card-hover: 0 18px 45px rgba(74, 71, 65, 0.10);
    --ob-shadow-image: 0 16px 45px rgba(74, 71, 65, 0.08);
    --ob-shadow-hero-image: 0 18px 50px rgba(74, 71, 65, 0.10);

    /* Layout */
    --ob-container-width: 1180px;
    --ob-row-tablet-width: 88%;
    --ob-row-tablet-max: 720px;
    --ob-row-mobile-width: 92%;
    --ob-row-mobile-max: 400px;

    --ob-section-padding-desktop: 110px;
    --ob-section-padding-tablet: 80px;
    --ob-section-padding-mobile: 56px;

    /* Motion */
    --ob-transition-base: all 0.25s ease;
}

/* ---------- 2. Base ---------- */

body {
    font-family: var(--ob-font-body);
    color: var(--ob-color-text);
    background: var(--ob-color-bg);
}

h1,
h2,
h3,
h4,
h5,
h6,
.ob-title {
    font-family: var(--ob-font-heading);
    color: var(--ob-color-text);
    line-height: 1.1;
}

a {
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* ---------- 3. Layout helpers ---------- */

.ob-container {
    width: min(100% - 32px, var(--ob-container-width));
    margin-inline: auto;
}

.ob-section {
    padding-top: var(--ob-section-padding-desktop);
    padding-bottom: var(--ob-section-padding-desktop);
}

.ob-section-soft {
    background: var(--ob-color-bg-soft);
}

.ob-card,
.ob-course-card,
.ob-benefit-card,
.ob-booking-step,
.ob-evjf-card,
.ob-pricing-card,
.ob-evjf-formula-card,
.ob-evjf-step-card,
.ob-evjf-form-card,
.ob-course-nav-card,
.ob-course-level-card,
.ob-tarifs-card,
.ob-contact-quick-card,
.ob-contact-info-card,
.ob-contact-map-card {
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    box-shadow: var(--ob-shadow-card);
}

.ob-card {
    border-radius: var(--ob-radius-md);
    padding: 28px;
    box-shadow: var(--ob-shadow-soft);
}

.ob-course-card,
.ob-benefit-card,
.ob-booking-step,
.ob-pricing-card,
.ob-course-nav-card,
.ob-course-level-card,
.ob-tarifs-card,
.ob-contact-quick-card {
    border-radius: var(--ob-radius-card);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.ob-course-card:hover,
.ob-benefit-card:hover,
.ob-pricing-card:hover,
.ob-evjf-step-card:hover,
.ob-course-nav-card:hover,
.ob-course-level-card:hover,
.ob-tarifs-card:hover,
.ob-contact-quick-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--ob-shadow-card-hover);
}

.ob-course-nav-card:hover,
.ob-course-level-card:hover,
.ob-tarifs-card:hover,
.ob-contact-quick-card:hover {
    border-color: rgba(211, 163, 107, 0.38);
}

/* Divi row helpers: scoped to Ori Bird wrappers only. */
.ob-evjf-page-hero-row,
.ob-evjf-formula-row,
.ob-evjf-steps-heading-row,
.ob-evjf-steps-grid,
.ob-evjf-gallery-heading-row,
.ob-evjf-gallery-grid,
.ob-evjf-booking-row,
.ob-courses-intro-heading-row,
.ob-courses-nav-grid,
.ob-courses-beginner-row,
.ob-course-detail-row,
.ob-course-levels-heading-row,
.ob-course-levels-grid,
.ob-tarifs-intro-row,
.ob-tarifs-anchor-row,
.ob-tarifs-heading-row,
.ob-tarifs-featured-grid,
.ob-tarifs-grid,
.ob-tarifs-conditions-row,
.ob-tarifs-evjf-row,
.ob-contact-intro-row,
.ob-contact-quick-grid,
.ob-contact-main-row {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin-inline: auto !important;
}

.ob-evjf-page-hero-row.et_pb_row,
.ob-evjf-formula-row.et_pb_row,
.ob-evjf-steps-grid.et_pb_row,
.ob-evjf-gallery-grid.et_pb_row,
.ob-evjf-booking-row.et_pb_row,
.ob-courses-nav-grid.et_pb_row,
.ob-courses-beginner-row.et_pb_row,
.ob-course-detail-row.et_pb_row,
.ob-course-levels-grid.et_pb_row,
.ob-tarifs-intro-row.et_pb_row,
.ob-tarifs-featured-grid.et_pb_row,
.ob-tarifs-grid.et_pb_row,
.ob-tarifs-conditions-row.et_pb_row,
.ob-tarifs-evjf-row.et_pb_row,
.ob-contact-quick-grid.et_pb_row,
.ob-contact-main-row.et_pb_row {
    display: grid !important;
    align-items: center;
}

.ob-evjf-page-hero-row.et_pb_row::after,
.ob-evjf-formula-row.et_pb_row::after,
.ob-evjf-steps-grid.et_pb_row::after,
.ob-evjf-gallery-grid.et_pb_row::after,
.ob-evjf-booking-row.et_pb_row::after,
.ob-courses-nav-grid.et_pb_row::after,
.ob-courses-beginner-row.et_pb_row::after,
.ob-course-detail-row.et_pb_row::after,
.ob-course-levels-grid.et_pb_row::after,
.ob-tarifs-intro-row.et_pb_row::after,
.ob-tarifs-featured-grid.et_pb_row::after,
.ob-tarifs-grid.et_pb_row::after,
.ob-tarifs-conditions-row.et_pb_row::after,
.ob-tarifs-evjf-row.et_pb_row::after,
.ob-contact-quick-grid.et_pb_row::after,
.ob-contact-main-row.et_pb_row::after {
    display: none !important;
}

.ob-evjf-page-hero-row .et_pb_column,
.ob-evjf-formula-row .et_pb_column,
.ob-evjf-steps-grid .et_pb_column,
.ob-evjf-gallery-grid .et_pb_column,
.ob-evjf-booking-row .et_pb_column,
.ob-courses-nav-grid.et_pb_row > .et_pb_column,
.ob-courses-beginner-row.et_pb_row > .et_pb_column,
.ob-course-detail-row.et_pb_row > .et_pb_column,
.ob-course-levels-grid.et_pb_row > .et_pb_column,
.ob-tarifs-intro-row.et_pb_row > .et_pb_column,
.ob-tarifs-featured-grid.et_pb_row > .et_pb_column,
.ob-tarifs-grid.et_pb_row > .et_pb_column,
.ob-tarifs-conditions-row.et_pb_row > .et_pb_column,
.ob-tarifs-evjf-row.et_pb_row > .et_pb_column,
.ob-contact-quick-grid.et_pb_row > .et_pb_column,
.ob-contact-main-row.et_pb_row > .et_pb_column {
    width: auto !important;
    margin-right: 0 !important;
    float: none !important;
    min-width: 0 !important;
}

.ob-courses-nav-grid *,
.ob-courses-beginner-row *,
.ob-course-detail-row *,
.ob-course-levels-grid *,
.ob-tarifs-intro-row *,
.ob-tarifs-featured-grid *,
.ob-tarifs-grid *,
.ob-tarifs-conditions-row *,
.ob-tarifs-evjf-row *,
.ob-contact-quick-grid *,
.ob-contact-main-row * {
    box-sizing: border-box;
}

/* ---------- 4. Typography helpers ---------- */

.ob-kicker,
.ob-hero-kicker,
.ob-section-kicker {
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ob-kicker {
    letter-spacing: 0.08em;
    font-size: 0.78rem;
}

.ob-hero-kicker {
    margin-bottom: 14px;
}

.ob-section-kicker {
    margin-bottom: 8px;
}

.ob-text-muted {
    color: var(--ob-color-muted);
}

.ob-hero-title h1 {
    font-family: var(--ob-font-heading);
    color: var(--ob-color-text);
    font-size: clamp(38px, 5vw, 62px);
    line-height: 1.02;
    letter-spacing: -0.02em;
    margin-bottom: 20px;
}

.ob-hero-text {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 17px;
    line-height: 1.65;
    max-width: 540px;
    margin-bottom: 28px;
}

.ob-section-title h2 {
    font-family: var(--ob-font-heading);
    color: var(--ob-color-text);
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.08;
    margin-bottom: 12px;
}

.ob-section-intro {
    color: var(--ob-color-muted);
    font-size: 17px;
    line-height: 1.6;
    max-width: 680px;
}

/* ---------- 5. Buttons ---------- */

.ob-btn-primary,
.et_pb_button.ob-btn-primary {
    background: var(--ob-color-primary) !important;
    color: var(--ob-color-white) !important;
    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;
    padding: 14px 26px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    transition: var(--ob-transition-base) !important;
}

.ob-btn-primary:hover,
.et_pb_button.ob-btn-primary:hover {
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark) !important;
    color: var(--ob-color-white) !important;
}

.ob-btn-secondary,
.et_pb_button.ob-btn-secondary {
    background: transparent !important;
    color: var(--ob-color-primary) !important;
    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;
    padding: 14px 26px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    transition: var(--ob-transition-base);
}

.ob-btn-secondary:hover,
.et_pb_button.ob-btn-secondary:hover {
    background: var(--ob-color-primary-light) !important;
}

.ob-btn-final,
.et_pb_button.ob-btn-final {
    background: var(--ob-color-white) !important;
    color: var(--ob-color-primary-dark) !important;
    border: 2px solid var(--ob-color-white) !important;
    border-radius: var(--ob-radius-pill) !important;
    padding: 14px 30px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    transition: var(--ob-transition-base);
}

.ob-btn-final:hover,
.et_pb_button.ob-btn-final:hover {
    background: var(--ob-color-bg) !important;
    border-color: var(--ob-color-bg) !important;
    color: var(--ob-color-text) !important;
}

.ob-hero-buttons,
.ob-evjf-page-hero-buttons {
    display: flex;
    gap: 16px;
    margin-top: 32px;
    flex-wrap: wrap;
}

.ob-hero-buttons a,
.ob-evjf-page-hero-buttons a {
    text-decoration: none;
}

.ob-evjf-page-hero-buttons {
    margin-top: 30px;
    margin-bottom: 18px;
}

/* ---------- 6. Images ---------- */

.ob-img-soft,
.ob-img-soft img,
.ob-img-frame,
.ob-img-frame img,
.ob-img-bordered,
.ob-img-bordered img {
    border-radius: var(--ob-radius-lg);
    overflow: hidden;
}

.ob-img-frame,
.ob-img-frame img {
    box-shadow: var(--ob-shadow-soft);
}

.ob-img-bordered,
.ob-img-bordered img {
    border: 1px solid var(--ob-color-border);
}

.ob-img-hero,
.ob-img-hero img {
    border-radius: 28px;
    overflow: hidden;
    box-shadow: var(--ob-shadow-hero-image);
}

.ob-studio-image img,
.ob-evjf-image img {
    border-radius: 26px;
    box-shadow: var(--ob-shadow-image);
}

.ob-evjf-page-hero-image .et_pb_image_wrap,
.ob-evjf-gallery-card .et_pb_image_wrap,
.ob-course-card-img .et_pb_image_wrap,
.ob-evjf-image .et_pb_image_wrap {
    display: block;
    width: 100%;
}

/* ---------- 7. Accordions ---------- */

.ob-faq-section {
    background: var(--ob-color-bg-soft);
}

.ob-faq-accordion {
    margin-top: 34px;
}

.ob-faq-accordion .et_pb_toggle {
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 20px;
    margin-bottom: 10px;
    padding: 18px 24px;
    box-shadow: 0 10px 30px rgba(74, 71, 65, 0.04);
}

.ob-faq-accordion .et_pb_toggle_title {
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
}

.ob-faq-accordion .et_pb_toggle_content {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.65;
    padding-top: 12px;
}

.ob-faq-accordion .et_pb_toggle_open .et_pb_toggle_title {
    color: var(--ob-color-primary);
}

/* ---------- 8. Forms - visual style only ---------- */

.ob-contact-form,
.ob-evjf-contact-form {
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
}

.ob-contact-form input:not(.et_pb_contact_captcha),
.ob-contact-form textarea,
.ob-contact-form select,
.ob-contact-form .input:not(.et_pb_contact_captcha),
.ob-evjf-contact-form input:not(.et_pb_contact_captcha),
.ob-evjf-contact-form textarea,
.ob-evjf-contact-form select,
.ob-evjf-contact-form .input:not(.et_pb_contact_captcha) {
    background: var(--ob-color-primary-wash) !important;
    border: 1px solid var(--ob-color-primary-wash) !important;
    border-radius: 12px !important;
    color: var(--ob-color-text) !important;
    font-family: var(--ob-font-body) !important;
    font-size: 14px !important;
    box-shadow: none !important;
    transition: var(--ob-transition-base);
}

.ob-contact-form input:not(.et_pb_contact_captcha)::placeholder,
.ob-contact-form textarea::placeholder,
.ob-evjf-contact-form input:not(.et_pb_contact_captcha)::placeholder,
.ob-evjf-contact-form textarea::placeholder {
    color: rgba(54, 45, 39, 0.55) !important;
}

.ob-contact-form input:not(.et_pb_contact_captcha):focus,
.ob-contact-form textarea:focus,
.ob-contact-form select:focus,
.ob-contact-form .input:not(.et_pb_contact_captcha):focus,
.ob-evjf-contact-form input:not(.et_pb_contact_captcha):focus,
.ob-evjf-contact-form textarea:focus,
.ob-evjf-contact-form select:focus,
.ob-evjf-contact-form .input:not(.et_pb_contact_captcha):focus {
    background: var(--ob-color-primary-wash-strong) !important;
    border-color: var(--ob-color-primary-light) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(210, 132, 91, 0.16) !important;
}

.ob-contact-form .et_pb_contact_captcha_question,
.ob-evjf-contact-form .et_pb_contact_captcha_question {
    color: var(--ob-color-muted) !important;
    font-family: var(--ob-font-body) !important;
    font-weight: 800 !important;
}

.ob-contact-form .et_pb_contact_submit,
.ob-contact-form .et_pb_button,
.ob-evjf-contact-form .et_pb_contact_submit,
.ob-evjf-contact-form .et_pb_button {
    background: var(--ob-color-primary) !important;
    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;
    color: var(--ob-color-white) !important;
    font-family: var(--ob-font-body) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: var(--ob-transition-base) !important;
}

.ob-contact-form .et_pb_contact_submit:hover,
.ob-contact-form .et_pb_button:hover,
.ob-evjf-contact-form .et_pb_contact_submit:hover,
.ob-evjf-contact-form .et_pb_button:hover {
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark) !important;
    color: var(--ob-color-white) !important;
}

.ob-contact-form .et-pb-contact-message,
.ob-evjf-contact-form .et-pb-contact-message {
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14px;
}

/* ---------- 9. Homepage sections ---------- */

.ob-course-card {
    padding: 22px;
    box-shadow: 0 10px 35px rgba(74, 71, 65, 0.06);
}

.ob-course-card-img,
.ob-course-card-img img {
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 18px;
}

.ob-course-card-text h3,
.ob-booking-step h3,
.ob-pricing-card h3 {
    font-family: var(--ob-font-heading);
    color: var(--ob-color-text);
    line-height: 1.12;
    margin-bottom: 10px;
}

.ob-course-card-text h3 {
    font-size: 28px;
    line-height: 1.1;
    margin-bottom: 8px;
}

.ob-course-card-text p,
.ob-booking-step p,
.ob-pricing-card p {
    color: var(--ob-color-muted);
    font-size: 15px;
    line-height: 1.6;
}

.ob-course-card-text p {
    line-height: 1.5;
}

.ob-discovery-banner {
    background: #efe4dc;
    border-radius: var(--ob-radius-lg);
    padding: 48px 56px;
    box-shadow: 0 18px 55px rgba(74, 71, 65, 0.07);
}

.ob-discovery-banner .et_pb_column {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ob-discovery-banner .ob-section-title h2 {
    max-width: 720px;
}

.ob-discovery-banner .ob-section-intro {
    max-width: 620px;
    margin-bottom: 24px;
}

.ob-google-reviews-wrap {
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 28px;
    padding: 32px;
    margin-top: 24px;
    box-shadow: 0 15px 45px rgba(74, 71, 65, 0.06);
}

.ob-benefit-card {
    padding: 30px;
    box-shadow: 0 10px 35px rgba(74, 71, 65, 0.05);
}

.ob-benefit-card h3 {
    margin-bottom: 10px;
}

.ob-benefit-card p {
    color: var(--ob-color-muted);
}

.ob-benefit-icon {
    text-align: center;
    margin-bottom: 8px;
}

.ob-benefit-icon img {
    width: 96px;
    height: auto;
    display: inline-block;
    opacity: 0.95;
}

.ob-studio-feature {
    margin-top: 18px;
    padding-left: 18px;
    border-left: 2px solid var(--ob-color-primary);
}

.ob-studio-feature strong {
    display: block;
    color: var(--ob-color-text);
    margin-bottom: 4px;
}

.ob-booking-section,
.ob-evjf-section {
    background: var(--ob-color-bg);
}

.ob-booking-step {
    position: relative;
    padding: 30px;
}

.ob-booking-step h3 {
    font-size: 28px;
    line-height: 1.15;
}

.ob-booking-step::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -42px;
    width: 42px;
    height: 1px;
    background: var(--ob-color-primary-light);
}

.et_pb_column:last-child .ob-booking-step::after,
.ob-booking-step:last-child::after {
    display: none;
}

.ob-evjf-card {
    border-radius: var(--ob-radius-lg);
    padding: 48px;
    box-shadow: 0 18px 55px rgba(74, 71, 65, 0.07);
}

.ob-evjf-points {
    margin-top: 22px;
    margin-bottom: 26px;
    color: var(--ob-color-text);
    font-size: 15px;
    line-height: 1.8;
}

.ob-pricing-section {
    background: var(--ob-color-bg-soft);
}

.ob-pricing-card {
    padding: 30px;
}

.ob-pricing-card-featured {
    border-color: var(--ob-color-primary-light);
    background: #fffaf6;
}

.ob-pricing-card h3 {
    font-size: 30px;
}

.ob-pricing-label {
    display: inline-block;
    margin-bottom: 16px;
    padding: 7px 12px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary-light);
    color: var(--ob-color-primary-dark);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ob-final-cta-section {
    background: var(--ob-color-primary);
    text-align: center;
}

.ob-final-cta-wrap {
    max-width: 980px;
    margin-inline: auto;
}

.ob-final-cta-kicker {
    color: var(--ob-color-white);
    font-family: var(--ob-font-body);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-bottom: 14px;
    opacity: 0.9;
}

.ob-final-cta-title h2 {
    color: var(--ob-color-white);
    font-family: var(--ob-font-heading);
    font-size: clamp(38px, 5vw, 64px);
    line-height: 1.05;
    margin-bottom: 20px;
    text-transform: none;
    letter-spacing: -0.02em;
}

.ob-final-cta-text {
    color: rgba(255, 255, 255, 0.88);
    font-family: var(--ob-font-body);
    font-size: 18px;
    line-height: 1.65;
    max-width: 680px;
    margin: 0 auto 32px;
}

/* ---------- Homepage : 2 disciplines principales ---------- */

@media (min-width: 981px) {
    .ob-course-cards-row-2.et_pb_row {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 56px;
        width: min(88%, 920px) !important;
        max-width: 920px !important;
        margin-inline: auto !important;
    }

    .ob-course-cards-row-2.et_pb_row::after {
        display: none !important;
    }

    .ob-course-cards-row-2.et_pb_row > .et_pb_column {
        float: none !important;
        width: auto !important;
        margin: 0 !important;
        min-width: 0 !important;
    }

    .ob-course-cards-row-2 .ob-course-card-img img {
        width: 100% !important;
        height: 420px !important;
        object-fit: cover !important;
        object-position: center center !important;
        display: block !important;
    }
}

/* ---------- Homepage : autres pratiques du studio ---------- */

.ob-other-practices-row {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin: 54px auto 0 !important;
}

.ob-other-practices-card {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(300px, 0.7fr);
    gap: 54px;
    align-items: center;

    padding: 42px 46px;

    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-lg);
    box-shadow: var(--ob-shadow-soft);

    box-sizing: border-box;
}

.ob-other-practices-card * {
    box-sizing: border-box;
}

.ob-other-practices-content {
    max-width: 650px;
}

.ob-other-practices-content h2 {
    margin: 0 0 16px;

    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(34px, 3.6vw, 46px);
    line-height: 1.06;
    letter-spacing: -0.03em;
    font-weight: 400;
}

.ob-other-practices-text {
    max-width: 620px;
    margin: 0 0 16px;

    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.65;
}

.ob-other-practices-note {
    max-width: 620px;
    margin: 0;

    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.55;
    font-weight: 700;
}

.ob-other-practices-button {
    display: inline-flex;
    margin-top: 26px;

    text-decoration: none !important;
}

.ob-other-practices-aside {
    padding: 28px 28px;

    background: var(--ob-color-primary-wash);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: 24px;
}

.ob-other-practices-label {
    display: inline-flex;

    margin-bottom: 18px;
    padding: 7px 12px;

    background: var(--ob-color-white);
    border-radius: var(--ob-radius-pill);

    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.ob-other-practices-aside ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ob-other-practices-aside li {
    padding: 12px 0;

    border-bottom: 1px solid rgba(211, 163, 107, 0.22);

    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.4;
    font-weight: 700;
}

.ob-other-practices-aside li:first-child {
    padding-top: 0;
}

.ob-other-practices-aside li:last-child {
    border-bottom: 0;
}

.ob-other-practices-aside p {
    margin: 18px 0 0;
    padding-top: 18px;

    border-top: 1px solid rgba(211, 163, 107, 0.22);

    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.5;
}

/* ---------- 10. Footer ---------- */

.ob-footer {
    background: var(--ob-color-text);
    color: var(--ob-color-bg);
    padding-top: 48px !important;
    padding-bottom: 26px !important;
}

.ob-footer-main {
    max-width: var(--ob-container-width);
    margin-inline: auto;
}

.ob-footer-logo img {
    max-width: 220px;
    height: auto;
    margin-bottom: 14px;
}

.ob-footer h3 {
    color: var(--ob-color-white);
    font-family: var(--ob-font-body);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.ob-footer-text,
.ob-footer-contact p,
.ob-footer-bottom p {
    color: rgba(245, 242, 237, 0.78);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.7;
}

.ob-footer a {
    color: rgba(245, 242, 237, 0.82);
    text-decoration: none;
    transition: color 0.2s ease;
}

.ob-footer a:hover {
    color: var(--ob-color-primary);
}

.ob-footer-nav ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.ob-footer-nav li {
    margin-bottom: 8px;
}

.ob-footer-bottom {
    border-top: 1px solid rgba(245, 242, 237, 0.16);
    margin-top: 28px;
    padding-top: 18px;
    text-align: center;
}

.ob-footer-bottom p {
    margin: 0;
    font-size: 13px;
}

/* ---------- 11. Page EVJF ---------- */

.ob-evjf-page-hero {
    background: var(--ob-color-bg);
    padding-top: 54px !important;
    padding-bottom: 72px !important;
}

.ob-evjf-page-hero-row {
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-lg);
    padding: 54px !important;
    box-shadow: var(--ob-shadow-soft);
}

.ob-evjf-page-hero-row.et_pb_row {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 48px;
}

.ob-evjf-page-hero .ob-hero-title h1 {
    max-width: 560px;
}

.ob-evjf-page-hero .ob-hero-text {
    max-width: 540px;
}

.ob-evjf-page-hero-proof {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.55;
    max-width: 560px;
}

.ob-evjf-page-hero-proof p {
    padding-bottom: 0;
    margin-bottom: 0;
}

.ob-evjf-page-hero-image,
.ob-evjf-page-hero-image .et_pb_image_wrap {
    width: 100%;
}

.ob-evjf-page-hero-image img {
    width: 100% !important;
    height: 460px !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
    border-radius: 28px !important;
}

.ob-evjf-formula-section {
    background: var(--ob-color-bg);
    padding-top: 18px !important;
    padding-bottom: 82px !important;
}

.ob-evjf-formula-row.et_pb_row {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
    gap: 54px;
}

.ob-evjf-formula-content {
    max-width: 640px;
}

.ob-evjf-formula-content h2,
.ob-evjf-steps-heading h2,
.ob-evjf-gallery-heading h2 {
    margin-top: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    line-height: 1.03;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-evjf-formula-content h2 {
    max-width: 620px;
    margin-bottom: 28px;
    font-size: clamp(42px, 4.4vw, 60px);
    line-height: 1.02;
}

.ob-evjf-formula-content p:not(.ob-section-kicker),
.ob-evjf-steps-heading p:not(.ob-section-kicker),
.ob-evjf-gallery-heading p:not(.ob-section-kicker),
.ob-evjf-faq-heading p:not(.ob-section-kicker),
.ob-evjf-form-heading p:not(.ob-section-kicker) {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
}

.ob-evjf-formula-content p:not(.ob-section-kicker) {
    max-width: 580px;
    margin-bottom: 18px;
    font-size: 17px;
    line-height: 1.75;
}

.ob-evjf-formula-content p:last-child {
    margin-bottom: 0;
}

.ob-evjf-formula-card {
    background: var(--ob-color-bg-soft);
    border-radius: var(--ob-radius-lg);
    padding: 38px 36px;
    box-shadow: var(--ob-shadow-soft);
}

.ob-evjf-formula-card h3,
.ob-evjf-step-card h3,
.ob-evjf-faq-heading h2,
.ob-evjf-form-heading h2 {
    margin-top: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-evjf-formula-card h3 {
    margin-bottom: 26px;
    font-size: 34px;
    line-height: 1.05;
}

.ob-evjf-formula-card ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ob-evjf-formula-card li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 16px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15.5px;
    line-height: 1.55;
}

.ob-evjf-formula-card li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 0.74em;
    width: 9px;
    height: 9px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary);
    box-shadow: 0 0 0 5px rgba(211, 163, 107, 0.14);
    transform: translateY(-50%);
}

.ob-evjf-formula-card li:last-child {
    margin-bottom: 0;
}

.ob-evjf-formula-highlight {
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid var(--ob-color-border);
}

.ob-evjf-formula-highlight span {
    display: block;
    margin-bottom: 8px;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 12px;
    line-height: 1.2;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
}

.ob-evjf-formula-highlight strong {
    display: block;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.55;
    font-weight: 700;
}

.ob-evjf-steps-section,
.ob-evjf-booking-section {
    background: var(--ob-color-bg-soft);
}

.ob-evjf-steps-section {
    padding-top: 82px !important;
    padding-bottom: 88px !important;
}

.ob-evjf-steps-heading-row,
.ob-evjf-gallery-heading-row {
    padding-bottom: 0 !important;
}

.ob-evjf-steps-heading {
    max-width: 920px;
    margin-inline: auto;
    text-align: left;
}

.ob-evjf-steps-heading h2 {
    max-width: 760px;
    margin-bottom: 22px;
    font-size: clamp(40px, 4vw, 56px);
}

.ob-evjf-steps-heading p:not(.ob-section-kicker) {
    max-width: 640px;
    margin-inline: 0;
    margin-bottom: 0;
    font-size: 16.5px;
    line-height: 1.72;
}

.ob-evjf-steps-grid {
    margin-top: 38px !important;
}

.ob-evjf-steps-grid.et_pb_row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
    align-items: stretch;
}

.ob-evjf-steps-grid .et_pb_column {
    display: flex !important;
}

.ob-evjf-step-card {
    width: 100%;
    min-height: 100%;
    background: var(--ob-color-bg);
    border-radius: 30px;
    padding: 30px 28px 28px;
    box-shadow: var(--ob-shadow-soft);
}

.ob-evjf-step-card:hover {
    border-color: rgba(211, 163, 107, 0.38);
    box-shadow: 0 22px 58px rgba(54, 45, 39, 0.11);
}

.ob-evjf-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 22px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary-wash-strong);
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 12px;
    line-height: 1;
    letter-spacing: 0.12em;
    font-weight: 800;
}

.ob-evjf-step-card h3 {
    margin-bottom: 14px;
    font-size: 28px;
    line-height: 1.08;
}

.ob-evjf-step-card p {
    margin-bottom: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.62;
}

.ob-evjf-gallery-section {
    background: var(--ob-color-bg);
    padding-top: 84px !important;
    padding-bottom: 92px !important;
}

.ob-evjf-gallery-heading {
    max-width: 760px;
}

.ob-evjf-gallery-heading h2 {
    max-width: 720px;
    margin-bottom: 22px;
    font-size: clamp(40px, 4vw, 56px);
}

.ob-evjf-gallery-heading p:not(.ob-section-kicker) {
    max-width: 620px;
    margin-bottom: 0;
    font-size: 16.5px;
    line-height: 1.72;
}

.ob-evjf-gallery-grid {
    margin-top: 48px !important;
}

.ob-evjf-gallery-grid.et_pb_row {
    grid-template-columns: 1.15fr 0.92fr 0.92fr;
    gap: 24px;
    align-items: stretch;
}

.ob-evjf-gallery-card,
.ob-evjf-gallery-card .et_pb_image_wrap {
    width: 100%;
    height: 100%;
}

.ob-evjf-gallery-card img {
    display: block !important;
    width: 100% !important;
    height: 310px !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 30px !important;
    border: 1px solid var(--ob-color-border);
    box-shadow: var(--ob-shadow-soft);
    transition: transform 0.28s ease, box-shadow 0.28s ease, filter 0.28s ease;
}

.ob-evjf-gallery-card-large img {
    height: 310px !important;
}

.ob-evjf-gallery-card:hover img {
    transform: translateY(-4px);
    box-shadow: 0 24px 62px rgba(54, 45, 39, 0.12);
    filter: saturate(1.03);
}

.ob-evjf-booking-section {
    padding-top: 86px !important;
    padding-bottom: 92px !important;
}

.ob-evjf-booking-row.et_pb_row {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 32px;
    align-items: stretch;
}

.ob-evjf-booking-row .et_pb_column.ob-evjf-faq-card,
.ob-evjf-faq-card {
    min-height: 100%;
    background: rgba(211, 163, 107, 0.11) !important;
    border: 1px solid var(--ob-color-primary-border-soft) !important;
    border-radius: 30px !important;
    padding: 38px 36px !important;
    box-shadow: none !important;
}

.ob-evjf-booking-row .et_pb_column.ob-evjf-form-card,
.ob-evjf-form-card {
    min-height: 100%;
    background: var(--ob-color-bg) !important;
    border-radius: 30px !important;
    padding: 38px 36px !important;
    box-shadow: var(--ob-shadow-soft) !important;
}

.ob-evjf-faq-card .et_pb_module:last-child,
.ob-evjf-form-card .et_pb_module:last-child {
    margin-bottom: 0 !important;
}

.ob-evjf-faq-heading,
.ob-evjf-form-heading {
    margin-bottom: 26px;
}

.ob-evjf-faq-heading h2,
.ob-evjf-form-heading h2 {
    margin-bottom: 12px;
    font-size: 36px;
    line-height: 1.06;
    letter-spacing: -0.025em;
}

.ob-evjf-faq-heading p:not(.ob-section-kicker),
.ob-evjf-form-heading p:not(.ob-section-kicker) {
    max-width: 520px;
    margin-bottom: 0;
    font-size: 15px;
    line-height: 1.62;
}
@media (min-width: 768px) and (max-width: 980px) {

    .ob-other-practices-row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
        margin-top: 42px !important;
    }

    .ob-other-practices-card {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 34px 32px;
        border-radius: 28px;
    }

    .ob-other-practices-content {
        max-width: 100%;
    }

    .ob-other-practices-aside {
        padding: 26px;
    }
}
/* =========================================================
   ORIBIRD - PAGE COURS
   À placer dans main.css après les styles EVJF et avant les media queries globales,
   ou en remplacement complet de l'ancien bloc Page Cours.
   ========================================================= */

/* ---------- 1. Layout commun Page Cours ---------- */

/* Shared row constraints and Divi grid resets live in Layout helpers. */

/* ---------- 2. Intro + navigation disciplines ---------- */

.ob-courses-intro-section {
    background: var(--ob-color-bg);
    padding-top: 62px !important;
    padding-bottom: 64px !important;
}

.ob-courses-intro-heading-row {
    padding-bottom: 0 !important;
}

.ob-courses-intro-heading {
    max-width: 760px;
}

.ob-courses-intro-heading h1 {
    margin: 0 0 18px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(42px, 5vw, 64px);
    line-height: 1.03;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-courses-intro-heading p:not(.ob-section-kicker) {
    max-width: 680px;
    margin-bottom: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 17px;
    line-height: 1.65;
}

.ob-courses-nav-grid {
    margin-top: 34px !important;
}

.ob-courses-nav-grid.et_pb_row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: stretch;

    width: min(88%, 920px) !important;
    max-width: 920px !important;
    margin-inline: auto !important;
}

.ob-courses-nav-grid .et_pb_code,
.ob-courses-nav-grid .et_pb_code_inner {
    height: 100%;
}

.ob-course-nav-card {
    position: relative;
    display: flex;
    min-height: 100%;
    flex-direction: column;
    padding: 28px 26px;
    color: var(--ob-color-text);
    text-decoration: none !important;
}

.ob-course-nav-card:hover {
    color: var(--ob-color-text);
}

.ob-course-nav-card-featured {
    background: #fffaf6;
    border-color: var(--ob-color-primary-light);
}

.ob-course-nav-badge {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 18px;
    padding: 7px 12px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary-wash-strong);
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ob-course-nav-card h2 {
    margin: 0 0 12px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 31px;
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-course-nav-card p {
    margin: 0 0 18px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.62;
}

.ob-course-nav-meta {
    display: block;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid var(--ob-color-border);
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 700;
}

.ob-course-nav-arrow {
    display: inline-flex;
    margin-top: 16px;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.2;
    font-weight: 800;
}

.ob-course-nav-arrow::after {
    content: "→";
    margin-left: 8px;
    transition: transform 0.2s ease;
}

.ob-course-nav-card:hover .ob-course-nav-arrow::after {
    transform: translateX(4px);
}

/* ---------- 3. Bloc débutantes ---------- */

.ob-courses-beginner-section {
    background: var(--ob-color-bg-soft);
    padding-top: 62px !important;
    padding-bottom: 72px !important;
}

.ob-courses-beginner-row.et_pb_row {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 36px;
    align-items: stretch;
    padding: 46px !important;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-lg);
    box-shadow: var(--ob-shadow-soft);
}

.ob-courses-beginner-content {
    max-width: 620px;
}

.ob-courses-beginner-content h2 {
    margin: 0 0 18px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(36px, 4vw, 50px);
    line-height: 1.05;
    letter-spacing: -0.03em;
    font-weight: 400;
}

.ob-courses-beginner-content p:not(.ob-section-kicker) {
    margin-bottom: 16px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.68;
}

.ob-courses-beginner-content p:last-of-type {
    margin-bottom: 0;
}

.ob-courses-beginner-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

.ob-courses-beginner-actions a {
    text-decoration: none;
}

.ob-courses-beginner-panel {
    min-height: 100%;
    padding: 32px 30px;
    background: var(--ob-color-primary-wash);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: 28px;
}

.ob-courses-beginner-panel h3 {
    margin: 0 0 22px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 32px;
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-courses-beginner-panel ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ob-courses-beginner-panel li {
    padding: 0 0 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid rgba(211, 163, 107, 0.22);
}

.ob-courses-beginner-panel li:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: 0;
}

.ob-courses-beginner-panel strong {
    display: block;
    margin-bottom: 5px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.3;
    font-weight: 800;
}

.ob-courses-beginner-panel span {
    display: block;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.55;
}

.ob-courses-beginner-note {
    margin: 22px 0 0;
    padding-top: 18px;
    border-top: 1px solid rgba(211, 163, 107, 0.22);
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 700;
}

/* ---------- 4. Détail disciplines ---------- */

.ob-course-detail-section {
    background: var(--ob-color-bg);
    padding-top: 76px !important;
    padding-bottom: 82px !important;
}

.ob-course-detail-section-soft {
    background: var(--ob-color-bg-soft);
}

.ob-course-detail-row.et_pb_row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
    gap: 52px;
    align-items: center;
}

.ob-course-detail-row-reverse.et_pb_row {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr);
}

.ob-course-detail-image,
.ob-course-detail-image .et_pb_image_wrap {
    width: 100%;
}

.ob-course-detail-image img {
    display: block !important;
    width: 100% !important;
    height: 480px !important;
    object-fit: cover !important;
    object-position: center center !important;
    border: 1px solid var(--ob-color-border);
    border-radius: 30px !important;
    box-shadow: var(--ob-shadow-image);
}

.ob-course-detail-content {
    max-width: 590px;
}

.ob-course-detail-content h2 {
    margin: 0 0 20px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(38px, 4.2vw, 56px);
    line-height: 1.04;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-course-detail-content p:not(.ob-section-kicker) {
    margin-bottom: 16px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.68;
}

.ob-course-format-note {
    margin: 24px 0 0;
    padding: 22px 24px;
    background: var(--ob-color-primary-wash);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: 22px;
}

.ob-course-format-note span {
    display: inline-flex;
    margin-bottom: 10px;
    padding: 7px 12px;
    border-radius: var(--ob-radius-pill);
    background: rgba(255, 255, 255, 0.72);
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ob-course-format-note strong {
    display: block;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.55;
    font-weight: 800;
}

.ob-course-detail-hamac {
    background: var(--ob-color-bg);
}

.ob-course-detail-hamac .ob-course-format-note {
    background: rgba(168, 178, 161, 0.13);
    border-color: rgba(168, 178, 161, 0.24);
}

.ob-course-detail-hamac .ob-course-format-note span {
    color: var(--ob-color-text);
}

.ob-course-detail-hamac .ob-course-format-note strong {
    font-weight: 700;
}

.ob-course-detail-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 24px 0 0 !important;
}

.ob-course-detail-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.5;
    font-weight: 700;
}

.ob-course-detail-list li:last-child {
    margin-bottom: 0;
}

.ob-course-detail-list li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 0.75em;
    width: 8px;
    height: 8px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary);
    box-shadow: 0 0 0 5px rgba(211, 163, 107, 0.14);
    transform: translateY(-50%);
}

.ob-course-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 30px;
}

.ob-course-detail-actions a {
    text-decoration: none;
}

/* ---------- 5. Niveaux Pole Dance ---------- */

.ob-course-levels-heading-row {
    margin-top: 68px !important;
    padding-bottom: 0 !important;
}

.ob-course-levels-heading {
    max-width: 820px;
}

.ob-course-levels-heading h3 {
    margin: 0 0 14px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(34px, 3.6vw, 48px);
    line-height: 1.06;
    letter-spacing: -0.03em;
    font-weight: 400;
}

.ob-course-levels-heading p:not(.ob-section-kicker) {
    max-width: 760px;
    margin-bottom: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.62;
}

.ob-course-levels-grid {
    margin-top: 30px !important;
}

.ob-course-levels-grid.et_pb_row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.ob-course-levels-grid.et_pb_row > .et_pb_column {
    display: flex !important;
}

.ob-course-level-card {
    width: 100%;
    min-height: 100%;
    padding: 30px 28px;
}

.ob-course-level-card .et_pb_text_inner {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.ob-course-level-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 10px !important;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary-wash-strong);
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.ob-course-level-card .et_pb_text_inner > p:first-child {
    margin: 0 0 10px !important;
    padding: 0 !important;
    line-height: 1 !important;
}

.ob-course-level-card .et_pb_text_inner > p:first-child .ob-course-level-number {
    margin-bottom: 0 !important;
}

.ob-course-level-card h4 {
    margin: 0 0 18px !important;
    padding-top: 0 !important;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 30px;
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-course-level-block {
    padding-top: 16px;
    margin-top: 16px;
    border-top: 1px solid var(--ob-color-border);
}

.ob-course-level-block:first-of-type {
    margin-top: 0;
}

.ob-course-level-label {
    font-size: 12px;
}

.ob-course-level-card p {
    font-size: 14px;
    line-height: 1.55;
}

.ob-course-levels-note-row {
    margin-top: 18px !important;
}

.ob-course-levels-note {
    padding: 26px 30px;
    background: var(--ob-color-primary-wash);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: 26px;
}

.ob-course-levels-note h4 {
    font-size: 25px;
}

.ob-course-levels-note p {
    font-size: 14px;
    line-height: 1.55;
}

/* ---------- 6. CTA final Page Cours ---------- */

.ob-courses-final-cta-section {
    padding-top: 78px !important;
    padding-bottom: 82px !important;
}

.ob-courses-final-cta-buttons {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 28px;
}

.ob-courses-final-cta-buttons a {
    text-decoration: none !important;
}

.ob-btn-final-secondary,
.et_pb_button.ob-btn-final-secondary {
    background: transparent !important;
    color: var(--ob-color-white) !important;
    border: 2px solid rgba(255, 255, 255, 0.72) !important;
    border-radius: var(--ob-radius-pill) !important;
    padding: 14px 30px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    transition: var(--ob-transition-base);
}

.ob-btn-final-secondary:hover,
.et_pb_button.ob-btn-final-secondary:hover {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: var(--ob-color-white) !important;
    color: var(--ob-color-white) !important;
}

.ob-btn-final-secondary::after,
.et_pb_button.ob-btn-final-secondary::after {
    display: none !important;
}

.ob-courses-final-cta-note {
    max-width: 620px;
    margin: 24px auto 0;
    color: rgba(255, 255, 255, 0.82);
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.55;
    text-align: center;
}

/* ---------- 7. Responsive tablette + mobile commun ---------- */

@media (max-width: 980px) {
    .ob-course-detail-row-reverse.et_pb_row {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .ob-course-detail-row-reverse.et_pb_row > .et_pb_column:first-of-type {
        order: 2 !important;
    }

    .ob-course-detail-row-reverse.et_pb_row > .et_pb_column:last-of-type {
        order: 1 !important;
    }
}

/* ---------- 8. Responsive tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {
    .ob-courses-intro-section {
        padding-top: 0px !important;
        padding-bottom: 58px !important;
    }

    .ob-courses-intro-heading-row,
    .ob-courses-nav-grid,
    .ob-courses-beginner-row,
    .ob-course-detail-row,
    .ob-course-levels-heading-row,
    .ob-course-levels-grid,
    .ob-course-levels-note-row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-courses-intro-heading h1 {
        font-size: clamp(42px, 7vw, 54px);
    }

    .ob-courses-nav-grid.et_pb_row,
    .ob-course-levels-grid.et_pb_row {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .ob-course-nav-card {
        padding: 26px 28px;
        border-radius: 26px;
    }

    .ob-course-nav-card h2 {
        font-size: 30px;
    }

    .ob-courses-beginner-section {
        padding-top: 56px !important;
        padding-bottom: 64px !important;
    }

    .ob-courses-beginner-row.et_pb_row {
        grid-template-columns: 1fr;
        padding: 38px 34px !important;
        gap: 28px;
        border-radius: 30px;
    }

    .ob-courses-beginner-content,
    .ob-course-detail-content {
        max-width: 100%;
    }

    .ob-courses-beginner-content h2 {
        font-size: clamp(38px, 6vw, 48px);
    }

    .ob-courses-beginner-panel {
        padding: 30px 28px;
        border-radius: 26px;
    }

    .ob-course-detail-section {
        padding-top: 64px !important;
        padding-bottom: 70px !important;
    }

    .ob-course-detail-row.et_pb_row {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .ob-course-detail-image img {
        height: 360px !important;
        border-radius: 28px !important;
    }

    .ob-course-detail-content h2 {
        font-size: clamp(38px, 6vw, 50px);
    }

    .ob-course-format-note {
        padding: 20px 22px;
        border-radius: 20px;
    }

    .ob-course-levels-heading-row {
        margin-top: 56px !important;
    }

    .ob-course-level-card {
        padding: 28px 28px;
        border-radius: 26px;
    }

    .ob-course-levels-note {
    padding: 24px 26px;
    border-radius: 24px;
    }

    .ob-courses-final-cta-section {
        padding-top: 68px !important;
        padding-bottom: 72px !important;
    }

    .ob-courses-final-cta-buttons {
        margin-top: 24px;
    }
}

/* ---------- 9. Responsive mobile ---------- */

@media (max-width: 767px) {
    .ob-courses-intro-section {
        padding-top: 0px !important;
        padding-bottom: 46px !important;
    }

    .ob-courses-intro-heading-row,
    .ob-courses-nav-grid,
    .ob-courses-beginner-row,
    .ob-course-detail-row,
    .ob-course-levels-heading-row,
    .ob-course-levels-grid,
    .ob-course-levels-note-row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-course-levels-heading-row {
    margin-top: 46px !important;
    }

    .ob-courses-intro-heading h1 {
        font-size: clamp(36px, 10vw, 42px);
        line-height: 1.04;
        margin-bottom: 16px;
    }

    .ob-courses-intro-heading p:not(.ob-section-kicker) {
        font-size: 15.5px;
        line-height: 1.55;
    }

    .ob-courses-nav-grid {
        margin-top: 26px !important;
    }

    .ob-courses-nav-grid.et_pb_row,
    .ob-courses-beginner-row.et_pb_row,
    .ob-course-detail-row.et_pb_row,
    .ob-course-levels-grid.et_pb_row {
        grid-template-columns: 1fr;
    }

    .ob-courses-nav-grid.et_pb_row,
    .ob-course-levels-grid.et_pb_row {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ob-course-nav-card {
        padding: 22px 20px;
        border-radius: 24px;
    }

    .ob-course-nav-card:hover,
    .ob-course-level-card:hover {
        transform: none;
    }

    .ob-course-nav-badge {
        margin-bottom: 15px;
        font-size: 10.5px;
    }

    .ob-course-nav-card h2 {
        font-size: 27px;
    }

    .ob-course-nav-card p {
        font-size: 14.5px;
        line-height: 1.58;
    }

    .ob-course-nav-meta,
    .ob-course-nav-arrow {
        font-size: 12.5px;
    }

    .ob-courses-beginner-section {
        padding-top: 42px !important;
        padding-bottom: 48px !important;
    }

    .ob-courses-beginner-row.et_pb_row {
        padding: 26px 20px !important;
        gap: 24px;
        border-radius: 26px;
    }

    .ob-courses-beginner-content h2 {
        font-size: clamp(31px, 8.5vw, 36px);
        line-height: 1.06;
        margin-bottom: 16px;
    }

    .ob-courses-beginner-content p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.6;
        margin-bottom: 14px;
    }

    .ob-courses-beginner-actions {
        margin-top: 24px;
    }

    .ob-courses-beginner-actions .et_pb_button,
    .ob-courses-beginner-actions .ob-btn-primary {
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
    }

    .ob-courses-beginner-panel {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .ob-courses-beginner-panel h3 {
        font-size: 27px;
        margin-bottom: 18px;
    }

    .ob-courses-beginner-panel li {
        padding-bottom: 15px;
        margin-bottom: 15px;
    }

    .ob-courses-beginner-panel strong {
        font-size: 14.5px;
    }

    .ob-courses-beginner-panel span {
        font-size: 14px;
        line-height: 1.5;
    }

    .ob-courses-beginner-note {
        margin-top: 18px;
        padding-top: 16px;
        font-size: 13.5px;
    }

    .ob-course-detail-section {
        padding-top: 48px !important;
        padding-bottom: 54px !important;
    }

    .ob-course-detail-row.et_pb_row {
        gap: 26px;
    }

    .ob-course-detail-image img {
        height: 250px !important;
        border-radius: 24px !important;
    }

    .ob-course-detail-content h2 {
        font-size: clamp(31px, 8.5vw, 38px);
        line-height: 1.06;
        margin-bottom: 16px;
    }

    .ob-course-detail-content p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.6;
        margin-bottom: 14px;
    }

    .ob-course-format-note {
        margin-top: 20px;
        padding: 18px;
        border-radius: 20px;
    }

    .ob-course-format-note span {
        font-size: 10.5px;
    }

    .ob-course-format-note strong {
        font-size: 14px;
        line-height: 1.5;
    }

    .ob-course-detail-list {
        margin-top: 20px !important;
    }

    .ob-course-detail-list li {
        padding-left: 24px;
        font-size: 14.5px;
    }

    .ob-course-detail-list li::before {
        width: 7px;
        height: 7px;
    }

    .ob-course-detail-actions {
        margin-top: 24px;
    }

    .ob-course-detail-actions .et_pb_button,
    .ob-course-detail-actions .ob-btn-primary {
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
        font-size: 15.5px !important;
        line-height: 1.15 !important;
        padding: 13px 18px !important;
    }

    .ob-course-detail-hamac .ob-course-detail-actions .et_pb_button {
        font-size: 15px !important;
        padding: 13px 16px !important;
    }

    .ob-course-levels-heading-row {
        margin-top: 46px !important;
    }

    .ob-course-levels-heading h3 {
        font-size: clamp(30px, 8vw, 36px);
        line-height: 1.06;
    }

    .ob-course-levels-heading p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.58;
    }

    .ob-course-levels-grid {
        margin-top: 24px !important;
    }

    .ob-course-level-card {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .ob-course-level-number {
        width: 40px;
        height: 40px;
        font-size: 11px;
    }

    .ob-course-level-card h4 {
        font-size: 26px;
        line-height: 1.08;
        margin-bottom: 16px !important;
    }

    .ob-course-level-card p {
        font-size: 14px;
        line-height: 1.55;
    }

    .ob-course-level-card li {
        font-size: 13.5px;
    }

    .ob-courses-final-cta-section {
        padding-top: 44px !important;
        padding-bottom: 48px !important;
    }

    .ob-courses-final-cta-buttons {
        flex-direction: column;
        gap: 12px;
        width: 100%;
        max-width: 320px;
        margin: 24px auto 0;
    }

    .ob-courses-final-cta-buttons .et_pb_button,
    .ob-courses-final-cta-buttons .ob-btn-final,
    .ob-courses-final-cta-buttons .ob-btn-final-secondary {
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
        padding: 14px 20px !important;
    }

    .ob-courses-final-cta-note {
        max-width: 320px;
        margin-top: 20px;
        font-size: 13.5px;
        line-height: 1.5;
    }

    .ob-other-practices-row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
        margin-top: 32px !important;
    }

    .ob-other-practices-card {
        grid-template-columns: 1fr;
        gap: 22px;

        padding: 24px 20px;

        border-radius: 24px;
    }

    .ob-other-practices-content h2 {
        margin-bottom: 14px;

        font-size: clamp(29px, 8vw, 35px);
        line-height: 1.07;
    }

    .ob-other-practices-text {
        font-size: 15px;
        line-height: 1.58;
    }

    .ob-other-practices-note {
        font-size: 14px;
        line-height: 1.5;
    }

    .ob-other-practices-button {
        width: 100%;
        justify-content: center;
        text-align: center;
        margin-top: 22px;
    }

    .ob-other-practices-aside {
        padding: 22px 20px;
        border-radius: 22px;
    }

    .ob-other-practices-aside li {
        font-size: 14.5px;
    }
}

/* =========================================================
   ORIBIRD - PAGE TARIFS
   Page sans Hero : lisibilité des offres + conversion réservation
   ========================================================= */

/* ---------- 1. Layout commun Page Tarifs ---------- */

/* Shared row constraints and Divi grid resets live in Layout helpers. */

.ob-tarifs-featured-section,
.ob-tarifs-standard-section,
.ob-tarifs-conditions-section,
.ob-tarifs-evjf-section {
    scroll-margin-top: 110px;
}

/* ---------- 2. Intro simple sans Hero ---------- */

.ob-tarifs-intro-section {
    background: var(--ob-color-bg);
    padding-top: 54px !important;
    padding-bottom: 28px !important;
}

.ob-tarifs-intro-row.et_pb_row {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.48fr);
    gap: 38px;
    align-items: center;
}

.ob-tarifs-intro-heading {
    max-width: 760px;
}

.ob-tarifs-intro-heading h1 {
    margin: 0 0 18px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(42px, 5vw, 64px);
    line-height: 1.03;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-tarifs-intro-heading p:not(.ob-section-kicker) {
    max-width: 680px;
    margin-bottom: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 17px;
    line-height: 1.65;
}

.ob-tarifs-intro-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

.ob-tarifs-intro-actions a {
    text-decoration: none !important;
}

.ob-tarifs-entry-card {
    min-height: 100%;
    padding: 30px 28px;
    background: #fffaf6;
    border: 1px solid var(--ob-color-primary-light);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-card);
}

.ob-tarifs-entry-card h2 {
    margin: 0 0 10px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 30px;
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-tarifs-entry-card p {
    margin: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.58;
}

.ob-tarifs-entry-price {
    margin: 18px 0 12px;
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 48px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -0.04em;
}

/* ---------- 3. Navigation interne ---------- */

.ob-tarifs-anchor-section,
.ob-tarifs-intro-section:has(.ob-tarifs-anchor-row) {
    background: var(--ob-color-bg);
    padding-top: 20px !important;
    padding-bottom: 42px !important;
}

.ob-tarifs-anchor-row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.ob-tarifs-anchor-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 16px;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 24px;
    box-shadow: var(--ob-shadow-card);
}

.ob-tarifs-anchor-label {
    margin-right: 8px;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ob-tarifs-anchor-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 10px 15px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.1;
    font-weight: 700;
    text-decoration: none !important;
    transition: var(--ob-transition-base);
}

.ob-tarifs-anchor-nav a:hover {
    background: var(--ob-color-primary-wash);
    border-color: var(--ob-color-primary-light);
    color: var(--ob-color-primary-dark);
}

/* ---------- 4. Sections tarifs ---------- */

.ob-tarifs-featured-section,
.ob-tarifs-standard-section,
.ob-tarifs-conditions-section,
.ob-tarifs-evjf-section {
    padding-top: 64px !important;
    padding-bottom: 68px !important;
}

.ob-tarifs-featured-section,
.ob-tarifs-standard-section-soft,
.ob-tarifs-conditions-section {
    background: var(--ob-color-bg-soft);
}

.ob-tarifs-standard-section,
.ob-tarifs-evjf-section {
    background: var(--ob-color-bg);
}

.ob-tarifs-heading-row {
    padding-bottom: 0 !important;
}

.ob-tarifs-heading {
    max-width: 760px;
}

.ob-tarifs-heading h2 {
    margin: 0 0 16px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(38px, 4.2vw, 56px);
    line-height: 1.04;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-tarifs-heading p:not(.ob-section-kicker) {
    max-width: 660px;
    margin-bottom: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.62;
}

.ob-tarifs-featured-grid,
.ob-tarifs-grid {
    margin-top: 32px !important;
}

.ob-tarifs-featured-grid.et_pb_row,
.ob-tarifs-grid-3.et_pb_row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.ob-tarifs-grid-2.et_pb_row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.ob-tarifs-featured-grid.et_pb_row > .et_pb_column,
.ob-tarifs-grid.et_pb_row > .et_pb_column {
    display: flex !important;
}

.ob-tarifs-featured-grid .et_pb_code,
.ob-tarifs-featured-grid .et_pb_code_inner,
.ob-tarifs-grid .et_pb_code,
.ob-tarifs-grid .et_pb_code_inner {
    width: 100%;
    height: 100%;
}

/* ---------- 5. Cartes prix ---------- */

.ob-tarifs-card {
    width: 100%;
    min-height: 100%;
    padding: 30px 28px;
}

.ob-tarifs-card-featured {
    background: #fffaf6;
    border-color: var(--ob-color-primary-light);
}

/* En-têtes des cartes Tarifs avec badge à droite */

.ob-tarifs-card-header,
.ob-tarifs-entry-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
}

.ob-tarifs-card-header {
    margin-bottom: 14px;
}

.ob-tarifs-entry-header {
    margin-bottom: 18px;
}

.ob-tarifs-card-header h3,
.ob-tarifs-entry-header h2 {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

.ob-tarifs-card-header .ob-pricing-label,
.ob-tarifs-entry-header .ob-pricing-label {
    flex: 0 0 auto;
    margin: 0 !important;
    white-space: nowrap;
}

.ob-tarifs-entry-header + .ob-tarifs-entry-price {
    margin-top: 0;
}

.ob-tarifs-card h3 {
    margin: 0 0 14px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 30px;
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-tarifs-price {
    margin: 0 0 14px;
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: clamp(42px, 4vw, 54px);
    line-height: 1;
    font-weight: 800;
    letter-spacing: -0.04em;
}

.ob-tarifs-price span {
    color: var(--ob-color-muted);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0;
}

.ob-tarifs-meta {
    margin: 0 0 20px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.58;
}

.ob-tarifs-list {
    list-style: none !important;
    padding: 18px 0 0 !important;
    margin: 20px 0 0 !important;
    border-top: 1px solid var(--ob-color-border);
}

.ob-tarifs-list li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 10px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.45;
    font-weight: 700;
}

.ob-tarifs-list li:last-child {
    margin-bottom: 0;
}

.ob-tarifs-list li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 0.72em;
    width: 7px;
    height: 7px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary);
    box-shadow: 0 0 0 5px rgba(211, 163, 107, 0.14);
    transform: translateY(-50%);
}

.ob-tarifs-card-note {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--ob-color-border);
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.5;
}

.ob-tarifs-card-actions {
    margin-top: 24px;
}

.ob-tarifs-card-actions a {
    text-decoration: none !important;
}

/* ---------- 6. Conditions ---------- */

.ob-tarifs-conditions-section {
    padding-top: 58px !important;
    padding-bottom: 64px !important;
}

.ob-tarifs-conditions-row.et_pb_row {
    grid-template-columns: minmax(0, 1fr);
}

.ob-tarifs-conditions-card {
    padding: 34px 34px;
    background: rgba(211, 163, 107, 0.11);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: 30px;
}

.ob-tarifs-conditions-card h2 {
    margin: 0 0 18px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(34px, 3.8vw, 46px);
    line-height: 1.06;
    letter-spacing: -0.03em;
    font-weight: 400;
}

.ob-tarifs-conditions-card p {
    margin-bottom: 14px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15.5px;
    line-height: 1.62;
}

.ob-tarifs-conditions-card p:last-child {
    margin-bottom: 0;
}

/* ---------- 7. EVJF ---------- */

.ob-tarifs-evjf-section {
    padding-top: 64px !important;
    padding-bottom: 70px !important;
}

.ob-tarifs-evjf-row.et_pb_row {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 42px;
    align-items: center;
    padding: 42px !important;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-lg);
    box-shadow: var(--ob-shadow-soft);
}

.ob-tarifs-evjf-image,
.ob-tarifs-evjf-image .et_pb_image_wrap {
    width: 100%;
}

.ob-tarifs-evjf-image img {
    display: block !important;
    width: 100% !important;
    height: 320px !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 28px !important;
    box-shadow: var(--ob-shadow-image);
}

.ob-tarifs-evjf-content h2 {
    margin: 0 0 16px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(36px, 4vw, 52px);
    line-height: 1.04;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-tarifs-evjf-content p:not(.ob-section-kicker) {
    margin-bottom: 16px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.62;
}

.ob-tarifs-evjf-price {
    margin: 18px 0 22px;
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: clamp(42px, 4vw, 54px);
    line-height: 1;
    font-weight: 800;
    letter-spacing: -0.04em;
}

.ob-tarifs-evjf-price span {
    color: var(--ob-color-muted);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0;
}

/* ---------- 8. CTA final ---------- */

.ob-tarifs-final-cta-section {
    padding-top: 70px !important;
    padding-bottom: 74px !important;
}

.ob-final-cta-actions {
    display: flex;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 28px;
}

.ob-final-cta-actions a {
    text-decoration: none !important;
}

/* ---------- 9. Responsive tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {
    .ob-tarifs-intro-row,
    .ob-tarifs-anchor-row,
    .ob-tarifs-heading-row,
    .ob-tarifs-featured-grid,
    .ob-tarifs-grid,
    .ob-tarifs-conditions-row,
    .ob-tarifs-evjf-row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-tarifs-intro-section {
        padding-top: 38px !important;
        padding-bottom: 26px !important;
    }

    .ob-tarifs-intro-row.et_pb_row {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .ob-tarifs-intro-heading h1 {
        max-width: 680px;
        font-size: clamp(40px, 6.6vw, 52px);
        line-height: 1.04;
    }

    .ob-tarifs-entry-card {
        padding: 28px;
        border-radius: 28px;
    }

    .ob-tarifs-anchor-section,
    .ob-tarifs-intro-section:has(.ob-tarifs-anchor-row) {
        padding-top: 18px !important;
        padding-bottom: 38px !important;
    }

    .ob-tarifs-anchor-nav {
        padding: 15px;
        border-radius: 24px;
    }

    .ob-tarifs-featured-section,
    .ob-tarifs-standard-section,
    .ob-tarifs-conditions-section,
    .ob-tarifs-evjf-section {
        padding-top: 58px !important;
        padding-bottom: 64px !important;
    }

    .ob-tarifs-featured-grid.et_pb_row,
    .ob-tarifs-grid-2.et_pb_row,
    .ob-tarifs-grid-3.et_pb_row,
    .ob-tarifs-evjf-row.et_pb_row {
        grid-template-columns: 1fr;
    }

    .ob-tarifs-featured-grid.et_pb_row,
    .ob-tarifs-grid.et_pb_row {
        gap: 18px;
    }

    .ob-tarifs-card {
        padding: 28px 30px;
        border-radius: 28px;
    }

    .ob-tarifs-card h3 {
        font-size: 30px;
    }

    .ob-tarifs-price {
        font-size: 48px;
    }

    .ob-tarifs-conditions-card {
        padding: 32px 30px;
        border-radius: 28px;
    }

    .ob-tarifs-evjf-row.et_pb_row {
        padding: 34px !important;
        gap: 30px;
        border-radius: 30px;
    }

    .ob-tarifs-evjf-image img {
        height: 310px !important;
        border-radius: 26px !important;
    }

    .ob-tarifs-final-cta-section {
        padding-top: 64px !important;
        padding-bottom: 68px !important;
    }
}

/* ---------- 10. Responsive mobile ---------- */

@media (max-width: 767px) {
    .ob-tarifs-intro-row,
    .ob-tarifs-anchor-row,
    .ob-tarifs-heading-row,
    .ob-tarifs-featured-grid,
    .ob-tarifs-grid,
    .ob-tarifs-conditions-row,
    .ob-tarifs-evjf-row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-tarifs-intro-section {
        padding-top: 28px !important;
        padding-bottom: 26px !important;
    }

    .ob-tarifs-intro-row.et_pb_row,
    .ob-tarifs-featured-grid.et_pb_row,
    .ob-tarifs-grid-2.et_pb_row,
    .ob-tarifs-grid-3.et_pb_row,
    .ob-tarifs-evjf-row.et_pb_row {
        grid-template-columns: 1fr;
    }

    .ob-tarifs-intro-row.et_pb_row {
        gap: 24px;
    }

    .ob-tarifs-intro-heading h1 {
        font-size: clamp(36px, 10vw, 42px);
        line-height: 1.04;
        margin-bottom: 16px;
    }

    .ob-tarifs-intro-heading p:not(.ob-section-kicker) {
        font-size: 15.5px;
        line-height: 1.55;
    }

    .ob-tarifs-intro-actions {
        flex-direction: column;
        gap: 12px;
        margin-top: 24px;
    }

    .ob-tarifs-intro-actions .et_pb_button,
    .ob-tarifs-intro-actions .ob-btn-primary,
    .ob-tarifs-intro-actions .ob-btn-secondary {
        width: 100% !important;
        max-width: none !important;
        text-align: center !important;
        white-space: normal !important;
        padding: 14px 20px !important;
    }

    .ob-tarifs-entry-card {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .ob-tarifs-entry-card h2 {
        font-size: 27px;
    }

    .ob-tarifs-entry-card p {
        font-size: 14.5px;
        line-height: 1.55;
    }

    .ob-course-level-block {
    padding-top: 14px;
    margin-top: 14px;
    }

    .ob-tarifs-entry-price {
        font-size: 42px;
    }

    .ob-tarifs-anchor-section,
    .ob-tarifs-intro-section:has(.ob-tarifs-anchor-row) {
        padding-top: 14px !important;
        padding-bottom: 38px !important;
    }

    .ob-tarifs-anchor-nav {
        padding: 14px;
        border-radius: 22px;
        gap: 8px;
    }

    .ob-tarifs-anchor-label {
        width: 100%;
        margin: 0 0 4px;
        font-size: 11px;
    }

    .ob-tarifs-anchor-nav a {
        flex: 1 1 calc(50% - 8px);
        min-height: 36px;
        padding: 9px 10px;
        font-size: 12.5px;
    }

    .ob-tarifs-anchor-nav a:last-child {
        flex-basis: 100%;
    }

    .ob-tarifs-featured-section,
    .ob-tarifs-standard-section,
    .ob-tarifs-conditions-section,
    .ob-tarifs-evjf-section {
        padding-top: 44px !important;
        padding-bottom: 50px !important;
    }

    .ob-tarifs-heading h2 {
        font-size: clamp(31px, 8.5vw, 38px);
        line-height: 1.06;
        margin-bottom: 14px;
    }

    .ob-tarifs-heading p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.58;
    }

    .ob-tarifs-featured-grid,
    .ob-tarifs-grid {
        margin-top: 24px !important;
    }

    .ob-tarifs-featured-grid.et_pb_row,
    .ob-tarifs-grid.et_pb_row {
        gap: 16px;
    }

    .ob-tarifs-card {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .ob-tarifs-card:hover {
        transform: none;
    }

    .ob-tarifs-card h3 {
        font-size: 27px;
        line-height: 1.08;
    }

    .ob-tarifs-price {
        font-size: 42px;
        margin-bottom: 13px;
    }

    .ob-tarifs-price span {
        font-size: 13.5px;
    }

    .ob-tarifs-meta {
        font-size: 14.5px;
        line-height: 1.55;
        margin-bottom: 18px;
    }

    .ob-tarifs-list {
        padding-top: 16px !important;
        margin-top: 18px !important;
    }

    .ob-tarifs-list li {
        padding-left: 24px;
        margin-bottom: 10px;
        font-size: 14px;
        line-height: 1.45;
    }

    .ob-tarifs-card-actions {
        margin-top: 20px;
    }

    .ob-tarifs-card-actions .et_pb_button,
    .ob-tarifs-card-actions .ob-btn-primary,
    .ob-tarifs-card-actions .ob-btn-secondary {
        width: auto !important;
        max-width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
        padding: 13px 22px !important;
    }

    .ob-tarifs-conditions-section {
        padding-top: 42px !important;
        padding-bottom: 46px !important;
    }

    .ob-tarifs-conditions-card {
        padding: 26px 22px;
        border-radius: 26px;
    }

    .ob-tarifs-conditions-card h2 {
        font-size: clamp(29px, 8vw, 34px);
        line-height: 1.08;
        margin-bottom: 18px;
    }

    .ob-tarifs-conditions-card p {
        font-size: 14.5px;
        line-height: 1.58;
        margin-bottom: 14px;
    }

    .ob-tarifs-evjf-section {
        padding-top: 46px !important;
        padding-bottom: 50px !important;
    }

    .ob-tarifs-evjf-row.et_pb_row {
        padding: 22px 20px 24px !important;
        gap: 24px;
        border-radius: 26px;
    }

    .ob-tarifs-evjf-image img {
        height: 210px !important;
        border-radius: 22px !important;
    }

    .ob-tarifs-evjf-content h2 {
        font-size: clamp(31px, 8.5vw, 38px);
        line-height: 1.06;
        margin-bottom: 16px;
    }

    .ob-tarifs-evjf-content p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.58;
    }

    .ob-tarifs-evjf-price {
        font-size: 42px;
        margin: 16px 0 20px;
    }

    .ob-tarifs-evjf-price span {
        font-size: 13.5px;
    }

    .ob-tarifs-evjf-content .et_pb_button,
    .ob-tarifs-evjf-content .ob-btn-primary {
        width: 100% !important;
        max-width: 280px !important;
        text-align: center !important;
        white-space: normal !important;
    }

    .ob-tarifs-final-cta-section {
        padding-top: 54px !important;
        padding-bottom: 58px !important;
    }

    .ob-final-cta-actions {
        flex-direction: column;
        gap: 12px;
        width: 100%;
        max-width: 320px;
        margin: 24px auto 0;
    }

    .ob-final-cta-actions .et_pb_button,
    .ob-final-cta-actions .ob-btn-final,
    .ob-final-cta-actions .ob-btn-final-secondary {
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
        padding: 14px 20px !important;
    }
}

/* ---------- 11. Très petits mobiles ---------- */

@media (max-width: 390px) {
    .ob-tarifs-card,
    .ob-tarifs-entry-card {
        padding: 22px 18px;
    }

    .ob-tarifs-card h3,
    .ob-tarifs-entry-card h2 {
        font-size: 25px;
    }

    .ob-tarifs-price,
    .ob-tarifs-entry-price,
    .ob-tarifs-evjf-price {
        font-size: 39px;
    }

    .ob-tarifs-conditions-card {
        padding: 24px 20px;
    }

    .ob-tarifs-evjf-row.et_pb_row {
        padding: 20px 18px 22px !important;
    }

    .ob-tarifs-evjf-image img {
        height: 195px !important;
    }
}

/* ---------- 12. Responsive: tablet ---------- */

@media (max-width: 980px) {
    .ob-section {
        padding-top: var(--ob-section-padding-tablet);
        padding-bottom: var(--ob-section-padding-tablet);
    }

    .ob-booking-step::after {
        display: none;
    }

    .ob-booking-step {
        margin-bottom: 18px;
    }

    .ob-evjf-card {
        padding: 34px;
    }
}

@media (min-width: 768px) and (max-width: 980px) {
    .ob-home-hero .et_pb_row,
    .ob-courses-section .et_pb_row,
    .ob-benefits-section .et_pb_row,
    .ob-studio-section .et_pb_row,
    .ob-faq-section .et_pb_row,
    .ob-booking-section .et_pb_row,
    .ob-evjf-section .et_pb_row,
    .ob-pricing-section .et_pb_row,
    .ob-reviews-section .et_pb_row,
    .ob-evjf-page-hero-row,
    .ob-evjf-formula-row,
    .ob-evjf-steps-heading-row,
    .ob-evjf-steps-grid,
    .ob-evjf-gallery-heading-row,
    .ob-evjf-gallery-grid,
    .ob-evjf-booking-row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-hero-kicker {
        font-size: 12px;
        letter-spacing: 0.11em;
        margin-bottom: 12px;
    }

    .ob-hero-title h1 {
        font-size: 46px !important;
        line-height: 1.04 !important;
        max-width: 680px;
        margin-bottom: 18px;
    }

    .ob-hero-text {
        font-size: 16px;
        line-height: 1.6;
        max-width: 620px;
        margin-bottom: 22px;
    }

    .ob-section-title h2,
    .ob-benefits-section .ob-section-title h2,
    .ob-studio-section .ob-section-title h2,
    .ob-faq-section .ob-section-title h2,
    .ob-booking-section .ob-section-title h2,
    .ob-pricing-section .ob-section-title h2 {
        font-size: 42px !important;
        line-height: 1.08 !important;
        margin-bottom: 18px !important;
    }

    .ob-section-intro,
    .ob-benefits-section .ob-section-intro,
    .ob-studio-section .ob-section-intro,
    .ob-faq-section .ob-section-intro,
    .ob-booking-section .ob-section-intro,
    .ob-pricing-section .ob-section-intro {
        font-size: 16px !important;
        line-height: 1.55 !important;
        max-width: 620px !important;
    }

    .ob-hero-buttons {
        margin-top: 24px;
        margin-bottom: 18px;
        gap: 14px;
    }

    .ob-hero-buttons a,
    .ob-hero-buttons .et_pb_button {
        padding: 12px 22px !important;
    }

    .ob-img-hero {
        margin-top: 8px;
    }

    .ob-img-hero img {
        border-radius: 26px;
    }

    .ob-course-cards-row {
        display: flex !important;
        flex-direction: column !important;
        gap: 22px !important;
    }

    .ob-course-cards-row .et_pb_column {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-bottom: 0 !important;
        display: grid !important;
        grid-template-columns: 300px 1fr !important;
        align-items: center !important;
        gap: 24px !important;
        background: var(--ob-color-white);
        border: 1px solid var(--ob-color-border);
        border-radius: var(--ob-radius-card);
        padding: 20px !important;
        box-shadow: 0 10px 35px rgba(74, 71, 65, 0.05);
    }

    .ob-course-card-img,
    .ob-course-card-text {
        margin: 0 !important;
    }

    .ob-course-card-img img {
        width: 100% !important;
        height: 230px !important;
        object-fit: cover !important;
        object-position: center center !important;
        border-radius: 22px !important;
        display: block !important;
    }

    .ob-course-card-text h3 {
        font-size: 30px !important;
    }

    .ob-course-card-text p {
        font-size: 16px !important;
    }

    .ob-discovery-banner {
        padding: 34px 30px !important;
        border-radius: 28px !important;
    }

    .ob-discovery-banner .ob-img-soft,
    .ob-studio-image,
    .ob-evjf-image {
        margin-top: 26px !important;
    }

    .ob-discovery-banner .ob-img-soft img,
    .ob-studio-image img,
    .ob-benefits-image img {
        border-radius: 26px !important;
    }

    .ob-google-reviews-wrap {
        padding: 28px 22px !important;
        border-radius: 26px !important;
        overflow: hidden !important;
    }

    .ob-google-reviews-wrap iframe,
    .ob-google-reviews-wrap > div {
        max-width: 100% !important;
    }

    .ob-benefit-icon img {
        width: 112px !important;
        opacity: 1 !important;
    }

    .ob-benefit-card,
    .ob-pricing-card {
        padding: 24px 28px !important;
        margin-bottom: 18px !important;
        border-radius: 24px !important;
    }

    .ob-booking-step {
        padding: 22px 26px !important;
        margin-bottom: 14px !important;
        border-radius: 22px !important;
    }

    .ob-booking-step h3 {
        font-size: 24px !important;
    }

    .ob-evjf-card {
        padding: 30px !important;
        border-radius: 28px !important;
    }

    .ob-evjf-image img {
        width: 100% !important;
        height: 330px !important;
        object-fit: cover !important;
        object-position: center center !important;
        border-radius: 24px !important;
    }

    .ob-faq-accordion {
        margin-top: 26px !important;
    }

    .ob-faq-accordion .et_pb_toggle {
        padding: 17px 22px !important;
        margin-bottom: 9px !important;
        border-radius: 18px !important;
    }

    .ob-final-cta-section {
        padding-top: 70px !important;
        padding-bottom: 70px !important;
    }

    .ob-final-cta-wrap {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-final-cta-title h2 {
        font-size: 50px !important;
    }

    .ob-footer {
        padding-top: 38px !important;
        padding-bottom: 22px !important;
        text-align: left !important;
    }

    .ob-footer-main,
    .ob-footer-bottom {
        width: 82% !important;
        max-width: 640px !important;
        margin-inline: auto !important;
        text-align: left !important;
    }

    .ob-footer-logo img {
        max-width: 170px !important;
    }

    .ob-footer-main .et_pb_column {
        margin-bottom: 24px !important;
    }

    .ob-evjf-page-hero {
        padding-top: 42px !important;
        padding-bottom: 58px !important;
    }

    .ob-evjf-page-hero-row {
        padding: 38px 34px !important;
        border-radius: 30px;
    }

    .ob-evjf-page-hero-row.et_pb_row,
    .ob-evjf-formula-row.et_pb_row,
    .ob-evjf-steps-grid.et_pb_row,
    .ob-evjf-booking-row.et_pb_row {
        grid-template-columns: 1fr;
    }

    .ob-evjf-page-hero-row.et_pb_row {
        gap: 28px;
    }

    .ob-evjf-page-hero-image img {
        height: 340px !important;
        border-radius: 26px !important;
    }

    .ob-evjf-formula-section {
        padding-top: 4px !important;
        padding-bottom: 68px !important;
    }

    .ob-evjf-formula-row.et_pb_row {
        gap: 34px;
    }

    .ob-evjf-formula-content {
        max-width: 100%;
    }

    .ob-evjf-formula-content h2 {
        max-width: 660px;
        font-size: clamp(44px, 7vw, 58px);
    }

    .ob-evjf-formula-card {
        padding: 34px 32px;
        border-radius: 30px;
    }

    .ob-evjf-steps-section,
    .ob-evjf-gallery-section {
        padding-top: 68px !important;
        padding-bottom: 74px !important;
    }

    .ob-evjf-steps-heading,
    .ob-evjf-gallery-heading {
        max-width: 100%;
        margin-inline: 0;
    }

    .ob-evjf-steps-heading h2,
    .ob-evjf-gallery-heading h2 {
        max-width: 640px;
        font-size: clamp(38px, 6vw, 48px);
        line-height: 1.04;
    }

    .ob-evjf-steps-grid {
        margin-top: 34px !important;
    }

    .ob-evjf-step-card {
        padding: 28px 26px 26px;
        border-radius: 28px;
    }

    .ob-evjf-gallery-grid {
        margin-top: 36px !important;
    }

    .ob-evjf-gallery-grid.et_pb_row {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .ob-evjf-gallery-grid .et_pb_column:first-child {
        grid-column: 1 / -1;
    }

    .ob-evjf-gallery-card img {
        height: 260px !important;
        border-radius: 28px !important;
    }

    .ob-evjf-gallery-card-large img {
        height: 340px !important;
    }

    .ob-evjf-booking-section {
        padding-top: 70px !important;
        padding-bottom: 76px !important;
    }

    .ob-evjf-booking-row.et_pb_row {
        gap: 24px;
    }

    .ob-evjf-booking-row .et_pb_column.ob-evjf-faq-card,
    .ob-evjf-booking-row .et_pb_column.ob-evjf-form-card,
    .ob-evjf-faq-card,
    .ob-evjf-form-card {
        padding: 34px 32px !important;
        border-radius: 30px !important;
    }
}

/* ---------- 13. Responsive: mobile ---------- */

@media (max-width: 767px) {
    .ob-container {
        width: min(100% - 24px, var(--ob-container-width));
    }

    .ob-section {
        padding-top: var(--ob-section-padding-mobile);
        padding-bottom: var(--ob-section-padding-mobile);
    }

    .ob-card {
        padding: 22px;
        border-radius: var(--ob-radius-sm);
    }

    .ob-header-mobile,
    .ob-main-header {
        padding-top: 30px !important;
        padding-bottom: 10px !important;
    }

    .ob-header-logo,
    .ob-logo {
        text-align: center !important;
        overflow: visible !important;
    }

    .ob-header-logo img,
    .ob-logo img {
        max-width: 220px !important;
        height: auto !important;
        margin-inline: auto !important;
        display: block !important;
        transform: none !important;
    }

    .ob-header-menu,
    .ob-mobile-menu {
        margin-top: 16px !important;
        margin-bottom: 0 !important;
    }

    .ob-home-hero {
        padding-top: 30px !important;
        padding-bottom: 44px !important;
    }

    .ob-home-hero .et_pb_row,
    .ob-courses-section .et_pb_row,
    .ob-evjf-page-hero-row,
    .ob-evjf-formula-row,
    .ob-evjf-steps-heading-row,
    .ob-evjf-steps-grid,
    .ob-evjf-gallery-heading-row,
    .ob-evjf-gallery-grid,
    .ob-evjf-booking-row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-benefits-section .et_pb_row,
    .ob-studio-section .et_pb_row,
    .ob-faq-section .et_pb_row,
    .ob-booking-section .et_pb_row,
    .ob-evjf-section .et_pb_row,
    .ob-pricing-section .et_pb_row,
    .ob-reviews-section .et_pb_row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .ob-hero-kicker,
    .ob-section-kicker,
    .ob-discovery-banner .ob-section-kicker,
    .ob-google-reviews-wrap .ob-section-kicker,
    .ob-reviews-section .ob-section-kicker,
    .ob-benefits-section .ob-section-kicker,
    .ob-studio-section .ob-section-kicker,
    .ob-faq-section .ob-section-kicker,
    .ob-booking-section .ob-section-kicker,
    .ob-evjf-card .ob-section-kicker,
    .ob-pricing-section .ob-section-kicker {
        font-size: 11px !important;
        letter-spacing: 0.11em !important;
        margin-bottom: 10px !important;
    }

    .ob-hero-title h1 {
        font-size: 39px !important;
        line-height: 1.03 !important;
        margin-bottom: 20px !important;
    }

    .ob-hero-text {
        font-size: 16px !important;
        line-height: 1.6 !important;
        margin-bottom: 24px !important;
    }

    .ob-hero-buttons,
    .ob-evjf-page-hero-buttons {
        flex-direction: column;
        gap: 12px !important;
        margin-top: 24px !important;
        margin-bottom: 18px !important;
    }

    .ob-hero-buttons a,
    .ob-hero-buttons .et_pb_button,
    .ob-evjf-page-hero-buttons a,
    .ob-evjf-page-hero-buttons .et_pb_button {
        width: 100% !important;
        text-align: center !important;
        padding: 14px 22px !important;
    }

    .ob-img-hero img {
        border-radius: 24px !important;
    }

    .ob-courses-section,
    .ob-faq-section,
    .ob-booking-section,
    .ob-evjf-section,
    .ob-pricing-section {
        padding-top: 40px !important;
    }

    .ob-reviews-section,
    .ob-benefits-section,
    .ob-studio-section {
        padding-top: 42px !important;
        padding-bottom: 42px !important;
    }

    .ob-courses-section .ob-section-title h2,
    .ob-benefits-section .ob-section-title h2,
    .ob-studio-section .ob-section-title h2,
    .ob-faq-section .ob-section-title h2,
    .ob-booking-section .ob-section-title h2,
    .ob-pricing-section .ob-section-title h2 {
        font-size: 35px !important;
        line-height: 1.08 !important;
        margin-bottom: 18px !important;
    }

    .ob-evjf-card .ob-section-title h2,
    .ob-google-reviews-wrap .ob-section-title h2,
    .ob-reviews-section .ob-section-title h2 {
        font-size: 32px !important;
        line-height: 1.08 !important;
        margin-bottom: 18px !important;
    }

    .ob-section-intro,
    .ob-benefits-section .ob-section-intro,
    .ob-studio-section .ob-section-intro,
    .ob-faq-section .ob-section-intro,
    .ob-booking-section .ob-section-intro,
    .ob-evjf-card .ob-section-intro,
    .ob-pricing-section .ob-section-intro,
    .ob-google-reviews-wrap .ob-section-intro,
    .ob-reviews-section .ob-section-intro {
        font-size: 15.5px !important;
        line-height: 1.5 !important;
        margin-bottom: 22px !important;
    }

    .ob-course-cards-row {
        display: flex !important;
        flex-direction: column !important;
        gap: 18px !important;
    }

    .ob-course-cards-row .et_pb_column {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-bottom: 0 !important;
        background: var(--ob-color-white) !important;
        border: 1px solid var(--ob-color-border) !important;
        border-radius: 24px !important;
        padding: 16px !important;
        box-shadow: 0 10px 35px rgba(74, 71, 65, 0.05) !important;
    }

    .ob-course-card-img {
        margin-bottom: 16px !important;
    }

    .ob-course-card-img img {
        width: 100% !important;
        height: 230px !important;
        object-fit: cover !important;
        object-position: center center !important;
        border-radius: 20px !important;
        display: block !important;
    }

    .ob-course-card-text {
        margin: 0 !important;
    }

    .ob-course-card-text h3 {
        font-size: 27px !important;
        line-height: 1.1 !important;
    }

    .ob-discovery-banner {
        width: 92% !important;
        margin-inline: auto !important;
        padding: 28px 20px !important;
        border-radius: 26px !important;
    }

    .ob-discovery-banner .et_pb_button,
    .ob-discovery-banner .ob-btn-primary,
    .ob-booking-section .et_pb_button,
    .ob-evjf-card .et_pb_button,
    .ob-pricing-section .et_pb_button,
    .ob-final-cta-section .et_pb_button,
    .ob-btn-final {
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
    }

    .ob-discovery-banner .et_pb_button,
    .ob-discovery-banner .ob-btn-primary {
        max-width: 290px !important;
    }

    .ob-discovery-banner .ob-img-soft {
        margin-top: 26px !important;
    }

    .ob-discovery-banner .ob-img-soft img,
    .ob-benefits-image img,
    .ob-studio-image img {
        width: 100% !important;
        object-fit: cover !important;
        object-position: center center !important;
        border-radius: 22px !important;
        display: block !important;
    }

    .ob-discovery-banner .ob-img-soft img {
        height: 225px !important;
    }

    .ob-benefits-image img,
    .ob-studio-image img {
        height: 210px !important;
        box-shadow: 0 14px 38px rgba(74, 71, 65, 0.08) !important;
    }

    .ob-google-reviews-wrap {
        padding: 22px 18px !important;
        border-radius: 24px !important;
        overflow: hidden !important;
        margin-top: 0 !important;
    }

    .ob-google-reviews-wrap iframe,
    .ob-google-reviews-wrap > div {
        max-width: 100% !important;
    }

    .ob-benefit-icon {
        margin-top: 4px !important;
        margin-bottom: 6px !important;
    }

    .ob-benefit-icon img {
        width: 64px !important;
        opacity: 1 !important;
    }

    .ob-benefit-card,
    .ob-pricing-card {
        padding: 20px 22px !important;
        margin-bottom: 14px !important;
        border-radius: 22px !important;
    }

    .ob-booking-step {
        padding: 16px 18px !important;
        margin-bottom: 12px !important;
        border-radius: 20px !important;
    }

    .ob-booking-step h3 {
        font-size: 19px !important;
    }

    .ob-booking-section .et_pb_button,
    .ob-evjf-card .et_pb_button {
        max-width: 280px !important;
    }

    .ob-evjf-card {
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 20px 20px 24px !important;
        border-radius: 24px !important;
        overflow: hidden !important;
    }

    .ob-evjf-image {
        margin-bottom: 22px !important;
    }

    .ob-evjf-image img {
        width: 100% !important;
        height: 190px !important;
        object-fit: cover !important;
        object-position: center center !important;
        border-radius: 20px !important;
        display: block !important;
    }

    .ob-evjf-points {
        margin-top: 12px !important;
        margin-bottom: 22px !important;
        font-size: 14px !important;
        line-height: 1.6 !important;
    }

    .ob-pricing-label {
        margin-bottom: 14px !important;
        padding: 7px 12px !important;
        font-size: 10.5px !important;
        line-height: 1 !important;
    }

    .ob-pricing-card h3 {
        font-size: 27px !important;
    }

    .ob-faq-accordion {
        margin-top: 18px !important;
    }

    .ob-faq-accordion .et_pb_toggle {
        padding: 15px 18px !important;
        margin-bottom: 9px !important;
        border-radius: 18px !important;
    }

    .ob-faq-accordion .et_pb_toggle_title {
        font-size: 15px !important;
        padding-right: 28px !important;
    }

    .ob-faq-accordion .et_pb_toggle_content {
        font-size: 14px !important;
        line-height: 1.55 !important;
        padding-top: 10px !important;
    }

    .ob-final-cta-section {
        padding-top: 46px !important;
        padding-bottom: 48px !important;
    }

    .ob-final-cta-wrap {
        width: 88% !important;
        max-width: 400px !important;
        margin-inline: auto !important;
    }

    .ob-final-cta-title h2 {
        font-size: 39px !important;
        line-height: 1.04 !important;
    }

    .ob-final-cta-text {
        font-size: 15px !important;
        line-height: 1.55 !important;
        max-width: 320px !important;
    }

    .ob-footer {
        padding-top: 30px !important;
        padding-bottom: 20px !important;
        text-align: left !important;
    }

    .ob-footer-main,
    .ob-footer-bottom {
        width: 86% !important;
        max-width: 360px !important;
        margin-inline: auto !important;
        text-align: left !important;
    }

    .ob-footer-logo {
        text-align: center !important;
    }

    .ob-footer-logo img {
        max-width: 145px !important;
        margin-inline: auto !important;
    }

    .ob-footer-main .et_pb_column {
        margin-bottom: 20px !important;
    }

    .ob-footer-text,
    .ob-footer-nav a,
    .ob-footer-contact a,
    .ob-footer-contact p {
        font-size: 14px !important;
        line-height: 1.5 !important;
    }

    .ob-footer h3 {
        font-size: 12.5px !important;
    }

    .ob-footer-bottom p {
        font-size: 11px !important;
        line-height: 1.55 !important;
    }

    .ob-evjf-page-hero {
        padding-top: 30px !important;
        padding-bottom: 42px !important;
    }

    .ob-evjf-page-hero-row {
        padding: 26px 20px 22px !important;
        border-radius: 26px;
    }

    .ob-evjf-page-hero-row.et_pb_row,
    .ob-evjf-formula-row.et_pb_row,
    .ob-evjf-steps-grid.et_pb_row,
    .ob-evjf-gallery-grid.et_pb_row,
    .ob-evjf-booking-row.et_pb_row {
        grid-template-columns: 1fr;
    }

    .ob-evjf-page-hero-row.et_pb_row,
    .ob-evjf-booking-row.et_pb_row {
        gap: 22px;
    }

    .ob-evjf-page-hero .ob-hero-title h1 {
        font-size: clamp(34px, 10vw, 39px) !important;
        line-height: 1.02 !important;
        letter-spacing: -0.025em !important;
        max-width: 100% !important;
    }

    .ob-evjf-page-hero .ob-hero-text {
        font-size: 15px !important;
        line-height: 1.55 !important;
        letter-spacing: 0.07em !important;
        max-width: 100% !important;
    }

    .ob-evjf-page-hero-buttons .et_pb_button {
        min-height: 44px !important;
        font-size: 11px !important;
        letter-spacing: 0.12em !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .ob-evjf-page-hero-proof {
        font-size: 12.5px !important;
        line-height: 1.45 !important;
        letter-spacing: 0.08em !important;
        max-width: 100% !important;
    }

    .ob-evjf-page-hero-image img {
        height: 230px !important;
        border-radius: 22px !important;
    }

    .ob-evjf-formula-section {
        padding-top: 0 !important;
        padding-bottom: 54px !important;
    }

    .ob-evjf-formula-row.et_pb_row {
        gap: 28px;
    }

    .ob-evjf-formula-content h2,
    .ob-evjf-steps-heading h2,
    .ob-evjf-gallery-heading h2 {
        max-width: 100%;
        font-size: clamp(30px, 8.5vw, 35px);
        line-height: 1.05;
        letter-spacing: -0.03em;
    }

    .ob-evjf-formula-content h2 {
        margin-bottom: 22px;
        font-size: clamp(32px, 9vw, 38px);
    }

    .ob-evjf-formula-content p:not(.ob-section-kicker),
    .ob-evjf-steps-heading p:not(.ob-section-kicker),
    .ob-evjf-gallery-heading p:not(.ob-section-kicker) {
        max-width: 100%;
        font-size: 15px;
        line-height: 1.62;
    }

    .ob-evjf-formula-card {
        padding: 26px 22px;
        border-radius: 26px;
    }

    .ob-evjf-formula-card h3 {
        font-size: 28px;
    }

    .ob-evjf-formula-card li {
        padding-left: 24px;
        margin-bottom: 14px;
        font-size: 14.5px;
    }

    .ob-evjf-formula-card li::before {
        width: 7px;
        height: 7px;
    }

    .ob-evjf-steps-section {
        padding-top: 52px !important;
        padding-bottom: 56px !important;
    }

    .ob-evjf-steps-heading,
    .ob-evjf-gallery-heading {
        max-width: 100%;
        margin-inline: 0;
    }

    .ob-evjf-steps-grid,
    .ob-evjf-gallery-grid {
        margin-top: 30px !important;
    }

    .ob-evjf-steps-grid.et_pb_row,
    .ob-evjf-gallery-grid.et_pb_row {
        gap: 18px;
    }

    .ob-evjf-step-card {
        padding: 24px 20px 22px;
        border-radius: 26px;
    }

    .ob-evjf-step-card:hover,
    .ob-evjf-gallery-card:hover img {
        transform: none;
    }

    .ob-evjf-step-number {
        width: 40px;
        height: 40px;
        margin-bottom: 18px;
        font-size: 11px;
    }

    .ob-evjf-step-card h3 {
        font-size: 24px;
    }

    .ob-evjf-step-card p {
        font-size: 14px;
        line-height: 1.58;
    }

    .ob-evjf-gallery-section {
        padding-top: 46px !important;
        padding-bottom: 56px !important;
    }

    .ob-evjf-gallery-card img,
    .ob-evjf-gallery-card-large img {
        height: 235px !important;
        border-radius: 24px !important;
    }

    .ob-evjf-booking-section {
        padding-top: 54px !important;
        padding-bottom: 58px !important;
    }

    .ob-evjf-booking-row .et_pb_column.ob-evjf-faq-card,
    .ob-evjf-booking-row .et_pb_column.ob-evjf-form-card,
    .ob-evjf-faq-card,
    .ob-evjf-form-card {
        padding: 28px 22px !important;
        border-radius: 26px !important;
    }

    .ob-evjf-faq-heading,
    .ob-evjf-form-heading {
        margin-bottom: 22px;
    }

    .ob-evjf-faq-heading h2,
    .ob-evjf-form-heading h2 {
        font-size: 28px;
        line-height: 1.08;
    }

    .ob-evjf-faq-heading p:not(.ob-section-kicker),
    .ob-evjf-form-heading p:not(.ob-section-kicker) {
        font-size: 14.5px;
        line-height: 1.58;
    }

    /* Form responsive rules are centralized in the global Forms section. */
}

/* ---------- 14. Responsive: small mobile ---------- */

@media (max-width: 390px) {
    .ob-evjf-page-hero-row {
        padding: 24px 18px 20px !important;
    }

    .ob-evjf-page-hero .ob-hero-title h1,
    .ob-evjf-formula-content h2 {
        font-size: 34px !important;
    }

    .ob-evjf-page-hero .ob-hero-text {
        font-size: 14.5px !important;
    }

    .ob-evjf-page-hero-proof {
        font-size: 12px !important;
    }

    .ob-evjf-page-hero-image img {
        height: 215px !important;
    }

    .ob-evjf-formula-card {
        padding: 26px 20px;
    }

    .ob-evjf-formula-card h3 {
        font-size: 28px;
    }

    .ob-evjf-steps-section {
        padding-top: 48px !important;
        padding-bottom: 52px !important;
    }

    .ob-evjf-step-card {
        padding: 22px 18px 20px;
    }

    .ob-evjf-steps-heading h2,
    .ob-evjf-gallery-heading h2 {
        font-size: 30px;
    }

    .ob-evjf-step-card h3 {
        font-size: 23px;
    }

    .ob-evjf-step-card p {
        font-size: 13.8px;
    }

    .ob-evjf-gallery-section {
        padding-top: 48px !important;
        padding-bottom: 54px !important;
    }

    .ob-evjf-gallery-card img,
    .ob-evjf-gallery-card-large img {
        height: 220px !important;
    }

    .ob-evjf-booking-section {
        padding-top: 50px !important;
        padding-bottom: 54px !important;
    }

    .ob-evjf-booking-row .et_pb_column.ob-evjf-faq-card,
    .ob-evjf-booking-row .et_pb_column.ob-evjf-form-card,
    .ob-evjf-faq-card,
    .ob-evjf-form-card {
        padding: 26px 20px !important;
    }

    .ob-evjf-faq-heading h2,
    .ob-evjf-form-heading h2 {
        font-size: 26px;
    }
}

/* =========================================================
   ORIBIRD - PAGE CONTACT
   Page simple : orientation rapide + coordonnées + formulaire
   Version corrigée complète
   ========================================================= */

/* ---------- 1. Layout commun Page Contact ---------- */

/* Shared row constraints and Divi grid resets live in Layout helpers. */

/* ---------- 2. Intro simple sans Hero ---------- */

.ob-contact-intro-section {
    background: var(--ob-color-bg);
    padding-top: 54px !important;
    padding-bottom: 34px !important;
}

.ob-contact-intro-row {
    padding-bottom: 0 !important;
}

.ob-contact-intro-heading {
    max-width: 760px;
}

.ob-contact-intro-heading h1 {
    margin: 0 0 18px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(42px, 5vw, 64px);
    line-height: 1.03;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-contact-intro-heading p:not(.ob-section-kicker) {
    max-width: 680px;
    margin-bottom: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 17px;
    line-height: 1.65;
}

/* ---------- 3. Cartes rapides ---------- */

.ob-contact-quick-section {
    background: var(--ob-color-bg);
    padding-top: 0 !important;
    padding-bottom: 54px !important;
}

.ob-contact-quick-grid.et_pb_row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    align-items: stretch;
}

.ob-contact-quick-grid .et_pb_code,
.ob-contact-quick-grid .et_pb_code_inner {
    width: 100%;
    height: 100%;
}

.ob-contact-quick-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 28px 26px;
    color: var(--ob-color-text);
    text-decoration: none !important;
}

.ob-contact-quick-card:hover {
    color: var(--ob-color-text);
}

.ob-contact-quick-card-featured {
    background: #fffaf6;
    border-color: var(--ob-color-primary-light);
}

.ob-contact-quick-card span {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 16px;
    padding: 7px 12px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary-wash-strong);
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ob-contact-quick-card h2 {
    margin: 0 0 12px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 30px;
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-contact-quick-card p {
    margin: 0 0 18px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.6;
}

.ob-contact-quick-card strong {
    display: inline-flex;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid var(--ob-color-border);
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.2;
    font-weight: 800;
}

.ob-contact-quick-card strong::after {
    content: "→";
    margin-left: 8px;
    transition: transform 0.2s ease;
}

.ob-contact-quick-card:hover strong::after {
    transform: translateX(4px);
}

/* ---------- 4. Bloc principal contact ---------- */

.ob-contact-main-section {
    background: var(--ob-color-bg-soft);
    padding-top: 68px !important;
    padding-bottom: 76px !important;
}

.ob-contact-main-row.et_pb_row {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 30px;
    align-items: start !important;
}

.ob-contact-main-row .et_pb_module:last-child {
    margin-bottom: 0 !important;
}

/* ---------- 5. Coordonnées ---------- */

.ob-contact-info-card,
.ob-contact-map-card {
    border-radius: 30px;
}

.ob-contact-info-card {
    padding: 36px 34px;
    margin-bottom: 22px;
}

.ob-contact-info-card h2,
.ob-contact-form-heading h2 {
    margin: 0 0 14px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(34px, 3.8vw, 46px);
    line-height: 1.06;
    letter-spacing: -0.03em;
    font-weight: 400;
}

.ob-contact-info-intro,
.ob-contact-form-heading p:not(.ob-section-kicker) {
    margin-bottom: 24px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15.5px;
    line-height: 1.62;
}

.ob-contact-info-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ob-contact-info-list li {
    padding: 0 0 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--ob-color-border);
}

.ob-contact-info-list li:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: 0;
}

.ob-contact-info-list strong {
    display: block;
    margin-bottom: 5px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.3;
    font-weight: 800;
}

.ob-contact-info-list span,
.ob-contact-info-list a {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.55;
}

.ob-contact-info-list a {
    text-decoration: none;
    transition: color 0.2s ease;
}

.ob-contact-info-list a:hover {
    color: var(--ob-color-primary-dark);
}

/* ---------- 6. Carte Google Maps ---------- */

.ob-contact-map-card {
    overflow: hidden;
}

.ob-contact-map-card iframe {
    display: block;
    width: 100%;
    height: 300px;
    border: 0;
}

/* ---------- 7. Carte formulaire sans classe colonne Divi ---------- */

.ob-contact-main-row.et_pb_row > .et_pb_column:nth-child(2) {
    align-self: start !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 38px 36px 34px !important;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 30px;
    box-shadow: var(--ob-shadow-soft);
}

.ob-contact-main-row.et_pb_row > .et_pb_column:nth-child(2) .et_pb_module:last-child {
    margin-bottom: 0 !important;
}

.ob-contact-form-heading {
    margin-bottom: 26px;
}

.ob-contact-form-heading p:not(.ob-section-kicker) {
    max-width: 540px;
    margin-bottom: 0;
}

/* ---------- 8. Formulaire Divi ---------- */

/* Form styles are centralized in the global Forms section. */

/* ---------- 9. Responsive tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {
    .ob-contact-intro-row,
    .ob-contact-quick-grid,
    .ob-contact-main-row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-contact-intro-section {
        padding-top: 38px !important;
        padding-bottom: 30px !important;
    }

    .ob-contact-intro-heading h1 {
        font-size: clamp(40px, 6.6vw, 52px);
        line-height: 1.04;
    }

    .ob-contact-intro-heading p:not(.ob-section-kicker) {
        font-size: 16px;
        line-height: 1.58;
    }

    .ob-contact-quick-section {
        padding-bottom: 58px !important;
    }

    .ob-contact-quick-grid.et_pb_row,
    .ob-contact-main-row.et_pb_row {
        grid-template-columns: 1fr !important;
    }

    .ob-contact-quick-grid.et_pb_row {
        gap: 18px;
    }

    .ob-contact-quick-card {
        padding: 26px 28px;
        border-radius: 26px;
    }

    .ob-contact-quick-card h2 {
        font-size: 30px;
    }

    .ob-contact-main-section {
        padding-top: 62px !important;
        padding-bottom: 68px !important;
    }

    .ob-contact-main-row.et_pb_row {
        gap: 24px;
    }

    .ob-contact-info-card,
    .ob-contact-main-row.et_pb_row > .et_pb_column:nth-child(2) {
        padding: 34px 32px !important;
        border-radius: 28px;
    }

    .ob-contact-map-card {
        border-radius: 28px;
    }

    .ob-contact-map-card iframe {
        height: 280px;
    }

    .ob-contact-form-heading {
        margin-bottom: 24px;
    }
}

/* ---------- 10. Responsive mobile ---------- */

@media (max-width: 767px) {
    .ob-contact-intro-row,
    .ob-contact-quick-grid,
    .ob-contact-main-row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-contact-intro-section {
        padding-top: 28px !important;
        padding-bottom: 26px !important;
    }

    .ob-contact-intro-heading h1 {
        font-size: clamp(36px, 10vw, 42px);
        line-height: 1.04;
        margin-bottom: 16px;
    }

    .ob-contact-intro-heading p:not(.ob-section-kicker) {
        font-size: 15.5px;
        line-height: 1.55;
    }

    .ob-contact-quick-section {
        padding-bottom: 44px !important;
    }

    .ob-contact-quick-grid.et_pb_row,
    .ob-contact-main-row.et_pb_row {
        grid-template-columns: 1fr !important;
    }

    .ob-contact-quick-grid.et_pb_row {
        gap: 16px;
    }

    .ob-contact-quick-card {
        padding: 22px 20px;
        border-radius: 24px;
    }

    .ob-contact-quick-card:hover {
        transform: none;
    }

    .ob-contact-quick-card span {
        margin-bottom: 14px;
        font-size: 10.5px;
    }

    .ob-contact-quick-card h2 {
        font-size: 27px;
    }

    .ob-contact-quick-card p {
        font-size: 14.5px;
        line-height: 1.56;
    }

    .ob-contact-quick-card strong {
        font-size: 12.5px;
    }

    .ob-contact-main-section {
        padding-top: 46px !important;
        padding-bottom: 54px !important;
    }

    .ob-contact-main-row.et_pb_row {
        gap: 22px;
    }

    .ob-contact-info-card,
    .ob-contact-main-row.et_pb_row > .et_pb_column:nth-child(2) {
        padding: 26px 22px !important;
        border-radius: 26px;
    }

    .ob-contact-info-card {
        margin-bottom: 18px;
    }

    .ob-contact-info-card h2,
    .ob-contact-form-heading h2 {
        font-size: clamp(29px, 8vw, 34px);
        line-height: 1.08;
        margin-bottom: 14px;
    }

    .ob-contact-info-intro,
    .ob-contact-form-heading p:not(.ob-section-kicker) {
        font-size: 14.5px;
        line-height: 1.58;
        margin-bottom: 22px;
    }

    .ob-contact-info-list li {
        padding-bottom: 15px;
        margin-bottom: 15px;
    }

    .ob-contact-info-list strong {
        font-size: 13.5px;
    }

    .ob-contact-info-list span,
    .ob-contact-info-list a {
        font-size: 14.5px;
        line-height: 1.5;
    }

    .ob-contact-map-card {
        border-radius: 26px;
    }

    .ob-contact-map-card iframe {
        height: 230px;
    }

    .ob-contact-form-heading {
        margin-bottom: 22px;
    }

}

/* ---------- 11. Très petits mobiles ---------- */

@media (max-width: 390px) {
    .ob-contact-quick-card,
    .ob-contact-info-card,
    .ob-contact-main-row.et_pb_row > .et_pb_column:nth-child(2) {
        padding: 22px 18px !important;
    }

    .ob-contact-map-card iframe {
        height: 210px;
    }
}

/* =========================================================
   ORIBIRD - PAGE STUDIO
   Page simple : lieu + ambiance + équipe + infos pratiques + location
   ========================================================= */

/* ---------- 1. Layout commun Page Studio ---------- */

.ob-studio-place-row,
.ob-studio-heading-row,
.ob-studio-values-grid,
.ob-studio-team-grid,
.ob-studio-practical-row,
.ob-studio-rental-row {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin-inline: auto !important;
}

.ob-studio-place-row.et_pb_row,
.ob-studio-values-grid.et_pb_row,
.ob-studio-team-grid.et_pb_row,
.ob-studio-practical-row.et_pb_row,
.ob-studio-rental-row.et_pb_row {
    display: grid !important;
    align-items: center;
}

.ob-studio-place-row.et_pb_row::after,
.ob-studio-values-grid.et_pb_row::after,
.ob-studio-team-grid.et_pb_row::after,
.ob-studio-practical-row.et_pb_row::after,
.ob-studio-rental-row.et_pb_row::after {
    display: none !important;
}

.ob-studio-place-row.et_pb_row > .et_pb_column,
.ob-studio-values-grid.et_pb_row > .et_pb_column,
.ob-studio-team-grid.et_pb_row > .et_pb_column,
.ob-studio-practical-row.et_pb_row > .et_pb_column,
.ob-studio-rental-row.et_pb_row > .et_pb_column {
    width: auto !important;
    margin-right: 0 !important;
    float: none !important;
    min-width: 0 !important;
}

.ob-studio-place-row *,
.ob-studio-values-grid *,
.ob-studio-team-grid *,
.ob-studio-practical-row *,
.ob-studio-rental-row * {
    box-sizing: border-box;
}

/* ---------- 2. Titres communs ---------- */

.ob-studio-section-heading {
    max-width: 760px;
}

.ob-studio-section-heading h2 {
    margin: 0 0 16px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(38px, 4.2vw, 56px);
    line-height: 1.04;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-studio-section-heading p:not(.ob-section-kicker) {
    max-width: 680px;
    margin-bottom: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.62;
}

/* ---------- 3. Bloc Le lieu ---------- */

.ob-studio-place-section {
    background: var(--ob-color-bg-soft);
    padding-top: 72px !important;
    padding-bottom: 82px !important;
}

.ob-studio-place-row.et_pb_row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
    gap: 52px;
}

.ob-studio-place-image,
.ob-studio-place-image .et_pb_image_wrap {
    width: 100%;
}

.ob-studio-place-image img {
    display: block !important;
    width: 100% !important;
    height: 480px !important;
    object-fit: cover !important;
    object-position: center center !important;
    border: 1px solid var(--ob-color-border);
    border-radius: 30px !important;
    box-shadow: var(--ob-shadow-image);
}

.ob-studio-place-content {
    max-width: 590px;
}

.ob-studio-place-content h1,
.ob-studio-place-content h2 {
    margin: 0 0 20px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(42px, 4.6vw, 64px);
    line-height: 1.03;
    letter-spacing: -0.04em;
    font-weight: 400;
}

.ob-studio-place-content p:not(.ob-section-kicker) {
    margin-bottom: 16px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.68;
}

/* ---------- 4. Liste à puces Studio ---------- */

.ob-studio-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 24px 0 0 !important;
}

.ob-studio-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.5;
    font-weight: 700;
}

.ob-studio-list li:last-child {
    margin-bottom: 0;
}

.ob-studio-list li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 0.75em;
    width: 8px;
    height: 8px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary);
    box-shadow: 0 0 0 5px rgba(211, 163, 107, 0.14);
    transform: translateY(-50%);
}

/* ---------- 5. Bloc valeurs ---------- */

.ob-studio-values-section {
    background: var(--ob-color-white);
    padding-top: 74px !important;
    padding-bottom: 78px !important;
}

.ob-studio-heading-row {
    padding-bottom: 0 !important;
}

.ob-studio-values-grid {
    margin-top: 44px !important;
}

.ob-studio-values-grid.et_pb_row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.ob-studio-values-grid.et_pb_row > .et_pb_column {
    display: flex !important;
}

.ob-studio-value-card {
    width: 100%;
    min-height: 100%;
    padding: 30px 28px;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-card);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.ob-studio-value-card:hover {
    transform: translateY(-4px);
    border-color: rgba(211, 163, 107, 0.38);
    box-shadow: var(--ob-shadow-card-hover);
}

.ob-studio-value-card h3 {
    margin: 0 0 12px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 25px;
    line-height: 1.12;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-studio-value-card p {
    margin: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.58;
}

/* ---------- 6. Bloc équipe ---------- */

.ob-studio-team-section {
    background: var(--ob-color-bg);
    padding-top: 76px !important;
    padding-bottom: 82px !important;
}

.ob-studio-team-grid {
    margin-top: 38px !important;
}

.ob-studio-team-grid.et_pb_row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px;
    align-items: start;
}

.ob-studio-teacher-card {
    min-width: 0 !important;
}

.ob-studio-teacher-image,
.ob-studio-teacher-image .et_pb_image_wrap {
    width: 100%;
}

.ob-studio-teacher-image img {
    display: block !important;
    width: 100% !important;
    height: 210px !important;
    object-fit: cover !important;
    object-position: center center !important;
    border: 1px solid var(--ob-color-border);
    border-radius: 24px !important;
    box-shadow: var(--ob-shadow-card);
}

.ob-studio-teacher-content {
    margin-top: 22px;
}

.ob-studio-teacher-content h3 {
    margin: 0 0 10px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 30px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-studio-teacher-content p {
    margin: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.58;
}

/* ---------- 7. Bloc infos pratiques ---------- */

.ob-studio-practical-section {
    background: var(--ob-color-bg);
    padding-top: 62px !important;
    padding-bottom: 76px !important;
}

.ob-studio-practical-row.et_pb_row {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 36px;
    align-items: stretch;
    padding: 46px !important;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-lg);
    box-shadow: var(--ob-shadow-soft);
}

.ob-studio-practical-content {
    max-width: 620px;
}

.ob-studio-practical-content h2 {
    margin: 0 0 18px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(36px, 4vw, 50px);
    line-height: 1.05;
    letter-spacing: -0.03em;
    font-weight: 400;
}

.ob-studio-practical-content p:not(.ob-section-kicker) {
    margin-bottom: 16px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.68;
}

.ob-studio-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

.ob-studio-actions a {
    text-decoration: none !important;
}

.ob-studio-practical-panel {
    min-height: 100%;
    padding: 32px 30px;
    background: var(--ob-color-primary-wash);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: 28px;
}

.ob-studio-practical-panel h3 {
    margin: 0 0 22px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 32px;
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-studio-practical-panel ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ob-studio-practical-panel li {
    padding: 0 0 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid rgba(211, 163, 107, 0.22);
}

.ob-studio-practical-panel li:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: 0;
}

.ob-studio-practical-panel strong {
    display: block;
    margin-bottom: 5px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.3;
    font-weight: 800;
}

.ob-studio-practical-panel span {
    display: block;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.55;
}

.ob-studio-practical-note {
    margin: 22px 0 0;
    padding-top: 18px;
    border-top: 1px solid rgba(211, 163, 107, 0.22);
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 700;
}

/* ---------- 8. Bloc location de salle ---------- */

.ob-studio-rental-section {
    background: var(--ob-color-bg);
    padding-top: 64px !important;
    padding-bottom: 84px !important;
}

.ob-studio-rental-row.et_pb_row {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 42px;
    align-items: center;
    padding: 42px !important;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-lg);
    box-shadow: var(--ob-shadow-soft);
}

.ob-studio-rental-image,
.ob-studio-rental-image .et_pb_image_wrap {
    width: 100%;
}

.ob-studio-rental-image img {
    display: block !important;
    width: 100% !important;
    height: 320px !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 28px !important;
    box-shadow: var(--ob-shadow-image);
}

.ob-studio-rental-content h2 {
    margin: 0 0 16px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(36px, 4vw, 52px);
    line-height: 1.04;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-studio-rental-content p:not(.ob-section-kicker) {
    margin-bottom: 16px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.62;
}

/* ---------- 9. Responsive tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {
    .ob-studio-place-row,
    .ob-studio-heading-row,
    .ob-studio-values-grid,
    .ob-studio-team-grid,
    .ob-studio-practical-row,
    .ob-studio-rental-row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-studio-place-section {
        padding-top: 56px !important;
        padding-bottom: 66px !important;
    }

    .ob-studio-place-row.et_pb_row,
    .ob-studio-practical-row.et_pb_row,
    .ob-studio-rental-row.et_pb_row {
        grid-template-columns: 1fr;
    }

    .ob-studio-place-row.et_pb_row {
        gap: 34px;
    }

    .ob-studio-place-image img {
        height: 360px !important;
        border-radius: 28px !important;
    }

    .ob-studio-place-content,
    .ob-studio-practical-content {
        max-width: 100%;
    }

    .ob-studio-place-content h1,
    .ob-studio-place-content h2 {
        font-size: clamp(40px, 6.6vw, 54px);
    }

    .ob-studio-values-section,
    .ob-studio-team-section {
        padding-top: 64px !important;
        padding-bottom: 70px !important;
    }

    .ob-studio-values-grid.et_pb_row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .ob-studio-team-grid.et_pb_row {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .ob-studio-teacher-image img {
        height: 300px !important;
        border-radius: 26px !important;
    }

    .ob-studio-practical-section {
        padding-top: 56px !important;
        padding-bottom: 68px !important;
    }

    .ob-studio-practical-row.et_pb_row {
        padding: 38px 34px !important;
        gap: 28px;
        border-radius: 30px;
    }

    .ob-studio-practical-panel {
        padding: 30px 28px;
        border-radius: 26px;
    }

    .ob-studio-rental-section {
        padding-top: 58px !important;
        padding-bottom: 72px !important;
    }

    .ob-studio-rental-row.et_pb_row {
        padding: 34px !important;
        gap: 30px;
        border-radius: 30px;
    }

    .ob-studio-rental-image img {
        height: 310px !important;
        border-radius: 26px !important;
    }
}

/* ---------- 10. Responsive mobile ---------- */

@media (max-width: 767px) {
    .ob-studio-place-row,
    .ob-studio-heading-row,
    .ob-studio-values-grid,
    .ob-studio-team-grid,
    .ob-studio-practical-row,
    .ob-studio-rental-row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-studio-place-section {
        padding-top: 34px !important;
        padding-bottom: 50px !important;
    }

    .ob-studio-place-row.et_pb_row,
    .ob-studio-values-grid.et_pb_row,
    .ob-studio-team-grid.et_pb_row,
    .ob-studio-practical-row.et_pb_row,
    .ob-studio-rental-row.et_pb_row {
        grid-template-columns: 1fr;
    }

    .ob-studio-place-row.et_pb_row {
        gap: 26px;
    }

    .ob-studio-place-row.et_pb_row > .et_pb_column:first-of-type {
        order: 2 !important;
    }

    .ob-studio-place-row.et_pb_row > .et_pb_column:last-of-type {
        order: 1 !important;
    }

    .ob-studio-place-image img {
        height: 250px !important;
        border-radius: 24px !important;
    }

    .ob-studio-place-content h1,
    .ob-studio-place-content h2 {
        font-size: clamp(34px, 10vw, 42px);
        line-height: 1.04;
        margin-bottom: 16px;
    }

    .ob-studio-place-content p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.6;
        margin-bottom: 14px;
    }

    .ob-studio-list {
        margin-top: 20px !important;
    }

    .ob-studio-list li {
        padding-left: 24px;
        font-size: 14.5px;
        line-height: 1.45;
    }

    .ob-studio-list li::before {
        width: 7px;
        height: 7px;
    }

    .ob-studio-values-section,
    .ob-studio-team-section {
        padding-top: 46px !important;
        padding-bottom: 52px !important;
    }

    .ob-studio-section-heading h2 {
        font-size: clamp(31px, 8.5vw, 38px);
        line-height: 1.06;
        margin-bottom: 14px;
    }

    .ob-studio-section-heading p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.58;
    }

    .ob-studio-values-grid {
        margin-top: 26px !important;
    }

    .ob-studio-values-grid.et_pb_row,
    .ob-studio-team-grid.et_pb_row {
        gap: 16px;
    }

    .ob-studio-value-card {
        padding: 22px 20px;
        border-radius: 24px;
    }

    .ob-studio-value-card:hover {
        transform: none;
    }

    .ob-studio-value-card h3 {
        font-size: 24px;
    }

    .ob-studio-value-card p {
        font-size: 14.5px;
        line-height: 1.56;
    }

    .ob-studio-team-grid {
        margin-top: 28px !important;
    }

    .ob-studio-teacher-image img {
        height: 220px !important;
        border-radius: 22px !important;
    }

    .ob-studio-teacher-content {
        margin-top: 18px;
    }

    .ob-studio-teacher-content h3 {
        font-size: 27px;
    }

    .ob-studio-teacher-content p {
        font-size: 14.5px;
        line-height: 1.56;
    }

    .ob-studio-practical-section {
        padding-top: 42px !important;
        padding-bottom: 52px !important;
    }

    .ob-studio-practical-row.et_pb_row {
        padding: 26px 20px !important;
        gap: 24px;
        border-radius: 26px;
    }

    .ob-studio-practical-content h2 {
        font-size: clamp(31px, 8.5vw, 36px);
        line-height: 1.06;
        margin-bottom: 16px;
    }

    .ob-studio-practical-content p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.6;
        margin-bottom: 14px;
    }

    .ob-studio-actions {
        flex-direction: column;
        gap: 12px;
        margin-top: 24px;
    }

    .ob-studio-actions .et_pb_button,
    .ob-studio-actions .ob-btn-primary,
    .ob-studio-actions .ob-btn-secondary {
        width: 100% !important;
        text-align: center !important;
        white-space: normal !important;
        padding: 14px 20px !important;
    }

    .ob-studio-practical-panel {
        padding: 24px 20px;
        border-radius: 24px;
    }

    .ob-studio-practical-panel h3 {
        font-size: 27px;
        margin-bottom: 18px;
    }

    .ob-studio-practical-panel li {
        padding-bottom: 15px;
        margin-bottom: 15px;
    }

    .ob-studio-practical-panel strong {
        font-size: 14.5px;
    }

    .ob-studio-practical-panel span {
        font-size: 14px;
        line-height: 1.5;
    }

    .ob-studio-practical-note {
        margin-top: 18px;
        padding-top: 16px;
        font-size: 13.5px;
    }

    .ob-studio-rental-section {
        padding-top: 46px !important;
        padding-bottom: 56px !important;
    }

    .ob-studio-rental-row.et_pb_row {
        padding: 22px 20px 24px !important;
        gap: 24px;
        border-radius: 26px;
    }

    .ob-studio-rental-image img {
        height: 210px !important;
        border-radius: 22px !important;
    }

    .ob-studio-rental-content h2 {
        font-size: clamp(31px, 8.5vw, 38px);
        line-height: 1.06;
        margin-bottom: 16px;
    }

    .ob-studio-rental-content p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.58;
    }
}

/* ---------- 11. Très petits mobiles ---------- */

@media (max-width: 390px) {
    .ob-studio-value-card,
    .ob-studio-practical-row.et_pb_row,
    .ob-studio-rental-row.et_pb_row {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .ob-studio-place-content h1,
    .ob-studio-place-content h2 {
        font-size: 34px;
    }

    .ob-studio-place-image img {
        height: 225px !important;
    }

    .ob-studio-teacher-image img {
        height: 205px !important;
    }

    .ob-studio-rental-image img {
        height: 195px !important;
    }
}

/* =========================================================
   PAGE RÉSERVATION — INTRO + CHOIX DISCIPLINE
========================================================= */

/* ---------- 1. Layout commun et lignes Divi ---------- */

.ob-booking-intro,
.ob-booking-choices,
.ob-booking-form-section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
    overflow-x: hidden;
}

.ob-booking-intro,
.ob-booking-intro *,
.ob-booking-choices,
.ob-booking-choices *,
.ob-booking-form-section,
.ob-booking-form-section * {
    box-sizing: border-box;
}

.ob-booking-intro .et_pb_row,
.ob-booking-choices .et_pb_row,
.ob-booking-form-section .et_pb_row {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin-inline: auto !important;
}

.ob-booking-intro .et_pb_text_inner,
.ob-booking-choices .et_pb_text_inner,
.ob-booking-form-section .et_pb_text_inner {
    text-align: left;
}

/* ---------- 2. Introduction ---------- */

.ob-booking-intro {
    background: var(--ob-color-bg);
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    text-align: left;
}

.ob-booking-intro .ob-section-kicker {
    display: block;
    width: 100%;
    margin: 0 0 14px;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-align: left;
    text-transform: uppercase;
}

.ob-booking-intro h1 {
    max-width: 760px;
    margin: 0 0 18px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(42px, 5vw, 64px);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 1.03;
}

.ob-booking-intro p:not(.ob-section-kicker) {
    max-width: 760px;
    margin: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 17px;
    line-height: 1.7;
}

.ob-booking-reassurance {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 10px 12px;
    max-width: 760px;
    margin-top: 28px;
}

.ob-booking-reassurance span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 14px;
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-white);
    color: var(--ob-color-text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
}

/* ---------- 3. Actions hautes : découverte et adhérente ---------- */

.ob-booking-top-actions {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 24px;
    max-width: 960px;
    margin: 34px 0 0;
    text-align: left;
}

.ob-booking-top-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 30px;
    overflow: hidden;
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    background: var(--ob-color-white);
    box-shadow: var(--ob-shadow-card);
}

.ob-booking-top-card > * {
    position: relative;
    z-index: 1;
}

.ob-booking-top-card--discovery {
    border-color: var(--ob-color-primary-light);
    background: var(--ob-color-primary-wash);
}

.ob-booking-top-card--member {
    background: var(--ob-color-white);
}

.ob-booking-top-card--member::before {
    content: "";
    position: absolute;
    top: 24px;
    right: 26px;
    z-index: 0;
    width: 46px;
    height: 46px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-secondary);
    opacity: 0.16;
    pointer-events: none;
}

.ob-booking-top-kicker {
    margin: 0 0 8px;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.25;
    text-transform: uppercase;
}

.ob-booking-top-card--member .ob-booking-top-kicker {
    color: var(--ob-color-secondary);
}

.ob-booking-top-card h2 {
    margin: 0 0 10px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(25px, 2vw, 30px);
    font-weight: 400;
    line-height: 1.12;
}

.ob-booking-top-card p:not(.ob-booking-top-kicker) {
    margin: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15.5px;
    line-height: 1.62;
}

.ob-booking-top-card strong {
    color: var(--ob-color-primary-dark);
    font-weight: 800;
}

.ob-booking-code-pill {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    width: fit-content;
    max-width: 100%;
    margin-top: 20px;
    padding: 10px 15px;
    border: 1px dashed var(--ob-color-primary-dark);
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-white);
    color: var(--ob-color-text);
}

.ob-booking-code-pill span {
    color: var(--ob-color-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ob-booking-code-pill strong {
    color: var(--ob-color-primary-dark);
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 0.05em;
    line-height: 1.2;
    overflow-wrap: normal;
    white-space: nowrap;
}

.ob-booking-member-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 44px;
    margin-top: auto;
    padding: 11px 20px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary);
    color: var(--ob-color-white) !important;
    font-family: var(--ob-font-body);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    transition: var(--ob-transition-base);
}

.ob-booking-member-link:hover {
    background: var(--ob-color-primary-dark);
    color: var(--ob-color-white) !important;
    transform: translateY(-1px);
}

/* ---------- 4. Choix des disciplines ---------- */

.ob-booking-choices {
    background: var(--ob-color-bg-soft);
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
}

.ob-booking-choices .ob-section-kicker {
    display: block;
    margin: 0 0 12px;
    color: var(--ob-color-primary);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-align: left;
    text-transform: uppercase;
}

.ob-booking-choices .et_pb_text_inner > h2 {
    max-width: 760px;
    margin: 0 0 14px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(34px, 3.6vw, 48px);
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 1.08;
    text-align: left;
}

.ob-booking-choices .et_pb_text_inner > p:not(.ob-section-kicker) {
    max-width: 680px;
    margin: 0 0 38px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.7;
    text-align: left;
}

.ob-booking-choice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.ob-booking-choice-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 28px;
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    background: var(--ob-color-white);
    box-shadow: var(--ob-shadow-card);
    transition: var(--ob-transition-base);
}

.ob-booking-choice-card:hover {
    border-color: rgba(211, 163, 107, 0.38);
    box-shadow: var(--ob-shadow-card-hover);
    transform: translateY(-4px);
}

.ob-booking-choice-kicker {
    margin: 0 0 10px;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ob-booking-choice-card h3 {
    margin: 0 0 12px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.14;
}

.ob-booking-choice-card p:not(.ob-booking-choice-kicker) {
    margin: 0 0 22px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.62;
}

.ob-booking-choice-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 44px;
    margin-top: auto;
    padding: 11px 20px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary);
    color: var(--ob-color-white) !important;
    font-family: var(--ob-font-body);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    transition: var(--ob-transition-base);
}

.ob-booking-choice-link:hover {
    background: var(--ob-color-primary-dark);
    color: var(--ob-color-white) !important;
    transform: translateY(-1px);
}

/* ---------- 5. Formulaire Amelia ---------- */

.ob-booking-form-section {
    background: var(--ob-color-bg);
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
}

.ob-booking-form-section .ob-section-kicker {
    display: block;
    margin: 0 0 12px;
    color: var(--ob-color-primary);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-align: left;
    text-transform: uppercase;
}

.ob-booking-form-section .et_pb_text_inner > h2 {
    max-width: 760px;
    margin: 0 0 14px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(34px, 3.6vw, 48px);
    font-weight: 400;
    letter-spacing: -0.025em;
    line-height: 1.08;
    text-align: left;
}

.ob-booking-form-section .et_pb_text_inner > p:not(.ob-section-kicker) {
    max-width: 680px;
    margin: 0 0 38px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 16px;
    line-height: 1.7;
    text-align: left;
}

.ob-booking-form-shell {
    max-width: 1080px;
    margin-inline: auto;
    padding: 32px;
    overflow: hidden;
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-lg);
    background: var(--ob-color-white);
    box-shadow: var(--ob-shadow-soft);
    box-sizing: border-box;
}

.ob-booking-form-shell .amelia-v2-booking,
.ob-booking-form-shell .am-fs__wrapper,
.ob-booking-form-shell .amelia-app-booking {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* ---------- 6. Accessibilité et focus ---------- */

.ob-booking-member-link:focus-visible,
.ob-booking-choice-link:focus-visible {
    outline: 3px solid var(--ob-color-primary-dark);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    .ob-booking-top-card,
    .ob-booking-choice-card,
    .ob-booking-member-link,
    .ob-booking-choice-link {
        transition: none;
    }

    .ob-booking-choice-card:hover,
    .ob-booking-member-link:hover,
    .ob-booking-choice-link:hover {
        transform: none;
    }
}

/* ---------- 7. Responsive tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {
    .ob-booking-intro,
    .ob-booking-choices,
    .ob-booking-form-section {
        padding-top: 56px !important;
        padding-bottom: 56px !important;
    }

    .ob-booking-intro .et_pb_row,
    .ob-booking-choices .et_pb_row,
    .ob-booking-form-section .et_pb_row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-booking-top-actions {
        grid-template-columns: 1fr;
        gap: 18px;
        max-width: 620px;
    }

    .ob-booking-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .ob-booking-form-shell {
        padding: 22px;
        border-radius: 28px;
    }
}

/* ---------- 8. Responsive mobile ---------- */

@media (max-width: 767px) {
    .ob-booking-intro,
    .ob-booking-choices,
    .ob-booking-form-section {
        padding-top: 44px !important;
        padding-bottom: 44px !important;
    }

    .ob-booking-intro .et_pb_row,
    .ob-booking-choices .et_pb_row,
    .ob-booking-form-section .et_pb_row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-booking-intro .ob-section-kicker,
    .ob-booking-choices .ob-section-kicker,
    .ob-booking-form-section .ob-section-kicker {
        margin-bottom: 10px;
        font-size: 12px;
        text-align: left;
    }

    .ob-booking-intro h1 {
        margin-bottom: 14px;
        font-size: clamp(34px, 10vw, 39px);
        line-height: 1.05;
    }

    .ob-booking-intro p:not(.ob-section-kicker),
    .ob-booking-choices .et_pb_text_inner > p:not(.ob-section-kicker),
    .ob-booking-form-section .et_pb_text_inner > p:not(.ob-section-kicker) {
        font-size: 15px;
        line-height: 1.6;
    }

    .ob-booking-reassurance {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
        max-width: none;
        margin-top: 22px;
    }

    .ob-booking-reassurance span {
        width: 100%;
        justify-content: flex-start;
    }

    .ob-booking-top-actions,
    .ob-booking-choice-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ob-booking-top-actions {
        margin-top: 24px;
    }

    .ob-booking-top-card,
    .ob-booking-choice-card {
        padding: 22px 20px;
        border-radius: 24px;
    }

    .ob-booking-top-card--member::before {
        top: 18px;
        right: 18px;
        width: 34px;
        height: 34px;
    }

    .ob-booking-top-card h2,
    .ob-booking-choice-card h3 {
        font-size: 24px;
        line-height: 1.12;
    }

    .ob-booking-top-card p:not(.ob-booking-top-kicker),
    .ob-booking-choice-card p:not(.ob-booking-choice-kicker) {
        font-size: 14.5px;
        line-height: 1.55;
    }

    .ob-booking-code-pill,
    .ob-booking-member-link,
    .ob-booking-choice-link {
        width: 100%;
        min-height: 44px;
        justify-content: center;
    }

    .ob-booking-code-pill {
        align-items: center;
        padding-right: 12px;
        padding-left: 12px;
    }

    .ob-booking-member-link,
    .ob-booking-choice-link {
        padding-right: 18px;
        padding-left: 18px;
    }

    .ob-booking-choice-card:hover,
    .ob-booking-member-link:hover,
    .ob-booking-choice-link:hover {
        transform: none;
    }

    .ob-booking-choices .et_pb_text_inner > h2,
    .ob-booking-form-section .et_pb_text_inner > h2 {
        margin-bottom: 12px;
        font-size: clamp(30px, 8vw, 36px);
        line-height: 1.08;
    }

    .ob-booking-choices .et_pb_text_inner > p:not(.ob-section-kicker),
    .ob-booking-form-section .et_pb_text_inner > p:not(.ob-section-kicker) {
        margin-bottom: 26px;
    }

    .ob-booking-form-shell {
        width: 100%;
        max-width: 100%;
        padding: 14px;
        border-radius: 24px;
        box-shadow: var(--ob-shadow-card);
    }
}

/* ---------- 9. Très petits mobiles ---------- */

@media (max-width: 390px) {
    .ob-booking-top-card,
    .ob-booking-choice-card {
        padding: 20px 18px;
    }

    .ob-booking-form-shell {
        padding: 12px;
        border-radius: 22px;
    }

    .ob-booking-code-pill {
        gap: 6px;
    }

    .ob-booking-code-pill strong {
        font-size: 15px;
        letter-spacing: 0.03em;
    }
}

/* =========================================================
   ORIBIRD — PAGE PANIER WOOCOMMERCE
   Divi Woo Cart Products + Woo Cart Totals
   ========================================================= */

/* ---------- 1. Structure générale ---------- */

.ob-commerce-page,
.ob-commerce-page * {
    box-sizing: border-box;
}

.ob-cart-page.et_pb_section {
    padding-top: 64px !important;
    padding-bottom: 84px !important;
    background: var(--ob-color-bg);
}

.ob-cart-page > .et_pb_row {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 0 !important;
}

.ob-commerce-heading-row {
    margin-bottom: 24px !important;
}

.ob-commerce-notices-row {
    margin-bottom: 20px !important;
}

.ob-cart-grid {
    margin-bottom: 30px !important;
}

.ob-commerce-trust-row {
    margin-top: 0 !important;
}

/* Suppression des marges Divi résiduelles. */

.ob-cart-page .et_pb_module {
    margin-bottom: 0;
}


/* ---------- 2. En-tête de page ---------- */

.ob-commerce-heading {
    max-width: 760px;
}

.ob-commerce-heading .ob-section-kicker {
    margin: 0 0 10px;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ob-commerce-heading h1 {
    margin: 0 0 16px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(42px, 5vw, 62px);
    line-height: 1.03;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-commerce-heading .ob-commerce-heading-intro {
    max-width: 640px;
    margin: 0;
    padding: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 17px;
    line-height: 1.65;
}


/* ---------- 3. Notifications WooCommerce ---------- */

.ob-commerce-notices {
    width: 100%;
}

.ob-commerce-notices .woocommerce-notices-wrapper:empty {
    display: none;
}

.ob-commerce-notices .woocommerce-message,
.ob-commerce-notices .woocommerce-info,
.ob-commerce-notices .woocommerce-error,
.ob-cart-page .cart-empty.woocommerce-info {
    position: relative;
    min-height: 58px;
    margin: 0 0 14px !important;
    padding: 18px 22px 18px 54px !important;
    color: var(--ob-color-text) !important;
    background: var(--ob-color-white) !important;
    border: 1px solid var(--ob-color-border) !important;
    border-top: 1px solid var(--ob-color-border) !important;
    border-radius: 16px;
    box-shadow: var(--ob-shadow-card);
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.55;
}

.ob-commerce-notices .woocommerce-message {
    background: rgba(168, 178, 161, 0.13) !important;
    border-color: rgba(168, 178, 161, 0.42) !important;
}

.ob-commerce-notices .woocommerce-info,
.ob-cart-page .cart-empty.woocommerce-info {
    background: var(--ob-color-primary-wash) !important;
    border-color: var(--ob-color-primary-border-soft) !important;
}

.ob-commerce-notices .woocommerce-error {
    background: #fff7f5 !important;
    border-color: rgba(158, 82, 69, 0.28) !important;
}

.ob-commerce-notices .woocommerce-message::before,
.ob-commerce-notices .woocommerce-info::before,
.ob-commerce-notices .woocommerce-error::before,
.ob-cart-page .cart-empty.woocommerce-info::before {
    top: 50% !important;
    left: 21px !important;
    color: var(--ob-color-primary) !important;
    transform: translateY(-50%);
}

.ob-commerce-notices .woocommerce-message::before {
    color: var(--ob-color-secondary) !important;
}

.ob-commerce-notices .woocommerce-error::before {
    color: #9e5245 !important;
}

.ob-commerce-notices .woocommerce-error li {
    margin: 0;
    padding: 0;
}

.ob-commerce-notices a {
    color: var(--ob-color-primary-dark);
    font-weight: 700;
}


/* ---------- 4. Grille panier ---------- */

.ob-cart-grid.et_pb_row {
    display: grid !important;
    grid-template-columns: minmax(0, 1.65fr) minmax(310px, 0.75fr);
    gap: 28px;
    align-items: start;
}

.ob-cart-grid.et_pb_row::after {
    display: none !important;
}

.ob-cart-grid.et_pb_row > .et_pb_column {
    float: none !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.ob-cart-grid.et_pb_row > .et_pb_column:last-child {
    align-self: start;
}


/* ---------- 5. Carte produits du panier ---------- */

.ob-cart-products {
    overflow: hidden;
    padding: 26px;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-card);
}

.ob-cart-products .woocommerce-cart-form {
    margin: 0;
}

.ob-cart-products table.shop_table {
    width: 100%;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0;
    border-radius: 0 !important;
    font-family: var(--ob-font-body);
}

.ob-cart-products table.shop_table thead th {
    padding: 0 12px 16px !important;
    color: var(--ob-color-muted);
    background: transparent;
    border: 0 !important;
    border-bottom: 1px solid var(--ob-color-border) !important;
    font-family: var(--ob-font-body);
    font-size: 12px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ob-cart-products table.shop_table thead th:first-child {
    padding-left: 0 !important;
}

.ob-cart-products table.shop_table thead th:last-child {
    padding-right: 0 !important;
}

.ob-cart-products table.shop_table td {
    padding: 18px 12px !important;
    color: var(--ob-color-text);
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--ob-color-border) !important;
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.5;
    vertical-align: middle;
}

.ob-cart-products table.shop_table td:first-child {
    padding-left: 0 !important;
}

.ob-cart-products table.shop_table td:last-child {
    padding-right: 0 !important;
}

.ob-cart-products table.shop_table tr:last-child td {
    border-bottom: 0 !important;
}

.ob-cart-products .product-name a {
    color: var(--ob-color-text);
    font-weight: 700;
    text-decoration: none;
    transition: color 0.2s ease;
}

.ob-cart-products .product-name a:hover {
    color: var(--ob-color-primary-dark);
}

.ob-cart-products .product-name dl.variation {
    margin: 7px 0 0;
    color: var(--ob-color-muted);
    font-size: 13px;
}

.ob-cart-products .product-name dl.variation dt,
.ob-cart-products .product-name dl.variation dd {
    margin-bottom: 2px;
}

.ob-cart-products .product-thumbnail img {
    display: block;
    width: 70px;
    height: 70px;
    object-fit: cover;
    border: 1px solid var(--ob-color-border);
    border-radius: 14px;
}

.ob-cart-products .product-remove a.remove {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    color: var(--ob-color-muted) !important;
    background: var(--ob-color-bg-soft) !important;
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-pill);
    font-family: var(--ob-font-body) !important;
    font-size: 20px !important;
    line-height: 1 !important;
    text-decoration: none;
    transition: var(--ob-transition-base);
}

.ob-cart-products .product-remove a.remove:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark);
}

.ob-cart-products .quantity {
    display: inline-flex;
}

.ob-cart-products .quantity .qty {
    width: 68px;
    min-height: 44px;
    padding: 8px 6px;
    color: var(--ob-color-text);
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 10px;
    font-family: var(--ob-font-body);
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    box-shadow: none;
}

.ob-cart-products .quantity .qty:focus {
    border-color: var(--ob-color-primary-light);
    outline: none;
    box-shadow: 0 0 0 3px var(--ob-color-primary-wash-strong);
}

.ob-cart-products .product-price,
.ob-cart-products .product-subtotal {
    white-space: nowrap;
}

.ob-cart-products .product-subtotal {
    font-weight: 800;
}


/* ---------- 6. Coupon et mise à jour ---------- */

.ob-cart-products td.actions {
    padding-top: 22px !important;
    padding-bottom: 0 !important;
    text-align: right;
}

.ob-cart-products td.actions::after {
    display: table;
    clear: both;
    content: "";
}

.ob-cart-products .coupon {
    display: flex !important;
    float: left;
    align-items: stretch;
    gap: 10px;
}

.ob-cart-products .coupon label {
    position: absolute !important;
    overflow: hidden;
    width: 1px;
    height: 1px;
    padding: 0;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ob-cart-products .coupon #coupon_code {
    width: 190px !important;
    min-height: 46px;
    margin: 0 !important;
    padding: 10px 14px !important;
    color: var(--ob-color-text);
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 12px;
    font-family: var(--ob-font-body);
    font-size: 14px;
    box-shadow: none;
}

.ob-cart-products .coupon #coupon_code::placeholder {
    color: var(--ob-color-muted);
    opacity: 0.78;
}

.ob-cart-products .coupon #coupon_code:focus {
    border-color: var(--ob-color-primary-light);
    outline: none;
    box-shadow: 0 0 0 3px var(--ob-color-primary-wash-strong);
}


/* ---------- 7. Boutons WooCommerce du panier ---------- */

.ob-cart-page .woocommerce a.button,
.ob-cart-page .woocommerce button.button,
.ob-cart-page .woocommerce input.button,
.ob-cart-page a.button,
.ob-cart-page button.button {
    min-height: 46px;
    padding: 12px 20px !important;
    color: var(--ob-color-primary-dark) !important;
    background: transparent !important;
    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;
    font-family: var(--ob-font-body) !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: var(--ob-transition-base) !important;
}

.ob-cart-page .woocommerce a.button:hover,
.ob-cart-page .woocommerce button.button:hover,
.ob-cart-page .woocommerce input.button:hover,
.ob-cart-page a.button:hover,
.ob-cart-page button.button:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark) !important;
}

.ob-cart-page .woocommerce button.button:disabled,
.ob-cart-page .woocommerce button.button:disabled[disabled] {
    color: var(--ob-color-muted) !important;
    background: var(--ob-color-bg-soft) !important;
    border-color: var(--ob-color-border) !important;
    opacity: 0.62;
    cursor: not-allowed;
}


/* ---------- 8. Carte total panier ---------- */

.ob-cart-summary {
    position: sticky;
    top: 112px;
    padding: 28px;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-soft);
}

.ob-cart-summary .cart_totals {
    float: none !important;
    width: 100% !important;
    margin: 0;
}

.ob-cart-summary .cart_totals h2 {
    margin: 0 0 20px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 30px;
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.ob-cart-summary table.shop_table {
    width: 100%;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    border-radius: 0 !important;
    font-family: var(--ob-font-body);
}

.ob-cart-summary table.shop_table th,
.ob-cart-summary table.shop_table td {
    padding: 15px 0 !important;
    color: var(--ob-color-text);
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--ob-color-border) !important;
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.5;
    vertical-align: top;
}

.ob-cart-summary table.shop_table th {
    width: 42%;
    padding-right: 14px !important;
    font-weight: 700;
    text-align: left;
}

.ob-cart-summary table.shop_table td {
    text-align: right;
}

.ob-cart-summary table.shop_table tr.order-total th,
.ob-cart-summary table.shop_table tr.order-total td {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    border-bottom: 0 !important;
    font-size: 17px;
    font-weight: 800;
}

.ob-cart-summary .order-total .amount {
    color: var(--ob-color-primary-dark);
    font-size: 20px;
}

.ob-cart-summary .woocommerce-shipping-methods {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ob-cart-summary .woocommerce-shipping-destination,
.ob-cart-summary .woocommerce-shipping-calculator,
.ob-cart-summary small.includes_tax {
    color: var(--ob-color-muted);
    font-size: 12.5px;
    line-height: 1.5;
}

.ob-cart-summary .wc-proceed-to-checkout {
    margin: 22px 0 0;
    padding: 0 !important;
}

.ob-cart-summary .wc-proceed-to-checkout a.checkout-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    margin: 0 !important;
    padding: 14px 22px !important;
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary) !important;
    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;
    font-family: var(--ob-font-body) !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    text-align: center;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: var(--ob-transition-base) !important;
}

.ob-cart-summary .wc-proceed-to-checkout a.checkout-button:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark) !important;
    transform: translateY(-1px);
}


/* ---------- 9. Panier vide ---------- */

.ob-cart-page .cart-empty.woocommerce-info {
    margin-bottom: 18px !important;
}

.ob-cart-page .return-to-shop {
    margin: 0;
}

.ob-cart-page .return-to-shop .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}


/* ---------- 10. Réassurance ---------- */

.ob-commerce-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ob-commerce-trust-item {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    min-height: 100%;
    padding: 22px;
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 20px;
}

.ob-commerce-trust-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    color: var(--ob-color-primary-dark);
    background: var(--ob-color-primary-wash-strong);
    border-radius: 15px;
}

.ob-commerce-trust-icon svg {
    display: block;
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ob-commerce-trust-content h3 {
    margin: 1px 0 7px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.3;
    font-weight: 800;
}

.ob-commerce-trust-content p {
    margin: 0;
    padding: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.55;
}

.ob-commerce-trust-content a {
    display: inline-block;
    margin-top: 7px;
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.4;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.ob-commerce-trust-content a:hover {
    color: var(--ob-color-text);
}


/* ---------- 11. Tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {

    .ob-cart-page.et_pb_section {
        padding-top: 48px !important;
        padding-bottom: 68px !important;
    }

    .ob-cart-page > .et_pb_row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-commerce-heading h1 {
        font-size: clamp(42px, 6vw, 52px);
    }

    .ob-cart-grid.et_pb_row {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .ob-cart-summary {
        position: static;
    }

    .ob-commerce-trust {
        gap: 12px;
    }

    .ob-commerce-trust-item {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 12px;
        padding: 18px 16px;
    }

    .ob-commerce-trust-icon {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }

    .ob-commerce-trust-icon svg {
        width: 22px;
        height: 22px;
    }

    .ob-commerce-trust-content h3 {
        font-size: 14px;
    }

    .ob-commerce-trust-content p,
    .ob-commerce-trust-content a {
        font-size: 12.5px;
    }
}


/* ---------- 12. Mobile ---------- */

@media (max-width: 767px) {

    .ob-cart-page.et_pb_section {
        padding-top: 34px !important;
        padding-bottom: 52px !important;
    }

    .ob-cart-page > .et_pb_row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-commerce-heading-row {
        margin-bottom: 20px !important;
    }

    .ob-commerce-notices-row {
        margin-bottom: 16px !important;
    }

    .ob-commerce-heading h1 {
        margin-bottom: 13px;
        font-size: clamp(36px, 10vw, 42px);
        line-height: 1.04;
    }

    .ob-commerce-heading .ob-commerce-heading-intro {
        font-size: 15px;
        line-height: 1.58;
    }

    .ob-commerce-notices .woocommerce-message,
    .ob-commerce-notices .woocommerce-info,
    .ob-commerce-notices .woocommerce-error,
    .ob-cart-page .cart-empty.woocommerce-info {
        min-height: 0;
        padding: 15px 16px 15px 46px !important;
        border-radius: 14px;
        font-size: 13.5px;
    }

    .ob-commerce-notices .woocommerce-message::before,
    .ob-commerce-notices .woocommerce-info::before,
    .ob-commerce-notices .woocommerce-error::before,
    .ob-cart-page .cart-empty.woocommerce-info::before {
        left: 17px !important;
    }

    .ob-cart-grid.et_pb_row {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .ob-cart-products,
    .ob-cart-summary {
        padding: 18px;
        border-radius: 22px;
    }

    .ob-cart-summary {
        position: static;
    }

    .ob-cart-summary .cart_totals h2 {
        font-size: 27px;
    }


    /* Transformation du tableau WooCommerce en cartes mobiles. */

    .ob-cart-products table.shop_table_responsive thead {
        display: none;
    }

    .ob-cart-products table.shop_table_responsive tbody,
    .ob-cart-products table.shop_table_responsive tr.cart_item {
        display: block;
        width: 100%;
    }

    .ob-cart-products table.shop_table_responsive tr.cart_item {
        margin-bottom: 14px;
        padding: 15px;
        background: var(--ob-color-bg-soft);
        border: 1px solid var(--ob-color-border);
        border-radius: 16px;
    }

    .ob-cart-products table.shop_table_responsive tr.cart_item:last-child {
        margin-bottom: 0;
    }

    .ob-cart-products table.shop_table_responsive tr.cart_item td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 9px 0 !important;
        text-align: right !important;
        border-bottom: 1px solid var(--ob-color-border) !important;
    }

    .ob-cart-products table.shop_table_responsive tr.cart_item td:last-child {
        border-bottom: 0 !important;
    }

    .ob-cart-products table.shop_table_responsive tr.cart_item td::before {
        margin-right: 16px;
        color: var(--ob-color-muted);
        font-family: var(--ob-font-body);
        font-size: 11px;
        line-height: 1.3;
        font-weight: 800;
        letter-spacing: 0.05em;
        text-transform: uppercase;
    }

    .ob-cart-products table.shop_table_responsive td.product-remove {
        justify-content: flex-end;
        padding-top: 0 !important;
        padding-bottom: 6px !important;
        border-bottom: 0 !important;
    }

    .ob-cart-products table.shop_table_responsive td.product-remove::before {
        display: none;
    }

    .ob-cart-products table.shop_table_responsive td.product-thumbnail {
        display: none !important;
    }

    .ob-cart-products table.shop_table_responsive td.product-name {
        display: block;
        padding: 4px 0 12px !important;
        text-align: left !important;
    }

    .ob-cart-products table.shop_table_responsive td.product-name::before {
        display: none;
    }

    .ob-cart-products .quantity .qty {
        width: 64px;
        min-height: 40px;
    }


    /* Actions et coupon mobile. */

    .ob-cart-products td.actions {
        display: block !important;
        width: 100%;
        padding-top: 18px !important;
        text-align: left !important;
    }

    .ob-cart-products .coupon {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        float: none !important;
        width: 100%;
        gap: 10px;
    }

    .ob-cart-products .coupon #coupon_code {
        width: 100% !important;
    }

    .ob-cart-products .coupon .button,
    .ob-cart-products td.actions > button.button,
    .ob-cart-products td.actions > input.button {
        width: 100% !important;
    }

    .ob-cart-products td.actions > button.button,
    .ob-cart-products td.actions > input.button {
        margin-top: 10px;
    }


    /* Total mobile. */

    .ob-cart-summary table.shop_table th {
        width: 45%;
    }

    .ob-cart-summary table.shop_table th,
    .ob-cart-summary table.shop_table td {
        font-size: 13.5px;
    }

    .ob-cart-summary .wc-proceed-to-checkout a.checkout-button {
        min-height: 50px;
        font-size: 14px !important;
    }


    /* Réassurance mobile. */

    .ob-commerce-trust {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .ob-commerce-trust-item {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 14px;
        padding: 18px;
        border-radius: 18px;
    }

    .ob-commerce-trust-icon {
        width: 44px;
        height: 44px;
        border-radius: 14px;
    }

    .ob-commerce-trust-icon svg {
        width: 23px;
        height: 23px;
    }

    .ob-commerce-trust-content h3 {
        font-size: 14.5px;
    }

    .ob-commerce-trust-content p,
    .ob-commerce-trust-content a {
        font-size: 13px;
    }
}


/* ---------- 13. Très petits mobiles ---------- */

@media (max-width: 390px) {

    .ob-cart-products,
    .ob-cart-summary {
        padding: 16px;
    }

    .ob-cart-products table.shop_table_responsive tr.cart_item {
        padding: 13px;
    }

    .ob-commerce-trust-item {
        padding: 16px;
    }
}

/* =========================================================
   ORIBIRD — PAGE PAIEMENT WOOCOMMERCE
   Divi Woo Checkout
   ========================================================= */


/* ---------- 1. Structure générale ---------- */

.ob-checkout-page,
.ob-checkout-page * {
    box-sizing: border-box;
}

.ob-checkout-page.et_pb_section {
    padding-top: 64px !important;
    padding-bottom: 84px !important;
    background: var(--ob-color-bg);
}

.ob-checkout-page > .et_pb_row {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 0 !important;
}

.ob-checkout-page .et_pb_module {
    margin-bottom: 0;
}

.ob-checkout-page .ob-commerce-heading-row {
    margin-bottom: 24px !important;
}

.ob-checkout-page .ob-commerce-notices-row {
    margin-bottom: 20px !important;
}

.ob-checkout-page .ob-commerce-trust-row {
    margin-top: 30px !important;
}


/* ---------- 2. Grille principale ---------- */

.ob-checkout-grid.et_pb_row {
    display: grid !important;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(340px, 0.85fr);
    gap: 28px;
    align-items: start;
}

.ob-checkout-grid.et_pb_row::after {
    display: none !important;
}

.ob-checkout-grid.et_pb_row > .et_pb_column {
    float: none !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.ob-checkout-grid.et_pb_row > .et_pb_column:last-child {
    position: sticky;
    top: 112px;
}


/* ---------- 3. Cartes Checkout ---------- */

.ob-checkout-billing,
.ob-checkout-information,
.ob-checkout-review,
.ob-checkout-payment {
    padding: 28px;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-card);
}

.ob-checkout-information,
.ob-checkout-payment {
    margin-top: 20px !important;
}


/* ---------- 4. Titres des modules ---------- */

.ob-checkout-page .woocommerce-billing-fields > h3,
.ob-checkout-page .woocommerce-additional-fields > h3,
.ob-checkout-page #order_review_heading,
.ob-checkout-page .ob-checkout-review h2,
.ob-checkout-page .ob-checkout-review h3,
.ob-checkout-page .ob-checkout-payment h2,
.ob-checkout-page .ob-checkout-payment h3 {
    margin: 0 0 22px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 30px;
    line-height: 1.08;
    letter-spacing: -0.025em;
    font-weight: 400;
}


/* ---------- 5. Champs et formulaires ---------- */

.ob-checkout-page .woocommerce form .form-row {
    margin: 0 0 17px;
    padding: 0;
}

.ob-checkout-page .woocommerce form .form-row-first,
.ob-checkout-page .woocommerce form .form-row-last {
    width: calc(50% - 7px);
}

.ob-checkout-page .woocommerce form .form-row-first {
    float: left;
}

.ob-checkout-page .woocommerce form .form-row-last {
    float: right;
}

.ob-checkout-page .woocommerce form .form-row-wide {
    clear: both;
}

.ob-checkout-page .woocommerce form label {
    display: block;
    margin: 0 0 7px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.4;
    font-weight: 700;
}

.ob-checkout-page .woocommerce form label .required {
    color: var(--ob-color-primary-dark);
    text-decoration: none;
}

.ob-checkout-page .woocommerce form input.input-text,
.ob-checkout-page .woocommerce form textarea,
.ob-checkout-page .woocommerce form select {
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 11px 14px;
    color: var(--ob-color-text);
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 12px;
    outline: none;
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.4;
    box-shadow: none;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}

.ob-checkout-page .woocommerce form textarea {
    min-height: 124px;
    resize: vertical;
}

.ob-checkout-page .woocommerce form input.input-text::placeholder,
.ob-checkout-page .woocommerce form textarea::placeholder {
    color: var(--ob-color-muted);
    opacity: 0.72;
}

.ob-checkout-page .woocommerce form input.input-text:focus,
.ob-checkout-page .woocommerce form textarea:focus,
.ob-checkout-page .woocommerce form select:focus {
    background: var(--ob-color-white);
    border-color: var(--ob-color-primary-light);
    box-shadow: 0 0 0 3px var(--ob-color-primary-wash-strong);
}

.ob-checkout-page .woocommerce form .woocommerce-invalid input.input-text,
.ob-checkout-page .woocommerce form .woocommerce-invalid select {
    border-color: rgba(158, 82, 69, 0.7);
    box-shadow: 0 0 0 3px rgba(158, 82, 69, 0.08);
}

.ob-checkout-page .woocommerce form .woocommerce-validated input.input-text,
.ob-checkout-page .woocommerce form .woocommerce-validated select {
    border-color: rgba(168, 178, 161, 0.85);
}


/* ---------- 6. Select2 WooCommerce ---------- */

.ob-checkout-page .select2-container {
    width: 100% !important;
}

.ob-checkout-page .select2-container .select2-selection--single {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 0 13px;
    color: var(--ob-color-text);
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 12px;
    outline: none;
}

.ob-checkout-page
.select2-container
.select2-selection--single
.select2-selection__rendered {
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 46px;
}

.ob-checkout-page
.select2-container
.select2-selection--single
.select2-selection__arrow {
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
}

.ob-checkout-page
.select2-container--open
.select2-selection--single {
    background: var(--ob-color-white);
    border-color: var(--ob-color-primary-light);
    box-shadow: 0 0 0 3px var(--ob-color-primary-wash-strong);
}


/* ---------- 7. Compte client et cases à cocher ---------- */

.ob-checkout-page .woocommerce-account-fields {
    clear: both;
    margin-top: 8px;
}

.ob-checkout-page .woocommerce-account-fields p {
    margin-bottom: 12px;
}

.ob-checkout-page
.woocommerce-account-fields
label.woocommerce-form__label-for-checkbox,
.ob-checkout-page
.woocommerce-form__label-for-checkbox,
.ob-checkout-page
.woocommerce-terms-and-conditions-checkbox-text {
    display: inline;
    margin: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.55;
    font-weight: 500;
}

.ob-checkout-page input[type="checkbox"],
.ob-checkout-page input[type="radio"] {
    width: 17px;
    height: 17px;
    margin: 0 7px 0 0;
    accent-color: var(--ob-color-primary);
    vertical-align: -3px;
}


/* ---------- 8. Formulaires connexion et coupon ---------- */

.ob-checkout-page form.woocommerce-form-login,
.ob-checkout-page form.checkout_coupon {
    margin: 0 0 18px !important;
    padding: 22px !important;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border) !important;
    border-radius: 16px;
    box-shadow: var(--ob-shadow-card);
}

.ob-checkout-page form.woocommerce-form-login p,
.ob-checkout-page form.checkout_coupon p {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.55;
}

.ob-checkout-page form.checkout_coupon .form-row {
    margin-bottom: 0;
}


/* ---------- 9. Boutons secondaires ---------- */

.ob-checkout-page .woocommerce a.button,
.ob-checkout-page .woocommerce button.button:not(#place_order),
.ob-checkout-page .woocommerce input.button {
    min-height: 46px;
    padding: 12px 20px !important;
    color: var(--ob-color-primary-dark) !important;
    background: transparent !important;
    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;
    font-family: var(--ob-font-body) !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    box-shadow: none !important;
    transition: var(--ob-transition-base) !important;
}

.ob-checkout-page .woocommerce a.button:hover,
.ob-checkout-page .woocommerce button.button:not(#place_order):hover,
.ob-checkout-page .woocommerce input.button:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark) !important;
}


/* ---------- 10. Tableau récapitulatif ---------- */

.ob-checkout-review table.shop_table {
    width: 100%;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    border-radius: 0 !important;
    font-family: var(--ob-font-body);
}

.ob-checkout-review table.shop_table thead th {
    padding: 0 0 14px !important;
    color: var(--ob-color-muted);
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--ob-color-border) !important;
    font-family: var(--ob-font-body);
    font-size: 11.5px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ob-checkout-review table.shop_table thead th:last-child {
    text-align: right;
}

.ob-checkout-review table.shop_table tbody td,
.ob-checkout-review table.shop_table tfoot th,
.ob-checkout-review table.shop_table tfoot td {
    padding: 14px 0 !important;
    color: var(--ob-color-text);
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--ob-color-border) !important;
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.5;
    vertical-align: top;
}

.ob-checkout-review table.shop_table tbody td:last-child,
.ob-checkout-review table.shop_table tfoot td {
    padding-left: 16px !important;
    text-align: right;
    white-space: nowrap;
}

.ob-checkout-review table.shop_table .product-name {
    font-weight: 700;
}

.ob-checkout-review table.shop_table .product-quantity {
    color: var(--ob-color-muted);
    font-weight: 500;
}

.ob-checkout-review table.shop_table tfoot th {
    padding-right: 14px !important;
    font-weight: 700;
    text-align: left;
}

.ob-checkout-review table.shop_table tfoot tr.order-total th,
.ob-checkout-review table.shop_table tfoot tr.order-total td {
    padding-top: 18px !important;
    padding-bottom: 4px !important;
    border-bottom: 0 !important;
    font-size: 17px;
    font-weight: 800;
}

.ob-checkout-review table.shop_table tfoot tr.order-total .amount {
    color: var(--ob-color-primary-dark);
    font-size: 20px;
}


/* ---------- 11. Zone de paiement ---------- */

.ob-checkout-payment #payment {
    margin: 0;
    padding: 0;
    background: transparent;
    border-radius: 0;
}

.ob-checkout-payment #payment ul.payment_methods {
    margin: 0;
    padding: 0 0 18px !important;
    border: 0;
    border-bottom: 1px solid var(--ob-color-border);
    list-style: none;
}

.ob-checkout-payment #payment ul.payment_methods > li {
    margin: 0;
    padding: 14px 0;
    color: var(--ob-color-text);
    border-bottom: 1px solid var(--ob-color-border);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.5;
}

.ob-checkout-payment #payment ul.payment_methods > li:last-child {
    border-bottom: 0;
}

.ob-checkout-payment
#payment
ul.payment_methods
label {
    display: inline;
    margin: 0;
    color: var(--ob-color-text);
    font-weight: 700;
    cursor: pointer;
}

.ob-checkout-payment
#payment
ul.payment_methods
label
img {
    max-height: 26px;
    margin-left: 7px;
    vertical-align: middle;
}

.ob-checkout-payment #payment div.payment_box {
    margin: 13px 0 0;
    padding: 15px;
    color: var(--ob-color-muted);
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 12px;
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.55;
}

.ob-checkout-payment #payment div.payment_box::before {
    display: none;
}

.ob-checkout-payment #payment div.payment_box p:last-child {
    margin-bottom: 0;
}


/* ---------- 12. CGV et confidentialité ---------- */

.ob-checkout-payment #payment .place-order {
    margin: 0;
    padding: 20px 0 0 !important;
}

.ob-checkout-payment .woocommerce-privacy-policy-text,
.ob-checkout-payment .woocommerce-terms-and-conditions-wrapper {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 12.5px;
    line-height: 1.55;
}

.ob-checkout-payment .woocommerce-privacy-policy-text p,
.ob-checkout-payment .woocommerce-terms-and-conditions-wrapper p {
    margin-bottom: 13px;
}

.ob-checkout-payment .woocommerce-privacy-policy-text a,
.ob-checkout-payment .woocommerce-terms-and-conditions-wrapper a {
    color: var(--ob-color-primary-dark);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}


/* ---------- 13. Bouton final ---------- */

.ob-checkout-payment #place_order {
    display: flex !important;
    align-items: center;
    justify-content: center;
    float: none !important;
    width: 100%;
    min-height: 54px;
    margin: 17px 0 0 !important;
    padding: 14px 22px !important;
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary) !important;
    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;
    font-family: var(--ob-font-body) !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-align: center;
    text-transform: none !important;
    box-shadow: none !important;
    transition: var(--ob-transition-base) !important;
}

.ob-checkout-payment #place_order:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark) !important;
    transform: translateY(-1px);
}

.ob-checkout-payment #place_order:focus-visible {
    outline: 3px solid var(--ob-color-primary-wash-strong);
    outline-offset: 3px;
}


/* ---------- 14. Absence de moyen de paiement ---------- */

.ob-checkout-payment
.woocommerce-checkout-payment
.woocommerce-notice,
.ob-checkout-payment
.woocommerce-checkout-payment
.woocommerce-info {
    margin: 0 !important;
    padding: 15px !important;
    color: var(--ob-color-text) !important;
    background: var(--ob-color-primary-wash) !important;
    border: 1px solid var(--ob-color-primary-border-soft) !important;
    border-radius: 12px;
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.55;
}


/* ---------- 15. Tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {

    .ob-checkout-page.et_pb_section {
        padding-top: 48px !important;
        padding-bottom: 68px !important;
    }

    .ob-checkout-page > .et_pb_row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-checkout-grid.et_pb_row {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .ob-checkout-grid.et_pb_row > .et_pb_column:last-child {
        position: static;
    }

    .ob-checkout-billing,
    .ob-checkout-information,
    .ob-checkout-review,
    .ob-checkout-payment {
        padding: 24px;
    }
}


/* ---------- 16. Mobile ---------- */

@media (max-width: 767px) {

    .ob-checkout-page.et_pb_section {
        padding-top: 34px !important;
        padding-bottom: 52px !important;
    }

    .ob-checkout-page > .et_pb_row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-checkout-grid.et_pb_row {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .ob-checkout-grid.et_pb_row > .et_pb_column:last-child {
        position: static;
    }

    .ob-checkout-billing,
    .ob-checkout-information,
    .ob-checkout-review,
    .ob-checkout-payment {
        padding: 18px;
        border-radius: 22px;
    }

    .ob-checkout-information,
    .ob-checkout-payment {
        margin-top: 16px !important;
    }

    .ob-checkout-page .woocommerce-billing-fields > h3,
    .ob-checkout-page .woocommerce-additional-fields > h3,
    .ob-checkout-page #order_review_heading,
    .ob-checkout-page .ob-checkout-review h2,
    .ob-checkout-page .ob-checkout-review h3,
    .ob-checkout-page .ob-checkout-payment h2,
    .ob-checkout-page .ob-checkout-payment h3 {
        margin-bottom: 18px;
        font-size: 27px;
    }

    .ob-checkout-page .woocommerce form .form-row-first,
    .ob-checkout-page .woocommerce form .form-row-last {
        float: none;
        width: 100%;
    }

    .ob-checkout-page .woocommerce form input.input-text,
    .ob-checkout-page .woocommerce form textarea,
    .ob-checkout-page .woocommerce form select,
    .ob-checkout-page
    .select2-container
    .select2-selection--single {
        min-height: 46px;
    }

    .ob-checkout-page form.woocommerce-form-login,
    .ob-checkout-page form.checkout_coupon {
        padding: 18px !important;
    }

    .ob-checkout-page form.checkout_coupon .form-row {
        float: none;
        width: 100%;
        margin-bottom: 10px;
    }

    .ob-checkout-page form.checkout_coupon button.button {
        width: 100%;
    }

    .ob-checkout-review table.shop_table tbody td,
    .ob-checkout-review table.shop_table tfoot th,
    .ob-checkout-review table.shop_table tfoot td {
        font-size: 13px;
    }

    .ob-checkout-review table.shop_table tbody td:last-child,
    .ob-checkout-review table.shop_table tfoot td {
        padding-left: 10px !important;
    }

    .ob-checkout-payment #place_order {
        min-height: 52px;
        font-size: 14px !important;
    }
}


/* ---------- 17. Très petits mobiles ---------- */

@media (max-width: 390px) {

    .ob-checkout-billing,
    .ob-checkout-information,
    .ob-checkout-review,
    .ob-checkout-payment {
        padding: 16px;
    }

    .ob-checkout-review table.shop_table tbody td,
    .ob-checkout-review table.shop_table tfoot th,
    .ob-checkout-review table.shop_table tfoot td {
        font-size: 12.5px;
    }
}

/* =========================================================
   ORIBIRD — PAGE MON COMPTE
   WooCommerce My Account + Amelia Customer Panel
   ========================================================= */


/* ---------- 1. Structure générale ---------- */

.ob-account-page,
.ob-account-page * {
    box-sizing: border-box;
}

.ob-account-page.et_pb_section {
    padding-top: 64px !important;
    padding-bottom: 84px !important;
    background: var(--ob-color-bg);
}

.ob-account-page > .et_pb_row {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 0 !important;
}

.ob-account-page .et_pb_module {
    margin-bottom: 0;
}

.ob-account-page .ob-commerce-heading-row {
    margin-bottom: 28px !important;
}

.ob-account-shortcuts-row {
    margin-bottom: 30px !important;
}

.ob-account-panel-row + .ob-account-panel-row {
    margin-top: 28px !important;
}


/* ---------- 2. Accès rapides ---------- */

.ob-account-shortcuts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ob-account-shortcut {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    gap: 15px;
    align-items: center;
    min-height: 112px;
    padding: 20px;
    color: var(--ob-color-text);
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 20px;
    box-shadow: var(--ob-shadow-card);
    text-decoration: none;
    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}

.ob-account-shortcut:hover {
    color: var(--ob-color-text);
    background: var(--ob-color-primary-wash);
    border-color: var(--ob-color-primary-border-soft);
    box-shadow: var(--ob-shadow-soft);
    transform: translateY(-2px);
}

.ob-account-shortcut:focus-visible {
    outline: 3px solid var(--ob-color-primary-wash-strong);
    outline-offset: 3px;
}

.ob-account-shortcut-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    color: var(--ob-color-primary-dark);
    background: var(--ob-color-primary-wash-strong);
    border-radius: 16px;
}

.ob-account-shortcut-icon svg {
    display: block;
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ob-account-shortcut-content {
    display: block;
    min-width: 0;
}

.ob-account-shortcut-content strong {
    display: block;
    margin: 0 0 5px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.3;
    font-weight: 800;
}

.ob-account-shortcut-content > span {
    display: block;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.5;
}

.ob-account-shortcut-arrow {
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 22px;
    line-height: 1;
    transition: transform 0.2s ease;
}

.ob-account-shortcut:hover .ob-account-shortcut-arrow {
    transform: translateX(3px);
}


/* ---------- 3. Conteneurs principaux ---------- */

.ob-account-shell {
    scroll-margin-top: 130px;
    padding: 30px;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-card);
}

.ob-account-panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 26px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--ob-color-border);
}

.ob-account-panel-heading > div {
    max-width: 720px;
}

.ob-account-panel-kicker {
    margin: 0 0 8px !important;
    padding: 0;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 12px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ob-account-panel-heading h2 {
    margin: 0 0 10px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(30px, 3vw, 38px);
    line-height: 1.08;
    letter-spacing: -0.025em;
    font-weight: 400;
}

.ob-account-panel-heading p:not(.ob-account-panel-kicker) {
    max-width: 680px;
    margin: 0;
    padding: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.6;
}

.ob-account-panel-action {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 11px 20px;
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary);
    border: 2px solid var(--ob-color-primary);
    border-radius: var(--ob-radius-pill);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.2;
    font-weight: 800;
    text-align: center;
    text-decoration: none !important;
    transition: var(--ob-transition-base);
}

.ob-account-panel-action:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark);
    border-color: var(--ob-color-primary-dark);
    transform: translateY(-1px);
}

.ob-account-panel-action:focus-visible {
    outline: 3px solid var(--ob-color-primary-wash-strong);
    outline-offset: 3px;
}

.ob-account-panel-content {
    min-width: 0;
}

.ob-account-panel-content > p:empty {
    display: none;
}


/* ---------- 4. Conteneur Amelia ---------- */

/*
 * Le panneau Amelia conserve son propre système graphique.
 * On ne surcharge que son intégration dans la page afin de
 * limiter les risques de conflit lors des mises à jour.
 */

.ob-account-amelia {
    width: 100%;
    min-width: 0;
}

.ob-account-amelia .amelia-app-booking,
.ob-account-amelia #amelia-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

.ob-account-amelia iframe {
    width: 100%;
    max-width: 100%;
}

.ob-account-amelia > p:first-child:empty,
.ob-account-amelia > p:last-child:empty {
    display: none;
}


/* ---------- 5. Grille Mon compte WooCommerce ---------- */

.ob-account-woo .woocommerce {
    display: grid;
    grid-template-columns: minmax(210px, 250px) minmax(0, 1fr);
    gap: 26px;
    align-items: start;
    width: 100%;
}

.ob-account-woo .woocommerce::before,
.ob-account-woo .woocommerce::after {
    display: none !important;
}

.ob-account-woo .woocommerce-MyAccount-navigation,
.ob-account-woo .woocommerce-MyAccount-content {
    float: none !important;
    width: auto !important;
    min-width: 0;
}


/* ---------- 6. Navigation WooCommerce ---------- */

.ob-account-woo .woocommerce-MyAccount-navigation {
    overflow: hidden;
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 18px;
}

.ob-account-woo .woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 8px;
    list-style: none;
}

.ob-account-woo .woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
    border: 0;
}

.ob-account-woo .woocommerce-MyAccount-navigation li + li {
    margin-top: 4px;
}

.ob-account-woo .woocommerce-MyAccount-navigation a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 11px 14px;
    color: var(--ob-color-text);
    background: transparent;
    border-radius: 12px;
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.35;
    font-weight: 700;
    text-decoration: none;
    transition:
        color 0.2s ease,
        background-color 0.2s ease;
}

.ob-account-woo .woocommerce-MyAccount-navigation a:hover {
    color: var(--ob-color-primary-dark);
    background: var(--ob-color-white);
}

.ob-account-woo
.woocommerce-MyAccount-navigation
li.is-active
a {
    color: var(--ob-color-primary-dark);
    background: var(--ob-color-white);
    box-shadow: 0 4px 15px rgba(46, 42, 38, 0.06);
}


/* ---------- 7. Contenu WooCommerce ---------- */

.ob-account-woo .woocommerce-MyAccount-content {
    min-height: 260px;
    padding: 24px;
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 18px;
}

.ob-account-woo .woocommerce-MyAccount-content > *:first-child {
    margin-top: 0;
}

.ob-account-woo .woocommerce-MyAccount-content > *:last-child {
    margin-bottom: 0;
}

.ob-account-woo .woocommerce-MyAccount-content p {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.65;
}

.ob-account-woo .woocommerce-MyAccount-content p a {
    color: var(--ob-color-primary-dark);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.ob-account-woo .woocommerce-MyAccount-content h2,
.ob-account-woo .woocommerce-MyAccount-content h3 {
    margin: 0 0 18px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 28px;
    line-height: 1.12;
    letter-spacing: -0.02em;
    font-weight: 400;
}


/* ---------- 8. Notifications WooCommerce ---------- */

.ob-account-woo .woocommerce-message,
.ob-account-woo .woocommerce-info,
.ob-account-woo .woocommerce-error {
    position: relative;
    width: 100%;
    margin: 0 0 18px !important;
    padding: 16px 18px 16px 50px !important;
    color: var(--ob-color-text) !important;
    background: var(--ob-color-white) !important;
    border: 1px solid var(--ob-color-border) !important;
    border-top: 1px solid var(--ob-color-border) !important;
    border-radius: 14px;
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.55;
}

.ob-account-woo .woocommerce-message {
    background: rgba(168, 178, 161, 0.13) !important;
    border-color: rgba(168, 178, 161, 0.42) !important;
}

.ob-account-woo .woocommerce-info {
    background: var(--ob-color-primary-wash) !important;
    border-color: var(--ob-color-primary-border-soft) !important;
}

.ob-account-woo .woocommerce-error {
    background: #fff7f5 !important;
    border-color: rgba(158, 82, 69, 0.28) !important;
}

.ob-account-woo .woocommerce-message::before,
.ob-account-woo .woocommerce-info::before,
.ob-account-woo .woocommerce-error::before {
    top: 50% !important;
    left: 18px !important;
    color: var(--ob-color-primary) !important;
    transform: translateY(-50%);
}

.ob-account-woo .woocommerce-error::before {
    color: #9e5245 !important;
}


/* ---------- 9. Boutons WooCommerce ---------- */

.ob-account-woo .woocommerce a.button,
.ob-account-woo .woocommerce button.button,
.ob-account-woo .woocommerce input.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 11px 18px !important;
    color: var(--ob-color-primary-dark) !important;
    background: transparent !important;
    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;
    font-family: var(--ob-font-body) !important;
    font-size: 13.5px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-align: center;
    text-transform: none !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: var(--ob-transition-base) !important;
}

.ob-account-woo .woocommerce a.button:hover,
.ob-account-woo .woocommerce button.button:hover,
.ob-account-woo .woocommerce input.button:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark) !important;
}

.ob-account-woo .woocommerce a.button:focus-visible,
.ob-account-woo .woocommerce button.button:focus-visible,
.ob-account-woo .woocommerce input.button:focus-visible {
    outline: 3px solid var(--ob-color-primary-wash-strong);
    outline-offset: 3px;
}


/* ---------- 10. Tableaux commandes et téléchargements ---------- */

.ob-account-woo table.shop_table,
.ob-account-woo
table.woocommerce-orders-table,
.ob-account-woo
table.woocommerce-table {
    width: 100%;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0;
    overflow: hidden;
    background: var(--ob-color-white);
    border-radius: 14px !important;
    font-family: var(--ob-font-body);
}

.ob-account-woo table.shop_table thead th,
.ob-account-woo
table.woocommerce-orders-table
thead
th,
.ob-account-woo
table.woocommerce-table
thead
th {
    padding: 13px 14px !important;
    color: var(--ob-color-muted);
    background: var(--ob-color-white);
    border: 0 !important;
    border-bottom: 1px solid var(--ob-color-border) !important;
    font-family: var(--ob-font-body);
    font-size: 11px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ob-account-woo table.shop_table td,
.ob-account-woo
table.woocommerce-orders-table
td,
.ob-account-woo
table.woocommerce-table
td {
    padding: 14px !important;
    color: var(--ob-color-text);
    background: var(--ob-color-white);
    border: 0 !important;
    border-bottom: 1px solid var(--ob-color-border) !important;
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.5;
    vertical-align: middle;
}

.ob-account-woo table.shop_table tbody tr:last-child td,
.ob-account-woo
table.woocommerce-orders-table
tbody
tr:last-child
td,
.ob-account-woo
table.woocommerce-table
tbody
tr:last-child
td {
    border-bottom: 0 !important;
}

.ob-account-woo table.shop_table a:not(.button),
.ob-account-woo
table.woocommerce-orders-table
a:not(.button),
.ob-account-woo
table.woocommerce-table
a:not(.button) {
    color: var(--ob-color-primary-dark);
    font-weight: 700;
}


/* ---------- 11. Adresses ---------- */

.ob-account-woo .woocommerce-Addresses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 20px;
}

.ob-account-woo .woocommerce-Address {
    float: none !important;
    width: auto !important;
    margin: 0;
    padding: 20px;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 14px;
}

.ob-account-woo .woocommerce-Address-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}

.ob-account-woo .woocommerce-Address-title h2,
.ob-account-woo .woocommerce-Address-title h3 {
    margin: 0;
    font-family: var(--ob-font-heading);
    font-size: 23px;
}

.ob-account-woo .woocommerce-Address-title a.edit {
    float: none;
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 12.5px;
    font-weight: 800;
}

.ob-account-woo address {
    margin: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.65;
    font-style: normal;
}


/* ---------- 12. Formulaires du compte ---------- */

.ob-account-woo .woocommerce form .form-row {
    margin: 0 0 17px;
    padding: 0;
}

.ob-account-woo .woocommerce form label {
    display: block;
    margin: 0 0 7px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.4;
    font-weight: 700;
}

.ob-account-woo .woocommerce form .required {
    color: var(--ob-color-primary-dark);
    text-decoration: none;
}

.ob-account-woo
.woocommerce
form
input.input-text,
.ob-account-woo .woocommerce form textarea,
.ob-account-woo .woocommerce form select {
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 11px 14px;
    color: var(--ob-color-text);
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 12px;
    outline: none;
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.4;
    box-shadow: none;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.ob-account-woo .woocommerce form textarea {
    min-height: 120px;
    resize: vertical;
}

.ob-account-woo
.woocommerce
form
input.input-text:focus,
.ob-account-woo .woocommerce form textarea:focus,
.ob-account-woo .woocommerce form select:focus {
    border-color: var(--ob-color-primary-light);
    box-shadow: 0 0 0 3px var(--ob-color-primary-wash-strong);
}

.ob-account-woo .woocommerce form fieldset {
    margin: 24px 0;
    padding: 20px;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 14px;
}

.ob-account-woo .woocommerce form fieldset legend {
    padding: 0 8px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14px;
    font-weight: 800;
}


/* ---------- 13. Connexion et inscription ---------- */

.ob-account-woo .woocommerce > #customer_login,
.ob-account-woo .woocommerce > form,
.ob-account-woo
.woocommerce
> .woocommerce-form-login {
    grid-column: 1 / -1;
}

.ob-account-woo #customer_login {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    width: 100%;
}

.ob-account-woo #customer_login::before,
.ob-account-woo #customer_login::after {
    display: none !important;
}

.ob-account-woo #customer_login > .u-column1,
.ob-account-woo #customer_login > .u-column2 {
    float: none !important;
    width: auto !important;
    padding: 24px;
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 18px;
}

.ob-account-woo #customer_login h2 {
    margin: 0 0 18px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 28px;
    line-height: 1.1;
    font-weight: 400;
}

.ob-account-woo
form.woocommerce-form-login,
.ob-account-woo
form.woocommerce-form-register {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.ob-account-woo
.woocommerce-form-login__rememberme {
    display: block;
    margin-bottom: 15px;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 13px;
}

.ob-account-woo input[type="checkbox"] {
    width: 17px;
    height: 17px;
    margin-right: 7px;
    accent-color: var(--ob-color-primary);
    vertical-align: -3px;
}

.ob-account-woo .woocommerce-LostPassword {
    margin-top: 14px;
}

.ob-account-woo .woocommerce-LostPassword a {
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 13px;
    font-weight: 700;
}


/* ---------- 14. Pagination ---------- */

.ob-account-woo
.woocommerce-pagination {
    margin-top: 20px;
}

.ob-account-woo
.woocommerce-pagination
ul.page-numbers {
    display: flex;
    gap: 7px;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.ob-account-woo
.woocommerce-pagination
ul.page-numbers
li {
    margin: 0 !important;
    border: 0 !important;
}

.ob-account-woo
.woocommerce-pagination
.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    color: var(--ob-color-text);
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: 10px;
    font-family: var(--ob-font-body);
    font-size: 13px;
    font-weight: 700;
}

.ob-account-woo
.woocommerce-pagination
.page-numbers.current,
.ob-account-woo
.woocommerce-pagination
a.page-numbers:hover {
    color: var(--ob-color-white);
    background: var(--ob-color-primary);
    border-color: var(--ob-color-primary);
}


/* ---------- 15. Tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {

    .ob-account-page.et_pb_section {
        padding-top: 48px !important;
        padding-bottom: 68px !important;
    }

    .ob-account-page > .et_pb_row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-account-shortcuts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ob-account-shortcut:last-child {
        grid-column: 1 / -1;
    }

    .ob-account-shell {
        padding: 26px;
    }

    .ob-account-woo .woocommerce {
        grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
        gap: 20px;
    }

    .ob-account-woo .woocommerce-MyAccount-content {
        padding: 20px;
    }
}


/* ---------- 16. Mobile ---------- */

@media (max-width: 767px) {

    .ob-account-page.et_pb_section {
        padding-top: 34px !important;
        padding-bottom: 52px !important;
    }

    .ob-account-page > .et_pb_row {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
    }

    .ob-account-page .ob-commerce-heading-row {
        margin-bottom: 22px !important;
    }

    .ob-account-shortcuts-row {
        margin-bottom: 22px !important;
    }

    .ob-account-panel-row + .ob-account-panel-row {
        margin-top: 20px !important;
    }


    /* Accès rapides */

    .ob-account-shortcuts {
        grid-template-columns: minmax(0, 1fr);
        gap: 11px;
    }

    .ob-account-shortcut {
        grid-template-columns: 46px minmax(0, 1fr) auto;
        gap: 13px;
        min-height: 0;
        padding: 16px;
        border-radius: 17px;
    }

    .ob-account-shortcut-icon {
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }

    .ob-account-shortcut-icon svg {
        width: 24px;
        height: 24px;
    }

    .ob-account-shortcut-content strong {
        font-size: 14px;
    }

    .ob-account-shortcut-content > span {
        font-size: 12.5px;
    }


    /* Conteneurs */

    .ob-account-shell {
        padding: 18px;
        border-radius: 22px;
        scroll-margin-top: 100px;
    }

    .ob-account-panel-heading {
        display: block;
        margin-bottom: 20px;
        padding-bottom: 19px;
    }

    .ob-account-panel-heading h2 {
        font-size: 29px;
    }

    .ob-account-panel-heading p:not(.ob-account-panel-kicker) {
        font-size: 13.5px;
    }

    .ob-account-panel-action {
        width: 100%;
        margin-top: 17px;
    }


    /* Compte WooCommerce */

    .ob-account-woo .woocommerce {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .ob-account-woo
    .woocommerce-MyAccount-navigation
    ul {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        padding: 7px;
    }

    .ob-account-woo
    .woocommerce-MyAccount-navigation
    li + li {
        margin-top: 0;
    }

    .ob-account-woo
    .woocommerce-MyAccount-navigation
    a {
        justify-content: center;
        min-height: 42px;
        padding: 9px 8px;
        font-size: 11.5px;
        text-align: center;
    }

    .ob-account-woo .woocommerce-MyAccount-content {
        min-height: 0;
        padding: 17px;
        border-radius: 15px;
    }

    .ob-account-woo
    .woocommerce-MyAccount-content
    h2,
    .ob-account-woo
    .woocommerce-MyAccount-content
    h3 {
        font-size: 25px;
    }


    /* Connexion et inscription */

    .ob-account-woo #customer_login {
        grid-template-columns: minmax(0, 1fr);
        gap: 15px;
    }

    .ob-account-woo
    #customer_login
    > .u-column1,
    .ob-account-woo
    #customer_login
    > .u-column2 {
        padding: 18px;
        border-radius: 15px;
    }


    /* Adresses */

    .ob-account-woo .woocommerce-Addresses {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }


    /* Tableaux en cartes */

    .ob-account-woo
    table.woocommerce-orders-table
    thead,
    .ob-account-woo
    table.woocommerce-table--order-downloads
    thead {
        display: none;
    }

    .ob-account-woo
    table.woocommerce-orders-table
    tbody,
    .ob-account-woo
    table.woocommerce-orders-table
    tr,
    .ob-account-woo
    table.woocommerce-table--order-downloads
    tbody,
    .ob-account-woo
    table.woocommerce-table--order-downloads
    tr {
        display: block;
        width: 100%;
    }

    .ob-account-woo
    table.woocommerce-orders-table
    tr,
    .ob-account-woo
    table.woocommerce-table--order-downloads
    tr {
        margin-bottom: 13px;
        padding: 13px;
        background: var(--ob-color-white);
        border: 1px solid var(--ob-color-border);
        border-radius: 14px;
    }

    .ob-account-woo
    table.woocommerce-orders-table
    td,
    .ob-account-woo
    table.woocommerce-table--order-downloads
    td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 15px;
        width: 100%;
        padding: 9px 0 !important;
        text-align: right !important;
        border-bottom: 1px solid var(--ob-color-border) !important;
    }

    .ob-account-woo
    table.woocommerce-orders-table
    td:last-child,
    .ob-account-woo
    table.woocommerce-table--order-downloads
    td:last-child {
        border-bottom: 0 !important;
    }

    .ob-account-woo
    table.woocommerce-orders-table
    td::before,
    .ob-account-woo
    table.woocommerce-table--order-downloads
    td::before {
        flex: 0 0 42%;
        color: var(--ob-color-muted);
        font-family: var(--ob-font-body);
        font-size: 10.5px;
        line-height: 1.3;
        font-weight: 800;
        letter-spacing: 0.04em;
        text-align: left;
        text-transform: uppercase;
        content: attr(data-title);
    }

    .ob-account-woo
    table.woocommerce-orders-table
    td.woocommerce-orders-table__cell-order-actions {
        display: block;
        text-align: left !important;
    }

    .ob-account-woo
    table.woocommerce-orders-table
    td.woocommerce-orders-table__cell-order-actions::before {
        display: none;
    }

    .ob-account-woo
    table.woocommerce-orders-table
    td.woocommerce-orders-table__cell-order-actions
    .button {
        width: 100%;
        margin-top: 5px;
    }
}


/* ---------- 17. Très petits mobiles ---------- */

@media (max-width: 390px) {

    .ob-account-shell {
        padding: 16px;
    }

    .ob-account-woo
    .woocommerce-MyAccount-navigation
    ul {
        grid-template-columns: minmax(0, 1fr);
    }

    .ob-account-woo
    .woocommerce-MyAccount-navigation
    a {
        justify-content: flex-start;
        text-align: left;
    }

    .ob-account-woo .woocommerce-MyAccount-content {
        padding: 15px;
    }
}

/* =========================================================
   ORIBIRD — MODULE DIVI AMELIA CUSTOMER PANEL
   Page Mon compte
   ========================================================= */


/* ---------- 1. Ligne-carte Mes réservations ---------- */

/*
 * La règle générale .ob-account-page > .et_pb_row applique
 * padding: 0 !important aux lignes Divi.
 *
 * La ligne Amelia étant elle-même la carte .ob-account-shell,
 * il faut rétablir explicitement son padding avec une
 * spécificité supérieure.
 */

.ob-account-page
> .et_pb_row.ob-account-bookings-row.ob-account-shell {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 30px !important;
}


/* ---------- 2. Colonne Divi ---------- */

.ob-account-bookings-row.et_pb_row > .et_pb_column {
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}


/* ---------- 3. En-tête Mes réservations ---------- */

.ob-account-bookings-header {
    width: 100%;
    margin: 0 !important;
}

.ob-account-bookings-header .et_pb_code_inner {
    width: 100%;
}

.ob-account-bookings-header .ob-account-panel-heading {
    width: 100%;
    margin-top: 0;
    margin-right: 0;
    margin-left: 0;
}


/* ---------- 4. Module Amelia ---------- */

.ob-account-bookings-row .ob-account-amelia {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}

.ob-account-bookings-row
.ob-account-amelia
.et_pb_module_inner {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.ob-account-bookings-row
.ob-account-amelia
.amelia-app-booking,

.ob-account-bookings-row
.ob-account-amelia
.amelia-v2-booking,

.ob-account-bookings-row
.ob-account-amelia
#amelia-container,

.ob-account-bookings-row
.ob-account-amelia
[id^="amelia-container"] {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

.ob-account-bookings-row .ob-account-amelia iframe {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    border: 0;
}


/* ---------- 5. Tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {

    .ob-account-page
    > .et_pb_row.ob-account-bookings-row.ob-account-shell {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
        padding: 26px !important;
    }
}


/* ---------- 6. Mobile ---------- */

@media (max-width: 767px) {

    .ob-account-page
    > .et_pb_row.ob-account-bookings-row.ob-account-shell {
        width: var(--ob-row-mobile-width) !important;
        max-width: var(--ob-row-mobile-max) !important;
        padding: 18px !important;
    }

    .ob-account-bookings-header
    .ob-account-panel-heading {
        margin-bottom: 20px;
    }
}


/* ---------- 7. Très petits mobiles ---------- */

@media (max-width: 390px) {

    .ob-account-page
    > .et_pb_row.ob-account-bookings-row.ob-account-shell {
        padding: 16px !important;
    }
}


/* =========================================================
   ORIBIRD — CONFIRMATION DE COMMANDE WOOCOMMERCE
   Endpoint /order-received/
   ========================================================= */


/* ---------- 1. Elements masques pendant le paiement ---------- */

.ob-order-success-heading-row,
.ob-order-success-actions {
    display: none !important;
}


/* ---------- 2. Etat apres paiement ---------- */

body.woocommerce-order-received
.ob-checkout-page
.ob-commerce-heading-row {
    display: none !important;
}

body.woocommerce-order-received
.ob-checkout-page
.ob-commerce-notices-row {
    display: none !important;
}

body.woocommerce-order-received
.ob-order-success-heading-row {
    display: block !important;
}

body.woocommerce-order-received
.ob-order-success-actions {
    display: block !important;
}

body.woocommerce-order-received
.ob-checkout-page
.ob-commerce-trust-row {
    display: none !important;
}

body.woocommerce-order-received
.ob-checkout-billing,

body.woocommerce-order-received
.ob-checkout-information,

body.woocommerce-order-received
.ob-checkout-payment {
    display: none !important;
}


/* ---------- 3. Titre de confirmation ---------- */

.ob-order-success-heading {
    max-width: 820px;
}

.ob-order-success-heading .ob-section-kicker {
    margin: 0 0 10px;
    padding: 0;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ob-order-success-heading h1 {
    margin: 0 0 16px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(42px, 5vw, 62px);
    line-height: 1.03;
    letter-spacing: -0.035em;
    font-weight: 400;
}

.ob-order-success-heading-intro {
    max-width: 720px;
    margin: 0;
    padding: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 17px;
    line-height: 1.65;
}


/* ---------- 4. Grille de confirmation ---------- */

body.woocommerce-order-received
.ob-checkout-grid.et_pb_row {
    grid-template-columns:
        minmax(290px, 0.72fr)
        minmax(0, 1.28fr);
    gap: 30px;
    align-items: start;
}

body.woocommerce-order-received
.ob-checkout-grid.et_pb_row
> .et_pb_column:last-child {
    position: static !important;
    top: auto !important;
}


/* ---------- 5. Carte d'orientation ---------- */

.ob-order-success-card {
    position: sticky;
    top: 112px;
    padding: 30px;
    background: var(--ob-color-primary-wash);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-card);
}

.ob-order-success-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 22px;
    color: var(--ob-color-primary-dark);
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: 18px;
}

.ob-order-success-icon svg {
    display: block;
    width: 31px;
    height: 31px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ob-order-success-kicker {
    margin: 0 0 9px;
    padding: 0;
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ob-order-success-card h2 {
    margin: 0 0 14px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 32px;
    line-height: 1.08;
    letter-spacing: -0.025em;
    font-weight: 400;
}

.ob-order-success-text {
    margin: 0;
    padding: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 14.5px;
    line-height: 1.65;
}

.ob-order-success-buttons {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 11px;
    margin-top: 24px;
}

.ob-order-success-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    padding: 12px 18px;
    border-radius: var(--ob-radius-pill);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.2;
    font-weight: 800;
    text-align: center;
    text-decoration: none !important;
    transition: var(--ob-transition-base);
}

.ob-order-success-button--primary {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary);
    border: 2px solid var(--ob-color-primary);
}

.ob-order-success-button--primary:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark);
    border-color: var(--ob-color-primary-dark);
    transform: translateY(-1px);
}

.ob-order-success-button--secondary {
    color: var(--ob-color-primary-dark) !important;
    background: var(--ob-color-white);
    border: 2px solid var(--ob-color-primary);
}

.ob-order-success-button--secondary:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark);
    border-color: var(--ob-color-primary-dark);
}

.ob-order-success-button:focus-visible {
    outline: 3px solid var(--ob-color-primary-wash-strong);
    outline-offset: 3px;
}

.ob-order-success-note {
    margin: 22px 0 0;
    padding: 18px 0 0;
    color: var(--ob-color-muted);
    border-top: 1px solid var(--ob-color-primary-border-soft);
    font-family: var(--ob-font-body);
    font-size: 12.5px;
    line-height: 1.55;
}


/* ---------- 6. Carte de recapitulatif elargie ---------- */

body.woocommerce-order-received
.ob-checkout-review {
    width: 100%;
    padding: 32px;
    background: var(--ob-color-white) !important;
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-soft);
}

body.woocommerce-order-received
.ob-checkout-review
.et_pb_module_inner,

body.woocommerce-order-received
.ob-checkout-review
.woocommerce,

body.woocommerce-order-received
.ob-checkout-review
.woocommerce-order {
    width: 100%;
    max-width: 100%;
}


/* ---------- 7. Resume superieur de la commande ---------- */

body.woocommerce-order-received
.woocommerce-order-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 30px !important;
    padding: 18px !important;
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 16px;
    list-style: none;
}

body.woocommerce-order-received
.woocommerce-order-overview::before,

body.woocommerce-order-received
.woocommerce-order-overview::after {
    display: none !important;
}

body.woocommerce-order-received
.woocommerce-order-overview li {
    float: none !important;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    padding: 12px 16px !important;
    color: var(--ob-color-muted);
    border: 0 !important;
    border-bottom: 1px solid var(--ob-color-border) !important;
    font-family: var(--ob-font-body);
    font-size: 11px;
    line-height: 1.35;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

body.woocommerce-order-received
.woocommerce-order-overview li:nth-last-child(-n + 2) {
    border-bottom: 0 !important;
}

body.woocommerce-order-received
.woocommerce-order-overview li:nth-child(odd) {
    border-right: 1px solid var(--ob-color-border) !important;
}

body.woocommerce-order-received
.woocommerce-order-overview li strong {
    display: block;
    margin-top: 5px;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.4;
    font-weight: 800;
    letter-spacing: 0;
    overflow-wrap: anywhere;
    text-transform: none;
}


/* ---------- 8. Titres du recapitulatif ---------- */

body.woocommerce-order-received
.ob-checkout-review
.woocommerce-order-details__title,

body.woocommerce-order-received
.ob-checkout-review
.woocommerce-column__title {
    margin: 30px 0 18px;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 30px;
    line-height: 1.08;
    letter-spacing: -0.025em;
    font-weight: 400;
}


/* ---------- 9. Tableau des details ---------- */

body.woocommerce-order-received
.ob-checkout-review
table.shop_table {
    width: 100%;
    table-layout: auto;
}

body.woocommerce-order-received
.ob-checkout-review
table.shop_table th,

body.woocommerce-order-received
.ob-checkout-review
table.shop_table td {
    overflow-wrap: anywhere;
    word-break: normal;
}

body.woocommerce-order-received
.ob-checkout-review
table.shop_table
.product-name {
    width: 72%;
}

body.woocommerce-order-received
.ob-checkout-review
table.shop_table
.product-total {
    width: 28%;
    text-align: right;
}


/* ---------- 10. Adresse de facturation ---------- */

body.woocommerce-order-received
.ob-checkout-review
.woocommerce-customer-details {
    margin-top: 28px;
}

body.woocommerce-order-received
.ob-checkout-review
.woocommerce-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
}

body.woocommerce-order-received
.ob-checkout-review
.woocommerce-column {
    float: none !important;
    width: 100% !important;
}

body.woocommerce-order-received
.ob-checkout-review
address {
    margin: 0;
    padding: 20px;
    color: var(--ob-color-muted);
    background: var(--ob-color-bg-soft);
    border: 1px solid var(--ob-color-border);
    border-radius: 14px;
    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.65;
    font-style: normal;
}


/* ---------- 11. Tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {

    body.woocommerce-order-received
    .ob-checkout-grid.et_pb_row {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .ob-order-success-card {
        position: static;
        padding: 26px;
    }

    body.woocommerce-order-received
    .ob-checkout-review {
        padding: 26px;
    }
}


/* ---------- 12. Mobile ---------- */

@media (max-width: 767px) {

    .ob-order-success-heading h1 {
        font-size: clamp(34px, 10vw, 41px);
        line-height: 1.04;
    }

    .ob-order-success-heading-intro {
        font-size: 15px;
        line-height: 1.58;
    }

    body.woocommerce-order-received
    .ob-checkout-grid.et_pb_row {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .ob-order-success-card {
        position: static;
        padding: 20px;
        border-radius: 22px;
    }

    .ob-order-success-card h2 {
        font-size: 28px;
    }

    body.woocommerce-order-received
    .ob-checkout-review {
        padding: 18px;
        border-radius: 22px;
    }

    body.woocommerce-order-received
    .woocommerce-order-overview {
        grid-template-columns: minmax(0, 1fr);
        padding: 10px !important;
    }

    body.woocommerce-order-received
    .woocommerce-order-overview li {
        padding: 11px 8px !important;
        border-right: 0 !important;
        border-bottom: 1px solid var(--ob-color-border) !important;
    }

    body.woocommerce-order-received
    .woocommerce-order-overview li:last-child {
        border-bottom: 0 !important;
    }

    body.woocommerce-order-received
    .ob-checkout-review
    .woocommerce-order-details__title,

    body.woocommerce-order-received
    .ob-checkout-review
    .woocommerce-column__title {
        font-size: 27px;
    }

    body.woocommerce-order-received
    .ob-checkout-review
    table.shop_table
    .product-name {
        width: 67%;
    }

    body.woocommerce-order-received
    .ob-checkout-review
    table.shop_table
    .product-total {
        width: 33%;
    }
}


/* ---------- 13. Tres petits mobiles ---------- */

@media (max-width: 390px) {

    .ob-order-success-card,
    body.woocommerce-order-received
    .ob-checkout-review {
        padding: 16px;
    }

    .ob-order-success-icon {
        width: 52px;
        height: 52px;
    }
}
/* ==========================================================================
   PAGE PLANNING & RÉSERVATION — PLANNING SIMPLE
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Section et ligne Divi
   -------------------------------------------------------------------------- */

.ob-planning-week-section.et_pb_section {
    padding-top: 84px;
    padding-bottom: 92px;
    background: var(--ob-color-bg);
}

.ob-planning-week-row.et_pb_row {
    width: min(88%, var(--ob-container-width)) !important;
    max-width: var(--ob-container-width) !important;
    margin-inline: auto !important;
    padding: 0 !important;
}


/* --------------------------------------------------------------------------
   2. Conteneur général
   -------------------------------------------------------------------------- */

.ob-simple-planning {
    width: 100%;
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
}

.ob-simple-planning,
.ob-simple-planning * {
    box-sizing: border-box;
}


/* --------------------------------------------------------------------------
   3. En-tête
   -------------------------------------------------------------------------- */

.ob-simple-planning__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 42px;
    margin-bottom: 38px;
}

.ob-simple-planning__heading {
    max-width: 780px;
}

.ob-simple-planning__eyebrow {
    margin: 0 0 14px;
    padding: 0;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ob-simple-planning h2 {
    margin: 0;
    padding: 0;
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: clamp(42px, 5vw, 64px);
    line-height: 1.04;
    font-weight: 400;
    letter-spacing: -0.035em;
}

.ob-simple-planning__intro {
    max-width: 720px;
    margin: 20px 0 0;
    padding: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 17px;
    line-height: 1.7;
}

.ob-simple-planning__room {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 38px;
    margin: 0;
    padding: 9px 15px;
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary-wash);
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}


/* --------------------------------------------------------------------------
   4. Grille des jours
   -------------------------------------------------------------------------- */

.ob-simple-planning__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 24px;
}


/* --------------------------------------------------------------------------
   5. Carte d’un jour
   -------------------------------------------------------------------------- */

.ob-plan-day {
    min-width: 0;
    padding: 25px 26px;
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    background: var(--ob-color-white);
    box-shadow: var(--ob-shadow-card);
}

.ob-plan-day--wide {
    grid-column: 1 / -1;
}

.ob-plan-day h3 {
    margin: 0 0 17px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--ob-color-border);
    color: var(--ob-color-text);
    font-family: var(--ob-font-heading);
    font-size: 34px;
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: -0.02em;
}


/* --------------------------------------------------------------------------
   6. Liste des cours
   -------------------------------------------------------------------------- */

.ob-plan-day__list {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.ob-plan-course {
    display: grid;
    grid-template-columns: minmax(104px, 0.72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: 18px;
    margin: 0;
    padding: 15px 0;
}

.ob-plan-course:first-child {
    padding-top: 2px;
}

.ob-plan-course:last-child {
    padding-bottom: 2px;
}

.ob-plan-course + .ob-plan-course {
    border-top: 1px solid var(--ob-color-border);
}


/* --------------------------------------------------------------------------
   7. Horaire et informations
   -------------------------------------------------------------------------- */

.ob-plan-course__time {
    display: block;
    color: var(--ob-color-primary);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.4;
    font-weight: 800;
    white-space: nowrap;
}

.ob-plan-course__info {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.ob-plan-course__info strong {
    color: var(--ob-color-text);
    font-family: var(--ob-font-body);
    font-size: 15px;
    line-height: 1.35;
    font-weight: 800;
}

.ob-plan-course__info span {
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.45;
}


/* --------------------------------------------------------------------------
   8. Message d’information
   -------------------------------------------------------------------------- */

.ob-simple-planning__notice {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-top: 26px;
    padding: 17px 19px;
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-md);
    background: var(--ob-color-bg-soft);
}

.ob-simple-planning__notice-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 23px;
    height: 23px;
    border-radius: var(--ob-radius-pill);
    background: var(--ob-color-primary);
    color: var(--ob-color-white);
    font-family: var(--ob-font-heading);
    font-size: 14px;
    line-height: 1;
    font-weight: 700;
}

.ob-simple-planning__notice p {
    margin: 0;
    padding: 0;
    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.6;
}


/* --------------------------------------------------------------------------
   9. Tablette
   -------------------------------------------------------------------------- */

@media (min-width: 768px) and (max-width: 980px) {

    .ob-planning-week-section.et_pb_section {
        padding-top: 72px;
        padding-bottom: 78px;
    }

    .ob-planning-week-row.et_pb_row {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;
    }

    .ob-simple-planning__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 22px;
        margin-bottom: 30px;
    }

    .ob-simple-planning__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    .ob-plan-day {
        padding: 23px 24px;
    }

    .ob-plan-course {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .ob-plan-course__time {
        white-space: normal;
    }
}


/* --------------------------------------------------------------------------
   10. Mobile
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {

    .ob-planning-week-section.et_pb_section {
        padding-top: 54px;
        padding-bottom: 60px;
    }

    .ob-planning-week-row.et_pb_row {
        width: var(--ob-row-mobile-width) !important;
        max-width: none !important;
    }

    .ob-simple-planning__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
        margin-bottom: 25px;
    }

    .ob-simple-planning h2 {
        font-size: clamp(38px, 11vw, 48px);
        line-height: 1.02;
    }

    .ob-simple-planning__intro {
        margin-top: 16px;
        font-size: 15px;
        line-height: 1.65;
    }

    .ob-simple-planning__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .ob-plan-day,
    .ob-plan-day--wide {
        grid-column: auto;
    }

    .ob-plan-day {
        padding: 20px;
        border-radius: 22px;
    }

    .ob-plan-day h3 {
        margin-bottom: 14px;
        padding-bottom: 13px;
        font-size: 30px;
    }

    .ob-plan-course {
        grid-template-columns: minmax(92px, 0.75fr) minmax(0, 1.25fr);
        gap: 14px;
        padding: 13px 0;
    }

    .ob-plan-course__time {
        font-size: 12.5px;
        white-space: normal;
    }

    .ob-plan-course__info strong {
        font-size: 14px;
    }

    .ob-plan-course__info span {
        font-size: 12.5px;
    }

    .ob-simple-planning__notice {
        padding: 15px;
    }
}


/* --------------------------------------------------------------------------
   11. Très petits écrans
   -------------------------------------------------------------------------- */

@media (max-width: 420px) {

    .ob-plan-course {
        grid-template-columns: minmax(0, 1fr);
        gap: 3px;
    }

    .ob-plan-course__time {
        color: var(--ob-color-primary-dark);
    }
}

/* =========================================================
   PLANNING — SÉPARATION ORIBIRD / PARTENAIRES
   ========================================================= */

.ob-planning-oribird-section {
    background: var(--ob-color-bg);
    padding-top: 70px !important;
    padding-bottom: 78px !important;
}

.ob-planning-partners-section {
    background: rgba(168, 178, 161, 0.13);
    padding-top: 76px !important;
    padding-bottom: 82px !important;
}


/* Accent partenaires */

.ob-planning-partners-section .ob-simple-planning__eyebrow,
.ob-planning-partners-section .ob-plan-course__time {
    color: #6f7b69;
}

.ob-planning-partners-section .ob-simple-planning__room {
    color: #65705f;
    background: rgba(168, 178, 161, 0.18);
    border-color: rgba(168, 178, 161, 0.34);
}

.ob-planning-partners-section .ob-simple-planning__notice-icon {
    background: var(--ob-color-secondary);
}


/* CTA partenaires */

.ob-simple-planning__actions {
    margin-top: 28px;
}

.ob-simple-planning__actions a {
    text-decoration: none !important;
}


/* Responsive */

@media (max-width: 980px) {

    .ob-planning-oribird-section,
    .ob-planning-partners-section {
        padding-top: 62px !important;
        padding-bottom: 68px !important;
    }
}


@media (max-width: 767px) {

    .ob-planning-oribird-section {
        padding-top: 44px !important;
        padding-bottom: 50px !important;
    }

    .ob-planning-partners-section {
        padding-top: 50px !important;
        padding-bottom: 56px !important;
    }

    .ob-simple-planning__actions .ob-btn-primary {
        display: flex;
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

/* =========================================================
   ORIBIRD - PAGE STUDIO
   Équipe principale + intervenantes partenaires
   Compatible avec les classes disponibles dans Divi :
   section, ligne et modules uniquement
   ========================================================= */


/* ---------- 1. Reset Divi commun ---------- */

.ob-studio-core-grid.et_pb_row > .et_pb_column,
.ob-studio-partners-grid.et_pb_row > .et_pb_column {
    min-width: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    float: none !important;
}

.ob-studio-core-grid .et_pb_module,
.ob-studio-partners-grid .et_pb_module {
    margin-bottom: 0 !important;
}


/* ---------- 2. Équipe principale Ori Bird ---------- */

.ob-studio-core-team-section {
    background: var(--ob-color-bg);
}

.ob-studio-core-grid.et_pb_row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px;
    align-items: start;
}

.ob-studio-core-grid.et_pb_row > .et_pb_column {
    width: auto !important;
}

.ob-studio-core-grid .ob-studio-teacher-image img {
    height: 300px !important;
}


/* ---------- 3. Discipline ou fonction ---------- */

.ob-studio-teacher-content .ob-studio-teacher-role {
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: var(--ob-color-primary-dark) !important;
    font-family: var(--ob-font-body);
    font-size: 12px !important;
    line-height: 1.4 !important;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}


/* ---------- 4. Section partenaires ---------- */

.ob-studio-partners-section {
    background: var(--ob-color-bg-soft);
}

.ob-studio-partners-grid.et_pb_row {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 28px;
    align-items: stretch;
}

.ob-studio-partners-grid.et_pb_row::after {
    display: none !important;
}

.ob-studio-partners-grid.et_pb_row > .et_pb_column {
    flex: 0 1 calc((100% - 84px) / 4);
}


/* Les cartes sont directement les colonnes Divi.
   Elles sont ciblées depuis la classe de la ligne. */

.ob-studio-partners-grid.et_pb_row > .et_pb_column {
    display: flex !important;
    flex-direction: column;
    width: auto !important;
    min-height: 100%;
    padding: 18px !important;
    background: var(--ob-color-white);
    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-card);
    box-shadow: var(--ob-shadow-card);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}

.ob-studio-partners-grid.et_pb_row > .et_pb_column:hover {
    transform: translateY(-4px);
    border-color: rgba(211, 163, 107, 0.38);
    box-shadow: var(--ob-shadow-card-hover);
}

.ob-studio-partners-grid .ob-studio-teacher-image,
.ob-studio-partners-grid .ob-studio-teacher-image .et_pb_image_wrap {
    width: 100%;
}

.ob-studio-partners-grid .ob-studio-teacher-image img {
    height: 230px !important;
    box-shadow: none;
}

.ob-studio-partners-grid .ob-studio-teacher-content {
    flex: 1;
    margin-top: 18px;
    padding: 0 4px 4px;
}


/* ---------- 5. Liens de contact ---------- */

.ob-studio-teacher-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--ob-color-border);
}

.ob-studio-teacher-links a {
    color: var(--ob-color-primary-dark);
    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.4;
    font-weight: 800;
    text-decoration: none;
}

.ob-studio-teacher-links a:hover {
    color: var(--ob-color-text);
    text-decoration: underline;
}


/* ---------- 6. Tablette ---------- */

@media (min-width: 768px) and (max-width: 980px) {

    .ob-studio-core-grid.et_pb_row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    }

    .ob-studio-partners-grid.et_pb_row {
    gap: 20px;
    }

    .ob-studio-partners-grid.et_pb_row > .et_pb_column {
    flex-basis: calc((100% - 20px) / 2);
    }

    .ob-studio-core-grid .ob-studio-teacher-image img {
        height: 250px !important;
    }

    .ob-studio-partners-grid.et_pb_row > .et_pb_column {
        padding: 16px !important;
    }

    .ob-studio-partners-grid .ob-studio-teacher-image img {
        height: 210px !important;
    }
}


/* ---------- 7. Mobile ---------- */

@media (max-width: 767px) {

    .ob-studio-core-grid.et_pb_row {
        grid-template-columns: 1fr;
    }

    .ob-studio-partners-grid.et_pb_row {
        gap: 16px;
    }

    .ob-studio-partners-grid.et_pb_row > .et_pb_column {
        flex-basis: 100%;
    }

    .ob-studio-core-grid.et_pb_row {
        gap: 26px;
    }

    .ob-studio-partners-grid.et_pb_row {
        gap: 16px;
    }

    .ob-studio-core-grid .ob-studio-teacher-image img {
        height: 230px !important;
    }

    .ob-studio-partners-grid.et_pb_row > .et_pb_column {
        padding: 14px !important;
        border-radius: 24px;
    }

    .ob-studio-partners-grid.et_pb_row > .et_pb_column:hover {
        transform: none;
    }

    .ob-studio-partners-grid .ob-studio-teacher-image img {
        height: 205px !important;
        border-radius: 20px !important;
    }

    .ob-studio-partners-grid .ob-studio-teacher-content {
        margin-top: 16px;
        padding: 0 4px 6px;
    }

    .ob-studio-teacher-links {
        gap: 8px 14px;
        margin-top: 16px;
        padding-top: 14px;
    }

    .ob-studio-teacher-links a {
        font-size: 12.5px;
    }
}


/* ---------- 8. Très petits mobiles ---------- */

@media (max-width: 390px) {

    .ob-studio-partners-grid.et_pb_row > .et_pb_column {
        padding: 12px !important;
    }

    .ob-studio-partners-grid .ob-studio-teacher-image img {
        height: 190px !important;
    }
}

/* =========================================================
   ORIBIRD — FICHES PRODUITS CARTES & FORMULES
   Template Divi Theme Builder
   ========================================================= */


/* =========================================================
   1. PAGE / RESET DIVI
   ========================================================= */

.ob-product-page.et_pb_section {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 72px 0 90px !important;
    background: var(--ob-color-bg-soft) !important;
}


/*
 * La ligne Divi est elle-même la carte.
 * On force son centrage pour neutraliser d'anciens styles
 * WooCommerce / thème qui peuvent la décaler.
 */

.ob-product-page
> .et_pb_row.ob-product-card {
    display: block !important;
    float: none !important;

    width: min(90%, 880px) !important;
    max-width: 880px !important;

    margin: 0 auto !important;
    padding: 54px 58px !important;

    background: var(--ob-color-white) !important;
    border: 1px solid var(--ob-color-border) !important;
    border-radius: var(--ob-radius-lg) !important;
    box-shadow: var(--ob-shadow-soft) !important;
}


/* Neutralise la colonne Divi. */

.ob-product-card.et_pb_row > .et_pb_column {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* Empêche les pseudo-éléments Divi d'affecter le layout. */

.ob-product-card.et_pb_row::after {
    display: none !important;
}


/* Cohérence générale. */

.ob-product-page *,
.ob-product-page *::before,
.ob-product-page *::after {
    box-sizing: border-box;
}


/* Suppression des marges Divi automatiques. */

.ob-product-card .et_pb_module {
    margin-bottom: 0;
}


/* =========================================================
   2. RETOUR AUX TARIFS
   ========================================================= */

.ob-product-back {
    margin: 0 0 28px !important;
}

.ob-product-back p {
    margin: 0 !important;
    padding: 0 !important;
}

.ob-product-back a {
    display: inline-flex;
    align-items: center;

    color: var(--ob-color-primary-dark) !important;

    font-family: var(--ob-font-body);
    font-size: 13px;
    line-height: 1.3;
    font-weight: 700;

    text-decoration: none !important;

    transition:
        color 0.2s ease,
        transform 0.2s ease;
}

.ob-product-back a:hover {
    color: var(--ob-color-text) !important;
    transform: translateX(-3px);
}


/* =========================================================
   3. TITRE PRODUIT
   ========================================================= */

.ob-product-title {
    margin: 0 0 10px !important;
}

.ob-product-title h1,
.ob-product-title .product_title,
.ob-product-title .et_pb_module_inner h1 {
    margin: 0 !important;
    padding: 0 !important;

    color: var(--ob-color-text) !important;

    font-family: var(--ob-font-heading) !important;
    font-size: clamp(42px, 5vw, 56px) !important;
    line-height: 1.03 !important;
    font-weight: 400 !important;
    letter-spacing: -0.035em !important;
}


/* =========================================================
   4. PRIX
   ========================================================= */

.ob-product-price {
    margin: 0 0 28px !important;
}

.ob-product-price .price,
.ob-product-price p.price,
.ob-product-price .woocommerce-Price-amount {
    color: var(--ob-color-primary-dark) !important;

    font-family: var(--ob-font-body) !important;
    font-size: 36px !important;
    line-height: 1.05 !important;
    font-weight: 800 !important;
    letter-spacing: -0.035em !important;
}

.ob-product-price del,
.ob-product-price ins {
    text-decoration-thickness: 1px;
}


/* =========================================================
   5. DESCRIPTION COURTE
   ========================================================= */

.ob-product-summary {
    max-width: 680px;
    margin: 0 0 30px !important;

    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
}

.ob-product-summary p,
.ob-product-summary li,
.ob-product-summary .et_pb_module_inner {
    color: var(--ob-color-muted) !important;

    font-family: var(--ob-font-body) !important;
    font-size: 16.5px !important;
    line-height: 1.68 !important;
}

.ob-product-summary p {
    margin: 0 0 6px !important;
    padding: 0 !important;
}

.ob-product-summary p:last-child {
    margin-bottom: 0 !important;
}

.ob-product-summary strong {
    color: var(--ob-color-text);
    font-weight: 700;
}


/* =========================================================
   6. BOUTON AJOUTER AU PANIER
   ========================================================= */

.ob-product-buy {
    margin: 0 0 42px !important;
}

.ob-product-buy form.cart {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* Pas de quantité pour les cartes/formules. */

.ob-product-buy .quantity {
    display: none !important;
}


/* Bouton principal. */

.ob-product-buy .single_add_to_cart_button,
.ob-product-buy button.button,
.ob-product-buy .button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    float: none !important;

    width: auto !important;
    min-width: 190px;
    min-height: 52px;

    margin: 0 !important;
    padding: 14px 28px !important;

    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary) !important;

    border: 2px solid var(--ob-color-primary) !important;
    border-radius: var(--ob-radius-pill) !important;

    font-family: var(--ob-font-body) !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;

    box-shadow: none !important;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease !important;
}

.ob-product-buy .single_add_to_cart_button:hover,
.ob-product-buy button.button:hover,
.ob-product-buy .button:hover {
    color: var(--ob-color-white) !important;
    background: var(--ob-color-primary-dark) !important;
    border-color: var(--ob-color-primary-dark) !important;
    transform: translateY(-2px);
}


/* Neutralise la flèche automatique Divi. */

.ob-product-buy .button::after,
.ob-product-buy button.button::after,
.ob-product-buy .single_add_to_cart_button::after {
    display: none !important;
    content: none !important;
}


/* =========================================================
   7. PAIEMENTS EXPRESS
   On les masque UNIQUEMENT sur cette fiche produit.
   Ils restent disponibles au checkout.
   ========================================================= */

/* WooPayments */

.ob-product-buy #wcpay-payment-request-wrapper,
.ob-product-buy #wcpay-payment-request-button-separator,
.ob-product-buy .wcpay-payment-request-wrapper,
.ob-product-buy .wcpay-express-checkout-wrapper,

/* Stripe */

.ob-product-buy #wc-stripe-payment-request-wrapper,
.ob-product-buy #wc-stripe-payment-request-button-separator,
.ob-product-buy .wc-stripe-payment-request-wrapper,
.ob-product-buy .wc-stripe-product-checkout-container,

/* Woo Blocks / Express Checkout */

.ob-product-buy .wc-block-components-express-payment,
.ob-product-buy .wc-block-components-express-payment__event-buttons,
.ob-product-buy .wc-block-components-express-payment-continue-rule,

/* Amazon Pay */

.ob-product-buy #pay_with_amazon,
.ob-product-buy .wc-amazon-payments-advanced-populated,
.ob-product-buy .amazon-payments-advanced-widget,

/* Sécurité si un plugin ajoute une variante */

.ob-product-buy [class*="express-payment"],
.ob-product-buy [id*="express-payment"] {
    display: none !important;
}


/*
 * Klarna peut injecter son message hors du module Divi.
 * :has(.ob-product-page) garantit que l'on ne le masque
 * que sur les fiches utilisant CE template.
 */

body:has(.ob-product-page) klarna-placement,
body:has(.ob-product-page) .klarna-onsite-messaging,
body:has(.ob-product-page) [data-key^="credit-promotion"] {
    display: none !important;
}


/* =========================================================
   8. SÉPARATEUR
   ========================================================= */

.ob-product-separator {
    height: 1px !important;
    margin: 0 0 42px !important;
    padding: 0 !important;

    overflow: hidden;

    background: var(--ob-color-border);
}

.ob-product-separator .et_pb_divider_internal,
.ob-product-separator .et_pb_module_inner {
    display: none !important;
}


/* =========================================================
   9. TITRE "COMMENT ÇA FONCTIONNE ?"
   ========================================================= */

.ob-product-details-title {
    margin: 0 0 24px !important;
}

.ob-product-details-title .ob-section-kicker {
    margin: 0 0 8px !important;
    padding: 0 !important;

    color: var(--ob-color-primary-dark);

    font-family: var(--ob-font-body);
    font-size: 11.5px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.ob-product-details-title h2 {
    margin: 0 !important;
    padding: 0 !important;

    color: var(--ob-color-text);

    font-family: var(--ob-font-heading);
    font-size: clamp(32px, 4vw, 40px);
    line-height: 1.07;
    font-weight: 400;
    letter-spacing: -0.03em;
}


/* =========================================================
   10. DESCRIPTION COMPLÈTE
   ========================================================= */

.ob-product-description {
    max-width: 720px;
    margin: 0 0 34px !important;

    color: var(--ob-color-muted);
    font-family: var(--ob-font-body);
}

.ob-product-description,
.ob-product-description p,
.ob-product-description li {
    color: var(--ob-color-muted) !important;

    font-family: var(--ob-font-body) !important;
    font-size: 15.5px !important;
    line-height: 1.68 !important;
}

.ob-product-description p {
    margin: 0 0 16px !important;
    padding: 0 !important;
}

.ob-product-description p:last-child {
    margin-bottom: 0 !important;
}

.ob-product-description strong {
    color: var(--ob-color-text);
    font-weight: 700;
}


/* Listes propres si utilisées dans la description produit. */

.ob-product-description ul {
    margin: 20px 0 0 !important;
    padding: 18px 0 0 !important;

    list-style: none !important;

    border-top: 1px solid var(--ob-color-border);
}

.ob-product-description li {
    position: relative;

    margin: 0 0 9px !important;
    padding: 0 0 0 22px !important;
}

.ob-product-description li:last-child {
    margin-bottom: 0 !important;
}

.ob-product-description li::before {
    content: "";

    position: absolute;
    top: 0.72em;
    left: 2px;

    width: 7px;
    height: 7px;

    border-radius: 50%;
    background: var(--ob-color-primary);
}


/* =========================================================
   11. BLOC RÉASSURANCE
   ========================================================= */

.ob-product-footer {
    margin: 0 !important;
}

.ob-product-reassurance {
    display: flex;
    flex-direction: column;
    gap: 5px;

    width: 100%;

    padding: 20px 22px;

    background: var(--ob-color-primary-wash);
    border: 1px solid var(--ob-color-primary-border-soft);
    border-radius: var(--ob-radius-md);
}

.ob-product-reassurance strong {
    color: var(--ob-color-text);

    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.35;
    font-weight: 800;
}

.ob-product-reassurance span {
    color: var(--ob-color-muted);

    font-family: var(--ob-font-body);
    font-size: 13.5px;
    line-height: 1.5;
}


/* =========================================================
   12. NETTOYAGE WOOCOMMERCE
   ========================================================= */

.ob-product-page .product_meta,
.ob-product-page .woocommerce-tabs,
.ob-product-page .related,
.ob-product-page .upsells,
.ob-product-page .stock,
.ob-product-page table.variations,
.ob-product-page .variations {
    display: none !important;
}


/* =========================================================
   13. MESSAGE APRÈS AJOUT AU PANIER
   ========================================================= */

body:has(.ob-product-page) .woocommerce-message {
    width: min(90%, 880px);
    margin: 20px auto !important;
    padding: 16px 20px !important;

    color: var(--ob-color-text);
    background: var(--ob-color-white);

    border: 1px solid var(--ob-color-border);
    border-radius: var(--ob-radius-md);

    font-family: var(--ob-font-body);
    font-size: 14px;
    line-height: 1.5;

    box-shadow: var(--ob-shadow-card);
}


/* =========================================================
   14. TABLETTE
   ========================================================= */

@media (max-width: 980px) {

    .ob-product-page.et_pb_section {
        padding: 54px 0 70px !important;
    }

    .ob-product-page
    > .et_pb_row.ob-product-card {
        width: var(--ob-row-tablet-width) !important;
        max-width: var(--ob-row-tablet-max) !important;

        padding: 44px 42px !important;

        border-radius: 28px !important;
    }

    .ob-product-title h1,
    .ob-product-title .product_title,
    .ob-product-title .et_pb_module_inner h1 {
        font-size: 44px !important;
    }

    .ob-product-price .price,
    .ob-product-price p.price,
    .ob-product-price .woocommerce-Price-amount {
        font-size: 32px !important;
    }
}


/* =========================================================
   15. MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .ob-product-page.et_pb_section {
        padding: 28px 0 48px !important;
    }

    .ob-product-page
    > .et_pb_row.ob-product-card {
        width: calc(100% - 28px) !important;
        max-width: 430px !important;

        padding: 30px 22px !important;

        border-radius: 24px !important;
    }


    /* Retour */

    .ob-product-back {
        margin-bottom: 22px !important;
    }


    /* Titre */

    .ob-product-title {
        margin-bottom: 8px !important;
    }

    .ob-product-title h1,
    .ob-product-title .product_title,
    .ob-product-title .et_pb_module_inner h1 {
        font-size: clamp(34px, 10vw, 40px) !important;
        line-height: 1.04 !important;
    }


    /* Prix */

    .ob-product-price {
        margin-bottom: 22px !important;
    }

    .ob-product-price .price,
    .ob-product-price p.price,
    .ob-product-price .woocommerce-Price-amount {
        font-size: 29px !important;
    }


    /* Résumé */

    .ob-product-summary {
        margin-bottom: 26px !important;
    }

    .ob-product-summary p,
    .ob-product-summary li,
    .ob-product-summary .et_pb_module_inner {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }


    /* CTA pleine largeur */

    .ob-product-buy {
        margin-bottom: 34px !important;
    }

    .ob-product-buy .single_add_to_cart_button,
    .ob-product-buy button.button,
    .ob-product-buy .button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 50px !important;

        padding: 13px 20px !important;
    }


    /* Partie explication */

    .ob-product-separator {
        margin-bottom: 32px !important;
    }

    .ob-product-details-title {
        margin-bottom: 20px !important;
    }

    .ob-product-details-title .ob-section-kicker {
        font-size: 10.5px;
    }

    .ob-product-details-title h2 {
        font-size: 31px;
        line-height: 1.08;
    }

    .ob-product-description,
    .ob-product-description p,
    .ob-product-description li {
        font-size: 14.5px !important;
        line-height: 1.62 !important;
    }


    /* Réassurance */

    .ob-product-reassurance {
        padding: 18px;
    }
}


/* =========================================================
   16. TRÈS PETITS MOBILES
   ========================================================= */

@media (max-width: 390px) {

    .ob-product-page
    > .et_pb_row.ob-product-card {
        width: calc(100% - 20px) !important;
        padding: 26px 18px !important;
    }

    .ob-product-title h1,
    .ob-product-title .product_title,
    .ob-product-title .et_pb_module_inner h1 {
        font-size: 32px !important;
    }

    .ob-product-details-title h2 {
        font-size: 28px;
    }
}