.cphg-gallery{
    --cphg-columns:3;
    --cphg-tablet-columns:3;
    --cphg-gap:20px;
    --cphg-card-height:300px;
    --cphg-mobile-card-height:260px;
    --cphg-radius:10px;
    --cphg-ink:#111827;
    --cphg-red:#c81845;
    --cphg-green:#18a957;
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
}

html.cphg-has-lightbox{
    overflow:hidden;
}

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

.cphg-shell{
    position:relative;
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
}

.cphg-viewport{
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-behavior:auto;
    scroll-snap-type:none;
    scrollbar-width:none;
    -webkit-overflow-scrolling:auto;
    cursor:grab;
    touch-action:pan-y;
    user-select:none;
    -webkit-user-select:none;
}

.cphg-viewport::-webkit-scrollbar{
    display:none;
}

.cphg-viewport.is-dragging,
.cphg-viewport.is-inertia{
    cursor:grabbing;
    scroll-behavior:auto;
    scroll-snap-type:none;
}

.cphg-track{
    display:flex;
    align-items:stretch;
    gap:var(--cphg-gap);
    width:100%;
    min-width:100%;
    margin:0;
    padding:0;
}

.cphg-gallery button.cphg-card{
    appearance:none!important;
    -webkit-appearance:none!important;
    position:relative!important;
    display:block!important;
    flex:0 0 calc((100% - (var(--cphg-gap) * (var(--cphg-columns) - 1))) / var(--cphg-columns))!important;
    width:auto!important;
    height:var(--cphg-card-height)!important;
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:var(--cphg-radius)!important;
    overflow:visible!important;
    background:transparent!important;
    box-shadow:none!important;
    color:inherit!important;
    line-height:0!important;
    text-align:inherit!important;
    cursor:pointer!important;
    isolation:isolate;
}

.cphg-viewport.is-dragging .cphg-card,
.cphg-viewport.is-inertia .cphg-card{
    cursor:grabbing!important;
}

.cphg-gallery button.cphg-card:focus,
.cphg-gallery button.cphg-card:active{
    outline:none!important;
}

.cphg-gallery button.cphg-card:focus-visible{
    outline:3px solid rgba(24,169,87,.28)!important;
    outline-offset:3px;
}

.cphg-media{
    position:absolute;
    inset:0;
    z-index:1;
    display:block;
    border-radius:var(--cphg-radius);
    overflow:hidden;
    background:#f3f4f6;
    pointer-events:none;
}

.cphg-media::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.16) 100%);
    pointer-events:none;
    opacity:.74;
    transition:opacity .18s ease;
}

.cphg-card--photo:hover .cphg-media::after{
    opacity:.88;
}

.cphg-gallery .cphg-card .cphg-image{
    position:absolute!important;
    inset:0!important;
    z-index:1;
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    min-width:100%!important;
    min-height:100%!important;
    object-fit:cover!important;
    object-position:center!important;
    margin:0!important;
    padding:0!important;
    vertical-align:top!important;
    transform:none!important;
    transition:none!important;
    user-select:none;
    -webkit-user-select:none;
    -webkit-user-drag:none;
    pointer-events:none;
}

.cphg-card--photo:hover .cphg-image{
    transform:none!important;
    filter:none!important;
}

/* Icône en haut à droite, bulle sous l’icône et alignée vers la gauche */
.cphg-gallery .cphg-tooltip{
    position:absolute;
    top:10px;
    right:10px;
    bottom:auto;
    left:auto;
    z-index:9;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    margin:0;
    padding:0;
    vertical-align:middle;
    pointer-events:auto;
    line-height:1;
}

.cphg-gallery .cphg-tooltip-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    padding:0;
    margin:0;
    border:1px solid #d6dbe1;
    border-radius:50%;
    background:#f5f7fa;
    color:#4b5563;
    font-family:Arial, Helvetica, sans-serif;
    font-size:12px;
    font-weight:700;
    line-height:1;
    cursor:help;
    text-decoration:none;
    box-shadow:0 5px 14px rgba(0,0,0,.12);
}

.cphg-gallery .cphg-tooltip-bubble{
    position:absolute;
    right:0;
    top:calc(100% + 10px);
    left:auto;
    bottom:auto;
    transform:none;
    width:260px;
    max-width:min(260px, calc(100vw - 40px));
    padding:10px 12px;
    border-radius:10px;
    background:#1f2937;
    color:#fff;
    font-size:12px;
    font-weight:400;
    line-height:1.5;
    text-align:left;
    box-shadow:0 10px 24px rgba(0,0,0,.16);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease, visibility .2s ease;
    z-index:9999;
}

.cphg-gallery .cphg-tooltip-bubble::after{
    content:"";
    position:absolute;
    right:4px;
    bottom:100%;
    left:auto;
    top:auto;
    transform:none;
    border-width:6px;
    border-style:solid;
    border-color:transparent transparent #1f2937 transparent;
}

