/*
 * Zavaris Group — front-end styles.
 * Colours come from CSS variables printed by inc/theme-setup.php (editable in admin).
 */

@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-var.woff2") format("woff2");
	font-weight: 300 800;
	font-style: normal;
	font-display: swap;
}

:root {
	--zg-night: #071A33;
	--zg-night-2: #12253d;
	--zg-primary: #0B5CFF;
	--zg-primary-dark: #0948c7;
	--zg-button: #0B5CFF;
	--zg-button-hover: #0948c7;
	--zg-gold: #C8A35A;
	--zg-gold-soft: #ead9b6;
	--zg-bg: #F5F7FB;
	--zg-text: #4B5563;
	--zg-white: #FFFFFF;
	--zg-ink: var(--zg-night);
	--zg-line: #dfe4ee;
	--zg-line-dark: rgba(255, 255, 255, .14);
	--zg-error: #b42318;
	--zg-success: #067647;
	--zg-font: "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--zg-radius-s: 6px;
	--zg-radius: 12px;
	--zg-radius-l: 20px;
	--zg-wrap: 1240px;
	--zg-gutter: clamp(1.1rem, 4vw, 2.5rem);
	--zg-section: clamp(3.5rem, 8vw, 6.5rem);
	--zg-header-h: 76px;
	--zg-shadow: 0 1px 2px rgba(7, 26, 51, .06), 0 12px 32px -12px rgba(7, 26, 51, .18);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--zg-header-h) + 1rem); }
body {
	margin: 0;
	font-family: var(--zg-font);
	font-size: clamp(1rem, .96rem + .2vw, 1.0625rem);
	line-height: 1.65;
	color: var(--zg-text);
	background: var(--zg-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
img, svg { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--zg-primary); text-underline-offset: .18em; }
a:hover { color: var(--zg-primary-dark); }
h1, h2, h3, h4 { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; color: var(--zg-ink); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0 0 .6em; text-wrap: balance; }
h1 { font-size: clamp(2.2rem, 1.6rem + 3vw, 3.9rem); letter-spacing: -.035em; font-weight: 750; }
h2 { font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.5rem); }
h3 { font-size: clamp(1.1rem, 1.04rem + .3vw, 1.25rem); letter-spacing: -.01em; }
p { margin: 0 0 1em; }
ul, ol { padding: 0; margin: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--zg-gold); outline-offset: 3px; border-radius: 4px; }
.zg-section--dark :focus-visible, .zg-hero :focus-visible, .zg-footer :focus-visible, .zg-cta :focus-visible { outline-color: var(--zg-gold); }
::selection { background: var(--zg-gold-soft); color: var(--zg-night); }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.zg-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.zg-skip {
	position: absolute; left: 1rem; top: -100px; z-index: 1000; padding: .75rem 1.1rem;
	background: var(--zg-gold); color: var(--zg-night); font-weight: 700; border-radius: var(--zg-radius-s); text-decoration: none;
}
.zg-skip:focus { top: 1rem; }
.zg-main:focus { outline: none; }

.zg-container { width: 100%; max-width: var(--zg-wrap); margin-inline: auto; padding-inline: var(--zg-gutter); }
.zg-narrow { max-width: 820px; }
.zg-icon { flex: none; display: inline-block; vertical-align: middle; }
.zg-lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); line-height: 1.6; max-width: 62ch; }

