/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 7.2
Version: 1.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
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, blog, portfolio, news
*/

/*
 * IMPORTANT: This file is only served on the frontend when `SCRIPT_DEBUG` is enabled;
 * in most instances, the `style.min.css` file will be served. It is not recommended that you
 * use the Theme File Editor to modify this stylesheet. Instead, add the necessary style
 * overrides via "Additional CSS" in the Site Editor.
 */

/*
 * 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-width: 2px;
	outline-style: solid;
}

/* 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;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
	overflow-x: auto;
}

/* =========================================================
   DSAI-RC FLOATING HEADER
   ========================================================= */

/* =========================================================
   DSAI-RC FLOATING HEADER
   ========================================================= */

.dsairc-header-shell {
	position: fixed !important;

	top: 10px;
	left: 50%;

	transform: translateX(-50%);

	z-index: 100;

	width: calc(100% - 120px);
	max-width: 1500px;

	margin: 0 !important;

	overflow: visible !important;

	transition:
		top 0.3s ease,
		width 0.3s ease;
}


/* =========================================================
   HEADER CONTAINER
   ========================================================= */

.dsairc-sticky-header {
	width: 100%;

	min-height: 76px;

	box-sizing: border-box;

	padding: 10px 15px !important;

	background: #ffffff !important;

	border-radius: var(--dsairc-radius);

	box-shadow:
		0 4px 18px rgba(0, 0, 0, 0.08),
		0 1px 3px rgba(0, 0, 0, 0.04);

	transition:
		border-radius 0.3s ease,
		box-shadow 0.3s ease;
}


/* =========================================================
   SCROLLED STATE
   ========================================================= */

body.is-scrolled .dsairc-header-shell {
	top: 0;
}

body.is-scrolled .dsairc-sticky-header {
	border-radius: 0 0 var(--dsairc-radius) var(--dsairc-radius);

	box-shadow:
		0 4px 18px rgba(0, 0, 0, 0.10),
		0 1px 4px rgba(0, 0, 0, 0.05);
}


/* ---------------------------------------------------------
   LOGO
   --------------------------------------------------------- */

.dsairc-header-logo {
	flex-shrink: 0;
}

.dsairc-header-logo figure {
	margin: 0 !important;
}

.dsairc-header-logo img {
	display: block;

	width: 120px !important;
	height: auto !important;
}


/* ---------------------------------------------------------
   NAVIGATION
   --------------------------------------------------------- */

.dsairc-header-navigation {
	flex: 1 1 auto !important;

	display: flex !important;

	justify-content: center !important;

	margin-left: 32px !important;
	margin-right: 32px !important;
}

.dsairc-header-navigation nav {
	margin: 0;
}

.dsairc-header-navigation .wp-block-navigation-item__content {
	font-size: 15px !important;

	font-weight: 500 !important;

	white-space: nowrap;

	text-decoration: none;

	transition:
		color 0.2s ease,
		opacity 0.2s ease;
}

.dsairc-header-navigation .wp-block-navigation-item__content:hover {
	opacity: 0.7;
}


/* ---------------------------------------------------------
   RIGHT SIDE
   --------------------------------------------------------- */

.dsairc-header-actions {
	flex-shrink: 0 !important;

	display: flex !important;

	align-items: center !important;

	gap: 20px !important;
}


/* ---------------------------------------------------------
   LANGUAGE
   --------------------------------------------------------- */

.dsairc-lang-switcher {
	display: flex;

	align-items: center;

	gap: 4px;

	font-size: 14px;

	font-weight: 600;

	white-space: nowrap;

	cursor: pointer;
}

.dsairc-lang-switcher svg {
	display: block;
}


/* =========================================================
   GTRANSLATE HEADER STYLING
   ========================================================= */

/* Container wrapper in header */
.dsairc-header-actions .gt_switcher_wrapper,
.dsairc-header-actions #gt-res-wrap,
.dsairc-header-actions .gt_switcher {
	position: relative !important;
}

/* The main trigger button — subtle, matches nav link style */
.dsairc-header-actions .gt_switcher a.gt_selected,
.dsairc-header-actions .gt_switcher>a:first-child {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	padding: 4px 6px !important;
	border-radius: var(--dsairc-radius-sm) !important;
	border: none !important;
	background: transparent !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: inherit !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	opacity: 0.85;
	transition: opacity 0.2s ease !important;
	cursor: pointer !important;
}

.dsairc-header-actions .gt_switcher a.gt_selected:hover,
.dsairc-header-actions .gt_switcher>a:first-child:hover {
	opacity: 1;
	background: transparent !important;
}

/* Flag image inside button */
.dsairc-header-actions .gt_switcher a img,
.dsairc-header-actions .gt_switcher img {
	width: 18px !important;
	height: 12px !important;
	border-radius: 2px !important;
	object-fit: cover !important;
	vertical-align: middle !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15) !important;
}

/* Dropdown list */
.dsairc-header-actions .gt_switcher .gt_option,
.dsairc-header-actions .gt_switcher ul,
.dsairc-header-actions .gt_switcher div[class*="option"] {
	position: absolute !important;
	top: calc(100% + 8px) !important;
	right: 0 !important;
	left: auto !important;
	min-width: 150px !important;
	background: #ffffff !important;
	border: 1px solid var(--ev-paper) !important;
	border-radius: var(--dsairc-radius) !important;
	box-shadow: 0 8px 24px rgba(8, 39, 67, 0.10) !important;
	padding: 4px 0 !important;
	z-index: 9999 !important;
	overflow: hidden !important;
}

/* Dropdown items */
.dsairc-header-actions .gt_switcher .gt_option a,
.dsairc-header-actions .gt_switcher ul li a,
.dsairc-header-actions .gt_switcher div[class*="option"] a {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 8px 12px !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--ev-navy) !important;
	text-decoration: none !important;
	transition: background 0.15s ease !important;
}

.dsairc-header-actions .gt_switcher .gt_option a:hover,
.dsairc-header-actions .gt_switcher ul li a:hover,
.dsairc-header-actions .gt_switcher div[class*="option"] a:hover {
	background: var(--ev-paper) !important;
	color: var(--ev-navy) !important;
}

/* Mobile language button styling */
.dsairc-mobile-lang {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: var(--ev-navy);
}

.dsairc-mobile-lang-label {
	font-size: 13px;
	font-weight: 500;
	color: var(--ev-steel);
	white-space: nowrap;
	margin-right: 4px;
}

/* Hide GTranslate widget on mobile/tablet — the flag icon in the drawer replaces it */
@media (max-width: 1100px) {

	.dsairc-header-actions .gt_switcher_wrapper,
	.dsairc-header-actions #gt-res-wrap,
	.dsairc-header-actions .gt_switcher,
	.dsairc-header-actions .notranslate {
		display: none !important;
	}
}


/* ---------------------------------------------------------
   CTA
   --------------------------------------------------------- */

.dsairc-header-cta {
	margin: 0 !important;
}

