/*
 * AI Booking – styles that theme.json can't express.
 * Colors always come from the palette variables, so changing a color in
 * Appearance → Editor → Styles → Colors updates everything here too.
 */

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body {
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

/* Section anchors land below the sticky admin bar / header edge. */
[id] {
	scroll-margin-top: 24px;
}

/* Highlighted words in headings (Text color → highlight in the editor). */
mark.has-inline-color {
	background: transparent;
}

/* ---------- Buttons ---------- */

/* Same "rocking" wiggle as the GoHighLevel buttons: still, tilt 2°, tilt -2°, every 2s. */
@keyframes aib-rocking {
	0%, 25% { transform: rotate(0deg); }
	50% { transform: rotate(2deg); }
	75% { transform: rotate(-2deg); }
	100% { transform: rotate(0deg); }
}

.wp-block-button__link {
	animation: aib-rocking 2s ease-out infinite;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link {
		animation: none;
	}
}

.wp-block-button.aib-btn-lg .wp-block-button__link {
	font-size: clamp(1.25rem, 2.1vw, 1.625rem);
}

.wp-block-button.is-style-light .wp-block-button__link {
	border-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--base);
	background: transparent;
}

.wp-block-button.is-style-light .wp-block-button__link:hover,
.wp-block-button.is-style-light .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent);
}

/* Buttons whose text color was set (e.g. black hero button) go white on hover. */
.wp-block-button__link.has-text-color:hover,
.wp-block-button__link.has-text-color:focus-visible {
	color: var(--wp--preset--color--base) !important;
}

/* ---------- Header ---------- */

.aib-header {
	position: relative;
	z-index: 20;
}

.aib-header__actions {
	gap: clamp(1rem, 3vw, 3rem);
}

.aib-nav {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 0.95rem;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--wp--preset--color--brand);
	gap: clamp(1rem, 3vw, 3rem);
}

.aib-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--brand);
}

.aib-nav .wp-block-navigation-item__content:hover {
	text-decoration: none;
	opacity: 0.7;
}

.aib-nav .wp-block-navigation__responsive-container-open,
.aib-nav .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--brand);
}

.aib-nav .wp-block-navigation__responsive-container-open svg {
	width: 32px;
	height: 32px;
}

.aib-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem;
	background: var(--wp--preset--color--base) !important;
}

.aib-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.75rem;
	font-size: 1.25rem;
}

.aib-header__cta .wp-block-button__link {
	animation: none;
	transform: none;
	padding: 1.1em 1.1em;
	font-family: var(--wp--preset--font-family--raleway);
	font-size: 1rem;
	letter-spacing: 0.5px;
}

@media (max-width: 600px) {
	.aib-header .wp-block-site-logo img {
		width: 120px !important;
	}

	.aib-header__cta .wp-block-button__link {
		padding: 0.6em 0.9em;
		font-size: 0.8rem;
	}
}

/* ---------- Hero ---------- */

.aib-hero {
	background: var(--wp--preset--color--base) url("../img/hero-poster.jpg") center / cover no-repeat;
}

.aib-hero h1 {
	margin-bottom: 0.4em;
}

.aib-eyebrow {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.4;
}

/* ---------- Generic section helpers ---------- */

.aib-section {
	position: relative;
}

/* Headings with a lighter weight and bold highlighted words. */
.aib-title-light {
	font-weight: 400;
}

.aib-kicker {
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(0.8rem, 1.3vw, 1rem);
	font-weight: 700;
	letter-spacing: 3px;
	line-height: 1.5;
}

.aib-kicker--light {
	font-size: clamp(0.95rem, 1.6vw, 1.375rem);
	font-weight: 400;
	letter-spacing: 2px;
}

/* Decorative gray wedges behind sections. */
.aib-wedge {
	isolation: isolate;
	overflow: hidden;
}

.aib-wedge::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	z-index: -1;
	pointer-events: none;
	background: var(--wp--preset--color--wedge);
}

.aib-wedge--top-left::before {
	top: 0;
	height: clamp(50px, 11vw, 165px);
	clip-path: polygon(0 0, 100% 0, 0 100%);
}

.aib-wedge--bottom-right::before {
	bottom: 0;
	height: clamp(40px, 7vw, 100px);
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

/* ---------- Accordion (Details block, "Accordion" style) ---------- */

.wp-block-details.is-style-accordion {
	margin-block: 0;
	padding: 1.1rem 0;
}

.wp-block-details.is-style-accordion > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	list-style: none;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	font-weight: 700;
	line-height: 1.35;
}

.wp-block-details.is-style-accordion > summary::-webkit-details-marker {
	display: none;
}

.wp-block-details.is-style-accordion > summary::after {
	content: "";
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 8l9 9 9-9' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 8l9 9 9-9' fill='none' stroke='black' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s ease;
}

.wp-block-details.is-style-accordion[open] > summary {
	color: var(--wp--preset--color--brand);
}

.wp-block-details.is-style-accordion[open] > summary::after {
	transform: rotate(180deg);
}

.wp-block-details.is-style-accordion > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--brand);
	outline-offset: 4px;
}

.wp-block-details.is-style-accordion > :not(summary) {
	margin-top: 0.9rem;
	font-size: 0.95rem;
}

/* ---------- How it works ---------- */

