/*
Theme Name: Astra Child
Theme URI: https://antibooks.de
Description: AntiBooks – Child-Theme für Buchhaltungsautomatisierung
Author: AntiBooks
Author URI: https://antibooks.de
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/

/* =========================================================
   TOKENS
   ========================================================= */
:root {
	--ab-navy:      #040360;
	--ab-cyan:      #009DD1;
	--ab-cyan-dark: #007bb0;
	--ab-white:     #ffffff;
	--ab-light:     #f4f7fa;
	--ab-text:      #1e1e2e;
	--ab-muted:     #6b7280;
	--ab-border:    rgba(4,3,96,.08);
	--ab-font:      'Poppins', sans-serif;
	--ab-radius:    12px;
	--ab-shadow-sm: 0 1px 4px rgba(4,3,96,.07);
	--ab-shadow-md: 0 4px 18px rgba(4,3,96,.11);
	--ab-shadow-lg: 0 10px 40px rgba(4,3,96,.16);
	--ab-ease:      .24s ease;
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	font-family: var(--ab-font);
	color: var(--ab-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }

/* =========================================================
   ASTRA FULL-WIDTH OVERRIDE (homepage only)
   ========================================================= */

/* Break the ast-container constraint so our sections go edge-to-edge */
body.ab-homepage #content.site-content { padding: 0 !important; }
body.ab-homepage #content.site-content > .ast-container {
	max-width: 100% !important;
	width: 100% !important;
	padding: 0 !important;
	display: block !important;
}

/* Transparent header: push hero content below the nav
   (Astra positions the header absolutely over the first section) */
body.ab-homepage .ab-hero {
	padding-top: 160px !important;
}

/* Logo sizing */
.site-logo-img img.custom-logo,
a.custom-logo-link img.custom-logo {
	height: 46px !important;
	width: auto !important;
	max-width: none !important;
}

/* =========================================================
   UTILITY
   ========================================================= */
.ab-container {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: clamp(20px, 4vw, 48px);
}

.ab-section      { padding: 96px 0; }
.ab-section--sm  { padding: 64px 0; }

.ab-label {
	display: inline-block;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ab-cyan);
	margin-bottom: 14px;
}

.ab-title {
	font-size: clamp(1.9rem, 4vw, 2.75rem);
	font-weight: 700;
	color: var(--ab-navy);
	line-height: 1.2;
	margin: 0 0 18px;
}

.ab-subtitle {
	font-size: 1.05rem;
	color: var(--ab-muted);
	line-height: 1.75;
	max-width: 580px;
	margin: 0;
}

.ab-center { text-align: center; }
.ab-center .ab-subtitle { margin-inline: auto; }

/* =========================================================
   BUTTONS
   ========================================================= */
.ab-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 30px;
	border-radius: 8px;
	font-family: var(--ab-font);
	font-weight: 600;
	font-size: .97rem;
	line-height: 1;
	cursor: pointer;
	transition: transform var(--ab-ease), box-shadow var(--ab-ease), background var(--ab-ease), color var(--ab-ease), border-color var(--ab-ease);
	border: 2px solid transparent;
	text-decoration: none !important;
	white-space: nowrap;
}

.ab-btn-primary {
	background: var(--ab-cyan);
	color: var(--ab-white) !important;
	border-color: var(--ab-cyan);
}
.ab-btn-primary:hover {
	background: var(--ab-cyan-dark);
	border-color: var(--ab-cyan-dark);
	transform: translateY(-2px);
	box-shadow: 0 6px 22px rgba(0,157,209,.38);
}

.ab-btn-ghost {
	background: transparent;
	color: rgba(255,255,255,.75) !important;
	border-color: rgba(255,255,255,.3);
}
.ab-btn-ghost:hover {
	background: rgba(255,255,255,.08);
	border-color: rgba(255,255,255,.6);
	transform: translateY(-2px);
}

.ab-btn-navy {
	background: var(--ab-navy);
	color: var(--ab-white) !important;
	border-color: var(--ab-navy);
}
.ab-btn-navy:hover {
	background: #030250;
	transform: translateY(-2px);
	box-shadow: 0 6px 22px rgba(4,3,96,.38);
}

