/* Astrolabe Lite — style "atelier" : navy profond + laiton, esprit app native */
:root{
  --navy:#1B2A41; --navy-deep:#101B2E; --brass:#B8860B; --brass-soft:#E8C766;
  --bg:#FAF7F1; --bg2:#F3EDE1; --card:#FFFFFF; --ink:#1d1d1f; --muted:#6b6455;
  --border:#E7DFCE; --tabbar:rgba(250,247,241,.86);
  --shadow:0 6px 24px rgba(27,42,65,.10);
  --radius:18px;
}
html.dark-mode{
  --bg:#0d1420; --bg2:#111a2b; --card:#16233a; --ink:#e9edf3; --muted:#9aa7bd;
  --border:#26344d; --tabbar:rgba(13,20,32,.86);
  --shadow:0 6px 24px rgba(0,0,0,.35);
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.55;
  padding-bottom:calc(96px + env(safe-area-inset-bottom));
}
a{color:inherit}

/* ---- Barre d'app ---- */
.appbar{
  position:sticky; top:0; z-index:50;
  background:linear-gradient(135deg,var(--navy-deep),var(--navy));
  color:#fff; box-shadow:0 2px 14px rgba(0,0,0,.18);
}
.appbar-inner{
  max-width:520px; margin:0 auto; padding:12px 18px;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{display:flex; align-items:center; gap:9px; font-size:17px; letter-spacing:.01em}
.brand-mark{color:var(--brass-soft); font-size:20px}
.brand-name b{color:var(--brass-soft); font-weight:800}
.appbar-actions{display:flex; align-items:center; gap:8px}
.lang-toggle{display:flex; background:rgba(255,255,255,.14); border-radius:999px; padding:2px}
.lang-toggle button{
  border:0; background:transparent; color:#fff; font-size:12px; font-weight:700;
  padding:6px 11px; border-radius:999px; cursor:pointer;
}
.lang-toggle button.active{background:var(--brass); color:#141414}
.icon-btn{
  border:0; background:rgba(255,255,255,.14); color:#fff; font-size:16px;
  width:36px; height:36px; border-radius:50%; cursor:pointer;
}

/* ---- Contenu ---- */
.app-main{max-width:520px; margin:0 auto; padding:18px 16px 8px}
.tab-page{display:none; animation:fadeUp .22s ease}
.tab-page.active{display:block}
@keyframes fadeUp{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
.page-head{margin:6px 2px 16px}
.page-head h2{margin:0 0 4px; font-size:26px; letter-spacing:-.02em}
.page-head p{margin:0; color:var(--muted)}

/* ---- Cartes ---- */
.card{
  display:block; background:var(--card); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow);
  padding:16px 18px; margin-bottom:12px; text-decoration:none; color:inherit;
}
.card h3{margin:0 0 4px; font-size:16px}
.card p{margin:0; color:var(--muted); font-size:14px}
.chev{margin-left:auto; color:var(--brass); font-size:24px; font-weight:300}
.open{margin-left:auto; white-space:nowrap; color:var(--brass); font-weight:700; font-size:14px}
.note{font-size:12.5px; color:var(--muted); margin:10px 2px}
.note.center{text-align:center}

/* ---- Accueil ---- */
.hero-card{
  background:linear-gradient(140deg,var(--navy-deep),var(--navy) 60%,#24365a);
  color:#fff; border-radius:22px; padding:26px 22px; margin-bottom:14px;
  box-shadow:var(--shadow); position:relative; overflow:hidden;
}
.hero-card::after{
  content:"✦"; position:absolute; right:14px; top:6px; font-size:110px;
  color:rgba(232,199,102,.10); pointer-events:none;
}
.kicker{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass-soft); border:1px solid rgba(232,199,102,.4); border-radius:999px;
  padding:4px 12px; margin:0 0 12px;
}
.hero-card h1{margin:0 0 8px; font-size:30px; letter-spacing:-.02em}
.lede{margin:0 0 18px; color:#c9d4e6; font-size:15px}
.lede-cities{white-space:nowrap}
.quick-actions{display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
.qa{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.14);
  border-radius:14px; padding:13px 6px; color:#fff; text-decoration:none; font-size:13px; font-weight:600;
}
.qa:active{transform:scale(.96)}
.qa-ico{font-size:22px}
.qa-call{background:linear-gradient(135deg,#2f7a4d,#256b41)}
.qa-book{background:var(--brass); color:#141414}
.trust-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px}
.trust{
  background:var(--card); border:1px solid var(--border); border-radius:14px;
  padding:12px 14px; font-size:13px; display:flex; gap:8px; align-items:center;
}
.trust b{color:var(--brass); font-size:16px}
.link-card{display:flex; align-items:center; gap:6px; cursor:pointer}

/* ---- Contact / Hub ---- */
.contact-row,.hub-card{display:flex; align-items:center; gap:14px}
.c-ico{font-size:28px; flex:0 0 auto}
.c-ico.big{font-size:40px}
.c-val{font-weight:600; color:var(--ink) !important; font-size:15px !important}
.info-card h3{font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted)}
.info-card p{font-size:15px; color:var(--ink); margin-top:6px}

/* ---- RDV ---- */
.rdv-card{text-align:center; padding:28px 22px}
.rdv-card h3{font-size:20px; margin:10px 0 6px}
.rdv-card p{margin-bottom:18px}
.btn-brass{
  display:inline-block; background:linear-gradient(135deg,var(--brass),#d4a017); color:#141414;
  font-weight:800; font-size:16px; padding:14px 30px; border-radius:999px; text-decoration:none;
  box-shadow:0 4px 14px rgba(184,134,11,.35);
}
.btn-brass:active{transform:scale(.97)}
.rdv-card .note{margin-top:16px}

/* ---- Outils ---- */
.tool-card{padding:16px}
.subtabs{display:flex; background:var(--bg2); border-radius:12px; padding:4px; margin-bottom:14px}
.subtab{
  flex:1; border:0; background:transparent; padding:10px; border-radius:9px;
  font-size:14px; font-weight:700; color:var(--muted); cursor:pointer;
}
.subtab.active{background:var(--card); color:var(--ink); box-shadow:0 2px 8px rgba(0,0,0,.10)}
.subpane{display:none}
.subpane.active{display:block}

/* Calculatrice */
.calc-display{
  background:var(--navy-deep); color:#fff; font-size:38px; font-weight:300; text-align:right;
  padding:18px 20px; border-radius:14px; margin-bottom:12px; overflow:hidden;
  white-space:nowrap; letter-spacing:.02em; min-height:78px;
}
html.dark-mode .calc-display{background:#000}
.calc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:9px}
.calc-grid button{
  border:0; border-radius:14px; font-size:20px; padding:16px 0; cursor:pointer;
  background:var(--bg2); color:var(--ink); font-weight:600;
}
.calc-grid button:active{transform:scale(.94)}
.calc-grid .k-fn{color:var(--brass); font-weight:800}
.calc-grid .k-op{background:var(--navy); color:#fff}
.calc-grid .k-eq{background:linear-gradient(135deg,var(--brass),#d4a017); color:#141414; font-weight:800}

/* Convertisseur */
.fld-label{display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin:10px 0 6px}
.fld{
  width:100%; font-size:17px; padding:13px 14px; border-radius:12px;
  border:1.5px solid var(--border); background:var(--bg); color:var(--ink); font-family:inherit;
}
.fld:focus{outline:none; border-color:var(--brass)}
select.fld{appearance:none}
.conv-row{display:grid; grid-template-columns:1fr auto 1fr; gap:8px; align-items:end}
.swap{
  border:1.5px solid var(--border); background:var(--card); color:var(--brass);
  width:46px; height:46px; border-radius:50%; font-size:20px; cursor:pointer; margin-bottom:2px;
}
.swap:active{transform:rotate(180deg)}
.ftin-extra{margin-top:2px}
.conv-result{
  display:flex; justify-content:space-between; align-items:center; margin-top:16px;
  background:var(--navy); color:#fff; border-radius:14px; padding:15px 18px; font-size:14px;
}
.conv-result b{font-size:22px; color:var(--brass-soft)}

/* ---- Pied ---- */
.app-foot{max-width:520px; margin:6px auto 0; padding:0 18px; text-align:center}
.app-foot p{font-size:12px; color:var(--muted)}
.app-foot a{color:var(--brass); font-weight:600; text-decoration:none}
.ver{font-size:11px; color:var(--muted); border:1px solid var(--border); border-radius:6px; padding:1px 7px; white-space:nowrap}

/* ---- Barre d'onglets ---- */
.tabbar{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  padding-bottom:env(safe-area-inset-bottom);
  background:var(--tabbar); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--border);
  display:flex; justify-content:center;
}
.tab{
  flex:1; max-width:110px; border:0; background:transparent; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:12px 4px 14px; font-size:10.5px; font-weight:600; color:var(--muted); font-family:inherit;
}
.t-ico{font-size:22px; filter:grayscale(.4); transition:transform .15s}
.tab.active{color:var(--brass)}
.tab.active .t-ico{filter:none; transform:scale(1.12)}
/* Effet pulse sur l'icône Hub */
.tab[data-tab="hub"] .t-ico{position:relative}
.tab[data-tab="hub"] .t-ico .app-ico{animation:hub-pulse 2.2s ease-in-out infinite}
.tab[data-tab="hub"] .t-ico::after{
  content:""; position:absolute; inset:-6px; border-radius:32%;
  border:2px solid var(--brass); opacity:0;
  animation:hub-ring 2.2s ease-out infinite;
}
@keyframes hub-pulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.14)}
}
@keyframes hub-ring{
  0%{transform:scale(.75); opacity:.7}
  70%{opacity:.15}
  100%{transform:scale(1.35); opacity:0}
}
.tab:active .t-ico{transform:scale(.9)}

/* ---- Version bureau : note discrète (cachée sur mobile) ---- */
.desktop-note{display:none}

/* ---- Écrans larges (bureau) : on respire ---- */
@media (min-width:900px) and (hover:hover) and (pointer:fine){
  .appbar-inner{max-width:1024px; padding:18px 28px}
  .brand{font-size:22px}
  .brand-mark{font-size:26px}
  .app-main{max-width:1024px; padding:32px 28px 20px}
  .app-foot{max-width:1024px}

  .desktop-note{
    display:flex; align-items:center; gap:12px;
    background:linear-gradient(135deg,var(--navy-deep),var(--navy));
    color:#fff; border-radius:var(--radius); padding:16px 20px; margin-bottom:18px;
    box-shadow:var(--shadow); font-size:15px;
  }
  .desktop-note a{color:var(--brass-soft); font-weight:700; text-decoration:none; white-space:nowrap}
  .desktop-note a:hover{text-decoration:underline}

  .qa{padding:26px 12px; font-size:16px; border-radius:20px}
  .qa-ico{font-size:34px}
  .hero-card{padding:48px 44px; border-radius:26px}
  .hero-card h1{font-size:46px}
  .lede{font-size:18px}
  .kicker{font-size:12px; padding:6px 16px}
  .trust{padding:16px 18px; font-size:15px; border-radius:16px}
  .trust b{font-size:20px}
  .btn-brass{font-size:18px; padding:17px 40px}
  .calc-grid button{font-size:24px; padding:22px 0}
  .calc-display{font-size:48px; padding:24px 26px}
  .card{padding:20px 24px}
  .card h3{font-size:18px}
  .page-head h2{font-size:32px}
  .trust-grid{grid-template-columns:repeat(4,1fr)}
  .quick-actions{gap:14px}
}

/* Icônes style apps iPhone */
.app-ico{width:100%; height:100%; display:block}
.t-ico .app-ico{width:34px; height:34px}
.qa-ico .app-ico, .c-ico .app-ico{width:1.4em; height:1.4em}

.c-ico.big .app-ico{width:56px; height:56px}

/* ---- Case Promotions ---- */
.promo-card{border:1px solid rgba(224,123,57,.55);background:linear-gradient(135deg,rgba(245,185,66,.12),rgba(224,123,57,.06));text-decoration:none;color:inherit;display:flex}
.promo-card h3{color:var(--ink)}
.promo-star{color:#e07b39}
.promo-card p{color:var(--muted)}
