/**
 * Aula Nova plugin integration layer.
 *
 * Every selector is scoped to a known plugin hook or an explicit Aula class,
 * so inactive plugins and ordinary WordPress blocks keep their native
 * behaviour. This stylesheet deliberately follows aula-nova.css.
 */

/* Elementor edits page content well in a block theme. The template
 * page-elementor removes the editorial prose measure without affecting
 * normal Gutenberg pages. */
.aula-elementor-page,
.aula-elementor-page > .wp-block-post-content,
.aula-elementor-page > .wp-block-post-content > .elementor,
.aula-elementor-page > .elementor,
.aula-full-width-page,
.aula-full-width-page > .wp-block-post-content {
	inline-size: 100%;
	max-inline-size: none;
}

.aula-elementor-page > .wp-block-post-content,
.aula-full-width-page > .wp-block-post-content {
	margin-block: 0;
}

.aula-elementor-page .elementor-widget-container > :first-child {
	margin-block-start: 0;
}

/* Elementor inherits the same design language as native Aula Nova blocks.
 * Editors can still override individual widgets, but a new document starts
 * with safe typography, responsive media and controls that cannot split words. */
body.aula-has-elementor .elementor {
	color: var(--aula-ink);
	font-family: var(--aula-body);
}

body.aula-has-elementor .elementor :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title) {
	color: var(--aula-ink);
	font-family: var(--aula-display);
	font-weight: 750;
	letter-spacing: -0.04em;
	line-height: 1.04;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
	text-wrap: balance;
}

body.aula-has-elementor .elementor :is(p, li, a, span) {
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

body.aula-has-elementor .elementor :is(img, video, iframe, embed, object) {
	max-inline-size: 100%;
}

body.aula-has-elementor .elementor .elementor-button {
	min-block-size: 3rem;
	padding: 0.82rem 1.25rem;
	border: 1px solid var(--aula-primary);
	border-radius: 999px;
	background: var(--aula-primary);
	color: var(--aula-primary-contrast);
	box-shadow: 0 12px 26px rgba(var(--aula-primary-rgb), 0.2);
	font-family: var(--aula-body);
	font-size: 0.88rem;
	font-weight: 780;
	letter-spacing: 0.025em;
	line-height: 1.2;
	text-transform: uppercase;
	transition: background 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

body.aula-has-elementor .elementor .elementor-button:hover,
body.aula-has-elementor .elementor .elementor-button:focus-visible {
	background: var(--aula-primary-hover);
	box-shadow: 0 18px 38px rgba(var(--aula-primary-rgb), 0.3);
	transform: translateY(-1px);
}

.aula-el-section,
.aula-el-hero {
	box-sizing: border-box;
	inline-size: 100%;
	padding-block: clamp(4rem, 8vw, 8rem);
	padding-inline: max(1.5rem, calc((100vw - 1180px) / 2));
}

.aula-el-hero {
	min-block-size: clamp(34rem, 72svh, 52rem);
	justify-content: center;
	background:
		radial-gradient(circle at 86% 18%, rgba(var(--aula-accent-rgb), 0.28), transparent 22rem),
		linear-gradient(132deg, var(--aula-primary-deep), var(--aula-ink));
}

.aula-el-hero :is(h1, h2, h3, .elementor-heading-title),
.aula-el-dark :is(h1, h2, h3, .elementor-heading-title) {
	color: var(--aula-white) !important;
}

.aula-el-hero .elementor-widget-text-editor,
.aula-el-dark .elementor-widget-text-editor {
	color: rgba(255, 255, 255, 0.78);
}

.aula-el-eyebrow {
	color: var(--aula-primary) !important;
	font-size: 0.75rem !important;
	font-weight: 820 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase;
}

.aula-el-hero .aula-el-eyebrow,
.aula-el-dark .aula-el-eyebrow {
	color: var(--aula-accent) !important;
}

.aula-el-intro {
	max-inline-size: 46rem;
	color: var(--aula-ink-soft);
	font-size: clamp(1.05rem, 1.7vw, 1.3rem);
	line-height: 1.65;
}

.aula-el-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2.4vw, 1.5rem);
}

.aula-el-card {
	min-inline-size: 0;
	padding: clamp(1.4rem, 3vw, 2.25rem);
	border: 1px solid var(--aula-line);
	border-radius: var(--aula-radius);
	background: var(--aula-white);
	box-shadow: var(--aula-shadow-sm);
	transition: border-color 180ms ease, box-shadow 260ms ease, transform 260ms ease;
}

