/*
Theme Name:     Circus Bazaar Magazine
Theme URI:      https://circusbazaar.com/
Description:    A custom Wordpress child theme for the 
Author:         The Circus Bazaar Company Ltd
Author URI:     https://thecircusbazaarcompany.com/
Template:       frost
Version:        1.0.0
Text Domain:    circus-bazaar-magazine
*/

/* Gutters are controlled via theme.json styles.spacing.padding for editor/frontend parity. */

:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) a {
	position: relative;
	text-decoration: none;
}

:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.1em;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 360ms ease;
}

.wp-block-post-author-name a {
	position: relative;
	text-decoration: none;
}

.wp-block-post-author-name a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.1em;
	height: 1px;
	background: currentColor;
	transform: scaleX(1);
	transform-origin: left;
}


:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) a:hover::after,
:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) a:focus-visible::after {
	transform: scaleX(1);
}

:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) a[aria-current="page"]::after,
:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) .current-menu-item > a::after,
:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) .current_page_item > a::after,
:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) .current-menu-ancestor > a::after,
:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) .current_page_ancestor > a::after {
	transform: scaleX(1);
}

@media (prefers-reduced-motion: reduce) {
	:is(nav, .wp-block-navigation, .cbm-mega-menu-panel) a::after {
		transition: none;
	}
}

/* Header tagline: fluid sizing to preserve logo space across viewports. */
.cb-site-header .cb-header-tagline,
.cb-site-header .cb-header-tagline .wp-block-site-tagline {
	font-size: clamp(22px, 2.6vw, 42px);
	line-height: 1.15;
}

@media (max-width: 782px) {
	.cb-site-header .cb-header-utility,
	.cb-site-header .cb-header-shop,
	.cb-site-header .cb-header-tagline {
		display: none;
	}

	.cb-site-header .cb-site-logo img,
	.cb-site-header img.custom-logo {
		display: block;
		width: 100%;
		max-width: 100%;
		height: auto;
		margin-inline: auto;
	}

	.cb-site-header .cb-header-logo-col {
		flex: 0 0 100% !important;
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	/* Mobile: stack header columns full-width for the logo row. */
	.cb-site-header .cb-header-logo-columns.wp-block-columns {
		flex-wrap: wrap;
		row-gap: 0;
	}

	.cb-site-header .cb-header-logo-columns.wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	/* Mobile: keep header menu/search row inline and prevent label wrapping. */
	.cb-site-header .cbm-menu-search-row {
		flex-wrap: nowrap;
		justify-content: flex-start;
		align-items: center;
		gap: var(--wp--preset--spacing--xx-small, 10px);
	}

	.cb-site-header .cbm-menu-search-row > * {
		min-width: 0;
	}

	.cb-site-header .cbm-menu-search-row .cbm-menu-divider {
		flex: 0 0 auto;
		flex-shrink: 0;
		margin-inline: var(--wp--preset--spacing--xx-small, 10px);
	}

	.cb-site-header .cbm-menu-search-row .cbm-mega-menu-toggle {
		flex: 0 0 auto;
		flex-shrink: 0;
		white-space: nowrap;
	}

	.cb-site-header .cbm-menu-search-row .wp-block-search {
		flex: 1 1 auto;
		min-width: 0;
	}

	/* Mobile: neutralize core alignment floats on the logo wrapper. */
	.cb-site-header .cb-site-logo.alignright,
	.cb-site-header .cb-site-logo.alignleft {
		float: none;
		margin: 0;
		margin-left: 0;
		margin-right: 0;
	}

	.cb-site-header .cb-site-logo,
	.cb-site-header .cb-site-logo .custom-logo-link {
		display: block;
		width: 100%;
		max-width: 100%;
	}

	/* Mobile: keep header controls row inline and remove layout gaps. */
	.cb-site-header .cb-header-controls.wp-block-columns.is-layout-flex {
		flex-wrap: nowrap;
		gap: 0;
		align-items: center;
	}

	.cb-site-header .cb-header-controls.wp-block-columns.is-layout-flex > .wp-block-column {
		flex-basis: auto;
		width: auto;
		max-width: none;
		margin: 0;
	}
}

.wp-block-social-links.has-visible-labels :is(
	.wp-block-social-link-label,
	.wp-block-social-link a,
	.wp-block-social-link-anchor
) {
	letter-spacing: 0.03em;
	font-synthesis: none;
}

.wp-block-social-links.has-visible-labels .wp-block-social-link-label {
	font-family: var(--wp--preset--font-family--editserifpro);
	font-size: 18px;
}

.wp-block-social-links.has-visible-labels :is(
	.wp-block-social-link a,
	.wp-block-social-link-anchor
) {
	font-family: var(--wp--preset--font-family--editserifpro) !important;
	font-weight: inherit !important;
}

.wp-block-social-links .wp-block-social-link,
.wp-block-social-links .wp-block-social-link a,
.wp-block-social-links .wp-block-social-link a svg {
	transform: none !important;
}

.wp-block-social-links .wp-block-social-link:hover,
.wp-block-social-links .wp-block-social-link a:hover,
.wp-block-social-links .wp-block-social-link a:hover svg,
.wp-block-social-links .wp-block-social-link:focus,
.wp-block-social-links .wp-block-social-link a:focus,
.wp-block-social-links .wp-block-social-link a:focus svg {
	transform: none !important;
}

.cb-site-header .cbm-menu-search-row {
	gap: 0;
	align-items: center;
}

.cb-site-header .cbm-menu-search-row .cbm-mega-menu-toggle {
	position: relative;
	padding-right: var(--wp--preset--spacing--x-small);
	margin-right: var(--wp--preset--spacing--x-small);
}

.cb-site-header .cbm-menu-search-row .cbm-mega-menu-toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	width: 2px;
	height: 1.25em;
	background: var(--wp--preset--color--cb-black);
}

