/* =========================================================
   Access Broker — main stylesheet
   Brand: navy #0a1140 · gold #e9a526
   ========================================================= */

:root {
	--ab-navy: #0a1140;
	--ab-navy-2: #131a54;
	--ab-navy-3: #1b2468;
	--ab-blue-mid: #2a3690;
	--ab-blue-soft: #3a4bb8;
	--ab-ink: #0b1030;
	--ab-gold: #e9a526;
	--ab-gold-2: #f3b948;
	--ab-gold-soft: #ffe4a3;
	--ab-paper: #fbfaf7;
	--ab-paper-2: #f2f1ec;
	--ab-muted: #5c6585;
	--ab-line: rgba(10, 17, 64, 0.08);
	--ab-line-dark: rgba(255, 255, 255, 0.12);
	--ab-white: #ffffff;
	--ab-radius: 18px;
	--ab-radius-lg: 28px;
	--ab-shadow-sm: 0 4px 18px rgba(10, 17, 64, 0.08);
	--ab-shadow: 0 24px 48px -20px rgba(10, 17, 64, 0.22);
	--ab-shadow-lg: 0 40px 80px -30px rgba(10, 17, 64, 0.38);
	--ab-font-sans: 'Plus Jakarta Sans', 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--ab-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--ab-container: 1200px;
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--ab-font-sans);
	color: var(--ab-ink);
	background: var(--ab-paper);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, h5 { margin: 0; font-family: var(--ab-font-sans); font-weight: 700; line-height: 1.15; letter-spacing: -0.01em; color: var(--ab-navy); }
p { margin: 0 0 1rem; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; border: 0; background: transparent; color: inherit; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--ab-gold); color: var(--ab-navy); padding: .75rem 1rem; z-index: 9999; }
.skip-link:focus { left: 1rem; top: 1rem; border-radius: 8px; }

