/*
 * AI Base Theme — base.css (Polski Fachowiec v3)
 *
 * Universal layout, spacing, hooks. Conversion-first services-site direction
 * informed by skills/automattic/simple-design-system.md, design-system-core.md
 * and skills/anthropic/frontend-design.md.
 *
 * Mobile-first. Breakpoints: 640 / 960 / 1280.
 */

/* ── Reset / safe defaults ─────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
img, svg, video { max-width: 100%; height: auto; display: block; }
img { object-fit: cover; }
p { margin: 0 0 1rem; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 0.75em; hyphens: none; word-break: normal; overflow-wrap: anywhere; }
/* Long-word break floor for headline/title elements that aren't h1-h6 (e.g. a
   <p class="…__headline">). Global + unscoped so it reaches Path B (.aibt-universal),
   replacing the defensive floor previously mis-scoped in the deleted aiss-universal.css. */
[class*="__headline"], [class*="__title"] { overflow-wrap: anywhere; word-break: normal; }
/* Hero display headlines: hyphenate long Polish words at syllable boundaries (with a
   hyphen) instead of breaking mid-character into an unreadable vertical "salad". Heroes
   use the biggest type (up to 8rem), so a long single word like "Alergologia" can exceed
   its column — overflow-wrap:break-word (NOT anywhere) keeps the word's intrinsic width so
   the headline box can't collapse to a 1-character column; hyphens:auto then breaks it
   gracefully when it still must wrap. 2026-06-09 display-correctness fix. */
body.aibt-universal .universal-hero__headline {
	-webkit-hyphens: auto;
	hyphens: auto;
	overflow-wrap: break-word;
}
a { color: inherit; }

/* ── Section vertical breath ─────────────────────────────────────── */

.wp-block-post-content > .wp-block-group,
.wp-block-post-content > .wp-block-cover {
	padding-block: clamp(3rem, 5vw, 5.5rem);
	padding-inline: clamp(1.25rem, 3vw, 2rem);
	position: relative;
	z-index: 2;
}
.wp-block-post-content > .wp-block-cover { padding-inline: 0; }

/* The a11y <main> landmark wraps every content section, so it is itself a direct
   .wp-block-group child of post-content and would otherwise inherit the section-
   breath padding above (≈88px block) plus the flow block-gap margin — opening an
   empty band between the nav and the hero. The sections inside own their vertical
   rhythm, so the wrapper must be spacing-neutral. */
.wp-block-post-content > .aibt-universal-main {
	padding-block: 0;
	margin-block: 0;
}

/* Team initials avatar — shown when a person has no uploaded photo. Colours come
   from theme tokens so the box adapts to the active theme; a fixed light grey
   otherwise glares as a bright rectangle on dark themes. The border keeps it a
   defined card on light themes where the surface ≈ the page background. */