/* =========================================================
   HERO
   ========================================================= */
.ab-hero {
	position: relative;
	background: var(--ab-navy);
	padding: 120px 0 90px;
	overflow: hidden;
}

/* Subtle light orbs */
.ab-hero::before,
.ab-hero::after {
	content: '';
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}
.ab-hero::before {
	top: -20%;
	right: -8%;
	width: 65vw; height: 65vw;
	max-width: 800px; max-height: 800px;
	background: radial-gradient(circle, rgba(0,157,209,.08) 0%, transparent 68%);
}
.ab-hero::after {
	bottom: -25%;
	left: -12%;
	width: 50vw; height: 50vw;
	max-width: 620px; max-height: 620px;
	background: radial-gradient(circle, rgba(4,3,96,.05) 0%, transparent 68%);
}

.ab-hero__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
	position: relative;
	z-index: 1;
}

/* Badge */
.ab-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 100px;
	padding: 7px 17px;
	font-size: .78rem;
	font-weight: 600;
	color: rgba(255,255,255,.9);
	margin-bottom: 28px;
	letter-spacing: .02em;
}

.ab-hero__dot {
	width: 7px; height: 7px;
	background: var(--ab-cyan);
	border-radius: 50%;
	flex-shrink: 0;
	animation: ab-pulse 2.2s ease-in-out infinite;
}

@keyframes ab-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50%       { opacity: .45; transform: scale(1.5); }
}

/* Headline */
.ab-hero__title {
	font-size: clamp(2.5rem, 5.5vw, 4rem);
	font-weight: 800;
	color: var(--ab-white);
	line-height: 1.12;
	margin: 0 0 24px;
	letter-spacing: -.02em;
}
.ab-hero__title em {
	font-style: normal;
	color: var(--ab-cyan);
}

.ab-hero__sub {
	font-size: 1.1rem;
	color: rgba(255,255,255,.7);
	line-height: 1.8;
	margin: 0 0 42px;
	max-width: 500px;
}

.ab-hero__cta {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 60px;
}

/* Stats row */
.ab-hero__stats {
	display: flex;
	gap: 40px;
	flex-wrap: wrap;
}
.ab-hero__stat {
	border-left: 2px solid rgba(0,157,209,.5);
	padding-left: 16px;
}
.ab-hero__stat-num {
	font-size: 1.9rem;
	font-weight: 800;
	color: var(--ab-white);
	line-height: 1;
}
.ab-hero__stat-lbl {
	font-size: .8rem;
	color: rgba(255,255,255,.5);
	margin-top: 4px;
}

/* Right: mock dashboard card */
.ab-hero__visual {
	position: relative;
}

.ab-dash {
	background: var(--ab-navy);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 20px;
	padding: 28px;
	box-shadow: 0 20px 60px rgba(4,3,96,.18);
}

.ab-dash__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 22px;
}

.ab-dash__title {
	font-size: .78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: rgba(255,255,255,.45);
}

.ab-dash__badge {
	font-size: .7rem;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: 100px;
	background: rgba(16,185,129,.18);
	color: #10b981;
}

.ab-dash__row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 13px 0;
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.ab-dash__row:last-child { border-bottom: none; }

.ab-dash__icon {
	width: 38px; height: 38px;
	border-radius: 10px;
	display: flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}
.ab-dash__icon svg { width: 18px; height: 18px; }
.ab-dash__icon--cyan   { background: rgba(0,157,209,.2); }
.ab-dash__icon--green  { background: rgba(16,185,129,.2); }
.ab-dash__icon--purple { background: rgba(139,92,246,.2); }
.ab-dash__icon--amber  { background: rgba(245,158,11,.2); }

