:root {
  --orix-bg: #06111f;
  --orix-bg-2: #081727;
  --orix-panel: rgba(10, 27, 46, .84);
  --orix-panel-strong: #0c1d31;
  --orix-panel-soft: rgba(13, 34, 58, .68);
  --orix-line: rgba(138, 178, 221, .15);
  --orix-line-strong: rgba(85, 149, 236, .30);
  --orix-text: #f2f7fd;
  --orix-muted: #8fa7c0;
  --orix-primary: #4d8dff;
  --orix-primary-2: #6ca7ff;
  --orix-cyan: #62d2ff;
  --orix-success: #35d096;
  --orix-warning: #ffb648;
  --orix-danger: #ff6680;
  --orix-radius: 18px;
  --orix-shadow: 0 22px 70px rgba(0, 0, 0, .28);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--orix-bg); }
body.orixfy-body {
  min-height: 100vh;
  margin: 0;
  color: var(--orix-text);
  background: linear-gradient(180deg, #071421 0%, #06111f 52%, #07131f 100%);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  letter-spacing: -.01em;
  overflow-x: hidden;
}

.orixfy-bg { position: fixed; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; }
.orixfy-grid { position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(rgba(118,159,209,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(118,159,209,.07) 1px, transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(to bottom, black, transparent 72%); }
.orixfy-glow { position: absolute; width: 720px; height: 720px; border-radius: 50%; filter: blur(30px); opacity: .19; }
.orixfy-glow-one { top: -390px; left: -240px; background: radial-gradient(circle, #1971ff 0, transparent 66%); }
.orixfy-glow-two { right: -390px; top: 80px; background: radial-gradient(circle, #00b7ff 0, transparent 68%); opacity: .11; }

a { color: #84b5ff; text-decoration: none; }
a:hover { color: #b5d3ff; }
.text-muted, .text-secondary { color: var(--orix-muted) !important; }

.orixfy-topbar { position: sticky; top: 0; z-index: 1030; background: rgba(5, 16, 29, .73); border-bottom: 1px solid rgba(133,174,219,.10); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.orixfy-brand { display: inline-flex; align-items: center; gap: 10px; min-height: 42px; color: white !important; }
.orixfy-logo {
  display: block;
  width: 230px;
  max-width: 230px;
  height: auto;
  max-height: 70px;
  object-fit: contain;
}
.orixfy-brand-mark { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; background: linear-gradient(145deg, var(--orix-primary), #285cbb); box-shadow: 0 8px 24px rgba(53,123,255,.32); font-weight: 900; }
.orixfy-brand-name { font-size: 1.08rem; letter-spacing: .16em; font-weight: 800; }
.orixfy-topbar .nav-link { color: #b7c8da; font-weight: 600; font-size: .93rem; padding: .58rem .76rem !important; border-radius: 10px; transition: .2s ease; }
.orixfy-topbar .nav-link:hover, .orixfy-topbar .nav-link.active { color: #fff; background: rgba(93,143,212,.11); }
.orixfy-account-btn { border: 1px solid var(--orix-line); color: var(--orix-text); background: rgba(255,255,255,.025); border-radius: 12px; padding: .42rem .7rem; display: inline-flex; align-items: center; gap: 8px; }
.orixfy-account-btn:hover, .orixfy-account-btn:focus { border-color: var(--orix-line-strong); background: rgba(92,145,217,.10); color: white; }
.orixfy-avatar { width: 28px; height: 28px; display: inline-grid; place-items: center; border-radius: 8px; background: linear-gradient(135deg, #397be8, #5ca4ff); font-size: .78rem; font-weight: 800; }
.orixfy-dropdown { padding: .55rem; min-width: 190px; border: 1px solid var(--orix-line); background: #0b1b2e; box-shadow: var(--orix-shadow); border-radius: 14px; }
.orixfy-dropdown .dropdown-item { color: #d5e2ef; border-radius: 9px; padding: .65rem .75rem; }
.orixfy-dropdown .dropdown-item:hover { color: #fff; background: rgba(74,139,236,.14); }
.orixfy-cta { border-radius: 11px; padding: .62rem 1rem; font-weight: 700; }
.orixfy-toggler { width: 44px; height: 40px; border: 1px solid var(--orix-line); padding: 9px 10px; box-shadow: none !important; }
.orixfy-toggler span { display: block; height: 2px; background: #dceaff; margin: 4px 0; border-radius: 2px; }

.orixfy-shell { padding-top: 38px; padding-bottom: 60px; }
.orixfy-sidebar { top: 108px; padding: 16px 10px; border-radius: 18px; border: 1px solid var(--orix-line); background: linear-gradient(180deg, rgba(13,31,51,.78), rgba(8,22,37,.72)); box-shadow: 0 22px 60px rgba(0,0,0,.16); backdrop-filter: blur(12px); }
.orixfy-sidebar-kicker { padding: 6px 12px 13px; color: #66819d; font-size: .68rem; font-weight: 800; letter-spacing: .16em; }
.orixfy-side-link { display: flex; align-items: center; gap: 11px; color: #aabed1; padding: 10px 11px; margin: 3px 0; border-radius: 11px; font-weight: 600; font-size: .89rem; transition: .18s ease; }
.orixfy-side-link:hover { color: #fff; background: rgba(95,149,225,.09); transform: translateX(2px); }
.orixfy-side-link.active { color: #fff; background: linear-gradient(90deg, rgba(61,127,230,.21), rgba(50,120,229,.08)); box-shadow: inset 2px 0 0 var(--orix-primary); }
.orixfy-side-icon { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 8px; background: rgba(104,157,230,.08); }
.orixfy-side-icon svg { width: 16px; height: 16px; stroke: currentColor; fill: none; }
.orixfy-side-separator { height: 1px; background: var(--orix-line); margin: 12px 8px; }

.orixfy-page-head { display: flex; justify-content: space-between; align-items: end; gap: 18px; margin: 2px 0 24px; }
.orixfy-eyebrow { color: #6b9ce3; font-size: .69rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.orixfy-page-title { margin: 7px 0 0; color: #f5f9ff; font-size: clamp(1.65rem, 3vw, 2.45rem); line-height: 1.05; font-weight: 760; letter-spacing: -.045em; }
.orixfy-new-order { border-radius: 12px; font-weight: 700; box-shadow: 0 10px 28px rgba(44,112,225,.22); white-space: nowrap; }
.orixfy-content { min-height: 460px; }

.card, .modal-content, .list-group-item, .accordion-item, .offcanvas, .dropdown-menu {
  color: var(--orix-text);
  background: linear-gradient(180deg, rgba(13,31,52,.94), rgba(9,24,41,.94));
  border-color: var(--orix-line);
}
.card { border-radius: var(--orix-radius); box-shadow: 0 16px 55px rgba(0,0,0,.13); overflow: hidden; }
.card-header { padding: 1rem 1.15rem; color: #eaf3ff; background: rgba(255,255,255,.016); border-bottom-color: var(--orix-line); }
.card-header h1, .card-header h2, .card-header h3, .card-header h4, .card-header h5, .card-header h6 { font-weight: 720; letter-spacing: -.025em; }
.card-body { padding: 1.18rem; }
.dashboard .card { min-height: 150px; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.dashboard .card:hover { transform: translateY(-2px); border-color: rgba(91,151,240,.28); box-shadow: 0 22px 55px rgba(0,0,0,.19); }
.list-group-item { border-color: var(--orix-line); }
.list-group-item:hover { background: rgba(92,145,217,.07); color: white; }

.btn { border-radius: 11px; font-weight: 680; letter-spacing: -.01em; }
.btn-primary { --bs-btn-bg: #3e7fe8; --bs-btn-border-color: #4a8af0; --bs-btn-hover-bg: #4f8ef2; --bs-btn-hover-border-color: #619cff; --bs-btn-active-bg: #3472d7; box-shadow: 0 8px 24px rgba(47,113,221,.17); }
.btn-dark { --bs-btn-bg: #142941; --bs-btn-border-color: rgba(130,170,215,.17); --bs-btn-hover-bg: #19334f; --bs-btn-hover-border-color: rgba(130,170,215,.30); }
.btn-outline-primary { --bs-btn-color: #8ab7ff; --bs-btn-border-color: rgba(93,153,241,.40); --bs-btn-hover-bg: rgba(67,132,229,.14); --bs-btn-hover-border-color: #629af0; }

.form-control, .form-select, .input-group-text, textarea.form-control {
  color: #eff6ff;
  background: #08192a;
  border: 1px solid rgba(128,169,216,.18);
  border-radius: 11px;
  min-height: 43px;
  box-shadow: none;
}
.form-control::placeholder { color: #59718b; }
.form-control:focus, .form-select:focus { color: #fff; background: #0a1d31; border-color: rgba(81,151,250,.66); box-shadow: 0 0 0 3px rgba(63,131,231,.12); }
.form-label, label { color: #c8d6e6; font-weight: 600; }
.form-check-input { background-color: #0a1d31; border-color: #45627f; }
.form-check-input:checked { background-color: var(--orix-primary); border-color: var(--orix-primary); }

.table { --bs-table-color: #dce8f4; --bs-table-bg: transparent; --bs-table-border-color: rgba(128,169,216,.12); --bs-table-striped-color: #dce8f4; --bs-table-striped-bg: rgba(255,255,255,.018); --bs-table-hover-color: #fff; --bs-table-hover-bg: rgba(76,135,220,.06); vertical-align: middle; }
.table thead th { color: #849cb5; font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; font-weight: 800; border-bottom-color: rgba(128,169,216,.17); padding-top: .9rem; padding-bottom: .9rem; }
.table td { padding-top: .85rem; padding-bottom: .85rem; }
.table-responsive { border-radius: 14px; }

.nav-tabs { border-bottom-color: var(--orix-line); gap: 4px; }
.nav-tabs .nav-link { color: #8ea5bc; border: 0; border-radius: 9px 9px 0 0; font-weight: 650; }
.nav-tabs .nav-link:hover { color: #fff; background: rgba(90,145,220,.08); }
.nav-tabs .nav-link.active { color: #fff; background: rgba(72,135,228,.13); box-shadow: inset 0 -2px 0 var(--orix-primary); }
.nav-pills .nav-link { color: #a4b8cb; border-radius: 10px; }
.nav-pills .nav-link.active { color: #fff; background: #3478df; }

.alert { border-radius: 14px; border-width: 1px; background: rgba(22,49,74,.82); color: #deebf7; }
.alert-info { border-color: rgba(79,166,238,.25); background: rgba(32,111,177,.13); }
.alert-success { border-color: rgba(53,208,150,.25); background: rgba(33,151,108,.12); }
.alert-warning { border-color: rgba(255,182,72,.28); background: rgba(184,119,26,.13); color: #ffe2ad; }
.alert-danger { border-color: rgba(255,102,128,.28); background: rgba(176,47,72,.13); }
.orixfy-flash { margin-top: 18px; }

.badge { border-radius: 999px; padding: .42em .65em; font-weight: 750; }
.bg-success { background-color: rgba(37,171,122,.20) !important; color: #6fe0b6 !important; border: 1px solid rgba(69,207,158,.22); }
.bg-warning { background-color: rgba(208,138,34,.20) !important; color: #ffd079 !important; border: 1px solid rgba(255,184,75,.24); }
.bg-danger { background-color: rgba(201,66,91,.20) !important; color: #ff8da1 !important; border: 1px solid rgba(255,103,130,.23); }
.bg-info { background-color: rgba(40,142,197,.19) !important; color: #7fdcff !important; border: 1px solid rgba(85,189,240,.23); }
.bg-secondary { background-color: rgba(123,145,166,.16) !important; color: #b7c7d6 !important; border: 1px solid rgba(145,168,191,.18); }

.breadcrumb { margin-bottom: 1.1rem; padding: 0; background: transparent; font-size: .84rem; }
.breadcrumb, .breadcrumb a { color: #6f89a3; }
.breadcrumb .active { color: #aabdd0; }
.pagination { gap: 5px; }
.page-link { color: #a9c6e8; background: #0a1c2f; border: 1px solid var(--orix-line); border-radius: 9px !important; min-width: 38px; text-align: center; }
.page-link:hover { color: #fff; background: #102a46; border-color: var(--orix-line-strong); }
.active > .page-link, .page-link.active { background: #3478df; border-color: #4b8bea; color: #fff; }
.disabled > .page-link { color: #4d6277; background: #091725; border-color: rgba(120,160,205,.08); }

.modal-content { border-radius: 18px; box-shadow: var(--orix-shadow); }
.modal-header, .modal-footer { border-color: var(--orix-line); }
hr { border-color: var(--orix-line); opacity: 1; }
code, pre { color: #9fd4ff; background: #061421; border-radius: 8px; }
pre { padding: 1rem; border: 1px solid var(--orix-line); }

.orixfy-footer { border-top: 1px solid rgba(133,174,219,.09); color: #7089a2; padding: 10px 0 12px; font-size: .78rem; line-height: 1.2; background: rgba(4,13,23,.24); }
.orixfy-footer strong { color: #a9bfd5; }
.orixfy-footer-links { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.orixfy-footer-links a { color: #718ca7; }
.orixfy-footer-links a:hover { color: #cce0f7; }

/* Pages publiques / connexion */
.orixfy-public { min-height: 100vh; }
.orixfy-auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(410px, .9fr) minmax(520px, 1.1fr); }
.orixfy-auth-brand { position: relative; padding: 42px clamp(38px, 6vw, 92px); display: flex; flex-direction: column; background: linear-gradient(145deg, rgba(12,33,56,.84), rgba(5,18,32,.60)); border-right: 1px solid var(--orix-line); overflow: hidden; }
.orixfy-auth-brand::after { content: ''; position: absolute; width: 520px; height: 520px; left: -180px; bottom: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(54,130,246,.25), transparent 66%); }
.orixfy-auth-logo { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 10px; color: white; font-size: 1rem; letter-spacing: .14em; }
.orixfy-auth-logo img { max-width: 154px; max-height: 48px; object-fit: contain; }
.orixfy-auth-copy { position: relative; z-index: 1; margin: auto 0; max-width: 570px; }
.orixfy-auth-copy h1 { margin: 14px 0 22px; color: #f5f9ff; font-size: clamp(2.8rem, 5vw, 5.3rem); font-weight: 790; line-height: .96; letter-spacing: -.07em; }
.orixfy-auth-copy h1 span { color: #83b4ff; }
.orixfy-auth-copy p { max-width: 530px; color: #95acc3; font-size: 1.05rem; line-height: 1.75; }
.orixfy-auth-points { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 26px; color: #b8cadb; font-size: .9rem; }
.orixfy-auth-points span { color: #66d7ad; margin-right: 5px; }
.orixfy-auth-foot { position: relative; z-index: 1; color: #5f7891; font-size: .78rem; }
.orixfy-auth-content { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 42px 28px; }
.orixfy-auth-card { width: min(100%, 520px); padding: clamp(24px, 4vw, 40px); border: 1px solid var(--orix-line); border-radius: 22px; background: linear-gradient(180deg, rgba(13,31,52,.93), rgba(8,22,38,.93)); box-shadow: var(--orix-shadow); backdrop-filter: blur(15px); }
.orixfy-auth-card h1, .orixfy-auth-card h2, .orixfy-auth-card h3 { color: #f4f8fd; letter-spacing: -.035em; font-weight: 760; }
.orixfy-auth-card .card { border: 0; background: transparent; box-shadow: none; }
.orixfy-auth-card .card-body, .orixfy-auth-card .card-header { padding-left: 0; padding-right: 0; background: transparent; }
.orixfy-auth-mobile-brand { width: min(100%, 520px); margin-bottom: 24px; }
.orixfy-auth-mobile-brand img { max-width: 140px; max-height: 44px; }
.orixfy-auth-mobile-brand strong { color: #fff; letter-spacing: .16em; }
.orixfy-back-site { width: min(100%, 520px); margin-top: 20px; color: #68839f; font-size: .84rem; }
.orixfy-back-site:hover { color: #9db8d3; }

/* FOSSBilling details */
.icon { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
dl.row { margin-bottom: 0; }
dt { color: #748ba3 !important; }
dd { color: #dce8f4; }
blockquote { color: #b8cadb; border-left: 3px solid #3d7fde; padding-left: 1rem; }
.markdown-body { color: #d7e3ef; }

@media (max-width: 1199.98px) {
  .orixfy-topbar .nav-link { padding-left: .55rem !important; padding-right: .55rem !important; }
}
@media (max-width: 991.98px) {
  .orixfy-topbar .navbar-collapse { margin-top: 12px; padding: 14px; border: 1px solid var(--orix-line); border-radius: 15px; background: #091b2e; box-shadow: var(--orix-shadow); }
  .orixfy-topbar .nav-link { padding: .72rem .8rem !important; }
  .orixfy-page-head { align-items: center; }
  .orixfy-auth-shell { display: block; }
  .orixfy-auth-content { min-height: 100vh; }
}
@media (max-width: 575.98px) {
  .orixfy-shell { padding-top: 25px; }
  .orixfy-page-head { align-items: flex-start; flex-direction: column; }
  .orixfy-new-order { width: 100%; }
  .orixfy-auth-content { padding: 28px 16px; }
  .orixfy-auth-card { border-radius: 18px; padding: 24px 18px; }
  .card-body { padding: 1rem; }
  .table { font-size: .86rem; }
}


@media (max-width: 575.98px) {
  .orixfy-footer { padding: 12px 0 14px; }
  .orixfy-footer .container-xl { gap: 8px !important; }
}

/* Status indicators */
.badge.bg-warning, .badge.text-bg-warning, .badge.bg-success, .badge.text-bg-success, .badge.bg-danger, .badge.text-bg-danger, .badge.bg-secondary, .badge.text-bg-secondary {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}
.badge.bg-warning::before, .badge.text-bg-warning::before,
.badge.bg-success::before, .badge.text-bg-success::before,
.badge.bg-danger::before, .badge.text-bg-danger::before,
.badge.bg-secondary::before, .badge.text-bg-secondary::before {
  content: "";
  width: .48rem;
  height: .48rem;
  border-radius: 999px;
  background: currentColor;
  opacity: .95;
  box-shadow: 0 0 0 .18rem rgba(255,255,255,.06);
  flex: 0 0 auto;
}


/* =========================================================
   Orixfy Storefront 1.1 — boutique indépendante de l'UI FOSSBilling
   ========================================================= */
.orixfy-shell { padding-top: 34px; padding-bottom: 54px; }
.orixfy-content { min-height: 520px; }
.orixfy-topbar { background: rgba(5, 16, 29, .88); }
.orixfy-topbar .navbar { min-height: 72px; }
.orixfy-shop-dropdown { min-width: 240px; }
.orixfy-language-menu { min-width: 180px; }
.orixfy-language-menu .dropdown-item[aria-current="true"] { color: #fff; background: rgba(77,141,255,.14); }
.orixfy-icon-button { min-height: 42px; display:inline-flex; align-items:center; gap:7px; border:1px solid var(--orix-line); color:#b7c8da; background:rgba(255,255,255,.025); border-radius:11px; }
.orixfy-icon-button:hover { color:#fff; border-color:var(--orix-line-strong); background:rgba(92,145,217,.10); }
.orixfy-cart-button { min-height:42px; display:inline-flex; align-items:center; gap:8px; padding:.48rem .72rem; border:1px solid var(--orix-line); border-radius:11px; color:#d7e6f6; background:rgba(255,255,255,.025); font-weight:700; font-size:.88rem; transition:.18s ease; }
.orixfy-cart-button:hover,.orixfy-cart-button.active { color:#fff; border-color:rgba(77,141,255,.45); background:rgba(77,141,255,.11); }
.orixfy-cart-count { min-width:21px; height:21px; padding:0 5px; display:inline-grid; place-items:center; border-radius:999px; background:#3e7fe8; color:#fff; font-size:.69rem; font-weight:850; line-height:1; }
.dropdown-divider { border-color:var(--orix-line); }

.orixfy-store-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr); gap:28px; align-items:stretch; padding:clamp(30px,5vw,66px); border:1px solid rgba(112,164,231,.18); border-radius:28px; background:linear-gradient(135deg,rgba(12,35,61,.96),rgba(7,24,43,.94)); box-shadow:0 30px 90px rgba(0,0,0,.22); }
.orixfy-store-hero::after { content:""; position:absolute; width:520px; height:520px; right:-260px; top:-300px; border-radius:50%; background:radial-gradient(circle,rgba(66,142,255,.24),transparent 67%); pointer-events:none; }
.orixfy-store-hero-copy { position:relative; z-index:1; }
.orixfy-store-hero h1 { max-width:790px; margin:12px 0 18px; color:#f6f9ff; font-size:clamp(2.35rem,5vw,4.7rem); line-height:.98; font-weight:810; letter-spacing:-.065em; }
.orixfy-store-hero p { max-width:690px; margin:0; color:#91a9c2; font-size:1.03rem; line-height:1.72; }
.orixfy-store-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.orixfy-store-actions .btn { padding:.78rem 1.1rem; }
.orixfy-store-hero-panel { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; gap:20px; padding:26px; border:1px solid rgba(125,177,238,.16); border-radius:20px; background:rgba(6,20,36,.55); box-shadow:inset 0 1px 0 rgba(255,255,255,.02); }
.orixfy-store-panel-dot { width:10px; height:10px; border-radius:50%; background:#4ee0aa; box-shadow:0 0 0 7px rgba(78,224,170,.08); }
.orixfy-store-hero-panel strong { display:block; color:#f1f7ff; font-size:1.05rem; }
.orixfy-store-hero-panel span:not(.orixfy-store-panel-dot) { display:block; margin-top:4px; color:#7792ad; font-size:.83rem; line-height:1.45; }
.orixfy-store-mini-stats { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.orixfy-store-mini-stats span { padding:13px; border:1px solid rgba(126,171,220,.11); border-radius:13px; background:rgba(255,255,255,.018); }
.orixfy-store-mini-stats b { display:block; color:#fff; font-size:1.25rem; }

.orixfy-catalog { margin-top:48px; }
.orixfy-category { scroll-margin-top:105px; margin:0 0 58px; }
.orixfy-category-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:21px; }
.orixfy-category-heading h2 { margin:5px 0 0; color:#f2f7fd; font-size:clamp(1.65rem,3vw,2.45rem); font-weight:780; letter-spacing:-.045em; }
.orixfy-category-kicker { color:#5e8fd4; font-size:.68rem; font-weight:850; letter-spacing:.16em; }
.orixfy-category-desc { max-width:620px; color:#7f98b1; font-size:.88rem; line-height:1.6; }
.orixfy-category-desc p { margin:0; }
.orixfy-product-card { display:flex; flex-direction:column; padding:24px; border:1px solid rgba(126,171,220,.14); border-radius:19px; background:linear-gradient(180deg,rgba(13,32,54,.92),rgba(8,23,40,.94)); box-shadow:0 17px 55px rgba(0,0,0,.13); transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.orixfy-product-card:hover { transform:translateY(-4px); border-color:rgba(77,141,255,.36); box-shadow:0 26px 72px rgba(0,0,0,.22); }
.orixfy-product-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.orixfy-product-category { color:#6fa2eb; font-size:.67rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.orixfy-stock-pill { padding:5px 8px; border-radius:999px; color:#74ddb7; background:rgba(53,208,150,.10); border:1px solid rgba(53,208,150,.17); font-size:.69rem; font-weight:750; }
.orixfy-product-card h3 { margin:0; color:#f2f7fd; font-size:1.35rem; font-weight:760; letter-spacing:-.035em; }
.orixfy-product-description { flex:1; margin:12px 0 22px; color:#849cb5; font-size:.88rem; line-height:1.62; overflow:hidden; }
.orixfy-product-description p { margin:0 0 9px; }
.orixfy-product-description ul { margin:8px 0 0; padding-left:1.1rem; }
.orixfy-product-pricing { display:flex; flex-direction:column; gap:6px; min-height:56px; margin-top:auto; padding-top:18px; border-top:1px solid rgba(126,171,220,.10); }
.orixfy-price-line { display:flex; align-items:baseline; gap:7px; }
.orixfy-price-line strong { color:#fff; font-size:1.48rem; letter-spacing:-.045em; }
.orixfy-price-line span { color:#718aa4; font-size:.78rem; }
.orixfy-product-card-footer { margin-top:17px; }
.orixfy-product-card-footer .btn { min-height:45px; display:flex; align-items:center; justify-content:center; }

.orixfy-shop-empty { min-height:360px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:45px 20px; border:1px dashed rgba(124,169,219,.20); border-radius:22px; background:rgba(9,26,44,.55); }
.orixfy-shop-empty-icon { width:58px; height:58px; display:grid; place-items:center; margin-bottom:17px; border-radius:17px; background:rgba(77,141,255,.11); color:#7aafff; }
.orixfy-shop-empty-icon .icon { width:26px; height:26px; }
.orixfy-shop-empty h2 { margin:0 0 8px; color:#edf5ff; font-size:1.55rem; }
.orixfy-shop-empty p { max-width:570px; color:#7e97b0; }

.orixfy-configure-page,.orixfy-cart-page { max-width:1160px; margin:0 auto; }
.orixfy-back-shop { display:inline-flex; margin:2px 0 20px; color:#7e9bb8; font-size:.86rem; }
.orixfy-back-shop:hover { color:#b9d3ef; }
.orixfy-config-card,.orixfy-config-summary,.orixfy-cart-summary,.orixfy-cart-list,.orixfy-promo-box { border:1px solid rgba(126,171,220,.14); border-radius:20px; background:linear-gradient(180deg,rgba(13,32,54,.93),rgba(8,23,40,.95)); box-shadow:0 19px 60px rgba(0,0,0,.14); }
.orixfy-config-card { padding:clamp(24px,4vw,38px); }
.orixfy-config-card h1 { margin:8px 0 12px; color:#f4f8ff; font-size:clamp(2rem,4vw,3rem); letter-spacing:-.055em; font-weight:800; }
.orixfy-config-description { color:#879fb7; line-height:1.65; margin-bottom:26px; }
.orixfy-config-section { padding:20px 0; border-top:1px solid rgba(126,171,220,.10); }
.orixfy-config-section h2 { margin:0 0 12px; font-size:1rem; color:#dceaff; }
.orixfy-config-price { color:#fff; font-size:1.55rem; font-weight:800; }
.orixfy-add-cart-main { min-height:52px; display:flex; align-items:center; justify-content:center; gap:9px; margin-top:10px; }
.orixfy-config-summary { position:sticky; top:106px; padding:28px; }
.orixfy-config-summary h2 { margin:8px 0 12px; color:#fff; font-size:1.65rem; letter-spacing:-.04em; }
.orixfy-config-summary p { color:#7f98b1; line-height:1.65; }
.orixfy-config-safe { margin-top:20px; padding:14px; border-radius:13px; color:#95afc8; background:rgba(53,208,150,.055); border:1px solid rgba(53,208,150,.13); font-size:.82rem; }
.orixfy-config-safe span { color:#55d4a5; margin-right:7px; }

.orixfy-cart-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:25px; }
.orixfy-cart-heading h1 { margin:7px 0 6px; color:#f5f9ff; font-size:clamp(2rem,4vw,3.3rem); font-weight:800; letter-spacing:-.055em; }
.orixfy-cart-heading p { margin:0; color:#7e96ae; }
.orixfy-cart-list { overflow:hidden; }
.orixfy-cart-item { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:18px; align-items:center; padding:20px 22px; border-bottom:1px solid rgba(126,171,220,.10); }
.orixfy-cart-item:last-child { border-bottom:0; }
.orixfy-cart-item-main { min-width:0; display:flex; align-items:center; gap:14px; }
.orixfy-cart-item-icon { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; border-radius:12px; color:#82b5ff; background:rgba(77,141,255,.10); }
.orixfy-cart-item-main strong { display:block; color:#edf5ff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.orixfy-cart-item-main span { display:block; margin-top:3px; color:#708ba4; font-size:.79rem; }
.orixfy-cart-item-price { text-align:right; }
.orixfy-cart-item-price strong { color:#fff; }
.orixfy-cart-item-price del { display:block; color:#667d94; font-size:.76rem; }
.orixfy-remove-item { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(255,102,128,.15); border-radius:10px; color:#e78798; background:rgba(255,102,128,.045); cursor:pointer; }
.orixfy-remove-item:hover { color:#ffafbd; background:rgba(255,102,128,.09); }
.orixfy-cart-setup { display:flex; justify-content:space-between; gap:15px; padding:10px 22px 14px; color:#6d879f; font-size:.78rem; border-bottom:1px solid rgba(126,171,220,.08); }
.orixfy-promo-box { margin-top:14px; padding:17px 20px; }
.orixfy-text-button { padding:0; border:0; background:none; color:#86b6f8; font-size:.83rem; }
.orixfy-cart-summary { position:sticky; top:106px; padding:25px; }
.orixfy-summary-line,.orixfy-summary-total { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.orixfy-summary-line { padding:12px 0; color:#89a0b8; border-bottom:1px solid rgba(126,171,220,.08); font-size:.86rem; }
.orixfy-summary-line strong { color:#d8e5f2; }
.orixfy-summary-discount strong { color:#66d9ad; }
.orixfy-summary-total { padding:19px 0; margin-bottom:12px; color:#d8e5f2; }
.orixfy-summary-total strong { color:#fff; font-size:1.75rem; letter-spacing:-.045em; }
.orixfy-payment-methods { padding:15px 0; border-top:1px solid rgba(126,171,220,.10); }
.orixfy-payment-methods>span { display:block; margin-bottom:10px; color:#9bb1c8; font-size:.78rem; font-weight:750; }
.orixfy-gateway-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.orixfy-gateway label { min-height:48px; width:100%; display:flex; align-items:center; justify-content:center; padding:8px; border:1px solid rgba(126,171,220,.14); border-radius:11px; color:#c9d8e7; background:#081a2b; cursor:pointer; }
.orixfy-gateway label img { max-width:95px; max-height:29px; object-fit:contain; }
.orixfy-gateway .btn-check:checked+label { border-color:#4d8dff; box-shadow:0 0 0 2px rgba(77,141,255,.11); background:rgba(77,141,255,.08); }
.orixfy-checkout-button { min-height:50px; margin-top:8px; }
.orixfy-checkout-legal,.orixfy-cart-login-note { margin:13px 0 0; color:#6f879f; font-size:.75rem; line-height:1.55; }

.orixfy-auth-modal { position:relative; padding:30px; border-radius:22px; }
.orixfy-modal-close { position:absolute; right:15px; top:15px; z-index:2; }
.orixfy-login-logo-wrap { display:flex; align-items:center; justify-content:center; min-height:52px; margin-bottom:18px; }
.orixfy-login-logo { max-width:150px; max-height:50px; object-fit:contain; }
.orixfy-login-wordmark { color:#fff; font-size:1.1rem; font-weight:850; letter-spacing:.16em; }
.orixfy-login-heading { text-align:center; margin-bottom:21px; }
.orixfy-login-heading h2 { margin:8px 0 8px; color:#f6f9ff; font-size:2rem; font-weight:800; letter-spacing:-.045em; }
.orixfy-login-heading p { max-width:380px; margin:0 auto; color:#829ab2; font-size:.86rem; line-height:1.55; }
.orixfy-login-submit { min-height:48px; }
.orixfy-first-login { margin-top:16px; padding-top:14px; border-top:1px solid rgba(125,168,217,.10); text-align:center; }
.orixfy-auth-switch { border:0; padding:3px 5px; background:transparent; color:#7893ad; font-size:.76rem; cursor:pointer; }
.orixfy-auth-switch:hover { color:#a9cbf3; }

@media (max-width: 991.98px) {
  .orixfy-store-hero { grid-template-columns:1fr; }
  .orixfy-store-hero-panel { display:none; }
  .orixfy-category-heading { display:block; }
  .orixfy-category-desc { margin-top:10px; }
  .orixfy-config-summary,.orixfy-cart-summary { position:static; }
  .orixfy-topbar .navbar-collapse { margin-top:12px; padding:14px; border:1px solid var(--orix-line); border-radius:15px; background:#091b2e; box-shadow:var(--orix-shadow); }
  .orixfy-topbar .orixfy-cart-button,.orixfy-topbar .orixfy-icon-button,.orixfy-topbar .orixfy-account-btn,.orixfy-topbar .orixfy-cta { width:100%; justify-content:center; margin-top:6px; }
}
@media (max-width: 575.98px) {
  .orixfy-shell { padding-top:20px; }
  .orixfy-store-hero { padding:27px 21px; border-radius:21px; }
  .orixfy-store-hero h1 { font-size:2.5rem; }
  .orixfy-store-actions .btn { width:100%; }
  .orixfy-catalog { margin-top:36px; }
  .orixfy-product-card { padding:20px; }
  .orixfy-cart-heading { align-items:flex-start; flex-direction:column; }
  .orixfy-cart-heading .btn { width:100%; }
  .orixfy-cart-item { grid-template-columns:minmax(0,1fr) auto; padding:16px; gap:12px; }
  .orixfy-cart-item-price { grid-column:1/2; text-align:left; padding-left:56px; }
  .orixfy-remove-item { grid-column:2; grid-row:1/3; }
  .orixfy-auth-modal { padding:27px 19px 22px; }
  .orixfy-footer { padding:10px 0 12px; }
}


/* Orixfy 1.2 */
.orixfy-cart-icon-only{position:relative;width:44px;min-width:44px;height:42px;padding:0;justify-content:center}
.orixfy-cart-icon-only .icon{width:1.28rem;height:1.28rem}
.orixfy-cart-icon-only .orixfy-cart-count{position:absolute;right:-7px;top:-7px;border:2px solid #071525;box-shadow:0 4px 16px rgba(0,0,0,.28)}
.orixfy-cart-bump{animation:orixfyCartPop .62s cubic-bezier(.2,.9,.3,1)}
@keyframes orixfyCartPop{0%{transform:scale(1) rotate(0)}28%{transform:scale(1.25) rotate(-12deg)}52%{transform:scale(.96) rotate(8deg)}75%{transform:scale(1.12) rotate(-4deg)}100%{transform:scale(1) rotate(0)}}
.orixfy-language-button{gap:.45rem}.orixfy-flag{font-size:1.1rem;line-height:1}.orixfy-language-menu .dropdown-item{display:flex;align-items:center;gap:.65rem}
.orixfy-store-hero-simple{grid-template-columns:1fr}.orixfy-store-hero-simple .orixfy-store-hero-copy{max-width:900px}
.orixfy-trash-button{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;color:#ff8fa3;border:1px solid rgba(255,103,130,.18);background:rgba(176,47,72,.08);transition:.18s ease}
.orixfy-trash-button:hover{color:#fff;background:rgba(201,66,91,.28);border-color:rgba(255,103,130,.42);transform:translateY(-1px)}
.orixfy-trash-button .icon{width:1.05rem;height:1.05rem}
.orixfy-dashboard-hero{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px;padding:30px;border:1px solid var(--orix-line);border-radius:24px;background:linear-gradient(135deg,rgba(13,34,58,.92),rgba(8,24,42,.9));box-shadow:var(--orix-shadow)}
.orixfy-dashboard-hero h1{margin:.35rem 0 .6rem;color:#f6f9ff;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.05em;font-weight:800}.orixfy-dashboard-hero p{margin:0;color:#8da5bd}
.orixfy-section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.orixfy-section-heading h2{margin:.2rem 0 0;color:#edf5ff;font-size:1.5rem;font-weight:780;letter-spacing:-.035em}.orixfy-section-heading.compact{align-items:center;margin-bottom:14px}.orixfy-text-link{font-size:.84rem;color:#82adf2}.orixfy-text-link:hover{color:#b7d2ff}
.orixfy-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.orixfy-service-card{padding:20px;border:1px solid var(--orix-line);border-radius:18px;background:linear-gradient(180deg,rgba(12,31,52,.92),rgba(8,23,39,.93));box-shadow:0 18px 48px rgba(0,0,0,.13)}.orixfy-service-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.orixfy-service-type{display:block;color:#6683a0;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.orixfy-service-card h3{margin:.35rem 0 0;color:#f2f7fd;font-size:1.08rem}.orixfy-status{display:inline-flex;align-items:center;gap:.48rem;white-space:nowrap;font-size:.74rem;font-weight:800;padding:.42rem .62rem;border-radius:999px;border:1px solid}.orixfy-status i{width:.52rem;height:.52rem;border-radius:50%;background:currentColor;box-shadow:0 0 0 .2rem rgba(255,255,255,.04)}.orixfy-status-online{color:#69deb2;background:rgba(44,169,124,.10);border-color:rgba(69,207,158,.24)}.orixfy-status-pending{color:#ffd078;background:rgba(198,131,30,.10);border-color:rgba(255,184,75,.25)}.orixfy-status-suspended{color:#ff8fa3;background:rgba(191,55,81,.10);border-color:rgba(255,103,130,.25)}.orixfy-status-ended{color:#95a7ba;background:rgba(123,145,166,.09);border-color:rgba(145,168,191,.16)}.orixfy-service-meta{display:flex;justify-content:space-between;gap:12px;margin:20px 0 15px;color:#6f879f;font-size:.75rem}.orixfy-service-open{font-size:.83rem;font-weight:750;color:#88b5f8}
.orixfy-dashboard-panel{height:100%;padding:22px;border:1px solid var(--orix-line);border-radius:18px;background:rgba(9,26,44,.82)}.orixfy-muted{color:#7f97ae}.orixfy-mini-list{display:grid;gap:7px}.orixfy-mini-list a{display:grid;grid-template-columns:1fr auto auto;gap:15px;align-items:center;padding:11px 12px;border-radius:10px;color:#a9bfd5;background:rgba(255,255,255,.018)}.orixfy-mini-list a:hover{background:rgba(78,137,218,.08)}.orixfy-mini-list strong{color:#e5eef8}.orixfy-mini-list em{font-style:normal;color:#7189a1;font-size:.75rem}
@media(max-width:991.98px){.orixfy-service-grid{grid-template-columns:1fr 1fr}.orixfy-dashboard-hero{align-items:flex-start;flex-direction:column}}@media(max-width:575.98px){.orixfy-service-grid{grid-template-columns:1fr}.orixfy-service-card-head{flex-direction:column}.orixfy-dashboard-hero{padding:22px}.orixfy-mini-list a{grid-template-columns:1fr auto}.orixfy-mini-list em{grid-column:1/-1}}


/* =========================================================
   Orixfy 2.0 — composants boutique / actions / VPS
   ========================================================= */

/* Icônes locales */
.orixfy-icon { width: 1.18rem; height: 1.18rem; display: block; object-fit: contain; flex: 0 0 auto; }
.orixfy-icon-sm { width: 1rem; height: 1rem; }
.orixfy-icon-text { display: inline-flex !important; align-items: center; gap: .48rem; }

/* Le panier reste compact dans la barre de navigation */
.orixfy-cart-icon-only { position: relative; width: 44px; min-width: 44px; height: 42px; padding: 0; justify-content: center; }
.orixfy-cart-icon-only .orixfy-cart-count { position: absolute; right: -7px; top: -7px; border: 2px solid #071525; box-shadow: 0 4px 16px rgba(0,0,0,.28); }
.orixfy-cart-bump { animation: orixfyCartPop .62s cubic-bezier(.2,.9,.3,1); }
@keyframes orixfyCartPop { 0%{transform:scale(1) rotate(0)} 28%{transform:scale(1.25) rotate(-12deg)} 52%{transform:scale(.96) rotate(8deg)} 75%{transform:scale(1.12) rotate(-4deg)} 100%{transform:scale(1) rotate(0)} }
.orixfy-language-button { gap: .45rem; }
.orixfy-flag { font-size: 1.1rem; line-height: 1; }
.orixfy-language-menu .dropdown-item { display:flex; align-items:center; gap:.65rem; }
.orixfy-store-hero-simple { grid-template-columns: 1fr; }
.orixfy-store-hero-simple .orixfy-store-hero-copy { max-width: 900px; }

/* =========================================================
   Notifications centrées — toutes les actions importantes
   ========================================================= */
.orixfy-action-layer {
  position: fixed;
  inset: 0;
  z-index: 11050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  pointer-events: none;
}
.orixfy-action-notice {
  min-width: min(360px, calc(100vw - 34px));
  max-width: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  padding: 14px 18px;
  border: 1px solid rgba(116,169,238,.28);
  border-radius: 14px;
  color: #f6faff;
  background: rgba(7,23,40,.96);
  box-shadow: 0 22px 80px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  font-size: .91rem;
  font-weight: 760;
  text-align: center;
  animation: orixfyNoticeIn .18s ease-out;
}
.orixfy-action-notice.is-success { border-color: rgba(53,208,150,.34); }
.orixfy-action-notice.is-error { border-color: rgba(255,102,128,.42); }
.orixfy-action-notice.is-warning { border-color: rgba(255,182,72,.38); }
.orixfy-action-notice.is-info { border-color: rgba(98,210,255,.34); }
.orixfy-action-notice-icon { width: 20px; height: 20px; display: grid; place-items: center; flex: 0 0 auto; }
.orixfy-action-notice-icon::before { content:""; width:16px; height:16px; border-radius:50%; border:2px solid rgba(255,255,255,.23); border-top-color:#70a9ff; animation:orixfySpin .7s linear infinite; }
.orixfy-action-notice.is-success .orixfy-action-notice-icon::before { content:"✓"; width:20px; height:20px; border:0; animation:none; color:#63d9ae; font-size:18px; font-weight:900; line-height:20px; }
.orixfy-action-notice.is-error .orixfy-action-notice-icon::before { content:"×"; width:20px; height:20px; border:0; animation:none; color:#ff7d92; font-size:22px; font-weight:900; line-height:18px; }
.orixfy-action-notice.is-warning .orixfy-action-notice-icon::before { content:"!"; width:20px; height:20px; border:0; animation:none; color:#ffc566; font-size:18px; font-weight:900; }
.orixfy-action-notice.is-info .orixfy-action-notice-icon::before { content:"i"; width:20px; height:20px; border:0; animation:none; color:#74d9ff; font-size:17px; font-weight:900; font-family:serif; }
@keyframes orixfySpin { to { transform: rotate(360deg); } }
@keyframes orixfyNoticeIn { from { opacity:0; transform:translateY(8px) scale(.98); } to { opacity:1; transform:none; } }

/* Les toasts FOSSBilling sont eux aussi au milieu de l'écran. */
.orixfy-toast-container {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
  z-index: 11040 !important;
  width: min(430px, calc(100vw - 32px));
  padding: 0 !important;
}
.orixfy-toast-container .toast {
  width: 100%;
  color: #f4f8fd;
  border: 1px solid rgba(116,169,238,.28);
  border-radius: 14px;
  background: rgba(7,23,40,.97);
  box-shadow: 0 22px 80px rgba(0,0,0,.45);
  backdrop-filter: blur(18px);
}

/* =========================================================
   Sélecteur OS VPS
   ========================================================= */
.orixfy-os-section { padding-bottom: 24px; }
.orixfy-os-help { margin: -4px 0 14px; color: #7891aa; font-size: .8rem; line-height: 1.55; }
.orixfy-os-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.orixfy-os-option { position: relative; }
.orixfy-os-option input { position: absolute; opacity: 0; pointer-events: none; }
.orixfy-os-card {
  min-height: 78px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px;
  border: 1px solid rgba(126,171,220,.16);
  border-radius: 13px;
  background: rgba(6,22,38,.62);
  cursor: pointer;
  transition: .18s ease;
}
.orixfy-os-card:hover { border-color: rgba(77,141,255,.42); background: rgba(77,141,255,.055); transform: translateY(-1px); }
.orixfy-os-option input:checked + .orixfy-os-card { border-color: #4d8dff; background: rgba(77,141,255,.12); box-shadow: 0 0 0 3px rgba(77,141,255,.09); }
.orixfy-os-option input:focus-visible + .orixfy-os-card { outline: 2px solid #78adff; outline-offset: 3px; }
.orixfy-os-badge { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; color: #dcecff; background: #102b47; border: 1px solid rgba(126,171,220,.16); font-weight: 900; font-size: .82rem; letter-spacing: -.02em; }
.orixfy-os-card strong { display:block; color:#edf5ff; font-size:.86rem; }
.orixfy-os-card small { display:block; margin-top:2px; color:#718aa4; font-size:.69rem; }

/* =========================================================
   Addons : un seul switch au lieu du + / -
   ========================================================= */
.orixfy-addons-title { margin: 0 0 10px; color: #dceaff; font-size: 1rem; font-weight: 760; }
.orixfy-addon-list { display: grid; gap: 10px; }
.orixfy-addon-card {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 15px 16px;
  border: 1px solid rgba(126,171,220,.15);
  border-radius: 14px;
  background: rgba(7,24,41,.62);
}
.orixfy-addon-main { min-width: 0; }
.orixfy-addon-title { margin:0; color:#edf5ff; font-size:.9rem; font-weight:800; }
.orixfy-addon-description { margin-top:5px; color:#7891aa; font-size:.76rem; line-height:1.5; }
.orixfy-addon-description p { margin:0; }
.orixfy-addon-controls { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.orixfy-addon-period { min-width: 175px; max-width: 230px; font-size: .78rem; }
.orixfy-addon-qty { width: 78px; min-height: 39px; text-align:center; }
.orixfy-addon-switch { position:relative; display:inline-flex; width:58px; height:32px; margin:0; cursor:pointer; flex:0 0 auto; }
.orixfy-addon-switch input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.orixfy-addon-slider { position:absolute; inset:0; border:1px solid #36516e; border-radius:999px; background:#13283d; transition:.2s ease; }
.orixfy-addon-slider::before { content:""; position:absolute; width:24px; height:24px; left:3px; top:3px; border-radius:50%; background:#8195ab; box-shadow:0 2px 8px rgba(0,0,0,.34); transition:.2s ease; }
.orixfy-addon-switch input:checked + .orixfy-addon-slider { background:#347ee6; border-color:#5799fa; box-shadow:0 0 0 3px rgba(52,126,230,.12); }
.orixfy-addon-switch input:checked + .orixfy-addon-slider::before { transform:translateX(26px); background:#fff; }
.orixfy-addon-switch input:focus-visible + .orixfy-addon-slider { outline:2px solid #6ba8ff; outline-offset:3px; }
.orixfy-addon-price-note { color:#9cb1c7; font-size:.72rem; font-weight:700; }

/* =========================================================
   Panier propre
   ========================================================= */
.orixfy-cart-item-meta-list { display:flex; flex-wrap:wrap; gap:5px 10px; margin-top:4px; }
.orixfy-cart-meta-pill { display:inline-flex !important; align-items:center; gap:5px; margin:0 !important; color:#7892ac !important; font-size:.74rem !important; }
.orixfy-cart-meta-pill b { color:#a9c2db; font-weight:750; }
.orixfy-remove-item { width:39px; height:39px; }
.orixfy-remove-item img { width:18px; height:18px; opacity:.9; }
.orixfy-remove-item:hover img { filter: brightness(1.5); }
.orixfy-promo-row { display:flex; gap:9px; align-items:center; }
.orixfy-promo-row .form-control { flex:1; min-width:0; }
.orixfy-promo-current { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.orixfy-promo-code { color:#e8f1fb; font-weight:800; }
.orixfy-checkout-button { width:100%; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.orixfy-cart-empty { padding: 46px 24px; text-align:center; }
.orixfy-cart-empty .orixfy-shop-empty-icon { margin-left:auto; margin-right:auto; }

/* =========================================================
   Auth publique simplifiée : une carte propre au centre
   ========================================================= */
.orixfy-public .orixfy-auth-shell { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:32px 18px; }
.orixfy-public .orixfy-auth-content { width:100%; min-height:auto; padding:0; }
.orixfy-public .orixfy-auth-mobile-brand { display:flex !important; justify-content:center; width:min(100%,520px); margin:0 auto 20px; }
.orixfy-public .orixfy-auth-card { width:min(100%,520px); margin:0 auto; }
.orixfy-public .orixfy-back-site { display:block; width:min(100%,520px); margin:18px auto 0; text-align:center; }
.orixfy-public-brand-link { display:inline-flex; align-items:center; justify-content:center; gap:10px; color:#fff; font-weight:850; letter-spacing:.14em; }
.orixfy-public-brand-link img { max-width:150px; max-height:48px; object-fit:contain; }

/* Petites corrections natives */
.alert.orixfy-flash { display:none !important; }
.orixfy-native-card { border-color: rgba(126,171,220,.15); }
.orixfy-config-section:first-of-type { border-top:0; }
.orixfy-config-summary .orixfy-config-facts { display:grid; gap:9px; margin-top:18px; }
.orixfy-config-fact { display:flex; align-items:center; gap:9px; color:#87a1bb; font-size:.8rem; }
.orixfy-config-fact::before { content:"✓"; color:#59d6a7; font-weight:900; }

@media (max-width: 767.98px) {
  .orixfy-os-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .orixfy-addon-card { grid-template-columns:1fr; }
  .orixfy-addon-controls { justify-content:space-between; }
  .orixfy-addon-period { min-width:min(100%,220px); flex:1; }
}
@media (max-width: 575.98px) {
  .orixfy-os-grid { grid-template-columns:1fr; }
  .orixfy-os-card { min-height:64px; }
  .orixfy-promo-row { flex-direction:column; align-items:stretch; }
  .orixfy-cart-item-meta-list { display:grid; gap:3px; }
  .orixfy-action-notice { min-width:0; width:calc(100vw - 28px); }
}


/* =========================================================
   ORIXFY 2.1 — OS PAYANT + CONFIRMATION DE COMMANDE
   ========================================================= */

.orixfy-os-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}

.orixfy-os-heading-row h2 {
  margin-bottom: 5px;
}

.orixfy-os-heading-row .orixfy-os-help {
  margin-bottom: 0;
}

.orixfy-os-price {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid rgba(91, 153, 247, .28);
  border-radius: 999px;
  background: rgba(61, 129, 230, .10);
  color: #8fbbff;
  font-size: .78rem;
  font-weight: 850;
  white-space: nowrap;
}

.orixfy-order-success {
  max-width: 780px;
  margin: 34px auto 54px;
  padding: clamp(28px, 5vw, 48px);
  text-align: center;
  border: 1px solid rgba(74, 130, 190, .28);
  border-radius: 24px;
  background:
    radial-gradient(circle at top, rgba(62, 132, 229, .14), transparent 46%),
    linear-gradient(180deg, rgba(13, 35, 56, .98), rgba(7, 24, 40, .99));
  box-shadow: 0 28px 90px rgba(0, 0, 0, .24);
}

.orixfy-order-success-icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  margin: 0 auto 20px;
  border: 1px solid rgba(78, 210, 154, .34);
  border-radius: 50%;
  background: rgba(78, 210, 154, .10);
  color: #64d8a8;
  font-size: 32px;
  font-weight: 900;
  box-shadow: 0 0 0 8px rgba(78, 210, 154, .035);
}

.orixfy-order-success h1 {
  margin: 8px 0 12px;
  color: #f5f9ff;
  font-size: clamp(30px, 5vw, 46px);
  font-weight: 900;
  letter-spacing: -.035em;
}

.orixfy-order-success > p {
  max-width: 620px;
  margin: 0 auto;
  color: #8fa5bc;
  font-size: .95rem;
  line-height: 1.7;
}

.orixfy-order-success-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 26px;
}

.orixfy-order-success-actions .btn {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-inline: 18px;
  border-radius: 12px;
  font-weight: 800;
}

.orixfy-order-success-note {
  margin-top: 18px !important;
  color: #6f879f !important;
  font-size: .78rem !important;
}

@media (max-width: 620px) {
  .orixfy-os-heading-row {
    align-items: flex-start;
  }

  .orixfy-order-success {
    margin-top: 14px;
    padding: 26px 18px;
    border-radius: 18px;
  }

  .orixfy-order-success-actions {
    flex-direction: column;
  }

  .orixfy-order-success-actions .btn {
    width: 100%;
  }
}


/* =========================================================
   ORIXFY 2.2 — SÉLECTEUR DE LANGUE
   ========================================================= */

.orixfy-language-menu .dropdown-item.active,
.orixfy-language-menu .dropdown-item[aria-current="true"] {
  background: rgba(74, 139, 235, .13);
  color: #f7fbff;
}

.orixfy-public-language {
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 1060;
}

.orixfy-public-language .orixfy-language-button {
  background: rgba(8, 26, 43, .88);
  border-color: rgba(72, 115, 158, .34);
  backdrop-filter: blur(14px);
}

@media (max-width: 575px) {
  .orixfy-public-language {
    top: 12px;
    right: 12px;
  }
}


/* =========================================================
   ORIXFY 2.3 — COOKIES
   ========================================================= */

.orixfy-cookie-consent[hidden],
.orixfy-cookie-preferences[hidden] { display:none !important; }

.orixfy-cookie-consent {
  position:fixed; left:18px; right:18px; bottom:18px; z-index:1090;
  display:flex; justify-content:center; pointer-events:none;
}
.orixfy-cookie-card {
  width:min(1120px,100%); display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  gap:18px; align-items:center; padding:18px;
  border:1px solid rgba(76,128,181,.34); border-radius:20px;
  background:radial-gradient(circle at 10% 0%,rgba(61,132,231,.13),transparent 34%),rgba(7,24,40,.97);
  box-shadow:0 24px 80px rgba(0,0,0,.42); backdrop-filter:blur(18px); pointer-events:auto;
}
.orixfy-cookie-icon {
  width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(89,151,243,.24);
  border-radius:14px;background:rgba(61,128,225,.09);color:#75aefc;
}
.orixfy-cookie-icon svg {width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.orixfy-cookie-kicker {margin-bottom:4px;color:#5f9ef8;font-size:.67rem;font-weight:900;letter-spacing:.15em}
.orixfy-cookie-copy h2,.orixfy-cookie-preferences-head h2 {margin:0;color:#f5f9ff;font-size:1.05rem;font-weight:850}
.orixfy-cookie-copy p {max-width:690px;margin:6px 0 3px;color:#91a6bc;font-size:.8rem;line-height:1.55}
.orixfy-cookie-policy-link {color:#75aefc;font-size:.75rem;font-weight:750;text-decoration:none}
.orixfy-cookie-policy-link:hover {color:#a9ceff;text-decoration:underline}
.orixfy-cookie-actions,.orixfy-cookie-preferences-actions {display:flex;align-items:center;gap:8px}
.orixfy-cookie-btn {min-height:41px;padding:9px 13px;border-radius:10px;font-size:.76rem;font-weight:800;white-space:nowrap}
.orixfy-cookie-btn-primary {border:1px solid #5799f8;background:linear-gradient(180deg,#4d90f2,#3479df);color:#fff}
.orixfy-cookie-btn-primary:hover {color:#fff;filter:brightness(1.06)}
.orixfy-cookie-btn-secondary {border:1px solid #294662;background:#0d263d;color:#c7d7e8}
.orixfy-cookie-btn-secondary:hover {border-color:#3c6184;background:#12304c;color:#fff}

.orixfy-cookie-preferences {
  position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:18px;
}
.orixfy-cookie-preferences-backdrop {position:absolute;inset:0;background:rgba(2,10,18,.74);backdrop-filter:blur(8px)}
.orixfy-cookie-preferences-card {
  position:relative;width:min(620px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;padding:22px;
  border:1px solid rgba(78,132,187,.34);border-radius:22px;
  background:radial-gradient(circle at 10% 0%,rgba(62,132,229,.14),transparent 34%),#081d30;
  box-shadow:0 32px 110px rgba(0,0,0,.55);
}
.orixfy-cookie-preferences-head {display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.orixfy-cookie-close {
  width:38px;height:38px;display:grid;place-items:center;padding:0;border:1px solid #294662;border-radius:10px;
  background:#0d263d;color:#aebfd0;font-size:1.45rem;line-height:1;cursor:pointer
}
.orixfy-cookie-close:hover {color:#fff;border-color:#416889}
.orixfy-cookie-preferences-intro {margin:12px 0 18px;color:#8ea4ba;font-size:.82rem;line-height:1.6}
.orixfy-cookie-category {display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 0;border-top:1px solid rgba(55,85,113,.45)}
.orixfy-cookie-category strong {color:#edf5ff;font-size:.84rem}
.orixfy-cookie-category p {max-width:430px;margin:4px 0 0;color:#7f95ac;font-size:.75rem;line-height:1.5}
.orixfy-cookie-required {padding:6px 9px;border:1px solid rgba(81,206,153,.22);border-radius:999px;background:rgba(81,206,153,.07);color:#70d9ac;font-size:.67rem;font-weight:850;white-space:nowrap}
.orixfy-cookie-switch {position:relative;width:50px;height:28px;flex:0 0 auto}
.orixfy-cookie-switch input {position:absolute;opacity:0;pointer-events:none}
.orixfy-cookie-switch span {position:absolute;inset:0;border:1px solid #35506c;border-radius:999px;background:#13283d;cursor:pointer;transition:.18s ease}
.orixfy-cookie-switch span::before {content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#8195aa;transition:.18s ease}
.orixfy-cookie-switch input:checked + span {border-color:#5799f8;background:#347ee6}
.orixfy-cookie-switch input:checked + span::before {transform:translateX(22px);background:#fff}
.orixfy-cookie-switch input:focus-visible + span {outline:2px solid #75aefc;outline-offset:3px}
.orixfy-cookie-preferences-actions {justify-content:flex-end;margin-top:16px;padding-top:17px;border-top:1px solid rgba(55,85,113,.45)}
.orixfy-footer-cookie-link {appearance:none;border:0;padding:0;background:transparent;color:inherit;font:inherit;cursor:pointer}
.orixfy-footer-cookie-link:hover {color:#fff}
.orixfy-cookie-modal-open {overflow:hidden}

@media (max-width:820px) {
  .orixfy-cookie-card {grid-template-columns:auto minmax(0,1fr)}
  .orixfy-cookie-actions {grid-column:1/-1;justify-content:flex-end}
}
@media (max-width:575px) {
  .orixfy-cookie-consent {left:10px;right:10px;bottom:10px}
  .orixfy-cookie-card {grid-template-columns:1fr;gap:12px;padding:15px;border-radius:17px}
  .orixfy-cookie-icon {display:none}
  .orixfy-cookie-actions {display:grid;grid-template-columns:1fr 1fr}
  .orixfy-cookie-actions .orixfy-cookie-btn-primary {grid-column:1/-1;order:-1}
  .orixfy-cookie-btn {width:100%}
  .orixfy-cookie-preferences {padding:10px}
  .orixfy-cookie-preferences-card {padding:18px 15px;border-radius:18px}
  .orixfy-cookie-category {align-items:flex-start}
  .orixfy-cookie-preferences-actions {display:grid;grid-template-columns:1fr}
}
.orixfy-topbar .navbar {
    position: relative;
}

.orixfy-brand {
    position: relative;
    left: 0;
    transform: none;
    margin-left: 20px !important;
    margin-right: 70px !important;
}

.orixfy-brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 42px !important;
    color: white !important;

    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;

    margin: 0 !important;
    padding: 0 !important;
}

.orixfy-logo {
    display: block !important;
    width: 230px !important;
    max-width: 230px !important;
    height: auto !important;
    max-height: 70px !important;
    object-fit: contain !important;
}

@media (max-width: 991.98px) {
    .orixfy-brand {
        position: static !important;
        left: auto !important;
        transform: none !important;
        margin: 0 !important;
    }

    .orixfy-logo {
        width: 230px !important;
        max-width: 230px !important;
    }
}
/* HEADER ORIXFY - logo vraiment aligné à gauche */

.orixfy-topbar .container-xl {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 20px !important;
}

.orixfy-brand {
    margin-left: 20px !important;
    position: static !important;
    transform: none !important;
}

/* Mobile */
@media (max-width: 991.98px) {
    .orixfy-topbar .container-xl {
        padding-left: 0 !important;
        padding-right: 12px !important;
    }

    .orixfy-brand {
        margin-left: 12px !important;
    }
}
@media (max-width: 991.98px) {

    .orixfy-topbar,
    .orixfy-topbar .navbar,
    .orixfy-topbar .container,
    .orixfy-topbar .container-fluid,
    .orixfy-topbar .container-xl {
        padding-left: 0 !important;
        margin-left: 0 !important;
    }

    .orixfy-topbar .navbar {
        justify-content: flex-start !important;
        padding-right: 12px !important;
    }

    .orixfy-brand {
        position: static !important;
        left: auto !important;
        right: auto !important;
        transform: none !important;

        margin-left: -35px !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
    }

    .orixfy-logo {
        display: block !important;
        width: 230px !important;
        max-width: 230px !important;
        margin-left: 0 !important;
    }
}
/* =========================================================
   ORIXFY — RÉCAPITULATIF COMMANDE
   ========================================================= */

.orixfy-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    width: 100%;
    margin: 14px 0;
}

.orixfy-summary-price {
    margin-left: auto;
    text-align: right;
    white-space: nowrap;
    font-weight: 700;
}

#orixfy-setup-price.is-free {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.orixfy-old-price {
    opacity: .55;
    text-decoration: line-through;
    font-size: 13px;
}

.orixfy-free-price {
    color: #62a2ff;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .4px;
}

.orixfy-setup-offer {
    margin-top: 12px;
    padding: 11px 14px;
    display: flex;
    align-items: center;
    gap: 11px;
    border: 1px solid rgba(72, 137, 255, .28);
    border-radius: 10px;
    background: rgba(55, 126, 246, .08);
}

.orixfy-setup-offer[hidden] {
    display: none !important;
}

.orixfy-gift {
    font-size: 18px;
}

.orixfy-setup-offer strong {
    display: block;
    color: #fff;
    font-size: 13px;
}

.orixfy-setup-offer small {
    display: block;
    margin-top: 2px;
    color: #8eaac9;
    font-size: 12px;
}

/* RENOUVELLEMENT À GAUCHE */

.orixfy-renewal {
    width: 100%;
    margin-top: 22px;
    padding-top: 17px;
    border-top: 1px solid rgba(255,255,255,.08);
    text-align: left !important;
    align-items: flex-start !important;
}

.orixfy-renewal-label {
    display: block;
    margin: 0 0 5px 0;
    color: #7fa4ce;
    font-size: 13px;
    text-align: left !important;
}

.orixfy-renewal-price {
    display: block;
    color: #fff;
    font-size: 21px;
    font-weight: 800;
    text-align: left !important;
}