/*
 * The Haibo system (Oct 2026), shared with haibo.africa: Phantom's structure
 * in Haibo colours. Loaded after every other stylesheet. Tokens carry most of
 * the change (flat fills, pill buttons, 24px cards, light display type); this
 * file holds the pieces that changed shape:
 *
 * 1. Floating header with a white pill navigation.
 * 2. Photo hero (home + page banners): full-width photo, animated gradient
 *    overlay, centred title.
 * 3. Headings: one colour, light weight, tight tracking.
 * 4. Cards, tags and panels: hairline borders, no pills for labels.
 * 5. Decoration from the old kit (orbs, diamonds, floating icons) removed.
 */

/* 1. Header ------------------------------------------------------------- */
.hai-header {
	background: transparent;
	box-shadow: none;
}

.hai-header.is-stuck {
	background: transparent;
	box-shadow: none;
}

.hai-header__bar {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1.5rem;
	min-height: 88px;
}

.hai-header__bar > .hai-logo,
.hai-header__bar > a:first-child {
	justify-self: start;
}

.hai-header__tools {
	justify-self: end;
}

.hai-nav {
	padding: 6px;
	background: rgb(255 255 255 / 0.92);
	border: 1px solid var(--hai-border);
	border-radius: var(--hai-radius-pill);
	-webkit-backdrop-filter: saturate(1.4) blur(16px);
	backdrop-filter: saturate(1.4) blur(16px);
	transition: box-shadow var(--hai-speed) ease;
}

.hai-header.is-stuck .hai-nav {
	box-shadow: var(--hai-shadow-header);
}

.hai-nav__menu > li > a,
.hai-header.is-stuck .hai-nav__menu > li > a {
	padding: 10px 16px;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--hai-wine);
	border-radius: var(--hai-radius-pill);
	transition: background var(--hai-speed) ease;
}

.hai-nav__menu > li > a:hover {
	color: var(--hai-wine);
	background: var(--hai-alt-bg);
}

.hai-nav__menu > .current-menu-item > a,
.hai-nav__menu > .current-menu-ancestor > a {
	color: var(--hai-wine);
	background: var(--hai-blush);
}

.hai-nav__menu .sub-menu {
	border: 1px solid var(--hai-border);
	border-radius: var(--hai-radius-card);
	box-shadow: 0 20px 40px -24px rgb(42 10 22 / 0.3);
}

.hai-tool,
.hai-cart {
	border-radius: var(--hai-radius-pill);
}

.hai-cart {
	background: var(--hai-blush);
	color: var(--hai-wine);
}

/* Below the desktop breakpoint the pill holds nothing; the burger takes over. */
@media (max-width: 1100px) {
	.hai-header__bar {
		grid-template-columns: 1fr auto;
	}

	.hai-nav {
		display: none;
	}
}

/* 2. Photo hero --------------------------------------------------------- */
.hai-photo-hero {
	padding: 0 var(--hai-inset);
}

.hai-photo-hero__panel {
	position: relative;
	isolation: isolate;
	display: grid;
	place-items: center;
	min-height: calc(100svh - 88px - var(--hai-inset));
	padding: clamp(4rem, 8vw, 7rem) var(--hai-gutter);
	overflow: hidden;
	color: var(--hai-white);
	background: var(--hai-wine);
	border-radius: var(--hai-radius-section);
}

.hai-photo-hero--compact .hai-photo-hero__panel {
	min-height: clamp(22rem, 52svh, 34rem);
}

.hai-photo-hero__img {
	position: absolute;
	inset: 0;
	z-index: -3;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* Strong enough that white text keeps contrast on any photo. */
.hai-photo-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: -2;
	background: linear-gradient(125deg, rgb(42 10 22 / 0.9) 0%, rgb(230 28 91 / 0.78) 45%, rgb(215 32 40 / 0.82) 70%, rgb(248 78 78 / 0.78) 100%);
	background-size: 220% 220%;
	background-position: 0% 50%;
}

