/**
 * Cantan Group 2025 — Legacy Compatibility CSS
 *
 * Styles carried forward from the TwentyTwenty child theme to support
 * existing page content that uses old class names and structures.
 * Uses cg-- BEM notation for any new classes.
 */

/* ========================================================================
   LANGUAGE SWITCHER PILL
   ======================================================================== */

.cg--lang-pill
{
	display: inline-flex;
	align-items: center;
	font-family: 'Montserrat', sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.05em;
	border-radius: 20px;
	overflow: hidden;
	border: 1px solid #e5e7eb;
	margin-left: auto;
}

.cg--lang-pill__active
{
	padding: 4px 10px;
	background: #1a1a2e;
	color: #ffffff;
	cursor: default;
}

.cg--lang-pill__link
{
	padding: 4px 10px;
	color: #757575;
	text-decoration: none !important;
	transition: all 0.2s;
}

.cg--lang-pill__link:hover
{
	color: #1a1a2e;
	background: #f5f5f5;
}

/* Dark mode pill (footer) */
.has-dark-background-color .cg--lang-pill
{
	border-color: rgba(255, 255, 255, 0.2);
}

.has-dark-background-color .cg--lang-pill__active
{
	background: rgba(255, 255, 255, 0.15);
	color: #ffffff;
}

.has-dark-background-color .cg--lang-pill__link
{
	color: rgba(255, 255, 255, 0.4);
}

.has-dark-background-color .cg--lang-pill__link:hover
{
	color: #ffffff;
	background: rgba(255, 255, 255, 0.08);
}

/* ========================================================================
   NAVIGATION — current state, hierarchy, and dropdown styling
   ======================================================================== */

/* All nav items — hover transition */
.wp-block-navigation .wp-block-navigation-item__content
{
	transition: color 0.2s;
	position: relative;
}

.wp-block-navigation .wp-block-navigation-item__content:hover
{
	color: #3f51b5 !important;
}

/* External link icon on nav items that open in new tab */
.wp-block-navigation .wp-block-navigation-item__content[target="_blank"]::after
{
	content: '';
	display: inline-block;
	width: 13px;
	height: 13px;
	margin-left: 5px;
	vertical-align: -1px;
	background: currentColor;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	opacity: 0.5;
}

/* Current page — aria-current="page" injected by PHP */
.wp-block-navigation a.wp-block-navigation-item__content[aria-current="page"]
{
	color: #3f51b5 !important;
	position: relative;
}

.wp-block-navigation a.wp-block-navigation-item__content[aria-current="page"]::after
{
	content: '';
	position: absolute;
	bottom: -6px;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(to right, #3f51b5, #2196f3);
	border-radius: 1px;
}

/* Ancestor item — only the top-level toggle, not its children */
.cg--nav-item-ancestor > .wp-block-navigation-item__content,
.cg--nav-item-ancestor > button.wp-block-navigation-submenu__toggle
{
	color: #3f51b5 !important;
}


/* Submenu dropdown */
.wp-block-navigation .wp-block-navigation__submenu-container
{
	border: none !important;
	border-radius: 8px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
	padding: 6px 0 !important;
}

/* Dropdown — dark mode, all items white text */
.wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content
{
	padding: 8px 20px !important;
	font-size: 12px !important;
	color: #ffffff !important;
	background: transparent !important;
	transition: color 0.15s, background 0.15s;
}

.wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content::before,
.wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content::after
{
	display: none !important;
}

.wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover
{
	background: rgba(255, 255, 255, 0.1) !important;
	color: #ffffff !important;
}

/* Current page inside submenu — left border on dark bg */
.wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"]
{
	background: rgba(255, 255, 255, 0.08) !important;
	color: #ffffff !important;
	border-left: 3px solid #e91e63;
	padding-left: 17px !important;
}

/* 3rd-level nested submenu — same dark style, positioned to the right */
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container
{
	border: none !important;
	border-radius: 8px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
	padding: 6px 0 !important;
}

/* Category items in dropdown — match height of sibling links */
.wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-submenu > .wp-block-navigation-item__content
{
	padding: 8px 20px !important;
	font-size: 12px !important;
	display: block;
}

/* Native WP chevron on submenu parents — ensure visible on dark bg */
.wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-submenu > .wp-block-navigation-item__content::after
{
	display: inline-block !important;
	opacity: 0.5;
}

/* JS toggle button — match link height if present (mobile overlay) */
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu__toggle
{
	color: #ffffff !important;
	padding: 8px 12px !important;
	font-size: 12px !important;
	background: transparent !important;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu__toggle:hover
{
	background: rgba(255, 255, 255, 0.1) !important;
}

/* Focus visibility — all nav links on dark dropdown backgrounds */
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu__toggle:focus-visible
{
	outline: 2px solid #ffffff !important;
	outline-offset: -2px;
	border-radius: 3px;
}

/* Category labels in submenu (items that have children) — slightly brighter */
.wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-navigation-submenu > .wp-block-navigation-item__content
{
	color: #ffffff !important;
	font-weight: 600 !important;
}

/* Ancestor category inside dropdown — pink left border when a child is current */
.wp-block-navigation .wp-block-navigation__submenu-container > .cg--nav-item-ancestor > .wp-block-navigation-item__content
{
	background: rgba(255, 255, 255, 0.08) !important;
	border-left: 3px solid #e91e63;
	padding-left: 17px !important;
}

/* 3rd-level items — slightly indented, lighter weight */
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content
{
	padding: 6px 20px 6px 24px !important;
	font-size: 11px !important;
	color: rgba(255, 255, 255, 0.8) !important;
	background: transparent !important;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover
{
	background: rgba(255, 255, 255, 0.1) !important;
	color: #ffffff !important;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-current="page"]
{
	background: rgba(255, 255, 255, 0.08) !important;
	color: #ffffff !important;
	border-left: 3px solid #e91e63;
	padding-left: 21px !important;
}

/* Hide pseudo-elements on 3rd-level items */
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content::before,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content::after
{
	display: none !important;
}

/* ========================================================================
   HERO — CSS background approach matching old theme exactly
   ======================================================================== */

.cg--hero
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/backdrop.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-color: #BFD7E3;
	padding-top: 9rem !important;
	padding-bottom: 9rem !important;
	margin-bottom: 0 !important;
	min-height: 500px;
}

.cg--hero::after
{
	content: '';
	display: block;
	height: 6px;
	background: linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
}

.cg--hero
{
	position: relative;
}

.cg--hero + .wp-block-group
{
	margin-top: 0 !important;
}

.cg--hero .wp-block-columns
{
	margin-left: 0 !important;
	margin-right: 0 !important;
	gap: 0 !important;
}

.cg--hero .wp-block-column
{
	margin-left: 0 !important;
	padding-left: 0 !important;
}

/* Homepage hero — keep left column at 50% max across all breakpoints */
.cg--hero .wp-block-columns
{
	flex-wrap: nowrap !important;
}

.cg--hero .wp-block-column
{
	flex-basis: 50% !important;
	max-width: 50%;
}

.cg--hero__title
{
	text-align: left;
	font-size: 2.5rem !important;
	line-height: 1.15;
}

.cg--hero__subtitle
{
	font-family: 'Sorts Mill Goudy', Georgia, serif;
	font-size: 1.3rem !important;
	max-width: 100%;
}

@media (max-width: 900px)
{
	.cg--hero
	{
		background-image: url(/wp-content/themes/cantangroup-2025/assets/images/backdrop-s.png);
		background-size: contain;
		background-position: bottom right;
		padding-top: 4rem !important;
		padding-bottom: 4rem !important;
	}
}

@media (max-width: 500px)
{
	.cg--hero
	{
		background-position: center right;
	}

	.cg--hero__title
	{
		font-size: 1.8rem !important;
		max-width: 18rem;
	}
}

/* ========================================================================
   TESTIMONIAL CARDS — clean style, no left border, toned down font
   ======================================================================== */

.has-light-background-color .wp-block-quote
{
	border-left: none !important;
	border-width: 0 !important;
	font-size: 1rem !important;
	font-weight: 400;
	font-style: italic;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.has-light-background-color .wp-block-quote cite
{
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	font-size: 0.75rem;
	font-style: normal;
	color: #757575;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* ========================================================================
   SCROLL ARROW — hero CTA replacement
   ======================================================================== */

.cg--down-arrow
{
	opacity: 0.4;
}

/* ========================================================================
   ACHECKS VISUAL PANEL — gradient top bar matching mockup B
   ======================================================================== */

.cg--achecks-visual
{
	position: relative;
	overflow: hidden;
	min-height: 300px;
}

.cg--achecks-visual::before
{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
}

/* ========================================================================
   FULL-WIDTH GROUPS WITH BACKGROUNDS — need padding
   ======================================================================== */

.wp-block-group.alignfull.has-background:not(.cg--hero):not(.cg--cta)
{
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
}

/* ========================================================================
   CUSTOMER LOGOS GRID (legacy shortcode)
   ======================================================================== */

.customers
{
	max-width: none !important;
	text-align: center;
}

.customers img
{
	max-width: 125px;
	max-height: 125px;
	border-radius: 50%;
	box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
	display: inline-block;
	margin: 2rem;
}

@media (max-width: 600px)
{
	.customers img
	{
		max-width: 100px;
		max-height: 100px;
	}
}

/* ========================================================================
   CLIENT LOGO WALL — About page
   ======================================================================== */

.cg--client-wall
{
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 24px;
	max-width: none !important;
}

.cg--client-wall__item
{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 24px 16px 16px;
	background: #ffffff;
	border-radius: 12px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.03);
	transition: transform 0.25s cubic-bezier(.4, 0, .2, 1), box-shadow 0.25s cubic-bezier(.4, 0, .2, 1);
}

.cg--client-wall__item:hover
{
	transform: translateY(-3px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08), 0 8px 32px rgba(0, 0, 0, 0.04);
}

.cg--client-wall__item img
{
	width: 80px;
	height: 80px;
	object-fit: contain;
	border-radius: 50%;
	margin-bottom: 12px;
	filter: grayscale(100%);
	opacity: 0.7;
	transition: filter 0.3s, opacity 0.3s;
}

.cg--client-wall__item:hover img
{
	filter: grayscale(0%);
	opacity: 1;
}

.cg--client-wall__name
{
	font-family: 'Montserrat', sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #757575;
	text-align: center;
	line-height: 1.3;
}

@media (max-width: 600px)
{
	.cg--client-wall
	{
		grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
		gap: 16px;
	}

	.cg--client-wall__item img
	{
		width: 60px;
		height: 60px;
	}
}

/* ========================================================================
   CAPABILITY IMAGE LINKS (icons grid on capabilities page)
   ======================================================================== */

.image-links
{
	max-width: none !important;
	text-align: center;
}

.image-links li
{
	display: inline-block;
}

.image-links a
{
	display: block;
	width: 100px;
	height: 100px;
	overflow: hidden;
	text-align: center;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	font-size: 0;
	padding: 70px;
	margin: 10px 50px;
}

/* Image link backgrounds — using new theme path */
.image-links a[href="/services/apps/"],
.image-links a[href="/fr/competences/applications-mobiles/"]
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/apps.gs.svg);
}
.image-links a[href="/services/apps/"]:hover,
.image-links a[href="/services/apps/"]:focus,
.image-links a[href="/fr/competences/applications-mobiles/"]:hover,
.image-links a[href="/fr/competences/applications-mobiles/"]:focus
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/apps.svg);
}

