/*==============================================================================
//  Aivitel — brand layer
//  Loaded last. Everything Aivitel-specific lives here so the inherited theme
//  files (integrity-light*, style, custom) stay untouched and replaceable.
//============================================================================*/

:root {
	--av-deep:   #2a5560;   /* headings, wordmark, primary text accents */
	--av-band:   #a0b5c3;   /* alternating content-band background       */
	--av-accent: #49a8c0;   /* interactive / hover                       */
	--av-dark:   #122b33;
}

/*--- Brand mark -------------------------------------------------------------*/

/* Sized by height so the lockup sits inside the 100px navbar the way the
   inherited theme expects, instead of by width like the old wordmark. */
.x-brand.img { line-height: 0; }
.x-brand img,
.x-brand svg { height: 60px; width: auto; max-width: 62vw; }

@media (max-width: 479px) {
	.x-brand img, .x-brand svg { height: 46px; }
}

/* The nav toggle is a <button> now; strip the UA chrome the theme never had. */
button.x-btn-navbar { border: 0; font-family: inherit; }

/*--- Inline SVG icons (the theme's icon font is not carried over) ------------*/

.ic {
	width: 1em;
	height: 1em;
	fill: currentColor;
	vertical-align: -0.125em;
	flex: none;
}

.x-btn-navbar .ic { width: 1em; height: 1em; }

.x-social-global { text-align: center; }
.x-social-global a {
	display: inline-block;
	width: 38px;
	height: 38px;
	margin: 0 4px;
	border-radius: 50%;
	line-height: 38px;
	text-align: center;
	color: #fff;
	background-color: var(--av-deep);
	transition: background-color .25s ease, transform .25s ease;
}
.x-social-global a:hover { background-color: var(--av-accent); transform: translateY(-2px); }
.x-social-global .ic { width: 18px; height: 18px; vertical-align: -4px; }

/*--- Buttons: retire the inherited red for the Aivitel teal -----------------*/

.x-btn, .button, [type="submit"],
.wpcf7-submit {
	color: #fff;
	border-color: var(--av-dark);
	background-color: var(--av-deep);
	box-shadow: 0 0.25em 0 0 var(--av-dark), 0 4px 9px rgba(0, 0, 0, .35);
	text-shadow: 0 0.075em 0.075em rgba(0, 0, 0, .35);
}
.x-btn:hover, .button:hover, [type="submit"]:hover,
.wpcf7-submit:hover {
	color: #fff;
	border-color: #0b1b20;
	background-color: var(--av-accent);
	box-shadow: 0 0.25em 0 0 var(--av-dark), 0 4px 9px rgba(0, 0, 0, .35);
}

a { color: var(--av-deep); }
a:hover { color: var(--av-accent); }

/*--- Hero -------------------------------------------------------------------*/

.entry-featured .entry-thumb img { width: 100%; height: auto; display: block; }

/*--- Content bands ----------------------------------------------------------*/

.brandBand .h-feature-headline span { color: var(--av-deep); }

/* The inherited fixed-height scroll box is fine on desktop, cramped on phones. */
@media (max-width: 767px) {
	.pub-wrap { height: auto; max-height: none; overflow: visible; }
}

/*--- Channel / highlight tabs ----------------------------------------------*/

.x-nav-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; border: 0; }
.x-nav-tabs-item { list-style: none; margin: 0; }
.x-nav-tabs-item > a {
	display: block;
	padding: 4px;
	border: 2px solid transparent;
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
	transition: border-color .2s ease, transform .2s ease;
}
.x-nav-tabs-item > a:hover { transform: translateY(-2px); }
.x-nav-tabs-item.active > a { border-color: var(--av-accent); }
.x-nav-tabs-item img { width: 100px; height: 100px; object-fit: contain; }

.x-tab-content { margin-top: 24px; text-align: center; }
.x-tab-pane { display: none; }
.x-tab-pane.active { display: block; }
.x-tab-pane img { max-width: 100%; height: auto; border-radius: 4px; }

/*--- Partner strip ----------------------------------------------------------*/

.partner-strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 32px 56px;
	padding: 8px 0;
}
.partner-strip a { display: block; }
.partner-strip img {
	max-height: 90px;
	width: auto;
	filter: saturate(0);
	opacity: .85;
	transition: filter .3s ease, opacity .3s ease, transform .3s ease;
}
.partner-strip a:hover img { filter: none; opacity: 1; transform: scale(1.04); }

/*--- News -------------------------------------------------------------------*/