.hai-photo-hero__glow {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	mix-blend-mode: screen;
	opacity: 0.5;
}

.hai-photo-hero__glow::before,
.hai-photo-hero__glow::after {
	content: "";
	position: absolute;
	border-radius: 50%;
}

.hai-photo-hero__glow::before {
	width: 80vmax;
	height: 80vmax;
	top: -44vmax;
	right: -30vmax;
	background: radial-gradient(closest-side, rgb(255 77 122 / 0.75), transparent 70%);
}

.hai-photo-hero__glow::after {
	width: 70vmax;
	height: 70vmax;
	bottom: -46vmax;
	left: -26vmax;
	background: radial-gradient(closest-side, rgb(230 28 91 / 0.6), transparent 70%);
}

@media (prefers-reduced-motion: no-preference) {
	.hai-photo-hero__overlay {
		animation: hai-gradient-shift 16s ease-in-out infinite alternate;
	}

	.hai-photo-hero__glow::before {
		animation: hai-drift-a 18s ease-in-out infinite alternate;
	}

	.hai-photo-hero__glow::after {
		animation: hai-drift-b 22s ease-in-out infinite alternate;
	}

	.hai-photo-hero__img {
		animation: hai-hero-zoom 1.6s var(--hai-ease) both;
	}

	.hai-photo-hero__inner > * {
		animation: hai-fade-up 0.9s var(--hai-ease) both;
	}

	.hai-photo-hero__inner > :nth-child(2) {
		animation-delay: 0.12s;
	}

	.hai-photo-hero__inner > :nth-child(n + 3) {
		animation-delay: 0.24s;
	}
}

@keyframes hai-gradient-shift {
	to {
		background-position: 100% 50%;
	}
}

@keyframes hai-hero-zoom {
	from {
		transform: scale(1.08);
	}
}

@keyframes hai-drift-a {
	50% {
		transform: translate3d(-12vmax, 8vmax, 0) scale(1.08);
	}

	100% {
		transform: translate3d(-4vmax, 18vmax, 0) scale(0.94);
	}
}

@keyframes hai-drift-b {
	50% {
		transform: translate3d(14vmax, -6vmax, 0) scale(1.1);
	}

	100% {
		transform: translate3d(6vmax, -14vmax, 0) scale(0.96);
	}
}

@keyframes hai-fade-up {
	from {
		opacity: 0;
		transform: translate3d(0, 16px, 0);
	}
}

.hai-photo-hero__inner {
	display: grid;
	justify-items: center;
	gap: clamp(1.25rem, 2vw, 1.75rem);
	max-width: 60rem;
	text-align: center;
}

.hai-photo-hero__inner > * {
	margin: 0;
}

.hai-photo-hero__title {
	max-width: 14ch;
	font-size: var(--hai-fs-display);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--hai-white);
}

.hai-photo-hero--compact .hai-photo-hero__title {
	max-width: 18ch;
	font-size: var(--hai-fs-h1);
}

.hai-photo-hero__text {
	max-width: 38ch;
	font-size: clamp(1.125rem, 0.6vw + 1rem, 1.375rem);
	line-height: 1.45;
	color: rgb(255 255 255 / 0.92);
}

.hai-photo-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 0.75rem;
}

.hai-btn--on-photo {
	color: var(--hai-heading);
	background: var(--hai-white);
	border-color: var(--hai-white);
}

.hai-btn--on-photo:hover,
.hai-btn--on-photo:focus-visible {
	color: var(--hai-white);
	background: var(--hai-wine);
	border-color: var(--hai-wine);
}

.hai-btn--ghost-light {
	color: var(--hai-white);
	background: transparent;
	border-color: rgb(255 255 255 / 0.8);
}

.hai-btn--ghost-light:hover,
.hai-btn--ghost-light:focus-visible {
	color: var(--hai-heading);
	background: var(--hai-white);
	border-color: var(--hai-white);
}

