/*!
 * Mozzo Corporate — theme stylesheet.
 * Loaded after Bootstrap 5.3.8. Every value that the Customizer controls is
 * written against a --mozzo-* custom property (see inc/tokens.php for the
 * PHP side that fills these in); this file only carries structure.
 */

body {
	background: var( --mozzo-bg );
	color: var( --mozzo-body );
	font-family: var( --mozzo-font-body );
	font-size: var( --mozzo-font-base-size );
	line-height: 1.3;
}

/* Bootstrap sets opacity: 1 on ::placeholder, which renders it as dark as
   real input text under this theme's ink color — fade it so placeholders
   read as hints, not filled-in values. */
::placeholder {
	opacity: .5 !important;
}

h1, h2, h3, h4, h5, h6 {
	color: var( --mozzo-ink );
	font-family: var( --mozzo-font-heading );
	letter-spacing: -0.01em;
}

a {
	color: var( --mozzo-primary );
}
a:hover {
	color: var( --mozzo-primary-hover );
}

section[data-reveal] {
	padding: var( --mozzo-pad ) 0;
}
section.s-surface {
	background: var( --mozzo-surface );
}
section.s-band {
	background: var( --mozzo-band );
}

/* Scroll-reveal (the one behaviour v8 keeps as custom JS — see theme.js) */
[data-reveal] {
	opacity: 0;
	transform: translateY( 24px );
	transition: opacity .7s ease, transform .7s ease;
}
[data-reveal].mozzo-in {
	opacity: 1;
	transform: none;
}
@media ( prefers-reduced-motion: reduce ) {
	[data-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* -------------------------------------------------- section heads -------- */
.mozzo-heading {
	font-size: clamp( 1.75rem, 3.4vw, 2.4rem );
	font-weight: var( --mozzo-font-heading-weight );
	line-height: 1.18;
}
.mozzo-chip {
	display: inline-block;
	font-weight: 700;
	letter-spacing: .03em;
	padding: .45rem 1.1rem;
	font-size: .78rem;
	border-radius: var( --mozzo-pill );
	color: var( --mozzo-body );
	background: var( --mozzo-primary-10 );
	border: 1px solid var( --mozzo-primary-50 );
}
.mozzo-chip-solid,
.mozzo-chip-on-primary {
	background: var( --mozzo-primary );
	border-color: var( --mozzo-primary );
	color: var( --mozzo-primary-contrast );
}
.mozzo-close-panel .mozzo-chip-on-primary {
	background: rgba( 255, 255, 255, .16 );
	border-color: rgba( 255, 255, 255, .32 );
}

/* -------------------------------------------------- nav ------------------ */
.mozzo-nav {
	background: rgba( 255, 255, 255, .92 );
	backdrop-filter: blur( 10px );
	border-bottom: 1px solid var( --mozzo-line );
}
.mozzo-logo {
	font-size: 1.35rem;
	font-weight: 900;
	color: var( --mozzo-ink );
	letter-spacing: -.03em;
}

/* -------------------------------------------------- hero ----------------- */
.mozzo-hero-section {
	position: relative;
	overflow: hidden;
}
/* Static/random mode: the background image lives on ::before (not on the
   section itself) so `filter: blur()` can apply to just the image, never
   to the text/buttons in .container. It's oversized (inset: -40px) and
   blurred past the section's own edge, then cropped by the section's
   `overflow: hidden`, so a blurred image never shows a soft/transparent
   fringe at its border. The colour overlay rides along as a second, flat
   background-image layer (a linear-gradient of one solid colour, built
   from the same --mozzo-hero-overlay-color the slideshow's .mozzo-hero-
   overlay uses directly) so one filter covers both. Slideshow mode instead
   renders real .mozzo-hero-slide elements (see below) as later DOM
   siblings, which simply paint over this pseudo-element — it's left
   unpopulated (no --mozzo-hero-bg-image) in that mode, so nothing is lost
   by not suppressing it outright. */
.mozzo-hero-section::before {
	content: '';
	position: absolute;
	inset: -40px;
	z-index: 0;
	background-image: linear-gradient( var( --mozzo-hero-overlay-color, transparent ), var( --mozzo-hero-overlay-color, transparent ) ), var( --mozzo-hero-bg-image, none );
	background-size: cover, var( --mozzo-hero-bg-size, cover );
	background-position: center, var( --mozzo-hero-bg-position, center center );
	background-repeat: no-repeat, var( --mozzo-hero-bg-repeat, no-repeat );
	filter: blur( var( --mozzo-hero-bg-blur, 0px ) );
	pointer-events: none;
}
/* Slideshow mode: one absolutely-positioned div per gallery image, all
   stacked on top of each other, crossfading via opacity as theme.js swaps
   which one carries .is-active on an interval. Sized/blurred the same way
   as the ::before layer above, for the same fringe-cropping reason. */
.mozzo-hero-slide {
	position: absolute;
	inset: -40px;
	z-index: 0;
	background-size: var( --mozzo-hero-bg-size, cover );
	background-position: var( --mozzo-hero-bg-position, center center );
	background-repeat: var( --mozzo-hero-bg-repeat, no-repeat );
	filter: blur( var( --mozzo-hero-bg-blur, 0px ) );
	opacity: 0;
	transition: opacity 1.2s ease;
	pointer-events: none;
}
.mozzo-hero-slide.is-active {
	opacity: 1;
}
@media ( prefers-reduced-motion: reduce ) {
	.mozzo-hero-slide {
		transition: none;
	}
}
/* The overlay's own div (slideshow mode only): unblurred and unbled, since
   a flat colour has no fringe to hide, and it must stay put while slides
   crossfade beneath it. */
.mozzo-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var( --mozzo-hero-overlay-color, transparent );
	pointer-events: none;
}
.mozzo-hero-section > .container {
	position: relative;
	z-index: 1;
}
.mozzo-hero-title {
	font-size: clamp( 2.3rem, 5.6vw, 3.3rem );
	font-weight: 700;
	line-height: 1.06;
	letter-spacing: -.03em;
}
.mozzo-lede {
	max-width: 44ch;
}
.mozzo-accent {
	color: var( --mozzo-primary );
}
/* Flush to the bottom of the hero section regardless of how tall the copy
   column (chip/heading/lede/CTAs) renders: align-self-lg-end (in hero.php)
   drops the illustration to the bottom of the row instead of the row's
   vertical-center, and this negative margin then bleeds it the rest of the
   way through the section's own bottom padding — cropped clean by the
   section's `overflow: hidden` above, so it lands exactly on the section's
   outer edge at any content height or viewport width. */
.mozzo-hero-illustration {
	max-width: 100%;
	margin-bottom: calc( -1 * var( --mozzo-pad ) );
}

/* -------------------------------------------------- story ---------------- */
.mozzo-story-text {
	font-size: clamp( 1.15rem, 2.2vw, 1.45rem );
	line-height: 1.55;
	color: var( --mozzo-ink );
	font-weight: 500;
}

/* -------------------------------------------------- cards ----------------- */
.mozzo-card {
	background: var( --mozzo-surface );
	border-radius: var( --mozzo-radius );
	padding: 1.5rem;
	box-shadow: var( --mozzo-sh-1 );
	border: 1px solid transparent;
	transition: transform .2s ease, box-shadow .2s ease;
}
.mozzo-card:hover {
	transform: translateY( -4px );
	box-shadow: var( --mozzo-sh-2 );
}
.mozzo-ico {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var( --mozzo-primary-10 );
	border: 1px solid var( --mozzo-primary-50 );
	display: grid;
	place-items: center;
	color: var( --mozzo-primary );
	font-size: 1.2rem;
	margin-bottom: .9rem;
}
.mozzo-step-n {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var( --mozzo-primary );
	color: #fff;
	display: grid;
	place-items: center;
	font-weight: 800;
	font-size: .88rem;
	margin-bottom: .85rem;
}
.mozzo-when {
	display: inline-block;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var( --mozzo-primary );
	background: var( --mozzo-primary-10 );
	border-radius: var( --mozzo-pill );
	padding: .22rem .65rem;
	margin-bottom: .6rem;
}

/* -------------------------------------------------- antes / después ------ */
.mozzo-col-card {
	border-radius: var( --mozzo-radius );
	padding: 1.6rem 1.5rem;
}
.mozzo-col-before {
	background: var( --mozzo-line );
}
.mozzo-col-after {
	background: var( --mozzo-surface );
	box-shadow: var( --mozzo-sh-1 );
	border: 1px solid var( --mozzo-primary-50 );
}

/* -------------------------------------------------- pedidos -------------- */
.mozzo-fake-input {
	border: 1px solid var( --mozzo-line );
	border-radius: 10px;
	padding: .6rem .75rem;
	font-size: .9rem;
	color: var( --mozzo-ink );
	background: #fff;
}
.mozzo-panel-dark {
	background: var( --mozzo-primary );
	border-radius: var( --mozzo-radius );
	padding: 1.75rem 1.6rem;
	color: #fff;
	box-shadow: var( --mozzo-sh-3 );
}
.mozzo-panel-fine {
	color: rgba( 255, 255, 255, .72 );
	font-size: .8rem;
}

/* -------------------------------------------------- quote ----------------- */
.mozzo-quote-mark {
	font-size: 4rem;
	line-height: 1;
	color: var( --mozzo-primary-50 );
	font-weight: 900;
}
.mozzo-quote-text {
	font-size: clamp( 1.3rem, 2.8vw, 1.85rem );
	font-weight: 800;
	color: var( --mozzo-ink );
	line-height: 1.35;
	letter-spacing: -.015em;
}

/* -------------------------------------------------- impresión ------------ */
.mozzo-fmt {
	background: var( --mozzo-surface );
	border-radius: 12px;
	padding: .9rem;
	box-shadow: var( --mozzo-sh-1 );
	transition: transform .2s ease, box-shadow .2s ease;
}
.mozzo-fmt:hover {
	transform: translateY( -3px );
	box-shadow: var( --mozzo-sh-2 );
}
.mozzo-fmt-sheet {
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: .6rem;
}
.mozzo-fmt-paper {
	background: var( --mozzo-bg );
	border: 1px solid var( --mozzo-line );
	border-radius: 5px;
	display: flex;
	gap: 2px;
	padding: 4px;
	overflow: hidden;
}
.mozzo-fmt-paper-p {
	width: 52px;
	height: 68px;
}
.mozzo-fmt-paper-l {
	width: 72px;
	height: 50px;
}
.mozzo-fmt-panel {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 2px;
	background: #fff;
	border-radius: 2px;
}
.mozzo-fmt-panel-sep {
	border-left: 1px dashed var( --mozzo-primary-50 );
}
.mozzo-fmt-ln {
	height: 2px;
	border-radius: 1px;
	background: rgba( 11, 23, 43, .16 );
}
.mozzo-fmt-ln-t {
	background: var( --mozzo-primary );
	width: 70%;
	height: 3px;
}
.mozzo-fmt-ln-s {
	width: 80%;
}

/* -------------------------------------------------- precios --------------- */
.mozzo-trial-panel {
	background: var( --mozzo-primary );
	border-radius: var( --mozzo-radius );
	padding: 2rem 1.75rem;
	box-shadow: var( --mozzo-sh-3 );
}
.mozzo-plan-card {
	position: relative;
}
.mozzo-plans-grid .badge.position-absolute {
	white-space: nowrap;
}

/* -------------------------------------------------- FAQ -------------------- */
.mozzo-faq .accordion-item {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: var( --mozzo-sh-1 );
	border: none;
	margin-bottom: .7rem;
}
.mozzo-faq .accordion-button {
	font-weight: 700;
	color: var( --mozzo-ink );
}
.mozzo-faq .accordion-button:focus {
	box-shadow: none;
}

/* -------------------------------------------------- cierre ----------------- */
.mozzo-close-panel {
	background: var( --mozzo-primary );
	border-radius: var( --mozzo-radius );
	padding: clamp( 2.5rem, 5vw, 3.5rem ) 1.5rem;
	box-shadow: var( --mozzo-sh-3 );
	max-width: 720px;
}

/* -------------------------------------------------- footer ----------------- */
.mozzo-footer {
	background: var( --mozzo-bg );
	border-top: 1px solid var( --mozzo-line ) !important;
}

/* -------------------------------------------------- checkout stepper ------- */
.mozzo-checkout-steps {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 0;
	max-width: 420px;
	margin-left: auto;
	margin-right: auto;
}
.mozzo-checkout-steps .mozzo-checkout-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .4rem;
	flex-shrink: 0;
}
.mozzo-checkout-steps .mozzo-checkout-step-dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	font-size: .85rem;
	font-weight: 700;
	line-height: 1;
	background-color: var( --mozzo-surface );
	border: 2px solid var( --mozzo-line );
	color: var( --mozzo-muted );
	transition: background-color .2s ease-in-out, border-color .2s ease-in-out, color .2s ease-in-out;
}
.mozzo-checkout-steps .mozzo-checkout-step-label {
	font-size: .8rem;
	font-weight: 500;
	color: var( --mozzo-muted );
	text-align: center;
	white-space: nowrap;
}
.mozzo-checkout-steps .mozzo-checkout-step.active .mozzo-checkout-step-dot {
	background-color: var( --mozzo-surface );
	border-color: var( --mozzo-primary );
	color: var( --mozzo-primary );
}
.mozzo-checkout-steps .mozzo-checkout-step.active .mozzo-checkout-step-label {
	color: var( --mozzo-primary );
	font-weight: 700;
}
.mozzo-checkout-steps .mozzo-checkout-step.completed {
	cursor: pointer;
}
.mozzo-checkout-steps .mozzo-checkout-step.completed .mozzo-checkout-step-dot {
	background-color: var( --mozzo-primary );
	border-color: var( --mozzo-primary );
	color: #fff;
}
.mozzo-checkout-steps .mozzo-checkout-step.completed .mozzo-checkout-step-label {
	color: var( --mozzo-primary );
	font-weight: 700;
}
.mozzo-checkout-steps .mozzo-checkout-step.completed:hover .mozzo-checkout-step-dot {
	filter: brightness( 1.15 );
}
.mozzo-checkout-steps .mozzo-checkout-step-line {
	flex: 1 1 auto;
	height: 2px;
	min-width: 2rem;
	margin-top: .9rem;
	background-color: var( --mozzo-line );
	transition: background-color .2s ease-in-out;
}
.mozzo-checkout-steps .mozzo-checkout-step-line.completed {
	background-color: var( --mozzo-primary );
}
.mozzo-checkout-restaurant-name {
	font-size: 1.1rem;
}
.mozzo-checkout-restaurant-name .mozzo-checkout-restaurant-name-label {
	color: var( --mozzo-muted );
	font-weight: 500;
	margin-right: .35rem;
}

