﻿
/* ==================================================
   OUR PACKAGES
   Shared stylesheet for CIC and CAQ
   ================================================== */

.our-packages {
    --op-green: #07852d;
    --op-dark-green: #00542b;
    --op-gold: #cc8900;
    --op-gray: #525861;
    --op-border: #d8e0dc;
    width: 100%;
    max-width: 800px;
    margin: -10px auto 0;
    padding: 0 5px;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.35;
    color: #17211e;
    text-align: left;
}

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

    .our-packages svg {
        display: block;
    }

    .our-packages .op-sale-amount {
        white-space: nowrap;
    }

    /* ==================================================
   HEADER
   ================================================== */

    .our-packages .op-header {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 70px;
        padding: 5px 85px 17px;
        text-align: center;
        overflow: hidden;
    }

    .our-packages .op-header-center {
        position: relative;
        z-index: 2;
    }

    .our-packages .op-step {
        display: inline-block;
        width: auto;
        margin: 0 auto 12px;
        padding: 3px 10px !important;
        background-color: #087838;
        color: #fff;
        border-radius: 0;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.2;
        text-align: center;
        white-space: nowrap;
        box-sizing: border-box;
    }

    .our-packages .op-header h2 {
        margin: 0 0 0px;
        padding: 0;
        color: var(--op-dark-green);
        font-size: 54px;
        line-height: 1.05;
        font-weight: 600;
        letter-spacing: 0px;
        font-family: Teko;
    }

    .our-packages .op-header p {
        margin: 0;
        font-size: 15px;
        line-height: 1.4;
    }

    .our-packages .op-forest-left,
    .our-packages .op-forest-right {
        position: absolute;
        bottom: 4px;
        width: 90px;
    }

    .our-packages .op-forest-left {
        left: 32px;
    }

    .our-packages .op-forest-right {
        right: 32px;
    }

    .our-packages .op-forest {
        width: 100%;
        height: auto;
    }

    /* ==================================================
       BENEFITS - INCLUDED IN EVERY RENTAL PACKAGE
       ================================================== */

    .our-packages .op-benefits {
        display: block;
        padding: 14px 18px 17px;
        background: #fff;
        border: 1px solid var(--op-border);
        border-left: 6px solid #079a30;
        border-radius: 0;
    }

    .our-packages .op-benefits-title {
        display: block;
        margin: 0 0 12px;
        color: #00542b;
        font-size: 20px;
        font-weight: 800;
        line-height: 1.3;
        text-align: left;
        white-space: normal;
    }

    .our-packages .op-benefits-list {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
        max-width: none;
    }

    .our-packages .op-benefit {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 11px;
        min-width: 0;
        padding: 0 18px;
        border-left: 1px solid #d5dce0;
        text-align: left;
    }

        .our-packages .op-benefit:first-child {
            border-left: 0;
            padding-left: 4px;
        }

    .our-packages .op-benefit-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
        border-radius: 50%;
        background: #e4f4e9;
        color: #079a30;
    }

        .our-packages .op-benefit-icon svg {
            width: 25px;
            height: 25px;
            flex: none;
            color: inherit;
        }

    .our-packages .op-benefit-copy {
        display: flex;
        flex-direction: column;
        min-width: 0;
        gap: 2px;
    }

        .our-packages .op-benefit-copy strong {
            font-size: 15px;
            font-weight: 700;
            line-height: 1.25;
        }

        .our-packages .op-benefit-copy small {
            color: #57615b;
            font-size: 14px;
            line-height: 1.3;
        }

    /* ==================================================
   PACKAGE GRID
   ================================================== */

    .our-packages .op-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        align-items: stretch;
        gap: 10px;
        margin: 22px 0 12px;
    }

    .our-packages .op-grid--three {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    /* ==================================================
   PACKAGE CARD
   ================================================== */

    .our-packages .op-card {
        position: relative;
        display: flex;
        flex-direction: column;
        min-width: 0;
        min-height: 270px;
        padding: 16px 15px 13px;
        background: #fff;
        border: 1px solid var(--op-border);
        border-radius: 0;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.045);
    }

    .our-packages .op-card-top {
        min-height: 125px;
    }

    .our-packages .op-card-heading h3 {
        margin: 0;
        padding: 0;
        font-size: 29px;
        font-family: Teko;
        line-height: 1;
        font-weight: 800;
    }

    /* GOLD et PLATINUM - Descendre le titre et le prix de 5px */
    .our-packages .op-card--gold .op-card-top,
    .our-packages .op-card--platinum .op-card-top {
        transform: translateY(5px);
    }

    .our-packages .op-card-heading p {
        margin: 2px 0 8px;
        font-size: 14px;
    }

    .our-packages .op-price-box {
        margin-top: 7px;
    }

    /* STARTER - Descendre FREE et for 12 months de 5px */

    .our-packages .op-card--starter .op-price-box {
        transform: translateY(6px);
    }

    .our-packages .op-price-line {
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 4px;
    }

        .our-packages .op-price-line strong {
            font-size: 32px;
            font-weight: 800;
        }

        .our-packages .op-price-line span {
            font-size: 16px;
            font-weight: 700;
        }

    .our-packages .op-monthly {
        margin-top: -5px;
        margin-bottom: 13px;
        font-size: 15px;
        color: #333;
    }

    /* GOLD */

    .our-packages .op-card--gold h3,
    .our-packages .op-card--gold .op-price-line {
        color: var(--op-gold);
    }

    /* PLATINUM */

    .our-packages .op-card--platinum h3,
    .our-packages .op-card--platinum .op-price-line {
        color: var(--op-gray);
    }

    /* DIAMOND */

    .our-packages .op-card--diamond h3,
    .our-packages .op-card--diamond .op-price-line {
        color: #0E6E8C;
    }

    /* DIAMOND - MAXIMUM VISIBILITY */

    .our-packages .op-card--diamond {
        padding-top: 20px;
        border: 1px solid #0E6E8C;
        background: #F2F8FA;
    }

    .our-packages .op-diamond-badge {
        position: absolute;
        top: -9px;
        left: 11px;
        padding: 2px 9px;
        border-radius: 0;
        background: #0E6E8C;
        color: #fff;
        font-size: 13px;
        line-height: 1.1;
        font-weight: 800;
        white-space: nowrap;
        z-index: 2;
    }

