/* ==========================================================================
   Run It Cool – theme styles (front end + editor)
   Colours, fonts and sizes live in theme.json; this file covers the
   component looks carried over from the old site.
   ========================================================================== */

:root {
	--ric-blue: var(--wp--preset--color--primary, #009cde);
	--ric-dark: var(--wp--preset--color--dark, #2a2d2e);
	--ric-header-h: 100px;
	--ric-header-h-stuck: 60px;
	--ric-admin-bar: var(--wp-admin--admin-bar--height, 0px);
}

body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
.wp-site-blocks { overflow-x: clip; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }

/* Paragraph spacing inside text areas ------------------------------------ */
.wp-block-post-content p:empty { display: none; }
.wp-block-group > p:last-child,
.wp-block-column > p:last-child { margin-bottom: 0; }

/* ==========================================================================
   Header
   ========================================================================== */
.ric-header {
	position: relative;
	z-index: 100;
	height: var(--ric-header-h);
	background: #fff;
	transition: height .3s ease, background-color .3s ease;
	padding-left: var(--wp--style--root--padding-left);
	padding-right: var(--wp--style--root--padding-right);
}
.ric-header.is-overlay {
	position: absolute;
	top: var(--ric-admin-bar);
	left: 0;
	right: 0;
	background: rgba(42, 45, 46, .05);
	border-bottom: 1px solid rgba(42, 45, 46, .05);
}
.ric-header.is-solid { box-shadow: 0 0 15px rgba(0,0,0,.07); }
.ric-header-holder { min-height: var(--ric-header-h); }
.ric-header.is-stuck {
	position: fixed;
	top: var(--ric-admin-bar);
	left: 0;
	right: 0;
	height: var(--ric-header-h-stuck);
	background: #fff;
	border-bottom: 1px solid rgba(235, 235, 235, .5);
	box-shadow: 0 0 15px rgba(0,0,0,.07);
	animation: ric-drop .35s ease;
}
@keyframes ric-drop { from { transform: translateY(-100%); } to { transform: none; } }

.ric-header__inner { height: 100%; max-width: 1170px; margin: 0 auto !important; }
.ric-header .ric-logo { gap: 0; }
.ric-header .ric-logo figure { margin: 0; }
.ric-header .ric-logo img { width: 110px !important; transition: width .3s ease; }
.ric-header.is-stuck .ric-logo img { width: 80px !important; }
.ric-header .ric-logo-dark { display: none; }
.ric-header.is-solid .ric-logo-light,
.ric-header.is-stuck .ric-logo-light { display: none; }
.ric-header.is-solid .ric-logo-dark,
.ric-header.is-stuck .ric-logo-dark { display: block; }
.ric-header__right { gap: 0; height: 100%; }

/* Main navigation */
.ric-nav { height: 100%; }
.ric-nav .wp-block-navigation__container { gap: 0; height: 100%; }
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item {
	height: 100%;
}
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 22.5px;
	font-family: var(--wp--preset--font-family--roboto);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #fff;
	position: relative;
}
.ric-header.is-solid .ric-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content,
.ric-header.is-stuck .ric-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	color: #666;
}
.ric-header.is-stuck .ric-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--raleway);
	font-weight: 700;
}
/* Underline for current item */
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 22.5px;
	right: 22.5px;
	top: calc(50% + 14px);
	height: 2px;
	background: currentColor;
	transform: scaleX(0);
	transition: transform .25s ease;
}
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::after,
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current]::after,
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.ric-header.is-solid .ric-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after,
.ric-header.is-stuck .ric-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { background: var(--ric-blue); }

