/* ==========================================================================
   Landing page for andyfronius.com (custom-landing.hbs)
   Uses Eihei design tokens: --color-body, --color-two, --color-border,
   --color-font-one, --ghost-accent-color, --font-family-one/two.
   ========================================================================== */

.af-landing {
	grid-column: full-start / full-end;
	--af-accent: var(--ghost-accent-color, #d9a441);
	--af-muted: color-mix(in srgb, var(--color-font-one) 62%, var(--color-body));
	--af-mono: ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace;
	font-family: var(--font-family-two);
	line-height: 1.6;
}
.af-wrap { max-width: 1080px; margin: 0 auto; padding: 0 var(--site-gap, 32px); }

.af-landing h1, .af-landing h2, .af-landing .af-offer h3 {
	font-family: var(--font-family-one);
	font-weight: var(--font-weight-one-bold);
	letter-spacing: -0.01em;
	color: var(--color-font-one);
	margin: 0;
}
.af-eyebrow {
	display: block;
	font-family: var(--af-mono);
	font-size: 1.3rem;
	color: var(--af-accent);
	text-transform: uppercase;
	letter-spacing: 0.14em;
	margin-bottom: 1.6rem;
}

/* Buttons */
.af-btn {
	display: inline-block;
	background: var(--af-accent);
	color: var(--color-font-black);
	font-weight: 600;
	font-size: 1.6rem;
	padding: 1.2rem 2.6rem;
	border-radius: 100px;
	text-decoration: none;
	transition: filter .2s, border-color .2s, color .2s;
}
.af-btn:hover { filter: brightness(1.1); }
.af-btn-ghost {
	background: transparent;
	color: var(--color-font-one);
	border: 1px solid var(--color-border);
}
.af-btn-ghost:hover { border-color: var(--af-accent); color: var(--af-accent); filter: none; }

/* Hero */
.af-hero { padding: 9rem 0 8rem; }
.af-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 6rem; align-items: center; }
.af-portrait { position: relative; margin: 0; }
.af-portrait::before {
	content: '';
	position: absolute; inset: -25% -30%;
	background: radial-gradient(ellipse 50% 45% at 50% 45%,
		color-mix(in srgb, var(--af-accent) 22%, transparent) 0%,
		color-mix(in srgb, var(--af-accent) 8%, transparent) 45%,
		transparent 72%);
	filter: blur(24px);
	pointer-events: none;
}
.af-portrait img {
	position: relative;
	display: block; width: 100%; height: auto;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 1.2%, #000 88%, transparent 100%);
	mask-image: linear-gradient(to bottom, transparent 0%, #000 1.2%, #000 88%, transparent 100%);
}
.af-logos { display: flex; align-items: center; flex-wrap: wrap; gap: 1.6rem 3.4rem; margin-top: 1.8rem; }
.af-logos-label { font-family: var(--af-mono); font-size: 1.2rem; text-transform: uppercase; letter-spacing: .12em; color: var(--af-accent); }
.af-logos img { display: block; height: 2.2rem; width: auto; filter: brightness(0) invert(1); opacity: .55; transition: opacity .2s; }
.af-logos img[alt="Fontis Verlag"] { height: 2.6rem; }
.af-logos img[alt="Young Life"] { height: 3.4rem; }
.af-logos img[alt="OM Switzerland"] { height: 3.2rem; filter: none; }
.af-logos img[alt="Trans World Radio"] { height: 3rem; }
.af-logos img:hover { opacity: .9; }
.af-logo-text { font-size: 1.5rem; font-weight: 600; letter-spacing: .04em; color: var(--color-font-one); opacity: .55; }
.af-hero h1 { font-size: clamp(4rem, 6vw, 6.8rem); line-height: 1.08; max-width: 15ch; margin: 2rem 0 2.4rem; }
.af-sub { font-size: 1.9rem; color: var(--af-muted); max-width: 56ch; margin: 0 0 3.6rem; }
.af-ctas { display: flex; gap: 1.6rem; flex-wrap: wrap; align-items: center; }
.af-proof {
	margin-top: 4.4rem; padding-top: 2.4rem;
	border-top: 1px solid color-mix(in srgb, var(--color-border) 55%, transparent);
	font-size: 1.4rem; color: var(--af-muted);
}
.af-proof b { color: var(--color-font-one); font-weight: 500; }
.af-star { color: var(--af-accent); }

/* Sections */
.af-section { padding: 10rem 0; }
.af-section h2 { font-size: clamp(2.8rem, 4vw, 4.2rem); margin: 1.4rem 0 2rem; max-width: 24ch; }

/* Cards */
.af-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 2.8rem; }
.af-card {
	background: var(--color-two);
	border: 1px solid var(--color-border);
	border-radius: 14px;
	padding: 3.2rem 2.8rem;
	transition: border-color .2s, transform .2s;
}
.af-card:hover { border-color: var(--af-accent); transform: translateY(-3px); }
.af-num { font-family: var(--af-mono); font-size: 1.3rem; color: var(--af-accent); display: block; margin-bottom: 1.8rem; }
.af-card h3 { font-size: 1.9rem; font-weight: 600; margin: 0 0 1.2rem; color: var(--color-font-one); }
.af-card p { font-size: 1.5rem; color: var(--af-muted); margin: 0; }