/* -------------------------------------------------- content typography --- */
/* Applies to raw WYSIWYG output (Términos, Privacidad, blog posts) that
   carries no Bootstrap classes of its own. */
.mozzo-page-content,
.mozzo-entry-content {
	color: var( --mozzo-body );
}
.mozzo-page-content > *:first-child,
.mozzo-entry-content > *:first-child {
	margin-top: 0;
}
.mozzo-page-content p,
.mozzo-entry-content p {
	margin-bottom: 1.1em;
}
.mozzo-page-content h2,
.mozzo-entry-content h2 {
	margin-top: 2.2em;
	margin-bottom: .8em;
	font-size: clamp( 1.4rem, 2.6vw, 1.85rem );
}
.mozzo-page-content h3,
.mozzo-entry-content h3 {
	margin-top: 1.8em;
	margin-bottom: .7em;
	font-size: clamp( 1.15rem, 2vw, 1.4rem );
}
.mozzo-page-content h4,
.mozzo-entry-content h4,
.mozzo-page-content h5,
.mozzo-entry-content h5,
.mozzo-page-content h6,
.mozzo-entry-content h6 {
	margin-top: 1.5em;
	margin-bottom: .6em;
}
.mozzo-page-content a,
.mozzo-entry-content a {
	text-decoration-color: var( --mozzo-primary-50 );
	text-underline-offset: .15em;
}
.mozzo-page-content a:hover,
.mozzo-entry-content a:hover {
	text-decoration-color: currentColor;
}
.mozzo-page-content strong,
.mozzo-entry-content strong,
.mozzo-page-content b,
.mozzo-entry-content b {
	color: var( --mozzo-ink );
}
.mozzo-page-content hr,
.mozzo-entry-content hr {
	border: none;
	border-top: 1px solid var( --mozzo-line );
	margin: 2rem 0;
}
.mozzo-page-content blockquote,
.mozzo-entry-content blockquote {
	margin: 1.5em 0;
	padding: .2rem 0 .2rem 1.25rem;
	border-left: 3px solid var( --mozzo-primary-50 );
	color: var( --mozzo-ink );
	font-style: italic;
}
.mozzo-page-content code,
.mozzo-entry-content code {
	background: var( --mozzo-band );
	color: var( --mozzo-ink );
	padding: .15em .4em;
	border-radius: 5px;
	font-size: .9em;
}
.mozzo-page-content pre,
.mozzo-entry-content pre {
	background: var( --mozzo-band );
	border-radius: var( --mozzo-radius );
	padding: 1rem 1.25rem;
	overflow-x: auto;
}
.mozzo-page-content pre code,
.mozzo-entry-content pre code {
	background: none;
	padding: 0;
}
.mozzo-page-content img,
.mozzo-entry-content img {
	max-width: 100%;
	height: auto;
	border-radius: var( --mozzo-radius );
}

