@charset "UTF-8";
/* HL Associates — responsive styles, desktop-first (load after style.css) */

/* Desktop-only hover behaviour for the services dropdown */
@media (min-width: 1025px) {
	.menu-item-has-children:hover > .menu-arrow {
		color: var(--color-primary);
	}

	.menu-item-has-children:hover > .menu-arrow .icon {
		transform: rotate(180deg);
	}

	.menu-item-has-children:hover > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, 0);
	}
}

@media (max-width: 1200px) {
	/* Landing blocks */
	.event-card {
		grid-template-columns: 14rem minmax(0, 1fr);
	}

	.event-card-actions {
		grid-column: 2;
		flex-direction: row;
		flex-wrap: wrap;
		padding: 0 1.75rem 1.5rem;
	}

	.page-banner-title {
		font-size: 3.25rem;
	}

	.section-head-title,
	.booking-title {
		font-size: 2.5rem;
	}

	.leaders {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.team-intro {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.team-intro-btn {
		grid-column: 1 / -1;
		justify-self: start;
	}

	.logo-grid-card {
		flex-basis: calc((100% - 4.5rem) / 4);
	}

	.h1 {
		font-size: 3rem;
	}

	.h2 {
		font-size: 2.5rem;
		line-height: 1.1;
	}

	.h2.clients-title,
	.h2.cta-title {
		font-size: 2rem;
	}

	.services-card .h3 {
		font-size: 1.625rem;
		line-height: 2rem;
	}

	.services-wrap-secondary .services-list {
		gap: 1.5rem;
	}

	.services-wrap-secondary .services-card {
		padding: 1rem;
	}

	.footer-top {
		column-gap: 1rem;
	}

	/* About */
	.statement-title {
		font-size: 2rem;
	}
}

@media (max-width: 1024px) {
	/* Landing blocks */
	.event-hero-grid,
	.meeting {
		grid-template-columns: minmax(0, 1fr);
		gap: 3rem;
	}

	.event-pass {
		width: 100%;
		max-width: 19rem;
	}

	.past-event-main {
		grid-template-columns: 16rem minmax(0, 1fr);
	}

	.events-wrap,
	.past-events-wrap,
	.meeting-wrap {
		padding-block: 4.5rem;
	}

	.story,
	.booking,
	.team-card {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}

	.story-wrap,
	.pillars-wrap,
	.leaders-wrap,
	.team-wrap,
	.reasons-wrap,
	.gallery-wrap,
	.social-wrap {
		padding-block: 5rem;
	}

	.stats-wrap,
	.logo-grid-wrap,
	.booking-wrap {
		padding-block: 4.5rem;
	}

	.gallery-grid {
		columns: 2;
	}

	.logo-grid-card {
		flex-basis: calc((100% - 3rem) / 3);
	}

	/* Header — dropdown panel menu */
	.header-right {
		gap: 1rem;
		padding-top: 0;
	}

	.header-menu {
		position: absolute;
		top: 100%;
		right: 1rem;
		left: 1rem;
		z-index: 50;
		flex-direction: column;
		gap: 1rem;
		max-height: 85vh;
		margin-top: 0.5rem;
		padding: 1rem 1.25rem;
		overflow-y: auto;
		overscroll-behavior: contain;
		border: 1px solid var(--color-border);
		border-radius: 1rem;
		background-color: var(--color-background);
		box-shadow: var(--shadow-2xl);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-0.5rem) scale(0.98);
		transition: opacity 0.25s ease, transform 0.25s var(--ease-out), visibility 0.25s;
	}

	.menu-open .header-menu {
		opacity: 1;
		visibility: visible;
		transform: none;
	}

	.header-menu > ul {
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
	}

	.header-menu > ul > li > a,
	.menu-arrow {
		width: 100%;
		gap: normal;
		padding-block: 0;
		font-size: 1.5rem;
		font-weight: 900;
		line-height: 2rem;
		letter-spacing: normal;
		text-transform: none;
		color: var(--color-foreground);
		transition: none;
	}

	.header-menu > ul > li > a:hover,
	.menu-arrow:hover,
	.menu-item-has-children.is-open > .menu-arrow {
		color: var(--color-foreground);
	}

	.header-menu > ul > li > a .menu-link-icon {
		display: flex;
	}

	.menu-link-icon {
		width: 2.5rem;
		height: 2.5rem;
		border-radius: 50%;
		background-color: var(--color-muted);
	}

	.menu-link-icon .icon {
		width: 1.25rem;
		height: 1.25rem;
	}

	.header-menu > ul > li > a:hover .menu-link-icon {
		color: var(--color-white);
		background-color: var(--color-primary);
	}

	.menu-item-has-children {
		position: static;
		padding-block: 0;
	}

	.sub-menu {
		position: static;
		display: none;
		width: auto;
		margin-top: 1rem;
		overflow: hidden;
		box-shadow: none;
		opacity: 1;
		visibility: inherit;
		transform: none;
		transition: none;
	}

	.sub-menu::before {
		content: none;
	}

	.menu-item-has-children.is-open > .sub-menu {
		display: block;
		transform: none;
	}

	.sub-menu-columns {
		flex-direction: column;
	}

	.sub-menu-group + .sub-menu-group {
		border-top: 1px solid var(--color-border);
		border-left: 0;
		border-top-right-radius: 0;
	}

	.sub-menu-list a,
	.sub-menu-feature span {
		white-space: normal;
	}

	.header-menu-btn {
		display: inline-flex;
	}

	.header-divider-desktop,
	.header-btn {
		display: none;
	}

	.header-divider-mobile,
	.menu-icon {
		display: block;
	}

	.h2.clients-title {
		font-size: 1.875rem;
	}

	/* Services cards: tighter padding & gutters */
	.services-list {
		gap: 1.5rem;
	}

	.services-card {
		padding: 1rem;
	}

	/* Why partner */
	.why-partner {
		grid-template-columns: none;
	}

	.statistics-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-top {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* About */
	.process-card {
		height: 440px;
		padding: 1.5rem;
	}

	.values-card-img {
		height: 220px;
	}

	/* CDSCO Services */
	.cdsco-hero-title,
	.contact-hero-title {
		font-size: 3.5rem;
	}

	.cdsco-highlights-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.cdsco-highlights-item + .cdsco-highlights-item {
		border-left: 0;
	}

	.solutions-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Service detail — single column, tighter side padding */
	.service-hero {
		width: min(72rem, 100% - 4rem);
	}

	.service-hero-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
	}

	.service-hero-content,
	.service-hero-aside {
		grid-column: auto;
	}

	.service-standards {
		width: calc(100% - 6rem);
	}

	.service-info {
		grid-template-columns: minmax(0, 1fr);
	}

	.service-steps-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.service-steps-grid .service-step::before {
		display: none;
	}

	.service-info-wrap,
	.service-related-wrap {
		padding-inline: 3rem;
	}

	.service-cta-wrap {
		padding-inline: 3rem;
	}
}

@media (max-width: 991px) {
	/* Hero — globe wraps below the content, centred */
	.hero {
		grid-template-columns: none;
		gap: 4rem;
	}

	.hero-globe {
		height: auto;
	}

	.globe-container {
		margin-inline: auto;
	}

	/* Services — one card per row */
	.services-list,
	.services-wrap-secondary .services-list {
		grid-template-columns: none;
		gap: 2rem;
	}

	.services-card,
	.services-wrap-secondary .services-card {
		padding: 2.5rem;
	}

	.footer-bottom {
		flex-direction: column;
		text-align: center;
	}

	/* About — intro, mission/vision and values stack */
	.about-hero {
		grid-template-columns: none;
		gap: 4rem;
	}

	.about-hero-content,
	.about-hero-process {
		grid-row: auto;
		grid-column: auto;
	}

	.statement {
		grid-template-columns: none;
	}

	.statement-wrap-vision .statement-card {
		grid-column: auto;
	}

	.values-list {
		grid-template-columns: none;
	}

	/* Tablets: move the spacing between card and chip column so chips clear the centre line */
	.journey-list-item {
		justify-content: space-between;
	}

	/* CDSCO Services — hero stacks, smaller licence orbit */
	.cdsco-hero {
		flex-direction: column;
		gap: 4rem;
	}

	.cdsco-hero-content {
		width: 100%;
		padding-right: 0;
	}

	.cdsco-hero-visual {
		width: 100%;
		min-height: 500px;
		transform: none;
	}

	.license-orbit {
		--orbit-size: 340px;
		--orbit-radius: 180px;
		--orbit-ring: 240px;
		--orbit-halo-outer: 210px;
		--orbit-halo-inner: 180px;
		--orbit-core: 150px;
		--orbit-connector: 45px;
		--orbit-connector-offset: 15px;
		--orbit-dot: 0.5rem;

		margin-block: 3rem;
	}

	.license-orbit-core img {
		width: 3rem;
		height: 3rem;
		margin-bottom: 0.25rem;
	}

	.license-orbit-core-title {
		font-size: 1.25rem;
	}

	.license-orbit-core-text {
		margin-top: 0.25rem;
		font-size: 0.5rem;
	}

	.license-badge {
		width: 100px;
		padding: 0.75rem;
	}

	.license-badge-icon {
		width: 2.5rem;
		height: 2.5rem;
		margin-bottom: 0.5rem;
	}

	.license-badge-icon .icon {
		width: 1.25rem;
		height: 1.25rem;
	}

	.license-badge-code {
		font-size: 0.75rem;
	}

	.license-badge-label {
		font-size: 0.5625rem;
	}

	/* Contact — details and form stack */
	.contact {
		grid-template-columns: none;
	}

	.contact-info-list,
	.contact-form-card {
		grid-column: auto;
	}

	/* Blog — featured article stacks, two-column list, article sidebar below the text */
	.blog-featured {
		grid-template-columns: none;
		min-height: 0;
	}

	.blog-featured-img {
		height: 24rem;
	}

	/* Darkens the photo behind the badge in the stacked layout, as on the live site */
	.blog-featured-img::after {
		content: "";
		position: absolute;
		inset: 0;
		background-image: linear-gradient(to top, rgb(15 23 42 / 0.8), rgb(15 23 42 / 0.2), transparent);
	}

	.blog-featured-body {
		padding: 3rem;
	}

	.blog-featured-title {
		font-size: 2.25rem;
	}

	.blog-list {
		columns: 2;
	}

	.blog-post-title {
		font-size: 3rem;
	}

	/* minmax(0, 1fr): the stacked column must not grow to fit the sidebar's button */
	.blog-post-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.blog-post-main,
	.blog-aside {
		grid-column: auto;
	}

	.blog-aside {
		position: static;
	}

	/* Global Services — smaller market orbit */
	.license-orbit-markets {
		--orbit-radius: 140px;
		--orbit-ring: 280px;
		--orbit-core: 150px;
		--orbit-badge: 110px;
	}

	.license-orbit-markets .license-orbit-core img {
		width: 4rem;
		height: 4rem;
	}

	.license-orbit-markets .license-orbit-core-title {
		font-size: 1.125rem;
	}

	.license-orbit-markets .license-orbit-core-text {
		font-size: 0.625rem;
	}

	.license-badge.license-badge-market {
		padding: 0.75rem;
	}

	.license-badge-market img {
		width: 2.5rem;
		height: 2.5rem;
		margin-bottom: 0.25rem;
	}

	.license-badge-market .license-badge-code {
		font-size: 0.625rem;
	}

	.license-badge-market .license-badge-label {
		font-size: 0.5rem;
	}
}

@media (max-width: 767px) {
	/* Landing blocks */
	.event-hero-title {
		font-size: 2.25rem;
	}

	.event-card,
	.past-event-main {
		grid-template-columns: minmax(0, 1fr);
	}

	.event-card-logo {
		min-height: 9rem;
		border-right: 0;
		border-bottom: 1px dashed var(--color-border);
	}

	.event-card-body {
		padding: 1.25rem;
	}

	.event-card-actions {
		grid-column: auto;
		padding: 0 1.25rem 1.25rem;
	}

	.past-event-cover img {
		max-height: 18rem;
	}

	.past-events-year + .past-events-year {
		margin-top: 2.5rem;
	}

	.past-events-year-title {
		margin-bottom: 1rem;
		font-size: 1.5rem;
	}

	.past-event-info,
	.past-event-album {
		padding-inline: 1.25rem;
	}

	.meeting-card {
		padding: 1.5rem;
	}

	.page-banner {
		padding-bottom: 3.5rem;
	}

	.page-banner-title {
		font-size: 2.5rem;
	}

	.page-banner-text {
		font-size: 1.0625rem;
	}

	.section-head {
		margin-bottom: 2.5rem;
	}

	.section-head-title,
	.booking-title {
		font-size: 2rem;
	}

	.stats-head {
		flex-direction: column;
		align-items: flex-start;
	}

	.team-intro {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
	}

	.team-photo img {
		aspect-ratio: 4 / 3;
	}

	.story-fact {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.375rem;
	}

	.gallery-lightbox {
		padding: 4.5rem 1rem;
	}

	.gallery-lightbox-prev,
	.gallery-lightbox-next {
		top: auto;
		bottom: 1.25rem;
		transform: none;
	}

	.logo-grid-card {
		flex-basis: calc((100% - 1.5rem) / 2);
		min-width: 0;
	}

	.booking-card {
		padding: 1.5rem;
	}

	.section-padding {
		padding-block: 5rem;
	}

	.h1 {
		font-size: 2.25rem;
	}

	.h2 {
		font-size: 2.25rem;
		line-height: 1.11;
	}

	.hero-title-break {
		display: none;
	}

	.h2.clients-title {
		font-size: 1.5rem;
		line-height: 1.25;
	}

	.clients-marquee::before,
	.clients-marquee::after {
		width: 4rem;
	}

	.why-partner-wrap {
		padding-block: 4rem;
	}

	.statistics-list-number {
		font-size: 1.875rem;
		line-height: 2.25rem;
	}

	.h2.cta-title {
		font-size: 1.875rem;
	}

	.cta-description {
		font-size: 0.875rem;
	}

	.footer-top {
		grid-template-columns: none;
	}

	.footer-legal {
		gap: 1rem;
	}

	.footer-legal li + li::before {
		margin-right: 1rem;
	}

	.floating-actions {
		right: 1.5rem;
	}

	.back-to-top {
		left: 1rem;
		width: 2.75rem;
		height: 2.75rem;
	}

	.back-to-top .icon {
		width: 1.25rem;
		height: 1.25rem;
	}

	/* About */
	.about-hero-wrap {
		padding-top: 9rem;
	}

	.process-card {
		height: 430px;
	}

	.statement-wrap {
		padding-block: 6rem;
	}

	.statement-bg::after {
		height: 8rem;
	}

	.statement-card {
		padding: 2rem;
	}

	.statement-title {
		font-size: 1.875rem;
	}

	.statement-text {
		font-size: 1.125rem;
	}

	.values-wrap {
		padding-block: 4rem;
	}

	/* Journey — single column, line on the left */
	.journey::before {
		left: 1.5rem;
	}

	.journey-list {
		gap: 3rem;
	}

	.journey-list-item,
	.journey-list-item:nth-child(even) {
		flex-direction: row;
		padding-left: 3.5rem;
	}

	.journey-node,
	.journey-end-node {
		left: 1.5rem;
	}

	.journey-card {
		flex-basis: 100%;
	}

	.journey-aside {
		display: none;
	}

	/* CDSCO Services */
	.cdsco-hero-wrap {
		padding-bottom: 3rem;
	}

	.cdsco-hero-title,
	.contact-hero-title {
		font-size: 2.5rem;
	}

	.cdsco-hero-title-break {
		display: none;
	}

	.cdsco-hero-description,
	.contact-hero-description {
		font-size: 1.125rem;
	}

	.cdsco-highlights {
		padding: 1.5rem;
	}

	.cdsco-highlights-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cdsco-highlights-item {
		padding-inline: 0.5rem;
	}

	.cdsco-highlights-item:last-child {
		grid-column: 1 / -1;
	}

	.cdsco-highlights-icon {
		width: 2.5rem;
		height: 2.5rem;
		margin-bottom: 0.5rem;
	}

	.cdsco-highlights-icon .icon {
		width: 1.25rem;
		height: 1.25rem;
	}

	.cdsco-highlights-title {
		font-size: 0.75rem;
		line-height: 1rem;
	}

	.cdsco-highlights-text {
		margin-top: 0.125rem;
		font-size: 0.625rem;
	}

	.solutions-list {
		grid-template-columns: none;
	}

	/* Contact */
	.contact-info-card {
		padding: 1.5rem;
	}

	.contact-form-card {
		padding: 2rem;
	}

	.contact-form .form-row {
		grid-template-columns: none;
	}

	/* 16px text so iOS does not zoom into the fields */
	.contact-form .form-control {
		font-size: 1rem;
	}

	.contact-map {
		height: 400px;
	}

	/* Blog */
	.blog-hero-wrap {
		border-radius: 0 0 3rem 3rem;
	}

	.blog-hero-title {
		font-size: 3rem;
	}

	.blog-hero-description {
		font-size: 1.125rem;
	}

	.blog-list {
		columns: 1;
	}

	.blog-post-title {
		font-size: 2.25rem;
	}

	.blog-post-image {
		height: 400px;
	}

	.blog-related-list {
		grid-template-columns: none;
	}

	/* Default page */
	.default-page h1 {
		font-size: 2.25rem;
		line-height: 2.5rem;
	}

	.default-page-cards {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Service detail */
	.service-hero-wrap {
		padding-top: 6rem;
	}

	.service-hero {
		width: calc(100% - 2rem);
	}

	.service-title {
		font-size: 1.875rem;
	}

	.service-intro {
		font-size: 1rem;
	}

	.service-benefits-img {
		height: 12rem;
	}

	.service-benefits-body {
		padding: 2rem 1.5rem 1.5rem;
	}

	.service-standards {
		flex-direction: column;
		gap: 2rem;
		width: calc(100% - 3rem);
	}

	.service-standards-list {
		justify-content: center;
		gap: 2rem;
	}

	.service-standard img {
		height: 2rem;
	}

	.service-standard-lg img {
		height: 2.5rem;
	}

	.service-steps-wrap {
		padding: 2rem 0 4rem;
	}

	.service-steps {
		padding-inline: 1rem;
	}

	.service-steps-arrow {
		display: none;
	}

	.service-step {
		width: 17.5rem;
	}

	.service-steps-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.service-info-wrap,
	.service-related-wrap {
		padding: 5rem 1.5rem;
	}

	.service-related-head .service-related-btn {
		display: none;
	}

	.service-related-btn-mobile {
		display: flex;
		width: 100%;
		margin-top: 2rem;
	}

	.service-cta-wrap {
		padding-inline: 1.5rem;
	}

	.service-cta {
		padding: 3rem;
	}

	.service-cta-title {
		font-size: 1.875rem;
		line-height: 2.25rem;
	}

	.service-cta-btn {
		height: auto;
		min-height: 4rem;
		padding-inline: 0;
		font-size: 1.125rem;
		white-space: normal;
	}

	/* Status pages (404, thank-you) */
	.status-page {
		min-height: auto;
		padding: 8rem 0 4rem;
	}

	.status-code {
		font-size: 7rem;
	}

	.status-title {
		font-size: 2.5rem;
	}

	.status-text {
		font-size: 1rem;
	}
}

@media (max-width: 580px) {
	/* Landing blocks */
	.leaders,
	.team-tiers,
	.team-skills-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.team-card {
		padding: 1.25rem;
	}

	.team-skills {
		padding: 1.5rem;
	}

	.team-photo-caption {
		position: static;
		border-radius: 0;
	}

	.gallery-grid {
		column-gap: 0.75rem;
	}

	.gallery-item {
		margin-bottom: 0.75rem;
	}

	.story-text,
	.team-intro {
		text-align: left;
	}

	.header-wrap {
		padding-inline: 0.75rem;
	}

	.header-inner {
		padding-inline: 1rem;
	}

	.header .logo a {
		gap: 0.5rem;
	}

	.header .logo img {
		width: 2.5rem;
		height: 2.25rem;
	}

	.header .logo-title {
		font-size: 1.125rem;
	}

	.header-divider-mobile {
		margin-inline: 0.5rem;
	}

	.menu-btn {
		padding: 0.5rem;
	}

	.hero-certifications-list {
		flex-wrap: nowrap;
		padding-bottom: 1rem;
		overflow-x: auto;
	}

	.clients-wrap .title-description {
		font-size: 0.875rem;
	}

	.services-card,
	.services-wrap-secondary .services-card {
		min-height: 440px;
		padding: 2rem;
	}

	.services-card .h3 {
		font-size: 1.5rem;
		line-height: 1.33;
	}

	.services-card-text {
		font-size: 0.875rem;
	}

	.services-wrap-secondary {
		padding-block: 3rem;
	}

	.why-partner-wrap {
		padding-block: 3rem;
	}

	.statistics-list-number {
		font-size: 1.5rem;
		line-height: 2rem;
	}

	.cta-wrap {
		min-height: 580px;
		padding-block: 4rem;
	}

	.cta-box {
		gap: 1.25rem;
		padding: 2rem 1.25rem;
	}

	.cta-badge,
	.cta-features li {
		font-size: 0.625rem;
	}

	.cta-features li {
		padding: 0.25rem 0.625rem;
	}

	.h2.cta-title {
		font-size: 1.5rem;
	}

	.cta-description {
		font-size: 0.75rem;
	}

	.cta-btns {
		flex-direction: column;
	}

	.btn-lg {
		width: 100%;
		padding-inline: 1.5rem;
		font-size: 0.875rem;
	}

	.footer-legal li + li::before {
		display: none;
	}

	/* About */
	.process-card {
		height: 480px;
		padding: 1.25rem;
	}

	.process-step-title {
		font-size: 0.875rem;
	}

	.process-step-text,
	.process-step-points li {
		font-size: 0.6875rem;
	}

	.process-step-points {
		padding: 0.75rem;
	}

	.values-wrap {
		padding-block: 3rem;
	}

	.values-card-img {
		height: 200px;
	}

	.values-card-title,
	.journey-card-title {
		font-size: 1.25rem;
		line-height: 1.75rem;
	}

	.values-card-text,
	.journey-card-text,
	.journey-end-text {
		font-size: 0.75rem;
	}

	.journey-wrap {
		padding-block: 4rem;
	}

	.journey-wrap .title-wrap {
		margin-bottom: 4rem;
	}

	.journey-node {
		width: 2.75rem;
		height: 2.75rem;
	}

	.journey-card {
		padding: 1.75rem;
	}

	.journey-end {
		margin-top: 4rem;
	}

	.journey-end-card {
		padding: 2rem;
	}

	.journey-end-card .title-badge {
		font-size: 0.625rem;
	}

	.journey-end-title {
		font-size: 1.5rem;
		line-height: 2rem;
	}

	.journey-end-break {
		display: none;
	}

	/* CDSCO Services */
	.cdsco-hero-visual {
		min-height: 400px;
	}

	.license-orbit {
		--orbit-size: 280px;
		--orbit-radius: 130px;
		--orbit-ring: 200px;
		--orbit-halo-outer: 160px;
		--orbit-halo-inner: 130px;
		--orbit-core: 100px;
		--orbit-connector: 35px;
		--orbit-connector-offset: 12px;
		--orbit-dot: 0.375rem;

		margin-block: 1.5rem;
		scale: 0.9;
	}

	.license-orbit-core img {
		width: 2rem;
		height: 2rem;
	}

	.license-orbit-core-title {
		font-size: 1.125rem;
	}

	.license-orbit-core-text {
		display: none;
	}

	.solution-card-img {
		height: 13rem;
	}

	.solution-card-content {
		padding: 1.75rem;
	}

	.solution-card-title {
		font-size: 1.25rem;
		line-height: 1.75rem;
	}

	/* Contact — icon above the card text; links span the card width */
	.contact-info-card {
		flex-direction: column;
		align-items: stretch;
	}

	/* Blog */
	.blog-featured-img {
		height: 18rem;
	}

	.blog-featured-body {
		padding: 2rem;
	}

	.blog-featured-title {
		font-size: 1.875rem;
	}

	.blog-featured-text {
		font-size: 1rem;
	}

	.blog-featured-arrow {
		display: none;
	}

	.blog-card-content {
		padding: 1.75rem;
	}

	.blog-card-title {
		font-size: 1.25rem;
	}

	.blog-newsletter {
		padding: 2rem;
	}

	.blog-post-title {
		font-size: 1.875rem;
	}

	.blog-post-meta {
		flex-direction: column;
		gap: 1rem;
	}

	.blog-post-image {
		height: 250px;
	}

	.blog-related-title {
		font-size: 1.5rem;
		line-height: 2rem;
	}

	.blog-related-card {
		grid-template-columns: none;
	}

	.blog-related-img,
	.blog-related-content {
		grid-column: auto;
	}

	.blog-related-img {
		height: 10rem;
	}

	/* Global Services */
	.license-orbit-markets {
		--orbit-radius: 120px;
		--orbit-ring: 240px;
		--orbit-core: 120px;
	}

	.license-orbit-markets .license-orbit-core img {
		width: 3rem;
		height: 3rem;
	}

	.license-orbit-markets .license-orbit-core-title {
		font-size: 1rem;
	}

	.service-cta {
		padding: 3rem 1.5rem;
	}
}

@media (max-width: 479px) {
	/* Landing blocks */
	.event-countdown-box {
		min-width: 0;
		flex: 1;
	}

	.event-countdown-box strong {
		font-size: 1.5rem;
	}

	.page-banner-actions,
	.event-card-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.page-banner-title {
		font-size: 2.125rem;
	}

	.story-actions,
	.booking-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.gallery-grid {
		columns: 1;
	}

	.logo-grid-card {
		flex-basis: 100%;
	}

	.logo-tagline {
		display: none;
	}

	.hero-btns {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		width: 100%;
	}

	/* Contact — keeps "Conversation" inside the 32px hero padding at 320px */
	.contact-hero-title {
		font-size: 2.25rem;
	}

	.status-code {
		font-size: 5.5rem;
	}

	.status-title {
		font-size: 2rem;
	}

	.status-actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
	}
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.clients-marquee-track {
		width: auto;
	}

	.clients-list {
		flex-shrink: 1;
		flex-wrap: wrap;
		justify-content: center;
		padding: 0 15px;
	}

	/* No staggered entrance delays when motion is reduced */
	.license-orbit-item,
	.solutions-list-item.is-entering,
	.blog-list-item.is-entering,
	.gallery-item.is-entering,
	.event-pass {
		animation: none;
	}
}