.dsairc-header-cta .wp-block-button__link {
	display: inline-flex !important;

	align-items: center;

	justify-content: center;

	min-height: 46px;

	padding: 12px 22px !important;

	border-radius: var(--dsairc-radius) !important;

	font-size: 14px !important;

	font-weight: 600 !important;

	line-height: 1;

	white-space: nowrap;

	text-decoration: none;

	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

.dsairc-header-cta .wp-block-button__link:hover {
	transform: translateY(-1px);

	box-shadow:
		0 5px 14px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   PAGE OFFSET
   ========================================================= */

/*
 * Karena header sekarang fixed, berikan ruang
 * di bagian atas halaman.
 */

body {
	padding-top: 105px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1100px) {

	.dsairc-header-shell {
		width: 100%;
		top: 0;
	}

	.dsairc-sticky-header {
		padding-left: 20px !important;
		padding-right: 20px !important;
		border-radius: 0 !important;
		display: flex !important;
		flex-wrap: nowrap !important;
	}

	.dsairc-header-logo {
		order: 1 !important;
		flex: 1 1 auto;
	}

	.dsairc-header-actions {
		order: 2 !important;
		margin-left: auto;
	}

	.dsairc-header-navigation {
		order: 3 !important;
		flex: 0 0 auto !important;
		margin-left: 10px !important;
		margin-right: 0 !important;
	}

	.dsairc-header-navigation {
		margin-left: 20px !important;
		margin-right: 20px !important;
	}

	.dsairc-header-navigation .wp-block-navigation-item__content {
		font-size: 14px !important;
	}

	.dsairc-header-actions {
		gap: 12px !important;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 782px) {

	.dsairc-header-shell {
		width: 100%;
		top: 0;
	}

	.dsairc-sticky-header {
		min-height: 64px;

		padding: 10px 16px !important;

		border-radius: 0 !important;
	}

	.dsairc-header-logo img {
		width: 100px !important;
	}

	.dsairc-header-navigation {
		margin: 0 !important;
	}

	.dsairc-header-actions {
		gap: 8px !important;
	}

	.dsairc-lang-switcher {
		display: none !important;
	}

	.dsairc-header-cta .wp-block-button__link {
		min-height: 40px;

		padding: 10px 16px !important;

		font-size: 13px !important;
	}

	body {
		padding-top: 80px;
	}

	/* Mobile Menu Footer Styles */
	.dsairc-mobile-footer {
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		padding: 24px;
		display: flex;
		justify-content: center;
		align-items: center;
		background: #ffffff;
	}

	.dsairc-mobile-actions {
		display: flex;
		align-items: center;
		gap: 20px;
	}

	.dsairc-mobile-lang,
	.dsairc-mobile-social {
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--ev-navy);
		transition: opacity 0.2s;
	}

	.dsairc-mobile-lang:hover,
	.dsairc-mobile-social:hover {
		opacity: 0.7;
	}

	/* Adjust Gutenberg's default mobile menu content padding so it doesn't overlap footer */
	.wp-block-navigation__responsive-container-content {
		padding-bottom: 80px !important;
	}

	/* Reduce spacing in mobile menu to prevent scrolling */
	.wp-block-navigation__responsive-dialog .wp-block-navigation-item__content {
		padding-top: 10px !important;
		padding-bottom: 10px !important;
	}

	/* Style the hamburger button */
	.wp-block-navigation__responsive-container-open {
		color: var(--ev-navy) !important;
		display: flex;
		align-items: center;
		justify-content: center;
	}
}

/* =========================================================
   DESKTOP ONLY (Hide Mobile Menu Footer)
   ========================================================= */
@media (min-width: 1101px) {
	.dsairc-mobile-footer {
		display: none !important;
	}
}

/* =========================================================
   DSAI-RC HOMEPAGE HERO
   ========================================================= */

.dsairc-home,
.dsairc-inner-page {
	position: relative;

	margin-top: -105px;
}

@media (max-width: 782px) {

	.dsairc-home,
	.dsairc-inner-page {
		margin-top: -80px;
	}
}


/* =========================================================
   SECTION TITLE / TEXT
   Reused by every section (About, Stats, News, Projects…).
   The hero itself, the page-hero band, and the eyebrow/badge
   are defined together in the design-system block below.
   ========================================================= */

.dsairc-section-title {
	max-width: 800px;

	margin: 0;

	color: var(--ev-navy);

	font-size: clamp(2.2rem, 4vw, 4rem);

	font-weight: 700;

	line-height: 1.08;

	letter-spacing: -0.035em;
}


.dsairc-section-text {
	max-width: 760px;

	margin-top: 28px;

	color: var(--ev-navy);

	font-size: 1.1rem;

	line-height: 1.8;
}


/* =========================================================
   PARTNERS
   ========================================================= */

.dsairc-partners {
	margin-top: 100px;
}


.dsairc-partners-title {
	margin: 0 0 40px;

	color: var(--ev-steel);

	font-size: 13px;

	font-weight: 700;

	letter-spacing: 0.14em;

	text-transform: uppercase;

	text-align: center;
}


.dsairc-partners-marquee {
	overflow: hidden;

	position: relative;

	width: 100%;

	mask-image:
		linear-gradient(to right,
			transparent 0%,
			black 10%,
			black 90%,
			transparent 100%);

	-webkit-mask-image:
		linear-gradient(to right,
			transparent 0%,
			black 10%,
			black 90%,
			transparent 100%);
}


.dsairc-partners-track {
	display: flex;

	align-items: center;

	gap: 80px;

	width: max-content;

	animation: dsairc-marquee 25s linear infinite;
}


.dsairc-partner-logo {
	flex-shrink: 0;
}


.dsairc-partner-logo img {
	display: block;

	height: 50px;
	width: auto;

	object-fit: contain;

	filter: grayscale(80%);
	opacity: 0.6;

	transition:
		filter 0.3s ease,
		opacity 0.3s ease;
}


.dsairc-partner-logo img:hover {
	filter: grayscale(0%);
	opacity: 1;
}


@keyframes dsairc-marquee {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(-50%);
	}
}

/* =========================================================
   DSAI-RC RESPONSIVE HEADER
   Desktop  : floating
   Tablet   : full width + hamburger
   Mobile   : full width + hamburger
   ========================================================= */

/* ---------------------------------------------------------
   TABLET + MOBILE
   --------------------------------------------------------- */

@media (max-width: 1024px) {

	/* HEADER FULL WIDTH */
	.dsairc-header-shell {
		position: fixed !important;

		top: 0;
		left: 0;

		width: 100%;
		max-width: none;

		transform: none;

		margin: 0 !important;
	}

	.dsairc-sticky-header {
		width: 100%;

		min-height: 76px;

		padding: 10px 28px !important;

		border-radius: 0;

		box-shadow:
			0 2px 12px rgba(8, 39, 67, 0.10);
	}

	/* LOGO */
	.dsairc-header-logo img {
		width: 110px !important;
	}

	/* HEADER ACTIONS */
	.dsairc-header-actions {
		gap: 14px !important;
	}

	/* LANGUAGE */
	.dsairc-lang-switcher {
		display: none !important;
	}

	/* CTA HEADER */
	.dsairc-header-cta .wp-block-button__link {
		min-height: 42px;

		padding: 10px 18px !important;

		font-size: 13px !important;
	}

	/*
     * FORCE WORDPRESS NAVIGATION
     * TO BECOME HAMBURGER BELOW 1024PX
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container-open {
		display: flex !important;
	}

	.dsairc-header-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 782px) {

	.dsairc-header-shell {
		width: 100%;
		top: 0;
	}

	.dsairc-sticky-header {
		min-height: 64px;

		padding: 10px 18px !important;

		border-radius: 0;
	}

	.dsairc-header-logo img {
		width: 100px !important;
	}

	.dsairc-header-actions {
		gap: 8px !important;
	}

	.dsairc-header-cta .wp-block-button__link {
		min-height: 40px;

		padding: 9px 15px !important;

		font-size: 13px !important;
	}

	body {
		padding-top: 64px;
	}

}

/* =========================================================
   DSAI-RC MOBILE / TABLET NAVIGATION OVERLAY
   ========================================================= */

@media (max-width: 1024px) {

	/*
     * FULL SCREEN OVERLAY
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container.is-menu-open {

		position: fixed !important;

		inset: 0 !important;

		width: 100vw !important;

		height: 100vh !important;
		height: 100dvh !important;

		max-height: none !important;

		margin: 0 !important;

		padding: 0 !important;

		background: #ffffff !important;

		color: var(--ev-navy) !important;

		z-index: 99999 !important;

		overflow-y: auto !important;
	}


	/*
     * CONTENT OVERLAY
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {

		display: flex !important;

		flex-direction: column !important;

		align-items: stretch !important;

		justify-content: flex-start !important;

		width: 100% !important;

		min-height: 100% !important;

		padding: 0 !important;

		margin: 0 !important;
	}


	/*
     * NAVIGATION LIST
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {

		display: flex !important;

		flex-direction: column !important;

		align-items: stretch !important;

		width: 100% !important;

		gap: 0 !important;

		margin: 0 !important;

		padding: 85px 0 110px !important;
	}


	/*
     * EACH MENU ITEM
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {

		width: 100% !important;

		margin: 0 !important;

		border-bottom: 1px solid var(--ev-paper);
	}


	/*
     * MENU TEXT
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {

		display: flex !important;

		align-items: center !important;

		width: 100% !important;

		min-height: 70px;

		box-sizing: border-box;

		padding: 0 28px !important;

		color: var(--ev-navy) !important;

		font-size: 20px !important;

		font-weight: 500 !important;

		text-decoration: none !important;
	}


	/*
     * HOVER
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {

		background: var(--ev-paper);

		opacity: 1;
	}


	/*
     * SUBMENU ARROW
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {

		width: 20px;

		height: 20px;

		margin-left: auto;

		margin-right: 24px;
	}


	/*
     * SUBMENU
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu {

		width: 100% !important;

		margin: 0 !important;

		padding: 0 !important;

		border: 0 !important;
	}


	/*
     * CLOSE BUTTON
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container-close {

		position: absolute !important;

		top: 18px !important;

		right: 20px !important;

		z-index: 100000 !important;

		display: flex !important;

		align-items: center;

		justify-content: center;

		width: 42px !important;

		height: 42px !important;

		padding: 0 !important;

		border: 0 !important;

		border-radius: 50% !important;

		background: transparent !important;

		color: var(--ev-navy) !important;
	}


	.dsairc-header-navigation .wp-block-navigation__responsive-container-close:hover {

		background: var(--ev-paper) !important;
	}


	/*
     * HAMBURGER BUTTON
     */

	.dsairc-header-navigation .wp-block-navigation__responsive-container-open {

		color: var(--ev-navy) !important;

		background: transparent !important;

		border: 0 !important;

		padding: 8px !important;
	}


	.dsairc-header-navigation .wp-block-navigation__responsive-container-open:hover {

		color: var(--ev-blue) !important;
	}
}


/* =========================================================
   DSAI-RC POST CARDS
   ========================================================= */

.dsairc-post-card {
	border: 1px solid var(--ev-paper);
	border-radius: var(--dsairc-radius);
	background: #ffffff;
	box-shadow: 0 2px 12px rgba(8, 39, 67, 0.06);
	overflow: hidden;
	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}

.dsairc-post-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(8, 39, 67, 0.10);
}

/* Featured image inside card — remove extra margins */
.dsairc-post-card .wp-block-post-featured-image {
	margin: 0 !important;
}

.dsairc-post-card .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: var(--dsairc-radius) var(--dsairc-radius) 0 0;
}

