/*!
Theme Name: IMO teema
Theme URI: https://imo.ut.ee
Author: Infotehnoloogiline Mobiilsusobservatoorium
Author URI: https://imo.ut.ee
Description: WordPress theme for IMO.
Version: 1.4.4
Tested up to:  6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: imoteema
Tags:

*/

/*
This theme is based on Underscores (_s),
© Automattic, Inc. https://underscores.me/
Distributed under the terms of the GNU GPL v2 or later.
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Variables
	- Color System
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Variables
--------------------------------------------------------------*/

/* Color System
--------------------------------------------- */
:root {
  /* Primary Brand Colors */
  --color-primary: #0060AA;
  --color-primary-hsl: 206, 100%, 33%;
  --color-primary-light: #4A90E2;
  --color-primary-dark: #004A88;
  --color-primary-hover: #0077CC;

  --color-accent: #030328;
  --color-accent-hsl: 236, 85%, 8%;
  --color-accent-light: #0A0B3D;
  --color-accent-hover: #141556;

  /* Secondary Colors */
  --color-secondary: #4A90E2;
  --color-secondary-hsl: 211, 73%, 59%;
  --color-teal: #0088CC;
  --color-teal-hover: #0099E6;

  /* Neutral Colors */
  --color-white: #FFFFFF;
  --color-black: #000000;
  --color-light-gray: #EBEFF5;
  --color-light-gray-hsl: 220, 25%, 94%;
  --color-medium-gray: #8B95A5;
  --color-dark-gray: #4A5568;

  /* Semantic Colors */
  --color-success: #0E8E42;
  --color-success-light: #D4EDDA;
  --color-warning: #E67E22;
  --color-warning-light: #FFF3E0;
  --color-error: #C0392B;
  --color-error-light: #F8D7DA;
  --color-info: #4A90E2;
  --color-info-light: #E3F2FD;

  /* Text Colors */
  --color-text-primary: #030328;
  --color-text-secondary: #4A5568;
  --color-text-tertiary: #8B95A5;
  --color-text-inverse: #FFFFFF;

  /* Background Colors */
  --color-bg-primary: #FFFFFF;
  --color-bg-secondary: #EBEFF5;
  --color-bg-dark: #030328;
  --color-bg-overlay: rgba(3, 3, 40, 0.85);

  /* Border Colors */
  --color-border-light: #EBEFF5;
  --color-border-medium: #D1D7E0;
  --color-border-dark: #8B95A5;

  /* Interactive States */
  --color-link: #0060AA;
  --color-link-hover: #0077CC;
  --color-link-active: #004A88;
  --color-link-visited: #7B3FF2;

  --color-button-primary: #0060AA;
  --color-button-primary-hover: #0077CC;
  --color-button-primary-active: #004A88;

  --color-button-secondary: #4A90E2;
  --color-button-secondary-hover: #5FA3F5;
  --color-button-secondary-active: #3A7FC2;

  /* Focus States */
  --color-focus-ring: #4A90E2;
  --color-focus-ring-alpha: rgba(74, 144, 226, 0.5);

  /* Typography - Font Families */
  --font-heading: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-mono: 'Courier New', Courier, monospace;

  /* Typography - Font Weights */
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Typography - Base Size */
  --font-size-base: 1rem; /* 16px */

  /* Typography - Modular Scale (1.250 - Major Third) */
  --font-size-xs: 0.64rem;    /* 10.24px */
  --font-size-sm: 0.8rem;     /* 12.8px */
  --font-size-md: 1rem;       /* 16px - base */
  --font-size-lg: 1.25rem;    /* 20px */
  --font-size-xl: 1.563rem;   /* 25px */
  --font-size-2xl: 1.953rem;  /* 31.25px */
  --font-size-3xl: 2.441rem;  /* 39px */
  --font-size-4xl: 3.052rem;  /* 48.83px */
  --font-size-5xl: 3.815rem;  /* 61px */

  /* Typography - Line Heights */
  --line-height-tight: 1.2;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;
  --line-height-loose: 2;

  /* Typography - Letter Spacing */
  --letter-spacing-tight: -0.02em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.02em;
  --letter-spacing-wider: 0.05em;

  /* Spacing Scale */
  --space-xs: 0.25rem;   /* 4px */
  --space-sm: 0.5rem;    /* 8px */
  --space-md: 1rem;      /* 16px */
  --space-lg: 1.5rem;    /* 24px */
  --space-xl: 2rem;      /* 32px */
  --space-2xl: 3rem;     /* 48px */
  --space-3xl: 4rem;     /* 64px */
  --space-4xl: 6rem;     /* 96px */
}

/* Responsive Typography - Fluid Scaling */
@media screen and (min-width: 768px) {
  :root {
    --font-size-base: 1.125rem; /* 18px on tablets and up */
  }
}

@media screen and (min-width: 1024px) {
  :root {
    --font-size-3xl: 2.75rem;
    --font-size-4xl: 3.5rem;
    --font-size-5xl: 4.5rem;
  }
}

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
html {
	overflow-x: hidden;
	height: 100%;
}

body {
	margin: 0;
	background-color: var(--color-bg-primary);
	overflow-x: hidden;
	min-height: 100%;
	display: flex;
	flex-direction: column;
}

#page {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	flex: 1;
	padding-top: 120px;
}

.site-main {
	flex: 1;
	margin-top: -50px;
	padding-top: 50px;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
	overflow: visible;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: var(--color-text-secondary);
	font-family: var(--font-body);
	font-size: var(--font-size-base);
	font-weight: var(--font-weight-normal);
	line-height: var(--line-height-normal);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
	color: var(--color-accent);
	font-family: var(--font-heading);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-tight);
	margin-top: var(--space-xl);
	margin-bottom: var(--space-md);
}

h1 {
	color: var(--color-primary);
	font-size: var(--font-size-4xl);
	letter-spacing: var(--letter-spacing-tight);
	margin-top: 0;
}

h2 {
	font-size: var(--font-size-3xl);
	letter-spacing: var(--letter-spacing-tight);
}

h3 {
	font-size: var(--font-size-2xl);
	font-weight: var(--font-weight-normal);
}

h4,
h5,
h6 {
	font-weight: var(--font-weight-normal);
}

h4 {
	font-size: var(--font-size-xl);
}

h5 {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-semibold);
}

h6 {
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-semibold);
	text-transform: uppercase;
	letter-spacing: var(--letter-spacing-wide);
}

p {
	margin-bottom: var(--space-lg);
	line-height: var(--line-height-relaxed);
}

p:last-child {
	margin-bottom: 0;
}

/* Lead paragraph - larger intro text */
.lead,
p.lead {
	font-size: var(--font-size-lg);
	line-height: var(--line-height-relaxed);
	color: var(--color-text-primary);
	margin-bottom: var(--space-xl);
}

/* Small text */
small,
.text-small {
	font-size: var(--font-size-sm);
}

dfn,
cite,
em,
i {
	font-style: italic;
}

strong,
b {
	font-weight: var(--font-weight-bold);
}

blockquote {
	margin: var(--space-xl) 0;
	padding-left: var(--space-xl);
	border-left: 4px solid var(--color-primary);
	font-family: var(--font-heading);
	font-size: var(--font-size-lg);
	font-style: italic;
	color: var(--color-text-primary);
}

blockquote p {
	margin-bottom: var(--space-md);
}

blockquote cite {
	display: block;
	font-size: var(--font-size-sm);
	font-style: normal;
	font-family: var(--font-body);
	color: var(--color-text-tertiary);
	margin-top: var(--space-md);
}

blockquote cite::before {
	content: '— ';
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: var(--color-bg-secondary);
	font-family: var(--font-mono);
	font-size: var(--font-size-sm);
	line-height: var(--line-height-relaxed);
	margin-bottom: var(--space-xl);
	max-width: 100%;
	overflow: auto;
	padding: var(--space-lg);
	border-radius: 4px;
	border: 1px solid var(--color-border-light);
}

code,
kbd,
tt,
var {
	font-family: var(--font-mono);
	font-size: 0.9em;
	background: var(--color-bg-secondary);
	padding: 0.125em 0.375em;
	border-radius: 3px;
}

pre code {
	background: transparent;
	padding: 0;
}

kbd {
	background: var(--color-dark-gray);
	color: var(--color-white);
	padding: 0.25em 0.5em;
	border-radius: 3px;
	font-size: 0.85em;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: var(--color-bg-primary);
	overflow-x: hidden;
	overflow-y: visible;
}

.site-footer {
	background-color: var(--color-accent);
	color: var(--color-light-gray);
	margin-top: var(--space-4xl);
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 10px;
}

ul {
	list-style: square;
}

ul li::marker {
	color: var(--color-primary);
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 10px;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

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

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
a {
	color: var(--color-link);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:visited {
	color: var(--color-link-visited);
}

a:hover,
a:focus,
a:active {
	color: var(--color-link-hover);
}

a:focus {
	outline: 2px solid var(--color-focus-ring);
	outline-offset: 2px;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: none;
	border-radius: 0;
	background: var(--color-primary);
	color: var(--color-white);
	font-weight: 600;
	line-height: 1;
	padding: 0.75em 1.5em;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	background: var(--color-accent);
	transform: translateY(-1px);
}

button:active,
input[type="button"]:active,
input[type="reset"]:active,
input[type="submit"]:active {
	background: #004A88;
	transform: translateY(0);
}

button:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus {
	outline: 2px solid var(--color-focus-ring);
	outline-offset: 2px;
	box-shadow: 0 0 0 4px var(--color-focus-ring-alpha);
}

/* WordPress Block Buttons */
.wp-block-button__link,
.wp-element-button {
	background-color: var(--color-white) !important;
	color: var(--color-primary) !important;
	border-radius: 4px !important;
	border: 2px solid var(--color-primary) !important;
	padding: 0.6em 1.4em !important;
	font-weight: 600;
	font-size: 0.9rem;
	cursor: pointer;
	transition: all 0.25s ease;
	text-decoration: none;
	letter-spacing: 0.02em;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
	background-color: var(--color-primary) !important;
	color: var(--color-white) !important;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 96, 170, 0.25);
}

.wp-block-button__link:active,
.wp-element-button:active {
	background-color: var(--color-primary) !important;
	color: var(--color-white) !important;
	transform: translateY(0);
	box-shadow: 0 2px 6px rgba(0, 96, 170, 0.2);
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: var(--color-text-secondary);
	border: 1px solid var(--color-border-medium);
	border-radius: 4px;
	padding: 8px 12px;
	transition: border-color 0.2s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: var(--color-text-primary);
	border-color: var(--color-primary);
	outline: 2px solid var(--color-focus-ring);
	outline-offset: 2px;
}

select {
	border: 1px solid var(--color-border-medium);
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Header
--------------------------------------------- */
.site-header {
	background-color: var(--color-primary);
	border-bottom: 1px solid var(--color-primary-dark);
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 1000;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	transform: translateY(0);
}

.header-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--space-sm) var(--space-lg);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-lg);
}