.aula-el-card:hover,
.aula-el-card:focus-within {
	border-color: rgba(var(--aula-primary-rgb), 0.28);
	box-shadow: var(--aula-shadow-lg);
	transform: translateY(-3px);
}

.aula-el-dark {
	color: var(--aula-white);
	background:
		radial-gradient(circle at 9% 20%, rgba(var(--aula-violet-rgb), 0.4), transparent 27rem),
		var(--aula-primary-deep);
}

.ceips-elementor-contact,
.ceips-elementor-news {
	box-sizing: border-box;
	inline-size: min(1180px, calc(100% - 3rem));
	margin-inline: auto;
}

.ceips-elementor-contact {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
	padding: clamp(1.75rem, 5vw, 4.5rem);
	border-radius: var(--aula-radius-lg);
	color: var(--aula-white);
	background:
		radial-gradient(circle at 88% 15%, rgba(var(--aula-accent-rgb), 0.25), transparent 18rem),
		linear-gradient(135deg, var(--aula-primary-deep), var(--aula-ink));
	box-shadow: var(--aula-shadow-lg);
}

.ceips-elementor-contact h2 {
	margin: 0;
	color: var(--aula-white) !important;
	font-size: clamp(2.25rem, 5vw, 5rem);
}

.ceips-elementor-contact__copy > p:last-child {
	max-inline-size: 40rem;
	margin-block: 1rem 0;
	color: rgba(255, 255, 255, 0.76);
	font-size: clamp(1rem, 1.5vw, 1.2rem);
}

.ceips-elementor-contact__actions {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	align-items: flex-start;
}

.ceips-elementor-contact__button {
	display: inline-flex;
	gap: 0.65rem;
	align-items: center;
	min-block-size: 3.15rem;
	padding: 0.82rem 1.15rem;
	border-radius: 999px;
	background: var(--aula-accent);
	color: var(--aula-ink) !important;
	font-weight: 800;
	text-decoration: none;
}

.ceips-elementor-contact__actions p {
	margin: 0;
}

.ceips-elementor-contact__actions p a {
	color: var(--aula-white);
	font-weight: 760;
}

.ceips-elementor-news__header {
	margin-block-end: clamp(1.5rem, 4vw, 3rem);
}

.ceips-elementor-news__header > * {
	margin-block: 0;
}

.ceips-elementor-news__header h2 {
	margin-block-start: 0.65rem;
	font-size: clamp(2.25rem, 5vw, 5rem);
}

.ceips-elementor-news__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2.4vw, 1.5rem);
}

.ceips-elementor-news__card {
	min-inline-size: 0;
	border: 1px solid var(--aula-line);
	border-radius: var(--aula-radius);
	background: var(--aula-white);
	box-shadow: var(--aula-shadow-sm);
	overflow: hidden;
}

.ceips-elementor-news__media,
.ceips-elementor-news__media img {
	display: block;
	inline-size: 100%;
	aspect-ratio: 4 / 3;
}

.ceips-elementor-news__media img {
	block-size: 100%;
	object-fit: cover;
}

.ceips-elementor-news__body {
	padding: clamp(1.15rem, 2.5vw, 1.75rem);
}

.ceips-elementor-news__body > * {
	margin-block: 0;
}