.ric-nav .wp-block-navigation__submenu-icon { margin-left: -16px; margin-right: 6px; color: #fff; width: 9px; height: 9px; }
.ric-header.is-solid .ric-nav .wp-block-navigation__submenu-icon,
.ric-header.is-stuck .ric-nav .wp-block-navigation__submenu-icon { color: #666; }
.ric-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon { color: #999; margin: 0 20px 0 -30px; transform: rotate(-90deg); }

/* Dropdowns */
.ric-nav .wp-block-navigation__submenu-container {
	background: #fff !important;
	border: 0 !important;
	min-width: 240px !important;
	padding: 17px 0 !important;
	box-shadow: 0 0 15px rgba(0,0,0,.15);
	color: #666 !important;
	top: 100% !important;
}
.ric-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { top: -17px !important; left: 100% !important; }
.ric-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 6px 30px !important;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	line-height: 24px;
	color: #666;
	text-transform: none;
	letter-spacing: 0;
}
.ric-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--ric-blue); }
.ric-nav .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }

/* Header search (button only, expands) */
.ric-search { margin-left: 45px; }
.ric-search .wp-block-search__button {
	background: transparent !important;
	border: 0;
	padding: 0;
	color: #fff;
	width: 26px;
	min-width: 0;
	height: 26px;
}
.ric-search .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }
.ric-header.is-solid .ric-search .wp-block-search__button,
.ric-header.is-stuck .ric-search .wp-block-search__button { color: #666; }
.ric-search .wp-block-search__inside-wrapper { border: 0; padding: 0; }
.ric-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 20px;
	padding: 4px 14px;
	font-size: 14px;
	color: #666;
}

/* Mobile header + menu (switches below 1100px like the old theme) */
@media (max-width: 1099px) {
	:root { --ric-header-h: 60px; }
	.ric-header.is-overlay { position: relative; top: 0; background: #fff; }
	.ric-header .ric-logo img { width: 80px !important; }
	.ric-header .ric-logo-light { display: none; }
	.ric-header .ric-logo-dark { display: block; }
	.ric-search { display: none; }
	.ric-nav .wp-block-navigation__responsive-container-open { display: flex !important; color: #666; }
	.ric-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.ric-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: #fff !important;
		color: #666 !important;
		padding: 70px 20px 30px;
	}
	.ric-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		color: #333 !important;
		height: auto;
		padding: 10px 0;
		font-family: var(--wp--preset--font-family--open-sans);
		font-size: 15px;
	}
	.ric-nav .is-menu-open .wp-block-navigation-item__content::after { display: none; }
	.ric-nav .is-menu-open .wp-block-navigation__submenu-container { box-shadow: none; padding: 0 0 0 15px !important; min-width: 0 !important; }
	.ric-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 6px 0 !important; }
	.ric-nav .is-menu-open .wp-block-navigation__submenu-icon { display: none; }
}

/* ==========================================================================
   Hero (cover) – sits under the transparent header
   ========================================================================== */