.x-recent-post2 { color: inherit; }
.news-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 28px; }
.news-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
	transition: box-shadow .25s ease, transform .25s ease;
}
.news-card:hover { box-shadow: 0 8px 22px rgba(0, 0, 0, .16); transform: translateY(-3px); }
.news-card figure { margin: 0; background: #eef2f4; }
.news-card figure img { width: 100%; height: 190px; object-fit: cover; display: block; }
.news-card .news-body { padding: 20px 22px 24px; }
.news-card h3 { margin: 0 0 6px; font-size: 1.7rem; line-height: 1.35; color: var(--av-deep); }
.news-card time { display: block; margin-bottom: 10px; font-size: 1.2rem; letter-spacing: 1px; text-transform: uppercase; opacity: .6; }
.news-card p { margin: 0; white-space: pre-line; font-size: 1.4rem; line-height: 1.6; }
.news-card p.clamped {
	display: -webkit-box;
	-webkit-line-clamp: 6;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.news-more {
	margin-top: 12px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--av-accent);
	font: inherit;
	font-size: 1.3rem;
	cursor: pointer;
	text-transform: uppercase;
	letter-spacing: 1px;
}
.news-more:hover { text-decoration: underline; }

/*--- Team -------------------------------------------------------------------*/

.team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 32px; }
.team-grid .x-promo { height: auto !important; margin: 0; }
.team-grid .x-promo-image-wrap img { width: 100%; height: 320px; object-fit: cover; object-position: top center; }
.team-grid .x-promo-content h3 { color: var(--av-deep); margin-bottom: 2px; }
.team-grid .x-promo-content h5 { opacity: .7; margin-bottom: 12px; }

/*--- Contact ----------------------------------------------------------------*/

.contactInfo h3 { color: var(--av-deep); }
.contactInfo a { text-decoration: underline; }
.contactBand iframe { width: 100%; height: 480px; border: 0; display: block; }
.form-note { margin-top: 10px; font-size: 1.3rem; min-height: 1.4em; }
.form-note.ok { color: #2e7d32; }
.form-note.err { color: #c0392b; }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea { width: 100%; max-width: 100%; }

/*--- Distribution channel cards --------------------------------------------*/

.distroImg { padding: 1em; text-align: center; max-height: 200px; }

/*--- Back to top ------------------------------------------------------------*/

.SF_toTop {
	display: none;
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 9999;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	line-height: 44px;
	text-align: center;
	color: #fff;
	background-color: rgba(42, 85, 96, .85);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
}
.SF_toTop.is-visible { display: block; }
.SF_toTop:hover { color: #fff; background-color: var(--av-accent); }
.SF_toTop .ic { width: 18px; height: 18px; vertical-align: -4px; }

/*--- Cookie consent ---------------------------------------------------------*/

.cc-banner {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 10000;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 16px 22px;
	background: rgba(18, 43, 51, .96);
	color: #e6eef1;
	font-size: 1.3rem;
	line-height: 1.5;
}
.cc-banner[hidden] { display: none; }
.cc-banner p { margin: 0; max-width: 78ch; }
.cc-banner a { color: #8fdcec; text-decoration: underline; }
.cc-banner button {
	flex: none;
	padding: 8px 22px;
	border: 0;
	border-radius: 4px;
	color: #fff;
	background: var(--av-accent);
	font: inherit;
	cursor: pointer;
}
.cc-banner button:hover { background: #5fc0d6; }

/*--- Misc -------------------------------------------------------------------*/

.visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

.page-title { color: var(--av-deep); text-align: center; }

.eu-note { font-size: 1.3rem; line-height: 1.6; }

/*--- Language switcher ------------------------------------------------------*/

.lang-bar {
	background: var(--av-deep);
	color: #dfe9ed;
	font-size: 1.2rem;
}
.lang-switch {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 2px;
	padding: 6px 0;
}
.lang-switch a {
	display: block;
	padding: 4px 10px;
	border-radius: 3px;
	color: #cfe0e6;
	letter-spacing: 1px;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
.lang-switch a:hover { color: #fff; background: rgba(255, 255, 255, .12); }
.lang-switch a.is-current { color: #122b33; background: #8fdcec; font-weight: 700; }
.lang-switch abbr { text-decoration: none; border: 0; cursor: inherit; }

@media (max-width: 479px) {
	.lang-switch { justify-content: center; }
}

/*--- Terms ------------------------------------------------------------------*/

.terms-notice {
	margin-bottom: 28px;
	padding: 14px 18px;
	border-left: 4px solid var(--av-accent);
	background: #eef4f6;
	font-size: 1.35rem;
	line-height: 1.6;
}
.x-container-article.width h2 { margin-top: 1.6em; color: var(--av-deep); font-size: 1.9rem; }
.x-container-article.width p { line-height: 1.7; }
