/*
Theme Name: HVACool
Theme URI: https://themeshaper.com/hvacool/
Author: Automattic
Author URI: https://automattic.com/
Description: HVACool is a bold theme for heating and cooling businesses. Built for fast service requests, it highlights emergency assistance, core services, maintenance plans, and service areas, using clear typography and reusable patterns. It is perfect for contractors who need a credible site that works day and night.
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 7.2
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hvacool
Tags: blog, four-columns, three-columns, two-columns, style-variations, rtl-language-support, threaded-comments, translation-ready
*/

/* ==========================================================================
   Global
   ========================================================================== */

/* Crossfade page transition */
@view-transition {
	navigation: auto;
}

/* Smooth scroll for in-page anchors; opt out for users with reduced-motion preference */
@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

/* Font smoothing */
body {
	text-rendering: geometricprecision;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/*
 * Progressive enhancement to reduce widows and orphans.
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Link styles.
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: 0.1em;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
 */
.more-link {
	display: block;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
	overflow-x: auto;
}

/*
 * Make sure footers have no margin.
 * https://github.com/WordPress/gutenberg/issues/47647
 */
footer.wp-block-template-part {
	margin-block-start: 0 !important;
}

/* Remove default browser figure margin; block display on img kills the baseline gap */
figure.wp-block-image {
	margin: 0 !important;
}

figure.wp-block-image img {
	display: block;
}

/* ==========================================================================
   Utilities
   ========================================================================== */

/* Remove text decoration from links */
.no-underline a {
	text-decoration: none;
}

/* Custom flex ordering and growth */
.order-0 { order: 0; }
.order-1 { order: 1; }
.grow-0   { flex-grow: 0; }
.grow     { flex-grow: 1; }

@media (min-width: 600px) {
	.md\:order-0 { order: 0; }
	.md\:order-1 { order: 1; }
	.md\:grow-0  { flex-grow: 0; }
	.md\:grow    { flex-grow: 1; }
}

/* ==========================================================================
   Blocks
   ========================================================================== */

/* Post card: lift and shadow on hover */
.wp-block-post-template .wp-block-post {
	transition: transform  0.15s cubic-bezier(0.4, 0, 0.2, 1),
	            box-shadow 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.wp-block-post-template .wp-block-post:hover {
	transform:  translateY(-4px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.04);
}

/* Post card: title and Read More colour shift on hover */
.wp-block-post-template .wp-block-post .wp-block-post-title,
.wp-block-post-template .wp-block-post .wp-block-post-title a,
.wp-block-post-template .wp-block-post .wp-block-read-more {
	transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.wp-block-post-template .wp-block-post:hover .wp-block-post-title,
.wp-block-post-template .wp-block-post:hover .wp-block-post-title a,
.wp-block-post-template .wp-block-post:hover .wp-block-read-more {
	color: var(--wp--preset--color--theme-4);
}

/* Card: invert to theme-2 background and theme-1 text on hover */
.is-inverted {
	transition: background-color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.is-inverted:hover {
	background-color: var(--wp--preset--color--theme-2) !important;
	color: var(--wp--preset--color--theme-1) !important;
}

.is-inverted:hover * {
	color: inherit !important;
}

/* Card: soft invert to theme-5 background and theme-2 text on hover */
.is-inverted-soft {
	transition: background-color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}

.is-inverted-soft:hover {
	background-color: var(--wp--preset--color--theme-3) !important;
	color: var(--wp--preset--color--theme-2) !important;
}

.is-inverted-soft:hover * {
	color: inherit !important;
}

/* Icon buttons: flex layout — colors, spacing, and radius live in theme.json */
.wp-block-button.is-style-btn-request .wp-block-button__link,
.wp-block-button.is-style-btn-callnow .wp-block-button__link,
.wp-block-button.is-style-btn-bookonline .wp-block-button__link,
.wp-block-button.is-style-btn-whatsapp .wp-block-button__link {
	display: inline-flex !important;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	border-width: 0;
	white-space: nowrap;
	transition: opacity 0.15s ease;
}

/* Icon buttons: hover */
.wp-block-button.is-style-btn-request .wp-block-button__link:hover,
.wp-block-button.is-style-btn-callnow .wp-block-button__link:hover,
.wp-block-button.is-style-btn-bookonline .wp-block-button__link:hover,
.wp-block-button.is-style-btn-whatsapp .wp-block-button__link:hover,
div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button:hover {
	opacity: 0.85;
}

/* Icon buttons: shared mask-image properties for the ::before icon */
.wp-block-button.is-style-btn-request .wp-block-button__link::before,
.wp-block-button.is-style-btn-callnow .wp-block-button__link::before,
.wp-block-button.is-style-btn-bookonline .wp-block-button__link::before,
.wp-block-button.is-style-btn-whatsapp .wp-block-button__link::before,
div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button::before {
	content: '';
	display: block;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	background-color: currentColor;
	mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
}

/* Icon buttons: Request Service */
.wp-block-button.is-style-btn-request .wp-block-button__link::before {
	mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22.7 11.5L20.7005 13.5L18.7 11.5M20.9451 13C20.9814 12.6717 21 12.338 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C14.8273 21 17.35 19.6963 19 17.6573M12 7V12L15 14' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22.7 11.5L20.7005 13.5L18.7 11.5M20.9451 13C20.9814 12.6717 21 12.338 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C14.8273 21 17.35 19.6963 19 17.6573M12 7V12L15 14' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Icon buttons: Call Now */
.wp-block-button.is-style-btn-callnow .wp-block-button__link::before {
	mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 6C12.5523 6 13 5.55228 13 5C13 4.44772 12.5523 4 12 4C11.4477 4 11 4.44772 11 5C11 5.55228 11.4477 6 12 6Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19 6C19.5523 6 20 5.55228 20 5C20 4.44772 19.5523 4 19 4C18.4477 4 18 4.44772 18 5C18 5.55228 18.4477 6 19 6Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19 13C19.5523 13 20 12.5523 20 12C20 11.4477 19.5523 11 19 11C18.4477 11 18 11.4477 18 12C18 12.5523 18.4477 13 19 13Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19 20C19.5523 20 20 19.5523 20 19C20 18.4477 19.5523 18 19 18C18.4477 18 18 18.4477 18 19C18 19.5523 18.4477 20 19 20Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 6C5.55228 6 6 5.55228 6 5C6 4.44772 5.55228 4 5 4C4.44772 4 4 4.44772 4 5C4 5.55228 4.44772 6 5 6Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 13C5.55228 13 6 12.5523 6 12C6 11.4477 5.55228 11 5 11C4.44772 11 4 11.4477 4 12C4 12.5523 4.44772 13 5 13Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 20C5.55228 20 6 19.5523 6 19C6 18.4477 5.55228 18 5 18C4.44772 18 4 18.4477 4 19C4 19.5523 4.44772 20 5 20Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 6C12.5523 6 13 5.55228 13 5C13 4.44772 12.5523 4 12 4C11.4477 4 11 4.44772 11 5C11 5.55228 11.4477 6 12 6Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 20C12.5523 20 13 19.5523 13 19C13 18.4477 12.5523 18 12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19 6C19.5523 6 20 5.55228 20 5C20 4.44772 19.5523 4 19 4C18.4477 4 18 4.44772 18 5C18 5.55228 18.4477 6 19 6Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19 13C19.5523 13 20 12.5523 20 12C20 11.4477 19.5523 11 19 11C18.4477 11 18 11.4477 18 12C18 12.5523 18.4477 13 19 13Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19 20C19.5523 20 20 19.5523 20 19C20 18.4477 19.5523 18 19 18C18.4477 18 18 18.4477 18 19C18 19.5523 18.4477 20 19 20Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 6C5.55228 6 6 5.55228 6 5C6 4.44772 5.55228 4 5 4C4.44772 4 4 4.44772 4 5C4 5.55228 4.44772 6 5 6Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 13C5.55228 13 6 12.5523 6 12C6 11.4477 5.55228 11 5 11C4.44772 11 4 11.4477 4 12C4 12.5523 4.44772 13 5 13Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 20C5.55228 20 6 19.5523 6 19C6 18.4477 5.55228 18 5 18C4.44772 18 4 18.4477 4 19C4 19.5523 4.44772 20 5 20Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Icon buttons: Book Online */
.wp-block-button.is-style-btn-bookonline .wp-block-button__link::before {
	mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 12C20 16.4183 16.4183 20 12 20M20 12C20 7.58172 16.4183 4 12 4M20 12H22M12 20C7.58172 20 4 16.4183 4 12M12 20V22M4 12C4 7.58172 7.58172 4 12 4M4 12H2M12 4V2M15 12C15 13.6569 13.6569 15 12 15C10.3431 15 9 13.6569 9 12C9 10.3431 10.3431 9 12 9C13.6569 9 15 10.3431 15 12Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 12C20 16.4183 16.4183 20 12 20M20 12C20 7.58172 16.4183 4 12 4M20 12H22M12 20C7.58172 20 4 16.4183 4 12M12 20V22M4 12C4 7.58172 7.58172 4 12 4M4 12H2M12 4V2M15 12C15 13.6569 13.6569 15 12 15C10.3431 15 9 13.6569 9 12C9 10.3431 10.3431 9 12 9C13.6569 9 15 10.3431 15 12Z' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Icon buttons: WhatsApp (core/button variation — does not depend on Jetpack) */
.wp-block-button.is-style-btn-whatsapp .wp-block-button__link::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='black' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.57 11.57 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69M12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829s-4.444-9.83-9.906-9.83m5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478s-.361-.024-.554-.024-.506.072-.77.358c-.265.287-1.01.98-1.01 2.39s1.034 2.773 1.178 2.964c.145.19 1.998 3.179 4.934 4.326s2.936.764 3.466.716c.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='black' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.57 11.57 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69M12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829s-4.444-9.83-9.906-9.83m5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478s-.361-.024-.554-.024-.506.072-.77.358c-.265.287-1.01.98-1.01 2.39s1.034 2.773 1.178 2.964c.145.19 1.998 3.179 4.934 4.326s2.936.764 3.466.716c.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363'/%3E%3C/svg%3E");
}

/*
 * WhatsApp button: Jetpack block — full spec lives here because theme.json
 * core/button variations do not apply to third-party blocks.
 * wp-block-jetpack-send-a-message is the outer wrapper that sits as the
 * direct flex child inside the Buttons row.
 */
div.wp-block-jetpack-send-a-message {
	display: flex !important;
	align-self: stretch !important;
	align-items: stretch;
}

div.wp-block-jetpack-whatsapp-button {
	display: flex !important;
	align-items: stretch;
	flex: 1;
}

div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button {
	display: flex !important;
	align-items: center;
	flex: 1;
	width: 100% !important;
	gap: var(--wp--preset--spacing--20);
	background-color: var(--wp--preset--color--theme-2) !important;
	background-image: none !important;
	color: var(--wp--preset--color--theme-3) !important;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border-radius: 20px;
	border-width: 0;
	text-transform: none;
	white-space: nowrap;
	transition: opacity 0.15s ease;
}

/* WhatsApp button: icon */
div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button::before {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='black' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.57 11.57 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69M12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829s-4.444-9.83-9.906-9.83m5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478s-.361-.024-.554-.024-.506.072-.77.358c-.265.287-1.01.98-1.01 2.39s1.034 2.773 1.178 2.964c.145.19 1.998 3.179 4.934 4.326s2.936.764 3.466.716c.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='black' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.57 11.57 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69M12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829s-4.444-9.83-9.906-9.83m5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478s-.361-.024-.554-.024-.506.072-.77.358c-.265.287-1.01.98-1.01 2.39s1.034 2.773 1.178 2.964c.145.19 1.998 3.179 4.934 4.326s2.936.764 3.466.716c.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363'/%3E%3C/svg%3E");
}

/* Accordion item: toast style */
.wp-block-accordion .wp-block-accordion-item {
	background-color: var(--wp--preset--color--theme-6);
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--theme-5);
	border-radius: 10px;
}

/* ==========================================================================
   Animations
   ========================================================================== */

/* Initial hidden states — JS reveals each element on scroll.
   Gated on reduced-motion so users who opt out of motion see content immediately. */
@media (prefers-reduced-motion: no-preference) {
	.anim-avatar,
	.anim-pill,
	.anim-buttons {
		opacity: 0;
	}
}

/* Avatar — scale-bounce pop with slight rotation */
@keyframes hero-avatar-pop {
	0%   { opacity: 0; transform: scale(0) rotate(-12deg); }
	60%  { transform: scale(1.12) rotate(3deg); }
	100% { opacity: 1; transform: scale(1) rotate(0deg); }
}

.anim-avatar.is-playing {
	animation: hero-avatar-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* Pill — typed reveal (paragraphs) or slide-up fade (headings) */
.anim-pill.is-visible {
	opacity: 1;
}

.anim-pill.is-fade {
	transform: translateY(20px);
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.anim-pill.is-fade.is-visible {
	transform: translateY(0);
}

/* Buttons — fade up after pills complete */
@keyframes hero-buttons-in {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.anim-buttons.is-playing {
	animation: hero-buttons-in 0.35s ease forwards;
}