.image-links a[href="/services/apps/wordpress-developer/"],
.image-links a[href="/fr/competences/applications-mobiles/wordpress/"]
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/wordpress.gs.svg);
}
.image-links a[href="/services/apps/wordpress-developer/"]:hover,
.image-links a[href="/services/apps/wordpress-developer/"]:focus,
.image-links a[href="/fr/competences/applications-mobiles/wordpress/"]:hover,
.image-links a[href="/fr/competences/applications-mobiles/wordpress/"]:focus
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/wordpress.svg);
}

.image-links a[href="/services/enterprise/odoo/"],
.image-links a[href="/fr/competences/entreprise/odoo/"]
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/odoo.gs.svg);
}
.image-links a[href="/services/enterprise/odoo/"]:hover,
.image-links a[href="/services/enterprise/odoo/"]:focus,
.image-links a[href="/fr/competences/entreprise/odoo/"]:hover,
.image-links a[href="/fr/competences/entreprise/odoo/"]:focus
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/odoo.svg);
}

.image-links a[href="/services/ontario-vendor-of-record/"],
.image-links a[href="/fr/competences/fournisseur-attitre-de-lontario/"]
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/vor-ontario.gs.svg);
}
.image-links a[href="/services/ontario-vendor-of-record/"]:hover,
.image-links a[href="/services/ontario-vendor-of-record/"]:focus,
.image-links a[href="/fr/competences/fournisseur-attitre-de-lontario/"]:hover,
.image-links a[href="/fr/competences/fournisseur-attitre-de-lontario/"]:focus
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/vor-ontario.svg);
}

.image-links a[href="/services/enterprise/quickbase/"],
.image-links a[href="/fr/competences/entreprise/quickbase/"]
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/quickbase.gs.svg);
}
.image-links a[href="/services/enterprise/quickbase/"]:hover,
.image-links a[href="/services/enterprise/quickbase/"]:focus,
.image-links a[href="/fr/competences/entreprise/quickbase/"]:hover,
.image-links a[href="/fr/competences/entreprise/quickbase/"]:focus
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/quickbase.svg);
}

.image-links a[href="/services/apps/python/"],
.image-links a[href="/fr/competences/applications-mobiles/python/"]
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/python.gs.svg);
}
.image-links a[href="/services/apps/python/"]:hover,
.image-links a[href="/services/apps/python/"]:focus,
.image-links a[href="/fr/competences/applications-mobiles/python/"]:hover,
.image-links a[href="/fr/competences/applications-mobiles/python/"]:focus
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/python.svg);
}