/* lists */
/* :not(.woocommerce *) keeps this WYSIWYG-content bullet styling off
   WooCommerce's own lists (payment methods, product grids, etc.) — WC
   already sets list-style:none on those itself, but the custom ::before
   dot below doesn't respect list-style and was drawing on top regardless. */
.mozzo-page-content ul:not(.woocommerce *),
.mozzo-entry-content ul:not(.woocommerce *) {
	list-style: none;
	padding-left: 0;
	margin-bottom: 1.1em;
}
.mozzo-page-content ul:not(.woocommerce *) > li,
.mozzo-entry-content ul:not(.woocommerce *) > li {
	position: relative;
	padding-left: 1.5em;
	margin-bottom: .5em;
}
.mozzo-page-content ul:not(.woocommerce *) > li::before,
.mozzo-entry-content ul:not(.woocommerce *) > li::before {
	content: '';
	position: absolute;
	left: .1em;
	top: .55em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var( --mozzo-primary );
}
.mozzo-page-content ol,
.mozzo-entry-content ol {
	padding-left: 1.3em;
	margin-bottom: 1.1em;
}
.mozzo-page-content ol > li,
.mozzo-entry-content ol > li {
	padding-left: .3em;
	margin-bottom: .5em;
}
.mozzo-page-content ul ul,
.mozzo-entry-content ul ul,
.mozzo-page-content ul ol,
.mozzo-entry-content ul ol,
.mozzo-page-content ol ul,
.mozzo-entry-content ol ul,
.mozzo-page-content ol ol,
.mozzo-entry-content ol ol {
	margin-top: .5em;
	margin-bottom: 0;
}

