/* Routine & Sourires V2.30 — single, cross-browser product gallery/lightbox. */
.o_rs_product_page .o_rs_gallery_main {
    position: relative;
}
.o_rs_product_page .o_rs_gallery_main [data-rs-gallery-main] {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 600px !important;
    object-fit: contain !important;
    cursor: zoom-in;
    transition: opacity .16s ease;
}
.o_rs_product_page .o_rs_gallery_main.is-loading [data-rs-gallery-main] { opacity: .72; }
.o_rs_gallery_nav {
    position: absolute;
    top: 50%;
    z-index: 20;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(23,51,95,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.96);
    color: #17335f;
    box-shadow: 0 8px 26px rgba(23,51,95,.18);
    transform: translateY(-50%);
    cursor: pointer;
}
.o_rs_gallery_nav > span { display:block; margin-top:-4px; font: 700 44px/1 Arial,sans-serif; }
.o_rs_gallery_prev { left: 14px; }
.o_rs_gallery_next { right: 14px; }
.o_rs_gallery_nav:hover,
.o_rs_gallery_nav:focus-visible { background:#fff; transform:translateY(-50%) scale(1.05); outline:3px solid rgba(53,174,180,.22); }
.o_rs_gallery_nav[hidden] { display:none !important; }

html.o_rs_lightbox_open,
html.o_rs_lightbox_open body { overflow: hidden !important; }
.o_rs_lightbox_v30 {
    position: fixed;
    inset: 0;
    z-index: 120000;
    display: block;
    margin: 0;
    padding: 0;
    background: rgba(10,22,40,.92);
    overscroll-behavior: contain;
    touch-action: pan-y;
}
.o_rs_lightbox_v30_inner {
    position: absolute;
    top: 16px;
    right: 80px;
    bottom: 16px;
    left: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    cursor: zoom-out;
}
.o_rs_lightbox_v30_inner img {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain !important;
    object-position: center center;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 60px rgba(0,0,0,.32);
    cursor: default;
    user-select: none;
    -webkit-user-drag: none;
}
.o_rs_lightbox_v30_close,
.o_rs_lightbox_v30_nav {
    position: absolute;
    z-index: 120002;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.97);
    color: #17335f;
    box-shadow: 0 8px 28px rgba(0,0,0,.24);
    cursor: pointer;
}
.o_rs_lightbox_v30_close {
    top: max(14px, env(safe-area-inset-top));
    right: max(14px, env(safe-area-inset-right));
    width: 50px;
    height: 50px;
    font: 400 35px/1 Arial,sans-serif;
}
.o_rs_lightbox_v30_nav {
    top: 50%;
    width: 54px;
    height: 54px;
    transform: translateY(-50%);
}
.o_rs_lightbox_v30_nav > span { display:block; margin-top:-4px; font:700 46px/1 Arial,sans-serif; }
.o_rs_lightbox_v30_prev { left: max(14px, env(safe-area-inset-left)); }
.o_rs_lightbox_v30_next { right: max(14px, env(safe-area-inset-right)); }
.o_rs_lightbox_v30_nav:hover,
.o_rs_lightbox_v30_nav:focus-visible,
.o_rs_lightbox_v30_close:hover,
.o_rs_lightbox_v30_close:focus-visible { background:#fff; outline:3px solid rgba(53,174,180,.30); }
.o_rs_lightbox_v30_nav[hidden] { display:none !important; }

@media (max-width: 767.98px) {
    .o_rs_gallery_nav { width: 42px; height: 42px; }
    .o_rs_gallery_nav > span { font-size: 38px; }
    .o_rs_gallery_prev { left: 8px; }
    .o_rs_gallery_next { right: 8px; }
    .o_rs_lightbox_v30_inner { top: 62px; right: 10px; bottom: 12px; left: 10px; }
    .o_rs_lightbox_v30_nav { width: 44px; height: 44px; background: rgba(255,255,255,.92); }
    .o_rs_lightbox_v30_nav > span { font-size: 38px; }
    .o_rs_lightbox_v30_prev { left: 8px; }
    .o_rs_lightbox_v30_next { right: 8px; }
    .o_rs_lightbox_v30_close { width: 44px; height: 44px; top: 8px; right: 8px; font-size: 30px; }
}
