/* Camphill MK site tools. Loaded after Avada's dynamic CSS. */

/* ---------- Page content padding: sections run edge to edge ---------- */
body {
	--main_padding-top: 0px;
	--main_padding-bottom: 0px;
	--main_padding-top-or-55px: 0px;
}
#main { padding-top: 0 !important; padding-bottom: 0 !important; }

/* ---------- Heading scale ---------- */
body {
	--h1_typography-font-size: 38px;
	--h2_typography-font-size: 34px;
	--h3_typography-font-size: 28px;
	--h4_typography-font-size: 22px;
	--h5_typography-font-size: 18px;
	--h6_typography-font-size: 16px;
}
@media (max-width: 640px) {
	body {
		--h1_typography-font-size: 32px;
		--h2_typography-font-size: 28px;
		--h3_typography-font-size: 24px;
		--h4_typography-font-size: 20px;
	}
}

/* ---------- Cards and photos: soft, floating shadow and rounder corners ---------- */
.fusion-layout-column[style*="--awb-box-shadow"] {
	--awb-box-shadow: 0 1px 2px rgba(30, 27, 69, .04), 0 10px 24px -8px rgba(30, 27, 69, .10), 0 28px 56px -24px rgba(30, 27, 69, .18) !important;
	--awb-border-radius: 20px 20px 20px 20px !important;
	--awb-border-radius-top-left: 20px !important;
	--awb-border-radius-top-right: 20px !important;
	--awb-border-radius-bottom-right: 20px !important;
	--awb-border-radius-bottom-left: 20px !important;
	--awb-inner-bg-border-radius: 20px 20px 20px 20px !important;
}
.fusion-layout-column[style*="--awb-box-shadow"] > .fusion-column-wrapper,
.fusion-layout-column[style*="--awb-box-shadow"] > .fusion-column-inner-bg {
	transition: box-shadow .4s cubic-bezier(.22, .8, .3, 1);
}

/* Cards in a row are the same height, with the link sitting on the bottom line. */
.fusion-row:has(> .fusion-layout-column[style*="--awb-box-shadow"] .fusion-button),
.fusion-row:has(> .fusion-layout-column[style*="--awb-box-shadow"] .fb-icon-element) {
	align-items: stretch;
}
.fusion-layout-column[style*="--awb-box-shadow"] > .fusion-column-wrapper > div:last-child:has(> .fusion-button) {
	margin-top: auto;
	padding-top: 6px;
}

/* Linked cards: the whole card is clickable and lifts on hover. */
.fusion-column-inner-bg-wrapper { transition: transform .4s cubic-bezier(.22, .8, .3, 1); }
.fusion-column-inner-bg-wrapper .fusion-column-inner-bg .fusion-column-anchor { position: absolute; inset: 0; }
.fusion-column-inner-bg-wrapper > .fusion-column-wrapper { pointer-events: none; }
.fusion-column-inner-bg-wrapper > .fusion-column-wrapper a,
.fusion-column-inner-bg-wrapper > .fusion-column-wrapper button,
.fusion-column-inner-bg-wrapper > .fusion-column-wrapper input,
.fusion-column-inner-bg-wrapper > .fusion-column-wrapper select,
.fusion-column-inner-bg-wrapper > .fusion-column-wrapper textarea { pointer-events: auto; }
.fusion-column-inner-bg-wrapper[style*="--awb-box-shadow"]:hover {
	transform: translateY(-6px);
	--awb-box-shadow: 0 2px 4px rgba(30, 27, 69, .05), 0 18px 36px -10px rgba(30, 27, 69, .16), 0 40px 72px -28px rgba(30, 27, 69, .26) !important;
}
.fusion-column-inner-bg-wrapper .fusion-imageframe img { transition: transform .6s cubic-bezier(.22, .8, .3, 1); }
.fusion-column-inner-bg-wrapper:hover .fusion-imageframe img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) {
	.fusion-column-inner-bg-wrapper,
	.fusion-column-inner-bg-wrapper .fusion-imageframe img { transition: none; }
	.fusion-column-inner-bg-wrapper:hover,
	.fusion-column-inner-bg-wrapper:hover .fusion-imageframe img { transform: none; }
}