/* .list-unstyled items (footer menus, plan feature lists, etc.) get the
   same spacing as Bootstrap's .pb-2 utility. */
.list-unstyled > li {
	padding-bottom: .5rem;
}

/* definition lists */
.mozzo-page-content dl,
.mozzo-entry-content dl {
	margin-bottom: 1.1em;
}
.mozzo-page-content dt,
.mozzo-entry-content dt {
	font-weight: 700;
	color: var( --mozzo-ink );
	margin-top: 1em;
}
.mozzo-page-content dd,
.mozzo-entry-content dd {
	margin-left: 0;
	padding-left: 1em;
	border-left: 2px solid var( --mozzo-line );
}

/* tables */
/* :not(.shop_table) keeps this WYSIWYG-content styling off WooCommerce's own
   tables (cart, checkout order review, My Account orders) — display:block
   here breaks native table width distribution, which is what those tables
   need to stretch full-width instead of shrinking to their content. */
.mozzo-page-content table:not(.shop_table),
.mozzo-entry-content table:not(.shop_table) {
	display: block;
	width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	margin-bottom: 1.5em;
	font-size: .95em;
}
.mozzo-page-content table:not(.shop_table) th,
.mozzo-entry-content table:not(.shop_table) th,
.mozzo-page-content table:not(.shop_table) td,
.mozzo-entry-content table:not(.shop_table) td {
	padding: .65rem .9rem;
	border-bottom: 1px solid var( --mozzo-line );
	text-align: left;
	vertical-align: top;
}
.mozzo-page-content table:not(.shop_table) th,
.mozzo-entry-content table:not(.shop_table) th {
	color: var( --mozzo-ink );
	font-weight: 700;
	background: var( --mozzo-band );
	white-space: nowrap;
}
.mozzo-page-content table:not(.shop_table) tbody tr:hover,
.mozzo-entry-content table:not(.shop_table) tbody tr:hover {
	background: var( --mozzo-bg );
}