/* Card title link */
.dsairc-post-card .wp-block-post-title a {
	color: var(--ev-navy);
	text-decoration: none;
	transition: color 0.2s ease;
}

.dsairc-post-card .wp-block-post-title a:hover {
	color: var(--ev-blue);
}

/* Card excerpt */
.dsairc-post-card .wp-block-post-excerpt {
	color: var(--ev-steel);
	font-size: 0.9rem;
	line-height: 1.6;
}

.dsairc-post-card .wp-block-post-excerpt__more-text {
	display: none;
}

/* Card separator */
.dsairc-card-separator {
	height: 1px;
	background: var(--ev-paper);
	margin: 16px 0;
}

/* Read More link */
.dsairc-post-card .wp-block-read-more {
	display: inline-flex;
	align-items: center;
	color: var(--ev-navy) !important;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.dsairc-post-card .wp-block-read-more:hover {
	color: var(--ev-blue) !important;
}


/* =========================================================
   CATEGORY RIBBON / TAG BADGE
   ========================================================= */

.dsairc-category-ribbon {
	margin: 0 !important;
}

.dsairc-category-ribbon a {
	display: inline-block;
	padding: 4px 12px;
	border-radius: var(--dsairc-radius-pill);
	background: var(--ev-paper);
	color: var(--ev-navy) !important;
	text-decoration: none !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	transition:
		background 0.2s ease,
		color 0.2s ease;
}

.dsairc-category-ribbon a:hover {
	background: var(--ev-navy);
	color: #ffffff !important;
}


/* =========================================================
   FILTER LINKS (Projects page)
   ========================================================= */

.dsairc-filter-link a {
	position: relative;
	text-decoration: none !important;
	padding-bottom: 4px;
	transition: color 0.2s ease;
}

.dsairc-filter-link a:hover {
	color: var(--wp--preset--color--primary) !important;
}

.dsairc-filter-active a {
	color: var(--wp--preset--color--primary) !important;
}

.dsairc-filter-active a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--wp--preset--color--primary);
	border-radius: 1px;
}


/* =========================================================
   STATS / SUMMARIZED DATA FINDINGS
   ========================================================= */

.dsairc-stats-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: 900px;
	margin: 0 auto;
}

.dsairc-stat-item {
	text-align: center;
	padding: 40px 20px;
	border: 1px solid var(--ev-paper);
	border-radius: var(--dsairc-radius);
	background: #ffffff;
	box-shadow: 0 4px 20px rgba(8, 39, 67, 0.06);
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.dsairc-stat-item:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 36px rgba(8, 39, 67, 0.12);
}

.dsairc-stat-number {
	font-size: clamp(2.5rem, 4vw, 3.5rem);
	font-weight: 800;
	color: var(--ev-navy);
	line-height: 1;
	margin-bottom: 8px;
	letter-spacing: -0.03em;
}

.dsairc-stat-label {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--ev-steel);
	letter-spacing: 0.02em;
}


/* =========================================================
   DSAIRC NEWS SHOWCASE (USU-Inspired)
   ========================================================= */

.dsairc-news-showcase {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

/* Content layout */
.dsairc-news-showcase-header {
	position: relative;
	z-index: 1;
	max-width: 1340px;
	margin: 0 auto 40px;
}

.dsairc-news-showcase-content {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: stretch;
	gap: 32px;
	max-width: 1340px;
	margin: 0 auto;
}

/* ---- NEWS CARD (shared) ---- */

.dsairc-news-card {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: var(--dsairc-radius);
	overflow: hidden;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	text-decoration: none !important;
	color: #fff !important;
	transition:
		transform 0.3s ease,
		box-shadow 0.3s ease;
}

.dsairc-news-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(8, 39, 67, 0.2);
}

/* Gradient overlay */
.dsairc-news-card-overlay {
	position: absolute;
	inset: 0;
	border-radius: var(--dsairc-radius);
	background: linear-gradient(0deg,
			rgba(8, 39, 67, 0) 25%,
			rgba(8, 39, 67, 0.5) 50%,
			var(--ev-navy) 100%);
	z-index: 1;
	pointer-events: none;
}

/* Inner content */
.dsairc-news-card-inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	flex: 1;
	padding: 24px;
}

/* Meta (top) */
.dsairc-news-card-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}

/* Tag badge */
.dsairc-news-card-tag {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 6px 10px;
	border-radius: var(--dsairc-radius-pill);
	background: var(--ev-paper);
	color: var(--ev-navy);
	font-size: 10px;
	font-weight: 600;
	line-height: 1;
}

.dsairc-news-card-tag-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ev-blue);
	flex-shrink: 0;
}

/* Body (bottom) */
.dsairc-news-card-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: auto;
}

.dsairc-news-card-title {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	color: #fff;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.dsairc-news-card-date {
	font-size: 14px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.75);
}


/* ---- FEATURED CARD (large, left) ---- */

.dsairc-news-featured {
	flex: 0 0 48%;
	min-height: 420px;
}

.dsairc-news-featured .dsairc-news-card-title {
	font-size: 18px;
	font-weight: 600;
	-webkit-line-clamp: 4;
}


/* ---- SIDEBAR (right) ---- */

