/*
Theme Name:   Comfy Office Child
Theme URI:    https://www.comfyoffice.uk/
Description:  Astra child theme for Comfy Office – matched to the existing site look
Author:       Comfy Office
Author URI:   https://www.comfyoffice.uk/
Template:     astra
Version:      1.3.2
License:      GNU General Public License v2 or later
Text Domain:  comfyoffice-child
*/

/* ==================================================
   Design tokens (from existing Storefront child)
   ================================================== */
:root {
	--comfy-green: #a3b18b;
	--comfy-green-dark: #8a9a72;
	--comfy-k: #1a1a1a;
	--comfy-bg: #f8f8f8;
	--comfy-white: #ffffff;
	--comfy-blu: #2a3b5b;
	--comfy-text: #2c2c2c;
	--comfy-muted: #555;
	--header-height: 64px;
}

/* ==================================================
   Base / global
   ================================================== */
body,
html {
	background-color: var(--comfy-bg) !important;
	font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	line-height: 1.45;
	color: var(--comfy-text);
	-webkit-font-smoothing: antialiased;
}

/* Stop Astra from forcing white page backgrounds */
.site,
#page,
#content,
.site-content,
.ast-container,
.ast-separate-container,
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-plain-container,
.ast-page-builder-template .site-content {
	background-color: transparent !important;
	background: transparent !important;
}

.ast-separate-container {
	background-color: var(--comfy-bg) !important;
}

/* Self-hosted Source Sans 3 (latin) – no third-party font request */
@font-face {
	font-family: "Source Sans Pro";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url("assets/fonts/source-sans-3-300.woff2") format("woff2");
}
@font-face {
	font-family: "Source Sans Pro";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/source-sans-3-400.woff2") format("woff2");
}
@font-face {
	font-family: "Source Sans Pro";
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/source-sans-3-400-italic.woff2") format("woff2");
}
@font-face {
	font-family: "Source Sans Pro";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("assets/fonts/source-sans-3-600.woff2") format("woff2");
}
@font-face {
	font-family: "Source Sans Pro";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("assets/fonts/source-sans-3-700.woff2") format("woff2");
}

a {
	color: var(--comfy-blu);
	text-decoration: none;
	transition: color 0.2s ease;
}
a:hover {
	color: var(--comfy-green-dark);
}

h1, h2, h3, h4, h5, h6 {
	font-family: "Source Sans Pro", sans-serif;
	font-weight: 600;
	color: var(--comfy-k);
	line-height: 1.25;
}

/* Soften Astra container defaults */
.ast-container {
	max-width: 1240px;
}

.site-content,
#content.site-content {
	background: transparent;
}

/* ==================================================
   Header – clean white, logo left, burger right
   ================================================== */
.comfy-header {
	position: sticky;
	top: 0;
	z-index: 9990;
	background: var(--comfy-white);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.1);
}

.comfy-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1400px;
	margin: 0 auto;
	padding: 12px 28px;
	min-height: var(--header-height);
	position: relative;
}

/* Logo left-aligned (matches original site) */
.comfy-header__logo {
	position: static;
	left: auto;
	transform: none;
	margin: 0;
	justify-self: flex-start;
}

.comfy-header__burger {
	margin-left: auto;
	flex-shrink: 0;
}

/* Logo */
.comfy-header__logo {
	display: flex;
	align-items: center;
	text-decoration: none;
	line-height: 1;
}

.comfy-header__logo img,
.comfy-header__logo .custom-logo,
.comfy-header .custom-logo-link img {
	height: 36px !important;
	max-height: 36px !important;
	width: auto !important;
	display: block;
}

/* SVG logo from the old theme */
.comfy-header__logo > svg {
	height: 36px !important;
	width: auto !important;
	max-width: 220px !important;
	display: block;
}

.comfy-header__logo-text {
	font-family: "Source Sans Pro", sans-serif;
	font-size: 1.4rem;
	font-weight: 600;
	letter-spacing: 0.01em;
}
.comfy-header__logo-text .comfy {
	color: var(--comfy-green);
}
.comfy-header__logo-text .office {
	color: var(--comfy-k);
}

/* Burger */
.comfy-header__burger {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: none;
	cursor: pointer;
	gap: 6px;
	border-radius: 4px;
	transition: background 0.2s ease;
}
.comfy-header__burger:hover,
.comfy-header__burger:focus {
	background: rgba(0, 0, 0, 0.04);
	outline: none;
}
.comfy-header__burger span {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--comfy-k);
	border-radius: 1px;
	transition: transform 0.25s ease, opacity 0.25s ease;
}