.hai-photo-hero__video {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.5rem 1rem;
	font: inherit;
	font-weight: 500;
	color: var(--hai-white);
	background: rgb(255 255 255 / 0.14);
	border: 0;
	border-radius: var(--hai-radius-pill);
	cursor: pointer;
}

.hai-photo-hero__trust {
	font-size: var(--hai-fs-small);
	color: rgb(255 255 255 / 0.85);
}

.hai-photo-hero .hai-breadcrumbs,
.hai-photo-hero .hai-breadcrumbs a,
.hai-photo-hero .hai-breadcrumbs [aria-current] {
	color: rgb(255 255 255 / 0.9);
}

.hai-photo-hero :where(a, button):focus-visible {
	outline-color: var(--hai-white);
}

@media (max-width: 767px) {
	.hai-photo-hero__panel {
		min-height: calc(88svh - 88px);
		padding-block: 4rem;
	}

	.hai-photo-hero--compact .hai-photo-hero__panel {
		min-height: 20rem;
	}
}

.hai-partners {
	padding-top: var(--hai-section-y);
}

/* 3. Headings ----------------------------------------------------------- */
.hai-sh__heading {
	font-weight: 400;
	letter-spacing: var(--hai-tracking);
}

/* Second lines continue the sentence in the same colour. */
.hai-sh__line2,
.hai-hero__accent,
.hai-accent-text {
	color: inherit;
}

.hai-sh__rule,
.hai-sh__cta::before {
	display: none;
}

.hai-eyebrow {
	display: none;
}

/* 4. Cards, tags, panels ------------------------------------------------ */
.hai-band,
.hai-band--alt,
.hai-band--wash {
	border-radius: var(--hai-radius-section);
}

.hai-cat-card__surface {
	background: var(--hai-white);
	box-shadow: var(--hai-shadow-card);
}

.hai-band--alt .hai-cat-card__surface {
	background: var(--hai-white);
}

.hai-cat-card:hover .hai-cat-card__surface {
	box-shadow: var(--hai-shadow-card-hover);
}

/* Icon tiles: one quiet treatment instead of a rainbow. */
.hai-cat-card__icon,
.hai-cat-card__icon[style*="--tile"],
.hai-cat-card__icon.is-light-tile {
	color: var(--hai-accent);
	background: var(--hai-blush);
}

/* Tags read as text, not pills: "School · Level". */
.hai-chip,
.hai-chip--plain {
	padding: 0;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--hai-muted);
	background: none;
	border: 0;
	border-radius: 0;
}

.hai-course-card__chips {
	gap: 0 !important;
}

.hai-course-card__chips > * + *::before {
	content: "·";
	margin: 0 0.5em;
	color: var(--hai-muted);
}

.hai-course-card,
.hai-mentor-card,
.hai-post-card {
	border: 0;
	box-shadow: var(--hai-shadow-card);
}

.hai-course-card:hover,
.hai-mentor-card:hover,
.hai-post-card:hover {
	box-shadow: var(--hai-shadow-card-hover);
}

.hai-course-card__title {
	font-weight: 500;
}

/* Stat cards: wine, flat. */
.hai-stat {
	background: var(--hai-wine);
	box-shadow: none;
}

/* Open FAQ item: blush, not a red slab. */
.hai-accordion__item {
	border: 1px solid var(--hai-border);
	box-shadow: none;
}

.hai-accordion__item.is-open {
	background: var(--hai-alt-bg);
}

.hai-accordion__item.is-open .hai-accordion__btn,
.hai-accordion__item.is-open .hai-accordion__chev,
.hai-accordion__item.is-open .hai-accordion__lock .hai-icon,
.hai-accordion__item.is-open .hai-accordion__inner,
.hai-accordion__item.is-open .hai-accordion__inner a,
.hai-accordion__item.is-open .hai-lesson-mins,
.hai-accordion__item.is-open .hai-lesson-state {
	color: var(--hai-heading);
}

.hai-accordion__btn {
	font-weight: 500;
}

