/* Sit&Way - page eSIM (esim.php). Mobile d'abord. Charte : vert #14312E, or #E6CF9C, terracotta #C25E3C, crème #FBF7F1, Lora + DM Sans. */
.es, .es-feuille, .es-colle { --vert:#14312E; --vert2:#1E4540; --or:#E6CF9C; --or-f:#8A6A2E; --terre:#C25E3C; --creme:#FBF7F1; --carte:#fff; --sable:#F4EFE7;
  --doux:#62736F; --pale:#8A9A97; --ligne:rgba(20,49,46,.10); --serif:'Lora',Georgia,'Times New Roman',serif; --sans:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif; }
body:has(.es) { background:#FBF7F1; }
.es { position:relative; z-index:1; color:var(--vert); font-family:var(--sans); font-size:15px; line-height:1.45; }
.es *, .es-feuille *, .es-colle * { box-sizing:border-box; }
.es [hidden], .es-feuille[hidden] { display:none !important; }
.es button, .es-feuille button { font:inherit; color:inherit; }
.es :focus-visible, .es-feuille :focus-visible, .es-colle :focus-visible { outline:2px solid var(--terre); outline-offset:2px; border-radius:10px; }
.es-gut { padding-left:max(18px,env(safe-area-inset-left,0px)); padding-right:max(18px,env(safe-area-inset-right,0px)); }

/* Pictogrammes de fond */
.es-fond { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.es-fond svg { position:absolute; color:#14312E; opacity:.055; will-change:transform; }

/* Héros : photo du pays */
.es-hero { position:relative; min-height:430px; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; isolation:isolate;
  background:radial-gradient(120% 80% at 85% 0%, rgba(230,207,156,.22), transparent 60%), linear-gradient(160deg,#1E4540,#14312E 60%); }
.es-hero::before { content:""; position:absolute; inset:-20px; z-index:-3; background:var(--mini,none) center 40%/cover no-repeat; filter:blur(14px); }
.es-hero-img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center 40%; z-index:-2; opacity:0; transition:opacity .35s ease; }
.es-hero-img.vu { opacity:1; }
.es-hero.photo::after, .es-hero:has(.es-hero-img)::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(20,49,46,.05) 0%,rgba(20,49,46,.3) 40%,rgba(20,49,46,.94) 100%); }
.es-hero.vide { min-height:400px; }
.es-hero-in { max-width:1080px; width:100%; margin:0 auto; padding-block:28px 30px; padding-left:max(18px,env(safe-area-inset-left,0px)); padding-right:max(18px,env(safe-area-inset-right,0px)); display:grid; gap:14px; }
.es-sur { font-size:11px; letter-spacing:.24em; text-transform:uppercase; font-weight:700; color:var(--or); display:flex; align-items:center; gap:8px; }
.es-sur i { width:18px; height:1px; background:currentColor; display:block; }
.es-pays { font:500 clamp(44px,13vw,84px)/.95 var(--serif); letter-spacing:-.02em; margin:0; color:#fff; text-wrap:balance; text-shadow:0 2px 24px rgba(0,0,0,.18); }
.es-pays em { font-style:italic; color:var(--or); }
.es-accroche { font-size:15.5px; color:rgba(255,255,255,.9); margin:0; display:flex; gap:8px 16px; flex-wrap:wrap; }
.es-accroche span { display:inline-flex; align-items:center; gap:6px; }
.es-accroche svg { color:var(--or); }
.es-dest { display:flex; align-items:center; gap:10px; width:100%; max-width:520px; border:0; text-align:left; cursor:pointer; background:rgba(255,255,255,.97); color:var(--vert) !important; border-radius:16px; padding:7px 7px 7px 14px; box-shadow:0 20px 40px -24px rgba(0,0,0,.6); }
.es-dr { width:28px; height:20px; border-radius:4px; overflow:hidden; flex:none; display:grid; place-items:center; box-shadow:0 0 0 1px rgba(0,0,0,.08); color:var(--vert); }
.es-dr img { width:100%; height:100%; object-fit:cover; display:block; }
.es-dr-l { box-shadow:none; }
.es-nm { flex:1; min-width:0; font-weight:700; font-size:15.5px; line-height:1.25; }
.es-nm small { display:block; font-weight:500; font-size:11.5px; color:var(--doux); }
.es-ph { color:var(--doux); font-weight:600; }
.es-chg { background:var(--vert); color:#fff; border-radius:12px; padding:11px 14px; font-weight:700; font-size:13px; flex:none; }
.es-pop { display:flex; gap:8px; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
.es-pop::-webkit-scrollbar { display:none; }
.es-pop a { flex:none; display:inline-flex; align-items:center; gap:7px; padding:8px 12px; border-radius:999px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); color:#fff; text-decoration:none; font-size:13px; font-weight:600; }
.es-pop img { border-radius:2px; }

/* Avantage membre */
.es-bandeau { max-width:1080px; margin:-16px auto 0; padding-left:max(18px,env(safe-area-inset-left,0px)); padding-right:max(18px,env(safe-area-inset-right,0px)); position:relative; z-index:2; }
.es-mb { display:flex; align-items:center; gap:12px; background:var(--carte); border-radius:16px; padding:10px 10px 10px 14px; box-shadow:0 14px 30px -24px rgba(20,49,46,.6),0 0 0 1px var(--ligne); }
.es-mb-ic { width:36px; height:36px; border-radius:10px; background:#FBF3E2; color:var(--or-f); display:grid; place-items:center; flex:none; }
.es-mb-t { flex:1; min-width:0; font-size:13px; line-height:1.3; }
.es-mb-t b { display:block; font-size:14.5px; }
.es-mb-t span { color:var(--doux); }
.es-code { border:1.5px dashed var(--terre); background:#FFF9F6; border-radius:11px; padding:8px 10px; font-weight:800; letter-spacing:.08em; font-size:13.5px; cursor:pointer; display:flex; align-items:center; gap:8px; white-space:nowrap; color:var(--vert); }
.es-code em { font-style:normal; font-size:11px; letter-spacing:0; font-weight:700; color:#fff; background:var(--terre); padding:3px 7px; border-radius:7px; }
.es-lien { color:var(--terre) !important; font-weight:700; font-size:13px; text-decoration:none; white-space:nowrap; }

/* Sections */
.es-cols { max-width:1080px; margin:0 auto; }
.es-sec { padding-block:30px 0; padding-left:max(18px,env(safe-area-inset-left,0px)); padding-right:max(18px,env(safe-area-inset-right,0px)); }
.es-cols .es-sec { padding-left:max(18px,env(safe-area-inset-left,0px)); padding-right:max(18px,env(safe-area-inset-right,0px)); }
.es-h2 { font:500 24px/1.15 var(--serif); margin:6px 0 14px; color:var(--vert); text-wrap:balance; }
.es-k { font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--terre); }

/* Usage */
.es-usages { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.es-us { border:0; background:var(--carte); border-radius:18px; padding:14px 8px 12px; cursor:pointer; display:grid; justify-items:center; gap:6px; text-align:center; box-shadow:0 0 0 1px var(--ligne); transition:transform .15s,background .15s,box-shadow .15s; }
.es-us svg { color:var(--vert); }
.es-us b { font-size:13.5px; line-height:1.15; }
.es-us small { font-size:11.5px; color:var(--doux); font-variant-numeric:tabular-nums; }
.es-us[aria-pressed="true"] { background:var(--vert); color:#fff; box-shadow:0 14px 26px -18px rgba(20,49,46,.9); }
.es-us[aria-pressed="true"] svg { color:var(--or); }
.es-us[aria-pressed="true"] small { color:rgba(255,255,255,.7); }
.es-us:active { transform:scale(.97); }

/* Notre choix */
.es-choix { position:relative; margin-top:16px; border-radius:24px; overflow:hidden; background:var(--vert); color:#fff; box-shadow:0 30px 50px -34px rgba(20,49,46,.9); scroll-margin-top:90px; }
.es-choix::before { content:""; position:absolute; right:-60px; top:-80px; width:260px; height:260px; border-radius:50%; background:radial-gradient(circle,rgba(230,207,156,.22),transparent 65%); }
.es-ch-in { position:relative; padding:20px 18px 18px; display:grid; gap:14px; }
.es-rub { display:inline-flex; align-items:center; gap:6px; justify-self:start; background:var(--or); color:var(--vert); font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:5px 10px; border-radius:999px; }
.es-gros { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.es-go { font:500 64px/.9 var(--serif); letter-spacing:-.02em; }
.es-go small { font:600 15px var(--sans); color:rgba(255,255,255,.7); margin-left:6px; letter-spacing:0; }
.es-prix { text-align:right; }
.es-prix s { display:block; font-size:13px; color:rgba(255,255,255,.55); }
.es-prix strong { font:500 36px/1 var(--serif); font-variant-numeric:tabular-nums; }
.es-puces { display:flex; gap:8px; flex-wrap:wrap; }
.es-puce { display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:6px 10px; font-size:12.5px; }
.es-puce svg { color:var(--or); }
.es-puce.or { background:rgba(230,207,156,.16); border-color:rgba(230,207,156,.4); color:var(--or); font-weight:700; }
.es-cta { display:flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius:14px; padding:15px; background:var(--or); color:var(--vert) !important; font-weight:800; font-size:15.5px; cursor:pointer; text-decoration:none; font-family:var(--sans); }
.es-cta:hover { background:#DDBF84; }
.es-preuve { font-size:12px; color:rgba(255,255,255,.62); display:flex; gap:6px; align-items:center; justify-content:center; text-align:center; }

/* Liste */
.es-sources { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--doux); margin:2px 0 10px; }
.es-liste { display:grid; gap:8px; }
.es-ligne { display:grid; grid-template-columns:76px minmax(0,1fr) auto; align-items:center; gap:12px; background:var(--carte); border:0; border-radius:16px; padding:12px 14px; box-shadow:0 0 0 1px var(--ligne); cursor:pointer; text-align:left; width:100%; }
.es-ligne[aria-pressed="true"] { box-shadow:0 0 0 2px var(--terre); }
.es-lg b { display:block; font:500 22px/1 var(--serif); }
.es-lg small { font-size:11.5px; color:var(--doux); }
.es-barre { display:grid; gap:5px; min-width:0; }
.es-barre i { display:block; height:6px; border-radius:4px; background:var(--sable); overflow:hidden; }
.es-barre i b { display:block; height:100%; border-radius:4px; background:#2C5B54; }
.es-ligne.meilleur .es-barre i b { background:var(--terre); }
.es-barre small { font-size:11.5px; color:var(--doux); font-variant-numeric:tabular-nums; }
.es-barre small strong { color:var(--vert); }
.es-tag { display:block; font-size:9.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--terre); line-height:1; }
.es-tag.v { color:var(--vert); }
.es-lp { text-align:right; font-variant-numeric:tabular-nums; }
.es-lp b { display:block; font:600 17px var(--sans); }
.es-lp s { font-size:11.5px; color:var(--pale); }
.es-lp small { display:block; font-size:10.5px; color:var(--or-f); font-weight:700; white-space:nowrap; }

/* Étapes */
.es-etapes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; position:relative; }
.es-etapes::before { content:""; position:absolute; left:16%; right:16%; top:29px; border-top:1.5px dashed rgba(20,49,46,.18); }
.es-et { display:grid; justify-items:center; gap:8px; text-align:center; position:relative; }
.es-rond { width:58px; height:58px; border-radius:50%; background:var(--carte); box-shadow:0 0 0 1px var(--ligne); display:grid; place-items:center; color:var(--terre); position:relative; z-index:1; }
.es-et b { font-size:13px; line-height:1.2; }
.es-et small { font-size:11.5px; color:var(--doux); line-height:1.3; }
.es-compat { margin-top:18px; background:var(--carte); border-radius:16px; box-shadow:0 0 0 1px var(--ligne); }
.es-compat summary { list-style:none; display:flex; align-items:center; gap:10px; padding:14px; cursor:pointer; font-weight:700; font-size:14px; }
.es-compat summary::-webkit-details-marker { display:none; }
.es-compat summary svg { color:var(--vert); flex:none; }
.es-compat summary i { margin-left:auto; font-style:normal; color:var(--pale); transition:transform .2s; }
.es-compat[open] summary i { transform:rotate(90deg); }
.es-c { padding:0 14px 14px 46px; font-size:13px; color:var(--doux); display:grid; gap:6px; }
.es-c code { font-weight:700; color:var(--vert); background:var(--sable); padding:1px 6px; border-radius:6px; font-family:var(--sans); }
.es-mention { font-size:11.5px; color:var(--pale); max-width:70ch; margin:22px 0 0; }
.es-vide { display:grid; justify-items:center; gap:6px; text-align:center; padding:36px 10px; color:var(--doux); }
.es-vide svg { color:var(--terre); }
.es-vide b { font:500 20px var(--serif); color:var(--vert); }
.es-fin { height:110px; }

/* Barre collée (mobile) */
.es-colle { position:fixed; left:0; right:0; bottom:0; z-index:60; background:rgba(251,247,241,.95); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-top:1px solid var(--ligne);
  padding-block:10px calc(10px + env(safe-area-inset-bottom,0px)); padding-left:max(16px,env(safe-area-inset-left,0px)); padding-right:max(16px,env(safe-area-inset-right,0px));
  display:flex; align-items:center; gap:12px; transform:translateY(110%); transition:transform .25s; font-family:var(--sans); color:var(--vert); }
.es-colle.vue { transform:none; }
.es-ci { flex:1; min-width:0; }
.es-ci b { display:block; font:500 18px/1.1 var(--serif); }
.es-ci small { font-size:12px; color:var(--doux); }
.es-colle .es-cta { padding:13px 22px; font-size:15px; }

/* Feuille « Où partez-vous ? » */
.es-feuille { position:fixed; inset:0; z-index:200; background:rgba(14,36,33,.55); display:flex; align-items:flex-end; justify-content:center; font-family:var(--sans); color:var(--vert); }
.es-f-in { background:var(--creme); width:100%; max-width:560px; max-height:88vh; border-radius:24px 24px 0 0; display:flex; flex-direction:column; padding:16px max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px)); animation:esMonte .25s ease; }
@keyframes esMonte { from { transform:translateY(40px); opacity:.4; } }
.es-f-tete { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.es-f-tete b { font:500 22px var(--serif); }
.es-f-tete button { border:0; background:var(--sable); width:36px; height:36px; border-radius:50%; font-size:22px; line-height:1; cursor:pointer; }
.es-f-rech:focus-within { box-shadow:0 0 0 2px var(--terre); }
.es-f-rech { display:flex; align-items:center; gap:10px; background:#fff; border-radius:14px; padding:0 14px; box-shadow:0 0 0 1px var(--ligne); color:var(--doux); }
.es-f-rech input, .es-f-rech input:focus { border:0 !important; outline:0 !important; box-shadow:none !important; -webkit-appearance:none; appearance:none; background:transparent; flex:1; min-width:0; padding:14px 0; font:600 16px var(--sans); color:var(--vert); }
.es-f-liste { overflow-y:auto; margin-top:10px; display:grid; gap:2px; -webkit-overflow-scrolling:touch; }
.es-f-liste h3 { font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--terre); margin:12px 4px 4px; }
.es-f-liste a { display:flex; align-items:center; gap:12px; padding:11px 8px; border-radius:12px; color:var(--vert); text-decoration:none; font-weight:600; }
.es-f-liste a:hover, .es-f-liste a:focus { background:#fff; }
.es-f-liste a img, .es-f-liste a .g { width:28px; height:20px; border-radius:4px; object-fit:cover; flex:none; box-shadow:0 0 0 1px rgba(0,0,0,.06); display:grid; place-items:center; color:var(--vert); }
.es-f-liste p { color:var(--doux); padding:10px 8px; margin:0; }

/* Feuille « Rejoindre » (visiteur non connecté) */
.es-rj { gap:14px; }
.es-rj .es-f-tete { margin-bottom:0; }
.es-rj-t { font:500 26px/1.15 var(--serif); text-wrap:balance; }
.es-rj-f { display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--vert); color:#fff; border-radius:16px; padding:14px 16px; }
.es-rj-go { font:500 30px/1 var(--serif); }
.es-rj-go small { display:block; font:600 12px var(--sans); color:rgba(255,255,255,.7); margin-top:4px; }
.es-rj-px { text-align:right; }
.es-rj-px b { display:block; font:600 20px var(--sans); }
.es-rj-px small { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; color:var(--or); }
.es-rj-l { list-style:none; margin:0; padding:0; display:grid; gap:9px; font-size:14px; }
.es-rj-l li { display:flex; align-items:center; gap:10px; }
.es-rj-l svg { color:var(--terre); flex:none; }
.es-rj-d { text-align:center; color:var(--vert) !important; font-weight:600; font-size:14px; text-decoration:none; padding:6px; }
.es-rj-n { text-align:center; font-size:12px; color:var(--doux); }
.es-retour { margin-top:-16px; margin-bottom:10px; }
.es-retour .es-mb { box-shadow:0 0 0 2px var(--terre),0 14px 30px -24px rgba(20,49,46,.6); }
.es-retour + .es-bandeau { margin-top:0; }

/* Bureau */
@media (min-width:900px) {
  .es-hero { min-height:500px; }
  .es-grille { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:10px; align-items:start; }
  .es-colle { display:none; }
  .es-fin { height:60px; }
  .es-feuille { align-items:center; }
  .es-f-in { border-radius:24px; max-height:80vh; }
}
@media (max-width:380px) { .es-usages { gap:6px; } .es-us b { font-size:12.5px; } .es-go { font-size:54px; } .es-ligne { grid-template-columns:64px minmax(0,1fr) auto; gap:10px; } }
@media (prefers-reduced-motion:reduce) { .es *, .es-hero-img, .es-colle, .es-f-in { transition:none !important; animation:none !important; } }