.ab-dash__info { flex: 1; min-width: 0; }
.ab-dash__name {
	font-size: .88rem;
	font-weight: 500;
	color: rgba(255,255,255,.88);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ab-dash__sub {
	font-size: .73rem;
	color: rgba(255,255,255,.38);
	margin-top: 2px;
}

.ab-dash__pill {
	font-size: .7rem;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: 100px;
	flex-shrink: 0;
}
.ab-dash__pill--done    { background: rgba(16,185,129,.18);  color: #10b981; }
.ab-dash__pill--active  { background: rgba(0,157,209,.22);   color: var(--ab-cyan); }
.ab-dash__pill--queued  { background: rgba(255,255,255,.08); color: rgba(255,255,255,.4); }
.ab-dash__pill--pending { background: rgba(245,158,11,.18);  color: #f59e0b; }

/* Floating chips */
.ab-float {
	position: absolute;
	background: var(--ab-white);
	border-radius: 12px;
	padding: 11px 15px;
	box-shadow: 0 8px 30px rgba(0,0,0,.22);
	display: flex;
	align-items: center;
	gap: 9px;
	font-family: var(--ab-font);
}
.ab-float--tl {
	top: -22px;
	right: -18px;
}
.ab-float--br {
	bottom: -22px;
	left: -18px;
}
.ab-float__val {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--ab-navy);
	line-height: 1;
}
.ab-float__lbl {
	font-size: .72rem;
	color: var(--ab-muted);
	max-width: 80px;
	line-height: 1.3;
}

/* =========================================================
   TRUST BAR
   ========================================================= */
.ab-trust {
	background: var(--ab-light);
	border-bottom: 1px solid var(--ab-border);
	padding: 26px 0;
}

.ab-trust__inner {
	display: flex;
	align-items: center;
	gap: 36px;
	flex-wrap: wrap;
	justify-content: center;
}

.ab-trust__lbl {
	font-size: .75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--ab-muted);
	white-space: nowrap;
}

.ab-trust__logos {
	display: flex;
	align-items: center;
	gap: 32px;
	flex-wrap: wrap;
	justify-content: center;
}

.ab-trust__logo {
	font-size: 1rem;
	font-weight: 800;
	color: rgba(4,3,96,.28);
	letter-spacing: -.01em;
	transition: color var(--ab-ease);
	cursor: default;
}
.ab-trust__logo:hover { color: var(--ab-navy); }

/* =========================================================
   SERVICES
   ========================================================= */
.ab-services { background: var(--ab-white); }

.ab-services__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(252px, 1fr));
	gap: 24px;
	margin-top: 56px;
}

.ab-card {
	position: relative;
	background: var(--ab-white);
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius);
	padding: 36px 30px;
	overflow: hidden;
	transition: transform var(--ab-ease), box-shadow var(--ab-ease), border-color var(--ab-ease);
}
.ab-card::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0;
	width: 100%; height: 3px;
	background: linear-gradient(90deg, var(--ab-navy), var(--ab-cyan));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--ab-ease);
}
.ab-card:hover {
	border-color: rgba(0,157,209,.25);
	box-shadow: var(--ab-shadow-md);
	transform: translateY(-5px);
}
.ab-card:hover::after { transform: scaleX(1); }

.ab-card__icon {
	width: 54px; height: 54px;
	border-radius: 14px;
	background: linear-gradient(135deg, rgba(4,3,96,.07), rgba(0,157,209,.11));
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 24px;
}
.ab-card__icon svg { width: 26px; height: 26px; }

.ab-card h3 {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--ab-navy);
	margin: 0 0 12px;
}
.ab-card p {
	font-size: .9rem;
	color: var(--ab-muted);
	line-height: 1.75;
	margin: 0;
}
.ab-card__link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: .85rem;
	font-weight: 600;
	color: var(--ab-cyan) !important;
	text-decoration: none !important;
	margin-top: 20px;
	transition: gap var(--ab-ease);
}
.ab-card__link:hover { gap: 10px; }

/* =========================================================
   TESTIMONIAL
   ========================================================= */
.ab-testi { background: var(--ab-navy); }

.ab-testi__grid {
	display: grid;
	grid-template-columns: 5fr 7fr;
	gap: 72px;
	align-items: center;
}

.ab-testi__left .ab-label { color: var(--ab-cyan); }

