/*
Theme Name: Impulsion Consulting 2026
Description: A custom theme for Erina Malarkey
Theme URI: https://localwebhub.com
Version: 1.0.8
Author: Dmitriy Agadzhanov
Author URI: https://localwebhub.com
*/

:root {
	/* Layout */
	--theme-menu-height: 77px;
	--theme-content-width: 1240px;
	--theme-content-padding: 20px;

	/* Palette — sage / teal */
	--theme-bg:        #ffffff;
	--theme-bg-soft:   #efefef;
	--theme-bg-dark:   #171615;
	--theme-ink:       #1c1f1a;
	--theme-ink-soft:  #4a4d44;
	--theme-muted:     #847e6f;
	--theme-rule:      #d9d2c0;
	--theme-accent:    #70dcd4;
	--theme-accent-2:  #4cbeb5;
	--theme-on-accent: #ffffff;
	--theme-paper:     #ffffff;

	/* Type families */
	--theme-display: "Haskoy", "Inter Tight", "Helvetica Neue", Arial, sans-serif;
	--theme-sans:    "Inter Tight", "Helvetica Neue", Arial, sans-serif;
	--theme-serif:   "Cormorant Garamond", "Playfair Display", Georgia, serif;
	--theme-mono:    "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;

	/* Radii */
	--theme-radius-sm: 4px;
	--theme-radius-md: 10px;
	--theme-radius-lg: 18px;

	/* Responsive spacing — override WordPress preset spacing */
	--wp--preset--spacing--small: 15px;
	--wp--preset--spacing--medium: 30px;
	--wp--preset--spacing--large: 60px;
	--wp--preset--spacing--x-large: 90px;
}

@media (min-width: 756px) {
	:root {
		--theme-content-padding: 30px;
	}
}

@media (min-width: 992px) {
	:root {
		--theme-content-padding: 40px;

		/* Desktop spacing - override WordPress preset spacing */
		--wp--preset--spacing--small: 30px;
		--wp--preset--spacing--medium: 60px;
		--wp--preset--spacing--large: 90px;
		--wp--preset--spacing--x-large: 120px;
	}
}

@media (min-width: 1200px) {
	:root {
		--theme-menu-height: 84px;
		--theme-content-padding: 56px;
	}
}

html {
	scroll-behavior: smooth;
}

.acf-block-preview,
body:not(.wp-admin) {
	background: var(--theme-bg);
	color: var(--theme-ink);
	font-family: var(--theme-sans);
	font-size: 17px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--theme-accent);
	color: var(--theme-on-accent);
}

body:not(.wp-admin) [id] {
	scroll-margin-top: var(--theme-menu-height);
}

/* ── Typography ───────────────────────────────────────────── */

h1, .x-large-headline,
h2, .large-headline,
h3, .medium-headline {
	font-family: var(--theme-display);
	font-weight: 600;
	letter-spacing: -.01em;
	text-transform: uppercase;
	margin: 0;
	color: var(--theme-ink);
}

h1, .x-large-headline {
	font-size: clamp(40px, 5.4vw, 72px);
	line-height: 1;
	margin: 0 0 30px;
}

@media (min-width: 821px) {
	h1, .x-large-headline {
		line-height: .96;
	}
}

h2, .large-headline {
	font-size: clamp(28px, 3.2vw, 44px);
	line-height: 1.04;
}

h3, .medium-headline {
	font-size: 18px;
	line-height: 1.2;
}

h4, .small-headline {
	font-family: var(--theme-serif);
	font-weight: 500;
	font-size: 16px;
	line-height: 1.3;
	letter-spacing: -.005em;
	margin: 0;
	color: var(--theme-ink);
	text-transform: none;
}

p {
	margin: 0 0 1em;
	color: var(--theme-ink-soft);
}

.lead {
	font-size: 19px;
	line-height: 1.55;
	color: var(--theme-ink-soft);
	max-width: 56ch;
}

.eyebrow {
	font-family: var(--theme-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--theme-accent);
}

.eyebrow-muted {
	color: var(--theme-muted);
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: polygon(0 0, 0 0, 0 0, 0 0);
	position: absolute !important;
	white-space: nowrap;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

/* ── Reveal-on-scroll utility ──────────────────────────────
   Add `reveal` to any element to fade + slide it up when it
   enters the viewport. main.js toggles `.in` via
   IntersectionObserver (fires once per element). */
.reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .7s ease, transform .7s ease;
}