/* Scrolled state - move entire header up by 40% */
.site-header.scrolled {
	transform: translateY(-40%);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Don't move header when mobile menu is open */
.site-header:has(.main-navigation.toggled) {
	transform: translateY(0) !important;
}

.site-header.scrolled:has(.main-navigation.toggled) {
	transform: translateY(0) !important;
}

/* Branding
--------------------------------------------- */
.site-branding {
	display: flex;
	align-items: center;
	gap: var(--space-md);
	flex-shrink: 0;
}

.custom-logo-link {
	display: flex;
	align-items: center;
	line-height: 0;
}

.custom-logo {
	max-height: 80px;
	width: auto;
	height: auto;
	transition: opacity 0.2s ease;
}

.custom-logo:hover {
	opacity: 0.85;
}

.site-identity {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.site-title {
	margin: 0;
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	line-height: 1.2;
	font-family: var(--font-heading);
}

.site-title a {
	color: var(--color-white);
	text-decoration: none;
	transition: color 0.2s ease;
}

.site-title a:hover {
	color: var(--color-light-gray);
}

.site-description {
	margin: 0;
	font-size: var(--font-size-sm);
	color: var(--color-light-gray);
	font-weight: var(--font-weight-normal);
	line-height: 1.3;
}

/* Navigation
--------------------------------------------- */
.main-navigation {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-top: 20px;
}

.main-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: none;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	text-decoration: none;
	color: var(--color-white);
	font-weight: var(--font-weight-semibold);
	font-size: var(--font-size-md);
	transition: color 0.2s ease;
	position: relative;
}

.main-navigation a:hover,
.main-navigation a:focus {
	color: var(--color-light-gray);
}

/* Menu Toggle (Mobile)
--------------------------------------------- */
.menu-toggle {
	display: flex;
	align-items: center;
	background: transparent;
	border: none;
	padding: 0;
	cursor: pointer;
	transition: all 0.2s ease;
}

.menu-toggle:hover {
	background: transparent;
}

.menu-toggle:focus {
	outline: none;
	box-shadow: none;
}

.menu-toggle-icon {
	display: flex;
	flex-direction: column;
	gap: 5px;
	width: 28px;
}

.menu-toggle-icon .bar {
	display: block;
	height: 3px;
	background-color: var(--color-white);
	border-radius: 2px;
}

.menu-toggle-text {
	display: none;
}

/* Menu Toggle - Simple X when toggled */
.main-navigation.toggled .menu-toggle-icon {
	width: 24px;
	height: 24px;
	position: relative;
	gap: 0;
}

.main-navigation.toggled .menu-toggle-icon .bar {
	position: absolute;
	width: 24px;
	height: 3px;
	top: 50%;
	left: 0;
}

.main-navigation.toggled .menu-toggle-icon .bar:nth-child(1) {
	transform: rotate(45deg);
}

.main-navigation.toggled .menu-toggle-icon .bar:nth-child(2) {
	display: none;
}

.main-navigation.toggled .menu-toggle-icon .bar:nth-child(3) {
	transform: rotate(-45deg);
}

/* Mobile Menu */
.main-navigation ul {
	background-color: var(--color-primary);
}

/* Mobile/Desktop language toggle visibility */
.mobile-lang-toggle {
	display: none;
}

.desktop-lang-toggle {
	display: block;
}

/* Mobile menu elements - hidden on desktop */
.mobile-menu-pattern,
.mobile-menu-logo {
	display: none;
}

/* Mobile Menu Styles */
@media screen and (max-width: 767px) {
	/* Show mobile lang toggle, hide desktop one */
	.mobile-lang-toggle {
		display: block !important;
	}

	.desktop-lang-toggle {
		display: none !important;
	}

	.header-container {
		flex-wrap: nowrap;
		min-height: 60px;
	}

	.main-navigation {
		display: flex;
		align-items: flex-end;
		position: fixed;
		right: 20px;
		bottom: 10px;
		top: auto;
		z-index: 1001;
	}

	.menu-toggle {
		display: flex !important;
		position: relative !important;
		z-index: 10002 !important;
		background-color: transparent;
	}

	/* Mobile language toggle - next to hamburger */
	.mobile-lang-toggle {
		position: relative;
		margin-right: 10px;
		z-index: 10003;
	}

	/* Hide menu wrapper by default on mobile */
	.main-navigation .nav-menu-wrapper {
		display: none !important;
	}

	/* Show as full-screen when toggled */
	.main-navigation.toggled .nav-menu-wrapper {
		display: block !important;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		width: 100% !important;
		height: 100vh;
		background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);
		z-index: 10000;
		overflow-y: auto;
		overflow-x: hidden;
		padding: 0;
		padding-top: 70px;
		margin: 0;
		border: none;
		box-sizing: border-box;
	}

	/* Isometric cube pattern overlay on mobile menu */
	.main-navigation.toggled .mobile-menu-pattern {
		display: block !important;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		min-height: 100vh;
		background-image: url('images/cube-pattern-white.svg');
		background-size: 120px 103.5px;
		background-repeat: repeat;
		opacity: 0.15;
		pointer-events: none;
	}

	/* Mobile menu header bar */
	.main-navigation.toggled::before {
		content: '';
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		width: 100%;
		height: 70px;
		background-color: var(--color-primary);
		z-index: 10001;
	}

	/* When menu is open, move X button to top right */
	.main-navigation.toggled .menu-toggle {
		position: fixed !important;
		top: 15px !important;
		bottom: auto !important;
		right: 20px !important;
	}

	/* When menu is open, move mobile language toggle to top */
	.main-navigation.toggled .mobile-lang-toggle {
		position: fixed !important;
		top: 15px !important;
		bottom: auto !important;
		right: 70px !important;
		z-index: 10003 !important;
		margin: 0 !important;
	}

	/* When menu open, dropdown opens downward */
	.main-navigation.toggled .mobile-lang-toggle .wp-bilingual-dropdown {
		top: 100% !important;
		bottom: auto !important;
	}

	/* Mobile search - show at top of menu */
	.main-navigation.toggled .mobile-search {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		width: 100% !important;
		background: #ffffff;
		margin-bottom: 1px;
		position: relative;
		z-index: 1;
	}

	.main-navigation.toggled .mobile-search__form {
		display: flex !important;
		align-items: center;
		background: #ffffff;
		padding: 12px 20px;
		gap: 10px;
	}

	.main-navigation.toggled .mobile-search__input {
		color: #1e293b !important;
	}

	.main-navigation.toggled .mobile-search__result-item {
		color: #1e293b !important;
		background: #f1f5f9;
	}

	.main-navigation.toggled .mobile-search__no-results {
		color: #64748b !important;
		background: #f1f5f9;
		padding: 12px 20px;
	}

	.main-navigation.toggled .mobile-search__results {
		display: block;
		background: #ffffff;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__list {
		display: block !important;
		list-style: none;
		padding: 0;
		margin: 0;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__item {
		display: block !important;
		border-bottom: 1px solid #e2e8f0;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__link {
		display: block;
		padding: 12px 20px;
		background: #ffffff;
		color: #1e293b;
		text-decoration: none;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__link:active {
		background: #f1f5f9;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__item-type {
		display: inline-block;
		font-size: 0.65rem;
		text-transform: uppercase;
		background: #dbeafe;
		color: #1e40af;
		padding: 2px 6px;
		border-radius: 3px;
		margin-bottom: 4px;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__item-title {
		display: block;
		font-weight: 600;
		color: var(--color-primary);
		font-size: 0.9375rem;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__item-excerpt {
		display: block;
		font-size: 0.8125rem;
		color: #64748b;
		margin-top: 4px;
		line-height: 1.4;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__no-results,
	.main-navigation.toggled .mobile-search__results .search-overlay__error {
		color: #64748b;
		font-size: 0.875rem;
		padding: 12px 20px;
		background: #ffffff;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__loading {
		padding: 12px 20px;
		background: #ffffff;
		text-align: center;
	}

	.main-navigation.toggled .mobile-search__results .search-overlay__loading .spinner {
		border-color: rgba(0, 96, 170, 0.2);
		border-top-color: var(--color-primary);
	}

	.main-navigation.toggled .nav-menu {
		display: block !important;
		list-style: none;
		margin: 0;
		padding: 0;
		width: 100% !important;
		position: relative;
		z-index: 1;
	}

	/* First level menu items - white background, black text, FULL WIDTH */
	.main-navigation.toggled .nav-menu > li {
		background-color: #ffffff;
		margin-bottom: 1px;
		width: 100% !important;
		max-width: 100% !important;
		display: block !important;
		box-sizing: border-box;
	}

	.main-navigation.toggled .nav-menu > li > a {
		color: #1e293b;
		padding: 15px 20px;
		display: block !important;
		width: 100% !important;
		box-sizing: border-box;
	}

	/* Second and third level - light gray background, black text */
	.main-navigation.toggled .nav-menu ul {
		background-color: transparent;
		width: 100% !important;
	}

	.main-navigation.toggled .nav-menu ul li {
		background-color: #f1f5f9;
		border-bottom: 1px solid #e2e8f0;
		width: 100% !important;
		max-width: 100% !important;
		display: block !important;
		box-sizing: border-box;
	}

	.main-navigation.toggled .nav-menu ul li a {
		color: #1e293b;
		padding: 12px 20px 12px 35px;
		display: block !important;
		width: 100% !important;
		box-sizing: border-box;
	}

	/* Third level - slightly darker */
	.main-navigation.toggled .nav-menu ul ul li {
		background-color: #e2e8f0;
	}

	.main-navigation.toggled .nav-menu ul ul li a {
		padding-left: 50px;
	}

	.main-navigation li {
		position: relative;
	}

	.main-navigation a {
		display: block;
		text-decoration: none;
	}

	/* Submenu Toggle Icon */
	.main-navigation .menu-item-has-children > a::after,
	.main-navigation .page_item_has_children > a::after {
		content: '>';
		position: absolute;
		right: 20px;
		top: 50%;
		transform: translateY(-50%) rotate(90deg) scaleY(1.5);
		transition: transform 0.3s ease;
		font-size: var(--font-size-xl);
		font-weight: bold;
		color: #64748b;
	}

	.main-navigation .menu-item-has-children.submenu-open > a::after,
	.main-navigation .page_item_has_children.submenu-open > a::after {
		transform: translateY(-50%) rotate(-90deg) scaleY(1.5);
	}

	/* Submenu Mobile - Hidden by default */
	.main-navigation ul ul {
		display: none !important;
		position: static;
		box-shadow: none;
		width: 100%;
		padding: 0;
		margin: 0;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
	}

	.main-navigation .submenu-open > ul {
		display: block !important;
		max-height: 2000px;
	}

}

/* Desktop Menu */
@media screen and (min-width: 768px) {
	.menu-toggle {
		display: none;
	}

	.main-navigation .nav-menu {
		display: flex !important;
		gap: 0;
		align-items: center;
	}

	.mobile-search {
		display: none !important;
	}

	.main-navigation a {
		padding: var(--space-xs) var(--space-sm);
		position: relative;
	}

	/* Underline effect on hover */
	.main-navigation a::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		width: 0;
		height: 2px;
		background-color: var(--color-white);
		transition: width 0.3s ease;
	}

	.main-navigation a:hover::after,
	.main-navigation a:focus::after,
	.main-navigation .current-menu-item > a::after,
	.main-navigation .current_page_item > a::after {
		width: calc(100% - var(--space-lg));
	}

	/* Dropdown Submenus */
	.main-navigation ul ul {
		display: block !important;
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 330px;
		background-color: var(--color-white);
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
		border-radius: 0;
		padding: var(--space-sm) 0;
		margin-top: var(--space-sm);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-10px);
		transition: opacity 0.2s ease 0.3s, visibility 0.2s ease 0.3s, transform 0.2s ease 0.3s;
		z-index: 100000;
		gap: 0;
	}

	/* Force all submenu items to display in single column */
	.main-navigation ul ul li {
		display: block !important;
		width: 100%;
		float: none;
	}

	/* Align last 2 menu items' dropdowns to the right */
	.main-navigation li:nth-last-child(-n+2) > ul {
		left: auto;
		right: 0;
	}

	.main-navigation ul li:hover > ul,
	.main-navigation ul li.focus > ul {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
	}

	.main-navigation ul ul a {
		padding: var(--space-sm) var(--space-md);
		font-size: var(--font-size-sm);
		font-weight: var(--font-weight-normal);
		color: var(--color-text);
	}

	.main-navigation ul ul a::after {
		display: none;
	}

	.main-navigation ul ul a:hover,
	.main-navigation ul ul a:focus {
		background-color: var(--color-light-gray);
		color: var(--color-primary);
	}

	/* Third level - opens to the right, default expands downward */
	.main-navigation ul ul ul {
		top: 0;
		bottom: auto;
		left: 100%;
		margin-top: 0;
		margin-left: var(--space-sm);
		margin-bottom: 0;
	}

	/* Force all third-level submenu items to display in single column */
	.main-navigation ul ul ul li {
		display: block !important;
		width: 100%;
		float: none;
	}

	/* Expand upward when needed (dynamically added by JS) */
	.main-navigation ul ul ul.expand-upward {
		top: auto;
		bottom: 0;
	}

	/* Open to the left if parent is in the right half of viewport */
	.main-navigation ul ul li:nth-last-child(-n+3) > ul {
		left: auto;
		right: 100%;
		margin-left: 0;
		margin-right: var(--space-sm);
	}

	/* Current menu item styling */
	.main-navigation .current-menu-item > a,
	.main-navigation .current_page_item > a {
		font-weight: 700;
	}

	.main-navigation .current-menu-item > a::after,
	.main-navigation .current_page_item > a::after {
		width: calc(100% - var(--space-lg));
	}
}

/* Large Desktop */
@media screen and (min-width: 1024px) {
	.header-container {
		padding: var(--space-sm) var(--space-xl);
	}

	.main-navigation ul {
		gap: 2px;
	}

	.custom-logo {
		max-height: 77px;
	}
}

/* Footer
--------------------------------------------- */
.site-footer {
	background-color: var(--color-accent);
	color: var(--color-light-gray);
	margin-top: 0;
}

.footer-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-lg);
}

/* Footer Widgets */
.footer-widgets {
	padding: var(--space-3xl) 0 var(--space-2xl);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-widget-area {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
}

@media screen and (min-width: 768px) {
	.footer-widget-area {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--space-xl);
	}
}

.footer-widget {
	color: var(--color-light-gray);
}

.footer-widget .widget-title {
	color: var(--color-white);
	font-size: var(--font-size-lg);
	font-family: var(--font-heading);
	font-weight: var(--font-weight-bold);
	margin-bottom: var(--space-md);
	padding-bottom: var(--space-sm);
	border-bottom: 2px solid var(--color-primary);
}

.footer-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-widget ul li {
	margin-bottom: var(--space-sm);
	padding-left: 0;
}

.footer-widget a {
	color: var(--color-light-gray);
	text-decoration: none;
	transition: color 0.2s ease;
}

.footer-widget a:hover {
	color: var(--color-white);
}

.footer-widget p {
	line-height: var(--line-height-relaxed);
}

/* Footer Bottom */
.footer-bottom {
	padding: var(--space-xl) 0;
}

.footer-bottom-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-lg);
	text-align: center;
}

@media screen and (min-width: 768px) {
	.footer-bottom-content {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
	}
}

/* Social Media Icons */
.footer-social {
	display: flex;
	gap: var(--space-md);
	align-items: center;
}

.footer-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background-color: rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	color: var(--color-white);
	transition: all 0.3s ease;
}

.footer-social a:hover {
	background-color: var(--color-primary);
	transform: translateY(-3px);
}

.footer-social svg {
	width: 20px;
	height: 20px;
}

/* Footer Navigation */
.footer-navigation {
	order: 2;
}

@media screen and (min-width: 768px) {
	.footer-navigation {
		order: 1;
		flex: 1;
	}
}

.footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md) var(--space-lg);
	justify-content: center;
}

@media screen and (min-width: 768px) {
	.footer-menu {
		justify-content: flex-start;
	}
}

.footer-menu li {
	margin: 0;
}

.footer-menu a {
	color: var(--color-light-gray);
	text-decoration: none;
	font-size: var(--font-size-sm);
	transition: color 0.2s ease;
	position: relative;
}

.footer-menu a:hover {
	color: var(--color-white);
}

.footer-menu a::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 0;
	height: 1px;
	background-color: var(--color-primary);
	transition: width 0.3s ease;
}

.footer-menu a:hover::after {
	width: 100%;
}

/* Site Info / Copyright */
.site-info {
	order: 3;
	font-size: var(--font-size-sm);
	color: var(--color-medium-gray);
}

@media screen and (min-width: 768px) {
	.site-info {
		order: 3;
	}
}

.site-info p {
	margin: 0;
}

.site-info a {
	color: var(--color-light-gray);
	text-decoration: none;
	transition: color 0.2s ease;
}

.site-info a:hover {
	color: var(--color-white);
}

/* Custom Footer Text */
.footer-custom-text {
	padding: var(--space-md) 0;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	margin-top: var(--space-md);
	font-size: var(--font-size-sm);
	color: var(--color-medium-gray);
	line-height: 1.6;
	text-align: center;
}

.footer-custom-text p {
	margin: 0 0 var(--space-xs) 0;
}

.footer-custom-text p:last-child {
	margin-bottom: 0;
}

.footer-custom-text a {
	color: var(--color-light-gray);
	text-decoration: none;
	transition: color 0.2s ease;
}

.footer-custom-text a:hover {
	color: var(--color-white);
}

/* Footer Widget Specific Styles */
.footer-widget .textwidget {
	font-size: var(--font-size-sm);
	line-height: var(--line-height-relaxed);
}

.footer-widget address {
	font-style: normal;
	margin: 0;
}

.footer-widget .contact-info {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-widget .contact-info li {
	margin-bottom: var(--space-sm);
	display: flex;
	align-items: flex-start;
	gap: var(--space-sm);
}

.footer-widget .contact-info li::before {
	content: '→';
	color: var(--color-primary);
	flex-shrink: 0;
}

/*--------------------------------------------------------------
# Front Page Styles
--------------------------------------------------------------*/

/* General Front Page Container */
.front-page {
	overflow: visible;
}

.front-page section {
	padding: var(--space-2xl) 0;
}

/* Isometric cube pattern for white sections */
.front-page .services-section,
.front-page .introduction-section,
.front-page .research-section.research-background-white,
.front-page .latest-news-section,
.front-page .news2 {
	position: relative;
}

.front-page .services-section::before,
.front-page .introduction-section::before,
.front-page .research-section.research-background-white::before,
.front-page .latest-news-section::before,
.front-page .news2::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url('images/cube-pattern-gray.svg');
	background-size: 120px 103.5px;
	background-repeat: repeat;
	opacity: 0.25;
	z-index: 0;
	pointer-events: none;
}

.front-page .services-section > *,
.front-page .introduction-section > *,
.front-page .research-section.research-background-white > *,
.front-page .latest-news-section > *,
.front-page .news2 > * {
	position: relative;
	z-index: 1;
}

.section-heading {
	font-size: var(--font-size-3xl);
	color: var(--color-primary);
	text-align: left;
	margin-bottom: var(--space-2xl);
	font-family: var(--font-heading);
}

/* ===== HERO SECTION ===== */
.hero-section {
	background-color: var(--color-primary);
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);
	color: var(--color-white);
	min-height: 570px;
	padding: var(--space-2xl) 0;
	width: 100%;
	position: relative;
	margin-top: -100px;
	padding-top: calc(var(--space-2xl) + 150px);
	margin-bottom: 0;
	display: flex;
	align-items: flex-start;
}

.hero-container {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-lg);
	padding-top: 50px;
	width: 100%;
	box-sizing: border-box;
}

.hero-content-wrapper {
	display: none;
}

/* Desktop: Hexagons + Content */
@media screen and (min-width: 768px) {
	.hero-content-wrapper {
		display: grid;
		grid-template-columns: 1fr 1.2fr;
		gap: 3rem;
		align-items: center;
		max-width: 100%;
	}

	/* Reduce gap as screen gets smaller */
	@media screen and (max-width: 1100px) {
		.hero-content-wrapper {
			gap: 2.5rem;
		}
	}

	@media screen and (max-width: 950px) {
		.hero-content-wrapper {
			gap: 2rem;
		}
	}

	@media screen and (max-width: 850px) {
		.hero-content-wrapper {
			gap: 1.5rem;
		}
	}

	.hero-carousel {
		display: none !important;
	}
}

/* Hexagons Container */
.hero-hexagons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-md);
	row-gap: 0;
}

.hexagon-wrapper {
	cursor: pointer;
	transition: transform 0.3s ease;
	margin-top: -30px;
}

.hexagon-wrapper:first-child,
.hexagon-wrapper:nth-child(2),
.hexagon-wrapper:nth-child(3) {
	margin-top: 0;
}

/* 2-3-2 honeycomb layout - scales to fit screen */
@media screen and (min-width: 768px) {
	.hero-hexagons {
		display: grid;
		grid-template-columns: repeat(3, 145px);
		justify-content: center;
		gap: var(--space-md);
		row-gap: 0;
		transform: scale(1);
		transform-origin: center;
	}

	/* Scale down the entire hexagon cluster on smaller screens */
	@media screen and (max-width: 1100px) {
		.hero-hexagons {
			transform: scale(0.9);
		}
	}

	@media screen and (max-width: 950px) {
		.hero-hexagons {
			transform: scale(0.88);
		}
	}

	@media screen and (max-width: 850px) {
		.hero-hexagons {
			transform: scale(0.85);
		}
	}

	.hexagon-wrapper {
		margin-top: -30px;
	}

	/* First row - 2 hexagons, staggered offset, no top margin */
	.hexagon-wrapper:nth-child(1) {
		grid-column: 1 / 2;
		margin-left: 81px;
		margin-top: 0;
	}

	.hexagon-wrapper:nth-child(2) {
		grid-column: 2 / 3;
		margin-left: 81px;
		margin-top: 0;
	}

	/* Second row - 3 hexagons, no offset */
	.hexagon-wrapper:nth-child(3) {
		grid-column: 1 / 2;
		margin-left: 0;
		margin-top: -30px;
	}

	.hexagon-wrapper:nth-child(4) {
		grid-column: 2 / 3;
		margin-left: 0;
		margin-top: -30px;
	}

	.hexagon-wrapper:nth-child(5) {
		grid-column: 3 / 4;
		margin-left: 0;
		margin-top: -30px;
	}

	/* Third row - 2 hexagons, staggered like first row */
	.hexagon-wrapper:nth-child(6) {
		grid-column: 1 / 2;
		margin-left: 81px;
		margin-top: -30px;
	}

	.hexagon-wrapper:nth-child(7) {
		grid-column: 2 / 3;
		margin-left: 81px;
		margin-top: -30px;
	}
}