.dsairc-news-sidebar {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Small cards row */
.dsairc-news-small-row {
	display: flex;
	gap: 16px;
	overflow: auto;
}

.dsairc-news-small {
	flex: 1;
	min-height: 260px;
}

.dsairc-news-small .dsairc-news-card-title {
	font-size: 14px;
	-webkit-line-clamp: 2;
}

.dsairc-news-small .dsairc-news-card-date {
	font-size: 13px;
}

.dsairc-news-small .dsairc-news-card-tag {
	font-size: 9px;
	padding: 5px 8px;
}


/* ---- INFO (description + CTA) ---- */

.dsairc-news-info {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.dsairc-news-description {
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
	color: var(--ev-navy);
}

.dsairc-news-cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	align-self: flex-start;
	padding: 8px 14px;
	border-radius: 4px;
	background: var(--ev-navy);
	color: #fff !important;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	text-decoration: none !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	transition:
		background 0.2s ease,
		transform 0.2s ease,
		box-shadow 0.2s ease;
}

.dsairc-news-cta:hover {
	background: var(--ev-blue);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(8, 39, 67, 0.2);
}

.dsairc-news-cta svg {
	display: block;
	flex-shrink: 0;
}


/* ---- NEWS SHOWCASE RESPONSIVE ---- */

@media (max-width: 1024px) {
	.dsairc-news-showcase-content {
		flex-direction: column;
	}

	.dsairc-news-featured {
		flex: none;
		min-height: 320px;
	}

	.dsairc-news-small {
		min-height: 220px;
	}
}

@media (max-width: 782px) {
	.dsairc-news-showcase-content {
		gap: 20px;
	}

	.dsairc-news-featured {
		min-height: 280px;
	}

	.dsairc-news-small-row {
		flex-direction: column;
	}

	.dsairc-news-small {
		min-height: 200px;
	}

	.dsairc-news-description {
		font-size: 14px;
	}
}

@media (max-width: 480px) {
	.dsairc-news-featured {
		min-height: 240px;
	}

	.dsairc-news-small {
		min-height: 180px;
	}

	.dsairc-news-card-inner {
		padding: 16px;
	}
}


/* =========================================================
   NEWS SECTION FULL-WIDTH OVERRIDE
   ========================================================= */

/* Strip all WordPress default padding/margin from the alignfull wrapper */
.dsairc-section-latest-news.alignfull,
.dsairc-section-latest-news.wp-block-group.alignfull {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

/* Ensure the showcase itself is truly edge-to-edge */
.dsairc-section-latest-news .dsairc-news-showcase {
	width: 100%;
	margin-left: 0;
	margin-right: 0;
}



.dsairc-section-latest .dsairc-section-eyebrow {
	margin-bottom: 6px;
}


/* =========================================================
   RESPONSIVE: POST CARDS & STATS
   ========================================================= */

@media (max-width: 1024px) {
	.dsairc-stats-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
}

@media (max-width: 782px) {
	.dsairc-stats-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.dsairc-stat-item {
		padding: 28px 16px;
	}

	.dsairc-stat-number {
		font-size: 2rem;
	}

	.dsairc-section-latest {
		margin-top: 60px !important;
	}

	.dsairc-stats-section {
		margin-top: 60px !important;
	}
}

@media (max-width: 480px) {
	.dsairc-stats-grid {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}

	.dsairc-stat-item {
		padding: 24px 12px;
	}

	.dsairc-stat-number {
		font-size: 1.8rem;
	}

	.dsairc-stat-label {
		font-size: 0.8rem;
	}
}


/* =========================================================
   ABOUT US SECTION
   ========================================================= */

.dsairc-section-about {
	background: #ffffff !important;
}

.dsairc-about-container {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
}

.dsairc-about-left {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.dsairc-about-badge {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	margin-bottom: 24px;
	padding: 12px 20px;
	background: var(--ev-paper);
	border-radius: var(--dsairc-radius-sm);
	color: var(--ev-navy);
}

.dsairc-about-badge-number {
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 1;
}

.dsairc-about-badge-text {
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.2;
}

.dsairc-about-areas {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 40px;
	margin-bottom: 30px;
}

/* =========================================================
   PROJECTS SHOWCASE (DARK THEME)
   ========================================================= */

.dsairc-projects-showcase {
	max-width: 1200px;
	margin: 0 auto;
}

.dsairc-projects-showcase-header {
	margin-bottom: 44px;
}

.dsairc-projects-showcase-content {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 32px;
}

.dsairc-projects-featured {
	position: relative;
	border-radius: var(--dsairc-radius);
	overflow: hidden;
	height: 520px;
	background: var(--dsairc-navy-soft);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}

.dsairc-projects-featured-image {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-size: cover;
	background-position: center;
	transition: transform 0.6s ease;
}

.dsairc-projects-featured-image::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to top, rgba(8, 39, 67, 1) 0%, rgba(8, 39, 67, 0.35) 50%, rgba(8, 39, 67, 0) 100%);
}

.dsairc-projects-featured:hover .dsairc-projects-featured-image {
	transform: scale(1.03);
}

.dsairc-projects-featured-icon {
	position: absolute;
	top: 30px;
	left: 30px;
	width: 50px;
	height: 50px;
	background: rgba(255, 255, 255, 0.2);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	backdrop-filter: blur(4px);
	z-index: 2;
}

.dsairc-projects-featured-content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 40px;
	z-index: 2;
}

.dsairc-projects-category {
	display: inline-block;
	color: var(--dsairc-accent-soft);
	font-weight: 700;
	font-size: 0.85rem;
	text-transform: uppercase;
	margin-bottom: 12px;
	letter-spacing: 0.05em;
}

.dsairc-projects-featured-title {
	margin: 0 0 16px;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.15;
}

.dsairc-projects-featured-title a {
	color: #ffffff;
	text-decoration: none;
}

.dsairc-projects-featured-excerpt {
	color: rgba(255, 255, 255, 0.72);
	font-size: 1.1rem;
	margin: 0;
	line-height: 1.6;
}

.dsairc-projects-sidebar {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.dsairc-projects-small {
	display: flex;
	flex-direction: column;
	gap: 16px;
	flex: 1;
}

.dsairc-projects-small-image {
	display: block;
	height: 180px;
	border-radius: var(--dsairc-radius);
	background-size: cover;
	background-position: center;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.3);
	transition: transform 0.3s var(--dsairc-ease);
}

.dsairc-projects-small-image:hover {
	transform: translateY(-4px);
}

.dsairc-projects-small-content .dsairc-projects-category {
	margin-bottom: 8px;
}

.dsairc-projects-small-title {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.02em;
}

.dsairc-projects-small-title a {
	color: #ffffff;
	text-decoration: none;
	transition: color 0.2s;
}

.dsairc-projects-small-title a:hover {
	color: var(--ev-steel);
}

/* =========================================================
   RESPONSIVE DESIGN FOR NEW SECTIONS
   ========================================================= */

@media (max-width: 900px) {
	.dsairc-about-container {
		grid-template-columns: 1fr;
		gap: 60px;
	}

	.dsairc-projects-showcase-content {
		grid-template-columns: 1fr;
	}

	.dsairc-projects-featured {
		height: 400px;
	}

	.dsairc-projects-sidebar {
		gap: 24px;
	}

	.dsairc-projects-small {
		flex-direction: row;
		align-items: center;
	}

	.dsairc-projects-small-image {
		width: 140px;
		height: 100px;
		flex-shrink: 0;
	}
}

@media (max-width: 600px) {
	.dsairc-about-areas {
		grid-template-columns: 1fr;
	}

	.dsairc-projects-featured {
		height: 350px;
	}

	.dsairc-projects-featured-content {
		padding: 24px;
	}

	.dsairc-projects-featured-title {
		font-size: 1.6rem;
	}
}


/* =========================================================
   DSAI-RC — FRONT PAGE DESIGN SYSTEM
   Tokens, shared primitives and section refinements.
   Loaded after the base rules above so it wins on conflicts.
   ========================================================= */

:root {
	/* Brand — the palette is deliberately these four blues only;
	   --dsairc-navy/-soft are darkened tints of --dsairc-primary
	   (not a separate hue) used for the one dark section on the site. */
	--dsairc-primary: var(--ev-navy);
	--dsairc-primary-deep: var(--ev-navy);
	--dsairc-accent: var(--ev-blue);
	--dsairc-accent-soft: var(--ev-steel);

	/* Surfaces */
	--dsairc-surface: var(--ev-paper);
	--dsairc-surface-tint: var(--ev-paper);
	--dsairc-navy: var(--ev-navy);
	--dsairc-navy-soft: var(--ev-blue);

	/* Text */
	--dsairc-body: var(--ev-navy);
	--dsairc-muted: var(--ev-steel);
	--dsairc-line: var(--ev-line-soft);

	/* Shape — small and consistent by default. Pills are reserved for
	   labels/chips (--dsairc-radius-pill), not cards, images or buttons. */
	--dsairc-radius-sm: 3px;
	--dsairc-radius: 4px;
	--dsairc-radius-lg: 4px;
	--dsairc-radius-pill: 999px;
	--dsairc-container: 1200px;

	/* Depth */
	--dsairc-shadow-sm: 0 4px 20px rgba(8, 39, 67, 0.06);
	--dsairc-shadow: 0 18px 44px rgba(8, 39, 67, 0.12);

	/* Motion */
	--dsairc-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}