/* checkboxes / radio buttons typed directly into content */
.mozzo-page-content input[type="checkbox"],
.mozzo-entry-content input[type="checkbox"],
.mozzo-page-content input[type="radio"],
.mozzo-entry-content input[type="radio"] {
	width: 1.1em;
	height: 1.1em;
	margin-right: .5em;
	accent-color: var( --mozzo-primary );
	vertical-align: -.15em;
}

/* -------------------------------------------------- contact form 7 ------- */
.wpcf7-form {
	max-width: 560px;
}
.wpcf7-form p {
	margin-bottom: 1.1rem;
}
.wpcf7-form label {
	display: block;
	font-weight: 600;
	color: var( --mozzo-ink );
	margin-bottom: .4rem;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="date"],
.wpcf7-form input[type="search"],
.wpcf7-form select,
.wpcf7-form textarea {
	display: block;
	width: 100%;
	padding: .6rem .9rem;
	border: 1px solid var( --mozzo-line );
	border-radius: 10px;
	background: var( --mozzo-surface );
	color: var( --mozzo-ink );
	font-family: var( --mozzo-font-body );
	font-size: .95rem;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.wpcf7-form textarea {
	min-height: 130px;
	resize: vertical;
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
	outline: none;
	border-color: var( --mozzo-primary );
	box-shadow: 0 0 0 .2rem var( --mozzo-primary-10 );
}
.wpcf7-form input[type="checkbox"],
.wpcf7-form input[type="radio"] {
	width: 1.1em;
	height: 1.1em;
	margin-right: .5em;
	accent-color: var( --mozzo-primary );
	vertical-align: -.15em;
}
.wpcf7-form .wpcf7-list-item {
	display: block;
	margin: 0 0 .5rem;
}
.wpcf7-form .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	font-weight: 400;
	color: var( --mozzo-body );
	margin-bottom: 0;
}
.wpcf7-form input[type="submit"],
.wpcf7-form .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .65rem 1.6rem;
	border: none;
	border-radius: var( --mozzo-pill );
	background: var( --mozzo-primary );
	color: var( --mozzo-primary-contrast );
	font-weight: 700;
	cursor: pointer;
	transition: background-color .2s ease;
}
.wpcf7-form input[type="submit"]:hover,
.wpcf7-form .wpcf7-submit:hover {
	background: var( --mozzo-primary-hover );
}
.wpcf7-form input[type="submit"]:disabled,
.wpcf7-form .wpcf7-submit:disabled {
	opacity: .6;
	cursor: not-allowed;
}
.wpcf7-form .wpcf7-not-valid {
	border-color: #dc3545 !important;
}
.wpcf7-form .wpcf7-not-valid-tip {
	display: block;
	color: #dc3545;
	font-size: .82rem;
	margin-top: .35rem;
}
.wpcf7-form .wpcf7-response-output {
	margin-top: 1rem;
	padding: .75rem 1rem;
	border-radius: 10px;
	border: 1px solid var( --mozzo-line );
	font-size: .9rem;
}
.wpcf7-form.sent .wpcf7-response-output {
	border-color: var( --mozzo-good );
	color: var( --mozzo-good );
}
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output,
.wpcf7-form.spam .wpcf7-response-output {
	border-color: #dc3545;
	color: #dc3545;
}
.wpcf7-form .wpcf7-spinner {
	margin-left: .6rem;
}