.hexagon-wrapper:hover {
	transform: translateY(-5px);
}

.hexagon-wrapper:focus {
	outline: none;
}

/* Hexagon Shape */
.hexagon {
	width: 145px;
	height: 169px;
	background-color: rgba(255, 255, 255, 0.1);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
	transition: all 0.3s ease;
}

.hexagon.active {
	background-color: var(--color-light-gray);
}

/* Default hexagon (2nd in 2nd row) - semi-transparent black background when not active */
.hexagon.default-hexagon:not(.active) {
	background-color: rgba(0, 0, 0, 0.5);
}

.hexagon.default-hexagon:not(.active) .hexagon-title {
	color: var(--color-white);
}

.hexagon-inner {
	text-align: center;
	padding: var(--space-sm);
}

.hexagon-title {
	font-size: 0.9rem;
	font-weight: var(--font-weight-semibold);
	color: var(--color-white);
	margin: 0;
	line-height: 1.2;
}

.hexagon.active .hexagon-title {
	color: var(--color-accent);
}

/* Hero Info Wrapper - contains main title and changing content */
.hero-info-wrapper {
	display: flex;
	flex-direction: column;
	max-width: 100%;
}

/* When main title is present, align to top */
.hero-info-wrapper:has(.hero-main-title) {
	align-self: flex-start;
}

/* Hero Info Content */
.hero-info {
	position: relative;
	min-height: 200px;
	max-width: 100%;
	overflow: hidden;
}

.hero-info-content {
	display: none;
	animation: fadeIn 0.5s ease;
	max-width: 100%;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.hero-info-content.active {
	display: block;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Hero Main Title (static title above hexagon content) */
.hero-info-wrapper .hero-main-title {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-normal);
	color: var(--color-white);
	text-align: left;
	margin: 0 0 var(--space-md) 0;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.hero-info-heading {
	font-size: var(--font-size-3xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-white);
	margin-bottom: var(--space-md);
	word-wrap: break-word;
	overflow-wrap: break-word;
	max-width: 100%;
}

.hero-info-description {
	font-size: var(--font-size-lg);
	color: var(--color-light-gray);
	line-height: var(--line-height-relaxed);
	word-wrap: break-word;
	overflow-wrap: break-word;
	max-width: 100%;
}

/* Scale down text on smaller screens */
@media screen and (max-width: 950px) {
	.hero-info-wrapper .hero-main-title {
		font-size: var(--font-size-lg);
	}

	.hero-info-heading {
		font-size: var(--font-size-2xl);
	}

	.hero-info-description {
		font-size: var(--font-size-md);
	}
}

/* Mobile Carousel */
.hero-carousel {
	position: relative;
	overflow: hidden;
}

.carousel-wrapper {
	position: relative;
	overflow: hidden;
}

.carousel-container {
	display: flex;
	transition: transform 0.4s ease-in-out;
}

.carousel-slide {
	min-width: 100%;
	padding: var(--space-xl);
	text-align: center;
}

.carousel-hexagon {
	width: 182px;
	height: 206px;
	background-color: var(--color-light-gray);
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto var(--space-xl);
}

.carousel-hexagon h3 {
	color: var(--color-accent);
	font-size: var(--font-size-lg);
	margin: 0;
	padding: 10px;
}

/* Mobile carousel main title - above the carousel */
.hero-carousel > .hero-main-title {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-normal);
	color: var(--color-white);
	text-align: center;
	margin: 0 0 var(--space-sm) 0;
	padding: 0 var(--space-xl);
}

.carousel-content .carousel-heading {
	display: none; /* Hidden - hexagon already shows the title */
}

.carousel-content p {
	font-size: var(--font-size-md);
}

.carousel-prev,
.carousel-next {
	position: absolute;
	/* Align to center of hexagon: padding-top (var(--space-xl) = 48px) + half hexagon height (206px/2 = 103px) = 151px */
	top: calc(var(--space-xl) + 103px);
	transform: translateY(-50%) scaleX(0.7);
	background: transparent;
	color: var(--color-white);
	border: none;
	padding: 0;
	font-size: 3rem;
	cursor: pointer;
	z-index: 10;
	transition: color 0.3s ease, transform 0.3s ease;
	font-weight: 300;
	line-height: 1;
	outline: none;
}

.carousel-prev:hover,
.carousel-next:hover {
	color: var(--color-light-gray);
	transform: translateY(-50%) scaleX(0.7) scale(1.3);
	background: transparent;
	outline: none;
}

.carousel-prev:focus,
.carousel-next:focus,
.carousel-prev:focus-visible,
.carousel-next:focus-visible,
.carousel-prev:active,
.carousel-next:active {
	outline: none !important;
	box-shadow: none !important;
	background: transparent;
	-webkit-tap-highlight-color: transparent;
}

.carousel-prev {
	left: var(--space-md);
}

.carousel-next {
	right: var(--space-md);
}

.carousel-dots {
	display: flex;
	justify-content: center;
	gap: var(--space-sm);
	margin-top: var(--space-lg);
}

.carousel-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.3);
	border: none;
	cursor: pointer;
	padding: 0;
}

.carousel-dot.active {
	background: var(--color-white);
}

/* ===== PARTNERS SECTION ===== */
.partners-section {
	background-color: var(--color-white);
	padding: 10px 0;
	margin: 0;
}

.partners-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-lg);
	width: 100%;
	text-align: center;
}

.partners-heading {
	text-align: center;
	font-size: var(--font-size-sm);
	color: #999;
	font-weight: var(--font-weight-normal);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0 0 0.25rem 0;
	line-height: 1;
}

.partners-logos {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--space-xl);
	row-gap: 0.25rem;
	width: 100%;
	max-width: 1142px;
	margin: 0 auto;
	padding: 0;
}

.partner-logo-wrapper {
	flex: 1 1 auto;
	min-width: 120px;
	max-width: 190px;
	height: auto;
	min-height: 60px;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.partner-logo-wrapper a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: auto;
	text-decoration: none;
}

.partner-logo-wrapper img {
	max-width: 100%;
	max-height: 90px;
	width: auto;
	height: auto;
	transition: transform 0.3s ease;
	object-fit: contain;
}

.partner-logo-wrapper a:hover img,
.partner-logo-wrapper img:hover {
	transform: scale(1.05);
}

/* ===== INFRASTRUCTURE & SERVICES SECTIONS ===== */
.infrastructure-section {
	background-color: var(--color-bg-secondary);
}

.infrastructure-with-menu {
	position: relative;
}

.services-section {
	background-color: var(--color-white);
}

.services-with-menu {
	position: relative;
}

.services-section.services-background-gray {
	background-color: var(--color-bg-secondary);
}

.infrastructure-container,
.services-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-lg);
}


/* Infrastructure with Category Menu */
.infrastructure-section .section-heading {
	text-align: left;
	margin-bottom: var(--space-xl);
}

.infrastructure-with-menu.menu-position-right .section-heading {
	max-width: calc(100% - 410px);
	padding-right: var(--space-xl);
}

.infrastructure-with-menu.menu-position-left .section-heading {
	max-width: calc(100% - 410px);
	padding-left: var(--space-xl);
	margin-left: auto;
}

.infrastructure-with-menu .infrastructure-content-wrapper {
	position: relative;
	min-height: 440px;
}

.infrastructure-featured-content {
	max-width: calc(100% - 410px);
	transition: opacity 0.15s ease;
}

.infrastructure-with-menu.menu-position-right .infrastructure-featured-content {
	padding-right: var(--space-xl);
}

.infrastructure-with-menu.menu-position-left .infrastructure-featured-content {
	padding-left: var(--space-xl);
	margin-left: auto;
}

.featured-page-title {
	font-size: var(--font-size-2xl);
	font-family: var(--font-heading);
	margin-bottom: var(--space-lg);
	color: var(--color-primary);
}

.featured-page-title a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color 0.2s ease;
}

.featured-page-title a:hover {
	color: var(--color-primary-hover);
}

.featured-page-excerpt {
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
	margin-bottom: var(--space-lg);
	font-size: var(--font-size-md);
}

.featured-page-link {
	display: inline-block;
	color: var(--color-primary);
	text-decoration: none;
	font-weight: var(--font-weight-semibold);
	transition: color 0.2s ease;
	font-size: var(--font-size-md);
}

.featured-page-link:hover {
	color: var(--color-primary-hover);
}

/* Infrastructure category menu positioning */
.infrastructure-with-menu .category-menu {
	top: 50%;
	right: 0;
	transform: translateY(calc(-50% - 60px));
}

.infrastructure-with-menu.menu-position-right .category-menu {
	left: auto;
	right: 0;
	transform: translateY(calc(-50% - 60px));
}

.infrastructure-with-menu.menu-position-left .category-menu {
	left: 0;
	right: auto;
	transform: translateY(calc(-50% - 60px));
}

/* Desktop: show links, hide accordion */
.infrastructure-with-menu .mobile-accordion {
	display: none;
}

.infrastructure-with-menu .desktop-link {
	display: block;
	padding: var(--space-sm) var(--space-lg);
	color: var(--color-white);
	text-decoration: none;
	transition: all 0.2s ease;
	font-size: var(--font-size-md);
}

.infrastructure-with-menu .desktop-link:hover {
	text-decoration: underline;
	padding-left: calc(var(--space-lg) + 4px);
	padding-right: calc(var(--space-lg) - 4px);
}

.infrastructure-with-menu .category-menu-nav .current-page .desktop-link {
	font-weight: 700;
	text-decoration: underline;
}

@media screen and (max-width: 850px) {
	.infrastructure-with-menu .infrastructure-container {
		display: flex;
		flex-direction: column;
	}

	.infrastructure-with-menu .section-heading {
		display: block;
		max-width: 100% !important;
		padding: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		margin-bottom: var(--space-md);
		order: -1;
		text-align: left;
	}

	.infrastructure-with-menu .infrastructure-content-wrapper {
		width: 100%;
	}

	.infrastructure-with-menu .infrastructure-featured-content {
		display: none;
	}

	/* Mobile: hide desktop links, show accordion */
	.infrastructure-with-menu .desktop-link {
		display: none !important;
	}

	.infrastructure-with-menu .mobile-accordion {
		display: block;
	}

	.infrastructure-with-menu .category-menu {
		position: static !important;
		width: 100%;
		margin-top: 0;
		margin-bottom: 0;
		top: auto !important;
		transform: none !important;
	}

	.infrastructure-with-menu .category-menu-inner {
		width: 100%;
		box-shadow: none;
		background: transparent;
	}

	/* Hide menu title on mobile - we have section heading above */
	.infrastructure-with-menu .category-menu-title {
		display: none !important;
	}

	.infrastructure-with-menu .category-menu-nav {
		display: block;
	}

	.infrastructure-with-menu .category-menu-nav ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.infrastructure-with-menu .category-menu-nav li {
		border-bottom: none;
	}

	/* Accordion items */
	.infrastructure-with-menu .accordion-item {
		display: block;
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	}

	.infrastructure-with-menu .accordion-item:first-child {
		border-top: 1px solid rgba(0, 0, 0, 0.08);
	}

	.infrastructure-with-menu .accordion-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 1rem;
		cursor: pointer;
		user-select: none;
		background: var(--color-primary);
		color: var(--color-white);
	}

	.infrastructure-with-menu .accordion-title {
		flex: 1;
		font-size: 1rem;
		font-weight: 600;
	}

	.infrastructure-with-menu .accordion-icon {
		width: 20px;
		height: 20px;
		position: relative;
		flex-shrink: 0;
		margin-left: 1rem;
	}

	.infrastructure-with-menu .accordion-icon::before,
	.infrastructure-with-menu .accordion-icon::after {
		content: '';
		position: absolute;
		background: var(--color-white);
		transition: transform 0.3s ease;
	}

	.infrastructure-with-menu .accordion-icon::before {
		width: 12px;
		height: 2px;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.infrastructure-with-menu .accordion-icon::after {
		width: 2px;
		height: 12px;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.infrastructure-with-menu .accordion-item.is-open .accordion-icon::after {
		transform: translate(-50%, -50%) rotate(90deg);
	}

	.infrastructure-with-menu .accordion-content {
		max-height: 0;
		overflow: hidden;
		background: var(--color-white);
		padding: 0 1rem;
		color: var(--color-text-primary);
		opacity: 0;
		transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out, opacity 0.3s ease-in-out;
	}

	.infrastructure-with-menu .accordion-item.is-open .accordion-content {
		max-height: 1000px;
		padding: 1.5rem 1rem;
		opacity: 1;
	}

	.infrastructure-with-menu .accordion-excerpt {
		margin-bottom: var(--space-md);
		line-height: var(--line-height-relaxed);
		color: var(--color-text-secondary);
	}

	.infrastructure-with-menu .accordion-link {
		display: inline-block;
		color: var(--color-primary);
		text-decoration: none;
		font-weight: 600;
	}

	.infrastructure-with-menu .accordion-link:hover {
		text-decoration: underline;
	}
}

/* Infrastructure Alternative Layout (Image and Text) */
.infrastructure-alt-layout .section-heading {
	text-align: left;
	margin-bottom: var(--space-xl);
}

.infrastructure-alt-content {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-3xl);
	align-items: stretch;
}

@media screen and (min-width: 768px) {
	.infrastructure-alt-content {
		grid-template-columns: 1fr 1fr;
	}
}

.infrastructure-alt-text {
	order: 2;
}

@media screen and (min-width: 768px) {
	.infrastructure-alt-text {
		order: 2;
	}
}

.infrastructure-alt-body {
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
	margin-bottom: var(--space-xl);
}

.infrastructure-alt-body p {
	margin-bottom: var(--space-md);
}

.infrastructure-alt-image {
	order: 1;
	display: flex;
	align-items: stretch;
}

.infrastructure-alt-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

/* Services with Category Menu */
.services-section .section-heading {
	text-align: left;
	margin-bottom: var(--space-xl);
}

.services-with-menu.menu-position-right .section-heading {
	max-width: calc(100% - 410px);
	padding-right: var(--space-xl);
}

.services-with-menu.menu-position-left .section-heading {
	max-width: calc(100% - 410px);
	padding-left: var(--space-xl);
	margin-left: auto;
}

.services-with-menu .services-content-wrapper {
	position: relative;
	min-height: 400px;
}

.services-featured-content {
	max-width: calc(100% - 410px);
	transition: opacity 0.15s ease;
}

.services-with-menu.menu-position-right .services-featured-content {
	padding-right: var(--space-xl);
}

.services-with-menu.menu-position-left .services-featured-content {
	padding-left: var(--space-xl);
	margin-left: auto;
}

.services-with-menu .category-menu {
	top: 50%;
	right: 0;
	transform: translateY(calc(-50% - 40px));
}

.services-with-menu.menu-position-right .category-menu {
	left: auto;
	right: 0;
	transform: translateY(calc(-50% - 40px));
}

.services-with-menu.menu-position-left .category-menu {
	left: 0;
	right: auto;
	transform: translateY(calc(-50% - 40px));
}

/* Desktop: show links, hide accordion */
.services-with-menu .mobile-accordion {
	display: none;
}

.services-with-menu .desktop-link {
	display: block;
	padding: var(--space-sm) var(--space-lg);
	color: var(--color-white);
	text-decoration: none;
	transition: all 0.2s ease;
	font-size: var(--font-size-md);
}

.services-with-menu .desktop-link:hover {
	text-decoration: underline;
	padding-left: calc(var(--space-lg) + 4px);
	padding-right: calc(var(--space-lg) - 4px);
}

.services-with-menu .category-menu-nav .current-page .desktop-link {
	font-weight: 700;
	text-decoration: underline;
}