/* ---------- Buttons & links ---------- */
.zg-btn {
	--b-bg: var(--zg-button); --b-fg: #fff; --b-bd: var(--zg-button);
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 48px; padding: .75rem 1.4rem; border-radius: var(--zg-radius-s);
	border: 1.5px solid var(--b-bd); background: var(--b-bg); color: var(--b-fg);
	font-weight: 650; font-size: .98rem; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background-color .18s, border-color .18s, color .18s;
	text-align: center;
}
.zg-btn:hover { color: var(--b-fg); }
.zg-btn--primary:hover { --b-bg: var(--zg-button-hover); --b-bd: var(--zg-button-hover); }
.zg-btn--gold { --b-bg: var(--zg-gold); --b-bd: var(--zg-gold); --b-fg: var(--zg-night); }
.zg-btn--gold:hover { --b-bg: var(--zg-gold-soft); --b-bd: var(--zg-gold-soft); }
.zg-btn--ghost { --b-bg: transparent; --b-bd: rgba(255, 255, 255, .45); --b-fg: #fff; }
.zg-btn--ghost:hover { --b-bd: #fff; --b-bg: rgba(255, 255, 255, .06); }
.zg-btn--outline { --b-bg: transparent; --b-bd: var(--zg-line); --b-fg: var(--zg-ink); }
.zg-btn--outline:hover { --b-bd: var(--zg-ink); }
.zg-btn--lg { min-height: 54px; padding: .9rem 1.7rem; font-size: 1.02rem; }
.zg-btn--block { width: 100%; }
.zg-link { display: inline-flex; align-items: center; gap: .35rem; font-weight: 650; text-decoration: none; }
.zg-link::after { content: ""; width: .5em; height: .5em; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); transition: transform .18s; }
.zg-link:hover::after { transform: translateX(3px) rotate(45deg); }

/* ---------- Topbar ---------- */
.zg-topbar { background: var(--zg-night); color: rgba(255, 255, 255, .78); font-size: .85rem; }
.zg-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 40px; }
.zg-topbar__list { display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; }
.zg-topbar__list li, .zg-topbar__list a { display: inline-flex; align-items: center; gap: .45rem; color: inherit; text-decoration: none; }
.zg-topbar__list a:hover, .zg-topbar__status:hover { color: #fff; }
.zg-topbar .zg-icon { color: var(--zg-gold); }
.zg-topbar__status { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(200, 163, 90, .5); white-space: nowrap; }

/* ---------- Header ---------- */
.zg-header { background: #fff; border-bottom: 1px solid var(--zg-line); position: relative; z-index: 50; }
.zg-header--sticky { position: sticky; top: 0; }
.admin-bar .zg-header--sticky { top: 32px; }
.zg-header.is-scrolled { box-shadow: 0 8px 24px -16px rgba(7, 26, 51, .35); }
.zg-header__inner { display: flex; align-items: center; gap: 1.5rem; min-height: var(--zg-header-h); }
.zg-logo { display: inline-flex; align-items: center; text-decoration: none; flex: none; }
.zg-logo__img { max-height: 44px; width: auto; }
.zg-logo__img--mobile { display: none; }
.zg-wordmark { display: inline-flex; align-items: baseline; gap: .4rem; line-height: 1; }
.zg-wordmark__main { font-weight: 800; font-size: 1.35rem; letter-spacing: .14em; color: var(--zg-night); }
.zg-wordmark__sub { font-weight: 500; font-size: .95rem; letter-spacing: .08em; color: var(--zg-gold); }
.zg-logo--footer .zg-wordmark__main { color: #fff; }

.zg-nav { margin-inline-start: auto; }
.zg-nav__list { display: flex; align-items: center; gap: .15rem; }
.zg-nav__list a {
	display: block; padding: .55rem .75rem; color: var(--zg-ink); font-weight: 600; font-size: .95rem;
	text-decoration: none; border-radius: var(--zg-radius-s); position: relative;
}
.zg-nav__list a:hover { background: var(--zg-bg); color: var(--zg-ink); }
.zg-nav__list a[aria-current="page"]::after, .zg-nav__list .current-menu-item > a::after {
	content: ""; position: absolute; left: .75rem; right: .75rem; bottom: .2rem; height: 2px; background: var(--zg-gold);
}
.zg-nav__list .sub-menu { display: none; }
.zg-header__actions { display: flex; align-items: center; gap: .6rem; margin-inline-start: auto; }
.zg-nav + .zg-header__actions { margin-inline-start: .5rem; }

/* Language switcher */
.zg-lang { position: relative; }
.zg-lang__toggle {
	display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .4rem .7rem;
	border: 1px solid var(--zg-line); background: #fff; border-radius: var(--zg-radius-s); cursor: pointer; font-weight: 650; font-size: .88rem; color: var(--zg-ink);
}
.zg-lang__toggle:hover { border-color: var(--zg-ink); }
.zg-lang__chev { transition: transform .2s; }
.zg-lang__toggle[aria-expanded="true"] .zg-lang__chev { transform: rotate(180deg); }
.zg-flag { width: 20px; height: 14px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(7, 26, 51, .12); flex: none; overflow: hidden; }
.zg-lang__list {
	position: absolute; right: 0; top: calc(100% + 10px); width: 288px; max-height: min(70vh, 520px); overflow-y: auto;
	background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius); box-shadow: 0 18px 44px rgba(7, 26, 51, .16); padding: .5rem; z-index: 60;
}
.zg-lang__list[hidden] { display: none; }
.zg-lang__list a { display: flex; align-items: center; gap: .7rem; padding: .6rem .7rem; border-radius: var(--zg-radius-s); color: var(--zg-ink); text-decoration: none; font-size: .95rem; }
.zg-lang__list a:hover { background: var(--zg-bg); }
.zg-lang__list a.is-current { background: var(--zg-gold-soft); }
.zg-lang__list .zg-flag { width: 24px; height: 17px; border-radius: 3px; }
.zg-lang__name { flex: 1; font-weight: 600; }
.zg-lang__list a.is-current .zg-lang__name { font-weight: 700; }
.zg-lang__code { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--zg-text); }
.zg-lang__check { color: var(--zg-gold); opacity: 0; flex: none; }
.zg-lang__list a.is-current .zg-lang__check { opacity: 1; }
.zg-lang__list a.is-current .zg-lang__code { display: none; }

.zg-burger, .zg-drawer__close {
	display: none; align-items: center; justify-content: center; width: 46px; height: 46px;
	border: 1px solid var(--zg-line); background: #fff; border-radius: var(--zg-radius-s); cursor: pointer; color: var(--zg-ink);
}

/* Drawer */
.zg-drawer { position: fixed; inset: 0; z-index: 200; background: rgba(7, 26, 51, .55); }
.zg-drawer[hidden] { display: none; }
.zg-drawer__panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 100%); background: #fff; overflow-y: auto;
	padding: 1rem var(--zg-gutter) 2rem; display: flex; flex-direction: column; gap: 1.1rem;
	animation: zg-slide .25s ease-out;
}
@keyframes zg-slide { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.zg-drawer__head { display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.zg-drawer__close { display: inline-flex; }
.zg-drawer__nav a { display: block; padding: .8rem 0; border-bottom: 1px solid var(--zg-line); color: var(--zg-ink); font-weight: 650; font-size: 1.08rem; text-decoration: none; }
.zg-drawer__nav a[aria-current="page"] { color: var(--zg-primary); }
/* Client-space link inside the drawer */
.zg-drawer__account { display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; border-radius: var(--zg-radius); background: var(--zg-night); color: #fff; text-decoration: none; font-weight: 650; }
.zg-drawer__account svg { flex: none; color: var(--zg-gold); }
.zg-drawer__account span { flex: 1; }
.zg-drawer__account-arrow { color: rgba(255, 255, 255, .6); }
.zg-drawer__account:hover { background: var(--zg-night-2); }

.zg-drawer__label { margin: .35rem 0 -.2rem; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--zg-text); }
.zg-drawer__langs { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.zg-drawer__langs a { display: flex; align-items: center; gap: .6rem; padding: .65rem .7rem; border: 1px solid var(--zg-line); border-radius: var(--zg-radius); color: var(--zg-ink); text-decoration: none; background: #fff; transition: border-color .15s, background .15s, box-shadow .15s; }
.zg-drawer__langs .zg-flag { width: 26px; height: 18px; border-radius: 3px; }
.zg-drawer__lang-text { display: flex; flex-direction: column; line-height: 1.15; flex: 1; min-width: 0; }
.zg-drawer__lang-name { font-size: .9rem; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zg-drawer__lang-code { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--zg-text); }
.zg-drawer__lang-check { flex: none; color: var(--zg-gold); opacity: 0; }
.zg-drawer__langs a:hover { border-color: var(--zg-ink); }
.zg-drawer__langs a.is-current { border-color: var(--zg-gold); background: var(--zg-gold-soft); box-shadow: 0 0 0 1px var(--zg-gold) inset; }
.zg-drawer__langs a.is-current .zg-drawer__lang-name { font-weight: 800; }
.zg-drawer__langs a.is-current .zg-drawer__lang-code { display: none; }
.zg-drawer__langs a.is-current .zg-drawer__lang-check { opacity: 1; }
.zg-drawer__contact li a { display: flex; align-items: center; gap: .6rem; padding: .35rem 0; color: var(--zg-ink); text-decoration: none; }
html.zg-locked, html.zg-locked body { overflow: hidden; }

/* ---------- Hero (signature: guilloché) ---------- */
.zg-hero {
	position: relative; overflow: hidden; color: rgba(255, 255, 255, .82);
	background: radial-gradient(120% 90% at 85% 40%, var(--zg-night-2) 0%, var(--zg-night) 60%);
}
.zg-hero--image { background: linear-gradient(90deg, var(--zg-night) 30%, rgba(7, 26, 51, .72) 70%, rgba(7, 26, 51, .55)), var(--zg-hero-img) center / cover no-repeat, var(--zg-night); }
.zg-hero__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: 2rem; min-height: min(78vh, 720px); padding-block: clamp(3.5rem, 8vw, 6rem); }
.zg-hero__content { position: relative; z-index: 2; max-width: 640px; }
.zg-hero__brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--zg-gold); font-weight: 600; font-size: .98rem; margin-bottom: 1.4rem; }
.zg-hero__brand::before { content: ""; width: 34px; height: 1px; background: var(--zg-gold); }
.zg-hero__title { color: #fff; margin-bottom: 1.2rem; }
.zg-hero__sub { font-size: clamp(1.05rem, 1rem + .35vw, 1.22rem); max-width: 54ch; margin-bottom: 2rem; }
.zg-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.zg-hero__visual { position: relative; align-self: stretch; min-height: 320px; }
.zg-hero__guilloche {
	position: absolute; top: 50%; left: 50%; width: min(760px, 150%); max-width: none; height: auto;
	transform: translate(-40%, -50%); opacity: .9; pointer-events: none;
}
.zg-anim .zg-hero__guilloche { animation: zg-rotate 240s linear infinite; }
@keyframes zg-rotate { from { transform: translate(-40%, -50%) rotate(0); } to { transform: translate(-40%, -50%) rotate(360deg); } }
.zg-hero--image .zg-hero__guilloche { opacity: .35; }
.zg-quick { margin-top: 2.8rem; padding-top: 1.4rem; border-top: 1px solid var(--zg-line-dark); display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.2rem; }
.zg-quick__label { margin: 0; font-size: .85rem; color: rgba(255, 255, 255, .6); }
.zg-quick ul { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; }
.zg-quick a { color: #fff; text-decoration: none; font-weight: 600; font-size: .92rem; border-bottom: 1px solid rgba(200, 163, 90, .55); padding-bottom: 2px; }
.zg-quick a:hover { color: var(--zg-gold); }

/* Page hero */
.zg-pagehero { position: relative; overflow: hidden; background: var(--zg-night); color: rgba(255, 255, 255, .8); }
.zg-pagehero__guilloche, .zg-cta__guilloche, .zg-footer__guilloche {
	position: absolute; pointer-events: none; background: url("../images/guilloche.svg") center / contain no-repeat;
}
.zg-pagehero__guilloche { width: 560px; height: 560px; right: -170px; top: 50%; transform: translateY(-50%); opacity: .55; }
.zg-pagehero__inner { position: relative; padding-block: clamp(2.8rem, 6vw, 4.8rem); }
.zg-pagehero__title { color: #fff; font-size: clamp(2rem, 1.5rem + 2.4vw, 3.2rem); max-width: 22ch; margin-bottom: .6rem; }
.zg-pagehero__lead { max-width: 60ch; font-size: 1.1rem; margin: 0; }
.zg-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .3rem; font-size: .85rem; margin-bottom: 1.2rem; }
.zg-breadcrumb li + li::before { content: "/"; margin-inline-end: .3rem; color: rgba(255, 255, 255, .4); }
.zg-breadcrumb a { color: var(--zg-gold); text-decoration: none; }
.zg-breadcrumb a:hover { text-decoration: underline; }

/* ---------- Sections ---------- */
.zg-section { padding-block: var(--zg-section); }
.zg-section--alt { background: var(--zg-bg); }
.zg-section--dark { background: var(--zg-night); color: rgba(255, 255, 255, .78); }
.zg-section--dark h2, .zg-section--dark h3 { color: #fff; }
.zg-section--sim { background: linear-gradient(180deg, #fff 0%, var(--zg-bg) 100%); }
.zg-section__head { max-width: 680px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.zg-section__head p { font-size: 1.1rem; margin: 0; }
.zg-section__head--row { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.zg-section__head--row > div { max-width: 640px; }
.zg-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.zg-split--sim { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); align-items: center; }
.zg-split--form { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.zg-split--form { align-items: start; }
.zg-split--faq { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.zg-split__text > .zg-btn { margin-top: .5rem; }
.zg-intro { max-width: 70ch; font-size: 1.1rem; }

/* Check lists */
.zg-checks li { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: .55rem; color: var(--zg-ink); }
.zg-checks .zg-icon { color: var(--zg-primary); margin-top: .2em; }
.zg-checks--gold .zg-icon { color: var(--zg-gold); }
.zg-checks--lg { margin: 1.5rem 0 2rem; }
.zg-checks--lg li { font-size: 1.05rem; margin-bottom: .8rem; }

/* Services */
.zg-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--zg-line); border-left: 1px solid var(--zg-line); }
.zg-service { display: flex; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.3rem); border-right: 1px solid var(--zg-line); border-bottom: 1px solid var(--zg-line); background: #fff; transition: background-color .2s; }
.zg-service:hover { background: var(--zg-bg); }
.zg-service__icon { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: 50%; background: var(--zg-bg); color: var(--zg-primary); margin-bottom: 1.3rem; box-shadow: inset 0 0 0 1px var(--zg-line); }
.zg-service:hover .zg-service__icon { background: #fff; }
.zg-service__desc { flex: 1; }

/* Financing types */
.zg-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.zg-types--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.zg-type { background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius); padding: 1.5rem; display: flex; flex-direction: column; }
.zg-type h3 { margin-bottom: .45rem; font-size: 1.1rem; }
.zg-type p { font-size: .95rem; }
.zg-type__term { margin: auto 0 0; padding-top: .9rem; border-top: 1px dashed var(--zg-line); display: flex; gap: .45rem; align-items: center; color: var(--zg-ink); font-weight: 600; font-size: .88rem; }
.zg-type__term .zg-icon { color: var(--zg-gold); }

/* ---------- Simulator ---------- */
.zg-sim { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius-l); box-shadow: var(--zg-shadow); overflow: hidden; }
.zg-sim__form { padding: clamp(1.4rem, 3vw, 2.2rem); display: grid; gap: 1.6rem; align-content: center; }
.zg-sim__label-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .6rem; }
.zg-sim__label-row label { font-weight: 650; color: var(--zg-ink); font-size: .95rem; }
.zg-sim__number { width: 7.5rem; text-align: right; padding: .45rem .6rem; border: 1px solid var(--zg-line); border-radius: var(--zg-radius-s); font-weight: 700; color: var(--zg-ink); font-variant-numeric: tabular-nums; background: var(--zg-bg); }
.zg-sim__number:focus { border-color: var(--zg-primary); background: #fff; }
.zg-sim__number.is-invalid { border-color: var(--zg-error); }
.zg-range { -webkit-appearance: none; appearance: none; width: 100%; height: 28px; background: transparent; cursor: pointer; --p: 50%; }
.zg-range::-webkit-slider-runnable-track { height: 6px; border-radius: 3px; background: linear-gradient(90deg, var(--zg-primary) var(--p), var(--zg-line) var(--p)); }
.zg-range::-moz-range-track { height: 6px; border-radius: 3px; background: var(--zg-line); }
.zg-range::-moz-range-progress { height: 6px; border-radius: 3px; background: var(--zg-primary); }
.zg-range::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -8px; border-radius: 50%; background: #fff; border: 3px solid var(--zg-primary); box-shadow: 0 2px 6px rgba(7, 26, 51, .25); }
.zg-range::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--zg-primary); }
.zg-range:focus-visible { outline-offset: 2px; }
.zg-sim__result { background: var(--zg-night); color: rgba(255, 255, 255, .78); padding: clamp(1.4rem, 3vw, 2.2rem); display: flex; flex-direction: column; position: relative; overflow: hidden; }
.zg-sim__result::before { content: ""; position: absolute; width: 340px; height: 340px; right: -150px; top: -150px; background: url("../images/guilloche.svg") center / contain no-repeat; opacity: .35; pointer-events: none; }
.zg-sim__result > * { position: relative; }
.zg-sim__result-label { margin: 0 0 .3rem; font-size: .92rem; }
.zg-sim__monthly { font-size: clamp(2rem, 1.6rem + 1.8vw, 2.8rem); font-weight: 750; color: #fff; letter-spacing: -.03em; line-height: 1.1; margin-bottom: 1.3rem; font-variant-numeric: tabular-nums; }
.zg-sim__list { margin: 0 0 1.2rem; }
.zg-sim__list div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-top: 1px solid var(--zg-line-dark); font-size: .9rem; }
.zg-sim__list dt { margin: 0; }
.zg-sim__list dd { margin: 0 0 0 auto; white-space: nowrap; color: #fff; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.zg-sim__note { font-size: .8rem; line-height: 1.5; color: rgba(255, 255, 255, .62); margin-top: auto; padding-bottom: 1rem; }

/* ---------- Cards (tiers) ---------- */
.zg-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; align-items: stretch; }
.zg-tier { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius-l); padding: 1.4rem; }
.zg-tier.is-featured { border-color: var(--zg-gold); box-shadow: 0 0 0 1px var(--zg-gold), var(--zg-shadow); }
.zg-tier__visual {
	position: relative; aspect-ratio: 1.586; border-radius: 14px; padding: 1.1rem 1.2rem; overflow: hidden; color: #fff;
	display: flex; flex-direction: column; justify-content: space-between; margin-bottom: 1.4rem; isolation: isolate;
}
.zg-tier__visual::after { content: ""; position: absolute; inset: -20%; z-index: -1; background: url("../images/guilloche.svg") 120% 50% / 90% no-repeat; opacity: .5; }
.zg-tier--0 .zg-tier__visual { background: linear-gradient(135deg, #1c4f9c, var(--zg-primary-dark)); }
.zg-tier--1 .zg-tier__visual { background: linear-gradient(135deg, var(--zg-night-2), var(--zg-night)); }
.zg-tier--2 .zg-tier__visual { background: linear-gradient(135deg, #0d0f14, #2a2418); }
.zg-tier--2 .zg-tier__visual::after { opacity: .8; }
.zg-tier__brand { font-weight: 800; letter-spacing: .12em; font-size: .78rem; opacity: .9; }
.zg-tier__chip { width: 38px; height: 28px; border-radius: 5px; background: linear-gradient(135deg, var(--zg-gold-soft), var(--zg-gold)); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); }
.zg-tier__name { font-weight: 700; font-size: 1.15rem; letter-spacing: .04em; color: var(--zg-gold-soft); }
.zg-tier__body { display: flex; flex-direction: column; flex: 1; }
.zg-tier__title { margin-bottom: .3rem; font-size: clamp(1.25rem, 1.15rem + .5vw, 1.5rem); }
.zg-tier__label { font-size: .82rem; font-weight: 700; color: var(--zg-ink); margin: 1rem 0 .45rem; }
.zg-tier .zg-checks li { font-size: .93rem; margin-bottom: .4rem; }
.zg-tier__fees { margin: 1.1rem 0; padding: .7rem .9rem; background: var(--zg-bg); border-radius: var(--zg-radius-s); font-size: .9rem; color: var(--zg-ink); font-weight: 650; }
.zg-tier__fees span { font-weight: 500; color: var(--zg-text); }
.zg-tier .zg-btn { margin-top: auto; }
.zg-tier .zg-link { margin-top: .9rem; align-self: center; font-size: .92rem; }

/* Accounts */
.zg-accounts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.zg-account { background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius); padding: 1.5rem; }
.zg-account__icon { display: inline-flex; color: var(--zg-gold); margin-bottom: .9rem; }
.zg-account p { font-size: .95rem; }
.zg-account .zg-checks li { font-size: .9rem; }

/* Trust */
.zg-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--zg-line-dark); }
.zg-trust li { padding: 1.8rem 1.5rem 0 0; }
.zg-trust li + li { padding-left: 1.5rem; border-left: 1px solid var(--zg-line-dark); }
.zg-trust .zg-icon { color: var(--zg-gold); margin-bottom: 1rem; }
.zg-trust p { font-size: .95rem; margin: 0; }

/* Process (real sequence → numbered) */
.zg-process { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; counter-reset: none; position: relative; }
.zg-process__step { position: relative; padding-top: 1.2rem; border-top: 2px solid var(--zg-line); }
.zg-process__step::before { content: ""; position: absolute; top: -2px; left: 0; width: 48px; height: 2px; background: var(--zg-gold); }
.zg-process__num { display: block; font-size: clamp(2.6rem, 2rem + 2vw, 3.6rem); font-weight: 300; color: var(--zg-gold); line-height: 1; letter-spacing: -.04em; margin-bottom: .8rem; font-variant-numeric: tabular-nums; }
.zg-process__step p { margin: 0; }

/* FAQ */
.zg-faq { border-top: 1px solid var(--zg-line); }
.zg-faq__item { border-bottom: 1px solid var(--zg-line); }
.zg-faq__q { margin: 0; font-size: inherit; }
.zg-faq__btn {
	width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left;
	padding: 1.15rem 0; background: none; border: 0; cursor: pointer; color: var(--zg-ink); font-weight: 650; font-size: 1.04rem; line-height: 1.4;
}
.zg-faq__btn:hover { color: var(--zg-primary); }
.zg-faq__sign { position: relative; width: 28px; height: 28px; flex: none; border: 1px solid var(--zg-line); border-radius: 50%; }
.zg-faq__sign::before, .zg-faq__sign::after { content: ""; position: absolute; top: 50%; left: 50%; width: 11px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform .2s; }
.zg-faq__sign::after { transform: translate(-50%, -50%) rotate(90deg); }
.zg-faq__btn[aria-expanded="true"] .zg-faq__sign { border-color: var(--zg-gold); }
.zg-faq__btn[aria-expanded="true"] .zg-faq__sign::after { transform: translate(-50%, -50%) rotate(0); }
.zg-faq__a { padding: 0 3rem 1.2rem 0; }
.zg-faq__a p:last-child { margin: 0; }
.zg-faqpage { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.zg-faqpage__nav { position: sticky; top: calc(var(--zg-header-h) + 1.5rem); }
.zg-faqpage__nav a { display: block; padding: .5rem .8rem; border-left: 2px solid var(--zg-line); color: var(--zg-ink); text-decoration: none; font-weight: 600; font-size: .95rem; }
.zg-faqpage__nav a:hover, .zg-faqpage__nav a.is-active { border-left-color: var(--zg-gold); color: var(--zg-primary); }
.zg-faqgroup + .zg-faqgroup { margin-top: 3rem; }
.zg-faqgroup h2 { font-size: 1.5rem; }

/* CTA */
.zg-cta { position: relative; overflow: hidden; background: var(--zg-night); color: rgba(255, 255, 255, .8); padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.zg-cta__guilloche { width: 620px; height: 620px; left: -220px; top: 50%; transform: translateY(-50%); opacity: .4; }
.zg-cta__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 3rem; align-items: center; }
.zg-cta__title { color: #fff; margin-bottom: .4rem; max-width: 24ch; }
.zg-cta__text { margin: 0; font-size: 1.1rem; }
.zg-cta__actions { display: flex; flex-wrap: wrap; gap: .8rem; }

/* Panels, values, columns */
.zg-panel { background: var(--zg-bg); border-radius: var(--zg-radius-l); padding: clamp(1.5rem, 3vw, 2.4rem); }
.zg-panel--dark { background: var(--zg-night); color: rgba(255, 255, 255, .8); position: relative; overflow: hidden; }
.zg-panel--dark .zg-panel__title { color: var(--zg-gold); }
.zg-panel__title { font-size: 1.15rem; }
.zg-panel__quote { font-size: clamp(1.2rem, 1.1rem + .6vw, 1.55rem); line-height: 1.45; color: #fff; font-weight: 500; margin: 0; letter-spacing: -.01em; }
.zg-values { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.zg-values li { border-top: 2px solid var(--zg-gold); padding-top: 1rem; }
.zg-values p { margin: 0; font-size: .95rem; }
.zg-columns3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 3rem); }
.zg-column p:last-child { margin: 0; }
.zg-note { font-size: .92rem; padding: 1rem 1.2rem; border-left: 3px solid var(--zg-gold); background: #fbf8f1; border-radius: 0 var(--zg-radius-s) var(--zg-radius-s) 0; color: var(--zg-ink); }
.zg-note--warn { border-left-color: #b54708; background: #fffaeb; }

/* Prose / legal */
.zg-prose h2 { font-size: 1.35rem; margin-top: 2.2rem; }
.zg-prose p, .zg-prose li { max-width: 72ch; }
.zg-prose ul { list-style: disc; padding-left: 1.2rem; margin-bottom: 1em; }
.zg-prose ol { list-style: decimal; padding-left: 1.2rem; margin-bottom: 1em; }
.zg-imprint { display: grid; grid-template-columns: max-content 1fr; gap: .5rem 2rem; margin: 1.5rem 0 2rem; }
.zg-imprint dt { font-weight: 700; color: var(--zg-ink); }
.zg-imprint dd { margin: 0; }

/* ---------- Forms ---------- */
.zg-form-wrap { background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius-l); padding: clamp(1.3rem, 3vw, 2.2rem); box-shadow: var(--zg-shadow); }
.zg-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1rem; }
.zg-field { grid-column: 1 / -1; display: flex; flex-direction: column; gap: .35rem; }
.zg-field--half { grid-column: span 1; }
.zg-field label { font-weight: 650; font-size: .92rem; color: var(--zg-ink); }
.zg-req { color: var(--zg-error); }
.zg-opt { font-weight: 400; color: var(--zg-text); font-size: .85rem; }
.zg-field input, .zg-field select, .zg-field textarea {
	width: 100%; min-height: 48px; padding: .7rem .85rem; border: 1px solid #cfd6e3; border-radius: var(--zg-radius-s);
	background: #fff; color: var(--zg-ink); transition: border-color .15s, box-shadow .15s;
}
.zg-field textarea { min-height: 130px; resize: vertical; }
.zg-field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--zg-ink) 50%), linear-gradient(135deg, var(--zg-ink) 50%, transparent 50%); background-position: calc(100% - 20px) 55%, calc(100% - 15px) 55%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 2.4rem; }
.zg-field input:focus, .zg-field select:focus, .zg-field textarea:focus { outline: none; border-color: var(--zg-primary); box-shadow: 0 0 0 3px rgba(11, 92, 255, .18); }
.zg-field [aria-invalid="true"] { border-color: var(--zg-error); }
.zg-field__error { margin: 0; color: var(--zg-error); font-size: .85rem; font-weight: 600; }
.zg-field__error[hidden] { display: none; }
.zg-consent { display: grid; grid-template-columns: auto 1fr; gap: .15rem .7rem; margin-top: 1.3rem; font-size: .9rem; align-items: start; }
.zg-consent input { width: 20px; height: 20px; margin: .15rem 0 0; accent-color: var(--zg-primary); }
.zg-consent .zg-field__error { grid-column: 2; }
.zg-form__footer { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; margin-top: 1.4rem; }
.zg-form__hint { margin: 0; font-size: .85rem; }
.zg-form.is-sending button[type="submit"] { opacity: .65; pointer-events: none; }
.zg-alert { display: flex; gap: .8rem; align-items: flex-start; padding: 1rem 1.1rem; border-radius: var(--zg-radius); margin-bottom: 1.3rem; font-size: .95rem; }
.zg-alert p { margin: 0; }
.zg-alert strong { display: block; color: inherit; }
.zg-alert--success { background: #ecfdf3; color: var(--zg-success); border: 1px solid #abefc6; }
.zg-alert--error { background: #fef3f2; color: var(--zg-error); border: 1px solid #fecdca; }
.zg-alert--info { background: #eff4ff; color: #1d3f8f; border: 1px solid #c7d7fe; }
.zg-alert:focus { outline: 3px solid var(--zg-gold); outline-offset: 2px; }

/* Contact & status */
.zg-contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.zg-contact__list li { display: flex; gap: .9rem; padding: 1rem 0; border-bottom: 1px solid var(--zg-line); }
.zg-contact__list .zg-icon { color: var(--zg-gold); margin-top: .2rem; }
.zg-contact__list strong { display: block; color: var(--zg-ink); font-size: .88rem; }
.zg-contact__list a { color: var(--zg-ink); text-decoration: none; font-weight: 600; }
.zg-contact__list a:hover { color: var(--zg-primary); }
.zg-contact__status { margin-top: 1.5rem; }
.zg-status { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.zg-status__box { background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius-l); padding: clamp(1.3rem, 3vw, 2.2rem); box-shadow: var(--zg-shadow); }
.zg-status__aside { font-size: .95rem; }
.zg-status__result { margin-top: 1.4rem; padding: 1.2rem; border-radius: var(--zg-radius); background: var(--zg-bg); }

/* ---------- Footer ---------- */
.zg-footer { position: relative; overflow: hidden; background: var(--zg-night); color: rgba(255, 255, 255, .7); font-size: .95rem; }
.zg-footer__guilloche { width: 700px; height: 700px; right: -300px; bottom: -330px; opacity: .22; }
.zg-footer__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 2.5rem; padding-block: clamp(3rem, 6vw, 4.5rem) 2.5rem; }
.zg-footer__brand p { max-width: 38ch; margin: 1.2rem 0 1.4rem; }
.zg-footer__title { color: #fff; font-size: .95rem; font-weight: 700; margin-bottom: 1rem; letter-spacing: 0; }
.zg-footer__col li { margin-bottom: .55rem; }
.zg-footer a { color: rgba(255, 255, 255, .78); text-decoration: none; }
.zg-footer a:hover { color: var(--zg-gold); }
.zg-social { display: flex; gap: .5rem; }
.zg-social a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid var(--zg-line-dark); border-radius: 50%; }
.zg-social a:hover { border-color: var(--zg-gold); }
.zg-footer__contact { position: relative; display: flex; flex-wrap: wrap; gap: .6rem 2rem; padding-block: 1.4rem; border-top: 1px solid var(--zg-line-dark); }
.zg-footer__contact p { margin: 0; display: inline-flex; gap: .5rem; align-items: center; }
.zg-footer__contact .zg-icon { color: var(--zg-gold); }
.zg-footer__bottom { position: relative; border-top: 1px solid var(--zg-line-dark); font-size: .85rem; }
.zg-footer__bottom-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-block: 1.2rem; }
.zg-footer__bottom p { margin: 0; }
.zg-footer__bottom ul { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; }

/* 404 & generic content */
.zg-404 { text-align: left; padding-block: clamp(4rem, 10vw, 8rem); }
.zg-404__code { font-size: clamp(4rem, 3rem + 6vw, 8rem); font-weight: 300; color: var(--zg-gold); line-height: 1; letter-spacing: -.05em; margin-bottom: 1rem; }
.zg-entry + .zg-entry { margin-top: 3rem; padding-top: 3rem; border-top: 1px solid var(--zg-line); }
.zg-entry__meta { font-size: .88rem; color: var(--zg-text); }
.zg-prose img { border-radius: var(--zg-radius); }
.alignleft { float: left; margin: 0 1.5rem 1rem 0; }
.alignright { float: right; margin: 0 0 1rem 1.5rem; }
.aligncenter { margin-inline: auto; }
.wp-caption-text { font-size: .85rem; }
.sticky, .bypostauthor, .gallery-caption { outline: 0; }

/* ---------- Reveal (only with JS + animations enabled) ---------- */
html.js .zg-anim [data-zg-reveal] { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
html.js .zg-anim [data-zg-reveal].is-visible { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
	.zg-nav { display: none; }
	.zg-burger { display: inline-flex; }
	/* Nav is hidden but still a DOM sibling, so restore the auto margin that its
	   adjacent rule would otherwise cancel — this anchors the burger to the right. */
	.zg-nav + .zg-header__actions { margin-inline-start: auto; }
	.zg-types--4, .zg-accounts, .zg-values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.zg-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.zg-trust li:nth-child(3) { padding-left: 0; border-left: 0; }
	.zg-split--sim { grid-template-columns: 1fr; }
	.zg-split--sim .zg-split__text { max-width: 680px; }
	.zg-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.zg-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 960px) {
	.zg-hero__inner { grid-template-columns: 1fr; min-height: 0; }
	.zg-hero__visual { position: absolute; inset: 0; min-height: 0; z-index: 0; }
	.zg-hero__guilloche { left: 78%; width: 620px; opacity: .45; }
	.zg-split, .zg-split--sim, .zg-split--form, .zg-split--faq, .zg-contact, .zg-status, .zg-faqpage, .zg-cta__inner { grid-template-columns: 1fr; }
	.zg-faqpage__nav { position: static; }
	.zg-faqpage__nav ul { display: flex; flex-wrap: wrap; gap: .4rem; }
	.zg-faqpage__nav a { border: 1px solid var(--zg-line); border-radius: 999px; padding: .4rem .9rem; }
	.zg-services, .zg-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.zg-process, .zg-columns3 { grid-template-columns: 1fr; gap: 1.8rem; }
	.zg-sim { grid-template-columns: 1fr; }
}
@media (max-width: 782px) {
	.admin-bar .zg-header--sticky { top: 46px; }
	.zg-topbar__list .zg-topbar__hours { display: none; }
}
@media (max-width: 640px) {
	:root { --zg-header-h: 64px; }
	.zg-header__cta { display: none; }
	.zg-lang__toggle span { display: none; }
	.zg-logo__img--desktop { display: none; }
	.zg-logo__img--mobile { display: block; }
	.zg-logo__img { max-height: 36px; }
	.zg-wordmark__main { font-size: 1.15rem; }
	.zg-services, .zg-cards, .zg-types, .zg-types--4, .zg-accounts, .zg-values, .zg-trust { grid-template-columns: 1fr; }
	.zg-trust li, .zg-trust li + li { padding: 1.4rem 0 0; border-left: 0; }
	.zg-form__grid { grid-template-columns: 1fr; }
	.zg-field--half { grid-column: 1 / -1; }
	.zg-hero__actions .zg-btn, .zg-cta__actions .zg-btn { flex: 1 1 100%; }
	.zg-footer__grid { grid-template-columns: 1fr 1fr; }
	.zg-imprint { grid-template-columns: 1fr; gap: .1rem; }
	.zg-imprint dd { margin-bottom: .8rem; }
	.zg-topbar__list { gap: .2rem 1rem; }
	.zg-topbar__list li:nth-child(1) span { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.zg-faq__a { padding-right: 0; }
}
@media (max-width: 400px) {
	.zg-footer__grid { grid-template-columns: 1fr; }
	.zg-sim__number { width: 6.4rem; }
	.zg-topbar__status { display: none; }
}
@media (min-width: 1600px) {
	:root { --zg-wrap: 1360px; }
}

/* ---------- Motion & print ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.zg-anim .zg-hero__guilloche { animation: none; }
	html.js .zg-anim [data-zg-reveal] { opacity: 1; transform: none; }
}
@media print {
	.zg-topbar, .zg-header, .zg-drawer, .zg-footer, .zg-cta, .zg-hero__visual, .zg-form-wrap { display: none !important; }
	.zg-hero, .zg-pagehero, .zg-section--dark { background: none !important; color: #000; }
	.zg-hero__title, .zg-pagehero__title { color: #000; }
}

/* =========================================================================
   v1.1 — Online applications (loan / account opening) + mobile actions
   ========================================================================= */
.zg-field input, .zg-field select, .zg-field textarea { font-size: max(1rem, 16px); }
.zg-btn .zg-icon { flex: none; }
.zg-btn--light { --b-bg: #fff; --b-bd: #fff; --b-fg: var(--zg-night); }
.zg-btn--light:hover { --b-bg: #eef2f9; --b-bd: #eef2f9; }

/* Home: two paths */
.zg-paths { position: relative; z-index: 2; margin-top: clamp(-3.2rem, -4vw, -1.5rem); padding-bottom: clamp(1rem, 3vw, 2rem); }
.zg-paths__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.6rem); }
.zg-path { display: flex; flex-direction: column; gap: 1rem; background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius-l); padding: clamp(1.4rem, 3vw, 2.2rem); box-shadow: var(--zg-shadow); position: relative; overflow: hidden; }
.zg-path::after { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%; background: linear-gradient(90deg, var(--zg-gold), transparent 70%); }
.zg-path--account::after { background: linear-gradient(90deg, var(--zg-primary), transparent 70%); }
.zg-path__icon { width: 56px; height: 56px; border-radius: 14px; display: grid; place-items: center; background: #fbf6ec; color: #9a7630; }
.zg-path--account .zg-path__icon { background: #eef3ff; color: var(--zg-primary); }
.zg-path h3 { margin: 0 0 .4rem; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.55rem); }
.zg-path p { margin: 0 0 1rem; }
.zg-path .zg-checks { margin: 0; }
.zg-path__body { flex: 1; }
.zg-path__btn { align-self: flex-start; }

/* CTA band on product pages */
.zg-applycta { display: grid; grid-template-columns: minmax(0, 1.4fr) auto; gap: 2rem; align-items: center; background: var(--zg-night); color: #c9d3e3; border-radius: var(--zg-radius-l); padding: clamp(1.6rem, 4vw, 3rem); position: relative; overflow: hidden; }
.zg-applycta h2 { color: #fff; margin: 0 0 .6rem; }
.zg-applycta p { margin: 0; max-width: 60ch; }
.zg-applycta__steps { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin: 1.4rem 0 0; padding: 0; list-style: none; font-size: .9rem; color: #fff; }
.zg-applycta__steps li { display: flex; align-items: center; gap: .5rem; }
.zg-applycta__steps span { width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--zg-gold); color: var(--zg-gold); display: grid; place-items: center; font-size: .75rem; font-weight: 700; }
.zg-applycta__actions { display: flex; flex-direction: column; gap: .7rem; }

/* Application layout */
.zg-section--apply { padding-top: clamp(2rem, 5vw, 3.5rem); background: var(--zg-bg); }
.zg-apply { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
.zg-apply__main { background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius-l); padding: clamp(1.2rem, 3.5vw, 2.4rem); box-shadow: var(--zg-shadow); min-width: 0; }
.zg-apply__aside { position: sticky; top: calc(var(--zg-header-h) + 1.2rem); display: grid; gap: 1rem; }

.zg-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin: 0 0 .9rem; padding: 0; list-style: none; counter-reset: none; }
.zg-steps__item { display: flex; align-items: center; gap: .55rem; font-size: .84rem; font-weight: 600; color: var(--zg-text); min-width: 0; }
.zg-steps__num { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--zg-line); background: #fff; font-size: .82rem; font-weight: 700; color: var(--zg-text); transition: .2s; }
.zg-steps__label { overflow: hidden; text-overflow: ellipsis; line-height: 1.25; }
.zg-steps__item.is-current { color: var(--zg-ink); }
.zg-steps__item.is-current .zg-steps__num { border-color: var(--zg-primary); background: var(--zg-primary); color: #fff; }
.zg-steps__item.is-done { cursor: pointer; color: var(--zg-ink); }
.zg-steps__item.is-done .zg-steps__num { border-color: var(--zg-gold); background: var(--zg-gold); color: var(--zg-night); font-size: 0; }
.zg-steps__item.is-done .zg-steps__num::before { content: "✓"; font-size: .85rem; }
.zg-apply:not(.is-stepped) .zg-steps, .zg-apply:not(.is-stepped) > .zg-apply__main > .zg-progress { display: none; }
.zg-progress { height: 4px; background: #e8ecf4; border-radius: 4px; overflow: hidden; margin-bottom: 1.6rem; }
.zg-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--zg-primary), var(--zg-gold)); border-radius: 4px; transition: width .35s ease; }

.zg-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.zg-apply:not(.is-stepped) .zg-step + .zg-step { margin-top: 2.4rem; padding-top: 2rem; border-top: 1px solid var(--zg-line); }
.zg-apply.is-stepped .zg-step:not(.is-active) { display: none; }
.zg-step.is-active { animation: zgStepIn .3s ease; }
@keyframes zgStepIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.zg-step__title { display: block; width: 100%; padding: 0; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem); font-weight: 700; color: var(--zg-ink); letter-spacing: -.01em; margin: 0 0 .35rem; outline: none; }
.zg-step__count { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--zg-gold); margin-bottom: .35rem; }
.zg-step__lead { margin: 0 0 1.4rem; }
.zg-form__section { grid-column: 1 / -1; margin: .9rem 0 -.2rem; padding-top: .9rem; border-top: 1px solid var(--zg-line); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--zg-ink); }
.zg-form__grid > .zg-form__section:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.zg-form__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.zg-field { grid-column: 1 / -1; }
.zg-field--half { grid-column: span 3; }
.zg-field--third { grid-column: span 2; }
.zg-field[hidden] { display: none; }
.zg-field__hint { margin: 0; font-size: .82rem; color: var(--zg-text); }
.zg-field__label { font-weight: 650; font-size: .92rem; color: var(--zg-ink); }
.zg-input-unit { position: relative; display: block; }
.zg-input-unit input { padding-right: 3.6rem; }
.zg-input-unit span { position: absolute; right: .9rem; top: 50%; transform: translateY(-50%); font-weight: 700; font-size: .85rem; color: var(--zg-text); pointer-events: none; }
.zg-field.has-error input, .zg-field.has-error select, .zg-field.has-error textarea { border-color: var(--zg-error); }

/* Uploads */
.zg-field .zg-upload__input { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
.zg-upload { position: relative; display: flex; align-items: center; gap: 1rem; min-height: 112px; padding: 1rem 1.1rem; border: 1.5px dashed #b9c3d6; border-radius: var(--zg-radius); background: #f9fbfe; cursor: pointer; transition: border-color .15s, background .15s; }
.zg-upload:hover { border-color: var(--zg-primary); background: #f3f7ff; }
.zg-upload__input:focus-visible + .zg-upload, .zg-upload:focus-within { outline: 3px solid rgba(11, 92, 255, .35); outline-offset: 2px; }
.zg-field--upload:focus-within .zg-upload { border-color: var(--zg-primary); box-shadow: 0 0 0 3px rgba(11, 92, 255, .18); }
.zg-upload__preview { flex: none; width: 92px; height: 70px; border-radius: 8px; display: grid; place-items: center; color: #7d8aa3; background: #fff; border: 1px solid var(--zg-line); overflow: hidden; }
.zg-upload__preview img { width: 100%; height: 100%; object-fit: cover; }
.zg-upload__pdf { font-weight: 800; color: var(--zg-error); letter-spacing: .06em; }
.zg-upload__text { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.zg-upload__text strong { color: var(--zg-ink); font-size: .95rem; word-break: break-word; }
.zg-upload__text small { color: var(--zg-text); font-size: .8rem; }
.zg-upload__change { display: none; margin-left: auto; font-size: .82rem; font-weight: 700; color: var(--zg-primary); }
.zg-upload.is-filled { border-style: solid; border-color: #9fd8b8; background: #f3fbf6; }
.zg-upload.is-filled .zg-upload__change { display: block; }
.zg-upload.is-filled .zg-upload__text strong::after { content: " ✓"; color: var(--zg-success); }
.zg-upload--selfie { min-height: 150px; }
.zg-upload--selfie .zg-upload__preview { width: 104px; height: 118px; border-radius: 50% / 45%; }
.zg-field.has-error .zg-upload { border-color: var(--zg-error); background: #fef6f5; }
.zg-idtips { background: #fbf6ec; border: 1px solid #efe1c3; border-radius: var(--zg-radius); padding: 1rem 1.2rem; margin: 0 0 1.4rem; }
.zg-idtips__title { margin: 0 0 .5rem; font-weight: 700; color: var(--zg-ink); font-size: .92rem; }
.zg-idtips ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .35rem; font-size: .88rem; }
.zg-idtips li { display: flex; gap: .5rem; align-items: flex-start; }
.zg-idtips .zg-icon { color: #9a7630; margin-top: .15em; flex: none; }

/* Review + consents */
.zg-review { display: grid; gap: 1rem; margin: 0 0 1.6rem; }
.zg-review:empty { display: none; }
.zg-review__block { border: 1px solid var(--zg-line); border-radius: var(--zg-radius); padding: 1rem 1.2rem; }
.zg-review__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .6rem; }
.zg-review__head h3 { margin: 0; font-size: 1rem; }
.zg-review__edit { border: 0; background: none; padding: .3rem 0; font: inherit; font-size: .85rem; font-weight: 700; color: var(--zg-primary); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.zg-review dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: .35rem 1rem; margin: 0; font-size: .9rem; }
.zg-review dt { color: var(--zg-text); }
.zg-review dd { margin: 0; color: var(--zg-ink); font-weight: 600; word-break: break-word; }
.zg-consents { margin-top: .6rem; }
.zg-consent.has-error label { color: var(--zg-error); }

/* Navigation + upload progress */
.zg-apply__nav { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: space-between; align-items: center; margin-top: 2rem; padding-top: 1.4rem; border-top: 1px solid var(--zg-line); }
.zg-apply__nav [data-zg-next], .zg-apply__nav [data-zg-submit] { margin-left: auto; min-width: 200px; }
.zg-apply:not(.is-stepped) [data-zg-next] { display: none; }
.zg-apply__nav [hidden] { display: none; }
.zg-apply__nav button[disabled] { opacity: .6; cursor: progress; }
.zg-upload-progress { margin-top: 1.2rem; }
.zg-upload-progress .zg-progress { margin-bottom: .5rem; height: 6px; }
.zg-upload-progress p { margin: 0; font-size: .88rem; font-weight: 600; color: var(--zg-ink); }
.zg-apply__req { margin-top: 1rem; }

/* Aside */
.zg-estimate { background: var(--zg-night); color: #c9d3e3; border-radius: var(--zg-radius-l); padding: 1.5rem; }
.zg-estimate__label { margin: 0; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--zg-gold); }
.zg-estimate__value { margin: .4rem 0 .3rem; font-size: clamp(1.8rem, 1.5rem + 1vw, 2.3rem); font-weight: 700; color: #fff; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.zg-estimate__detail { margin: 0 0 .8rem; font-size: .88rem; }
.zg-estimate__note { margin: 0; font-size: .76rem; opacity: .75; line-height: 1.5; }
.zg-aside-card { background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius); padding: 1.2rem 1.3rem; font-size: .9rem; }
.zg-aside-card p { margin: 0 0 .5rem; }
.zg-aside-card p:last-child { margin-bottom: 0; }
.zg-aside-card__title { font-weight: 700; color: var(--zg-ink); }
.zg-aside-card .zg-checks { margin: .6rem 0 0; }
.zg-aside-card .zg-checks li { font-size: .88rem; }
.zg-aside-card--secure { display: flex; gap: .8rem; background: #f3fbf6; border-color: #cdeedb; }
.zg-aside-card--secure > .zg-icon { color: var(--zg-success); flex: none; margin-top: .1rem; }

/* Success */
.zg-apply-done { max-width: 820px; margin: 0 auto; background: #fff; border: 1px solid var(--zg-line); border-radius: var(--zg-radius-l); padding: clamp(1.6rem, 5vw, 3.2rem); box-shadow: var(--zg-shadow); text-align: center; outline: none; }
.zg-apply-done__icon { width: 72px; height: 72px; margin: 0 auto 1.2rem; border-radius: 50%; display: grid; place-items: center; background: #ecfdf3; color: var(--zg-success); }
.zg-apply-done h2 { margin: 0 0 .6rem; }
.zg-apply-done__ref { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .6rem 1rem; margin: 1.4rem 0 .6rem; padding: 1rem 1.3rem; border: 1px dashed var(--zg-gold); border-radius: var(--zg-radius); background: #fbf6ec; }
.zg-apply-done__ref span { font-size: .85rem; }
.zg-apply-done__ref strong { font-size: clamp(1.2rem, 1rem + 1vw, 1.6rem); letter-spacing: .08em; color: var(--zg-ink); font-variant-numeric: tabular-nums; }
.zg-apply-done__hint { font-size: .88rem; max-width: 56ch; margin: 0 auto 2rem; }
.zg-apply-done h3 { margin: 0 0 1.2rem; }
.zg-process--compact { text-align: left; gap: 1.2rem; margin-bottom: 2rem; }
.zg-process--compact .zg-process__num { font-size: 1.8rem; margin-bottom: .4rem; }
.zg-process--compact p { font-size: .92rem; }
.zg-apply-done__actions { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; }

/* Drawer + mobile action bar */
.zg-drawer__ctas { display: grid; gap: .6rem; }
.zg-mobilebar { display: none; }

@media (max-width: 1080px) {
	.zg-apply { grid-template-columns: 1fr; }
	.zg-apply__aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.zg-estimate { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
	.zg-paths__grid { grid-template-columns: 1fr; }
	.zg-applycta { grid-template-columns: 1fr; }
	.zg-applycta__actions { flex-direction: row; flex-wrap: wrap; }
	.zg-steps__label { display: none; }
	.zg-steps { display: flex; justify-content: space-between; position: relative; }
	.zg-steps::before { content: ""; position: absolute; left: 15px; right: 15px; top: 15px; height: 1.5px; background: var(--zg-line); }
	.zg-steps__item { position: relative; }
	.zg-process--compact { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
	body.zg-noapplybar { padding-bottom: 0; }
	.zg-mobilebar { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; padding: .6rem .7rem calc(.6rem + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); border-top: 1px solid var(--zg-line); box-shadow: 0 -8px 24px -12px rgba(7, 26, 51, .25); backdrop-filter: saturate(1.4) blur(8px); }
	.zg-mobilebar__btn { display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 50px; padding: .4rem .6rem; border-radius: 10px; font-weight: 700; font-size: .88rem; line-height: 1.15; text-decoration: none; text-align: center; }
	.zg-mobilebar__btn--loan { background: var(--zg-gold); color: var(--zg-night); }
	.zg-mobilebar__btn--account { background: var(--zg-button); color: #fff; }
	.zg-mobilebar__btn .zg-icon { flex: none; }
}
@media (max-width: 640px) {
	.zg-paths { margin-top: -1rem; }
	.zg-path__btn { align-self: stretch; }
	.zg-form__grid { grid-template-columns: 1fr; }
	.zg-field--half, .zg-field--third { grid-column: 1 / -1; }
	.zg-apply__main { border-radius: var(--zg-radius); padding: 1.1rem 1rem 1.3rem; margin: 0 calc(var(--zg-gutter) * -.5); }
	.zg-apply__aside { grid-template-columns: 1fr; }
	.zg-apply__nav { position: sticky; bottom: 0; z-index: 5; background: #fff; margin: 1.6rem -1rem -1.3rem; padding: .8rem 1rem calc(.8rem + env(safe-area-inset-bottom)); border-radius: 0 0 var(--zg-radius) var(--zg-radius); box-shadow: 0 -8px 20px -14px rgba(7, 26, 51, .35); }
	.zg-apply__nav .zg-btn { flex: 1 1 0; min-width: 0; padding-left: .8rem; padding-right: .8rem; }
	.zg-apply__nav [data-zg-next], .zg-apply__nav [data-zg-submit] { min-width: 0; flex: 2 1 0; }
	.zg-upload { min-height: 96px; padding: .85rem; gap: .8rem; }
	.zg-upload__preview { width: 76px; height: 58px; }
	.zg-upload--selfie .zg-upload__preview { width: 84px; height: 96px; }
	.zg-upload.is-filled .zg-upload__change { display: none; }
	.zg-review dl { grid-template-columns: 1fr; gap: 0; }
	.zg-review dd { margin-bottom: .5rem; }
	.zg-applycta__actions .zg-btn { flex: 1 1 100%; }
	.zg-apply-done__actions .zg-btn { flex: 1 1 100%; }
}
.zg-alert[hidden], .zg-upload-progress[hidden] { display: none; }

/* ==========================================================================
   Client space (espace client) + shared badges — v1.2.0
   ========================================================================== */
.zg-topbar__account{display:inline-flex;align-items:center;gap:.4em;margin-left:1rem;color:inherit;text-decoration:none;opacity:.9}
.zg-topbar__account:hover{opacity:1}
.zg-topbar__account svg{flex:none}
.zg-header__account{display:inline-flex;align-items:center;gap:.45em;padding:.5rem .85rem;border-radius:var(--zg-radius-s);color:var(--zg-night);text-decoration:none;font-weight:600;font-size:.9rem}
.zg-header__account:hover{background:var(--zg-bg);color:var(--zg-primary)}
.zg-header__account svg{flex:none}
@media (max-width: 480px) {
	/* Keep the language menu clear of the screen edges on small phones. */
	.zg-lang__list { width: min(288px, calc(100vw - 2 * var(--zg-gutter))); }
	.zg-header__inner { gap: .75rem; }
	.zg-header__actions { gap: .5rem; }
}

.zg-badge{display:inline-flex;align-items:center;gap:.35em;padding:.2em .7em;border-radius:999px;font-size:.75rem;font-weight:700;line-height:1.6;background:#EEF1F6;color:#3B4657;white-space:nowrap}
.zg-badge--received,.zg-badge--requested{background:#EAF1FF;color:#1D4ED8}
.zg-badge--review,.zg-badge--approved{background:#FFF4E0;color:#B45309}
.zg-badge--info{background:#E7F6F3;color:#0F766E}
.zg-badge--active{background:#E7F7EC;color:#15803D}
.zg-badge--rejected{background:#FDECEC;color:#B91C1C}

.zg-portal{padding:clamp(2rem,5vw,4rem) 0 clamp(3rem,7vw,5rem);background:var(--zg-bg);min-height:60vh}
.zg-portal__wrap{max-width:960px}
.zg-portal__card{background:var(--zg-white);border:1px solid var(--zg-line);border-radius:var(--zg-radius-l);padding:clamp(1.25rem,3vw,2rem);box-shadow:var(--zg-shadow)}
.zg-portal__card+.zg-portal__card{margin-top:1.25rem}
.zg-portal__card h2{margin:0 0 1rem;font-size:1.15rem}
.zg-portal__card--auth{max-width:440px;margin:0 auto}
.zg-portal__badge{display:inline-flex;align-items:center;gap:.4em;padding:.3em .8em;border-radius:999px;background:#E7F7EC;color:#15803D;font-size:.78rem;font-weight:700;margin-bottom:1rem}
.zg-portal__badge svg{flex:none}
.zg-portal__card--auth h1{font-size:1.5rem;margin:0 0 .5rem}
.zg-portal__lead{color:var(--zg-text);margin:0 0 1.5rem}
.zg-portal__form{display:flex;flex-direction:column;gap:1rem}
.zg-portal__form .zg-field{display:flex;flex-direction:column;gap:.4rem}
.zg-portal__form label{font-weight:600;font-size:.9rem}
.zg-portal__form input[type=email],.zg-portal__form input[type=password],.zg-portal__form input[type=text]{width:100%;padding:.75rem .9rem;border:1px solid var(--zg-line);border-radius:var(--zg-radius-s);font-size:16px;font-family:inherit;background:var(--zg-white)}
.zg-portal__form input:focus{outline:2px solid var(--zg-primary);outline-offset:1px;border-color:var(--zg-primary)}
.zg-field__hint{font-size:.8rem;color:var(--zg-text);margin:.1rem 0 0}
.zg-portal__remember{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500}
.zg-portal__forgot{margin-top:1.25rem;border-top:1px solid var(--zg-line);padding-top:1rem}
.zg-portal__forgot summary{cursor:pointer;font-size:.9rem;color:var(--zg-primary);font-weight:600}
.zg-portal__forgot .zg-portal__form{margin-top:1rem}
.zg-portal__alt{margin:1.25rem 0 0;font-size:.9rem;color:var(--zg-text);text-align:center}
.zg-portal__alt a{color:var(--zg-primary);font-weight:600}

.zg-portal__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.zg-portal__hello{margin:0;color:var(--zg-text);font-size:.95rem}
.zg-portal__head h1{margin:.15rem 0 0;font-size:clamp(1.5rem,4vw,2rem)}
.zg-portal__logout{margin:0}
.zg-portal__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
@media (max-width:720px){.zg-portal__grid{grid-template-columns:1fr}}
.zg-portal__dl{display:flex;flex-direction:column;gap:.85rem;margin:0}
.zg-portal__dl>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--zg-line);padding-bottom:.85rem}
.zg-portal__dl>div:last-child{border-bottom:0;padding-bottom:0}
.zg-portal__dl dt{color:var(--zg-text);font-size:.9rem;margin:0}
.zg-portal__dl dd{margin:0;font-weight:600;text-align:right}
.zg-portal__muted{color:var(--zg-text);margin:0 0 1rem}
.zg-portal__note{margin-top:1rem;padding:.85rem 1rem;background:var(--zg-gold-soft);border-left:3px solid var(--zg-gold);border-radius:0 var(--zg-radius-s) var(--zg-radius-s) 0;font-size:.9rem}
.zg-portal__cardstate{margin:1rem 0 .75rem}
.zg-portal__back{margin:0 0 1rem}
.zg-portal__back a{color:var(--zg-primary);text-decoration:none;font-weight:600}
.zg-portal__fineprint{margin-top:1.5rem;font-size:.85rem;color:var(--zg-text);text-align:center}

.zg-portal__cta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.zg-portal__cta>div{flex:1;min-width:220px}
.zg-portal__cta p{margin:.2rem 0 0;font-size:.9rem}

.zg-portal__cardface{position:relative;aspect-ratio:1.586;max-width:340px;border-radius:14px;padding:1.1rem 1.25rem;color:#fff;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 12px 30px rgba(7,26,51,.25);overflow:hidden}
.zg-portal__cardface--standard{background:linear-gradient(135deg,#2B3A55,#0F1B30)}
.zg-portal__cardface--premium{background:linear-gradient(135deg,#1D4ED8,#0B1E45)}
.zg-portal__cardface--elite{background:linear-gradient(135deg,#3A2C12,#0A0A0A);border:1px solid rgba(200,163,90,.5)}
.zg-portal__cardface--elite .zg-portal__cardtier,.zg-portal__cardface--elite .zg-portal__cardbrand{color:var(--zg-gold)}
.zg-portal__cardbrand{font-weight:700;letter-spacing:.06em;font-size:.95rem}
.zg-portal__cardchip{width:38px;height:28px;border-radius:6px;background:linear-gradient(135deg,#E7C978,#B8912F);position:absolute;top:3.1rem;left:1.25rem}
.zg-portal__cardtier{font-size:1.05rem;font-weight:700}
.zg-portal__cardref{font-family:monospace;letter-spacing:.12em;font-size:.85rem;opacity:.85}
.zg-portal__cardbox .zg-portal__cardface{margin-bottom:0}

.zg-portal__tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.5rem}
@media (max-width:820px){.zg-portal__tiers{grid-template-columns:1fr}}
.zg-portal__tier{background:var(--zg-white);border:1px solid var(--zg-line);border-radius:var(--zg-radius-l);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--zg-shadow)}
.zg-portal__tier.is-preset{border-color:var(--zg-primary);box-shadow:0 0 0 2px var(--zg-primary)}
.zg-portal__tier h2{margin:.25rem 0 0;font-size:1.15rem}
.zg-portal__tier .zg-portal__cardface{max-width:none;aspect-ratio:1.9}
.zg-portal__tier .zg-checks{margin:0;flex:1}
.zg-portal__tier .zg-btn{margin-top:auto}

/* Card CTA band on /cartes */
.zg-cardcta{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;background:var(--zg-night);color:#fff;border-radius:var(--zg-radius-l);padding:clamp(1.5rem,4vw,2.5rem)}
.zg-cardcta__text{flex:1;min-width:260px}
.zg-cardcta__text h2{margin:0 0 .5rem;color:#fff}
.zg-cardcta__text .zg-lead{color:rgba(255,255,255,.85);margin:0}
.zg-cardcta__actions{display:flex;gap:.75rem;flex-wrap:wrap}

.zg-alert{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1.1rem;border-radius:var(--zg-radius);margin:0 0 1.25rem;font-size:.92rem;border:1px solid transparent}
.zg-alert svg{flex:none;margin-top:.1rem}
.zg-alert p{margin:0}
.zg-alert--info{background:#EAF1FF;border-color:#C7D8FF;color:#1D4ED8}
.zg-alert--success{background:#E7F7EC;border-color:#BBE6C7;color:#15803D}
.zg-alert--error{background:#FDECEC;border-color:#F6C9C9;color:#B91C1C}

/* Ensure the header client-space link yields to the drawer on mobile
   (declared last so it wins over the base .zg-header__account rule). */
@media (max-width: 1180px) {
	.zg-header__account { display: none; }
}

/* Status result — badge layout */
.zg-status__ref { margin: 0 0 .35rem; font-size: .9rem; }
.zg-status__state { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin: 0 0 .35rem; font-weight: 600; }
.zg-status__meta { margin: 0 0 .35rem; font-size: .9rem; opacity: .85; }
.zg-status__note { margin: .5rem 0 0; padding-top: .5rem; border-top: 1px solid rgba(7,26,51,.1); font-size: .92rem; }

/* ============================================================
   CLIENT SPACE — BANKING UI
   ============================================================ */
.zg-pbank { display: block; }

/* Primary navigation */
.zg-pnav {
	display: flex; gap: .35rem; margin: 0 0 1.3rem; padding: .35rem;
	background: var(--zg-white, #fff); border: 1px solid var(--zg-line, #e6eaf0);
	border-radius: var(--zg-radius, 14px); box-shadow: var(--zg-shadow, 0 6px 24px rgba(7,26,51,.06));
	overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.zg-pnav::-webkit-scrollbar { display: none; }
.zg-pnav a {
	display: inline-flex; align-items: center; gap: .5rem; padding: .6rem .9rem;
	border-radius: 10px; color: var(--zg-text, #4b5563); font-weight: 600; font-size: .92rem;
	white-space: nowrap; text-decoration: none; transition: background .15s, color .15s;
}
.zg-pnav a svg { flex: 0 0 auto; opacity: .8; }
.zg-pnav a:hover { background: var(--zg-bg, #f5f7fb); color: var(--zg-night, #071A33); }
.zg-pnav a.is-active { background: var(--zg-night, #071A33); color: #fff; }
.zg-pnav a.is-active svg { opacity: 1; }

/* Balance hero card */
.zg-pbank__hero {
	position: relative; overflow: hidden; color: #fff;
	background: linear-gradient(135deg, var(--zg-night, #071A33) 0%, var(--zg-primary-dark, #0942b8) 100%);
	border-radius: var(--zg-radius-l, 20px); padding: 1.5rem 1.4rem; margin: 0 0 1.3rem;
	box-shadow: 0 18px 40px rgba(7,26,51,.24);
}
.zg-pbank__hero::after {
	content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px;
	background: radial-gradient(circle, rgba(200,163,90,.35), transparent 65%); pointer-events: none;
}
.zg-pbank__hero.is-blocked { background: linear-gradient(135deg, #3f1d2b 0%, #7c2d3a 100%); }
.zg-pbank__hero-top { display: flex; justify-content: space-between; align-items: center; margin: 0 0 1.1rem; position: relative; z-index: 1; }
.zg-pbank__bank { font-weight: 700; letter-spacing: .01em; font-size: .95rem; }
.zg-pbank__badge {
	font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
	padding: .25rem .6rem; border-radius: 999px; background: rgba(255,255,255,.16); backdrop-filter: blur(4px);
}
.zg-pbank__label { margin: 0; font-size: .82rem; opacity: .8; position: relative; z-index: 1; }
.zg-pbank__amount { margin: .15rem 0 1rem; font-size: 2.3rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.05; position: relative; z-index: 1; }
.zg-pbank__iban { display: flex; flex-direction: column; gap: .1rem; margin: 0 0 1.2rem; position: relative; z-index: 1; }
.zg-pbank__iban span { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; opacity: .6; }
.zg-pbank__iban code { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: .95rem; letter-spacing: .04em; color: #fff; }
.zg-pbank__hero-actions { display: flex; gap: .6rem; flex-wrap: wrap; position: relative; z-index: 1; }
.zg-btn--ghost { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.28); }
.zg-btn--ghost:hover { background: rgba(255,255,255,.22); color: #fff; }

/* Quick action tiles */
.zg-ptiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; margin: 0 0 1.3rem; }
.zg-ptile {
	display: flex; align-items: center; gap: .7rem; padding: 1rem; text-decoration: none;
	background: var(--zg-white, #fff); border: 1px solid var(--zg-line, #e6eaf0); border-radius: var(--zg-radius, 14px);
	color: var(--zg-night, #071A33); font-weight: 600; transition: transform .15s, box-shadow .15s, border-color .15s;
}
.zg-ptile:hover { transform: translateY(-2px); box-shadow: var(--zg-shadow, 0 6px 24px rgba(7,26,51,.08)); border-color: var(--zg-gold, #c8a35a); }
.zg-ptile__ic { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 10px; background: var(--zg-gold-soft, #f5ecd8); color: var(--zg-primary-dark, #0942b8); flex: 0 0 auto; }
.zg-ptile__label { flex: 1; font-size: .95rem; }
.zg-ptile > svg:last-child { color: #b7c0cf; }

/* Two-column area */
.zg-pbank__grid { display: grid; grid-template-columns: 1fr; gap: 1.1rem; }
.zg-portal__cardhd { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.zg-portal__cardhd h2 { margin: 0; }
.zg-portal__seeall { font-size: .85rem; font-weight: 600; color: var(--zg-primary, #0b5cff); text-decoration: none; white-space: nowrap; }
.zg-portal__seeall:hover { text-decoration: underline; }

/* Ledger */
.zg-pledger { list-style: none; margin: 1rem 0 0; padding: 0; }
.zg-pledger__row { display: flex; align-items: center; gap: .8rem; padding: .75rem 0; border-bottom: 1px solid var(--zg-line, #eef1f6); }
.zg-pledger__row:last-child { border-bottom: 0; }
.zg-pledger__icon { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 50%; background: var(--zg-bg, #f5f7fb); color: var(--zg-night, #071A33); flex: 0 0 auto; }
.zg-pledger__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .12rem; }
.zg-pledger__label { font-weight: 600; color: var(--zg-night, #071A33); font-size: .95rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zg-pledger__meta { font-size: .78rem; color: #8a94a6; }
.zg-pledger__tag { color: #b91c1c; font-weight: 600; }
.zg-pledger__amt { font-weight: 700; font-size: .96rem; white-space: nowrap; }
.zg-pledger__amt--in { color: #157347; }
.zg-pledger__amt--out { color: var(--zg-night, #071A33); }
.zg-pledger__amt.is-void { text-decoration: line-through; color: #b7c0cf; }

/* Applications list */
.zg-papps { list-style: none; margin: 1rem 0 0; padding: 0; }
.zg-papps__row { display: flex; align-items: center; gap: .8rem; padding: .8rem 0; border-bottom: 1px solid var(--zg-line, #eef1f6); }
.zg-papps__row:last-child { border-bottom: 0; }
.zg-papps__ico { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 10px; background: var(--zg-gold-soft, #f5ecd8); color: var(--zg-primary-dark, #0942b8); flex: 0 0 auto; }
.zg-papps__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.zg-papps__type { font-weight: 600; color: var(--zg-night, #071A33); }
.zg-papps__meta { font-size: .8rem; color: #8a94a6; }
.zg-papps__foot { margin-top: 1rem; }

/* Transfer */
.zg-ptransfer__form { margin-top: 1rem; }
.zg-ptransfer__run { margin-top: 1.4rem; text-align: center; }
.zg-ptransfer__runlabel { font-weight: 600; color: var(--zg-night, #071A33); margin: 0 0 .8rem; }
.zg-ptransfer__bar { height: 12px; border-radius: 999px; background: var(--zg-bg, #eef1f6); overflow: hidden; }
.zg-ptransfer__bar span { display: block; height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, var(--zg-primary, #0b5cff), var(--zg-gold, #c8a35a)); transition: width .12s linear; }
.zg-ptransfer__run.is-blocked .zg-ptransfer__bar span { background: linear-gradient(90deg, #b91c1c, #ef4444); }
.zg-ptransfer__run.is-done .zg-ptransfer__bar span { background: linear-gradient(90deg, #157347, #22c55e); }
.zg-ptransfer__pct { font-size: 1.5rem; font-weight: 800; color: var(--zg-night, #071A33); margin: .6rem 0 0; }
.zg-ptransfer__result { margin-top: 1.2rem; }
.zg-ptransfer__done { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1rem; }
.zg-ptransfer__err { margin-top: .6rem; }

/* Blocked banner */
.zg-pbank__blocked { margin: 0 0 1.2rem; }

/* Receipt (bordereau) */
.zg-preceipt-wrap { max-width: 720px; }
.zg-preceipt {
	background: #fff; border: 1px solid var(--zg-line, #e6eaf0); border-radius: var(--zg-radius-l, 20px);
	padding: 2rem 1.8rem; box-shadow: var(--zg-shadow, 0 6px 24px rgba(7,26,51,.06)); position: relative;
}
.zg-preceipt__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; border-bottom: 2px solid var(--zg-night, #071A33); padding-bottom: 1rem; margin-bottom: 1.2rem; }
.zg-preceipt__bank { font-weight: 800; font-size: 1.1rem; color: var(--zg-night, #071A33); margin: 0; }
.zg-preceipt__bic { font-size: .78rem; color: #8a94a6; margin: .2rem 0 0; font-family: ui-monospace, Menlo, monospace; }
.zg-preceipt__seal { border: 2px solid #157347; color: #157347; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: .72rem; padding: .35rem .7rem; border-radius: 8px; transform: rotate(3deg); white-space: nowrap; }
.zg-preceipt__title { font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; color: #8a94a6; margin: 0 0 .3rem; }
.zg-preceipt__amount { font-size: 2rem; font-weight: 800; color: var(--zg-night, #071A33); margin: 0 0 1.4rem; letter-spacing: -.01em; }
.zg-preceipt__dl { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; }
.zg-preceipt__dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--zg-line, #eef1f6); }
.zg-preceipt__dl dt { color: #8a94a6; font-size: .85rem; }
.zg-preceipt__dl dd { margin: 0; font-weight: 600; color: var(--zg-night, #071A33); font-size: .9rem; text-align: right; }
.zg-preceipt__dl code { font-family: ui-monospace, Menlo, monospace; font-size: .82rem; }
.zg-preceipt__legal { margin: 1.4rem 0 0; font-size: .78rem; color: #8a94a6; line-height: 1.5; }
.zg-preceipt__actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1.2rem; }

@media (min-width: 720px) {
	.zg-ptiles { grid-template-columns: repeat(4, 1fr); }
	.zg-pbank__grid { grid-template-columns: 3fr 2fr; align-items: start; }
	.zg-pbank__amount { font-size: 2.6rem; }
}

@media print {
	.zg-noprint, .zg-header, .zg-footer, .zg-topbar, .zg-pnav, .zg-portal__head { display: none !important; }
	.zg-preceipt { border: 0; box-shadow: none; padding: 0; }
	body { background: #fff; }
}

/* ---- Wallets / currencies ---- */
.zg-pwallets { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .7rem; margin: 1rem 0 0; }
.zg-pwallets.is-compact { margin: 0 0 1.3rem; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.zg-pwallet { display: flex; flex-direction: column; gap: .2rem; padding: .9rem 1rem; border: 1px solid var(--zg-line, #e6eaf0); border-radius: var(--zg-radius, 14px); background: var(--zg-white, #fff); }
.zg-pwallet__cur { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: #8a94a6; font-weight: 700; }
.zg-pwallet__bal { font-size: 1.15rem; font-weight: 800; color: var(--zg-night, #071A33); letter-spacing: -.01em; }
.zg-pwallet.is-btc { background: linear-gradient(135deg, #fff7ec, #fdefd6); border-color: #f0d9a8; }
.zg-pwallet.is-btc .zg-pwallet__cur { color: #b8860b; }
.zg-pwallet.is-btc .zg-pwallet__bal { color: #7a5a12; }

/* ---- Conversion form ---- */
.zg-pconvert__avail { display: block; margin-top: .3rem; font-size: .78rem; color: #8a94a6; }
.zg-pconvert__preview { margin: .2rem 0 1rem; padding: .8rem 1rem; border-radius: 10px; background: var(--zg-gold-soft, #f5ecd8); color: var(--zg-night, #071A33); font-weight: 800; font-size: 1.1rem; }
.zg-pconvert__rate { margin: .9rem 0 0; font-size: .78rem; color: #8a94a6; }

/* small button + contract party */
.zg-btn--sm { padding: .5rem .9rem; font-size: .85rem; }
.zg-pcontract__party { font-size: 1.05rem; font-weight: 700; color: var(--zg-night, #071A33); margin: 0 0 1.2rem; }
.zg-pcontract__note { margin: 1.2rem 0 0; padding: 1rem 1.2rem; background: var(--zg-gold-soft, #f5ecd8); border-left: 3px solid var(--zg-gold, #c8a35a); border-radius: 0 8px 8px 0; color: var(--zg-night, #071A33); font-size: .9rem; }

/* ============================================================
   Swipeable account cards (European-bank style)
   ============================================================ */
.zg-portal__sec { font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: #8a94a6; font-weight: 700; margin: 0 0 .7rem; }
.zg-wcards { margin: 0 0 1.4rem; }
.zg-wcards__track {
	display: flex; gap: .85rem; overflow-x: auto; scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch; scrollbar-width: none; padding: .2rem .1rem .4rem; margin: 0 -.1rem;
}
.zg-wcards__track::-webkit-scrollbar { display: none; }
.zg-wcard {
	position: relative; flex: 0 0 86%; max-width: 420px; scroll-snap-align: center;
	min-height: 178px; border-radius: 20px; padding: 1.15rem 1.25rem; color: #fff; overflow: hidden;
	display: flex; flex-direction: column; box-shadow: 0 16px 34px -18px rgba(7, 26, 51, .55);
	background: linear-gradient(140deg, #0f2f5c, #071a33 72%);
}
.zg-wcard::after { /* subtle sheen / chip feel */
	content: ""; position: absolute; right: -40px; top: -40px; width: 150px; height: 150px; border-radius: 50%;
	background: rgba(255, 255, 255, .07); pointer-events: none;
}
.zg-wcard--eur  { background: linear-gradient(140deg, #123a72, #071a33 72%); }
.zg-wcard--chf  { background: linear-gradient(140deg, #3a4a63, #1d2635 74%); }
.zg-wcard--usd  { background: linear-gradient(140deg, #24506a, #10222e 74%); }
.zg-wcard--btc  { background: linear-gradient(140deg, #f7931a, #b8620a 78%); }
.zg-wcard--usdt { background: linear-gradient(140deg, #26a17b, #147358 78%); }
.zg-wcard__top { display: flex; flex-direction: column; gap: .15rem; }
.zg-wcard__cur { font-size: 1.02rem; font-weight: 800; letter-spacing: .01em; }
.zg-wcard__badge { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; opacity: .82; font-weight: 600; }
.zg-wcard__bal { margin: auto 0 0; font-size: 1.72rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.zg-wcard__foot { display: flex; align-items: center; gap: .5rem; margin-top: .9rem; min-height: 22px; }
.zg-wcard__addr { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: .74rem; letter-spacing: .01em; opacity: .92; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zg-wcard__addr--muted, .zg-wcard__addr.is-empty { font-family: inherit; opacity: .7; font-style: italic; }
.zg-wcard__copy { flex: 0 0 auto; display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 8px; background: rgba(255, 255, 255, .16); color: #fff; cursor: pointer; transition: background .15s, transform .1s; position: relative; }
.zg-wcard__copy:hover { background: rgba(255, 255, 255, .28); }
.zg-wcard__copy:active { transform: scale(.92); }
.zg-wcard__copy.is-copied { background: var(--zg-success, #2e9e6b); }
.zg-wcard__copy.is-copied::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; font-size: .8rem; }
.zg-wcard__copy.is-copied svg { opacity: 0; }
.zg-wcard__go { position: absolute; top: 1.1rem; right: 1.15rem; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .18); color: #fff; text-decoration: none; transition: background .15s, transform .1s; }
.zg-wcard__go:hover { background: rgba(255, 255, 255, .3); }
.zg-wcard__go:active { transform: scale(.93); }
.zg-wcard__go span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.zg-wcard--btc .zg-wcard__badge, .zg-wcard--usdt .zg-wcard__badge { opacity: .95; }

.zg-wcards__dots { display: flex; justify-content: center; gap: .4rem; margin-top: .7rem; }
.zg-wcards__dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 99px; background: #c9d2df; cursor: pointer; transition: width .2s, background .2s; }
.zg-wcards__dot.is-active { width: 20px; background: var(--zg-primary, #123a72); }

@media (min-width: 720px) {
	.zg-wcard { flex-basis: 320px; }
}

/* ============================================================
   Card gating + activation (fee, coordinates, limits)
   ============================================================ */
.zg-gate { display: flex; gap: 1rem; align-items: flex-start; border: 1px solid var(--zg-line, #e6eaf0); }
.zg-gate__ic { flex: 0 0 auto; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--zg-gold-soft, #f5ecd8); color: var(--zg-gold, #b8860b); }
.zg-gate__body h2 { margin: 0 0 .3rem; }
.zg-gate__body p { margin: 0 0 1rem; color: var(--zg-text, #4a5568); }

.zg-cardpay__fee, .zg-tierfee { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; margin: 1rem 0; border-radius: 12px; background: var(--zg-bg, #f6f8fb); }
.zg-cardpay__fee span, .zg-tierfee span { color: #6b7280; font-size: .9rem; }
.zg-cardpay__fee strong, .zg-tierfee strong { font-size: 1.3rem; font-weight: 800; color: var(--zg-night, #071A33); }
.zg-tierfee { margin: .3rem 0 .2rem; }

.zg-cardpay__coords { margin: 1rem 0; border: 1px solid var(--zg-line, #e6eaf0); border-radius: 12px; overflow: hidden; }
.zg-cardpay__coords-hd { display: flex; align-items: center; justify-content: space-between; padding: .6rem .9rem; background: var(--zg-night, #071A33); color: #fff; font-size: .82rem; font-weight: 600; }
.zg-cardpay__copy { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 8px; background: rgba(255, 255, 255, .18); color: #fff; cursor: pointer; position: relative; }
.zg-cardpay__copy:hover { background: rgba(255, 255, 255, .3); }
.zg-cardpay__copy.is-copied { background: var(--zg-success, #2e9e6b); }
.zg-cardpay__copy.is-copied::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; }
.zg-cardpay__copy.is-copied svg { opacity: 0; }
.zg-cardpay__coords-body { margin: 0; padding: .9rem 1rem; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: .84rem; line-height: 1.6; white-space: pre-wrap; word-break: break-word; color: var(--zg-ink, #1f2937); background: #fff; }

.zg-cardpay__form { margin: 1rem 0 .5rem; }
.zg-cardpay__form input[type="file"] { display: block; width: 100%; padding: .7rem; border: 1px dashed var(--zg-line-dark, #c9d2df); border-radius: 10px; background: var(--zg-bg, #f6f8fb); font-size: .85rem; }
.zg-cardpay__limits { margin-top: 1.4rem; }
.zg-cardpay__limits h3 { font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: #8a94a6; margin: 0 0 .5rem; }
.zg-cardlimits { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; gap: .4rem; }
.zg-cardlimits li { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .55rem .8rem; border-radius: 9px; background: var(--zg-bg, #f6f8fb); }
.zg-cardlimits li span { color: #6b7280; font-size: .85rem; }
.zg-cardlimits li strong { color: var(--zg-night, #071A33); font-weight: 700; }

/* Withdrawal-cap caption under the transfer form */
.zg-ptransfer__limits { display: flex; align-items: flex-start; gap: .45rem; margin: .9rem 0 0; padding: .7rem .9rem; border-radius: 10px; background: var(--zg-bg, #f6f8fb); color: #5b6472; font-size: .82rem; line-height: 1.5; }
.zg-ptransfer__limits svg { flex: 0 0 auto; margin-top: .15rem; color: var(--zg-gold, #b8860b); }

/* ============================================================
   Client-space (portal) chrome — public menu gives way to the
   client-space navigation: inline on desktop, a drawer on mobile.
   ============================================================ */
.zg-header--portal .zg-header__actions { margin-inline-start: auto; }
.zg-drawer--portal .zg-pdrawer__hello { margin: 1rem 0 .2rem; font-weight: 700; font-size: 1.05rem; color: var(--zg-night, #071A33); }
.zg-pdrawer__nav { display: flex; flex-direction: column; gap: .2rem; margin: .7rem 0 1.1rem; }
.zg-pdrawer__nav a { display: flex; align-items: center; gap: .7rem; padding: .72rem .8rem; border-radius: 10px; color: var(--zg-ink, #1f2937); text-decoration: none; font-weight: 600; }
.zg-pdrawer__nav a svg { flex: 0 0 auto; opacity: .8; }
.zg-pdrawer__nav a:hover { background: var(--zg-bg, #f5f7fb); }
.zg-pdrawer__nav a.is-active { background: var(--zg-night, #071A33); color: #fff; }
.zg-pdrawer__nav a.is-active svg { opacity: 1; }
.zg-pdrawer__logout { margin: 0 0 1.2rem; }

/* On mobile the client-space nav lives in the drawer, so hide the inline bar. */
@media (max-width: 1180px) {
	.zg-pnav { display: none; }
}

/* Portal amortization schedule (échéancier) */
.zg-pcontract__sched-h { font-size: 1rem; margin: 1.6rem 0 .6rem; color: var(--zg-night, #071A33); }
.zg-pschedule-wrap { overflow-x: auto; border: 1px solid var(--zg-line, #e6eaf0); border-radius: 10px; -webkit-overflow-scrolling: touch; }
.zg-pschedule { width: 100%; border-collapse: collapse; font-size: .82rem; }
.zg-pschedule th { background: var(--zg-night, #071A33); color: #fff; padding: .5rem .65rem; text-align: left; font-weight: 600; white-space: nowrap; }
.zg-pschedule th.zg-num, .zg-pschedule td.zg-num { text-align: right; }
.zg-pschedule td { padding: .5rem .65rem; border-bottom: 1px solid #EDF0F6; color: var(--zg-text, #4a5568); white-space: nowrap; }
.zg-pschedule tbody tr:nth-child(even) td { background: #F7F9FC; }
.zg-pschedule td.zg-strong { color: var(--zg-night, #071A33); font-weight: 700; }

/* Loan request form + repayment panel + paid rows */
.zg-papps__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.zg-papps__head h2 { margin: 0; }
.zg-ploan__form .zg-field { margin-bottom: 1rem; }
.zg-prepay { margin: 0 0 1rem; padding: 1rem 1.1rem; border: 1px solid var(--zg-line, #e6eaf0); border-radius: 12px; background: var(--zg-bg, #f6f8fb); }
.zg-prepay__prog { color: var(--zg-night, #071A33); margin-bottom: .5rem; }
.zg-prepay__next { color: var(--zg-text, #4a5568); font-size: .9rem; margin-bottom: .7rem; }
.zg-prepay__next strong { color: var(--zg-night, #071A33); }
.zg-prepay__done { display: inline-flex; align-items: center; gap: .4rem; color: var(--zg-success, #15803D); font-weight: 600; margin: 0; }
.zg-pschedule tr.is-paid td { color: #9aa5b4; text-decoration: line-through; }
.zg-pschedule tr.is-paid td.zg-strong { color: #9aa5b4; }
.zg-paid-tag { display: inline-block; padding: .1rem .45rem; border-radius: 999px; background: #E3F3EA; color: #15803D; font-size: .7rem; font-weight: 700; text-decoration: none; }

/* Card management (freeze + reveal) + profile */
.zg-badge--frozen { background: #E7ECF3; color: #475569; display: inline-flex; align-items: center; gap: .25rem; }
.zg-cardmgr.is-frozen .zg-portal__cardface { filter: grayscale(.5) opacity(.85); }
.zg-btn--sm { padding: .5rem .9rem; font-size: .85rem; }
.zg-cardmgr__reveal { margin: .4rem 0 1rem; }
.zg-cardmgr__details { margin-top: .8rem; padding: .9rem 1rem; border: 1px solid var(--zg-line, #e6eaf0); border-radius: 12px; background: var(--zg-bg, #f6f8fb); }
.zg-cardmgr__pan { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin-bottom: .8rem; }
.zg-cardmgr__pan span, .zg-cardmgr__row span { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: #8a94a6; }
.zg-cardmgr__pan code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.15rem; letter-spacing: .12em; color: var(--zg-night, #071A33); font-weight: 700; }
.zg-cardmgr__row { display: flex; gap: 2.5rem; }
.zg-cardmgr__row code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1rem; color: var(--zg-night, #071A33); font-weight: 700; letter-spacing: .06em; }
.zg-cardmgr__freeze { margin: 0 0 .4rem; }
.zg-pprofile__form { margin-top: .4rem; }
.zg-pprofile__form .zg-field { margin-bottom: 1rem; }
.zg-pprofile__form input:disabled { background: #F1F4F9; color: #8a94a6; }

/* Beneficiaries + scheduled + early repayment */
.zg-benlist { list-style: none; margin: .5rem 0 1rem; padding: 0; display: grid; gap: .5rem; }
.zg-benlist__row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .65rem .8rem; border: 1px solid var(--zg-line, #e6eaf0); border-radius: 10px; background: #fff; }
.zg-benlist__main { display: flex; flex-direction: column; min-width: 0; }
.zg-benlist__main strong { color: var(--zg-night, #071A33); }
.zg-benlist__meta { font-size: .8rem; color: #8a94a6; font-family: ui-monospace, Menlo, Consolas, monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zg-benlist__del { margin: 0; flex: 0 0 auto; }
.zg-iconbtn { display: grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: 8px; background: #f1f4f9; color: #64748b; cursor: pointer; }
.zg-iconbtn:hover { background: #fde8e8; color: #c0392b; }
.zg-disclose { border-top: 1px solid var(--zg-line, #e6eaf0); padding-top: .8rem; }
.zg-disclose > summary { cursor: pointer; font-weight: 600; color: var(--zg-primary, #0B5CFF); list-style: none; padding: .3rem 0; }
.zg-disclose > summary::-webkit-details-marker { display: none; }
.zg-disclose > summary::before { content: "+ "; font-weight: 700; }
.zg-disclose[open] > summary::before { content: "− "; }
.zg-early { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px dashed var(--zg-line-dark, #c9d2df); }
.zg-early h3 { font-size: .95rem; margin: 0 0 .5rem; color: var(--zg-night, #071A33); }
.zg-early__out { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 0 0 .8rem; }
.zg-early__out span { color: #6b7280; font-size: .88rem; }
.zg-early__out strong { color: var(--zg-night, #071A33); font-size: 1.1rem; font-weight: 800; }
.zg-early__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.zg-early__partial { display: flex; gap: .5rem; }
.zg-early__partial input { width: 120px; padding: .55rem .7rem; border: 1px solid var(--zg-line-dark, #c9d2df); border-radius: 9px; font: inherit; }

/* Secure messaging + statement + nav badge */
.zg-pnav__badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 .3rem; margin-left: .35rem; border-radius: 999px; background: var(--zg-error, #c0392b); color: #fff; font-size: .68rem; font-weight: 800; }
.zg-msgthread { list-style: none; margin: 1rem 0; padding: 0; display: flex; flex-direction: column; gap: .7rem; max-height: 480px; overflow-y: auto; }
.zg-msgthread--admin { max-height: 340px; }
.zg-msg { display: flex; }
.zg-msg--me { justify-content: flex-end; }
.zg-msg__bubble { max-width: 78%; padding: .7rem .9rem; border-radius: 14px; }
.zg-msg--bank .zg-msg__bubble { background: var(--zg-bg, #f0f3f8); border-bottom-left-radius: 4px; }
.zg-msg--me .zg-msg__bubble { background: var(--zg-night, #071A33); color: #fff; border-bottom-right-radius: 4px; }
.zg-msg__bubble p { margin: 0; font-size: .92rem; line-height: 1.5; }
.zg-msg__meta { display: block; margin-top: .35rem; font-size: .7rem; opacity: .7; }
.zg-msgform textarea, .zg-msgform { display: block; }
.zg-msgform textarea { width: 100%; padding: .7rem .8rem; border: 1px solid var(--zg-line-dark, #c9d2df); border-radius: 10px; font: inherit; resize: vertical; margin-bottom: .7rem; }
.zg-stmt__filters { margin: .4rem 0 1rem; }
.zg-stmt__actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .5rem; }
.zg-stmt__count { color: #6b7280; font-size: .85rem; margin: .2rem 0 .6rem; }
.zg-stmt__table td { white-space: normal; }

/* Documents / vault */
.zg-doclist { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: .6rem; }
.zg-doclist__h { font-size: 1rem; margin: 1.6rem 0 .4rem; color: var(--zg-night, #071A33); }
.zg-doc { display: flex; align-items: center; gap: .9rem; padding: .8rem 1rem; border: 1px solid var(--zg-line, #e6eaf0); border-radius: 12px; background: #fff; }
.zg-doc__ic { flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: var(--zg-gold-soft, #f5ecd8); color: var(--zg-gold, #b8860b); }
.zg-doc__main { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.zg-doc__main strong { color: var(--zg-night, #071A33); }
.zg-doc__main span { font-size: .82rem; color: #8a94a6; }
.zg-doc .zg-btn { flex: 0 0 auto; }

/* Notifications centre + preferences */
.zg-notiflist { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.zg-notif { display: flex; gap: .8rem; padding: .8rem .9rem; border: 1px solid var(--zg-line, #e6eaf0); border-radius: 12px; background: #fff; }
.zg-notif__ic { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--zg-bg, #f0f3f8); color: var(--zg-primary, #0B5CFF); }
.zg-notif__ic--credit, .zg-notif__ic--convert { color: #15803D; background: #E3F3EA; }
.zg-notif__ic--debit, .zg-notif__ic--transfer { color: #b45309; background: #FBF1E3; }
.zg-notif__ic--due { color: #b91c1c; background: #FDEBEB; }
.zg-notif__ic--message { color: var(--zg-primary, #0B5CFF); background: #E7EEFF; }
.zg-notif__ic--contract, .zg-notif__ic--card { color: var(--zg-gold, #b8860b); background: var(--zg-gold-soft, #f5ecd8); }
.zg-notif__body { display: flex; flex-direction: column; min-width: 0; }
.zg-notif__body strong { color: var(--zg-night, #071A33); }
.zg-notif__text { font-size: .88rem; color: var(--zg-text, #4a5568); }
.zg-notif__time { font-size: .74rem; color: #9aa5b4; margin-top: .2rem; }
.zg-notifprefs { display: flex; flex-direction: column; gap: .1rem; margin-top: .6rem; }
.zg-toggle { display: flex; align-items: center; gap: .6rem; padding: .55rem 0; border-bottom: 1px solid #F0F3F8; font-size: .93rem; color: var(--zg-ink, #1f2937); cursor: pointer; }
.zg-toggle input { width: 18px; height: 18px; accent-color: var(--zg-primary, #0B5CFF); }
.zg-notifprefs .zg-btn { margin-top: 1rem; align-self: flex-start; }