/* Conteneur de sélection de province */

.op-province-container {
    width: 100%;
    box-sizing: border-box;
    background-color: white;
    padding: 30px 10px 20px;
}

/* ==================================================
   STARTER - WESTERN CANADA
   ================================================== */

.our-packages .op-card--starter {
    border-color: #21a64a;
    background: linear-gradient( 145deg, #f6fff8 0%, #ecf7ed 100% );
    padding-top: 20px;
}

    .our-packages .op-card--starter h3 {
        color: #004d2a;
    }

.our-packages .op-new-badge {
    position: absolute;
    top: -9px;
    left: 11px;
    padding: 2px 9px;
    border-radius: 0;
    background: #006a2d;
    color: #fff;
    font-size: 13px;
    line-height: 1.1;
    font-weight: 800;
}

.our-packages .op-free-price {
    color: #00692b;
    font-size: 30px;
    line-height: 1;
    font-weight: 800;
}

.our-packages .op-free-duration {
    margin-top: 3px;
    color: #004922;
    font-size: 15px;
    font-weight: 700;
}

/* ==================================================
   SEARCH PLACEMENT
   ================================================== */

.our-packages .op-placement {
    padding: 8px 0 25px;
    border-top: 1px solid #e8ecea;
}

.our-packages .op-card--starter .op-placement {
    padding-bottom: 10px;
}

.our-packages .op-placement-text span {
    display: block;
    font-size: 14px;
    line-height: 1.4;
}

.our-packages .op-placement-text strong {
    display: block;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.4;
}

.our-packages .op-bars {
    display: flex;
    gap: 5px;
    margin-top: 10px;
}

    .our-packages .op-bars span {
        flex: 1;
        min-width: 0;
        height: 14px;
        border-radius: 0;
        background: #cfd3d8;
    }

.our-packages .op-card--gold .op-bar-active {
    background: #d49b12;
}

.our-packages .op-card--platinum .op-bar-active {
    background: #555b65;
}

/* DIAMOND - Search placement */

.our-packages .op-card--diamond .op-bar-active {
    background: #0E6E8C;
}

/* STARTER - Search placement */

.our-packages .op-card--starter .op-bar-active {
    background: #079a30;
}


/* ==================================================
   STARTER DESCRIPTION
   ================================================== */

.our-packages .op-starter-description {
    margin: 5px 0 14px;
    font-size: 14px;
    line-height: 1.3;
}

.our-packages .op-details {
    display: inline;
}

    .our-packages .op-details summary {
        display: inline;
        cursor: pointer;
        color: #006b34;
        text-decoration: underline;
    }

    .our-packages .op-details p {
        margin: 6px 0;
        font-size: 14px;
        line-height: 1.4;
    }

/* ==================================================
   PACKAGE BUTTONS
   ================================================== */

.our-packages .op-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 33px;
    margin-top: auto;
    padding: 10px 9px 6px;
    border: 1px solid #009b35;
    border-radius: 0;
    background: #fff;
    color: #00642b;
    text-align: center;
    font-family: Teko;
    font-size: 21px;
    line-height: 1;
    font-weight: 500;
    text-decoration: none;
    transition: background .15s ease;
}

    .our-packages .op-button:hover {
        background: #edf8ef;
        color: #005427;
        text-decoration: none;
    }