.ceips-elementor-news__body time {
	color: var(--aula-primary);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ceips-elementor-news__body h3 {
	margin-block-start: 0.65rem;
	font-size: clamp(1.25rem, 2.6vw, 1.75rem);
}

.ceips-elementor-news__body h3 a {
	color: var(--aula-ink);
	text-decoration: none;
}

.ceips-elementor-news__body p {
	margin-block-start: 0.85rem;
	color: var(--aula-ink-soft);
}

.ceips-elementor-news__empty {
	padding: 1rem 1.15rem;
	border: 1px solid var(--aula-line);
	border-radius: var(--aula-radius-sm);
	background: rgba(var(--aula-primary-rgb), 0.055);
}

@media (max-width: 900px) {
	.aula-el-grid,
	.ceips-elementor-news__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ceips-elementor-contact {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.aula-el-section,
	.aula-el-hero {
		padding-inline: 1.15rem;
	}

	.aula-el-hero {
		min-block-size: 31rem;
	}

	.aula-el-grid,
	.ceips-elementor-news__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.ceips-elementor-contact,
	.ceips-elementor-news {
		inline-size: min(100% - 1.5rem, 1180px);
	}

	.ceips-elementor-contact {
		border-radius: 1.5rem;
	}
}

/* Full-width Gutenberg pages and Elementor pages deliberately have no prose
 * measure. Keep raw imported embeds, media and tables inside the viewport,
 * while leaving Elementor's own containers entirely under Elementor control. */
.aula-full-width-page > .wp-block-post-content :is(img, video, audio, iframe, embed, object),
.aula-elementor-page > .wp-block-post-content > :not(.elementor) :is(img, video, audio, iframe, embed, object) {
	max-inline-size: 100%;
}

.aula-full-width-page > .wp-block-post-content :is(.wp-block-table, .wp-block-table__wrapper),
.aula-elementor-page > .wp-block-post-content > :not(.elementor) :is(.wp-block-table, .wp-block-table__wrapper) {
	max-inline-size: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.aula-full-width-page > .wp-block-post-content > table,
.aula-elementor-page > .wp-block-post-content > :not(.elementor) > table {
	display: block;
	max-inline-size: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* An explicit hook available to editors for any plugin form. */
.aula-plugin-form,
.wpcf7,
.wpforms-container,
.gform_wrapper,
.fluentform,
.nf-form-cont {
	color: var(--aula-ink);
}

.aula-plugin-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select, textarea),
.wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select, textarea),
.wpforms-container :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select, textarea),
.gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select, textarea),
.fluentform :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select, textarea),
.nf-form-cont :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], input[type="search"], input[type="date"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select, textarea) {
	inline-size: 100%;
	min-block-size: 3rem;
	padding: 0.76rem 0.9rem;
	border: 1px solid var(--aula-line);
	border-radius: 0.85rem;
	background: var(--aula-white);
	color: var(--aula-ink);
	box-shadow: 0 1px 0 rgba(16, 47, 37, 0.035);
	font: inherit;
	line-height: 1.45;
	transition: border-color var(--aula-transition-fast, 180ms) ease, box-shadow var(--aula-transition-fast, 180ms) ease;
}

/* File inputs need their own compact surface: they are inputs, but must not
 * inherit the full-width typography treatment intended for text fields. */
.aula-plugin-form input[type="file"],
.wpcf7 input[type="file"],
.wpforms-container input[type="file"],
.gform_wrapper input[type="file"],
.fluentform input[type="file"],
.nf-form-cont input[type="file"] {
	inline-size: 100%;
	min-block-size: 3rem;
	padding: 0.42rem 0.55rem;
	border: 1px solid var(--aula-line);
	border-radius: 0.85rem;
	background: var(--aula-white);
	color: var(--aula-ink);
	font: inherit;
	line-height: 1.35;
}

.aula-plugin-form input[type="file"]::file-selector-button,
.wpcf7 input[type="file"]::file-selector-button,
.wpforms-container input[type="file"]::file-selector-button,
.gform_wrapper input[type="file"]::file-selector-button,
.fluentform input[type="file"]::file-selector-button,
.nf-form-cont input[type="file"]::file-selector-button {
	margin-inline-end: 0.65rem;
	padding: 0.48rem 0.72rem;
	border: 0;
	border-radius: 0.6rem;
	background: rgba(var(--aula-primary-rgb), 0.11);
	color: var(--aula-primary-deep);
	font: inherit;
	font-weight: 740;
	cursor: pointer;
}

/* Preserve native control semantics while giving binary choices a consistent
 * visual weight. The selectors stay inside known form wrappers deliberately. */
.aula-plugin-form :is(input[type="checkbox"], input[type="radio"]),
.wpcf7 :is(input[type="checkbox"], input[type="radio"]),
.wpforms-container :is(input[type="checkbox"], input[type="radio"]),
.gform_wrapper :is(input[type="checkbox"], input[type="radio"]),
.fluentform :is(input[type="checkbox"], input[type="radio"]),
.nf-form-cont :is(input[type="checkbox"], input[type="radio"]) {
	inline-size: 1.08rem;
	block-size: 1.08rem;
	margin: 0.15rem 0 0;
	accent-color: var(--aula-primary);
	vertical-align: top;
}

