/*
Theme Name: AUS-QUAL
Theme URI: https://ausqual.com.au
Author: AUS-QUAL
Author URI: https://ausqual.com.au
Description: Custom WordPress theme for AUS-QUAL Training Services, featuring a modern block-based design with integrated patterns for courses, training categories, and contact forms.
Requires at least: 6.7
Tested up to: 6.7
Requires PHP: 7.4
Version: 1.3.6
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ausqual
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, wide-blocks, block-styles, accessibility-ready, education, portfolio
*/

/* ==========================================================================
   Form Input Variables
   ========================================================================== */
:root {
    /* Sizing */
    --form-input-padding: 0.75rem 1rem;
    --form-input-padding-textarea: 0.75rem 1rem;
    --form-input-font-size: 1rem;
    --form-input-border-radius: 5px;
    --form-textarea-min-height: 100px;

    /* Colors - Default (light background) */
    --form-input-bg: rgba(231, 239, 230, 0.5);
    --form-input-color: #1F2828;
    --form-input-border: 1px solid #1F2828;
    --form-input-placeholder: rgba(31, 40, 40, 0.5);

    /* Focus state */
    --form-input-focus-border-color: #235C28;
    --form-input-focus-shadow: 0 0 0 3px rgba(35, 92, 40, 0.1);

    /* Error state */
    --form-input-error-border-color: #DC2626;
    --form-input-error-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}

/* Link styles */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .15em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Navigation focus styles */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/* Typography improvements */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/* More link display */
.more-link {
	display: block;
}

/* Preformatted text */
:where(pre) {
	overflow-x: auto;
}

/* AUS-QUAL Custom Styles */

/* Course card styles */
.ausqual-course-card {
	border-radius: 16px;
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ausqual-course-card:hover {
	box-shadow: 0 12px 24px rgba(31, 40, 40, 0.12);
}

/* Category tag styles */
.ausqual-category-tag {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
}

/* CTA Button styles */
.ausqual-btn-primary {
	background-color: var(--wp--preset--color--grains) !important;
	color: var(--wp--preset--color--fertiliser) !important;
	border-radius: 8px !important;
	font-weight: 500 !important;
	transition: all 0.3s ease !important;
}

.ausqual-btn-primary:hover {
	background-color: #e5c157 !important;
	transform: translateY(-2px);
}

.ausqual-btn-outline {
	background-color: transparent !important;
	border: 2px solid var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--base) !important;
	border-radius: 8px !important;
}

.ausqual-btn-outline:hover {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--fertiliser) !important;
}

/* Link button style - looks like a simple text link */
.wp-block-button.is-style-link-button .wp-block-button__link {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
}

.wp-block-button.is-style-link-button .wp-block-button__link:hover {
	text-decoration: underline;
}

/* Horizontal scroll for courses */
.ausqual-courses-scroll {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 16px;
}

.ausqual-courses-scroll::-webkit-scrollbar {
	height: 6px;
}

.ausqual-courses-scroll::-webkit-scrollbar-track {
	background: var(--wp--preset--color--light-bg);
	border-radius: 3px;
}

.ausqual-courses-scroll::-webkit-scrollbar-thumb {
	background: var(--wp--preset--color--grass);
	border-radius: 3px;
}

.ausqual-courses-scroll > * {
	scroll-snap-align: start;
	flex-shrink: 0;
}

/* Hero section */
.ausqual-hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
}

.ausqual-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(31, 40, 40, 0.85) 0%, rgba(31, 40, 40, 0.4) 100%);
}

/* Category cards - Figma design (supports both block style and legacy class) */
.wp-block-cover.is-style-category-card,
.wp-block-cover.ausqual-category-card {
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0px 4px 30px 0px rgba(0, 62, 51, 0.15);
}

/* Cover block overlay - masked to bottom area for tinting the frosted glass */
.wp-block-cover.is-style-category-card > .wp-block-cover__background,
.wp-block-cover.ausqual-category-card > .wp-block-cover__background {
	mask-image: linear-gradient(to top, black 0%, black 30%, transparent 60%);
	-webkit-mask-image: linear-gradient(to top, black 0%, black 30%, transparent 60%);
	z-index: 2;
}

/* Frosted glass effect at bottom - blur layer */
.wp-block-cover.is-style-category-card::before,
.wp-block-cover.ausqual-category-card::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 180px;
	background: linear-gradient(to top, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.2) 50%, transparent 100%);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	mask-image: linear-gradient(to top, black 0%, black 40%, transparent 100%);
	-webkit-mask-image: linear-gradient(to top, black 0%, black 40%, transparent 100%);
	pointer-events: none;
	z-index: 1;
}

/* Card content - above the blur and tint overlay */
.wp-block-cover.is-style-category-card > .wp-block-cover__inner-container,
.wp-block-cover.ausqual-category-card > .wp-block-cover__inner-container {
	position: relative;
	z-index: 3;
}

/* Card title - starts shifted up, returns to normal on hover */
.wp-block-cover.is-style-category-card .ausqual-card-title,
.wp-block-cover.ausqual-category-card .ausqual-card-title,
.wp-block-cover.is-style-category-card > .wp-block-cover__inner-container > h3,
.wp-block-cover.ausqual-category-card > .wp-block-cover__inner-container > h3 {
	transform: translateY(30px);
	transition: transform 0.3s ease;
}

/* View Courses link - hidden by default using transform */
.wp-block-cover.is-style-category-card .ausqual-view-courses,
.wp-block-cover.ausqual-category-card .ausqual-view-courses {
	transform: translateY(10px);
	opacity: 0;
	transition: transform 0.3s ease, opacity 0.3s ease;
	margin-top: 8px;
}

/* Hover state - title returns to normal position, link revealed */
.wp-block-cover.is-style-category-card:hover .ausqual-card-title,
.wp-block-cover.ausqual-category-card:hover .ausqual-card-title,
.wp-block-cover.is-style-category-card:hover > .wp-block-cover__inner-container > h3,
.wp-block-cover.ausqual-category-card:hover > .wp-block-cover__inner-container > h3 {
	transform: translateY(0);
}

.wp-block-cover.is-style-category-card:hover .ausqual-view-courses,
.wp-block-cover.ausqual-category-card:hover .ausqual-view-courses {
	transform: translateY(0);
	opacity: 1;
}

/* ==========================================================================
   Contact Form 7 Custom Styles
   ========================================================================== */

/* Base WPCF7 input styles using global variables */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	padding: var(--form-input-padding);
	font-family: inherit;
	font-size: var(--form-input-font-size);
	color: var(--form-input-color);
	background: var(--form-input-bg);
	border: var(--form-input-border);
	border-radius: var(--form-input-border-radius);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	box-sizing: border-box;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
	color: var(--form-input-placeholder);
}

.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
	outline: none;
	border-color: var(--form-input-focus-border-color);
	box-shadow: var(--form-input-focus-shadow);
}

.wpcf7 textarea {
	padding: var(--form-input-padding-textarea);
	resize: vertical;
	min-height: var(--form-textarea-min-height);
}

.wpcf7 label {
	display: block;
	margin-bottom: 8px;
	font-weight: 500;
	color: var(--form-input-color);
	font-size: 0.875rem;
}

/* WPCF7 validation states */
.wpcf7 .wpcf7-not-valid {
	border-color: var(--form-input-error-border-color);
}

.wpcf7 .wpcf7-not-valid:focus {
	box-shadow: var(--form-input-error-shadow);
}

.wpcf7 .wpcf7-not-valid-tip {
	color: var(--form-input-error-border-color);
	font-size: 0.75rem;
	margin-top: 0.25rem;
}

/* WPCF7 submit button - typography matches the theme.json button element,
   since buttons do not inherit the page font family on their own. */
.wpcf7 .wpcf7-submit {
	background-color: var(--wp--preset--color--grains);
	color: var(--wp--preset--color--fertiliser);
	border: none;
	padding: 14px 32px;
	border-radius: var(--form-input-border-radius);
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.6;
	cursor: pointer;
	transition: all 0.3s ease;
	width: 100%;
}

.wpcf7 .wpcf7-submit:hover {
	background-color: #e5c157;
}

.wpcf7 .wpcf7-submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* WPCF7 on green/dark background - override colors */
.has-grass-background-color .wpcf7 input[type="text"],
.has-grass-background-color .wpcf7 input[type="email"],
.has-grass-background-color .wpcf7 input[type="tel"],
.has-grass-background-color .wpcf7 input[type="url"],
.has-grass-background-color .wpcf7 input[type="number"],
.has-grass-background-color .wpcf7 input[type="date"],
.has-grass-background-color .wpcf7 select,
.has-grass-background-color .wpcf7 textarea {
	--form-input-bg: #fff;
	--form-input-border: none;
	--form-input-focus-border-color: transparent;
	--form-input-focus-shadow: 0 0 0 3px rgba(255, 216, 97, 0.4);
}

.has-grass-background-color .wpcf7 label {
	color: #fff;
}

.has-grass-background-color .wpcf7 textarea {
	min-height: 150px;
}

/* ==========================================================================
   Gutenberg Form Block Styles
   ========================================================================== */

/* Base form input styles using variables */
.wp-block-form-input__input {
	width: 100%;
	padding: var(--form-input-padding);
	font-family: inherit;
	font-size: var(--form-input-font-size);
	color: var(--form-input-color);
	background: var(--form-input-bg);
	border: var(--form-input-border);
	border-radius: var(--form-input-border-radius);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	box-sizing: border-box;
}

.wp-block-form-input__input::placeholder {
	color: var(--form-input-placeholder);
}

.wp-block-form-input__input:focus {
	outline: none;
	border-color: var(--form-input-focus-border-color);
	box-shadow: var(--form-input-focus-shadow);
}

textarea.wp-block-form-input__input {
	padding: var(--form-input-padding-textarea);
	resize: vertical;
	min-height: var(--form-textarea-min-height);
}

/* Green background context - override colors only */
.has-grass-background-color .wp-block-form-input__input {
	--form-input-bg: #fff;
	--form-input-border: none;
	--form-input-focus-border-color: transparent;
	--form-input-focus-shadow: 0 0 0 3px rgba(255, 216, 97, 0.4);
}

.has-grass-background-color .wp-block-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.has-grass-background-color .wp-block-form-input {
	display: flex;
	flex-direction: column;
}

.has-grass-background-color .wp-block-form-input__label {
	display: flex;
	flex-direction: column;
	gap: 12px;
	font-weight: 400;
	color: #fff;
	font-size: 14px;
	line-height: 1.5;
}

.has-grass-background-color .wp-block-form-input__label-content {
	display: block;
}

.has-grass-background-color textarea.wp-block-form-input__input {
	min-height: 150px;
}