/* DIAMOND - 4 packages (STARTER displayed): white button */
.our-packages .op-card--diamond .op-button {
    background: #fff;
    border-color: #0E6E8C;
    color: #0E6E8C;
}

    .our-packages .op-card--diamond .op-button:hover {
        background: #e5f2f7;
        border-color: #0E6E8C;
        color: #0E6E8C;
    }

/* DIAMOND - 3 packages (no STARTER): blue button */
.our-packages .op-grid--three .op-card--diamond .op-button {
    background: #0E6E8C;
    border-color: #0E6E8C;
    color: #fff;
}

    .our-packages .op-grid--three .op-card--diamond .op-button:hover {
        background: #09566e;
        border-color: #09566e;
        color: #fff;
    }

.our-packages .op-button--solid {
    background: #008c31;
    color: #fff;
}

    .our-packages .op-button--solid:hover {
        background: #006a28;
        color: #fff;
    }

.our-packages .op-button:focus-visible,
.our-packages .op-sale-button:focus-visible {
    outline: 3px solid #e9b22b;
    outline-offset: 2px;
}

/* ==================================================
   PAYMENT METHODS
   ================================================== */


.our-packages .op-payments {
    display: grid;
    grid-template-columns: 1.35fr 1fr;
    gap: 0;
    margin: 0;
    padding: 10px;
    background: #f1f3f5;
    border-radius: 0;
}

.our-packages .op-payment {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    min-width: 0;
    padding: 2px 17px;
}

    .our-packages .op-payment + .op-payment {
        border-left: 1px solid #bbc6c2;
    }

.our-packages .op-payment-icon,
.our-packages .op-interac-icon {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    align-self: flex-start;
    flex: 0 0 55px;
    min-height: 48px;
    padding-top: 2px;
    padding-right: 0;
    border-right: none;
}

/* Cercle vert pâle autour de l'icône Stripe */

.our-packages .op-payment-icon {
    align-items: flex-start;
    justify-content: center;
}

    .our-packages .op-payment-icon svg {
        width: 24px;
        height: 24px;
        color: #009A30;
        border: 1.5px solid #BFDCC7;
        background: #FFFFFF;
        border-radius: 50%;
        padding: 8px;
        box-sizing: content-box;
    }

.our-packages .op-interac-icon {
    font-size: 15px;
    font-weight: 900;
    font-style: italic;
    color: #151515;
}

.our-packages .op-payment-info {
    min-width: 0;
    padding-top: 0;
}

/* Aligner le logo Interac avec le titre */

.our-packages .op-interac-icon img {
    display: block;
    width: 40px;
    max-width: 100%;
    height: auto;
}

/* Aligner les titres Stripe et Interac en haut */

.our-packages .op-payment-info > strong {
    display: block;
    margin: 0;
    line-height: 1.3;
}

.our-packages .op-payment strong {
    font-size: 15px;
    line-height: 1.3;
}

.our-packages .op-payment p {
    margin: 3px 0 0;
    font-size: 14px;
    line-height: 1.35;
}

/* Stripe - titre et badge Optional */

.our-packages .op-stripe-heading,
.our-packages .op-interac-heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

    .our-packages .op-stripe-heading strong,
    .our-packages .op-interac-heading strong {
        font-size: 15px;
        line-height: 1.3;
        font-weight: 700;
    }

