/*
Theme Name: Lake Superior Consulting
Theme URI: https://lakesuperior.consulting/
Author: Lake Superior Consulting
Author URI: https://lakesuperior.consulting/
Description: A custom WordPress theme for Lake Superior Consulting, based on Twenty Twenty-Five design principles. Features flexible design options with patterns for services and landing pages, making it ideal for professional consulting websites.
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 7.2
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lake-superior-consulting
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, business, consulting
*/

/* ScrollSmoother Styles */
#smooth-wrapper {
	overflow: hidden;
    margin-top: 0 !important;
}

#smooth-content {
	overflow: visible;
	width: 100%;
}

/* Ensure header stays fixed outside smooth scrolling */
/* .wp-site-blocks > .wp-block-template-part:first-child {
	position: relative;
	z-index: 1000;
} */

/* Smooth scrolling performance optimizations */
#smooth-content * {
	will-change: transform;
}

/* Prevent layout shifts during smooth scrolling */
body {
	overflow-x: hidden;
}

/* Optional: Add fade-in class for scroll animations */
.fade-in {
	opacity: 0;
	transform: translateY(50px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in.visible {
	opacity: 1;
	transform: translateY(0);
}

/* Adobe Fonts - Alternative method (uncomment and add your kit ID)
@import url("https://use.typekit.net/your-kit-id.css");
*/

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline: none;
}

/* Responsive padding for smaller screens */
/* These styles complement the theme.json responsive padding */
@media (max-width: 645px) {
	.wp-block-group.alignfull,
	.wp-block-cover.alignfull,
	.wp-block-columns.alignfull {
		/* padding-left: var(--wp--style--root--padding-left, clamp(15px, 4vw, 25px)); */
		/* padding-right: var(--wp--style--root--padding-right, clamp(15px, 4vw, 25px)); */
	}
	
	.wp-block-group.alignwide,
	.wp-block-cover.alignwide,
	.wp-block-columns.alignwide {
		/* padding-left: var(--wp--style--root--padding-left, clamp(15px, 4vw, 25px)); */
		/* padding-right: var(--wp--style--root--padding-right, clamp(15px, 4vw, 25px)); */
	}
	
	/* Header specific responsive padding */
	.wp-site-blocks header .wp-block-group.alignfull,
	.wp-site-blocks .wp-block-template-part[data-type="header"] .wp-block-group.alignfull {
		padding-left: var(--wp--style--root--padding-left, clamp(15px, 4vw, 25px));
		padding-right: var(--wp--style--root--padding-right, clamp(15px, 4vw, 25px));
	}
	
	.wp-site-blocks header .wp-block-group.alignwide,
	.wp-site-blocks .wp-block-template-part[data-type="header"] .wp-block-group.alignwide {
		padding-left: var(--wp--style--root--padding-left, clamp(15px, 4vw, 25px));
		padding-right: var(--wp--style--root--padding-right, clamp(15px, 4vw, 25px));
	}
}

@media (max-width: 480px) {
	main.wp-site-blocks,
	main.has-global-padding,
	body > main {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.wp-block-group.alignfull,
	.wp-block-cover.alignfull,
	.wp-block-columns.alignfull {
		padding-left: var(--wp--style--root--padding-left, 15px);
		padding-right: var(--wp--style--root--padding-right, 15px);
	}
	
	.wp-block-group.alignwide,
	.wp-block-cover.alignwide,
	.wp-block-columns.alignwide {
		padding-left: var(--wp--style--root--padding-left, 15px);
		padding-right: var(--wp--style--root--padding-right, 15px);
	}
	
	/* Header specific responsive padding for mobile */
	.wp-site-blocks header .wp-block-group.alignfull,
	.wp-site-blocks .wp-block-template-part[data-type="header"] .wp-block-group.alignfull {
		padding-left: var(--wp--style--root--padding-left, 15px);
		padding-right: var(--wp--style--root--padding-right, 15px);
	}
	
	.wp-site-blocks header .wp-block-group.alignwide,
	.wp-site-blocks .wp-block-template-part[data-type="header"] .wp-block-group.alignwide {
		padding-left: var(--wp--style--root--padding-left, 15px);
		padding-right: var(--wp--style--root--padding-right, 15px);
	}
	
	/* Ensure header navigation and logo have proper spacing on mobile */
	.wp-site-blocks header .wp-block-site-logo,
	.wp-site-blocks .wp-block-template-part[data-type="header"] .wp-block-site-logo {
		flex-shrink: 0;
	}
	
	.wp-site-blocks header .wp-block-navigation,
	.wp-site-blocks .wp-block-template-part[data-type="header"] .wp-block-navigation {
		min-width: 0;
	}
}

/* Custom list styles - Use + for checkmark list only */
ul.is-style-checkmark-list {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
	padding-inline-start: 0;
	margin-inline-start: 0;
}

ul.is-style-checkmark-list li {
	padding-left: 0;
	margin-left: 0;
	text-indent: 0;
	position: relative;
	font-size: 1.6rem;
}

ul.is-style-checkmark-list li::before {
	content: "+";
	margin-right: 0.5em;
}

/* Custom list styles - Plus list style */
ul.is-style-plus-list {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
	padding-inline-start: 0;
	margin-inline-start: 0;
}

ul.is-style-plus-list li {
	padding-left: 0;
	margin-left: 0;
	text-indent: 0;
	position: relative;
	display: flex;
	align-items: flex-start;
	font-size: inherit;
}

ul.is-style-plus-list li::before {
	content: "+";
	margin-right: 0.5em;
	flex-shrink: 0;
	display: inline-block;
}

/* Custom list column styles */
ul.is-columns-1,
ol.is-columns-1 {
	column-count: 1;
	column-gap: 2rem;
}

ul.is-columns-2,
ol.is-columns-2 {
	column-count: 2;
	column-gap: 2rem;
}

ul.is-columns-3,
ol.is-columns-3 {
	column-count: 3;
	column-gap: 2rem;
}

ul.is-columns-4,
ol.is-columns-4 {
	column-count: 4;
	column-gap: 2rem;
}

ul.is-columns-5,
ol.is-columns-5 {
	column-count: 5;
	column-gap: 2rem;
}

ul.is-columns-6,
ol.is-columns-6 {
	column-count: 6;
	column-gap: 2rem;
}

/* Prevent list items from breaking across columns */
ul[class*="is-columns-"] li,
ol[class*="is-columns-"] li {
	break-inside: avoid;
	page-break-inside: avoid;
}

/* Custom list border styles */
ul.is-bordered li,
ol.is-bordered li {
	border-top: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
	margin-top: -1px;
	margin-bottom: 0;
}

/* Special handling for bordered lists with custom styles */
ul.is-bordered.is-style-checkmark-list li,
ul.is-bordered.is-style-plus-list li {
	padding-left: 0;
	margin-left: 0;
}

/* Responsive behavior for columns */
@media (max-width: 768px) {
	ul[class*="is-columns-"],
	ol[class*="is-columns-"] {
		column-count: 1 !important;
	}
}

@media (min-width: 769px) and (max-width: 1024px) {
	ul.is-columns-4,
	ol.is-columns-4,
	ul.is-columns-5,
	ol.is-columns-5,
	ul.is-columns-6,
	ol.is-columns-6 {
		column-count: 2;
	}
}

/* Custom summary styles - Use + and - toggle */
summary {
	list-style: none;
	cursor: pointer;
	position: relative;
	padding-left: 0;
	margin-left: 0;
	display: flex;
	align-items: flex-start;
}

/* Hide default disclosure triangle */
summary::-webkit-details-marker {
	display: none;
}

summary::marker {
	display: none;
}

/* Add custom + sign after title */
summary::after {
	content: " +";
	margin-left: 0.5em;
	flex-shrink: 0;
	display: inline-block;
	transition: transform 0.2s ease;
}

/* Change to - when details is open */
details[open] summary::after {
	content: " -";
}

/* Button font weight */
.wp-element-button,
.wp-block-button__link {
	font-weight: 600;
    -webkit-font-smoothing: antialiased;
    letter-spacing: 0.1em;
    text-align: left;
}

/* Pattern BG */

.wp-block-group.has-pattern-bg {
    position: relative;
    overflow: hidden;
}

.wp-block-group.has-pattern-bg::before {
    content: '';
    display: block;
    width: 100%;
    height: 200%;
    mask-size: 2rem;
    background-color: currentColor;
    position: absolute;
    top: 0;
    right: 0;
    max-width: 23.125rem;
    -webkit-mask-image: url('assets/svgs/plus.svg');
    mask-image: url('assets/svgs/plus.svg');
    mask-repeat: repeat;
}

/* Overview sections on industry/lifecycle pages */
.is-layout-grid > .wp-block-group.has-pattern-bg::before {
    width: calc(100% - 4rem);
    height: calc(100% - 4rem);
    max-width: none;
    right: auto;
    left: 0;
    top: 0;
    transform: translateY(-4rem) translateX(-4rem);
    color: var(--wp--preset--color--accent-2);
}

.wp-block-group.has-pattern-bg--left::before {
    left: 0;
    right: auto;
}

.wp-block-group.alignwide .wp-block-group.has-pattern-bg--left::before {
    left: 2rem;
}

.wp-block-group.has-pattern-bg--light::before {
    background-color: var(--wp--preset--color--accent-2);
    max-width: 35rem;
    height: 500%;
    transform: translateY(-50%);
}

.wp-block-group.has-pattern-bg.has-pattern-bg--rows-2::before {
    height: 3.5em;
}

.wp-block-group.has-pattern-bg.has-pattern-bg--rows-3::before {
    height: 7em;
}

.wp-block-group.has-pattern-bg.has-pattern-bg--rows-4::before {
    height: 9em;
}

.wp-block-group.has-pattern-bg.has-pattern-bg--rows-5::before {
    height: 12em;
}

.wp-block-group.has-pattern-bg.has-pattern-bg--rows-6::before {
    height: 15em;
}


@media (max-width: 781px) {
	.wp-block-group.has-pattern-bg::before {
		display: none;
	}
}





/* Reverse desktop layout control */
@media (min-width: 782px) {
	/* Flex layouts - reverse flex direction */
	.is-reverse-desktop.wp-block-group,
	.is-reverse-desktop.wp-block-columns,
	.is-reverse-desktop.wp-block-cover,
	.is-reverse-desktop.wp-block-media-text {
		flex-direction: row-reverse !important;
	}
	
	/* Grid layouts - reverse using order */
	.is-reverse-desktop.is-layout-grid > *:nth-child(1) {
		order: 1 !important;
	}
	
	.is-reverse-desktop.is-layout-grid > *:nth-child(2) {
		order: 0 !important;
	}
	
	/* Handle more than 2 items - reverse order */
	.is-reverse-desktop.is-layout-grid > *:nth-child(3) {
		order: -1 !important;
	}
	
	.is-reverse-desktop.is-layout-grid > *:nth-child(4) {
		order: -2 !important;
	}
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/* Custom Menu Button Styles */
.menu-toggle-button,
.menu-toggle-image {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	margin-left: 1rem;
	transition: all 0.3s ease;
}

/* Hide pattern-based buttons by default (show on mobile) */
.menu-toggle-button:not(.lakesuperior-menu-button),
.menu-toggle-image {
	display: none;
}

/* Block-based menu button is always visible */
.lakesuperior-menu-button {
	display: inline-block;
}

/* Hide menu toggle on desktop when menu isn't active; right-align nav */
@media (min-width: 1025px) {
	.menu-toggle-button.lakesuperior-menu-button:not(.is-active) {
		opacity: 0;
		pointer-events: none;
	}

	.wp-site-blocks header .wp-block-navigation .wp-block-navigation__container,
	.wp-block-template-part[data-type="header"] .wp-block-navigation .wp-block-navigation__container {
		justify-content: flex-end;
		margin-right: 1.5rem;
	}
}

@media (min-width: 1200px) {
	body.menu-open .wp-site-blocks header .wp-block-navigation .wp-block-navigation__container,
	body.menu-open .wp-block-template-part[data-type="header"] .wp-block-navigation .wp-block-navigation__container {
		justify-content: center;
		margin-right: 0;
	}
}

/* Parent container for menu button block should be flex */
.wp-block-lakesuperior-menu-button {
	display: flex;
	justify-content: flex-end;
}

/* Fixed Header Styles */
.wp-site-blocks > header,
.wp-block-template-part[data-type="header"] {
	position: fixed;
	/* top: 30px; */
    top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	/* background: var(--wp--preset--color--base); */
	/* border-bottom: 1px solid var(--wp--preset--color--accent-6); */
}


.wp-block-site-logo, .menu-toggle-button {
    z-index: 2;
}


.header__bar {
    top: 30px;
}

.header__bar {
    align-items: center;
}

.header__bar nav {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    z-index: 1;
}

.header__bar .wp-block-navigation-item a:after {
    content: '';
    display: block;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease;
}

.header__bar .wp-block-navigation-item.is-active a:after,
.header__bar .wp-block-navigation-item:hover a:after  {
    transform: scaleX(1);
}

.header__bar .wp-block-navigation-item a:hover {
    text-decoration: none;
}

.header__mega-menu {
    top: 0 !important;
    margin-block-start: 0 !important;
    position: absolute;
    left: 0;
    width: 100%;
    max-width: 100%;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}
/* 
.header__mega-menu .header__menu-group, .header__mega-menu > .wp-block-group  {
    width: 100%;
}

.header__mega-menu .wp-block-navigation__container {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    grid-row-gap: 0;
}

.header__mega-menu .wp-block-navigation__container {
    counter-reset: menu-item;
}



.header__mega-menu .wp-block-navigation-item {
    padding-bottom: 0 !important;
}

.header__mega-menu .wp-block-navigation-item__content {
    border-top: 1px solid currentColor;
    font-size: var(--wp--preset--font-size--large);
    display: inline-flex;
    padding: 1.5rem 0;
    width: 100%;
    margin-bottom: -1px;
}

.header__mega-menu .wp-block-navigation-item__content:last-child {
    border-bottom: 1px solid currentColor;
}

.header__mega-menu .wp-block-navigation-item__content:before {
    content: "0" counter(menu-item);
    counter-increment: menu-item;
    display: inline-block;
    margin-right: 4rem;
    align-self: center;
    font-size: 0.75rem;
    transform: translateY(-33%);
    letter-spacing: 0.1em;
}

.header__mega-menu .wp-block-navigation-item__content:after {
    content: '';
    display: block;
    width: 50%;
    height: 3px;
    background: currentColor;
    transition: transform 0.3s ease;
    position: absolute;
    top: 0;
    left: 0;
    transform: scaleX(0) translateY(-50%);
    transform-origin: left center;
}

.header__mega-menu .wp-block-navigation-item__content:hover:after {
    transform: scaleX(1) translateY(-50%);
} */


.mega-menu__graphic-container {
    position: relative;
}

.mega-menu__graphic {
    position: absolute;
    width: 100%;
    height: 100%;
    
}

.mega-menu__graphic svg {
    height: 100%;
    width: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

.header__mega-menu.is-open {
    opacity: 1;
    pointer-events: auto;
}

.header__mega-menu-content {
    width: 100%;
}

.header__mega-menu--top, .header__mega-menu--bottom {
    width: 100%;
    max-width: 1320px;
}

.header__mega-menu--top .wp-block-navigation {
    width: 100%;
}

/* Editor styles for header bar alignment */
.editor-styles-wrapper .header__bar,
.wp-block-editor .header__bar {
    align-items: center;
}

.wp-block-site-logo {
    width: 100%;
    display: block;
    max-width: 10rem;
}

.wp-block-site-logo svg {
    width: 100%;
    display: block;
} 

/* Admin bar adjustments */
.admin-bar .wp-site-blocks > header .header__bar,
.admin-bar .wp-block-template-part[data-type="header"] .header__bar {
	top: calc(32px + 30px); /* Admin bar height + 30px spacing */
}

/* Mobile admin bar (smaller) */
@media screen and (max-width: 782px) {
	.admin-bar .wp-site-blocks > header .header__bar,
	.admin-bar .wp-block-template-part[data-type="header"] .header__bar {
		top: calc(46px + 30px); /* Mobile admin bar height + 30px spacing */
	}
}

/* Add top padding to main content to account for fixed header */
/* .wp-site-blocks > main {
	padding-top: calc(100px + 30px); 
} */

/* .admin-bar .wp-site-blocks > main {
	padding-top: calc(100px + 32px + 30px); 
} */

/* @media screen and (max-width: 782px) {
	.admin-bar .wp-site-blocks > main {
		padding-top: calc(100px + 46px + 30px);
	}
} */

.menu-toggle-button:hover,
.menu-toggle-image:hover,
.menu-toggle-button.is-active {
	transform: rotate(45deg);
}

.menu-toggle-button:focus,
.menu-toggle-image:focus {
	outline: none;
}

/* Make image block clickable */
.menu-toggle-image {
	margin-bottom: 0;
}

.menu-toggle-image img {
	cursor: pointer;
	transition: all 0.3s ease;
}

.menu-toggle-image:hover img {
	transform: rotate(45deg);
}

/* Use custom "+" button instead of WP nav built-in hamburger in header */
.wp-site-blocks header .wp-block-navigation__responsive-container-open,
.wp-block-template-part[data-type="header"] .wp-block-navigation__responsive-container-open {
	display: none !important;
}

/* Mobile/Tablet Menu Toggle Visibility */
@media (max-width: 1024px) {
	.menu-toggle-button:not(.lakesuperior-menu-button),
	.menu-toggle-image {
		display: block;
	}

	/* Hide desktop nav links — use "+" button instead */
	.wp-site-blocks header .wp-block-navigation:not(.is-menu-open) .wp-block-navigation__container,
	.wp-block-template-part[data-type="header"] .wp-block-navigation:not(.is-menu-open) .wp-block-navigation__container {
		display: none;
	}

    .footer__menu:not(.is-menu-open), .wp-block-navigation.is-style-secondary:not(.is-menu-open) {
        display: flex;
    }

	.wp-block-navigation.is-menu-open {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: var(--wp--preset--color--base);
		z-index: 99999;
		display: flex !important;
		align-items: center;
		justify-content: center;
		padding: 2rem;
	}

	.wp-block-navigation.is-menu-open .wp-block-navigation__container {
		flex-direction: column;
		gap: 2rem;
		text-align: center;
	}

	.wp-block-navigation.is-menu-open .wp-block-navigation-item {
		font-size: 1.5rem;
	}
}

/* Footer Menu Styling */
footer {
    margin-top: 0 !important;
}

@media (max-width: 768px) {
    .footer__legal-bar {
        grid-template-columns: 1fr !important;
    }

    .footer__legal-bar .wp-block-navigation .wp-block-navigation__container {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
        font-size: 75%;
    }
}

footer .site-logomark-link svg {
    display: block;
}

.footer__menu{
	width: 100%;
    gap: 0;
}


.footer__menu li, .wp-block-navigation__container.is-style-animated-borders li, .wp-block-list.is-style-animated-borders li {
    padding: 1rem 0 !important; 
	display: block;
	width: 100%;
	border-top: 1px solid transparent; /* Hide original border */
    position: relative;
    --border-scale: 0;
}

.wp-block-list.is-style-animated-borders {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer__menu li a, .wp-block-navigation__container.is-style-animated-borders li a, .wp-block-list.is-style-animated-borders li a {
    display: block;
    width: 100%;
}

.footer__menu a:hover, .wp-block-navigation__container.is-style-animated-borders li a:hover, .wp-block-list.is-style-animated-borders li a:hover {
    text-decoration: none;
}

.footer__menu li:last-child, .wp-block-navigation__container.is-style-animated-borders li:last-child, .wp-block-list.is-style-animated-borders li:last-child {
	border-bottom: 1px solid transparent; /* Hide original border */
}

.footer__menu li, .wp-block-navigation__container.is-style-animated-borders li, .wp-block-list.is-style-animated-borders li {
    border-top: 1px solid var(--wp--preset--color--accent-2);
}

.footer__menu li:last-child, .wp-block-navigation__container.is-style-animated-borders li:last-child, .wp-block-list.is-style-animated-borders li:last-child {
	border-bottom: 1px solid var(--wp--preset--color--accent-2);
}

.footer__menu li:hover, .wp-block-navigation__container.is-style-animated-borders li:hover, .wp-block-list.is-style-animated-borders li:hover {
	color: currentColor !important;
}

.footer__menu li:after, .wp-block-navigation__container.is-style-animated-borders li:after, .wp-block-list.is-style-animated-borders li:after {
    content: '';
    display: block;
    width: 50%;
    height: 3px;
    background: var(--wp--preset--color--accent-2);
    transition: transform 0.3s ease;
    position: absolute;
    top: 0;
    left: 0;
    transform: scaleX(0) translateY(-50%);
    transform-origin: left center;
}

.footer__menu li:hover:after, .wp-block-navigation__container.is-style-animated-borders li:hover:after, .wp-block-list.is-style-animated-borders li:hover:after {
    transform: scaleX(1) translateY(-50%);
}

.wp-block-navigation__container.is-style-animated-borders li a span:before, .wp-block-list.is-style-animated-borders li a span:before {
    content: '+';
    margin-right: 0.5em;
}

/* Animated borders style for core/details */
.wp-block-details.is-style-animated-borders {
    border-top: 1px solid var(--wp--preset--color--accent-2);
    border-bottom: 1px solid var(--wp--preset--color--accent-2);
    position: relative;
    padding: 0;
    margin-top: -1px; /* collapse adjacent borders */
}

.wp-block-details.is-style-animated-borders summary {
    list-style: none;
    cursor: pointer;
    padding: 1rem 0;
    display: flex;
    align-items: baseline;
    font-family: var(--wp--preset--font-family--neue-haas-grotesk);
    font-size: var(--wp--preset--font-size--medium);
    font-weight: 400;
    line-height: 1.6;
    position: relative;
}

/* Hide default disclosure triangle */
.wp-block-details.is-style-animated-borders summary::-webkit-details-marker,
.wp-block-details.is-style-animated-borders summary::marker {
    display: none;
    content: '';
}

/* Remove the global ::after + sign since we use ::before instead */
.wp-block-details.is-style-animated-borders summary::after,
details[open].wp-block-details.is-style-animated-borders summary::after {
    content: none;
}

/* Remove focus outline on summary */
.wp-block-details.is-style-animated-borders summary:focus {
    outline: none;
}

/* + icon before summary text */
.wp-block-details.is-style-animated-borders summary::before {
    content: '+';
    display: inline-block;
    margin-right: 0.5em;
    flex-shrink: 0;
}

details[open].wp-block-details.is-style-animated-borders summary::before {
    content: '-';
}

/* Animated border line on hover */
.wp-block-details.is-style-animated-borders::after {
    content: '';
    display: block;
    width: 50%;
    height: 3px;
    background: var(--wp--preset--color--accent-2);
    transition: transform 0.3s ease;
    position: absolute;
    top: 0;
    left: 0;
    transform: scaleX(0) translateY(-50%);
    transform-origin: left center;
}

.wp-block-details.is-style-animated-borders:hover::after {
    transform: scaleX(1) translateY(-50%);
}

.wp-block-details.is-style-animated-borders:hover {
    color: currentColor !important;
}

/* Tighten gap between summary and inner content */
.wp-block-details.is-style-animated-borders > *:not(summary) {
    margin-top: 0;
    padding-bottom: 1rem;
}




/* Hidden group block — not rendered on frontend */
.wp-block-group.is-style-hidden {
    display: none !important;
}

/* Heading size overrides where different from theme.json */
h1:not([class*="has-"]):not([class*="is-style-"]) {
    font-size: 3rem; /* 48px */
}




h4:not([class*="has-"]):not([class*="is-style-"]) {
    font-size: 1rem; /* 16px */
}

h5:not([class*="has-"]):not([class*="is-style-"]) {
    font-size: 0.75rem; /* 12px */
    letter-spacing: 0.03125rem; /* 0.5px converted to rem */
}

h6:not([class*="has-"]):not([class*="is-style-"]) {
    font-size: 0.625rem; /* 10px */
}

/* Main Element Top Margin Removal */
/* Remove top margin on homepage */
.home main.wp-block-group {
	margin-top: 0 !important;
}

.home .wp-block-post-title + .entry-content, .single-project .wp-block-post-title + .entry-content {
    margin-top: 0 !important;
}

/* Project navigation — full-width borders, inner wide wrapper, 2 columns, hairline between */
.single-project .project-nav-container {
	margin-bottom: 0 !important;
}

.single-project .project-nav-container .alignwide {
	max-width: var( --wp--style--global--wide-size, 1340px );
	margin-left: auto;
	margin-right: auto;
	padding-left: var( --wp--style--root--padding-left, 1rem );
	padding-right: var( --wp--style--root--padding-right, 1rem );
}

.single-project .project-nav-container nav[aria-label="Project navigation"] {
	display: grid;
	grid-template-columns: repeat( 2, 1fr );
	gap: 0;
	width: 100%;
	margin: 0;
	padding: 0 !important;
	border: none;
}

.single-project .project-nav-container nav[aria-label="Project navigation"] > * {
	padding: var( --wp--preset--spacing--60, 1.5rem );
	border-right: 1px solid var( --wp--preset--color--accent-6 );
	font-size: var( --wp--preset--font-size--medium-large, 1.25rem );
}

.single-project .project-nav-container nav[aria-label="Project navigation"] > *:last-child {
	border-right: none;
	text-align: right;
}

.single-project .project-nav-container nav[aria-label="Project navigation"] > * {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: var( --wp--preset--spacing--40, 1rem );
}

.single-project .project-nav-container nav[aria-label="Project navigation"] a {
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: var( --wp--preset--spacing--40, 1rem );
	min-width: 0;
	text-wrap: balance;
	-webkit-text-wrap: balance;
}

.single-project .project-nav-container .project-nav-arrow-prev {
	display: inline-flex;
	transform: scaleX( -1 );
}

.single-project .project-nav-container .project-nav-arrow-next {
	display: inline-flex;
}

.single-project .project-nav-container nav[aria-label="Project navigation"] a span,
.single-project .project-nav-container nav[aria-label="Project navigation"] .wp-block-post-navigation-link__arrow {
	display: inline;
	white-space: normal;
}

.single-project .project-nav-container nav[aria-label="Project navigation"] .post-navigation-link__title,
.single-project .project-nav-container nav[aria-label="Project navigation"] .wp-block-post-navigation-link__title {
	max-width: 100%;
	min-width: 0;
}

@media ( max-width: 639px ) {
	.single-project .project-nav-container nav[aria-label="Project navigation"] {
		grid-template-columns: 1fr;
	}
	.single-project .project-nav-container nav[aria-label="Project navigation"] > * {
		border-right: none;
		border-bottom: 1px solid var( --wp--preset--color--accent-6 );
		text-align: left;
	}
	.single-project .project-nav-container nav[aria-label="Project navigation"] > *:last-child {
		border-bottom: none;
	}
}

/* Remove top margin on pages with hero blocks */
main.wp-block-group:has(.wp-block-cover),
main.wp-block-group:has([class*="hero-"]),
main.wp-block-group:has(.wp-block-group.alignfull:first-child),
main.wp-block-group:has(.wp-block-columns.alignfull:first-child) {
	margin-top: 0 !important;
}

/* Fallback for browsers that don't support :has() */
.has-hero main.wp-block-group {
	margin-top: 0 !important;
}

/* Remove top padding from first child blocks */
/* Homepage first child block */
.home main.wp-block-group > .wp-block-group:first-child {
	padding-top: 0 !important;
}

/* Hero pages first child block */
main.wp-block-group:has(.wp-block-cover) > .wp-block-group:first-child,
main.wp-block-group:has([class*="hero-"]) > .wp-block-group:first-child,
main.wp-block-group:has(.wp-block-group.alignfull:first-child) > .wp-block-group:first-child,
main.wp-block-group:has(.wp-block-columns.alignfull:first-child) > .wp-block-group:first-child {
	padding-top: 0 !important;
}

/* Fallback for browsers that don't support :has() */
.has-hero main.wp-block-group > .wp-block-group:first-child {
	padding-top: 0 !important;
}

/* Remove bottom padding from main content area */
main.wp-block-group {
	padding-bottom: 0 !important;
}

/* Post Title Visibility Rules */
/* Hide post title completely on homepage */
.home .wp-block-post-title {
	display: none;
}

/* Hide post title visually but keep accessible on non-homepage */
/* body:not(.home) .wp-block-post-title {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
} */

.is-style-text-service-description {
    position: relative;
}

.is-style-text-service-description::before {
    content: '+';
    font-size: 3.2rem;
    font-weight: 100;
    position: absolute;
    top: 0;
    left: 0;
    color: var(--wp--preset--color--accent-2);
    -webkit-font-smoothing: antialiased;
}

.is-style-text-annotation {
    border-radius: 0;
    border: none;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.is-style-text-annotation::after {
    content: '•';
    display: inline-block;
    margin-left: 0.5em;
    position: relative;
    font-size: 1rem;
    line-height: 1;
    color: currentColor;
}

.is-style-text-annotation.has-background {
    padding: 1rem 2rem;
}

.is-style-section-3 .is-style-text-annotation {
    background-color: var(--wp--preset--color--accent-3);
    color: var(--wp--preset--color--contrast);
    padding: 1rem 2rem;
}

/* Force remove background and padding from all buttons */
:root :where(.wp-element-button, .wp-block-button__link) {
    background-color: transparent !important;
    padding: 0 !important;
}

.wp-element-button {
    position: relative;
    height: unset !important;
}

.wp-element-button:before {
    content: '+';
    display: inline-block;
    margin-right: 0.5em;
    color: currentColor;
    background: var(--wp--preset--color--accent-1);
    width: 16px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    font-weight: 400;
    z-index: 1;
    transition: height 0.3s ease, transform 0.3s ease 0.3s;
}

.wp-element-button:after {
    content: '';
    display: block;
    width: 16px;
    height: 100%;
    background: var(--wp--preset--color--accent-1);
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: -1;
    transform-origin: left center;
    transition: width 0.3s ease 0.3s, height 0.3s ease;
}

.wp-element-button:hover:after {
    width: calc(100% + 0.75em);
    height: calc(100% + 0.5em);
    transform: translateY(-50%);
    transition: width 0.3s ease 0.3s, height 0.3s ease;
}

.wp-element-button:hover:before {
    transform: translateX(0.25em);
    transition: transform 0.3s ease 0.3s;
}


.wp-element-button:hover {
    color: white;
    transition: color 0.3s ease 0.3s;
}

:root :where(.wp-element-button:hover, .wp-block-button__link:hover) {
    background-color: transparent !important;
}


.lsc-list li {
    border-top: 1px solid transparent; /* Hide original border */
    padding: 1rem 0;
    position: relative;
    --border-scale: 0;
}

.lsc-list li:last-child {
    border-bottom: 1px solid transparent; /* Hide original border */
}

/* Create animated border lines that scale from left to right */
.lsc-list li {
    background-image: 
        linear-gradient(90deg, currentColor 0%, currentColor calc(var(--border-scale) * 100%), transparent calc(var(--border-scale) * 100%));
    background-size: 100% 1px;
    background-position: 0 0;
    background-repeat: no-repeat;
}

.lsc-list li:last-child {
    background-image: 
        linear-gradient(90deg, currentColor 0%, currentColor calc(var(--border-scale) * 100%), transparent calc(var(--border-scale) * 100%)),
        linear-gradient(90deg, currentColor 0%, currentColor calc(var(--border-scale) * 100%), transparent calc(var(--border-scale) * 100%));
    background-size: 100% 1px, 100% 1px;
    background-position: 0 0, 0 100%;
    background-repeat: no-repeat, no-repeat;
}

/* Ordered list styling */
.lsc-list {
    counter-reset: lsc-counter;
}

summary + .lsc-list , .lsc-list ol {
    list-style: none;
    margin: 0 !important;
    padding-left: 0 !important;
}

summary + .lsc-list {
    margin-top: 2rem !important;
}

.lsc-list li {
    counter-increment: lsc-counter;
    position: relative;
}

.lsc-list li a {
    text-decoration: none;
}

details summary a,
.wp-block-details summary a {
    text-decoration: none;
}

.lsc-list li::after {
    content: '';
    display: block;
    width: 50%;
    height: 3px;
    background: currentColor;
    top: 0;
    left: 0;
    position: absolute;
    transform: translateY(-50%) scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease;
}

.lsc-list li:hover::after {
    transform: translateY(-50%) scaleX(1);
    transition: transform 0.3s ease;
}

.lsc-list li::before {
    content: "0" counter(lsc-counter);
    color: currentColor;
    display: inline-block;
    margin-right: 1rem;
    font-size: 1.2rem;
    vertical-align: middle;
    letter-spacing: 0.1em;
}


/* Adjust spacing for two-column numbered lists */
.lsc-list.two-column li {
    break-inside: avoid;
}

/* Shared Card Styles - Used by card slider and other components */
.card {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    background: var(--wp--preset--color--base, #ffffff);
    color: var(--wp--preset--color--contrast);
    width: 100%;
    max-width: 16.25rem;
}

.card .card__image {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.card .card__image img,
.card .card__image svg {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.card .card__image figure {
    margin: 0 0 20px 0;
}

.card .card__content {
    padding: 2rem;
}

.card * {
    color: currentColor !important;
}

/* Card placeholder for posts without featured images */
.card__placeholder-image {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--wp--preset--color--contrast-2, #f0f0f0);
}

.card__placeholder-image svg {
    width: 100%;
    height: 100%;
    max-width: 120px;
    max-height: 80px;
    opacity: 0.6;
}

/* Full Width Mobile for Group blocks */
@media (max-width: 781px) {
	.wp-block-group.is-full-width-mobile,
	.wp-block-group[data-full-width-mobile="true"] {
		width: 100% important;
		max-width: 100% !important;
	}

    .wp-block-group.is-full-width-mobile .is-content-justification-right *,
	.wp-block-group[data-full-width-mobile="true"] .is-content-justification-right * {
		margin-left: 0 !important;
	}
}

/* Divided buttons style for list blocks */
ul.is-style-divided-buttons,
ol.is-style-divided-buttons {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
}

ul.is-style-divided-buttons li,
ol.is-style-divided-buttons li {
    padding: 1rem 2rem;
    margin: 0;
    border-right: 1px solid currentColor;
}

ul.is-style-divided-buttons li a,
ol.is-style-divided-buttons li a {
    display: inline-flex;
    align-items: center;
    font-size: var(--wp--preset--font-size--small);
    font-weight: 600;
    -webkit-font-smoothing: antialiased;
    font-family: var(--wp--preset--font-family--neuhaus-grotesk);
}

ul.is-style-divided-buttons li:last-child,
ol.is-style-divided-buttons li:last-child {
    border-right: none;
}

ul.is-style-divided-buttons li a::before,
ol.is-style-divided-buttons li a::before {
    content: '+';
    margin-right: 0.5em;
    background: var(--wp--preset--color--accent-1);
    width: 16px;
    height: 16px;
    font-weight: 400;
    flex-shrink: 0;
    display: inline-block;
    text-align: center;
    line-height: 16px;
    color: currentColor;
}

/* Tighten line-height on x-large text */
.has-x-large-font-size {
	line-height: 1.25;
}

/* Utility: pin grid item to the top of its cell */
.is-align-self-start {
    align-self: start !important;
}

/* Responsive Grid Columns for Group blocks */
/* Mobile columns (<640px) */
@media (max-width: 639px) {
	.is-mobile-columns-1.is-layout-grid {
		grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
	}
    .is-mobile-columns-1.is-layout-grid > .wp-block-group {
        grid-column: span 1 !important;
    }
	.is-mobile-columns-2.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.is-mobile-columns-3.is-layout-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
	.is-mobile-columns-4.is-layout-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
	.is-mobile-columns-5.is-layout-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	}
	.is-mobile-columns-6.is-layout-grid {
		grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
	}
}

/* Tablet columns (640px - 959px) */
@media (min-width: 640px) and (max-width: 959px) {
	.is-tablet-columns-1.is-layout-grid {
		grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
	}
	.is-tablet-columns-2.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.is-tablet-columns-3.is-layout-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
	.is-tablet-columns-4.is-layout-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
	.is-tablet-columns-5.is-layout-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	}
	.is-tablet-columns-6.is-layout-grid {
		grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
	}
}

/* Post Terms Styling */
.wp-block-categories-list {
	list-style-type: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
    padding: 0;
}

.wp-block-categories-list li {
	margin: 0;
	list-style-type: none;
}

.wp-block-categories-list a {
    border-radius: 1.3rem;
	display: inline-block;
	white-space: nowrap;
	color: currentColor;
	border: 1px solid currentColor;
	text-decoration: none;
	padding: 0.25em 1.5em;
	font-size: var(--wp--preset--font-size--small);
    font-family: var(--wp--preset--font-family--roboto-mono);
	font-weight: 400;
}

.wp-block-tag-list a, .taxonomy-post_tag {
    border-radius: 0px !important;
}

.wp-block-categories-list a:hover {
	color: currentColor;
	text-decoration: none;
}

/* Secondary Navigation Style - Plus Symbol */
.wp-block-navigation.is-style-secondary .wp-block-navigation-item a::before {
	content: '+ ';
}

/* Copyright styling */
.footer-copyright {
	font-family: var(--wp--preset--font-family--roboto-mono, monospace);
}

.project-header {
    margin-top: 0 !important;
}

.wp-block-navigation__container.is-style-divided-buttons li a {
	display: inline-flex;
	align-items: baseline;
    font-weight: 600;
    -webkit-font-smoothing: antialiased;
}

.wp-block-navigation__container.is-style-divided-buttons li {
	border-right: 1px solid currentColor;
    padding: 1rem 2rem 1rem 0;
}

.wp-block-navigation__container.is-style-divided-buttons li:last-child {
	border-right: none;
}

@media (min-width: 782px) {
    .wp-block-columns.align-baseline {
        align-items: baseline !important;
    }
}

/* ── Project Taxonomy Pills ── */
.project-taxonomy-pills,
.is-style-section-5 .wp-block-post-terms {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    border: none !important;
    padding: 0 !important;
    background: none !important;
}

.project-taxonomy-pills .wp-block-post-terms__separator,
.is-style-section-5 .wp-block-post-terms__separator {
    display: none;
}

.project-taxonomy-pills .wp-block-post-terms a,
.is-style-section-5 .wp-block-post-terms a {
    display: inline-block;
    padding: 0.35em 1em;
    border: 1px solid currentColor;
    border-radius: 999px;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.project-taxonomy-pills .wp-block-post-terms a:hover,
.is-style-section-5 .wp-block-post-terms a:hover {
    background-color: var(--wp--preset--color--base);
    color: var(--wp--preset--color--contrast);
    border-color: var(--wp--preset--color--base);
}

.wp-block-image svg {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
}