/* ---------- Layout helpers ---------- */
.ab-container { width: min(var(--ab-container), 92vw); margin: 0 auto; }
.ab-section { padding: clamp(64px, 10vw, 128px) 0; position: relative; }
.ab-section__head { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.ab-section__head .ab-eyebrow { margin-bottom: 14px; }
.ab-section__lead { color: var(--ab-muted); font-size: 1.05rem; }

.ab-h2 { font-size: clamp(1.85rem, 1.2rem + 2.6vw, 3.2rem); font-weight: 800; letter-spacing: -0.02em; }
.ab-h2 em { font-style: normal; color: var(--ab-gold); }
.ab-h2--light { color: #fff; }

.ab-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--ab-navy); background: rgba(10,17,64,0.07); padding: 8px 14px; border-radius: 999px; }
.ab-eyebrow--gold { background: rgba(233,165,38,0.15); color: #8a5f10; }
.ab-eyebrow--light { background: rgba(255,255,255,0.12); color: var(--ab-gold-soft); }
.ab-eyebrow__dot { width: 8px; height: 8px; border-radius: 999px; background: var(--ab-gold); box-shadow: 0 0 0 4px rgba(233,165,38,0.25); }

.ab-gradient-text { background: linear-gradient(120deg, var(--ab-gold), #ffd46a 60%, #fff1c7); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ab-gold { color: var(--ab-gold); }
.ab-underline { position: relative; white-space: nowrap; }
.ab-underline::after { content: ''; position: absolute; left: 0; right: 0; bottom: 4px; height: 10px; background: rgba(233,165,38,0.38); border-radius: 8px; z-index: -1; transform: skewX(-8deg); }

/* ---------- Buttons ---------- */
.ab-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: 999px; font-weight: 700; font-size: .95rem; transition: transform .3s var(--ab-ease), box-shadow .3s var(--ab-ease), background .3s var(--ab-ease), color .3s var(--ab-ease); white-space: nowrap; }
.ab-btn--primary { background: var(--ab-gold); color: var(--ab-navy); box-shadow: 0 14px 30px -10px rgba(233,165,38,0.6); }
.ab-btn--primary:hover { background: var(--ab-gold-2); transform: translateY(-2px); box-shadow: 0 20px 40px -12px rgba(233,165,38,0.7); }
.ab-btn--ghost { background: transparent; color: var(--ab-navy); border: 1.5px solid rgba(10,17,64,0.18); }
.ab-btn--ghost:hover { border-color: var(--ab-navy); background: var(--ab-navy); color: #fff; }
.ab-btn--dark { color: #fff; border-color: rgba(255,255,255,0.3); }
.ab-btn--dark:hover { background: var(--ab-gold); color: var(--ab-navy); border-color: var(--ab-gold); }
.ab-btn--full { width: 100%; justify-content: center; }
.ab-btn__arrow { transition: transform .3s var(--ab-ease); }
.ab-btn:hover .ab-btn__arrow { transform: translateX(4px); }

/* ---------- Hex decoration ---------- */
.ab-hex { position: relative; display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; color: var(--ab-gold); }
.ab-hex > svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: rgba(233,165,38,0.12); stroke: var(--ab-gold); stroke-width: 4; transition: transform .4s var(--ab-ease), fill .4s var(--ab-ease); }
.ab-hex__inner { position: relative; display: inline-flex; color: var(--ab-gold); z-index: 1; }
.ab-hex__inner .ab-icon { width: 26px; height: 26px; stroke-width: 1.8; }
*:hover > .ab-hex > svg, .ab-hex:hover > svg { transform: rotate(30deg); fill: rgba(233,165,38,0.25); }

/* ---------- Iconic offering-card colours (AB_OFFER_ICONIC_COLORS) ----------
   To revert: set the constant to false in functions.php — nothing else changes.
   Each card carries --offer-icon (solid) and --offer-icon-dim (12% alpha fill)
   as inline custom properties; the rules below are completely inert when the
   .ab-offers--iconic-colors class is absent from the section.               */
.ab-offers--iconic-colors .ab-offer-card .ab-hex            { color: var(--offer-icon, var(--ab-gold)); }
.ab-offers--iconic-colors .ab-offer-card .ab-hex > svg      { stroke: var(--offer-icon, var(--ab-gold)); fill: var(--offer-icon-dim, rgba(233,165,38,0.12)); }
.ab-offers--iconic-colors .ab-offer-card .ab-hex__inner     { color: var(--offer-icon, var(--ab-gold)); }
.ab-offers--iconic-colors .ab-offer-card:hover .ab-hex > svg,
.ab-offers--iconic-colors .ab-offer-card .ab-hex:hover > svg { stroke: var(--offer-icon, var(--ab-gold)); fill: var(--offer-icon-dim, rgba(233,165,38,0.25)); }

/* ---------- Header ---------- */
.ab-header { position: sticky; top: 0; z-index: 50; background: var(--ab-navy); border-bottom: 1px solid rgba(255,255,255,0.08); transition: box-shadow .3s var(--ab-ease), background .3s var(--ab-ease); }
.ab-header.is-scrolled { background: var(--ab-ink); box-shadow: 0 10px 30px -20px rgba(10,17,64,0.5); }
.ab-header__row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 0; }

.ab-brand { display: inline-flex; align-items: center; gap: 12px; color: #fff; }
.ab-brand__logo { display: block; height: 60px; width: auto; }
@media (max-width: 600px) { .ab-brand__logo { height: 48px; } }

/* ---------- Navigation ---------- */
.ab-nav { display: flex; align-items: center; gap: 26px; }
.ab-menu { display: flex; gap: 22px; }
.ab-menu a { position: relative; font-weight: 600; font-size: .95rem; color: #fff; padding: 8px 0; transition: color .3s var(--ab-ease); }
.ab-menu a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px; background: var(--ab-gold); transition: right .3s var(--ab-ease); }
.ab-menu a:hover { color: var(--ab-gold); }
.ab-menu a:hover::after { right: 0; }
.ab-nav__cta { padding: 10px 18px; font-size: .9rem; }

.ab-nav-toggle { display: none; position: relative; z-index: 62; width: 44px; height: 44px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 10px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.2); background: transparent; transition: background .3s var(--ab-ease), border-color .3s var(--ab-ease); }
.ab-nav-toggle span { display: block; width: 20px; height: 2px; background: #fff; border-radius: 2px; transition: transform .3s var(--ab-ease), opacity .3s var(--ab-ease), background .3s var(--ab-ease); }
.ab-nav-toggle[aria-expanded="true"] { background: transparent; border-color: rgba(255,255,255,0.35); }
.ab-nav-toggle[aria-expanded="true"] span { background: #fff; }
.ab-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ab-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ab-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {
	.ab-header { background: var(--ab-navy); }
	.ab-header.is-scrolled { background: var(--ab-ink); }
	.ab-nav-toggle { display: flex; }
	.ab-nav {
		position: fixed;
		inset: 0;
		background: linear-gradient(160deg, var(--ab-navy) 0%, var(--ab-navy-3) 100%);
		color: #fff;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		padding: 96px 28px 40px;
		gap: 4px;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform .45s var(--ab-ease), visibility .45s var(--ab-ease);
		z-index: 61;
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	.ab-nav.is-open { transform: translateX(0); visibility: visible; }
	.ab-nav::before {
		content: '';
		position: absolute;
		right: -80px; top: -80px;
		width: 260px; height: 260px;
		background: radial-gradient(circle, rgba(233,165,38,0.35), transparent 70%);
		filter: blur(30px);
		pointer-events: none;
	}
	.ab-menu { flex-direction: column; width: 100%; gap: 0; position: relative; }
	.ab-menu li { border-bottom: 1px solid rgba(255,255,255,0.1); }
	.ab-menu a { display: block; padding: 18px 4px; font-size: 1.25rem; font-weight: 700; color: #fff; letter-spacing: -0.01em; }
	.ab-menu a:hover,
	.ab-menu a:focus { color: var(--ab-gold); }
	.ab-menu a::after { background: var(--ab-gold); bottom: 8px; }
	.ab-nav__cta { width: 100%; justify-content: center; margin-top: 22px; padding: 16px 22px; font-size: 1rem; }
}

/* Lock body scroll when the mobile drawer is open */
body.ab-nav-open { overflow: hidden; }

/* ---------- Hero ---------- */
.ab-hero { position: relative; padding: clamp(72px, 10vw, 140px) 0 clamp(60px, 8vw, 120px); overflow: hidden; background: linear-gradient(180deg, #fff 0%, var(--ab-paper) 80%); }
.ab-hero__bg { position: absolute; inset: 0; pointer-events: none; }
.ab-hero__orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .55; }
.ab-hero__orb--a { width: 480px; height: 480px; background: radial-gradient(circle, rgba(233,165,38,0.55), transparent 70%); top: -120px; right: -80px; animation: floatA 12s ease-in-out infinite; }
.ab-hero__orb--b { width: 560px; height: 560px; background: radial-gradient(circle, rgba(10,17,64,0.38), transparent 70%); bottom: -200px; left: -120px; animation: floatB 14s ease-in-out infinite; }
.ab-hero__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(10,17,64,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(10,17,64,0.06) 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse at center, #000 0%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at center, #000 0%, transparent 70%); }

.ab-hero__grid-row { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: center; position: relative; z-index: 1; }
@media (max-width: 900px) { .ab-hero__grid-row { grid-template-columns: 1fr; gap: 48px; } }

.ab-hero__title { font-size: clamp(2.2rem, 1.5rem + 3.6vw, 4.5rem); line-height: 1.05; letter-spacing: -0.03em; margin: 18px 0 22px; font-weight: 800; }
.ab-hero__lede { color: var(--ab-muted); font-size: 1.1rem; max-width: 560px; }
.ab-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; margin: 28px 0 40px; }

.ab-hero__stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; padding: 22px 0 0; border-top: 1px solid var(--ab-line); max-width: 520px; }
.ab-hero__stats strong { display: block; font-size: 1.6rem; color: var(--ab-navy); font-weight: 800; letter-spacing: -0.02em; }
.ab-hero__stats span { display: block; font-size: .82rem; color: var(--ab-muted); margin-top: 4px; }

/* Hero visual */
.ab-hero__visual { position: relative; height: 520px; }
@media (max-width: 900px) { .ab-hero__visual { height: 440px; } }

.ab-hero__card { position: absolute; top: 30px; left: 20px; width: min(100%, 380px); background: #fff; border-radius: var(--ab-radius-lg); padding: 28px; box-shadow: var(--ab-shadow-lg); border: 1px solid var(--ab-line); }
.ab-hero__card-header { display: flex; gap: 16px; align-items: center; margin-bottom: 22px; }
.ab-hero__card-eyebrow { margin: 0; font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ab-muted); }
.ab-hero__card-title { margin: 2px 0 0; font-weight: 700; font-size: 1.05rem; color: var(--ab-navy); }
.ab-hero__meter { position: relative; height: 10px; background: rgba(10,17,64,0.08); border-radius: 999px; overflow: hidden; margin-bottom: 18px; }
.ab-hero__meter-fill { position: absolute; inset: 0; width: var(--v, 75%); background: linear-gradient(90deg, var(--ab-gold), #ffd572); border-radius: 999px; animation: pulse 2.6s ease-in-out infinite; }
.ab-hero__tags { display: flex; gap: 8px; flex-wrap: wrap; }
.ab-hero__tags li { padding: 6px 12px; background: rgba(10,17,64,0.06); border-radius: 999px; font-size: .8rem; font-weight: 600; color: var(--ab-navy); }

.ab-hero__badge { position: absolute; right: 0; bottom: 80px; display: flex; gap: 14px; align-items: center; background: var(--ab-navy); color: #fff; padding: 18px 20px; border-radius: var(--ab-radius); box-shadow: var(--ab-shadow); }
.ab-hero__badge .ab-icon { width: 28px; height: 28px; color: var(--ab-gold); }
.ab-hero__badge strong { display: block; font-size: .95rem; }
.ab-hero__badge span { display: block; font-size: .78rem; opacity: .7; }

.ab-hero__pill { position: absolute; left: 40px; bottom: 10px; display: inline-flex; align-items: center; gap: 10px; background: #fff; padding: 12px 18px; border-radius: 999px; font-weight: 600; font-size: .85rem; box-shadow: var(--ab-shadow); border: 1px solid var(--ab-line); }
.ab-hero__pill-dot { width: 8px; height: 8px; border-radius: 999px; background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,0.2); animation: pulse 2s ease-in-out infinite; }

/* Floating animation */
.ab-float { animation: floatY 6s ease-in-out infinite; }
.ab-float--slow { animation-duration: 8s; animation-delay: .4s; }
.ab-float--fast { animation-duration: 4.5s; animation-delay: .2s; }
@keyframes floatY { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes floatA { 0%,100% { transform: translate(0,0); } 50% { transform: translate(-30px, 20px); } }
@keyframes floatB { 0%,100% { transform: translate(0,0); } 50% { transform: translate(40px, -30px); } }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .7; } }

/* Hero bottom marquee */
.ab-hero__marquee { margin-top: clamp(40px, 6vw, 80px); border-top: 1px solid var(--ab-line); border-bottom: 1px solid var(--ab-line); overflow: hidden; background: #fff; }
.ab-hero__marquee-track { display: inline-flex; gap: 36px; padding: 18px 0; white-space: nowrap; animation: marquee 26s linear infinite; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--ab-navy); font-size: .9rem; }
.ab-hero__marquee-track span:nth-child(even) { color: var(--ab-gold); }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- About ---------- */
.ab-about { background: #fff; }
.ab-about__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items: flex-start; }
@media (max-width: 900px) { .ab-about__grid { grid-template-columns: 1fr; gap: 48px; } }
.ab-about p { color: var(--ab-muted); font-size: 1.05rem; margin: 18px 0 36px; }

.ab-about__pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 600px) { .ab-about__pillars { grid-template-columns: 1fr; } }
.ab-pillar { padding: 28px; border-radius: var(--ab-radius); background: var(--ab-paper); border: 1px solid var(--ab-line); transition: transform .4s var(--ab-ease), box-shadow .4s var(--ab-ease); }
.ab-pillar:hover { transform: translateY(-4px); box-shadow: var(--ab-shadow); }
.ab-pillar__num { font-family: var(--ab-font-sans); font-weight: 800; font-size: 1.2rem; color: var(--ab-gold); letter-spacing: .15em; }
.ab-pillar h3 { font-size: 1.2rem; margin: 10px 0 8px; }
.ab-pillar p { margin: 0; font-size: .95rem; color: var(--ab-muted); }

.ab-values { padding: 36px; border-radius: var(--ab-radius-lg); background: linear-gradient(160deg, var(--ab-navy), var(--ab-navy-3)); color: #fff; box-shadow: var(--ab-shadow-lg); position: relative; overflow: hidden; }
.ab-values::before { content: ''; position: absolute; width: 260px; height: 260px; background: radial-gradient(circle, rgba(233,165,38,0.3), transparent 70%); top: -100px; right: -80px; filter: blur(20px); }
.ab-values__title { color: var(--ab-gold); font-size: 1.05rem; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 28px; position: relative; }
.ab-values ul { display: flex; flex-direction: column; gap: 22px; position: relative; }
.ab-values li { display: flex; gap: 18px; align-items: flex-start; }
.ab-values h4 { color: #fff; font-size: 1.1rem; margin: 0 0 4px; }
.ab-values p { color: rgba(255,255,255,0.7); font-size: .92rem; margin: 0; }

/* ---------- Services ---------- */
.ab-services { background: var(--ab-paper); }
.ab-services__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; }
@media (max-width: 900px) { .ab-services__grid { grid-template-columns: 1fr; } }

.ab-service-card { position: relative; padding: 36px; border-radius: var(--ab-radius-lg); border: 1px solid transparent; transition: transform .5s var(--ab-ease), box-shadow .5s var(--ab-ease); overflow: hidden; color: #fff; }
.ab-service-card::after { content: ''; position: absolute; inset: auto -60px -60px auto; width: 240px; height: 240px; background: radial-gradient(circle, rgba(255,255,255,0.18), transparent 70%); opacity: 0; transition: opacity .5s var(--ab-ease); pointer-events: none; }
.ab-service-card:hover { transform: translateY(-6px); box-shadow: var(--ab-shadow-lg); }
.ab-service-card:hover::after { opacity: 1; }
.ab-service-card__icon { margin-bottom: 22px; }
.ab-service-card h3 { font-size: 1.4rem; margin-bottom: 10px; color: inherit; }
.ab-service-card > p { opacity: .85; margin-bottom: 20px; font-size: .98rem; color: inherit; }
.ab-service-card ul { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.ab-service-card li { position: relative; padding-left: 22px; font-size: .92rem; font-weight: 500; color: inherit; }
.ab-service-card li::before { content: ''; position: absolute; left: 0; top: 7px; width: 10px; height: 10px; border-radius: 3px; background: currentColor; opacity: .9; transform: rotate(45deg); }
.ab-service-card__link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: inherit; position: relative; }
.ab-service-card__link::after { content: ''; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ab-ease); }
.ab-service-card__link:hover::after { transform: scaleX(1); }

/* Variant: Dark Navy (General Insurance) */
.ab-service-card--navy { background: linear-gradient(160deg, var(--ab-navy) 0%, var(--ab-navy-2) 100%); }
.ab-service-card--navy li::before { background: var(--ab-gold); }
.ab-service-card--navy .ab-service-card__link { color: var(--ab-gold); }
.ab-service-card--navy .ab-hex > svg { stroke: var(--ab-gold); fill: rgba(233,165,38,0.15); }
.ab-service-card--navy .ab-hex__inner { color: var(--ab-gold); }

/* Variant: Mid Blue (Life Assurance) */
.ab-service-card--blue { background: linear-gradient(160deg, var(--ab-blue-mid) 0%, var(--ab-blue-soft) 100%); }
.ab-service-card--blue li::before { background: var(--ab-gold); }
.ab-service-card--blue .ab-service-card__link { color: var(--ab-gold); }
.ab-service-card--blue .ab-hex > svg { stroke: var(--ab-gold); fill: rgba(255,255,255,0.15); }
.ab-service-card--blue .ab-hex__inner { color: var(--ab-gold); }

/* Variant: Gold (Health Insurance) */
.ab-service-card--gold { background: linear-gradient(160deg, var(--ab-gold) 0%, var(--ab-gold-2) 100%); color: var(--ab-navy); }
.ab-service-card--gold li::before { background: var(--ab-navy); }
.ab-service-card--gold .ab-service-card__link { color: var(--ab-navy); }
.ab-service-card--gold .ab-hex > svg { stroke: var(--ab-navy); fill: rgba(10,17,64,0.12); }
.ab-service-card--gold .ab-hex__inner { color: var(--ab-navy); }
.ab-service-card--gold::after { background: radial-gradient(circle, rgba(10,17,64,0.15), transparent 70%); }

/* ---------- Offerings two-row carousel (infinite, opposite directions) ---------- */
.ab-offers { background: linear-gradient(180deg, var(--ab-paper) 0%, #fff 100%); overflow: hidden; }
.ab-offers__head { text-align: left; max-width: none; margin-bottom: 44px; }
.ab-offers__head h2 { max-width: 720px; }
.ab-offers__head .ab-section__lead { max-width: 640px; margin-top: 14px; }

.ab-offers__stage { position: relative; padding: 14px 0; mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 95%, transparent 100%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 95%, transparent 100%); }
.ab-offers__stage + .ab-offers__stage { margin-top: 8px; }

.ab-offers__track { display: flex; gap: 22px; width: max-content; will-change: transform; }
.ab-offers__track--left { animation: offersScrollLeft 55s linear infinite; }
.ab-offers__track--right { animation: offersScrollRight 55s linear infinite; }
.ab-offers__track:hover { animation-play-state: paused; }
@keyframes offersScrollLeft { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes offersScrollRight { from { transform: translateX(-50%); } to { transform: translateX(0); } }

.ab-offer-card { flex: 0 0 320px; background: #fff; border-radius: var(--ab-radius-lg); padding: 28px; box-shadow: var(--ab-shadow-sm); border: 1px solid var(--ab-line); display: flex; flex-direction: column; gap: 14px; transition: transform .4s var(--ab-ease), box-shadow .4s var(--ab-ease), background .4s var(--ab-ease), color .4s var(--ab-ease); position: relative; overflow: hidden; }
.ab-offer-card::before { content: ''; position: absolute; inset: auto -40px -40px auto; width: 160px; height: 160px; background: radial-gradient(circle, rgba(233,165,38,0.22), transparent 70%); opacity: 0; transition: opacity .4s var(--ab-ease); }
.ab-offer-card:hover { transform: translateY(-8px); box-shadow: var(--ab-shadow-lg); }
.ab-offer-card:hover::before { opacity: 1; }
.ab-offer-card__top { display: flex; justify-content: space-between; align-items: flex-start; }
.ab-offer-card__kicker { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; color: var(--ab-muted); background: rgba(10,17,64,0.06); padding: 5px 10px; border-radius: 999px; }
.ab-offer-card__title { font-size: 1.3rem; font-weight: 800; letter-spacing: -0.01em; margin: 0; }
.ab-offer-card__desc { color: var(--ab-muted); font-size: .95rem; margin: 0; flex: 1; }
.ab-offer-card__list { display: flex; flex-direction: column; gap: 8px; padding-top: 10px; border-top: 1px dashed var(--ab-line); }
.ab-offer-card__list li { display: flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 500; color: var(--ab-navy); }
.ab-offer-card__list li span { color: var(--ab-gold); font-size: .7rem; }
.ab-offer-card__link { display: inline-flex; align-items: center; gap: 6px; color: var(--ab-navy); font-weight: 700; font-size: .9rem; margin-top: 4px; }
.ab-offer-card__link:hover { color: var(--ab-gold); }

.ab-offers__footer { text-align: center; margin-top: 48px; }
.ab-offers__footer .ab-btn { color: var(--ab-navy); }

/* ---------- Process ---------- */
.ab-process { background: var(--ab-navy); color: #fff; position: relative; overflow: hidden; }
.ab-process::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 10% 20%, rgba(233,165,38,0.18), transparent 40%), radial-gradient(circle at 90% 80%, rgba(27,36,104,0.9), transparent 50%); pointer-events: none; }
.ab-process .ab-h2 { color: #fff; }
.ab-process__steps { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 20px; position: relative; }
@media (max-width: 1100px) { .ab-process__steps { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 780px) { .ab-process__steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ab-process__steps { grid-template-columns: 1fr; } }
.ab-process__step { padding: 32px 26px; border-radius: var(--ab-radius-lg); background: rgba(255,255,255,0.04); border: 1px solid var(--ab-line-dark); transition: transform .4s var(--ab-ease), background .4s var(--ab-ease), border-color .4s var(--ab-ease); position: relative; }
.ab-process__step:hover { transform: translateY(-6px); background: rgba(255,255,255,0.08); border-color: var(--ab-gold); }
.ab-process__num { display: inline-block; font-family: var(--ab-font-sans); font-weight: 800; font-size: 2rem; background: linear-gradient(135deg, var(--ab-gold), #fff1c7); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: -0.02em; margin-bottom: 14px; }
.ab-process__step h3 { color: #fff; font-size: 1.15rem; margin-bottom: 10px; }
.ab-process__step p { color: rgba(255,255,255,0.7); font-size: .92rem; margin: 0; }

/* ---------- CTA / Contact ---------- */
.ab-cta { position: relative; background: #fff; overflow: hidden; }
.ab-cta__bg { position: absolute; inset: 0; background: linear-gradient(135deg, var(--ab-navy) 0%, var(--ab-navy-3) 100%); }
.ab-cta__bg::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 0% 100%, rgba(233,165,38,0.28), transparent 40%), radial-gradient(circle at 100% 0%, rgba(255,255,255,0.08), transparent 50%); }
.ab-cta__grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
@media (max-width: 900px) { .ab-cta__grid { grid-template-columns: 1fr; } }
.ab-cta__copy { color: #fff; }
.ab-cta__copy p { color: rgba(255,255,255,0.75); font-size: 1.05rem; max-width: 460px; margin: 18px 0 28px; }
.ab-cta__contact { display: flex; flex-direction: column; gap: 14px; }
.ab-cta__contact li { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,0.85); font-weight: 500; }
.ab-cta__contact li .ab-icon { width: 20px; height: 20px; color: var(--ab-gold); }
.ab-cta__contact a { transition: color .3s var(--ab-ease); }
.ab-cta__contact a:hover { color: var(--ab-gold); }

.ab-cta__form { background: #fff; border-radius: var(--ab-radius-lg); padding: 36px; box-shadow: var(--ab-shadow-lg); }
.ab-cta__form h3 { font-size: 1.4rem; margin-bottom: 22px; }
.ab-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.ab-field label { font-size: .82rem; font-weight: 700; color: var(--ab-navy); letter-spacing: .04em; }
.ab-field input, .ab-field select, .ab-field textarea { font: inherit; font-size: 1rem; padding: 12px 14px; border-radius: 12px; border: 1.5px solid var(--ab-line); background: var(--ab-paper); transition: border-color .3s var(--ab-ease), box-shadow .3s var(--ab-ease), background .3s var(--ab-ease); color: var(--ab-navy); }
.ab-field input:focus, .ab-field select:focus, .ab-field textarea:focus { outline: none; border-color: var(--ab-gold); background: #fff; box-shadow: 0 0 0 4px rgba(233,165,38,0.15); }
.ab-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 520px) { .ab-field-row { grid-template-columns: 1fr; } }
.ab-honeypot { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* ---------- Response modal ---------- */
.ab-modal { border: 0; padding: 0; background: transparent; max-width: 460px; width: calc(100vw - 32px); border-radius: var(--ab-radius-lg); box-shadow: var(--ab-shadow-lg); overflow: visible; color: var(--ab-ink); }
.ab-modal::backdrop { background: rgba(10, 17, 64, 0.55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); animation: abModalBackdropIn .3s var(--ab-ease); }
.ab-modal[open] { animation: abModalIn .4s var(--ab-ease); }
.ab-modal__inner { position: relative; background: #fff; border-radius: var(--ab-radius-lg); padding: 44px 36px 36px; text-align: center; overflow: hidden; }
.ab-modal__inner::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: linear-gradient(90deg, var(--ab-gold), #ffd572); }
.ab-modal[data-tone="error"] .ab-modal__inner::before { background: linear-gradient(90deg, #dc2626, #f87171); }

.ab-modal__close { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; border-radius: 50%; background: rgba(10,17,64,0.06); color: var(--ab-navy); display: inline-flex; align-items: center; justify-content: center; transition: background .3s var(--ab-ease), transform .3s var(--ab-ease); }
.ab-modal__close:hover { background: rgba(10,17,64,0.12); transform: rotate(90deg); }
.ab-modal__close svg { width: 16px; height: 16px; }

.ab-modal__icon { display: inline-flex; width: 72px; height: 72px; align-items: center; justify-content: center; border-radius: 50%; margin-bottom: 22px; animation: abModalPop .5s var(--ab-ease) .1s both; }
.ab-modal__icon svg { width: 52px; height: 52px; }
.ab-modal__icon-success, .ab-modal__icon-error { display: none; }
.ab-modal[data-tone="success"] .ab-modal__icon { color: #16a34a; background: rgba(22,163,74,0.12); }
.ab-modal[data-tone="success"] .ab-modal__icon-success { display: block; }
.ab-modal[data-tone="error"] .ab-modal__icon { color: #dc2626; background: rgba(220,38,38,0.12); }
.ab-modal[data-tone="error"] .ab-modal__icon-error { display: block; }

.ab-modal__title { font-size: 1.5rem; margin: 0 0 10px; }
.ab-modal__msg { color: var(--ab-muted); font-size: 1rem; margin: 0 0 24px; }
.ab-modal__cta { display: inline-flex; margin: 0 auto; }

@keyframes abModalIn { from { transform: translateY(24px) scale(0.96); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes abModalBackdropIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes abModalPop { 0% { transform: scale(0.4); opacity: 0; } 70% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); } }

/* Lock scroll while modal is open */
body:has(.ab-modal[open]) { overflow: hidden; }

/* Fallback for browsers without <dialog> support */
.ab-modal:not([open]) { display: none; }

/* Submit button states */
.ab-btn[data-ab-submit] { position: relative; }
.ab-btn[data-ab-submit]:disabled { opacity: .75; cursor: wait; }
.ab-btn__spinner { display: none; width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(10,17,64,0.2); border-top-color: var(--ab-navy); animation: abSpin .7s linear infinite; }
.ab-cta__form[data-state="loading"] .ab-btn__spinner { display: inline-block; }
.ab-cta__form[data-state="loading"] .ab-btn__arrow { display: none; }
@keyframes abSpin { to { transform: rotate(360deg); } }

/* ---------- Footer ---------- */
.ab-footer { position: relative; background: var(--ab-ink); color: rgba(255,255,255,0.75); padding: 80px 0 24px; overflow: hidden; }
.ab-footer__glow { position: absolute; inset: auto 0 -300px 0; height: 500px; background: radial-gradient(ellipse at center, rgba(233,165,38,0.12), transparent 60%); pointer-events: none; }
.ab-footer__grid { position: relative; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,0.08); }
@media (max-width: 900px) { .ab-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ab-footer__grid { grid-template-columns: 1fr; } }
.ab-footer__brand .ab-brand__sub { color: rgba(255,255,255,0.7); }
.ab-footer__about { margin: 20px 0; font-size: .92rem; line-height: 1.6; max-width: 380px; }
.ab-footer__title { color: #fff; font-size: .95rem; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 20px; font-weight: 700; }
.ab-footer__col ul { display: flex; flex-direction: column; gap: 10px; }
.ab-footer__col a { transition: color .3s var(--ab-ease), padding .3s var(--ab-ease); }
.ab-footer__col a:hover { color: var(--ab-gold); padding-left: 4px; }
.ab-footer__contact p { margin: 0 0 10px; font-size: .92rem; }
.ab-socials { display: flex; gap: 10px; margin-top: 8px; }
.ab-socials a { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.8); transition: all .3s var(--ab-ease); }
.ab-socials a:hover { background: var(--ab-gold); color: var(--ab-navy); transform: translateY(-2px); }
.ab-socials svg { width: 16px; height: 16px; fill: currentColor; }
.ab-footer__bottom { position: relative; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 24px; font-size: .82rem; color: rgba(255,255,255,0.55); }
.ab-footer__bottom a:hover { color: var(--ab-gold); }

/* ---------- Inner-page hero ---------- */
.ab-page-hero { position: relative; padding: clamp(80px, 12vw, 160px) 0 clamp(60px, 8vw, 110px); background: linear-gradient(160deg, #eef1fb 0%, #f7f5ef 100%); color: var(--ab-navy); overflow: hidden; border-bottom: 1px solid var(--ab-line); }
.ab-page-hero__bg { position: absolute; inset: 0; pointer-events: none; }
.ab-page-hero__orb { position: absolute; width: 520px; height: 520px; top: -180px; right: -120px; border-radius: 50%; background: radial-gradient(circle, rgba(233,165,38,0.28), transparent 70%); filter: blur(60px); }
.ab-page-hero__grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(10,17,64,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(10,17,64,0.06) 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse at center, #000 0%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at center, #000 0%, transparent 70%); }
.ab-page-hero__inner { position: relative; max-width: 860px; }
.ab-page-hero__title { font-size: clamp(2rem, 1.4rem + 3vw, 3.6rem); line-height: 1.1; letter-spacing: -0.02em; color: var(--ab-navy); margin: 18px 0 20px; font-weight: 800; }
.ab-page-hero__lead { color: var(--ab-muted); font-size: 1.1rem; max-width: 680px; }
.ab-page-hero .ab-eyebrow--light { background: rgba(10,17,64,0.08); color: var(--ab-navy); }
.ab-page-content { background: var(--ab-paper); }
.ab-page-content .entry-content { font-size: 1.05rem; color: var(--ab-ink); }
.ab-page-content .entry-content a { color: var(--ab-navy); border-bottom: 1px solid var(--ab-gold); }

.ab-legal .entry-content h2 { font-size: 1.25rem; margin: 36px 0 12px; color: var(--ab-navy); }
.ab-legal .entry-content p, .ab-legal .entry-content ul { margin-bottom: 14px; line-height: 1.7; color: var(--ab-ink); }
.ab-legal .entry-content ul { padding-left: 20px; list-style: disc; }
.ab-legal .entry-content ul li { margin-bottom: 6px; }
.ab-legal__meta { color: var(--ab-muted); font-size: .9rem; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 28px; }

/* ---------- Page / post fallback ---------- */
.ab-page { padding: 80px 0; }
.ab-page__header { text-align: center; margin-bottom: 48px; }
.ab-page__header h1 { font-size: clamp(2rem, 1.2rem + 2.4vw, 3rem); }
.ab-page .entry-content { max-width: 760px; margin: 0 auto; font-size: 1.05rem; color: var(--ab-ink); }
.ab-page .entry-content h2, .ab-page .entry-content h3 { margin: 32px 0 14px; }
.ab-page .entry-content a { color: var(--ab-gold); border-bottom: 1px solid currentColor; }

.ab-post-card { background: #fff; padding: 28px; border-radius: var(--ab-radius); border: 1px solid var(--ab-line); margin-bottom: 24px; transition: transform .3s var(--ab-ease), box-shadow .3s var(--ab-ease); }
.ab-post-card:hover { transform: translateY(-4px); box-shadow: var(--ab-shadow); }
.ab-post-card h2 { font-size: 1.4rem; margin-bottom: 8px; }
.ab-post-card h2 a:hover { color: var(--ab-gold); }
.ab-post-card time { font-size: .85rem; color: var(--ab-muted); }

/* ---------- Reveal animations ---------- */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ab-ease), transform .8s var(--ab-ease); }
[data-reveal].is-revealed { opacity: 1; transform: translateY(0); }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
	[data-reveal] { opacity: 1; transform: none; }
	.ab-offers__track,
	.ab-offers__track--left,
	.ab-offers__track--right { animation: none; }
	.ab-hero__marquee-track { animation: none; }
}