.our-packages .op-stripe-optional,
.our-packages .op-interac-badge {
    display: inline-block;
    padding: 3px 10px;
    background: #E3F4E7;
    border: 1px solid #BFDCC7;
    border-radius: 20px;
    color: #006B35;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}
/* Logos Visa, Mastercard, Amex et Stripe */

.our-packages .op-card-brands {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: nowrap;
    gap: 12px;
    margin-top: 12px;
}

    .our-packages .op-card-brands img {
        display: block;
        width: 140px;
        max-width: 100%;
        height: auto;
        object-fit: contain;
        flex-shrink: 0;
    }

    .our-packages .op-card-brands span {
        font-size: 16px;
        color: #57615b;
        white-space: nowrap;
    }


/* ==================================================
   COTTAGE FOR SALE - NEW PACKAGE CARD
   Shared between CIC and CAQ
   ================================================== */

/* Default: CIC green theme */

.our-packages {
    --op-sale-accent: #07852d;
    --op-sale-dark: #00542b;
    --op-sale-light: #f0f9f2;
    --op-sale-line: #c8e5d1;
}

    /* CAQ blue / turquoise theme */

    .our-packages.op-theme-caq {
        --op-sale-accent: #0e879a;
        --op-sale-dark: #104a60;
        --op-sale-light: #edf8fa;
        --op-sale-line: #c6e3e9;
    }

    /* Separation between rental and sale */

    .our-packages .op-sale-separator {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 16px;
        margin: 30px 0 24px;
    }

        .our-packages .op-sale-separator::before,
        .our-packages .op-sale-separator::after {
            content: "";
            flex: 1;
            height: 1px;
            background: #d8e0dc;
        }

        .our-packages .op-sale-separator span {
            color: var(--op-sale-dark);
            font-size: 16px;
            font-weight: 800;
            text-align: center;
            white-space: nowrap;
        }


    /* ==================================================
   PAYMENT SEPARATOR - CIC AND CAQ
   ================================================== */

    .our-packages .op-payment-separator {
        margin: 35px 0 12px;
    }


    /* Main sale package */

    .our-packages .op-for-sale {
        position: relative;
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: stretch;
        gap: 0;
        margin: 0;
        padding: 0;
        background: #fff;
        border: 2px solid var(--op-sale-accent);
        border-radius: 0;
        color: #17211e;
    }

    /* Badge */

    .our-packages .op-sale-badge {
        position: absolute;
        top: -11px;
        left: 18px;
        z-index: 2;
        padding: 3px 11px;
        color: #fff;
        background: var(--op-sale-dark);
        font-size: 13px;
        line-height: 1.2;
        font-weight: 800;
        white-space: nowrap;
    }

    /* Left column */

    .our-packages .op-sale-main {
        display: flex;
        flex-direction: column;
        min-width: 0;
        padding: 27px 24px 22px;
        background: #fff;
    }

    /* Title and home icon */

    .our-packages .op-sale-heading {
        display: flex;
        align-items: center;
        gap: 14px;
    }

    .our-packages .op-sale-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
        min-height: 48px;
        border-radius: 50%;
        background: var(--op-sale-light);
        color: var(--op-sale-accent);
    }

        .our-packages .op-sale-icon svg {
            width: 26px;
            height: 26px;
        }

    .our-packages .op-sale-heading-text {
        min-width: 0;
    }

        .our-packages .op-sale-heading-text h3 {
            margin: 0;
            color: var(--op-sale-dark);
            font-family: Teko;
            font-size: 29px;
            font-weight: 800;
            line-height: 1;
        }

        .our-packages .op-sale-heading-text p {
            margin: 2px 0 0;
            font-size: 15px;
            line-height: 1.3;
        }

    /* Price below package name */

    .our-packages .op-sale-price {
        display: flex;
        flex-direction: column;
        margin: 10px 0 18px 62px;
        min-width: 0;
    }

    .our-packages .op-sale-price-line {
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 5px;
        color: var(--op-sale-dark);
    }

        .our-packages .op-sale-price-line strong {
            font-size: 34px;
            font-weight: 800;
            line-height: 1;
        }

        .our-packages .op-sale-price-line span {
            font-size: 16px;
            font-weight: 700;
        }

    .our-packages .op-sale-price small {
        margin-top: 2px;
        color: #4b5961;
        font-size: 17px;
    }

    /* Action button */

    .our-packages .op-sale-button {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 33px;
        padding: 10px 9px 6px;
        font-size: 21px;
        margin-top: auto;
        background: #fff;
        border: 1px solid var(--op-sale-accent);
        border-radius: 0;
        color: var(--op-sale-dark);
        font-family: Teko;
        font-weight: 500;
        line-height: 1;
        text-align: center;
        text-decoration: none;
    }

        .our-packages .op-sale-button:hover {
            background: var(--op-sale-light);
            border-color: var(--op-sale-accent);
            color: var(--op-sale-dark);
            text-decoration: none;
        }

    /* Right column */

    .our-packages .op-sale-details {
        min-width: 0;
        padding: 28px 24px 22px;
        background: var(--op-sale-light);
        border-left: 1px solid var(--op-sale-line);
    }

        .our-packages .op-sale-details h4 {
            margin: 0 0 18px;
            color: var(--op-sale-dark);
            font-size: 20px;
            font-weight: 800;
            line-height: 1.25;
        }

    /* Included features */

    .our-packages .op-sale-features {
        display: flex;
        flex-direction: column;
        gap: 14px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

        .our-packages .op-sale-features li {
            display: flex;
            align-items: flex-start;
            gap: 12px;
            font-size: 15px;
            line-height: 1.4;
        }

        .our-packages .op-sale-features svg {
            flex: 0 0 20px;
            width: 20px;
            height: 20px;
            color: var(--op-sale-accent);
            stroke-width: 3px;
        }

    /* Keyboard focus */

    .our-packages .op-sale-button:focus-visible {
        outline: 3px solid #e9b22b;
        outline-offset: 2px;
    }

    /* ==================================================
   TAX NOTE
   ================================================== */


    .our-packages .op-tax-note {
        margin: 20px 0 5px;
        padding: 0 10px;
        color: #343434;
        font-size: 14px;
        line-height: 1.4;
        text-align: center;
    }


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width: 760px) {

    .our-packages {
        padding: 0 7px;
        font-size: 12px;
    }

        .our-packages .op-card--diamond .op-button {
            padding: 8px 8px 4px;
            font-size: 22px;
        }

        /* Masquer les sapins sur mobile */

        .our-packages .op-forest-left,
        .our-packages .op-forest-right {
            display: none;
        }

        /* Header */

        .our-packages .op-header {
            min-height: 76px;
            padding: 7px 10px 22px;
        }

            .our-packages .op-header h2 {
                font-size: 38px;
                letter-spacing: -0.5px;
            }

        .our-packages .op-step {
            font-size: 15px;
            padding: 5px 12px !important;
            font-weight: 800;
            line-height: 1.3;
            margin-bottom: 15px;
        }

        .our-packages .op-header p {
            font-size: 16px;
            line-height: 1.4;
        }

        .our-packages .op-forest-left,
        .our-packages .op-forest-right {
            width: 43px;
            bottom: 12px;
        }

        .our-packages .op-forest-left {
            left: 4px;
        }

        .our-packages .op-forest-right {
            right: 4px;
        }

        /* Benefits - compact three-column layout on mobile */

        .our-packages .op-benefits {
            padding: 12px 9px 14px;
            border-left-width: 4px;
        }

        .our-packages .op-benefits-title {
            margin-bottom: 12px;
            font-size: 18px;
            text-align: left;
        }

        .our-packages .op-benefits-list {
            grid-template-columns: repeat(3, minmax(0, 1fr));
            width: 100%;
            max-width: none;
        }

        .our-packages .op-benefit {
            flex-direction: column;
            align-items: center;
            justify-content: flex-start;
            gap: 5px;
            padding: 0 5px;
            text-align: center;
        }

            .our-packages .op-benefit:first-child {
                border-left: 0;
                padding-left: 3px;
            }

        .our-packages .op-benefit-icon {
            flex-basis: 36px;
            width: 36px;
            height: 36px;
        }

            .our-packages .op-benefit-icon svg {
                width: 21px;
                height: 21px;
                stroke-width: 2.5px;
            }

        .our-packages .op-benefit-copy strong {
            font-size: 15px;
            line-height: 1.25;
        }

        .our-packages .op-benefit-copy small {
            font-size: 13px;
            line-height: 1.3;
        }

        /* Grid */

        .our-packages .op-grid,
        .our-packages .op-grid--three {
            grid-template-columns: minmax(0, 1fr);
            gap: 16px;
            margin-top: 18px;
        }

        /* Cards */

        .our-packages .op-card {
            min-height: 0;
            padding: 13px 13px 13px;
        }

        .our-packages .op-card-top {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 10px;
            min-height: 0;
        }

        .our-packages .op-card-heading h3 {
            font-size: 28px;
            font-family: Teko;
        }

        .our-packages .op-card-heading p {
            margin: 2px 0;
            font-size: 16px;
        }

        .our-packages .op-price-box {
            margin: 0;
            text-align: right;
        }

        .our-packages .op-price-line {
            justify-content: flex-end;
            gap: 3px;
        }

            .our-packages .op-price-line strong {
                font-size: 30px;
            }

            .our-packages .op-price-line span {
                font-size: 13px;
            }

        .our-packages .op-monthly {
            font-size: 15px;
        }

        /* DIAMOND badge - Mobile */

        .our-packages .op-diamond-badge {
            top: -8px;
            left: 9px;
            font-size: 13px;
            padding: 3px 10px;
        }

        .our-packages .op-card--diamond {
            padding-top: 20px;
        }

        /* Starter */

        .our-packages .op-new-badge {
            top: -8px;
            left: 9px;
            font-size: 13px;
            padding: 3px 10px;
        }

        .our-packages .op-free-price {
            font-size: 30px;
        }

        .our-packages .op-free-duration {
            font-size: 10px;
        }

        /* Search placement */

        .our-packages .op-placement {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 88px;
            align-items: center;
            gap: 8px;
            border-top: 0;
            padding: 2px 0 5px;
        }

        .our-packages .op-placement-text span {
            font-size: 16px;
            line-height: 1.3;
        }

        .our-packages .op-placement-text strong {
            font-size: 17px;
            font-weight: 800;
            line-height: 1.3;
        }

        .our-packages .op-bars {
            margin: 0;
            gap: 4px;
        }

            .our-packages .op-bars span {
                height: 9px;
            }

        .our-packages .op-starter-description {
            margin: 2px 0 8px;
            font-size: 14px;
            line-height: 1.4;
        }

        .our-packages .op-details p {
            font-size: 10px;
        }

        .our-packages .op-button {
            min-height: 28px;
            padding: 8px 8px 4px;
            font-size: 22px;
        }

        /* Payments */


        .our-packages .op-payments {
            grid-template-columns: minmax(0, 1fr);
            padding: 8px;
            margin: 0;
        }

        .our-packages .op-payment {
            padding: 10px 4px;
            gap: 12px;
        }

            .our-packages .op-payment + .op-payment {
                border-left: 0;
                border-top: 1px solid #d4ddda;
                margin-top: 14px;
                padding-top: 14px;
            }

        .our-packages .op-payment-icon,
        .our-packages .op-interac-icon {
            flex-basis: 48px;
            min-height: 40px;
            padding-right: 0;
            padding-top: 2px;
        }

            .our-packages .op-payment-icon svg {
                width: 20px;
                height: 20px;
                padding: 10px;
            }

        .our-packages .op-payment strong,
        .our-packages .op-stripe-heading strong,
        .our-packages .op-interac-heading strong {
            font-size: 18px;
            line-height: 1.3;
        }

        .our-packages .op-payment p {
            font-size: 16px;
            line-height: 1.4;
        }

        /* Powered by Stripe - Mobile */

        .our-packages .op-card-brands span {
            font-size: 16px;
        }


        /* ==========================================
   FOR SALE - MOBILE
   CIC AND CAQ
   ========================================== */

        .our-packages .op-for-sale {
            grid-template-columns: minmax(0, 1fr);
        }

        /* Left column */

        .our-packages .op-sale-main {
            padding: 26px 18px 20px;
        }

        .our-packages .op-sale-heading {
            gap: 12px;
        }

        .our-packages .op-sale-icon {
            flex-basis: 44px;
            width: 44px;
            height: 44px;
            min-height: 44px;
        }

            .our-packages .op-sale-icon svg {
                width: 24px;
                height: 24px;
            }

        .our-packages .op-sale-heading-text h3 {
            font-size: 34px;
        }

        .our-packages .op-sale-heading-text p {
            font-size: 16px;
        }

        /* Price below package name */

        .our-packages .op-sale-price {
            margin: 20px 0 20px 56px;
        }

        .our-packages .op-sale-price-line strong {
            font-size: 32px;
        }

        .our-packages .op-sale-price-line span {
            font-size: 15px;
        }

        .our-packages .op-sale-price small {
            font-size: 15px;
        }

        /* Button */

        .our-packages .op-sale-button {
            min-height: 52px;
            padding: 13px 10px 9px;
            font-size: 24px;
        }

        /* Included features */

        .our-packages .op-sale-details {
            padding: 20px 18px 24px;
            border-left: 0;
            border-top: 1px solid var(--op-sale-line);
        }

            .our-packages .op-sale-details h4 {
                font-size: 19px;
                margin-bottom: 15px;
            }

        .our-packages .op-sale-features {
            gap: 12px;
        }

            .our-packages .op-sale-features li {
                font-size: 16px;
                line-height: 1.4;
            }

        /* Badge */

        .our-packages .op-sale-badge {
            left: 13px;
            top: -10px;
            font-size: 13px;
        }

        /* Separator */

        .our-packages .op-sale-separator {
            margin: 40px 0 20px;
            gap: 8px;
        }

            .our-packages .op-sale-separator span {
                font-size: 16px;
                white-space: normal;
            }


        /* Rental payments separator - Mobile */

        .our-packages .op-payment-separator {
            margin: 35px 0 12px;
        }

            .our-packages .op-payment-separator span {
                font-size: 16px;
                line-height: 1.3;
                white-space: normal;
            }


        .our-packages .op-tax-note {
            margin: 20px 0 5px;
            padding: 0 10px;
            font-size: 14px;
            line-height: 1.4;
        }

        /* STARTER - Mobile */

        .our-packages .op-card--starter {
            padding-top: 20px;
        }


        /* =========================================
   PACKAGE CARDS - NEW MOBILE LAYOUT
   ========================================= */

        /* Espacement et bordures des cartes */
        .our-packages .op-card {
            padding: 22px 20px 24px;
        }

        /* Titre à gauche et prix à droite */
        .our-packages .op-card-top {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 12px;
            min-height: 0;
            padding-bottom: 12px; /* Avant : 20px */
            margin-bottom: 12px; /* Avant : 20px */
            border-bottom: 1px solid #D8E0DC;
        }

        /* Annuler les anciens décalages verticaux */
        .our-packages .op-card--gold .op-card-top,
        .our-packages .op-card--platinum .op-card-top,
        .our-packages .op-card--starter .op-price-box {
            transform: none;
        }

        /* Nom du forfait */
        .our-packages .op-card-heading h3 {
            font-size: 34px;
            line-height: 1;
        }

        /* Cottage rental */
        .our-packages .op-card-heading p {
            margin: 5px 0 0;
            font-size: 16px;
        }

        /* Prix à droite */
        .our-packages .op-price-box {
            margin: 0;
            text-align: right;
            flex-shrink: 0;
        }

        .our-packages .op-price-line strong {
            font-size: 32px;
        }

        .our-packages .op-price-line span {
            font-size: 15px;
        }

        .our-packages .op-monthly {
            margin: 0;
            font-size: 15px;
        }

        /* STARTER - FREE */
        .our-packages .op-free-price {
            font-size: 32px;
            line-height: 1;
        }

        .our-packages .op-free-duration {
            margin-top: 5px;
            font-size: 16px;
        }

        /* Search placement sur une ligne */

        .our-packages .op-placement {
            display: block;
            padding: 0 0 25px;
            border-top: 0;
        }


        /* STARTER - Espacement réduit sous les barres */

        .our-packages .op-card--starter .op-placement {
            padding-bottom: 10px;
        }

        .our-packages .op-placement-text {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            gap: 12px;
        }

            .our-packages .op-placement-text span {
                font-size: 16px;
            }

            .our-packages .op-placement-text strong {
                font-size: 17px;
                text-align: right;
            }

        /* Barres de visibilité pleine largeur */
        .our-packages .op-bars {
            display: flex;
            width: 100%;
            gap: 6px;
            margin-top: 15px;
        }

            .our-packages .op-bars span {
                height: 14px;
                border-radius: 0;
            }

        /* Description STARTER */
        .our-packages .op-starter-description {
            margin: 8px 0 22px;
            font-size: 16px;
            line-height: 1.5;
        }

        /* Boutons */
        .our-packages .op-button,
        .our-packages .op-card--diamond .op-button {
            min-height: 52px;
            padding: 13px 10px 9px;
            font-size: 24px;
        }

        /* Espacement sous le bandeau STARTER */
        .our-packages .op-card--starter,
        .our-packages .op-card--diamond {
            padding-top: 24px;
        }

        .our-packages .op-card--diamond {
            margin-top: 12px;
        }
}