.aula-plugin-form :is(.aula-form-choice, .aula-form-consent),
.wpcf7 :is(.wpcf7-list-item, .wpcf7-acceptance),
.wpforms-container :is(.wpforms-field-checkbox li, .wpforms-field-radio li, .wpforms-field-gdpr-checkbox li),
.gform_wrapper :is(.gfield_checkbox li, .gfield_radio li, .ginput_container_consent),
.fluentform :is(.ff-el-form-check, .ff-el-input--content .ff-el-form-check),
.nf-form-cont :is(.nf-field-element .checkbox-wrap, .nf-field-element .listcheckbox-wrap, .nf-field-element .listradio-wrap) {
	display: flex;
	gap: 0.65rem;
	align-items: flex-start;
	color: var(--aula-ink);
	line-height: 1.5;
}

.aula-plugin-form textarea,
.wpcf7 textarea,
.wpforms-container textarea,
.gform_wrapper textarea,
.fluentform textarea,
.nf-form-cont textarea {
	min-block-size: 8rem;
	resize: vertical;
}

.aula-plugin-form :is(input, select, textarea):focus-visible,
.wpcf7 :is(input, select, textarea):focus-visible,
.wpforms-container :is(input, select, textarea):focus-visible,
.gform_wrapper :is(input, select, textarea):focus-visible,
.fluentform :is(input, select, textarea):focus-visible,
.nf-form-cont :is(input, select, textarea):focus-visible {
	border-color: var(--aula-primary);
	outline: 0;
	box-shadow: 0 0 0 4px rgba(var(--aula-primary-rgb), 0.15);
}

/* Disabled fields and calls to action stay legible without looking active.
 * Keep this scoped so administrative widgets and unrelated plugins preserve
 * their own state contracts. */
.aula-plugin-form :is(input, select, textarea):disabled,
.wpcf7 :is(input, select, textarea):disabled,
.wpforms-container :is(input, select, textarea):disabled,
.gform_wrapper :is(input, select, textarea):disabled,
.fluentform :is(input, select, textarea):disabled,
.nf-form-cont :is(input, select, textarea):disabled {
	border-color: rgba(16, 47, 37, 0.13);
	background: rgba(16, 47, 37, 0.055);
	color: var(--aula-ink-soft);
	box-shadow: none;
	cursor: not-allowed;
	opacity: 0.7;
}

.aula-plugin-form :is(label, legend),
.wpcf7 label,
.wpforms-container .wpforms-field-label,
.gform_wrapper :is(label, legend),
.fluentform .ff-el-input--label,
.nf-form-cont .nf-field-label label {
	color: var(--aula-ink);
	font-weight: 720;
	letter-spacing: -0.01em;
}

.aula-plugin-form :is(button, input[type="submit"]),
.wpcf7 .wpcf7-submit,
.wpforms-container .wpforms-submit,
.gform_wrapper .gform_button,
.fluentform .ff-btn-submit,
.nf-form-cont .nf-form-content button {
	min-block-size: 3rem;
	padding: 0.82rem 1.15rem;
	border: 1px solid var(--aula-primary);
	border-radius: 999px;
	background: var(--aula-primary);
	color: var(--aula-primary-contrast);
	box-shadow: 0 12px 26px rgba(var(--aula-primary-rgb), 0.2);
	font: inherit;
	font-weight: 760;
	letter-spacing: 0.02em;
	line-height: 1;
	text-transform: uppercase;
	transition: background var(--aula-transition-fast, 180ms) ease, border-color var(--aula-transition-fast, 180ms) ease, transform var(--aula-transition-fast, 180ms) ease;
}

.aula-plugin-form :is(button, input[type="submit"]):hover,
.wpcf7 .wpcf7-submit:hover,
.wpforms-container .wpforms-submit:hover,
.gform_wrapper .gform_button:hover,
.fluentform .ff-btn-submit:hover,
.nf-form-cont .nf-form-content button:hover {
	border-color: var(--aula-primary-hover);
	background: var(--aula-primary-hover);
	transform: translateY(-1px);
}

.aula-plugin-form :is(button, input[type="submit"]):disabled,
.wpcf7 .wpcf7-submit:disabled,
.wpforms-container .wpforms-submit:disabled,
.gform_wrapper .gform_button:disabled,
.fluentform .ff-btn-submit:disabled,
.nf-form-cont .nf-form-content button:disabled {
	border-color: rgba(var(--aula-primary-rgb), 0.18);
	background: rgba(var(--aula-primary-rgb), 0.32);
	box-shadow: none;
	cursor: not-allowed;
	opacity: 0.68;
}