/* ---------------------------------------------------------
   SECTION RHYTHM
   Spacing now lives here instead of inline styles in the
   template, so every band stays consistent.
   --------------------------------------------------------- */

.dsairc-section-projects,
.dsairc-stats-section {
	padding: clamp(64px, 8vw, 110px) clamp(20px, 5vw, 40px) !important;
}

.dsairc-partners {
	margin-top: 0 !important;
	padding: clamp(56px, 7vw, 90px) clamp(20px, 5vw, 40px) !important;
	background: var(--dsairc-surface-tint);
}

.dsairc-instagram {
	margin-top: 0 !important;
	padding: clamp(56px, 7vw, 90px) clamp(20px, 5vw, 40px) clamp(70px, 9vw, 120px) !important;
}

.dsairc-section-latest-news {
	margin-top: 0 !important;
}

.dsairc-stats-section {
	background: #ffffff;
}


/* ---------------------------------------------------------
   SHARED PRIMITIVES
   --------------------------------------------------------- */

/* Eyebrow — a small branded pill, reused as the section label everywhere.
   `.is-on-photo` is the variant used over hero imagery. */
.dsairc-section-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	padding: 6px 16px;
	border-radius: var(--dsairc-radius-pill);
	background: var(--dsairc-surface);
	color: var(--dsairc-primary);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}

.dsairc-section-eyebrow::before,
.dsairc-section-eyebrow::after {
	content: "";
	width: 3px;
	height: 13px;
	border-radius: 2px;
	background: var(--dsairc-accent);
	flex-shrink: 0;
}

.dsairc-section-eyebrow-center {
	justify-content: center;
}

.dsairc-section-eyebrow.is-on-photo {
	background: rgba(255, 255, 255, 0.14);
	color: var(--dsairc-accent-soft);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.dsairc-section-eyebrow.is-on-photo::before,
.dsairc-section-eyebrow.is-on-photo::after {
	background: var(--dsairc-accent-soft);
}

/* Titles */
.dsairc-section-title-sm {
	font-size: clamp(1.75rem, 2.6vw, 2.6rem);
	line-height: 1.15;
}

.dsairc-section-title-center {
	text-align: center;
	margin-inline: auto;
}

/* Section header: eyebrow + title on the left, "view all" on the right */
.dsairc-section-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}

.dsairc-section-header-text {
	min-width: 0;
}

.dsairc-section-header .dsairc-section-title {
	margin: 0;
}

.dsairc-section-header.is-dark .dsairc-section-eyebrow {
	background: rgba(255, 255, 255, 0.10);
	color: var(--dsairc-accent-soft);
}

.dsairc-section-header.is-dark .dsairc-section-eyebrow::before,
.dsairc-section-header.is-dark .dsairc-section-eyebrow::after {
	background: var(--dsairc-accent-soft);
}

.dsairc-section-header.is-dark .dsairc-section-title {
	color: #ffffff;
}

.dsairc-section-header.is-dark .dsairc-link-arrow {
	color: var(--dsairc-accent-soft);
}

.dsairc-section-header.is-dark .dsairc-link-arrow:hover {
	color: #ffffff;
}

/* Buttons */
.dsairc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 14px 26px;
	border: 1.5px solid transparent;
	border-radius: var(--dsairc-radius);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition:
		background 0.25s var(--dsairc-ease),
		border-color 0.25s var(--dsairc-ease),
		color 0.25s var(--dsairc-ease),
		transform 0.25s var(--dsairc-ease),
		box-shadow 0.25s var(--dsairc-ease);
}

.dsairc-btn svg {
	flex-shrink: 0;
	transition: transform 0.25s var(--dsairc-ease);
}

.dsairc-btn:hover svg {
	transform: translateX(3px);
}

.dsairc-btn-primary {
	background: var(--dsairc-accent);
	color: #ffffff;
	box-shadow: 0 10px 26px rgba(0, 90, 163, 0.35);
}

.dsairc-btn-primary:hover {
	background: var(--dsairc-primary);
	transform: translateY(-2px);
	box-shadow: 0 16px 34px rgba(0, 90, 163, 0.42);
}

.dsairc-btn-ghost {
	border-color: rgba(255, 255, 255, 0.45);
	background: rgba(255, 255, 255, 0.08);
	color: #ffffff;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.dsairc-btn-ghost:hover {
	border-color: #ffffff;
	background: rgba(255, 255, 255, 0.18);
	transform: translateY(-2px);
}

.dsairc-btn-solid {
	background: var(--dsairc-primary);
	color: #ffffff !important;
	box-shadow: 0 10px 24px rgba(8, 39, 67, 0.22);
}

.dsairc-btn-solid:hover {
	background: var(--dsairc-accent);
	transform: translateY(-2px);
	box-shadow: 0 16px 32px rgba(8, 39, 67, 0.28);
}

/* Inline arrow link */
.dsairc-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--dsairc-accent);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none !important;
	white-space: nowrap;
	transition: color 0.2s var(--dsairc-ease);
}

.dsairc-link-arrow svg {
	transition: transform 0.25s var(--dsairc-ease);
}

.dsairc-link-arrow:hover {
	color: var(--dsairc-primary);
}

.dsairc-link-arrow:hover svg {
	transform: translateX(3px);
}

/* Empty state */
.dsairc-empty {
	margin: 0;
	padding: 40px 24px;
	border: 1px dashed var(--dsairc-surface);
	border-radius: var(--dsairc-radius);
	color: var(--dsairc-muted);
	text-align: center;
}

.dsairc-empty.is-dark {
	border-color: rgba(255, 255, 255, 0.16);
	color: rgba(255, 255, 255, 0.7);
}


/* =========================================================
   HERO
   ========================================================= */
/* =========================================================
   DSAIRC HERO
   Image as background + content above image
   ========================================================= */
/* =========================================================
   DSAIRC HERO
   Full background image + content overlay
   ========================================================= */


/* =========================================================
   HERO CONTAINER
   ========================================================= */

.dsairc-hero {
	position: relative;

	display: block;

	width: 100%;
	min-height: 720px;

	margin: 0;
	margin-top: -105px;

	padding: 0 !important;
	padding-top: 105px !important;

	overflow: hidden;

	isolation: isolate;

	/* fallback jika image gagal dimuat */
	background: var(--ev-navy);
}


/* =========================================================
   HERO INNER
   ========================================================= */

.dsairc-hero-inner {
	position: relative;

	width: 100%;
	min-height: 720px;

	margin: 0;
	padding:
		clamp(120px, 15vh, 180px) clamp(24px, 6vw, 80px) clamp(70px, 10vh, 110px);

	box-sizing: border-box;

	display: flex;
	align-items: center;
}


/* =========================================================
   HERO IMAGE
   ========================================================= */

.dsairc-hero-photo {
	position: absolute;

	top: -115px;
	right: 0;
	bottom: 0;
	left: 0;

	z-index: 1;

	width: 100%;
	height: 120%;

	max-width: none;

	margin: 0 !important;
	padding: 0 !important;

	overflow: hidden;

	opacity: 1 !important;
}


.dsairc-hero-photo img {
	position: absolute;

	top: 0;
	left: 0;

	display: block;

	width: 100% !important;
	height: 100% !important;

	max-width: none !important;

	margin: 0 !important;
	padding: 0 !important;

	object-fit: cover;
	object-position: center center;

	border: 0 !important;
	border-radius: 0 !important;

	box-shadow: none !important;

	opacity: 1 !important;

	filter: none !important;

	transform: none;
}