.image-links a[href="/services/apps/regex/"],
.image-links a[href="/fr/competences/applications-mobiles/regex/"]
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/regex.gs.svg);
}
.image-links a[href="/services/apps/regex/"]:hover,
.image-links a[href="/services/apps/regex/"]:focus,
.image-links a[href="/fr/competences/applications-mobiles/regex/"]:hover,
.image-links a[href="/fr/competences/applications-mobiles/regex/"]:focus
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/regex.svg);
}

.image-links a[href="/services/apps/flutter/"],
.image-links a[href="/fr/competences/applications-mobiles/flutter/"]
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/flutter.gs.svg);
}
.image-links a[href="/services/apps/flutter/"]:hover,
.image-links a[href="/services/apps/flutter/"]:focus,
.image-links a[href="/fr/competences/applications-mobiles/flutter/"]:hover,
.image-links a[href="/fr/competences/applications-mobiles/flutter/"]:focus
{
	background-image: url(/wp-content/themes/cantangroup-2025/assets/images/flutter.svg);
}

/* ========================================================================
   BUTTONS — match old theme's outline style with border-color
   ======================================================================== */

/* ========================================================================
   BUTTONS — unified system
   ======================================================================== */

/* Base — all buttons */
.wp-block-button__link
{
	transition: all .25s cubic-bezier(.4, 0, .2, 1);
	position: relative;
	overflow: hidden;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus
{
	text-decoration: none !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.wp-block-button__link:active
{
	transform: translateY(0);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.wp-block-button__link:focus-visible
{
	outline: 2px solid #3f51b5;
	outline-offset: 3px;
}

/* Primary — solid fill (default) */
.wp-block-button:not(.is-style-outline) .wp-block-button__link
{
	border: 2px solid transparent;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:focus
{
	background-color: #3f51b5 !important;
	border-color: transparent;
}

/* Outline — border only */
.wp-block-button.is-style-outline .wp-block-button__link
{
	border-style: solid;
	border-width: 2px;
	background: transparent !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus
{
	background: rgba(63, 81, 181, 0.08) !important;
}

/* Gradient accent — add class cg--btn-gradient for the brand stripe bottom edge */
.cg--btn-gradient .wp-block-button__link
{
	border-bottom: 3px solid transparent;
	background-image: linear-gradient(#1a1a2e, #1a1a2e), linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
	background-origin: padding-box, border-box;
	background-clip: padding-box, border-box;
}

.cg--btn-gradient .wp-block-button__link:hover,
.cg--btn-gradient .wp-block-button__link:focus
{
	background-image: linear-gradient(#3f51b5, #3f51b5), linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
}

/* On dark backgrounds — white outline buttons */
.has-dark-background-color .wp-block-button.is-style-outline .wp-block-button__link
{
	border-color: rgba(255, 255, 255, 0.3);
	color: #ffffff !important;
}

.has-dark-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
.has-dark-background-color .wp-block-button.is-style-outline .wp-block-button__link:focus
{
	border-color: rgba(255, 255, 255, 0.6);
	background: rgba(255, 255, 255, 0.08) !important;
}

/* ========================================================================
   BLOCKQUOTES
   ======================================================================== */

blockquote
{
	border-color: #e91e63 !important;
}

/* ========================================================================
   INSIGHTS — dark header styling
   ======================================================================== */

.insights .wp-block-template-part:first-child
{
	background-color: black;
	border-bottom: 10px solid black;
}

.insights.orange .wp-block-template-part:first-child { border-color: #ff9800; }
.insights.pink .wp-block-template-part:first-child { border-color: #e91e63; }
.insights.purple .wp-block-template-part:first-child { border-color: #9c27b0; }
.insights.indigo .wp-block-template-part:first-child { border-color: #3f51b5; }
.insights.blue .wp-block-template-part:first-child { border-color: #2196f3; }
.insights.green .wp-block-template-part:first-child { border-color: #8bc34a; }

/* ========================================================================
   PRIVACY / MISC
   ======================================================================== */

.privacy-policy
{
	margin: 0;
	color: black;
}

.grecaptcha-badge
{
	display: none !important;
}

/* ========================================================================
   POST META — hide dates (carried from old theme)
   ======================================================================== */

.post-meta .post-date
{
	visibility: hidden;
}

/* ========================================================================
   ACCESSIBILITY CONTRAST FIXES (Lighthouse)
   ======================================================================== */

/* Grey on dark backgrounds — #757575 fails (3.7:1), use #9e9e9e (5.3:1) */
.has-dark-background-color .has-grey-color,
.has-dark-background-color .has-grey-color a,
footer.wp-block-template-part .has-grey-color,
footer.wp-block-template-part .has-grey-color a
{
	color: #9e9e9e !important;
}

/* Grey on light/pastel backgrounds — #757575 fails AA, use #636363 (5.0:1+) */
.has-light-background-color .has-grey-color,
.cg--service-hero .has-grey-color
{
	color: #636363 !important;
}

/* Testimonial citations on light bg */
.has-light-background-color .wp-block-quote cite
{
	color: #636363 !important;
}

/* Services subtitle on light bg */
.has-light-background-color > .has-grey-color
{
	color: #636363 !important;
}

/* Pink outline button — #e91e63 on white fails (4.34:1), use #c82358 (5.1:1) */
.wp-block-button.is-style-outline .has-pink-color
{
	color: #c82358 !important;
}

/* Footer form labels — need lighter color on dark */
.cg--footer-form .wpcf7 label
{
	color: #9e9e9e !important;
}

/* Language switcher inactive link on dark */
.has-dark-background-color .cg--lang-pill__link
{
	color: #9e9e9e;
}

/* Footer site title link */
footer.wp-block-template-part .wp-block-site-title a
{
	color: #9e9e9e !important;
}

/* ========================================================================
   CTA SECTION — generous height
   ======================================================================== */

.cg--cta
{
	min-height: 50vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-bottom: 0 !important;
}

/* Service pages — eliminate gaps between adjacent full-width sections */
.page-template-page-service .wp-block-group.alignfull + .wp-block-group.alignfull
{
	margin-top: 0 !important;
}

/* ========================================================================
   FOOTER — no gap, rainbow stripe separator
   ======================================================================== */

footer.wp-block-template-part
{
	margin-top: 0 !important;
}

/* Focus outlines on all footer links */
footer.wp-block-template-part a:focus-visible
{
	outline: 2px solid #ffffff;
	outline-offset: 2px;
	border-radius: 2px;
}

footer.wp-block-template-part .cg--lang-pill__link:focus-visible
{
	outline: 2px solid #ffffff;
	outline-offset: -1px;
}

/* Footer form strip — horizontal layout above main footer */
.cg--footer-form-strip
{
}

/*
 * Footer form layout
 * CF7 renders: <p> label span label span label span label span input </p>
 * All in one <p> with <br> separators.
 * We use CSS grid with named areas:
 *   Row 1: name  | email | phone
 *   Row 2: message ...........  | submit
 */
.cg--footer-form .wpcf7 form > p
{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-template-rows: auto auto auto auto;
	gap: 0 8px;
	margin: 0;
}

.cg--footer-form .wpcf7 form > p br
{
	display: none;
}

/* Labels — row 1 and 3 (label text above inputs) */
.cg--footer-form .wpcf7 form > p label
{
	margin-bottom: 4px;
}

.cg--footer-form .wpcf7 form > p label:nth-of-type(1) { grid-column: 1; grid-row: 1; }
.cg--footer-form .wpcf7 form > p label:nth-of-type(2) { grid-column: 2; grid-row: 1; }
.cg--footer-form .wpcf7 form > p label:nth-of-type(3) { grid-column: 3; grid-row: 1; }
.cg--footer-form .wpcf7 form > p label:nth-of-type(4) { grid-column: 1 / 3; grid-row: 3; margin-top: 12px; }

/* Submit button — shares column 3 with phone, aligned to bottom of message row */
.cg--footer-form .wpcf7 form > p .wpcf7-submit
{
	grid-column: 3;
	grid-row: 4;
	align-self: end;
	width: 100%;
	text-align: center;
	margin-bottom: 10px;
}


/* Input spans — row 2 and 4 (below their labels) */
.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="en-name"],
.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="fr-name"]
{ grid-column: 1; grid-row: 2; }

.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="en-email"],
.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="fr-email"]
{ grid-column: 2; grid-row: 2; }

.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="en-phone"],
.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="fr-phone"]
{ grid-column: 3; grid-row: 2; }

.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="en-message"],
.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="fr-message"]
{ grid-column: 1 / 3; grid-row: 4; margin-bottom: 0; }

@media (max-width: 781px)
{
	.cg--footer-form .wpcf7 form > p
	{
		grid-template-columns: 1fr;
		grid-template-rows: auto;
	}

	/* Must match data-name specificity to override desktop grid positions */
	.cg--footer-form .wpcf7 form > p label:nth-of-type(1),
	.cg--footer-form .wpcf7 form > p label:nth-of-type(2),
	.cg--footer-form .wpcf7 form > p label:nth-of-type(3),
	.cg--footer-form .wpcf7 form > p label:nth-of-type(4)
	{
		grid-column: 1;
		grid-row: auto;
		margin-top: 8px;
	}

	.cg--footer-form .wpcf7 form > p label:nth-of-type(1)
	{
		margin-top: 0;
	}

	.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="en-name"],
	.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="fr-name"],
	.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="en-email"],
	.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="fr-email"],
	.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="en-phone"],
	.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="fr-phone"],
	.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="en-message"],
	.cg--footer-form .wpcf7 form > p > .wpcf7-form-control-wrap[data-name="fr-message"]
	{
		grid-column: 1;
		grid-row: auto;
	}

	.cg--footer-form .wpcf7 form > p .wpcf7-submit
	{
		grid-column: 1;
		grid-row: auto;
		width: 100%;
		margin-top: 8px;
	}
}