@media screen and (max-width: 850px) {
	.services-with-menu .services-container {
		display: flex;
		flex-direction: column;
	}

	.services-with-menu .section-heading {
		display: block;
		max-width: 100% !important;
		padding: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		margin-bottom: var(--space-md);
		order: -1;
		text-align: left;
	}

	.services-with-menu .services-content-wrapper {
		width: 100%;
	}

	.services-with-menu .services-featured-content {
		display: none;
	}

	/* Mobile: hide desktop links, show accordion */
	.services-with-menu .desktop-link {
		display: none !important;
	}

	.services-with-menu .mobile-accordion {
		display: block;
	}

	.services-with-menu .category-menu {
		position: static !important;
		width: 100%;
		margin-top: 0;
		margin-bottom: 0;
		top: auto !important;
		transform: none !important;
	}

	.services-with-menu .category-menu-inner {
		width: 100%;
		box-shadow: none;
		background: transparent;
	}

	/* Hide menu title on mobile - we have section heading above */
	.services-with-menu .category-menu-title {
		display: none !important;
	}

	.services-with-menu .category-menu-nav {
		display: block;
	}

	.services-with-menu .category-menu-nav ul {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.services-with-menu .category-menu-nav li {
		border-bottom: none;
	}

	.services-with-menu .accordion-item {
		display: block;
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	}

	.services-with-menu .accordion-item:first-child {
		border-top: 1px solid rgba(0, 0, 0, 0.08);
	}

	.services-with-menu .accordion-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 1rem;
		cursor: pointer;
		user-select: none;
		background: var(--color-primary);
		color: var(--color-white);
	}

	.services-with-menu .accordion-title {
		flex: 1;
		font-size: 1rem;
		font-weight: 600;
	}

	.services-with-menu .accordion-icon {
		width: 20px;
		height: 20px;
		position: relative;
		flex-shrink: 0;
		margin-left: 1rem;
	}

	.services-with-menu .accordion-icon::before,
	.services-with-menu .accordion-icon::after {
		content: '';
		position: absolute;
		background: var(--color-white);
		transition: transform 0.3s ease;
	}

	.services-with-menu .accordion-icon::before {
		width: 12px;
		height: 2px;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.services-with-menu .accordion-icon::after {
		width: 2px;
		height: 12px;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.services-with-menu .accordion-item.is-open .accordion-icon::after {
		transform: translate(-50%, -50%) rotate(90deg);
	}

	.services-with-menu .accordion-content {
		max-height: 0;
		overflow: hidden;
		background: var(--color-white);
		padding: 0 1rem;
		color: var(--color-text-primary);
		opacity: 0;
		transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out, opacity 0.3s ease-in-out;
	}

	.services-with-menu .accordion-item.is-open .accordion-content {
		max-height: 1000px;
		padding: 1.5rem 1rem;
		opacity: 1;
	}

	.services-with-menu .accordion-excerpt {
		margin-bottom: var(--space-md);
		line-height: var(--line-height-relaxed);
		color: var(--color-text-secondary);
	}

	.services-with-menu .accordion-link {
		display: inline-block;
		color: var(--color-primary);
		text-decoration: none;
		font-weight: 600;
	}

	.services-with-menu .accordion-link:hover {
		text-decoration: underline;
	}
}

/* Services Alternative Layout (Image and Text) */
.services-alt-layout .section-heading {
	text-align: left;
	margin-bottom: var(--space-xl);
}

.services-alt-content {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-3xl);
	align-items: stretch;
}

@media screen and (min-width: 768px) {
	.services-alt-content {
		grid-template-columns: 1fr 1fr;
	}
}

.services-alt-text {
	order: 2;
}

@media screen and (min-width: 768px) {
	.services-alt-text {
		order: 2;
	}
}

.services-alt-body {
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
	margin-bottom: var(--space-xl);
}

.services-alt-body p {
	margin-bottom: var(--space-md);
}

.services-alt-image {
	order: 1;
	display: flex;
	align-items: stretch;
}

.services-alt-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

/* ===== SERVICES GRID (3x3) ===== */
.services-grid-section {
	padding: var(--space-2xl) 0;
}

.services-grid-section .section-heading {
	text-align: left;
	margin-bottom: var(--space-xl);
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 var(--space-md);
}

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

.services-grid-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	text-decoration: none;
	color: inherit;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.services-grid-card:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.services-grid-card:hover .services-grid-card-title {
	text-decoration: underline;
}

.services-grid-card-image {
	height: 0;
	padding-bottom: 33.33%; /* 1/3 height ratio - approx 133px at 400px width */
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%);
}

.services-grid-card-image img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.services-grid-card-placeholder {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%);
}

.services-grid-card-content {
	padding: 1rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.services-grid-card-title {
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0 0 0.5rem 0;
	color: var(--color-primary);
	line-height: 1.3;
}

.services-grid-card-excerpt {
	font-size: 0.875rem;
	color: #64748b;
	margin: 0;
	line-height: 1.5;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Tablet: 2 columns */
@media screen and (max-width: 900px) {
	.services-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Hide accordion on desktop */
.services-grid-accordion {
	display: none;
}

/* Mobile: accordion view */
@media screen and (max-width: 600px) {
	.services-grid {
		display: block;
	}

	.services-grid-card-desktop {
		display: none;
	}

	.services-grid-accordion {
		display: block;
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	}

	.services-grid-accordion:first-of-type {
		border-top: 1px solid rgba(0, 0, 0, 0.08);
	}

	.services-grid-accordion-header {
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 1rem 0;
		background: #fff;
		border: none;
		cursor: pointer;
		text-align: left;
		outline: none;
		-webkit-tap-highlight-color: transparent;
	}

	.services-grid-accordion-header:hover,
	.services-grid-accordion-header:focus,
	.services-grid-accordion-header:active {
		background: #fff;
		outline: none;
		box-shadow: none;
	}

	.services-grid-accordion-title {
		font-size: 1rem;
		font-weight: 600;
		color: var(--color-text-primary);
	}

	.services-grid-accordion-icon {
		width: 20px;
		height: 20px;
		position: relative;
		flex-shrink: 0;
		margin-left: 1rem;
	}

	.services-grid-accordion-icon::before,
	.services-grid-accordion-icon::after {
		content: '';
		position: absolute;
		background: var(--color-primary);
		transition: transform 0.3s ease;
	}

	.services-grid-accordion-icon::before {
		width: 12px;
		height: 2px;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.services-grid-accordion-icon::after {
		width: 2px;
		height: 12px;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.services-grid-accordion-header[aria-expanded="true"] .services-grid-accordion-icon::after {
		transform: translate(-50%, -50%) rotate(90deg);
	}

	.services-grid-accordion-body {
		max-height: 0;
		overflow: hidden;
		padding-bottom: 0;
		opacity: 0;
		transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out, opacity 0.3s ease-in-out;
	}

	.services-grid-accordion.is-open .services-grid-accordion-body {
		max-height: 1000px;
		padding-bottom: 1.5rem;
		opacity: 1;
	}

	.services-grid-accordion-image {
		width: 100%;
		height: 180px;
		margin-bottom: 1rem;
		overflow: hidden;
	}

	.services-grid-accordion-image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.services-grid-accordion-excerpt {
		font-size: 0.9375rem;
		color: #64748b;
		line-height: 1.6;
		margin: 0 0 1rem 0;
		display: -webkit-box;
		-webkit-line-clamp: 12;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.services-grid-accordion-link {
		display: inline-block;
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--color-primary);
		text-decoration: none;
	}

	.services-grid-accordion-link:hover {
		text-decoration: underline;
	}

	.services-grid-section {
		padding: var(--space-xl) var(--space-md);
	}

	.services-grid-section .section-heading {
		padding: 0;
	}
}

/* Services Grid Modal */
.services-grid-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.services-grid-modal.is-open {
	opacity: 1;
	visibility: visible;
}

.services-grid-modal-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
	cursor: pointer;
}

.services-grid-modal-container {
	position: relative;
	background: #fff;
	width: 90%;
	max-width: 900px;
	max-height: 85vh;
	border-radius: 8px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
	display: flex;
	flex-direction: column;
	transform: translateY(20px);
	transition: transform 0.3s ease;
	overscroll-behavior: contain;
}

.services-grid-modal.is-open .services-grid-modal-container {
	transform: translateY(0);
}

.services-grid-modal-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 32px;
	height: 32px;
	background: transparent;
	color: var(--color-primary);
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10;
	padding: 0;
	transition: opacity 0.2s ease;
}

.services-grid-modal-close:hover {
	opacity: 0.7;
}

.services-grid-modal-close svg {
	width: 20px;
	height: 20px;
}

.services-grid-modal-content {
	flex: 1;
	overflow-y: auto;
	padding: 2rem;
	padding-top: 3rem;
	min-height: 200px;
}

.services-grid-modal-title {
	font-size: 1.75rem;
	font-weight: 400;
	color: var(--color-primary);
	margin: 0 0 1.5rem 0;
}

/* Contact block fixes for modal */
.services-grid-modal-content .contact-block {
	position: relative;
	clear: both;
	margin-top: 2rem;
}

.services-grid-modal-content .contact-details {
	margin-top: 0;
}

.services-grid-modal-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 200px;
}

.services-grid-modal-spinner {
	width: 40px;
	height: 40px;
	border: 3px solid #e2e8f0;
	border-top-color: var(--color-primary);
	border-radius: 50%;
	animation: services-grid-spin 0.8s linear infinite;
}

@keyframes services-grid-spin {
	to { transform: rotate(360deg); }
}

/* Mobile modal adjustments */
@media screen and (max-width: 600px) {
	.services-grid-modal-container {
		width: 95%;
		max-height: 90vh;
	}

	.services-grid-modal-content {
		padding: 1.5rem;
		padding-top: 2.5rem;
	}

	.services-grid-modal-close {
		top: 0.75rem;
		right: 0.75rem;
	}
}

/* ===== INTRODUCTION SECTION ===== */
.introduction-section {
	background-color: var(--color-white);
	padding: 0;
}

.introduction-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
}

/* Grid: Mobile single column */
.introduction-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	align-items: center;
}

/* Mobile order: r1c1, r1c2, r2c2, r2c1 (text before image on row 2) */
.intro-row1-col1 {
	order: 1;
	padding: 0 var(--space-lg);
	margin-bottom: var(--space-md);
}

.intro-row1-col2 {
	order: 2;
	justify-self: center;
	padding: 0 var(--space-lg);
	margin-bottom: var(--space-md);
}

.intro-row2-col2 {
	order: 3;
	padding: 0 var(--space-lg);
	margin-bottom: var(--space-md);
}

.intro-row2-col1 {
	order: 4;
	justify-self: center;
	padding: 0 var(--space-lg);
}

@media screen and (min-width: 768px) {
	.introduction-grid {
		grid-template-columns: repeat(3, 1fr);
		grid-template-rows: auto auto;
		gap: 0;
		row-gap: 0;
	}

	/* Row 1: Text spans 2 columns, Image in 1 column */
	.intro-row1-col1 {
		grid-column: 1 / 3;
		grid-row: 1;
		order: unset;
		padding: var(--space-2xl) var(--space-xl);
		margin-bottom: 0;
	}

	.intro-row1-col2 {
		grid-column: 3 / 4;
		grid-row: 1;
		order: unset;
		justify-self: center;
		padding: var(--space-xl);
		margin-bottom: 0;
	}

	/* Row 2: Image in 1 column, Text spans 2 columns */
	.intro-row2-col1 {
		grid-column: 1 / 2;
		grid-row: 2;
		order: unset;
		justify-self: center;
		padding: var(--space-xl);
		margin-bottom: 0;
	}

	.intro-row2-col2 {
		grid-column: 2 / 4;
		grid-row: 2;
		order: unset;
		padding: var(--space-2xl) var(--space-xl);
	}
}

/* Text blocks styling */
.intro-text-block {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.introduction-body {
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
	margin-bottom: var(--space-md);
}

.intro-row2-col2 .introduction-body {
	margin-bottom: var(--space-lg);
}

/* Hexagon image wrapper */
.intro-hexagon-block {
	display: flex;
	align-items: center;
	justify-content: center;
}

.intro-hexagon-image {
	position: relative;
	width: 240px;
	height: 280px;
}

.intro-hexagon-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

@media screen and (min-width: 768px) {
	.intro-hexagon-image {
		width: 300px;
		height: 350px;
	}
}

@media screen and (min-width: 1024px) {
	.intro-hexagon-image {
		width: 340px;
		height: 390px;
	}
}

/* Button styling */
.btn-primary {
	display: inline-block;
	background-color: var(--color-white);
	color: var(--color-primary);
	padding: var(--space-sm) var(--space-lg);
	border-radius: 4px;
	text-decoration: none;
	font-weight: var(--font-weight-semibold);
	font-size: var(--font-size-sm);
	transition: all 0.25s ease;
	border: 2px solid var(--color-primary);
	letter-spacing: 0.02em;
}

.btn-primary:hover {
	background-color: var(--color-primary);
	color: var(--color-white);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0, 96, 170, 0.25);
}

.btn-primary:active {
	transform: translateY(0);
	box-shadow: 0 2px 6px rgba(0, 96, 170, 0.2);
}

/* Introduction section link - text with arrow, no box */
.intro-text-block .btn-primary {
	background-color: transparent;
	padding: 0;
	font-size: var(--font-size-md);
	color: var(--color-primary);
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	border: none;
	border-radius: 0;
}

.intro-text-block .btn-primary::after {
	content: '→';
	transition: transform 0.2s ease;
}

.intro-text-block .btn-primary:hover {
	text-decoration: none;
	background-color: transparent;
	box-shadow: none;
	transform: none;
	color: var(--color-primary-hover);
}

.intro-text-block .btn-primary:hover::after {
	transform: translateX(4px);
}

/* ===== PLANS SECTION ===== */
.plans-section {
	background-color: var(--color-bg-secondary);
}

.plans-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-lg);
}

.plans-columns {
	display: block;
}

@media screen and (min-width: 768px) {
	.plans-columns {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: var(--space-3xl);
	}
}

.plans-column ul {
	list-style: none;
	padding: 0;
}

.plans-column li {
	list-style: none;
	padding-left: var(--space-lg);
	margin-bottom: var(--space-md);
	position: relative;
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
}

.plans-column li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 10px;
	width: 8px;
	height: 8px;
	background-color: var(--color-primary);
}

/* ===== RESEARCH SECTION ===== */
.research-section {
	position: relative;
	padding: var(--space-xl) 0;
}

.research-section.research-background-gray {
	background-color: var(--color-bg-secondary);
}

.research-section.research-background-white {
	background-color: var(--color-white);
}

.research-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-lg);
	position: relative;
}

.research-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--space-md);
}

.research-scroll-arrows {
	display: flex;
	gap: var(--space-sm);
}

.research-arrow {
	background: var(--color-white);
	color: var(--color-primary);
	border: 2px solid var(--color-primary);
	width: 40px;
	height: 40px;
	border-radius: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	padding: 0;
}

.research-arrow svg {
	width: 20px;
	height: 20px;
	stroke: var(--color-primary);
	transition: stroke 0.2s ease;
}

.research-arrow:hover {
	background: var(--color-primary);
	color: var(--color-white);
}

.research-arrow:hover svg {
	stroke: var(--color-white);
}

.research-arrow:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.research-grid-wrapper {
	overflow-x: auto;
	overflow-y: visible;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.research-grid-wrapper::-webkit-scrollbar {
	display: none;
}

.research-grid {
	display: flex;
	gap: var(--space-xl);
}

.research-card {
	background: transparent;
	border-radius: 0;
	overflow: visible;
	position: relative;
	flex: 0 0 100%;
	display: flex;
	flex-direction: row;
	align-items: center;
	padding: 0;
	gap: var(--space-xl);
}

.research-card-content {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.research-card-title {
	margin: 0;
	font-size: var(--font-size-xl);
	font-weight: normal;
	color: var(--color-primary);
	font-family: var(--font-heading);
}

.research-card-links {
	margin: 0;
}

.research-card-body {
	margin: 0;
	color: var(--color-text);
	line-height: 1.6;
}

.research-card-body p:last-child {
	margin-bottom: 0;
}

.research-card-link {
	display: inline-flex;
	align-items: center;
	color: var(--color-primary);
	text-decoration: none;
	font-weight: var(--font-weight-semibold);
	transition: opacity 0.2s ease;
}

.research-card-link:hover {
	opacity: 0.7;
	text-decoration: underline;
}

.research-card-hexagon {
	flex: 0 0 350px;
	width: 350px;
	min-height: 403px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.research-card-hexagon .hexagon {
	position: relative;
	width: 350px;
	height: 403px;
	background-color: var(--color-primary);
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.15));
}

.research-card-hexagon .hexagon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (max-width: 768px) {
	.research-card {
		flex-direction: column;
		overflow: visible;
	}

	.research-card-hexagon {
		order: -1;
		margin-bottom: var(--space-md);
		flex: 0 0 auto;
		width: 280px;
		min-height: 322px;
	}

	.research-card-hexagon .hexagon {
		width: 280px;
		height: 322px;
	}
}

/* ===== LATEST NEWS SECTION ===== */
.latest-news-section {
	background-color: var(--color-white);
	position: relative;
}

.latest-news-section.news-background-gray {
	background-color: var(--color-bg-secondary);
}

.latest-news-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-lg);
	position: relative;
}