.ab-testi__heading {
	font-size: clamp(1.75rem, 3.5vw, 2.4rem);
	font-weight: 700;
	color: var(--ab-white);
	line-height: 1.25;
	margin: 0;
}

.ab-quote__stars {
	display: flex;
	gap: 4px;
	margin-bottom: 18px;
}
.ab-quote__star { color: #f59e0b; font-size: .95rem; }

.ab-quote__mark {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 5rem;
	line-height: .7;
	color: rgba(0,157,209,.3);
	margin-bottom: 12px;
}

.ab-quote__text {
	font-size: 1.12rem;
	font-style: italic;
	color: rgba(255,255,255,.85);
	line-height: 1.8;
	margin: 0 0 32px;
}

.ab-quote__author {
	display: flex;
	align-items: center;
	gap: 14px;
}

.ab-quote__avatar {
	width: 50px; height: 50px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--ab-cyan), rgba(0,157,209,.5));
	display: flex; align-items: center; justify-content: center;
	font-weight: 700;
	font-size: 1rem;
	color: var(--ab-white);
	flex-shrink: 0;
}

.ab-quote__name {
	font-weight: 700;
	color: var(--ab-white);
	font-size: .92rem;
}
.ab-quote__role {
	font-size: .78rem;
	color: rgba(255,255,255,.48);
	margin-top: 3px;
}

/* =========================================================
   TOOLS
   ========================================================= */
.ab-tools { background: var(--ab-light); }

.ab-tools__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(136px, 1fr));
	gap: 16px;
	margin-top: 52px;
}

.ab-tool {
	background: var(--ab-white);
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius);
	padding: 26px 16px 22px;
	text-align: center;
	transition: transform var(--ab-ease), border-color var(--ab-ease), box-shadow var(--ab-ease);
}
.ab-tool:hover {
	border-color: var(--ab-cyan);
	box-shadow: var(--ab-shadow-sm);
	transform: translateY(-3px);
}

.ab-tool__logo {
	width: 52px; height: 52px;
	border-radius: 12px;
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto 12px;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: -.01em;
	font-family: var(--ab-font);
}

.ab-tool__name {
	font-size: .85rem;
	font-weight: 700;
	color: var(--ab-navy);
}
.ab-tool__cat {
	font-size: .7rem;
	color: var(--ab-muted);
	margin-top: 3px;
}

/* =========================================================
   CTA
   ========================================================= */
.ab-cta {
	background: linear-gradient(135deg, #040360 0%, #060880 55%, #040360 100%);
	position: relative;
	overflow: hidden;
}
.ab-cta::before {
	content: '';
	position: absolute;
	top: -60%; right: -15%;
	width: 80vw; height: 80vw;
	max-width: 900px; max-height: 900px;
	background: radial-gradient(circle, rgba(0,157,209,.13) 0%, transparent 65%);
	border-radius: 50%;
	pointer-events: none;
}

.ab-cta__inner {
	position: relative;
	z-index: 1;
	max-width: 680px;
	margin-inline: auto;
	text-align: center;
}

.ab-cta .ab-label  { color: var(--ab-cyan); }
.ab-cta .ab-title  { color: var(--ab-white); }

.ab-cta__sub {
	font-size: 1.02rem;
	color: rgba(255,255,255,.68);
	line-height: 1.75;
	margin: 0 0 40px;
}

.ab-cta__actions {
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 22px;
}

.ab-cta__note {
	font-size: .78rem;
	color: rgba(255,255,255,.36);
}


/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 900px) {
	.ab-hero__grid     { grid-template-columns: 1fr; }
	.ab-hero__visual   { display: none; }
	.ab-testi__grid    { grid-template-columns: 1fr; gap: 40px; }
	.ab-section        { padding: 72px 0; }
}

@media (max-width: 640px) {
	.ab-hero__stats    { gap: 20px; }
	.ab-hero__cta      { flex-direction: column; align-items: flex-start; }
	.ab-tools__grid    { grid-template-columns: repeat(2, 1fr); }
	.ab-section        { padding: 56px 0; }
}
