/* Sofiology premium client gateway ---------------------------------------- */

.sofiology-client-gateway .sof-prefooter,
.sofiology-client-gateway .sofsvc-concierge,
.sofiology-client-gateway .sofsvc-mobile-sticky {
	display: none !important;
}

.sofiology-client-gateway {
	--client-dark: #171a18;
	--client-dark-2: #242925;
	--client-line: rgba(255,255,255,.12);
	--client-soft: #f1f3ee;
}

.sof-client-login__stage {
	padding: clamp(3rem, 7vw, 6.75rem) 0;
	background:
		radial-gradient(circle at 15% 18%, rgba(63,111,58,.24), transparent 28rem),
		linear-gradient(135deg, #171a18 0%, #202620 58%, #151816 100%);
	color: #fff;
}

.sof-client-login__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, .72fr);
	gap: clamp(3rem, 7vw, 7.5rem);
	align-items: center;
}

.sof-client-login__intro { max-width: 680px; }
.sof-client-login__intro .eyebrow { color: #a9c5a5; }
.sof-client-login__intro h1 {
	margin: .45rem 0 1.15rem;
	font-size: clamp(3rem, 6.5vw, 6.2rem);
	line-height: .95;
	letter-spacing: -.055em;
	max-width: 9ch;
}
.sof-client-login__intro > p:not(.eyebrow):not(.sof-client-login__privacy-note) {
	max-width: 54ch;
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	color: rgba(255,255,255,.76);
}

.sof-client-login__system {
	margin-top: clamp(2rem, 4vw, 3.75rem);
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr;
	align-items: center;
	gap: .75rem;
}
.sof-client-login__system > i { color: rgba(255,255,255,.4); font-style: normal; }
.sof-client-login__system-node {
	min-height: 94px;
	padding: 1rem;
	border: 1px solid var(--client-line);
	border-radius: 1rem;
	background: rgba(255,255,255,.045);
	backdrop-filter: blur(8px);
}
.sof-client-login__system-node span { display:block; color:#98b995; font-size:.72rem; letter-spacing:.12em; }
.sof-client-login__system-node strong { display:block; margin-top:.55rem; font-size:.9rem; line-height:1.25; }
.sof-client-login__privacy-note { margin-top: 1.2rem; color: rgba(255,255,255,.48); font-size: .82rem; }

.sof-client-login__card {
	background: #fff;
	color: var(--color-text);
	border-radius: 1.35rem;
	padding: clamp(1.5rem, 3vw, 2.4rem);
	box-shadow: 0 30px 70px rgba(0,0,0,.28);
	border: 1px solid rgba(255,255,255,.55);
}
.sof-client-login__card-head { display:flex; gap:.85rem; align-items:center; margin-bottom:1.7rem; }
.sof-client-login__mark {
	display:grid; place-items:center; width:46px; height:46px; border-radius:50%;
	background:var(--color-green); color:#fff; font-weight:700; font-size:1rem;
}
.sof-client-login__card-head p { margin:0; color:var(--color-muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; }
.sof-client-login__card-head h2 { margin:.15rem 0 0; font-size:1.45rem; letter-spacing:-.025em; }
.sof-client-login__notice { margin-bottom:1.15rem; padding:.85rem 1rem; border-radius:.75rem; background:#fff2ef; border:1px solid #f0c9c0; color:#71392e; font-size:.9rem; }
.sof-client-login__notice.is-success { background:#eef6ea; border-color:#cadfc2; color:#315a2e; }
.sof-client-login__form { display:grid; gap:.55rem; }
.sof-client-login__form > label { margin-top:.55rem; font-size:.82rem; font-weight:650; }
.sof-client-login__form input[type="text"],
.sof-client-login__form input[type="password"] {
	width:100%; min-height:50px; border:1px solid #d8d9d3; border-radius:.7rem; padding:.72rem .85rem;
	font:inherit; color:var(--color-text); background:#fff;
}
.sof-client-login__form input:focus { outline:3px solid rgba(63,111,58,.18); border-color:var(--color-green); }
.sof-client-login__password { position:relative; }
.sof-client-login__password input { padding-right:4.4rem !important; }
.sof-client-login__password button {
	position:absolute; right:.55rem; top:50%; transform:translateY(-50%); border:0; background:transparent;
	font:600 .78rem/1 var(--font-sans); color:var(--color-green-dark); padding:.55rem; cursor:pointer;
}
.sof-client-login__form-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:.4rem 0 .9rem; font-size:.82rem; }
.sof-client-login__remember { display:flex; align-items:center; gap:.45rem; }
.sof-client-login__form-row a, .sof-client-login__back { color:var(--color-green-dark); font-weight:650; }
.sof-client-login__back { display:inline-flex; margin-top:1rem; }
.sof-client-login__secure { display:flex; gap:.7rem; align-items:flex-start; margin-top:1.3rem; padding-top:1.1rem; border-top:1px solid var(--color-border); color:var(--color-muted); }
.sof-client-login__secure svg { width:20px; flex:0 0 20px; margin-top:.1rem; color:var(--color-green-dark); }
.sof-client-login__secure p { margin:0; font-size:.8rem; }

.sof-member-area { background:#f6f7f3; }
.sof-member-area__hero { padding: clamp(2.6rem, 5vw, 4.5rem) 0 2rem; background:#f6f7f3; }
.sof-member-area__hero-inner { display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.sof-member-area__hero h1 { margin:.35rem 0 0; font-size:clamp(2.5rem,5vw,5.25rem); line-height:1; letter-spacing:-.055em; }
.sof-member-area__welcome { margin:.85rem 0 0; color:var(--color-muted); font-size:1.05rem; }
.sof-member-area__status { display:flex; align-items:center; gap:.5rem; color:var(--color-muted); font-size:.82rem; }
.sof-member-area__status span { width:.55rem; height:.55rem; border-radius:50%; background:var(--color-green); box-shadow:0 0 0 5px rgba(63,111,58,.1); }

.sof-member-area__workspace-wrap { padding: 1rem 0 clamp(3rem, 5vw, 5rem); }
.sof-member-workspace {
	display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); min-height:440px;
	border-radius:1.4rem; overflow:hidden; background:var(--client-dark); color:#fff;
	box-shadow:0 24px 60px rgba(32,39,33,.13);
}
.sof-member-workspace__copy { padding:clamp(2rem,5vw,4.8rem); }
.sof-member-workspace__copy .eyebrow { color:#a9c5a5; }
.sof-member-workspace__copy h2 { margin:.45rem 0 .75rem; font-size:clamp(2.25rem,4vw,4.15rem); line-height:1; letter-spacing:-.05em; max-width:11ch; }
.sof-member-workspace__copy > p:not(.eyebrow):not(.sof-member-workspace__security) { color:rgba(255,255,255,.7); max-width:48ch; }
.sof-member-workspace__copy ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem 1.25rem; margin:1.5rem 0 2rem; padding:0; list-style:none; }
.sof-member-workspace__copy li { position:relative; padding-left:1rem; color:rgba(255,255,255,.82); font-size:.9rem; }
.sof-member-workspace__copy li::before { content:""; position:absolute; left:0; top:.62em; width:.35rem; height:.35rem; border-radius:50%; background:#7fa67a; }
.sof-member-workspace__cta { display:inline-flex; }
.sof-member-workspace__security { margin:1rem 0 0; color:rgba(255,255,255,.48); font-size:.78rem; }
.sof-member-workspace__visual { position:relative; display:grid; place-items:center; overflow:hidden; background:linear-gradient(145deg,#293129,#1f241f); border-left:1px solid var(--client-line); }
.sof-member-workspace__visual::before,.sof-member-workspace__visual::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.08); border-radius:50%; width:420px; height:420px; }
.sof-member-workspace__visual::after { width:290px; height:290px; }
.sof-member-workspace__orb { position:relative; z-index:2; width:120px; height:120px; border-radius:50%; display:grid; place-items:center; background:#fff; color:var(--client-dark); box-shadow:0 0 0 18px rgba(255,255,255,.05),0 0 0 42px rgba(255,255,255,.025); }
.sof-member-workspace__orb span { font-size:2rem; font-weight:750; }
.sof-member-workspace__rail { position:absolute; left:1.3rem; right:1.3rem; bottom:1.3rem; z-index:3; display:grid; grid-template-columns:repeat(4,1fr); gap:.45rem; }
.sof-member-workspace__rail div { padding:.7rem; border:1px solid rgba(255,255,255,.1); border-radius:.7rem; background:rgba(0,0,0,.18); backdrop-filter:blur(8px); }
.sof-member-workspace__rail i { display:block; color:#90b08c; font-size:.63rem; font-style:normal; }
.sof-member-workspace__rail strong { display:block; margin-top:.3rem; font-size:.72rem; }

.sof-member-area__lower { padding:0 0 clamp(4rem,7vw,7rem); }
.sof-member-area__lower-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.6fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.sof-member-section-head h2,.sof-member-account h2 { margin:.35rem 0 1.4rem; font-size:clamp(1.8rem,3vw,2.8rem); line-height:1.08; letter-spacing:-.04em; }
.sof-member-quick__links { border-top:1px solid var(--color-border); }
.sof-member-quick__links a { display:grid; grid-template-columns:44px 1fr auto; gap:1rem; align-items:center; padding:1.15rem .2rem; border-bottom:1px solid var(--color-border); color:inherit; text-decoration:none; }
.sof-member-quick__links a:hover strong { color:var(--color-green-dark); }
.sof-member-quick__links a > span { color:var(--color-muted); font-size:.72rem; letter-spacing:.1em; }
.sof-member-quick__links strong { display:block; font-size:.96rem; transition:color var(--transition-fast); }
.sof-member-quick__links small { display:block; margin-top:.15rem; color:var(--color-muted); font-size:.78rem; }
.sof-member-quick__links i { font-style:normal; color:var(--color-green-dark); }
.sof-member-account { background:#fff; border:1px solid var(--color-border); border-radius:1rem; padding:clamp(1.35rem,3vw,2rem); scroll-margin-top:calc(var(--header-height) + 1rem); }
.sof-member-account dl { margin:0 0 1.4rem; }
.sof-member-account dl div { display:grid; grid-template-columns:95px 1fr; gap:1rem; padding:.8rem 0; border-bottom:1px solid var(--color-border); }
.sof-member-account dt { color:var(--color-muted); font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; }
.sof-member-account dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
.sof-member-account > p:last-child { margin:1rem 0 0; color:var(--color-muted); font-size:.78rem; }

@media (max-width: 900px) {
	.sof-client-login__grid,
	.sof-member-workspace,
	.sof-member-area__lower-grid { grid-template-columns:1fr; }
	.sof-client-login__intro h1 { max-width:11ch; }
	.sof-client-login__system { max-width:680px; }
	.sof-member-workspace__visual { min-height:330px; border-left:0; border-top:1px solid var(--client-line); }
	.sof-member-area__hero-inner { align-items:flex-start; }
}

@media (max-width: 620px) {
	.sof-client-login__stage { padding:2rem 0 3rem; }
	.sof-client-login__grid { gap:2rem; }
	.sof-client-login__intro h1 { font-size:clamp(2.6rem,14vw,4rem); max-width:none; }
	.sof-client-login__system { grid-template-columns:1fr; gap:.45rem; }
	.sof-client-login__system > i { transform:rotate(90deg); justify-self:center; }
	.sof-client-login__system-node { min-height:auto; }
	.sof-client-login__form-row { align-items:flex-start; flex-direction:column; gap:.6rem; }
	.sof-member-area__hero { padding-top:2rem; }
	.sof-member-area__hero-inner { flex-direction:column; gap:1rem; }
	.sof-member-workspace__copy { padding:1.55rem; }
	.sof-member-workspace__copy h2 { font-size:clamp(2rem,11vw,3rem); max-width:none; }
	.sof-member-workspace__copy ul { grid-template-columns:1fr; }
	.sof-member-workspace__visual { min-height:300px; }
	.sof-member-workspace__rail { grid-template-columns:repeat(2,1fr); }
	.sof-member-quick__links a { grid-template-columns:36px 1fr auto; }
	.sof-member-account dl div { grid-template-columns:1fr; gap:.25rem; }
}

@media (prefers-reduced-motion: reduce) {
	.sof-member-quick__links strong { transition:none; }
}
