/* Routine & Sourires V2.1 — stylesheet loaded directly on the dedicated website. */
:root {
  --rs-navy: #17335f;
  --rs-coral: #ff746a;
  --rs-coral-dark: #ed5f57;
  --rs-teal: #35aeb4;
  --rs-sky: #eaf7ff;
  --rs-mint: #eaf8f2;
  --rs-cream: #fff8e8;
  --rs-lavender: #f2efff;
  --rs-peach: #fff0ec;
  --rs-border: #e2ebf0;
  --rs-muted: #607086;
  --rs-shadow: 0 18px 55px rgba(23, 51, 95, .10);
}
html, body { overflow-x: hidden; }
body {
  color: var(--rs-navy);
  font-family: ui-rounded, "Avenir Next", "Segoe UI", Arial, sans-serif;
  background: #fff;
}
#wrapwrap { overflow-x: clip; }
h1, h2, h3, h4, h5, h6 { color: var(--rs-navy); font-family: Georgia, "Times New Roman", serif; font-weight: 700; }
a { text-decoration: none; }
.lead, p { line-height: 1.65; }
.btn { border-radius: 999px; font-weight: 700; }
.btn-primary {
    --bs-btn-bg: var(--rs-coral); --bs-btn-border-color: var(--rs-coral);
    --bs-btn-hover-bg: var(--rs-coral-dark); --bs-btn-hover-border-color: var(--rs-coral-dark);
    box-shadow: 0 10px 24px rgba(255, 116, 106, .22);
}
.btn-outline-primary {
    --bs-btn-color: var(--rs-navy); --bs-btn-border-color: #8fcbd5;
    --bs-btn-hover-bg: var(--rs-teal); --bs-btn-hover-border-color: var(--rs-teal);
}
.form-control, .form-select { border-radius: 16px; border-color: var(--rs-border); min-height: 48px; }
.form-control:focus, .form-select:focus { border-color: var(--rs-teal); box-shadow: 0 0 0 .2rem rgba(53, 174, 180, .14); }