@media (max-width: 360px) {

    .our-packages .op-header h2 {
        font-size: 27px;
    }

    .our-packages .op-header p {
        font-size: 16px;
    }

    .our-packages .op-card-heading h3 {
        font-size: 30px;
    }
}

/* Desktop - subtle card hover shadow */
@media (min-width: 761px) {
    .our-packages .op-card {
        transition: box-shadow 0.2s ease;
    }

        .our-packages .op-card:hover {
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.10);
        }
}

/* ============================================
   STEP 1 - PROVINCE SELECTION
   Shared between CIC and CAQ
   ============================================ */

.op-province-step {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    padding: 15px 25px 20px;
    box-sizing: border-box;
    border: 2px solid #07852D;
    background: #edf7ef;
    border-radius: 0px;
    font-family: inherit;
    text-align: left;
}

/* HEADER */

.op-province-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

/* STEP 1 BADGE */

.op-province-badge {
    display: inline-block;
    flex-shrink: 0;
    padding: 3px 9px;
    background: #087838;
    color: #fff;
    border-radius: 0;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
    white-space: nowrap;
}

/* TITLE */

.op-province-title {
    color: #063e29;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
}

/* DROPDOWN WRAPPER */

.op-province-dropdown {
    width: 100%;
}

/* ============================================
   MOBILE - PROVINCE SELECTION
   ============================================ */