.latest-news-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--space-xl);
}

.news-scroll-arrows {
	display: flex;
	gap: var(--space-sm);
}

.news-arrow {
	background: var(--color-white);
	color: var(--color-primary);
	border: 2px solid var(--color-primary);
	width: 40px;
	height: 40px;
	border-radius: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	padding: 0;
}

.news-arrow svg {
	width: 20px;
	height: 20px;
	stroke: var(--color-primary);
	transition: stroke 0.2s ease;
}

.news-arrow:hover {
	background: var(--color-primary);
	color: var(--color-white);
}

.news-arrow:hover svg {
	stroke: var(--color-white);
}

.news-arrow:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

/* Mobile navigation - hidden on desktop */
.news-mobile-nav {
	display: none;
}

@media screen and (max-width: 768px) {
	/* Hide desktop arrows on mobile */
	.news-scroll-arrows {
		display: none;
	}

	/* Show mobile navigation */
	.news-mobile-nav {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-top: var(--space-lg);
		padding: 0 var(--space-md);
	}

	.news-mobile-arrow {
		background: var(--color-white);
		color: var(--color-primary);
		border: 2px solid var(--color-primary);
		width: 40px;
		height: 40px;
		border-radius: 0;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		transition: all 0.2s ease;
		padding: 0;
	}

	.news-mobile-arrow svg {
		width: 20px;
		height: 20px;
		stroke: var(--color-primary);
		transition: stroke 0.2s ease;
	}

	.news-mobile-arrow:hover {
		background: var(--color-primary);
	}

	.news-mobile-arrow:hover svg {
		stroke: var(--color-white);
	}

	.news-mobile-arrow:focus,
	.news-mobile-arrow:focus-visible,
	.news-mobile-arrow:active {
		outline: none !important;
		box-shadow: none !important;
		-webkit-tap-highlight-color: transparent;
	}

	.news-mobile-dots {
		display: flex;
		gap: var(--space-sm);
		align-items: center;
	}

	.news-mobile-dot {
		width: 10px;
		height: 10px;
		border-radius: 50%;
		background: #999;
		border: none;
		cursor: pointer;
		padding: 0;
		transition: background 0.2s ease, transform 0.2s ease;
	}

	.news-mobile-dot:hover {
		background: var(--color-primary);
		opacity: 0.7;
	}

	.news-mobile-dot.active {
		background: var(--color-primary);
		transform: scale(1.2);
	}

	.news-mobile-dot:focus,
	.news-mobile-dot:focus-visible {
		outline: none !important;
		box-shadow: none !important;
		-webkit-tap-highlight-color: transparent;
	}
}

.news-grid-wrapper {
	overflow-x: auto;
	overflow-y: visible;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.news-grid-wrapper::-webkit-scrollbar {
	display: none;
}

.news-grid {
	display: flex;
	gap: var(--space-xl);
	scroll-behavior: smooth;
	padding-right: 10px;
	padding-bottom: 20px;
}

.news-card {
	background: var(--color-white);
	border-radius: 0;
	overflow: hidden;
	box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	position: relative;
	flex: 0 0 calc(33.333% - 20px);
	display: flex;
	flex-direction: column;
	min-width: 280px;
}

@media screen and (max-width: 1024px) {
	.news-card {
		flex: 0 0 calc(50% - 15px);
	}
}

@media screen and (max-width: 768px) {
	.news-card {
		flex: 0 0 calc(100% - 10px);
	}
}

.news-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 20px rgba(0, 96, 170, 0.15);
}

.news-card-image {
	overflow: hidden;
	height: 250px;
	flex-shrink: 0;
	position: relative;
}

.news-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.news-card:hover .news-card-image img {
	transform: scale(1.05);
}

.news-card-image-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.8) 100%);
	pointer-events: none;
	z-index: 1;
}

.news-card-image-placeholder {
	background: linear-gradient(135deg, #003d7a 0%, #0060aa 50%, #0059b3 100%);
}

.news-card-placeholder-link {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: block;
}

.news-card-content {
	padding: var(--space-md);
	display: flex;
	flex-direction: column;
	flex: 1;
}

.news-card-date {
	position: absolute;
	top: 0;
	right: 0;
	background-color: var(--color-primary);
	color: var(--color-white);
	padding: var(--space-sm) var(--space-md);
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-semibold);
	z-index: 2;
}

.news-card-title {
	margin: 0;
	line-height: 1.2;
}

.news-card-content .news-card-title {
	margin: 0 0 var(--space-sm) 0;
}

.news-card-image .news-card-title {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var(--space-md);
	margin: 0;
	z-index: 2;
}

.news-card-title a {
	color: var(--color-primary);
	text-decoration: none;
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-bold);
	font-family: var(--font-heading);
	transition: color 0.2s ease;
	display: block;
}

.news-card-image .news-card-title a {
	color: var(--color-white);
}

.news-card-title a:hover {
	color: var(--color-primary-hover);
}

.news-card-image .news-card-title a:hover {
	color: var(--color-white);
	opacity: 0.9;
}

.news-card-excerpt {
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
	margin: 0 0 var(--space-md) 0;
	flex: 1;
}

.news-card-link {
	color: var(--color-primary);
	text-decoration: none;
	font-weight: var(--font-weight-semibold);
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	transition: gap 0.2s ease;
	margin-top: auto;
}

.news-card-link:hover {
	gap: var(--space-sm);
	color: var(--color-primary-hover);
}

.news-archive-link-wrapper {
	text-align: right;
	margin-top: var(--space-2xl);
}

.news-archive-link {
	color: var(--color-primary);
	text-decoration: none;
	font-weight: var(--font-weight-semibold);
	font-size: var(--font-size-lg);
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	transition: gap 0.2s ease;
}

.news-archive-link:hover {
	gap: var(--space-sm);
	color: var(--color-primary-hover);
}

.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Page Layout
--------------------------------------------- */
.page-layout,
.post-layout {
	background-color: var(--color-bg-primary);
}

.page-header-wrapper {
	position: relative;
}

.page-header {
	background-color: var(--color-primary);
	background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);
	padding: var(--space-4xl) 0 var(--space-xl) 0;
	margin-bottom: 0;
	margin-top: -100px;
	padding-top: calc(var(--space-4xl) + 100px);
	min-height: 287px;
	display: flex;
	align-items: flex-end;
	position: relative;
}

.page-header.has-background-image {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	min-height: 387px;
}

.page-header-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.3) 100%);
	z-index: 0;
}

.page-header .page-container {
	position: relative;
	z-index: 1;
}

.page-header .entry-meta {
	color: rgba(255, 255, 255, 0.95);
	font-size: 16px;
	margin-top: 12px;
}

.page-header .entry-meta .posted-on {
	color: rgba(255, 255, 255, 0.95);
}

.page-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-lg);
	width: 100%;
}

.page-content-wrapper .page-container {
	padding: var(--space-xl) var(--space-lg);
}

.page-content-wrapper {
	margin: 0;
}

/* Breadcrumbs
--------------------------------------------- */
.breadcrumbs {
	background-color: transparent;
	padding: var(--space-xs) 0;
	font-size: var(--font-size-sm);
}

.category-page-layout .breadcrumbs {
	background-color: var(--color-white);
}

.breadcrumbs a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color 0.3s ease;
}

.breadcrumbs a:hover {
	color: var(--color-accent);
}

.breadcrumb-home-icon {
	width: 16px;
	height: 16px;
	display: inline-block;
	vertical-align: middle;
	margin-top: -2px;
}

.breadcrumb-separator {
	margin: 0 var(--space-xs);
	color: var(--color-gray);
	font-weight: normal;
}

.breadcrumb-current {
	color: var(--color-text);
	font-weight: 500;
}

/* Category Menu
--------------------------------------------- */
.category-menu {
	position: absolute;
	top: 33.33%;
	right: 0;
	width: 370px;
	z-index: 10;
}

@media screen and (min-width: 1201px) {
	.category-menu {
		right: calc((100% - 1200px) / 2);
	}
}

.category-menu-inner {
	background-color: var(--color-primary);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	overflow: hidden;
}

.category-menu-title {
	background-color: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: var(--font-size-lg);
	font-weight: 600;
	margin: 0;
	padding: var(--space-md) var(--space-lg);
}

.category-menu-title a {
	color: var(--color-white);
	text-decoration: none;
	display: block;
}

.category-menu-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.category-menu-nav li {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.category-menu-nav li:last-child {
	border-bottom: none;
}

.category-menu-nav a {
	display: block;
	padding: var(--space-sm) var(--space-lg);
	color: var(--color-white);
	text-decoration: none;
	transition: all 0.2s ease;
	font-size: var(--font-size-md);
}

.category-menu-nav a:hover {
	text-decoration: underline;
	padding-left: calc(var(--space-lg) + 4px);
	padding-right: calc(var(--space-lg) - 4px);
}

.category-menu-nav .current-page a {
	font-weight: 700;
	text-decoration: underline;
}

.category-menu-nav .current-page a:hover {
	text-decoration: underline;
}

.category-see-all {
	margin-top: 20px;
	padding-top: 15px;
	border-top: 1px solid var(--color-light-grey);
}

.see-all-link {
	display: inline-block;
	color: var(--color-primary);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.see-all-link:hover {
	opacity: 0.8;
	text-decoration: none;
}


/* Contact Block
--------------------------------------------- */
.contact-block {
	display: flex;
	align-items: flex-start;
	gap: var(--space-lg);
	margin-bottom: var(--space-lg);
	max-width: 400px;
}

.contact-hexagon {
	width: 100px;
	height: 115px;
	flex-shrink: 0;
	position: relative;
	margin-top: var(--space-xs);
}

.contact-hexagon-inner {
	width: 100%;
	height: 100%;
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
	overflow: hidden;
	background-color: var(--color-light-gray);
}

.contact-hexagon-inner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.contact-details {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	margin-top: -16px;
}

.contact-name {
	font-family: var(--font-heading);
	font-size: var(--font-size-xl);
	font-weight: 600;
	color: var(--color-primary);
	margin: 0 0 var(--space-sm) 0;
	line-height: 1.2;
}

.contact-position {
	font-size: var(--font-size-md);
	font-weight: 600;
	color: var(--color-text);
	margin: 0 0 var(--space-xs) 0;
}

.contact-email {
	font-size: var(--font-size-sm);
	margin: 0;
}

.contact-email a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color 0.3s ease;
}

.contact-email a:hover {
	color: var(--color-accent);
	text-decoration: underline;
}

.contact-website {
	font-size: var(--font-size-sm);
	margin: 0;
}

.contact-website a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color 0.3s ease;
}

.contact-website a:hover {
	color: var(--color-accent);
	text-decoration: underline;
}

.contact-custom {
	font-size: var(--font-size-sm);
	margin: 0;
	color: var(--color-text);
}

@media screen and (max-width: 480px) {
	.contact-block {
		flex-direction: column;
		align-items: center;
	}

	.contact-hexagon {
		width: 120px;
		height: 138px;
		margin-bottom: var(--space-md);
	}

	.contact-details {
		text-align: center;
	}
}

.page-title {
	font-family: var(--font-heading);
	font-size: var(--font-size-2xl);
	font-weight: 400;
	color: var(--color-white);
	margin: 0;
	line-height: 1.2;
	text-align: left;
	max-width: 620px;
}

@media screen and (max-width: 768px) {
	.page-title {
		font-size: var(--font-size-xl);
	}
}

/* Two-column layout for pages/posts with sidebar */
.page-with-sidebar-layout {
	display: flex;
	gap: var(--space-2xl);
	align-items: flex-start;
}

.page-content {
	margin: 0;
	line-height: 1.8;
	max-width: 750px;
	flex: 1;
}

.page-sidebar {
	width: 370px;
	flex-shrink: 0;
	margin-top: 0;
}

.page-sidebar-content {
	background-color: var(--color-white);
	padding: var(--space-lg);
}

.page-sidebar-content h2,
.page-sidebar-content h3,
.page-sidebar-content h4 {
	color: var(--color-primary);
	margin-top: var(--space-md);
	margin-bottom: var(--space-sm);
}

.page-sidebar-content h2:first-child,
.page-sidebar-content h3:first-child,
.page-sidebar-content h4:first-child {
	margin-top: 0;
}

.page-sidebar-content p {
	margin-bottom: var(--space-md);
}

.page-sidebar-content img {
	max-width: 100%;
	height: auto;
	margin-bottom: var(--space-md);
}

.page-sidebar-content ul,
.page-sidebar-content ol {
	margin-bottom: var(--space-md);
	padding-left: var(--space-lg);
}

/* Mobile category menu placement */
.category-menu-mobile {
	display: none;
}

@media screen and (max-width: 985px) {
	.page-with-sidebar-layout {
		flex-direction: column;
		position: relative;
	}

	.page-content {
		order: 1;
	}

	.page-sidebar {
		width: 100%;
		max-width: 750px;
		margin-top: var(--space-xl);
		order: 2;
	}

	/* Hide category menu from header on mobile */
	.page-header-wrapper .category-menu {
		display: none;
	}

	/* Show category menu at bottom on mobile */
	.category-menu-mobile {
		display: block;
		order: 3;
		width: 100%;
		margin-top: var(--space-xl);
	}

	.category-menu-mobile .category-menu {
		position: static;
		width: 100%;
		margin-top: 0;
	}
}

/* Let WordPress editor handle all content styling */
.page-content > * {
	margin-bottom: var(--space-md);
}

.page-content h2,
.page-content h3,
.page-content h4,
.page-content h5,
.page-content h6 {
	margin-top: var(--space-xl);
	margin-bottom: var(--space-md);
}

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

.page-content ul,
.page-content ol {
	padding-left: var(--space-lg);
}

.page-footer {
	margin-top: var(--space-2xl);
	padding-top: var(--space-lg);
	border-top: 1px solid var(--color-light-gray);
}

.page-footer .edit-link a {
	color: var(--color-primary);
	text-decoration: none;
	font-size: var(--font-size-sm);
}

.page-footer .edit-link a:hover {
	text-decoration: underline;
}

/* Category Page Cards
--------------------------------------------- */
.category-page-layout .page-content-wrapper {
	margin: 0;
	background-color: var(--color-white);
}

.category-page-layout .page-content-wrapper .page-container {
	padding: var(--space-3xl) var(--space-lg);
	background-color: var(--color-white);
}

.category-page-list {
	max-width: 800px;
	margin: 0 auto;
}

.category-page-card {
	display: flex;
	gap: var(--space-xl);
	padding: var(--space-xl) 0;
	border-bottom: 1px solid #e0e0e0;
}

.category-page-card:first-child {
	padding-top: 0;
}

.category-page-card:last-child {
	border-bottom: none;
}

.category-page-card-image {
	flex-shrink: 0;
	width: 200px;
}

.category-page-card-image a {
	display: block;
}

.category-page-card-image img {
	width: 100%;
	height: auto;
	display: block;
}

