/* Supporting CMS for all patterns on this site */


/***** SITE CONTENT FORMATTING *********/
/* content headers */
.theme-section-block h1 {
    line-height: clamp(1, 1.88em - 1.25vw, 1.69em);
    font-size: clamp(1.5rem, 1.43rem + 1.5vw, 2.7rem);
    font-weight: 700;
}
/* H2: Major Section Headings (1.35rem -> 2rem) */
.theme-section-block h2 {
    font-size: clamp(1.35rem, 1.15rem + 1vw, 2rem);
    line-height: 1.3; /* Tighter than body, looser than H1 */
    font-weight: 500; /* Matches H1 */
    margin-bottom: var(--spacer-md);
    color: var(--color-text);
}

/* H3: Sub-section Headings (1.2rem -> 1.5rem) */
.theme-section-block h3 {
    font-size: clamp(1.2rem, 1.1rem + 0.5vw, 1.5rem);
    line-height: 1.4;
    font-weight: 500;
    margin-bottom: var(--spacer-sm);
    color: var(--color-text);
}

/* H4: Widget/Card Titles (1.1rem -> 1.25rem) */
.theme-section-block h4 {
    font-size: clamp(1.1rem, 1.05rem + 0.25vw, 1.25rem);
    line-height: 1.5;
    font-weight: 500;
    margin-bottom: var(--spacer-sm);
    color: var(--color-text);
}

/* H5: Labels & Eyebrows (Matches Body Size, but bolder) */
.theme-section-block h5 {
    /* Identical scale to your paragraph */
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
    line-height: 1.5;
    /* Heavier weight (500) distinguishes it from the light (300) body text */
    font-weight: 500;
    margin-bottom: var(--spacer-sm);
    color: var(--color-text);
}
/* regular flowing pages text */
.theme-section-block > p {
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
    line-height: 1.6;
    font-weight: 300;
    margin-top: 0;
    color: var(--color-text-mid);
    margin-bottom: 0;
}
.theme-section-block > p:not(p:last-child) {
    margin-bottom: var(--spacer-lg);
}

/* handling of lists */
.theme-section-block ul {
    font-size: 1em;
    font-weight: 300;
    line-height: 1.8;
    margin-block-start: 0;
    margin-block-end: 1.25em;
}

/* Handling of expander content inside of theme blocks */
.theme-section-block .expander-toggle .expander-heading-text, .theme-section-block .expander-toggle .expander-toggle-icon {
    color: var(--color-accent-stronger);
}
.theme-section-block .expander-container .expander-content-inner {
    border-left: 3px solid var(--color-border-light);
    margin-left: 1.8em;
    padding-left: 1em;
    border-bottom-left-radius: 1em;
    font-weight: 300;
    color: var(--color-text-mid);
}

/* Pattern: scalar banners */
.latest-insight-banner-label {
    color: var(--color-text-mid);
    font-size: 0.85em;
    font-weight: 400;
    text-transform: uppercase;
}
.latest-insight-heading {
    position: relative;
}
.latest-insight-heading::after {
    content: "";
    display: block;
    width: 3em;
    height: 3px;
    background: linear-gradient(to right, #6a11cb 0%, #2575fc 100%);
    margin-top: 0.5em;
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 600px) {
    .latest-insight-heading::after {
        margin-left: 0;
        margin-right: 0;
    }
}


/* Platform button link array used on the meganav */
.block-editor-block-list__block.menu-platform-button > .page-link.btn,
.page-link.btn.menu-platform-button {
    background-color: var(--bg-color-med);
    width: 100%;
    border: none;
    box-sizing: border-box;
}
@media (min-width: 1280px) {
    .block-editor-block-list__block.menu-platform-button > .page-link.btn,
    .page-link.btn.menu-platform-button {
        height: 100%;
    }
}
.block-editor-block-list__block.menu-platform-button > .page-link.btn > img,
.page-link.btn.menu-platform-button > img {
    width: unset;
}

.menu-platform-link {
    padding-bottom: 1.5em;
}

/* Page hero (on all pages) */

.page-hero {
	height: clamp(200px, 30vw + 10vh, 400px + 10vh);
    min-height: 50px;
}
.page-hero .page-hero-slide,
.page-hero .page-hero-container {
	display: flex;
	flex-direction: column;
	margin: auto;
	height:100%;
}
.page-hero .page-hero-slide > .theme-section-block,
.page-hero .page-hero-container > .theme-section-block,
.page-hero > .hero-banner-content > .theme-section-block {
	flex: 1;
}
.page-hero .page-hero-heading {
	margin-top: 0.25em;
	margin-bottom: var(--vertical-block-offset);
}
.page-hero .page-hero-subheading {
	margin-top: auto;
	font-size: clamp(0.95em, 0.85rem + 0.5vw, 1.2em);
	color: var(--color-slate);
}

/* Tabbed block used to emphasize content, found on service pages */

.tabbed-block .tabbed-block-header {
	font-size: clamp(1.1rem, 1.15rem + 1vw, 1.5rem);
	font-weight: 500;
	margin: 1rem 0;
}
.tabbed-block {
	display: grid;
	grid-template-columns: 1fr;
}
.tabbed-block-content {
	padding: 1em 2em;
	background-color: var(--bg-color-med);
	box-sizing: border-box;
	border-radius: var(--radius-large);
}
@media (min-width: 960px) {
	.tabbed-block {
		grid-template-columns: 0.3fr 0.7fr;
	}
}

/* List of tech cards used on servces pages */

.technologies-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
 	width: 100%;
}
.technologies-list-item {
    height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--bg-color-med);
	border-radius: var(--radius-large);
	padding: 1em;
}
.technologies-list-item > .container-background-img {
    position: static;
    width: 100%;
    height: auto;
    max-height: 90%;
    object-fit: contain;
}
@media (min-width: 960px) {
	.technologies-list {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.5rem;
		width: 100%;
	}
}