/* =========================================================
   IMAGE OVERLAY
   ---------------------------------------------------------
   Sengaja dibuat ringan supaya gambar tidak berkabut.
   Kiri lebih gelap untuk readability teks.
   Kanan hampir transparan.
   ========================================================= */

.dsairc-hero-overlay {
	position: absolute;

	top: -115px;
	right: 0;
	bottom: 0;
	left: 0;

	z-index: 2;

	width: 100%;
	height: 120%;



	pointer-events: none;
}


/* =========================================================
   CONTENT
   ========================================================= */

.dsairc-hero-content {
	position: relative;

	z-index: 3;

	display: block;

	width: 100%;
	max-width: 700px;

	flex: 0 0 auto;

	margin: -220px 0 0 !important;
	padding: 0 !important;

	color: #ffffff !important;

	opacity: 1 !important;

	visibility: visible !important;
}


/* Pastikan semua elemen content tetap di atas image */

.dsairc-hero-content>* {
	position: relative;
	z-index: 4;

	opacity: 1 !important;
	visibility: visible !important;
}


/* =========================================================
   BADGE
   ========================================================= */

.dsairc-hero-badge {
	display: inline-flex;

	align-items: center;

	gap: 10px;

	margin: 0 0 26px !important;

	padding: 8px 16px 8px 12px !important;

	border: 1px solid rgba(255, 255, 255, 0.30);

	border-radius: var(--dsairc-radius-pill, 999px);

	background: rgba(0, 0, 0, 0.16);

	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);

	color: rgba(255, 255, 255, 0.96) !important;

	font-size: 0.78rem;

	font-weight: 600;

	line-height: 1.4;

	letter-spacing: 0.08em;

	text-transform: uppercase;
}


/* Badge dot */

.dsairc-hero-badge-dot {
	display: inline-block;

	width: 8px;
	height: 8px;

	flex: 0 0 8px;

	border-radius: 50%;

	background: var(--dsairc-accent-soft, var(--ev-steel));

	box-shadow:
		0 0 0 0 rgba(61, 117, 151, 0.65);

	animation:
		dsairc-pulse 2.4s ease-out infinite;
}


@keyframes dsairc-pulse {

	0% {
		box-shadow:
			0 0 0 0 rgba(61, 117, 151, 0.65);
	}

	70% {
		box-shadow:
			0 0 0 10px rgba(61, 117, 151, 0);
	}

	100% {
		box-shadow:
			0 0 0 0 rgba(61, 117, 151, 0);
	}
}


/* =========================================================
   TITLE
   ========================================================= */

.dsairc-hero-title {
	margin: 0 !important;
	padding: 0 !important;

	color: #ffffff !important;

	font-size:
		clamp(2.6rem,
			5.4vw,
			5.2rem);

	font-weight: 700;

	line-height: 1.02;

	letter-spacing: -0.038em;

	text-shadow:
		0 2px 20px rgba(0, 0, 0, 0.22);
}


/* Accent */



/* =========================================================
   UNIVERSITY
   ========================================================= */

.dsairc-hero-university {
	display: flex;

	align-items: center;

	gap: 14px;

	margin: 26px 0 0 !important;
	padding: 0 !important;

	color: rgba(255, 255, 255, 0.96) !important;

	font-size:
		clamp(1rem,
			1.5vw,
			1.3rem);

	font-weight: 600;

	line-height: 1.4;

	letter-spacing: 0.02em;
}


/* University line */