.aula-plugin-form :is(button, input[type="submit"]):disabled:hover,
.wpcf7 .wpcf7-submit:disabled:hover,
.wpforms-container .wpforms-submit:disabled:hover,
.gform_wrapper .gform_button:disabled:hover,
.fluentform .ff-btn-submit:disabled:hover,
.nf-form-cont .nf-form-content button:disabled:hover {
	border-color: rgba(var(--aula-primary-rgb), 0.18);
	background: rgba(var(--aula-primary-rgb), 0.32);
	box-shadow: none;
	transform: none;
}

.wpcf7-not-valid-tip,
.wpforms-error,
.wpforms-container label.wpforms-error,
.gfield_validation_message,
.gform_wrapper .validation_message,
.fluentform .error.text-danger,
.nf-error-msg {
	margin-block-start: 0.42rem;
	color: #9b2929;
	font-size: 0.87rem;
	font-weight: 650;
}

.wpcf7-response-output,
.wpforms-confirmation-container-full,
.gform_wrapper .gform_validation_errors,
.fluentform .ff-message-success,
.nf-response-msg {
	margin: 1rem 0;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(var(--aula-primary-rgb), 0.32);
	border-radius: 0.85rem;
	background: rgba(var(--aula-primary-rgb), 0.08);
	color: var(--aula-ink);
}

/* WooCommerce classic markup and Woo blocks. */
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
.wc-block-components-notice-banner {
	margin-block: 1rem;
	padding: 1rem 1.1rem;
	border: 1px solid rgba(var(--aula-primary-rgb), 0.28);
	border-radius: 1rem;
	background: rgba(var(--aula-primary-rgb), 0.075);
	color: var(--aula-ink);
	box-shadow: var(--aula-shadow-sm);
}

.woocommerce :is(ul.products li.product, div.product),
.wc-block-grid__product,
.wc-block-product {
	border-color: var(--aula-line);
}

.woocommerce ul.products li.product,
.wc-block-grid__product {
	padding: 0.85rem;
	border: 1px solid var(--aula-line);
	border-radius: var(--aula-radius);
	background: var(--aula-white);
	box-shadow: 0 10px 28px rgba(16, 47, 37, 0.06);
}

.woocommerce ul.products li.product :is(img, .woocommerce-loop-product__link img),
.wc-block-grid__product-image img,
.woocommerce div.product .woocommerce-product-gallery img {
	border-radius: calc(var(--aula-radius) - 0.35rem);
}

