﻿/*
Theme Name: Sifate Hajj
Theme URI: https://sifatehajj.com
Author: Perticom
Author URI: https://sifatehajj.com
Description: Theme sur-mesure pour agence de voyage Hajj & Omra. Design Mauve premium, 5 palettes de couleurs au choix (Apparence > Personnaliser). Base evolutive, WooCommerce-ready.
Version: 2.1.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: salam-omra
Tags: travel, business, custom-colors, custom-menu, featured-images, translation-ready, responsive-layout
*/

/* ===================================================================
   PALETTE PAR DEFAUT â€” Emeraude & Or (la couleur travaillee en local)
   Les variables non-couleur (rayons, ombres, largeurs) restent communes.
   Les palettes alternatives ne redefinissent que les couleurs cles.
=================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Manrope:wght@400;500;600;700&display=swap');
:root{
  --green-700:#4e0a5f;
  --green-600:#640e7a;
  --green-500:#791393;
  --green-100:#e6d3eb;
  --green-50:#f3e9f5;
  --gold-600:#951fb3;
  --gold-500:#ab3ac7;
  --gold-100:#efd2f6;
  --cream:#f9f3fa;
  --paper:#ffffff;
  --gray-50:#f7f5f7;
  --ink:#211624;
  --ink-2:#584c5b;
  --border:#e9e6ea;
  --shadow-sm:0 1px 2px rgba(51,10,61,.05), 0 1px 3px rgba(51,10,61,.06);
  --shadow-md:0 12px 28px -14px rgba(51,10,61,.22);
  --shadow-lg:0 26px 60px -24px rgba(51,10,61,.30);
  --radius:18px;
  --radius-sm:12px;
  --pill:999px;
  --maxw:1200px;
}

/* ---------- Palette : Bleu nuit & Or ---------- */
html[data-palette="nuit"]{
  --green-700:#0b2a4a;
  --green-600:#123b66;
  --green-500:#1d5083;
  --green-100:#cfe0f0;
  --green-50:#eaf2f9;
  --shadow-sm:0 1px 2px rgba(11,42,74,.06), 0 1px 3px rgba(11,42,74,.07);
  --shadow-md:0 12px 28px -14px rgba(11,42,74,.24);
  --shadow-lg:0 26px 60px -24px rgba(11,42,74,.32);
}
/* ---------- Palette : Bordeaux & Or ---------- */
html[data-palette="bordeaux"]{
  --green-700:#6e1d2b;
  --green-600:#8a2436;
  --green-500:#a83246;
  --green-100:#f0d6db;
  --green-50:#f9eef0;
  --shadow-sm:0 1px 2px rgba(110,29,43,.06), 0 1px 3px rgba(110,29,43,.07);
  --shadow-md:0 12px 28px -14px rgba(110,29,43,.24);
  --shadow-lg:0 26px 60px -24px rgba(110,29,43,.32);
}
/* ---------- Palette : Sable & Olive ---------- */
html[data-palette="sable"]{
  --green-700:#5c6b3a;
  --green-600:#6f8047;
  --green-500:#879a59;
  --green-100:#e3e8d2;
  --green-50:#f2f5e9;
  --gold-600:#902fa8;
  --gold-500:#aa4ac2;
}
/* ---------- Palette : Anthracite & Or ---------- */
html[data-palette="anthracite"]{
  --green-700:#25303a;
  --green-600:#33424f;
  --green-500:#465a6b;
  --green-100:#d8dee3;
  --green-50:#eef1f3;
  --shadow-sm:0 1px 2px rgba(37,48,58,.06), 0 1px 3px rgba(37,48,58,.07);
  --shadow-md:0 12px 28px -14px rgba(37,48,58,.26);
  --shadow-lg:0 26px 60px -24px rgba(37,48,58,.34);
}