.cphg-gallery .cphg-tooltip:hover .cphg-tooltip-bubble,
.cphg-gallery .cphg-tooltip:focus-within .cphg-tooltip-bubble,
.cphg-gallery .cphg-card--photo:hover .cphg-tooltip-bubble,
.cphg-gallery .cphg-card--photo:focus-visible .cphg-tooltip-bubble{
    opacity:1;
    visibility:visible;
}

.cphg-gallery button.cphg-carousel-btn{
    appearance:none!important;
    -webkit-appearance:none!important;
    position:absolute!important;
    top:50%!important;
    z-index:20!important;
    display:grid!important;
    place-items:center!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    max-width:42px!important;
    max-height:42px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.78)!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.88)!important;
    box-shadow:0 12px 30px rgba(15,23,42,.18)!important;
    color:var(--cphg-ink)!important;
    font-size:0!important;
    line-height:1!important;
    text-align:center!important;
    cursor:pointer!important;
    opacity:.92;
    transform:translateY(-50%)!important;
    transition:opacity .18s ease, color .18s ease, background .18s ease, box-shadow .18s ease;
}

.cphg-gallery button.cphg-carousel-btn::before{
    display:block;
    width:100%;
    height:100%;
    color:inherit;
    font-family:Arial, Helvetica, sans-serif!important;
    font-size:34px!important;
    font-weight:400!important;
    line-height:38px!important;
    text-align:center!important;
    transform:translateY(-1px);
}

.cphg-gallery button.cphg-carousel-btn--prev::before{
    content:"\2039";
}

.cphg-gallery button.cphg-carousel-btn--next::before{
    content:"\203A";
}

.cphg-gallery button.cphg-carousel-btn:hover,
.cphg-gallery button.cphg-carousel-btn:focus{
    background:#fff!important;
    color:var(--cphg-green)!important;
    outline:none!important;
    box-shadow:0 14px 34px rgba(15,23,42,.22)!important;
}

.cphg-gallery button.cphg-carousel-btn:focus-visible{
    outline:3px solid rgba(24,169,87,.24);
    outline-offset:3px;
}

.cphg-gallery button.cphg-carousel-btn[disabled]{
    opacity:0!important;
    pointer-events:none!important;
}

.cphg-carousel-btn--prev{
    left:14px!important;
    right:auto!important;
}

.cphg-carousel-btn--next{
    right:14px!important;
    left:auto!important;
}

.cphg-card--price{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    padding:20px!important;
    background:linear-gradient(135deg,var(--cphg-green),var(--cphg-red))!important;
    color:#fff!important;
    text-align:center!important;
    line-height:1.2!important;
    overflow:hidden!important;
}

.cphg-card--price::after{
    content:"";
    position:absolute;
    inset:1px;
    border-radius:calc(var(--cphg-radius) - 1px);
    background:radial-gradient(circle at 50% 10%,rgba(255,255,255,.34),transparent 42%);
    pointer-events:none;
}

.cphg-price__icon,
.cphg-price__label,
.cphg-price__subtitle{
    position:relative;
    z-index:1;
}

.cphg-price__icon{
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);
    font-size:31px;
    font-weight:500;
    line-height:1;
}

.cphg-price__label{
    display:block;
    max-width:100%;
    font-size:18px;
    font-weight:950;
    line-height:1.05;
    overflow-wrap:anywhere;
}

.cphg-price__subtitle{
    display:block;
    max-width:190px;
    color:rgba(255,255,255,.86);
    font-size:12px;
    font-weight:760;
    line-height:1.28;
    overflow-wrap:anywhere;
}

.cphg-card--price.is-loading{
    pointer-events:none;
    opacity:.78;
}

.cphg-lightbox[hidden]{
    display:none!important;
}

.cphg-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:grid;
    place-items:center;
    padding:24px;
}

.cphg-lightbox__backdrop{
    position:absolute;
    inset:0;
    background:rgba(10,14,22,.82);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
}

.cphg-lightbox__dialog{
    position:relative;
    z-index:1;
    width:min(1120px,100%);
    max-height:calc(100vh - 48px);
    margin:0;
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    place-items:center;
}

.cphg-lightbox__image{
    display:block;
    max-width:100%;
    max-height:calc(100vh - 118px);
    width:auto;
    height:auto;
    border-radius:10px;
    background:#111827;
    box-shadow:0 18px 42px rgba(15,23,42,.28);
}

.cphg-lightbox__caption{
    margin-top:12px;
    padding:8px 14px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(255,255,255,.1);
    color:#fff;
    font-size:14px;
    font-weight:850;
    line-height:1.3;
    text-align:center;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.cphg-lightbox__close,
.cphg-lightbox__nav{
    appearance:none!important;
    -webkit-appearance:none!important;
    position:absolute;
    z-index:2;
    display:grid!important;
    place-items:center!important;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.22)!important;
    background:rgba(255,255,255,.12)!important;
    color:#fff!important;
    cursor:pointer!important;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    transition:background .16s ease, transform .16s ease;
}