.wp-block-post-content > .wp-block-cover.alignfull:first-child { margin-top: 0; }
.wp-block-cover .wp-block-cover__inner-container > :last-child { margin-bottom: 0; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.wp-block-button__link {
	position: relative;
	overflow: hidden;
	transition: background-color .3s, color .3s, border-color .3s, box-shadow .3s;
	min-width: 160px;
	text-align: center;
}
.wp-block-button__link::before { /* shine – same as the old theme */
	content: "";
	position: absolute;
	top: 0;
	left: -200%;
	width: 200%;
	height: 20px;
	background-color: rgba(255,255,255,.35);
	transform: rotateZ(45deg);
	pointer-events: none;
}
.wp-block-button__link:hover::before { left: 100%; transition: all .5s ease; }
/* Default pill button: lighter blue on hover (as the old site) */
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover { background-color: #49b0f1; }
/* Service card buttons: soft shadow that fades on hover, colour stays */
.is-style-service-card .wp-block-button__link { box-shadow: 0 0 15px rgba(0,0,0,.25); }
.is-style-service-card .wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover { background-color: var(--ric-blue); box-shadow: 0 0 15px rgba(0,0,0,0); }

.wp-block-button.is-style-wide .wp-block-button__link,
.wp-block-button.is-style-wide-light .wp-block-button__link {
	width: 300px;
	max-width: 100%;
	height: 50px;
	line-height: 48px;
	border: 1px solid var(--ric-blue);
	border-radius: 10px;
	font-size: 16px;
	font-weight: 400;
	text-transform: none;
	box-shadow: none;
}
.wp-block-button.is-style-wide .wp-block-button__link::after {
	content: "";
	display: inline-block;
	width: 0;
	height: 16px;
	vertical-align: -2px;
	background: currentColor;
	-webkit-mask: url(../icons/rightarrow-tail.svg) center/contain no-repeat;
	mask: url(../icons/rightarrow-tail.svg) center/contain no-repeat;
	transition: width .3s ease, margin .3s ease;
}
.wp-block-button.is-style-wide .wp-block-button__link:hover::after { width: 16px; margin-left: 8px; }
.wp-block-button.is-style-wide .wp-block-button__link:hover { background: #fff; color: var(--ric-dark); border-color: #fff; }
.wp-block-button.is-style-wide-light .wp-block-button__link:hover { background: #2f2933; color: #fff; border-color: #2f2933; }

/* ==========================================================================
   Icon box (grey tile with icon, heading, text)
   ========================================================================== */
.wp-block-group.is-style-iconbox {
	background: #f4f4f4;
	border: 1px solid #e7e6e6;
	padding: 20% 15%;
	text-align: center;
	transition: background-color .3s ease;
	font-size: 14px;
	line-height: 24px;
}
.wp-block-group.is-style-iconbox:hover { background: #fff; }
.is-style-iconbox .ric-icon { color: #2f2933; margin-bottom: 44px; line-height: 0; transition: color .3s ease; }
.is-style-iconbox:hover .ric-icon { color: var(--ric-blue); }
.is-style-iconbox h3, .is-style-iconbox h4, .is-style-iconbox .ric-box-title {
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
	color: #333;
	margin: 0 0 22px;
}
.is-style-iconbox p { font-size: 14px; line-height: 24px; margin: 0; color: #666; }
.is-style-iconbox .wp-block-image { margin: 0 0 44px; }
.ric-icon { display: flex; justify-content: center; line-height: 0; }
.ric-icon svg { display: block; }

/* Edge-to-edge icon grids */
.ric-grid-flush.wp-block-columns { gap: 0 !important; margin-bottom: 0; }
.ric-grid-flush > .wp-block-column { margin: 0 !important; }

/* ==========================================================================
   Service card (image, title, text, button)
   ========================================================================== */
.wp-block-group.is-style-service-card { text-align: center; font-size: 14px; line-height: 24px; }
.is-style-service-card .wp-block-image { margin: 0 0 45px; }
.is-style-service-card .wp-block-image img { width: 300px; height: auto; }
.is-style-service-card h3, .is-style-service-card .ric-box-title { font-size: 16px; font-weight: 600; line-height: 24px; color: #333; margin: 0 0 22px; }
.is-style-service-card p { font-size: 14px; line-height: 24px; color: #666; margin: 0; }
.is-style-service-card .wp-block-buttons { margin-top: 20px; }

/* ==========================================================================
   Testimonials
   ========================================================================== */
.wp-block-group.is-style-testimonial {
	position: relative;
	background: #fff;
	border: 3px solid #666;
	border-radius: 5px;
	padding: 81px 50px 32px;
	margin-top: 60px;
	text-align: center;
	font-size: 14px;
	line-height: 24px;
}
.is-style-testimonial .ric-tm-logo {
	position: absolute;
	top: -60px;
	left: 50%;
	margin: 0 0 0 -60px !important;
	width: 120px;
	height: 120px;
	padding: 2px;
	background: #fff;
	border-radius: 100px;
	display: flex;
	align-items: flex-start;
	justify-content: center;
}
.is-style-testimonial .ric-tm-logo img { border-radius: 100px; max-width: 116px; }
.is-style-testimonial .ric-tm-text { margin: 0 0 26px; color: #666; }
.is-style-testimonial .ric-tm-author { font-size: 16px; font-weight: 500; color: #333; margin: 0 0 1px; }
.is-style-testimonial .ric-tm-info { color: #666; margin: 0; }

/* ==========================================================================
   Carousel
   ========================================================================== */
.is-style-carousel { overflow: hidden; position: relative; --ric-per-view: 3; --ric-gap: 30px; }
.ric-logos.is-style-carousel { --ric-gap: 0px; }
.is-style-carousel > .ric-carousel__track {
	display: flex;
	gap: var(--ric-gap);
	transition: transform .8s ease;
	will-change: transform;
}
.is-style-carousel .ric-carousel__item {
	flex: 0 0 calc((100% - var(--ric-gap) * (var(--ric-per-view) - 1)) / var(--ric-per-view));
	max-width: calc((100% - var(--ric-gap) * (var(--ric-per-view) - 1)) / var(--ric-per-view));
	box-sizing: border-box;
	margin: 0 !important;
}
.is-style-carousel .ric-carousel__item.is-style-testimonial { margin-top: 60px !important; }
.is-style-carousel.ric-autoplay { padding-bottom: 3px; }
.ric-carousel__dots { display: flex; justify-content: center; gap: 0; margin-top: 40px; }
.ric-carousel__dots[hidden] { display: none; }
.ric-carousel__dots button { width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; }
.ric-carousel__dots button::before {
	content: ""; display: block; width: 8px; height: 8px; margin: auto; border-radius: 50%; background: #ccc; transition: all .2s;
}
.ric-carousel__dots button.is-active::before { width: 10px; height: 10px; background: #bbb; }
/* Without JS (and in the editor) show items in a wrapping row */
.is-style-carousel:not(:has(> .ric-carousel__track)) { display: flex; flex-wrap: wrap; gap: 30px var(--ric-gap); }
.is-style-carousel:not(:has(> .ric-carousel__track)) > * { flex: 0 0 calc((100% - var(--ric-gap) * (var(--ric-per-view) - 1)) / var(--ric-per-view)); margin: 0; }
.ric-cols-5 { --ric-per-view: 5; }
.ric-cols-3 { --ric-per-view: 3; }
.ric-logos figure { margin: 0; }
.ric-logos img { display: block; width: 100%; height: auto; }

/* ==========================================================================
   FAQ toggles (details)
   ========================================================================== */
.wp-block-details.is-style-faq { margin: 0 0 22px; }
.wp-block-details.is-style-faq > summary {
	list-style: none;
	position: relative;
	padding-left: 24px;
	font-size: 21px;
	line-height: 21px;
	color: #333;
	cursor: pointer;
}
.wp-block-details.is-style-faq > summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-faq > summary::before,
.wp-block-details.is-style-faq > summary::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 9px;
	width: 10px;
	height: 4px;
	background: #bababa;
	border: 1px solid #acacac;
	box-sizing: border-box;
}
.wp-block-details.is-style-faq > summary::after { transform: rotate(90deg); transition: transform .2s; }
.wp-block-details.is-style-faq[open] > summary::after { transform: rotate(0); }
.wp-block-details.is-style-faq > :not(summary) { padding-left: 24px; font-size: 14px; line-height: 24px; color: #666; }
.wp-block-details.is-style-faq > summary + * { margin-top: 14px; }
.wp-block-details.is-style-faq p { font-size: 14px; line-height: 24px; }

/* ==========================================================================
   Read more (collapsed text block)
   ========================================================================== */
.is-style-readmore { position: relative; overflow: hidden; max-height: 18em; transition: max-height .5s ease; }
.is-style-readmore::after {
	content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 40px;
	background: linear-gradient(to bottom, transparent, #fff); pointer-events: none;
}
.is-style-readmore.expanded, .is-style-readmore.is-short { max-height: none; }
.is-style-readmore.expanded::after, .is-style-readmore.is-short::after { content: none; }
.editor-styles-wrapper .is-style-readmore { max-height: none; }
.editor-styles-wrapper .is-style-readmore::after { content: none; }
.read-more-wrapper { text-align: center; margin: 10px 0 20px; }
.read-more-toggle {
	display: inline-block; padding: 0; border: 0; background: #fff; cursor: pointer;
	color: var(--ric-blue); text-decoration: underline; font: inherit; font-size: 16px; line-height: 24px;
}

/* ==========================================================================
   Depot hub tiles (About page)
   ========================================================================== */
.wp-block-cover.is-style-hub h2, .wp-block-cover.is-style-hub h3 { margin-bottom: 0; }
.wp-block-cover.is-style-hub .wp-block-separator { border: 0; border-top: 3px solid #fff; width: 204px; margin: 15px auto 30px; opacity: 1; }

/* ==========================================================================
   Footer
   ========================================================================== */
.ric-footer .wp-block-columns { margin-bottom: 0; }
.ric-footer p { font-size: 14px; line-height: 24px; margin: 0 0 17px; }
.ric-footer .ric-footer-logo { margin: 0; }
.ric-footer .ric-footer-logo img { width: 270px; }
.wp-block-heading.is-style-footer-title {
	font-family: var(--wp--preset--font-family--poppins);
	font-size: 16px;
	line-height: normal;
	font-weight: 400;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 40px;
}
.ric-footer-sub strong { color: #fff; }
.ric-footer-sub p { margin: 0; }

/* Back to top */
.ric-to-top {
	position: fixed; right: 30px; bottom: 30px; z-index: 90; width: 30px; height: 30px;
	background: rgba(0,0,0,.25); border-radius: 2px;
}
.ric-to-top::before {
	content: ""; position: absolute; inset: 0; background: #fff;
	-webkit-mask: url(../icons/angle-up.svg) center/12px no-repeat; mask: url(../icons/angle-up.svg) center/12px no-repeat;
}
.ric-to-top:hover { background: var(--ric-blue); }

/* ==========================================================================
   Single post + listings
   ========================================================================== */
.ric-single .wp-block-post-content { font-size: 14px; line-height: 24px; }
.ric-single .wp-block-post-content p { margin: 0 0 28px; }
.ric-post-nav { border-top: 4px solid #eee; border-bottom: 1px solid #eee; padding: 25px 0; margin-top: 60px; }
.ric-post-nav a {
	display: inline-block; background: #f4f4f4; border: 1px solid #e5e5e5; padding: 6px 30px;
	font-family: var(--wp--preset--font-family--poppins); font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: #333;
}
.ric-sidebar .ric-side-search .wp-block-search__inside-wrapper { border: 1px solid #e5e5e5; padding: 0; }
.ric-sidebar .ric-side-search input { border: 0; padding: 0 15px; height: 40px; font-size: 14px; }
.ric-sidebar .ric-side-search button { background: transparent; color: #666; border: 0; }
.wp-block-heading.is-style-widget-title {
	font-family: var(--wp--preset--font-family--poppins); font-size: 15px; letter-spacing: 1px; text-transform: uppercase;
	color: #333; margin: 45px 0 25px; line-height: normal;
}
.ric-recent-posts { padding: 0; margin: 0; list-style: none; }
.ric-recent-posts li { position: relative; padding: 0 0 15px 25px; margin: 0 0 15px; border-bottom: 1px solid #e5e5e5; font-size: 14px; line-height: 24px; }
.ric-recent-posts li::before { content: "›"; position: absolute; left: 4px; top: -1px; color: var(--ric-blue); }
.ric-recent-posts a { color: #666; }

.ric-post-list .wp-block-post { margin: 0 0 50px; }
.ric-post-list .wp-block-post-title { font-size: 30px; line-height: 1.2; color: #333; margin: 0 0 20px; }
.ric-post-list .wp-block-post-title a { color: #333; }
.ric-post-list .wp-block-post-excerpt { font-size: 14px; line-height: 24px; }
.ric-post-list .wp-block-post-excerpt__excerpt { margin: 0 0 8px; }
.ric-post-list .wp-block-post-excerpt__more-link { color: #333; font-size: 14px; }
.ric-listing-title { font-size: 36px; font-weight: 300; margin-bottom: 50px; }

/* ==========================================================================
   Contact Form 7
   ========================================================================== */
.wpcf7-form p { font-size: 14px; line-height: 24px; color: #666; margin: 0 0 15px; }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form textarea {
	width: 100%; margin-top: 5px; padding: 8px 15px; border: 1px solid #ececec; border-radius: 10px; background: #fff;
	font: inherit; font-size: 14px; color: #666; box-sizing: border-box;
}
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"] { height: 42px; }
.wpcf7-form textarea { height: 200px; resize: vertical; }
.wpcf7-form input:focus, .wpcf7-form textarea:focus { outline: none; border-color: var(--ric-blue); }
.wpcf7-form .wpcf7-list-item { margin: 0; }
.wpcf7-form .wpcf7-submit {
	width: 100%; height: 50px; border: 1px solid var(--ric-blue); border-radius: 10px; background: var(--ric-blue); color: #fff;
	font: inherit; font-size: 14px; text-transform: uppercase; cursor: pointer; transition: background-color .3s, border-color .3s;
}
.wpcf7-form .wpcf7-submit:hover { background: var(--ric-dark); border-color: var(--ric-dark); }

/* ==========================================================================
   Misc
   ========================================================================== */
.ric-map iframe { display: block; width: 100%; border: 0; }
.has-text-align-center { text-align: center; }
@media (max-width: 781px) {
	.wp-block-columns.ric-stack-gap { gap: 30px; }
	.is-style-testimonial { margin-top: 80px; }
}

/* ==========================================================================
   Spacing rules that must beat the layout engine's zero block gap
   ========================================================================== */
:root :where(.is-layout-flow, .is-layout-constrained) > p { margin-block-end: 17px; }
:root :where(.is-layout-flow, .is-layout-constrained) > h1:nth-child(n) { margin-block-end: 33px; }
:root :where(.is-layout-flow, .is-layout-constrained) > h2:nth-child(n) { margin-block-end: 23px; }
:root :where(.is-layout-flow, .is-layout-constrained) > h3:nth-child(n) { margin-block-end: 19px; }
:root :where(.is-layout-flow, .is-layout-constrained) > h4:nth-child(n) { margin-block-end: 20px; }
:root :where(.is-layout-flow, .is-layout-constrained) > h5:nth-child(n) { margin-block-end: 16px; }
:root :where(.is-layout-flow, .is-layout-constrained) > h6:nth-child(n) { margin-block-end: 16px; }
:root :where(.is-layout-flow, .is-layout-constrained) > :is(ul, ol) { margin-block-end: 17px; }
:root :where(.is-layout-flow, .is-layout-constrained) > :is(p, ul, ol):last-child { margin-block-end: 0; }

/* Header layout: let the menu fill the bar height */
.ric-header__right, .ric-header .ric-nav, .ric-nav .wp-block-navigation__responsive-container,
.ric-nav .wp-block-navigation__responsive-close, .ric-nav .wp-block-navigation__responsive-dialog,
.ric-nav .wp-block-navigation__responsive-container-content { height: 100%; }
.ric-nav .wp-block-navigation__container { align-items: stretch; }
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item { align-items: center; }
.ric-header .ric-logo { align-self: center; }
.wp-block-details.is-style-faq { margin-bottom: 26px; }

/* Responsive visibility helpers (carried over from the old builder) */
@media (min-width: 992px) { .ric-hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 991px) { .ric-hide-tablet { display: none !important; } }
@media (max-width: 767px) { .ric-hide-mobile { display: none !important; } }
.is-style-carousel > .ric-carousel__track { align-items: flex-start; }
.ric-no-dots .ric-carousel__dots { display: none; }
.ric-main.ric-single, .ric-main.ric-listing { padding-bottom: 60px; }

/* Nav: submenu arrow sits inside the item padding like the old menu */
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation-item__content { padding-right: 0; }
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-icon { margin: 0 22.5px 0 11px; }
.ric-nav .wp-block-navigation__container > .wp-block-navigation-item.has-child > .wp-block-navigation-item__content::after { right: -20px; }
.ric-search { margin-left: 32px; align-self: center; }
.ric-search .wp-block-search__button { width: 20px; height: 20px; }
.ric-search .wp-block-search__button svg { width: 18px; height: 18px; }
.ric-header .ric-search { margin-left: 32px !important; display: flex; align-items: center; height: 100%; }
.ric-header .ric-search .wp-block-search__inside-wrapper { align-items: center; }

.wp-block-column > .wp-block-group.is-style-iconbox:only-child { height: 100%; }
.wp-block-cover.is-style-hub { min-height: 0; }

.wp-block-group.is-style-iconbox { min-height: 400px; box-sizing: border-box; }
.ric-footer { min-height: 404px; box-sizing: border-box; }
.ric-post-list .wp-block-post-title { font-size: 28px; }

/* Column gutters like the old builder (15px each side) */
.wp-block-columns.ric-vc-cols { margin-left: -15px; margin-right: -15px; }
.wp-block-columns.ric-vc-cols > .wp-block-column { padding-left: 15px; padding-right: 15px; box-sizing: border-box; }
@media (max-width: 781px) { .wp-block-columns.ric-vc-cols { gap: 0 !important; } .wp-block-columns.ric-vc-cols > .wp-block-column + .wp-block-column { margin-top: 0; } }
.is-layout-constrained > .wp-block-columns.ric-vc-cols {
	max-width: none !important;
	margin-left: max(-15px, calc((100% - var(--wp--style--global--content-size) - 30px) / 2)) !important;
	margin-right: max(-15px, calc((100% - var(--wp--style--global--content-size) - 30px) / 2)) !important;
}
.wp-block-group.is-style-service-card { margin-top: 20px; min-height: 400px; }
.is-style-carousel.ric-no-dots { margin-bottom: 47px; }
:where(.wp-block-columns) { margin-bottom: 0; }
.ric-footer .wp-block-heading.is-style-footer-title:nth-child(n) { margin: 0 0 40px; }
.ric-sidebar .wp-block-heading.is-style-widget-title:nth-child(n) { margin: 45px 0 25px; }

/* Mobile menu (overlay): vertical list with collapsible submenus */
.ric-nav .is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 10px; }
.ric-nav .is-menu-open .wp-block-navigation__container { flex-direction: column !important; align-items: stretch !important; height: auto !important; gap: 0 !important; width: 100%; }
.ric-nav .is-menu-open .wp-block-navigation-item { flex-wrap: wrap !important; flex-direction: row !important; align-items: center !important; height: auto !important; width: 100%; border-bottom: 1px solid #eee; }
.ric-nav .is-menu-open .wp-block-navigation-item__content { flex: 1 1 auto; padding: 12px 0 !important; }
.ric-nav .is-menu-open .wp-block-navigation__submenu-icon { display: flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 !important; transform: none !important; color: #666 !important; }
.ric-nav .is-menu-open .wp-block-navigation__submenu-icon svg { width: 12px; height: 12px; transition: transform .2s; }
.ric-nav .is-menu-open .ric-open > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
.ric-nav .is-menu-open .wp-block-navigation__submenu-container { display: none !important; position: static !important; width: 100% !important; padding: 0 0 0 15px !important; box-shadow: none !important; opacity: 1 !important; visibility: visible !important; height: auto !important; min-width: 0 !important; }
.ric-nav .is-menu-open .ric-open > .wp-block-navigation__submenu-container { display: flex !important; flex-direction: column; }
.ric-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item:last-child { border-bottom: 0; }
.ric-nav .is-menu-open .wp-block-navigation__submenu-icon svg { transform: rotate(0deg); }
.ric-nav .is-menu-open .ric-open > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
.ric-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { width: auto !important; flex: 1 1 0; }

/* Hero images: same framing as the old parallax rows */
.wp-block-cover .wp-block-cover__image-background.has-parallax { background-position: 50% -150px !important; }

/* Post navigation hover (old site style) */
.ric-post-nav a { transition: background-color .3s, color .3s, border-color .3s; }
.ric-post-nav a:hover { background: #69d2e7; border-color: #69d2e7; color: #fff; }

/* Header search: icon only; opens a full-screen overlay */
.ric-header .ric-search .wp-block-search__input { display: none !important; }
.ric-header .ric-search .wp-block-search__inside-wrapper { width: auto !important; }
.ric-search-overlay {
	position: fixed; inset: 0; z-index: 9998; display: flex; align-items: center; justify-content: center;
	background: rgba(35,35,35,.75); opacity: 0; visibility: hidden;
	transition: opacity .4s .4s, visibility 0s .75s;
}
.ric-search-overlay.is-open { opacity: 1; visibility: visible; transition: opacity .4s; }
.ric-search-overlay form {
	position: relative; width: 100%; max-width: 60vw; margin: 0;
	opacity: 0; transform: translateY(50px); transition: all .95s cubic-bezier(.2,1,.2,1);
}
.ric-search-overlay.is-open form { opacity: 1; transform: none; }
.ric-search-overlay input[type="search"] {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 3vh; color: #fff;
	padding: .75em 3em .75em 1.5em; border: 1px solid rgba(255,255,255,.35); border-radius: 0; background: none; outline: none;
}
.ric-search-overlay input[type="search"]:focus { border-color: #1c9fd5; }
.ric-search-overlay input::placeholder { color: #fff; opacity: 1; }
.ric-search-overlay__go {
	position: absolute; right: 1.5em; top: 50%; width: 3.2vh; height: 3.2vh; margin-top: -1.6vh; padding: 0; border: 0; cursor: pointer;
	background: #fff; -webkit-mask: url(../icons/search2.svg) center/contain no-repeat; mask: url(../icons/search2.svg) center/contain no-repeat;
}
.ric-search-overlay__close {
	position: absolute; top: 0; right: 0; width: 100px; height: 100px; border: 0; background: none; cursor: pointer;
}
.ric-search-overlay__close span, .ric-search-overlay__close span::before {
	position: absolute; left: 40px; top: 49px; width: 20px; height: 2px; background: #fff; border-radius: 5px; transform: rotate(45deg); content: "";
}
.ric-search-overlay__close span::before { left: 0; top: 0; transform: rotate(-90deg); }
html.ric-search-open { overflow: hidden; }
@media (max-width: 781px) { .ric-search-overlay form { max-width: 90vw; } }

/* Mobile/tablet: no header search (as live) – hamburger sits flush right */
@media (max-width: 1099px) {
	.ric-header .ric-search { display: none !important; }
}

/* Touch devices (iOS/Android ignore fixed backgrounds): no parallax offset, so the
   hero photo always fills the whole area instead of leaving a grey strip at the bottom */
@supports (-webkit-touch-callout: inherit) {
	.wp-block-cover .wp-block-cover__image-background.has-parallax { background-attachment: scroll !important; background-position: 50% 50% !important; }
}
@media (hover: none), (max-width: 1099px) {
	.wp-block-cover .wp-block-cover__image-background.has-parallax { background-attachment: scroll !important; background-position: 50% 50% !important; background-size: cover !important; }
}