/* Process slides */
.process-slide-container {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    box-sizing: border-box;
    background-color: #f9fbff;
    border: 3px solid var(--color-border-light);
    padding-top: 3em;
    font-size: 0.85em;
    border-radius: var(--radius-large);
    margin-top: 1.5em;
    height: 40em;
}
.process-slide-container .process-abstract {
    width: 100%;
    height: 8em;
    margin-bottom: 3em;
}
.process-slide-container .process-abstract .container-background-img {
    object-fit: contain;
}
.process-slide-container .process-desc {
    flex: 1;
    padding: 0 1em;
    display: flex;
    flex-direction: column;
}
.process-slide-container .service-label {
    font-size: 1.5em;
    font-weight: 600;
}
.process-slide-container .process-services {
    border-top: 1px solid var(--color-border-light);
    padding: 1em;
    display: flex;
    flex-direction: column;
    height: 8em;
}
.process-slide-container .process-services a {
    color: var(--color-accent);
}
.process-slide-container .process-services .service-label {
    flex: 1;
}

/* Service preamble on pages */
.service-preamble .theme-section-heading {
	font-size: clamp(1.35rem, 1.15rem + 1vw, 2rem);
	font-weight: 300;
	margin-bottom: var(--spacer-md);
}


/* Book a meeting popup touchups */
.panel-container[data-parent-control-id="book-call-panel"] .book-call-form-desc {
    font-size: 0.85em;
}

.panel-container[data-parent-control-id="book-call-panel"] .form-calendar-field-block .page-link.btn {
    height: 1.5em;
    min-height: 1.5em;
    border: none;
    padding: 0 1.25em;
}
.panel-container[data-parent-control-id="book-call-panel"]  .form-calendar-field-block__month-buttons {
    display: flex;
    justify-content: end;
}
@media (min-width: 782px) {
    .panel-container[data-parent-control-id="book-call-panel"] {
        box-sizing: content-box;
    }
    .panel-container[data-parent-control-id="book-call-panel"] .panel-close-icon {
        height: 1.4rem;
        width: 1.4rem;
    }
}
.panel-container[data-parent-control-id="book-call-panel"] > .panel-content {
    overflow-y: auto;
}
.panel-container.panel-type-child.panel-child-instance.panel-anim-unroll[data-parent-control-id="book-call-panel"] {
    max-width: 20rem;
}
.panel-container[data-parent-control-id="book-call-panel"] .form-calendar-field-block {
    gap: 0;
}
.panel-container[data-parent-control-id="book-call-panel"] .form-calendar-field-block__hour-composite {
    padding: 0 0.75rem;
}
.panel-container[data-parent-control-id="book-call-panel"] .form-block .form-text-field-block-frame, .form-block .form-textarea-field-block-frame, .form-block .form-select-field-block-frame {
    padding: 0 0.5rem;
}