@media (max-width: 760px) {

    .op-province-step {
        padding: 12px 15px 15px;
        margin-bottom: 15px;
        border-radius: 0;
    }

    .op-province-header {
        gap: 9px;
        margin-bottom: 10px;
    }

    .op-province-badge {
        font-size: 15px;
        padding: 5px 12px;
        font-weight: 800;
    }

    .op-province-title {
        font-size: 17px;
        font-weight: 800;
        line-height: 1.3;
    }
}

@media (max-width: 360px) {
}


/* ==============================================
   CAQ - CHALETS AU QUEBEC
   Theme bleu / turquoise
   CIC conserve son theme vert
   ============================================== */

.our-packages.op-theme-caq {
    --op-green: #169EA9;
    --op-dark-green: #104A60;
    --op-border: #D5E2E7;
}

    /* TITRE PRINCIPAL */

    .our-packages.op-theme-caq .op-header h2 {
        color: #104A60;
    }

    /* BADGE ETAPE */

    .our-packages.op-theme-caq .op-step {
        background-color: #168FA5;
    }

    /* SAPINS DECORATIFS */

    .our-packages.op-theme-caq .op-forest path[fill="#2DAD29"] {
        fill: #42BCC4;
    }

    .our-packages.op-theme-caq .op-forest path[fill="#138E20"] {
        fill: #168FA5;
    }

    .our-packages.op-theme-caq .op-forest path[stroke="#237A26"] {
        stroke: #104A60;
    }

    /* AVANTAGES INCLUS */

    .our-packages.op-theme-caq .op-benefits {
        border-left-color: #32B4BE;
    }

    .our-packages.op-theme-caq .op-benefits-title {
        color: #104A60;
    }

    .our-packages.op-theme-caq .op-benefit-icon {
        background: #E8F7F8;
        color: #169EA9;
    }

    /* BOUTONS GOLD ET PLATINUM */

    .our-packages.op-theme-caq .op-button {
        border-color: #169EA9;
        color: #104A60;
    }

        .our-packages.op-theme-caq .op-button:hover {
            background: #E8F7F8;
            color: #104A60;
        }

    /* DIAMOND : CONSERVER SA COULEUR DISTINCTIVE */

    .our-packages.op-theme-caq
    .op-card--diamond .op-button {
        border-color: #0E6E8C;
        color: #0E6E8C;
    }

    .our-packages.op-theme-caq
    .op-grid--three .op-card--diamond .op-button {
        background: #0E6E8C;
        border-color: #0E6E8C;
        color: #FFFFFF;
    }

    /* PAIEMENTS - ICONE STRIPE */

    .our-packages.op-theme-caq .op-payment-icon svg {
        color: #169EA9;
        border-color: #B8DDE2;
    }

    /* BADGES OPTIONAL / NO PLATFORM FEES */

    .our-packages.op-theme-caq .op-stripe-optional,
    .our-packages.op-theme-caq .op-interac-badge {
        background: #E8F7F8;
        border-color: #B8DDE2;
        color: #104A60;
    }

    /* SEPARATEUR LOCATION / VENTE */

    .our-packages.op-theme-caq .op-sale-separator span {
        color: #104A60;
    }