/* 5. Decoration from the old kit ---------------------------------------- */
.hai-float-icon,
.hai-cta-card__deco,
.hai-hero__orb,
.hai-hero__arrow {
	display: none !important;
}

/* Diamond-masked images become rounded rectangles. */
.hai-diamond,
.hai-diamond img {
	-webkit-clip-path: none !important;
	clip-path: none !important;
	transform: none !important;
	border-radius: var(--hai-radius-card);
}

/* Notched corners: the ↗ button simply sits inside the card's corner. */
.hai-notched__cut {
	top: 12px;
	right: 12px;
	padding: 0;
	background: transparent;
	border-radius: 0;
}

.hai-notched__cut::before,
.hai-notched__cut::after {
	display: none;
}

/* About: no ring behind the image; a quiet badge. */
.hai-about__visual::before {
	display: none;
}

.hai-about__badge {
	padding: 0.9rem 1.5rem;
	background: var(--hai-wine);
	border-radius: var(--hai-radius-card);
	box-shadow: none;
}

.hai-about__badge strong {
	font-weight: 500;
}

/* Feature and list titles: medium, not bold. */
.hai-about h3,
.hai-about h4,
.hai-feature__title,
.hai-why__title,
.hai-cat-card__title,
.hai-phase__title,
.hai-cta-card__title span {
	font-weight: 500;
}

.hai-cat-card__title {
	letter-spacing: -0.01em;
}

/* CTA cards: the red glow panel, flat. */
.hai-cta-card,
.hai-cta-card--small {
	background: radial-gradient(120% 90% at 75% 15%, #ff4d7a 0%, #e61c5b 50%, #d72028 100%);
	border-radius: var(--hai-radius-section);
	box-shadow: none;
}

.hai-cta-card__title {
	font-weight: 400;
	letter-spacing: var(--hai-tracking);
}

.hai-cta-card .hai-btn--secondary,
.hai-cta-card .hai-btn--primary {
	color: var(--hai-heading);
	background: var(--hai-white);
	border-color: var(--hai-white);
}

.hai-cta-card .hai-btn:hover {
	color: var(--hai-white);
	background: var(--hai-wine);
	border-color: var(--hai-wine);
}

/* Footer: wine panel, quiet column headings. */
.hai-footer {
	background: var(--hai-wine);
}

.hai-footer :is(h2, h3, h4) {
	font-weight: 500;
	letter-spacing: 0;
}

/* A panel straight after the hero keeps the same gap as two panels. */
.hai-photo-hero + .hai-band,
.hai-photo-hero + section[class*="hai-band"] {
	margin-top: clamp(2.5rem, 3vw + 1.5rem, 4rem);
}

/* ==========================================================================
   Bold layer (October 2026, shared with haibo.africa and app.haibo.africa)
   Owner direction: bold, courageous, authentic. Heavier display type with
   Rose Red accent words, no outline borders (surfaces separate by fill),
   and icons that float: no tinted tiles behind them.
   ========================================================================== */

:root {
	--hai-border: transparent;
	--hai-border-soft: transparent;
}

/* Type: heavy display headings, the second line in Rose Red. */
h1,
h2,
.hai-sh__heading,
.hai-photo-hero__title {
	font-weight: 800 !important;
	letter-spacing: -0.035em;
}
h3,
h4 {
	font-weight: 700;
}
.hai-sh__line2 {
	color: var(--hai-rose);
}
.hai-band--dark .hai-sh__line2,
.hai-photo-hero .hai-sh__line2 {
	color: var(--hai-blush);
}

/* Cards that relied on a hairline now sit on a bone fill; on bone bands
   they turn white so they still stand apart. */
.hai-course-card,
.hai-mentor-card,
.hai-testimonial,
.hai-accordion__item,
.hai-post-card,
.hai-panel,
.hai-phase,
.hai-result,
.hai-resource,
.hai-answer,
.hai-pro-figure,
.hai-pro-pillar,
.hai-pro-partner,
.hai-slider__btn,
.hai-woo .woocommerce-MyAccount-content,
.hai-woo .woocommerce-form-login,
.hai-woo .woocommerce-form-register {
	background: var(--hai-alt-bg);
}
:is(.hai-band--alt, .hai-band--wash) :is(.hai-course-card, .hai-mentor-card, .hai-testimonial, .hai-accordion__item, .hai-post-card, .hai-phase, .hai-resource, .hai-slider__btn) {
	background: var(--hai-white);
}

/* Form fields keep a visible filled surface. */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]),
textarea,
select {
	background-color: var(--hai-alt-bg);
}
:is(.hai-band--alt, .hai-band--wash, .hai-panel, .hai-result) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]), textarea, select) {
	background-color: var(--hai-white);
}