.o_rs_header { background: rgba(255,255,255,.96); backdrop-filter: blur(16px); box-shadow: 0 1px 0 rgba(23,51,95,.08); position: sticky; top: 0; z-index: 1030; }
.o_rs_brand img { width: 180px; max-height: 60px; object-fit: contain; }
.o_rs_header .nav-link { color: var(--rs-navy); font-weight: 650; padding: .75rem .8rem; }
.o_rs_header .nav-link:hover { color: var(--rs-coral); }
.o_rs_icon_btn { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; color: var(--rs-navy); background: #f7fafc; font-size: 1.2rem; }
.o_rs_cart_badge { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; display: grid; place-items: center; border-radius: 999px; background: var(--rs-coral); color: white; font-size: .7rem; font-weight: 800; }

.o_rs_footer { background: white; border-top: 1px solid var(--rs-border); }
.o_rs_footer_logo { width: 185px; }
.o_rs_footer h5 { font-size: 1rem; margin-bottom: 1rem; }
.o_rs_footer .col-6 a, .o_rs_footer .col-lg-3 > a { display: block; color: var(--rs-muted); padding: .25rem 0; }
.o_rs_footer a:hover { color: var(--rs-coral); }
.o_rs_social { width: 34px; height: 34px; display: grid !important; place-items: center; border-radius: 50%; background: var(--rs-peach); color: var(--rs-coral) !important; font-weight: 800; }
.o_rs_footer_bottom { background: linear-gradient(90deg, #35aeb4, #66c8c8); color: white; font-size: .9rem; }
.o_rs_footer_bottom a { color: white; }

.o_rs_eyebrow { display: inline-block; color: var(--rs-teal); font-size: .78rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.o_rs_heart { color: var(--rs-coral); font-family: Arial, sans-serif; }
.o_rs_hero, .o_rs_page_hero, .o_rs_builder_hero {
    background: radial-gradient(circle at 84% 12%, rgba(53,174,180,.13), transparent 27%), linear-gradient(135deg,#f7fcff 0%,#fff 48%,#fff8e8 100%);
    overflow: hidden;
}
.o_rs_hero h1 { line-height: 1.08; }
.o_rs_hero .lead, .o_rs_page_hero .lead { color: #4e6077; max-width: 680px; }
.o_rs_trust_row { display: flex; flex-wrap: wrap; gap: .8rem 1.25rem; color: var(--rs-muted); font-size: .9rem; }

.o_rs_hero_carousel { border-radius: 34px; overflow: hidden; background: white; box-shadow: var(--rs-shadow); border: 1px solid rgba(23,51,95,.06); }
.o_rs_hero_carousel .carousel-item { min-height: 470px; background: #f6fbff; }
.o_rs_hero_carousel img { height: 470px; object-fit: cover; }
.o_rs_slide_caption { position: absolute; left: 22px; right: 22px; bottom: 22px; padding: 1rem 1.25rem; border-radius: 22px; background: rgba(255,255,255,.92); backdrop-filter: blur(12px); box-shadow: 0 12px 30px rgba(23,51,95,.12); }
.o_rs_slide_caption span, .o_rs_slide_caption small, .o_rs_slide_caption a { display: block; }
.o_rs_slide_caption span { font-family: Georgia, serif; font-size: 1.25rem; font-weight: 700; }
.o_rs_slide_caption small { color: var(--rs-muted); margin: .2rem 0; }
.o_rs_slide_caption a { color: var(--rs-coral); font-weight: 700; }
.carousel-indicators [data-bs-target] { width: 9px; height: 9px; border-radius: 50%; }

.o_rs_category_card { min-height: 176px; padding: 1.3rem .8rem; border: 1px solid rgba(23,51,95,.06); border-radius: 24px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; color: var(--rs-navy); text-align: center; transition: .2s ease; }
.o_rs_category_card:hover { transform: translateY(-5px); box-shadow: var(--rs-shadow); color: var(--rs-navy); }
.o_rs_category_icon { font-size: 2.6rem; }
.o_rs_category_img { width: 72px; height: 72px; object-fit: cover; border-radius: 18px; }
.o_rs_category_card small { color: var(--rs-muted); line-height: 1.25; }
.o_rs_bg_sun, .o_rs_theme_sun { background: var(--rs-cream); }
.o_rs_bg_moon, .o_rs_theme_lavender { background: var(--rs-lavender); }
.o_rs_bg_mint, .o_rs_theme_mint { background: var(--rs-mint); }
.o_rs_bg_peach, .o_rs_theme_peach { background: var(--rs-peach); }
.o_rs_bg_sky, .o_rs_theme_sky { background: var(--rs-sky); }

.o_rs_products { background: #fbfdff; }
.o_rs_product_card { overflow: hidden; border: 1px solid var(--rs-border); border-radius: 24px; background: #fff; box-shadow: 0 8px 28px rgba(23,51,95,.06); transition: .2s ease; }
.o_rs_product_card:hover { transform: translateY(-5px); box-shadow: var(--rs-shadow); }
.o_rs_product_image_wrap { display: block; background: linear-gradient(145deg,#fff8ea,#eef9fb); aspect-ratio: 4/3; overflow: hidden; }
.o_rs_product_image_wrap img { width: 100%; height: 100%; object-fit: cover; }
.o_rs_product_card h2 a, .o_rs_product_card h3 a { color: var(--rs-navy); }
.o_rs_product_badge { position: absolute; top: 12px; left: 12px; z-index: 2; padding: .35rem .7rem; border-radius: 999px; background: #ff9b50; color: white; font-size: .72rem; font-weight: 800; }
.o_rs_rating { color: #ffb12b; letter-spacing: .08em; font-size: .86rem; }
.o_rs_price { font-size: 1.15rem; }
.o_rs_round_btn { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--rs-peach); color: var(--rs-coral); font-weight: 800; }
.o_rs_text_link { color: #2786c0; font-weight: 700; }

.o_rs_how_panel { background: linear-gradient(135deg,#eefaf7,#f4fbff); border-radius: 30px; border: 1px solid #d9eeee; }
.o_rs_number { width: 42px; height: 42px; margin: 0 auto .8rem; border-radius: 50%; display: grid; place-items: center; background: var(--rs-teal); color: white; font-weight: 800; }
.o_rs_how_icon { font-size: 2.25rem; margin-bottom: .75rem; }
.o_rs_benefits { background: #fffdf8; border: 1px solid #f2e8d7; border-radius: 24px; overflow: hidden; }
.o_rs_benefits .p-4 { display: grid; grid-template-columns: 44px 1fr; gap: .2rem .75rem; align-items: center; }
.o_rs_benefits span { grid-row: span 2; font-size: 2rem; }
.o_rs_benefits strong, .o_rs_benefits small { display: block; }
.o_rs_benefits small { color: var(--rs-muted); }

.o_rs_testimonial_card, .o_rs_panel, .o_rs_value_card, .o_rs_article_card { background: white; border: 1px solid var(--rs-border); border-radius: 24px; box-shadow: 0 10px 32px rgba(23,51,95,.06); }
.o_rs_testimonial_card { padding: 1.7rem; }
.o_rs_testimonial_card blockquote { color: #485a72; line-height: 1.7; }
.o_rs_avatar { width: 48px; height: 48px; object-fit: cover; border-radius: 50%; }
.o_rs_avatar_placeholder { display: grid; place-items: center; background: var(--rs-peach); color: var(--rs-coral); font-weight: 800; }
.o_rs_demo_badge { display: inline-block; padding: .25rem .55rem; margin-bottom: .65rem; border-radius: 999px; background: #fff3cd; color: #7a5b00; font-size: .65rem; font-weight: 800; }
.o_rs_lead_box { background: linear-gradient(110deg,#fff4ce,#fff8eb 55%,#eaf8f2); border-radius: 30px; border: 1px solid #f0dfad; }
.o_rs_free_badge { display: inline-block; padding: .3rem .65rem; background: var(--rs-coral); color: white; border-radius: 999px; font-size: .72rem; font-weight: 800; margin-bottom: .8rem; }
.o_rs_filter { display: inline-flex; align-items: center; padding: .55rem .9rem; border-radius: 999px; border: 1px solid var(--rs-border); color: var(--rs-navy); background: white; font-weight: 650; }
.o_rs_filter.active, .o_rs_filter.is-active { background: var(--rs-teal); border-color: var(--rs-teal); color: white; }
.o_rs_article_card { overflow: hidden; }
.o_rs_article_visual { height: 150px; display: grid; place-items: center; font-size: 4rem; background: linear-gradient(135deg,var(--rs-sky),var(--rs-cream)); }
.o_rs_value_card { padding: 2rem; height: 100%; }
.o_rs_value_card > span { font-size: 2rem; }
.o_rs_faq { max-width: 850px; }
.o_rs_faq details { margin-bottom: .8rem; border: 1px solid var(--rs-border); border-radius: 18px; background: white; padding: 1rem 1.25rem; }
.o_rs_faq summary { cursor: pointer; font-weight: 750; }
.o_rs_faq p { margin: 1rem 0 0; color: var(--rs-muted); }

.o_rs_builder_page { background: #fbfdff; }
.o_rs_stepper { display: grid; gap: .75rem; }
.o_rs_stepper_item { width: 100%; display: grid; grid-template-columns: 42px 1fr; gap: .8rem; align-items: center; text-align: left; padding: 1rem; border: 1px solid var(--rs-border); border-radius: 20px; background: white; color: var(--rs-navy); }
.o_rs_stepper_item > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #e6f5f6; color: var(--rs-teal); font-weight: 800; }
.o_rs_stepper_item small { display: block; color: var(--rs-muted); font-size: .78rem; margin-top: .2rem; }
.o_rs_stepper_item.is-active { border-color: var(--rs-teal); background: #f2fbfb; box-shadow: 0 10px 25px rgba(53,174,180,.10); }
.o_rs_stepper_item.is-active > span, .o_rs_stepper_item.is-complete > span { background: var(--rs-teal); color: white; }
.o_rs_help_card { padding: 1.25rem; border-radius: 20px; background: linear-gradient(135deg,#eefaf7,#f4fbff); border: 1px solid #d8eeee; }
.o_rs_help_card a { display: block; margin-top: .45rem; color: #2786c0; font-weight: 700; }
.o_rs_builder_main, .o_rs_builder_summary { background: white; border: 1px solid var(--rs-border); border-radius: 28px; box-shadow: var(--rs-shadow); }
.o_rs_builder_main { padding: 1.5rem; min-height: 650px; }
.o_rs_builder_panel { display: none; }
.o_rs_builder_panel.is-active { display: block; animation: rsFade .22s ease; }
@keyframes rsFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.o_rs_builder_nav { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--rs-border); }
.o_rs_moment_card { width: 100%; min-height: 125px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .5rem; border: 2px solid transparent; border-radius: 22px; background: #f7fafc; color: var(--rs-navy); }
.o_rs_moment_card span { font-size: 2.25rem; }
.o_rs_moment_card.is-selected { border-color: var(--rs-teal); background: var(--rs-mint); box-shadow: 0 10px 24px rgba(53,174,180,.12); }
.o_rs_step_card { min-height: 145px; width: 100%; position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .55rem; padding: .8rem; border: 2px solid transparent; border-radius: 20px; background: #f8fafc; color: var(--rs-navy); transition: .18s ease; }
.o_rs_step_card:hover { transform: translateY(-2px); border-color: #bfe2e5; background: white; }
.o_rs_step_card.is-selected { border-color: var(--rs-teal); background: var(--rs-mint); }
.o_rs_step_check { position: absolute; top: 8px; right: 8px; width: 24px; height: 24px; display: none; place-items: center; border-radius: 50%; background: var(--rs-teal); color: white; }
.o_rs_step_card.is-selected .o_rs_step_check { display: grid; }
.o_rs_step_emoji { font-size: 2rem; }
.o_rs_step_img { width: 58px; height: 58px; border-radius: 14px; object-fit: cover; }
.o_rs_builder_error { display: none; margin-top: 1rem; padding: .8rem 1rem; border-radius: 14px; background: #fff0f0; color: #9d3131; }
.o_rs_builder_error.is-visible { display: block; }
.o_rs_reorder_list { display: grid; gap: .65rem; }
.o_rs_reorder_item { display: flex; align-items: center; gap: .7rem; padding: .75rem; border: 1px solid var(--rs-border); border-radius: 16px; background: #fbfdff; }
.o_rs_drag_handle { cursor: grab; color: var(--rs-muted); font-size: 1.3rem; }
.o_rs_reorder_icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: var(--rs-cream); font-size: 1.35rem; }
.o_rs_theme_choices { display: flex; gap: .65rem; }
.o_rs_theme { width: 38px; height: 38px; border-radius: 50%; border: 3px solid white; box-shadow: 0 0 0 1px var(--rs-border); }
.o_rs_theme.is-selected { box-shadow: 0 0 0 3px var(--rs-teal); }
.o_rs_theme[data-theme="sky"] { background: #8ed6f4; } .o_rs_theme[data-theme="mint"] { background: #86d5bd; }
.o_rs_theme[data-theme="peach"] { background: #f5a99f; } .o_rs_theme[data-theme="sun"] { background: #ffd66e; }
.o_rs_theme[data-theme="lavender"] { background: #b9a8ea; }
.o_rs_builder_summary { top: 92px; padding: 1.25rem; }
.o_rs_builder_summary dl { margin: 1rem 0; }
.o_rs_builder_summary dt { color: var(--rs-muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.o_rs_builder_summary dd { padding-bottom: .6rem; margin-bottom: .6rem; border-bottom: 1px solid var(--rs-border); font-weight: 700; }
.o_rs_live_preview { display: grid; gap: .5rem; max-height: 360px; overflow: auto; }
.o_rs_preview_title { padding: .65rem; border-radius: 14px; text-align: center; font-family: Georgia,serif; font-weight: 700; }
.o_rs_preview_item { display: grid; grid-template-columns: 26px 34px 1fr; align-items: center; gap: .5rem; padding: .55rem; border-radius: 13px; background: #f8fafc; border: 1px solid var(--rs-border); font-size: .85rem; }
.o_rs_preview_index { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--rs-teal); color: white; font-size: .72rem; font-weight: 800; }
.o_rs_preview_icon { text-align: center; font-size: 1.3rem; }
.o_rs_price_box { margin-top: 1rem; padding: 1rem; display: grid; border-radius: 18px; background: linear-gradient(135deg,#eefaff,#fff8e8); }
.o_rs_price_box strong { font-size: 1.8rem; }
.o_rs_secure_notes { display: grid; gap: .4rem; margin-top: 1rem; color: var(--rs-muted); font-size: .78rem; }
.o_rs_final_preview { margin-top: 1rem; }
.o_rs_print_preview { padding: 1.25rem; border-radius: 24px; border: 1px solid rgba(23,51,95,.08); text-align: center; }
.o_rs_print_steps { display: grid; grid-template-columns: repeat(4,1fr); gap: .75rem; margin-top: 1rem; }
.o_rs_print_steps > div { min-height: 120px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; padding: .8rem; border-radius: 18px; background: white; border: 1px solid var(--rs-border); }
.o_rs_print_steps span { font-size: 2rem; }
.o_rs_print_steps strong { font-size: .85rem; }

.o_rs_portal_page { background: #fbfdff; }
.o_rs_stat_card { min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.2rem; border-radius: 24px; background: white; border: 1px solid var(--rs-border); box-shadow: 0 9px 28px rgba(23,51,95,.06); color: var(--rs-navy); }
.o_rs_stat_card span { font-size: 2rem; } .o_rs_stat_card small { color: var(--rs-muted); } .o_rs_stat_card strong { font-size: 1.8rem; }
.o_rs_saved_routine { display: flex; gap: .8rem; align-items: center; padding: .75rem; border: 1px solid var(--rs-border); border-radius: 16px; color: var(--rs-navy); }
.o_rs_saved_routine small { display: block; color: var(--rs-muted); }
.o_rs_routine_mini { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 14px; font-size: 1.6rem; }
.o_rs_routine_portal_card { border: 1px solid var(--rs-border); border-radius: 24px; overflow: hidden; background: white; box-shadow: 0 9px 28px rgba(23,51,95,.06); }
.o_rs_routine_cover { min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; }
.o_rs_routine_cover span { font-size: 2.5rem; }
.o_rs_empty_state { text-align: center; padding: 3rem 1rem; border: 1px dashed #b9d2da; border-radius: 24px; background: white; }

/* Boutique et fiches produit natives, uniquement sur ce site. */
.oe_website_sale .oe_product, .oe_website_sale .o_wsale_product_card { border-radius: 22px !important; border-color: var(--rs-border) !important; overflow: hidden; box-shadow: 0 9px 28px rgba(23,51,95,.06); }
.oe_website_sale .oe_product:hover, .oe_website_sale .o_wsale_product_card:hover { box-shadow: var(--rs-shadow); }
.oe_website_sale #products_grid_before { border-radius: 22px; }
.oe_website_sale #product_detail { padding-top: 2rem; }
.oe_website_sale #add_to_cart, .oe_website_sale .a-submit { border-radius: 999px; background: var(--rs-coral); border-color: var(--rs-coral); }

@media (max-width: 1199.98px) {
    .o_rs_header_actions { padding-bottom: .75rem; }
    .o_rs_header .navbar-collapse { padding-top: .75rem; }
}
@media (max-width: 991.98px) {
    .o_rs_hero_carousel .carousel-item, .o_rs_hero_carousel img { height: 390px; min-height: 390px; }
    .o_rs_builder_summary { position: static !important; }
    .o_rs_print_steps { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 575.98px) {
    .o_rs_brand img { width: 145px; }
    .o_rs_hero h1, .o_rs_page_hero h1 { font-size: 2.25rem; }
    .o_rs_hero_carousel .carousel-item, .o_rs_hero_carousel img { height: 330px; min-height: 330px; }
    .o_rs_slide_caption { left: 12px; right: 12px; bottom: 12px; }
    .o_rs_category_card { min-height: 150px; }
    .o_rs_builder_main { padding: 1rem; border-radius: 22px; }
    .o_rs_step_card { min-height: 125px; }
    .o_rs_builder_nav { flex-direction: column-reverse; }
    .o_rs_builder_nav .btn { width: 100%; }
}


/* V2.1 critical overrides: independent of the former wrapper class. */
.o_rs_header *, .o_rs_footer *, .o_rs_home *, .o_rs_builder_page *, .o_rs_portal_page * { box-sizing: border-box; }
.o_rs_header { min-height: 84px; }
.o_rs_header .container { max-width: 1320px; }
.o_rs_brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.o_rs_brand img { display: block; width: 190px !important; height: auto !important; max-height: 64px !important; object-fit: contain !important; }
.o_rs_header .navbar { min-height: 84px; }
.o_rs_header .navbar-nav { flex-wrap: nowrap; }
.o_rs_header .nav-link { white-space: nowrap; font-size: .94rem; }
.o_rs_header .btn-primary { padding: .78rem 1.2rem; }
.o_rs_header .navbar-toggler { border-color: var(--rs-border); }
.o_rs_header .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(53,174,180,.15); }

.o_rs_home section { position: relative; }
.o_rs_home .container { max-width: 1320px; }
.o_rs_hero { padding-top: 4.5rem !important; padding-bottom: 3.5rem !important; }
.o_rs_hero h1 { font-size: clamp(2.55rem, 4.8vw, 4.9rem); max-width: 720px; letter-spacing: -.035em; }
.o_rs_hero .lead { font-size: 1.1rem; max-width: 620px; }
.o_rs_hero_carousel { width: 100%; }
.o_rs_hero_carousel .carousel-item { position: relative; }
.o_rs_hero_carousel .o_rs_slide_fallback { height: 470px; display: grid; place-items: center; background: linear-gradient(135deg,#fff8e8,#eaf7ff); }
.o_rs_hero_carousel .o_rs_slide_fallback img { width: 100%; height: 100%; object-fit: cover; }

.o_rs_categories { padding-top: 1rem; }
.o_rs_categories .row { align-items: stretch; }
.o_rs_category_card strong { font-size: 1rem; line-height: 1.25; }

.o_rs_products .row > [class*="col-"] { display: flex; }
.o_rs_product_card { width: 100%; display: flex; flex-direction: column; }
.o_rs_product_card > .p-3 { flex: 1; display: flex; flex-direction: column; }
.o_rs_product_card h2 { min-height: 2.7em; font-family: inherit; font-weight: 800; line-height: 1.35; }
.o_rs_product_card .small { min-height: 3.2em; }
.o_rs_product_card .d-flex:last-child { margin-top: auto; }
.o_rs_product_image_wrap { aspect-ratio: 1 / 1.08; padding: 1rem; }
.o_rs_product_image_wrap img { object-fit: contain; border-radius: 16px; }

.o_rs_how_panel .row > div { position: relative; }
.o_rs_how_panel .row > div:not(:last-child)::after { content: "→"; position: absolute; right: -10px; top: 48%; color: #79bfc5; font-size: 1.45rem; }
.o_rs_testimonial_card { min-height: 100%; }
.o_rs_testimonial_card .o_rs_rating { margin-bottom: .5rem; }

.o_rs_freebie { background: linear-gradient(135deg,#fff8df,#fff2eb); border-top: 1px solid #f5e6cc; border-bottom: 1px solid #f5e6cc; }
.o_rs_freebie img { width: 100%; max-width: 330px; }

.o_rs_footer { position: relative; z-index: 2; }
.o_rs_footer .container { max-width: 1320px; }
.o_rs_footer_logo { display: block; width: 190px !important; height: auto !important; max-height: 72px !important; object-fit: contain !important; }
.o_rs_footer h5 { font-family: inherit; font-weight: 800; color: var(--rs-navy); }
.o_rs_footer .col-6 a, .o_rs_footer .col-lg-3 > a { line-height: 1.35; }
.o_rs_footer form { max-width: 380px; }

@media (max-width: 1199.98px) {
  .o_rs_header .navbar-nav { flex-wrap: wrap; }
  .o_rs_header .nav-link { padding: .6rem .55rem; }
  .o_rs_brand img { width: 170px !important; }
}
@media (max-width: 991.98px) {
  .o_rs_header .navbar { min-height: 72px; }
  .o_rs_header .navbar-collapse { background: #fff; padding: 1rem; margin-top: .7rem; border: 1px solid var(--rs-border); border-radius: 20px; box-shadow: var(--rs-shadow); }
  .o_rs_header .navbar-nav { gap: 0 !important; }
  .o_rs_header .nav-link { padding: .65rem .4rem; }
  .o_rs_hero { padding-top: 3rem !important; }
  .o_rs_how_panel .row > div:not(:last-child)::after { display: none; }
}
@media (max-width: 575.98px) {
  .o_rs_brand img { width: 145px !important; }
  .o_rs_hero h1 { font-size: 2.45rem; }
  .o_rs_hero .btn { width: 100%; }
  .o_rs_trust_row { display: grid; }
  .o_rs_footer_bottom .container { flex-direction: column; text-align: center; }
}

/* V2.2 — slider autonome, sans dépendance au composant Carousel d’Odoo/Bootstrap. */
.o_rs_hero_slider {
  position: relative;
  width: 100%;
  min-height: 470px;
  border-radius: 34px;
  overflow: hidden;
  background: #f6fbff;
  box-shadow: var(--rs-shadow);
  border: 1px solid rgba(23, 51, 95, .06);
  isolation: isolate;
}
.o_rs_hero_slides { position: relative; min-height: 470px; }
.o_rs_hero_slide {
  position: absolute;
  inset: 0;
  min-height: 470px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .55s ease, visibility .55s ease;
}
.o_rs_hero_slide.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}
.o_rs_hero_slide > img {
  display: block;
  width: 100%;
  height: 470px;
  object-fit: cover;
}
.o_rs_slider_control {
  position: absolute;
  top: 50%;
  z-index: 4;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: var(--rs-navy);
  box-shadow: 0 8px 24px rgba(23,51,95,.15);
  font-size: 2rem;
  line-height: 1;
}
.o_rs_slider_control:hover, .o_rs_slider_control:focus-visible { background: #fff; color: var(--rs-coral); }
.o_rs_slider_prev { left: 16px; }
.o_rs_slider_next { right: 16px; }
.o_rs_slider_dots {
  position: absolute;
  left: 50%;
  bottom: 10px;
  z-index: 5;
  display: flex;
  gap: 8px;
  padding: 7px 10px;
  transform: translateX(-50%);
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(8px);
}
.o_rs_slider_dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #a7b6c8;
  transition: width .2s ease, background .2s ease;
}
.o_rs_slider_dot.is-active { width: 24px; background: var(--rs-coral); }
@media (max-width: 991.98px) {
  .o_rs_hero_slider, .o_rs_hero_slides, .o_rs_hero_slide { min-height: 390px; }
  .o_rs_hero_slide > img { height: 390px; }
}
@media (max-width: 575.98px) {
  .o_rs_hero_slider, .o_rs_hero_slides, .o_rs_hero_slide { min-height: 330px; }
  .o_rs_hero_slide > img { height: 330px; }
  .o_rs_slider_control { width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .o_rs_hero_slide { transition: none; }
}

/* ========================================================================== */
/* Routine & Sourires V2.4 — carousel, account menu, builder and product media */
/* ========================================================================== */

.o_rs_site { --rs-page-width: 1320px; }
.o_rs_site .container { max-width: var(--rs-page-width); }

/* Account menu and logout */
.o_rs_account_menu { position: relative; }
.o_rs_account_menu > summary { list-style: none; cursor: pointer; border: 0; }
.o_rs_account_menu > summary::-webkit-details-marker { display: none; }
.o_rs_account_menu[open] > summary { background: var(--rs-sky); color: var(--rs-teal); }
.o_rs_account_dropdown {
  position: absolute; z-index: 1080; top: calc(100% + 12px); right: 0; min-width: 235px;
  padding: .7rem; border: 1px solid var(--rs-border); border-radius: 18px; background: #fff;
  box-shadow: 0 22px 55px rgba(23,51,95,.18);
}
.o_rs_account_dropdown::before { content: ""; position: absolute; top: -7px; right: 16px; width: 14px; height: 14px; background: #fff; border-left: 1px solid var(--rs-border); border-top: 1px solid var(--rs-border); transform: rotate(45deg); }
.o_rs_account_dropdown strong { display: block; padding: .55rem .7rem .65rem; border-bottom: 1px solid var(--rs-border); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.o_rs_account_dropdown a { display: flex; align-items: center; gap: .6rem; padding: .62rem .7rem; border-radius: 12px; color: var(--rs-navy); font-weight: 650; }
.o_rs_account_dropdown a:hover { background: var(--rs-sky); color: var(--rs-teal); }
.o_rs_account_dropdown a.o_rs_logout { color: #b54a45; border-top: 1px solid var(--rs-border); margin-top: .35rem; padding-top: .75rem; }

/* Carousel: image is the main visual and uses nearly the full frame. */
.o_rs_hero_slider { padding: 10px; background: linear-gradient(145deg,#eef8ff,#fff9e8); }
.o_rs_hero_slides { overflow: hidden; border-radius: 26px; background: #eaf7ff; }
.o_rs_hero_slide { overflow: hidden; border-radius: 26px; }
.o_rs_hero_slide .o_rs_slide_image { display: block; width: 100%; height: 100%; min-height: inherit; object-position: center; }
.o_rs_fit_cover .o_rs_slide_image { object-fit: cover; }
.o_rs_fit_contain .o_rs_slide_image { object-fit: contain; background: #f7fbfd; }
.o_rs_height_compact, .o_rs_height_compact .o_rs_hero_slides, .o_rs_height_compact .o_rs_hero_slide { min-height: 400px; }
.o_rs_height_compact .o_rs_slide_image { height: 400px; }
.o_rs_height_standard, .o_rs_height_standard .o_rs_hero_slides, .o_rs_height_standard .o_rs_hero_slide { min-height: 515px; }
.o_rs_height_standard .o_rs_slide_image { height: 515px; }
.o_rs_height_large, .o_rs_height_large .o_rs_hero_slides, .o_rs_height_large .o_rs_hero_slide { min-height: 590px; }
.o_rs_height_large .o_rs_slide_image { height: 590px; }
.o_rs_slide_caption { left: 22px; right: 22px; bottom: 20px; max-width: calc(100% - 44px); }

/* Builder shell */
.o_rs_builder_hero { padding-bottom: 2.5rem !important; }
.o_rs_builder_hero_preview { height: 250px; padding: 16px; border: 1px solid rgba(23,51,95,.07); border-radius: 30px; background: linear-gradient(145deg,#fff8e8,#eaf7ff); box-shadow: var(--rs-shadow); overflow: hidden; }
.o_rs_builder_hero_preview img { width: 100%; height: 100%; object-fit: contain; border-radius: 20px; }
.o_rs_builder_boot_error { padding: 1rem; margin-bottom: 1rem; border-radius: 16px; background: #ffe8e6; color: #9f332d; font-weight: 700; }
.o_rs_builder_steps { display: grid; gap: .7rem; }
.o_rs_step_nav { width: 100%; display: grid; grid-template-columns: 42px 1fr; column-gap: .75rem; align-items: center; text-align: left; padding: .95rem; border: 1px solid var(--rs-border); border-radius: 18px; background: #fff; color: var(--rs-navy); transition: .2s ease; }
.o_rs_step_nav > span { grid-row: 1 / span 2; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #e8f6f7; color: var(--rs-teal); font-weight: 800; }
.o_rs_step_nav strong { font-family: inherit; font-size: .93rem; }
.o_rs_step_nav small { display: block; color: var(--rs-muted); font-size: .75rem; line-height: 1.25; }
.o_rs_step_nav.is-active { border-color: var(--rs-teal); background: #f4fcfd; box-shadow: 0 8px 24px rgba(53,174,180,.10); }
.o_rs_step_nav.is-active > span { background: var(--rs-teal); color: #fff; }
.o_rs_step_nav.is-complete > span { background: #6ac5a7; color: #fff; }
.o_rs_help_card { padding: 1.15rem; border: 1px solid #cce8ec; border-radius: 18px; background: #eefafb; }
.o_rs_help_card p { margin: .4rem 0; color: var(--rs-muted); font-size: .85rem; }
.o_rs_help_card a { color: #258db1; font-weight: 700; font-size: .85rem; }
.o_rs_builder_main { min-height: 720px; padding: 1.45rem; border: 1px solid var(--rs-border); border-radius: 28px; background: #fff; box-shadow: 0 15px 45px rgba(23,51,95,.07); }
.o_rs_builder_panel { display: none; }
.o_rs_builder_panel.is-active { display: block; animation: rsFadeIn .22s ease; }
@keyframes rsFadeIn { from { opacity: .25; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.o_rs_builder_panel h2 { font-size: clamp(1.8rem,3vw,2.5rem); margin-top: .35rem; }
.o_rs_builder_nav { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: 1.5rem; padding-top: 1.1rem; border-top: 1px solid var(--rs-border); }
.o_rs_builder_error { display: none; margin-top: 1rem; padding: .75rem 1rem; border-radius: 14px; background: #fff0ef; color: #a83d36; font-weight: 650; }
.o_rs_builder_error.is-visible { display: block; }

/* Moment and template cards */
.o_rs_moment_card { width: 100%; min-height: 135px; padding: .8rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .55rem; border: 2px solid transparent; border-radius: 22px; background: #f6f9fb; color: var(--rs-navy); }
.o_rs_moment_card img { width: 64px; height: 64px; object-fit: contain; border-radius: 16px; }
.o_rs_moment_card:hover { transform: translateY(-3px); background: #f0fafb; }
.o_rs_moment_card.is-selected { border-color: var(--rs-teal); background: #eaf8f2; box-shadow: 0 10px 26px rgba(53,174,180,.12); }
.o_rs_template_card { position: relative; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 2px solid var(--rs-border); border-radius: 22px; background: #fff; text-align: left; color: var(--rs-navy); transition: .2s ease; }
.o_rs_template_card:hover { transform: translateY(-4px); box-shadow: var(--rs-shadow); }
.o_rs_template_card.is-selected { border-color: var(--rs-teal); box-shadow: 0 0 0 4px rgba(53,174,180,.13), var(--rs-shadow); }
.o_rs_template_image { display: block; height: 250px; padding: .6rem; background: linear-gradient(145deg,#f8fcff,#fff8e8); }
.o_rs_template_image img { width: 100%; height: 100%; object-fit: contain; border-radius: 15px; }
.o_rs_template_body { display: flex; flex-direction: column; gap: .3rem; padding: .95rem; }
.o_rs_template_body strong { font-size: 1rem; }
.o_rs_template_body small { min-height: 2.8em; color: var(--rs-muted); line-height: 1.4; }
.o_rs_template_body em { font-style: normal; color: var(--rs-teal); font-size: .75rem; font-weight: 700; }
.o_rs_template_check { position: absolute; top: 10px; right: 10px; width: 31px; height: 31px; display: none; place-items: center; border-radius: 50%; background: var(--rs-teal); color: #fff; }
.o_rs_template_card.is-selected .o_rs_template_check { display: grid; }

/* Step selection and ordering */
.o_rs_step_card { position: relative; width: 100%; min-height: 155px; padding: .75rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .55rem; border: 2px solid var(--rs-border); border-radius: 20px; background: #fff; color: var(--rs-navy); transition: .18s ease; }
.o_rs_step_card:hover { transform: translateY(-3px); border-color: #a8d9de; }
.o_rs_step_card.is-selected { border-color: var(--rs-teal); background: #effafa; box-shadow: 0 8px 22px rgba(53,174,180,.12); }
.o_rs_step_img { width: 76px; height: 76px; object-fit: contain; border-radius: 18px; }
.o_rs_step_card strong { text-align: center; font-size: .86rem; line-height: 1.25; }
.o_rs_step_check { position: absolute; top: 8px; right: 8px; width: 25px; height: 25px; display: none; place-items: center; border-radius: 50%; background: var(--rs-teal); color: white; font-size: .75rem; }
.o_rs_step_card.is-selected .o_rs_step_check { display: grid; }
.o_rs_reorder_list { display: grid; gap: .65rem; }
.o_rs_reorder_item { display: grid; grid-template-columns: 28px 48px 28px minmax(0,1fr) auto; gap: .6rem; align-items: center; padding: .65rem; border: 1px solid var(--rs-border); border-radius: 16px; background: #fbfdff; }
.o_rs_reorder_item.is-dragging { opacity: .55; border-color: var(--rs-teal); }
.o_rs_drag_handle { cursor: grab; color: #8b9aaa; text-align: center; }
.o_rs_reorder_item > img { width: 46px; height: 46px; object-fit: contain; border-radius: 12px; }
.o_rs_reorder_number { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--rs-teal); color: #fff; font-size: .75rem; font-weight: 800; }
.o_rs_reorder_actions { display: flex; gap: .25rem; }
.o_rs_reorder_actions button { width: 31px; height: 31px; border: 0; border-radius: 9px; background: #edf4f7; color: var(--rs-navy); }
.o_rs_reorder_actions button:hover { background: var(--rs-peach); color: var(--rs-coral); }

/* Formats */
.o_rs_format_choices { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .65rem; }
.o_rs_format_card { min-height: 115px; padding: .7rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; border: 2px solid var(--rs-border); border-radius: 17px; background: #fff; color: var(--rs-navy); }
.o_rs_format_card.is-selected { border-color: var(--rs-teal); background: #effafa; }
.o_rs_format_card.is-disabled { opacity: .35; cursor: not-allowed; filter: grayscale(1); }
.o_rs_paper { display: grid; place-items: center; border: 2px solid #9bb4c5; border-radius: 5px; color: #6d8292; font-size: .65rem; font-weight: 800; }
.o_rs_paper.portrait { width: 35px; height: 49px; }
.o_rs_paper.landscape { width: 49px; height: 35px; }
.o_rs_theme_choices { display: flex; flex-wrap: wrap; gap: .75rem; }
.o_rs_theme { width: 38px; height: 38px; border: 3px solid white; border-radius: 50%; box-shadow: 0 0 0 1px var(--rs-border); }
.o_rs_theme[data-theme="sky"] { background: #a8ddf1; }
.o_rs_theme[data-theme="mint"] { background: #a9ddc7; }
.o_rs_theme[data-theme="peach"] { background: #ffb7a8; }
.o_rs_theme[data-theme="sun"] { background: #ffd26b; }
.o_rs_theme[data-theme="lavender"] { background: #c8b8ef; }
.o_rs_theme.is-selected { box-shadow: 0 0 0 3px var(--rs-teal); }

/* Summary and generated preview */
.o_rs_builder_summary { top: 105px; padding: 1.1rem; border: 1px solid var(--rs-border); border-radius: 24px; background: #fff; box-shadow: 0 14px 42px rgba(23,51,95,.08); }
.o_rs_builder_summary dl { margin: 1rem 0; }
.o_rs_builder_summary dt { margin-top: .7rem; color: #7d8ca0; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.o_rs_builder_summary dd { padding-bottom: .55rem; margin: .15rem 0 0; border-bottom: 1px solid var(--rs-border); font-weight: 750; }
.o_rs_live_preview { margin: 1rem 0; max-height: 340px; overflow: auto; }
.o_rs_price_box { display: grid; gap: .2rem; padding: 1rem; border-radius: 18px; background: var(--rs-cream); }
.o_rs_price_box strong { font-size: 1.65rem; }
.o_rs_secure_notes { display: grid; gap: .5rem; margin-top: 1rem; color: var(--rs-muted); font-size: .75rem; }
.o_rs_secure_notes i { width: 17px; color: var(--rs-teal); }
.o_rs_generated_preview { --rs-preview-accent:#56bfd0; position: relative; overflow: hidden; padding: 1.4rem; border: 1px solid rgba(23,51,95,.08); border-radius: 28px; background: #dff3fb; color: var(--rs-navy); box-shadow: inset 0 0 0 8px rgba(255,255,255,.32); }
.o_rs_generated_preview header { position: relative; z-index: 1; text-align: center; padding: .35rem 0 1rem; }
.o_rs_generated_preview h3 { margin: 0; color: var(--rs-navy); font-size: clamp(1.5rem,3vw,2.25rem); }
.o_rs_preview_child { display: inline-block; margin-top: .45rem; padding: .35rem 1rem; border-radius: 999px; background: rgba(255,255,255,.75); }
.o_rs_generated_steps { position: relative; z-index: 1; display: grid; gap: .6rem; }
.o_rs_generated_step { display: grid; grid-template-columns: 28px 58px minmax(0,1fr) 34px; gap: .65rem; align-items: center; padding: .55rem .7rem; border: 2px solid rgba(255,116,106,.45); border-radius: 18px; background: rgba(255,255,255,.88); }
.o_rs_generated_step:nth-child(4n+2) { background: #fff7cc; }
.o_rs_generated_step:nth-child(4n+3) { background: #e6f5fb; }
.o_rs_generated-step:nth-child(4n+4) { background: #f2e6fb; }
.o_rs_generated_step img { width: 56px; height: 56px; object-fit: contain; border-radius: 14px; }
.o_rs_generated_index { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--rs-preview-accent); color: #fff; font-size: .7rem; font-weight: 800; }
.o_rs_generated_checkbox { width: 28px; height: 28px; border: 3px solid #ff6478; border-right-color: #a55cff; border-radius: 3px; background: #fff; }
.o_rs_generated_preview footer { position: relative; z-index: 1; padding-top: .7rem; text-align: center; color: #245aa2; font-family: Georgia,serif; font-size: 1.4rem; font-weight: 800; }
.o_rs_generated_preview.is-landscape .o_rs_generated_steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
.o_rs_generated_preview.is-landscape .o_rs_generated_step { grid-template-columns: 24px 48px minmax(0,1fr) 28px; }
.o_rs_generated_preview.is-landscape .o_rs_generated_step img { width: 46px; height: 46px; }
.o_rs_generated_preview.is-compact { padding: .7rem; border-radius: 18px; font-size: .67rem; }
.o_rs_generated_preview.is-compact h3 { font-size: .95rem; }
.o_rs_generated_preview.is-compact .o_rs_generated-step { padding: .25rem; }
.o_rs_generated_preview.is-compact .o_rs_generated_step { grid-template-columns: 16px 28px minmax(0,1fr) 18px; gap: .25rem; border-width: 1px; border-radius: 9px; padding: .25rem; }
.o_rs_generated_preview.is-compact .o_rs_generated_step img { width: 27px; height: 27px; border-radius: 7px; }
.o_rs_generated_preview.is-compact .o_rs_generated_index { width: 15px; height: 15px; font-size: .45rem; }
.o_rs_generated_preview.is-compact .o_rs_generated_checkbox { width: 16px; height: 16px; border-width: 2px; }
.o_rs_generated_preview.is-compact footer { font-size: .8rem; }
.o_rs_template_night { background: linear-gradient(180deg,#6e91bd,#c6e8f3); --rs-preview-accent:#6158bd; }
.o_rs_template_night h3, .o_rs_template_night footer { color: #fff; text-shadow: 0 1px 2px rgba(23,51,95,.25); }
.o_rs_template_school { background: #a8dce7; --rs-preview-accent:#3d8eb3; }
.o_rs_template_rainbow { background: linear-gradient(180deg,#c8e8f1,#eaf7ff); --rs-preview-accent:#ff7582; }
.o_rs_template_modern { background: linear-gradient(145deg,#edf9ff,#fff8e8); }
.o_rs_action_status { display: none; padding: .85rem 1rem; margin-top: 1rem; border-radius: 14px; }
.o_rs_action_status.is-visible { display: block; }
.o_rs_action_status.is-info { background: #eaf7ff; color: #245b79; }
.o_rs_action_status.is-success { background: #e7f8ef; color: #226445; }
.o_rs_action_status.is-danger { background: #ffe9e7; color: #9b3732; }
.o_rs_action_status a { font-weight: 800; }

/* Stable custom lightbox for product pages. */
.o_rs_no_scroll { overflow: hidden !important; }
.o_rs_lightbox { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 4rem 2rem 2rem; background: rgba(13,29,52,.88); backdrop-filter: blur(8px); }
.o_rs_lightbox_inner { width: min(1100px,94vw); height: min(820px,82vh); display: grid; place-items: center; }
.o_rs_lightbox_inner img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 18px; box-shadow: 0 24px 80px rgba(0,0,0,.35); }
.o_rs_lightbox_close { position: absolute; top: 20px; right: 24px; width: 46px; height: 46px; border: 0; border-radius: 50%; background: #fff; color: var(--rs-navy); font-size: 1.2rem; }
.o_rs_site #product_detail .o_wsale_product_images img, .o_rs_site #product_detail .product_detail_img { cursor: zoom-in; }

@media (max-width: 1199.98px) {
  .o_rs_account_dropdown { right: auto; left: 0; }
  .o_rs_account_dropdown::before { right: auto; left: 16px; }
}
@media (max-width: 991.98px) {
  .o_rs_height_compact, .o_rs_height_compact .o_rs_hero_slides, .o_rs_height_compact .o_rs_hero_slide,
  .o_rs_height_standard, .o_rs_height_standard .o_rs_hero_slides, .o_rs_height_standard .o_rs_hero_slide,
  .o_rs_height_large, .o_rs_height_large .o_rs_hero_slides, .o_rs_height_large .o_rs_hero_slide { min-height: 420px; }
  .o_rs_height_compact .o_rs_slide_image, .o_rs_height_standard .o_rs_slide_image, .o_rs_height_large .o_rs_slide_image { height: 420px; }
  .o_rs_builder-main { min-height: auto; }
  .o_rs_format_choices { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 575.98px) {
  .o_rs_hero_slider { padding: 6px; border-radius: 24px; }
  .o_rs_hero_slides, .o_rs_hero_slide { border-radius: 19px; }
  .o_rs_height_compact, .o_rs_height_compact .o_rs_hero_slides, .o_rs_height_compact .o_rs_hero_slide,
  .o_rs_height_standard, .o_rs_height_standard .o_rs_hero_slides, .o_rs_height_standard .o_rs_hero_slide,
  .o_rs_height_large, .o_rs_height_large .o_rs_hero_slides, .o_rs_height_large .o_rs_hero_slide { min-height: 345px; }
  .o_rs_height_compact .o_rs_slide_image, .o_rs_height_standard .o_rs_slide_image, .o_rs_height_large .o_rs_slide_image { height: 345px; }
  .o_rs_slide_caption { left: 10px; right: 10px; bottom: 9px; padding: .8rem; border-radius: 17px; }
  .o_rs_template_image { height: 215px; }
  .o_rs_reorder_item { grid-template-columns: 23px 40px minmax(0,1fr); }
  .o_rs_reorder_number { display: none; }
  .o_rs_reorder-actions { grid-column: 2 / -1; }
  .o_rs_reorder_actions { grid-column: 2 / -1; justify-content: flex-end; }
  .o_rs_generated_step { grid-template-columns: 22px 48px minmax(0,1fr) 28px; gap: .4rem; }
  .o_rs_generated_step img { width: 45px; height: 45px; }
  .o_rs_generated_preview.is-landscape .o_rs_generated_steps { grid-template-columns: 1fr; }
  .o_rs_builder_nav { flex-direction: column-reverse; }
  .o_rs_builder_nav .btn { width: 100%; }
}

/* ========================================================================== */
/* Routine & Sourires V2.5 — consolidation visuelle et créateur professionnel */
/* ========================================================================== */

/* Hero title deliberately behaves like a balanced H2, not a display heading. */
.o_rs_hero_title {
  max-width: 680px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.3rem, 3.45vw, 3.65rem);
  line-height: 1.08;
  letter-spacing: -.025em;
  color: var(--rs-navy);
}
.o_rs_hero_intro { max-width: 620px; color: #52667d; font-size: 1.08rem; line-height: 1.7; }
.o_rs_builder_title { font-size: clamp(2.35rem,4vw,4rem); line-height: 1.08; }

/* Carousel: almost the entire frame is media, while preserving a premium rim. */
.o_rs_hero_slider { padding: 5px; border-radius: 31px; background: rgba(255,255,255,.72); }
.o_rs_hero_slides, .o_rs_hero_slide { border-radius: 26px; }
.o_rs_hero_slide .o_rs_slide_image { object-fit: cover; }
.o_rs_site_fit_cover .o_rs_fit_auto .o_rs_slide_image,
.o_rs_fit_cover .o_rs_slide_image { object-fit: cover; }
.o_rs_site_fit_contain .o_rs_fit_auto .o_rs_slide_image,
.o_rs_fit_contain .o_rs_slide_image { object-fit: contain; background: linear-gradient(145deg,#eef9fb,#fff9ea); }
.o_rs_pos_top .o_rs_slide_image { object-position: center top; }
.o_rs_pos_bottom .o_rs_slide_image { object-position: center bottom; }
.o_rs_pos_left .o_rs_slide_image { object-position: left center; }
.o_rs_pos_right .o_rs_slide_image { object-position: right center; }
.o_rs_pos_center .o_rs_slide_image { object-position: center; }
.o_rs_slide_caption strong, .o_rs_slide_caption small, .o_rs_slide_caption a { display:block; }
.o_rs_slide_caption strong { font: 700 1.35rem/1.15 Georgia,serif; }
.o_rs_slide_caption small { margin:.25rem 0; color:var(--rs-muted); }
.o_rs_caption_left .o_rs_slide_caption { right:auto; width:min(390px,calc(100% - 44px)); }
.o_rs_caption_right .o_rs_slide_caption { left:auto; width:min(390px,calc(100% - 44px)); }
.o_rs_manage_carousel { display:inline-flex; align-items:center; margin-top:.8rem; padding:.55rem .85rem; border-radius:999px; background:#fff; border:1px solid var(--rs-border); color:#2786a5; font-size:.82rem; font-weight:750; box-shadow:0 6px 20px rgba(23,51,95,.06); }
.o_rs_manage_carousel:hover { color:var(--rs-coral); border-color:#ffc5bf; }

/* Compact, stable custom product gallery — no Owl ProductImageViewer. */
.o_rs_product_page { background:#fbfdff; }
.o_rs_product_page nav a { color:#d86032; font-weight:700; }
.o_rs_gallery { display:grid; gap:1rem; }
.o_rs_gallery_main { position:relative; min-height:530px; display:grid; place-items:center; padding:1.25rem; overflow:hidden; border:1px solid var(--rs-border); border-radius:30px; background:linear-gradient(145deg,#fff9eb,#edf9fb); box-shadow:var(--rs-shadow); }
.o_rs_gallery_main img { display:block; width:100%; height:100%; max-height:600px; object-fit:contain; border-radius:20px; }
.o_rs_gallery_thumbs { display:flex; flex-wrap:wrap; gap:.75rem; }
.o_rs_gallery_thumbs button { width:82px; height:82px; padding:5px; border:2px solid transparent; border-radius:15px; background:#fff; box-shadow:0 5px 18px rgba(23,51,95,.08); }
.o_rs_gallery_thumbs button.is-active { border-color:var(--rs-teal); }
.o_rs_gallery_thumbs img { width:100%; height:100%; object-fit:contain; border-radius:10px; }
.o_rs_product_title { font-size:clamp(2.25rem,4vw,3.8rem); line-height:1.08; }
.o_rs_product_price { font-size:2rem; font-weight:850; color:var(--rs-navy); }
.o_rs_product_badge_static { display:inline-block; margin-bottom:.8rem; padding:.4rem .8rem; border-radius:999px; background:#ff9b50; color:#fff; font-size:.8rem; font-weight:800; }
.o_rs_product_description { color:#4e6077; line-height:1.7; }
.o_rs_checklist { list-style:none; padding:0; margin:1.25rem 0; display:grid; gap:.55rem; }
.o_rs_checklist li::before { content:"✓"; display:inline-grid; place-items:center; width:22px; height:22px; margin-right:.55rem; border-radius:50%; background:#e5f7f2; color:#208a73; font-weight:900; }

/* Builder preview now resembles an actual printable product. */
.o_rs_generated_preview {
  isolation:isolate;
  min-height:560px;
  padding:1.55rem;
  background:linear-gradient(180deg,#dff3fb,#f4fbfe);
  box-shadow:0 20px 50px rgba(23,51,95,.13), inset 0 0 0 8px rgba(255,255,255,.42);
}
.o_rs_generated_preview::before { content:""; position:absolute; inset:0; z-index:-2; opacity:.13; background-image:var(--rs-template-preview); background-size:cover; background-position:center; filter:blur(2px) saturate(.85); }
.o_rs_generated_preview::after { content:""; position:absolute; inset:13px; z-index:-1; border-radius:22px; background:rgba(255,255,255,.5); }
.o_rs_preview_decor { position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 9% 8%,rgba(255,255,255,.9) 0 5%,transparent 5.5%),radial-gradient(circle at 91% 10%,rgba(255,255,255,.8) 0 6%,transparent 6.5%); }
.o_rs_generated_preview header { padding:.45rem 0 1rem; }
.o_rs_generated_preview header h3 { font-size:clamp(1.75rem,3vw,2.7rem); }
.o_rs_generated_steps { padding:.9rem; border-radius:23px; background:rgba(255,255,255,.88); box-shadow:0 10px 30px rgba(23,51,95,.07); }
.o_rs_generated_icon { display:grid; place-items:center; width:58px; height:58px; border-radius:15px; background:#fff; }
.o_rs_generated_icon img { width:52px; height:52px; object-fit:contain; }
.o_rs_layout_list .o_rs_generated_steps { grid-template-columns:1fr; }
.o_rs_layout_cards .o_rs_generated_steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
.o_rs_layout_cards .o_rs_generated_step { min-height:132px; grid-template-columns:26px 62px minmax(0,1fr) 30px; }
.o_rs_template_sunrise { background:linear-gradient(180deg,#dff4fb 0%,#fff8d9 100%); --rs-preview-accent:#ff7781; }
.o_rs_template_bedtime { background:linear-gradient(180deg,#526fa8 0%,#9bc6df 68%,#d9edf5 100%); --rs-preview-accent:#7966d8; }
.o_rs_template_bedtime h3, .o_rs_template_bedtime footer { color:#fff; text-shadow:0 1px 3px rgba(18,43,76,.35); }
.o_rs_template_school { background:linear-gradient(180deg,#9edbe6,#dff4f8); --rs-preview-accent:#3c96bb; }
.o_rs_template_meadow { background:linear-gradient(180deg,#e5f6e9,#fff6d9); --rs-preview-accent:#68af7a; }
.o_rs_template_calm { background:linear-gradient(180deg,#eee9fb,#e5f7f4); --rs-preview-accent:#8e77c8; }
.o_rs_template_modern { background:linear-gradient(145deg,#eefaff,#fff8e8); --rs-preview-accent:#45a8be; }
.o_rs_generated_preview.is-landscape { min-height:420px; }
.o_rs_generated_preview.is-landscape .o_rs_generated_steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
.o_rs_generated_preview.is-compact { min-height:260px; padding:.65rem; }
.o_rs_generated_preview.is-compact::after { inset:6px; border-radius:14px; }
.o_rs_generated_preview.is-compact .o_rs_generated_steps { padding:.4rem; gap:.35rem; }
.o_rs_generated_preview.is-compact .o_rs_generated_icon { width:30px; height:30px; border-radius:8px; }
.o_rs_generated_preview.is-compact .o_rs_generated_icon img { width:27px; height:27px; }

/* Make the template library feel like a premium gallery. */
.o_rs_template_image { height:285px; }
.o_rs_template_body small { min-height:3.8em; }
.o_rs_builder_summary { max-height:calc(100vh - 125px); overflow:auto; }

@media (max-width:991.98px) {
  .o_rs_hero_title { max-width:none; }
  .o_rs_gallery_main { min-height:430px; }
  .o_rs_builder_summary { max-height:none; overflow:visible; }
}
@media (max-width:575.98px) {
  .o_rs_hero_title { font-size:2.35rem; }
  .o_rs_hero_intro { font-size:1rem; }
  .o_rs_hero_slider { padding:3px; }
  .o_rs_slide_caption { max-width:calc(100% - 20px); }
  .o_rs_caption_left .o_rs_slide_caption, .o_rs_caption_right .o_rs_slide_caption { left:10px; right:10px; width:auto; }
  .o_rs_gallery_main { min-height:340px; padding:.75rem; }
  .o_rs_layout_cards .o_rs_generated_steps, .o_rs_generated_preview.is-landscape .o_rs_generated_steps { grid-template-columns:1fr; }
  .o_rs_generated_preview { min-height:500px; padding:.75rem; }
}

/* ==========================================================
   Routine & Sourires V2.6 — accueil premium statique
   Le carrousel est volontairement retiré de la page d’accueil.
   ========================================================== */
.o_rs_home_v26 {
  --rs-v26-container: 1240px;
  background: #fff;
  color: #17335f;
}
.o_rs_home_v26 .container { max-width: var(--rs-v26-container); }
.o_rs_home_v26 h2,
.o_rs_home_v26 h3 { letter-spacing: -.018em; }

/* Header closer to the approved visual. */
.o_rs_site .o_rs_header { min-height: 76px; box-shadow: 0 1px 0 rgba(23,51,95,.07); }
.o_rs_site .o_rs_header .navbar { min-height: 76px; }
.o_rs_site .o_rs_header .container { max-width: 1240px; }
.o_rs_site .o_rs_brand img { width: 158px !important; max-height: 54px !important; }
.o_rs_site .o_rs_header .nav-link { font-size: .89rem; font-weight: 700; padding: .65rem .72rem; }
.o_rs_site .o_rs_header .btn-primary { padding: .7rem 1.15rem; font-size: .88rem; }
.o_rs_site .o_rs_icon_btn { width: 38px; height: 38px; background: #fbfdff; }

/* Hero */
.o_rs_v26_hero {
  padding: 3.25rem 0 2.1rem;
  background:
    radial-gradient(circle at 80% 12%, rgba(125,205,213,.17), transparent 31%),
    linear-gradient(110deg, #eef9ff 0%, #f8fcff 50%, #fffdf8 100%);
}
.o_rs_v26_hero_copy { position: relative; z-index: 1; }
.o_rs_v26_hero_title {
  max-width: 570px;
  margin: .8rem 0 0;
  font-size: clamp(2.15rem, 3.55vw, 3.55rem);
  line-height: 1.08;
  color: #17335f;
}
.o_rs_v26_hero_intro {
  max-width: 520px;
  margin: 1.15rem 0 0;
  color: #4f6076;
  font-size: 1.04rem;
  line-height: 1.65;
}
.o_rs_v26_ctas { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 1.45rem; }
.o_rs_v26_ctas .btn { padding: .76rem 1.35rem; font-size: .94rem; }
.o_rs_v26_hero_visual {
  position: relative;
  overflow: hidden;
  border-radius: 0 0 42px 42px;
  min-height: 390px;
}
.o_rs_v26_hero_visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 390px;
  object-fit: cover;
  object-position: center;
  mix-blend-mode: multiply;
}
.o_rs_v26_trust {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .8rem;
  max-width: 530px;
  margin-top: 1.45rem;
}
.o_rs_v26_trust > div {
  display: grid;
  grid-template-columns: 30px 1fr;
  grid-template-rows: auto auto;
  column-gap: .55rem;
  align-items: center;
}
.o_rs_v26_trust_icon {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #ff746a;
  font-size: 1.22rem;
}
.o_rs_v26_trust strong { font-size: .72rem; line-height: 1.1; }
.o_rs_v26_trust small { color: #607086; font-size: .68rem; line-height: 1.2; }

/* Categories */
.o_rs_v26_categories { padding: 1.5rem 0 1.8rem; background: #fff; }
.o_rs_v26_category {
  min-height: 184px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
  padding: .55rem .8rem 1.05rem;
  border: 1px solid rgba(23,51,95,.055);
  border-radius: 23px;
  color: #17335f;
  text-align: center;
  transition: transform .18s ease, box-shadow .18s ease;
}
.o_rs_v26_category:hover { color: #17335f; transform: translateY(-4px); box-shadow: 0 16px 36px rgba(23,51,95,.09); }
.o_rs_v26_category img { width: 100%; height: 92px; object-fit: cover; object-position: center; margin-bottom: .38rem; border-radius: 16px; }
.o_rs_v26_category strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.02rem; line-height: 1.18; }
.o_rs_v26_category small { margin-top: .25rem; color: #41536d; font-size: .77rem; line-height: 1.26; }
.o_rs_v26_category_sun { background: #fff8e7; }
.o_rs_v26_category_moon { background: #f2efff; }
.o_rs_v26_category_mint { background: #eaf8f2; }
.o_rs_v26_category_peach { background: #fff0ec; }
.o_rs_v26_category_sky { background: #eaf7ff; }

/* Products */
.o_rs_v26_products { padding: .5rem 0 2.2rem; background: #fff; }
.o_rs_v26_section_head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.o_rs_v26_section_head h2 { margin: 0; font-size: 1.72rem; }
.o_rs_v26_section_head a { color: #2786c0; font-weight: 700; font-size: .84rem; }
.o_rs_v26_spark { font-family: Arial, sans-serif; }
.o_rs_v26_product_card {
  overflow: hidden;
  border: 1px solid #e2ebf0;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(23,51,95,.055);
  transition: transform .18s ease, box-shadow .18s ease;
}
.o_rs_v26_product_card:hover { transform: translateY(-4px); box-shadow: 0 17px 38px rgba(23,51,95,.10); }
.o_rs_v26_product_image { display: block; height: 170px; overflow: hidden; background: #fbf7ed; }
.o_rs_v26_product_image img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transform: scale(1.02); }
.o_rs_v26_product_body { padding: .85rem .85rem 1rem; }
.o_rs_v26_product_body h3 { min-height: 42px; margin: 0 0 .35rem; font-family: ui-rounded, "Avenir Next", "Segoe UI", Arial, sans-serif; font-size: .86rem; line-height: 1.28; }
.o_rs_v26_product_body h3 a { color: #17335f; }
.o_rs_v26_rating { color: #ffb12b; font-size: .78rem; letter-spacing: .035em; }
.o_rs_v26_rating small { color: #718096; letter-spacing: 0; margin-left: .25rem; font-size: .67rem; }
.o_rs_v26_price { display: block; margin-top: .45rem; font-size: 1.05rem; }

/* How it works */
.o_rs_v26_how { padding: 0 0 1.25rem; }
.o_rs_v26_how_panel {
  padding: 1.2rem 1.45rem 1.45rem;
  border: 1px solid #dfeeed;
  border-radius: 28px;
  background: linear-gradient(135deg, #eff9f6, #f5fbff);
}
.o_rs_v26_how_panel > h2 { margin: 0 0 .9rem; text-align: center; font-size: 1.55rem; }
.o_rs_v26_how_card {
  position: relative;
  height: 100%;
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: .75rem;
  align-items: center;
  padding: .8rem 1rem;
  border-radius: 22px;
  background: rgba(255,255,255,.78);
}
.o_rs_v26_step_number { position: absolute; top: -.5rem; left: .5rem; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #52b9be; color: #fff; font-weight: 800; font-size: .78rem; }
.o_rs_v26_how_icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 17px; background: #e5f7f6; color: #36aeb5; font-size: 1.8rem; }
.o_rs_v26_how_card h3 { margin: 0 0 .2rem; font-family: ui-rounded, "Avenir Next", "Segoe UI", Arial, sans-serif; font-size: .96rem; }
.o_rs_v26_how_card p { margin: 0; color: #4f6076; font-size: .76rem; line-height: 1.4; }

/* Benefits */
.o_rs_v26_benefits { padding: 0 0 1.6rem; }
.o_rs_v26_benefit_panel { overflow: hidden; border: 1px solid #f0e6d5; border-radius: 19px; background: #fffdf8; }
.o_rs_v26_benefit { min-height: 92px; display: grid; grid-template-columns: 58px 1fr; gap: .8rem; align-items: center; padding: 1rem 1.25rem; }
.o_rs_v26_benefit span { font-size: 2.2rem; text-align: center; }
.o_rs_v26_benefit strong { display: block; font-size: .83rem; }
.o_rs_v26_benefit small { display: block; margin-top: .2rem; color: #56677c; font-size: .69rem; line-height: 1.35; }

/* Testimonials */
.o_rs_v26_testimonials { padding: .15rem 0 1.8rem; }
.o_rs_v26_testimonials h2 { margin: 0; font-size: 1.68rem; }
.o_rs_v26_demo_disclaimer { margin: .25rem 0 .85rem; color: #8390a0; font-size: .72rem; }
.o_rs_v26_testimonial {
  height: 100%;
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: .8rem;
  align-items: start;
  padding: 1rem;
  border-radius: 18px;
  background: #fffaf2;
}
.o_rs_v26_testimonial img { width: 70px; height: 70px; object-fit: cover; border-radius: 50%; }
.o_rs_v26_testimonial blockquote { margin: .25rem 0 .55rem; color: #42536a; font-size: .73rem; line-height: 1.46; }
.o_rs_v26_testimonial strong { display: block; font-size: .75rem; }
.o_rs_v26_testimonial small { display: block; color: #607086; font-size: .67rem; }

/* Free lead magnet */
.o_rs_v26_freebie_section { padding: 0 0 1.65rem; }
.o_rs_v26_freebie {
  display: grid;
  grid-template-columns: 220px minmax(260px,1fr) minmax(340px,1.15fr);
  gap: 1.15rem;
  align-items: center;
  overflow: hidden;
  padding: .85rem 1.3rem;
  border-radius: 22px;
  background: linear-gradient(100deg, #fff1bd 0%, #fff9e5 58%, #fff0dc 100%);
}
.o_rs_v26_freebie > img { width: 220px; height: 112px; object-fit: cover; object-position: left center; border-radius: 13px; }
.o_rs_v26_freebie_copy h2 { margin: 0; font-size: 1.42rem; }
.o_rs_v26_freebie_copy p { margin: .3rem 0 0; color: #4c5d73; font-size: .78rem; line-height: 1.45; }
.o_rs_v26_freebie_form form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .55rem; }
.o_rs_v26_freebie-form .form-control,
.o_rs_v26_freebie_form .form-control { min-height: 44px; border-radius: 999px; background: #fff; }
.o_rs_v26_freebie_form .btn { white-space: nowrap; padding-left: 1.25rem; padding-right: 1.25rem; }
.o_rs_v26_freebie_form small { display: block; margin-top: .45rem; color: #6b7582; font-size: .66rem; }

/* Footer more compact and aligned with the approved mockup. */
.o_rs_site .o_rs_footer .container { max-width: 1240px; }
.o_rs_site .o_rs_footer { border-top: 0; }
.o_rs_site .o_rs_footer .py-5 { padding-top: 2.2rem !important; padding-bottom: 2rem !important; }
.o_rs_site .o_rs_footer_logo { width: 150px; }
.o_rs_site .o_rs_footer p,
.o_rs_site .o_rs_footer a { font-size: .76rem; }
.o_rs_site .o_rs_footer h5 { font-family: ui-rounded, "Avenir Next", "Segoe UI", Arial, sans-serif; font-size: .86rem; }
.o_rs_site .o_rs_footer_bottom { font-size: .72rem; }

@media (max-width: 991.98px) {
  .o_rs_v26_hero { padding-top: 2.5rem; }
  .o_rs_v26_hero_visual { min-height: auto; margin-top: .5rem; }
  .o_rs_v26_hero_visual img { min-height: 0; }
  .o_rs_v26_trust { grid-template-columns: 1fr; max-width: 340px; }
  .o_rs_v26_freebie { grid-template-columns: 180px 1fr; }
  .o_rs_v26_freebie_form { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) {
  .o_rs_v26_hero_title { font-size: clamp(2rem, 10vw, 2.75rem); }
  .o_rs_v26_hero_intro { font-size: .96rem; }
  .o_rs_v26_ctas .btn { width: 100%; }
  .o_rs_v26_category { min-height: 160px; }
  .o_rs_v26_category img { height: 76px; }
  .o_rs_v26_product_image { height: 210px; }
  .o_rs_v26_how_card { grid-template-columns: 58px 1fr; }
  .o_rs_v26_benefit { min-height: auto; }
  .o_rs_v26_freebie { grid-template-columns: 1fr; text-align: center; }
  .o_rs_v26_freebie > img { width: 100%; height: 150px; }
  .o_rs_v26_freebie_form form { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .o_rs_site .o_rs_brand img { width: 138px !important; }
  .o_rs_v26_hero { padding-top: 2rem; }
  .o_rs_v26_category strong { font-size: .9rem; }
  .o_rs_v26_category small { font-size: .7rem; }
  .o_rs_v26_section_head { align-items: start; }
  .o_rs_v26_section_head h2 { font-size: 1.45rem; }
  .o_rs_v26_product_image { height: 185px; }
  .o_rs_v26_testimonial { grid-template-columns: 58px 1fr; }
  .o_rs_v26_testimonial img { width: 56px; height: 56px; }
}

/* V2.7 — Two clear customer paths: ready-made or personalized routines */
.o_rs_v27_paths { padding: .15rem 0 1.45rem; }
.o_rs_v27_paths_panel {
  padding: 1.65rem;
  border: 1px solid #dfeeed;
  border-radius: 30px;
  background: linear-gradient(135deg, #eff9f6 0%, #f8fbff 52%, #fffaf0 100%);
  box-shadow: 0 18px 48px rgba(35, 74, 105, .06);
}
.o_rs_v27_paths_head { max-width: 760px; margin: 0 auto 1.3rem; text-align: center; }
.o_rs_v27_paths_head h2 { margin: .25rem 0 .45rem; font-size: clamp(1.65rem, 2.5vw, 2.15rem); }
.o_rs_v27_paths_head p { margin: 0; color: #52657a; font-size: .9rem; line-height: 1.55; }
.o_rs_v27_path_card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 1.35rem;
  overflow: hidden;
  border: 1px solid rgba(28, 65, 100, .08);
  border-radius: 24px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 32px rgba(38, 75, 105, .07);
}
.o_rs_v27_path_ready { background: linear-gradient(145deg, #fffdf8 0%, #fff8e8 100%); }
.o_rs_v27_path_custom { background: linear-gradient(145deg, #ffffff 0%, #eefafa 100%); }
.o_rs_v27_path_top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }
.o_rs_v27_path_badge {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: .32rem .7rem;
  border-radius: 999px;
  background: #fff0c8;
  color: #9c6511;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.o_rs_v27_path_custom .o_rs_v27_path_badge { background: #dff6f4; color: #217f84; }
.o_rs_v27_path_icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 17px;
  background: #fff0c8;
  color: #e58b20;
  font-size: 1.45rem;
}
.o_rs_v27_path_custom .o_rs_v27_path_icon { background: #ddf5f3; color: #35aeb4; }
.o_rs_v27_path_card h3 { margin: 0 0 .4rem; font-size: 1.25rem; }
.o_rs_v27_path_intro { margin: 0 0 .95rem; color: #52657a; font-size: .82rem; line-height: 1.55; }
.o_rs_v27_path_steps { display: grid; gap: .65rem; margin: 0 0 1.15rem; padding: 0; list-style: none; }
.o_rs_v27_path_steps li { display: grid; grid-template-columns: 30px 1fr; gap: .7rem; align-items: start; }
.o_rs_v27_path_steps li > span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #ffb94a;
  color: #fff;
  font-size: .7rem;
  font-weight: 800;
}
.o_rs_v27_path_custom .o_rs_v27_path_steps li > span { background: #55bcc1; }
.o_rs_v27_path_steps strong { display: block; color: #17335f; font-size: .8rem; }
.o_rs_v27_path_steps small { display: block; margin-top: .1rem; color: #627287; font-size: .69rem; line-height: 1.4; }
.o_rs_v27_path_cta { align-self: flex-start; margin-top: auto; min-width: 230px; }
.o_rs_v27_download_note {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: .9rem;
  align-items: center;
  margin-top: 1.05rem;
  padding: .9rem 1.15rem;
  border: 1px dashed #b9dedc;
  border-radius: 19px;
  background: rgba(255,255,255,.74);
}
.o_rs_v27_download_icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: #e4f7f5;
  color: #36aeb5;
  font-size: 1.3rem;
}
.o_rs_v27_download_note strong { display: block; color: #17335f; font-size: .86rem; }
.o_rs_v27_download_note span { display: block; margin-top: .12rem; color: #5f7084; font-size: .73rem; line-height: 1.45; }
@media (max-width: 767.98px) {
  .o_rs_v27_paths_panel { padding: 1.1rem; border-radius: 24px; }
  .o_rs_v27_path_card { padding: 1.1rem; }
  .o_rs_v27_path_cta { width: 100%; min-width: 0; }
  .o_rs_v27_download_note { grid-template-columns: 44px 1fr; padding: .8rem; }
  .o_rs_v27_download_icon { width: 42px; height: 42px; }
}


/* V2.8 — Premium dual-path section: ready-made vs personalized routines */
.o_rs_v28_paths {
  padding: 1rem 0 2rem;
  background: #fff;
}
.o_rs_v28_paths_head {
  max-width: 760px;
  margin: 0 auto 1.45rem;
  text-align: center;
}
.o_rs_v28_paths_head h2 {
  margin: .28rem 0 .45rem;
  color: #17335f;
  font-size: clamp(1.65rem, 2.5vw, 2.2rem);
  line-height: 1.12;
}
.o_rs_v28_paths_head p {
  margin: 0;
  color: #5d6f82;
  font-size: 1.02rem;
  line-height: 1.6;
}
.o_rs_v28_paths_grid {
  --bs-gutter-x: 1.35rem;
}
.o_rs_v28_path_card {
  display: grid;
  grid-template-columns: minmax(175px, 36%) 1fr;
  min-height: 390px;
  overflow: hidden;
  border: 1px solid rgba(34, 71, 104, .09);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(33, 72, 103, .10);
  transition: transform .25s ease, box-shadow .25s ease;
}
.o_rs_v28_path_card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 56px rgba(33, 72, 103, .14);
}
.o_rs_v28_path_ready { background: linear-gradient(145deg, #fffefa 0%, #fff9ec 100%); }
.o_rs_v28_path_custom { background: linear-gradient(145deg, #ffffff 0%, #eefbfa 100%); }
.o_rs_v28_path_visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  padding: 1.25rem .8rem;
  overflow: hidden;
}
.o_rs_v28_path_ready .o_rs_v28_path_visual { background: linear-gradient(160deg, #fff3d5 0%, #fffaf0 100%); }
.o_rs_v28_path_custom .o_rs_v28_path_visual { background: linear-gradient(160deg, #dff7f4 0%, #effbfa 100%); }
.o_rs_v28_path_visual::after {
  content: "";
  position: absolute;
  inset: auto -35px -55px auto;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: rgba(255,255,255,.48);
}
.o_rs_v28_path_visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 205px;
  max-height: 275px;
  object-fit: contain;
  border-radius: 18px;
  filter: drop-shadow(0 14px 18px rgba(35, 61, 83, .14));
}
.o_rs_v28_path_custom .o_rs_v28_path_visual img {
  max-width: 168px;
  max-height: 260px;
}
.o_rs_v28_path_badge {
  position: absolute;
  z-index: 3;
  top: 1rem;
  left: 1rem;
  display: inline-flex;
  align-items: center;
  max-width: calc(100% - 2rem);
  min-height: 28px;
  padding: .35rem .7rem;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #9b6412;
  box-shadow: 0 7px 18px rgba(40, 66, 91, .10);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .045em;
  line-height: 1.15;
  text-transform: uppercase;
}
.o_rs_v28_path_custom .o_rs_v28_path_badge { color: #267c81; }
.o_rs_v28_path_content {
  display: flex;
  flex-direction: column;
  padding: 1.45rem 1.5rem 1.5rem;
}
.o_rs_v28_path_title_row {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: .8rem;
  align-items: center;
  margin-bottom: .8rem;
}
.o_rs_v28_path_icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: #fff0c8;
  color: #e78d23;
  font-size: 1.2rem;
  box-shadow: inset 0 0 0 1px rgba(231, 141, 35, .08);
}
.o_rs_v28_path_custom .o_rs_v28_path_icon {
  background: #dff6f4;
  color: #39aeb4;
}
.o_rs_v28_path_title_row small {
  display: block;
  margin-bottom: .1rem;
  color: #7a8997;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.o_rs_v28_path_title_row h3 {
  margin: 0;
  color: #17335f;
  font-size: 1.34rem;
  line-height: 1.22;
}
.o_rs_v28_path_content > p {
  margin: 0 0 .9rem;
  color: #5c6e80;
  font-size: .95rem;
  line-height: 1.58;
}
.o_rs_v28_path_steps {
  display: grid;
  gap: .63rem;
  margin: 0 0 1.1rem;
  padding: 0;
  list-style: none;
}
.o_rs_v28_path_steps li {
  display: grid;
  grid-template-columns: 25px 1fr;
  gap: .65rem;
  align-items: start;
}
.o_rs_v28_path_steps li > span {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  margin-top: .05rem;
  border-radius: 50%;
  background: #fff1c9;
  color: #dc841d;
  font-size: .62rem;
}
.o_rs_v28_path_custom .o_rs_v28_path_steps li > span {
  background: #dff6f4;
  color: #2b9fa5;
}
.o_rs_v28_path_steps strong,
.o_rs_v28_path_steps small {
  display: block;
}
.o_rs_v28_path_steps strong {
  color: #17335f;
  font-size: .92rem;
  line-height: 1.3;
}
.o_rs_v28_path_steps small {
  margin-top: .1rem;
  color: #68798a;
  font-size: .82rem;
  line-height: 1.45;
}
.o_rs_v28_path_cta {
  align-self: flex-start;
  margin-top: auto;
  min-width: 245px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .92rem;
  font-weight: 800;
}
.o_rs_v28_common_band {
  display: grid;
  grid-template-columns: 1.1fr 1.4fr;
  gap: 1rem;
  align-items: center;
  margin-top: 1.25rem;
  padding: 1rem 1.2rem;
  border: 1px solid #dfeeed;
  border-radius: 22px;
  background: linear-gradient(90deg, #f4fbfa 0%, #fffaf0 100%);
  box-shadow: 0 12px 30px rgba(33, 72, 103, .06);
}
.o_rs_v28_common_intro {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: .75rem;
  align-items: center;
}
.o_rs_v28_common_icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: #fff;
  color: #f06f5f;
  box-shadow: 0 7px 18px rgba(33, 72, 103, .08);
  font-size: 1.05rem;
}
.o_rs_v28_common_intro strong,
.o_rs_v28_common_intro small {
  display: block;
}
.o_rs_v28_common_intro strong { color: #17335f; font-size: .96rem; line-height: 1.35; }
.o_rs_v28_common_intro small { margin-top: .18rem; color: #6b7b8c; font-size: .8rem; line-height: 1.45; }
.o_rs_v28_common_features {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .55rem .9rem;
}
.o_rs_v28_common_features span {
  display: flex;
  align-items: center;
  gap: .42rem;
  color: #425d74;
  font-size: .84rem;
  font-weight: 750;
}
.o_rs_v28_common_features i { color: #4bb9bd; }
@media (max-width: 991.98px) {
  .o_rs_v28_path_card { grid-template-columns: 180px 1fr; }
  .o_rs_v28_common_band { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .o_rs_v28_paths { padding: .6rem 0 1.4rem; }
  .o_rs_v28_paths_head { margin-bottom: 1rem; text-align: left; }
  .o_rs_v28_paths_head h2 { font-size: 1.6rem; }
  .o_rs_v28_path_card { grid-template-columns: 1fr; border-radius: 22px; }
  .o_rs_v28_path_visual { min-height: 205px; padding: 2.6rem 1rem 1rem; }
  .o_rs_v28_path_visual img { max-height: 190px; max-width: 220px; }
  .o_rs_v28_path_custom .o_rs_v28_path_visual img { max-height: 180px; }
  .o_rs_v28_path_content { padding: 1.1rem; }
  .o_rs_v28_path_cta { width: 100%; min-width: 0; }
  .o_rs_v28_common_band { padding: .9rem; border-radius: 18px; }
  .o_rs_v28_common_features { grid-template-columns: 1fr; }
}

/* V2.9 — Typographie renforcée pour une lecture plus confortable */
@media (max-width: 991.98px) {
  .o_rs_v28_path_title_row h3 { font-size: 1.24rem; }
  .o_rs_v28_path_content > p { font-size: .92rem; }
  .o_rs_v28_path_steps strong { font-size: .9rem; }
  .o_rs_v28_path_steps small { font-size: .8rem; }
  .o_rs_v28_path_cta { font-size: .9rem; }
}
@media (max-width: 767.98px) {
  .o_rs_v28_paths_head p { font-size: .96rem; }
  .o_rs_v28_path_title_row h3 { font-size: 1.2rem; }
  .o_rs_v28_path_content > p { font-size: .9rem; }
  .o_rs_v28_path_steps strong { font-size: .88rem; }
  .o_rs_v28_path_steps small { font-size: .79rem; }
  .o_rs_v28_common_intro strong { font-size: .9rem; }
  .o_rs_v28_common_intro small { font-size: .78rem; }
  .o_rs_v28_common_features span { font-size: .82rem; }
}

/* ================================================================
   V2.10 — Architecture de boutique, méga-menu et cartes produit
   ================================================================ */
.o_rs_header { z-index: 1040; }
.o_rs_header .navbar { overflow: visible; }
.o_rs_mega_nav { position: static; }
.o_rs_mega_details { position: static; }
.o_rs_mega_details > summary { list-style: none; cursor: pointer; user-select: none; }
.o_rs_mega_details > summary::-webkit-details-marker { display: none; }
.o_rs_mega_details[open] > summary,
.o_rs_mega_details > summary:hover { color: var(--rs-coral); }
.o_rs_mega_panel {
    position: absolute;
    z-index: 1080;
    top: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    width: min(1180px, calc(100vw - 32px));
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0;
    padding: 1.45rem 1.25rem;
    background: rgba(255,255,255,.98);
    border: 1px solid #e5edf2;
    border-radius: 24px;
    box-shadow: 0 24px 60px rgba(23,51,95,.16);
    backdrop-filter: blur(12px);
}
.o_rs_mega_col { min-width: 0; padding: .15rem 1rem; border-right: 1px solid #edf1f4; }
.o_rs_mega_col:last-child { border-right: 0; }
.o_rs_mega_col h3 { margin: 0 0 .72rem; color: var(--rs-navy); font-family: inherit; font-size: .84rem; font-weight: 800; line-height: 1.28; }
.o_rs_mega_col h3 span { margin-right: .3rem; color: var(--rs-coral); font-size: 1rem; }
.o_rs_mega_col a { display: block; padding: .28rem 0; color: #43536b; font-size: .78rem; line-height: 1.35; }
.o_rs_mega_col a:hover { color: var(--rs-coral); transform: translateX(2px); }
.o_rs_mega_offers { background: linear-gradient(180deg, #fff8f2, #fff); border-radius: 16px; }

.o_rs_v210_shop { background: linear-gradient(180deg, #fffdfa 0, #fff 20rem); color: var(--rs-navy); }
.o_rs_v210_shop_intro { padding: 3.1rem 0 1.35rem; }
.o_rs_v210_shop_intro h1 { margin: .3rem 0 .7rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.25rem, 4vw, 3.35rem); color: var(--rs-navy); }
.o_rs_v210_shop_intro p { max-width: 390px; margin: 0; color: #6b7b8c; font-size: 1rem; line-height: 1.65; }
.o_rs_v210_main_tabs, .o_rs_v210_sub_tabs { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.o_rs_v210_main_tabs { padding: .32rem; background: #fff; border: 1px solid #e8edf1; border-radius: 16px; box-shadow: 0 8px 24px rgba(23,51,95,.05); }
.o_rs_v210_main_tabs a { flex: 1 1 auto; padding: .72rem .78rem; border-radius: 12px; color: #33455e; font-size: .82rem; font-weight: 700; text-align: center; white-space: nowrap; }
.o_rs_v210_main_tabs a:hover, .o_rs_v210_main_tabs a.is-active { background: #eee8ff; color: #49348c; }
.o_rs_v210_sub_tabs { margin-top: .8rem; }
.o_rs_v210_sub_tabs a { padding: .55rem .92rem; background: #fff; border: 1px solid #edf0f3; border-radius: 999px; color: #617087; font-size: .78rem; }
.o_rs_v210_sub_tabs a:hover, .o_rs_v210_sub_tabs a.is-active { background: #f0ebff; border-color: #dfd5ff; color: #49348c; font-weight: 700; }

.o_rs_v210_catalog { padding-top: 1rem; }
.o_rs_v210_filter_intro { display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; margin-bottom: 1rem; padding: 1rem 1rem .85rem; background: linear-gradient(145deg, #fff8ee, #fff); border: 1px solid #f2e6d8; border-radius: 22px; }
.o_rs_v210_filter_intro img { width: 100%; height: 118px; object-fit: cover; border-radius: 16px; }
.o_rs_v210_filter_intro strong { margin-top: .25rem; font-size: 1rem; }
.o_rs_v210_filter_intro small { color: #6b7b8c; line-height: 1.45; }
.o_rs_v210_filters { overflow: hidden; padding: .3rem 1rem 1rem; background: #fff; border: 1px solid #e4ebef; border-radius: 22px; box-shadow: 0 12px 30px rgba(23,51,95,.05); }
.o_rs_v210_filters details { border-bottom: 1px solid #edf1f4; }
.o_rs_v210_filters details:last-of-type { margin-bottom: 1rem; }
.o_rs_v210_filters summary { display: flex; align-items: center; gap: .55rem; padding: .95rem 0; list-style: none; cursor: pointer; color: #243b61; font-weight: 800; font-size: .9rem; }
.o_rs_v210_filters summary::-webkit-details-marker { display: none; }
.o_rs_v210_filters summary::after { content: "+"; margin-left: auto; color: #78879a; font-size: 1rem; }
.o_rs_v210_filters details[open] summary::after { content: "−"; }
.o_rs_v210_filters summary i { width: 18px; color: #5a73a2; text-align: center; }
.o_rs_v210_filter_body { display: grid; gap: .55rem; padding: 0 0 .9rem; color: #5f6f83; font-size: .82rem; }
.o_rs_v210_filter_body label { display: flex; align-items: center; gap: .5rem; cursor: pointer; }
.o_rs_v210_filter_body input[type="radio"] { accent-color: var(--rs-coral); }
.o_rs_v210_filter_body .form-select, .o_rs_v210_filter_body .form-control { min-height: 40px; border-color: #e1e8ec; border-radius: 10px; font-size: .82rem; }
.o_rs_v210_price_fields { grid-template-columns: 1fr auto 1fr; align-items: center; }

.o_rs_v210_toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto; align-items: center; gap: 1rem; margin-bottom: 1.15rem; }
.o_rs_v210_search { position: relative; }
.o_rs_v210_search input { height: 48px; padding-right: 48px; border-color: #e4eaee; border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(23,51,95,.035); }
.o_rs_v210_search button { position: absolute; top: 50%; right: 8px; width: 36px; height: 36px; transform: translateY(-50%); border: 0; border-radius: 50%; background: transparent; color: var(--rs-navy); }
.o_rs_v210_result_count { color: #6b7b8c; font-size: .83rem; white-space: nowrap; }
.o_rs_v210_sort { display: flex; align-items: center; gap: .45rem; white-space: nowrap; }
.o_rs_v210_sort label { margin: 0; color: #66758a; font-size: .8rem; font-weight: 700; }
.o_rs_v210_sort .form-select { width: 155px; border-color: #e4eaee; border-radius: 12px; font-size: .82rem; }

.o_rs_v210_product_grid .col { display: flex; }
.o_rs_v210_product_card { width: 100%; overflow: hidden; display: flex; flex-direction: column; background: #fff; border: 1px solid #e3e9ed; border-radius: 22px; box-shadow: 0 12px 30px rgba(23,51,95,.055); transition: transform .2s ease, box-shadow .2s ease; }
.o_rs_v210_product_card:hover { transform: translateY(-5px); box-shadow: 0 20px 42px rgba(23,51,95,.11); }
.o_rs_v210_product_media { position: relative; height: 240px; display: flex; align-items: center; justify-content: center; padding: 1.1rem 1rem .8rem; }
.o_rs_v210_tone_0 { background: #fff5d8; }
.o_rs_v210_tone_1 { background: #f0edff; }
.o_rs_v210_tone_2 { background: #e7f8ef; }
.o_rs_v210_tone_3 { background: #fff0ec; }
.o_rs_v210_product_media > a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.o_rs_v210_product_media img { max-width: 88%; max-height: 100%; object-fit: contain; filter: drop-shadow(0 10px 12px rgba(23,51,95,.12)); }
.o_rs_v210_product_badge { position: absolute; z-index: 2; top: 12px; left: 12px; padding: .32rem .62rem; background: #55bfc0; border-radius: 999px; color: #fff; font-size: .7rem; font-weight: 800; }
.o_rs_v210_favorite { position: absolute; z-index: 2; top: 11px; right: 12px; display: grid; width: 32px; height: 32px; place-items: center; background: rgba(255,255,255,.88); border: 1px solid rgba(23,51,95,.08); border-radius: 50%; color: #33455e; font-size: 1.2rem; }
.o_rs_v210_product_body { flex: 1; display: flex; flex-direction: column; padding: 1.25rem 1.25rem 1.35rem; }
.o_rs_v210_product_body h3 { min-height: 2.75em; margin: 0 0 .42rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.08rem; line-height: 1.35; }
.o_rs_v210_product_body h3 a { color: var(--rs-navy); }
.o_rs_v210_product_body > p { min-height: 2.9em; margin: 0 0 .7rem; color: #6a798d; font-size: .82rem; line-height: 1.45; }
.o_rs_v210_product_rating { display: flex; align-items: center; gap: .45rem; margin-top: auto; color: #ffb000; font-size: .82rem; }
.o_rs_v210_product_rating small { color: #8591a1; font-size: .72rem; }
.o_rs_v210_product_bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .75rem; padding-top: .75rem; border-top: 1px solid #eef1f3; }
.o_rs_v210_product_bottom strong { color: #132f5c; font-size: 1.12rem; }
.o_rs_v210_product_bottom > a { display: grid; width: 34px; height: 34px; place-items: center; background: #fff5ee; border-radius: 50%; color: var(--rs-coral); }
.o_rs_v210_empty { padding: 4rem 1.5rem; background: #fff; border: 1px dashed #dce5e9; border-radius: 24px; text-align: center; }
.o_rs_v210_empty > span { color: var(--rs-coral); font-size: 2.2rem; }
.o_rs_v210_empty h2 { margin: .5rem 0; font-size: 1.55rem; }
.o_rs_v210_empty p { color: #6b7b8c; }

.o_rs_v210_trust_strip { padding: 0 0 3rem; }
.o_rs_v210_trust_strip .container > .row { overflow: hidden; background: #fff; border: 1px solid #e5ebee; border-radius: 20px; box-shadow: 0 10px 28px rgba(23,51,95,.04); }
.o_rs_v210_trust_strip .col { display: flex; align-items: center; gap: .8rem; padding: 1.1rem 1.25rem; border-right: 1px solid #edf1f3; }
.o_rs_v210_trust_strip .col:last-child { border-right: 0; }
.o_rs_v210_trust_strip i { display: grid; flex: 0 0 auto; width: 42px; height: 42px; place-items: center; background: #fff2ee; border-radius: 50%; color: var(--rs-coral); font-size: 1.05rem; }
.o_rs_v210_trust_strip strong, .o_rs_v210_trust_strip small { display: block; }
.o_rs_v210_trust_strip strong { color: #243b61; font-size: .88rem; }
.o_rs_v210_trust_strip small { color: #77869a; font-size: .75rem; }

@media (max-width: 1199.98px) {
    .o_rs_mega_nav { width: 100%; }
    .o_rs_mega_details > summary { padding-left: 0; }
    .o_rs_mega_panel { position: static; width: 100%; max-height: 62vh; overflow-y: auto; transform: none; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: .35rem 0 .8rem; padding: 1rem; border-radius: 16px; box-shadow: none; }
    .o_rs_mega_col { border-right: 0; border-bottom: 1px solid #edf1f4; padding: .75rem; }
    .o_rs_v210_toolbar { grid-template-columns: 1fr auto; }
    .o_rs_v210_result_count { display: none; }
}
@media (max-width: 991.98px) {
    .o_rs_v210_shop_intro { padding-top: 2rem; }
    .o_rs_v210_main_tabs { margin-top: .5rem; overflow-x: auto; flex-wrap: nowrap; justify-content: flex-start; }
    .o_rs_v210_main_tabs a { flex: 0 0 auto; }
    .o_rs_v210_filters { margin-bottom: 1rem; }
}
@media (max-width: 767.98px) {
    .o_rs_mega_panel { grid-template-columns: 1fr; }
    .o_rs_v210_toolbar { grid-template-columns: 1fr; }
    .o_rs_v210_sort { justify-content: space-between; }
    .o_rs_v210_product_media { height: 220px; }
    .o_rs_v210_trust_strip .col { border-right: 0; border-bottom: 1px solid #edf1f3; }
}

/* V2.11 — independent language, currency and document-language controls */
.o_rs_market_switch { position: relative; }
.o_rs_market_switch > summary { list-style:none; cursor:pointer; min-width:48px; height:44px; padding:0 12px; border:1px solid #e6edf2; border-radius:999px; background:#f7fafc; color:#17335f; display:flex; align-items:center; justify-content:center; gap:6px; font-weight:800; font-size:13px; }
.o_rs_market_switch > summary::-webkit-details-marker { display:none; }
.o_rs_market_menu { position:absolute; z-index:1100; right:0; top:calc(100% + 10px); min-width:190px; padding:10px; border:1px solid #e3eaef; border-radius:16px; background:#fff; box-shadow:0 16px 42px rgba(23,51,95,.16); }
.o_rs_market_menu a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:10px; color:#17335f; text-decoration:none; font-size:14px; }
.o_rs_market_menu a:hover,.o_rs_market_menu a.is-active { background:#edf8f7; color:#247f8d; }
.o_rs_market_menu small { color:#718196; }
.o_rs_document_options { margin:22px 0; padding:18px; border:1px solid #deeaee; border-radius:18px; background:#f9fcfc; }
.o_rs_document_options h3 { margin:0 0 5px; font-size:18px; }
.o_rs_document_option { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:10px; padding:14px 16px; border:1px solid #dbe7eb; border-radius:14px; background:#fff; cursor:pointer; }
.o_rs_document_option:has(input:checked) { border-color:#46b5be; box-shadow:0 0 0 3px rgba(70,181,190,.12); }
.o_rs_document_option input { width:18px; height:18px; accent-color:#46b5be; }
.o_rs_document_option strong { display:block; }
.o_rs_document_option small { color:#6d7c8c; }
.o_rs_document_price { margin-left:auto; color:#17335f; font-weight:800; white-space:nowrap; }
.o_rs_download_card { border:1px solid #e1eaee; border-radius:20px; background:#fff; box-shadow:0 10px 30px rgba(23,51,95,.07); overflow:hidden; }
.o_rs_download_card .o_rs_download_visual { width:120px; min-height:140px; background:#eef8f7; display:flex; align-items:center; justify-content:center; }
.o_rs_download_card .o_rs_download_visual img { width:92px; height:110px; object-fit:contain; }
.o_rs_download_actions { display:flex; flex-wrap:wrap; gap:8px; }
.o_rs_locale_hint { font-size:12px; color:#718196; }
@media (max-width:1199px) { .o_rs_market_switch { margin-top:8px; } .o_rs_market_menu { left:0; right:auto; } }

/* Confirmed-order bilingual downloads */
.o_rs_order_downloads .o_rs_panel {
    border: 1px solid rgba(58, 180, 188, .22);
    background: linear-gradient(135deg, #f7fcff 0%, #fffaf0 100%);
}
.o_rs_download_icon {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    color: #267e88;
    background: #e5f8f6;
    flex: 0 0 auto;
}
.o_rs_order_download_item {
    padding: 18px;
    border: 1px solid rgba(23, 51, 95, .10);
    border-radius: 18px;
    background: #fff;
}

/* V2.19 - language and paper-format choices for digital products. */
.o_rs_purchase_options .o_rs_document_option.is-selected {
    border-color: var(--rs-primary, #df6829);
    box-shadow: 0 0 0 2px rgba(223, 104, 41, 0.12);
}
.o_rs_purchase_options .o_rs_document_option input[type="radio"] {
    flex: 0 0 auto;
}

/* V2.20 — Alignement ergonomique des options de format */
.o_rs_purchase_options .o_rs_document_option {
  justify-content: flex-start;
  text-align: left;
}
.o_rs_purchase_options .o_rs_document_option > input[type="radio"] {
  flex: 0 0 auto;
}
.o_rs_purchase_options .o_rs_document_option > span:not(.o_rs_document_price) {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}
.o_rs_purchase_options .o_rs_document_option .o_rs_document_price {
  flex: 0 0 auto;
  margin-left: auto;
  text-align: right;
  white-space: nowrap;
}