.category-page-card-content {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.category-page-card-title {
	font-family: var(--font-heading);
	font-size: var(--font-size-xl);
	font-weight: 600;
	margin: 0 0 var(--space-md) 0;
	line-height: 1.3;
}

.category-page-card-title a {
	color: var(--color-primary);
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.category-page-card-title a:hover {
	opacity: 0.8;
}

.category-page-card-date {
	color: var(--color-text-light);
	font-size: 14px;
	margin-bottom: var(--space-sm);
}

.category-page-card-excerpt {
	font-size: var(--font-size-md);
	line-height: 1.6;
	color: var(--color-text);
	margin-bottom: var(--space-md);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.category-page-card-link {
	color: var(--color-primary);
	text-decoration: none;
	font-weight: 600;
	font-size: var(--font-size-md);
	transition: color 0.2s ease;
	align-self: flex-start;
}

.category-page-card-link:hover {
	color: var(--color-accent);
	text-decoration: underline;
}

@media screen and (max-width: 768px) {
	.category-page-card {
		flex-direction: column;
		gap: var(--space-md);
	}

	.category-page-card-image {
		width: 100%;
	}
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

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

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/*--------------------------------------------------------------
# Color Utilities
--------------------------------------------------------------*/

/* Text Colors */
.text-primary { color: var(--color-primary) !important; }
.text-accent { color: var(--color-accent) !important; }
.text-secondary { color: var(--color-text-secondary) !important; }
.text-white { color: var(--color-white) !important; }
.text-dark-gray { color: var(--color-dark-gray) !important; }

/* Background Colors */
.bg-primary { background-color: var(--color-primary) !important; }
.bg-accent { background-color: var(--color-accent) !important; }
.bg-light { background-color: var(--color-bg-secondary) !important; }
.bg-white { background-color: var(--color-white) !important; }
.bg-dark { background-color: var(--color-bg-dark) !important; }

/* Button Variants */
.button-secondary {
	background-color: var(--color-button-secondary) !important;
}

.button-secondary:hover {
	background-color: var(--color-button-secondary-hover) !important;
}

.button-outline {
	background-color: transparent !important;
	color: var(--color-primary) !important;
	border: 2px solid var(--color-primary) !important;
}

.button-outline:hover {
	background-color: var(--color-primary) !important;
	color: var(--color-white) !important;
}

/*--------------------------------------------------------------
# Typography Utilities
--------------------------------------------------------------*/

/* Font Families */
.font-heading { font-family: var(--font-heading) !important; }
.font-body { font-family: var(--font-body) !important; }
.font-mono { font-family: var(--font-mono) !important; }

/* Font Sizes */
.text-xs { font-size: var(--font-size-xs) !important; }
.text-sm { font-size: var(--font-size-sm) !important; }
.text-md { font-size: var(--font-size-md) !important; }
.text-lg { font-size: var(--font-size-lg) !important; }
.text-xl { font-size: var(--font-size-xl) !important; }
.text-2xl { font-size: var(--font-size-2xl) !important; }
.text-3xl { font-size: var(--font-size-3xl) !important; }
.text-4xl { font-size: var(--font-size-4xl) !important; }
.text-5xl { font-size: var(--font-size-5xl) !important; }

/* Font Weights */
.font-light { font-weight: var(--font-weight-light) !important; }
.font-normal { font-weight: var(--font-weight-normal) !important; }
.font-semibold { font-weight: var(--font-weight-semibold) !important; }
.font-bold { font-weight: var(--font-weight-bold) !important; }

/* Line Heights */
.leading-tight { line-height: var(--line-height-tight) !important; }
.leading-normal { line-height: var(--line-height-normal) !important; }
.leading-relaxed { line-height: var(--line-height-relaxed) !important; }
.leading-loose { line-height: var(--line-height-loose) !important; }

/* Letter Spacing */
.tracking-tight { letter-spacing: var(--letter-spacing-tight) !important; }
.tracking-normal { letter-spacing: var(--letter-spacing-normal) !important; }
.tracking-wide { letter-spacing: var(--letter-spacing-wide) !important; }
.tracking-wider { letter-spacing: var(--letter-spacing-wider) !important; }

/* Text Alignment */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }

/* Text Transform */
.uppercase { text-transform: uppercase !important; }
.lowercase { text-transform: lowercase !important; }
.capitalize { text-transform: capitalize !important; }

/* Text Style */
.italic { font-style: italic !important; }
.not-italic { font-style: normal !important; }

/* Category Word Cloud
--------------------------------------------- */
.category-word-cloud {
	display: none; /* Hidden by default on pages */
	line-height: 2;
	margin: var(--space-lg) 0;
}

/* Show in infrastructure section AJAX cards */
.infrastructure-featured-content .category-word-cloud,
.accordion-content .category-word-cloud {
	display: block;
}

.category-word-cloud a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color 0.2s ease;
	white-space: nowrap;
}

.category-word-cloud a:hover {
	color: var(--color-primary-hover);
	text-decoration: underline;
}

/* Clean list formatting inside accordion */
.accordion-content .category-word-cloud {
	line-height: 1.5;
	margin: 0;
}

.accordion-content .category-word-cloud * {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: inherit !important;
}

.accordion-content .category-word-cloud h3,
.accordion-content .category-word-cloud h4,
.accordion-content .category-word-cloud h5,
.accordion-content .category-word-cloud strong {
	font-size: inherit !important;
	font-weight: bold !important;
}

.accordion-content .category-word-cloud h3::after,
.accordion-content .category-word-cloud h4::after,
.accordion-content .category-word-cloud h5::after,
.accordion-content .category-word-cloud strong::after {
	content: ': ';
}

.accordion-content .category-word-cloud ul,
.accordion-content .category-word-cloud ol {
	list-style: none !important;
}

.accordion-content .category-word-cloud li::before {
	display: none !important;
}

.accordion-content .category-word-cloud br {
	display: none !important;
}

.accordion-content .category-word-cloud p {
	margin: 0 !important;
	padding: 0 !important;
}

.accordion-content .category-word-cloud p::after {
	content: ' ';
}

/* Hexagon Pattern Overlay
--------------------------------------------- */
.hero-section::before,
.page-header::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-image: url('data:image/svg+xml;utf8,<svg width="94" height="84" xmlns="http://www.w3.org/2000/svg"><path d="M 21.5 0 L 43 12.5 L 43 37.5 L 21.5 50 L 0 37.5 L 0 12.5 Z" fill="none" stroke="white" stroke-width="1"/><path d="M 68.5 0 L 90 12.5 L 90 37.5 L 68.5 50 L 47 37.5 L 47 12.5 Z" fill="none" stroke="white" stroke-width="1"/><path d="M -1.5 42 L 20 54.5 L 20 79.5 L -1.5 92 L -23 79.5 L -23 54.5 Z" fill="none" stroke="white" stroke-width="1"/><path d="M 45 42 L 66.5 54.5 L 66.5 79.5 L 45 92 L 23.5 79.5 L 23.5 54.5 Z" fill="none" stroke="white" stroke-width="1"/><path d="M 91.5 42 L 113 54.5 L 113 79.5 L 91.5 92 L 70 79.5 L 70 54.5 Z" fill="none" stroke="white" stroke-width="1"/><path d="M -1.5 -42 L 20 -29.5 L 20 -4.5 L -1.5 8 L -23 -4.5 L -23 -29.5 Z" fill="none" stroke="white" stroke-width="1"/><path d="M 45 -42 L 66.5 -29.5 L 66.5 -4.5 L 45 8 L 23.5 -4.5 L 23.5 -29.5 Z" fill="none" stroke="white" stroke-width="1"/><path d="M 91.5 -42 L 113 -29.5 L 113 -4.5 L 91.5 8 L 70 -4.5 L 70 -29.5 Z" fill="none" stroke="white" stroke-width="1"/></svg>');
	background-size: 94px 84px;
	background-repeat: repeat;
	opacity: 0.05;
	z-index: 0;
	pointer-events: none;
}

.hero-container,
.page-header .page-container {
	position: relative;
	z-index: 1;
}

/*--------------------------------------------------------------
# EU Fund Widget
--------------------------------------------------------------*/

/* Widget Container - Base styles */
.eu-fund-widget {
	position: fixed;
	z-index: 999;
	cursor: pointer;
	transition: all 0.5s cubic-bezier(0.4, 0.0, 0.2, 1);
}

/* Side Widget (Front Page) - Vertical on right side */
.eu-fund-widget-side {
	top: 120px;
	right: -200px;
}

.eu-fund-widget-side.visible {
	right: 0;
}

.eu-fund-widget-side.hidden {
	right: -200px;
}

/* Show desktop logo, hide mobile logo on desktop */
.eu-fund-widget-side .eu-fund-logo-desktop {
	display: block;
}

.eu-fund-widget-side .eu-fund-logo-mobile {
	display: none;
}

/* Add small padding for read more text on side widget */
.eu-fund-widget-side .eu-fund-read-more {
	padding: 8px 10px;
}

/* Bottom Widget (Other Pages) - Horizontal at bottom right */
.eu-fund-widget-bottom {
	bottom: -100px;
	right: 10px;
}

.eu-fund-widget-bottom.visible {
	bottom: 10px;
}

.eu-fund-widget-bottom.hidden {
	bottom: -100px;
}

.eu-fund-widget-bottom .eu-fund-widget-trigger {
	flex-direction: row;
	padding: 0;
	border: none;
}

.eu-fund-widget-bottom .eu-fund-widget-trigger img {
	width: auto;
	height: 80px;
	max-width: 200px;
}

/* Hide read more text for bottom widget */
.eu-fund-widget-bottom .eu-fund-read-more {
	display: none;
}

/* Widget Trigger */
.eu-fund-widget-trigger {
	background-color: var(--color-white);
	padding: 0;
	border-radius: 0;
	box-shadow: -4px 4px 12px rgba(0, 0, 0, 0.1);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	transition: all 0.3s ease;
	border: none;
}

.eu-fund-widget-trigger:hover {
	box-shadow: -6px 6px 16px rgba(0, 0, 0, 0.15);
	transform: translateX(-3px);
}

.eu-fund-widget-trigger img {
	width: 81px;
	height: 153px;
	object-fit: contain;
	display: block;
}

.eu-fund-read-more {
	font-family: 'Montserrat', sans-serif;
	font-size: 11px;
	font-weight: 600;
	color: var(--color-primary);
	text-align: center;
	line-height: 1.3;
	transition: color 0.3s ease;
}

.eu-fund-widget-trigger:hover .eu-fund-read-more {
	color: var(--color-primary-hover);
	text-decoration: underline;
}

/* Modal */
.eu-fund-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	padding: 20px;
}

.eu-fund-modal.active {
	opacity: 1;
	visibility: visible;
}

.eu-fund-modal-content {
	background-color: var(--color-white);
	border-radius: 12px;
	max-width: 800px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	position: relative;
	padding: 40px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
	transform: scale(0.9);
	transition: transform 0.3s ease;
}

.eu-fund-modal.active .eu-fund-modal-content {
	transform: scale(1);
}

.eu-fund-modal-close {
	position: absolute;
	top: 15px;
	right: 15px;
	background: none;
	border: none;
	font-size: 32px;
	color: var(--color-dark-gray);
	cursor: pointer;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: all 0.3s ease;
	line-height: 1;
	padding: 0;
}

.eu-fund-modal-close:hover {
	background-color: var(--color-light-gray);
	color: var(--color-accent);
	transform: rotate(90deg);
}

.eu-fund-modal-body {
	font-family: 'Open Sans', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: var(--color-text-primary);
}

.eu-fund-modal-body h1,
.eu-fund-modal-body h2,
.eu-fund-modal-body h3,
.eu-fund-modal-body h4 {
	font-family: 'Montserrat', sans-serif;
	color: var(--color-primary);
	margin-top: 0;
	margin-bottom: 15px;
}

.eu-fund-modal-body h1 {
	font-size: 28px;
	font-weight: 700;
}

.eu-fund-modal-body h2 {
	font-size: 24px;
	font-weight: 600;
}

.eu-fund-modal-body h3 {
	font-size: 20px;
	font-weight: 600;
}

.eu-fund-modal-body p {
	margin-bottom: 15px;
}

.eu-fund-modal-body ul,
.eu-fund-modal-body ol {
	margin-bottom: 15px;
	padding-left: 30px;
}

.eu-fund-modal-body a {
	color: var(--color-primary);
	text-decoration: underline;
}

.eu-fund-modal-body a:hover {
	color: var(--color-primary-hover);
}

.eu-fund-modal-body img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 20px auto;
	border-radius: 8px;
}

/* Prevent body scrolling when modal is open */
body.modal-open {
	overflow: hidden;
}

/* Responsive Design */
@media screen and (max-width: 992px) {
	/* On smaller screens, convert side widget to bottom widget style */
	.eu-fund-widget-side {
		top: auto;
		bottom: -80px;
		right: 10px;
	}

	.eu-fund-widget-side.visible {
		bottom: 10px;
		right: 10px;
	}

	.eu-fund-widget-side.hidden {
		bottom: -80px;
		right: 10px;
	}

	.eu-fund-widget-side .eu-fund-widget-trigger {
		flex-direction: row;
		padding: 0;
		border: none;
	}

	.eu-fund-widget-side .eu-fund-widget-trigger img {
		width: auto;
		height: 70px;
		max-width: 180px;
	}

	/* Hide read more text for side widget on mobile too */
	.eu-fund-widget-side .eu-fund-read-more {
		display: none;
	}

	/* On mobile, show horizontal logo and hide desktop logo */
	.eu-fund-widget-side .eu-fund-logo-desktop {
		display: none;
	}

	.eu-fund-widget-side .eu-fund-logo-mobile {
		display: block;
	}

	/* Bottom widget on mobile */
	.eu-fund-widget-bottom .eu-fund-widget-trigger img {
		height: 70px;
		max-width: 180px;
	}

	.eu-fund-modal-content {
		padding: 30px 20px;
		margin: 10px;
	}

	.eu-fund-modal-body {
		font-size: 15px;
	}

	.eu-fund-modal-body h1 {
		font-size: 24px;
	}

	.eu-fund-modal-body h2 {
		font-size: 20px;
	}

	.eu-fund-modal-body h3 {
		font-size: 18px;
	}
}

@media screen and (max-width: 480px) {
	.eu-fund-widget-side {
		bottom: -70px;
		right: 5px;
	}

	.eu-fund-widget-side.visible {
		bottom: 5px;
	}

	.eu-fund-widget-side.hidden {
		bottom: -70px;
	}

	.eu-fund-widget-side .eu-fund-widget-trigger img {
		height: 60px;
		max-width: 150px;
	}

	.eu-fund-widget-bottom {
		bottom: -70px;
		right: 5px;
	}

	.eu-fund-widget-bottom.visible {
		bottom: 5px;
	}

	.eu-fund-widget-bottom.hidden {
		bottom: -70px;
	}

	.eu-fund-widget-bottom .eu-fund-widget-trigger img {
		height: 60px;
		max-width: 150px;
	}

	.eu-fund-modal {
		padding: 10px;
	}

	.eu-fund-modal-content {
		padding: 25px 15px;
		border-radius: 8px;
	}
}

/* ==========================================================================
   Language Toggle Styles
   ========================================================================== */

.header-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px;
	position: relative;
}

.wp-bilingual-language-toggle {
	position: relative;
	z-index: 100;
	display: inline-block;
	vertical-align: middle;
}

.wp-bilingual-language-toggle a {
	text-decoration: none !important;
}

.wp-bilingual-language-toggle a:hover {
	text-decoration: none !important;
}

.wp-bilingual-toggle-btn {
	background: rgba(0, 96, 170, 0.6) !important;
	font-size: 16px !important;
}

.wp-bilingual-lang-option {
	background: rgba(0, 96, 170, 0.6) !important;
	font-size: 16px !important;
}

/* Language dropdown positioning */
.wp-bilingual-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1000;
	min-width: 100%;
}

/* Integrate with navigation menu */
.main-navigation {
	display: flex;
	align-items: center;
	gap: 15px;
}

.main-navigation .nav-menu-wrapper {
	display: flex;
	align-items: center;
	gap: 8px;
}

.main-navigation .nav-menu {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: center;
	gap: 0;
}

/* Ensure submenus are not flex */
.main-navigation .nav-menu ul {
	display: block !important;
	flex-direction: column;
}

.main-navigation .nav-menu ul li {
	display: block !important;
}

/* Desktop styles */
@media screen and (min-width: 768px) {
	.header-container {
		flex-wrap: nowrap;
	}

	.site-branding {
		flex: 0 0 auto;
	}

	.main-navigation {
		flex: 1 1 auto;
		display: flex;
		align-items: center;
		justify-content: flex-end;
	}

	.main-navigation .nav-menu-wrapper {
		display: flex;
		align-items: center;
		flex-wrap: nowrap;
	}

	.wp-bilingual-language-toggle {
		margin-left: 0;
		flex-shrink: 0;
	}

	/* Hide menu toggle on desktop */
	.menu-toggle {
		display: none;
	}

	/* Align toggle with menu items */
	.main-navigation .nav-menu li {
		display: inline-block;
	}
}