/* Submit button styling */
.has-grass-background-color .wp-block-form .wp-block-button__link {
	width: 100%;
	padding: 20px 30px;
	background-color: var(--wp--preset--color--grains, #FFD861) !important;
	color: var(--wp--preset--color--fertiliser, #13322c) !important;
	border: none;
	border-radius: 6px;
	font-family: inherit;
	font-size: 18px;
	font-weight: 400;
	cursor: pointer;
	transition: background-color 0.3s ease, transform 0.2s ease;
}

.has-grass-background-color .wp-block-form .wp-block-button__link:hover {
	background-color: #ffe082 !important;
	transform: translateY(-1px);
}

/* Notification styles - hidden by default */
.has-grass-background-color .wp-block-form-submission-notification {
	display: none;
	padding: 1rem;
	border-radius: 5px;
	font-size: 0.875rem;
}

.has-grass-background-color .wp-block-form-submission-notification[data-type="success"] {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.3);
}

.has-grass-background-color .wp-block-form-submission-notification[data-type="error"] {
	background: rgba(220, 38, 38, 0.15);
	color: #FCA5A5;
	border: 1px solid rgba(220, 38, 38, 0.3);
}

/* ==========================================================================
   Shared Form Spinner
   ========================================================================== */

/* Keyframe for the spinner rotation */
@keyframes ausqual-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Spinner element used inside submit buttons */
.ausqual-spinner {
	display: inline-block;
	width: 20px;
	height: 20px;
	border: 2.5px solid rgba(31, 40, 40, 0.25);
	border-top-color: var(--wp--preset--color--fertiliser, #1F2828);
	border-radius: 50%;
	animation: ausqual-spin 0.6s linear infinite;
	vertical-align: middle;
}

/* Loading state for Gutenberg form button */
.wp-block-form .wp-block-button__link.is-loading {
	pointer-events: none;
	opacity: 0.8;
	width: 100%;
	min-height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ==========================================================================
   CF7 Spinner & Response Messages
   ========================================================================== */

/* Hide CF7's native spinner entirely — we show our own inside the button */
.wpcf7 .wpcf7-spinner {
	display: none !important;
}

/* CF7 submit spinner — use ::after on the parent <p> wrapper since <input> can't have pseudo-elements */
.wpcf7-form p:has(.wpcf7-submit) {
	position: relative;
}

.wpcf7-form.submitting .wpcf7-submit {
	color: transparent !important;
	pointer-events: none;
}

.wpcf7-form.submitting p:has(.wpcf7-submit)::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 20px;
	margin: -10px 0 0 -10px;
	border: 2.5px solid rgba(31, 40, 40, 0.25);
	border-top-color: var(--wp--preset--color--fertiliser, #1F2828);
	border-radius: 50%;
	animation: ausqual-spin 0.6s linear infinite;
	pointer-events: none;
}

/* Green background — white spinner */
.has-grass-background-color .wpcf7-form.submitting p:has(.wpcf7-submit)::after {
	border-color: rgba(255, 255, 255, 0.3);
	border-top-color: #fff;
}

/* CF7 response messages — standardized with Gutenberg form notifications */
.wpcf7 .wpcf7-response-output {
	margin: 1rem 0 0;
	padding: 1rem;
	border-radius: 5px;
	font-size: 0.875rem;
	border: none;
}

/* Success */
.wpcf7-form.sent .wpcf7-response-output {
	background: rgba(34, 197, 94, 0.1);
	color: #166534;
	border: 1px solid rgba(34, 197, 94, 0.3);
}

/* Validation error */
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output {
	background: rgba(220, 38, 38, 0.08);
	color: #991b1b;
	border: 1px solid rgba(220, 38, 38, 0.2);
}

/* Send failure / spam */
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output,
.wpcf7-form.spam .wpcf7-response-output {
	background: rgba(220, 38, 38, 0.08);
	color: #991b1b;
	border: 1px solid rgba(220, 38, 38, 0.2);
}

/* On green background — light text variants */
.has-grass-background-color .wpcf7-form.sent .wpcf7-response-output {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.3);
}

.has-grass-background-color .wpcf7-form.invalid .wpcf7-response-output,
.has-grass-background-color .wpcf7-form.unaccepted .wpcf7-response-output,
.has-grass-background-color .wpcf7-form.failed .wpcf7-response-output,
.has-grass-background-color .wpcf7-form.aborted .wpcf7-response-output,
.has-grass-background-color .wpcf7-form.spam .wpcf7-response-output {
	background: rgba(220, 38, 38, 0.15);
	color: #FCA5A5;
	border: 1px solid rgba(220, 38, 38, 0.3);
}


/* Fixed Transparent Header */
.ausqual-header {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: transparent;
	transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* Pages with hero as first section - transparent header */
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header {
	background: transparent;
}

body:has(main > .ausqual-hero-cover:first-child) .ausqual-header .ausqual-nav .wp-block-navigation-item a,
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header .ausqual-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--base) !important;
}

body:has(main > .ausqual-hero-cover:first-child) .ausqual-header .ausqual-search-toggle {
	color: var(--wp--preset--color--base);
}

/* Scrolled header - solid background (on hero pages) */
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.is-scrolled {
	background: var(--wp--preset--color--base, #fff);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.is-scrolled .ausqual-nav .wp-block-navigation-item a,
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.is-scrolled .ausqual-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--fertiliser, #1F2828) !important;
}

body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.is-scrolled .ausqual-search-toggle {
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

/* Pages WITHOUT hero first - solid header */
body:not(:has(main > .ausqual-hero-cover:first-child)) .ausqual-header {
	background: var(--wp--preset--color--base, #fff);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

body:not(:has(main > .ausqual-hero-cover:first-child)) .ausqual-header .ausqual-nav .wp-block-navigation-item a,
body:not(:has(main > .ausqual-hero-cover:first-child)) .ausqual-header .ausqual-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--fertiliser, #1F2828) !important;
}

body:not(:has(main > .ausqual-hero-cover:first-child)) .ausqual-header .ausqual-search-toggle {
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

/* Logo inversion for transparent header on hero pages */
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header:not(.is-scrolled):not(.megamenu-active) .ausqual-logo img {
	filter: brightness(0) invert(1);
	transition: filter 0.3s ease;
}

/* Keep logo normal (dark) when scrolled or megamenu active */
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.is-scrolled .ausqual-logo img,
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.megamenu-active .ausqual-logo img {
	filter: none;
	transition: filter 0.3s ease;
}

/* Fill transparent header when megamenu is open (on hero pages) */
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.megamenu-active {
	background: var(--wp--preset--color--base, #fff);
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
}

/* Reduce shadow to 1px line when megamenu is open (all pages) */
.ausqual-header.megamenu-active {
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1) !important;
}

body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.megamenu-active .ausqual-nav .wp-block-navigation-item a,
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.megamenu-active .ausqual-nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--fertiliser, #1F2828) !important;
}

body:has(main > .ausqual-hero-cover:first-child) .ausqual-header.megamenu-active .ausqual-search-toggle {
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

/* Header spacing for body content */
body {
	padding-top: 0;
}

/* Hero cover - no extra margin needed, padding handles header */
.ausqual-hero-cover {
	margin-top: 0 !important;
}

/* Match hero cover inner padding with global layout padding */
.ausqual-hero-cover > .wp-block-cover__inner-container {
	padding-left: var(--wp--preset--spacing--50, 2rem) !important;
	padding-right: var(--wp--preset--spacing--50, 2rem) !important;
}

/* Pages without hero first need padding for fixed header */
body:not(:has(main > .ausqual-hero-cover:first-child)) main {
	padding-top: 107px;
}

/* Blob hover effect on all WP block buttons */
.wp-block-button:not(.is-style-link-button) .wp-block-button__link {
	--blob-bg: var(--wp--preset--color--grass);
	--blob-text: var(--wp--preset--color--base);
	position: relative;
	overflow: hidden;
	isolation: isolate;
	z-index: 1;
	transition: color 0.45s cubic-bezier(0.19, 1, 0.22, 1);
}

/* Contrast pairings: yellow buttons on green/dark backgrounds get yellow blob */
.wp-block-button:not(.is-style-link-button) .wp-block-button__link.has-grass-background-color,
.wp-block-button:not(.is-style-link-button) .wp-block-button__link.has-fertiliser-background-color,
.has-grass-background-color .wp-block-button:not(.is-style-link-button) .wp-block-button__link,
.has-fertiliser-background-color .wp-block-button:not(.is-style-link-button) .wp-block-button__link {
	--blob-bg: var(--wp--preset--color--fertiliser);
	--blob-text: var(--wp--preset--color--grains);
}

.wp-block-button:not(.is-style-link-button) .wp-block-button__link::before {
	content: "";
	position: absolute;
	bottom: -50%;
	left: 50%;
	width: 300%;
	aspect-ratio: 1;
	background: var(--blob-bg);
	border-radius: 50%;
	filter: blur(20px);
	transform: translateX(-50%) scale(0);
	transform-origin: center bottom;
	transition: transform 0.55s cubic-bezier(0.19, 1, 0.22, 1),
		filter 0.45s cubic-bezier(0.19, 1, 0.22, 1);
	z-index: -1;
}

.wp-block-button:not(.is-style-link-button) .wp-block-button__link:hover::before {
	transform: translateX(-50%) scale(1);
	filter: blur(0);
}

.wp-block-button:not(.is-style-link-button) .wp-block-button__link:hover {
	color: var(--blob-text) !important;
}

/* Button icon styles */
.wp-block-button.has-icon .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
}

.wp-block-button__icon {
	width: 1em;
	height: 1em;
	flex-shrink: 0;
}

/* Ensure icon inherits button text color */
.wp-block-button__icon {
	stroke: currentColor;
}

/* Training For - Overlapping columns */
.training-for-columns.wp-block-columns {
	position: relative;
	flex-wrap: nowrap !important;
}

.training-for-col-left {
	position: relative;
	z-index: 2;
}

.training-for-col-right {
	position: relative;
	z-index: 1;
	margin-left: -10% !important;
}

.training-for-col-right .wp-block-image {
	margin: 0;
}

.training-for-col-right .wp-block-image img {
	height: 480px;
	width: 100%;
	object-fit: cover;
}

/* Responsive: Stack columns on mobile */
@media (max-width: 781px) {
	.training-for-columns.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.training-for-col-left,
	.training-for-col-right {
		flex: 0 0 100% !important;
	}

	.training-for-col-right {
		margin-left: 0 !important;
		margin-top: -40px;
	}

	.training-for-col-right .wp-block-image img {
		height: 280px;
	}
}

/* ==========================================================================
   Hero Category - Overlapping columns
   ========================================================================== */

.hero-category-columns.wp-block-columns {
	position: relative;
	flex-wrap: nowrap !important;
}

.hero-category-col-left {
	position: relative;
	z-index: 2;
	flex: 0 0 55% !important;
}

.hero-category-col-right {
	position: relative;
	z-index: 1;
	flex: 0 0 55% !important;
	margin-left: -10% !important;
}

.hero-category-col-right .wp-block-image {
	margin: 0;
}

.hero-category-col-right .wp-block-image img {
	height: 400px;
	width: 100%;
	object-fit: cover;
}


/* Responsive: Stack columns on mobile */
@media (max-width: 781px) {
	.hero-category-columns.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.hero-category-col-left,
	.hero-category-col-right {
		flex: 0 0 100% !important;
	}

	.hero-category-col-right {
		margin-left: 0 !important;
		margin-top: -40px;
	}

	.hero-category-col-right .wp-block-image img {
		height: 280px;
	}
}

/* ==========================================================================
   Courses Grid Section
   ========================================================================== */

.ausqual-courses-grid-section {
	scroll-margin-top: 120px;
}

/* Filter bar */
.ausqual-courses-filter {
	gap: 20px;
}

/* Courses grid layout */
.ausqual-courses-grid {
	gap: 20px !important;
}

/* List view layout */
.ausqual-courses-grid.is-list-view {
	display: flex !important;
	flex-direction: column !important;
	gap: 16px !important;
}

.ausqual-courses-grid.is-list-view .wp-block-post,
.ausqual-courses-grid.is-list-view > div {
	width: 100%;
}

.ausqual-courses-grid.is-list-view .ausqual-course-card {
	display: flex;
	flex-direction: row;
	max-width: none;
	height: auto;
}

/* Disable hover animations in list view */
.ausqual-courses-grid.is-list-view .ausqual-course-card:hover .ausqual-course-card-content {
	transform: none;
}

.ausqual-courses-grid.is-list-view .ausqual-course-card-image {
	flex: 0 0 280px;
	width: 280px;
}

.ausqual-courses-grid.is-list-view .ausqual-course-card-image img {
	height: 100%;
	object-fit: cover;
}

/* Disable image zoom on hover in list view */
.ausqual-courses-grid.is-list-view .ausqual-course-card:hover .ausqual-course-card-image img {
	transform: none;
}

.ausqual-courses-grid.is-list-view .ausqual-course-card-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 12px;
	padding: 24px 32px;
}

.ausqual-courses-grid.is-list-view .ausqual-course-card-info {
	flex: none;
	width: 100%;
}

.ausqual-courses-grid.is-list-view .ausqual-course-card-footer {
	flex: none;
	width: 100%;
	margin-top: 0;
	padding-top: 12px;
	flex-direction: row;
	align-items: center;
	gap: 24px;
}

.ausqual-courses-grid.is-list-view .ausqual-course-card-separator {
	display: none;
}

/* Always show Learn More in list view (no hover animation) */
.ausqual-courses-grid.is-list-view .ausqual-course-card-learn-more {
	opacity: 1;
	transform: none;
	margin-top: 0;
}

/* Card in grid context - ensure consistent sizing */
.ausqual-courses-grid .ausqual-course-card {
	max-width: none;
	height: 100%;
}

/* Pagination styling */
.ausqual-courses-query .wp-block-query-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: var(--wp--preset--spacing--50);
}

.ausqual-courses-query .wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
}

.ausqual-courses-query .wp-block-query-pagination-numbers a,
.ausqual-courses-query .wp-block-query-pagination-numbers span,
.ausqual-courses-query .wp-block-query-pagination-previous,
.ausqual-courses-query .wp-block-query-pagination-next {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 8px 12px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	text-decoration: none;
	font-weight: 500;
	transition: all 0.2s ease;
}

.ausqual-courses-query .wp-block-query-pagination a:hover {
	border-color: var(--wp--preset--color--grass);
	color: var(--wp--preset--color--grass);
}

.ausqual-courses-query .wp-block-query-pagination .current {
	background: var(--wp--preset--color--grass);
	border-color: var(--wp--preset--color--grass);
	color: #fff;
}

/* Responsive grid */
@media (max-width: 1024px) {
	.ausqual-courses-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 600px) {
	.ausqual-courses-grid {
		grid-template-columns: 1fr !important;
	}

	.ausqual-courses-filter {
		flex-direction: column;
	}

	.ausqual-course-search-form {
		max-width: none;
		width: 100%;
	}

	.ausqual-view-toggle {
		display: none;
	}
}

/* Responsive adjustments */
@media (max-width: 782px) {
	.ausqual-hero {
		min-height: 80vh;
	}

	.ausqual-courses-scroll > * {
		min-width: 280px;
	}
}

/* ==========================================================================
   Course Card Styles - Global (used by both carousel and grid)
   ========================================================================== */

.ausqual-course-card {
	position: relative;
	width: 100%;
	max-width: 420px;
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 4px 30px rgba(0, 62, 51, 0.15);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
	transition: box-shadow 0.3s ease;
}

.ausqual-course-card:hover {
	box-shadow: 0 8px 40px rgba(0, 62, 51, 0.2);
}

/* Content slides up on hover to overlap the image */
.ausqual-course-card-content {
	transition: transform 0.3s ease;
}

.ausqual-course-card:hover .ausqual-course-card-content {
	transform: translateY(-40px);
}

/* Learn More button - hidden by default, fades in on hover */
.ausqual-course-card-learn-more {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.3s ease, transform 0.3s ease;
	margin: 0 0 -45px !important;
}

.ausqual-course-card:hover .ausqual-course-card-learn-more {
	opacity: 1;
	transform: translateY(0);
}

/* Card Image - Using core/post-featured-image */
.ausqual-course-card-image {
	position: relative;
	flex: 0 0 auto;
	overflow: hidden;
	background: var(--wp--preset--color--light-bg, #F4F7F4);
}

.ausqual-course-card-image .wp-block-group {
	margin: 0;
	padding: 0;
}

.ausqual-course-card-image .wp-block-post-featured-image {
	margin: 0;
}

.ausqual-course-card-image .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
	aspect-ratio: 4/3;
}

.ausqual-course-card:hover .ausqual-course-card-image img,
.ausqual-course-card:hover .ausqual-course-card-image .wp-block-post-featured-image img {
	transform: scale(1.08);
}

/* Card Content */
.ausqual-course-card-content {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	padding: 20px;
	background: #fff;
}

.ausqual-course-card-content .wp-block-group {
	margin: 0;
	padding: 0;
}

/* Course Info Section */
.ausqual-course-card-info {
	display: flex;
	flex-direction: column;
	gap: 17px;
}

.ausqual-course-card-info .wp-block-group {
	display: flex;
	flex-direction: column;
	gap: 17px;
}

/* Category Tag - Using core/post-terms */
.ausqual-course-card-category,
.ausqual-course-card .wp-block-post-terms.ausqual-course-card-category {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-self: flex-start;
	font-size: 0;
	margin: 0;
	padding: 0;
	border: none;
}

.ausqual-course-card-category a,
.ausqual-course-card .wp-block-post-terms.ausqual-course-card-category a {
	display: inline-flex;
	align-items: center;
	padding: 5px 10px;
	border: 1px solid var(--wp--preset--color--fertiliser, #1F2828);
	border-radius: 5px;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 18px;
	font-weight: 300;
	line-height: 1;
	color: var(--wp--preset--color--fertiliser, #1F2828);
	text-decoration: none;
	transition: all 0.3s ease;
}

.ausqual-course-card-category a:hover,
.ausqual-course-card .wp-block-post-terms.ausqual-course-card-category a:hover {
	background: var(--wp--preset--color--grass, #235C28);
	color: var(--wp--preset--color--light-bg, #F4F7F4);
}

/* Title - Using core/post-title */
.ausqual-course-card-title,
.ausqual-course-card .wp-block-post-title.ausqual-course-card-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 28px;
	font-weight: 500;
	line-height: 1;
	color: var(--wp--preset--color--fertiliser, #1F2828);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}

/* Footer Section with separator and date */
.ausqual-course-card-footer {
	display: flex;
	flex-direction: column;
	gap: 17px;
	padding-top: 10px;
	margin-top: auto;
}

.ausqual-course-card-footer .wp-block-group {
	display: flex;
	flex-direction: column;
	gap: 17px;
}

/* Separator - Using core/separator */
.ausqual-course-card-separator,
.ausqual-course-card .wp-block-separator.ausqual-course-card-separator {
	width: 100%;
	height: 1px;
	background: var(--wp--preset--color--cream, #F9F6ED);
	border: none;
	margin: 0;
	opacity: 1;
}

/* Date with calendar icon - Using ausqual/course-card-date */
.ausqual-course-card-date {
	display: flex;
	align-items: flex-start;
	gap: 5px;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

.ausqual-course-card-date svg {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
}

/* Optional card copy - the Selected Courses block's "Card text" setting.
   Only rendered when that setting has content. */
.ausqual-course-card-text {
	margin: 0;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 16px;
	font-weight: 300;
	line-height: 1.5;
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

/* Optional card CTA - the Selected Courses block's "Show button" setting.
   Unlike Learn More it stays visible, so it sits in normal flow above the
   hover-revealed link and leaves that animation untouched. */
.ausqual-course-card-cta,
.ausqual-course-card .wp-block-buttons.ausqual-course-card-cta {
	margin: 0;
	gap: 0;
}

.ausqual-course-card-cta .wp-block-button {
	width: 100%;
}

.ausqual-course-card-cta .wp-block-button__link {
	display: block;
	width: 100%;
	padding: 12px 20px;
	font-size: 16px;
	line-height: 1.25;
	text-align: center;
}

/* Course Card Responsive Styles */
@media (max-width: 1024px) {
	.ausqual-course-card-category a,
	.ausqual-course-card .wp-block-post-terms.ausqual-course-card-category a {
		font-size: 18px;
		padding: 8px;
	}

	.ausqual-course-card-title,
	.ausqual-course-card .wp-block-post-title.ausqual-course-card-title {
		font-size: 28px;
	}
}

@media (max-width: 768px) {
	.ausqual-course-card-content {
		padding: 16px;
	}

	.ausqual-course-card-info,
	.ausqual-course-card-info .wp-block-group {
		gap: 12px;
	}

	.ausqual-course-card-category a,
	.ausqual-course-card .wp-block-post-terms.ausqual-course-card-category a {
		font-size: 16px;
		padding: 6px 8px;
	}

	.ausqual-course-card-title,
	.ausqual-course-card .wp-block-post-title.ausqual-course-card-title {
		font-size: 24px;
	}

	.ausqual-course-card-footer,
	.ausqual-course-card-footer .wp-block-group {
		gap: 12px;
	}

	/* List view reverts to vertical cards on tablet */
	.ausqual-courses-grid.is-list-view .ausqual-course-card {
		flex-direction: column;
	}

	.ausqual-courses-grid.is-list-view .ausqual-course-card-image {
		flex: 0 0 auto;
		width: 100%;
	}

	.ausqual-courses-grid.is-list-view .ausqual-course-card-content {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		padding: 16px;
	}

	.ausqual-courses-grid.is-list-view .ausqual-course-card-footer {
		flex-direction: column;
		align-items: flex-start;
	}

	.ausqual-courses-grid.is-list-view .ausqual-course-card-separator {
		display: block;
	}
}

@media (max-width: 480px) {
	.ausqual-course-card-content {
		padding: 14px;
	}

	.ausqual-course-card-category a,
	.ausqual-course-card .wp-block-post-terms.ausqual-course-card-category a {
		font-size: 14px;
		padding: 5px 7px;
	}

	.ausqual-course-card-title,
	.ausqual-course-card .wp-block-post-title.ausqual-course-card-title {
		font-size: 20px;
		-webkit-line-clamp: 2;
	}

	.ausqual-course-card-date {
		font-size: 12px;
	}
}

/* ==========================================================================
   Video Content Section - Side-by-side overlapping columns
   ========================================================================== */

.video-content-columns.wp-block-columns {
	position: relative;
	flex-wrap: nowrap !important;
}

.video-content-col-left {
	position: relative;
	z-index: 2;
	flex: 0 0 55% !important;
	/* Video sits on top of the content card at the overlap zone.
	   Promote to its own compositor layer so the stacking is explicit
	   across Chromium/Safari (HTML5 <video> ignores ancestor z-index otherwise). */
	transform: translateZ(0);
	isolation: isolate;
}

.video-content-col-right {
	position: relative;
	z-index: 1;
	flex: 0 0 55% !important;
	margin-left: -10% !important;
}

/* Green content box */
.ausqual-video-content-box {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* On desktop the right column overlaps under the video by ~10% of the columns
   container, plus breathing room. Push the text content rightward so it starts
   past the video edge instead of being clipped behind it. Also boost vertical
   padding so the green card extends above and below the video for a layered look.
   !important is required because Gutenberg writes per-side padding as an
   inline style on the wp-block-group element. */
.video-content-col-right .ausqual-video-content-box {
	padding-left: clamp(80px, 24%, 220px) !important;
	padding-top: clamp(80px, 8vw, 120px) !important;
	padding-bottom: clamp(80px, 8vw, 120px) !important;
}

.ausqual-video-content-box .wp-block-heading {
	margin: 0 !important;
}

.ausqual-video-content-box p {
	margin: 0;
	line-height: 1.5;
}

/* Responsive: Stack columns on mobile */
@media (max-width: 781px) {
	.video-content-columns.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.video-content-col-left,
	.video-content-col-right {
		flex: 0 0 100% !important;
	}

	.video-content-col-right {
		margin-left: 0 !important;
		margin-top: -40px;
	}

	/* Columns stack on mobile, no overlap — reset the desktop indent. */
	.video-content-col-right .ausqual-video-content-box {
		padding-left: var(--wp--preset--spacing--60) !important;
		padding-top: var(--wp--preset--spacing--60) !important;
		padding-bottom: var(--wp--preset--spacing--60) !important;
	}

	.ausqual-video-content-box .wp-block-heading {
		font-size: 32px !important;
	}
}

@media (max-width: 480px) {
	.ausqual-video-content-box .wp-block-heading {
		font-size: 28px !important;
	}
}

/* Hide "View full training calendar" link on the calendar page itself
   (the link only makes sense on course pages where it points elsewhere). */
.page-course-calendar .ausqual-full-calendar-link {
	display: none;
}

/* ==========================================================================
   Swiper Sections - Overflow Control
   ========================================================================== */

/* Prevent horizontal scrolling on sections containing swipers */
.wp-block-group.alignfull:has(.swiper),
.wp-block-group.alignfull:has(.ausqual-carousel-template) {
	overflow-x: clip;
}

/* ==========================================================================
   Global Swiper Navigation Styles
   ========================================================================== */

.ausqual-swiper-navigation {
	display: flex;
	gap: 12px;
	margin-top: 32px;
}

.ausqual-swiper-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 2px solid var(--wp--preset--color--fertiliser, #1F2828);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--fertiliser, #1F2828);
	cursor: pointer;
	transition: all 0.2s ease;
}

.ausqual-swiper-nav:hover {
	background: var(--wp--preset--color--fertiliser, #1F2828);
	color: #fff;
}

.ausqual-swiper-nav:disabled,
.ausqual-swiper-nav.swiper-button-disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.ausqual-swiper-nav:disabled:hover,
.ausqual-swiper-nav.swiper-button-disabled:hover {
	background: transparent;
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

.ausqual-swiper-nav svg {
	width: 24px;
	height: 24px;
}

@media (max-width: 768px) {
	.ausqual-swiper-navigation {
		margin-top: 24px;
	}

	.ausqual-swiper-nav {
		width: 44px;
		height: 44px;
	}
}

/* ==========================================================================
   Reviews Carousel Section
   ========================================================================== */

.ausqual-reviews-carousel {
	position: relative;
}

.ausqual-reviews-swiper {
	overflow: visible;
}

.ausqual-reviews-swiper .swiper-wrapper {
	display: flex;
}

.ausqual-reviews-swiper .swiper-slide {
	width: 383px;
	flex-shrink: 0;
}

/* Review card */
.ausqual-review-card {
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	padding: 30px;
	height: 100%;
	display: flex;
	flex-direction: column;
}

/* Quote icon */
.ausqual-review-quote-icon {
	width: 54px;
	height: 54px;
	background: var(--wp--preset--color--grass, #235C28);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
	flex-shrink: 0;
}

.ausqual-review-quote-icon svg {
	width: 18px;
	height: 18px;
}

/* Star rating */
.ausqual-review-stars {
	margin-bottom: 16px;
	flex-shrink: 0;
}

.ausqual-review-stars svg {
	display: block;
}

/* Review text */
.ausqual-review-text {
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 16px;
	color: var(--wp--preset--color--fertiliser, #1F2828);
	margin: 0 0 20px 0;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex: 1;
}

/* Author name */
.ausqual-review-author {
	font-family: var(--wp--preset--font-family--manrope, 'Manrope', sans-serif);
	font-weight: 600;
	font-size: 14px;
	color: #453232;
	margin: 0;
	flex-shrink: 0;
}

/* Navigation buttons */
.ausqual-reviews-navigation {
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-top: 40px;
}

.ausqual-reviews-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border, #E5E5E5);
	color: var(--wp--preset--color--fertiliser, #1F2828);
	cursor: pointer;
	transition: all 0.2s ease;
}

.ausqual-reviews-nav:hover {
	background: var(--wp--preset--color--grass, #235C28);
	border-color: var(--wp--preset--color--grass, #235C28);
	color: #fff;
}

.ausqual-reviews-nav:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.ausqual-reviews-nav:disabled:hover {
	background: #fff;
	border-color: var(--wp--preset--color--border, #E5E5E5);
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

.ausqual-reviews-nav svg {
	width: 24px;
	height: 24px;
}

/* Responsive */
@media (max-width: 1024px) {
	.ausqual-reviews-swiper .swiper-slide {
		width: 320px;
	}
}

@media (max-width: 600px) {
	.ausqual-reviews-swiper .swiper-slide {
		width: 280px;
	}

	.ausqual-review-card {
		padding: 24px;
	}

	.ausqual-review-quote-icon {
		width: 44px;
		height: 44px;
	}

	.ausqual-reviews-navigation {
		margin-top: 30px;
	}

	.ausqual-reviews-nav {
		width: 44px;
		height: 44px;
	}
}

/* ==========================================================================
   Course Tabs (Details/Summary as Accordion Tabs)
   ========================================================================== */

.ausqual-course-tabs {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ausqual-course-tabs .wp-block-details {
	border: 1px solid var(--wp--preset--color--grains, #e5e5e5);
	border-bottom: none;
	margin: 0;
}

.ausqual-course-tabs .wp-block-details:first-child {
	border-radius: 8px 8px 0 0;
}

.ausqual-course-tabs .wp-block-details:last-child {
	border-bottom: 1px solid var(--wp--preset--color--grains, #e5e5e5);
	border-radius: 0 0 8px 8px;
}

.ausqual-course-tabs .wp-block-details summary {
	padding: 1.25rem 1.5rem;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--medium, 1rem);
	color: var(--wp--preset--color--contrast, #1a1a1a);
	background: var(--wp--preset--color--grains, #f9f9f9);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: background-color 0.2s ease;
}

.ausqual-course-tabs .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.ausqual-course-tabs .wp-block-details summary::after {
	content: '';
	width: 10px;
	height: 10px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.ausqual-course-tabs .wp-block-details[open] summary::after {
	transform: rotate(-135deg);
}

.ausqual-course-tabs .wp-block-details summary:hover {
	background: var(--wp--preset--color--grains, #f0f0f0);
}

.ausqual-course-tabs .wp-block-details[open] summary {
	background: var(--wp--preset--color--fertiliser, #0d6360);
	color: var(--wp--preset--color--base, #ffffff);
}

.ausqual-course-tabs .wp-block-details > *:not(summary) {
	padding: 1.5rem;
	background: var(--wp--preset--color--base, #ffffff);
}

/* Course meta content blocks */
.ausqual-course-overview__content,
.ausqual-course-contents__content,
.ausqual-course-requirements__content {
	font-size: var(--wp--preset--font-size--medium, 1rem);
	line-height: 1.7;
	color: var(--wp--preset--color--contrast-2, #4a4a4a);
}

.ausqual-course-overview__content p,
.ausqual-course-contents__content p,
.ausqual-course-requirements__content p {
	margin: 0 0 1em;
}

.ausqual-course-overview__content p:last-child,
.ausqual-course-contents__content p:last-child,
.ausqual-course-requirements__content p:last-child {
	margin-bottom: 0;
}

.ausqual-course-overview__content ul,
.ausqual-course-contents__content ul,
.ausqual-course-requirements__content ul,
.ausqual-course-overview__content ol,
.ausqual-course-contents__content ol,
.ausqual-course-requirements__content ol {
	margin: 0 0 1em;
	padding-left: 1.5em;
}

.ausqual-course-overview__content li,
.ausqual-course-contents__content li,
.ausqual-course-requirements__content li {
	margin-bottom: 0.5em;
}

.ausqual-course-overview__placeholder,
.ausqual-course-contents__placeholder,
.ausqual-course-requirements__placeholder {
	padding: 2rem;
	background: var(--wp--preset--color--grains, #f5f5f5);
	border: 2px dashed var(--wp--preset--color--contrast-3, #cccccc);
	border-radius: 8px;
	text-align: center;
	color: var(--wp--preset--color--contrast-2, #666666);
	font-style: italic;
	margin: 0;
}

/* Course Hero specific adjustments */
.ausqual-course-hero::before,
.ausqual-course-hero::after {
	content: '';
    position: absolute;
    inset: 0;
    mask: radial-gradient(circle at left, black 30%, transparent 80%);
    backdrop-filter: blur(20px);
}
.ausqual-course-hero .wp-block-post-excerpt {
	margin-bottom: var(--wp--preset--spacing--40, 1.5rem);
}

/* Page Hero - same blur effect as course hero */
.ausqual-page-hero::before,
.ausqual-page-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	mask: radial-gradient(circle at left, black 30%, transparent 80%);
	backdrop-filter: blur(20px);
	z-index: 0;
}
.ausqual-page-hero > .wp-block-cover__inner-container {
	z-index: 1;
}
.ausqual-page-hero .wp-block-post-excerpt {
	margin-bottom: var(--wp--preset--spacing--40, 1.5rem);
}

/* Mobile responsiveness for tabs */
@media (max-width: 782px) {
	.ausqual-course-tabs .wp-block-details summary {
		padding: 1rem 1.25rem;
	}

	.ausqual-course-tabs .wp-block-details > *:not(summary) {
		padding: 1rem 1.25rem;
	}
}

/* ==========================================================================
   Course Sidebar (Sticky Snapshot Card)
   ========================================================================== */

.ausqual-course-sidebar-column.wp-block-column {
	margin-top: -180px;
}

.ausqual-course-sidebar {
	position: sticky;
	z-index: 10;
	top: 120px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* Mobile - sidebar moves above tabs, collapsible, with overlay offset */
@media (max-width: 782px) {
	.ausqual-course-sidebar-column {
		order: -1;
		margin-top: -40px;
		position: relative;
		z-index: 11;
	}

	.ausqual-course-sidebar {
		position: static;
	}

	/* Collapsible toggle heading */
	.ausqual-course-sidebar > .wp-block-heading {
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 0 !important;
		user-select: none;
		-webkit-user-select: none;
	}

	.ausqual-course-sidebar > .wp-block-heading::after {
		content: '';
		display: inline-block;
		width: 10px;
		height: 10px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg);
		transition: transform 0.3s ease;
		flex-shrink: 0;
		margin-left: 12px;
	}

	.ausqual-course-sidebar.is-collapsed > .wp-block-heading::after {
		transform: rotate(-45deg);
	}

	/* Collapsible content wrapper */
	.ausqual-course-sidebar__collapsible {
		overflow: hidden;
		transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease;
		max-height: 1000px;
		opacity: 1;
		padding-top: 20px;
	}

	.ausqual-course-sidebar.is-collapsed .ausqual-course-sidebar__collapsible {
		max-height: 0;
		opacity: 0;
		padding-top: 0;
	}

	/* Sticky CTA bar */
	.ausqual-sticky-cta {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 999;
		background: var(--wp--preset--color--base, #fff);
		box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
		padding: 12px 20px;
		padding-bottom: max(12px, env(safe-area-inset-bottom));
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		transform: translateY(100%);
		transition: transform 0.3s ease;
	}

	.ausqual-sticky-cta.is-visible {
		transform: translateY(0);
	}

	.ausqual-sticky-cta__price {
		display: flex;
		flex-direction: column;
		gap: 1px;
		flex-shrink: 0;
	}

	.ausqual-sticky-cta__price-label {
		font-size: 10px;
		font-weight: 500;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--wp--preset--color--muted, #666);
	}

	.ausqual-sticky-cta__price-value {
		font-size: 20px;
		font-weight: 700;
		color: var(--wp--preset--color--fertiliser, #0d6360);
		line-height: 1;
	}

	.ausqual-sticky-cta__btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 12px 24px;
		background: var(--wp--preset--color--grains, #ffd861);
		color: #1f2828;
		font-size: 14px;
		font-weight: 500;
		text-decoration: none;
		text-transform: uppercase;
		border: none;
		border-radius: 8px;
		cursor: pointer;
		white-space: nowrap;
		flex-shrink: 0;
	}

	.ausqual-sticky-cta__btn:hover {
		background: #f0c84d;
		color: #1f2828;
	}

	.ausqual-sticky-cta__btn--full {
		width: 100%;
		text-align: center;
	}
}

/* ==========================================================================
   Single Blog Post Template
   ========================================================================== */

/* Post Hero Cover */
.ausqual-post-hero {
	position: relative;
}

.ausqual-post-hero .wp-block-cover__background {
	background: linear-gradient(
		180deg,
		rgba(31, 40, 40, 0.15) 0%,
		rgba(31, 40, 40, 0.75) 100%
	) !important;
}

.ausqual-post-hero .wp-block-cover__inner-container {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Category badge on hero - matches course card style */
.ausqual-post-hero-category a {
	display: inline-flex;
	align-items: center;
	background: transparent;
	color: #fff !important;
	padding: 5px 10px;
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: 5px;
	text-decoration: none;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 18px;
	font-weight: 300;
	line-height: 1;
	transition: all 0.3s ease;
}

.ausqual-post-hero-category a:hover {
	background: rgba(255, 255, 255, 0.15);
	border-color: #fff;
}

/* Post body - refined reading typography */
.ausqual-post-body .wp-block-post-content p {
	font-size: 1.125rem;
	line-height: 1.8;
	color: var(--wp--preset--color--fertiliser, #1F2828);
	margin-bottom: 1.5rem;
}

.ausqual-post-body .wp-block-post-content p:last-child {
	margin-bottom: 0;
}

/* Lists in article body need the same rhythm as paragraphs so HTML
   imported as raw <ul>/<ol> doesn't run together. */
.ausqual-post-body .wp-block-post-content ul,
.ausqual-post-body .wp-block-post-content ol {
	margin-bottom: 1.5rem;
	line-height: 1.8;
}

.ausqual-post-body .wp-block-post-content li + li {
	margin-top: 0.5rem;
}

.ausqual-post-body .wp-block-post-content > *:first-child {
	margin-top: 0;
}

/* Drop cap for first paragraph */
.ausqual-post-body .wp-block-post-content > p:first-of-type::first-letter {
	float: left;
	font-family: var(--wp--preset--font-family--mackinac, Georgia, serif);
	font-size: 3.75em;
	line-height: 0.8;
	font-weight: 700;
	margin-right: 0.08em;
	margin-top: 0.07em;
	color: var(--wp--preset--color--grass, #235C28);
}

/* Blockquote styling within posts */
.ausqual-post-body .wp-block-post-content blockquote,
.ausqual-post-body .wp-block-post-content .wp-block-quote {
	border-left: 4px solid var(--wp--preset--color--grass, #235C28);
	padding: 1.5rem 2rem;
	margin: 2.5rem 0;
	background: var(--wp--preset--color--light-bg, #F4F7F4);
	border-radius: 0 8px 8px 0;
}

.ausqual-post-body .wp-block-post-content blockquote p,
.ausqual-post-body .wp-block-post-content .wp-block-quote p {
	font-family: var(--wp--preset--font-family--mackinac, Georgia, serif);
	font-size: 1.25rem !important;
	font-style: italic;
	line-height: 1.6 !important;
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

.ausqual-post-body .wp-block-post-content blockquote cite,
.ausqual-post-body .wp-block-post-content .wp-block-quote cite {
	font-style: normal;
	font-weight: 500;
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted, #686868);
	display: block;
	margin-top: 0.75rem;
}

/* Headings within post content */
.ausqual-post-body .wp-block-post-content h2 {
	margin-top: 3rem;
	margin-bottom: 1rem;
}

.ausqual-post-body .wp-block-post-content h3 {
	margin-top: 2.5rem;
	margin-bottom: 0.75rem;
}

/* Images within post content */
.ausqual-post-body .wp-block-post-content .wp-block-image {
	margin-top: 2.5rem;
	margin-bottom: 2.5rem;
}

.ausqual-post-body .wp-block-post-content .wp-block-image img {
	border-radius: 12px;
}

.ausqual-post-body .wp-block-post-content .wp-block-image figcaption {
	text-align: center;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted, #686868);
	margin-top: 0.75rem;
}

/* Tag pills */
.ausqual-post-tags a {
	display: inline-block;
	padding: 6px 16px;
	border: 1px solid var(--wp--preset--color--border, rgba(31, 40, 40, 0.1));
	border-radius: 100px;
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--wp--preset--color--fertiliser, #1F2828);
	text-decoration: none;
	transition: all 0.2s ease;
}

.ausqual-post-tags a:hover {
	background: var(--wp--preset--color--grass, #235C28);
	border-color: var(--wp--preset--color--grass, #235C28);
	color: #fff;
}

/* Blog grid - featured first post */
.ausqual-blog-grid > li:first-child {
	grid-column: span 2;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card {
	display: grid;
	grid-template-columns: 55% 1fr;
	max-width: none;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card-image {
	min-height: 0;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card-image,
.ausqual-blog-grid > li:first-child .ausqual-course-card-image .wp-block-group,
.ausqual-blog-grid > li:first-child .ausqual-course-card-image .wp-block-post-featured-image {
	height: 100%;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 32px !important;
}

/* Disable all hover animations on featured post */
.ausqual-blog-grid > li:first-child .ausqual-course-card:hover {
	box-shadow: 0 8px 40px rgba(0, 62, 51, 0.2);
}

.ausqual-blog-grid > li:first-child .ausqual-course-card:hover .ausqual-course-card-content {
	transform: none;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card:hover .ausqual-course-card-image img,
.ausqual-blog-grid > li:first-child .ausqual-course-card:hover .ausqual-course-card-image .wp-block-post-featured-image img {
	transform: none;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card-info {
	flex: 1;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card-title {
	font-size: var(--wp--preset--font-size--x-large);
}

/* Hide excerpt and Read More on regular cards */
.ausqual-blog-grid .ausqual-course-card-excerpt {
	display: none;
}

/* Show excerpt and Learn More on featured post */
.ausqual-blog-grid > li:first-child .ausqual-course-card-excerpt {
	display: block;
	margin: 0;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card-excerpt .wp-block-post-excerpt__excerpt {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	line-height: 1.6;
}

.ausqual-blog-grid > li:first-child .ausqual-course-card-learn-more {
	opacity: 1;
	transform: none;
	margin: 0 !important;
}

@media (max-width: 781px) {
	.ausqual-blog-grid > li:first-child {
		grid-column: span 1;
	}

	.ausqual-blog-grid > li:first-child .ausqual-course-card {
		flex-direction: column;
		max-width: 420px;
	}

	.ausqual-blog-grid > li:first-child .ausqual-course-card-title {
		font-size: inherit;
	}
}

/* Responsive adjustments for blog post */
@media (max-width: 782px) {
	.ausqual-post-hero {
		min-height: 400px !important;
	}


}

@media (max-width: 600px) {
	.ausqual-post-hero {
		min-height: 360px !important;
	}

	.ausqual-post-body .wp-block-post-content > p:first-of-type::first-letter {
		font-size: 3em;
	}
}

/* ==========================================================================
   Skeleton Loader Cards (AJAX filtering/search)
   ========================================================================== */

@keyframes ausqual-skeleton-pulse {
	0% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

.ausqual-skeleton-card {
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 4px 30px rgba(0, 62, 51, 0.15);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.ausqual-skeleton-card__image {
	aspect-ratio: 4/3;
	background: linear-gradient(90deg, #e8ece8 25%, #f4f7f4 50%, #e8ece8 75%);
	background-size: 200% 100%;
	animation: ausqual-skeleton-pulse 1.5s ease-in-out infinite;
}

.ausqual-skeleton-card__content {
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 17px;
}

.ausqual-skeleton-card__category {
	height: 28px;
	width: 40%;
	border-radius: 5px;
	background: linear-gradient(90deg, #e8ece8 25%, #f4f7f4 50%, #e8ece8 75%);
	background-size: 200% 100%;
	animation: ausqual-skeleton-pulse 1.5s ease-in-out infinite;
}

.ausqual-skeleton-card__title {
	height: 22px;
	width: 80%;
	border-radius: 4px;
	background: linear-gradient(90deg, #e8ece8 25%, #f4f7f4 50%, #e8ece8 75%);
	background-size: 200% 100%;
	animation: ausqual-skeleton-pulse 1.5s ease-in-out infinite;
}

.ausqual-skeleton-card__title--short {
	width: 55%;
}

.ausqual-skeleton-card__footer {
	height: 40px;
	margin-top: auto;
	border-radius: 4px;
	background: linear-gradient(90deg, #e8ece8 25%, #f4f7f4 50%, #e8ece8 75%);
	background-size: 200% 100%;
	animation: ausqual-skeleton-pulse 1.5s ease-in-out infinite;
}

/* Grid fade transitions (AJAX content swap) */
.ausqual-courses-grid {
	transition: opacity 0.2s ease;
}

.ausqual-courses-grid.is-fading-out {
	opacity: 0;
}

.ausqual-courses-grid.is-fading-in {
	opacity: 1;
}

/* No results and error messages */
.ausqual-courses-no-results,
.ausqual-courses-error {
	grid-column: 1 / -1;
	text-align: center;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	font-size: 1rem;
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

.ausqual-courses-no-results a {
	color: var(--wp--preset--color--grass, #235C28);
}

/* ==========================================================================
   Footer Styles
   ========================================================================== */

/* Footer column heading spacing */
.ausqual-footer .wp-block-column > .wp-block-heading {
	margin-bottom: var(--wp--preset--spacing--40);
}

/* Footer social icons - outline circles */
.ausqual-social-outline.wp-block-social-links .wp-block-social-link {
	border: 1px solid rgba(231, 239, 230, 0.6);
	border-radius: 50%;
	padding: 4px;
}

/* ==========================================================================
   Mobile Menu - Sheet Navigation
   ========================================================================== */

/* Hamburger button - only visible on mobile */
.ausqual-mobile-hamburger {
	display: none;
}

@media (max-width: 782px) {
	/* Show hamburger, hide desktop nav & desktop-only buttons */
	.ausqual-mobile-hamburger {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		padding: 10px;
		background: none;
		border: none;
		cursor: pointer;
		z-index: 1001;
		flex-shrink: 0;
	}

	.ausqual-mobile-hamburger span {
		display: block;
		width: 22px;
		height: 2px;
		background: var(--wp--preset--color--fertiliser, #1F2828);
		border-radius: 2px;
		transition: transform 0.3s ease, opacity 0.3s ease;
	}

	/* White hamburger on transparent hero pages */
	body:has(main > .ausqual-hero-cover:first-child) .ausqual-header:not(.is-scrolled) .ausqual-mobile-hamburger span {
		background: var(--wp--preset--color--base, #fff);
	}

	.ausqual-mobile-hamburger.is-active span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.ausqual-mobile-hamburger.is-active span:nth-child(2) {
		opacity: 0;
	}

	.ausqual-mobile-hamburger.is-active span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	/* Hide desktop navigation on mobile, keep search + CTA */
	.ausqual-header .ausqual-nav {
		display: none !important;
	}

	/* Keep the logo + actions group visible */
	.ausqual-header .wp-block-group.alignwide {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
	}

	/* Right-side group: search + CTA + hamburger in a row */
	.ausqual-header .wp-block-group.alignwide > .wp-block-group:last-child {
		display: flex !important;
		align-items: center;
		gap: 10px;
	}

	/* The inner group wrapping search + CTA + hamburger */
	.ausqual-header .wp-block-group:has(.wp-block-buttons) {
		display: flex !important;
		align-items: center;
		gap: 10px;
	}

	/* CTA button on mobile - push to end, stretch full height */
	.ausqual-header .wp-block-buttons {
		order: 10;
		align-items: stretch;
	}

	.ausqual-header .wp-block-buttons .wp-block-button {
		display: flex;
	}

	.ausqual-header .wp-block-buttons .wp-block-button__link {
		padding: 10px 16px !important;
		font-size: 0.8125rem !important;
		white-space: nowrap;
	}

	/* Hide Student Login on mobile, keep Enrol Now */
	.ausqual-header .ausqual-student-login-btn {
		display: none !important;
	}

	/* Hide CTA when too narrow, keep search + hamburger */
	@media (max-width: 450px) {
		.ausqual-header .wp-block-buttons {
			display: none !important;
		}
	}

	/* Header padding on mobile */
	.ausqual-header {
		padding-top: var(--wp--preset--spacing--20, 12px) !important;
		padding-bottom: var(--wp--preset--spacing--20, 12px) !important;
	}

	/* Smaller logo on mobile */
	.ausqual-logo img {
		width: 140px !important;
		height: auto;
	}

	/* Reduce header offset for non-hero pages */
	body:not(:has(main > .ausqual-hero-cover:first-child)) main {
		padding-top: 72px;
	}
}

/* Fix #5: body overflow lock via class instead of inline style */
body.ausqual-mobile-menu-open {
	overflow: hidden;
}

/* Header CTA - stretch to full row height on all viewports */
.ausqual-header .wp-block-buttons {
	align-items: stretch;
}

.ausqual-header .wp-block-buttons .wp-block-button {
	display: flex;
}

/* Outline buttons - match border to blob hover background */
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button[class*="is-style-outline"] > .wp-block-button__link:hover {
	border-color: var(--blob-bg) !important;
}

/* Student Login button - white on transparent navbar */
body:has(main > .ausqual-hero-cover:first-child) .ausqual-header:not(.is-scrolled):not(.megamenu-active) .ausqual-student-login-btn .wp-block-button__link:not(:hover) {
	color: var(--wp--preset--color--base, #fff) !important;
	border-color: var(--wp--preset--color--base, #fff) !important;
}


/* Overlay */
.ausqual-mobile-overlay {
	position: fixed;
	inset: 0;
	background: rgba(31, 40, 40, 0.55);
	z-index: 1100;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.ausqual-mobile-overlay.is-active {
	opacity: 1;
	visibility: visible;
}

/* Sheet */
.ausqual-mobile-sheet {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(380px, 85vw);
	background: #fff;
	z-index: 1200;
	transform: translateX(100%);
	transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
	will-change: transform;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	color: var(--wp--preset--color--fertiliser, #1F2828);
}

.ausqual-mobile-sheet.is-active {
	transform: translateX(0);
}

/* Sheet header */
.ausqual-mobile-sheet__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid rgba(31, 40, 40, 0.08);
	flex-shrink: 0;
}

/* Logo in sheet header */
.ausqual-mobile-sheet__logo {
	display: block;
	text-decoration: none;
}

.ausqual-mobile-sheet__logo img {
	width: 120px !important;
	height: auto;
}

.ausqual-mobile-sheet__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	cursor: pointer;
	color: inherit;
	border-radius: 50%;
	transition: background 0.2s ease;
	touch-action: manipulation;
}

.ausqual-mobile-sheet__close:hover {
	background: rgba(31, 40, 40, 0.06);
}

/* Sheet body */
.ausqual-mobile-sheet__body {
	flex: 1;
	overflow-y: auto;
	padding: 8px 0;
	-webkit-overflow-scrolling: touch;
}

/* Nav list */
.ausqual-mobile-nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ausqual-mobile-nav__item {
	margin: 0;
}

.ausqual-mobile-nav__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 16px 24px;
	font-family: inherit;
	font-size: 18px;
	font-weight: 500;
	color: inherit;
	text-decoration: none;
	background: none;
	border: none;
	cursor: pointer;
	transition: background 0.15s ease;
	text-align: left;
	touch-action: manipulation;
}

.ausqual-mobile-nav__link:hover,
.ausqual-mobile-nav__link:active {
	background: rgba(35, 92, 40, 0.04);
}

.ausqual-mobile-nav__link--parent svg {
	color: var(--wp--preset--color--muted, #686868);
	flex-shrink: 0;
}

/* CTA - matches desktop Enrol Now button */
.ausqual-mobile-sheet__cta {
	padding: 20px 24px 24px;
}

.ausqual-mobile-cta {
	display: block;
	text-align: center;
	padding: 14px 24px;
	background: var(--wp--preset--color--grains, #FFD861);
	color: var(--wp--preset--color--fertiliser, #1F2828);
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 6px;
	transition: background 0.2s ease;
	touch-action: manipulation;
}

.ausqual-mobile-cta:hover {
	background: var(--wp--preset--color--grains, #e5c157);
	filter: brightness(0.92);
}

.ausqual-mobile-cta--outline {
	background: transparent;
	border: 2px solid var(--wp--preset--color--grass, #235C28);
	color: var(--wp--preset--color--grass, #235C28);
}

.ausqual-mobile-cta--outline:hover {
	background: var(--wp--preset--color--grass, #235C28);
	color: #fff;
}

/* Nested sheet (overlay for megamenu content) */
.ausqual-mobile-nested-sheet {
	position: absolute;
	inset: 0;
	background: #fff;
	z-index: 10;
	transform: translateX(100%);
	transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
	will-change: transform;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.ausqual-mobile-nested-sheet.is-active {
	transform: translateX(0);
}

/* Nested sheet header */
.ausqual-mobile-nested-sheet__header {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 16px 20px;
	border-bottom: 1px solid rgba(31, 40, 40, 0.08);
	flex-shrink: 0;
}

.ausqual-mobile-nested-sheet__back {
	display: flex;
	align-items: center;
	gap: 4px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px 12px 8px 8px;
	margin: -8px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 500;
	color: var(--wp--preset--color--grass, #235C28);
	border-radius: 6px;
	transition: background 0.15s ease;
	touch-action: manipulation;
}

.ausqual-mobile-nested-sheet__back:hover {
	background: rgba(35, 92, 40, 0.06);
}

.ausqual-mobile-nested-sheet__title {
	font-family: var(--wp--preset--font-family--mackinac, Georgia, serif);
	font-size: 18px;
	font-weight: 700;
	margin-left: auto;
}

/* Nested sheet body */
.ausqual-mobile-nested-sheet__body {
	flex: 1;
	overflow-y: auto;
	padding: 16px 0;
	-webkit-overflow-scrolling: touch;
}

/* Submenu sections */
.ausqual-mobile-submenu-section {
	padding: 12px 24px 20px;
	border-bottom: 1px solid rgba(31, 40, 40, 0.06);
}

.ausqual-mobile-submenu-section:last-child {
	border-bottom: none;
}

.ausqual-mobile-submenu-heading {
	font-family: var(--wp--preset--font-family--mackinac, Georgia, serif);
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 12px;
}

.ausqual-mobile-submenu-heading a {
	color: inherit;
	text-decoration: none;
}

.ausqual-mobile-submenu-links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ausqual-mobile-submenu-links li {
	margin: 0;
}

.ausqual-mobile-submenu-links a {
	display: block;
	padding: 10px 0;
	font-size: 15px;
	font-weight: 400;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(31, 40, 40, 0.04);
	transition: color 0.15s ease;
}

.ausqual-mobile-submenu-links li:last-child a {
	border-bottom: none;
}

.ausqual-mobile-submenu-links a:hover {
	color: var(--wp--preset--color--grass, #235C28);
}

/* View all link */
.ausqual-mobile-submenu-viewall {
	display: inline-flex;
	align-items: center;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--grass, #235C28);
	text-decoration: none;
}

.ausqual-mobile-submenu-viewall:hover {
	text-decoration: underline;
}

/* Thumbnail card list in mobile submenu */
.ausqual-mobile-submenu-cards {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 16px 24px 20px;
	border-bottom: 1px solid rgba(31, 40, 40, 0.06);
}

/* Cover card - row layout with thumb + title */
.ausqual-mobile-submenu-card {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 14px;
	overflow: hidden;
	border-radius: 8px;
	text-decoration: none;
	background: var(--wp--preset--color--light-bg, #F4F7F4);
	transition: background 0.15s ease;
}

.ausqual-mobile-submenu-card:hover {
	background: rgba(35, 92, 40, 0.08);
}

.ausqual-mobile-submenu-card__thumb {
	width: 64px;
	height: 64px;
	flex-shrink: 0;
	background-size: cover;
	background-position: center;
	background-color: var(--wp--preset--color--cream, #F9F6ED);
	border-radius: 8px 0 0 8px;
}

.ausqual-mobile-submenu-card__label {
	display: block;
	padding: 12px 14px 12px 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.3;
}

/* Featured section in nested sheet */
.ausqual-mobile-submenu-featured {
	padding-top: 16px;
}

/* ==========================================================================
   Mobile Header Responsive
   ========================================================================== */

@media (max-width: 782px) {
	/* Hero section mobile */
	.ausqual-hero-cover {
		min-height: 75vh !important;
	}

	.ausqual-hero-cover .wp-block-cover__inner-container {
		padding-top: 80px !important;
	}

	/* Hero text sizing on mobile */
	.ausqual-hero-cover h1 {
		font-size: clamp(2rem, 8vw, 3rem) !important;
	}

	.ausqual-hero-cover p {
		font-size: clamp(0.875rem, 3.5vw, 1.125rem) !important;
	}

	/* Category cards on mobile */
	.wp-block-cover.is-style-category-card,
	.wp-block-cover.ausqual-category-card {
		min-height: 220px !important;
	}

	/* Columns - ensure they stack properly */
	.wp-block-columns:not(.is-not-stacked-on-mobile) {
		gap: var(--wp--preset--spacing--40, 1.5rem) !important;
	}
}

/* ==========================================================================
   Mobile Footer Responsive
   ========================================================================== */

@media (max-width: 782px) {
	.ausqual-footer {
		padding-top: var(--wp--preset--spacing--60, 3rem) !important;
		padding-bottom: var(--wp--preset--spacing--50, 2rem) !important;
	}

	/* Stack footer columns */
	.ausqual-footer .wp-block-columns {
		gap: var(--wp--preset--spacing--40, 1.5rem) !important;
	}

	.ausqual-footer .wp-block-column {
		margin-bottom: 0;
	}

	/* Footer heading spacing on mobile */
	.ausqual-footer .wp-block-column > .wp-block-heading {
		margin-bottom: var(--wp--preset--spacing--20, 0.5rem);
	}

	/* Footer bottom row - stack vertically */
	.ausqual-footer .wp-block-group.alignwide[class*="flex"] {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: var(--wp--preset--spacing--30, 1rem);
	}

	/* Center footer logo */
	.ausqual-footer .wp-block-image {
		margin: 0 auto;
	}

	/* Center social links */
	.ausqual-footer .ausqual-social-outline {
		justify-content: center;
	}

	/* Copyright and policy links centered */
	.ausqual-footer .wp-block-group.alignwide:last-child {
		flex-direction: column;
		align-items: center;
		gap: var(--wp--preset--spacing--20, 0.5rem);
	}

	.ausqual-footer .wp-block-group.alignwide:last-child .wp-block-group {
		gap: var(--wp--preset--spacing--30, 1rem);
	}
}

/* ==========================================================================
   General Mobile Responsive Improvements
   ========================================================================== */

@media (max-width: 782px) {
	/* Better spacing on constrained containers */
	.wp-block-group.has-global-padding > .alignwide {
		padding-left: var(--wp--preset--spacing--40, 1.5rem);
		padding-right: var(--wp--preset--spacing--40, 1.5rem);
	}

	/* Logo marquee - smaller on mobile */
	.ausqual-logo-marquee img {
		max-height: 40px !important;
	}

	/* Course tabs - better touch targets */
	.ausqual-course-tabs .wp-block-details summary {
		min-height: 48px;
	}

	/* Course sidebar on mobile - overlay offset */
	.ausqual-course-sidebar-column.wp-block-column {
		margin-top: -40px !important;
	}

	/* Page hero - reduce height */
	.ausqual-page-hero {
		min-height: 300px !important;
	}

	.ausqual-course-hero {
		min-height: 350px !important;
	}

	/* Video content columns - better mobile spacing */
	.video-content-col-right {
		margin-top: -20px;
	}

	/* Disable hover animations on touch devices */
	.ausqual-course-card:hover .ausqual-course-card-content {
		transform: none;
	}

	.ausqual-course-card:hover .ausqual-course-card-image img,
	.ausqual-course-card:hover .ausqual-course-card-image .wp-block-post-featured-image img {
		transform: none;
	}

	/* Show Learn More by default on mobile */
	.ausqual-course-card-learn-more {
		opacity: 1;
		transform: none;
		margin: 8px 0 0 !important;
	}

	/* Blob hover effect disabled on mobile */
	.wp-block-button:not(.is-style-link-button) .wp-block-button__link:hover {
		transform: none;
	}

	.wp-block-button:not(.is-style-link-button) .wp-block-button__link:hover::before {
		transform: translateX(-50%) scale(0);
	}
}

@media (max-width: 480px) {
	/* Extra small mobile adjustments */
	.ausqual-hero-cover {
		min-height: 65vh !important;
	}

	/* Category cards smaller on very small screens */
	.wp-block-cover.is-style-category-card,
	.wp-block-cover.ausqual-category-card {
		min-height: 180px !important;
	}

	/* Review cards */
	.ausqual-reviews-swiper .swiper-slide {
		width: 260px;
	}

	/* Tighter padding on small screens */
	.ausqual-footer {
		padding-left: var(--wp--preset--spacing--30, 1rem) !important;
		padding-right: var(--wp--preset--spacing--30, 1rem) !important;
	}
}

/* ── Jobs EOI Form (CF7 inside grass box) ── */

.has-grass-background-color .wpcf7 form {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.has-grass-background-color .wpcf7 form p {
	margin: 0;
}

/* Each label + input row styled like an upcoming-courses item */
.has-grass-background-color .wpcf7 label {
	display: flex;
	flex-direction: column;
	gap: 0;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 0.9rem;
	font-weight: 600;
	color: #fff;
}

.has-grass-background-color .wpcf7 input[type="text"],
.has-grass-background-color .wpcf7 input[type="email"],
.has-grass-background-color .wpcf7 input[type="tel"],
.has-grass-background-color .wpcf7 textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: none;
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--fertiliser, #1F2828);
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 0.9rem;
	font-weight: 400;
	outline: none;
	transition: box-shadow 0.2s ease;
	margin-top: 0.15rem;
	margin-bottom: 0.5rem;
}

.has-grass-background-color .wpcf7 input::placeholder,
.has-grass-background-color .wpcf7 textarea::placeholder {
	color: #aaa;
	font-weight: 300;
}

.has-grass-background-color .wpcf7 input:focus,
.has-grass-background-color .wpcf7 textarea:focus {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.4);
}

.has-grass-background-color .wpcf7 textarea {
	min-height: 72px;
	resize: vertical;
}

/* Two-column name row */
.ausqual-eoi-row--2col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
}

/* Submit button — grains yellow, matching upcoming-courses Book button feel */
.has-grass-background-color .wpcf7 input[type="submit"] {
	width: 100%;
	padding: 0.75rem 1.5rem;
	background: var(--wp--preset--color--grains, #FFD861);
	color: var(--wp--preset--color--fertiliser, #1F2828);
	border: none;
	border-radius: 8px;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
	margin-top: 0.5rem;
}

.has-grass-background-color .wpcf7 input[type="submit"]:hover {
	background: #f5cc40;
}

/* File upload input */
.has-grass-background-color .wpcf7 input[type="file"] {
	width: 100%;
	margin-top: 0.15rem;
	margin-bottom: 0.5rem;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.9);
	cursor: pointer;
}

.has-grass-background-color .wpcf7 input[type="file"]::file-selector-button {
	padding: 0.45rem 1rem;
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
	border: 1.5px solid rgba(255, 255, 255, 0.5);
	border-radius: 6px;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 0.85rem;
	font-weight: 500;
	cursor: pointer;
	margin-right: 0.75rem;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.has-grass-background-color .wpcf7 input[type="file"]::file-selector-button:hover {
	background: rgba(255, 255, 255, 0.25);
	border-color: rgba(255, 255, 255, 0.8);
}

/* CF7 response messages */
.has-grass-background-color .wpcf7-response-output {
	margin: 0.5rem 0 0;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	background: #fff;
	font-family: var(--wp--preset--font-family--outfit, 'Outfit', sans-serif);
	font-size: 0.85rem;
	color: var(--wp--preset--color--fertiliser, #1F2828);
	border: none;
}

.has-grass-background-color .wpcf7-not-valid-tip {
	color: #ffd861;
	font-size: 0.78rem;
	font-weight: 400;
	margin-top: 0.2rem;
}

@media (max-width: 600px) {
	.ausqual-eoi-row--2col {
		grid-template-columns: 1fr;
	}
}

/* ===========================================================
   Legal pages: Training Code of Practice + Privacy Policy
   =========================================================== */
.page-id-3 .wp-block-post-content,
.page-id-524 .wp-block-post-content {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--70);
}

.page-id-3 .wp-block-post-content h2,
.page-id-524 .wp-block-post-content h2 {
	font-size: 1.35rem;
	margin-top: 2.25rem;
	margin-bottom: 0.6rem;
}

.page-id-3 .wp-block-post-content h3,
.page-id-524 .wp-block-post-content h3 {
	font-size: 1.1rem;
	margin-top: 1.5rem;
	margin-bottom: 0.4rem;
}

.page-id-3 .wp-block-post-content p,
.page-id-524 .wp-block-post-content p,
.page-id-3 .wp-block-post-content ul,
.page-id-524 .wp-block-post-content ul,
.page-id-3 .wp-block-post-content ol,
.page-id-524 .wp-block-post-content ol {
	margin-bottom: 1.05rem;
	line-height: 1.65;
}

.page-id-3 .wp-block-post-content li,
.page-id-524 .wp-block-post-content li {
	margin-bottom: 0.35rem;
}

/* ==========================================================================
   Interactive Showcase (hover/select list with swapping image)
   ========================================================================== */

.ausqual-showcase__inner.wp-block-columns {
	align-items: stretch;
}

.ausqual-showcase__list.wp-block-column {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ausqual-showcase__item {
	position: relative;
	border-radius: 12px;
	border-left: 3px solid transparent;
	background-color: transparent;
	cursor: pointer;
	transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.ausqual-showcase__item p {
	color: var(--wp--preset--color--muted);
	transition: color 0.3s ease;
}

.ausqual-showcase__item.is-active {
	border-left-color: var(--wp--preset--color--grass);
	background-color: var(--wp--preset--color--base);
	box-shadow: 0 8px 24px rgba(31, 40, 40, 0.08);
}

.ausqual-showcase__item.is-active p {
	color: var(--wp--preset--color--fertiliser);
}

.ausqual-showcase__item:focus-visible {
	outline: 2px solid var(--wp--preset--color--grass);
	outline-offset: 2px;
}

/* Media column - images stack and cross-fade in place */
.ausqual-showcase__media.wp-block-column {
	position: relative;
	min-height: 460px;
}

.ausqual-showcase__media .ausqual-showcase__img {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transform: scale(1.02);
	transition: opacity 0.45s ease, transform 0.45s ease;
}

.ausqual-showcase__media .ausqual-showcase__img.is-active {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.ausqual-showcase__media .ausqual-showcase__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Responsive: image above the list so the swap stays visible on tap */
@media (max-width: 781px) {
	.ausqual-showcase__inner.wp-block-columns {
		flex-wrap: wrap;
	}

	.ausqual-showcase__list.wp-block-column,
	.ausqual-showcase__media.wp-block-column {
		flex-basis: 100% !important;
	}

	.ausqual-showcase__media.wp-block-column {
		order: -1;
		min-height: 260px;
		margin-bottom: var(--wp--preset--spacing--40);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ausqual-showcase__item,
	.ausqual-showcase__media .ausqual-showcase__img {
		transition: none;
	}

	.ausqual-showcase__media .ausqual-showcase__img {
		transform: none;
	}
}

/* ==========================================================================
   Choose Courses Section
   ========================================================================== */

.ausqual-choose-courses-header.wp-block-group {
	gap: 24px;
}

/* Responsive: stack the heading block above the Explore all courses link */
@media (max-width: 781px) {
	.ausqual-choose-courses-header.wp-block-group {
		flex-wrap: wrap !important;
		gap: 16px;
	}
}

/* ==========================================================================
   Benefits Stack — offset sticky card stack
   ========================================================================== */

/* The benefits section is a vertical stack of cards, not a row of columns.
   As the section scrolls, each card pins one strip lower than the card above
   it, so every card that has already docked keeps its icon and title on
   screen and the section reads as a running index of the four benefits.

   The pinning is CSS: `position: sticky` plus a per-card top offset.
   benefits-stack.js sets the stack index (so the offsets hold for any number
   of cards), measures the strip height, and fades card contents in on first
   entry — it never transforms a card, because that would knock the docked
   strips out of pixel alignment. Everything degrades: with the script gone
   the cards still stack and pin, on the estimated strip below. */

.ausqual-benefits-stack {
	/* Where the first card docks: clear of the fixed header, plus air. */
	--ausqual-stack-top: 123px;
	/* Strip each docked card leaves visible below the one above it. It has
	   to clear the card's top padding plus the icon/title row, which is only
	   estimated here — benefits-stack.js measures the real height and
	   overwrites this, so a heading that wraps is never clipped. This value
	   is what a no-JavaScript reader gets. */
	--ausqual-stack-strip: clamp(84px, 8.5vw, 104px);
	--ausqual-stack-gap: 24px;
	/* How long the finished stack stays docked before it scrolls away. */
	--ausqual-stack-hold: clamp(320px, 50vh, 560px);
	/* Sticky is dead inside a clipped ancestor — keep this section open. */
	overflow: visible;
}

/* Section header: heading with a lede paragraph under it. */
.ausqual-benefits-stack .ausqual-benefits-stack__lede {
	max-width: 74ch;
	margin-inline: auto;
	text-align: center;
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.6;
}

.ausqual-benefits-stack .ausqual-benefits-stack__cards > * + * {
	margin-block-start: var(--ausqual-stack-gap);
}

/* HOLD TIME for the finished stack. A sticky element is confined to its
   parent's content box, so padding cannot extend its travel — the extra
   scroll distance has to be in-flow content. This spacer keeps all four
   cards docked while the reader scrolls its height, and only then does the
   whole stack scroll up and away. */
.ausqual-benefits-stack .ausqual-benefits-stack__cards::after {
	content: "";
	display: block;
	block-size: var(--ausqual-stack-hold);
}

.ausqual-benefits-stack .ausqual-benefit-card {
	position: sticky;
	top: calc(
		var(--ausqual-stack-top) +
		(var(--ausqual-card-i, 0) * var(--ausqual-stack-strip))
	);
	/* Plain block flow. A card holds however much the editor puts in it - a
	   heading, a lede, then any number of sub-heading and paragraph pairs -
	   and it all runs straight down. (This was a two-column grid with fixed
	   row/column assignments, which auto-placed any extra heading or
	   paragraph into whatever cell was free.) */
	display: block;
	/* Cards are all the same green, so the seam between a docking card and
	   the one it covers needs drawing: a hairline along the top edge and a
	   shadow cast upward onto the card behind. */
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.22),
		0 -14px 34px rgba(31, 40, 40, 0.22);
}

/* nth-child covers the block DOM; benefits-stack.js sets --ausqual-card-i
   for any card count. */
.ausqual-benefits-stack .ausqual-benefit-card:nth-child(1) { --ausqual-card-i: 0; }
.ausqual-benefits-stack .ausqual-benefit-card:nth-child(2) { --ausqual-card-i: 1; }
.ausqual-benefits-stack .ausqual-benefit-card:nth-child(3) { --ausqual-card-i: 2; }
.ausqual-benefits-stack .ausqual-benefit-card:nth-child(4) { --ausqual-card-i: 3; }
.ausqual-benefits-stack .ausqual-benefit-card:nth-child(5) { --ausqual-card-i: 4; }
.ausqual-benefits-stack .ausqual-benefit-card:nth-child(6) { --ausqual-card-i: 5; }
.ausqual-benefits-stack .ausqual-benefit-card:nth-child(7) { --ausqual-card-i: 6; }
.ausqual-benefits-stack .ausqual-benefit-card:nth-child(8) { --ausqual-card-i: 7; }

/* Vertical rhythm. Margins rather than a flex gap, so a paragraph can hug
   the sub-heading it belongs to while the pairs themselves stay apart.

   The reset reaches every descendant, not just direct children: the head
   wrapper nests the title, and a `> *` reset would leave it carrying the
   theme's default heading margins. :where() keeps specificity flat so the
   rhythm rules below still win. */
.ausqual-benefits-stack .ausqual-benefit-card
	:where(h2, h3, h4, h5, h6, p, figure, ul, ol, blockquote) {
	margin: 0;
}

.ausqual-benefits-stack .ausqual-benefit-card > * + * {
	margin-block-start: clamp(20px, 2.2vw, 28px);
}

.ausqual-benefits-stack .ausqual-benefit-card > :is(h3, h4, h5, h6) + p {
	margin-block-start: 8px;
}

/* The head is the strip that stays visible once a card docks: icon beside
   title, on one line. Everything after it is what gets covered. */
.ausqual-benefits-stack .ausqual-benefit-card__head {
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.5vw, 32px);
}

.ausqual-benefits-stack .ausqual-benefit-card__icon {
	flex: 0 0 auto;
}

.ausqual-benefits-stack .ausqual-benefit-card__icon img {
	display: block;
	width: clamp(36px, 3.4vw, 48px);
	height: auto;
}

.ausqual-benefits-stack .ausqual-benefit-card__title {
	font-size: clamp(18px, 1.9vw, 26px);
	line-height: 1.25;
	/* Shared across the stack by benefits-stack.js, so a one-line heading
	   reserves the same room as the longest one and the strip cuts in the
	   same place on every card. Flex keeps a short heading at the top of
	   that reserved space rather than floating in the middle of it. */
	min-height: var(--ausqual-title-h, auto);
	display: flex;
	align-items: flex-start;
}

/* Cards that skip the head wrapper still get a strip off the title alone. */
.ausqual-benefits-stack .ausqual-benefit-card > .ausqual-benefit-card__title {
	min-height: var(--ausqual-title-h, auto);
}

/* Body copy, and any paragraph the editor adds. */
.ausqual-benefits-stack .ausqual-benefit-card p {
	/* Guard rail only - an uncapped paragraph would run to ~160ch on a
	   1300px card. Raise or drop this if you want the copy full width. */
	max-width: 90ch;
	font-size: clamp(14px, 1.1vw, 16px);
	line-height: 1.6;
}

/* Sub-headings within a card - one step down from the card title. */
.ausqual-benefits-stack .ausqual-benefit-card > :is(h4, h5, h6) {
	font-size: clamp(15px, 1.25vw, 18px);
	line-height: 1.3;
}

/* Clear the shorter mobile header. */
@media (max-width: 782px) {
	.ausqual-benefits-stack {
		--ausqual-stack-top: 84px;
	}
}

/* Small screens: just close the stack up. */
@media (max-width: 600px) {
	.ausqual-benefits-stack {
		--ausqual-stack-gap: 16px;
	}
}

/* Bail out. benefits-stack.js drops the effect when the finished stack would
   be taller than the viewport - on a short screen the last card would dock
   with its copy below the fold. The cards then scroll as a plain stack. */
.ausqual-benefits-stack.is-unstacked .ausqual-benefit-card {
	position: static;
}

.ausqual-benefits-stack.is-unstacked .ausqual-benefits-stack__cards::after {
	display: none;
}

/* Entrance motion. The hidden state only exists while benefits-stack.js has
   marked a card, so with JavaScript off (or failed) the section is simply
   static — nothing is ever hidden by the stylesheet alone. The card itself
   never moves: transforming a sticky element would knock the docked strips
   out of pixel alignment. */
.ausqual-benefits-stack .ausqual-benefit-card.is-revealing > * {
	opacity: 0;
}

.ausqual-benefits-stack .ausqual-benefit-card.is-revealed > * {
	opacity: 1;
	transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* Two steps only - the head leads, the rest follows together, however many
   headings and paragraphs the card holds. */
.ausqual-benefits-stack .ausqual-benefit-card.is-revealed > * + * {
	transition-delay: 90ms;
}

@media (prefers-reduced-motion: reduce) {
	.ausqual-benefits-stack .ausqual-benefit-card.is-revealing > *,
	.ausqual-benefits-stack .ausqual-benefit-card.is-revealed > * {
		opacity: 1;
		transition: none;
	}
}