.cg--footer-form .wpcf7 .wpcf7-form-control-wrap
{
	display: block;
}

.cg--footer-form .wpcf7 .wpcf7-form-control
{
	max-width: none !important;
	width: 100% !important;
	box-sizing: border-box;
}

.cg--footer-form .wpcf7 label
{
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.4);
	display: block;
	margin-bottom: 4px;
}

.cg--footer-form .wpcf7 input[type="text"],
.cg--footer-form .wpcf7 input[type="email"],
.cg--footer-form .wpcf7 input[type="tel"],
.cg--footer-form .wpcf7 textarea
{
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 4px;
	color: #ffffff;
	padding: 9px 12px;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	width: 100%;
	box-sizing: border-box;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.cg--footer-form .wpcf7 input[type="text"]:hover,
.cg--footer-form .wpcf7 input[type="email"]:hover,
.cg--footer-form .wpcf7 input[type="tel"]:hover,
.cg--footer-form .wpcf7 textarea:hover
{
	background: rgba(255, 255, 255, 0.08);
}

.cg--footer-form .wpcf7 input:focus,
.cg--footer-form .wpcf7 textarea:focus
{
	border-color: #3f51b5;
	box-shadow: 0 0 0 2px rgba(63, 81, 181, 0.25);
	outline: none;
	background: rgba(255, 255, 255, 0.1);
}

/* Gradient scrollbar on textarea */
.cg--footer-form .wpcf7 textarea
{
	scrollbar-width: thin;
	scrollbar-color: #3f51b5 rgba(255, 255, 255, 0.06);
}

.cg--footer-form .wpcf7 textarea::-webkit-scrollbar
{
	width: 6px;
}

.cg--footer-form .wpcf7 textarea::-webkit-scrollbar-track
{
	background: rgba(255, 255, 255, 0.06);
	border-radius: 3px;
}

.cg--footer-form .wpcf7 textarea::-webkit-scrollbar-thumb
{
	background: linear-gradient(to bottom, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
	border-radius: 3px;
}

.cg--footer-form .wpcf7 input::placeholder,
.cg--footer-form .wpcf7 textarea::placeholder
{
	color: rgba(255, 255, 255, 0.2);
}

.cg--footer-form .wpcf7 textarea
{
	min-height: 38px;
	height: 38px;
	resize: vertical;
}

.cg--footer-form .wpcf7 input[type="submit"]
{
	background-image: linear-gradient(#1a1a2e, #1a1a2e), linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
	background-origin: padding-box, border-box;
	background-clip: padding-box, border-box;
	border: 3px solid transparent;
	border-radius: 6px;
	color: #ffffff;
	padding: 10px 28px;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	cursor: pointer;
	transition: all 0.25s cubic-bezier(.4, 0, .2, 1);
	width: 100%;
	text-align: center;
}

.cg--footer-form .wpcf7 input[type="submit"]:hover
{
	background-image: linear-gradient(#3f51b5, #3f51b5), linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.cg--footer-form .wpcf7 input[type="submit"]:focus-visible
{
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

.cg--footer-form .wpcf7 input[type="submit"]:active
{
	transform: translateY(0);
	box-shadow: none;
}

/* Validation states */
.cg--footer-form .wpcf7 .wpcf7-not-valid
{
	border-color: #e91e63 !important;
}

.cg--footer-form .wpcf7 .wpcf7-not-valid-tip
{
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	color: #e91e63;
	margin-top: 4px;
}

.cg--footer-form .wpcf7 .wpcf7-response-output
{
	font-family: 'Montserrat', sans-serif;
	font-size: 12px;
	border-radius: 4px;
	margin: 10px 0 0;
	padding: 8px 12px;
	grid-column: 1 / -1;
}

@media (max-width: 600px)
{
	.cg--footer-form .wpcf7 form
	{
		grid-template-columns: 1fr;
	}
}

footer.wp-block-template-part::before
{
	content: '';
	display: block;
	height: 6px;
	background: linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
}

/* ========================================================================
   SERVICE PAGES — hero, features, approach, case studies
   ======================================================================== */

/* --- Service hero --- */
.cg--service-hero
{
	position: relative;
	overflow: hidden;
	min-height: 380px;
}

.cg--service-hero::after
{
	content: '';
	display: block;
	height: 4px;
	background: linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
}

/* Illustration column — float the image to the bottom right elegantly */
.cg--service-hero__illustration
{
	display: flex;
	align-items: flex-end;
	justify-content: center;
}

.cg--service-hero__illustration img
{
	max-height: 320px;
	width: auto !important;
	object-fit: contain;
	filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.08));
}

/* Service badge — coloured pill (like "Our Product" on homepage) */
.cg--service-badge
{
	display: inline-block;
	padding: 5px 16px;
	border-radius: 20px;
	font-family: 'Montserrat', sans-serif !important;
	font-size: 10px !important;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

/* Colour variants */
.cg--service-hero--pink  { background-color: #FCE4EC; }
.cg--service-hero--purple { background-color: #F3E5F5; }
.cg--service-hero--orange { background-color: #FFF3E0; }
.cg--service-hero--blue  { background-color: #E3F2FD; }

.cg--service-badge--pink  { background-color: #e91e63; color: #fff; }
.cg--service-badge--purple { background-color: #9c27b0; color: #fff; }
.cg--service-badge--orange { background-color: #ff9800; color: #1a1a2e; }
.cg--service-badge--blue  { background-color: #2196f3; color: #fff; }

@media (max-width: 900px)
{
	.cg--service-hero
	{
		min-height: auto;
	}

	.cg--service-hero__illustration
	{
		justify-content: center;
		margin-top: 2rem;
	}

	.cg--service-hero__illustration img
	{
		max-height: 220px;
	}
}

/* --- Feature cards grid --- */
.cg--service-features .wp-block-column
{
	background: #ffffff;
	border-radius: 12px;
	padding: 28px 24px !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.03);
	transition: transform 0.25s cubic-bezier(.4, 0, .2, 1), box-shadow 0.25s cubic-bezier(.4, 0, .2, 1);
	position: relative;
	overflow: hidden;
}

.cg--service-features .wp-block-column:hover
{
	transform: translateY(-3px);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08), 0 8px 32px rgba(0, 0, 0, 0.04);
}

/* Coloured top accent on feature cards */
.cg--service-features .wp-block-column::before
{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	border-radius: 12px 12px 0 0;
}

.cg--service-features--pink .wp-block-column::before
{
	background: linear-gradient(to right, #e91e63, #f06292);
}

.cg--service-features--purple .wp-block-column::before
{
	background: linear-gradient(to right, #9c27b0, #ba68c8);
}

.cg--service-features--orange .wp-block-column::before
{
	background: linear-gradient(to right, #ff9800, #ffb74d);
}

.cg--service-features--blue .wp-block-column::before
{
	background: linear-gradient(to right, #2196f3, #64b5f6);
}

/* Feature card icon/emoji */
.cg--service-features .wp-block-column .cg--feature-icon
{
	font-size: 2rem;
	line-height: 1;
	margin-bottom: 12px;
	display: block;
}

/* Feature card title */
.cg--service-features h3
{
	font-size: 15px !important;
	font-weight: 700;
	margin-bottom: 8px;
}

/* Feature card description */
.cg--service-features .wp-block-column > p:last-of-type
{
	font-size: 14px;
	line-height: 1.6;
	color: #636363;
	margin-bottom: 0;
}

/* --- Approach / methodology numbered steps --- */
.cg--service-approach
{
	counter-reset: approach-step;
}

.cg--service-approach .wp-block-column
{
	counter-increment: approach-step;
	position: relative;
	padding-left: 0 !important;
}

.cg--service-approach .wp-block-column::before
{
	content: counter(approach-step);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #1a1a2e;
	color: #fff;
	font-family: 'Montserrat', sans-serif;
	font-weight: 800;
	font-size: 16px;
	margin-bottom: 16px;
}

/* Colour-variant step numbers */
.cg--service-approach--pink .wp-block-column::before { background: #e91e63; }
.cg--service-approach--purple .wp-block-column::before { background: #9c27b0; }
.cg--service-approach--orange .wp-block-column::before { background: #ff9800; color: #1a1a2e; }
.cg--service-approach--blue .wp-block-column::before { background: #2196f3; }

.cg--service-approach h3
{
	font-size: 15px !important;
	font-weight: 700;
	margin-bottom: 8px;
}

.cg--service-approach .wp-block-column > p
{
	font-size: 14px;
	line-height: 1.6;
	color: #636363;
}

/* Connecting line between steps (desktop only) */
@media (min-width: 901px)
{
	.cg--service-approach .wp-block-column:not(:last-child)::after
	{
		content: '';
		position: absolute;
		top: 20px;
		left: calc(40px + 8px);
		right: -8px;
		height: 2px;
		background: #f5f5f5;
	}
}

/* --- Case study cards --- */
.cg--service-work .wp-block-column
{
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.03);
	transition: transform 0.3s cubic-bezier(.4, 0, .2, 1), box-shadow 0.3s cubic-bezier(.4, 0, .2, 1);
	background: #ffffff;
}

.cg--service-work .wp-block-column:hover
{
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1), 0 16px 48px rgba(0, 0, 0, 0.05);
}

.cg--service-work .wp-block-column img
{
	width: 100% !important;
	height: 200px;
	object-fit: cover;
	display: block;
}

.cg--service-work .cg--work-meta
{
	padding: 20px 24px 24px;
}

.cg--service-work .cg--work-meta h3
{
	font-size: 15px !important;
	font-weight: 700;
	margin-bottom: 6px;
}

.cg--service-work .cg--work-meta p
{
	font-size: 13px;
	line-height: 1.5;
	color: #636363;
	margin-bottom: 0;
}

/* Client name tag on case study card */
.cg--work-client
{
	display: inline-block;
	font-family: 'Montserrat', sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #9e9e9e;
	margin-bottom: 8px;
}

/* --- Service page post title centering --- */
.page-template-default .wp-block-post-title
{
	text-align: center;
}

/* --- Stat highlights row --- */
.cg--service-stats
{
	text-align: center;
}

.cg--service-stats .wp-block-column
{
	padding: 24px 16px !important;
}

.cg--service-stats .cg--stat-number
{
	font-family: 'Montserrat', sans-serif;
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 1;
	margin-bottom: 8px;
	background: linear-gradient(135deg, #e91e63, #3f51b5);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.cg--service-stats--pink .cg--stat-number
{
	background: linear-gradient(135deg, #e91e63, #9c27b0);
	-webkit-background-clip: text;
	background-clip: text;
}

.cg--service-stats--purple .cg--stat-number
{
	background: linear-gradient(135deg, #9c27b0, #3f51b5);
	-webkit-background-clip: text;
	background-clip: text;
}

.cg--service-stats--orange .cg--stat-number
{
	background: linear-gradient(135deg, #ff9800, #e91e63);
	-webkit-background-clip: text;
	background-clip: text;
}

.cg--service-stats--blue .cg--stat-number
{
	background: linear-gradient(135deg, #2196f3, #3f51b5);
	-webkit-background-clip: text;
	background-clip: text;
}

.cg--service-stats .cg--stat-label
{
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #757575;
}

/* ========================================================================
   SERVICE PAGES — mobile responsive
   ======================================================================== */

/* --- Tablet (781px) — WP column stacking point --- */
@media (max-width: 781px)
{
	/* Hero: reduce padding, smaller title */
	.cg--service-hero
	{
		min-height: auto;
		padding-top: var(--wp--preset--spacing--60) !important;
		padding-bottom: var(--wp--preset--spacing--60) !important;
	}

	.cg--service-hero h1
	{
		font-size: 1.8rem !important;
	}

	.cg--service-hero p
	{
		font-size: 16px !important;
	}

	/* Illustration: center and cap height */
	.cg--service-hero__illustration
	{
		justify-content: center;
		margin-top: 1.5rem;
	}

	.cg--service-hero__illustration img
	{
		max-height: 200px;
	}

	/* Stats: 2x2 grid instead of stacking to 4 rows */
	.cg--service-stats
	{
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 0;
		flex-wrap: wrap;
	}

	.cg--service-stats .wp-block-column
	{
		flex-basis: auto !important;
		padding: 20px 12px !important;
	}

	.cg--service-stats .cg--stat-number
	{
		font-size: 2rem;
	}

	/* Feature cards: gap between stacked cards */
	.cg--service-features
	{
		gap: 16px !important;
	}

	.cg--service-features .wp-block-column
	{
		padding: 24px 20px !important;
	}

	/* Disable hover lift on touch */
	.cg--service-features .wp-block-column:hover,
	.cg--service-work .wp-block-column:hover
	{
		transform: none;
	}

	/* Approach: reduce gap */
	.cg--service-approach
	{
		gap: 24px !important;
	}

	/* Case study cards: stacked with gap */
	.cg--service-work
	{
		gap: 24px !important;
	}

	.cg--service-work .wp-block-column img
	{
		height: 180px;
	}

	/* CTA: less aggressive height */
	.cg--cta
	{
		min-height: 40vh;
	}

	/* Section padding: tighter on tablet */
	.page-template-page-service .wp-block-group.alignfull.has-background
	{
		padding-top: var(--wp--preset--spacing--60) !important;
		padding-bottom: var(--wp--preset--spacing--60) !important;
	}
}

/* --- Small mobile (480px) --- */
@media (max-width: 480px)
{
	.cg--service-hero
	{
		padding-top: var(--wp--preset--spacing--50) !important;
		padding-bottom: var(--wp--preset--spacing--50) !important;
	}

	.cg--service-hero h1
	{
		font-size: 1.5rem !important;
	}

	.cg--service-hero__illustration img
	{
		max-height: 160px;
	}

	/* Stats: still 2x2 but smaller */
	.cg--service-stats .cg--stat-number
	{
		font-size: 1.6rem;
	}

	.cg--service-stats .cg--stat-label
	{
		font-size: 10px;
	}

	/* Feature card emoji smaller */
	.cg--service-features .cg--feature-icon
	{
		font-size: 1.5rem;
	}

	/* Approach step circles smaller */
	.cg--service-approach .wp-block-column::before
	{
		width: 32px;
		height: 32px;
		font-size: 14px;
	}

	/* CTA: even less height */
	.cg--cta
	{
		min-height: 30vh;
	}

	/* Case study image shorter */
	.cg--service-work .wp-block-column img
	{
		height: 150px;
	}

	/* Section headings */
	.page-template-page-service h2
	{
		font-size: 1.4rem !important;
	}
}

/* --- Homepage mobile fixes (supplemental) --- */
@media (max-width: 781px)
{
	/* Homepage service cards: gap when stacked */
	.has-light-background-color > .wp-block-columns.alignwide
	{
		gap: 16px;
	}

	/* Homepage testimonial cards: gap when stacked */
	.has-white-background-color > .wp-block-columns.alignwide
	{
		gap: 16px;
	}

	/* Footer form: already has responsive rules, but ensure strip fits */
	.cg--footer-form-strip
	{
		padding-left: var(--wp--preset--spacing--40) !important;
		padding-right: var(--wp--preset--spacing--40) !important;
	}
}

/* ========================================================================
   INSIGHTS — newspaper layout (archive + single post)
   ======================================================================== */

/* --- Paper-feel page background when in blog context --- */
.insights body,
body.insights,
body.blog,
body.single-post
{
	background: #fbf9f5;
}

.insights .wp-block-group[class*="has-background"]:not(.has-dark-background-color):not(.cg--cta):not(.cg--footer-form-strip),
body.blog .wp-block-group[class*="has-background"]:not(.has-dark-background-color):not(.cg--cta):not(.cg--footer-form-strip),
body.single-post .wp-block-group[class*="has-background"]:not(.has-dark-background-color):not(.cg--cta):not(.cg--footer-form-strip)
{
	background: #fbf9f5 !important;
}

/* --- News wrapper (1400px column) --- */
.cg--news-wrap
{
	max-width: 1400px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 48px;
	padding-right: 48px;
}

/* --- Category kicker colours --- */
.cg--news-kicker
{
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 11px;
	display: block;
	color: #1a1a2e;
}

.cg--news-kicker--pink   { color: #c82358; }
.cg--news-kicker--orange { color: #9a5800; }
.cg--news-kicker--purple { color: #9c27b0; }
.cg--news-kicker--indigo { color: #3f51b5; }
.cg--news-kicker--blue   { color: #155aa8; }
.cg--news-kicker--green  { color: #447018; }

.cg--news-kicker__tick
{
	display: inline-block;
	width: 32px;
	height: 2px;
	background: currentColor;
	vertical-align: middle;
	margin-right: 12px;
}

/* --- Masthead --- */
.cg--news-masthead
{
	max-width: 1400px;
	margin: 0 auto;
	padding: 56px 48px 32px;
	border-bottom: 4px double #1a1a2e;
	text-align: center;
}

.cg--news-masthead__rule
{
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: 'Montserrat', sans-serif;
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #5a5a5a;
	padding-bottom: 16px;
	border-bottom: 1px solid rgba(26, 26, 46, 0.12);
	margin-bottom: 28px;
}

.cg--news-masthead__rule--lower
{
	margin-top: 28px;
	padding-top: 16px;
	padding-bottom: 0;
	border-top: 1px solid rgba(26, 26, 46, 0.12);
	border-bottom: none;
	margin-bottom: 0;
}

.cg--news-masthead__title
{
	font-family: 'Sorts Mill Goudy', Georgia, serif;
	font-size: 132px;
	font-weight: 400;
	line-height: 0.85;
	letter-spacing: -0.04em;
	margin: 0 0 20px;
	color: #1a1a2e;
}

.cg--news-masthead__tag
{
	font-family: 'Sorts Mill Goudy', Georgia, serif;
	font-style: italic;
	font-size: 19px;
	color: #5a5a5a;
	max-width: 620px;
	margin: 0 auto;
	line-height: 1.4;
}

/* Thin rainbow stripe tucked under masthead */
.cg--news-rainbow
{
	max-width: 1400px;
	margin: 0 auto 56px;
	height: 3px;
	background: linear-gradient(to right, #ff9800, #e91e63, #9c27b0, #3f51b5, #2196f3, #8bc34a);
}

/* --- Front page (lead + side) --- */
.cg--news-front
{
	max-width: 1400px;
	margin: 0 auto 80px;
	padding: 0 48px 72px;
	display: grid;
	grid-template-columns: 1.8fr 1fr;
	gap: 56px;
	border-bottom: 1px solid rgba(26, 26, 46, 0.12);
}

/* Lead story */
.cg--news-lead
{
	display: block;
	text-decoration: none !important;
	color: inherit !important;
	border-right: 1px solid rgba(26, 26, 46, 0.12);
	padding-right: 56px;
}

.cg--news-lead .cg--news-kicker
{
	margin-bottom: 16px;
	font-size: 11px;
}

.cg--news-lead h2
{
	font-family: 'Sorts Mill Goudy', Georgia, serif !important;
	font-size: 64px !important;
	font-weight: 400 !important;
	line-height: 0.98;
	letter-spacing: -0.025em;
	margin: 0 0 24px !important;
	color: #1a1a2e;
	transition: color 0.2s;
}

.cg--news-lead:hover h2
{
	color: #5a5a5a;
}

.cg--news-dek
{
	font-family: 'Sorts Mill Goudy', Georgia, serif;
	font-style: italic;
	font-size: 21px;
	color: #5a5a5a;
	line-height: 1.4;
	margin: 0 0 28px;
	max-width: 580px;
}

.cg--news-dek--sm
{
	font-size: 14px;
	line-height: 1.4;
	margin-bottom: 10px;
}

.cg--news-byline
{
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #5a5a5a;
	margin-bottom: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(26, 26, 46, 0.12);
}

.cg--news-lead__img
{
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
	background: #F1F8E9;
	transition: opacity 0.3s;
}

.cg--news-lead:hover .cg--news-lead__img
{
	opacity: 0.9;
}

/* Side column */
.cg--news-side__heading
{
	font-family: 'Montserrat', sans-serif !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	padding-bottom: 14px;
	border-bottom: 2px solid #1a1a2e;
	margin: 0 0 24px !important;
}

.cg--news-side-item
{
	display: block;
	text-decoration: none !important;
	color: inherit !important;
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid rgba(26, 26, 46, 0.12);
}

.cg--news-side-item:last-child
{
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.cg--news-side-item .cg--news-kicker
{
	font-size: 10px;
	margin-bottom: 10px;
}

.cg--news-side-item h4
{
	font-family: 'Sorts Mill Goudy', Georgia, serif !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	line-height: 1.15;
	letter-spacing: -0.005em;
	margin: 0 0 10px !important;
	color: #1a1a2e;
	transition: color 0.2s;
}

.cg--news-side-item:hover h4
{
	color: #5a5a5a;
}

.cg--news-meta
{
	font-family: 'Montserrat', sans-serif;
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #5a5a5a;
	display: block;
}

/* --- Archive section --- */
.cg--news-archive
{
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 48px 96px;
}

.cg--news-archive__heading
{
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	padding-bottom: 14px;
	border-bottom: 2px solid #1a1a2e;
	margin-bottom: 40px;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 24px;
	flex-wrap: wrap;
}

.cg--news-archive__label
{
	color: #1a1a2e;
}

.cg--news-filters
{
	display: flex;
	gap: 20px;
	font-family: 'Sorts Mill Goudy', Georgia, serif;
	font-style: italic;
	font-size: 15px;
	color: #5a5a5a;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.cg--news-filter
{
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	position: relative;
}

.cg--news-filter.is-active
{
	color: #1a1a2e;
	font-style: normal;
}

.cg--news-filter.is-active::after
{
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	right: 0;
	height: 1px;
	background: #1a1a2e;
}

.cg--news-filter:focus-visible
{
	outline: 2px solid #3f51b5;
	outline-offset: 3px;
}

.cg--news-archive__grid
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 32px;
}

.cg--news-archive-item
{
	display: block;
	text-decoration: none !important;
	color: inherit !important;
	border-top: 1px solid rgba(26, 26, 46, 0.12);
	padding-top: 20px;
}

.cg--news-archive-item .cg--news-kicker
{
	font-size: 10px;
	margin-bottom: 12px;
}

.cg--news-archive-item h5
{
	font-family: 'Sorts Mill Goudy', Georgia, serif !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	line-height: 1.15;
	letter-spacing: -0.005em;
	margin: 0 0 12px !important;
	color: #1a1a2e;
	transition: color 0.2s;
}

.cg--news-archive-item:hover h5
{
	color: #5a5a5a;
}

/* Filter matching */
.cg--news-archive__grid.is-filtered .cg--news-archive-item:not(.is-match),
.cg--news-lead.is-hidden,
.cg--news-side-item.is-hidden
{
	display: none;
}

/* --- Responsive --- */
@media (max-width: 900px)
{
	.cg--news-masthead__title { font-size: 72px; }
	.cg--news-front { grid-template-columns: 1fr; gap: 48px; }
	.cg--news-lead
	{
		border-right: none;
		padding-right: 0;
		border-bottom: 1px solid rgba(26, 26, 46, 0.12);
		padding-bottom: 48px;
	}
	.cg--news-lead h2 { font-size: 40px !important; }
	.cg--news-archive__grid { grid-template-columns: 1fr; }
	.cg--news-wrap { padding-left: 24px; padding-right: 24px; }
	.cg--news-masthead { padding: 48px 24px 24px; }
	.cg--news-archive { padding: 0 24px 64px; }
	.cg--news-front { padding: 0 24px 56px; }
}

/* --- Single post article layout --- */
.cg--news-article
{
	max-width: 780px !important;
	margin: 0 auto !important;
	padding: 80px 48px 64px !important;
	border-top: none;
}

.cg--article-topline
{
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: 'Montserrat', sans-serif;
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #5a5a5a;
	padding-bottom: 16px;
	border-bottom: 1px solid rgba(26, 26, 46, 0.12);
	margin-bottom: 32px;
}

.cg--article-topline p,
.cg--article-topline a,
.cg--article-topline time
{
	font-size: 10px !important;
	margin: 0 !important;
	color: #5a5a5a !important;
	font-weight: 500;
	letter-spacing: 0.2em;
}

.cg--article-topline a:hover
{
	color: #1a1a2e !important;
}

.cg--article-header
{
	margin-bottom: 48px;
}

.cg--article-kicker
{
	font-family: 'Montserrat', sans-serif !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin-bottom: 24px !important;
	display: block !important;
}

.cg--article-kicker a
{
	text-decoration: none !important;
	color: #1a1a2e;
}

.cg--article-kicker::before
{
	content: '';
	display: inline-block;
	width: 32px;
	height: 2px;
	background: currentColor;
	margin-right: 12px;
	vertical-align: middle;
}

/* Category colour for kicker (pulled from body class) */
.insights.pink   .cg--article-kicker a { color: #c82358; }
.insights.orange .cg--article-kicker a { color: #9a5800; }
.insights.purple .cg--article-kicker a { color: #9c27b0; }
.insights.indigo .cg--article-kicker a { color: #3f51b5; }
.insights.blue   .cg--article-kicker a { color: #155aa8; }
.insights.green  .cg--article-kicker a { color: #447018; }

.insights.pink   .cg--article-kicker::before { background: #c82358; }
.insights.orange .cg--article-kicker::before { background: #9a5800; }
.insights.purple .cg--article-kicker::before { background: #9c27b0; }
.insights.indigo .cg--article-kicker::before { background: #3f51b5; }
.insights.blue   .cg--article-kicker::before { background: #155aa8; }
.insights.green  .cg--article-kicker::before { background: #447018; }

.cg--article-title
{
	font-family: 'Sorts Mill Goudy', Georgia, serif !important;
	font-size: 56px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: -0.025em !important;
	margin: 0 0 24px !important;
	color: #1a1a2e !important;
	text-align: left !important;
}

.cg--article-byline
{
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	font-family: 'Montserrat', sans-serif !important;
	font-size: 11px !important;
	letter-spacing: 0.15em !important;
	text-transform: uppercase !important;
	color: #5a5a5a !important;
	padding-top: 32px !important;
	padding-bottom: 32px !important;
	border-top: 1px solid rgba(26, 26, 46, 0.12) !important;
	border-bottom: 4px double #1a1a2e !important;
	margin-bottom: 48px !important;
}

.cg--article-byline p,
.cg--article-byline span
{
	font-size: 11px !important;
	margin: 0 !important;
	color: #5a5a5a !important;
	letter-spacing: 0.15em;
	font-weight: 500;
}

/* --- Article body typography --- */
.cg--article-body .wp-block-post-content,
.cg--article-body .wp-block-post-content > *
{
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
}

.cg--article-body .wp-block-post-content
{
	font-family: 'Sorts Mill Goudy', Georgia, serif;
	font-size: 19px;
	line-height: 1.7;
	color: #1a1a2e;
}

.cg--article-body .wp-block-post-content p
{
	margin: 1.25em 0;
}

/* Drop cap on the very first paragraph */
.cg--article-body .wp-block-post-content > p:first-of-type::first-letter
{
	float: left;
	font-family: 'Sorts Mill Goudy', Georgia, serif;
	font-size: 84px;
	line-height: 0.85;
	padding: 8px 14px 0 0;
	color: #1a1a2e;
}

.cg--article-body .wp-block-post-content h2,
.cg--article-body .wp-block-post-content h3,
.cg--article-body .wp-block-post-content h4
{
	font-family: 'Sorts Mill Goudy', Georgia, serif;
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: -0.01em;
	margin: 1.8em 0 0.5em;
	color: #1a1a2e;
}

.cg--article-body .wp-block-post-content h2 { font-size: 1.85em; }
.cg--article-body .wp-block-post-content h3 { font-size: 1.4em; }

.cg--article-body .wp-block-post-content a
{
	color: #1a1a2e;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: rgba(26, 26, 46, 0.35);
}

.cg--article-body .wp-block-post-content a:hover
{
	text-decoration-color: #1a1a2e;
}

.cg--article-body .wp-block-post-content img
{
	display: block;
	max-width: 100%;
	height: auto;
	margin: 1.75em auto;
}

.cg--article-body .wp-block-post-content .alignwide,
.cg--article-body .wp-block-post-content .alignfull
{
	max-width: none;
	width: 100%;
}

/* Pull quotes — matches category colour */
.cg--article-body .wp-block-post-content blockquote,
.cg--article-body .wp-block-post-content .wp-block-quote
{
	border-left: 4px solid #1a1a2e;
	padding: 0.25em 0 0.25em 1.5em;
	margin: 2em 0;
	font-style: italic;
	font-size: 22px;
	line-height: 1.45;
	color: #1a1a2e;
}

.insights.pink   .cg--article-body blockquote { border-left-color: #e91e63 !important; }
.insights.orange .cg--article-body blockquote { border-left-color: #ff9800 !important; }
.insights.purple .cg--article-body blockquote { border-left-color: #9c27b0 !important; }
.insights.indigo .cg--article-body blockquote { border-left-color: #3f51b5 !important; }
.insights.blue   .cg--article-body blockquote { border-left-color: #2196f3 !important; }
.insights.green  .cg--article-body blockquote { border-left-color: #8bc34a !important; }

.cg--article-body .wp-block-post-content ul,
.cg--article-body .wp-block-post-content ol
{
	padding-left: 1.5em;
}

.cg--article-body .wp-block-post-content li
{
	margin: 0.5em 0;
}

.cg--article-body .wp-block-post-content code
{
	font-family: 'Courier New', monospace;
	font-size: 0.88em;
	background: rgba(26, 26, 46, 0.06);
	padding: 2px 6px;
	color: #c82358;
}

.cg--article-body .wp-block-post-content pre
{
	background: #1a1a2e;
	color: #fbf9f5;
	padding: 20px;
	overflow-x: auto;
	font-size: 14px;
	line-height: 1.5;
}

.cg--article-body .wp-block-post-content pre code
{
	background: none;
	color: inherit;
	padding: 0;
}

/* Columns inside post content shouldn't be constrained */
.cg--article-body .wp-block-post-content .wp-block-columns
{
	max-width: none;
}

/* --- Related posts on single post --- */
.cg--news-related
{
	max-width: 1400px !important;
	margin: 0 auto !important;
	padding: 64px 48px 96px !important;
	border-top: 4px double #1a1a2e;
}

.cg--related-posts
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 32px;
	max-width: none !important;
}

.cg--related-post
{
	display: block;
	padding: 20px 0 0 !important;
	background: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	border: none !important;
	border-top: 1px solid rgba(26, 26, 46, 0.12) !important;
	text-decoration: none !important;
	color: inherit !important;
	transform: none !important;
}

.cg--related-post:hover
{
	transform: none !important;
	box-shadow: none !important;
}

.cg--related-post .cg--post-pill
{
	display: block;
	padding: 0;
	background: none;
	border-radius: 0;
	font-family: 'Montserrat', sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #1a1a2e;
	margin-bottom: 12px;
}

.cg--related-post--pink   .cg--post-pill { color: #c82358; }
.cg--related-post--orange .cg--post-pill { color: #9a5800; }
.cg--related-post--purple .cg--post-pill { color: #9c27b0; }
.cg--related-post--indigo .cg--post-pill { color: #3f51b5; }
.cg--related-post--blue   .cg--post-pill { color: #155aa8; }
.cg--related-post--green  .cg--post-pill { color: #447018; }

.cg--related-post h3
{
	font-family: 'Sorts Mill Goudy', Georgia, serif !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	line-height: 1.15;
	letter-spacing: -0.005em;
	margin: 0 0 12px !important;
	color: #1a1a2e;
	transition: color 0.2s;
}

.cg--related-post:hover h3
{
	color: #5a5a5a;
}

.cg--related-post .cg--post-meta
{
	font-family: 'Montserrat', sans-serif;
	font-size: 9px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #5a5a5a;
	display: block;
	margin-top: 12px;
}

@media (max-width: 900px)
{
	.cg--news-article { padding: 56px 24px 40px !important; }
	.cg--article-title { font-size: 38px !important; }
	.cg--article-body .wp-block-post-content > p:first-of-type::first-letter { font-size: 56px; padding: 6px 10px 0 0; }
	.cg--news-related { padding: 48px 24px 64px !important; }
	.cg--related-posts { grid-template-columns: 1fr; }
}