.cb-site-header .cbm-menu-search-row .wp-block-search {
	margin: 0;
	margin-left: -2px;
}

.cb-site-header .cbm-menu-search-row .wp-block-search__button {
	padding: 0;
	min-width: 0;
	display: inline-flex;
	align-items: center;
	line-height: 1;
	transform: translateX(-2px);
}

.cb-site-header .cbm-menu-search-row .wp-block-search__button-container {
	display: inline-flex;
	align-items: center;
}

.cb-site-header .cbm-menu-search-row .wp-block-search__button svg {
	margin: 0;
	width: 1.2em;
	height: 1.2em;
	transform: scale(1.1);
	transform-origin: center;
}

.cb-site-header .cbm-menu-search-row .wp-block-search__button-icon {
	font-size: 1.2em;
	line-height: 1;
}

.cb-site-header .cbm-menu-search-row .wp-block-search__input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
	height: 12px;
	width: 12px;
	background: transparent no-repeat center;
	background-size: 12px 12px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23101820' stroke-width='2' stroke-linecap='round'><path d='M3 3l6 6M9 3l-6 6'/></svg>");
}

.cb-site-header .cbm-menu-search-row .wp-block-search__input {
	color: var(--wp--preset--color--cb-black);
}

.cb-site-header .cbm-menu-search-row .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--cb-black);
	opacity: 1;
}

/*
CBM Section/Column/Loop utility classes (add in Site Editor):
- cbm-section on the outer Group wrapping the section
- cbm-col on each Column
- cbm-col--dividers on Columns that should show internal loop dividers
- cbm-loop on each Query Loop
- cbm-loop--featured on Query Loops with featured images
- cbm-loop--textonly on text-only Query Loops
*/
.cbm-section {
	--cbm-divider-color: var(--wp--preset--color--cb-black);
	--cbm-divider-width: 1px;
	--cbm-col-gap: var(--wp--preset--spacing--x-small);
	--cbm-stack-gap: var(--cbm-col-gap);
}

.cbm-section .wp-block-columns {
	--cbm-col-gap: var(--wp--style--block-gap, var(--wp--style--unstable-block-gap, var(--cbm-col-gap)));
	gap: var(--cbm-col-gap);
	align-items: stretch !important;
}

.cbm-section .wp-block-columns > .wp-block-column {
	position: relative;
	align-self: stretch;
}

.cbm-section .wp-block-columns > .wp-block-column + .wp-block-column::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: var(--cbm-divider-width);
	background: var(--cbm-divider-color);
	left: calc(var(--cbm-col-gap) / -2);
	transform: translateX(calc(var(--cbm-divider-width) / -2));
	pointer-events: none;
}

.cbm-col--dividers {
	--cbm-stack-gap: var(--wp--style--block-gap, var(--wp--style--unstable-block-gap, var(--wp--preset--spacing--x-small)));
}

.cbm-col--dividers .cbm-loop {
	position: relative;
}

.cbm-col--dividers .cbm-loop + .cbm-loop::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: calc(var(--cbm-stack-gap) / -2);
	height: var(--cbm-divider-width);
	background: var(--cbm-divider-color);
	pointer-events: none;
}

@media (max-width: 782px) {
	.cbm-section .wp-block-columns > .wp-block-column + .wp-block-column::before {
		left: 0;
		right: 0;
		top: calc(var(--cbm-col-gap) / -2);
		height: var(--cbm-divider-width);
		width: auto;
		bottom: auto;
		transform: none;
	}
}

.wp-block-post-template.cbm-author-archive-grid.is-layout-grid {
	--cbm-author-archive-grid-gap: 30px;
	column-gap: var(--cbm-author-archive-grid-gap) !important;
	row-gap: var(--cbm-author-archive-grid-gap) !important;
}

.wp-block-post-template.cbm-author-archive-grid.is-layout-grid > .wp-block-post {
	position: relative;
	padding-inline: 0;
}

.cbm-post-grid-b .wp-block-post-template.is-layout-grid > .wp-block-post {
	position: relative;
	padding-inline: calc(var(--cbm-author-archive-grid-gap) * 0.5);
}

.wp-block-post-template.cbm-author-archive-grid.is-layout-grid > .wp-block-post::after,
.cbm-post-grid-b .wp-block-post-template.is-layout-grid > .wp-block-post::after {
	content: "";
	position: absolute;
	top: 0;
	right: calc(var(--cbm-author-archive-grid-gap) * -0.5);
	width: 1px;
	height: 100%;
	background: currentColor;
}