.woocommerce :is(a.button, button.button, input.button, #respond input#submit),
.wc-block-components-button,
.wc-block-components-button:not(.is-link) {
	border: 1px solid var(--aula-primary);
	border-radius: 999px;
	background: var(--aula-primary);
	color: var(--aula-primary-contrast);
	font-weight: 760;
	letter-spacing: 0.02em;
	transition: background var(--aula-transition-fast, 180ms) ease, transform var(--aula-transition-fast, 180ms) ease;
}

.woocommerce :is(a.button, button.button, input.button, #respond input#submit):hover,
.wc-block-components-button:hover {
	background: var(--aula-primary-hover);
	transform: translateY(-1px);
}

.woocommerce :is(.price, .amount),
.wc-block-formatted-money-amount {
	color: var(--aula-primary-deep);
	font-weight: 760;
}

.woocommerce :is(span.onsale, .onsale),
.wc-block-components-product-sale-badge {
	min-inline-size: auto;
	padding: 0.38rem 0.58rem;
	border: 0;
	border-radius: 999px;
	background: var(--aula-accent);
	color: var(--aula-ink);
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1.1;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	padding: 0;
	border: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0.58rem 0.85rem;
	border-radius: 999px;
	color: var(--aula-ink);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	background: rgba(var(--aula-primary-rgb), 0.12);
	color: var(--aula-primary-deep);
}

/* The Events Calendar. */
.tribe-common,
.tribe-events {
	color: var(--aula-ink);
}

.tribe-common .tribe-common-c-btn,
.tribe-events .tribe-events-c-subscribe-dropdown__button,
.tribe-events .tribe-events-calendar-month__day-cell--mobile {
	border-radius: 999px;
	background: var(--aula-primary);
	color: var(--aula-primary-contrast);
	font-weight: 760;
}

.tribe-events :is(.tribe-events-calendar-month__day, .tribe-events-calendar-list__event-row, .tribe-events-pro-photo__event) {
	border-color: var(--aula-line);
}

.tribe-events .tribe-events-calendar-month__calendar-event-datetime,
.tribe-events .tribe-events-calendar-list__event-datetime {
	color: var(--aula-primary-deep);
	font-weight: 730;
}

/* LearnDash and Tutor LMS retain their plugin behaviour while using the
 * same cards, colours and primary action language as the rest of the site. */
.learndash-wrapper :is(.ld-item-list-item, .ld-course-status, .ld-lesson-item-preview),
.tutor-wrap :is(.tutor-card, .tutor-course-card, .tutor-dashboard-content) {
	border: 1px solid var(--aula-line);
	border-radius: var(--aula-radius-sm);
	background: var(--aula-white);
	box-shadow: 0 10px 28px rgba(16, 47, 37, 0.055);
}

.learndash-wrapper :is(.ld-button, .ld-expand-button),
.tutor-wrap :is(.tutor-btn, .tutor-btn-primary) {
	border-radius: 999px;
	background: var(--aula-primary);
	color: var(--aula-primary-contrast);
	font-weight: 760;
}

.learndash-wrapper .ld-progress .ld-progress-bar {
	background: var(--aula-primary);
}

/* Popular SEO breadcrumbs sit comfortably above editorial content. */
.yoast-breadcrumb,
.rank-math-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
	margin-block: 0 1.25rem;
	color: var(--aula-ink-soft);
	font-size: 0.86rem;
	font-weight: 650;
}

.yoast-breadcrumb a,
.rank-math-breadcrumb a {
	color: var(--aula-primary-deep);
	text-decoration: none;
}

/* Restored PDF Embedder documents. The plugin supplies its own viewer, while
 * this small layer keeps fixed legacy dimensions inside the editorial column
 * and gives the boundary the same calm, tactile finish as other media. */
.wp-block-pdf-embedder,
.pdfemb-viewer,
.pdfemb-viewer .pdfemb-inner-div {
	box-sizing: border-box;
	max-inline-size: 100% !important;
}

.pdfemb-viewer {
	margin: 1.5rem auto;
	border: 1px solid var(--aula-line);
	border-radius: var(--aula-radius-sm);
	background: var(--aula-white);
	box-shadow: 0 12px 30px rgba(16, 47, 37, 0.075);
	overflow: hidden;
}

.pdfemb-viewer :is(canvas, iframe, embed, object) {
	max-inline-size: 100% !important;
}

.pdfemb-viewer .pdfemb-toolbar {
	border-color: var(--aula-line);
	background: rgba(var(--aula-primary-rgb), 0.055);
	color: var(--aula-ink);
}

.pdfemb-viewer .pdfemb-toolbar button {
	border-radius: 0.45rem;
	accent-color: var(--aula-primary);
}

/* Native fallback for older pdfemb blocks. It remains deliberately separate
 * from the plugin selectors above, so a future maintained PDF Embedder can
 * take over without a visual regression. */
.aula-legacy-pdf {
	margin-block: clamp(1.5rem, 4vw, 2.75rem);
	border: 1px solid var(--aula-line);
	border-radius: var(--aula-radius-sm);
	background: var(--aula-white);
	box-shadow: 0 12px 30px rgba(16, 47, 37, 0.075);
	overflow: hidden;
}

.aula-legacy-pdf__header,
.aula-legacy-pdf__footer {
	display: flex;
	gap: 0.85rem;
	align-items: center;
	justify-content: space-between;
	padding: 0.9rem 1rem;
}

.aula-legacy-pdf__header {
	justify-content: flex-start;
	border-block-end: 1px solid var(--aula-line);
	background:
		radial-gradient(circle at 94% 5%, rgba(var(--aula-accent-rgb), 0.32), transparent 9rem),
		rgba(var(--aula-primary-rgb), 0.045);
}

.aula-legacy-pdf__badge {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	inline-size: 2.7rem;
	block-size: 2.7rem;
	border-radius: 0.8rem;
	color: var(--aula-primary-contrast);
	background: var(--aula-primary);
	font-size: 0.65rem;
	font-weight: 850;
	letter-spacing: 0.08em;
}

.aula-legacy-pdf__eyebrow,
.aula-legacy-pdf__title {
	display: block;
}

.aula-legacy-pdf__eyebrow {
	color: var(--aula-ink-soft);
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.3;
	text-transform: uppercase;
}

.aula-legacy-pdf__title {
	margin-block-start: 0.12rem;
	color: var(--aula-ink);
	font-family: var(--aula-display);
	font-size: clamp(1rem, 2vw, 1.3rem);
	letter-spacing: -0.025em;
	line-height: 1.2;
}

.aula-legacy-pdf__viewer {
	display: block;
	inline-size: 100%;
	block-size: min(72vh, 52rem);
	min-block-size: 34rem;
	border: 0;
	background: rgba(var(--aula-primary-rgb), 0.045);
}

.aula-legacy-pdf__viewer > p {
	margin: 0;
	padding: 1rem;
	color: var(--aula-ink);
}

.aula-legacy-pdf__open {
	display: inline-flex;
	align-items: center;
	min-block-size: 3rem;
	padding: 0.62rem 0.9rem;
	border-radius: 999px;
	color: var(--aula-primary-deep);
	background: rgba(var(--aula-primary-rgb), 0.075);
	font-weight: 760;
	text-decoration: none;
}

.aula-legacy-pdf__footer {
	border-block-start: 1px solid var(--aula-line);
	color: var(--aula-ink-soft);
	font-size: 0.76rem;
	font-weight: 700;
}

.aula-legacy-pdf__open:hover {
	background: rgba(var(--aula-primary-rgb), 0.055);
}

.aula-legacy-pdf__open:focus-visible {
	outline: 3px solid var(--aula-primary);
	outline-offset: -3px;
}

/* Spectra/UAGB blocks are author-controlled in Gutenberg. Only protect their
 * imported media and panels from viewport overflow; layout choices remain in
 * the editor rather than being overridden by the theme. */
:is(.wp-block-uagb-container, .wp-block-uagb-section, .wp-block-uagb-columns, .uagb-tabs__panel, .uagb-accordion__body) {
	box-sizing: border-box;
}

:is(.wp-block-uagb-container, .wp-block-uagb-section, .wp-block-uagb-columns, .uagb-tabs__panel, .uagb-accordion__body) :is(img, video, iframe, embed, object) {
	max-inline-size: 100%;
}

/* Legacy Envira galleries are rendered from their preserved attachment data,
 * not from the retired plugin. The links remain ordinary image links without
 * JavaScript; the visual layer adds the premium gallery rhythm progressively. */
.aula-legacy-envira {
	margin-block: clamp(1.75rem, 4vw, 3.25rem);
}

.aula-legacy-envira__grid {
	display: grid;
	grid-template-columns: repeat(var(--aula-legacy-gallery-columns, 3), minmax(0, 1fr));
	gap: clamp(0.7rem, 1.6vw, 1.15rem);
	margin: 0;
	padding: 0;
}

.aula-legacy-envira__item {
	min-inline-size: 0;
	margin: 0;
	border: 1px solid var(--aula-line);
	border-radius: var(--aula-radius-sm);
	background: var(--aula-white);
	box-shadow: 0 12px 30px rgba(16, 47, 37, 0.07);
	overflow: hidden;
}

.aula-legacy-envira__link {
	display: block;
	background: rgba(var(--aula-primary-rgb), 0.055);
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.aula-legacy-envira__image {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
	transition: transform 420ms cubic-bezier(0.2, 0.75, 0.25, 1);
}

.aula-legacy-envira__link:hover .aula-legacy-envira__image {
	transform: scale(1.045);
}

.aula-legacy-envira__link:focus-visible {
	outline: 3px solid var(--aula-primary);
	outline-offset: -3px;
}

.aula-legacy-envira__caption {
	padding: 0.72rem 0.85rem 0.8rem;
	color: var(--aula-ink-soft);
	font-size: 0.88rem;
	line-height: 1.45;
}

@media (max-width: 767px) {
	.woocommerce ul.products li.product,
	.wc-block-grid__product {
		padding: 0.7rem;
	}

	.pdfemb-viewer {
		border-radius: 1rem;
	}

	.aula-legacy-pdf {
		border-radius: 1rem;
	}

	.aula-legacy-pdf__viewer {
		block-size: min(66vh, 38rem);
		min-block-size: 27rem;
	}

	.aula-legacy-pdf__footer {
		align-items: stretch;
		flex-direction: column;
	}

	.aula-legacy-pdf__open {
		justify-content: center;
	}

	.aula-legacy-envira__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 420px) {
	.aula-legacy-envira__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.aula-legacy-envira__image {
		transition: none;
	}
}

/* CookieYes: consent controls share the theme's premium visual language. */
.cky-consent-container,
.cky-consent-container *,
.cky-modal,
.cky-modal * {
	box-sizing: border-box;
}

.cky-consent-container .cky-consent-bar,
.cky-modal .cky-preference-center {
	border: 1px solid rgba(var(--aula-primary-rgb), 0.14) !important;
	border-radius: clamp(1.15rem, 2vw, 1.65rem) !important;
	box-shadow: 0 24px 70px rgba(6, 30, 21, 0.2) !important;
	font-family: var(--wp--preset--font-family--body, inherit) !important;
	overflow: hidden;
}

.cky-consent-container .cky-consent-bar {
	max-inline-size: min(33rem, calc(100vw - 2rem)) !important;
	padding: clamp(1.25rem, 2.8vw, 1.8rem) !important;
}

.cky-consent-container .cky-title,
.cky-modal .cky-preference-title {
	max-inline-size: 100%;
	color: var(--aula-primary-deep) !important;
	font-family: var(--wp--preset--font-family--display, inherit) !important;
	font-size: clamp(1.25rem, 2.4vw, 1.65rem) !important;
	font-weight: 800 !important;
	letter-spacing: -0.025em !important;
	line-height: 1.12 !important;
	hyphens: none !important;
	overflow-wrap: normal !important;
	white-space: normal !important;
	word-break: normal !important;
}

.cky-consent-container .cky-notice-des,
.cky-modal :is(.cky-preference-content-wrapper, .cky-accordion-header-des, .cky-gpc-wrapper) {
	color: var(--aula-ink-soft) !important;
	font-size: 0.95rem !important;
	line-height: 1.62 !important;
}

.cky-consent-container .cky-notice-des .cky-policy {
	color: var(--aula-primary-deep) !important;
	font-weight: 750 !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 0.18em !important;
}

.cky-consent-container .cky-notice-btn-wrapper,
.cky-modal .cky-prefrence-btn-wrapper {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.65rem !important;
}

.cky-consent-container .cky-notice-btn-wrapper .cky-btn,
.cky-modal .cky-prefrence-btn-wrapper .cky-btn {
	min-block-size: 2.75rem !important;
	margin: 0 !important;
	border: 1px solid var(--aula-primary) !important;
	border-radius: 999px !important;
	font-family: var(--wp--preset--font-family--body, inherit) !important;
	font-size: 0.82rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.015em !important;
	line-height: 1.2 !important;
	text-align: center !important;
}

.cky-consent-container .cky-notice-btn-wrapper .cky-btn {
	flex: 1 1 8.75rem !important;
}

.cky-consent-container .cky-btn-accept,
.cky-modal .cky-btn-accept {
	color: var(--aula-primary-contrast) !important;
	background: var(--aula-primary) !important;
}

.cky-consent-container :is(.cky-btn-reject, .cky-btn-customize),
.cky-modal :is(.cky-btn-reject, .cky-btn-preferences) {
	color: var(--aula-primary-deep) !important;
	background: var(--aula-white) !important;
}

.cky-consent-container .cky-btn:hover,
.cky-modal .cky-btn:hover {
	transform: translateY(-1px);
}

.cky-consent-container .cky-btn:focus-visible,
.cky-modal :is(.cky-btn, button, [role="button"]):focus-visible,
.cky-btn-revisit-wrapper:focus-visible {
	outline: 3px solid rgba(var(--aula-primary-rgb), 0.38) !important;
	outline-offset: 3px !important;
}

.cky-modal .cky-preference-header,
.cky-modal .cky-preference-body-wrapper,
.cky-modal .cky-preference-footer {
	background: var(--aula-white) !important;
}

.cky-modal .cky-accordion-wrapper {
	border-color: rgba(var(--aula-primary-rgb), 0.13) !important;
}

.cky-modal .cky-accordion-btn,
.cky-modal .cky-accordion-header-des {
	color: var(--aula-primary-deep) !important;
}

.cky-btn-revisit-wrapper {
	background: var(--aula-primary) !important;
	border: 1px solid rgba(255, 255, 255, 0.5) !important;
	box-shadow: 0 12px 34px rgba(6, 30, 21, 0.22) !important;
}

@media (max-width: 575px) {
	.cky-consent-container {
		inset-inline: 0 !important;
		padding-inline: 0.75rem !important;
	}

	.cky-consent-container .cky-consent-bar {
		max-inline-size: none !important;
		inline-size: 100% !important;
	}

	.cky-consent-container .cky-notice-btn-wrapper .cky-btn {
		flex-basis: 100% !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cky-consent-container .cky-btn,
	.cky-modal .cky-btn {
		transition: none !important;
	}
}
