/* Reset and document defaults, loaded on every page before everything else.
   Takes the place of the parent theme's base styles; WooCommerce's stylesheets
   are off (functions.php), so the few WooCommerce states used on the site
   (notices, loading overlay, star rating) are defined here too. */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
	margin: 0;
	background: #fff; color: #282337;
	font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.6;
	-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
#wrapper { display: flex; flex-direction: column; min-height: 100vh; }
#main { flex: 1 0 auto; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; font-weight: 500; line-height: 1.25; color: inherit; }
p, ul, ol, dl, figure, blockquote, table { margin: 0 0 1em; }
ul, ol { padding-left: 1.4em; }
a { color: #7141cc; text-decoration: none; }
img, svg, video, iframe { max-width: 100%; }
img, video { height: auto; vertical-align: middle; }
hr { height: 0; border: 0; border-top: 1px solid #eae5f0; }
strong, b { font-weight: 700; }
small { font-size: 85%; }
table { border-collapse: collapse; width: 100%; }
th { text-align: left; }
mark { background: none; color: inherit; font-weight: 500; }
address { font-style: normal; }
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }

button, input, select, textarea { margin: 0; font: inherit; color: inherit; }
button, [type=button], [type=submit], [type=reset] { cursor: pointer; }
button:disabled, [type=submit]:disabled { cursor: default; }
input[type=number] { -moz-appearance: textfield; appearance: textfield; }
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
textarea { resize: vertical; }
select {
	-webkit-appearance: none; appearance: none; padding-right: 34px !important;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23756d83' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 16px no-repeat;
}
:focus-visible { outline: 3px solid #7141cc; outline-offset: 3px; }

/* Accessibility */
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.skip-link:focus {
	position: fixed !important; z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; margin: 0; padding: 12px 18px;
	clip: auto; clip-path: none; background: #fff; color: #7141cc; border-radius: 7px; box-shadow: 0 4px 20px #28233733;
}
.hidden, [hidden] { display: none !important; }
.clear { clear: both; }

/* WooCommerce states */
.blockUI.blockOverlay { background: #fff !important; opacity: .6 !important; cursor: wait !important; }
.woocommerce-store-notice, p.demo_store { display: none; }
/* Star rating: <div class="star-rating"><span style="width:96%">Rated …</span></div> */
.star-rating { position: relative; display: inline-block; overflow: hidden; width: 5.4em; height: 1.1em; font-size: 13px; line-height: 1.1; letter-spacing: .08em; vertical-align: -1px; }
.star-rating::before { content: "★★★★★"; position: absolute; inset: 0; color: #e3dcec; }
.star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; height: 100%; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: #f5a623; }
.woocommerce-invalid :is(input.input-text, select) { border-color: #d6455d !important; }

/* Notices (WooCommerce's notices/*.php markup): above cart, checkout, account */
.woocommerce-notices-wrapper:empty { display: none; }
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews) {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px;
	margin: 0 0 16px; padding: 12px 16px; list-style: none;
	background: #f7f4fc; border: 1px solid #eae5f0; border-radius: 9px;
	font-size: 13px; line-height: 1.6; color: #282337;
}
.woocommerce-error { display: block; border-color: #efb3be; background: #fdf1f3; }
.woocommerce-error li { margin: 0; }
.woocommerce-message { border-color: #cdbfe6; }
:is(.woocommerce-message, .woocommerce-info) .button {
	order: 2; margin-left: auto; padding: 0; background: none; border: 0;
	color: #7141cc; font-size: 12px; font-weight: 500; text-decoration: underline;
}
.woocommerce-info a:not(.button) { text-decoration: underline; }

/* Generic WooCommerce buttons nothing else restyles (a plugin's, a notice's) */
.button, button.button, input.button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 40px; padding: 10px 18px; border: 0; border-radius: 7px;
	background: #7141cc; color: #fff; font-size: 13px; font-weight: 700; line-height: 1.2;
}
.button:hover { filter: brightness(.93); }
.button:disabled, .button.disabled { opacity: .5; cursor: default; filter: none; }

/* Block editor content outside our templates */
.wp-block-image img { height: auto; }
.wp-block-embed__wrapper iframe { width: 100%; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