.dsairc-hero-university-rule {
	display: inline-block;

	width: 46px;
	height: 2px;

	flex: 0 0 46px;

	border-radius: 2px;

	background:
		var(--dsairc-accent-soft, var(--ev-steel));
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.dsairc-hero-description {
	display: block;

	max-width: 620px;

	margin: 20px 0 0;
	padding: 0;

	color: rgba(255, 255, 255, 0.88);

	font-size:
		clamp(0.95rem,
			1.15vw,
			1.08rem);

	font-weight: 400;

	line-height: 1.75;

	text-shadow:
		0 1px 8px rgba(0, 0, 0, 0.15);
}


/* =========================================================
   ACTIONS
   ========================================================= */

.dsairc-hero-actions {
	position: relative;

	z-index: 5;

	display: flex;

	align-items: center;

	flex-wrap: wrap;

	gap: 14px;

	margin-top: 38px !important;
	padding: 0 !important;
}


/* =========================================================
   BUTTON BASE
   ========================================================= */

.dsairc-hero-actions .dsairc-btn {
	position: relative;

	z-index: 6;

	display: inline-flex;

	align-items: center;

	justify-content: center;

	gap: 9px;

	min-height: 50px;

	padding:
		0 22px;

	border-radius:
		var(--dsairc-radius-md, 8px);

	text-decoration: none;

	font-size: 0.9rem;

	font-weight: 600;

	line-height: 1;

	transition:
		transform 0.2s ease,
		background-color 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease;

	cursor: pointer;
}


/* =========================================================
   PRIMARY BUTTON
   ========================================================= */

.dsairc-btn-primary {
	background:
		var(--dsairc-accent, var(--ev-blue));

	color: #ffffff;

	border: 1px solid var(--dsairc-accent, var(--ev-blue));
}


.dsairc-btn-primary:hover {
	background:
		var(--dsairc-accent-soft, var(--ev-steel));

	border-color:
		var(--dsairc-accent-soft, var(--ev-steel));

	color: var(--ev-navy);

	transform: translateY(-2px);

	box-shadow:
		0 8px 24px rgba(0, 0, 0, 0.18);
}


/* =========================================================
   GHOST BUTTON
   ========================================================= */

.dsairc-btn-ghost {
	background:
		rgba(255, 255, 255, 0.08);

	border:
		1px solid rgba(255, 255, 255, 0.55);

	color:
		#ffffff;

	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}


.dsairc-btn-ghost:hover {
	background:
		rgba(255, 255, 255, 0.16);

	border-color:
		#ffffff;

	color:
		#ffffff;

	transform: translateY(-2px);
}


/* =========================================================
   ARROW ICON
   ========================================================= */

.dsairc-icon-arrow-right {
	flex: 0 0 auto;

	transition:
		transform 0.2s ease;
}


.dsairc-btn-primary:hover .dsairc-icon-arrow-right {
	transform: translateX(3px);
}


/* =========================================================
   IMPORTANT:
   PREVENT WORDPRESS/THEME FROM FADING HERO
   ========================================================= */

.dsairc-hero,
.dsairc-hero-inner,
.dsairc-hero-photo,
.dsairc-hero-photo img,
.dsairc-hero-overlay,
.dsairc-hero-content {
	opacity: 1;
}


/* Jangan biarkan filter theme memengaruhi image */

.dsairc-hero-photo,
.dsairc-hero-photo img {
	filter: none !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {

	.dsairc-hero {
		min-height: 680px;
	}

	.dsairc-hero-inner {
		min-height: 680px;

		padding:
			120px 40px 80px;
	}

	.dsairc-hero-content {
		max-width: 650px;
	}

	.dsairc-hero-title {
		font-size:
			clamp(2.8rem,
				6vw,
				4.5rem);
	}

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 768px) {

	.dsairc-hero {
		min-height: 760px;
	}

	.dsairc-hero-inner {
		display: flex;

		align-items: flex-start;

		min-height: 760px;

		padding:
			110px 24px 70px;
	}

	/* Overlay mobile sedikit lebih gelap
	   karena teks memenuhi area lebih besar */

	.dsairc-hero-overlay {
		background:
			linear-gradient(180deg,
				rgba(5, 25, 55, 0.64) 0%,
				rgba(5, 25, 55, 0.48) 55%,
				rgba(5, 25, 55, 0.30) 100%);
	}

	.dsairc-hero-content {
		width: 100%;
		max-width: 100%;
	}

	.dsairc-hero-badge {
		margin-bottom: 22px !important;

		font-size: 0.70rem;
	}

	.dsairc-hero-title {
		font-size:
			clamp(2.5rem,
				10vw,
				4rem);

		line-height: 1.04;
	}

	.dsairc-hero-university {
		margin-top: 22px !important;

		font-size: 1rem;
	}

	.dsairc-hero-university-rule {
		width: 34px;
		flex-basis: 34px;
	}

	.dsairc-hero-description {
		margin-top: 18px !important;

		font-size: 0.96rem;

		line-height: 1.65;
	}

	.dsairc-hero-actions {
		flex-direction: column;

		align-items: stretch;

		width: 100%;

		margin-top: 30px !important;
	}

	.dsairc-hero-actions .dsairc-btn {
		width: 100%;

		box-sizing: border-box;
	}

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

	.dsairc-hero {
		min-height: 740px;
	}

	.dsairc-hero-inner {
		min-height: 740px;

		padding:
			100px 20px 60px;
	}

	.dsairc-hero-title {
		font-size:
			clamp(2.25rem,
				11vw,
				3.2rem);
	}

	.dsairc-hero-badge {
		padding:
			7px 12px 7px 10px;
	}

	.dsairc-hero-description {
		font-size: 0.92rem;
	}

}

/* =========================================================
   BUTTON SAFETY
   ========================================================= */

.dsairc-hero-actions a {
	position: relative;
	z-index: 5;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 768px) {

	.dsairc-hero {
		min-height: 720px;
	}

	.dsairc-hero-inner {
		min-height: 720px;

		padding:
			110px 24px 70px;
	}

	.dsairc-hero-content {
		max-width: 100%;
	}

	.dsairc-hero-title {
		font-size:
			clamp(2.5rem,
				10vw,
				4rem);
	}

	.dsairc-hero-description {
		font-size: 0.98rem;
	}

	.dsairc-hero-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.dsairc-hero-actions .dsairc-btn {
		width: 100%;
	}
}

/* =========================================================
   PAGE HERO
   The shorter, same-family hero band used on every inner page
   (News, Projects, Research, About, People, Contact, FAQs, and
   the project_area / generic archives) — same photo treatment
   and typography as the homepage hero, just not full height,
   and center-cropped rather than stretched.
   ========================================================= */

.dsairc-page-hero {
	position: relative;
	isolation: isolate;
	
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	min-height: clamp(260px, 34vw, 380px);
	background:
		linear-gradient(180deg,
			rgba(8, 39, 67, 0.30) 0%,
			rgba(8, 39, 67, 0.62) 60%,
			rgba(8, 39, 67, 0.90) 100%),
		url("assets/images/Hero.png");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.dsairc-page-hero-inner {
	width: 100%;
	max-width: var(--dsairc-container);
	margin: 0 auto;
	padding: clamp(130px, 20vh, 160px) clamp(20px, 5vw, 40px) clamp(36px, 6vh, 56px);
	color: #ffffff;
}

.dsairc-page-hero-title {
	margin: 0;
	color: #ffffff;
	font-size: clamp(2rem, 3.6vw, 3.1rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.03em;
	text-shadow: 0 2px 24px rgba(8, 39, 67, 0.35);
}

.dsairc-page-hero-subtitle {
	max-width: 620px;
	margin: 14px 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1rem;
	line-height: 1.7;
}

.dsairc-page-hero .dsairc-section-eyebrow {
	margin-bottom: 14px;
}

@media (max-width: 782px) {
	.dsairc-page-hero {
		min-height: clamp(220px, 46vw, 300px);
	}

	.dsairc-page-hero-inner {
		padding-top: clamp(90px, 18vh, 120px);
	}
}


/* =========================================================
   ABOUT
   ========================================================= */

.dsairc-section-about {
	padding: clamp(70px, 9vw, 120px) clamp(20px, 5vw, 40px) clamp(80px, 10vw, 130px) !important;
}

/* Offset the sticky header when the hero's scroll cue jumps to #about. */
#about {
	scroll-margin-top: 110px;
}

.dsairc-about-container {
	max-width: var(--dsairc-container);
	gap: clamp(48px, 6vw, 80px);
	align-items: start;
}

.dsairc-about-badge {
	gap: 14px;
	margin: 28px 0;
	padding: 14px 22px;
	border: 1px solid rgba(8, 39, 67, 0.10);
	border-radius: var(--dsairc-radius-sm);
	background: linear-gradient(135deg, var(--dsairc-surface) 0%, #ffffff 100%);
}

.dsairc-about-badge-number {
	color: var(--dsairc-primary);
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.03em;
}

.dsairc-about-badge-text {
	color: var(--dsairc-primary);
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.25;
}

.dsairc-about-left .dsairc-section-text+.dsairc-section-text {
	margin-top: 18px;
}

.dsairc-about-actions {
	margin: 32px 0 0;
}

/* Research area cards */
.dsairc-about-areas {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 36px 0 0;
	padding: 0;
}

.dsairc-area-card {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 26px 24px;
	border: 1px solid var(--dsairc-line);
	border-radius: var(--dsairc-radius);
	background: #ffffff;
	transition:
		transform 0.3s var(--dsairc-ease),
		box-shadow 0.3s var(--dsairc-ease),
		border-color 0.3s var(--dsairc-ease);
}

.dsairc-area-card:hover {
	transform: translateY(-4px);
	border-color: rgba(0, 90, 163, 0.35);
	box-shadow: var(--dsairc-shadow);
}

.dsairc-area-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin: 0;
	border-radius: var(--dsairc-radius);
	background: var(--dsairc-surface);
	color: var(--dsairc-primary);
	font-size: inherit;
	flex-shrink: 0;
	transition: background 0.3s var(--dsairc-ease), color 0.3s var(--dsairc-ease);
}

.dsairc-area-card:hover .dsairc-area-icon {
	background: var(--dsairc-accent);
	color: #ffffff;
}

.dsairc-area-title {
	margin: 0;
	color: var(--dsairc-primary);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: -0.01em;
}

/* About visual: image + Vision/Mission card stack */
.dsairc-about-visual {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.dsairc-vm-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.dsairc-vm-card {
	padding: 22px 24px;
	border-radius: var(--dsairc-radius);
}

.dsairc-vision-card {
	background: var(--dsairc-navy);
	color: #ffffff;
}

.dsairc-mission-card {
	background: var(--dsairc-surface);
	color: var(--dsairc-primary);
}

.dsairc-vm-title {
	margin: 0 0 10px;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.dsairc-vm-text {
	margin: 0;
	font-size: 0.85rem;
	line-height: 1.6;
	opacity: 0.85;
}

@media (max-width: 700px) {
	.dsairc-vm-cards {
		grid-template-columns: 1fr;
	}
}


/* =========================================================
   WHY CHOOSE US
   ========================================================= */

.dsairc-why-container {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 80px);
	align-items: center;
	max-width: var(--dsairc-container);
	margin: 0 auto;
}

.dsairc-why-media {
	position: relative;
	margin: 0;
	border-radius: var(--dsairc-radius-lg);
	overflow: hidden;
	box-shadow: var(--dsairc-shadow);
}

.dsairc-why-media img {
	display: block;
	width: 100%;
	height: clamp(320px, 40vw, 480px);
	object-fit: cover;
}

.dsairc-why-badge {
	position: absolute;
	left: 20px;
	bottom: 20px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 18px;
	border-radius: var(--dsairc-radius);
	background: var(--dsairc-navy);
	color: #ffffff;
	font-size: 0.85rem;
	font-weight: 700;
	box-shadow: var(--dsairc-shadow);
}

.dsairc-why-badge-icon {
	display: inline-flex;
	color: var(--dsairc-accent-soft);
}

.dsairc-why-list {
	list-style: none;
	margin: 32px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.dsairc-why-item {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 18px 20px;
	border: 1px solid var(--dsairc-line);
	border-left: 3px solid var(--dsairc-accent);
	border-radius: var(--dsairc-radius-sm);
	background: var(--dsairc-surface);
}

.dsairc-why-index {
	color: var(--dsairc-accent);
	font-size: 1.4rem;
	font-weight: 800;
	line-height: 1;
	flex-shrink: 0;
}

.dsairc-why-item-title {
	margin: 0 0 6px;
	color: var(--dsairc-primary);
	font-size: 1rem;
	font-weight: 700;
}

.dsairc-why-item-text {
	margin: 0;
	color: var(--dsairc-muted);
	font-size: 0.88rem;
	line-height: 1.6;
}

@media (max-width: 782px) {
	.dsairc-why-container {
		grid-template-columns: 1fr;
	}
}


/* =========================================================
   PROJECTS (dark band)
   ========================================================= */

.dsairc-projects-showcase {
	max-width: var(--dsairc-container);
}

.dsairc-projects-category {
	padding: 4px 10px;
	border-radius: var(--dsairc-radius-pill);
	background: rgba(255, 255, 255, 0.12);
	color: var(--dsairc-accent-soft);
	font-size: 0.72rem;
	letter-spacing: 0.09em;
}

.dsairc-projects-featured-title {
	font-size: clamp(1.6rem, 2.6vw, 2.3rem);
	letter-spacing: -0.025em;
}

.dsairc-projects-featured-title a,
.dsairc-projects-small-title a {
	transition: color 0.2s var(--dsairc-ease);
}

.dsairc-projects-featured-title a:hover {
	color: var(--dsairc-accent-soft);
}

.dsairc-projects-small-title {
	font-size: 1.2rem;
}


/* =========================================================
   NEWS
   ========================================================= */

.dsairc-news-showcase-header .dsairc-section-title {
	color: var(--dsairc-primary);
}


/* =========================================================
   STATS
   ========================================================= */

.dsairc-stats {
	max-width: var(--dsairc-container);
	margin: 0 auto;
}

.dsairc-stats-head {
	max-width: 640px;
	margin: 0 auto 48px;
	text-align: center;
}

.dsairc-stats-head .dsairc-section-title {
	margin: 0 auto;
}

.dsairc-stats-intro {
	margin: 18px 0 0;
	color: var(--dsairc-muted);
	font-size: 1.02rem;
	line-height: 1.7;
}

.dsairc-stats-grid {
	max-width: 1000px;
	gap: 20px;
}

.dsairc-stat-item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 36px 20px 32px;
	border: 1px solid var(--dsairc-line);
	border-radius: var(--dsairc-radius);
	overflow: hidden;
	transition:
		transform 0.3s var(--dsairc-ease),
		box-shadow 0.3s var(--dsairc-ease),
		border-color 0.3s var(--dsairc-ease);
}

.dsairc-stat-item::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, var(--dsairc-primary), var(--dsairc-accent));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s var(--dsairc-ease);
}

.dsairc-stat-item:hover {
	transform: translateY(-5px);
	border-color: rgba(0, 90, 163, 0.3);
	box-shadow: var(--dsairc-shadow);
}

.dsairc-stat-item:hover::before {
	transform: scaleX(1);
}

.dsairc-stat-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: var(--dsairc-radius);
	background: var(--dsairc-surface);
	color: var(--dsairc-primary);
}

.dsairc-stat-number {
	display: block;
	margin: 0;
	font-variant-numeric: tabular-nums;
}

.dsairc-stat-label {
	display: block;
}


/* =========================================================
   PARTNERS
   ========================================================= */

.dsairc-partners-inner {
	max-width: var(--dsairc-container);
	margin: 0 auto;
	text-align: center;
}

.dsairc-partners-title {
	max-width: 640px;
	margin: 0 auto 44px;
	color: var(--dsairc-primary);
	font-size: clamp(1.3rem, 2.2vw, 1.9rem);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.02em;
	text-transform: none;
}

.dsairc-partners-track {
	--dsairc-marquee-gap: clamp(48px, 6vw, 80px);
	gap: var(--dsairc-marquee-gap);
	animation: dsairc-marquee-loop 32s linear infinite;
}

/* The duplicated half exists purely so the marquee can loop seamlessly —
   `display: contents` lets its logos take part in the flex track. */
.dsairc-partners-clone {
	display: contents;
}

/*
 * A plain -50% shift lands half a gap short, because the track has one fewer
 * gap than twice the number of gaps in a single half. Adding half a gap back
 * makes the loop point land exactly on the duplicated logo.
 */
@keyframes dsairc-marquee-loop {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(calc(-50% - (var(--dsairc-marquee-gap) / 2)));
	}
}