/* Specialization */
.af-special { background: var(--color-two); }
.af-special-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 6rem; align-items: center; }
.af-big { font-size: 1.9rem; color: var(--af-muted); }
.af-big b { color: var(--color-font-one); font-weight: 500; }
.af-quote {
	font-family: var(--font-family-one);
	font-size: 2.2rem; line-height: 1.5;
	color: var(--color-font-one);
	border-left: 2px solid var(--af-accent);
	padding-left: 2.4rem; margin: 0;
}
.af-quote small { display: block; margin-top: 1.2rem; font-family: var(--af-mono); font-size: 1.2rem; color: var(--af-muted); }

/* Case study */
.af-desc { font-size: 1.7rem; color: var(--af-muted); max-width: 62ch; }
.af-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin: 4.4rem 0; }
.af-stat { border: 1px solid var(--color-border); border-radius: 12px; padding: 2.4rem; background: var(--color-two); }
.af-v { font-family: var(--font-family-one); font-size: 3.2rem; color: var(--af-accent); }
.af-l { font-size: 1.3rem; color: var(--af-muted); margin-top: .6rem; }

/* Offers */
.af-offers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 2.8rem; }
.af-offer {
	border: 1px solid var(--color-border);
	border-radius: 14px;
	padding: 3.6rem 3rem;
	background: var(--color-two);
	display: flex; flex-direction: column;
}
.af-featured {
	border-color: var(--af-accent);
	background: linear-gradient(180deg, color-mix(in srgb, var(--af-accent) 12%, transparent), var(--color-two) 45%);
}
.af-tag {
	font-family: var(--af-mono); font-size: 1.2rem; color: var(--af-accent);
	text-transform: uppercase; letter-spacing: .12em; margin-bottom: 1.6rem;
}
.af-offer h3 { font-size: 2.4rem; margin: 0 0 1.4rem; }
.af-offer p { font-size: 1.5rem; color: var(--af-muted); flex: 1; margin: 0; }
.af-hint { font-size: 1.3rem; color: var(--af-muted); margin-top: 2.2rem; padding-top: 1.8rem; border-top: 1px solid var(--color-border); }

/* Final CTA */
.af-final { text-align: center; padding: 12rem 0; }
.af-final h2 { font-size: clamp(3.2rem, 5vw, 5.2rem); margin: 1.4rem auto 2rem; max-width: none; }
.af-final p { color: var(--af-muted); max-width: 48ch; margin: 0 auto 3.6rem; font-size: 1.7rem; }