.reveal.in {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* Block editor has no IntersectionObserver to add .in — show content as-is. */
.block-editor-iframe__body .reveal,
.editor-styles-wrapper .reveal,
body.wp-admin .reveal {
	opacity: 1;
	transform: none;
	transition: none;
}

.theme-container {
	max-width: var(--theme-content-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--theme-content-padding);
	padding-right: var(--theme-content-padding);
}

.theme-row {
	display: flex;
	flex-wrap: wrap;
	margin-right: calc(-1 * var(--theme-content-padding));
	margin-left: calc(-1 * var(--theme-content-padding));
}

.theme-row > * {
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	padding-right: var(--theme-content-padding);
	padding-left: var(--theme-content-padding);
	gap: var(--theme-content-padding);
}

@media (min-width: 992px) {
	.theme-col-lg {
		flex: 1 0 0%;
	}

	.theme-col-lg-auto {
		flex: 0 0 auto;
		width: auto;
	}

    .theme-lg-two-col {
		flex: 1 1 calc((100% - (calc(var(--theme-content-padding)) * 1)) / 2);
    }

	.theme-lg-three-col {
       flex: 1 1 calc((100% - (calc(var(--theme-content-padding)) * 2)) / 3);
    }

    .theme-lg-four-col {
       flex: 1 1 calc((100% - (calc(var(--theme-content-padding)) * 3)) / 4);
    }
	
}

.object-fit-cover > img {
	height: 100%;
	width: 100%;
	object-fit: cover;
}

.object-fit-contain > img {
	height: 100%;
	width: 100%;	
	object-fit: contain;
}

.alignleft,
.alignright,
.aligncenter {
	display: block;
	margin: 0 auto 30px auto;
}

@media (min-width:768px) {
	.alignleft {
		margin: 0 20px 20px 0;
		float: left;
	}

	.alignright {
		float: right;
		margin: 0 0 20px 20px;
	}
}

.article img {
	max-width: 100%;
	height: auto;
}

@media (max-width: 575px) {
	.sm-ignore-br br {
		display: none;
	}
}

@media (max-width: 767px) {
	.md-ignore-br br {
		display: none;
	}
}

@media (max-width: 991px) {
	.lg-ignore-br br {
		display: none;
	}
}

.acf-block-preview * {
	box-sizing: border-box;
}

.acf-block-preview > section,
.acf-block-preview > div {
	font-size: 12px;
	border: 1px solid #ccc;
	min-height: 50px;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.acf-block-preview > div:before,
.acf-block-preview > section:before {
	content: attr(data-blockname);
	position: absolute;
	top: 0;
	left: 0;
	padding: 2px;
	font-size: .875rem;
	background: #ccc;
	color: #000;
	z-index: 4;
}

.slick-slide img.lazyloading {
	opacity: 1;
}

/* .slick-track{
	display: flex !important;
}

.slick-slide {
	display: flex !important;
	height: auto;
} */

.slick-track {
	display: flex;
}

.slick-initialized .slick-slide {
    display: flex;
	flex-direction: column;
	height: auto;
}

.slick-initialized .slick-slide > div {
	flex-grow: 1;
}

.vimeo--video[data-fill="1"] {
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;	
}

.vimeo--video[data-fill="1"] iframe {
	position: absolute;
}

.has-fixed-background {
	background-attachment: fixed;
}

@supports (-webkit-overflow-scrolling: touch) {
	.has-fixed-background {
		background-attachment: scroll; 
	}
}

@media (prefers-reduced-motion: reduce) {
	.has-fixed-background {
		background-attachment: scroll; 
	}
}

.grecaptcha-badge{
	visibility: collapse !important;
}

.recaptcha--terms {
	font-size: .6rem;
}

.single-post--content-width > [data-blockname], 
.single-post--content-width > .alignfull {
	margin-left: -15px;
	margin-right: -15px;
}

@media (min-width: 780px) {
	.single-post--content-width > [data-blockname],
	.single-post--content-width > .alignfull {
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		margin-left: calc(50% - ((100vw - var(--scrollbar-width)) / 2));
		margin-right: calc(50% - ((100vw - var(--scrollbar-width)) / 2));
	}
}

.main--section > p,
.main--section > .wp-block-heading,
.main--section > .wp-block-list {
	max-width: 900px;
	margin: 0 auto 1em;
	padding: 0 30px;
}

.main--section > .wp-block-list {
	padding-left: calc(30px + 1em);
}