.dsairc-partners-marquee:hover .dsairc-partners-track {
	animation-play-state: paused;
}

.dsairc-partner-logo img {
	height: 46px;
	filter: grayscale(100%);
	opacity: 0.55;
}

.dsairc-partner-logo img:hover {
	filter: grayscale(0%);
	opacity: 1;
}


/* =========================================================
   STAY CONNECTED / INSTAGRAM
   ========================================================= */

.dsairc-social-card {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	align-items: center;
	gap: clamp(32px, 5vw, 64px);
	max-width: var(--dsairc-container);
	margin: 0 auto;
	padding: clamp(36px, 5vw, 60px);
	border: 1px solid var(--dsairc-line);
	border-radius: var(--dsairc-radius-lg);
	background:
		radial-gradient(120% 140% at 100% 0%, var(--dsairc-surface) 0%, rgba(227, 242, 253, 0) 62%),
		#ffffff;
	box-shadow: var(--dsairc-shadow-sm);
}

.dsairc-social-copy .dsairc-section-title {
	margin: 0 0 16px;
}

.dsairc-social-text {
	margin: 0 0 28px;
	max-width: 480px;
	color: var(--dsairc-body);
	font-size: 1.02rem;
	line-height: 1.7;
}

.dsairc-social-visual {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: clamp(32px, 4vw, 48px) 24px;
	border-radius: var(--dsairc-radius);
	background: linear-gradient(135deg, var(--dsairc-primary) 0%, var(--dsairc-accent) 60%, var(--dsairc-accent-soft) 130%);
	color: #ffffff;
	box-shadow: 0 20px 44px rgba(8, 39, 67, 0.28);
}

.dsairc-social-glyph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 78px;
	height: 78px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--dsairc-radius);
	background: rgba(255, 255, 255, 0.12);
}

.dsairc-social-handle {
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}


/* =========================================================
   SCROLL REVEAL
   Progressive enhancement — elements are fully visible when
   JavaScript is unavailable (the class is added by theme.js).
   ========================================================= */

.dsairc-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity 0.7s var(--dsairc-ease),
		transform 0.7s var(--dsairc-ease);
	will-change: opacity, transform;
}

.dsairc-reveal.is-visible {
	opacity: 1;
	transform: none;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1024px) {
	.dsairc-social-card {
		grid-template-columns: 1fr;
	}

	.dsairc-social-visual {
		order: -1;
	}
}

@media (max-width: 900px) {
	.dsairc-about-areas {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dsairc-projects-showcase-header {
		margin-bottom: 32px;
	}
}

@media (max-width: 782px) {
	.dsairc-hero-inner {
		padding-top: clamp(120px, 16vh, 160px);
	}

	.dsairc-hero-photo {
		order: -1;
		max-width: 100%;
	}

	.dsairc-hero-badge {
		font-size: 0.7rem;
		padding: 7px 14px 7px 10px;
	}

	.dsairc-hero-actions {
		margin-top: 30px;
	}

	.dsairc-hero-actions .dsairc-btn {
		flex: 1 1 100%;
	}

	.dsairc-stats-head {
		margin-bottom: 32px;
	}

	.dsairc-section-header {
		align-items: flex-start;
	}

	/* Section spacing is handled by padding now — keep the coloured bands
	   flush instead of inheriting the older mobile margins. */
	.dsairc-section-latest,
	.dsairc-stats-section {
		margin-top: 0 !important;
	}
}

@media (max-width: 600px) {
	.dsairc-about-areas {
		grid-template-columns: 1fr;
	}

	.dsairc-about-badge {
		margin: 24px 0;
	}

	.dsairc-social-card {
		padding: 28px 22px;
	}

	.dsairc-social-glyph {
		width: 64px;
		height: 64px;
	}
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.dsairc-partners-track,
	.dsairc-hero-badge-dot {
		animation: none !important;
	}

	.dsairc-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.dsairc-btn,
	.dsairc-btn svg,
	.dsairc-link-arrow svg,
	.dsairc-area-card,
	.dsairc-stat-item,
	.dsairc-news-card,
	.dsairc-projects-small-image {
		transition: none !important;
	}

	.dsairc-btn:hover,
	.dsairc-area-card:hover,
	.dsairc-stat-item:hover,
	.dsairc-news-card:hover {
		transform: none !important;
	}
}