.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-2 > .wp-block-post:nth-child(2n)::after,
.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-3 > .wp-block-post:nth-child(3n)::after,
.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-4 > .wp-block-post:nth-child(4n)::after,
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-2 > .wp-block-post:nth-child(2n)::after,
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-3 > .wp-block-post:nth-child(3n)::after,
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-4 > .wp-block-post:nth-child(4n)::after {
	display: none;
}

.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-2 > .wp-block-post:nth-child(2n + 1),
.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-3 > .wp-block-post:nth-child(3n + 1),
.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-4 > .wp-block-post:nth-child(4n + 1),
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-2 > .wp-block-post:nth-child(2n + 1),
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-3 > .wp-block-post:nth-child(3n + 1),
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-4 > .wp-block-post:nth-child(4n + 1) {
	padding-left: 0;
}

.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-2 > .wp-block-post:nth-child(2n),
.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-3 > .wp-block-post:nth-child(3n),
.wp-block-post-template.cbm-author-archive-grid.is-layout-grid.columns-4 > .wp-block-post:nth-child(4n),
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-2 > .wp-block-post:nth-child(2n),
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-3 > .wp-block-post:nth-child(3n),
.cbm-post-grid-b .wp-block-post-template.is-layout-grid.columns-4 > .wp-block-post:nth-child(4n) {
	padding-right: 0;
}

.wp-block-post-template.cbm-author-archive-grid .wp-block-post-title,
.wp-block-post-template.cbm-author-archive-grid .wp-block-post-title a,
.cbm-post-grid-b .wp-block-post-title,
.cbm-post-grid-b .wp-block-post-title a,
.cbm-post-grid-a .wp-block-post-title,
.cbm-post-grid-a .wp-block-post-title a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	line-height: var(--cbm-author-archive-grid-title-line-height, 1.1);
	max-height: calc(2 * var(--cbm-author-archive-grid-title-line-height, 1.1) * 1em);
}

.wp-block-post-template.cbm-author-archive-grid .wp-block-post-title,
.cbm-post-grid-b .wp-block-post-title,
.cbm-post-grid-a .wp-block-post-title {
	min-height: calc(2 * var(--cbm-author-archive-grid-title-line-height, 1.1) * 1em);
}

.wp-block-post-template.cbm-author-archive-grid .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	line-height: 1.56;
	max-height: calc(3 * 1.56em);
	min-height: calc(3 * 1.56em);
}

.wp-block-post-template.cbm-category-loop .wp-block-post-title,
.wp-block-post-template.cbm-category-loop .wp-block-post-title a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	line-height: var(--cbm-author-archive-grid-title-line-height, 1.1);
	max-height: calc(2 * var(--cbm-author-archive-grid-title-line-height, 1.1) * 1em);
}

.wp-block-post-template.cbm-category-loop .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	line-height: 1.56;
	max-height: calc(3 * 1.56em);
}

.wp-block-post-template.cbm-category-loop > .wp-block-post {
	border-bottom: 1px solid var(--wp--preset--color--cb-black);
	padding-bottom: var(--wp--preset--spacing--small);
	margin-bottom: var(--wp--preset--spacing--small);
}

.wp-block-post-template.cbm-category-loop > .wp-block-post:last-child {
	border-bottom: 0;
	padding-bottom: 0;
	margin-bottom: 0;
}

.cbm-post-grid-a .wp-block-post-excerpt {
	display: none;
}

.cbm-loop .cbm-subtitle {
	font-family: var(--wp--preset--font-family--editserifpro);
	font-size: var(--wp--preset--font-size--small, 18px);
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 1.56;
}

.cbm-loop .cbm-subtitle a {
	font-family: inherit;
}

.cbm-loop--featured .cbm-subtitle {
	text-align: center;
}

.editor-styles-wrapper .cbm-post-grid-b .wp-block-post-excerpt__more-link,
.editor-styles-wrapper .wp-block-post-template .wp-block-post-excerpt__more-link {
	display: none;
}

.editor-styles-wrapper .wp-block-post-excerpt__more-link {
	display: none;
}


@media (max-width: 782px) {
	.wp-block-post-template.cbm-author-archive-grid.is-layout-grid > .wp-block-post,
	.cbm-post-grid-b .wp-block-post-template.is-layout-grid > .wp-block-post {
		padding-inline: 0;
	}

	.wp-block-post-template.cbm-author-archive-grid.is-layout-grid > .wp-block-post::after,
	.cbm-post-grid-b .wp-block-post-template.is-layout-grid > .wp-block-post::after {
		display: none;
	}

	.wp-block-post-template.cbm-author-archive-grid.is-layout-grid > .wp-block-post + .wp-block-post,
	.cbm-post-grid-b .wp-block-post-template.is-layout-grid > .wp-block-post + .wp-block-post {
		border-top: 1px solid currentColor;
		padding-top: var(--wp--preset--spacing--small);
		margin-top: var(--wp--preset--spacing--small);
	}
}