/* RWD */
@media (max-width: 820px) {
	.af-cards, .af-offers, .af-stats { grid-template-columns: 1fr; }
	.af-hero-grid { grid-template-columns: 1fr; gap: 4rem; }
	.af-portrait { max-width: 340px; }
	.af-special-inner { grid-template-columns: 1fr; gap: 3.6rem; }
	.af-hero { padding: 7rem 0 6rem; }
	.af-section { padding: 6rem 0; }
}

/* Testimonials */
.af-quotes { background: var(--color-two); }
.af-quotes .af-quote-card { background: var(--color-body); }
.af-quote-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 2.8rem; }
.af-quote-card { margin: 0; background: var(--color-two); border: 1px solid var(--color-border); border-radius: 14px; padding: 3.2rem 2.8rem; display: flex; flex-direction: column; }
.af-quote-card p { font-family: var(--font-family-one); font-size: 1.8rem; line-height: 1.55; color: var(--color-font-one); margin: 0; flex: 1; }
.af-quote-card footer { margin-top: 2.4rem; padding-top: 1.8rem; border-top: 1px solid var(--color-border); font-size: 1.4rem; display: flex; align-items: center; gap: 1.2rem; }
.af-avatar { width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.af-quote-card footer b { display: block; color: var(--color-font-one); font-weight: 600; }
.af-quote-card footer span { color: var(--af-muted); font-size: 1.3rem; }
@media (max-width: 820px) { .af-quotes { background: var(--color-two); }
.af-quotes .af-quote-card { background: var(--color-body); }
.af-quote-grid { grid-template-columns: 1fr; } }

/* Case detail */
.af-case-detail { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 1rem; }
.af-case-detail h4 { font-family: var(--af-mono); font-size: 1.2rem; text-transform: uppercase; letter-spacing: .12em; color: var(--af-accent); margin: 0 0 1rem; font-weight: 400; }
.af-case-detail p { font-size: 1.5rem; color: var(--af-muted); margin: 0; }
@media (max-width: 820px) { .af-case-detail { grid-template-columns: 1fr; } }

/* FAQ */
.af-faq { max-width: 720px; margin-top: 2.4rem; }
.af-faq details { border-bottom: 1px solid var(--color-border); }
.af-faq summary { cursor: pointer; padding: 2rem 0; font-size: 1.7rem; font-weight: 600; color: var(--color-font-one); list-style: none; position: relative; padding-right: 4rem; }
.af-faq summary::-webkit-details-marker { display: none; }
.af-faq summary::after { content: '+'; position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); color: var(--af-accent); font-size: 2.2rem; font-weight: 400; transition: transform .2s; }
.af-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.af-faq details p { margin: 0 0 2rem; font-size: 1.5rem; color: var(--af-muted); max-width: 60ch; }
.af-faq details a { color: var(--af-accent); }

/* Anchor scrolling */
.af-section { scroll-margin-top: 9rem; }

/* Problem section */
.af-problem { padding-top: 6rem; }
.af-pains { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 2.8rem; }
.af-pains p { margin: 0; font-size: 1.6rem; color: var(--af-muted); border-left: 2px solid color-mix(in srgb, var(--af-accent) 45%, transparent); padding-left: 1.8rem; }
.af-turn { margin: 4.4rem 0 0; font-family: var(--font-family-one); font-size: 2.2rem; line-height: 1.5; color: var(--color-font-one); max-width: 44ch; }
.af-turn b { color: var(--af-accent); font-weight: 600; }
@media (max-width: 820px) { .af-pains { grid-template-columns: 1fr; } }

/* Faith paragraph inside services */
.af-faith { margin: 4.4rem 0 0; font-size: 1.8rem; color: var(--af-muted); max-width: 62ch; }
.af-faith b { color: var(--color-font-one); font-weight: 500; }