.aib-steps {
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.aib-step-num {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin: 0 auto 0.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--raleway);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
}

.aib-step-text {
	margin-top: 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.4;
}

/* ---------- CTA band ---------- */

.aib-cta.alignfull {
	margin-block: 0;
}

/* ---------- Industries ---------- */

.aib-industry {
	text-align: center;
}

.aib-industry .wp-block-image {
	margin: 0;
}

.aib-industry__label {
	margin: 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 0.95rem;
	letter-spacing: 2px;
	line-height: 1.5;
}

@media (max-width: 600px) {
	.aib-industries {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.aib-industry .wp-block-image img {
		width: 64px !important;
		height: 64px !important;
	}
}

/* ---------- Feature checklist ---------- */

.aib-compare__row {
	align-items: start;
	column-gap: clamp(1rem, 4vw, 3rem) !important;
}

.aib-compare__row > .wp-block-details {
	border-bottom: 1px solid rgba(0, 0, 0, 0.6);
}

.aib-compare__row:nth-child(2) > .wp-block-details {
	border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.aib-compare__head p {
	margin: 0;
}

.aib-compare__company {
	font-family: var(--wp--preset--font-family--raleway);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 1px;
	color: var(--wp--preset--color--brand);
}

.aib-check {
	margin: 0;
	padding-top: 1.05rem;
	color: var(--wp--preset--color--brand);
	font-size: 0; /* the ✔ character stays for screen readers; the icon is drawn below */
	line-height: 1;
}

.aib-check::before {
	content: "";
	display: inline-block;
	width: 26px;
	height: 22px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Cpath d='M3 12l7 7L23 3' fill='none' stroke='black' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Cpath d='M3 12l7 7L23 3' fill='none' stroke='black' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (max-width: 600px) {
	.aib-compare__row {
		grid-template-columns: minmax(0, 1fr) 4.75rem !important;
	}

	.aib-compare__company {
		font-size: 0.75rem;
	}
}

/* ---------- Footer ---------- */

.aib-footer {
	font-size: 1rem;
}

.aib-footer a {
	color: inherit;
	text-decoration: none;
}

.aib-footer a:hover {
	text-decoration: underline;
}

.aib-contact a {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
}

.aib-contact a::before {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--aib-icon) center / contain no-repeat;
	mask: var(--aib-icon) center / contain no-repeat;
}

.aib-contact--mail {
	--aib-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4l217.6 163.2c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48H48zM0 176v208c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V176L294.4 339.2a63.9 63.9 0 01-76.8 0L0 176z'/%3E%3C/svg%3E");
}

.aib-contact--phone {
	--aib-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64c0 247.4 200.6 448 448 448 18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368c-70.4-33.3-127.4-90.3-160.7-160.7l49.3-40.3c13.7-11.2 18.4-30 11.6-46.3l-40-96z'/%3E%3C/svg%3E");
}

/* ---------- Pages ---------- */

.aib-main {
	margin-block: 0;
}

.aib-page-title {
	font-family: var(--wp--preset--font-family--raleway);
	letter-spacing: 0;
	text-transform: none;
}

.aib-onboarding {
	background-image: linear-gradient(160deg, rgba(0, 0, 0, 0.04), transparent 40%);
}

/* No gaps between the full-width sections of landing pages. */
.aib-main > .wp-block-post-content > * {
	margin-block: 0;
}

/* ---------- Inner pages (AI, Results, Referrals, Demo) ---------- */

.aib-intro__text {
	max-width: 46rem;
	margin-inline: auto;
	font-size: var(--wp--preset--font-size--large);
}

/* Stats: centred row whatever the count (the grid layout would leave them left-aligned). */
.aib-stats {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
}

.aib-stats > .aib-stat {
	flex: 1 1 14rem;
	max-width: 20rem;
}

/* Cards and stats sit on the page's own background, so they work with a light or dark palette. */
.aib-cards,
.aib-stats {
	gap: clamp(1rem, 2.5vw, 1.75rem);
	margin-top: var(--wp--preset--spacing--40);
}

.aib-card-item,
.aib-stat {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
	border-radius: 12px;
	background: color-mix(in srgb, currentColor 4%, transparent);
}

.aib-card-item__title {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--raleway);
	font-size: var(--wp--preset--font-size--large);
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--brand);
}

.aib-card-item p {
	margin: 0;
}

.aib-stat__number {
	margin: 0;
	font-family: var(--wp--preset--font-family--raleway);
	font-size: clamp(1.75rem, 3.4vw, 2.75rem);
	overflow-wrap: anywhere;
	font-weight: 800;
	line-height: 1.1;
	color: var(--wp--preset--color--brand);
}

.aib-stat__label {
	margin: 0.5rem 0 0;
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.aib-checklist {
	columns: 2 16rem;
	column-gap: 2.5rem;
	padding: 0;
	list-style: none;
}

.aib-checklist li {
	position: relative;
	break-inside: avoid;
	margin: 0 0 0.9rem;
	padding-left: 2rem;
}

.aib-checklist li::before {
	content: "✔";
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--brand);
	font-weight: 700;
}

.aib-faq .wp-block-details.is-style-accordion {
	border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}

.aib-faq .wp-block-details.is-style-accordion > summary {
	font-weight: 700;
}