/* Mobile styles - language toggle button styling */
@media screen and (max-width: 767px) {
	.wp-bilingual-toggle-btn {
		font-size: 14px !important;
		height: 38px !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		background: var(--color-primary) !important;
	}

	/* Language dropdown options */
	.wp-bilingual-lang-option {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		height: 38px !important;
		padding: 0 12px !important;
		line-height: 1 !important;
		font-size: 14px !important;
		background: var(--color-primary) !important;
	}

	/* Ensure dropdown works properly - opens upward on mobile */
	.wp-bilingual-language-toggle .wp-bilingual-dropdown {
		position: absolute !important;
		bottom: 100% !important;
		top: auto !important;
		right: 0 !important;
		left: auto !important;
		z-index: 10004 !important;
	}
}

/* ===== FULL WIDTH PAGE TEMPLATES ===== */
/* Full width content area without sidebar */
.page-content-full-width {
	width: 100%;
	max-width: 100%;
}

/* Full width page - normal single column layout */
.full-width-page .page-content-full-width {
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
}

.full-width-page .page-content-full-width h2,
.full-width-page .page-content-full-width h3,
.full-width-page .page-content-full-width h4 {
	color: var(--color-primary);
	font-family: var(--font-heading);
	margin-top: var(--space-xl);
	margin-bottom: var(--space-md);
}

.full-width-page .page-content-full-width h2 {
	font-size: var(--font-size-2xl);
}

.full-width-page .page-content-full-width h3 {
	font-size: var(--font-size-xl);
}

.full-width-page .page-content-full-width ul,
.full-width-page .page-content-full-width ol {
	padding-left: var(--space-xl);
	margin-bottom: var(--space-lg);
}

.full-width-page .page-content-full-width li {
	margin-bottom: var(--space-sm);
}

.full-width-page .page-content-full-width p {
	margin-bottom: var(--space-lg);
}

/* ===== TWO COLUMN PAGE TEMPLATE ===== */

/* Two columns wrapper for content */
.two-columns-wrapper {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-2xl);
	align-items: start;
}

@media screen and (min-width: 768px) {
	.two-columns-wrapper {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--space-3xl);
	}
}

/* Make direct child paragraphs and elements flow into columns */
.two-columns-wrapper > * {
	margin-bottom: var(--space-lg);
}

.two-columns-wrapper > *:last-child {
	margin-bottom: 0;
}

/* Style lists in two-column layout */
.two-columns-wrapper ul,
.two-columns-wrapper ol {
	padding-left: var(--space-xl);
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
}

.two-columns-wrapper li {
	margin-bottom: var(--space-sm);
}

/* Style headings in two-column layout */
.two-columns-wrapper h2,
.two-columns-wrapper h3 {
	color: var(--color-primary);
	font-family: var(--font-heading);
	margin-top: var(--space-xl);
	margin-bottom: var(--space-md);
}

.two-columns-wrapper h2 {
	font-size: var(--font-size-2xl);
}

.two-columns-wrapper h3 {
	font-size: var(--font-size-xl);
}

/* Style paragraphs in two-column layout */
.two-columns-wrapper p {
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
}

/*--------------------------------------------------------------
# Hexagon Media & Text Block
--------------------------------------------------------------*/
.hexagon-media-text {
	margin: 0 0 0.5rem 0;
}

.hexagon-media-text__inner {
	display: grid;
	grid-template-columns: var(--media-width) var(--content-width);
	gap: 2.5rem;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--space-sm);
}

.hexagon-media-text.media-right .hexagon-media-text__inner {
	grid-template-columns: var(--content-width) var(--media-width);
}

/* Media on right */
.hexagon-media-text.media-right .hexagon-media-text__media {
	order: 2;
}

.hexagon-media-text.media-right .hexagon-media-text__content {
	order: 1;
}

/* Mobile: ONLY stack when .mobile-stack class is present */
@media screen and (max-width: 767px) {
	.hexagon-media-text.mobile-stack .hexagon-media-text__inner {
		display: flex;
		flex-direction: column;
	}

	.hexagon-media-text.mobile-stack .hexagon-media-text__content {
		order: 1;
		width: 100%;
	}

	.hexagon-media-text.mobile-stack .hexagon-media-text__media {
		order: 2;
		width: auto;
	}
}

/* Vertical alignment */
.hexagon-media-text.align-top .hexagon-media-text__inner {
	align-items: flex-start;
}

.hexagon-media-text.align-center .hexagon-media-text__inner {
	align-items: center;
}

.hexagon-media-text.align-bottom .hexagon-media-text__inner {
	align-items: flex-end;
}

/* Hexagon media wrapper */
.hexagon-media-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.hexagon-image {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1.15;
	filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.15));
}

.hexagon-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

/* Content area */
.hexagon-media-text__content {
	color: var(--color-text-secondary);
	line-height: var(--line-height-relaxed);
}

.hexagon-media-text__content h2,
.hexagon-media-text__content h3,
.hexagon-media-text__content h4 {
	color: var(--color-primary);
	font-family: var(--font-heading);
	margin-top: 0;
	margin-bottom: var(--space-md);
}

.hexagon-media-text__content h2 {
	font-size: var(--font-size-2xl);
}

.hexagon-media-text__content h3 {
	font-size: var(--font-size-xl);
}

.hexagon-media-text__content p {
	margin-bottom: var(--space-md);
}

.hexagon-media-text__content p:last-child {
	margin-bottom: 0;
}

/* Editor specific styles */
.wp-block-imoteema-hexagon-media-text .hexagon-image {
	margin-bottom: 0;
}

/*--------------------------------------------------------------
# PDF Lightbox
--------------------------------------------------------------*/
.pdf-lightbox {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.pdf-lightbox.active {
	opacity: 1;
	visibility: visible;
}

.pdf-lightbox__overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.85);
}

.pdf-lightbox__container {
	position: relative;
	width: 100%;
	height: 100%;
	max-width: none;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: none;
	transform: scale(0.98);
	transition: transform 0.3s ease;
}

.pdf-lightbox.active .pdf-lightbox__container {
	transform: scale(1);
}

.pdf-lightbox__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.5rem;
	background: var(--color-primary, #0060AA);
	color: #fff;
}

.pdf-lightbox__title {
	font-size: 1rem;
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 60%;
}

.pdf-lightbox__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.pdf-lightbox__actions a,
.pdf-lightbox__actions button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
	border: none;
	cursor: pointer;
	transition: background 0.2s ease;
	text-decoration: none;
}

.pdf-lightbox__actions a:hover,
.pdf-lightbox__actions button:hover {
	background: rgba(255, 255, 255, 0.25);
}

.pdf-lightbox__close {
	background: rgba(255, 255, 255, 0.2) !important;
	font-size: 28px;
	line-height: 1;
	font-weight: 300;
}

.pdf-lightbox__close:hover {
	background: rgba(255, 100, 100, 0.4) !important;
}

.pdf-lightbox__content {
	flex: 1;
	overflow: hidden;
}

.pdf-lightbox__iframe {
	width: 100%;
	height: 100%;
	border: none;
}


/* ==========================================================================
   News2 Section (Alternative News Grid)
   ========================================================================== */

.news2 {
	padding: 3rem 0;
	background-color: #f8fafc;
}

.news2__container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
}

.news2__title {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 1.5rem 0;
	text-align: left;
}

/* 2 Card Grid - two featured side by side (square image left, text right) */
.news2__grid--2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
}

.news2__grid--2 .news2__card {
	display: grid;
	grid-template-columns: 160px 1fr;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
	height: 160px;
}

.news2__grid--2 .news2__card:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--2 .news2__image {
	width: 160px;
	height: 160px;
}

.news2__grid--2 .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--2 .news2__content {
	padding: 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
	height: 100%;
	min-height: 0;
	box-sizing: border-box;
}

.news2__grid--2 .news2__card-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 0.5rem 0;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex-shrink: 0;
}

.news2__grid--2 .news2__card:hover .news2__card-title {
	text-decoration: underline;
}

.news2__grid--2 .news2__card-excerpt {
	font-size: 0.875rem;
	color: #64748b;
	line-height: 1.5;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex-shrink: 1;
	min-height: 0;
}

/* 4b Card Grid - Large featured left + 3 small right */
.news2__grid--4b {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 80px 80px 80px;
	gap: 0;
}

.news2__grid--4b .news2__card--large {
	grid-row: 1 / 4;
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
}

.news2__grid--4b .news2__card--large:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--4b .news2__card--large .news2__image {
	width: 100%;
	height: 120px;
	flex-shrink: 0;
}

.news2__grid--4b .news2__card--large .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--4b .news2__card--large .news2__content {
	padding: 0.75rem 1rem;
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	overflow: hidden;
	box-sizing: border-box;
}

.news2__grid--4b .news2__card--large .news2__card-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 0.5rem 0;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex-shrink: 0;
}

.news2__grid--4b .news2__card--large .news2__card-excerpt {
	font-size: 0.875rem;
	color: #64748b;
	line-height: 1.5;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex-shrink: 1;
	min-height: 0;
}

.news2__grid--4b .news2__card--large:hover .news2__card-title {
	text-decoration: underline;
}

.news2__grid--4b .news2__card--small {
	display: flex;
	align-items: stretch;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
	height: 80px;
}

.news2__grid--4b .news2__card--small:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--4b .news2__card--small .news2__image {
	width: 80px;
	min-width: 80px;
	height: 80px;
	flex-shrink: 0;
}

.news2__grid--4b .news2__card--small .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--4b .news2__card--small .news2__content {
	padding: 0.75rem 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.news2__grid--4b .news2__card--small .news2__card-title {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-primary);
	margin: 0;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.news2__grid--4b .news2__card--small:hover .news2__card-title {
	text-decoration: underline;
}

/* 5 Card Grid - Featured + small left, 3 small right */
.news2__grid--5 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 80px 80px 80px;
	gap: 0;
}

.news2__grid--5 .news2__card--featured {
	grid-row: 1 / 3;
	display: grid;
	grid-template-columns: 160px 1fr;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
}

.news2__grid--5 .news2__card--featured:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--5 .news2__card--featured .news2__image {
	width: 160px;
	height: 160px;
}

.news2__grid--5 .news2__card--featured .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--5 .news2__card--featured .news2__content {
	padding: 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
	height: 100%;
	min-height: 0;
	box-sizing: border-box;
}

.news2__grid--5 .news2__card--featured .news2__card-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 0.5rem 0;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex-shrink: 0;
}

.news2__grid--5 .news2__card--featured .news2__card-excerpt {
	flex-shrink: 1;
	min-height: 0;
	overflow: hidden;
}

.news2__grid--5 .news2__card--featured:hover .news2__card-title {
	text-decoration: underline;
}

.news2__grid--5 .news2__card--small {
	display: flex;
	align-items: stretch;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
	height: 80px;
}

.news2__grid--5 .news2__card--small:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--5 .news2__card--small .news2__image {
	width: 80px;
	min-width: 80px;
	height: 80px;
	flex-shrink: 0;
}

.news2__grid--5 .news2__card--small .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--5 .news2__card--small .news2__content {
	padding: 0.75rem 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.news2__grid--5 .news2__card--small .news2__card-title {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-primary);
	margin: 0;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.news2__grid--5 .news2__card--small:hover .news2__card-title {
	text-decoration: underline;
}

/* 4 Card Grid - 2x2 layout */
.news2__grid--4 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
}

.news2__grid--4 .news2__card {
	display: flex;
	align-items: stretch;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
}

.news2__grid--4 .news2__card:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--4 .news2__image {
	width: 80px;
	min-width: 80px;
	height: 80px;
	flex-shrink: 0;
}

.news2__grid--4 .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--4 .news2__content {
	padding: 0.75rem 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.news2__grid--4 .news2__card-title {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-primary);
	margin: 0;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.news2__grid--4 .news2__card:hover .news2__card-title {
	text-decoration: underline;
}

/* 3 Card Grid - Featured + 2 small */
.news2__grid--3 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 80px 80px;
	gap: 0;
}

/* Featured card - double height, spans both rows */
.news2__grid--3 .news2__card--featured {
	grid-row: 1 / 3;
	display: grid;
	grid-template-columns: 160px 1fr;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
}

.news2__grid--3 .news2__card--featured:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--3 .news2__card--featured .news2__image {
	width: 160px;
	height: 160px;
}

.news2__grid--3 .news2__card--featured .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--3 .news2__card--featured .news2__content {
	padding: 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
	height: 100%;
	min-height: 0;
	box-sizing: border-box;
}

.news2__grid--3 .news2__card--featured .news2__card-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 0.5rem 0;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex-shrink: 0;
}

.news2__grid--3 .news2__card--featured .news2__card-excerpt {
	flex-shrink: 1;
	min-height: 0;
	overflow: hidden;
}

.news2__grid--3 .news2__card--featured:hover .news2__card-title {
	text-decoration: underline;
}