/* Tables keep their row rules: they read badly without them. */
.hai-prose th,
.hai-prose td,
.hai-pro-areas th,
.hai-pro-areas td,
.hai-woo table.shop_table th,
.hai-woo table.shop_table td {
	border-color: #ece6e8;
}

/* Floating icons: no tile, heavier stroke, Rose Red. */
.hai-cat-card__icon,
.hai-cat-card__icon[style*="--tile"],
.hai-cat-card__icon.is-light-tile,
.hai-stat__icon,
.hai-about__icon,
.hai-why__icon,
.hai-contact-row__icon,
.hai-resource__icon,
.hai-resource.is-soon .hai-resource__icon,
.hai-pro-features__icon {
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--hai-rose);
}
:is(.hai-cat-card__icon, .hai-stat__icon, .hai-about__icon, .hai-why__icon, .hai-contact-row__icon, .hai-resource__icon, .hai-pro-features__icon) .hai-icon {
	color: var(--hai-rose);
	width: 2rem;
	height: 2rem;
}
.hai-icon {
	stroke-width: 2.4;
}

/* Second lines and accent words in Rose Red. */
.hai-hero__accent,
.hai-accent-text {
	color: var(--hai-rose);
}
.hai-photo-hero .hai-hero__accent,
.hai-photo-hero .hai-accent-text {
	color: var(--hai-blush);
}

/* Rose, not maroon: footer, stat cards and badges use the Rose Red
   gradient (deep enough for white body text, 4.8:1 and up). */
.hai-footer,
.hai-stat,
.hai-about__badge,
.hai-pro-hero {
	background: linear-gradient(135deg, #d42281 0%, #c81d5b 100%);
}
.hai-btn--secondary:hover,
.hai-btn--secondary:focus-visible,
.hai-btn--on-photo:hover,
.hai-btn--on-photo:focus-visible,
.hai-cta-card .hai-btn:hover {
	background: var(--hai-accent-dark);
}
.hai-footer {
	color: var(--hai-white);
}

/* The new Institute logo (owner artwork, Oct 2026): a little larger. */
.hai-header .hai-logo__img {
	height: 64px;
}
.hai-header.is-stuck .hai-logo__img {
	height: 54px;
}
.hai-footer .hai-logo__img {
	height: 92px;
}

h3,
h4 {
	font-weight: 700 !important;
}

/* On the rose footer the subscribe button is white with rose text. */
.hai-footer :is(button, .hai-btn, input[type="submit"]) {
	background: var(--hai-white) !important;
	color: #c81d5b !important;
}
.hai-footer :is(button, .hai-btn, input[type="submit"]):hover {
	background: var(--hai-blush) !important;
}
.hai-footer__bg::after {
	background: linear-gradient(135deg, rgb(212 34 129 / 0.93) 0%, rgb(200 29 91 / 0.96) 100%);
}

.hai-footer__brand {
	border-inline-end: 0;
}

/* The Haibo family: every site links to the others. */
.hai-footer__family {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.5rem;
	margin-top: clamp(2rem, 3vw, 2.75rem);
	font-weight: 700;
}
.hai-footer__family a {
	color: var(--hai-white);
	text-decoration: none;
}
.hai-footer__family a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}