@media (min-width: 761px) {
    .our-packages.op-theme-caq .op-header {
        padding-top: 25px;
    }
}

/* ==================================================
   CIC - PACKAGES PREVIEW BEFORE PROVINCE SELECTION
   ================================================== */

.our-packages.op-theme-cic .op-price-placeholder {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 60px;
    margin-top: 5px;
    padding: 10px 12px;
    background: #F4F7F5;
    border: 1px dashed #C8D4CD;
    color: #53635A;
    font-size: 14px;
    line-height: 1.35;
    text-align: left;
}

    .our-packages.op-theme-cic .op-price-placeholder svg {
        flex: 0 0 18px;
        width: 18px;
        height: 18px;
        color: #07852D;
    }

.our-packages.op-theme-cic .op-sale-price-placeholder {
    margin: 12px 0 20px 62px;
}


/* ==========================================
   CIC - PACKAGE BUTTONS WAITING FOR PROVINCE
   ========================================== */

.our-packages.op-theme-cic
.op-card .op-button.op-button--disabled,
.our-packages.op-theme-cic
.op-grid--three .op-card--diamond
.op-button.op-button--disabled,
.our-packages.op-theme-cic
.op-for-sale .op-sale-button.op-button--disabled {
    background: #F2F4F3;
    border-color: #BCC7C0;
    color: #52635A;
    cursor: pointer;
    text-decoration: none;
}

    /* Hover: subtle indication that STEP 1 can be reached */

    .our-packages.op-theme-cic
    .op-card .op-button.op-button--disabled:hover,
    .our-packages.op-theme-cic
    .op-grid--three .op-card--diamond
    .op-button.op-button--disabled:hover,
    .our-packages.op-theme-cic
    .op-for-sale .op-sale-button.op-button--disabled:hover {
        background: #E5EDE7;
        border-color: #91A698;
        color: #344B3D;
        text-decoration: none;
    }