/* Animate burger → X when menu open (pure CSS) */
body:has(#comfy-nav-toggle:checked) .comfy-header__burger span:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}
body:has(#comfy-nav-toggle:checked) .comfy-header__burger span:nth-child(2) {
	opacity: 0;
}
body:has(#comfy-nav-toggle:checked) .comfy-header__burger span:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}
.comfy-nav-toggle {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.comfy-header__burger {
	cursor: pointer;
}

@media (max-width: 768px) {
	.comfy-header__inner {
		padding: 10px 18px;
		min-height: 56px;
	}
	.comfy-header__logo img,
	.comfy-header__logo .custom-logo,
	.comfy-header .custom-logo-link img,
	.comfy-header__logo > svg {
		height: 30px !important;
		max-height: 30px !important;
		max-width: 180px !important;
	}
	.comfy-header__logo-text {
		font-size: 1.15rem;
	}
}

@media (max-width: 480px) {
	.comfy-header__inner {
		padding: 8px 14px;
	}
	.comfy-header__logo img,
	.comfy-header__logo .custom-logo,
	.comfy-header .custom-logo-link img,
	.comfy-header__logo > svg {
		height: 26px !important;
		max-height: 26px !important;
		max-width: 150px !important;
	}
}


/* ==================================================
   Footer – original SVG logos + site styles
   ================================================== */

/* SVG fill colours (from old theme) */
.footer-logo-l .st0,
.footer-logo-p .st0,
.footer-logo-s .st0 {
	fill: #a3b18b;
}
.footer-logo-l .st1,
.footer-logo-p .st1,
.footer-logo-s .st1 {
	fill: #f8f8f8;
}
.footer-logo-l path:not([class]),
.footer-logo-p path:not([class]),
.footer-logo-s path:not([class]) {
	fill: #1a1a1a;
}

/* Responsive logo switch (orientation-based, same as old theme) */
.footer-logo-l,
.footer-logo-p,
.footer-logo-s {
	display: none;
	width: 100%;
	line-height: 0;
	margin: 0;
	padding: 0;
	background: #f8f8f8;
}
.footer-logo-l svg,
.footer-logo-p svg,
.footer-logo-s svg {
	width: 100%;
	height: auto;
	display: block;
}

@media (orientation: landscape) {
	.footer-logo-l { display: block; }
}
@media (orientation: portrait) {
	.footer-logo-p { display: block; }
}
@media (min-aspect-ratio: 9/10) and (max-aspect-ratio: 11/10) {
	.footer-logo-s { display: block; }
	.footer-logo-p { display: none; }
	.footer-logo-l { display: none; }
}

/* Green footer block */
#site-footer.comfy-footer,
.comfy-footer {
	background: #a3b18b;
	text-align: center;
	padding: 8px 20px 36px;
	margin: 0;
	position: relative;
	top: -2px; /* tuck under the SVG wave */
	font-family: "Source Sans Pro", sans-serif;
	font-size: 1rem;
	color: #2c2c2c;
}

.comfy-footer__tagline,
#site-footer > .comfy-footer__tagline {
	margin: 12px auto 0;
	max-width: 85%;
	font-style: oblique;
	font-size: 1rem;
	line-height: 1.5;
	color: #2c2c2c;
}

/* Social icons – exact style from old theme */
.social {
	margin: 4vh auto 2vh auto;
	width: max-content;
	display: flex;
	gap: 8px;
	justify-content: center;
}
.buttonf,
.buttonx,
.buttoni {
	display: inline-block;
	width: 50px;
	height: 50px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	border: none;
	cursor: pointer;
	padding: 0;
	text-indent: -9999px;
	overflow: hidden;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.buttonf:hover,
.buttonx:hover,
.buttoni:hover {
	opacity: 0.85;
	transform: translateY(-2px);
}
.buttonf {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path d="M32.614,11.115c-1.756-.531-6.554-.36-8.963,2.931-1.063,1.452-1.327,3.343-1.354,3.585v4.127h-4.912v4.912h4.912v12.445h4.913v-12.445h5.24v-4.912h-5.24v-2.455c.088-3.902,2.687-3.391,5.404-3.553v-4.636Z" fill="%23fff"/></svg>');
}
.buttonx {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path d="M27.327,23.086l9.107-10.586h-2.158l-7.907,9.191-6.316-9.191h-7.284l9.55,13.899-9.55,11.101h2.158l8.35-9.707,6.67,9.707h7.284l-9.904-14.414h0ZM24.371,26.522l-.968-1.384-7.699-11.013h3.315l6.213,8.888.968,1.384,8.077,11.553h-3.315l-6.591-9.427h0Z" fill="%23fff"/></svg>');
}
.buttoni {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path d="M19.968,12.31c-4.242,0-7.657,3.416-7.657,7.658v10.065c0,4.242,3.415,7.657,7.657,7.657h10.064c4.243,0,7.657-3.415,7.657-7.657v-10.065c0-4.242-3.414-7.658-7.657-7.658h-10.064ZM20.821,14.463h8.357c3.522,0,6.358,2.835,6.358,6.358v8.357c0,3.522-2.836,6.359-6.358,6.359h-8.357c-3.522,0-6.358-2.836-6.358-6.359v-8.357c0-3.522,2.836-6.358,6.358-6.358ZM31.685,16.729c-.938,0-1.698.76-1.699,1.699,0,.939.761,1.7,1.699,1.7s1.7-.76,1.7-1.699h0c0-.939-.762-1.7-1.7-1.699h0ZM25.113,18.202c-3.692,0-6.685,2.992-6.685,6.684h0c0,3.693,2.993,6.686,6.685,6.685h0c3.691,0,6.686-2.992,6.686-6.684h0c0-3.692-2.992-6.685-6.685-6.685h0ZM25.113,21.034c2.127,0,3.853,1.726,3.852,3.853h0c0,2.127-1.725,3.852-3.852,3.852s-3.851-1.725-3.852-3.852c0-2.127,1.725-3.852,3.852-3.853h0Z" fill="%23fff"/></svg>');
}

/* Policy links */
.comfy-footer__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 22px;
	margin: 0 auto 18px;
	font-size: 0.95rem;
}
.comfy-footer__links a {
	color: #2c2c2c;
	text-decoration: none;
}
.comfy-footer__links a:hover {
	color: #fff;
}

.comfy-footer__divider {
	border: none;
	border-top: 1px solid rgba(255,255,255,0.35);
	margin: 0 auto 16px;
	max-width: 640px;
}

.custom-footer-block {
	color: #2c2c2c;
	text-align: center;
	padding: 6px 10px;
	font-size: 0.95rem;
	line-height: 1.45;
	margin: 0 auto;
	max-width: 720px;
}
.custom-footer-block.G {
	color: #1e5c2e;
	font-weight: 600;
	padding-top: 10px;
}

.footer-tel {
	margin: 8px 0 4px;
	font-size: 1.05rem;
}
.footer-tel a {
	color: #2c2c2c;
	text-decoration: none;
}
.footer-tel a:hover {
	color: #fff;
}

.footer-credits {
	margin-top: 12px;
}
.footer-copyright {
	margin: 0;
	font-size: 0.9rem;
	color: #3a3a3a;
}
.footer-copyright a {
	color: #3a3a3a;
	text-decoration: none;
}

@media (max-width: 600px) {
	.comfy-footer {
		padding: 6px 14px 28px;
	}
	.comfy-footer__tagline {
		font-size: 0.9rem;
		max-width: 95%;
	}
	.buttonf, .buttonx, .buttoni {
		width: 42px;
		height: 42px;
	}
	.social {
		margin: 3vh auto 1.5vh auto;
	}
}


/* ==================================================
   Content area – closer to existing site
   ================================================== */
.entry-content {
	font-size: 1.05rem;
	line-height: 1.55;
}

/* Page title on front (matches old .page-header-title) */
.page-header-title,
.entry-header .entry-title {
	text-align: center;
	font-weight: 400;
	font-size: clamp(1.5rem, 3vw, 2rem);
	padding: 0.8em 1em;
	margin: 0 auto;
	color: var(--comfy-k);
}


/* Soften Astra primary button to site green */
.ast-button,
.button,
button[type="submit"],
.wp-block-button__link {
	background-color: var(--comfy-green) !important;
	border-color: var(--comfy-green) !important;
	color: #fff !important;
	border-radius: 4px;
	font-weight: 600;
	transition: background 0.2s ease;
}
.ast-button:hover,
.button:hover,
button[type="submit"]:hover,
.wp-block-button__link:hover {
	background-color: var(--comfy-green-dark) !important;
	border-color: var(--comfy-green-dark) !important;
}

/* Related products block (from old theme) */
.related {
	background: var(--comfy-green);
	padding: 1.5rem 2rem;
	border-radius: 12px;
}
.related > ul > li,
.related .product {
	background: #fff;
	padding: 1rem;
	border-radius: 10px;
}

/* Reduce Astra default vertical spacing a little */
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single {
	padding: 2em 2.5em;
}

@media (max-width: 768px) {
	.ast-separate-container .ast-article-post,
	.ast-separate-container .ast-article-single {
		padding: 1.25em 1.25em;
	}
}

/* ==================================================
   Homepage hero – title + Smart Slider
   ================================================== */

.comfy-home-hero {
	background: transparent;
	text-align: center;
	padding: 0 0 1.5rem;
}

.page-header-title {
	margin: 0 auto;
	padding: 1.25em 1em 0.75em;
	font-family: "Source Sans Pro", sans-serif;
	font-weight: 300 !important;
	font-size: clamp(1.5rem, 3.2vw, 2.1rem);
	color: #1a1a1a;
	line-height: 1.3;
	text-align: center;
	letter-spacing: -0.01em;
}

.header-slider {
	position: relative;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px 10px;
}

.header-slider .n2-ss-slider,
.header-slider > div {
	border-radius: 0;
	overflow: hidden;
}

/*
 * Smart Slider height – match original:
 * fixed 600px tall; on handhelds width shrinks (portrait crop), height stays 600.
 */
.home .header-slider .n2-ss-slider,
.home .header-slider .n2-section-smartslider,
.home .header-slider .n2-ss-slider-1,
.home .header-slider .n2-ss-slide,
.home .header-slider .n2-ss-slide-background {
	height: 600px !important;
	max-height: 600px !important;
	min-height: 600px !important;
}

.home .header-slider .n2-ss-slide-background img,
.home .header-slider .n2-ss-slide-background picture,
.home .header-slider .n2-ss-slide-background picture img,
.home .header-slider img {
	width: 100% !important;
	height: 600px !important;
	max-height: 600px !important;
	object-fit: cover !important;
	object-position: center center !important;
}

.home .header-slider {
	max-width: 1300px;
	margin: 0 auto;
	padding: 0 16px 12px;
}

@media (max-width: 768px) {
	.page-header-title {
		font-size: 1.35rem;
		font-weight: 300 !important;
		padding: 1em 0.75em 0.5em;
	}
	.header-slider {
		padding: 0 12px 8px;
	}
	/* Keep 600px height on handhelds – width shrinks to portrait */
	.home .header-slider .n2-ss-slider,
	.home .header-slider .n2-section-smartslider,
	.home .header-slider .n2-ss-slider-1,
	.home .header-slider .n2-ss-slide,
	.home .header-slider .n2-ss-slide-background,
	.home .header-slider .n2-ss-slide-background img,
	.home .header-slider img {
		height: 600px !important;
		max-height: 600px !important;
		min-height: 600px !important;
	}
}

/* Homepage content area – closer to old .site-content-home */
.site-content-home {
	background: transparent;
}

.site-content-home .ast-container {
	max-width: 1240px;
}

/* Hide duplicate page title on homepage (strapline is already above the slider) */
.home .entry-header,
.home .ast-article-single > .entry-header,
.home .ast-single-post .entry-header,
body.home .entry-title,
body.front-page .entry-header,
body.home h1.entry-title {
	display: none !important;
}

/* ==================================================
   PDF viewer template (ported from Storefront child)
   ================================================== */
.pdf-viewer {
	margin: 0;
	padding: 0;
	width: 100%;
	overflow: hidden;
}
.pdf-controls {
	text-align: center;
	margin-bottom: 10px;
}
.download-link,
.nav-button {
	display: inline-block;
	padding: 8px 15px;
	margin: 0 5px;
	background-color: #a3b18b;
	color: #fff;
	text-decoration: none;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
}
.download-link:hover,
.nav-button:hover {
	background-color: #540d5e;
	color: #fff;
}
.nav-button:disabled {
	background-color: #ccc;
	cursor: not-allowed;
}
.pdf-canvas-container {
	width: 100%;
	text-align: center;
	overflow-y: auto;
	min-height: 300px;
}
#pdf-canvas {
	max-width: 100%;
	display: block;
	margin: 0 auto;
	border: none;
}
.pdf-controls svg {
	width: 24px;
	height: 24px;
	fill: #fff;
}
.site-main .pdf-viewer {
	max-height: calc(100vh - 200px);
	overflow-y: auto;
}
@media (max-width: 768px) {
	.site-main .pdf-viewer {
		max-height: calc(80vh - 150px);
	}
	.pdf-canvas-container {
		min-height: 200px;
	}
	.download-link,
	.nav-button {
		font-size: 12px;
	}
}


/* ==================================================
   Simple layout – stop fighting the blocks
   ================================================== */

/* Wider content container (closer to live site) */
.ast-container {
	max-width: 1320px !important;
}

#primary.content-area,
.site-main {
	max-width: 1320px;
	margin-left: auto;
	margin-right: auto;
}

/* Soften Astra article padding */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post {
	padding: 1.25rem 1.75rem !important;
}

/* Entry content – no forced grids/flex on children */
.entry-content {
	display: block;
	font-size: 1.05rem;
	line-height: 1.55;
}

/* Download / catalogue column rows – side by side on desktop only.
   Do NOT force parent page columns to stack via CSS; fix those in the editor. */
.entry-content .wp-block-columns {
	gap: 1.5rem;
	margin: 1.5rem auto;
	max-width: 1100px;
	align-items: center;
}

.entry-content .wp-block-column .wp-block-image img {
	border-radius: 8px;
	width: 100%;
	height: auto;
	display: block;
}

.entry-content .wp-block-column h2,
.entry-content .wp-block-column h3,
.entry-content .wp-block-column .wp-block-heading {
	color: #540d5e;
	text-align: center;
}

.entry-content .wp-block-column a {
	color: #540d5e;
	text-decoration: none;
}
.entry-content .wp-block-column a:hover {
	color: #7e0dbf;
	text-decoration: underline;
}

.entry-content .wp-block-column p {
	text-align: center;
}

/* Homepage media-text sections a bit wider */
.home .entry-content .wp-block-media-text {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

.home .header-slider {
	max-width: 1300px;
	margin: 0 auto;
	padding: 0 16px 12px;
}

/* Featured image */
.comfy-featured-image,
.post-thumbnail,
.ast-single-post .post-thumb {
	display: block;
	max-width: 1100px;
	margin: 1.5rem auto 2rem;
	padding: 0 20px;
	text-align: center;
}
.comfy-featured-image img,
.post-thumbnail img {
	width: 100%;
	height: auto;
	border-radius: 16px;
	display: block;
	margin: 0 auto;
}

.ast-breadcrumbs-wrapper,
.ast-breadcrumbs {
	padding-top: 0.75rem !important;
	padding-bottom: 0.5rem !important;
	font-size: 0.9rem;
}

/* ==================================================
   Astra flex container: banner + primary must stack
   ================================================== */
.ast-container {
	flex-wrap: wrap !important;
}

.ast-container > .comfy-topbanner,
#content .ast-container > .comfy-topbanner {
	flex: 0 0 100% !important;
	width: 100% !important;
	max-width: 100% !important;
}

.ast-container > #primary,
#content .ast-container > #primary,
.ast-container > .content-area {
	flex: 0 0 100% !important;
	width: 100% !important;
	max-width: 100% !important;
	clear: both !important;
}

/* ==================================================
   Page titles + body text (standard pages)
   ================================================== */

/* Hide duplicate Astra featured image if it still appears */
.ast-single-post .post-thumb + .comfy-featured-image,
.comfy-featured-image + .post-thumb,
.ast-article-single > .post-thumb:nth-of-type(2) {
	display: none !important;
}

.comfy-featured-image {
	display: block;
	max-width: 1100px;
	margin: 1rem auto 1.5rem;
	padding: 0 20px;
	text-align: center;
}
.comfy-featured-image img {
	width: 100%;
	height: auto;
	border-radius: 16px;
	display: block;
	margin: 0 auto;
}

/* Page title – Source Sans Pro, lighter weight like live */
.entry-header .entry-title,
.ast-single-post .entry-title,
.ast-article-single .entry-title,
h1.entry-title,
.page .entry-title {
	font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-weight: 400 !important;
	font-size: clamp(1.75rem, 3.5vw, 2.35rem) !important;
	line-height: 1.25 !important;
	letter-spacing: -0.01em;
	color: #1a1a1a !important;
	text-align: center;
	margin: 0.5rem auto 1.25rem !important;
	padding: 0 1rem;
}

/* Body text – readable measure, comfortable spacing */
.page .entry-content,
.ast-article-single .entry-content {
	font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-size: 1.05rem;
	line-height: 1.65;
	color: #333;
	max-width: 52rem;
	margin-left: auto;
	margin-right: auto;
}

.page .entry-content p,
.ast-article-single .entry-content p {
	font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-size: 1.05rem !important;
	line-height: 1.55 !important;
	color: #333;
	padding: 0 1rem;
	text-align: center !important;
	max-width: 40rem !important;
	margin-top: 0 !important;
	margin-bottom: 1.25em !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Product / gallery images under content */
.page .entry-content .wp-block-image img,
.page .entry-content .wp-block-gallery img {
	border-radius: 8px;
}

.page .entry-content .wp-block-gallery,
.page .entry-content .wp-block-columns {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}

/* Kill Astra / core duplicate featured images on pages */
body.page .post-thumb,
body.page .ast-single-post-featured-section,
body.page article > .post-thumbnail,
body.page .ast-article-single > img.wp-post-image,
body.page .entry-header .post-thumb,
body.page .ast-featured-img {
	display: none !important;
}

/* Our single featured image stays visible */
body.page .comfy-featured-image,
body.page .comfy-featured-image img {
	display: block !important;
}

/* Header + logo above menu overlay when open */
body:has(#comfy-nav-toggle:checked) .comfy-header {
	z-index: 100001 !important;
}
body:has(#comfy-nav-toggle:checked) .comfy-header__logo,
body:has(#comfy-nav-toggle:checked) .comfy-header__burger {
	position: relative;
	z-index: 100002;
}

/* If header is sticky/fixed, keep it above */
.comfy-header {
	position: sticky;
	top: 0;
}

body:has(#comfy-nav-toggle:checked) .comfy-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	background: rgba(255, 255, 255, 0.96);
}


/* ==================================================
   Smart Slider arrows – visible but not huge
   ================================================== */
.home .header-slider .n2-ss-control-previous,
.home .header-slider .n2-ss-control-next,
.home .header-slider .n2-ss-slider .previous,
.home .header-slider .n2-ss-slider .next,
.home .header-slider .previous,
.home .header-slider .next {
	display: block !important;
	visibility: visible !important;
	opacity: 0.85 !important;
	width: 40px !important;
	height: 40px !important;
	max-width: 40px !important;
	max-height: 40px !important;
	min-width: 40px !important;
	min-height: 40px !important;
	padding: 0 !important;
	margin: 0 !important;
	transform: none !important;
	background-size: contain !important;
	cursor: pointer !important;
	z-index: 20 !important;
}

.home .header-slider .n2-ss-control-previous img,
.home .header-slider .n2-ss-control-next img,
.home .header-slider .previous img,
.home .header-slider .next img,
.home .header-slider .n2-ss-control-previous svg,
.home .header-slider .n2-ss-control-next svg {
	display: block !important;
	width: 24px !important;
	height: 24px !important;
	max-width: 24px !important;
	max-height: 24px !important;
	margin: 0 auto !important;
}

.home .header-slider .n2-ss-control-previous:hover,
.home .header-slider .n2-ss-control-next:hover,
.home .header-slider .previous:hover,
.home .header-slider .next:hover {
	opacity: 1 !important;
}

/* ==================================================
   Child-page / catalogue cards
   Titles top, images bottom-aligned across the row, 1:1
   ================================================== */
.child-pages,
.cc-child-pages,
ul.page-list,
.entry-content .child-pages {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem 0.85rem;
	list-style: none;
	margin-top: 0;
	margin-left: 0;
	margin-right: 0;
	margin-bottom: 4rem !important;
	padding: 0 0 0.5rem 0;
	align-items: stretch;
}

.ccchildpage,
.page-list .page,
.child-pages .page,
.entry-content .ccchildpage {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	height: 100%;
	padding: 0.25rem 0.5rem 0.75rem;
	box-sizing: border-box;
	text-align: left;
}

/* Title at top */
.ccchildpage h3,
.ccchildpage .h4,
.ccchildpage a.h4,
.ccchildpage .ccchildpage-title,
.entry-content .ccchildpage h3,
.entry-content .ccchildpage .h4 {
	order: -1;
	flex: 0 0 auto;
	display: block;
	min-height: 0;
	margin: 0 0 0.5rem 0 !important;
	padding: 0;
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.25;
	text-align: left !important;
	color: var(--comfy-k, #1a1a1a);
}

/* Image pushed to bottom of card so row of images aligns */
.ccchildpage img,
.cc-child-pages-thumb,
.entry-content .ccchildpage img {
	order: 0;
	margin-top: auto !important; /* bottom-align within equal-height card */
	border-radius: 2px !important;
	object-fit: cover;
	aspect-ratio: 1 / 1 !important;
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.ccchildpage:hover img {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

@media (max-width: 768px) {
	.child-pages,
	.cc-child-pages,
	ul.page-list,
	.entry-content .child-pages {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.85rem 0.65rem;
	}
	.ccchildpage h3,
	.ccchildpage .h4,
	.ccchildpage a.h4 {
		font-size: 0.9rem;
	}
}

@media (max-width: 480px) {
	.child-pages,
	.cc-child-pages,
	ul.page-list,
	.entry-content .child-pages {
		grid-template-columns: 1fr 1fr;
	}
}


/* ==================================================
   Catalogue / child_pages (.ccomfy) – force image bottom-align
   ================================================== */

/* Grid container from [child_pages class="ccomfy"] */
.ccomfy,
.child-pages.ccomfy,
.entry-content .ccomfy,
div.ccomfy {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 1rem 0.85rem !important;
	align-items: stretch !important;
	list-style: none !important;
	margin-top: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-bottom: 4rem !important; /* space before next section / image */
	padding: 0 0 0.5rem 0 !important;
}

/* Each card cell */
.ccomfy > *,
.ccomfy .ccchildpage,
.ccomfy li,
.ccomfy .page {
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
	align-items: stretch !important;
	height: 100% !important;
	min-height: 100% !important;
	box-sizing: border-box !important;
	padding: 0.2rem 0.4rem 0.6rem !important;
	float: none !important;
	width: auto !important;
	max-width: none !important;
}

/* Title – top of card */
.ccomfy h3,
.ccomfy h4,
.ccomfy .h4,
.ccomfy a.h4,
.ccomfy .ccchildpage-title,
.ccomfy .entry-title,
.ccomfy > * > a:not(:has(img)),
.ccomfy .ccchildpage > a.h4 {
	order: -1 !important;
	flex: 0 0 auto !important;
	margin: 0 0 0.45rem 0 !important;
	padding: 0 !important;
	font-size: 0.95rem !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
	text-align: left !important;
	color: #1a1a1a !important;
}

/* Image – stick to bottom of equal-height card */
.ccomfy img,
.ccomfy a:has(img),
.ccomfy .ccchildpage img,
.ccomfy .wp-post-image {
	order: 1 !important;
	margin-top: auto !important;
	margin-bottom: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	border-radius: 2px !important;
	object-fit: cover !important;
	aspect-ratio: 1 / 1 !important;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	display: block !important;
}

/* If image is wrapped in a link, that link also goes to bottom */
.ccomfy a:has(img) {
	display: block !important;
	margin-top: auto !important;
	width: 100% !important;
}

.ccomfy a:has(img) img {
	margin-top: 0 !important; /* margin is on the link */
}

@media (max-width: 768px) {
	.ccomfy,
	.child-pages.ccomfy,
	.entry-content .ccomfy,
	div.ccomfy {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.85rem 0.6rem !important;
	}
}

/* Breadcrumbs */
.comfy-breadcrumbs,
.woocommerce-breadcrumb,
.ast-breadcrumbs-wrapper,
.ast-breadcrumbs {
	display: block;
	max-width: 1320px;
	margin: 0.5rem auto 0.75rem;
	padding: 0 1.25rem;
	font-size: 0.88rem;
	color: #888;
	text-align: left;
}
.comfy-breadcrumbs a,
.woocommerce-breadcrumb a {
	color: #888;
	text-decoration: none;
}
.comfy-breadcrumbs a:hover,
.woocommerce-breadcrumb a:hover {
	color: #540d5e;
}
.comfy-bc-sep {
	margin: 0 0.35em;
	color: #bbb;
}
.comfy-bc-current {
	color: #555;
}

/* Landscape / desktop: 4 columns for catalogue cards */
@media (min-width: 769px) {
	.ccomfy,
	.child-pages.ccomfy,
	.entry-content .ccomfy,
	div.ccomfy,
	.child-pages,
	.cc-child-pages,
	ul.page-list,
	.entry-content .child-pages {
		grid-template-columns: repeat(4, 1fr) !important;
	}
}

/* Tablet: 3 columns */
@media (min-width: 481px) and (max-width: 768px) {
	.ccomfy,
	.child-pages.ccomfy,
	.entry-content .ccomfy,
	div.ccomfy,
	.child-pages,
	.cc-child-pages,
	ul.page-list,
	.entry-content .child-pages {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

/* Phone: 2 columns */
@media (max-width: 480px) {
	.ccomfy,
	.child-pages.ccomfy,
	.entry-content .ccomfy,
	div.ccomfy,
	.child-pages,
	.cc-child-pages,
	ul.page-list,
	.entry-content .child-pages {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* Slider arrows – aggressive shrink (Smart Slider uses large SVG/background) */
.home .header-slider [class*="n2-ss-control"],
.home .header-slider [class*="arrow"],
.home .header-slider [class*="Arrow"],
.home .header-slider .next,
.home .header-slider .previous {
	width: 36px !important;
	height: 36px !important;
	max-width: 36px !important;
	max-height: 36px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	font-size: 14px !important;
	line-height: 36px !important;
	opacity: 0.8 !important;
	zoom: 0.4 !important;
	transform: scale(0.4) !important;
	transform-origin: center center !important;
}

.home .header-slider [class*="n2-ss-control"] *,
.home .header-slider [class*="arrow"] *,
.home .header-slider .next *,
.home .header-slider .previous * {
	max-width: 36px !important;
	max-height: 36px !important;
	width: auto !important;
	height: auto !important;
}





/* Single breadcrumb row, left-aligned */
.comfy-breadcrumbs {
	display: block !important;
	text-align: left !important;
	width: 100%;
	max-width: 1320px;
	margin: 0.4rem auto 0.6rem;
	padding: 0 1.25rem;
	font-size: 0.88rem;
	box-sizing: border-box;
}
/* Hide any second breadcrumb trail Astra may still print */
.ast-breadcrumbs-wrapper,
.ast-breadcrumbs:not(.comfy-breadcrumbs),
#ast-breadcrumbs {
	display: none !important;
}


/* ==================================================
   SLIDER ARROWS – forced visible (final)
   ================================================== */
.header-slider {
	position: relative !important;
}

/* Hide only SS3 native controls */
.header-slider .n2-ss-arrow,
.header-slider .n2-ss-control-previous,
.header-slider .n2-ss-control-next,
.header-slider .n2-ss-widget-previous,
.header-slider .n2-ss-widget-next {
	opacity: 0 !important;
	pointer-events: none !important;
}

/* Custom arrows – always on, sized like live site */






@media (max-width: 768px) {
	
	
}

/* ==================================================
   Typography closer to original Storefront child
   ================================================== */
body {
	background-color: #f8f8f8 !important;
	font-family: "Source Sans Pro", sans-serif !important;
	line-height: 1.3 !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: #000 !important;
}

.page-header-title {
	font-family: "Source Sans Pro", sans-serif !important;
	font-weight: 300 !important;
	font-size: clamp(1.35rem, 2.4vw, 1.85rem) !important;
	line-height: 1.3 !important;
	padding: 1em 1em 0.6em !important;
	margin: 0 auto !important;
	letter-spacing: 0 !important;
	color: #1a1a1a !important;
}

.entry-header .entry-title,
h1.entry-title,
.page .entry-title {
	font-family: "Source Sans Pro", sans-serif !important;
	font-weight: 400 !important;
	font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	margin: 0.75rem auto 1rem !important;
}

.entry-content,
.page .entry-content,
.ast-article-single .entry-content {
	font-family: "Source Sans Pro", sans-serif !important;
	font-size: 1rem !important;
	line-height: 1.45 !important;
	font-weight: 400 !important;
}

.entry-content p,
.page .entry-content p {
	font-size: 1.05rem !important;
	line-height: 1.55 !important;
	/* keep horizontal auto so paragraphs can centre */
	margin-top: 0 !important;
	margin-bottom: 1.25em !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 40rem !important;
	text-align: center !important;
}

.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post {
	padding: 1.25rem 1.5rem !important;
}

.ccchildpage h3,
.ccchildpage .h4,
.ccomfy h3,
.ccomfy .h4,
.ccomfy a.h4 {
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
}



/* Smart Slider 3 – leave native arrows alone (match live site) */
.home .header-slider .n2-ss-arrow,
.home .header-slider .n2-ss-control-previous,
.home .header-slider .n2-ss-control-next,
.home .header-slider [class*="n2-ss-arrow"] {
	display: block !important;
	visibility: visible !important;
	opacity: 0.85 !important;
	pointer-events: auto !important;
	/* do not force width/height/zoom – SS3 manages its own arrow graphics */
}
.home .header-slider .n2-ss-arrow:hover,
.home .header-slider .n2-ss-control-previous:hover,
.home .header-slider .n2-ss-control-next:hover {
	opacity: 1 !important;
}

/* Keep 10px radius on slider without clipping arrow controls */
.home .header-slider .n2-ss-slider,
.home .header-slider .n2-section-smartslider {
	border-radius: 10px;
	overflow: visible !important;
}
.home .header-slider .n2-ss-slide-background,
.home .header-slider .n2-ss-slide,
.home .header-slider img {
	border-radius: 10px;
}

/* Menu grid – wider on desktop (70vw), 3 cols on mobile */
.img-menu-grid-overlay__inner {
	max-width: 70vw !important;
	width: 70vw !important;
}
.img-menu-grid {
	max-width: 100% !important;
}
@media (max-width: 768px) {
	.img-menu-grid-overlay__inner {
		max-width: 96vw !important;
		width: 96vw !important;
	}
	.img-menu-grid__item {
		flex: 0 0 calc((100% - 16px) / 3) !important;
		max-width: calc((100% - 16px) / 3) !important;
	}
}

/* Headings centred like original */
.entry-header,
.entry-header .entry-title,
h1.entry-title,
.page .entry-title,
.ast-article-single .entry-title {
	text-align: center !important;
}
.entry-header .entry-title,
h1.entry-title {
	margin-left: auto !important;
	margin-right: auto !important;
}


/* ==================================================
   Back to top – site green (not default blue/purple)
   ================================================== */
.ast-scroll-to-top-icon,
#ast-scroll-top,
.ast-scroll-top-icon,
.ast-scroll-to-top {
	background-color: var(--comfy-green, #a3b18b) !important;
	color: #fff !important;
	border: none !important;
}
.ast-scroll-to-top-icon:hover,
#ast-scroll-top:hover,
.ast-scroll-top-icon:hover {
	background-color: var(--comfy-green-dark, #8a9a72) !important;
	color: #fff !important;
}

/* Headings centred (matches your edit + original catalogue feel) */
h1, h2, h3, h4, h5, h6,
.entry-title,
.page-header-title {
	text-align: center;
}

/* Intro / body paragraphs centred; lists & tables stay left for readability */
.entry-content p {
	text-align: center !important;
}
.entry-content li,
.entry-content td {
	text-align: left;
}

/* Typography closer to original Storefront child */
h1, .entry-title {
	font-weight: 400;
	letter-spacing: -0.01em;
	line-height: 1.25;
}
h2 {
	font-weight: 400;
	line-height: 1.3;
}
h3, h4 {
	font-weight: 500;
	line-height: 1.3;
}
body, .entry-content {
	line-height: 1.35;
}

/* ==================================================
   Design polish – spacing, radius, rhythm, sections
   ================================================== */

/* Consistent 10px image radius site-wide */
.entry-content img,
.entry-content .wp-block-image img,
.entry-content .wp-block-media-text__media img,
.comfy-featured-image img,
.post-thumbnail img,
.ast-article-single img,
.ccomfy img,
.ccchildpage img {
	border-radius: 10px !important;
}

/* Article / content padding – closer to original .site-content { padding: 20px } */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post {
	padding: 1.5rem 2rem 2.5rem !important;
	background: transparent !important;
	box-shadow: none !important;
	border: none !important;
}
@media (max-width: 768px) {
	.ast-separate-container .ast-article-single,
	.ast-separate-container .ast-article-post {
		padding: 1rem 1.15rem 1.75rem !important;
	}
}

/* Paragraph whitespace – original site breathed more */
.entry-content p {
	margin-top: 0 !important;
	margin-bottom: 1.35em !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 40rem !important;
	line-height: 1.55 !important;
	padding: 0 0.5rem;
	text-align: center !important;
}
.entry-content > p:first-of-type {
	margin-top: 0.5em !important;
}
.entry-content > p:last-of-type {
	margin-bottom: 2em !important;
}

/* Headings: space above/below so sections don’t collide */
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content .wp-block-heading {
	margin-top: 2.25rem !important;
	margin-bottom: 1rem !important;
	padding: 0 1rem;
	line-height: 1.3;
}
.entry-content h2 {
	margin-top: 2.75rem !important;
}
.entry-content > h1:first-child,
.entry-content > h2:first-child,
.entry-content > h3:first-child {
	margin-top: 0.5rem !important;
}

/* Section rhythm – major blocks share the same vertical gap */
.entry-content > .wp-block-columns,
.entry-content > .wp-block-media-text,
.entry-content > .wp-block-group,
.entry-content > .wp-block-image,
.entry-content > .wp-block-gallery,
.entry-content > .wp-block-separator,
.entry-content > .wp-block-buttons {
	margin-top: 2.5rem !important;
	margin-bottom: 2.5rem !important;
}

/* Soft centred dividers between sections */
.entry-content hr,
.entry-content .wp-block-separator {
	width: 48px !important;
	max-width: 48px !important;
	height: 0 !important;
	border: none !important;
	border-top: 1px solid #cfcfcf !important;
	margin: 2.75rem auto !important;
	background: transparent !important;
}

/* Homepage: clearer section banding without heavy colour */
.home .entry-content > .wp-block-group,
.home .entry-content > .wp-block-media-text {
	padding: 2rem 1.25rem;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 1200px;
}
/* Alternate soft band for group blocks that have a background set in editor –
   if none, add a very light top rule via adjacent siblings */
.home .entry-content > .wp-block-media-text + .wp-block-media-text,
.home .entry-content > .wp-block-columns + .wp-block-columns {
	border-top: 1px solid rgba(0, 0, 0, 0.05);
	padding-top: 2.75rem;
}

/* Media-text / feature rows – aligned, roomy */
.entry-content .wp-block-media-text {
	gap: 2rem;
	align-items: center;
	max-width: 1200px;
	margin-left: auto !important;
	margin-right: auto !important;
}
.entry-content .wp-block-media-text__content {
	padding: 1rem 1.5rem !important;
}
.entry-content .wp-block-media-text__content p {
	text-align: left !important;
	max-width: none;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
@media (max-width: 768px) {
	.entry-content .wp-block-media-text {
		gap: 1.25rem;
	}
	.entry-content .wp-block-media-text__content {
		padding: 0.5rem 0.25rem !important;
	}
}

/* Columns: consistent gap + centre */
.entry-content .wp-block-columns {
	gap: 2rem !important;
	margin-top: 2.5rem !important;
	margin-bottom: 2.5rem !important;
	max-width: 1200px;
}

/* Card / child-page hover – one consistent lift */
.ccchildpage,
.ccomfy > *,
.entry-content .wp-block-image {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.ccchildpage:hover img,
.ccomfy > *:hover img {
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

/* Single primary button style */
.wp-block-button__link,
.ast-button,
.button,
button[type="submit"] {
	border-radius: 4px !important;
	padding: 0.65em 1.4em !important;
	font-weight: 600 !important;
	letter-spacing: 0.01em;
}
.wp-block-buttons {
	justify-content: center;
}

/* Featured image spacing under title */
.comfy-featured-image {
	margin: 1.25rem auto 2.25rem !important;
	max-width: 1100px;
	padding: 0 1rem;
}
.comfy-featured-image img {
	width: 100%;
	height: auto;
	display: block;
}

/* Homepage content width – matches original ~1240 feel */
.home .site-content .ast-container,
.site-content-home .ast-container {
	max-width: 1240px;
}
.home .entry-content {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}


/* ==================================================
   Titles – more padding, slightly larger (cards + pages)
   ================================================== */
.ccchildpage-title,
.ccomfy .ccchildpage-title,
.ccomfy h3,
.ccomfy h4,
.ccomfy .h4,
.ccomfy a.h4,
.entry-content .ccchildpage h3,
.entry-content .ccchildpage .h4 {
	font-size: 1.1rem !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	padding: 0.35rem 0.15rem 0.55rem !important;
	margin: 0 0 0.35rem 0 !important;
}

.entry-header .entry-title,
.ast-single-post .entry-title,
.ast-article-single .entry-title,
h1.entry-title,
.page .entry-title,
.comfy-catalogue-page__title {
	font-size: clamp(1.85rem, 3.6vw, 2.45rem) !important;
	padding: 0.85em 0.75em 0.65em !important;
	line-height: 1.25 !important;
}

/* Breadcrumbs directly under header, clear of topbanner */
.comfy-breadcrumbs {
	margin: 0.65rem auto 0.85rem !important;
	padding: 0.35rem 1.25rem !important;
	font-size: 0.9rem !important;
}
.comfy-topbanner {
	margin-top: 0.5rem;
}

/* ==================================================
   Layout polish: child cards, centering, no underlines
   ================================================== */

/* 1. Space under child-page card rows */
.ccomfy,
.child-pages,
.cc-child-pages,
.entry-content .ccomfy,
.entry-content .child-pages,
.entry-content .wp-block-columns:has(.ccchildpage) {
	margin-bottom: 2.5rem !important;
}
.ccomfy > *,
.ccchildpage,
.child-pages .page {
	margin-bottom: 0.5rem;
}

/* 2. True centre for page titles + intro content */
.entry-header,
.ast-article-single > .entry-header {
	text-align: center !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 1rem !important;
	padding-right: 1rem !important;
}
.entry-header .entry-title,
h1.entry-title,
.page .entry-title,
.ast-article-single .entry-title {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 48rem !important;
	padding-left: 1rem !important;
	padding-right: 1rem !important;
}
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > .wp-block-heading {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 42rem !important;
	padding-left: 1rem !important;
	padding-right: 1rem !important;
}
.entry-content > p {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 42rem !important;
}
.entry-content > .wp-block-separator,
.entry-content > hr {
	margin-left: auto !important;
	margin-right: auto !important;
}

/* 3. No underlines on product / child cards */
.comfy-product-card a,
.comfy-product-card__link,
.comfy-product-card__title,
.comfy-products-grid a,
.ccomfy a,
.ccchildpage a,
.child-pages a,
.entry-content .ccchildpage a,
.comfy-suggested a {
	text-decoration: none !important;
	box-shadow: none !important;
}
.comfy-product-card a:hover,
.comfy-product-card__link:hover,
.ccomfy a:hover,
.ccchildpage a:hover,
.child-pages a:hover,
.comfy-products-grid a:hover {
	text-decoration: none !important;
}
/* Keep body copy links underlined for clarity */
.entry-content > p a,
.entry-content > ul a,
.comfy-catalogue-page__content a {
	text-decoration: underline;
}


/* ==================================================
   True page centering – fixed dividers + paragraph
   ================================================== */

.site-content,
#content.site-content,
.ast-container,
#primary.content-area,
.site-main,
.ast-article-single {
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
}

.ast-container,
.ast-article-single,
.ast-separate-container .ast-article-single {
	padding-left: 1.25rem !important;
	padding-right: 1.25rem !important;
	box-sizing: border-box !important;
}

.entry-header {
	width: 100% !important;
	max-width: 48rem !important;
	margin: 0 auto 1rem !important;
	text-align: center !important;
}
.entry-header .entry-title,
h1.entry-title,
.page .entry-title {
	text-align: center !important;
	margin: 0 auto !important;
	padding: 0.6em 0 !important;
}

/* Headings + paragraphs: centred text, same column width */
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.entry-content > .wp-block-heading {
	display: block !important;
	max-width: 40rem !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
	float: none !important;
}

.entry-content > p,
.entry-content p {
	display: block !important;
	max-width: 40rem !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
	float: none !important;
}

/* Short centred dividers (not full width) */
.entry-content > hr,
.entry-content > .wp-block-separator,
.entry-content hr,
.entry-content .wp-block-separator,
.entry-content .wp-block-separator.is-style-wide,
.entry-content .wp-block-separator.is-style-default {
	display: block !important;
	width: 48px !important;
	max-width: 48px !important;
	height: 0 !important;
	border: none !important;
	border-top: 1px solid #cfcfcf !important;
	margin: 1.75rem auto !important;
	background: transparent !important;
	float: none !important;
}

/* Images centred */
.entry-content > .wp-block-image,
.entry-content .wp-block-image,
.entry-content > figure {
	display: block !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
	float: none !important;
}
.entry-content .wp-block-image img,
.entry-content figure img {
	display: block !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* ==================================================
   Extra space under child-page card grids
   ================================================== */
.ccomfy,
.child-pages,
.cc-child-pages,
.entry-content .ccomfy,
.entry-content .child-pages,
.entry-content .cc-child-pages,
.entry-content .wp-block-columns,
.entry-content .wp-block-gallery,
.entry-content .wp-block-group:has(.ccchildpage),
.entry-content .wp-block-group:has(img):not(:last-child) {
	margin-bottom: 3.5rem !important;
	padding-bottom: 0.5rem !important;
}

/* Last card row before following image / content */
.entry-content .ccomfy + *,
.entry-content .child-pages + *,
.entry-content .cc-child-pages + *,
.entry-content .wp-block-columns + .wp-block-image,
.entry-content .wp-block-columns + figure,
.entry-content .ccomfy + .wp-block-image,
.entry-content .ccomfy + figure,
.entry-content .child-pages + .wp-block-image {
	margin-top: 2rem !important;
}

/* ==================================================
   Space under child-page grids via ::after
   (Child Pages plugin forces margin:0 !important – bypass it)
   ================================================== */
.ccchildpages::after,
.ccchildpages.ccflex::after,
.ccflex::after,
.ccomfy::after,
.entry-content .ccchildpages::after,
.entry-content .ccomfy::after {
	content: "" !important;
	display: block !important;
	width: 100% !important;
	height: 4rem !important;
	flex: 0 0 100% !important;
	flex-basis: 100% !important;
	order: 9999 !important;
	pointer-events: none !important;
	grid-column: 1 / -1 !important;
}