/* ===================================================================
   BASE
=================================================================== */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.jak{font-family:"Plus Jakarta Sans","Inter",sans-serif;font-weight:700;line-height:1.15;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block;height:auto}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-600);display:inline-flex;align-items:center;gap:.5rem}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold-500);border-radius:2px}
.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:.95rem;padding:.8rem 1.35rem;border-radius:var(--pill);cursor:pointer;border:1.5px solid transparent;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease;white-space:nowrap}
.btn:focus-visible{outline:3px solid var(--green-100);outline-offset:2px}
.btn-primary{background:var(--green-600);color:#fff;box-shadow:var(--shadow-md)}
.btn-primary:hover{background:var(--green-700);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-outline{background:#fff;color:var(--green-700);border-color:var(--border)}
.btn-outline:hover{border-color:var(--green-500);background:var(--green-50)}
.btn-gold{background:var(--gold-500);color:#30063a}
.btn-gold:hover{background:var(--gold-600);color:#fff;transform:translateY(-2px)}
.btn-sm{padding:.6rem 1rem;font-size:.88rem}
.btn-sm .icon{width:16px;height:16px}

/* ---------- top bar ---------- */
.topbar{background:var(--green-50);border-bottom:1px solid var(--border);font-size:.82rem;color:var(--green-700)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:8px 28px;flex-wrap:wrap}
.topbar .l,.topbar .r{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap}
.topbar span{display:inline-flex;align-items:center;gap:.4rem}
.topbar .icon{width:15px;height:15px;stroke:var(--green-600)}

/* ---------- header ---------- */
header.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:1rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:1.4rem;color:var(--green-700)}
.brand .mark{width:40px;height:40px;border-radius:11px;background:linear-gradient(150deg,var(--green-500),var(--green-700));display:grid;place-items:center;box-shadow:var(--shadow-sm)}
.brand .mark svg{width:23px;height:23px;stroke:var(--gold-500)}
.brand b{color:var(--gold-600)}
.brand-logo{height:46px;width:auto;display:block}
footer.site-footer .brand-logo{height:52px}
@media(max-width:600px){.brand-logo{height:38px}}
nav.menu{display:flex;align-items:center;gap:1.9rem}
nav.menu a{font-size:.93rem;font-weight:500;color:var(--ink-2);transition:color .15s;position:relative}
nav.menu a:hover{color:var(--green-600)}
nav.menu a.active{color:var(--green-700);font-weight:600}
.nav-cta{display:flex;align-items:center;gap:.7rem}
.burger{display:none;background:#fff;border:1px solid var(--border);border-radius:10px;padding:.5rem;cursor:pointer;color:var(--green-700)}
.mobile-menu{display:none;background:#fff;border-bottom:1px solid var(--border)}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:14px 28px;border-top:1px solid var(--border);color:var(--ink);font-weight:500}

/* ---------- hero (home) ---------- */
.hero{position:relative;background:radial-gradient(900px 420px at 88% 0%, var(--green-50), transparent 60%),linear-gradient(180deg,#fff,var(--cream));overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;padding:70px 28px 56px}
.hero h1{font-size:clamp(2.3rem,4.6vw,3.5rem);color:var(--ink);font-weight:800}
.hero h1 .hl{color:var(--green-600);position:relative;white-space:nowrap}
.hero h1 .hl::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.28em;background:var(--gold-100);z-index:-1;border-radius:3px}
.hero p.lead{margin-top:1.1rem;font-size:1.12rem;color:var(--ink-2);max-width:33rem}
.hero .checks{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.7rem 1.4rem}
.hero .checks span{display:inline-flex;align-items:center;gap:.5rem;font-size:.93rem;font-weight:500;color:var(--ink)}
.hero .checks .icon{width:18px;height:18px;stroke:var(--green-600)}
.hero-actions{margin-top:1.9rem;display:flex;gap:.9rem;flex-wrap:wrap}
.hero-visual{position:relative}
.hero-visual img{width:100%;height:420px;object-fit:cover;border-radius:24px;box-shadow:var(--shadow-lg);display:block}
.float-card{position:absolute;background:#fff;border-radius:14px;box-shadow:var(--shadow-md);padding:.85rem 1.1rem;display:flex;align-items:center;gap:.7rem}
.float-card.rating{top:22px;left:-18px}
.float-card.book{bottom:22px;right:-14px}
.float-card .big{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:1.25rem;color:var(--ink);line-height:1}
.float-card small{color:var(--ink-2);font-size:.76rem}
.float-card .stars{display:flex;color:var(--gold-500)}
.float-card .stars .icon{width:14px;height:14px;fill:var(--gold-500);stroke:var(--gold-500)}
.avatar-dot{width:34px;height:34px;border-radius:50%;background:var(--green-50);display:grid;place-items:center;color:var(--green-700)}

/* ---------- hero slider (home) ---------- */
.so-hero-slider{min-height:620px;isolation:isolate;background:#1a071f;color:#fff;border-bottom:1px solid var(--border)}
.so-slider-track{position:relative;min-height:620px}
.so-slide{position:absolute;inset:0;display:grid;align-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility .55s ease}
.so-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1}
.so-slide-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:#1a071f}
.so-slide-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,6,22,.90) 0%,rgba(19,6,22,.70) 38%,rgba(19,6,22,.30) 72%,rgba(19,6,22,.12) 100%),linear-gradient(180deg,rgba(19,6,22,.18),rgba(19,6,22,.34))}
.so-slide-bg img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.03) contrast(1.03);display:block;color:transparent;font-size:0}
.so-hero-slider .so-slide-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,620px) 1fr;gap:48px;align-items:center;min-height:620px;padding:88px 28px 110px}
.so-hero-slider .so-slide-copy{max-width:660px;color:#fff}
.so-hero-slider .so-slide-copy .eyebrow{color:#c05fd8}
.so-hero-slider .so-slide-copy h1,.so-hero-slider .so-slide-copy h2{margin:.5rem 0 0;color:#fff;font-size:4.55rem;line-height:.98;font-weight:800;letter-spacing:0;max-width:720px;overflow-wrap:anywhere}
.so-hero-slider .so-slide-copy .hl{color:#a82fc6}
.so-hero-slider .so-slide-copy .lead{margin-top:1.15rem;color:rgba(255,255,255,.82);font-size:1.08rem;line-height:1.75;max-width:580px}
.so-hero-slider .so-slide-copy .checks{margin-top:1.35rem;display:flex;flex-wrap:wrap;gap:.7rem 1.1rem}
.so-hero-slider .so-slide-copy .checks span{display:inline-flex;align-items:center;gap:.45rem;color:#fff;font-weight:650;font-size:.9rem}
.so-hero-slider .so-slide-copy .checks .icon{width:16px;height:16px;stroke:#a82fc6}
.so-slide-panel{justify-self:end;align-self:center;min-width:245px;max-width:300px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);backdrop-filter:blur(16px);border-radius:20px;padding:24px;color:#fff;box-shadow:0 22px 55px -30px rgba(0,0,0,.65)}
.so-slide-panel strong{display:block;font-family:"Plus Jakarta Sans",sans-serif;font-size:2.1rem;color:#c05fd8;line-height:1}
.so-slide-panel span{display:block;margin-top:.45rem;font-weight:700}
.so-hero-slider .so-slider-ui{position:absolute;z-index:5;left:50%;bottom:34px;transform:translateX(-50%);display:flex;align-items:center;gap:16px;width:100%;pointer-events:none;padding:0 28px}
.so-slider-arrows,.so-slider-dots,.so-progress{pointer-events:auto}
.so-slider-arrows{display:flex;gap:10px}
.so-slider-btn{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s ease,transform .2s ease}
.so-slider-btn:hover{background:rgba(255,255,255,.24);transform:translateY(-1px)}
.so-slider-btn .icon{width:20px;height:20px;stroke:currentColor}
.so-slider-dots{display:flex;align-items:center;gap:8px}
.so-slider-dot{width:10px;height:10px;border-radius:50%;border:0;background:rgba(255,255,255,.42);cursor:pointer}
.so-slider-dot.is-active{width:32px;border-radius:99px;background:#c05fd8}
.so-progress{position:relative;width:118px;height:3px;border-radius:99px;background:rgba(255,255,255,.26);overflow:hidden}
.so-progress span{display:block;height:100%;width:100%;background:#c05fd8;transform-origin:left center}
.so-hero-slider.is-playing .so-progress span{animation:soHeroProgress 7s linear forwards}
@keyframes soHeroProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- page hero (inner pages) ---------- */
.page-hero{position:relative;background:radial-gradient(800px 320px at 85% 0%,var(--green-50),transparent 60%),linear-gradient(180deg,#fff,var(--cream));border-bottom:1px solid var(--border);padding:48px 0 52px}
.breadcrumb{font-size:.82rem;color:var(--ink-2);display:flex;gap:.5rem;align-items:center;margin-bottom:.9rem}
.breadcrumb a:hover{color:var(--green-600)}
.breadcrumb span{color:var(--green-700);font-weight:600}
.page-hero h1{font-size:clamp(2rem,4vw,3rem);color:var(--ink)}
.page-hero p{margin-top:.7rem;color:var(--ink-2);max-width:48rem;font-size:1.05rem}

/* ---------- search bar ---------- */
.searchbar{max-width:var(--maxw);margin:-28px auto 0;padding:0 28px;position:relative;z-index:5}
.searchbar .inner{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);display:grid;grid-template-columns:repeat(3,1fr) auto;gap:6px;padding:12px}
.sfield{padding:.55rem .8rem;border-radius:12px;cursor:pointer;transition:background .15s}
.sfield:hover{background:var(--gray-50)}
.sfield label{display:flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.sfield label .icon{width:14px;height:14px;stroke:var(--green-600)}
.sfield select{width:100%;border:none;background:transparent;font:inherit;font-weight:600;font-size:.98rem;color:var(--ink);margin-top:.15rem;cursor:pointer;outline:none}
.searchbar .btn{align-self:stretch}

/* ---------- sections ---------- */
section{padding:80px 0}
.section-head{max-width:660px;margin:0 auto 44px;text-align:center}
.section-head h2{font-size:clamp(1.9rem,3.6vw,2.6rem);margin-top:.7rem;color:var(--ink)}
.section-head p{margin-top:.8rem;color:var(--ink-2);font-size:1.05rem}
.alt{background:var(--cream)}
.alt2{background:var(--gray-50)}
.center{text-align:center}
.mt{margin-top:36px}

/* trust strip */
.trust{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff}
.trust .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;padding:20px 28px;flex-wrap:wrap}
.trust .item{display:flex;align-items:center;gap:.6rem;font-size:.92rem;color:var(--ink-2);font-weight:500}
.trust .item b{color:var(--ink);font-family:"Plus Jakarta Sans",sans-serif}
.trust .item .icon{stroke:var(--green-600)}

/* ---------- filters ---------- */
.filters{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-bottom:38px}
.chip{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:.9rem;padding:.55rem 1.1rem;border-radius:var(--pill);border:1.5px solid var(--border);background:#fff;color:var(--ink-2);cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--green-500);color:var(--green-700)}
.chip.active{background:var(--green-600);border-color:var(--green-600);color:#fff}

/* ---------- package cards ---------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease;box-shadow:var(--shadow-sm)}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.card .media{position:relative;height:200px}
.card .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.card .badge{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.94);color:var(--green-700);font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.74rem;letter-spacing:.03em;padding:.32rem .7rem;border-radius:var(--pill);box-shadow:var(--shadow-sm)}
.card .ribbon{position:absolute;top:14px;right:14px;background:var(--gold-500);color:#30063a;font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.72rem;padding:.32rem .7rem;border-radius:var(--pill)}
.card .body{padding:20px;display:flex;flex-direction:column;flex:1}
.card .loc{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--ink-2);font-weight:500}
.card .loc .icon{width:15px;height:15px;stroke:var(--gold-600)}
.card h3{font-size:1.22rem;margin-top:.4rem;color:var(--ink)}
.card .feats{list-style:none;margin:.9rem 0 0;display:grid;gap:.5rem}
.card .feats li{display:flex;align-items:center;gap:.55rem;font-size:.88rem;color:var(--ink-2)}
.card .feats .icon{width:16px;height:16px;stroke:var(--green-600)}
.card .rate{display:flex;align-items:center;gap:.45rem;margin-top:1rem;font-size:.82rem;color:var(--ink-2)}
.card .rate .stars{display:flex;color:var(--gold-500)}
.card .rate .stars .icon{width:14px;height:14px;fill:var(--gold-500);stroke:var(--gold-500)}
.card .foot{margin-top:auto;padding-top:1.1rem}
.card .price{display:flex;align-items:baseline;gap:.35rem;border-top:1px dashed var(--border);padding-top:1rem;margin-bottom:.9rem}
.card .price small{font-size:.76rem;color:var(--ink-2)}
.card .price .amt{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:1.7rem;color:var(--green-700)}
.card .price .per{font-size:.8rem;color:var(--ink-2)}
.card .actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}

/* ---------- steps ---------- */
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.step{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;position:relative}
.step .n{width:42px;height:42px;border-radius:12px;background:var(--green-50);color:var(--green-700);font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;display:grid;place-items:center;font-size:1.1rem}
.step h3{margin-top:.9rem;font-size:1.12rem}
.step p{margin-top:.35rem;font-size:.92rem;color:var(--ink-2)}
.step .ln{position:absolute;top:45px;right:-15px;width:30px;height:2px;background:var(--green-100)}
.step:last-child .ln{display:none}

/* ---------- features ---------- */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.feat{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px;transition:border-color .2s,transform .2s,box-shadow .2s}
.feat:hover{border-color:var(--green-100);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.feat .ico{width:50px;height:50px;border-radius:13px;background:var(--green-50);display:grid;place-items:center;margin-bottom:1rem}
.feat .ico .icon{width:25px;height:25px;stroke:var(--green-600)}
.feat h3{font-size:1.18rem;color:var(--ink)}
.feat p{margin-top:.4rem;font-size:.93rem;color:var(--ink-2)}

/* ---------- split (image + text) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.split img{width:100%;height:100%;max-height:440px;object-fit:cover;border-radius:20px;box-shadow:var(--shadow-md)}
.split h2{font-size:clamp(1.7rem,3.3vw,2.4rem);color:var(--ink)}
.split p{margin-top:1rem;color:var(--ink-2)}
.split ul{list-style:none;margin-top:1.2rem;display:grid;gap:.7rem}
.split li{display:flex;gap:.6rem;align-items:flex-start;color:var(--ink)}
.split li .icon{stroke:var(--green-600);margin-top:3px}

/* ---------- values (about) ---------- */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.value{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px;text-align:center}
.value .ico{width:54px;height:54px;border-radius:50%;background:var(--green-50);display:grid;place-items:center;margin:0 auto 1rem}
.value .ico .icon{width:26px;height:26px;stroke:var(--green-600)}
.value h3{font-size:1.15rem}
.value p{margin-top:.4rem;font-size:.92rem;color:var(--ink-2)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.stats .s b{display:block;font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:2.4rem;color:var(--green-700)}
.stats .s span{color:var(--ink-2);font-size:.92rem}

/* ---------- testimonials ---------- */
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.test{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-sm)}
.test .stars{display:flex;gap:2px;color:var(--gold-500);margin-bottom:.8rem}
.test .stars .icon{width:17px;height:17px;fill:var(--gold-500);stroke:var(--gold-500)}
.test blockquote{font-size:.97rem;color:var(--ink)}
.test .who{margin-top:1.1rem;display:flex;align-items:center;gap:.7rem}
.test .av{width:42px;height:42px;border-radius:50%;background:linear-gradient(140deg,var(--green-500),var(--green-700));color:#fff;display:grid;place-items:center;font-weight:700;font-family:"Plus Jakarta Sans",sans-serif}
.test .who b{font-size:.92rem;font-family:"Plus Jakarta Sans",sans-serif}
.test .who small{display:block;color:var(--ink-2);font-size:.8rem}

/* ---------- faq ---------- */
.faq-wrap{max-width:780px;margin:0 auto}
details{background:#fff;border:1px solid var(--border);border-radius:14px;margin-bottom:12px;overflow:hidden}
details[open]{box-shadow:var(--shadow-sm)}
summary{list-style:none;cursor:pointer;padding:18px 20px;font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--ink)}
summary::-webkit-details-marker{display:none}
summary .icon{stroke:var(--green-600);transition:transform .25s}
details[open] summary .icon{transform:rotate(45deg)}
details .ans{padding:0 20px 18px;color:var(--ink-2);font-size:.95rem}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:start}
.form{background:#fff;border:1px solid var(--border);border-radius:18px;padding:28px;box-shadow:var(--shadow-sm)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-2);margin-bottom:.3rem;margin-top:.9rem}
.form input,.form select,.form textarea{width:100%;padding:.7rem .85rem;border:1px solid var(--border);border-radius:10px;font:inherit;font-size:.95rem;background:#fdfcfd;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--green-500);border-color:var(--green-500)}
.form textarea{min-height:130px;resize:vertical}
.form .btn{margin-top:1.3rem;width:100%}
.contact-info{display:flex;flex-direction:column;gap:8px}
.contact-info .ci{display:flex;gap:.9rem;align-items:flex-start;background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px}
.contact-info .ci .ico{width:42px;height:42px;border-radius:11px;background:var(--green-50);display:grid;place-items:center;flex:0 0 auto}
.contact-info .ci .ico .icon{width:21px;height:21px;stroke:var(--green-600)}
.contact-info .ci b{font-family:"Plus Jakarta Sans",sans-serif;font-size:.95rem;color:var(--ink)}
.contact-info .ci p{font-size:.9rem;color:var(--ink-2);margin-top:.15rem}

/* ---------- CTA (light) ---------- */
.cta-outer{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.cta{background:linear-gradient(120deg,var(--green-50),var(--gold-100));border:1px solid var(--green-100);border-radius:26px;padding:54px 40px;text-align:center;position:relative;overflow:hidden}
.cta h2{font-size:clamp(1.8rem,3.5vw,2.5rem);color:var(--ink)}
.cta p{margin:.8rem auto 1.8rem;color:var(--ink-2);max-width:40rem}
.cta .btns{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
footer.site-footer{background:var(--green-50);border-top:1px solid var(--green-100);color:var(--ink-2);padding:56px 0 24px;margin-top:80px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
footer.site-footer .brand{color:var(--green-700)}
footer.site-footer p.about{margin-top:1rem;font-size:.9rem;max-width:24rem}
footer.site-footer h4{color:var(--ink);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem;font-family:"Plus Jakarta Sans",sans-serif}
footer.site-footer ul{list-style:none;display:flex;flex-direction:column;gap:.55rem}
footer.site-footer ul a{font-size:.92rem;transition:color .15s}
footer.site-footer ul a:hover{color:var(--green-600)}
.foot-bottom{margin-top:42px;padding-top:20px;border-top:1px solid var(--green-100);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem}
.foot-legal a{color:inherit}
.foot-legal a:hover{color:var(--green-600)}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}
.modal.open{display:flex}
.modal .backdrop{position:fixed;inset:0;background:rgba(25,12,28,.55);backdrop-filter:blur(3px)}
.modal .panel{position:relative;background:#fff;border-radius:22px;max-width:760px;width:100%;box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .25s ease}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.modal .hero-m{position:relative;height:210px}
.modal .hero-m img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.modal .close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.95);border:none;cursor:pointer;display:grid;place-items:center;color:var(--ink);box-shadow:var(--shadow-sm)}
.modal .close:hover{background:#fff}
.modal .m-badge{position:absolute;bottom:14px;left:18px;background:rgba(255,255,255,.95);color:var(--green-700);font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.76rem;padding:.32rem .7rem;border-radius:var(--pill)}
.modal .m-body{padding:26px 28px 28px}
.modal .m-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.modal .m-top h3{font-size:1.6rem}
.modal .m-top .loc{display:flex;align-items:center;gap:.4rem;color:var(--ink-2);font-size:.88rem;margin-top:.25rem}
.modal .m-top .loc .icon{width:15px;height:15px;stroke:var(--gold-600)}
.modal .m-price{text-align:right}
.modal .m-price .amt{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:1.9rem;color:var(--green-700);line-height:1}
.modal .m-price small{font-size:.78rem;color:var(--ink-2)}
.modal .m-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}
.modal .m-stats div{background:var(--gray-50);border-radius:12px;padding:.7rem;text-align:center}
.modal .m-stats .icon{width:20px;height:20px;stroke:var(--green-600);margin:0 auto .25rem}
.modal .m-stats b{display:block;font-family:"Plus Jakarta Sans",sans-serif;font-size:.86rem;color:var(--ink)}
.modal .m-stats small{font-size:.7rem;color:var(--ink-2)}
.modal h4.m-sec{font-family:"Plus Jakarta Sans",sans-serif;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--green-700);margin:18px 0 10px}
.modal .m-incl{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.modal .m-incl li{display:flex;gap:.5rem;font-size:.9rem;color:var(--ink-2)}
.modal .m-incl .icon{width:17px;height:17px;stroke:var(--green-600);margin-top:2px}
.modal .m-prog{position:relative;border-left:2px solid var(--green-100);margin-left:6px;padding-left:18px;display:grid;gap:.7rem}
.modal .m-prog li{font-size:.9rem;color:var(--ink-2);position:relative}
.modal .m-prog li::before{content:"";position:absolute;left:-25px;top:7px;width:9px;height:9px;border-radius:50%;background:var(--green-500)}
.modal .m-prog li b{color:var(--ink);font-family:"Plus Jakarta Sans",sans-serif}
.modal .m-actions{display:flex;gap:.8rem;margin-top:24px;flex-wrap:wrap}
.modal .m-actions .btn{flex:1;min-width:180px}

/* ---------- WordPress core ---------- */
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;word-wrap:normal!important}
.skip-link{position:absolute;left:-9999px;z-index:200;background:#fff;color:var(--green-700);padding:.6rem 1rem;border-radius:8px}
.skip-link:focus{left:12px;top:12px}
.entry-content{max-width:760px;margin:0 auto}
.entry-content > *{margin-bottom:1.1rem}
.entry-content h2{font-size:1.7rem;margin-top:2rem}
.entry-content h3{font-size:1.3rem;margin-top:1.6rem}
.entry-content a{color:var(--green-600);text-decoration:underline}
.entry-content img{border-radius:14px}
.entry-content blockquote{border-left:3px solid var(--gold-500);padding-left:1.2rem;color:var(--ink-2);font-style:italic}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.post-card .media{height:190px;position:relative;background:var(--green-50)}
.post-card .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.post-card .body{padding:20px;display:flex;flex-direction:column;flex:1}
.post-card .meta{font-size:.78rem;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}
.post-card h3{margin-top:.4rem;font-size:1.2rem}
.post-card p{margin-top:.5rem;font-size:.92rem;color:var(--ink-2)}
.post-card .more{margin-top:auto;padding-top:1rem;color:var(--green-600);font-weight:600;font-size:.9rem}
.pagination{display:flex;gap:.5rem;justify-content:center;margin-top:40px;flex-wrap:wrap}
.pagination .page-numbers{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 .6rem;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--ink-2);font-weight:600}
.pagination .page-numbers.current{background:var(--green-600);border-color:var(--green-600);color:#fff}
.pagination a.page-numbers:hover{border-color:var(--green-500);color:var(--green-700)}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .hero .wrap{grid-template-columns:1fr;gap:32px}
  .hero-visual{order:-1}
  .grid,.feat-grid,.test-grid,.values,.post-grid{grid-template-columns:1fr 1fr}
  .steps-grid{grid-template-columns:1fr 1fr}
  .step .ln{display:none}
  .foot-grid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr}
  nav.menu{display:none}
  .burger{display:block}
  .nav-cta .btn-primary{display:none}
  .searchbar .inner{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr;gap:28px}
  .contact-grid{grid-template-columns:1fr}
}
@media (max-width:600px){
  .grid,.feat-grid,.test-grid,.steps-grid,.foot-grid,.values,.post-grid{grid-template-columns:1fr}
  .searchbar .inner{grid-template-columns:1fr}
  .modal .m-stats{grid-template-columns:1fr 1fr}
  .modal .m-incl{grid-template-columns:1fr}
  .form .row{grid-template-columns:1fr}
  section{padding:60px 0}
  .topbar .l{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- single formule + page Nos Omra ---------- */
.loc-line{display:flex;align-items:center;gap:.4rem;color:var(--ink-2);margin-top:.6rem}
.loc-line .icon{width:16px;height:16px;stroke:var(--gold-600)}
.formule-layout{display:grid;grid-template-columns:1.55fr .9fr;gap:42px;align-items:start}
.formule-img{width:100%;height:360px;object-fit:cover;border-radius:20px;box-shadow:var(--shadow-md);margin-bottom:24px}
.formule-main .entry-content{max-width:none;margin:0}
.formule-h{font-size:1.4rem;margin:1.9rem 0 1rem;color:var(--ink)}
.formule-incl{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.formule-incl li{display:flex;gap:.5rem;align-items:flex-start;font-size:.95rem;color:var(--ink-2)}
.formule-incl .icon{width:18px;height:18px;stroke:var(--green-600);margin-top:2px}
.formule-prog{list-style:none;position:relative;border-left:2px solid var(--green-100);margin-left:6px;padding-left:22px;display:grid;gap:.9rem}
.formule-prog li{position:relative;color:var(--ink-2)}
.formule-prog li::before{content:"";position:absolute;left:-29px;top:7px;width:10px;height:10px;border-radius:50%;background:var(--green-500)}
.formule-prog li b{color:var(--ink);font-family:"Plus Jakarta Sans",sans-serif}
.formule-side{position:sticky;top:96px}
.formule-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:24px}
.formule-card .badge2{display:inline-block;background:var(--green-50);color:var(--green-700);font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.74rem;padding:.3rem .7rem;border-radius:var(--pill);margin-bottom:1rem}
.formule-price{display:flex;align-items:baseline;gap:.4rem;margin-bottom:.4rem}
.formule-price .amt{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:2rem;color:var(--green-700)}
.formule-price small,.formule-price span:last-child{font-size:.8rem;color:var(--ink-2)}
.formule-stats{list-style:none;display:grid;gap:.55rem;margin:1rem 0;padding:1rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.formule-stats li{display:flex;align-items:center;gap:.6rem;font-size:.92rem;color:var(--ink)}
.formule-stats .icon{width:18px;height:18px;stroke:var(--green-600)}
.formule-card .rate{display:flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--ink-2);margin:.9rem 0 1rem}
.formule-card .rate .stars{display:flex;color:var(--gold-500)}
.formule-card .rate .stars .icon{width:15px;height:15px;fill:var(--gold-500);stroke:var(--gold-500)}
.formule-card .btn{width:100%;margin-top:.6rem}
@media (max-width:980px){.formule-layout{grid-template-columns:1fr;gap:28px}.formule-side{position:static}.formule-incl{grid-template-columns:1fr}.formule-img{height:280px}}
.ribbon-complet{background:#b3261f;color:#fff}
.statut-tag{display:inline-block;font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.74rem;padding:.3rem .7rem;border-radius:var(--pill);margin-bottom:.9rem}
.statut-tag.complet{background:#fdecea;color:#b3261f}
.statut-tag.bientot{background:var(--gold-100);color:var(--gold-600)}
.formule-departs{list-style:none;display:grid;gap:.5rem}
.formule-departs li{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--green-50);border:1px solid var(--green-100);border-radius:12px;padding:.7rem 1rem}
.formule-departs .dep-date{font-weight:600;color:var(--ink);font-family:"Plus Jakarta Sans",sans-serif}
.formule-departs .dep-places{font-size:.85rem;color:var(--ink-2);white-space:nowrap}

/* ===================================================================
   Animations & finitions (apparition au scroll, survols, micro-interactions)
=================================================================== */
.card .media,.post-card .media{overflow:hidden}
.card .media img,.post-card .media img{transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.card:hover .media img,.post-card:hover .media img{transform:scale(1.07)}
.card:hover{border-color:var(--green-100)}
.section-head h2{position:relative;display:inline-block}
.section-head h2::after{content:"";display:block;width:56px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--green-500),var(--gold-500));margin:.75rem auto 0}
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-20deg);transition:left .6s ease;pointer-events:none}
.btn-primary:hover::after{left:140%}
.chip{transition:transform .2s ease,background .15s ease,border-color .15s ease,color .15s ease}
.feat .ico,.value .ico,.step .n{transition:transform .3s ease}
.feat:hover .ico,.value:hover .ico{transform:translateY(-4px) rotate(-4deg)}
@media (prefers-reduced-motion:no-preference){
  .is-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
  .is-reveal.in{opacity:1;transform:none}
  .hero-copy>*{opacity:0;transform:translateY(18px);animation:soAppear .75s cubic-bezier(.22,.61,.36,1) forwards}
  .hero-copy>*:nth-child(2){animation-delay:.1s}
  .hero-copy>*:nth-child(3){animation-delay:.2s}
  .hero-copy>*:nth-child(4){animation-delay:.3s}
  .hero-copy>*:nth-child(5){animation-delay:.4s}
  .hero-visual{opacity:0;animation:soZoomIn .9s cubic-bezier(.22,.61,.36,1) .15s forwards}
  .float-card.rating{animation:soFloat 5s ease-in-out 1.1s infinite}
  .float-card.book{animation:soFloat 6s ease-in-out 1.5s infinite}
}
@keyframes soAppear{to{opacity:1;transform:none}}
@keyframes soZoomIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes soFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* ===================================================================
   Page forfait (single formule) â€” style Â« page de vente Â»
=================================================================== */
.voyage-hero{position:relative;min-height:360px;display:flex;align-items:flex-end;overflow:hidden;background:#0a0a0a}
.voyage-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%;filter:grayscale(.55) contrast(1.05)}
.voyage-hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.8)}
.voyage-hero-in{position:relative;z-index:2;width:100%;padding:64px 0 40px;color:#fff}
.voyage-eyebrow{display:inline-block;background:var(--gold-500);color:#30063a;font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:.34rem .8rem;border-radius:999px;margin-bottom:.85rem}
.voyage-hero h1{color:#fff;font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.1;max-width:780px;overflow-wrap:anywhere;text-shadow:0 2px 26px rgba(0,0,0,.5)}
.voyage-hero h1::after{content:"";display:block;width:64px;height:3px;background:var(--gold-500);border-radius:3px;margin-top:16px}
.breadcrumb.light,.breadcrumb.light a,.loc-line.light{color:rgba(255,255,255,.85)}
.breadcrumb.light span{color:#fff}
.loc-line.light .icon{stroke:var(--gold-500)}
.voyage-bar{position:relative;z-index:3;margin-top:-42px;background:#fff;color:var(--ink);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);display:flex;align-items:stretch;overflow:hidden}
.voyage-bar .vb-items{display:flex;flex-wrap:wrap;flex:1;align-items:center;padding:6px 4px 6px 20px}
.voyage-bar .vb-item{display:flex;align-items:center;gap:.55rem;padding:11px 16px;border-right:1px solid var(--border)}
.voyage-bar .vb-item:first-child{padding-left:4px}
.voyage-bar .vb-item:last-child{border-right:0}
.voyage-bar .vb-ico{fill:none;stroke:var(--green-600);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px;flex:0 0 auto}
.voyage-bar .vb-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.voyage-bar .vb-l{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);font-weight:600;white-space:nowrap}
.voyage-bar .vb-v{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:.9rem;color:var(--ink);white-space:nowrap}
.voyage-bar .vb-price{color:var(--green-700);font-size:1.1rem}
.voyage-bar .vb-cta{display:flex;align-items:center;flex:0 0 auto;padding:12px 22px;border-left:1px solid var(--border);background:var(--cream)}
.voyage-bar .vb-cta .btn{box-shadow:var(--shadow-md);white-space:nowrap}
@media (max-width:760px){
  .voyage-bar{flex-direction:column;align-items:stretch}
  .voyage-bar .vb-items{flex-direction:column;padding:8px 18px}
  .voyage-bar .vb-item{width:100%;padding:11px 0;border-right:0;border-bottom:1px solid var(--border)}
  .voyage-bar .vb-item:first-child{padding-left:0}
  .voyage-bar .vb-item:last-child{border-bottom:0}
  .voyage-bar .vb-txt{flex-direction:row;justify-content:space-between;align-items:center;flex:1}
  .voyage-bar .vb-cta{border-left:0;border-top:1px solid var(--border);padding:14px 18px}
  .voyage-bar .vb-cta .btn{width:100%}
}
.voyage-sec{padding:46px 0 70px}
.voyage-layout{display:grid;grid-template-columns:1.55fr .85fr;gap:42px;align-items:start}
.voyage-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}
.voyage-meta>div{background:var(--green-50);border:1px solid var(--green-100);border-radius:14px;padding:16px;text-align:center;display:flex;flex-direction:column;align-items:center}
.voyage-meta .icon{stroke:var(--green-600);width:24px;height:24px;margin-bottom:6px}
.voyage-meta b{font-family:"Plus Jakarta Sans",sans-serif;color:var(--ink);font-size:1.02rem}
.voyage-meta span{font-size:.8rem;color:var(--ink-2);margin-top:2px}
.voyage-desc{max-width:none;margin:0 0 6px}
.tarif-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}
.tarif-card{border-radius:16px;overflow:hidden;border:1px solid var(--border);text-align:center;transition:transform .25s ease,box-shadow .25s ease}
.tarif-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.tarif-head{background:var(--green-50);padding:14px 10px 12px;border-bottom:1px solid var(--green-100)}
.tarif-head .icon{stroke:var(--green-700);width:30px;height:30px}
.tarif-head .occ{display:block;font-size:.72rem;color:var(--green-700);font-weight:800;margin-top:2px;font-family:"Plus Jakarta Sans",sans-serif}
.tarif-body{background:linear-gradient(160deg,var(--green-600),var(--green-700));color:#fff;padding:16px 10px 18px}
.tarif-body .tarif-type{color:#fff;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700;opacity:.92}
.tarif-body .tarif-prix{color:#fff;font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:1.3rem;margin-top:.3rem}
.tarif-card.tarif-single.is-hidden{display:none}
.tarif-single-toggle{margin-top:16px;background:none;border:1px solid var(--green-600);color:var(--green-700);font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.85rem;padding:9px 18px;border-radius:999px;cursor:pointer;transition:background .2s ease,color .2s ease}
.tarif-single-toggle:hover{background:var(--green-600);color:#fff}
.tarif-single-toggle[aria-expanded="true"]{background:var(--green-50)}
.hotel-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hotel-card{background:var(--cream);border:1px solid var(--border);border-radius:14px;padding:18px}
.hotel-card .hotel-city{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--green-600);font-weight:700}
.hotel-card b{display:flex;align-items:center;gap:.5rem;margin-top:.4rem;font-family:"Plus Jakarta Sans",sans-serif;color:var(--ink)}
.hotel-card .icon{stroke:var(--gold-600);flex:0 0 auto;width:20px;height:20px}
.incl-info{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.formule-incl.one{grid-template-columns:1fr}
.info-list{list-style:none;display:grid;gap:.6rem}
.info-list li{display:flex;gap:.5rem;align-items:flex-start;font-size:.93rem;color:var(--ink-2)}
.info-list .icon{stroke:var(--gold-600);margin-top:2px;flex:0 0 auto;width:18px;height:18px}
.voyage-side{position:sticky;top:96px;display:grid;gap:16px}
.voyage-side h3{font-size:1.1rem;margin-bottom:.8rem;color:var(--ink)}
.contact-phone{display:flex;align-items:center;gap:.5rem;font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;font-size:1.3rem;color:var(--green-700);margin-bottom:.8rem}
.contact-phone .icon{stroke:var(--gold-600)}
.contact-mini .btn{width:100%}
.ins-form input,.ins-form select,.ins-form textarea{width:100%;padding:.62rem .8rem;border:1px solid var(--border);border-radius:10px;font:inherit;font-size:.92rem;background:#fdfcfd;color:var(--ink);margin-bottom:.55rem}
.ins-form input[readonly]{background:var(--green-50);color:var(--green-700);font-weight:600}
.ins-form input:focus,.ins-form select:focus,.ins-form textarea:focus{outline:2px solid var(--green-500);border-color:var(--green-500)}
.ins-occ{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ins-occ label{font-size:.72rem;color:var(--ink-2);display:flex;flex-direction:column;gap:3px}
.ins-form textarea{min-height:78px;resize:vertical}
.ins-form .btn{width:100%;margin-top:.3rem}
.ins-ok{background:var(--green-50);border:1px solid var(--green-100);color:var(--green-700);padding:.7rem .9rem;border-radius:10px;margin-bottom:.8rem;font-weight:600;font-size:.9rem}
.ins-ko{background:#fdecea;border:1px solid #f5c6c2;color:#a3261f;padding:.7rem .9rem;border-radius:10px;margin-bottom:.8rem;font-weight:600;font-size:.9rem}
@media (max-width:980px){
  .voyage-layout{grid-template-columns:1fr;gap:28px}
  .voyage-side{position:static}
  .incl-info,.hotel-grid{grid-template-columns:1fr}
}
/* onglets de navigation */
.voyage-tabs-wrap{position:sticky;top:76px;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);margin-top:24px}
.voyage-tabs{display:flex;gap:4px;overflow-x:auto}
.voyage-tabs a{padding:15px 18px;font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:.92rem;color:var(--ink-2);white-space:nowrap;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.voyage-tabs a:hover,.voyage-tabs a.active{color:var(--green-700);border-bottom-color:var(--gold-500)}
.voyage-section{scroll-margin-top:138px}
.voyage-section+.voyage-section{margin-top:6px}

/* boarding pass */
.boarding{display:grid;grid-template-columns:1.6fr .9fr;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-md);overflow:hidden}
.bp-left{padding:22px 26px}
.bp-airline{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;color:var(--green-700);margin-bottom:14px;display:flex;align-items:center;gap:.5rem}
.bp-airline .icon{stroke:var(--gold-600)}
.bp-leg{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:1.1rem;color:var(--ink)}
.bp-leg .icon{stroke:var(--green-500);width:24px;height:24px}
.bp-city{word-break:break-word}
.bp-date{color:var(--ink-2);font-size:.9rem;margin:.25rem 0 1.1rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.bp-leg+.bp-date{margin-bottom:1.1rem}
.bp-date b{color:var(--ink);font-family:"Plus Jakarta Sans",sans-serif}
.bp-tag{display:inline-block;background:var(--gold-100);color:var(--gold-600);font-weight:700;font-size:.72rem;padding:.15rem .55rem;border-radius:999px}
.bp-right{padding:22px 24px;border-left:2px dashed var(--border);background:var(--green-50);display:flex;flex-direction:column}
.bp-stub{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-600);font-weight:800}
.bp-bag{display:flex;align-items:flex-start;gap:.5rem;margin-top:14px;color:var(--ink-2);font-size:.88rem;line-height:1.5}
.bp-bag .icon{stroke:var(--green-600);flex:0 0 auto;width:20px;height:20px}
.bp-barcode{margin-top:auto;height:42px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 5px);border-radius:3px;opacity:.7}

/* pourquoi nous choisir */
.whychoose ul{list-style:none;display:grid;gap:.7rem}
.whychoose li{display:flex;align-items:center;gap:.6rem;font-size:.93rem;color:var(--ink);font-weight:500}
.whychoose .icon{stroke:var(--green-600);width:20px;height:20px;flex:0 0 auto}

/* promotions */
.ribbon-promo{background:#c0392b;color:#fff}
.price .old{text-decoration:line-through;color:var(--ink-2);font-size:.92rem;opacity:.7;font-weight:600}
.voyage-eyebrow.promo{background:#c0392b;color:#fff;margin-left:.4rem}
.vb-price .vb-old{text-decoration:line-through;color:var(--ink-2);font-size:.66em;font-weight:600;margin-right:.35rem}
.promo-countdown{margin-top:14px;background:var(--gold-100);border:1px solid var(--gold-500);border-radius:14px;padding:11px 18px;display:flex;gap:.6rem;align-items:center;justify-content:center;flex-wrap:wrap;color:var(--gold-600);font-weight:600;font-size:.95rem}
.promo-countdown .pc-timer{font-family:"Plus Jakarta Sans",sans-serif;font-weight:800;color:var(--ink)}

/* carrousel Omra similaires */
.similar-carousel{position:relative}
.similar-track{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 2px 14px;scrollbar-width:thin;scrollbar-color:var(--green-100) transparent}
.similar-track::-webkit-scrollbar{height:8px}
.similar-track::-webkit-scrollbar-thumb{background:var(--green-100);border-radius:99px}
.similar-track>.card{flex:0 0 320px;scroll-snap-align:start}
@media (max-width:600px){.similar-track>.card{flex-basis:82%}}

@media (max-width:600px){
  .voyage-meta{grid-template-columns:1fr}
  .boarding{grid-template-columns:1fr}
  .bp-right{border-left:0;border-top:2px dashed var(--border)}
}

/* ---------- Catalogue premium (v1.4.2 â€” fidÃ¨le au prototype) ---------- */
.page-hero .hero-flex{position:relative;display:flex;justify-content:center}
.page-hero .hero-flex>div:first-child{max-width:680px;text-align:center}
.page-hero .hero-flex .eyebrow{justify-content:center}
.page-hero .hero-flex p{margin-left:auto;margin-right:auto}
.hero-assure{list-style:none;margin:0;position:absolute;right:0;top:-8px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);padding:12px 18px}
.hero-assure li{display:flex;align-items:center;gap:.5rem;font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:.82rem;color:var(--ink);padding:.28rem 0}
.hero-assure .icon{width:14px;height:14px;stroke:var(--green-600);flex-shrink:0}

.card{position:relative;border-radius:16px}
.card .media{height:185px}
.card .badge{background:var(--green-700);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.02em;padding:.3rem .68rem;box-shadow:none}
.card .badge-duree{position:absolute;top:14px;right:14px;background:rgba(33,22,36,.88);color:#fff;font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.02em;padding:.3rem .68rem;border-radius:var(--pill)}
.card .body{padding:16px 18px 20px}
.card .loc{font-size:.76rem}
.card h3{font-size:1.06rem;margin-top:.45rem;line-height:1.35}
.card .feats{display:flex;flex-wrap:wrap;gap:.38rem;margin:.85rem 0 0}
.card .feats li{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border);background:#fff;border-radius:var(--pill);padding:.26rem .6rem;font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:.7rem;color:var(--ink-2);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .feats .icon{width:12px;height:12px;flex-shrink:0;stroke:var(--green-600)}
.card .rate{margin-top:.8rem;font-size:.78rem}
.card .foot{margin-top:auto;padding-top:.9rem}
.card .price{justify-content:center;border-top:1px solid var(--gray-50);padding-top:.95rem;margin-bottom:.8rem}
.card .price small{font-size:.78rem}
.card .price .amt{font-size:1.5rem}
.card .price .per{font-size:.76rem}
.card .actions .btn{border-radius:var(--pill);font-size:.84rem;padding:.6rem .9rem}
.card .actions .btn-primary{background:var(--green-700)}
.card .actions .btn-primary:hover{background:var(--green-600)}

.card--star{border:1.5px solid var(--gold-500);box-shadow:0 16px 38px -18px rgba(149,31,179,.38)}
.card-star-strip{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:3;background:linear-gradient(90deg,var(--gold-500),var(--gold-600));color:#fff;border-radius:var(--pill);padding:.34rem .9rem;font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;box-shadow:0 4px 14px rgba(149,31,179,.45)}

.card--custom{background:linear-gradient(180deg,#fff,var(--cream))}
.card--custom .price{flex-direction:column;align-items:center;gap:.1rem}
.card--custom .price small{font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.92rem;color:var(--green-700)}
.card--custom .custom-note{font-size:.8rem;color:var(--ink-2)}
.card--custom .actions{grid-template-columns:1fr}
.card--custom .actions .btn-gold{border-radius:var(--pill)}

.reassure-band{margin-top:52px;border-top:1px solid var(--border);padding-top:32px;display:grid;grid-template-columns:repeat(4,1fr)}
.reassure-band .itm{display:flex;align-items:flex-start;gap:.85rem;padding:0 24px}
.reassure-band .itm+.itm{border-left:1px solid var(--border)}
.reassure-band .ico{flex-shrink:0;display:grid;place-items:center}
.reassure-band .ico .icon{width:26px;height:26px;stroke:var(--green-700)}
.reassure-band b{display:block;font-family:"Plus Jakarta Sans",sans-serif;font-size:.92rem;color:var(--ink);margin-bottom:.15rem}
.reassure-band span{font-size:.82rem;color:var(--ink-2);line-height:1.5}
.reassure-foot{text-align:center;margin-top:26px;padding-top:20px;border-top:1px solid var(--gray-50);font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:.84rem;color:var(--ink-2)}

@media (max-width:1100px){
  .hero-assure{position:static;margin-top:8px}
  .page-hero .hero-flex{flex-direction:column;align-items:center}
  .hero-assure{width:100%;max-width:520px;display:grid;grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .reassure-band{grid-template-columns:1fr 1fr;row-gap:22px}
  .reassure-band .itm:nth-child(3){border-left:0}
}
@media (max-width:560px){
  .hero-assure{grid-template-columns:1fr}
  .reassure-band{grid-template-columns:1fr}
  .reassure-band .itm+.itm{border-left:0}
}

@media (max-width:980px){
  .so-hero-slider,.so-slider-track{min-height:680px}
  .so-hero-slider .so-slide-inner{grid-template-columns:1fr;min-height:680px;padding:72px 28px 118px}
  .so-hero-slider .so-slide-copy h1,.so-hero-slider .so-slide-copy h2{font-size:3.65rem;line-height:1}
  .so-slide-panel{justify-self:start;min-width:0;width:min(100%,280px)}
}
@media (max-width:640px){
  .so-hero-slider,.so-slider-track{min-height:650px}
  .so-hero-slider .so-slide-inner{min-height:650px;padding:50px 20px 112px}
  .so-hero-slider .so-slide-copy{max-width:292px}
  .so-hero-slider .so-slide-copy h1,.so-hero-slider .so-slide-copy h2{font-size:2.35rem;line-height:1.05}
  .so-hero-slider .so-slide-copy .lead{font-size:1rem;line-height:1.65}
  .so-hero-slider .so-slide-copy .checks{display:grid;grid-template-columns:1fr;gap:.55rem}
  .so-slide-panel{display:none}
  .so-hero-slider .so-slider-ui{bottom:24px;gap:12px;padding:0 20px}
  .so-slider-btn{width:42px;height:42px}
  .so-progress{width:82px}
}
@media (max-width:420px){
  .so-hero-slider .so-slide-copy{max-width:280px}
  .so-hero-slider .so-slide-copy h1,.so-hero-slider .so-slide-copy h2{font-size:2.08rem}
}



/* ===================================================================
   Header, menus WordPress, footer widgets â€” 1.4.7
=================================================================== */
:root{
  --so-menu-home:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-8 9 8'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E");
  --so-menu-omra:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='6' width='14' height='15' rx='1'/%3E%3Cpath d='M5 10.5h14'/%3E%3Cpath d='M10.5 21v-4h3v4'/%3E%3C/svg%3E");
  --so-menu-hajj:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20h18l-6.921 -14.612a2.3 2.3 0 0 0 -4.158 0l-6.921 14.612z'/%3E%3Cpath d='M7.5 11l2 2.5l2.5 -2.5l2 3l2.5 -2'/%3E%3C/svg%3E");
  --so-menu-agency:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
  --so-menu-contact:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2A19.8 19.8 0 0 1 3.07 5.18 2 2 0 0 1 5.06 3h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L9.04 10.9a16 16 0 0 0 4.06 4.06l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
  --so-menu-guide:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20'/%3E%3Cpath d='M4 4.5A2.5 2.5 0 0 1 6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5z'/%3E%3C/svg%3E");
  --so-menu-faq:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.1 9a3 3 0 1 1 5.8 1c-.8 1.2-2.4 1.6-2.4 3'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
  --so-menu-default:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-4.4 7-11a7 7 0 0 0-14 0c0 6.6 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
body.admin-bar header.nav{top:32px}
header.nav{box-shadow:0 12px 30px rgba(26,7,31,.07);background:rgba(255,255,255,.94)}
header.nav .wrap{height:74px;gap:1.2rem}
.brand{min-width:max-content;letter-spacing:0}
header.nav .brand{flex:1 1 0}
header.nav .nav-cta{flex:1 1 0;justify-content:flex-end}
.brand .mark{border-radius:13px;box-shadow:0 10px 24px rgba(76,10,93,.18)}
nav.menu{flex:0 1 auto;justify-content:center;min-width:0;gap:.45rem}
nav.menu .menu-list{display:flex;align-items:center;justify-content:center;gap:.35rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}
nav.menu li{margin:0;padding:0}
nav.menu a.menu-link,nav.menu>a{display:inline-flex;align-items:center;gap:.45rem;min-height:40px;padding:.5rem .72rem;border-radius:999px;border:1px solid transparent;font-family:"Plus Jakarta Sans",sans-serif;font-weight:700;font-size:.88rem;line-height:1;color:var(--ink-2);white-space:nowrap;transition:color .16s,background .16s,border-color .16s,box-shadow .16s,transform .16s}
nav.menu a.menu-link::before,.mobile-menu a.menu-link::before{content:"";position:static!important;inset:auto!important;width:16px!important;height:16px!important;flex:0 0 16px;border-radius:0!important;transform:none!important;background:currentColor!important;opacity:.78;mask:var(--so-menu-icon) center/contain no-repeat;-webkit-mask:var(--so-menu-icon) center/contain no-repeat}
/* Header : UNE seule icÃ´ne menu (la mienne = masque ::before). SÃ©lecteurs html body â€¦ pour battre la spÃ©cificitÃ© de la couche Codex (testÃ© en direct sur le live). */
html body header.nav .menu-link .so-menu-svg,html body header.nav .site-header .menu-link .so-menu-svg{display:none!important}
html body header.nav nav.menu a.menu-link::before{position:static!important;inset:auto!important;background:currentColor!important;opacity:.9!important;transform:none!important;box-shadow:none!important;border-radius:0!important;width:17px!important;height:17px!important}
html body header.nav nav.menu a.menu-link::after,html body header.nav .menu-link::after{display:none!important}
/* Retirer les drapeaux de langue injectÃ©s dans le menu (Codex) */
html body header.nav ul.menu-list li.so-lang-switch,html body header.nav .menu-list li.so-lang-mobile,html body header .so-lang-switcher,[class*="so-lang"]{display:none!important}
/* Logo header : toujours mon lockup propre, taille maÃ®trisÃ©e ; borner tout WP custom-logo (dÃ©fini hors thÃ¨me) pour Ã©viter le dÃ©bordement */
html body header.nav .brand .brand-logo{height:46px!important;width:auto!important;display:block!important}
html body header.nav .custom-logo,html body header.nav .custom-logo-link img{max-height:48px!important;width:auto!important;height:auto!important}
/* ===== HEADER PRO â€” barre blanche flottante (remplace le header sombre rÃ©siduel Codex, arrÃªtÃ©). SÃ©lecteurs html body â€¦ !important pour gagner la spÃ©cificitÃ©. ===== */
html body header.nav{background:transparent!important;box-shadow:none!important;border:0!important;padding:12px 0!important}
html body header.nav::before{display:none!important;background:none!important}
html body header.nav .wrap{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:1px solid rgba(78,10,95,.12)!important;border-radius:18px!important;box-shadow:0 16px 40px -20px rgba(26,7,31,.32)!important;min-height:66px!important;height:auto!important;padding:8px 16px 8px 22px!important;max-width:1180px!important;display:grid!important;grid-template-columns:1fr auto 1fr!important;align-items:center!important;gap:1rem!important}
/* placement : logo Ã  gauche, menu centrÃ©, Contact/burger Ã  droite */
html body header.nav .brand{justify-self:start!important}
html body header.nav nav.menu{justify-self:center!important;grid-column:2!important;margin:0!important}
html body header.nav .nav-cta{justify-self:end!important;grid-column:3!important}
html body header.nav .burger{justify-self:end!important;grid-column:3!important}
/* Contact : texte + icÃ´ne BLANCS sur fond vert (corrige le bouton vide vert/vert) */
html body header.nav a.so-main-contact-cta,html body header.nav a.so-main-contact-cta .so-menu-label,html body header.nav a.so-main-contact-cta span,html body header.nav .menu-list li a.menu-icon-contact.so-main-contact-cta,html body header.nav .menu-list li a.menu-icon-contact.so-main-contact-cta .so-menu-label{color:#fff!important;background:#4e0a5f!important}
html body header.nav a.so-main-contact-cta .so-menu-label,html body header.nav a.so-main-contact-cta span{background:transparent!important}
html body header.nav a.so-main-contact-cta::before,html body header.nav .menu-icon-contact.so-main-contact-cta::before{background:#fff!important}
/* Contact : le retirer du menu centrÃ© + bouton vert brillant "Nous contacter" Ã  droite (badge rond icÃ´ne, style premium) */
html body header.nav .menu-list li:has(>a.menu-icon-contact){display:none!important}
html body header.nav .menu-list li a.menu-icon-contact{display:none!important}
html body header.nav .nav-cta{display:flex!important;align-items:center!important}
html body header.nav .wrap .nav-cta a.nav-contact{display:inline-flex!important;align-items:center!important;gap:11px!important;text-decoration:none!important;background-color:#640e7a!important;background-image:linear-gradient(180deg,#8717a3,#4e0a5f)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:7px 7px 7px 20px!important;font-weight:700!important;font-size:.92rem!important;line-height:1!important;box-shadow:0 10px 24px -6px rgba(78,10,95,.5),inset 0 1px 0 rgba(255,255,255,.28)!important;position:relative!important;overflow:hidden!important;transition:transform .16s,box-shadow .16s!important}
html body header.nav .nav-cta .nav-contact::before{content:""!important;position:absolute!important;left:0!important;right:0!important;top:0!important;height:52%!important;background:linear-gradient(180deg,rgba(255,255,255,.22),transparent)!important;pointer-events:none!important}
html body header.nav .nav-cta .nav-contact:hover{transform:translateY(-1px)!important;box-shadow:0 14px 30px -6px rgba(78,10,95,.6),inset 0 1px 0 rgba(255,255,255,.32)!important}
html body header.nav .nav-cta .nc-label{color:#fff!important;position:relative!important;z-index:1!important}
html body header.nav .nav-cta .nc-ico{width:32px!important;height:32px!important;border-radius:50%!important;background:#fff!important;display:grid!important;place-items:center!important;flex:0 0 32px!important;position:relative!important;z-index:1!important}
html body header.nav .nav-cta .nc-ico .icon,html body header.nav .nav-cta .nc-ico svg{width:16px!important;height:16px!important;stroke:#4e0a5f!important;color:#4e0a5f!important;display:block!important}
/* responsive : sous 980px, menu masquÃ© + burger, grille simplifiÃ©e */
@media(max-width:980px){
  html body header.nav .wrap{grid-template-columns:1fr auto 1fr!important;padding:6px 14px!important;min-height:58px!important}
  html body header.nav nav.menu{display:none!important}
  html body header.nav .nav-cta{display:none!important}
  /* logo centrÃ©, burger vert Ã  droite */
  html body header.nav .brand{justify-self:center!important;grid-column:2!important}
  html body header.nav .brand-logo{height:40px!important}
  html body header.nav .burger{display:grid!important;grid-column:3!important;justify-self:end!important;color:#4e0a5f!important;background:#fff!important;border:1px solid rgba(78,10,95,.16)!important}
  html body header.nav .burger .icon,html body header.nav .burger svg{stroke:#4e0a5f!important;color:#4e0a5f!important}
  /* menu mobile ouvert : carte blanche lisible + drapeaux virÃ©s */
  html body header.nav .mobile-menu,html body header.nav .mobile-menu-list,html body header.nav ul.mobile-primary-menu,html body header.nav .mobile-nav,html body header.nav [class*="mobile-menu"]{background:#fff!important;border-radius:14px!important}
  html body header.nav .mobile-menu a,html body header.nav .mobile-menu a span,html body header.nav .mobile-menu .so-menu-label,html body header.nav .mobile-menu-list a,html body header.nav [class*="mobile-menu"] a{color:#211624!important}
  html body header.nav [class*="mobile"] .so-lang-switch,html body header.nav [class*="mobile"] [class*="so-lang"],html body header.nav [class*="so-lang-mobile"],html body [class*="so-lang-mobile"]{display:none!important}
}
/* menu : vert, icÃ´nes vertes */
html body header.nav .menu-list li a.menu-link,html body header.nav .menu-list li a.menu-link .so-menu-label,html body header.nav .menu-list li a.menu-link span,html body header.nav nav.menu a.menu-link{color:#4e0a5f!important}
html body header.nav nav.menu a.menu-link::before{background:#4e0a5f!important}
html body header.nav .menu-list>li>a.menu-link:hover{background:#f3e9f5!important;border-radius:999px!important}
html body header.nav .menu-list li a.menu-link.active .so-menu-label,html body header.nav .menu-list li.current-menu-item>a .so-menu-label{color:#4e0a5f!important}
/* sous-menu : dropdown complet gÃ©rÃ© par le thÃ¨me (le bloc Codex qui le cachait est strippÃ©) */
html body header.nav .menu-item-has-children{position:relative!important}
html body header.nav .sub-menu{position:absolute!important;left:0!important;top:calc(100% + 6px)!important;z-index:90!important;min-width:260px!important;margin:0!important;list-style:none!important;background:#fff!important;border:1px solid rgba(78,10,95,.12)!important;box-shadow:0 22px 55px rgba(26,7,31,.18)!important;border-radius:14px!important;padding:8px!important;opacity:0!important;visibility:hidden!important;transform:translateY(8px)!important;pointer-events:none!important;transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important}
html body header.nav .menu-item-has-children:hover>.sub-menu,html body header.nav .menu-item-has-children:focus-within>.sub-menu{opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important}
html body header.nav .sub-menu li{list-style:none!important;margin:0!important;padding:0!important}
html body header.nav .sub-menu li::marker{content:""!important}
html body header.nav .sub-menu li a{display:block!important;padding:10px 14px!important;border-radius:9px!important;font-size:.9rem!important;white-space:nowrap!important}
html body header.nav .sub-menu li a,html body header.nav .sub-menu li a span,html body header.nav .sub-menu li a .so-menu-label,html body header.nav .sub-menu .menu-link{color:#211624!important}
html body header.nav .sub-menu li a::before{background:#4e0a5f!important}
html body header.nav .sub-menu li a:hover,html body header.nav .sub-menu li a:hover .so-menu-label{background:#f3e9f5!important;color:#4e0a5f!important;border-radius:9px!important}
/* bouton Contact : pill vert foncÃ© */
html body header.nav .nav-cta a,html body header.nav a.so-main-contact-cta,html body header.nav .menu-list li a.menu-icon-contact.so-main-contact-cta{background:#4e0a5f!important;color:#fff!important;border:0!important}
html body header.nav .nav-cta a svg,html body header.nav a.so-main-contact-cta svg{stroke:#fff!important;color:#fff!important}
/* sous-menu : pont de survol invisible (l'item reste hoverable jusqu'au sous-menu -> ne disparaÃ®t plus au passage de la souris) */
html body header.nav .menu-item-has-children{position:relative!important}
html body header.nav .menu-item-has-children::after{content:""!important;position:absolute!important;left:0!important;right:0!important;top:100%!important;height:34px!important;background:transparent!important;display:block!important;z-index:60!important}
html body header.nav .menu-item-has-children>.sub-menu{top:calc(100% + 6px)!important}
/* couleur menu forcÃ©e sur tous les Ã©tats (Ã©vite vert/vert, blanc/blanc intermittents) â€” sauf le bouton Contact */
html body header.nav .menu-list li a.menu-link:not(.so-main-contact-cta),html body header.nav .menu-list li a.menu-link:not(.so-main-contact-cta) .so-menu-label,html body header.nav .menu-list li a.menu-link:not(.so-main-contact-cta):hover,html body header.nav .menu-list li a.menu-link:not(.so-main-contact-cta):focus{color:#4e0a5f!important}
.menu-icon-home::before{--so-menu-icon:var(--so-menu-home)}
.menu-icon-omra::before{--so-menu-icon:var(--so-menu-omra)}
.menu-icon-hajj::before{--so-menu-icon:var(--so-menu-hajj)}
.menu-icon-agency::before{--so-menu-icon:var(--so-menu-agency)}
.menu-icon-contact::before{--so-menu-icon:var(--so-menu-contact)}
.menu-icon-guide::before{--so-menu-icon:var(--so-menu-guide)}
.menu-icon-faq::before{--so-menu-icon:var(--so-menu-faq)}
.menu-icon-default::before{--so-menu-icon:var(--so-menu-default)}
nav.menu a.menu-link:hover,nav.menu>a:hover{color:var(--green-700);background:var(--green-50);border-color:var(--green-100);transform:translateY(-1px)}
nav.menu a.menu-link.active,nav.menu li.current-menu-item>a,nav.menu li.current-menu-ancestor>a,nav.menu>a.active{color:var(--green-700);background:#fff;border-color:var(--green-100);box-shadow:0 8px 20px rgba(76,10,93,.08)}
nav.menu a.active::after{display:none}
.nav-cta .btn{box-shadow:none}
.nav-cta .btn-outline{border-color:var(--green-100);background:var(--green-50)}
.burger{width:44px;height:44px;border-radius:14px;place-items:center;box-shadow:0 8px 22px rgba(26,7,31,.08)}
.mobile-menu{position:absolute;left:16px;right:16px;top:calc(100% + 8px);z-index:70;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 22px 50px rgba(26,7,31,.16);overflow:hidden}
.mobile-menu.open{display:block}
.mobile-menu ul{list-style:none;margin:0;padding:8px;display:grid;gap:4px}
.mobile-menu li{margin:0}
.mobile-menu a{display:flex;align-items:center;gap:.7rem;padding:13px 14px;border:0;border-radius:12px;color:var(--ink);font-family:"Plus Jakarta Sans",sans-serif;font-weight:700}
.mobile-menu a:hover,.mobile-menu a.active,.mobile-menu li.current-menu-item>a{background:var(--green-50);color:var(--green-700)}

footer.site-footer{background:linear-gradient(180deg,#1e0724,#2b0b33);border-top:0;color:rgba(255,255,255,.72);padding:36px 0 16px;margin-top:36px}
.foot-grid{align-items:start}
footer.site-footer .foot-bottom{margin-top:14px;padding-top:16px}
footer.site-footer p.about,footer.site-footer .footer-widget p{margin-top:.9rem;line-height:1.7;max-width:26rem}
/* Logo footer : remplace l'ancien embleme du widget par le logo blanc (sans toucher la base), agrandi */
footer.site-footer .foot-brand-col{align-self:start}
footer.site-footer .foot-brand-col .footer-widget{margin:0;padding:0}
footer.site-footer .foot-brand-col .brand{display:block;width:264px;max-width:100%;height:76px;background:url(assets/logo-white.png) left top/contain no-repeat;font-size:0;line-height:0;color:transparent}
footer.site-footer .foot-brand-col .brand .mark{display:none}
footer.site-footer .foot-brand-col .brand b{font-size:0}
footer.site-footer .brand{color:#fff}
footer.site-footer .brand .mark{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);box-shadow:none}
footer.site-footer .brand b{color:var(--gold-500)}
footer.site-footer p.about,footer.site-footer .footer-widget p{color:rgba(255,255,255,.7);line-height:1.75}
footer.site-footer h4,footer.site-footer .wp-block-heading{color:#fff;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem;font-family:"Plus Jakarta Sans",sans-serif}
footer.site-footer ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.62rem}
footer.site-footer ul a{color:rgba(255,255,255,.76);font-size:.93rem}
footer.site-footer ul a:hover{color:var(--gold-500)}
footer.site-footer .footer-widget{margin:0}
footer.site-footer .footer-widget+.footer-widget{margin-top:20px}
footer.site-footer .wp-block-search__inside-wrapper{display:flex;gap:8px;flex-wrap:wrap}
footer.site-footer input[type="search"]{border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.08);color:#fff;padding:.7rem .8rem}
footer.site-footer .wp-block-search__button{border:0;border-radius:10px;background:var(--gold-500);color:#27062f;font-weight:700;padding:.7rem 1rem}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.62)}
.foot-legal-menu{display:flex!important;flex-direction:row!important;align-items:center;gap:.35rem;flex-wrap:wrap}
.foot-legal-menu li{display:inline-flex;align-items:center;gap:.35rem}
.foot-legal-menu li:not(:last-child)::after{content:"Â·";color:rgba(255,255,255,.38);margin-left:.35rem}
.foot-legal a,.foot-legal-menu a{color:rgba(255,255,255,.62)!important}
.foot-legal a:hover,.foot-legal-menu a:hover{color:var(--gold-500)!important}

@media (max-width:1180px){
  nav.menu a.menu-link,nav.menu>a{font-size:.82rem;padding:.48rem .58rem}
  .nav-cta .btn-outline{padding:.58rem .75rem}
}
@media (max-width:980px){
  header.nav .wrap{height:68px}
  nav.menu{display:none}
  .burger{display:grid}
  .nav-cta .btn-outline{display:none}
}
@media (max-width:782px){body.admin-bar header.nav{top:46px}}
@media (max-width:600px){
  header.nav .wrap{padding-left:20px;padding-right:20px}
  .brand{font-size:1.2rem}
  .brand .mark{width:36px;height:36px}
  .mobile-menu{left:10px;right:10px;border-radius:16px}
  footer.site-footer{padding-top:46px;margin-top:60px}
  .foot-bottom{display:grid;gap:.85rem}
}

/* ---------- Hajj : cartes parcours + images (responsive) ---------- */
.parcours-cards{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:940px;margin:0 auto}
.parcours-cards .card .media{height:290px}
.parcours-cards .card .media img{object-position:center 32%}
.parcours-cards .card .body h3{font-size:1.18rem}
@media (max-width:760px){
  .parcours-cards{grid-template-columns:1fr;max-width:480px;gap:22px}
}
@media (max-width:560px){
  .parcours-cards .card .media{height:240px}
}


/* === Correctifs mobile (accordeon) â€” ajoute via code === */
.so-pl.is-done{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
@media (max-width:980px){
  .mobile-menu{overflow:auto!important;max-height:calc(100vh - 90px)!important;-webkit-overflow-scrolling:touch}
  html body header.nav #mobileMenu .sub-menu{position:static!important;transform:none!important;transition:none!important;box-shadow:none!important;background:transparent!important;border:0!important;min-width:0!important;width:auto!important;display:none!important}
  html body header.nav #mobileMenu .menu-item-has-children.so-open>.sub-menu{display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;padding:2px 0 2px 12px!important;margin:2px 0 0!important}
  html body header.nav #mobileMenu .sub-menu li a{white-space:normal!important}
  html body header.nav #mobileMenu .menu-item-has-children::after{display:none!important}
  html body header.nav #mobileMenu .menu-item-has-children>a.menu-link{display:flex!important;align-items:center!important}
  html body header.nav #mobileMenu .so-caret{margin-left:auto!important;font-size:.78em!important;opacity:.55;transition:transform .2s!important}
  html body header.nav #mobileMenu .menu-item-has-children.so-open>a.menu-link .so-caret{transform:rotate(180deg)!important}
}

/* ===================================================================
   Page Nos formules Omra - presentation commerciale premium
=================================================================== */
.so-omra-page{
  background:#f6eff8;
  color:#2B2B2B;
}
.so-omra-page .site-main,
.so-omra-page .so-omra-page{
  background:#f6eff8;
}
.so-omra-page .so-omra-page{
  --so-omra-bg:#f6eff8;
  --so-omra-card:#ffffff;
  --so-omra-green:#330b3d;
  --so-omra-gold:#b04dc9;
  --so-omra-text:#2B2B2B;
  --so-omra-muted:#65645f;
  --so-omra-line:#e1d2e5;
  --so-omra-soft:#eee0f1;
  --so-omra-shadow:0 16px 40px rgba(31,21,34,.07);
}
.so-omra-page .so-omra-page section{
  padding:86px 0;
}
.so-omra-page .so-omra-page .wrap{
  max-width:1220px;
}
.so-omra-page .so-omra-page .eyebrow{
  color:var(--so-omra-green);
  letter-spacing:.12em;
}
.so-omra-page .so-omra-page .eyebrow::before{
  background:var(--so-omra-gold);
}
.so-omra-page .so-omra-page h1,
.so-omra-page .so-omra-page h2,
.so-omra-page .so-omra-page h3{
  color:var(--so-omra-green);
  letter-spacing:0;
}
.so-omra-page .so-omra-page p{
  color:var(--so-omra-muted);
}
.so-omra-page .so-omra-page .btn{
  border-radius:8px;
  min-height:46px;
  font-weight:800;
  letter-spacing:0;
}
.so-omra-page .so-omra-page .btn-primary{
  background:var(--so-omra-green);
  border-color:var(--so-omra-green);
  color:#fff;
  box-shadow:0 10px 22px rgba(51,11,61,.16);
}
.so-omra-page .so-omra-page .btn-primary:hover{
  background:#27082f;
  border-color:#27082f;
  box-shadow:0 14px 28px rgba(51,11,61,.18);
}
.so-omra-page .so-omra-page .btn-outline{
  background:#fff;
  border-color:var(--so-omra-line);
  color:var(--so-omra-green);
  box-shadow:none;
}
.so-omra-page .so-omra-page .btn-outline:hover{
  background:#faf7fb;
  border-color:rgba(51,11,61,.24);
}
.so-omra-page .so-omra-page .btn .icon{
  width:18px;
  height:18px;
}

.so-omra-page .so-omra-hero{
  padding:76px 0 70px;
  background:linear-gradient(180deg,#fcf2ff 0%,#f6eff8 100%);
  border-bottom:1px solid var(--so-omra-line);
}
.so-omra-page .so-omra-hero .breadcrumb{
  margin-bottom:24px;
}
.so-omra-page .so-omra-hero .hero-flex{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(260px,340px);
  align-items:end;
  gap:44px;
  justify-content:normal!important;
}
.so-omra-page .so-omra-hero .hero-flex>div:first-child{
  max-width:760px!important;
  text-align:left!important;
}
.so-omra-page .so-omra-hero .hero-flex .eyebrow{
  justify-content:flex-start!important;
}
.so-omra-page .so-omra-hero h1{
  margin-top:16px;
  font-size:clamp(2.35rem,5vw,4.4rem);
  line-height:1;
  font-weight:850;
}
.so-omra-page .so-omra-hero p{
  max-width:650px;
  margin-top:18px;
  font-size:1.08rem;
  line-height:1.75;
}
.so-omra-page .so-omra-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.so-omra-page .so-omra-hero .hero-assure{
  position:static!important;
  width:100%;
  margin:0;
  padding:18px;
  display:grid;
  gap:10px;
  border:1px solid var(--so-omra-line);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--so-omra-shadow);
}
.so-omra-page .so-omra-hero .hero-assure li{
  display:flex;
  align-items:center;
  gap:10px;
  padding:0;
  color:var(--so-omra-text);
  font-size:.9rem;
  font-weight:750;
}
.so-omra-page .so-omra-hero .hero-assure .icon{
  width:18px;
  height:18px;
  color:var(--so-omra-gold);
}

.so-omra-page .so-omra-section-head{
  max-width:720px;
  margin-bottom:28px;
}
.so-omra-page .so-omra-section-head h2{
  margin-top:10px;
  font-size:clamp(1.85rem,3.2vw,2.75rem);
}
.so-omra-page .so-omra-filters{
  width:100%;
  margin:0 auto 38px;
  padding:8px;
  display:flex;
  justify-content:center;
  gap:8px;
  border:1px solid var(--so-omra-line);
  border-radius:8px;
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 28px rgba(31,21,34,.04);
}
.so-omra-page .so-omra-filters .chip{
  min-height:42px;
  padding:0 18px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:var(--so-omra-muted);
  font-size:.88rem;
  font-weight:800;
}
.so-omra-page .so-omra-filters .chip:hover{
  color:var(--so-omra-green);
  border-color:rgba(51,11,61,.16);
  background:#fff;
}
.so-omra-page .so-omra-filters .chip.active{
  color:#fff;
  border-color:var(--so-omra-green);
  background:var(--so-omra-green);
}

.so-omra-page .so-omra-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px;
  align-items:stretch;
}
.so-omra-page .so-omra-page .so-offer-card{
  position:relative;
  border:1px solid var(--so-omra-line);
  border-radius:8px!important;
  background:var(--so-omra-card);
  box-shadow:0 12px 30px rgba(31,21,34,.055);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:100%;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.so-omra-page .so-omra-page .so-offer-card:hover{
  transform:translateY(-4px);
  border-color:rgba(176,77,201,.46);
  box-shadow:var(--so-omra-shadow);
}
.so-omra-page .so-omra-page .so-offer-card .media{
  position:relative;
  height:230px;
  background:#e3d5e7;
  overflow:hidden;
}
.so-omra-page .so-omra-page .so-offer-card .media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.so-omra-page .so-omra-page .so-offer-card:hover .media img{
  transform:scale(1.035);
}
.so-omra-page .so-omra-page .so-offer-card .badge,
.so-omra-page .so-omra-page .so-offer-card .badge-type{
  position:absolute;
  z-index:2;
  top:14px;
  min-height:30px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(176,77,201,.95);
  color:#fff;
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.03em;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
}
.so-omra-page .so-omra-page .so-offer-card .badge{
  left:14px;
}
.so-omra-page .so-omra-page .so-offer-card .badge-type{
  right:14px;
  border-color:rgba(176,77,201,.5);
  background:rgba(250,232,255,.96);
  color:#641d76;
}
.so-omra-page .so-omra-page .so-offer-card .body{
  padding:24px;
  display:flex;
  flex:1;
  flex-direction:column;
}
.so-omra-page .so-omra-page .so-offer-card .loc{
  display:none;
}
.so-omra-page .so-omra-page .so-offer-card h3{
  margin:0;
  font-size:1.22rem;
  line-height:1.28;
  font-weight:820;
}
.so-omra-page .so-card-meta{
  display:grid;
  gap:10px;
  margin-top:18px;
  padding:16px;
  border:1px solid var(--so-omra-line);
  border-radius:8px;
  background:#fef9ff;
}
.so-omra-page .so-card-meta span{
  display:grid;
  grid-template-columns:20px 86px minmax(0,1fr);
  align-items:center;
  gap:8px;
  color:var(--so-omra-text);
  font-size:.84rem;
  line-height:1.35;
}
.so-omra-page .so-card-meta .icon{
  width:18px;
  height:18px;
  color:var(--so-omra-gold);
}
.so-omra-page .so-card-meta b{
  color:var(--so-omra-green);
  font-size:.72rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.so-omra-page .so-card-meta em{
  min-width:0;
  color:var(--so-omra-text);
  font-style:normal;
  font-weight:650;
}
.so-omra-page .so-omra-page .so-offer-card .feats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin:18px 0 0;
  padding:0;
  list-style:none;
}
.so-omra-page .so-omra-page .so-offer-card .feats li{
  min-width:0;
  min-height:42px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 10px;
  border:1px solid var(--so-omra-line);
  border-radius:8px;
  background:#fff;
  color:var(--so-omra-text);
  font-size:.8rem;
  font-weight:650;
  line-height:1.25;
}
.so-omra-page .so-omra-page .so-offer-card .feats .icon{
  width:16px;
  height:16px;
  color:var(--so-omra-green);
}
.so-omra-page .so-omra-page .so-offer-card .rate{
  margin-top:14px;
  color:var(--so-omra-muted);
  font-size:.82rem;
}
.so-omra-page .so-omra-page .so-offer-card .rate .icon{
  color:var(--so-omra-gold);
}
.so-omra-page .so-omra-page .so-offer-card .foot{
  margin-top:auto;
  padding-top:22px;
  display:grid;
  gap:16px;
}
.so-omra-page .so-omra-page .so-offer-card .price{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:7px;
  margin:0;
  padding:18px;
  border:1px solid rgba(176,77,201,.28);
  border-radius:8px;
  background:linear-gradient(180deg,#fef8ff,#f5e8f8);
}
.so-omra-page .so-omra-page .so-offer-card .price small{
  width:100%;
  color:var(--so-omra-muted);
  font-size:.73rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.08em;
  line-height:1;
}
.so-omra-page .so-omra-page .so-offer-card .price .amt{
  color:var(--so-omra-green);
  font-size:2rem;
  line-height:1;
  font-weight:900;
  letter-spacing:0;
}
.so-omra-page .so-omra-page .so-offer-card .price .old{
  color:#8f8880;
  text-decoration:line-through;
  font-weight:700;
}
.so-omra-page .so-omra-page .so-offer-card .price .per,
.so-omra-page .so-omra-page .card--custom .custom-note{
  color:var(--so-omra-muted);
  font-size:.82rem;
  font-weight:700;
}
.so-omra-page .so-omra-page .so-offer-card .actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.so-omra-page .so-omra-page .so-offer-card .btn-sm{
  width:100%;
  min-height:44px;
  padding:0 12px;
  font-size:.83rem;
}
.so-omra-page .so-omra-page .card--star{
  border-color:rgba(176,77,201,.62);
}
.so-omra-page .so-omra-page .card--custom{
  background:#fff;
}
.so-omra-page .so-omra-page .card--custom .price{
  display:grid;
  gap:4px;
}
.so-omra-page .so-omra-page .card--custom .actions{
  grid-template-columns:1fr 1fr;
}

.so-omra-page .so-compare-grid,
.so-omra-page .so-included-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.so-omra-page .so-compare-card,
.so-omra-page .so-included-item,
.so-omra-page .so-final-box{
  border:1px solid var(--so-omra-line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 26px rgba(31,21,34,.045);
}
.so-omra-page .so-compare-card{
  padding:24px;
}
.so-omra-page .so-compare-card span{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(176,77,201,.16);
  color:#76258a;
  font-size:.76rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.so-omra-page .so-compare-card p{
  margin-top:18px;
  color:var(--so-omra-text);
  font-size:.95rem;
  line-height:1.65;
}
.so-omra-page .so-included-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.so-omra-page .so-included-item{
  min-height:154px;
  padding:24px;
  display:grid;
  align-content:start;
  gap:10px;
}
.so-omra-page .so-included-item .icon{
  width:34px;
  height:34px;
  padding:7px;
  border-radius:8px;
  background:rgba(176,77,201,.14);
  color:var(--so-omra-gold);
}
.so-omra-page .so-included-item b{
  color:var(--so-omra-green);
  font-size:1.05rem;
}
.so-omra-page .so-included-item span{
  color:var(--so-omra-muted);
  font-size:.92rem;
  line-height:1.55;
}
.so-omra-page .so-omra-final-cta{
  padding-top:30px;
}
.so-omra-page .so-final-box{
  padding:42px;
  text-align:center;
  background:linear-gradient(180deg,#fff,#fcf1ff);
}
.so-omra-page .so-final-box .eyebrow{
  justify-content:center;
}
.so-omra-page .so-final-box h2{
  margin-top:12px;
  font-size:clamp(1.9rem,3.4vw,3rem);
}
.so-omra-page .so-final-box p{
  max-width:620px;
  margin:14px auto 0;
  font-size:1.02rem;
  line-height:1.7;
}
.so-omra-page .so-final-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin-top:28px;
}

@media (max-width:1060px){
  .so-omra-page .so-omra-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .so-omra-page .so-compare-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:880px){
  .so-omra-page .so-omra-page section{
    padding:64px 0;
  }
  .so-omra-page .so-omra-hero .hero-flex{
    grid-template-columns:1fr;
    gap:24px;
  }
  .so-omra-page .so-omra-hero .hero-assure{
    max-width:none;
    grid-template-columns:1fr 1fr;
  }
  .so-omra-page .so-included-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:680px){
  .so-omra-page .so-omra-page .wrap{
    padding:0 18px;
  }
  .so-omra-page .so-omra-hero{
    padding:54px 0 52px;
  }
  .so-omra-page .so-omra-hero h1{
    font-size:clamp(2.4rem,12vw,3.25rem);
  }
  .so-omra-page .so-omra-hero p{
    font-size:.98rem;
  }
  .so-omra-page .so-omra-hero__actions,
  .so-omra-page .so-final-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .so-omra-page .so-omra-hero__actions .btn,
  .so-omra-page .so-final-actions .btn{
    width:100%;
  }
  .so-omra-page .so-omra-hero .hero-assure{
    grid-template-columns:1fr;
  }
  .so-omra-page .so-omra-filters{
    justify-content:flex-start;
    overflow-x:auto;
    padding:7px;
    scrollbar-width:none;
  }
  .so-omra-page .so-omra-filters::-webkit-scrollbar{
    display:none;
  }
  .so-omra-page .so-omra-filters .chip{
    flex:0 0 auto;
  }
  .so-omra-page .so-omra-grid,
  .so-omra-page .so-compare-grid,
  .so-omra-page .so-included-grid{
    grid-template-columns:1fr;
  }
  .so-omra-page .so-omra-page .so-offer-card .media{
    height:210px;
  }
  .so-omra-page .so-omra-page .so-offer-card .body{
    padding:20px;
  }
  .so-omra-page .so-card-meta{
    padding:14px;
  }
  .so-omra-page .so-card-meta span{
    grid-template-columns:18px 78px minmax(0,1fr);
    font-size:.8rem;
  }
  .so-omra-page .so-omra-page .so-offer-card .feats{
    grid-template-columns:1fr;
  }
  .so-omra-page .so-omra-page .so-offer-card .actions,
  .so-omra-page .so-omra-page .card--custom .actions{
    grid-template-columns:1fr;
  }
  .so-omra-page .so-final-box{
    padding:30px 20px;
  }
}
@media (max-width:420px){
  .so-omra-page .so-card-meta span{
    grid-template-columns:18px minmax(0,1fr);
  }
  .so-omra-page .so-card-meta b{
    display:none;
  }
  .so-omra-page .so-omra-page .so-offer-card .price .amt{
    font-size:1.76rem;
  }
}

/* ===================================================================
   Page Omra - refonte premium proche reference client
=================================================================== */
.so-omra-page{
  background:#f6eff8;
  color:#2B2B2B;
}
.so-omra-page .site-main,
.so-omra-page .so-omra-page{
  background:#f6eff8;
}
.so-omra-page .so-omra-page{
  --so-ref-bg:#f6eff8;
  --so-ref-card:#ffffff;
  --so-ref-green:#330b3d;
  --so-ref-green-dark:#25062d;
  --so-ref-gold:#b04dc9;
  --so-ref-text:#2B2B2B;
  --so-ref-muted:#6d675f;
  --so-ref-line:#e1cde6;
  --so-ref-soft:#fcf0ff;
  --so-ref-shadow:0 14px 34px rgba(39,22,43,.08);
  color:var(--so-ref-text);
}
.so-omra-page .so-omra-page section{
  padding:0;
}
.so-omra-page .so-omra-page .wrap{
  max-width:1210px;
  padding:0 24px;
}
.so-omra-page .so-omra-page h1,
.so-omra-page .so-omra-page h2,
.so-omra-page .so-omra-page h3{
  color:var(--so-ref-green);
  letter-spacing:0;
}
.so-omra-page .so-omra-page .eyebrow{
  color:#8d22a8;
  letter-spacing:.08em;
}
.so-omra-page .so-omra-page .eyebrow::before{
  display:none;
}
.so-omra-page .so-omra-page .btn{
  border-radius:6px;
  min-height:48px;
  padding:.82rem 1.35rem;
  font-weight:800;
  letter-spacing:0;
  box-shadow:none;
}
.so-omra-page .so-omra-page .btn-primary{
  background:var(--so-ref-green);
  border-color:var(--so-ref-green);
  color:#fff;
}
.so-omra-page .so-omra-page .btn-primary:hover{
  background:var(--so-ref-green-dark);
  border-color:var(--so-ref-green-dark);
  box-shadow:0 12px 24px rgba(51,11,61,.18);
}
.so-omra-page .so-omra-page .btn-outline{
  background:#fff;
  border-color:rgba(51,11,61,.35);
  color:var(--so-ref-green);
}
.so-omra-page .so-omra-page .btn-outline:hover{
  background:#fcf2ff;
  border-color:var(--so-ref-green);
}
.so-omra-page .so-omra-page .btn-gold{
  background:var(--so-ref-gold);
  border-color:var(--so-ref-gold);
  color:#fff;
}
.so-omra-page .so-omra-page .btn-gold:hover{
  background:#9d3cb5;
  border-color:#9d3cb5;
}

.so-omra-page .so-omra-hero{
  min-height:385px;
  display:flex;
  align-items:center;
  border-bottom:1px solid rgba(176,77,201,.18);
  background-image:
    linear-gradient(90deg,#fcf2ff 0%,#fcf2ff 34%,rgba(252,242,255,.92) 50%,rgba(252,242,255,.35) 69%,rgba(252,242,255,0) 100%),
    url("assets/photos/kaaba_2.jpg");
  background-position:center right;
  background-size:cover;
  background-repeat:no-repeat;
}
.so-omra-page .so-omra-hero .wrap{
  width:100%;
}
.so-omra-page .so-omra-hero .hero-flex{
  display:block!important;
}
.so-omra-page .so-hero-copy{
  max-width:650px;
  padding:62px 0 70px;
}
.so-omra-page .so-omra-hero h1{
  max-width:620px;
  margin:12px 0 0;
  font-size:clamp(2.25rem,4.2vw,3.7rem);
  line-height:1.08;
  font-weight:850;
}
.so-omra-page .so-omra-hero p{
  max-width:560px;
  margin:22px 0 0;
  color:var(--so-ref-text);
  font-size:1.02rem;
  line-height:1.72;
}
.so-omra-page .so-omra-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:28px;
}
.so-omra-page .so-omra-hero__actions .btn{
  min-width:205px;
}

.so-omra-page .so-omra-catalogue{
  padding:0 0 34px;
}
.so-omra-page .so-omra-filters{
  position:relative;
  z-index:3;
  width:min(100%,980px);
  margin:-22px auto 26px;
  padding:0;
  display:flex;
  justify-content:center;
  gap:0;
  overflow:hidden;
  border:1px solid var(--so-ref-line);
  border-radius:8px;
  background:rgba(255,255,255,.93);
  box-shadow:0 12px 28px rgba(43,23,48,.07);
}
.so-omra-page .so-omra-filters .chip{
  flex:1 1 auto;
  min-width:122px;
  min-height:48px;
  padding:0 14px;
  border:0;
  border-right:1px solid var(--so-ref-line);
  border-radius:0;
  background:transparent;
  color:var(--so-ref-green);
  font-size:.8rem;
  font-weight:850;
  white-space:nowrap;
}
.so-omra-page .so-omra-filters .chip:last-child{
  border-right:0;
}
.so-omra-page .so-omra-filters .chip:hover{
  background:#fcf2ff;
  color:var(--so-ref-green);
}
.so-omra-page .so-omra-filters .chip.active{
  background:var(--so-ref-green);
  color:#fff;
}

.so-omra-page .so-omra-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.so-omra-page .so-omra-page .so-offer-card{
  border:1px solid var(--so-ref-line);
  border-radius:8px!important;
  background:#fff;
  box-shadow:0 10px 28px rgba(48,25,54,.06);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:100%;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.so-omra-page .so-omra-page .so-offer-card:hover{
  transform:translateY(-3px);
  border-color:rgba(176,77,201,.55);
  box-shadow:var(--so-ref-shadow);
}
.so-omra-page .so-omra-page .so-offer-card .media{
  height:162px;
  position:relative;
  overflow:hidden;
  background:#e2d0e7;
}
.so-omra-page .so-omra-page .so-offer-card .media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,0) 42%);
  pointer-events:none;
}
.so-omra-page .so-omra-page .so-offer-card .media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.so-omra-page .so-omra-page .so-offer-card .badge-type,
.so-omra-page .so-omra-page .so-offer-card .badge-period{
  position:absolute;
  z-index:2;
  top:12px;
  min-height:28px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border-radius:6px;
  font-size:.68rem;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.so-omra-page .so-omra-page .so-offer-card .badge-type{
  left:12px;
  background:var(--so-ref-green);
  color:#fff;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
}
.so-omra-page .so-omra-page .so-offer-card .badge-type--ramadan,
.so-omra-page .so-omra-page .so-offer-card .badge-type--recommandee{
  background:var(--so-ref-gold);
  color:#fff;
}
.so-omra-page .so-omra-page .so-offer-card .badge-period{
  right:12px;
  max-width:46%;
  overflow:hidden;
  color:#fff;
  background:rgba(51,11,61,.72);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.so-omra-page .so-omra-page .so-offer-card .body{
  padding:18px 18px 16px;
  display:flex;
  flex:1;
  flex-direction:column;
}
.so-omra-page .so-omra-page .so-offer-card h3{
  margin:0;
  color:var(--so-ref-green);
  font-size:1.08rem;
  line-height:1.25;
  font-weight:900;
  text-transform:uppercase;
}
.so-omra-page .so-card-date{
  margin:7px 0 0;
  color:#83299a!important;
  font-size:.8rem;
  line-height:1.45;
  font-weight:700;
}
.so-omra-page .so-card-details{
  display:grid;
  gap:8px;
  margin:16px 0 0;
  padding:0;
  list-style:none;
}
.so-omra-page .so-card-details li{
  display:flex;
  align-items:flex-start;
  gap:9px;
  color:var(--so-ref-text);
  font-size:.82rem;
  line-height:1.38;
  font-weight:650;
}
.so-omra-page .so-card-details .icon{
  width:17px;
  height:17px;
  margin-top:1px;
  color:var(--so-ref-green);
}
.so-omra-page .so-card-inclusions{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  margin:14px 0 0;
  padding:0;
  list-style:none;
}
.so-omra-page .so-card-inclusions li{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--so-ref-muted);
  font-size:.78rem;
  line-height:1.35;
  font-weight:650;
}
.so-omra-page .so-card-inclusions .icon{
  width:15px;
  height:15px;
  color:var(--so-ref-gold);
}
.so-omra-page .so-omra-page .so-offer-card .rate{
  margin-top:12px;
  color:var(--so-ref-muted);
  font-size:.78rem;
}
.so-omra-page .so-omra-page .so-offer-card .rate .icon{
  width:15px;
  height:15px;
  color:var(--so-ref-gold);
}
.so-omra-page .so-omra-page .so-offer-card .foot{
  margin-top:auto;
  padding-top:22px;
  display:grid;
  gap:9px;
}
.so-omra-page .so-omra-page .so-offer-card .price{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:6px;
}
.so-omra-page .so-omra-page .so-offer-card .price small{
  width:100%;
  color:var(--so-ref-muted);
  font-size:.72rem;
  font-weight:700;
  text-transform:none;
  letter-spacing:0;
}
.so-omra-page .so-omra-page .so-offer-card .price .amt{
  color:var(--so-ref-green);
  font-size:1.95rem;
  line-height:1;
  font-weight:950;
}
.so-omra-page .so-omra-page .so-offer-card .price .old{
  color:#8f877b;
  text-decoration:line-through;
  font-weight:700;
}
.so-omra-page .so-omra-page .so-offer-card .price .per{
  color:var(--so-ref-text);
  font-size:.82rem;
  font-weight:800;
}
.so-omra-page .so-card-status{
  margin:0;
  color:#83299a!important;
  font-size:.78rem;
  line-height:1.35;
  font-weight:700;
}
.so-omra-page .so-omra-page .so-offer-card .actions{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
  margin-top:4px;
}
.so-omra-page .so-omra-page .so-offer-card .btn-sm{
  width:100%;
  min-height:42px;
  padding:0 12px;
  font-size:.8rem;
}
.so-omra-page .so-card-details-link{
  min-height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  color:var(--so-ref-green);
  font-size:.79rem;
  font-weight:850;
}
.so-omra-page .so-card-details-link .icon{
  width:15px;
  height:15px;
}

.so-omra-page .so-custom-strip.card{
  grid-column:1/-1;
  margin-top:6px;
  padding:10px;
  display:grid;
  grid-template-columns:240px minmax(190px,.85fr) minmax(320px,1.25fr) 270px;
  align-items:center;
  gap:22px;
  border:1px solid var(--so-ref-line);
  border-radius:8px!important;
  background:rgba(255,255,255,.86);
  box-shadow:0 10px 28px rgba(48,25,54,.05);
}
.so-omra-page .so-custom-strip__image{
  position:relative;
  height:112px;
  overflow:hidden;
  border-radius:6px;
}
.so-omra-page .so-custom-strip__image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.so-omra-page .so-custom-strip__image span{
  position:absolute;
  right:-2px;
  top:50%;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:4px solid #fff;
  border-radius:50%;
  background:var(--so-ref-gold);
  color:#fff;
  transform:translate(50%,-50%);
}
.so-omra-page .so-custom-strip__image .icon{
  width:22px;
  height:22px;
}
.so-omra-page .so-custom-strip__copy h3{
  margin:0;
  font-size:1.12rem;
  font-weight:900;
  text-transform:uppercase;
}
.so-omra-page .so-custom-strip__copy p{
  margin:10px 0 0;
  color:var(--so-ref-text);
  font-size:.88rem;
  line-height:1.55;
}
.so-omra-page .so-custom-strip__features{
  min-height:86px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-left:1px solid var(--so-ref-line);
  border-right:1px solid var(--so-ref-line);
}
.so-omra-page .so-custom-strip__features span{
  min-width:0;
  display:grid;
  place-items:center;
  gap:7px;
  padding:10px 8px;
  border-right:1px solid var(--so-ref-line);
  color:var(--so-ref-muted);
  font-size:.72rem;
  line-height:1.25;
  text-align:center;
  font-weight:750;
}
.so-omra-page .so-custom-strip__features span:last-child{
  border-right:0;
}
.so-omra-page .so-custom-strip__features .icon{
  width:19px;
  height:19px;
  color:var(--so-ref-green);
}
.so-omra-page .so-custom-strip>.btn{
  width:100%;
}

.so-omra-page .so-omra-compare{
  padding:22px 0 34px;
}
.so-omra-page .so-omra-compare h2,
.so-omra-page .so-omra-included h2{
  margin:0 0 16px;
  text-align:center;
  color:var(--so-ref-green);
  font-size:1.45rem;
  line-height:1.25;
  font-weight:850;
}
.so-omra-page .so-compare-table-wrap{
  overflow:auto;
  border:1px solid var(--so-ref-line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 24px rgba(48,25,54,.045);
}
.so-omra-page .so-compare-table{
  width:100%;
  min-width:760px;
  border-collapse:collapse;
  color:var(--so-ref-text);
  font-size:.83rem;
}
.so-omra-page .so-compare-table th,
.so-omra-page .so-compare-table td{
  padding:9px 14px;
  border-right:1px solid var(--so-ref-line);
  border-bottom:1px solid var(--so-ref-line);
  text-align:center;
  vertical-align:middle;
}
.so-omra-page .so-compare-table tr:last-child th,
.so-omra-page .so-compare-table tr:last-child td{
  border-bottom:0;
}
.so-omra-page .so-compare-table th:last-child,
.so-omra-page .so-compare-table td:last-child{
  border-right:0;
}
.so-omra-page .so-compare-table thead th{
  background:#fef8ff;
  color:var(--so-ref-green);
  font-weight:900;
}
.so-omra-page .so-compare-table tbody th{
  text-align:left;
  font-weight:700;
}
.so-omra-page .so-compare-table tbody th .icon{
  width:16px;
  height:16px;
  margin-right:8px;
  color:var(--so-ref-green);
  vertical-align:-3px;
}
.so-omra-page .so-compare-table td .icon{
  width:17px;
  height:17px;
  color:var(--so-ref-green);
}

.so-omra-page .so-omra-included{
  padding:0 0 28px;
}
.so-omra-page .so-included-panel{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  overflow:hidden;
  border:1px solid var(--so-ref-line);
  border-radius:8px;
  background:rgba(255,255,255,.9);
  box-shadow:0 10px 24px rgba(48,25,54,.045);
}
.so-omra-page .so-included-item{
  min-height:132px;
  padding:24px 16px;
  display:grid;
  align-content:start;
  justify-items:center;
  gap:7px;
  border-right:1px solid var(--so-ref-line);
  background:transparent;
  box-shadow:none;
  text-align:center;
}
.so-omra-page .so-included-item:last-child{
  border-right:0;
}
.so-omra-page .so-included-item .icon{
  width:34px;
  height:34px;
  padding:5px;
  color:var(--so-ref-gold);
}
.so-omra-page .so-included-item b{
  color:var(--so-ref-green);
  font-size:.9rem;
  line-height:1.2;
  font-weight:900;
}
.so-omra-page .so-included-item span{
  color:var(--so-ref-text);
  font-size:.72rem;
  line-height:1.35;
}

.so-omra-page .so-omra-final-cta{
  padding:0 0 28px;
}
.so-omra-page .so-omra-page .so-final-box{
  padding:28px 32px;
  display:grid;
  grid-template-columns:82px minmax(0,1fr) auto;
  align-items:center;
  gap:28px;
  border:1px solid rgba(176,77,201,.35);
  border-radius:8px;
  background:
    radial-gradient(circle at 5% 20%,rgba(176,77,201,.18),transparent 30%),
    linear-gradient(135deg,#30053b,#4d0060);
  box-shadow:0 16px 34px rgba(51,11,61,.14);
  color:#fff;
  text-align:left;
}
.so-omra-page .so-final-icon{
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--so-ref-gold);
  color:#fff;
}
.so-omra-page .so-final-icon .icon{
  width:35px;
  height:35px;
}
.so-omra-page .so-final-copy h2{
  margin:0;
  color:#fff;
  font-size:1.35rem;
  line-height:1.25;
}
.so-omra-page .so-final-copy p{
  max-width:620px;
  margin:8px 0 0;
  color:rgba(255,255,255,.88);
  font-size:.92rem;
  line-height:1.55;
}
.so-omra-page .so-final-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:flex-end;
  margin:0;
}
.so-omra-page .so-final-box .btn{
  min-width:205px;
}
.so-omra-page .so-final-box .btn-outline{
  background:transparent;
  border-color:rgba(255,255,255,.6);
  color:#fff;
}
.so-omra-page .so-final-box .btn-outline:hover{
  background:rgba(255,255,255,.08);
  border-color:#fff;
}

.so-omra-page .so-omra-trust{
  padding:0 0 60px;
}
.so-omra-page .so-trust-panel{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  overflow:hidden;
  border:1px solid var(--so-ref-line);
  border-radius:8px;
  background:rgba(255,255,255,.78);
}
.so-omra-page .so-trust-item{
  min-height:96px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:20px 24px;
  border-right:1px solid var(--so-ref-line);
}
.so-omra-page .so-trust-item:last-child{
  border-right:0;
}
.so-omra-page .so-trust-item .icon{
  width:30px;
  height:30px;
  color:var(--so-ref-gold);
}
.so-omra-page .so-trust-item b{
  display:block;
  color:var(--so-ref-green);
  font-size:.9rem;
  line-height:1.25;
  font-weight:900;
}
.so-omra-page .so-trust-item span{
  display:block;
  margin-top:3px;
  color:var(--so-ref-text);
  font-size:.76rem;
  line-height:1.35;
}

@media (max-width:1180px){
  .so-omra-page .so-omra-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .so-omra-page .so-custom-strip.card{
    grid-template-columns:220px minmax(0,1fr);
  }
  .so-omra-page .so-custom-strip__features{
    grid-column:1/-1;
    border:1px solid var(--so-ref-line);
  }
  .so-omra-page .so-custom-strip>.btn{
    grid-column:1/-1;
  }
  .so-omra-page .so-included-panel{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .so-omra-page .so-included-item:nth-child(3n){
    border-right:0;
  }
  .so-omra-page .so-included-item:nth-child(n+4){
    border-top:1px solid var(--so-ref-line);
  }
  .so-omra-page .so-trust-panel{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .so-omra-page .so-trust-item:nth-child(2n){
    border-right:0;
  }
  .so-omra-page .so-trust-item:nth-child(n+3){
    border-top:1px solid var(--so-ref-line);
  }
  .so-omra-page .so-omra-page .so-final-box{
    grid-template-columns:74px minmax(0,1fr);
  }
  .so-omra-page .so-final-actions{
    grid-column:1/-1;
    justify-content:flex-start;
  }
}
@media (max-width:760px){
  .so-omra-page .so-omra-page .wrap{
    padding:0 16px;
  }
  .so-omra-page .so-omra-hero{
    min-height:auto;
    background-image:
      linear-gradient(180deg,rgba(252,242,255,.94),rgba(252,242,255,.98)),
      url("assets/photos/kaaba_2.jpg");
    background-position:center top;
  }
  .so-omra-page .so-hero-copy{
    padding:54px 0 58px;
  }
  .so-omra-page .so-omra-hero h1{
    font-size:2.38rem;
  }
  .so-omra-page .so-omra-hero p{
    font-size:.96rem;
  }
  .so-omra-page .so-omra-hero__actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .so-omra-page .so-omra-hero__actions .btn{
    width:100%;
    min-width:0;
  }
  .so-omra-page .so-omra-filters{
    width:calc(100% - 32px);
    margin:-20px auto 22px;
    justify-content:flex-start;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .so-omra-page .so-omra-filters::-webkit-scrollbar{
    display:none;
  }
  .so-omra-page .so-omra-filters .chip{
    flex:0 0 auto;
    min-width:138px;
  }
  .so-omra-page .so-omra-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .so-omra-page .so-omra-page .so-offer-card .media{
    height:205px;
  }
  .so-omra-page .so-custom-strip.card{
    grid-template-columns:1fr;
    gap:16px;
    padding:12px;
  }
  .so-omra-page .so-custom-strip__image{
    height:176px;
  }
  .so-omra-page .so-custom-strip__image span{
    right:18px;
    top:auto;
    bottom:-4px;
    transform:none;
  }
  .so-omra-page .so-custom-strip__features{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .so-omra-page .so-custom-strip__features span:nth-child(2n){
    border-right:0;
  }
  .so-omra-page .so-custom-strip__features span:nth-child(n+3){
    border-top:1px solid var(--so-ref-line);
  }
  .so-omra-page .so-omra-compare{
    padding-top:28px;
  }
  .so-omra-page .so-compare-table{
    font-size:.8rem;
  }
  .so-omra-page .so-included-panel{
    grid-template-columns:1fr;
  }
  .so-omra-page .so-included-item,
  .so-omra-page .so-included-item:nth-child(3n),
  .so-omra-page .so-included-item:nth-child(n+4){
    border-right:0;
    border-top:1px solid var(--so-ref-line);
  }
  .so-omra-page .so-included-item:first-child{
    border-top:0;
  }
  .so-omra-page .so-omra-page .so-final-box{
    grid-template-columns:1fr;
    justify-items:start;
    padding:28px 20px;
    gap:18px;
  }
  .so-omra-page .so-final-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
  }
  .so-omra-page .so-final-box .btn{
    width:100%;
    min-width:0;
  }
  .so-omra-page .so-trust-panel{
    grid-template-columns:1fr;
  }
  .so-omra-page .so-trust-item,
  .so-omra-page .so-trust-item:nth-child(2n),
  .so-omra-page .so-trust-item:nth-child(n+3){
    border-right:0;
    border-top:1px solid var(--so-ref-line);
  }
  .so-omra-page .so-trust-item:first-child{
    border-top:0;
  }
}
@media (max-width:420px){
  .so-omra-page .so-omra-hero h1{
    font-size:2.05rem;
  }
  .so-omra-page .so-omra-page .so-offer-card .badge-period{
    display:none;
  }
.so-omra-page .so-omra-page .so-offer-card .price .amt{
    font-size:1.72rem;
  }
}

/* Ajustements densite / priorites visuelles - page /omra/. */
.so-omra-page .so-omra-page{
  --so-ref-shadow:0 10px 26px rgba(39,22,43,.065);
}
.so-omra-page .so-omra-page .btn{
  min-height:44px;
  padding:.72rem 1.12rem;
  font-size:.88rem;
}
.so-omra-page .so-omra-hero{
  min-height:350px;
}
.so-omra-page .so-hero-copy{
  padding:46px 0 58px;
}
.so-omra-page .so-omra-hero h1{
  font-size:clamp(2rem,3.45vw,3.05rem);
  line-height:1.12;
  max-width:680px;
}
.so-omra-page .so-omra-hero p{
  max-width:530px;
  margin-top:16px;
  font-size:.96rem;
  line-height:1.6;
}
.so-omra-page .so-omra-hero__actions{
  gap:12px;
  margin-top:22px;
}
.so-omra-page .so-omra-filters{
  z-index:7;
  margin:-18px auto 22px;
  box-shadow:0 8px 22px rgba(43,23,48,.055);
}
.so-omra-page .so-omra-filters .chip{
  min-height:44px;
  font-size:.76rem;
}
.so-omra-page .so-omra-catalogue{
  padding-bottom:40px;
}
.so-omra-page .so-omra-grid{
  gap:16px;
}
.so-omra-page .so-omra-page .so-offer-card{
  box-shadow:0 8px 22px rgba(48,25,54,.045);
}
.so-omra-page .so-omra-page .so-offer-card .media{
  height:148px;
}
.so-omra-page .so-omra-page .so-offer-card .media img{
  color:transparent;
  font-size:0;
}
.so-omra-page .so-omra-page .so-offer-card .badge-type,
.so-omra-page .so-omra-page .so-offer-card .badge-period{
  top:10px;
  min-height:25px;
  padding:0 8px;
  font-size:.62rem;
}
.so-omra-page .so-omra-page .so-offer-card .badge-type{
  left:10px;
}
.so-omra-page .so-omra-page .so-offer-card .badge-period{
  right:10px;
}
.so-omra-page .so-omra-page .so-offer-card .body{
  padding:15px 16px 14px;
}
.so-omra-page .so-omra-page .so-offer-card h3{
  font-size:.9rem;
  line-height:1.24;
}
.so-omra-page .so-card-date{
  margin-top:6px;
  font-size:.75rem;
}
.so-omra-page .so-card-details{
  gap:7px;
  margin-top:13px;
}
.so-omra-page .so-card-details li{
  gap:8px;
  font-size:.73rem;
  line-height:1.32;
  font-weight:640;
}
.so-omra-page .so-card-details .icon{
  width:15px;
  height:15px;
}
.so-omra-page .so-card-inclusions{
  display:none;
}
.so-omra-page .so-omra-page .so-offer-card .rate{
  margin-top:10px;
  font-size:.74rem;
}
.so-omra-page .so-omra-page .so-offer-card .foot{
  padding-top:16px;
  gap:7px;
}
.so-omra-page .so-omra-page .so-offer-card .price{
  padding:10px 12px;
  border-radius:6px;
  background:#f5edf7;
}
.so-omra-page .so-omra-page .so-offer-card .price small{
  font-size:.68rem;
}
.so-omra-page .so-omra-page .so-offer-card .price .amt{
  font-size:1.42rem;
}
.so-omra-page .so-omra-page .so-offer-card .price .per{
  font-size:.76rem;
}
.so-omra-page .so-card-status{
  font-size:.72rem;
}
.so-omra-page .so-omra-page .so-offer-card .btn-sm{
  min-height:38px;
  font-size:.75rem;
}
.so-omra-page .so-card-details-link{
  min-height:26px;
  font-size:.75rem;
}
.so-omra-page .so-custom-strip.card{
  margin-top:4px;
  gap:16px;
  grid-template-columns:190px minmax(150px,.8fr) minmax(260px,1.1fr) 214px;
  max-width:100%;
  overflow:hidden;
}
/* min-width:0 sur chaque colonne : sinon un item de grille déborde de sa piste (cause du débordement). */
.so-omra-page .so-custom-strip.card>*{
  min-width:0;
}
.so-omra-page .so-custom-strip__image{
  height:98px;
}
.so-omra-page .so-custom-strip__copy h3{
  font-size:1rem;
}
.so-omra-page .so-custom-strip__copy p{
  font-size:.82rem;
  line-height:1.48;
}
.so-omra-page .so-custom-strip__features{
  min-height:76px;
}
.so-omra-page .so-custom-strip__features span{
  padding:8px 7px;
  font-size:.68rem;
}
.so-omra-page .so-omra-compare{
  padding:44px 0 30px;
}
.so-omra-page .so-omra-compare h2,
.so-omra-page .so-omra-included h2{
  margin-bottom:18px;
  font-size:1.28rem;
}
.so-omra-page .so-compare-table{
  font-size:.78rem;
}
.so-omra-page .so-compare-table th,
.so-omra-page .so-compare-table td{
  padding:8px 12px;
}
.so-omra-page .so-omra-included{
  padding:44px 0 30px;
}
.so-omra-page .so-included-item{
  min-height:112px;
  padding:18px 14px;
}
.so-omra-page .so-included-item .icon{
  width:30px;
  height:30px;
}
.so-omra-page .so-included-item b{
  font-size:.84rem;
}
.so-omra-page .so-included-item span{
  font-size:.69rem;
}
.so-omra-page .so-omra-final-cta{
  padding-bottom:22px;
}
.so-omra-page .so-omra-page .so-final-box{
  padding:24px 28px;
  gap:22px;
}
.so-omra-page .so-final-icon{
  width:62px;
  height:62px;
}
.so-omra-page .so-final-copy h2{
  font-size:1.22rem;
}
.so-omra-page .so-final-copy p{
  font-size:.86rem;
}
.so-omra-page .so-omra-trust{
  padding-bottom:46px;
}
.so-omra-page .so-trust-item{
  min-height:82px;
  padding:16px 20px;
}
.so-omra-page .soc-whatsapp-sticky{
  right:18px!important;
  bottom:18px!important;
  z-index:45!important;
  min-height:44px!important;
  padding:10px 13px!important;
  font-size:13px!important;
  box-shadow:0 10px 24px rgba(7,94,84,.22)!important;
}
.so-omra-page .soc-whatsapp-sticky__icon,
.so-omra-page .soc-whatsapp-sticky svg{
  width:20px!important;
  height:20px!important;
}
@media (min-width:1181px){
  .so-omra-page .so-omra-page .so-offer-card:nth-of-type(n+5){
    margin-top:4px;
  }
}
@media (max-width:760px){
  .so-omra-page .so-hero-copy{
    padding:42px 0 50px;
  }
  .so-omra-page .so-omra-hero h1{
    font-size:2rem;
  }
  .so-omra-page .so-omra-hero p{
    font-size:.91rem;
  }
  .so-omra-page .so-omra-page .so-offer-card .media{
    height:184px;
  }
  .so-omra-page .so-omra-page .so-offer-card .price .amt{
    font-size:1.48rem;
  }
  .so-omra-page .so-custom-strip.card{
    gap:13px;
  }
  .so-omra-page .soc-whatsapp-sticky{
    right:12px!important;
    bottom:12px!important;
    min-height:40px!important;
    padding:9px 11px!important;
  }
}

/* Neutralise le hero video global uniquement sur la page /omra/. */
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero{
  color:var(--so-ref-text)!important;
  background-color:#fcf2ff!important;
  background-image:
    linear-gradient(90deg,#fcf2ff 0%,#fcf2ff 34%,rgba(252,242,255,.92) 50%,rgba(252,242,255,.35) 69%,rgba(252,242,255,0) 100%),
    url("assets/photos/kaaba_2.jpg")!important;
  background-position:center right!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
}
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero::before,
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero .so-internal-hero-video{
  content:none!important;
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
}
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero .wrap{
  position:relative;
  z-index:2;
}
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero .hero-flex{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  text-align:left!important;
}
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero .hero-flex>div:first-child,
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero .so-hero-copy{
  max-width:720px!important;
  margin-left:0!important;
  margin-right:0!important;
  text-align:left!important;
}
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero .eyebrow{
  justify-content:flex-start!important;
}
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero h1{
  max-width:720px!important;
  display:block!important;
  overflow:visible!important;
  -webkit-line-clamp:initial!important;
  -webkit-box-orient:initial!important;
  text-overflow:clip!important;
  white-space:normal!important;
  color:var(--so-ref-green)!important;
  text-align:left!important;
  text-shadow:none!important;
}
.so-omra-page .so-omra-page .so-omra-hero.so-video-hero p{
  color:var(--so-ref-text)!important;
  text-align:left!important;
  text-shadow:none!important;
}
@media (max-width:760px){
  .so-omra-page .so-omra-page .so-omra-hero.so-video-hero{
    background-image:
      linear-gradient(180deg,rgba(252,242,255,.94),rgba(252,242,255,.98)),
      url("assets/photos/kaaba_2.jpg")!important;
    background-position:center top!important;
  }
}

/* Polish reference client - bloc sur mesure, respiration sections, cartes plus fines. */
.so-omra-page .so-omra-page .so-offer-card .body{
  padding:14px 15px 13px;
}
.so-omra-page .so-omra-page .so-offer-card .media{
  height:138px;
}
.so-omra-page .so-omra-page .so-offer-card h3{
  font-size:.9rem;
  line-height:1.25;
  font-weight:880;
}
.so-omra-page .so-card-date{
  margin-top:5px;
  font-size:.7rem;
  line-height:1.35;
}
.so-omra-page .so-card-details{
  gap:6px;
  margin-top:11px;
}
.so-omra-page .so-card-details li{
  font-size:.72rem;
  line-height:1.32;
  gap:7px;
}
.so-omra-page .so-card-details .icon{
  width:14px;
  height:14px;
}
.so-omra-page .so-omra-page .so-offer-card .rate{
  font-size:.7rem;
}
.so-omra-page .so-omra-page .so-offer-card .foot{
  padding-top:14px;
}
.so-omra-page .so-omra-page .so-offer-card .price{
  padding:9px 11px;
}
.so-omra-page .so-omra-page .so-offer-card .price small{
  font-size:.64rem;
}
.so-omra-page .so-omra-page .so-offer-card .price .amt{
  font-size:1.38rem;
}
.so-omra-page .so-omra-page .so-offer-card .price .per{
  font-size:.69rem;
}
.so-omra-page .so-card-status{
  font-size:.68rem;
}
.so-omra-page .so-omra-page .so-offer-card .btn-sm{
  min-height:36px;
  font-size:.7rem;
}
.so-omra-page .so-card-details-link{
  font-size:.7rem;
}

.so-omra-page .so-custom-strip.card{
  grid-template-columns:250px minmax(260px,.78fr) minmax(0,1.22fr)!important;
  gap:22px!important;
  align-items:center!important;
  padding:10px!important;
  margin-top:22px!important;
  border-color:rgba(176,77,201,.26)!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:0 8px 22px rgba(48,25,54,.045)!important;
}
.so-omra-page .so-custom-strip__image{
  height:112px!important;
  border-radius:6px!important;
}
.so-omra-page .so-custom-strip__image img{
  object-position:center 54%!important;
}
.so-omra-page .so-custom-strip__image span{
  right:-20px!important;
  top:50%!important;
  width:48px!important;
  height:48px!important;
  border:5px solid #fff!important;
  transform:translateY(-50%)!important;
}
.so-omra-page .so-custom-strip__copy{
  min-width:0;
  padding-left:10px;
}
.so-omra-page .so-custom-strip__copy h3{
  font-size:.98rem!important;
  line-height:1.2!important;
}
.so-omra-page .so-custom-strip__copy p{
  max-width:390px;
  margin-top:9px!important;
  font-size:.76rem!important;
  line-height:1.48!important;
}
.so-omra-page .so-custom-strip__side{
  min-width:0;
  display:grid;
  gap:12px;
  padding-left:26px;
  border-left:1px solid var(--so-ref-line);
}
.so-omra-page .so-custom-strip__features{
  min-height:42px!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  border:0!important;
}
.so-omra-page .so-custom-strip__features span{
  min-width:0;
  padding:2px 10px!important;
  border-right:1px solid var(--so-ref-line)!important;
  color:#8b877e!important;
  font-size:.61rem!important;
  line-height:1.18!important;
  font-weight:700!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
.so-omra-page .so-custom-strip__features span:last-child{
  border-right:0!important;
}
.so-omra-page .so-custom-strip__features .icon{
  width:15px!important;
  height:15px!important;
  margin-bottom:2px;
}
.so-omra-page .so-custom-strip__side>.btn{
  width:100%;
  min-height:36px;
  padding:.52rem .9rem;
  font-size:.75rem;
}

.so-omra-page .so-omra-compare{
  padding:52px 0 42px!important;
}
.so-omra-page .so-omra-included{
  padding:42px 0 42px!important;
}
.so-omra-page .so-omra-final-cta{
  padding:18px 0 34px!important;
}
.so-omra-page .so-omra-compare h2,
.so-omra-page .so-omra-included h2{
  margin-bottom:22px!important;
  font-size:1.2rem!important;
}
.so-omra-page .so-compare-table-wrap,
.so-omra-page .so-included-panel{
  box-shadow:0 7px 20px rgba(48,25,54,.035)!important;
}
.so-omra-page .so-trust-item{
  min-height:76px;
  padding:14px 18px;
}
.so-omra-page .so-trust-item .icon{
  width:24px;
  height:24px;
}
.so-omra-page .so-trust-item b{
  font-size:.78rem;
}
.so-omra-page .so-trust-item span{
  font-size:.68rem;
}

@media (max-width:1180px){
  .so-omra-page .so-custom-strip.card{
    grid-template-columns:220px minmax(0,1fr)!important;
  }
  .so-omra-page .so-custom-strip__side{
    grid-column:1/-1;
    padding-left:0;
    border-left:0;
    padding-top:14px;
    border-top:1px solid var(--so-ref-line);
  }
}
@media (max-width:760px){
  .so-omra-page .so-omra-page .so-offer-card .media{
    height:174px;
  }
  .so-omra-page .so-omra-page .so-offer-card h3{
    font-size:.88rem;
  }
  .so-omra-page .so-card-details li{
    font-size:.71rem;
  }
  .so-omra-page .so-custom-strip.card{
    grid-template-columns:1fr!important;
    margin-top:20px!important;
    padding:10px!important;
  }
  .so-omra-page .so-custom-strip__image{
    height:150px!important;
  }
  .so-omra-page .so-custom-strip__image span{
    right:14px!important;
    top:auto!important;
    bottom:-12px!important;
    transform:none!important;
  }
  .so-omra-page .so-custom-strip__copy{
    padding-left:0;
  }
  .so-omra-page .so-custom-strip__features{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .so-omra-page .so-custom-strip__features span:nth-child(2n){
    border-right:0!important;
  }
  .so-omra-page .so-custom-strip__features span:nth-child(n+3){
    border-top:1px solid var(--so-ref-line)!important;
    padding-top:8px!important;
  }
  .so-omra-page .so-omra-compare{
    padding:42px 0 34px!important;
  }
  .so-omra-page .so-omra-included{
    padding:34px 0 34px!important;
  }
}
/* Page detail forfait Omra - styles strictement scopes a la fiche. */
.page-forfait-omra{
  --sf-green:#32003f;
  --sf-green-2:#330b3d;
  --sf-gold:#b04dc9;
  --sf-bg:#f6eff8;
  --sf-paper:#fff;
  --sf-text:#281f2a;
  --sf-muted:#5f6b66;
  --sf-line:#e3d0e8;
  --sf-soft:#f9f1fb;
  --sf-red:#d94b46;
  --sf-shadow:0 12px 28px rgba(48,25,54,.055);
  --sf-shadow-soft:0 7px 18px rgba(48,25,54,.04);
  position:relative;
  overflow:hidden;
  background:var(--sf-bg);
  color:var(--sf-text);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
.page-forfait-omra *{
  box-sizing:border-box;
}
.page-forfait-omra .wrap{
  max-width:1240px;
  margin:0 auto;
  padding:0 28px;
}
.page-forfait-omra h1,
.page-forfait-omra h2{
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:0;
  color:var(--sf-green);
}
.page-forfait-omra h3,
.page-forfait-omra b,
.page-forfait-omra .btn{
  letter-spacing:0;
}
.page-forfait-omra .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:46px;
  padding:.82rem 1.18rem;
  border-radius:6px;
  border:1px solid transparent;
  font-size:.86rem;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  box-shadow:none;
  transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.page-forfait-omra .btn .icon{
  width:17px;
  height:17px;
}
.page-forfait-omra .btn-primary{
  background:var(--sf-green);
  border-color:var(--sf-green);
  color:#fff;
}
.page-forfait-omra .btn-primary:hover{
  background:#26002f;
  box-shadow:0 10px 22px rgba(50,0,63,.14);
  transform:none;
}
.page-forfait-omra .btn-outline{
  background:rgba(255,255,255,.86);
  border-color:var(--sf-green);
  color:var(--sf-green);
}
.page-forfait-omra .btn-outline:hover{
  background:#fff;
  transform:none;
}
.page-forfait-omra .btn-gold{
  background:var(--sf-gold);
  border-color:var(--sf-gold);
  color:#fff;
}
.page-forfait-omra .so-formule-hero{
  position:relative;
  min-height:520px;
  display:flex;
  align-items:stretch;
  padding:40px 0 102px;
  background-color:var(--sf-soft);
  background-image:
    linear-gradient(90deg,#f9f1fb 0%,#f9f1fb 31%,rgba(249,241,251,.96) 45%,rgba(249,241,251,.58) 64%,rgba(249,241,251,.10) 88%),
    var(--so-hero-image);
  background-repeat:no-repeat;
  background-position:center right;
  background-size:cover;
}
.page-forfait-omra .so-formule-hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:88px;
  background:linear-gradient(180deg,rgba(246,239,248,0),var(--sf-bg));
  pointer-events:none;
}
.page-forfait-omra .so-formule-hero__inner{
  position:relative;
  z-index:2;
}
.page-forfait-omra .so-formule-breadcrumb{
  display:flex;
  align-items:center;
  gap:8px;
  max-width:720px;
  margin:0 0 34px;
  color:var(--sf-muted);
  font-size:.76rem;
  line-height:1.4;
}
.page-forfait-omra .so-formule-breadcrumb a:hover{
  color:var(--sf-green);
}
.page-forfait-omra .so-formule-breadcrumb .icon{
  width:13px;
  height:13px;
  color:var(--sf-muted);
}
.page-forfait-omra .so-formule-breadcrumb strong{
  color:var(--sf-green);
  font-weight:800;
}
.page-forfait-omra .so-formule-hero__copy{
  max-width:660px;
}
.page-forfait-omra .so-formule-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 12px;
  border-radius:6px;
  background:var(--sf-gold);
  color:#fff;
  font-size:.7rem;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
}
.page-forfait-omra .so-formule-hero h1{
  max-width:650px;
  margin:18px 0 0;
  font-size:clamp(2.8rem,4.9vw,4.25rem);
  line-height:1.02;
  font-weight:700;
}
.page-forfait-omra .so-formule-subtitle{
  margin:18px 0 0;
  color:var(--sf-green);
  font-size:1rem;
  line-height:1.5;
  font-weight:900;
}
.page-forfait-omra .so-formule-hero-points{
  display:flex;
  flex-wrap:wrap;
  gap:14px 28px;
  list-style:none;
  margin:24px 0 0;
  padding:0;
  color:var(--sf-text);
}
.page-forfait-omra .so-formule-hero-points li{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
  font-size:.86rem;
  font-weight:700;
}
.page-forfait-omra .so-formule-hero-points .icon{
  width:17px;
  height:17px;
  color:var(--sf-green);
  stroke-width:1.7;
}
.page-forfait-omra .so-formule-price-lead{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px;
  margin-top:28px;
  color:var(--sf-green);
}
.page-forfait-omra .so-formule-price-lead span{
  display:block;
  flex:0 0 100%;
  color:var(--sf-muted);
  font-size:.76rem;
}
.page-forfait-omra .so-formule-price-lead strong{
  font-size:2.35rem;
  line-height:1;
  font-weight:900;
}
.page-forfait-omra .so-formule-price-lead small{
  color:var(--sf-text);
  font-size:.82rem;
}
.page-forfait-omra .so-formule-actions{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin-top:24px;
}
.page-forfait-omra .so-formule-detail{
  position:relative;
  z-index:3;
  padding:0 0 34px;
}
.page-forfait-omra .so-formule-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 332px;
  gap:56px;
  align-items:start;
}
.page-forfait-omra .so-formule-main{
  min-width:0;
}
.page-forfait-omra .so-formule-summary{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  overflow:hidden;
  border:1px solid var(--sf-line);
  border-radius:8px;
  background:rgba(255,255,255,.96);
  box-shadow:var(--sf-shadow);
}
.page-forfait-omra .so-summary-item{
  min-width:0;
  min-height:112px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:8px;
  padding:17px 12px;
  text-align:center;
  border-right:1px solid var(--sf-line);
}
.page-forfait-omra .so-summary-item:last-child{
  border-right:0;
}
.page-forfait-omra .so-summary-item .icon{
  width:26px;
  height:26px;
  color:var(--sf-green);
  stroke-width:1.55;
}
.page-forfait-omra .so-summary-item b{
  color:var(--sf-text);
  font-size:.78rem;
  font-weight:900;
  line-height:1.2;
}
.page-forfait-omra .so-summary-item span{
  max-width:100%;
  color:var(--sf-muted);
  font-size:.7rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.page-forfait-omra .so-formule-section{
  margin-top:42px;
}
.page-forfait-omra .so-formule-section h2{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 22px;
  font-size:1.45rem;
  line-height:1.22;
}
.page-forfait-omra .so-formule-section h2>.icon{
  width:23px;
  height:23px;
  color:var(--sf-gold);
  flex:0 0 auto;
}
.page-forfait-omra .so-formule-intro-card{
  padding:24px;
  border:1px solid var(--sf-line);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--sf-shadow-soft);
  color:var(--sf-muted);
  font-size:.92rem;
  line-height:1.65;
}
.page-forfait-omra .so-programme-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 178px;
  gap:26px;
  align-items:center;
}
.page-forfait-omra .so-timeline{
  list-style:none;
  margin:0;
  padding:0;
}
.page-forfait-omra .so-timeline li{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:22px;
  min-height:88px;
  padding-bottom:18px;
}
.page-forfait-omra .so-timeline li::before{
  content:"";
  position:absolute;
  left:19px;
  top:40px;
  bottom:-8px;
  border-left:1px dashed rgba(50,0,63,.34);
}
.page-forfait-omra .so-timeline li:last-child{
  padding-bottom:0;
}
.page-forfait-omra .so-timeline li:last-child::before{
  display:none;
}
.page-forfait-omra .so-timeline-number{
  position:relative;
  z-index:1;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--sf-green);
  color:#fff;
  font-weight:900;
  font-size:.82rem;
}
.page-forfait-omra .so-timeline b{
  display:block;
  color:var(--sf-green);
  font-size:.84rem;
  text-transform:uppercase;
}
.page-forfait-omra .so-timeline p{
  max-width:620px;
  margin:8px 0 0;
  color:var(--sf-muted);
  font-size:.84rem;
  line-height:1.62;
}
.page-forfait-omra .so-flex-card,
.page-forfait-omra .so-info-card,
.page-forfait-omra .so-side-card,
.page-forfait-omra .so-price-card,
.page-forfait-omra .so-hotel-card,
.page-forfait-omra .so-included-box,
.page-forfait-omra .so-faq details{
  border:1px solid var(--sf-line);
  border-radius:8px;
  background:rgba(255,255,255,.94);
  box-shadow:var(--sf-shadow-soft);
}
.page-forfait-omra .so-flex-card{
  padding:22px 18px;
}
.page-forfait-omra .so-flex-card .icon{
  width:28px;
  height:28px;
  color:var(--sf-gold);
}
.page-forfait-omra .so-flex-card h3{
  margin:14px 0 8px;
  color:var(--sf-green);
  font-size:1rem;
}
.page-forfait-omra .so-flex-card p{
  margin:0;
  color:var(--sf-muted);
  font-size:.78rem;
  line-height:1.58;
}
.page-forfait-omra .so-hotel-list{
  display:grid;
  gap:18px;
}
.page-forfait-omra .so-hotel-card{
  display:grid;
  grid-template-columns:220px minmax(210px,.9fr) minmax(230px,1fr);
  gap:18px;
  align-items:stretch;
  padding:10px;
}
.page-forfait-omra .so-hotel-card>*{
  min-width:0;
}
.page-forfait-omra .so-hotel-main-photo a,
.page-forfait-omra .so-hotel-gallery a{
  position:relative;
  display:block;
  height:100%;
  min-height:162px;
  overflow:hidden;
  border-radius:6px;
  background:#e3d1e7;
}
.page-forfait-omra .so-hotel-main-photo img,
.page-forfait-omra .so-hotel-gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.page-forfait-omra .so-hotel-main-photo span{
  position:absolute;
  top:10px;
  left:10px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(50,0,63,.76);
  color:#fff;
}
.page-forfait-omra .so-hotel-main-photo .icon{
  width:16px;
  height:16px;
}
.page-forfait-omra .so-hotel-copy{
  align-self:center;
  padding:14px 2px;
}
.page-forfait-omra .so-hotel-copy>span{
  color:var(--sf-green);
  font-size:.82rem;
  font-weight:900;
}
.page-forfait-omra .so-hotel-copy h3{
  margin:5px 0 14px;
  color:var(--sf-green);
  font-size:.96rem;
  line-height:1.35;
}
.page-forfait-omra .so-hotel-copy ul,
.page-forfait-omra .so-price-includes ul,
.page-forfait-omra .so-side-card ul,
.page-forfait-omra .so-included-box ul{
  list-style:none;
  margin:0;
  padding:0;
}
.page-forfait-omra .so-hotel-copy li{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:9px;
  color:var(--sf-muted);
  font-size:.76rem;
  line-height:1.45;
}
.page-forfait-omra .so-hotel-copy li .icon{
  width:15px;
  height:15px;
  margin-top:2px;
  color:var(--sf-gold);
}
.page-forfait-omra .so-stars{
  display:flex;
  gap:4px;
  margin-top:16px;
  color:var(--sf-gold);
}
.page-forfait-omra .so-stars .icon{
  width:15px;
  height:15px;
  fill:currentColor;
}
.page-forfait-omra .so-hotel-gallery{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:minmax(78px,1fr);
  gap:8px;
}
.page-forfait-omra .so-hotel-gallery a{
  min-height:0;
}
.page-forfait-omra .so-hotel-gallery a:first-child{
  grid-row:span 2;
}
.page-forfait-omra .so-hotel-gallery span{
  position:absolute;
  inset:auto 8px 8px 8px;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border-radius:5px;
  background:rgba(50,0,63,.92);
  color:#fff;
  font-size:.7rem;
  font-weight:800;
}
.page-forfait-omra .so-hotel-gallery span .icon{
  width:14px;
  height:14px;
}
.page-forfait-omra .so-hotel-note{
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:center;
  margin:14px 0 0;
  color:#8a28a2;
  font-size:.76rem;
}
.page-forfait-omra .so-hotel-note .icon{
  width:16px;
  height:16px;
}
.page-forfait-omra .so-transport{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.page-forfait-omra .so-info-card{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:16px;
  padding:20px;
}
.page-forfait-omra .so-info-card>.icon{
  width:32px;
  height:32px;
  color:var(--sf-green);
}
.page-forfait-omra .so-info-card h3{
  margin:0;
  color:var(--sf-green);
  font-size:.96rem;
}
.page-forfait-omra .so-info-card p{
  margin:6px 0 0;
  color:var(--sf-muted);
  font-size:.78rem;
  line-height:1.55;
}
.page-forfait-omra .so-included-box{
  display:grid;
  grid-template-columns:1fr 1fr;
  overflow:hidden;
}
.page-forfait-omra .so-included-box>div{
  padding:24px 28px;
}
.page-forfait-omra .so-included-box>div:first-child{
  border-right:1px solid var(--sf-line);
}
.page-forfait-omra .so-included-box h2{
  margin-bottom:16px;
  color:var(--sf-green);
  font-family:"Plus Jakarta Sans","Inter",sans-serif;
  font-size:1rem;
}
.page-forfait-omra .so-included-box li{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:9px;
  color:var(--sf-text);
  font-size:.78rem;
}
.page-forfait-omra .so-included-box li .icon{
  width:17px;
  height:17px;
  color:var(--sf-green);
}
.page-forfait-omra .so-included-box .so-not-included li .icon{
  color:var(--sf-red);
}
.page-forfait-omra .so-faq-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 16px;
}
.page-forfait-omra .so-faq details{
  box-shadow:none;
}
.page-forfait-omra .so-faq summary{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 16px;
  color:var(--sf-green);
  font-size:.8rem;
  font-weight:850;
  cursor:pointer;
  list-style:none;
}
.page-forfait-omra .so-faq summary::-webkit-details-marker{
  display:none;
}
.page-forfait-omra .so-faq summary .icon{
  width:16px;
  height:16px;
  flex:0 0 auto;
}
.page-forfait-omra .so-faq details[open] summary .icon{
  transform:rotate(180deg);
}
.page-forfait-omra .so-faq details p{
  margin:0;
  padding:0 16px 14px;
  color:var(--sf-muted);
  font-size:.76rem;
  line-height:1.55;
}
.page-forfait-omra .so-formule-sidebar{
  position:sticky;
  top:96px;
  display:grid;
  gap:24px;
  margin-top:-44px;
}
.page-forfait-omra .so-price-card{
  overflow:hidden;
}
.page-forfait-omra .so-price-card-head{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:0 20px;
  background:var(--sf-green);
  color:#fff;
  font-size:.92rem;
  font-weight:900;
}
.page-forfait-omra .so-price-card-head .icon{
  width:20px;
  height:20px;
  color:#fff;
}
.page-forfait-omra .so-price-lines{
  padding:14px 20px 2px;
}
.page-forfait-omra .so-price-lines>div,
.page-forfait-omra .so-single-price>div{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:6px;
  align-items:baseline;
  min-height:46px;
  border-bottom:1px solid var(--sf-line);
  color:var(--sf-text);
}
.page-forfait-omra .so-price-lines span,
.page-forfait-omra .so-single-price span{
  min-width:0;
  font-size:.84rem;
}
.page-forfait-omra .so-price-lines strong,
.page-forfait-omra .so-single-price strong{
  color:var(--sf-gold);
  font-size:1.18rem;
  font-weight:900;
  white-space:nowrap;
}
.page-forfait-omra .so-price-lines small,
.page-forfait-omra .so-single-price small{
  color:var(--sf-muted);
  font-size:.66rem;
  white-space:nowrap;
}
.page-forfait-omra .so-single-price{
  padding:0 20px 14px;
}
.page-forfait-omra .so-single-price summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:44px;
  color:#78208e;
  font-size:.76rem;
  font-weight:850;
  cursor:pointer;
  list-style:none;
}
.page-forfait-omra .so-single-price summary::-webkit-details-marker{
  display:none;
}
.page-forfait-omra .so-single-price summary .icon{
  width:15px;
  height:15px;
}
.page-forfait-omra .so-single-price[open] summary .icon{
  transform:rotate(180deg);
}
.page-forfait-omra .so-single-price p{
  margin:8px 0 0;
  padding:11px 12px;
  border:1px solid var(--sf-line);
  border-radius:6px;
  background:var(--sf-soft);
  color:var(--sf-muted);
  font-size:.72rem;
}
.page-forfait-omra .so-price-includes{
  margin:0 20px 16px;
  padding:18px 16px;
  border:1px solid var(--sf-line);
  border-radius:8px;
  background:var(--sf-soft);
}
.page-forfait-omra .so-price-includes h3{
  margin:0 0 12px;
  color:var(--sf-green);
  font-size:1rem;
}
.page-forfait-omra .so-price-includes li{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:10px;
  color:var(--sf-text);
  font-size:.76rem;
  line-height:1.35;
}
.page-forfait-omra .so-price-includes li .icon{
  width:17px;
  height:17px;
  color:var(--sf-green);
  fill:var(--sf-green);
}
.page-forfait-omra .so-price-card>.btn{
  width:calc(100% - 40px);
  margin:0 20px 12px;
}
.page-forfait-omra .so-response-note{
  margin:0 0 20px;
  text-align:center;
  color:var(--sf-muted);
  font-size:.7rem;
}
.page-forfait-omra .so-side-card{
  padding:22px 20px;
}
.page-forfait-omra .so-side-card h3{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 16px;
  color:var(--sf-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.04rem;
  line-height:1.3;
}
.page-forfait-omra .so-side-card h3 .icon{
  width:21px;
  height:21px;
  color:var(--sf-gold);
}
.page-forfait-omra .so-side-card li{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:12px;
  margin-top:14px;
  color:var(--sf-text);
  font-size:.76rem;
  line-height:1.48;
}
.page-forfait-omra .so-side-card li .icon{
  width:21px;
  height:21px;
  color:var(--sf-green);
}
.page-forfait-omra .so-formule-final{
  padding:28px 0 56px;
}
.page-forfait-omra .so-final-box{
  display:grid;
  grid-template-columns:78px minmax(0,1fr) auto;
  gap:26px;
  align-items:center;
  padding:28px 34px;
  border:1px solid rgba(176,77,201,.38);
  border-radius:8px;
  background:linear-gradient(135deg,#32003f,#470059);
  color:#fff;
  box-shadow:0 16px 32px rgba(50,0,63,.13);
}
.page-forfait-omra .so-final-icon{
  width:70px;
  height:70px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--sf-gold);
  color:#fff;
}
.page-forfait-omra .so-final-icon .icon{
  width:34px;
  height:34px;
}
.page-forfait-omra .so-final-box h2{
  margin:0;
  color:#fff;
  font-size:1.42rem;
}
.page-forfait-omra .so-final-box p{
  max-width:640px;
  margin:8px 0 0;
  color:rgba(255,255,255,.86);
  font-size:.88rem;
  line-height:1.55;
}
.page-forfait-omra .so-final-actions{
  display:flex;
  gap:16px;
  justify-content:flex-end;
}
.page-forfait-omra .so-final-box .btn-outline{
  background:transparent;
  border-color:rgba(255,255,255,.62);
  color:#fff;
}
.page-forfait-omra .so-mobile-cta{
  display:none;
}
@media (max-width:1120px){
  .page-forfait-omra .so-formule-layout{
    grid-template-columns:1fr;
    gap:30px;
  }
  .page-forfait-omra .so-formule-sidebar{
    position:static;
    margin-top:0;
    grid-template-columns:1fr 1fr;
  }
  .page-forfait-omra .so-price-card{
    grid-column:1/-1;
  }
  .page-forfait-omra .so-formule-summary{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .page-forfait-omra .so-summary-item:nth-child(3n){
    border-right:0;
  }
  .page-forfait-omra .so-summary-item:nth-child(n+4){
    border-top:1px solid var(--sf-line);
  }
  .page-forfait-omra .so-hotel-card{
    grid-template-columns:210px minmax(0,1fr);
  }
  .page-forfait-omra .so-hotel-gallery{
    grid-column:1/-1;
  }
}
@media (max-width:760px){
  .page-forfait-omra{
    padding-bottom:76px;
  }
  .page-forfait-omra .wrap{
    padding:0 16px;
  }
  .page-forfait-omra .btn{
    width:100%;
    min-width:0;
    min-height:46px;
    font-size:.8rem;
  }
  .page-forfait-omra .so-formule-hero{
    min-height:auto;
    padding:26px 0 56px;
    background-image:
      linear-gradient(180deg,rgba(249,241,251,.94),rgba(249,241,251,.98)),
      var(--so-hero-image);
    background-position:center top;
  }
  .page-forfait-omra .so-formule-breadcrumb{
    margin-bottom:24px;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  .page-forfait-omra .so-formule-breadcrumb strong{
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .page-forfait-omra .so-formule-hero h1{
    font-size:2.2rem;
  }
  .page-forfait-omra .so-formule-subtitle{
    font-size:.9rem;
  }
  .page-forfait-omra .so-formule-hero-points{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:11px;
  }
  .page-forfait-omra .so-formule-hero-points li{
    font-size:.74rem;
  }
  .page-forfait-omra .so-formule-price-lead strong{
    font-size:2rem;
  }
  .page-forfait-omra .so-formule-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }
  .page-forfait-omra .so-formule-detail{
    padding-bottom:22px;
  }
  .page-forfait-omra .so-formule-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .page-forfait-omra .so-summary-item,
  .page-forfait-omra .so-summary-item:nth-child(3n){
    min-height:106px;
    border-right:1px solid var(--sf-line);
  }
  .page-forfait-omra .so-summary-item:nth-child(2n){
    border-right:0;
  }
  .page-forfait-omra .so-summary-item:nth-child(n+3){
    border-top:1px solid var(--sf-line);
  }
  .page-forfait-omra .so-summary-item span{
    font-size:.66rem;
  }
  .page-forfait-omra .so-formule-section{
    margin-top:34px;
  }
  .page-forfait-omra .so-formule-section h2{
    font-size:1.24rem;
  }
  .page-forfait-omra .so-programme-grid,
  .page-forfait-omra .so-transport,
  .page-forfait-omra .so-included-box,
  .page-forfait-omra .so-faq-grid,
  .page-forfait-omra .so-formule-sidebar{
    grid-template-columns:1fr;
  }
  .page-forfait-omra .so-timeline li{
    grid-template-columns:38px minmax(0,1fr);
    gap:14px;
  }
  .page-forfait-omra .so-timeline-number{
    width:34px;
    height:34px;
  }
  .page-forfait-omra .so-timeline li::before{
    left:17px;
    top:36px;
  }
  .page-forfait-omra .so-hotel-card{
    grid-template-columns:1fr;
    gap:12px;
  }
  .page-forfait-omra .so-hotel-main-photo a{
    min-height:210px;
  }
  .page-forfait-omra .so-hotel-copy{
    padding:2px 4px 4px;
  }
  .page-forfait-omra .so-hotel-gallery{
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-auto-rows:76px;
  }
  .page-forfait-omra .so-hotel-gallery a:first-child{
    grid-row:auto;
  }
  .page-forfait-omra .so-info-card{
    padding:18px;
  }
  .page-forfait-omra .so-included-box>div{
    padding:22px 20px;
  }
  .page-forfait-omra .so-included-box>div:first-child{
    border-right:0;
    border-bottom:1px solid var(--sf-line);
  }
  .page-forfait-omra .so-price-card-head{
    min-height:54px;
  }
  .page-forfait-omra .so-side-card{
    padding:22px 20px;
  }
  .page-forfait-omra .so-formule-final{
    padding:8px 0 34px;
  }
  .page-forfait-omra .so-final-box{
    grid-template-columns:1fr;
    padding:24px 20px;
    gap:18px;
  }
  .page-forfait-omra .so-final-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
  }
  .page-forfait-omra .so-mobile-cta{
    position:fixed;
    z-index:70;
    left:0;
    right:0;
    bottom:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) 54px;
    gap:10px;
    padding:10px 14px;
    border-top:1px solid var(--sf-line);
    background:rgba(246,239,248,.96);
    box-shadow:0 -10px 24px rgba(48,25,54,.08);
  }
  .page-forfait-omra .so-mobile-cta .btn{
    margin:0;
    min-height:50px;
    padding:.75rem 1rem;
  }
  .page-forfait-omra .so-mobile-cta .btn-outline{
    width:54px;
    padding:0;
  }
}
@media (max-width:420px){
  .page-forfait-omra .so-formule-hero h1{
    font-size:1.92rem;
  }
  .page-forfait-omra .so-formule-hero-points{
    grid-template-columns:1fr;
  }
  .page-forfait-omra .so-hotel-gallery{
    grid-template-columns:1fr 1fr;
  }
}




/* ===== Typographie premium & section marque de confiance ===== */
body,button,input,select,textarea{font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif}
h1,h2,h3,h4,h5,h6,.jak,.section-head h2,.page-hero h1,.hero h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;letter-spacing:-.025em;line-height:1.04}
.btn,.menu-link,.nav-contact,.eyebrow,.meta,.price,.badge{font-family:"Manrope",system-ui,sans-serif}
.section-head h2{font-size:clamp(2.35rem,4vw,3.65rem)}

.so-brand-trust{position:relative;overflow:hidden;padding:104px 0;background:#faf6fb}
.so-brand-trust::before{content:"";position:absolute;inset:0;opacity:.34;pointer-events:none;background-image:linear-gradient(30deg,rgba(149,31,179,.055) 12%,transparent 12.5%,transparent 87%,rgba(149,31,179,.055) 87.5%),linear-gradient(150deg,rgba(149,31,179,.055) 12%,transparent 12.5%,transparent 87%,rgba(149,31,179,.055) 87.5%);background-size:48px 84px}
.so-brand-trust__grid{position:relative;display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr);gap:72px;align-items:center}
.so-brand-trust__media{overflow:hidden;border-radius:28px;box-shadow:0 28px 70px -34px rgba(50,8,60,.38);background:#e5d7e9;aspect-ratio:4/3}
.so-brand-trust__media img{width:100%;height:100%;object-fit:cover}
.so-brand-trust__content .eyebrow{margin-bottom:22px;color:var(--gold-600)}
.so-brand-trust__content h2{max-width:760px;margin:0 0 24px;color:#2c0a34;font-size:clamp(2.55rem,4.2vw,4.15rem)}
.so-brand-trust__content>p{max-width:720px;margin:0;color:var(--ink-2);font-size:1.04rem;line-height:1.82}
.so-brand-trust__content>p strong{color:var(--green-700)}
.so-brand-trust__proofs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:34px 0}
.so-brand-trust__proof{min-height:112px;padding:20px 16px;border:1px solid rgba(149,31,179,.2);border-radius:16px;background:rgba(255,255,255,.86);box-shadow:0 14px 34px -28px rgba(50,8,60,.45);display:flex;flex-direction:column;align-items:flex-start;gap:12px;color:#36123f;font-size:.88rem;font-weight:700;line-height:1.35}
.so-brand-trust__proof .icon{width:30px;height:30px;padding:5px;border:1px solid rgba(149,31,179,.4);border-radius:50%;color:var(--gold-600)}
.so-brand-trust__actions{display:flex;flex-wrap:wrap;gap:14px}
.so-brand-trust__actions .btn{min-height:50px;padding-inline:24px}
@media(max-width:980px){.so-brand-trust{padding:78px 0}.so-brand-trust__grid{grid-template-columns:1fr;gap:44px}.so-brand-trust__media{max-width:760px}.so-brand-trust__content h2{font-size:clamp(2.45rem,7vw,3.7rem)}}
@media(max-width:640px){.so-brand-trust{padding:62px 0}.so-brand-trust__grid{gap:34px}.so-brand-trust__media{border-radius:20px;aspect-ratio:1/1}.so-brand-trust__proofs{grid-template-columns:1fr;margin:28px 0}.so-brand-trust__proof{min-height:0;flex-direction:row;align-items:center;padding:16px}.so-brand-trust__actions{flex-direction:column}.so-brand-trust__actions .btn{width:100%}.so-brand-trust__content h2{font-size:2.55rem}}

/* Priorité typographique sur les styles historiques */
html body,html body button,html body input,html body select,html body textarea{font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif!important}
html body h1,html body h2,html body h3,html body h4,html body h5,html body h6,html body .jak,html body .section-head h2,html body .page-hero h1,html body .hero h1,html body .so-brand-trust h2{font-family:"Cormorant Garamond",Georgia,serif!important;font-weight:500!important;letter-spacing:-.025em}
html body .btn,html body .menu-link,html body .nav-contact,html body .eyebrow,html body .meta,html body .price,html body .badge{font-family:"Manrope",system-ui,sans-serif!important}

html body p,html body li,html body a,html body span,html body blockquote,html body label,html body small,html body strong,html body b,html body td,html body th{font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif!important}
html body h1,html body h2,html body h3,html body h4,html body h5,html body h6,html body h1 *,html body h2 *,html body h3 *,html body h4 *,html body h5 *,html body h6 *{font-family:"Cormorant Garamond",Georgia,serif!important}

/* ============================================================
   /omra/ — Alignement maquette client (v1.7.9)
   Hero clair (crème + Kaaba à droite) : bat la couche « so-* »
   injectée en base (spécificité doublée .so-omra-hero.so-omra-hero,
   la couche adverse plafonne à body.so-polish-v1:not():not() = 0,5,1).
   Les blocs so-page-headers-* et so-internal-hero-video-* sont
   par ailleurs retirés sur cette page via le tampon functions.php.
   ============================================================ */
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero{
  height:auto!important;
  min-height:0!important;
  padding:76px 0 70px!important;
  color:var(--so-ref-text,#372c3a)!important;
  text-align:left!important;
  isolation:auto!important;
  background-color:#fcf2ff!important;
  background-image:
    linear-gradient(90deg,#fcf2ff 0%,#fcf2ff 34%,rgba(252,242,255,.92) 50%,rgba(252,242,255,.35) 69%,rgba(252,242,255,0) 100%),
    url("assets/photos/kaaba_2.jpg")!important;
  background-position:center right!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  border-bottom:1px solid var(--so-omra-line,#e1cde6)!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero::before,
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero::after{
  content:none!important;
  display:none!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero .so-internal-hero-video{
  display:none!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero .wrap{
  position:relative;
  z-index:2;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero .hero-flex{
  display:block!important;
  max-width:none!important;
  margin:0!important;
  text-align:left!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero .hero-flex>div:first-child,
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero .so-hero-copy{
  max-width:720px!important;
  margin:0!important;
  text-align:left!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero .eyebrow{
  display:inline-flex!important;
  justify-content:flex-start!important;
  margin:0!important;
  color:var(--gold-600,#902fa8)!important;
  text-align:left!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero h1{
  max-width:720px!important;
  margin:.55rem 0 0!important;
  color:var(--so-ref-green,#330b3d)!important;
  font-size:clamp(2.3rem,4.4vw,3.7rem)!important;
  line-height:1.04!important;
  text-align:left!important;
  text-shadow:none!important;
  white-space:normal!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero h1::after{
  content:none!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero p{
  max-width:600px!important;
  margin:18px 0 0!important;
  color:var(--so-ref-text,#4b3d4f)!important;
  text-align:left!important;
  text-shadow:none!important;
}
html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero .so-omra-hero__actions{
  display:flex!important;
  justify-content:flex-start!important;
  margin-top:28px!important;
}
@media (max-width:760px){
  html .so-omra-page .so-omra-page .so-omra-hero.so-omra-hero{
    padding:46px 0 44px!important;
    background-image:
      linear-gradient(180deg,rgba(252,242,255,.94),rgba(252,242,255,.98)),
      url("assets/photos/kaaba_2.jpg")!important;
    background-position:center top!important;
  }
}

/* Titres de carte catalogue : sans-serif gras majuscules (maquette),
   au lieu du serif Cormorant forcé globalement par la couche polices. */
html .so-omra-page .so-omra-page .so-offer-card.so-offer-card .body h3{
  font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif!important;
  font-weight:800!important;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:#2d1433!important;
}

/* Variantes de badge type introduites avec les libellés dérivés. */
.badge-type--economique{background:#493f4c;border-color:rgba(255,255,255,.4);}
.badge-type--confort{background:#640e7a;border-color:rgba(255,255,255,.4);}
.badge-type--famille{background:#751f8a;border-color:rgba(255,255,255,.4);}

/* /omra/ — correctifs finitions (v1.7.10) :
   1) pastille or du bloc sur-mesure rognée par overflow:hidden → on laisse
      déborder le conteneur et on garde l'arrondi sur l'image elle-même ;
   2) la couche polices force footer{margin-top:0!important} → on respire via
      le padding bas de la dernière section (trust). */
html .so-omra-page .so-custom-strip__image{
  overflow:visible!important;
}
html .so-omra-page .so-custom-strip__image img{
  border-radius:6px!important;
}
html .so-omra-page .so-custom-strip__image span{
  z-index:3!important;
}
/* (v1.7.11) Espacement avant footer gere GLOBALEMENT ci-dessous - la couche
   polices injectee force footer{margin-top:0!important} sur tout le site,
   ce qui collait la derniere section au footer sur chaque page. */
html body main.site-main{
  padding-bottom:64px!important;
}
@media (max-width:760px){
  html body main.site-main{
    padding-bottom:44px!important;
  }
}

/* ============================================================
   Accueil — harmonisation des sections (v1.7.13)
   1) Rythme vertical uniforme pour toutes les sections.
   2) Alternance de fonds AUTOMATIQUE (nth-of-type) : indépendante
      de l'ordre choisi dans « Sifate Hajj → Sections d'accueil »,
      elle reste correcte si le client réordonne ou masque.
      Ornements client (médiathèque 325-329) optimisés en WebP
      légers dans assets/bg/ (les PNG d'origine pèsent ~1,4 Mo).
   3) Têtes de section centrées, largeur et marges identiques.
   4) Cartes « étapes » alignées sur le style des autres cartes
      (la couche polish ne couvre pas .step).
   ============================================================ */
html body.home main.site-main>section{
  padding:78px 0!important;
  background-color:#fff!important;
}
html body.home main.site-main>section.hero{
  padding:0!important;
  background:none!important;
}
html body.home main.site-main>section:nth-of-type(even){
  background-color:#faf0fd!important;
  background-image:linear-gradient(rgba(250,240,253,.78),rgba(250,240,253,.78)),url("assets/bg/section-bg-f1.webp")!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
html body.home main.site-main>section:nth-of-type(4n){
  background-image:linear-gradient(rgba(250,240,253,.78),rgba(250,240,253,.78)),url("assets/bg/section-bg-f2.webp")!important;
}
html body.home main.site-main>section:nth-of-type(6n){
  background-image:linear-gradient(rgba(250,240,253,.78),rgba(250,240,253,.78)),url("assets/bg/section-bg-f3.webp")!important;
}

/* Têtes de section : un seul gabarit. */
html body.home .site-main .section-head{
  max-width:760px!important;
  margin:0 auto 44px!important;
  text-align:center!important;
}
html body.home .site-main .section-head .eyebrow{
  display:flex!important;
  justify-content:center!important;
}
html body.home .site-main .section-head h2{
  display:block!important;
}
html body.home .site-main .section-head h2::after{
  margin-left:auto!important;
  margin-right:auto!important;
}
html body.home .site-main .section-head h2{
  margin:.55rem 0 0!important;
  font-size:clamp(1.9rem,3.4vw,2.7rem)!important;
  line-height:1.06!important;
}
html body.home .site-main .section-head p{
  max-width:640px!important;
  margin:.85rem auto 0!important;
  color:var(--so-ref-muted,#6d675f)!important;
  font-size:.98rem!important;
  line-height:1.65!important;
}

/* Étapes : mêmes cartes blanches liseré or que le reste du site. */
html body.home .steps-grid .step{
  background:#fff!important;
  border:1px solid rgba(149,31,179,.22)!important;
  border-radius:14px!important;
  box-shadow:0 10px 26px -24px rgba(50,8,60,.55)!important;
  padding:24px 20px!important;
}
html body.home .steps-grid .step .ln{
  display:none!important;
}
html body.home .steps-grid .step .n{
  width:44px!important;
  height:44px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:12px!important;
  background:linear-gradient(135deg,rgba(100,14,122,.14),rgba(176,77,201,.20))!important;
  color:var(--so-ref-green,#330b3d)!important;
  font-weight:800!important;
}

/* ============================================================
   CTA final — panneau premium sombre + respiration (v1.7.16)
   Le bloc .cta restait sur son dégradé pâle v1 (aucune couche ne
   le couvrait) et .cta-outer n'avait aucune marge verticale
   (collé à la section précédente). Sombre = transition naturelle
   vers le footer vert.
   ============================================================ */
html body .cta-outer{
  margin:72px auto!important;
}
html body .cta-outer .cta{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#330b3d 0%,#2c0835 55%,#3b0d46 100%)!important;
  border:1px solid rgba(176,77,201,.38)!important;
  border-radius:26px;
  padding:62px 44px;
  box-shadow:0 30px 70px -40px rgba(33,7,40,.55);
}
html body .cta-outer .cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(540px 280px at 86% -22%,rgba(176,77,201,.30),transparent 70%),
    radial-gradient(440px 260px at 6% 115%,rgba(176,77,201,.16),transparent 70%);
  pointer-events:none;
}
html body .cta-outer .cta>*{
  position:relative;
  z-index:1;
}
html body .cta-outer .cta .eyebrow{
  /* Règle client : jamais de doré sur fond vert (contraste). */
  color:rgba(255,255,255,.92)!important;
}
html body .cta-outer .cta h2{
  color:#fff!important;
}
html body .cta-outer .cta p{
  color:rgba(255,255,255,.86)!important;
}
html body .cta-outer .cta .btn-primary{
  background:#fff!important;
  border-color:#fff!important;
  color:#330b3d!important;
}
html body .cta-outer .cta .btn-primary:hover{
  background:#edd6f3!important;
  border-color:#edd6f3!important;
}
@media (max-width:760px){
  html body .cta-outer{
    margin:48px auto!important;
  }
  html body .cta-outer .cta{
    padding:44px 24px;
  }
}

/* ============================================================
   Bandeau confiance sous le hero — pilules premium (v1.7.17)
   ============================================================ */
html body.home .trust{
  margin:30px 0 0!important;
  padding:0!important;
  background:none!important;
  border:0!important;
}
html body.home .trust .wrap{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  gap:12px!important;
}
html body.home .trust .item{
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
  padding:12px 20px!important;
  background:#fff!important;
  border:1px solid rgba(149,31,179,.24)!important;
  border-radius:999px!important;
  box-shadow:0 12px 28px -22px rgba(50,8,60,.5)!important;
  font-size:.93rem!important;
  color:var(--so-ref-text,#372c3a)!important;
}
html body.home .trust .item .icon{
  width:19px!important;
  height:19px!important;
  color:var(--gold-600,#902fa8)!important;
  flex:0 0 auto!important;
}
@media (max-width:760px){
  html body.home .trust .item{
    padding:10px 14px!important;
    font-size:.84rem!important;
  }
}

/* ============================================================
   Avis premium + compteur formules (v1.7.18)
   ============================================================ */
/* Pastille compteur sous l'en-tête formules (donnée réelle). */
html body.home .so-count-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
  padding:9px 18px;
  background:#fff;
  border:1px solid rgba(149,31,179,.26);
  border-radius:999px;
  font-size:.86rem;
  font-weight:700;
  color:var(--so-ref-green,#330b3d);
  box-shadow:0 10px 24px -20px rgba(50,8,60,.5);
}
html body.home .so-count-pill .icon{
  width:16px;
  height:16px;
  color:var(--gold-600,#902fa8);
}

/* Cartes avis : guillemet décoratif or, avatar cerclé or,
   carte centrale légèrement surélevée sur desktop. */
html body.home .test{
  position:relative;
  overflow:hidden;
  padding:30px 26px!important;
}
html body.home .test::after{
  content:"\201D";
  position:absolute;
  top:-26px;
  right:12px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:7.5rem;
  line-height:1;
  color:rgba(176,77,201,.16);
  pointer-events:none;
}
html body.home .test blockquote,
html body.home .test .stars,
html body.home .test .who{
  position:relative;
  z-index:1;
}
html body.home .test .av{
  border:2px solid rgba(176,77,201,.5)!important;
  box-shadow:0 0 0 3px rgba(176,77,201,.14)!important;
}
@media (min-width:1000px){
  html body.home .test-grid .test:nth-child(2){
    margin-top:-14px;
  }
}



/* Sélecteur de langue FR/EN (topbar) — v1.7.20 */
.soc-lang-switch{display:inline-flex;align-items:center;gap:6px}
.soc-lang-switch a{opacity:.65;font-weight:600;text-decoration:none;color:inherit}
.soc-lang-switch a.active{opacity:1;font-weight:800}
.soc-lang-switch a:hover{opacity:1}

/* Pages anglaises (v1.7.21) : masque les blocs injectés Codex restés en
   français (marquee compagnies + section « Vols, visas & formalités »). */
html body.soc-lang-en .so-partners,
html body.soc-lang-en section:has(.so-journey-flow),
html body.soc-lang-en section:has(.so-journey-head){
  display:none!important;
}

/* Hero d'accueil (bloc injecté so-revhero) : centrage vertical ABSOLU.
   Le bloc est sorti du flux (grille du bloc injecté, panneau latéral JS,
   hauteurs réservées…) et posé au centre géométrique du hero — rien ne
   peut plus le décaler. */
html body.home .so-revhero-inner{
  position:relative!important;
}
html body.home .so-revhero-copy{
  position:absolute!important;
  top:50%!important;
  --so-hero-shift:0px;
  left:50%!important;
  transform:translate(-50%,-50%)!important;
  width:min(860px,calc(100% - 56px))!important;
  max-width:860px!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
html body.home .so-revhero-title,
html body.home .so-revhero-lead{
  min-height:0!important;
}
/* Réglage client (PC) : contenu remonté de 60px par rapport au centre. */
@media (min-width:761px){
  html body.home .so-revhero-copy{
    top:calc(50% - 60px)!important;
  }
}

/* ============================================================
   Article de blog — lecture + colonne de conversion (v1.7.34)
   ============================================================ */
.so-article-wrap{
  padding:56px 0 72px;
}
.so-article-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:44px;
  align-items:start;
}
.so-article-cover{
  margin:0 0 26px;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 18px 44px -30px rgba(50,8,60,.45);
}
.so-article-cover img{
  width:100%;
  height:auto;
  display:block;
}
.so-article .entry-content{
  max-width:none;
  font-size:1.02rem;
  line-height:1.78;
}
.so-article .entry-content h2{
  margin:2.1em 0 .7em;
  padding-bottom:.35em;
  border-bottom:1px solid rgba(149,31,179,.25);
}
.so-article .entry-content h3{
  margin:1.6em 0 .5em;
}
.so-article .entry-content ul{
  padding-left:1.2em;
}
.so-article .entry-content li{
  margin:.4em 0;
}
.so-article .entry-content figure{
  margin:1.6em 0;
  border-radius:14px;
  overflow:hidden;
}
.so-article .entry-content img{
  border-radius:14px;
}
.so-article .entry-content hr{
  margin:2.2em 0;
  border:0;
  border-top:1px dashed rgba(149,31,179,.35);
}

/* Colonne latérale */
.so-article-side{
  position:sticky;
  top:96px;
  display:grid;
  gap:18px;
}
.so-side-card{
  background:#fff;
  border:1px solid rgba(149,31,179,.22);
  border-radius:16px;
  padding:22px;
  box-shadow:0 14px 34px -26px rgba(50,8,60,.5);
}
.so-side-card h4{
  margin:0 0 14px;
  font-size:1.25rem;
}
html body .so-side-cta.so-side-cta{
  background:linear-gradient(150deg,#330b3d,#3b0d46)!important;
  border-color:rgba(176,77,201,.4)!important;
}
html body .so-side-cta.so-side-cta .eyebrow{
  /* Règle client : jamais de doré sur fond vert (contraste). */
  color:rgba(255,255,255,.92)!important;
}
html body .so-side-cta.so-side-cta h3{
  margin:.5rem 0 .4rem;
  color:#fff!important;
  font-size:1.45rem;
  line-height:1.15;
}
html body .so-side-cta.so-side-cta p{
  color:rgba(255,255,255,.85)!important;
  font-size:.92rem;
  margin:0 0 14px;
}
html body .so-side-cta.so-side-cta .btn{
  width:100%!important;
  justify-content:center!important;
  margin-top:8px!important;
}
html body .so-side-cta.so-side-cta .btn-primary{
  background:#fff!important;
  border-color:#fff!important;
  color:#330b3d!important;
}
html body .so-side-cta.so-side-cta .btn-outline{
  border-color:rgba(255,255,255,.5)!important;
  color:#fff!important;
}
.so-side-formules{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
}
.so-side-formules a{
  display:flex;
  gap:12px;
  align-items:center;
  text-decoration:none;
  color:inherit;
  padding:8px;
  margin:-8px;
  border-radius:12px;
  transition:background .2s ease;
}
.so-side-formules a:hover{
  background:rgba(100,14,122,.07);
}
.so-side-formules .thumb{
  flex:0 0 62px;
  width:62px;
  height:62px;
  border-radius:10px;
  overflow:hidden;
}
.so-side-formules .thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.so-side-formules .meta b{
  display:block;
  font-size:.9rem;
  line-height:1.25;
}
.so-side-formules .meta small{
  color:var(--so-ref-muted,#6d675f);
  font-weight:700;
}
.so-side-all{
  display:inline-block;
  margin-top:14px;
  font-weight:800;
  font-size:.88rem;
  text-decoration:none;
  color:var(--green-700,#640e7a);
}
.so-side-links{
  display:grid;
  gap:4px;
}
.so-side-links a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  margin:0 -10px;
  border-radius:10px;
  text-decoration:none;
  color:inherit;
  font-weight:700;
  font-size:.92rem;
}
.so-side-links a:hover{
  background:rgba(100,14,122,.07);
}
.so-side-links .icon{
  width:18px;
  height:18px;
  color:var(--gold-600,#902fa8);
}
.so-article-related{
  margin-top:64px;
  padding-top:36px;
  border-top:1px solid rgba(149,31,179,.2);
}
.so-article-related h2{
  margin-bottom:24px;
}
@media (max-width:1020px){
  .so-article-layout{
    grid-template-columns:1fr;
  }
  .so-article-side{
    position:static;
  }
}


/* ============================================================
   Motifs géométriques de fond (v1.7.38) — version ÉPURÉE.
   Étoile 8 branches (client) vert 2% sous un voile blanc dégradé :
   le motif se devine sur les bords de section, le cœur reste net.
   Appliqué home + pages internes. Panneaux sombres : entrelacs or 4.5%.
   ============================================================ */
html body.home main.site-main>section:nth-of-type(odd):not(.hero),
html body:not(.home) main.site-main>section:not(.page-hero):not(.alt):not(.alt2):not([class*="so-omra-hero"]),
html body .so-article-wrap{
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,.78) 30%,rgba(255,255,255,.78) 70%,rgba(255,255,255,.35) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2752%27%20height%3D%2752%27%20viewBox%3D%270%200%2052%2052%27%3E%3Cpath%20fill%3D%27%23006D41%27%20fill-opacity%3D%270.035%27%20d%3D%27M0%2017.83V0h17.83a3%203%200%200%201-5.66%202H5.9A5%205%200%200%201%202%205.9v6.27a3%203%200%200%201-2%205.66zm0%2018.34a3%203%200%200%201%202%205.66v6.27A5%205%200%200%201%205.9%2052h6.27a3%203%200%200%201%205.66%200H0V36.17zM36.17%2052a3%203%200%200%201%205.66%200h6.27a5%205%200%200%201%203.9-3.9v-6.27a3%203%200%200%201%200-5.66V52H36.17zM0%2031.93v-9.78a5%205%200%200%201%203.8.72l4.43-4.43a3%203%200%201%201%201.42%201.41L5.2%2024.28a5%205%200%200%201%200%205.52l4.44%204.43a3%203%200%201%201-1.42%201.42L3.8%2031.2a5%205%200%200%201-3.8.72zm52-14.1a3%203%200%200%201%200-5.66V5.9A5%205%200%200%201%2048.1%202h-6.27a3%203%200%200%201-5.66-2H52v17.83zm0%2014.1a4.97%204.97%200%200%201-1.72-.72l-4.43%204.44a3%203%200%201%201-1.41-1.42l4.43-4.43a5%205%200%200%201%200-5.52l-4.43-4.43a3%203%200%201%201%201.41-1.41l4.43%204.43c.53-.35%201.12-.6%201.72-.72v9.78zM22.15%200h9.78a5%205%200%200%201-.72%203.8l4.44%204.43a3%203%200%201%201-1.42%201.42L29.8%205.2a5%205%200%200%201-5.52%200l-4.43%204.44a3%203%200%201%201-1.41-1.42l4.43-4.43a5%205%200%200%201-.72-3.8zm0%2052c.13-.6.37-1.19.72-1.72l-4.43-4.43a3%203%200%201%201%201.41-1.41l4.43%204.43a5%205%200%200%201%205.52%200l4.43-4.43a3%203%200%201%201%201.42%201.41l-4.44%204.43c.36.53.6%201.12.72%201.72h-9.78zm9.75-24a5%205%200%200%201-3.9%203.9v6.27a3%203%200%201%201-2%200V31.9a5%205%200%200%201-3.9-3.9h-6.27a3%203%200%201%201%200-2h6.27a5%205%200%200%201%203.9-3.9v-6.27a3%203%200%201%201%202%200v6.27a5%205%200%200%201%203.9%203.9h6.27a3%203%200%201%201%200%202H31.9z%27%2F%3E%3C%2Fsvg%3E")!important;
  background-size:auto,52px 52px!important;
}
html body:not(.home) section.alt2{
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.4) 0%,rgba(255,255,255,.74) 35%,rgba(255,255,255,.74) 65%,rgba(255,255,255,.4) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2752%27%20height%3D%2752%27%20viewBox%3D%270%200%2052%2052%27%3E%3Cpath%20fill%3D%27%23006D41%27%20fill-opacity%3D%270.035%27%20d%3D%27M0%2017.83V0h17.83a3%203%200%200%201-5.66%202H5.9A5%205%200%200%201%202%205.9v6.27a3%203%200%200%201-2%205.66zm0%2018.34a3%203%200%200%201%202%205.66v6.27A5%205%200%200%201%205.9%2052h6.27a3%203%200%200%201%205.66%200H0V36.17zM36.17%2052a3%203%200%200%201%205.66%200h6.27a5%205%200%200%201%203.9-3.9v-6.27a3%203%200%200%201%200-5.66V52H36.17zM0%2031.93v-9.78a5%205%200%200%201%203.8.72l4.43-4.43a3%203%200%201%201%201.42%201.41L5.2%2024.28a5%205%200%200%201%200%205.52l4.44%204.43a3%203%200%201%201-1.42%201.42L3.8%2031.2a5%205%200%200%201-3.8.72zm52-14.1a3%203%200%200%201%200-5.66V5.9A5%205%200%200%201%2048.1%202h-6.27a3%203%200%200%201-5.66-2H52v17.83zm0%2014.1a4.97%204.97%200%200%201-1.72-.72l-4.43%204.44a3%203%200%201%201-1.41-1.42l4.43-4.43a5%205%200%200%201%200-5.52l-4.43-4.43a3%203%200%201%201%201.41-1.41l4.43%204.43c.53-.35%201.12-.6%201.72-.72v9.78zM22.15%200h9.78a5%205%200%200%201-.72%203.8l4.44%204.43a3%203%200%201%201-1.42%201.42L29.8%205.2a5%205%200%200%201-5.52%200l-4.43%204.44a3%203%200%201%201-1.41-1.42l4.43-4.43a5%205%200%200%201-.72-3.8zm0%2052c.13-.6.37-1.19.72-1.72l-4.43-4.43a3%203%200%201%201%201.41-1.41l4.43%204.43a5%205%200%200%201%205.52%200l4.43-4.43a3%203%200%201%201%201.42%201.41l-4.44%204.43c.36.53.6%201.12.72%201.72h-9.78zm9.75-24a5%205%200%200%201-3.9%203.9v6.27a3%203%200%201%201-2%200V31.9a5%205%200%200%201-3.9-3.9h-6.27a3%203%200%201%201%200-2h6.27a5%205%200%200%201%203.9-3.9v-6.27a3%203%200%201%201%202%200v6.27a5%205%200%200%201%203.9%203.9h6.27a3%203%200%201%201%200%202H31.9z%27%2F%3E%3C%2Fsvg%3E")!important;
  background-size:auto,52px 52px!important;
}
html body .cta-outer .cta{
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.065%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    radial-gradient(540px 280px at 86% -22%,rgba(176,77,201,.30),transparent 70%),
    radial-gradient(440px 260px at 6% 115%,rgba(176,77,201,.16),transparent 70%),
    linear-gradient(135deg,#330b3d 0%,#2c0835 55%,#3b0d46 100%)!important;
  background-size:56px 56px,auto,auto,auto!important;
}
html body .so-side-cta.so-side-cta{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.065%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),linear-gradient(150deg,#330b3d,#3b0d46)!important;
  background-size:56px 56px,auto!important;
}


/* Motifs — déclinaison /omra/ + fiches formules (v1.7.39), même principe
   épuré : motif différent de l'accueil + voile blanc, cœur de section net. */
html .so-omra-page .so-omra-page>section:not(.so-omra-hero){
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.55) 30%,rgba(255,255,255,.55) 70%,rgba(255,255,255,.2) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2764%27%20height%3D%2764%27%20viewBox%3D%270%200%2064%2064%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.16%27%20stroke-width%3D%271%27%3E%3Cpath%20d%3D%27M19%200h26L64%2019v26L45%2064H19L0%2045V19zM32%2012l14%208v16l-14%208-14-8V20z%27%2F%3E%3Cpath%20d%3D%27M32%2012V0M32%2064V52M12%2020%200%2013M64%2013l-12%207M12%2044%200%2051M64%2051l-12-7%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")!important;
  background-size:auto,64px 64px!important;
}
html body.single-formule main.site-main{
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.78) 32%,rgba(255,255,255,.78) 68%,rgba(255,255,255,.45) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2788%27%20height%3D%2788%27%20viewBox%3D%270%200%2088%2088%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23006D41%27%20stroke-opacity%3D%270.065%27%20stroke-width%3D%271%27%3E%3Cpath%20d%3D%27M44%2028l4.5%2011.5L60%2044l-11.5%204.5L44%2060l-4.5-11.5L28%2044l11.5-4.5z%27%2F%3E%3Cpath%20d%3D%27M6%206l2%205%205%202-5%202-2%205-2-5-5-2%205-2zM82%206l2%205%205%202-5%202-2%205-2-5-5-2%205-2z%27%20transform%3D%27translate%280%2C0%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-size:auto,88px 88px;
}

/* Blog : indicateur de chargement du scroll infini (v1.7.43). */
.so-blog-sentinel{
  display:flex;
  justify-content:center;
  padding:26px 0 8px;
  min-height:40px;
}
.so-blog-spinner{
  width:26px;
  height:26px;
  border-radius:50%;
  border:3px solid rgba(149,31,179,.25);
  border-top-color:var(--gold-600,#902fa8);
  opacity:0;
  animation:so-blog-spin .8s linear infinite;
}
.so-blog-sentinel.is-loading .so-blog-spinner{
  opacity:1;
}
@keyframes so-blog-spin{to{transform:rotate(360deg)}}

/* Carte devis (article) : le bouton WhatsApp restait blanc sur blanc —
   fond transparent forcé (la couche polish blanchit les .btn-outline). */
html body .so-side-cta.so-side-cta .btn-outline{
  background:transparent!important;
}
html body .so-side-cta.so-side-cta .btn-outline:hover{
  background:rgba(255,255,255,.12)!important;
}

/* ============================================================
   v1.7.44 — Alignement proto page formule
   Le proto valide montre : en-tete pleine largeur, conteneur
   contenu ~93% du viewport, titres serif plus gras, sections
   plus aerees. La couche polish (so-premium-fonts-final) force
   les titres en Cormorant 500 via html body h1 (0,0,3) : on la
   bat avec une classe (0,1,3).
   ============================================================ */

/* 1. En-tete + topbar pleine largeur, comme le proto */
html body .topbar .wrap,
html body header.nav .wrap{
  max-width:none;
  padding-left:clamp(20px,3vw,44px);
  padding-right:clamp(20px,3vw,44px);
}

/* 2. Conteneurs de la page formule elargis (cap 1340px) */
html body .page-forfait-omra .so-formule-hero__inner,
html body .page-forfait-omra .so-formule-detail>.wrap,
html body .page-forfait-omra .so-formule-final>.wrap{
  max-width:1340px;
}
html body .page-forfait-omra .so-formule-hero__copy,
html body .page-forfait-omra .so-formule-hero h1{
  max-width:700px;
}

/* 3. Titres : graisse du proto (Cormorant Garamond 600, chargee) */
html body .page-forfait-omra h1,
html body .page-forfait-omra h2,
html body .page-forfait-omra h3{
  font-weight:600!important;
}
html body .page-forfait-omra .so-formule-section h2{
  font-size:clamp(1.6rem,2.3vw,1.95rem);
  margin-bottom:26px;
}
html body .page-forfait-omra .so-final-box h2{
  font-weight:600!important;
}

/* 4. Respiration entre les sections (proto plus aere) */
html body .page-forfait-omra .so-formule-section{
  margin-top:clamp(46px,4.5vw,60px);
}

/* ------------------------------------------------------------
   v1.7.44 (suite) — En-tete "proto" : barre vert fonce PLEINE
   LARGEUR (remplace la pilule blanche flottante). Le proto valide
   montre : barre sombre bord a bord, logo blanc, liens blancs,
   WhatsApp contour + bouton devis dore a droite. Les surcharges
   viennent apres le bloc pilule (memes selecteurs) : l'ordre gagne.
   ------------------------------------------------------------ */
html body header.nav{
  background:linear-gradient(180deg,#430752,#2e0438)!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
  padding:0!important;
  box-shadow:0 14px 34px rgba(23,2,28,.26)!important;
}
html body header.nav .wrap{
  background:transparent!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  max-width:none!important;
  min-height:74px!important;
  padding:10px clamp(18px,3vw,44px)!important;
}
/* Topbar assortie (fond tres fonce, texte blanc, icones dorees) */
html body .topbar{
  background:#210329;
  border-bottom:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.78);
}
html body .topbar a{color:rgba(255,255,255,.88)}
html body .topbar a:hover{color:#fff}
html body .topbar .icon{stroke:#c26fd7}
/* Liens du menu : blancs (niveau 1 uniquement — le sous-menu reste
   un panneau blanc a texte fonce, regle plus haut) */
html body header.nav .menu-list>li>a,
html body header.nav .menu-list>li>a .so-menu-label,
html body header.nav nav.menu>a{color:#fff!important}
html body header.nav .menu-list>li>a:hover,
html body header.nav .menu-list>li>a:hover .so-menu-label{color:#fff!important;opacity:.85}
/* Lien actif : souligne dore (l'or en lisere est permis, pas en texte) */
html body header.nav .menu-list>li>a.active,
html body header.nav .menu-list>li.current-menu-item>a{
  color:#fff!important;
  box-shadow:inset 0 -2px 0 #b061c4!important;
  padding-bottom:4px!important;
}
/* Bouton WhatsApp contour blanc */
html body header.nav .nav-cta .nav-wa{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  padding:9px 16px!important;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:999px!important;
  color:#fff!important;
  font-weight:700!important;
  font-size:.9rem!important;
  line-height:1!important;
  text-decoration:none!important;
  transition:background .16s,border-color .16s!important;
}
html body header.nav .nav-cta .nav-wa:hover{
  background:rgba(255,255,255,.12)!important;
  border-color:rgba(255,255,255,.85)!important;
}
html body header.nav .nav-cta .nav-wa .icon{width:16px;height:16px;stroke:#fff}
/* Bouton devis : dore, texte vert fonce (jamais de texte or sur vert) */
html body header.nav .wrap .nav-cta a.nav-contact{
  background-color:#b061c4!important;
  background-image:linear-gradient(180deg,#cb77e0,#b061c4)!important;
  box-shadow:0 10px 24px -8px rgba(176,97,196,.55),inset 0 1px 0 rgba(255,255,255,.35)!important;
}
html body header.nav .nav-cta .nc-label{color:#33123b!important}
html body header.nav .nav-cta .nc-ico{background:#fff!important}
html body header.nav .nav-cta .nc-ico .icon,
html body header.nav .nav-cta .nc-ico svg{stroke:#902fa8!important;color:#902fa8!important}
/* Hero formule : l'inner est un item flex qui retrecissait au
   contenu — on le force a occuper la largeur du conteneur */
html body .page-forfait-omra .so-formule-hero__inner{width:100%}
/* Fil d'ariane hero sur fond clair : inchange. Burger mobile sur
   barre sombre : carte blanche deja geree par le bloc responsive. */

/* v1.7.44 (fin) — boost de specificite : so-premium-fonts-final
   (inline, charge apres) repeint header/topbar en blanc via
   body.so-polish-v1 (0,2,x). On double chaque regle avec la
   variante .so-polish-v1 pour gagner, tout en gardant la variante
   simple pour les pages sans cette classe. */
html body header.nav,
html body.so-polish-v1 header.nav{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  background:linear-gradient(180deg,#430752,#2e0438)!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 14px 34px rgba(23,2,28,.26)!important;
}
html body .topbar,
html body.so-polish-v1 .topbar{
  background:#210329!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
  color:rgba(255,255,255,.78)!important;
}
html body.so-polish-v1 .topbar a{color:rgba(255,255,255,.88)!important}
html body.so-polish-v1 .topbar a:hover{color:#fff!important}
html body.so-polish-v1 .topbar .icon{stroke:#c26fd7!important}
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body header.nav nav.menu>.menu-list>li>a.menu-link .so-menu-label,
html body header.nav nav.menu>.menu-list>li>a.menu-link span,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link .so-menu-label,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link span{
  color:#fff!important;
  background:transparent!important;
}
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover .so-menu-label{
  color:#fff!important;opacity:.85;
}
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link{
  color:#fff!important;
  box-shadow:inset 0 -2px 0 #b061c4!important;
  border-radius:0!important;
}

/* ------------------------------------------------------------
   v1.7.45 — retours client sur le header sombre :
   1) largeur du contenu ramenee a ~80% (plus 100%)
   2) hover/actif du menu : la couche polish posait une pilule
      claire #f5edf7 sous le texte blanc -> voile sombre a la place
   3) icones du menu : ::before masque rempli #4e0a5f (vert sur
      vert) -> blanc
   (Le bouton WhatsApp du header est retire du markup : un seul
   bouton contact, "Demander un devis".)
   ------------------------------------------------------------ */
html body .topbar .wrap,
html body.so-polish-v1 .topbar .wrap,
html body header.nav .wrap,
html body.so-polish-v1 header.nav .wrap{
  max-width:max(80vw,1100px)!important;
  margin-inline:auto!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link{
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
  transform:none!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover .so-menu-label,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover .so-menu-label,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link .so-menu-label{
  color:#fff!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link::before,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link::before{
  background:rgba(255,255,255,.92)!important;
}

/* ------------------------------------------------------------
   v1.7.47 — Statut des cartes formules : le texte marron plat
   ("Places disponibles") manquait de credibilite. Remplace par
   une pastille : verte + coche si dispo, rouge discrete si
   complet. (page-id-6 posait color:#83299a!important -> battu.)
   ------------------------------------------------------------ */
html body .so-card-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:fit-content;
  margin:0;
  padding:5px 11px 5px 9px;
  border-radius:999px;
  font-size:.72rem!important;
  font-weight:700;
  line-height:1;
}
html body .so-card-status .icon{
  width:13px;
  height:13px;
  flex:0 0 auto;
}
html body .so-card-status.is-dispo{
  background:#f1e7f4;
  border:1px solid rgba(88,10,107,.18);
  color:#580a6b!important;
}
html body .so-card-status.is-dispo .icon{stroke:#700a8a}
html body .so-card-status.is-complet{
  background:#faecec;
  border:1px solid rgba(163,48,48,.16);
  color:#a33030!important;
}
html body .so-card-status.is-complet .icon{stroke:#a33030}

/* ------------------------------------------------------------
   v1.7.48 — Motif geometrique fondu derriere header + footer.
   Meme entrelacs de cercles or que les panneaux sombres (0.075),
   voile du vert de fond par-dessus pour l'effet fondu : net en
   haut, s'efface vers le bas (header) / vers le haut (footer).
   ------------------------------------------------------------ */
html body header.nav,
html body.so-polish-v1 header.nav{
  background-image:
    linear-gradient(180deg,rgba(57,6,70,0) 0%,rgba(49,5,60,.45) 60%,rgba(46,4,56,.85) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.075%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    linear-gradient(180deg,#430752,#2e0438)!important;
  background-size:auto,56px 56px,auto!important;
  background-repeat:no-repeat,repeat,no-repeat!important;
}
html body footer.site-footer,
html body.so-polish-v1 footer.site-footer{
  background-image:
    linear-gradient(180deg,rgba(30,7,36,.88) 0%,rgba(30,7,36,.35) 40%,rgba(38,9,45,0) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.075%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    linear-gradient(180deg,#1e0724,#2b0b33)!important;
  background-size:auto,56px 56px,auto!important;
  background-repeat:no-repeat,repeat,no-repeat!important;
}

/* ------------------------------------------------------------
   v1.7.49 — Footer + topbar en gris tres fonce (le header nav
   reste vert). Motif or fondu conserve.
   ------------------------------------------------------------ */
html body .topbar,
html body.so-polish-v1 .topbar{
  background:#141619!important;
  border-bottom:1px solid rgba(255,255,255,.07)!important;
}
html body footer.site-footer,
html body.so-polish-v1 footer.site-footer{
  background-image:
    linear-gradient(180deg,rgba(20,22,25,.9) 0%,rgba(20,22,25,.35) 40%,rgba(24,26,30,0) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.075%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    linear-gradient(180deg,#17191d,#101214)!important;
  background-size:auto,56px 56px,auto!important;
  background-repeat:no-repeat,repeat,no-repeat!important;
}

/* ------------------------------------------------------------
   v1.7.50 — Inversion : header nav en gris tres fonce (motif or
   fondu conserve), topbar en vert. Footer inchange (gris).
   ------------------------------------------------------------ */
html body .topbar,
html body.so-polish-v1 .topbar{
  background:#390646!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
html body header.nav,
html body.so-polish-v1 header.nav{
  background-image:
    linear-gradient(180deg,rgba(23,25,29,0) 0%,rgba(18,20,23,.45) 60%,rgba(16,18,20,.85) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.075%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    linear-gradient(180deg,#1a1c20,#121417)!important;
  background-size:auto,56px 56px,auto!important;
  background-repeat:no-repeat,repeat,no-repeat!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}

/* ------------------------------------------------------------
   v1.7.51 — Header a 70% de largeur ; topbar ET header en gris
   tres fonce ; le menu garde le vert : capsule verte arrondie
   autour des liens, posee sur la barre grise.
   ------------------------------------------------------------ */
html body .topbar,
html body.so-polish-v1 .topbar{
  background:#141619!important;
  border-bottom:1px solid rgba(255,255,255,.07)!important;
}
html body .topbar .wrap,
html body.so-polish-v1 .topbar .wrap,
html body header.nav .wrap,
html body.so-polish-v1 header.nav .wrap{
  max-width:max(70vw,1000px)!important;
}
html body header.nav nav.menu,
html body.so-polish-v1 header.nav nav.menu{
  background:linear-gradient(180deg,#4c0a5c,#390646)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:999px!important;
  padding:4px 10px!important;
  box-shadow:0 8px 22px -10px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.10)!important;
}
/* v1.7.51b — a 70% le menu passait sur 2 lignes : liens compactes,
   interdiction de repli */
html body header.nav nav.menu,
html body.so-polish-v1 header.nav nav.menu{
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
}
html body header.nav nav.menu>.menu-list,
html body.so-polish-v1 header.nav nav.menu>.menu-list{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:2px!important;
  margin:0!important;
  padding:0!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link{
  padding:8px 10px!important;
  font-size:.85rem!important;
  min-height:38px!important;
}
/* v1.7.51c — 70% : rendre la place (deficit ~60px a 1440px) :
   grille re-forcee, liens et bouton compactes, logo 40px */
html body header.nav .wrap,
html body.so-polish-v1 header.nav .wrap{
  grid-template-columns:auto minmax(0,1fr) auto!important;
  justify-content:space-between!important;
}
html body header.nav nav.menu,
html body.so-polish-v1 header.nav nav.menu{
  justify-self:center!important;
  max-width:100%!important;
  overflow:hidden!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link{
  padding:7px 8px!important;
  font-size:.83rem!important;
}
html body header.nav .brand .brand-logo,
html body.so-polish-v1 header.nav .brand .brand-logo{
  height:40px!important;
}
html body header.nav .wrap .nav-cta a.nav-contact,
html body.so-polish-v1 header.nav .wrap .nav-cta a.nav-contact{
  padding:6px 6px 6px 16px!important;
  font-size:.88rem!important;
}
/* v1.7.51d — icones des liens retirees (comme le proto) : libere
   ~130px, le menu tient a l'aise dans la capsule a 70% */
html body header.nav nav.menu>.menu-list>li>a.menu-link::before,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link::before{
  display:none!important;
  content:none!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link{
  padding:8px 12px!important;
  font-size:.86rem!important;
}

/* ------------------------------------------------------------
   v1.7.52 — Menu : separateurs "|" entre les liens, logo
   ré-agrandi (48px). Les libelles sont geres dans le menu WP
   (Omra 2026/2027, Derniers articles, Contact retire).
   ------------------------------------------------------------ */
html body header.nav nav.menu>.menu-list>li,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li{
  display:flex!important;
  align-items:center!important;
}
html body header.nav nav.menu>.menu-list>li+li::before,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li+li::before{
  content:"|"!important;
  display:inline-block!important;
  margin:0 7px!important;
  color:rgba(255,255,255,.30)!important;
  font-size:.8rem!important;
  background:none!important;
  width:auto!important;
  height:auto!important;
  -webkit-mask:none!important;
  mask:none!important;
}
html body header.nav .brand .brand-logo,
html body.so-polish-v1 header.nav .brand .brand-logo{
  height:48px!important;
}
/* v1.7.52b — les nouveaux libelles depassaient de 34px : padding
   liens 9px, separateur 5px */
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link{
  padding:8px 9px!important;
}
html body header.nav nav.menu>.menu-list>li+li::before,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li+li::before{
  margin:0 5px!important;
}

/* ------------------------------------------------------------
   v1.7.53 — Précision client : c'est TOUT le header qui devait
   etre vert (pas une capsule autour du menu). Header = vert +
   motif or fondu ; capsule retiree (menu transparent) ; topbar
   reste grise ; 70%, separateurs, logo 48 conserves.
   ------------------------------------------------------------ */
html body header.nav,
html body.so-polish-v1 header.nav{
  background-image:
    linear-gradient(180deg,rgba(57,6,70,0) 0%,rgba(49,5,60,.45) 60%,rgba(46,4,56,.85) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.075%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    linear-gradient(180deg,#4c0a5c,#3a0547)!important;
  background-size:auto,56px 56px,auto!important;
  background-repeat:no-repeat,repeat,no-repeat!important;
  border-bottom:1px solid rgba(255,255,255,.09)!important;
}
html body header.nav nav.menu,
html body.so-polish-v1 header.nav nav.menu{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  box-shadow:none!important;
}

/* ------------------------------------------------------------
   v1.7.54 — Menu : fini l'effet "carre" au survol/actif. A la
   place : soulignement dore anime qui nait du centre au survol
   et reste sous le lien actif, texte creme au survol. (Le blocage
   ::after de la couche pilule est re-active ici, plus bas donc
   prioritaire.)
   ------------------------------------------------------------ */
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link{
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  color:#fff!important;
  opacity:1!important;
  transform:none!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover{
  color:#edd6f3!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link::after,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:50%!important;
  bottom:1px!important;
  transform:translateX(-50%)!important;
  width:0!important;
  height:2px!important;
  border-radius:2px!important;
  background:linear-gradient(90deg,#cb77e0,#b061c4)!important;
  box-shadow:0 0 8px rgba(203,119,224,.45)!important;
  transition:width .28s ease!important;
  pointer-events:none!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover::after,
html body header.nav nav.menu>.menu-list>li>a.menu-link.active::after,
html body header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link::after,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover::after,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link.active::after,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link::after{
  width:calc(100% - 16px)!important;
}
/* v1.7.54b — le rectangle restant = bordure/outline posee par la
   couche polish sur hover/actif/focus : neutralisee */
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body header.nav nav.menu>.menu-list>li>a.menu-link:focus,
html body header.nav nav.menu>.menu-list>li>a.menu-link:focus-visible,
html body header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:focus,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:focus-visible,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link{
  border:0!important;
  outline:none!important;
  outline-offset:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* ------------------------------------------------------------
   v1.7.55 — Header inverse : fond BLANC, textes vert fonce,
   motif or tres leger fondu, logo couleur. Topbar reste grise,
   bouton dore inchange. Soulignement or conserve (lisible sur
   blanc).
   ------------------------------------------------------------ */
html body header.nav,
html body.so-polish-v1 header.nav{
  background-image:
    linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.55) 60%,rgba(255,255,255,.92) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.10%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    linear-gradient(180deg,#ffffff,#f8f1fa)!important;
  background-size:auto,56px 56px,auto!important;
  background-repeat:no-repeat,repeat,no-repeat!important;
  border-bottom:1px solid rgba(78,10,95,.14)!important;
  box-shadow:0 12px 30px rgba(26,7,31,.08)!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body header.nav nav.menu>.menu-list>li>a.menu-link .so-menu-label,
html body header.nav nav.menu>.menu-list>li>a.menu-link span,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link .so-menu-label,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link span{
  color:#311538!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover .so-menu-label,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover .so-menu-label{
  color:#4e0a5f!important;
  opacity:1!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link{
  color:#4e0a5f!important;
}
html body header.nav nav.menu>.menu-list>li+li::before,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li+li::before{
  color:rgba(78,10,95,.28)!important;
}

/* ------------------------------------------------------------
   v1.7.56 — Header blanc valide. Verrou anti "blanc sur blanc" :
   toutes les regles heritees du header sombre (texte #fff au
   survol/actif/focus, voile blanc) sont ecrasees etat par etat,
   y compris les spans internes. Survol = leger voile vert.
   ------------------------------------------------------------ */
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body header.nav nav.menu>.menu-list>li>a.menu-link:focus,
html body header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link,
html body header.nav nav.menu>.menu-list>li.current-menu-ancestor>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:focus,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link.active,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-ancestor>a.menu-link{
  color:#4e0a5f!important;
  background:rgba(78,10,95,.06)!important;
  border-radius:8px!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover .so-menu-label,
html body header.nav nav.menu>.menu-list>li>a.menu-link:hover span,
html body header.nav nav.menu>.menu-list>li>a.menu-link.active .so-menu-label,
html body header.nav nav.menu>.menu-list>li>a.menu-link.active span,
html body header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link .so-menu-label,
html body header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link span,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover .so-menu-label,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link:hover span,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link.active .so-menu-label,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link.active span,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link .so-menu-label,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li.current-menu-item>a.menu-link span{
  color:#4e0a5f!important;
  background:transparent!important;
}

/* ------------------------------------------------------------
   v1.7.58 — Audit mobile : seul defaut trouve = champs de
   formulaire a 13px -> iOS zoome automatiquement au focus.
   16px minimum sur mobile (supprime le zoom force).
   ------------------------------------------------------------ */
@media (max-width:640px){
  html body input:not([type=checkbox]):not([type=radio]):not([type=range]),
  html body select,
  html body textarea,
  html body.so-polish-v1 input:not([type=checkbox]):not([type=radio]):not([type=range]),
  html body.so-polish-v1 select,
  html body.so-polish-v1 textarea{
    font-size:16px!important;
  }
}
/* v1.7.58b — textarea restait a 15px (regle formulaire plus
   specifique) : verrou maximal */
@media (max-width:640px){
  html body form textarea,
  html body .form textarea,
  html body.so-polish-v1 .contact-grid .form textarea,
  html body.so-polish-v1 .so-custom-form textarea,
  html body.so-polish-v1 form textarea{
    font-size:16px!important;
  }
}
/* v1.7.59 — le zoom iOS venait de so-premium-fonts-final
   (body.so-polish-v1 :is(.contact-grid .form,...) :is(input,...)
   = (0,4,2) !important). Classe doublee -> (0,4,3), gagne. */
@media (max-width:640px){
  html body.so-polish-v1 .contact-grid .form.form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  html body.so-polish-v1 .contact-grid .form.form select,
  html body.so-polish-v1 .contact-grid .form.form textarea,
  html body.so-polish-v1 .so-custom-form.so-custom-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  html body.so-polish-v1 .so-custom-form.so-custom-form select,
  html body.so-polish-v1 .so-custom-form.so-custom-form textarea,
  html body.so-polish-v1 .ins-form.ins-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  html body.so-polish-v1 .ins-form.ins-form select,
  html body.so-polish-v1 .ins-form.ins-form textarea{
    font-size:16px!important;
  }
}
/* v1.7.60b — select/textarea : les :not() des inputs leur donnaient
   la specificite manquante ; on double les classes pour select et
   textarea -> (0,5,3) */
@media (max-width:640px){
  html body.so-polish-v1 .contact-grid.contact-grid .form.form select,
  html body.so-polish-v1 .contact-grid.contact-grid .form.form textarea,
  html body.so-polish-v1 .so-custom-form.so-custom-form.so-custom-form select,
  html body.so-polish-v1 .so-custom-form.so-custom-form.so-custom-form textarea,
  html body.so-polish-v1 .ins-form.ins-form.ins-form select,
  html body.so-polish-v1 .ins-form.ins-form.ins-form textarea{
    font-size:16px!important;
  }
}
/* v1.7.61b — la regle Codex empile des :not() -> (0,6,2). On fait
   pareil : (0,8,3), fin de la course. */
@media (max-width:640px){
  html body.so-polish-v1 .contact-grid.contact-grid .form.form select:not([hidden]):not([disabled]):not([data-soskip]),
  html body.so-polish-v1 .contact-grid.contact-grid .form.form textarea:not([hidden]):not([disabled]):not([data-soskip]),
  html body.so-polish-v1 .so-custom-form.so-custom-form select:not([hidden]):not([disabled]):not([data-soskip]),
  html body.so-polish-v1 .so-custom-form.so-custom-form textarea:not([hidden]):not([disabled]):not([data-soskip]),
  html body.so-polish-v1 .ins-form.ins-form select:not([hidden]):not([disabled]):not([data-soskip]),
  html body.so-polish-v1 .ins-form.ins-form textarea:not([hidden]):not([disabled]):not([data-soskip]){
    font-size:16px!important;
  }
}

/* ------------------------------------------------------------
   v1.7.64 — Footer "reveal" (comme The7) : footer fixe SOUS le
   contenu (z-index -1) ; le main garde une marge basse egale a
   la hauteur du footer (variable JS --so-footer-h) et glisse
   par-dessus au scroll. Desktop uniquement (>=981px) : sur mobile
   le footer peut depasser l'ecran -> comportement normal.
   Liseré de separation : bande verte fine + motif or en bas du
   contenu (toutes tailles).
   ------------------------------------------------------------ */
html body main.site-main{
  position:relative;
  background-color:#fff;
}
html body main.site-main::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:7px;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2756%27%20height%3D%2756%27%20viewBox%3D%270%200%2056%2056%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.35%27%20stroke-width%3D%271%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%270%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2756%27%20cy%3D%2756%27%20r%3D%2728%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2728%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),linear-gradient(90deg,#4c0a5c,#3a0547);
  background-size:56px 56px,auto;
  background-repeat:repeat-x,no-repeat;
  z-index:3;
}
@media (min-width:981px){
  html body footer.site-footer,
  html body.so-polish-v1 footer.site-footer{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:-1;
    margin-top:0!important;
  }
  html body main.site-main{
    margin-bottom:var(--so-footer-h,500px)!important;
  }
}
/* v1.7.64b — la marge basse du main fusionnait (margin collapse) :
   le contenu recouvrait le footer et bloquait ses liens. On reserve
   la place avec un padding sur body (jamais fusionne). */
@media (min-width:981px){
  html body main.site-main{
    margin-bottom:0!important;
  }
  html body,
  html body.so-polish-v1{
    padding-bottom:var(--so-footer-h,500px)!important;
  }
}
/* v1.7.65b — liens du footer morts avec z-index:-1 (le body
   interceptait les clics). Schema The7 correct : footer fixe z:1
   (enfant de body -> au-dessus pour les clics), contenu z:2 qui
   glisse par-dessus. */
@media (min-width:981px){
  html body footer.site-footer,
  html body.so-polish-v1 footer.site-footer{
    z-index:1;
  }
  html body main.site-main{
    z-index:2;
  }
  html body header.nav{
    z-index:60;
  }
}

/* ------------------------------------------------------------
   v1.7.67 — Footer : motif reduit au minimum (tuiles 28px, traits
   0.7, opacite 6%) + effets de lumiere : halo blanc doux depuis
   le haut, lueur doree dans le coin bas droit. Liseré assorti.
   ------------------------------------------------------------ */
html body footer.site-footer,
html body.so-polish-v1 footer.site-footer{
  background-image:
    linear-gradient(180deg,rgba(20,22,25,.85) 0%,rgba(20,22,25,.25) 35%,rgba(24,26,30,0) 100%),
    radial-gradient(720px 300px at 50% -8%,rgba(255,255,255,.07),transparent 70%),
    radial-gradient(560px 300px at 88% 112%,rgba(176,77,201,.16),transparent 72%),
    radial-gradient(420px 240px at 4% 108%,rgba(176,77,201,.08),transparent 70%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2728%27%20height%3D%2728%27%20viewBox%3D%270%200%2028%2028%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.06%27%20stroke-width%3D%270.7%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%270%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2728%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2714%27%20cy%3D%2714%27%20r%3D%2714%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    linear-gradient(180deg,#17191d,#101214)!important;
  background-size:auto,auto,auto,auto,28px 28px,auto!important;
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,repeat,no-repeat!important;
}
html body main.site-main::after{
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2728%27%20height%3D%2728%27%20viewBox%3D%270%200%2028%2028%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.35%27%20stroke-width%3D%270.7%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%270%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2728%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2714%27%20cy%3D%2714%27%20r%3D%2714%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),linear-gradient(90deg,#4c0a5c,#3a0547);
  background-size:28px 28px,auto;
}

/* ------------------------------------------------------------
   v1.7.68 — 1) Lumieres du footer plus VASTES et visibles (halos
   etendus, intensites relevees). 2) Reveal generalise : actif des
   que le footer tient dans l'ecran (classe so-frv posee en JS),
   telephone compris ; sinon footer normal.
   ------------------------------------------------------------ */
html body footer.site-footer,
html body.so-polish-v1 footer.site-footer{
  background-image:
    radial-gradient(1300px 560px at 50% -18%,rgba(255,255,255,.13),transparent 68%),
    radial-gradient(950px 520px at 86% 122%,rgba(176,77,201,.30),transparent 70%),
    radial-gradient(700px 400px at 2% 112%,rgba(176,77,201,.15),transparent 70%),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2728%27%20height%3D%2728%27%20viewBox%3D%270%200%2028%2028%27%3E%3Cg%20fill%3D%27none%27%20stroke%3D%27%23C49E61%27%20stroke-opacity%3D%270.06%27%20stroke-width%3D%270.7%27%3E%3Ccircle%20cx%3D%270%27%20cy%3D%270%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%270%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%270%27%20cy%3D%2728%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2728%27%20cy%3D%2728%27%20r%3D%2714%27%2F%3E%3Ccircle%20cx%3D%2714%27%20cy%3D%2714%27%20r%3D%2714%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
    linear-gradient(180deg,#17191d,#0f1113)!important;
  background-size:auto,auto,auto,28px 28px,auto!important;
  background-repeat:no-repeat,no-repeat,no-repeat,repeat,no-repeat!important;
}
/* bascule pilotee par JS : on annule l'ancien mode media-query */
@media (min-width:981px){
  html:not(.so-frv) body footer.site-footer,
  html:not(.so-frv) body.so-polish-v1 footer.site-footer{
    position:static!important;
  }
  html:not(.so-frv) body,
  html:not(.so-frv) body.so-polish-v1{
    padding-bottom:0!important;
  }
}
html.so-frv body footer.site-footer,
html.so-frv body.so-polish-v1 footer.site-footer{
  position:fixed!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  z-index:1!important;
  margin-top:0!important;
}
html.so-frv body,
html.so-frv body.so-polish-v1{
  padding-bottom:var(--so-footer-h,500px)!important;
}
html.so-frv body main.site-main{
  position:relative;
  z-index:2;
  margin-bottom:0!important;
}

/* ------------------------------------------------------------
   v1.7.69 — Formulaire contact : il ne respirait pas (couche
   polish : 4 colonnes serrees, champs bas, tout tasse). Redesign :
   2 colonnes aerees, champs 52px fond creme, focus vert avec
   anneau, message ample, bouton genereux. Selecteurs surarmes
   (classes doublees + :not empiles) pour battre la couche polish.
   ------------------------------------------------------------ */
html .contact-grid .form.form{
  padding:40px 42px!important;
  border-radius:20px!important;
}
html .contact-grid .form.form>p{
  margin-bottom:26px!important;
}
html .contact-grid .form.form form{
  display:block!important;
}
html .contact-grid .form.form .row{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:20px 22px!important;
  margin:0 0 20px!important;
}
html .contact-grid .form.form label{
  display:block!important;
  margin:0 0 8px!important;
  font-size:.83rem!important;
  font-weight:700!important;
  color:#322036!important;
  letter-spacing:.01em!important;
}
html .contact-grid .form.form input:not([type=hidden]):not([type=checkbox]):not([type=radio]),
html .contact-grid .form.form select:not([hidden]):not([disabled]):not([data-soskip]){
  width:100%!important;
  height:52px!important;
  padding:0 16px!important;
  border:1px solid rgba(50,10,60,.16)!important;
  border-radius:12px!important;
  background:#fbf7fc!important;
  box-shadow:none!important;
  transition:border-color .16s,box-shadow .16s,background .16s!important;
}
html .contact-grid .form.form textarea:not([hidden]):not([disabled]):not([data-soskip]){
  width:100%!important;
  min-height:170px!important;
  padding:14px 16px!important;
  border:1px solid rgba(50,10,60,.16)!important;
  border-radius:12px!important;
  background:#fbf7fc!important;
  box-shadow:none!important;
  margin:0!important;
  transition:border-color .16s,box-shadow .16s,background .16s!important;
}
html .contact-grid .form.form input:not([type=hidden]):focus,
html .contact-grid .form.form select:not([data-soskip]):focus,
html .contact-grid .form.form textarea:not([data-soskip]):focus{
  outline:none!important;
  border-color:#4e0a5f!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(78,10,95,.12)!important;
}
html .contact-grid .form.form label[for="soc_message"]{
  margin-top:4px!important;
}
html .contact-grid .form.form button[type=submit]:not([hidden]):not([disabled]):not([data-soskip]){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:240px!important;
  margin:26px auto 0!important;
  padding:16px 40px!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#640e7a,#4e0a5f)!important;
  color:#fff!important;
  font-weight:800!important;
  font-size:.95rem!important;
  letter-spacing:.01em!important;
  border:0!important;
  box-shadow:0 14px 30px -10px rgba(78,10,95,.45),inset 0 1px 0 rgba(255,255,255,.22)!important;
  transition:transform .16s,box-shadow .16s!important;
}
html .contact-grid .form.form button[type=submit]:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 18px 36px -10px rgba(78,10,95,.55),inset 0 1px 0 rgba(255,255,255,.26)!important;
}
html .contact-grid .form.form form{
  text-align:center!important;
}
html .contact-grid .form.form form>div,
html .contact-grid .form.form .row,
html .contact-grid .form.form label,
html .contact-grid .form.form input,
html .contact-grid .form.form select,
html .contact-grid .form.form textarea{
  text-align:left!important;
}
@media (max-width:640px){
  html .contact-grid .form.form{
    padding:26px 20px!important;
  }
  html .contact-grid .form.form .row{
    grid-template-columns:1fr!important;
    gap:16px!important;
    margin:0 0 16px!important;
  }
  html .contact-grid .form.form button[type=submit]:not([hidden]):not([disabled]):not([data-soskip]){
    width:100%!important;
    min-width:0!important;
  }
}

/* ------------------------------------------------------------
   v1.7.70 — Formulaire d'inscription integre aux fiches formules
   (#inscription) : meme langage visuel que le formulaire contact.
   ------------------------------------------------------------ */
html body .page-forfait-omra .so-ins-card{
  padding:34px 36px;
  border:1px solid var(--sf-line,rgba(50,10,60,.14));
  border-radius:16px;
  background:#fff;
  box-shadow:0 14px 34px rgba(31,21,34,.06);
}
html body .page-forfait-omra .so-ins-lead{
  margin:0 0 6px;
  color:#4c3951;
}
html body .page-forfait-omra .so-ins-formule{
  margin:0 0 22px;
  font-size:.88rem;
  color:#4e0a5f;
}
html body .page-forfait-omra .so-ins-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 20px;
  margin:0 0 18px;
}
html body .page-forfait-omra .so-ins-row--3{
  grid-template-columns:2fr 1fr 1fr;
}
html body .page-forfait-omra .so-ins-card label{
  display:block;
  margin:0 0 7px;
  font-size:.82rem;
  font-weight:700;
  color:#322036;
}
html body .page-forfait-omra .so-ins-card input:not([type=hidden]):not([type=checkbox]):not([type=radio]),
html body .page-forfait-omra .so-ins-card select{
  width:100%;
  height:50px;
  padding:0 15px;
  border:1px solid rgba(50,10,60,.16);
  border-radius:12px;
  background:#fbf7fc;
  transition:border-color .16s,box-shadow .16s,background .16s;
}
html body .page-forfait-omra .so-ins-card textarea{
  width:100%;
  min-height:120px;
  padding:13px 15px;
  border:1px solid rgba(50,10,60,.16);
  border-radius:12px;
  background:#fbf7fc;
  transition:border-color .16s,box-shadow .16s,background .16s;
}
html body .page-forfait-omra .so-ins-card input:focus,
html body .page-forfait-omra .so-ins-card select:focus,
html body .page-forfait-omra .so-ins-card textarea:focus{
  outline:none;
  border-color:#4e0a5f;
  background:#fff;
  box-shadow:0 0 0 4px rgba(78,10,95,.12);
}
html body .page-forfait-omra .so-ins-card button[type=submit]{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:20px;
  padding:15px 34px;
  border-radius:999px;
  font-weight:800;
}
html body .page-forfait-omra .so-ins-notice{
  margin:0 0 18px;
  padding:.85rem 1rem;
  border-radius:12px;
  font-weight:600;
}
html body .page-forfait-omra .so-ins-notice--ok{
  background:#f1e7f4;
  border:1px solid rgba(88,10,107,.22);
  color:#580a6b;
}
html body .page-forfait-omra .so-ins-notice--err{
  background:#fdecea;
  border:1px solid #f5c6c2;
  color:#a3261f;
}
html body .page-forfait-omra .so-inscription{
  scroll-margin-top:120px;
}
@media (max-width:700px){
  html body .page-forfait-omra .so-ins-card{
    padding:22px 18px;
  }
  html body .page-forfait-omra .so-ins-row,
  html body .page-forfait-omra .so-ins-row--3{
    grid-template-columns:1fr;
    gap:14px;
    margin:0 0 14px;
  }
  html body .page-forfait-omra .so-ins-card button[type=submit]{
    width:100%;
    justify-content:center;
  }
}
/* v1.7.71 — inscription : tranches d'ages affichees, champ Bebes
   ajoute ; telephone sur sa ligne, voyageurs en 3 colonnes egales */
html body .page-forfait-omra .so-ins-row--phone{
  grid-template-columns:1fr;
}
html body .page-forfait-omra .so-ins-row--3{
  grid-template-columns:1fr 1fr 1fr;
}

/* ------------------------------------------------------------
   v1.7.72 — Fiches formules : partage (WhatsApp + copier le lien),
   bouton PDF programme (si champ rempli), section "Nos autres
   sejours Omra" (3 cartes). Avis d'exemple reactives sur la home
   (temporaire, en attente des vrais avis).
   ------------------------------------------------------------ */
html body .page-forfait-omra .so-share{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:16px;
  font-size:.8rem;
  color:#695a6d;
}
html body .page-forfait-omra .so-share a,
html body .page-forfait-omra .so-share button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 13px;
  border:1px solid rgba(50,10,60,.18);
  border-radius:999px;
  background:rgba(255,255,255,.85);
  color:#311538;
  font-size:.78rem;
  font-weight:700;
  cursor:pointer;
  transition:border-color .15s,background .15s;
}
html body .page-forfait-omra .so-share a:hover,
html body .page-forfait-omra .so-share button:hover{
  border-color:#4e0a5f;
  background:#fff;
}
html body .page-forfait-omra .so-share .icon{width:14px;height:14px}
html body .page-forfait-omra .so-related-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
@media (max-width:900px){
  html body .page-forfait-omra .so-related-grid{grid-template-columns:1fr}
}
/* v1.7.72b — "Nos autres sejours" : cartes etirees pleine largeur
   de la colonne, bouton Reserver retire (un seul CTA : Voir
   details, pleine largeur) */
html body .page-forfait-omra .so-related-grid .card{
  max-width:none!important;
  width:100%!important;
}
html body .page-forfait-omra .so-related-grid .card .actions{
  display:block!important;
}
html body .page-forfait-omra .so-related-grid .card .actions .btn-primary{
  display:none!important;
}
html body .page-forfait-omra .so-related-grid .card .actions .btn-outline{
  display:inline-flex!important;
  width:100%!important;
  justify-content:center!important;
}

/* ------------------------------------------------------------
   v1.7.74 — Sidebar fiche formule : sticky par le bas quand elle
   depasse la hauteur d'ecran (top negatif calcule via la variable
   JS), sticky haut classique sinon. Desktop uniquement.
   ------------------------------------------------------------ */
@media (min-width:981px){
  html body .page-forfait-omra .so-formule-sidebar{
    position:sticky!important;
    top:min(96px, calc(100vh - var(--so-side-h,900px)))!important;
    align-self:start!important;
  }
}
/* v1.7.74b — overflow:hidden du wrapper cassait TOUT sticky
   (une boite de defilement annule position:sticky des enfants).
   overflow-x:clip rogne pareil horizontalement SANS creer de
   scroll container -> le sticky revit. */
html body .page-forfait-omra{
  overflow:visible!important;
  overflow-x:clip!important;
}

/* ------------------------------------------------------------
   v1.7.76 — Statut synchronise sur TOUTES les cartes (meme meta
   _soc_statut partout) + note/avis generalises. Cartes COMPLETES :
   photo en noir et blanc, couleurs eteintes, tampon "COMPLET"
   incline sur l'image (texte via data-so-complet, donc traduit).
   ------------------------------------------------------------ */
html body .card.is-complet .media img{
  filter:grayscale(1) brightness(.97)!important;
}
html body .card.is-complet .media .badge,
html body .card.is-complet .media .badge-type,
html body .card.is-complet .media .badge-period,
html body .card.is-complet .media .badge-duree{
  filter:grayscale(1);
  opacity:.75;
}
html body .card.is-complet .body .amt,
html body .card.is-complet .body .price small,
html body .card.is-complet .body .price .per{
  color:#787f7c!important;
}
html body .card.is-complet .actions .btn-primary,
html body .card.is-complet .actions .btn-outline{
  background:#f0f1f0!important;
  border-color:#c9cecc!important;
  color:#5c6360!important;
  box-shadow:none!important;
}
html body .card.is-complet{
  border-color:rgba(0,0,0,.10)!important;
}
html body .card.is-complet .media{
  position:relative;
}
html body .card.is-complet .media::before{
  content:attr(data-so-complet);
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%) rotate(-12deg);
  padding:7px 22px;
  border:3px solid #b3261e;
  border-radius:10px;
  background:rgba(255,255,255,.85);
  color:#b3261e;
  font-size:1.05rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  white-space:nowrap;
  z-index:3;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}

/* ------------------------------------------------------------
   v1.7.77 — Retours cartes "Complet" + statut 3 etats :
   1) carte complete : TOUT en gris sauf la pastille rouge
   2) tampon COMPLET agrandi et centre geometriquement
   3) pastille ambre "Bientot disponible" (etat bientot gere
      partout, il ne faisait rien sur les cartes catalogue)
   4) fiche formule : badge d'etat en haut a droite du hero.
   ------------------------------------------------------------ */
/* 1 — gris integral (texte, icones, prix, date, note) */
html body .card.is-complet .body :is(h3,p,li,li span,small,b,.so-card-date,.loc,.rate,.rate b,.price,.amt,.old,.per,.feats li){
  color:#767d7a!important;
}
html body .card.is-complet .body .icon,
html body .card.is-complet .body svg{
  stroke:#979e9a!important;
  color:#979e9a!important;
}
html body .card.is-complet .body .price{
  background:#f2f3f2!important;
}
/* la pastille rouge reste la SEULE couleur (re-affirmee apres le gris) */
html body .card.is-complet .body .so-card-status.is-complet{
  background:#faecec!important;
  border-color:rgba(163,48,48,.16)!important;
  color:#a33030!important;
}
html body .card.is-complet .body .so-card-status.is-complet .icon,
html body .card.is-complet .body .so-card-status.is-complet svg{
  stroke:#a33030!important;
  color:#a33030!important;
}
/* 2 — tampon : centrage geometrique fiable + plus grand */
html body .card.is-complet .media::before{
  inset:0;
  top:0;
  left:0;
  margin:auto;
  width:max-content;
  height:max-content;
  transform:rotate(-12deg);
  font-size:1.35rem;
  padding:10px 28px;
  border-width:4px;
}
/* 3 — pastille ambre "bientot" */
html body .so-card-status.is-bientot{
  background:#f8e2fd;
  border:1px solid rgba(129,31,154,.22);
  color:#811f9a!important;
}
html body .so-card-status.is-bientot .icon{stroke:#9528b0}
/* 4 — badge d'etat du hero de fiche */
html body .page-forfait-omra .so-formule-statut{
  position:absolute;
  top:2px;
  right:28px;
  z-index:4;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 16px;
  border-radius:999px;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.02em;
  box-shadow:0 8px 22px rgba(31,21,34,.10);
}
html body .page-forfait-omra .so-formule-statut .icon{width:15px;height:15px}
html body .page-forfait-omra .so-formule-statut--ouvert{
  background:#f1e7f4;
  border:1px solid rgba(88,10,107,.22);
  color:#580a6b;
}
html body .page-forfait-omra .so-formule-statut--ouvert .icon{stroke:#700a8a}
html body .page-forfait-omra .so-formule-statut--bientot{
  background:#f8e2fd;
  border:1px solid rgba(129,31,154,.25);
  color:#811f9a;
}
html body .page-forfait-omra .so-formule-statut--bientot .icon{stroke:#9528b0}
html body .page-forfait-omra .so-formule-statut--complet{
  background:#faecec;
  border:1px solid rgba(163,48,48,.2);
  color:#a33030;
}
html body .page-forfait-omra .so-formule-statut--complet .icon{stroke:#a33030}
@media (max-width:760px){
  html body .page-forfait-omra .so-formule-statut{
    position:static;
    margin:0 0 14px;
  }
}

/* ------------------------------------------------------------
   v1.7.78 — "Nos autres sejours" en slider horizontal : piste
   defilante (8 formules), snap par carte, auto-scroll JS avec
   pause au survol. Cartes a largeur fixe (~3 visibles).
   ------------------------------------------------------------ */
html body .page-forfait-omra .so-related-grid{
  display:flex!important;
  grid-template-columns:none!important;
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  padding:4px 4px 12px;
  scrollbar-width:thin;
  scrollbar-color:rgba(78,10,95,.35) transparent;
  -webkit-overflow-scrolling:touch;
}
html body .page-forfait-omra .so-related-grid .card{
  flex:0 0 299px!important;
  width:299px!important;
  max-width:299px!important;
  scroll-snap-align:start;
}
@media (max-width:640px){
  html body .page-forfait-omra .so-related-grid .card{
    flex:0 0 84vw!important;
    width:84vw!important;
    max-width:84vw!important;
  }
}
/* v1.7.80 — tampon COMPLET : bascule sur ::before (sur /omra/ le
   ::after du media est un degrade photo plus specifique qui
   ecrasait content -> petit rectangle vide). Boost page-id-6. */
html .so-omra-page .so-omra-page .so-offer-card.is-complet .media::before{
  content:attr(data-so-complet);
  position:absolute;
  inset:0;
  margin:auto;
  width:max-content;
  height:max-content;
  transform:rotate(-12deg);
  padding:10px 28px;
  border:4px solid #b3261e;
  border-radius:10px;
  background:rgba(255,255,255,.85);
  color:#b3261e;
  font-size:1.35rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  white-space:nowrap;
  z-index:3;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}

/* ------------------------------------------------------------
   v1.7.82 — Slider "autres sejours" : barres de defilement
   masquees (H et V), 3 cartes ENTIERES visibles (272px, plus de
   carte coupee), mini-fleches rondes a droite du titre.
   ------------------------------------------------------------ */
html body .page-forfait-omra .so-related-grid{
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none!important;
  -ms-overflow-style:none;
  padding:6px 2px 6px;
}
html body .page-forfait-omra .so-related-grid::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}
html body .page-forfait-omra .so-related-grid .card{
  flex:0 0 272px!important;
  width:272px!important;
  max-width:272px!important;
}
html body .page-forfait-omra .so-related-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 22px;
}
html body .page-forfait-omra .so-related-head h2{
  margin:0!important;
}
html body .page-forfait-omra .so-related-nav{
  display:flex;
  gap:8px;
}
html body .page-forfait-omra .so-related-nav button{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(50,10,60,.2);
  border-radius:50%;
  background:#fff;
  color:#4e0a5f;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(31,21,34,.08);
  transition:background .15s,border-color .15s,transform .15s;
}
html body .page-forfait-omra .so-related-nav button:hover{
  background:#4e0a5f;
  border-color:#4e0a5f;
  color:#fff;
  transform:translateY(-1px);
}
html body .page-forfait-omra .so-related-nav button .icon{
  width:15px;
  height:15px;
  stroke:currentColor;
}
@media (max-width:640px){
  html body .page-forfait-omra .so-related-grid .card{
    flex:0 0 82vw!important;
    width:82vw!important;
    max-width:82vw!important;
  }
}

/* ------------------------------------------------------------
   v1.7.83 — Fiches formules : la regle globale section{padding:
   80px 0} (sections home) gonflait chaque section de fiche de
   160px inutiles. Padding neutralise, l'espacement est porte par
   le margin-top (60px) uniquement.
   ------------------------------------------------------------ */
html body .page-forfait-omra .so-formule-section{
  padding-top:0!important;
  padding-bottom:0!important;
}

/* ------------------------------------------------------------
   v1.7.84 — Lightbox photos d'hotels : surimpression interne
   (fini l'ouverture du fichier dans un nouvel onglet).
   ------------------------------------------------------------ */
.so-lb{
  position:fixed;
  inset:0;
  z-index:100001;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(18,4,22,.93);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}
.so-lb.is-open{display:flex}
.so-lb figure{
  margin:0;
  max-width:88vw;
  max-height:84vh;
  text-align:center;
}
.so-lb img{
  max-width:88vw;
  max-height:78vh;
  border-radius:12px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);
}
.so-lb figcaption{
  margin-top:12px;
  color:rgba(255,255,255,.85);
  font-size:.9rem;
  font-weight:600;
}
.so-lb button{
  position:fixed;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:1.7rem;
  line-height:1;
  cursor:pointer;
  transition:background .15s;
}
.so-lb button:hover{background:rgba(255,255,255,.2)}
.so-lb .so-lb-close{top:18px;right:18px}
.so-lb .so-lb-prev{left:18px;top:50%;transform:translateY(-50%)}
.so-lb .so-lb-next{right:18px;top:50%;transform:translateY(-50%)}
.so-lb .so-lb-count{
  position:fixed;
  bottom:16px;
  left:50%;
  transform:translateX(-50%);
  color:rgba(255,255,255,.7);
  font-size:.82rem;
  letter-spacing:.08em;
}
@media (max-width:640px){
  .so-lb .so-lb-prev{left:8px}
  .so-lb .so-lb-next{right:8px}
  .so-lb img{max-width:96vw}
}

/* ------------------------------------------------------------
   v1.7.86 — Prix de la sidebar (tarifs par chambre) : l'or sur
   blanc manquait de force. Vert charte fonce, comme les prix des
   cartes du catalogue — coherent et bien plus lisible. Le lien
   "Voir prix chambre single" suit.
   ------------------------------------------------------------ */
html body .page-forfait-omra .so-price-lines strong,
html body .page-forfait-omra .so-single-price strong{
  color:#4e0a5f!important;
}
html body .page-forfait-omra .so-price-single-toggle,
html body .page-forfait-omra .so-price-single-toggle span{
  color:#4e0a5f!important;
}

/* ------------------------------------------------------------
   v1.7.87 — Essai : retour des petites icones devant les liens
   du menu (masque SVG rempli avec la couleur du lien, donc vert
   fonce sur le header blanc, vert charte au survol/actif).
   ------------------------------------------------------------ */
html body header.nav nav.menu>.menu-list>li>a.menu-link::before,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link::before{
  content:""!important;
  display:inline-block!important;
  width:15px!important;
  height:15px!important;
  flex:0 0 auto!important;
  background:currentColor!important;
  -webkit-mask:var(--so-menu-icon,var(--so-menu-default)) center/contain no-repeat!important;
  mask:var(--so-menu-icon,var(--so-menu-default)) center/contain no-repeat!important;
  position:static!important;
  border-radius:0!important;
  box-shadow:none!important;
  opacity:.9!important;
}
/* v1.7.87b — place pour les icones : liens et separateurs compactes */
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link{
  padding:8px 8px!important;
  gap:5px!important;
  font-size:.85rem!important;
}
html body header.nav nav.menu>.menu-list>li+li::before,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li+li::before{
  margin:0 3px!important;
}
/* v1.7.88b — ajustement final : tout tient avec les icones */
html body header.nav nav.menu>.menu-list>li>a.menu-link,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link{
  padding:8px 7px!important;
  font-size:.84rem!important;
}
html body header.nav nav.menu>.menu-list>li>a.menu-link::before,
html body.so-polish-v1 header.nav nav.menu>.menu-list>li>a.menu-link::before{
  width:14px!important;
  height:14px!important;
}

/* ------------------------------------------------------------
   v1.7.93 — Carte d'embarquement (section Vols des fiches) :
   talon compagnie a gauche avec perforation, corps avec en-tete
   vert, deux segments (aller/retour) dates + trajet + horaires
   saisis en admin, pied bagages.
   ------------------------------------------------------------ */
html body .page-forfait-omra .so-bpass{
  display:flex;
  border:1px solid var(--sf-line,rgba(50,10,60,.14));
  border-radius:14px;
  background:#fff;
  box-shadow:0 14px 34px rgba(31,21,34,.07);
  overflow:hidden;
  margin-bottom:16px;
}
html body .page-forfait-omra .so-bpass-stub{
  flex:0 0 110px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:18px 10px;
  background:#fbf7fc;
  border-right:2px dashed rgba(50,10,60,.22);
  position:relative;
}
html body .page-forfait-omra .so-bpass-stub::before,
html body .page-forfait-omra .so-bpass-stub::after{
  content:"";
  position:absolute;
  right:-9px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--sf-bg,#f6eff8);
  border:1px solid var(--sf-line,rgba(50,10,60,.14));
}
html body .page-forfait-omra .so-bpass-stub::before{top:-9px}
html body .page-forfait-omra .so-bpass-stub::after{bottom:-9px}
html body .page-forfait-omra .so-bpass-stub img{
  max-width:86px;
  max-height:52px;
  object-fit:contain;
}
html body .page-forfait-omra .so-bpass-stub .icon{width:30px;height:30px;color:#4e0a5f}
html body .page-forfait-omra .so-bpass-stub span{
  font-size:.72rem;
  font-weight:800;
  color:#4e0a5f;
  text-align:center;
  letter-spacing:.04em;
  text-transform:uppercase;
}
html body .page-forfait-omra .so-bpass-main{
  flex:1;
  min-width:0;
  padding:16px 22px 14px;
}
html body .page-forfait-omra .so-bpass-head{
  color:#700a8a;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:12px;
}
html body .page-forfait-omra .so-bpass-leg{
  display:grid;
  grid-template-columns:minmax(150px,220px) 1fr;
  gap:8px 24px;
  align-items:center;
  padding:11px 0;
  border-top:1px solid rgba(50,10,60,.09);
}
html body .page-forfait-omra .so-bpass-lab small{
  display:block;
  color:#877b8a;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
html body .page-forfait-omra .so-bpass-lab b{
  color:#311538;
  font-size:.94rem;
  text-transform:capitalize;
}
html body .page-forfait-omra .so-bpass-route{
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:800;
  color:#4e0a5f;
  font-size:.92rem;
}
html body .page-forfait-omra .so-bpass-route i{
  display:inline-flex;
  color:#b061c4;
}
html body .page-forfait-omra .so-bpass-route .icon{width:17px;height:17px}
html body .page-forfait-omra .so-bpass-info{
  grid-column:1 / -1;
  margin:0;
  color:#675a6a;
  font-size:.84rem;
}
html body .page-forfait-omra .so-bpass-foot{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
  padding-top:10px;
  border-top:1px dashed rgba(50,10,60,.18);
  color:#675a6a;
  font-size:.82rem;
}
html body .page-forfait-omra .so-bpass-foot .icon{width:15px;height:15px;color:#4e0a5f}
@media (max-width:640px){
  html body .page-forfait-omra .so-bpass{flex-direction:column}
  html body .page-forfait-omra .so-bpass-stub{
    flex-direction:row;
    border-right:0;
    border-bottom:2px dashed rgba(50,10,60,.22);
  }
  html body .page-forfait-omra .so-bpass-stub::before,
  html body .page-forfait-omra .so-bpass-stub::after{display:none}
  html body .page-forfait-omra .so-bpass-leg{grid-template-columns:1fr}
}
/* v1.7.93b — la carte d'embarquement prend toute la largeur ; la
   carte Transferts passe dessous (la grille 2 colonnes la coincait) */
html body .page-forfait-omra .so-transport{
  display:block!important;
  grid-template-columns:none!important;
}
html body .page-forfait-omra .so-transport .so-info-card{
  margin-top:16px;
}
/* v1.7.96 — lien "Flyer (image)" dans la rangee partage */
html body .page-forfait-omra .so-share .so-share-flyer{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 13px;
  border:1px solid rgba(50,10,60,.18);
  border-radius:999px;
  background:rgba(255,255,255,.85);
  color:#311538;
  font-size:.78rem;
  font-weight:700;
  transition:border-color .15s,background .15s;
}
html body .page-forfait-omra .so-share .so-share-flyer:hover{border-color:#4e0a5f;background:#fff}

/* ------------------------------------------------------------
   v1.7.97 — Retours client :
   1) langue FR/EN dans le menu mobile (le switch topbar est
      invisible sur telephone)
   3) formules de l'accueil en slider auto (8 cartes, fleches)
   5) prix "En cours de confirmation" (Ramadan) : taille adaptee
   ------------------------------------------------------------ */
/* 1 — switch langue menu mobile */
html body .mobile-menu .mobile-lang{
  display:flex;
  justify-content:center;
  padding:16px;
  border-top:1px solid rgba(50,10,60,.12);
  background:#faf6fb;
}
html body .mobile-menu .mobile-lang .soc-lang-switch{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:1.05rem;
  font-weight:800;
}
html body .mobile-menu .mobile-lang .soc-lang-switch a{
  color:#5d4563;
  padding:8px 18px;
  border:1px solid rgba(50,10,60,.16);
  border-radius:999px;
}
html body .mobile-menu .mobile-lang .soc-lang-switch a.active{
  background:#4e0a5f;
  border-color:#4e0a5f;
  color:#fff;
}
/* 3 — slider accueil */
html body .so-hslide{
  position:relative;
}
html body .so-hslide-track{
  display:flex!important;
  grid-template-columns:none!important;
  gap:22px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x proximity;
  padding:6px 4px 14px;
  scrollbar-width:none!important;
  -ms-overflow-style:none;
}
html body .so-hslide-track::-webkit-scrollbar{display:none;width:0;height:0}
html body .so-hslide-track .card{
  flex:0 0 340px!important;
  width:340px!important;
  max-width:340px!important;
  scroll-snap-align:start;
}
html body .so-hslide .so-hs-prev,
html body .so-hslide .so-hs-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(50,10,60,.2);
  border-radius:50%;
  background:#fff;
  color:#4e0a5f;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(31,21,34,.14);
  transition:background .15s,color .15s;
}
html body .so-hslide .so-hs-prev{left:-16px}
html body .so-hslide .so-hs-next{right:-16px}
html body .so-hslide .so-hs-prev:hover,
html body .so-hslide .so-hs-next:hover{background:#4e0a5f;color:#fff;border-color:#4e0a5f}
html body .so-hslide .so-hs-prev .icon,
html body .so-hslide .so-hs-next .icon{width:16px;height:16px;stroke:currentColor}
@media (max-width:640px){
  html body .so-hslide-track .card{
    flex:0 0 82vw!important;
    width:82vw!important;
    max-width:82vw!important;
  }
  html body .so-hslide .so-hs-prev{left:4px}
  html body .so-hslide .so-hs-next{right:4px}
}
/* 5 — libelle "En cours de confirmation" */
html body .card .amt--tbc{
  font-size:1rem!important;
  color:#811f9a!important;
  font-weight:800!important;
}
html body .page-forfait-omra .so-price-tbc{
  font-size:1.4rem!important;
  color:#811f9a!important;
}

/* ------------------------------------------------------------
   v1.7.98 — Filtres du catalogue sur mobile : fini le bloc qui
   se replie en pseudo-colonnes. Une seule rangee de pastilles
   defilante horizontalement (tient 6 comme 16 filtres), sans
   barre de defilement, avec accroche par pastille.
   ------------------------------------------------------------ */
@media (max-width:760px){
  html .so-omra-page .so-omra-filters,
  html body .so-omra-filters{
    display:flex!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    gap:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none!important;
    -ms-overflow-style:none;
    padding:8px!important;
    border-radius:14px!important;
  }
  html .so-omra-page .so-omra-filters::-webkit-scrollbar,
  html body .so-omra-filters::-webkit-scrollbar{
    display:none;
    width:0;
    height:0;
  }
  html .so-omra-page .so-omra-filters .chip,
  html body .so-omra-filters .chip{
    flex:0 0 auto!important;
    width:auto!important;
    white-space:nowrap!important;
    scroll-snap-align:start;
    border-right:0!important;
    border-left:0!important;
    box-shadow:none!important;
  }
}
/* v1.7.98b — affordance de defilement des filtres mobile : voile
   degrade + chevron pulsant sur le bord droit, disparait des que
   l'utilisateur a fait defiler. */
html body .so-filters-shell{position:relative}
@media (max-width:760px){
  html body .so-filters-shell::after{
    content:"";
    position:absolute;
    top:2px;
    right:0;
    bottom:2px;
    width:64px;
    pointer-events:none;
    border-radius:0 14px 14px 0;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a5f49' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") right 10px center/20px 20px no-repeat,
      linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.95) 70%);
    animation:so-filter-hint 1.6s ease-in-out infinite;
    opacity:1;
    transition:opacity .3s;
  }
  html body .so-filters-shell.is-scrolled::after{
    opacity:0;
    animation:none;
  }
}
@keyframes so-filter-hint{
  0%,100%{background-position:right 12px center,0 0}
  50%{background-position:right 6px center,0 0}
}
/* v1.7.99b — fleches REELLES sur la rangee de filtres mobile
   (l'indice passif ne suffisait pas). Le chevron decoratif du
   voile est retire, le degrade reste. */
html body .so-f-prev,
html body .so-f-next{
  display:none;
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:6;
  width:36px;
  height:36px;
  place-items:center;
  padding:0;
  border:1px solid rgba(50,10,60,.25);
  border-radius:50%;
  background:#4e0a5f;
  color:#fff;
  cursor:pointer;
  box-shadow:0 6px 16px rgba(31,21,34,.25);
}
html body .so-f-prev .icon,
html body .so-f-next .icon{width:15px;height:15px;stroke:#fff}
@media (max-width:760px){
  html body .so-f-prev{display:grid;left:-6px}
  html body .so-f-next{display:grid;right:-6px}
  html body .so-filters-shell::after{
    background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.95) 70%);
    animation:none;
  }
}
/* v1.8.0b — filtres : fleches au-dessus de tout (z-index fort) +
   separateur "|" entre les pastilles (comme le menu) */
html body .so-f-prev,
html body .so-f-next{
  z-index:60!important;
}
html body .so-omra-filters .chip{
  position:relative;
}
html body .so-omra-filters .chip + .chip::before{
  content:"|";
  position:absolute;
  left:-7px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(50,10,60,.25);
  font-size:.8rem;
  font-weight:400;
  pointer-events:none;
}

/* ------------------------------------------------------------
   v1.8.2 — Page Omra sur mesure : mise en page soignee.
   Puces de la carte laterale (le point or 8px etait colle au
   texte), boutons d'etapes qui peuvent replier, "Precedent"
   masque quand inactif, respirations des cartes.
   ------------------------------------------------------------ */
html body .so-custom-side li,
html body.so-polish-v1 .so-custom-side li{
  position:relative!important;
  padding-left:20px!important;
  margin:9px 0!important;
  line-height:1.5!important;
}
html body .so-custom-side li::before,
html body.so-polish-v1 .so-custom-side li::before{
  left:2px!important;
  top:.55em!important;
}
html body .so-custom-form .so-step-tabs,
html body.so-polish-v1 .so-custom-form .so-step-tabs{
  flex-wrap:wrap!important;
  gap:8px!important;
}
html body .so-custom-form .so-step-prev:disabled,
html body.so-polish-v1 .so-custom-form .so-step-prev:disabled{
  visibility:hidden!important;
}
html body .so-custom-side > div + div,
html body.so-polish-v1 .so-custom-side > div + div{
  margin-top:18px!important;
}

/* ------------------------------------------------------------
   v1.8.3 — Slider accueil retravaille :
   - snap desactive (il se battait avec l'animation -> saccades)
   - 3 cartes EXACTES par vue (largeur calculee, plus de carte
     coupee ni de vide) ; 2 cartes en tablette, 1 en mobile
   - fleches dans des goutieres reservees (ne couvrent plus les
     cartes). Meme traitement pour le slider des fiches.
   ------------------------------------------------------------ */
html body .so-hslide{
  padding:0 46px;
}
html body .so-hslide-track{
  scroll-snap-type:none!important;
  gap:22px;
}
html body .so-hslide-track .card{
  flex:0 0 calc((100% - 44px)/3)!important;
  width:auto!important;
  max-width:none!important;
  scroll-snap-align:none;
}
html body .so-hslide .so-hs-prev{left:0}
html body .so-hslide .so-hs-next{right:0}
@media (max-width:1000px) and (min-width:641px){
  html body .so-hslide-track .card{
    flex:0 0 calc((100% - 22px)/2)!important;
  }
}
@media (max-width:640px){
  html body .so-hslide{padding:0 34px}
  html body .so-hslide-track .card{
    flex:0 0 100%!important;
    width:auto!important;
    max-width:none!important;
  }
}
/* fiche : snap coupe aussi (memes saccades) */
html body .page-forfait-omra .so-related-grid{
  scroll-snap-type:none!important;
}
/* v1.8.5 — telephone specifique de fiche (ex. bureau USA sur les
   annonces Chicago), sous le bouton WhatsApp de la carte tarifs */
html body .page-forfait-omra .so-side-phone{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:10px;
  font-weight:800;
  color:#4e0a5f;
  font-size:.95rem;
}
html body .page-forfait-omra .so-side-phone .icon{width:15px;height:15px;stroke:#4e0a5f}
/* v1.8.6 — cartes hotels : hauteur VERROUILLEE quelles que soient les
   dimensions des photos envoyees (portrait, tres grande...). L'image se
   recadre (object-fit:cover deja en place) au lieu d'etirer la carte. */
html body .page-forfait-omra .so-hotel-main-photo a{
  height:220px;
  min-height:0;
}
html body .page-forfait-omra .so-hotel-gallery{
  grid-template-rows:repeat(2,106px);
  grid-auto-rows:0;
  overflow:hidden;
}
@media (max-width:760px){
  html body .page-forfait-omra .so-hotel-main-photo a{
    height:200px;
  }
  html body .page-forfait-omra .so-hotel-gallery{
    grid-template-rows:76px;
    grid-auto-rows:0;
  }
}