.news2__card-excerpt {
	font-size: 0.875rem;
	color: #64748b;
	line-height: 1.5;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Small cards in 3-card layout */
.news2__grid--3 .news2__card--small {
	display: flex;
	align-items: stretch;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
	height: 80px;
}

.news2__grid--3 .news2__card--small:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--3 .news2__card--small .news2__image {
	width: 80px;
	min-width: 80px;
	height: 80px;
	flex-shrink: 0;
}

.news2__grid--3 .news2__card--small .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--3 .news2__card--small .news2__content {
	padding: 0.75rem 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.news2__grid--3 .news2__card--small .news2__card-title {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-primary);
	margin: 0;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.news2__grid--3 .news2__card--small:hover .news2__card-title {
	text-decoration: underline;
}

/* Placeholder for missing images */
.news2__image--placeholder {
	background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

.news2__image--placeholder svg {
	width: 30px;
	height: 30px;
	color: #94a3b8;
}

/* 6 Card Grid - 2 featured left + 4 small right */
.news2__grid--6 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 80px 80px 80px 80px;
	gap: 0;
}

.news2__grid--6 .news2__card--featured {
	display: grid;
	grid-template-columns: 160px 1fr;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
	grid-row: span 2;
}

.news2__grid--6 .news2__card--featured:nth-child(1) {
	grid-column: 1;
	grid-row: 1 / 3;
}

.news2__grid--6 .news2__card--featured:nth-child(2) {
	grid-column: 1;
	grid-row: 3 / 5;
}

.news2__grid--6 .news2__card--small:nth-child(3) {
	grid-column: 2;
	grid-row: 1;
}

.news2__grid--6 .news2__card--small:nth-child(4) {
	grid-column: 2;
	grid-row: 2;
}

.news2__grid--6 .news2__card--small:nth-child(5) {
	grid-column: 2;
	grid-row: 3;
}

.news2__grid--6 .news2__card--small:nth-child(6) {
	grid-column: 2;
	grid-row: 4;
}

.news2__grid--6 .news2__card--featured:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--6 .news2__card--featured .news2__image {
	width: 160px;
	height: 100%;
}

.news2__grid--6 .news2__card--featured .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--6 .news2__card--featured .news2__content {
	padding: 1rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
	height: 100%;
	min-height: 0;
	box-sizing: border-box;
}

.news2__grid--6 .news2__card--featured .news2__card-title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 0.5rem 0;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex-shrink: 0;
}

.news2__grid--6 .news2__card--featured:hover .news2__card-title {
	text-decoration: underline;
}

.news2__grid--6 .news2__card--featured .news2__card-excerpt {
	font-size: 0.875rem;
	color: #64748b;
	line-height: 1.5;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex-shrink: 1;
	min-height: 0;
}

.news2__grid--6 .news2__card--small {
	display: grid;
	grid-template-columns: 80px 1fr;
	background: #fff;
	border-radius: 0;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
	text-decoration: none;
	height: 80px;
}

.news2__grid--6 .news2__card--small:hover {
	background: #f8fafc;
	transform: translateY(-4px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.12);
	z-index: 1;
}

.news2__grid--6 .news2__card--small .news2__image {
	width: 80px;
	height: 80px;
}

.news2__grid--6 .news2__card--small .news2__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news2__grid--6 .news2__card--small .news2__content {
	padding: 0.75rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
}

.news2__grid--6 .news2__card--small .news2__card-title {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-primary);
	margin: 0;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.news2__grid--6 .news2__card--small:hover .news2__card-title {
	text-decoration: underline;
}

.news2__grid--6 .news2__card--small .news2__card-excerpt {
	display: none;
}

/* Archive Link */
.news2__archive-link-wrapper {
	display: flex;
	justify-content: flex-end;
	margin-top: 1rem;
}

.news2__archive-link {
	color: var(--color-primary);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9375rem;
	transition: color 0.2s ease;
}

.news2__archive-link:hover {
	text-decoration: underline;
}

/* Mobile Responsive */
@media (max-width: 768px) {
	.news2 {
		padding: 2rem 0;
	}

	.news2__title {
		font-size: 1.5rem;
		margin-bottom: 1rem;
	}

	/* All cards same size in mobile - 80px square images */
	.news2__grid--2,
	.news2__grid--3,
	.news2__grid--4,
	.news2__grid--4b,
	.news2__grid--5,
	.news2__grid--6 {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
	}

	/* Small cards - 80px height */
	.news2__grid--3 .news2__card--small,
	.news2__grid--4 .news2__card,
	.news2__grid--4b .news2__card--small,
	.news2__grid--5 .news2__card--small,
	.news2__grid--6 .news2__card--small {
		display: flex;
		flex-direction: row;
		grid-template-columns: unset;
		grid-row: auto;
		height: 80px;
	}

	/* Featured cards - 120px height (1.5x regular) */
	.news2__grid--2 .news2__card,
	.news2__grid--3 .news2__card--featured,
	.news2__grid--4b .news2__card--large,
	.news2__grid--5 .news2__card--featured,
	.news2__grid--6 .news2__card--featured {
		display: flex;
		flex-direction: row;
		grid-template-columns: unset;
		grid-row: auto;
		height: 120px;
	}

	/* Small card images - 80px */
	.news2__grid--3 .news2__card--small .news2__image,
	.news2__grid--4 .news2__image,
	.news2__grid--4b .news2__card--small .news2__image,
	.news2__grid--5 .news2__card--small .news2__image,
	.news2__grid--6 .news2__card--small .news2__image {
		width: 80px;
		min-width: 80px;
		height: 80px;
		padding-bottom: 0;
		flex-shrink: 0;
	}

	/* Featured card images - 80px width, 120px height */
	.news2__grid--2 .news2__image,
	.news2__grid--3 .news2__card--featured .news2__image,
	.news2__grid--4b .news2__card--large .news2__image,
	.news2__grid--5 .news2__card--featured .news2__image,
	.news2__grid--6 .news2__card--featured .news2__image {
		width: 80px;
		min-width: 80px;
		height: 120px;
		padding-bottom: 0;
		flex-shrink: 0;
	}

	/* Small card titles - 2 lines max with ellipsis */
	.news2__grid--3 .news2__card--small .news2__card-title,
	.news2__grid--4 .news2__card-title,
	.news2__grid--4b .news2__card--small .news2__card-title,
	.news2__grid--5 .news2__card--small .news2__card-title,
	.news2__grid--6 .news2__card--small .news2__card-title {
		font-size: 0.9375rem;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	/* Hide excerpt in mobile for small cards */
	.news2__grid--3 .news2__card--small .news2__card-excerpt,
	.news2__grid--4 .news2__card-excerpt,
	.news2__grid--4b .news2__card--small .news2__card-excerpt,
	.news2__grid--5 .news2__card--small .news2__card-excerpt,
	.news2__grid--6 .news2__card--small .news2__card-excerpt {
		display: none;
	}

	/* Featured card content - use flexbox to manage overflow */
	.news2__grid--2 .news2__content,
	.news2__grid--3 .news2__card--featured .news2__content,
	.news2__grid--4b .news2__card--large .news2__content,
	.news2__grid--5 .news2__card--featured .news2__content,
	.news2__grid--6 .news2__card--featured .news2__content {
		display: flex;
		flex-direction: column;
		justify-content: center;
		overflow: hidden;
		padding: 0.5rem 0.75rem;
		height: 100%;
		min-height: 0;
		box-sizing: border-box;
	}

	/* Featured card title - allow natural height, will push excerpt out if long */
	.news2__grid--2 .news2__card-title,
	.news2__grid--3 .news2__card--featured .news2__card-title,
	.news2__grid--4b .news2__card--large .news2__card-title,
	.news2__grid--5 .news2__card--featured .news2__card-title,
	.news2__grid--6 .news2__card--featured .news2__card-title {
		font-size: 0.9375rem;
		margin-bottom: 0.25rem;
		overflow: hidden;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 5;
		flex-shrink: 0;
	}

	/* Featured card excerpt - will be hidden by overflow if title is too long */
	.news2__grid--2 .news2__card-excerpt,
	.news2__grid--3 .news2__card--featured .news2__card-excerpt,
	.news2__grid--4b .news2__card--large .news2__card-excerpt,
	.news2__grid--5 .news2__card--featured .news2__card-excerpt,
	.news2__grid--6 .news2__card--featured .news2__card-excerpt {
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
		font-size: 0.8125rem;
		color: #64748b;
		margin: 0;
		flex-shrink: 1;
		min-height: 0;
	}
}


/* Sitemap Shortcode Styles - Tree Structure */
.sitemap-container {
	margin: 2rem 0;
}

.sitemap-list {
	list-style: none;
	padding-left: 20px;
	margin: 0;
	position: relative;
}

/* Vertical line for top level */
.sitemap-list::before {
	content: '';
	position: absolute;
	left: 6px;
	top: 0.5em;
	bottom: 12px;
	width: 1px;
	background-color: #aaa;
}

/* Top level items */
.sitemap-level-1 {
	margin-bottom: 16px;
	position: relative;
	padding-left: 14px;
}

/* Horizontal branch for level 1 items */
.sitemap-level-1::before {
	content: '';
	position: absolute;
	left: -14px;
	top: 0.9em;
	width: 14px;
	height: 1px;
	background-color: #aaa;
}

.sitemap-container .sitemap-level-1 > a {
	color: var(--color-primary, #1e3a5f) !important;
	background: none !important;
	border: none !important;
	text-decoration: none !important;
	font-weight: 600 !important;
	font-size: 1.1em !important;
	transition: color 0.2s ease !important;
	display: inline !important;
	padding: 0 !important;
}

.sitemap-container .sitemap-level-1 > a:hover {
	color: var(--color-accent, #0066cc) !important;
	text-decoration: underline !important;
}

/* Second level list - tree structure */
.sitemap-level-2 {
	list-style: none;
	margin: 8px 0 0 0;
	padding-left: 20px;
	position: relative;
}

/* Vertical line for level 2 */
.sitemap-level-2::before {
	content: '';
	position: absolute;
	left: 6px;
	top: 0;
	bottom: 8px;
	width: 1px;
	background-color: #aaa;
}

.sitemap-level-2 > li {
	position: relative;
	margin-bottom: 8px;
	margin-left: 20px !important;
	padding-left: 0 !important;
}

/* Horizontal branch for level 2 items */
.sitemap-level-2 > li::before {
	content: '';
	position: absolute;
	left: -34px;
	top: 0.9em;
	width: 30px;
	height: 1px;
	background-color: #aaa;
}

.sitemap-container .sitemap-level-2 > li > a {
	color: var(--color-primary, #1e3a5f) !important;
	background: none !important;
	border: none !important;
	text-decoration: none !important;
	font-weight: 400 !important;
	transition: color 0.2s ease !important;
	display: inline !important;
	padding: 0 !important;
}

.sitemap-container .sitemap-level-2 > li > a:hover {
	color: var(--color-accent, #0066cc) !important;
	text-decoration: underline !important;
}

/* Third level list - tree structure */
.sitemap-level-3 {
	list-style: none;
	margin: 8px 0 0 0;
	padding-left: 20px;
	position: relative;
}

/* Vertical line for level 3 */
.sitemap-level-3::before {
	content: '';
	position: absolute;
	left: 6px;
	top: 0;
	bottom: 8px;
	width: 1px;
	background-color: #aaa;
}

.sitemap-level-3 > li {
	position: relative;
	margin-bottom: 6px;
	margin-left: 20px !important;
	padding-left: 0 !important;
}

/* Horizontal branch for level 3 items */
.sitemap-level-3 > li::before {
	content: '';
	position: absolute;
	left: -34px;
	top: 0.9em;
	width: 30px;
	height: 1px;
	background-color: #aaa;
}

.sitemap-level-3 > li > a {
	font-size: 0.95em;
	color: var(--color-primary, #1e3a5f) !important;
	background: none !important;
	border: none !important;
	text-decoration: none !important;
	display: inline !important;
	padding: 0 !important;
}

.sitemap-level-3 > li > a:hover {
	color: var(--color-accent, #0066cc) !important;
	text-decoration: underline !important;
}

/* Reset sublist class styles */
.sitemap-sublist {
	border-left: none !important;
}

.sitemap-sublist li {
	padding-left: 0;
}

/*--------------------------------------------------------------
# Search Overlay
--------------------------------------------------------------*/

/* Search Toggle Button */
.search-toggle {
	background: transparent;
	border: none;
	padding: 6px 10px;
	cursor: pointer;
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-left: 8px;
	position: relative;
}

.search-toggle::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 2px;
	background-color: #ffffff;
	transition: width 0.2s ease;
}

.search-toggle:hover {
	background: transparent !important;
}

.search-toggle:focus,
.search-toggle:active {
	outline: none;
	box-shadow: none;
}

.search-toggle:hover::after {
	width: 80%;
}

.search-toggle svg {
	display: block;
}

/* Search Overlay */
.search-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(3, 3, 40, 0.95);
	z-index: 99999;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 15vh;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.search-overlay.is-active {
	opacity: 1;
	visibility: visible;
}

.search-overlay__container {
	width: 100%;
	max-width: 700px;
	padding: 0 2rem;
	position: relative;
}

.search-overlay__close {
	position: absolute;
	top: -60px;
	right: 2rem;
	background: none;
	border: none;
	color: #ffffff;
	cursor: pointer;
	padding: 10px;
	opacity: 0.7;
	transition: opacity 0.2s ease;
}

.search-overlay__close:hover {
	opacity: 1;
}

.search-overlay__title {
	color: #ffffff;
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0 0 1.5rem 0;
	text-align: center;
}

.search-overlay__input {
	width: 100%;
	padding: 1rem 1.5rem;
	font-size: 1.25rem;
	border: 2px solid var(--color-primary);
	border-radius: 4px;
	background: #ffffff;
	color: #1e293b;
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.search-overlay__input::placeholder {
	color: #94a3b8;
}

.search-overlay__input:focus {
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(0, 96, 170, 0.2);
}

.search-overlay__form {
	display: flex;
	gap: 0.5rem;
}

.search-overlay__form .search-overlay__input {
	flex: 1;
}

.search-overlay__submit {
	padding: 0 1.25rem;
	background: var(--color-primary);
	border: none;
	border-radius: 4px;
	color: #ffffff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease;
}

.search-overlay__submit:hover {
	background: #004a85;
}

.search-overlay__submit svg {
	width: 20px;
	height: 20px;
}

.search-overlay__results {
	margin-top: 1.5rem;
	max-height: 50vh;
	overflow-y: auto;
}

.search-overlay__result-item {
	display: block;
	padding: 1rem 1.25rem;
	background: #ffffff;
	border-radius: 4px;
	margin-bottom: 0.5rem;
	color: #1e293b;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.search-overlay__result-item:hover {
	background: #f1f5f9;
	transform: translateX(4px);
}

.search-overlay__result-title {
	font-weight: 600;
	margin-bottom: 0.25rem;
	color: var(--color-primary);
}

.search-overlay__result-context {
	font-size: 0.875rem;
	color: #64748b;
}

.search-overlay__result-item mark {
	background: rgba(0, 96, 170, 0.2);
	color: inherit;
	padding: 0 2px;
}

.search-overlay__no-results,
.search-overlay__error {
	text-align: center;
	color: rgba(255, 255, 255, 0.8);
	padding: 2rem;
	background: rgba(255, 255, 255, 0.1);
	border-radius: 4px;
}

.search-overlay__loading {
	text-align: center;
	padding: 2rem;
}

.search-overlay__loading .spinner {
	display: inline-block;
	width: 24px;
	height: 24px;
	border: 3px solid rgba(255, 255, 255, 0.3);
	border-top-color: #ffffff;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

.search-overlay__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.search-overlay__item {
	margin-bottom: 0.5rem;
}

.search-overlay__link {
	display: block;
	padding: 1rem 1.25rem;
	background: #ffffff;
	border-radius: 4px;
	color: #1e293b;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.search-overlay__link:hover {
	background: #f1f5f9;
	transform: translateX(4px);
}

.search-overlay__item-type {
	display: inline-block;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #64748b;
	background: #e2e8f0;
	padding: 0.125rem 0.5rem;
	border-radius: 3px;
	margin-bottom: 0.375rem;
}

.search-overlay__item-title {
	display: block;
	font-weight: 600;
	color: var(--color-primary);
	margin-bottom: 0.25rem;
}

.search-overlay__item-excerpt {
	display: block;
	font-size: 0.875rem;
	color: #64748b;
	line-height: 1.4;
}

/* Mobile adjustments for search */
@media (max-width: 768px) {
	.search-overlay {
		padding-top: 10vh;
	}

	.search-overlay__container {
		padding: 0 1rem;
	}

	.search-overlay__close {
		right: 1rem;
		top: -50px;
	}

	.search-overlay__input {
		font-size: 1rem;
		padding: 0.875rem 1rem;
	}
}

/* Hide search toggle on mobile, show mobile search instead */
@media (max-width: 767px) {
	.search-toggle {
		display: none !important;
	}
}

/* Mobile Search in Menu */
.mobile-search {
	display: none;
}

@media (max-width: 767px) {
	.main-navigation.toggled .mobile-search {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-bottom: 1px;
		order: -1;
		flex-shrink: 0;
		box-sizing: border-box;
	}

	.mobile-search__form {
		display: flex;
		align-items: center;
		background: #ffffff;
		padding: 12px 20px;
		gap: 10px;
		width: 100% !important;
		box-sizing: border-box;
	}

	.mobile-search__form svg {
		color: #64748b;
		flex-shrink: 0;
	}

	.mobile-search__input {
		flex: 1;
		background: transparent;
		border: none;
		color: #1e293b;
		font-size: 1rem;
		padding: 5px 0;
		outline: none;
		width: 100%;
	}

	.mobile-search__input::placeholder {
		color: #94a3b8;
	}

	.mobile-search__results {
		margin-top: 0;
		max-height: 60vh;
		overflow-y: auto;
	}

	.mobile-search__results .search-overlay__list {
		display: block !important;
		list-style: none;
		padding: 0;
		margin: 0;
	}

	.mobile-search__results .search-overlay__item {
		display: block !important;
		margin-bottom: 1px;
	}

	.mobile-search__results .search-overlay__link {
		display: block;
		padding: 12px 20px;
		background: #f1f5f9;
		color: #1e293b;
		text-decoration: none;
		font-size: 0.9375rem;
	}

	.mobile-search__results .search-overlay__link:hover,
	.mobile-search__results .search-overlay__link:active {
		background: #e2e8f0;
		transform: none;
	}

	.mobile-search__results .search-overlay__item-type {
		display: inline-block;
		font-size: 0.7rem;
		background: #dbeafe;
		color: #1e40af;
		padding: 2px 6px;
		border-radius: 3px;
		margin-bottom: 4px;
	}

	.mobile-search__results .search-overlay__item-title {
		display: block;
		font-weight: 600;
		color: var(--color-primary);
	}

	.mobile-search__results .search-overlay__item-excerpt {
		display: block;
		font-size: 0.8125rem;
		color: #64748b;
		margin-top: 4px;
	}

	.mobile-search__results .search-overlay__no-results,
	.mobile-search__results .search-overlay__error {
		color: #64748b;
		font-size: 0.875rem;
		padding: 12px 20px;
		background: #f1f5f9;
	}

	.mobile-search__results .search-overlay__loading {
		padding: 12px 20px;
		background: #f1f5f9;
	}

	.mobile-search__results .search-overlay__loading .spinner {
		border-color: rgba(0, 96, 170, 0.2);
		border-top-color: var(--color-primary);
	}
}

/* ============================================
   MOBILE MENU LOGO - 40% hidden at top
   ============================================ */
.mobile-menu-logo {
	display: none;
}

@media screen and (max-width: 767px) {
	.main-navigation.toggled .mobile-menu-logo {
		display: block;
		position: fixed;
		top: -28px;
		left: 20px;
		z-index: 10002;
	}

	.main-navigation.toggled .mobile-menu-logo a {
		display: block;
	}

	.main-navigation.toggled .mobile-menu-logo img {
		display: block;
		height: 70px;
		width: auto;
	}
}