.cphg-lightbox__close:hover,
.cphg-lightbox__nav:hover{
    background:rgba(255,255,255,.2)!important;
}

.cphg-lightbox__close{
    top:0!important;
    right:0!important;
    width:42px!important;
    height:42px!important;
    border-radius:999px!important;
    font-size:0!important;
    line-height:1!important;
}

.cphg-lightbox__nav{
    top:50%!important;
    width:46px!important;
    height:58px!important;
    border-radius:999px!important;
    font-size:0!important;
    line-height:1!important;
    transform:translateY(-50%);
}

.cphg-lightbox__nav:hover{
    transform:translateY(calc(-50% - 1px));
}

.cphg-lightbox__nav--prev{
    left:0!important;
}

.cphg-lightbox__close::before{

    content:"\00D7";

    display:block;

    font-size:28px;

    line-height:1;

}



.cphg-lightbox__nav::before{

    display:block;

    font-size:44px;

    line-height:1;

}



.cphg-lightbox__nav--prev::before{

    content:"\2039";

}



.cphg-lightbox__nav--next::before{

    content:"\203A";

}



.cphg-lightbox__nav--next{
    right:0!important;
}

@media(max-width:1024px){
    .cphg-gallery button.cphg-card{
        flex-basis:calc((100% - (var(--cphg-gap) * (var(--cphg-tablet-columns) - 1))) / var(--cphg-tablet-columns))!important;
    }
}

@media(max-width:767px){
    .cphg-track{
        gap:12px;
    }

    .cphg-gallery button.cphg-card{
        flex-basis:100%!important;
        height:var(--cphg-mobile-card-height)!important;
    }

    .cphg-gallery button.cphg-carousel-btn{
        width:36px!important;
        height:36px!important;
        min-width:36px!important;
        min-height:36px!important;
        max-width:36px!important;
        max-height:36px!important;
        opacity:.95;
    }

    .cphg-gallery button.cphg-carousel-btn::before{
        font-size:29px!important;
        line-height:32px!important;
    }

    .cphg-carousel-btn--prev{
        left:10px!important;
    }

    .cphg-carousel-btn--next{
        right:10px!important;
    }

    .cphg-gallery .cphg-tooltip{
        top:8px;
        right:8px;
        width:18px;
        height:18px;
    }

    .cphg-gallery .cphg-tooltip-bubble{
        right:0;
        top:calc(100% + 8px);
        width:220px;
        max-width:calc(100vw - 36px);
    }

    .cphg-gallery .cphg-tooltip-bubble::after{
        right:4px;
    }

    .cphg-lightbox{
        padding:12px;
    }

    .cphg-lightbox__dialog{
        max-height:calc(100vh - 24px);
    }

    .cphg-lightbox__image{
        max-height:calc(100vh - 92px);
        border-radius:8px;
    }

    .cphg-lightbox__close{
        top:8px;
        right:8px;
    }

    .cphg-lightbox__nav{
        width:38px!important;
        height:50px!important;
        font-size:36px!important;
    }

    .cphg-lightbox__nav--prev{
        left:8px;
    }

    .cphg-lightbox__nav--next{
        right:8px;
    }
}

@media(prefers-reduced-motion:reduce){
    .cphg-carousel-btn,
    .cphg-lightbox__close,
    .cphg-lightbox__nav,
    .cphg-tooltip-bubble{
        transition:none!important;
    }
}

.cphg-featured-slide {
    position: relative;
    flex: 0 0 calc((100% - (var(--cphg-gap) * (var(--cphg-columns) - 1))) / var(--cphg-columns));
    min-width: 0;
}
.cphg-gallery .cphg-featured-slide > button.cphg-card {
    width: 100% !important;
}
.cphg-gallery .cphg-booking-overlay {
    border-radius: var(--cphg-radius);
    --btn-color: #fff;
    --btn-bgcolor: #23777e;
    --btn-color-hover: #fff;
    --btn-bgcolor-hover: #195d63;
    position: absolute;
    z-index: 2;
    inset-block-end: 14px;
    inset-inline-start: 14px;
    max-width: calc(100% - 28px);
    min-height: 44px;
    padding-inline: 14px;
    text-align: center;
    white-space: normal;
    text-transform: none;
}
.cphg-gallery .cphg-booking-overlay:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}
@media (max-width: 1024px) {
    .cphg-featured-slide {
        flex-basis: calc((100% - (var(--cphg-gap) * (var(--cphg-tablet-columns) - 1))) / var(--cphg-tablet-columns));
    }
}
@media (max-width: 767px) {
    .cphg-featured-slide { flex-basis: 100%; }
}