.op-province-pricing-note {
    display: block;
    margin-top: 12px;
    color: #40584A;
    font-size: 15px;
    line-height: 1.4;
}

@media (max-width: 760px) {
    .our-packages.op-theme-cic .op-price-placeholder {
        min-height: 0;
        max-width: 175px;
        margin-top: 0;
        padding: 8px 10px;
        font-size: 13px;
    }

    .our-packages.op-theme-cic .op-sale-price-placeholder {
        max-width: none;
        margin: 15px 0 20px 56px;
    }
}

/* ==========================================
   CIC - STEP 2 WAITING FOR PROVINCE
   ========================================== */

.our-packages.op-theme-cic.op-awaiting-province .op-step {
    background-color: #8D9993;
    color: #FFFFFF;
}


/* Scroll target for province selection */

#op-province-step {
    scroll-margin-top: 90px;
}

    #op-province-step:target {
        border-color: #006B2D;
        box-shadow: 0 0 0 4px rgba(0, 139, 49, 0.16);
    }

@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }
}

/* STEP 2 - Scroll position */

.our-packages #op-title {
    scroll-margin-top: 90px;
}

/* CAQ - Espacement au-dessus de NOS FORFAITS sur mobile */

@media (max-width: 760px) {
    .our-packages.op-theme-caq .op-header {
        padding-top: 20px;
    }
}