/* Mid-page CTA */
.af-mid-cta { display: flex; align-items: center; gap: 2.4rem; margin-top: 5rem; flex-wrap: wrap; }
.af-mid-cta p { margin: 0; font-family: var(--font-family-one); font-size: 2rem; color: var(--color-font-one); }


/* Stakes + vision */
.af-stakes { margin: 4rem 0 0; font-size: 1.6rem; color: var(--af-muted); font-style: italic; }
.af-vision { font-family: var(--font-family-one); font-size: 2rem !important; color: var(--color-font-one) !important; margin-bottom: 1.6rem !important; }

/* Plan steps */
.af-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin: 2.8rem 0 6rem; }
.af-step { position: relative; }
.af-step:not(:last-child)::after { content: ''; position: absolute; top: 1.8rem; left: 5rem; right: -1rem; height: 1px; background: linear-gradient(90deg, var(--af-accent), color-mix(in srgb, var(--af-accent) 15%, transparent)); opacity: .5; }
@media (max-width: 820px) { .af-step:not(:last-child)::after { display: none; } }
.af-step span { position: relative; z-index: 1; background: var(--color-body); display: inline-flex; align-items: center; justify-content: center; width: 3.6rem; height: 3.6rem; border-radius: 50%; border: 1px solid var(--af-accent); color: var(--af-accent); font-family: var(--af-mono); font-size: 1.5rem; margin-bottom: 1.4rem; }
.af-step h4 { margin: 0 0 .8rem; font-size: 1.8rem; font-weight: 600; color: var(--color-font-one); }
.af-step p { margin: 0; font-size: 1.5rem; color: var(--af-muted); }
.af-offers-sub { font-family: var(--font-family-one); font-size: 2.4rem; margin: 0 0 -1rem; color: var(--color-font-one); }
@media (max-width: 820px) { .af-steps { grid-template-columns: 1fr; } }

/* Case visuals */
.af-browser { margin-top: 1rem; border-radius: 14px; overflow: hidden; border: 1px solid var(--color-border); box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.af-browser-bar { display: flex; align-items: center; gap: .7rem; padding: 1.1rem 1.6rem; background: var(--color-two); border-bottom: 1px solid var(--color-border); }
.af-browser-bar span { width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--color-border); }
.af-browser-bar i { margin-left: 1.2rem; font-style: normal; font-family: var(--af-mono); font-size: 1.2rem; color: var(--af-muted); }
.af-browser img { display: block; width: 100%; height: auto; }
.af-case-visual { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; margin-top: 2rem; }
.af-ill { margin: 0; border-radius: 12px; overflow: hidden; border: 1px solid var(--color-border); transform: rotate(-1deg); transition: transform .25s; }
.af-ill:nth-child(2) { transform: rotate(1.2deg) translateY(8px); }
.af-ill:nth-child(3) { transform: rotate(-.6deg); }
.af-ill:hover { transform: rotate(0) scale(1.03); }
.af-ill img { display: block; width: 100%; height: auto; }
.af-case-caption { margin: 2rem 0 0; font-size: 1.4rem; color: var(--af-muted); font-style: italic; }
@media (max-width: 820px) { .af-case-visual { grid-template-columns: 1fr; } .af-ill, .af-ill:nth-child(2), .af-ill:nth-child(3) { transform: none; } }

/* Stack callout */
.af-stack { margin-top: 4rem; padding: 2.8rem 3.2rem; border: 1px solid color-mix(in srgb, var(--af-accent) 40%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--af-accent) 6%, transparent); display: flex; align-items: center; gap: 3rem; flex-wrap: wrap; }
.af-stack p { margin: 0; flex: 1 1 40ch; font-size: 1.6rem; color: var(--af-muted); }
.af-stack b { color: var(--color-font-one); }

/* Mobile: horizontales Verziehen verhindern (clip statt hidden, damit sticky header lebt) */
html, body { overflow-x: clip; }