.universal-team__avatar {
	background: var(--background-card, #eef0f3);
	border: 1px solid var(--divider-primary, rgba(128, 128, 128, 0.22));
}
.universal-team__avatar-initials {
	margin: 0;
	color: var(--ink, var(--text-primary, #5b6470));
	opacity: 0.72;
}

.wp-block-cover .wp-block-cover__inner-container {
	padding: clamp(1.5rem, 4vw, 3rem);
	max-width: min(100% - 2rem, 1200px);
	margin-inline: auto;
}

/* ── Buttons (universal hover) ───────────────────────────────────── */

.wp-block-button .wp-block-button__link {
	transition: background 0.2s, color 0.2s, transform 0.15s, box-shadow 0.2s;
}

/* ── HERO: image-bg with white card overlay (Polski Fachowiec v3) ── */

.aibt-hero-cover {
	min-height: clamp(520px, 70vh, 720px);
}
.aibt-hero-cover .wp-block-cover__inner-container {
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	min-height: 100%;
}
.aibt-hero-card {
	background: #ffffff;
	border-radius: var(--aibt-radius-lg, 1rem);
	padding: 2.25rem !important;
	max-width: 36rem;
	box-shadow: var(--aibt-shadow-lg, 0 24px 48px -16px rgba(12,42,71,0.20));
}
.aibt-hero-card .aibt-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--aibt-color-amber, #f59e0b);
	color: #1a1409;
	padding: 0.35rem 0.75rem;
	border-radius: var(--aibt-radius-pill, 999px);
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.01em !important;
	margin: 0 0 1.25rem !important;
}
.aibt-hero-card h1 {
	font-size: clamp(1.85rem, 1.4rem + 2.5vw, 3.25rem) !important;
	line-height: 1.05 !important;
	margin: 0 0 0.85rem !important;
	color: var(--aibt-color-text-primary, #0c2a47) !important;
}
.aibt-hero-card .aibt-hero-sub {
	font-size: 1.075rem !important;
	color: var(--aibt-color-text-muted, #475569) !important;
	margin: 0 0 1.5rem !important;
	line-height: 1.5 !important;
}
.aibt-hero-card .wp-block-buttons {
	margin: 0 0 1.5rem !important;
	gap: 0.65rem !important;
}
.aibt-hero-card .aibt-hero-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem 1.25rem;
	font-size: 0.875rem;
	color: var(--aibt-color-text-muted, #475569);
	border-top: 1px solid var(--aibt-color-border, #e5e7eb);
	padding-top: 1rem;
	margin: 0 !important;
}
.aibt-hero-card .aibt-hero-trust span {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-weight: 500;
}

/* ── TRUST STRIP: 4 inline trust signals on light bg ─────────────── */

.aibt-trust {
	background: #ffffff;
	border-block: 1px solid var(--aibt-color-border, #e5e7eb);
	padding-block: 1.5rem !important;
}
.aibt-trust .wp-block-columns {
	gap: 0 !important;
	margin-bottom: 0 !important;
}
.aibt-trust .wp-block-column {
	border-right: 1px solid var(--aibt-color-border, #e5e7eb);
	padding: 0.5rem 1.25rem !important;
	text-align: center;
}
.aibt-trust .wp-block-column:last-child { border-right: none; }
.aibt-trust__value {
	display: block;
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--aibt-color-text-primary, #0c2a47);
	line-height: 1.2;
	margin: 0 0 0.15rem !important;
	letter-spacing: -0.01em;
}
.aibt-trust__label {
	font-size: 0.78rem;
	color: var(--aibt-color-text-muted, #475569);
	font-weight: 500;
	margin: 0 !important;
}
.aibt-trust__stars {
	color: var(--aibt-color-amber, #f59e0b);
	letter-spacing: 0.05em;
}

/* Star rating row on testimonial cards — amber, sits just above the quote. The
   filled ★ / hollow ☆ string comes from the real Google rating (binding), or the
   baked 5★ default in demo previews. */
.universal-testimonials__stars {
	color: var(--aibt-color-amber, #f59e0b);
	letter-spacing: 0.12em;
	font-size: 1.05rem;
	line-height: 1;
	margin: 0 0 0.85rem 0 !important;
}

/* ── SERVICES: 3 cards with icon + price badge ───────────────────── */

.aibt-services { background: var(--aibt-color-bg-alt, #f7f8fa); }
.aibt-services .wp-block-columns { margin-top: 2.5rem !important; gap: 1.5rem !important; }

.aibt-service-card {
	background: #ffffff;
	border-radius: var(--aibt-radius-lg, 1rem);
	padding: 2rem !important;
	flex-basis: 0;
	border: 1px solid var(--aibt-color-border, #e5e7eb);
	box-shadow: var(--aibt-shadow-sm, 0 1px 2px rgba(0,0,0,0.05));
	transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
	position: relative;
}
.aibt-service-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--aibt-shadow-lg, 0 24px 48px -16px rgba(0,0,0,0.18));
	border-color: var(--aibt-color-brand, #1e7a4d);
}
.aibt-service-card.aibt-card--featured {
	border-color: var(--aibt-color-brand, #1e7a4d);
	border-width: 2px;
	box-shadow: var(--aibt-shadow-md, 0 6px 16px rgba(0,0,0,0.10));
}
.aibt-service-card.aibt-card--featured::before {
	content: "Najczęściej zamawiane";
	position: absolute;
	top: -0.75rem;
	left: 1.25rem;
	background: var(--aibt-color-brand, #1e7a4d);
	color: #ffffff;
	padding: 0.25rem 0.75rem;
	border-radius: var(--aibt-radius-pill, 999px);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.aibt-service-icon {
	width: 3.25rem !important;
	height: 3.25rem !important;
	border-radius: var(--aibt-radius-md, 0.5rem);
	background: var(--aibt-color-brand, #1e7a4d);
	display: flex !important;
	align-items: center;
	justify-content: center;
	margin: 0 0 1.25rem !important;
	overflow: hidden;
}
.aibt-service-icon img {
	width: 1.75rem !important;
	height: 1.75rem !important;
	border-radius: 0 !important;
	filter: none !important;
	object-fit: contain !important;
}
.aibt-card--featured .aibt-service-icon {
	background: var(--aibt-color-amber, #f59e0b);
}
.aibt-service-card h3 {
	font-size: 1.4rem !important;
	margin: 0 0 0.65rem !important;
}
.aibt-service-card p {
	color: var(--aibt-color-text-muted, #475569);
	margin: 0 0 1.5rem !important;
}
.aibt-service-price {
	display: flex;
	align-items: baseline;
	gap: 0.4rem;
	margin: 0 0 1.25rem !important;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--aibt-color-border, #e5e7eb);
}
.aibt-service-price__from {
	font-size: 0.78rem;
	color: var(--aibt-color-text-muted, #475569);
	font-weight: 500;
}
.aibt-service-price__amount {
	font-size: 1.65rem !important;
	font-weight: 800 !important;
	color: var(--aibt-color-text-primary, #0c2a47) !important;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	line-height: 1 !important;
	margin: 0 !important;
}
.aibt-service-card .wp-block-buttons { margin: 0 !important; }
.aibt-service-card .wp-block-button .wp-block-button__link {
	width: 100%;
	text-align: center;
	padding: 0.85rem !important;
	font-size: 0.9rem !important;
}

/* ── ABOUT: split image left / text right + 4 stats ──────────────── */

.aibt-about__split { gap: 3rem !important; align-items: center; }
.aibt-about__photo img {
	aspect-ratio: 5 / 6;
	width: 100%;
	border-radius: var(--aibt-radius-lg, 1rem);
}
.aibt-about__copy h2 {
	font-size: clamp(1.85rem, 1.4rem + 2vw, 2.75rem) !important;
	margin: 0 0 1.25rem !important;
}
.aibt-about__copy .aibt-about__lead {
	font-size: 1.2rem !important;
	font-weight: 500 !important;
	color: var(--aibt-color-text-primary, #0c2a47) !important;
	margin: 0 0 1.25rem !important;
	line-height: 1.5 !important;
}
.aibt-about__copy p { color: var(--aibt-color-text-muted, #475569); }

/* Signature line: small accent below body */
.aibt-about__sig {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-top: 1.5rem !important;
	padding-top: 1.25rem;
	border-top: 1px solid var(--aibt-color-border, #e5e7eb);
	font-size: 0.95rem;
	color: var(--aibt-color-text-primary, #0c2a47);
	font-weight: 600;
}

.aibt-stats {
	margin-top: 3rem !important;
	gap: 1.25rem !important;
}
.aibt-stats .wp-block-column {
	background: #ffffff;
	border: 1px solid var(--aibt-color-border, #e5e7eb);
	border-radius: var(--aibt-radius-md, 0.5rem);
	padding: 1.5rem 1.25rem !important;
	text-align: center;
}
.aibt-stats__num {
	font-size: clamp(1.85rem, 1.5rem + 1.5vw, 2.5rem) !important;
	font-weight: 800 !important;
	color: var(--aibt-color-brand, #1e7a4d) !important;
	margin: 0 0 0.35rem !important;
	line-height: 1 !important;
	letter-spacing: -0.025em;
	font-variant-numeric: tabular-nums;
}
.aibt-stats__label {
	font-size: 0.85rem !important;
	color: var(--aibt-color-text-muted, #475569) !important;
	font-weight: 500 !important;
	margin: 0 !important;
	line-height: 1.35 !important;
}

/* ── PROCESS: 5-up clean steps with brand-colored number badges ──── */

.aibt-process { background: #ffffff; }
.aibt-process .wp-block-columns {
	margin-top: 3rem !important;
	gap: 1rem !important;
	position: relative;
}
.aibt-process__step { padding: 0 0.5rem !important; }
.aibt-process__num {
	width: 3rem;
	height: 3rem;
	background: var(--aibt-color-brand, #1e7a4d);
	color: #ffffff !important;
	border-radius: 50%;
	display: flex !important;
	align-items: center;
	justify-content: center;
	font-size: 1.15rem !important;
	font-weight: 800 !important;
	margin: 0 0 1.25rem !important;
	letter-spacing: -0.01em;
	line-height: 1 !important;
}
.aibt-process__step h3 {
	font-size: 1.15rem !important;
	margin: 0 0 0.5rem !important;
	font-weight: 700 !important;
}
.aibt-process__step p {
	font-size: 0.95rem !important;
	color: var(--aibt-color-text-muted, #475569) !important;
	line-height: 1.55 !important;
	margin: 0 !important;
}

/* ── BIG CTA BANNER: full-width navy with huge phone CTA ─────────── */

.aibt-cta-banner {
	text-align: center;
}
.aibt-cta-banner h2 {
	font-size: clamp(1.85rem, 1.4rem + 2.5vw, 3rem) !important;
	margin: 0 0 1rem !important;
	color: #ffffff !important;
}
.aibt-cta-banner .aibt-cta-banner__sub {
	font-size: 1.2rem !important;
	color: rgba(255, 255, 255, 0.85) !important;
	margin: 0 0 2rem !important;
	max-width: 48ch;
	margin-inline: auto !important;
}
.aibt-cta-banner .wp-block-buttons {
	justify-content: center !important;
	gap: 0.85rem !important;
}
.aibt-cta-banner .aibt-cta-phone .wp-block-button__link {
	font-size: 1.15rem !important;
	padding: 1.25rem 2rem !important;
}

/* ── GALLERY: clean 3x2 with hover lift ──────────────────────────── */

.aibt-gallery .wp-block-columns {
	margin-top: 2.5rem !important;
	gap: 1rem !important;
}
.aibt-gallery .wp-block-column { padding: 0 !important; gap: 1rem; display: flex; flex-direction: column; }
.aibt-gallery figure { margin: 0 !important; overflow: hidden; border-radius: var(--aibt-radius-md, 0.5rem); }
.aibt-gallery img {
	aspect-ratio: 4 / 3;
	width: 100%;
	transition: transform 0.5s ease;
}
.aibt-gallery figure:hover img { transform: scale(1.04); }

/* ── TESTIMONIALS: cards with avatar circle + ★★★★★ ───────────── */

.aibt-testimonials { background: var(--aibt-color-bg-alt, #f7f8fa); }
.aibt-testimonials .wp-block-columns {
	margin-top: 2.5rem !important;
	gap: 1.5rem !important;
}
.aibt-testimonial-card {
	background: #ffffff;
	border: 1px solid var(--aibt-color-border, #e5e7eb);
	border-radius: var(--aibt-radius-lg, 1rem);
	padding: 1.85rem !important;
	flex-basis: 0;
}
.aibt-testimonial-card .aibt-testimonial-stars {
	color: var(--aibt-color-amber, #f59e0b);
	font-size: 1.05rem !important;
	letter-spacing: 0.1em;
	margin: 0 0 1rem !important;
}
.aibt-testimonial-card .aibt-testimonial-quote {
	font-size: 1.05rem !important;
	color: var(--aibt-color-text-primary, #0c2a47) !important;
	margin: 0 0 1.5rem !important;
	line-height: 1.55 !important;
}
.aibt-testimonial-author {
	display: flex !important;
	align-items: center;
	gap: 0.85rem !important;
	margin: 0 !important;
	padding-top: 1.25rem;
	border-top: 1px solid var(--aibt-color-border, #e5e7eb);
}
.aibt-testimonial-avatar {
	width: 2.75rem;
	height: 2.75rem;
	background: var(--aibt-color-brand, #1e7a4d);
	color: #ffffff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: -0.02em;
	flex-shrink: 0;
}
.aibt-testimonial-meta { font-size: 0.95rem; line-height: 1.35; }
.aibt-testimonial-meta__name {
	font-weight: 700;
	color: var(--aibt-color-text-primary, #0c2a47);
}
.aibt-testimonial-meta__role {
	font-size: 0.85rem;
	color: var(--aibt-color-text-muted, #475569);
}

/* ── FAQ: clean wp:details with + indicator ───────────────────────── */

.aibt-faq-list { margin-top: 2.5rem; }
.wp-block-details {
	border: 1px solid var(--aibt-color-border, #e5e7eb);
	border-radius: var(--aibt-radius-md, 0.5rem);
	padding: 1.25rem 1.5rem;
	margin-bottom: 0.75rem;
	background: #ffffff;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.wp-block-details[open] {
	border-color: var(--aibt-color-brand, #1e7a4d);
	box-shadow: var(--aibt-shadow-sm);
}
.wp-block-details summary {
	cursor: pointer;
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--aibt-color-text-primary, #0c2a47);
	padding-right: 2rem;
	position: relative;
	list-style: none;
	letter-spacing: -0.01em;
	line-height: 1.4;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.35rem;
	font-weight: 400;
	color: var(--aibt-color-brand, #1e7a4d);
	transition: transform 0.2s;
	width: 1.5rem;
	height: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.wp-block-details[open] summary::after { content: "−"; }
.wp-block-details > p {
	margin-top: 1rem;
	color: var(--aibt-color-text-muted, #475569);
	max-width: 60ch;
	font-size: 0.97rem;
	line-height: 1.65;
}

/* ── CONTACT: split info card + form/CTA ──────────────────────────── */

.aibt-contact { background: var(--aibt-color-bg-alt, #f7f8fa); }
.aibt-contact .wp-block-columns { gap: 2.5rem !important; align-items: stretch; }
.aibt-contact-info {
	background: var(--aibt-color-bg-dark, #0c2a47);
	color: #ffffff;
	padding: 2.5rem !important;
	border-radius: var(--aibt-radius-lg, 1rem);
}
.aibt-contact-info h3 { color: #ffffff !important; }
.aibt-contact-info .aibt-contact-phone {
	font-size: clamp(1.65rem, 1.2rem + 1.6vw, 2.2rem) !important;
	font-weight: 800 !important;
	color: var(--aibt-color-amber, #f59e0b) !important;
	margin: 0 0 1.5rem !important;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}
.aibt-contact-meta-row {
	display: flex !important;
	gap: 0.85rem !important;
	margin: 0 0 1.15rem !important;
	align-items: flex-start;
}
.aibt-contact-meta-row__icon {
	font-size: 1.1rem;
	margin-top: 0.1rem;
	flex-shrink: 0;
}
.aibt-contact-meta-row__body {
	flex: 1;
}
.aibt-contact-meta-row__label {
	font-size: 0.78rem !important;
	color: rgba(255, 255, 255, 0.6) !important;
	margin: 0 0 0.15rem !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 600;
}
.aibt-contact-meta-row__value {
	font-size: 1rem !important;
	color: #ffffff !important;
	margin: 0 !important;
	line-height: 1.4;
}
.aibt-contact-form {
	background: #ffffff;
	padding: 2.5rem !important;
	border-radius: var(--aibt-radius-lg, 1rem);
	border: 1px solid var(--aibt-color-border, #e5e7eb);
}
.aibt-contact-form .wp-block-buttons { margin-top: 1.5rem !important; }

/* ── HEADER: sticky with backdrop blur, BIG phone CTA ────────────── */

.aibt-header {
	padding: 0.85rem clamp(1.25rem, 3vw, 2rem) !important;
	border-bottom: 1px solid var(--aibt-color-border, #e5e7eb);
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.aibt-header .wp-block-site-title a {
	font-family: var(--wp--custom--archetype--font-display, 'Plus Jakarta Sans', sans-serif);
	font-size: 1.35rem;
	font-weight: 800;
	color: var(--aibt-color-text-primary, #0c2a47);
	text-decoration: none !important;
	letter-spacing: -0.025em;
}
.aibt-header .wp-block-navigation {
	font-size: 0.95rem;
	font-weight: 600;
}
.aibt-header .wp-block-navigation a { text-decoration: none; }
.aibt-header .wp-block-button .wp-block-button__link {
	font-size: 0.9rem !important;
	padding: 0.7rem 1.15rem !important;
	font-feature-settings: "tnum" 1;
}

/* ── FOOTER: navy, 4-col, restrained ─────────────────────────────── */

.aibt-footer {
	padding: 4rem clamp(1.25rem, 3vw, 2rem) 2rem !important;
}
.aibt-footer .wp-block-site-title a {
	font-family: var(--wp--custom--archetype--font-display, 'Plus Jakarta Sans', sans-serif);
	color: #ffffff;
	text-decoration: none !important;
	font-size: 1.45rem;
	font-weight: 800;
	letter-spacing: -0.025em;
}
.aibt-footer h4 { color: var(--aibt-color-amber, #f59e0b) !important; font-size: 0.85rem !important; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 1rem !important; font-weight: 700 !important; }
.aibt-footer .aibt-footer__list { padding-left: 0; list-style: none; line-height: 2; margin: 0; }
.aibt-footer .aibt-footer__list li { color: rgba(255, 255, 255, 0.85); }
.aibt-footer p { line-height: 1.65; color: rgba(255, 255, 255, 0.85); margin-bottom: 0.5rem; }

.aibt-footer__bottom {
	margin-top: 2.5rem !important;
	padding-top: 1.5rem !important;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 0.85rem !important;
	color: rgba(255, 255, 255, 0.6) !important;
}

/* ── Helper: section eyebrow (small caps above section heading) ──── */

.aibt-section-eyebrow {
	display: inline-block;
	background: var(--wp--preset--color--brand-soft, #dcf2e6);
	color: var(--aibt-color-brand, #1e7a4d);
	padding: 0.35rem 0.85rem;
	border-radius: var(--aibt-radius-pill, 999px);
	font-size: 0.78rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	margin: 0 0 1rem !important;
	text-transform: none !important;
}

/* ── Section header centering ────────────────────────────────────── */

.aibt-section-header {
	text-align: center;
	max-width: 56ch;
	margin: 0 auto 3rem !important;
}
.aibt-section-header h2 { margin: 0 0 0.85rem !important; }
.aibt-section-header p {
	font-size: 1.1rem;
	color: var(--aibt-color-text-muted, #475569);
	margin: 0 !important;
}

/* ── STICKY MOBILE PHONE CTA — floating button, hidden ≥768px ───── */

.aibt-mobile-call {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 100;
	display: none;
	/* 2026-05-27 contrast hardening — archetype rules `body.aibt-archetype-X a { color: var(--accent) }`
	   (specificity 0,2,1) were overriding `.aibt-mobile-call { color: #fff }` (0,1,0), painting
	   the FAB text in archetype accent (often orange/brass) over moss-green bg = 1.0-2.3:1 contrast
	   across all 18 archetypes. Hardcoded colors + !important defeat cascade — FAB widoczne wszędzie. */
	background: #0c2a47 !important;
	color: #ffffff !important;
	padding: 0.95rem 1.35rem;
	border-radius: 999px;
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none !important;
	box-shadow: 0 12px 28px -6px rgba(0, 0, 0, 0.35), 0 4px 8px rgba(0, 0, 0, 0.15);
	display: none;
	align-items: center;
	gap: 0.5rem;
	letter-spacing: -0.005em;
}
@media (max-width: 767px) {
	.aibt-mobile-call {
		display: inline-flex !important;
	}
}
.aibt-mobile-call:hover,
.aibt-mobile-call:focus,
.aibt-mobile-call:visited {
	background: #1e7a4d !important;
	color: #ffffff !important;
}
.aibt-mobile-call::before {
	content: "📞";
	font-size: 1.15em;
	line-height: 1;
}
/* Add bottom padding to body on mobile so sticky CTA doesn't cover content */
@media (max-width: 767px) {
	body { padding-bottom: 4.5rem; }
}

/* FAB compact on narrow viewports — 0.95/1.35rem padding was visually heavy at 375px
   and the call number wrapped or pushed against right edge. 2026-05-26 atrium audit. */
@media (max-width: 480px) {
	.aibt-mobile-call {
		padding: 0.72rem 1.05rem;
		font-size: 0.88rem;
		gap: 0.4rem;
		bottom: 0.85rem;
		right: 0.85rem;
	}
}

/* ── MOBILE RESPONSIVENESS — fixes for narrow viewports ─────────── */

@media (max-width: 767px) {
	/* Hero card narrower padding on mobile */
	.aibt-hero-card { padding: 1.5rem !important; }
	.aibt-hero-card h1 { font-size: clamp(1.6rem, 1.3rem + 1.5vw, 2.2rem) !important; }
	.aibt-hero-card .aibt-hero-trust { gap: 0.5rem 1rem; font-size: 0.78rem; }

	/* Hero cover slimmer min-height on mobile */
	.aibt-hero-cover { min-height: 480px !important; }

	/* Trust strip stacks vertically nicely without big borders */
	.aibt-trust .wp-block-column {
		border-right: none;
		border-bottom: 1px solid var(--aibt-color-border, #e5e7eb);
		padding-block: 0.85rem !important;
	}
	.aibt-trust .wp-block-column:last-child { border-bottom: none; }

	/* Service cards: tight spacing on mobile */
	.aibt-services .wp-block-columns { gap: 1rem !important; }
	.aibt-service-card { padding: 1.5rem !important; }

	/* About section: image on top, content below (already by wp:columns default) */
	.aibt-about__photo img { aspect-ratio: 4/3 !important; }

	/* Stats: 2x2 grid on mobile (looks better than 4 stacked) */
	.aibt-stats { gap: 0.75rem !important; }
	.aibt-stats .wp-block-column { flex-basis: calc(50% - 0.5rem) !important; padding: 1.25rem 0.75rem !important; }

	/* Process: stack with smaller numbers */
	.aibt-process__num { width: 2.5rem !important; height: 2.5rem !important; font-size: 1rem !important; }

	/* Header: hide nav on mobile (would need menu toggle JS — for now hide to keep clean) */
	.aibt-header .wp-block-column:nth-child(2) { display: none !important; }
	.aibt-header .wp-block-column:nth-child(1) { flex-basis: 60% !important; }
	.aibt-header .wp-block-column:nth-child(3) { flex-basis: 40% !important; }
	.aibt-header .wp-block-button .wp-block-button__link {
		padding: 0.55rem 0.85rem !important;
		font-size: 0.8rem !important;
	}

	/* Contact split: stack columns on mobile (already default but ensure padding) */
	.aibt-contact-info, .aibt-contact-form { padding: 1.85rem !important; }
	.aibt-contact-info .aibt-contact-phone { font-size: 1.6rem !important; }

	/* Footer columns stack — already default */
	.aibt-footer { padding: 3rem 1.25rem 1.5rem !important; }

	/* CTA banner — reduce huge phone */
	.aibt-cta-banner .aibt-cta-phone .wp-block-button__link {
		font-size: 1rem !important;
		padding: 1rem 1.5rem !important;
	}

	/* Section vertical breath — tighter on mobile */
	.wp-block-post-content > .wp-block-group {
		padding-block: 2.5rem !important;
		padding-inline: 1.25rem !important;
	}
}

/* Tablet refinement: stats 4-up at tablet, columns stack from <600px Gutenberg default */
@media (min-width: 768px) and (max-width: 1023px) {
	.aibt-stats .wp-block-column { padding: 1.25rem 0.85rem !important; }
}

/* ── prefers-reduced-motion respect (per skill guidance) ─────────── */

@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;
	}
}

/* ============================================================
   Universal-archetype photo fallback (ARCHITECTURE.md §22)

   When an industry has no photo pack OR a photo slot is empty in
   the pack, the `{{photos.X}}` token resolves to "" and the renderer
   strips unresolved literals. Result: `<img src="">` or empty
   background-image. These rules hide the broken visual gracefully:
     - img with empty src → display:none (parent figure can use
       CSS-only ornament as fallback if it wants to)
     - bg-image with empty url() → falls back to background-color
       inherited from element / parent
   ============================================================ */
img[src=""],
img:not([src]),
img[src="{{photos.hero_main}}"] {
	display: none;
}
[style*="url('')"],
[style*='url("")'] {
	background-image: none;
}

/* ============================================================
   Header logo (step-6 logo asset → nav-brand binding)

   The nav-brand binding composes <img.universal-nav__logo> + the
   <span.universal-nav__brand-text> when the client uploaded a logo
   (no logo → text-only span, untouched here). Shared so all ~18 nav
   variants gain logo support without per-variant edits; :has() keeps
   logo-less navs exactly as before.

   --nav-logo-h  → step-8 „Wielkość logo" slider (default 2rem).
   Hiding the name (step-8 „Pokaż nazwę obok logo" off) is emitted by
   build_recipe_style_override as a :has()-guarded rule, so a nav with
   NO logo always keeps its text (never an empty header).
   ============================================================ */
.universal-nav__brand:has(.universal-nav__logo) {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
}
.universal-nav__logo {
	height: var(--nav-logo-h, 2rem);
	width: auto;
	max-width: 200px;
	display: block;
	flex: 0 0 auto;
	object-fit: contain;
}