/* ---------- Button pairs: side by side, second one outlined with no icon ---------- */
.fusion-layout-column.chm-btn-row > .fusion-column-wrapper { gap: 12px !important; column-gap: 12px !important; row-gap: 12px !important; align-items: center; }
.chm-btn-row > .fusion-column-wrapper > div { margin: 0 !important; }
.fusion-button.chm-btn-outline,
.fusion-button.chm-btn-outline-dark {
	background: transparent !important;
	border: 2px solid currentColor !important;
	box-shadow: none !important;
}
.fusion-button.chm-btn-outline { color: #fff !important; }
.fusion-button.chm-btn-outline .fusion-button-text { color: #fff !important; }
.fusion-button.chm-btn-outline:hover,
.fusion-button.chm-btn-outline:focus-visible { background: #fff !important; border-color: #fff !important; }
.fusion-button.chm-btn-outline:hover .fusion-button-text,
.fusion-button.chm-btn-outline:focus-visible .fusion-button-text { color: var(--awb-color5) !important; }
.fusion-button.chm-btn-outline-dark { color: var(--awb-color5) !important; }
.fusion-button.chm-btn-outline-dark .fusion-button-text { color: var(--awb-color5) !important; }
.fusion-button.chm-btn-outline-dark:hover,
.fusion-button.chm-btn-outline-dark:focus-visible { background: var(--awb-color5) !important; border-color: var(--awb-color5) !important; }
.fusion-button.chm-btn-outline-dark:hover .fusion-button-text,
.fusion-button.chm-btn-outline-dark:focus-visible .fusion-button-text { color: #fff !important; }
.fusion-button.chm-btn-outline .awb-button__icon,
.fusion-button.chm-btn-outline-dark .awb-button__icon { display: none; }

/* ---------- Simple page title bar and readable text column (policy pages) ---------- */
.chm-ptb .fusion-title-heading { line-height: 1.15; }
.chm-prose { font-size: 17px; line-height: 1.7; }
.chm-prose h2 { font-size: 26px; margin: 1.8em 0 .5em; }
.chm-prose h2:first-child { margin-top: 0; }
.chm-prose ul, .chm-prose ol { padding-left: 1.2em; margin: 0 0 1.2em; }
.chm-prose li { margin-bottom: .4em; }
.chm-prose table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; font-size: 15px; }
.chm-prose th, .chm-prose td { text-align: left; vertical-align: top; padding: 12px 14px; border-bottom: 1px solid #E6E3F7; }
.chm-prose th { background: #F3F1FA; color: var(--awb-color5); }
.chm-prose a { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- CQC rating strip above the footer ---------- */
.chm-cqc { background: #fff; border-top: 1px solid #E6E3F7; }
.chm-cqc__inner { max-width: 1200px; margin: 0 auto; padding: 18px 30px; display: flex; align-items: center; gap: 18px; text-decoration: none !important; color: var(--awb-color5, #2b2762) !important; }
.chm-cqc__logo { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 40px; border-radius: 8px; background: #2b2762; color: #fff; font-weight: 800; font-size: 15px; letter-spacing: 1px; }
.chm-cqc__text { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; line-height: 1.35; }
.chm-cqc__label { font-weight: 700; font-size: 15px; }
.chm-cqc__meta { font-size: 13px; opacity: .72; }
.chm-cqc__badge { flex: 0 0 auto; padding: 8px 16px; border-radius: 999px; font-weight: 800; font-size: 14px; letter-spacing: .5px; text-transform: uppercase; color: #fff; background: #5b5790; }
.chm-cqc__badge--outstanding { background: #1d70b8; }
.chm-cqc__badge--good { background: #00703c; }
.chm-cqc__badge--requires-improvement { background: #f47738; }
.chm-cqc__badge--inadequate { background: #d4351c; }
.chm-cqc__inner:hover .chm-cqc__meta { text-decoration: underline; }
@media (max-width: 640px) { .chm-cqc__inner { flex-wrap: wrap; padding: 16px; } .chm-cqc__text { flex-basis: calc(100% - 74px); } .chm-cqc__badge { margin-left: 74px; } }

/* ---------- WooCommerce: shop grid and product page in the site's card style ---------- */
.woocommerce ul.products { margin-top: 10px; }
.woocommerce ul.products li.product { background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 1px 2px rgba(30,27,69,.04), 0 10px 24px -8px rgba(30,27,69,.10), 0 28px 56px -24px rgba(30,27,69,.18); transition: transform .4s cubic-bezier(.22,.8,.3,1), box-shadow .4s cubic-bezier(.22,.8,.3,1); }
.woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: 0 2px 4px rgba(30,27,69,.05), 0 18px 36px -10px rgba(30,27,69,.16), 0 40px 72px -28px rgba(30,27,69,.26); }
.woocommerce ul.products li.product .fusion-product-content, .woocommerce ul.products li.product .product-details { padding: 18px 20px 6px; }
.woocommerce ul.products li.product .product-title, .woocommerce ul.products li.product h2, .woocommerce ul.products li.product h3 { font-size: 18px !important; line-height: 1.3; }
.woocommerce ul.products li.product .price { color: var(--awb-color5); font-weight: 700; }
.woocommerce ul.products li.product .fusion-product-buttons, .woocommerce ul.products li.product .product-buttons { border-top: 1px solid #E6E3F7; margin: 0; padding: 12px 20px; }
.woocommerce ul.products li.product .fusion-product-buttons a, .woocommerce ul.products li.product .product-buttons a { font-weight: 600; }
.catalog-ordering { padding: 8px 0 14px; border-bottom: 1px solid #E6E3F7; margin-bottom: 20px; }
.woocommerce div.product .product_title, .woocommerce div.product h1.product_title { font-size: var(--h1_typography-font-size) !important; }
.woocommerce div.product .woocommerce-product-gallery img { border-radius: 20px; }
.woocommerce div.product .price { font-size: 24px; font-weight: 700; color: var(--awb-color5); }
.woocommerce div.product .stock { font-weight: 600; }
.woocommerce div.product form.cart .button, .woocommerce ul.products li.product .button { border-radius: 999px; }
.woocommerce .woocommerce-tabs { margin-top: 30px; }
@media (prefers-reduced-motion: reduce) { .woocommerce ul.products li.product { transition: none; } .woocommerce ul.products li.product:hover { transform: none; } }

/* ---------- Buttons, site-wide (28 Oct 2026): one radius, one height, consistent spacing ----------
   Every button carries a 2px border so solid and outlined buttons are the same height. Solid buttons
   borrow their background colour for the border, so nothing visibly changes except the size. */
.fusion-button, .chs__btn, .chf .chf-button, .ccf .ccf-button, .cma-filter, .woocommerce .button, .woocommerce button.button {
	border-radius: 16px !important;
	border-width: 2px !important;
	border-style: solid !important;
}
.fusion-button.button-default { border-color: var(--awb-color5) !important; }
.fusion-button.button-custom:not(.chm-btn-outline):not(.chm-btn-outline-dark) { border-color: var(--button_gradient_top_color, #ffffff) !important; }
.fusion-button.chm-btn-outline { border-color: #fff !important; }
.fusion-button.chm-btn-outline-dark { border-color: var(--awb-color5) !important; }

/* Homepage hero buttons match the rest of the site. */
.chs__btn--solid, .chs__btn--ghost { border-color: #fff !important; }
.chs__actions { gap: 12px; margin-top: 20px; }

/* Space above a button (or a row of buttons) that follows text, and between buttons side by side. */
.fusion-column-wrapper > .fusion-text + div:has(> .fusion-button),
.fusion-column-wrapper > .fusion-title + div:has(> .fusion-button),
.fusion-column-wrapper > .fusion-text + .fusion-builder-row-inner:has(.chm-btn-row),
.fusion-column-wrapper > .fusion-title + .fusion-builder-row-inner:has(.chm-btn-row) { margin-top: 20px; }
.fusion-column-wrapper > div:has(> .fusion-button) + div:has(> .fusion-button) { margin-top: 12px; }
.fusion-layout-column.chm-btn-row > .fusion-column-wrapper { gap: 12px !important; column-gap: 12px !important; row-gap: 12px !important; flex-wrap: wrap; }
/* Any Avada row-layout column holding buttons side by side */
.fusion-layout-column > .fusion-column-wrapper.fusion-content-layout-row:has(> div > .fusion-button) { column-gap: 12px !important; row-gap: 12px !important; }
.chm-btn-row > .fusion-column-wrapper > div { margin: 0 !important; }
/* Two buttons the editor placed side by side in one column without the row class. */
.fusion-column-wrapper > div:has(> .fusion-button[style*="display:inline"]) + div:has(> .fusion-button) { margin-left: 12px; }
/* Form submit buttons and the hero carry their own strong rules; these win by specificity. */
.ccf .ccf-form .ccf-button, .chf .chf-form .chf-button, .cmv .cmv-form .cmv-button, .cmv-form button[type="submit"] {
	border-radius: 16px !important;
	border: 2px solid var(--awb-color5, #2b2762) !important;
	padding-top: 14px !important; padding-bottom: 14px !important;
}
.chs .chs__actions, .chs__actions { gap: 12px !important; margin-top: 20px !important; }
.chs .chs__btn, .chs__btn { padding-top: 13px !important; padding-bottom: 13px !important; }
