/*
 * Main front-end styles for the native rebuild.
 * Implements a 12-column grid plus component styles for the shortcode engine.
 */

:root {
	--evp-container: 1170px;
	--evp-primary: #008fd7;
	--evp-accent: #008fd7;
	--evp-dark: #4c4c4c;
	--evp-heading: #333333;
	--evp-muted: #777777;
}

* { box-sizing: border-box; }

html, body { overflow-x: hidden; }

body {
	color: var(--evp-dark);
	font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.5;
}

h1, h2, h3, h4, h5, h6 {
	font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
	color: #1b1919;
	font-weight: 400;
}
h1, h2, h3, h4, h5, h6 { margin: 0 0 20px; line-height: 1.4; }
h1 { font-size: 28px; }
h2 { font-size: 24px; }
h3 { font-size: 22px; }
h4 { font-size: 18px; }
h5 { font-size: 16px; }
h6 { font-size: 14px; }
p { margin: 0 0 15px; }

img { max-width: 100%; height: auto; }
a { color: var(--evp-primary); text-decoration: none; }
a:hover { color: #006fa8; }

/* Layout ------------------------------------------------------------------ */
.evp-section { width: 100%; }

/* Rows mirror the Bootstrap grid the live theme uses: the container is
   1170px and columns carry 15px gutters, so a 1/3 column is 390px with a
   360px content box, exactly like the live site. */
.evp-row {
	display: flex;
	flex-wrap: wrap;
	max-width: var(--evp-container);
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

/* Nested rows bleed into the parent column padding (negative gutters). */
.evp-row .evp-row { max-width: none; width: auto; margin: 0 -15px; }

.evp-col { padding: 0 15px; width: 100%; flex: 0 0 100%; }
/* Inner wrapper mirroring WPBakery's .vc_column-inner. */
.evp-col-inner { width: 100%; }
/* WPBakery gives columns inside rows/sections that carry a background fill a
   35px top padding (.vc_row-has-fill rule); evp-has-fill replicates that. */
.evp-has-fill .evp-col > .evp-col-inner { padding-top: 35px; }
/* Live WPBakery also pads filled sections and the section following one:
   .vc_section-has-fill, .vc_section-has-fill + .vc_section { padding-top: 35px }. */
section.evp-has-fill, section.evp-has-fill + section { padding-top: 35px; }
/* Background columns in equal-height rows paint the full row height. */
.evp-equal.evp-row > .evp-col > .evp-col-inner { height: 100%; }

.evp-col-md-1  { flex: 0 0 8.3333%;  max-width: 8.3333%; }
.evp-col-md-2  { flex: 0 0 16.6667%; max-width: 16.6667%; }
.evp-col-md-3  { flex: 0 0 25%;      max-width: 25%; }
.evp-col-md-4  { flex: 0 0 33.3333%; max-width: 33.3333%; }
.evp-col-md-5  { flex: 0 0 41.6667%; max-width: 41.6667%; }
.evp-col-md-6  { flex: 0 0 50%;      max-width: 50%; }
.evp-col-md-7  { flex: 0 0 58.3333%; max-width: 58.3333%; }
.evp-col-md-8  { flex: 0 0 66.6667%; max-width: 66.6667%; }
.evp-col-md-9  { flex: 0 0 75%;      max-width: 75%; }
.evp-col-md-10 { flex: 0 0 83.3333%; max-width: 83.3333%; }
.evp-col-md-11 { flex: 0 0 91.6667%; max-width: 91.6667%; }
.evp-col-md-12 { flex: 0 0 100%;     max-width: 100%; }

.site-main { max-width: none; padding: 0; }

/* Columns tagged bg-align-right pin their background image to the right edge,
   like the live Basel helper class on the counter columns. */
.evp-col-inner.bg-align-right { background-position: 100% 6px !important; }

/* Full-bleed band: background spans the viewport, content stays centered. */
.evp-full {
	width: 100%;
	/* Live stretched rows are position: relative, so their backgrounds paint
	   above static siblings pulled underneath with negative margins. */
	position: relative;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}
.evp-full-inner {
	max-width: var(--evp-container);
	margin: 0 auto;
	width: 100%;
}
.evp-full-inner.evp-row {
	display: flex;
	flex-wrap: wrap;
}
/* stretch_row_content: the content itself also spans the full viewport. */
.evp-full-inner-wide { width: 100%; }
/* Nested stretch rows break out of the boxed 1170px container back to the
   viewport edges, mirroring WPBakery's row-stretch script on the live site. */
.evp-full-inner .evp-full { width: 100vw; margin-left: calc(50% - 50vw); }
.evp-full-inner-wide.evp-row { display: flex; flex-wrap: wrap; max-width: none; padding: 0; }
.evp-full-wide .evp-row { max-width: none; padding: 0; margin: 0; }
.evp-full-wide .evp-col { padding: 0; }
/* The live .vc_column-inner keeps 15px side gutters inside edge-to-edge rows. */
.evp-full-wide .evp-col > .evp-col-inner { padding-left: 15px; padding-right: 15px; }
.evp-no-spaces .evp-col { padding: 0; }
.evp-no-spaces .evp-col > .evp-col-inner { padding-left: 0; padding-right: 0; }

/* Parallax bands/columns replicate Basel's fixed background attachment. Basel
   also forces cover sizing on parallax elements, which matters for columns
   whose vc_custom rule only carries background-image (e.g. the China panda
   column on the front page). */
.evp-parallax { background-attachment: fixed; background-size: cover; background-repeat: no-repeat; }

/* Rows top-align columns like the live floated grid; equal-height rows and
   middle-placement rows opt back into stretch/centred alignment. */
.evp-row { align-items: flex-start; }
.evp-equal.evp-row, .evp-equal .evp-full-inner.evp-row, .evp-equal .evp-full-inner-wide.evp-row { align-items: stretch; }
.evp-equal.evp-row > .evp-col { display: flex; flex-direction: column; }
.evp-middle .evp-full-inner.evp-row,
.evp-middle .evp-full-inner-wide.evp-row,
.evp-middle.evp-row { align-items: center; }

/* Light colour scheme columns (white text on dark/blue backgrounds). */
.evp-scheme-light { color: rgba(255, 255, 255, .8); }
.evp-scheme-light h1, .evp-scheme-light h2, .evp-scheme-light h3,
.evp-scheme-light h4, .evp-scheme-light h5, .evp-scheme-light h6 { color: #fff; }

/* Columns hidden on small screens (offset vc_hidden-*). */
@media (max-width: 767px) {
	.evp-hidden-xs { display: none; }
}
@media (min-width: 768px) and (max-width: 991px) {
	.evp-hidden-sm { display: none; }
}

/* Typography -------------------------------------------------------------- */
.evp-heading { line-height: 1.2; }
/* Content elements carry the WPBakery default 35px bottom margin. */
.evp-text { padding: 0; margin-bottom: 35px; }
/* Live .wpb_text_column paragraphs use a 20px bottom margin. */
.evp-text p { margin: 0 0 20px; }
.evp-text > :last-child { margin-bottom: 0; }
.evp-align-center { text-align: center; }
.evp-align-right { text-align: right; }
.evp-align-left { text-align: left; }
.evp-separator { border: 0; border-top: 1px solid #e2e2e2; margin: 20px auto; }
.evp-space { display: block; width: 100%; }

/* Buttons ----------------------------------------------------------------- */
/* Matches the live Basel button: square, uppercase 16px Lato, blue fill. */
.evp-btn-wrap { margin: 0; }
.evp-btn-wrap.evp-align-center { text-align: center; }
.evp-btn {
	display: inline-block;
	background: #ececec;
	color: #3e3e3e;
	padding: 10px 20px;
	border-radius: 0;
	text-decoration: none;
	font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: .3px;
	text-transform: uppercase;
	border: 1px solid #ececec;
	transition: background .2s, box-shadow .2s;
}
.evp-btn:hover { color: #3e3e3e; box-shadow: inset 0 0 200px rgba(0, 0, 0, .1); }
.evp-btn.evp-btn-primary { background: var(--evp-primary); color: #fff; border-color: var(--evp-primary); }
.evp-btn.evp-btn-primary:hover { color: #fff; }
.evp-btn.evp-btn-large { padding: 12px 28px; font-size: 16px; }
/* WPBakery-style button (vc_btn): smaller, sentence case, transparent border. */
.evp-btn.evp-btn-vc { font-size: 14px; text-transform: none; letter-spacing: normal; padding: 14px 20px; line-height: normal; border-color: transparent; }
.evp-btn.evp-btn-vc:hover { box-shadow: inset 0 0 200px rgba(0, 0, 0, .15); }

/* Single image ------------------------------------------------------------ */
.evp-single-image { margin: 0 0 35px; }
.evp-single-image.evp-align-center { text-align: center; }

/* Video ------------------------------------------------------------------- */
.evp-video.evp-align-center { text-align: center; }
.evp-video-inner {
	position: relative;
	max-width: 100%;
	margin: 0 auto;
}
.evp-video-inner iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; }

/* Info box ---------------------------------------------------------------- */
/* Matches the live Basel info-box2: white bg, 20px padding, shadow on hover. */
.evp-infobox {
	display: flex;
	padding: 20px;
	margin-bottom: 30px;
	align-items: flex-start;
	background: #fff;
	transition: box-shadow .3s;
}
.evp-infobox-shadow:hover { box-shadow: 0 0 20px rgba(0, 0, 0, .12); }
.evp-infobox-light { background: transparent; color: #fff; }
.evp-infobox-light .evp-infobox-title { color: #fff; }
.evp-infobox-light .evp-infobox-content { color: rgba(255, 255, 255, .8); }
.evp-infobox-center { flex-direction: column; text-align: center; align-items: center; }
.evp-infobox-icon { flex: 0 0 auto; margin-right: 15px; }
.evp-infobox-icon img[src$=".svg"] { width: 40px; height: 40px; }
.evp-infobox-title { margin: 0 0 15px; font-size: 18px; font-weight: 400; color: #000; line-height: 1.4; }
.evp-infobox-content { color: rgba(0, 0, 0, .7); line-height: 1.7; }
.evp-infobox-content h4 { margin: 0 0 15px; font-size: 18px; font-weight: 400; color: #000; line-height: 1.4; }
.evp-infobox-content p { margin: 0 0 15px; }
.evp-infobox-content p:last-child { margin-bottom: 0; }

/* Counter ----------------------------------------------------------------- */
.evp-counter { text-align: center; padding: 0; color: var(--evp-dark); }
.evp-counter-value { display: block; font-family: "Lato", sans-serif; font-size: 44px; font-weight: 600; line-height: 1.2; margin-bottom: 20px; }
.evp-counter-large .evp-counter-value { font-size: 52px; }
.evp-counter-label { display: block; margin: 0; font-size: 18px; line-height: 1.2; }
.evp-scheme-light .evp-counter, .evp-scheme-light .evp-counter-value, .evp-scheme-light .evp-counter-label { color: #fff; }

/* Basel title ------------------------------------------------------------- */
/* Matches the live title-wrapper: centred, blue letter-spaced subtitle and a
   26px Roboto heading flanked by thin lines in the bordered style. */
.evp-basel-title { margin-bottom: 0; text-align: center; }
.evp-basel-subtitle { display: block; color: var(--evp-primary); letter-spacing: 3px; font-size: 14px; line-height: 1.2; margin-bottom: 10px; }
.evp-basel-heading { margin: 0; font-size: 26px; font-weight: 400; color: #1b1919; line-height: 1.4; }
.evp-scheme-light .evp-basel-heading, .evp-scheme-light .evp-basel-subtitle { color: #fff; }
.evp-basel-liner { display: flex; align-items: center; }
.evp-basel-line { flex: 1 1 auto; height: 1px; background: rgba(118, 118, 118, .14); }
.evp-basel-liner .evp-basel-heading { flex: 0 0 auto; padding: 0 20px; max-width: 100%; }

/* Gallery ----------------------------------------------------------------- */
/* Grid/carousel gallery matching the live Basel galleries; the column count
   and gap are set inline by the shortcode handler. */
.evp-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.evp-gallery-grid .evp-gallery-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.evp-gallery-carousel { align-items: center; }
.evp-gallery-carousel .evp-gallery-item img { display: block; width: 100%; height: auto; }

/* Blog -------------------------------------------------------------------- */
/* Mask-design cards matching the live basel_blog: image card, date badge and
   category, title and meta over the photo bottom. */
.evp-blog-mask { position: relative; margin-bottom: 30px; overflow: hidden; }
.evp-blog-mask .evp-blog-thumb { display: block; }
.evp-blog-mask .evp-blog-thumb img { display: block; width: 100%; height: auto; aspect-ratio: 400 / 280; object-fit: cover; }
.evp-blog-mask::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 60%;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .5));
	pointer-events: none;
}
.evp-blog-date {
	position: absolute; top: 20px; left: 20px; z-index: 2;
	background: #fff; color: #333; text-align: center;
	padding: 8px 12px; line-height: 1;
}
.evp-blog-day { display: block; font-size: 22px; font-weight: 600; }
.evp-blog-month { display: block; font-size: 12px; text-transform: uppercase; color: var(--evp-muted); margin-top: 4px; }
.evp-blog-overlay { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 2; }
.evp-blog-cat {
	display: inline-block; background: var(--evp-primary); color: #fff;
	font-size: 12px; padding: 4px 10px; margin-bottom: 10px;
}
.evp-blog-cat:hover { color: #fff; }
.evp-blog-title { font-size: 24px; font-weight: 400; margin: 0 0 6px; line-height: 1.3; }
.evp-blog-title a { text-decoration: none; color: #fff; }
.evp-blog-meta { color: rgba(255, 255, 255, .85); font-style: italic; font-size: 13px; }

/* Toggle / accordion ------------------------------------------------------ */
/* Matches the live vc_toggle boxes: bordered, 14px grey title, arrow right. */
.evp-toggle { border: 1px solid #e6e6e6; padding: 0 20px; margin-bottom: 22px; }
.evp-toggle-head {
	width: 100%; text-align: left; background: none; border: 0;
	padding: 10px 30px 10px 0; font-size: 14px; font-weight: 400; cursor: pointer;
	position: relative; color: #818181; line-height: 20px;
}
.evp-toggle-icon { position: absolute; right: 5px; top: 50%; width: 10px; height: 10px; margin-top: -7px; }
.evp-toggle-icon::before {
	content: ""; position: absolute; left: 0; top: 0; width: 8px; height: 8px;
	border-right: 2px solid #b8b8b8; border-bottom: 2px solid #b8b8b8;
	transform: rotate(45deg); transition: transform .2s;
}
.evp-toggle.is-open .evp-toggle-icon::before { transform: rotate(225deg); }
.evp-toggle-body { display: none; padding: 0 0 12px; }
.evp-toggle.is-open .evp-toggle-body { display: block; }

/* Tabs -------------------------------------------------------------------- */
/* Inline tab titles separated by a slash, like the live FAQ tabs. */
.evp-tabs { margin: 0 0 20px; }
.evp-tabs-nav { list-style: none; display: flex; align-items: center; padding: 0 0 10px; margin: 0 0 21px; }
.evp-tabs-nav-item:not(:last-child)::after { content: "/"; margin: 0 12px; color: #bbb; }
.evp-tabs-nav-btn {
	background: none; border: 0; padding: 0; cursor: pointer;
	font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 16px; font-weight: 600; text-transform: uppercase; color: #1b1919;
}
.evp-tabs-nav-item.is-active .evp-tabs-nav-btn { color: var(--evp-primary); text-decoration: underline; }
.evp-tab { display: none; }
.evp-tab.is-active { display: block; }
/* The live tta panels end with a 17px inset instead of a toggle margin. */
.evp-tab-body { padding: 0 0 17px; }
.evp-tab-body .evp-toggle:last-child { margin-bottom: 0; }

/* Testimonials ------------------------------------------------------------ */
.evp-testimonials { max-width: 1140px; margin: 20px auto 0; padding: 0; text-align: center; color: #fff; }
.evp-testimonials-track { position: relative; }
.evp-testimonial { margin: 0; padding: 15px 0; display: none; }
.evp-testimonial.is-active { display: block; }
/* The live slides keep wpautop's 20px paragraph rhythm inside the quote. */
.evp-testimonial p { margin: 0 0 20px; }
.evp-testimonial > :last-child { margin-bottom: 0; }
.evp-testimonial h3 { color: #fff; font-weight: 400; font-size: 22px; line-height: 1.4; margin: 0 0 20px; }
.evp-testimonial-cite { display: block; margin-top: 20px; line-height: 22px; font-style: normal; font-weight: 700; }
.evp-testimonial-title { font-weight: 400; opacity: .85; }
/* Pagination bullets under the quote, matching the live owl-carousel dots. */
.evp-testimonial-dots { text-align: center; margin-top: 0; padding: 7px 0; font-size: 0; }
.evp-testimonial-dot {
	display: inline-block; width: 10px; height: 10px; border-radius: 20px;
	margin: 5px 7px; padding: 0; border: 0; cursor: pointer;
	background: rgba(255, 255, 255, .6); transition: background .3s;
}
.evp-testimonial-dot.is-active { background: #fff; }

/* Map --------------------------------------------------------------------- */
.evp-map iframe { display: block; width: 100%; }

/* Utility class used by the builder content on dark sections. */
.color-white, .color-white p { color: #fff; }

/* Contact form (Contact Form 7), matching the live dark-section styling. */
.wpcf7 .row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.wpcf7 .col-md-6 { flex: 0 0 50%; max-width: 50%; padding: 0 15px; }
.wpcf7 p { margin: 0 0 27px; }
.wpcf7 label { display: block; margin-bottom: 2px; color: #4c4c4c; font-size: 14px; }
/* On light-scheme (dark background) columns the default gray label is
   unreadable, so lift labels and body text to near-white. */
.evp-scheme-light .wpcf7 label { color: rgba(255, 255, 255, .9); }
.evp-scheme-light, .evp-scheme-light p, .evp-scheme-light .evp-text { color: rgba(255, 255, 255, .9); }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"] {
	width: 100%; height: 40px; padding: 0 10px;
	background: #fff; border: 1px solid rgba(129, 129, 129, .25); border-radius: 0;
	font-size: 14px; color: var(--evp-dark);
}
.wpcf7 textarea {
	width: 100%; height: 232px; padding: 10px 15px;
	background: #fff; border: 1px solid rgba(129, 129, 129, .25); border-radius: 0;
	font-size: 14px; color: var(--evp-dark);
}
.wpcf7 .wpcf7-submit {
	background: transparent; border: 1px solid #fff; border-radius: 0;
	color: #fff; text-transform: uppercase; font-size: 14px;
	padding: 10px 20px; cursor: pointer; transition: background .2s, color .2s;
}
.wpcf7 .wpcf7-submit:hover { background: #fff; color: #021019; }
@media (max-width: 767px) {
	.wpcf7 .col-md-6 { flex: 0 0 100%; max-width: 100%; }
}

/* Slider ------------------------------------------------------------------ */
/* Break the slider out of the 1170px column so it spans the full viewport. */
.evp-slider {
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	width: 100vw;
	max-width: 100vw;
	overflow: hidden;
}
.evp-slider-track { position: relative; width: 100%; height: 100vh; min-height: 480px; }
.evp-slide {
	position: absolute; inset: 0; opacity: 0; transition: opacity .8s ease;
	background-size: cover; background-position: center;
	display: flex; align-items: center; justify-content: center;
	pointer-events: none;
}
.evp-slide.is-active { opacity: 1; pointer-events: auto; }
.evp-slide::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.2); }
.evp-slide-inner {
	position: relative; z-index: 2; max-width: 1000px; padding: 0 20px;
	text-align: center; color: #fff;
}
.evp-slide-subtitle { text-transform: uppercase; font-family: "Lato", sans-serif; font-weight: 700; font-size: 12px; line-height: 19px; margin: 0 0 24px; }
.evp-slide-title { font-family: "Roboto", sans-serif; font-weight: 700; font-size: 77px; margin: 0 0 21px; line-height: 77px; color: #fff; }
/* Rotating second title line: fade fully out before the next line fades in,
   so the two lines never overlap like a mid-crossfade frame. */
.evp-title-rotate { display: block; position: relative; height: 77px; }
.evp-title-rotate-item { position: absolute; left: 50%; top: 0; transform: translateX(-50%); white-space: nowrap; opacity: 0; transition: opacity .3s ease; }
.evp-title-rotate-item.is-active { opacity: 1; }
.evp-slide-text { font-size: 15px; line-height: 21px; color: rgba(255,255,255,.8); max-width: 740px; margin: 0 auto; }
.evp-slide-text a { color: #fff; }
.evp-slide-btn-wrap { margin-top: 25px; }
.evp-slide-btn {
	display: inline-block;
	background: #1e73be;
	color: #fff;
	padding: 10px 26px;
	border-radius: 0;
	font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-weight: 700;
	font-size: 15px;
	line-height: 30px;
	transition: background .2s;
}
.evp-slide-btn:hover { background: #185f9d; color: #fff; }
/* The live RevSlider shows no side arrows, only bullets. */
.evp-slider-nav { display: none; }
.evp-slider-dots { position: absolute; bottom: 15px; left: 0; right: 0; z-index: 5; text-align: center; font-size: 0; }
.evp-slider-dot {
	position: relative; width: 15px; height: 15px; border-radius: 50%; border: 0;
	margin: 0 2.5px; padding: 0; background: rgba(255,255,255,.3); cursor: pointer;
	transition: box-shadow .3s, background .3s; vertical-align: middle;
}
.evp-slider-dot.is-active { background: transparent; box-shadow: 0 0 0 2px #fff; }
.evp-slider-dot.is-active::after {
	content: ""; position: absolute; top: 50%; left: 50%;
	width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: #fff;
}

/* Header ------------------------------------------------------------------ */
/* Replicates the live Basel header: 99px tall, full-width 95% container,
   logo left (squeezed to 103x95 like live), Roboto uppercase menu on the
   right ending 250px before the container edge (live .right-column cell). */
.site-header { height: 99px; z-index: 350; }
.evp-header-overlap { position: fixed; top: 0; left: 0; right: 0; background: transparent; }
.evp-header-dark { position: relative; background: transparent; }
.evp-header-container {
	width: 95%; margin: 0 auto; padding: 0 15px; height: 99px;
	display: flex; align-items: center;
}
.site-branding { flex: 0 0 auto; padding-right: 15px; }
.site-branding .custom-logo-link { display: inline-flex; align-items: center; height: 95px; }
.site-branding .custom-logo { display: block; width: 103px; height: 95px; max-width: none; }
.site-title { margin: 0; font-size: 22px; }
.site-title a { text-decoration: none; color: var(--evp-primary); }
.site-description { display: none; }

.main-navigation { flex: 1 1 auto; display: flex; justify-content: flex-end; margin-right: 238px; }
.main-navigation ul { list-style: none; display: flex; margin: 0; padding: 0; }
.main-navigation .menu > li { position: relative; }
.main-navigation .menu > li + li { margin-left: 1px; }
.main-navigation .menu > li > a {
	display: block;
	font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px; font-weight: 500;
	letter-spacing: .5px; text-transform: uppercase;
	line-height: 95px; padding: 0 13px;
	transition: color .25s;
}
.evp-header-dark .main-navigation .menu > li > a { color: rgba(0, 0, 0, .9); }
.evp-header-dark .main-navigation .menu > li > a:hover,
.evp-header-dark .main-navigation .menu > li.current-menu-item > a { color: var(--evp-primary); }
.evp-header-light .main-navigation .menu > li > a { color: #fff; }
.evp-header-light .main-navigation .menu > li > a:hover { color: rgba(255, 255, 255, .8); }
.evp-header-light .main-navigation .menu > li.current-menu-item > a { color: #fff; }

/* Dropdown (language switcher), matching the live white panel. */
.main-navigation .sub-menu {
	position: absolute; top: 95px; left: 0; z-index: 400;
	display: block; width: 180px; padding: 12px 0; margin: 0;
	background: #fff; box-shadow: 0 0 2px rgba(0, 0, 0, .1);
	opacity: 0; visibility: hidden; transition: all .25s .1s;
}
.main-navigation .menu > li:hover > .sub-menu { opacity: 1; visibility: visible; }
.main-navigation .sub-menu li { display: block; margin: 0; }
.main-navigation .sub-menu a {
	display: inline-block; font-size: 13px; color: #3c3c3c;
	padding: 11px 15px; line-height: 1.3; transition: all .25s;
}
.main-navigation .sub-menu a:hover { color: var(--evp-primary); margin-left: 5px; }

/* Scroll-to-top button, matching the live .scrollToTop circle. */
.evp-scroll-top {
	position: fixed; bottom: 75px; right: 40px; z-index: 350;
	width: 45px; height: 45px; border-radius: 50%;
	background: #fff; border: 1px solid #000; color: #000;
	text-align: center; font-size: 0; text-decoration: none;
	visibility: hidden; opacity: 0;
	transition: opacity .3s, visibility .3s, background .3s, border-color .3s, transform .3s;
}
.evp-scroll-top.is-visible { visibility: visible; opacity: 1; }
.evp-scroll-top::after {
	content: ""; display: inline-block; width: 10px; height: 10px;
	margin-top: 17px; border-top: 2px solid currentColor; border-left: 2px solid currentColor;
	transform: rotate(45deg);
}
.evp-scroll-top:hover { background: #1aada3; border-color: #1aada3; color: #fff; transform: scale(.91); }

/* Footer ------------------------------------------------------------------ */
.site-footer { background: #000; color: rgba(255, 255, 255, .6); }
.evp-copyrights-inner { max-width: var(--evp-container); margin: 0 auto; padding: 20px 15px; }
.evp-copyrights-inner p { margin: 0; text-align: center; font-size: 14px; line-height: 21px; }
.site-footer a { color: rgba(255, 255, 255, .6); }
.site-footer a:hover { color: #fff; }

/* 404 ---------------------------------------------------------------------- */
/* Live 404: giant grey watermark digits with centred headings and search. */
.evp-404 { position: relative; text-align: center; padding: 100px 20px 120px; overflow: hidden; }
.evp-404-watermark {
	position: absolute; top: 40%; left: 50%; transform: translate(-50%, -50%);
	font-size: 400px; line-height: 1; font-weight: 600; color: #f0f0f0; z-index: -1;
	font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.evp-404-notfound {
	font-size: 62px; font-weight: 700; text-transform: uppercase;
	color: var(--evp-primary); margin: 60px 0 120px; line-height: 1.2;
}
.evp-404-title { font-size: 28px; text-transform: uppercase; margin: 0 0 10px; }
.evp-404-text { margin: 0 0 30px; }
.evp-404-search { max-width: 350px; margin: 0 auto; }
.evp-404-search form { display: flex; }
.evp-404-search input[type="search"],
.evp-404-search input[type="text"] {
	flex: 1 1 auto; border: 1px solid #e0e0e0; padding: 10px 15px; font-size: 14px;
}
.evp-404-search button,
.evp-404-search input[type="submit"] {
	flex: 0 0 auto; border: 0; background: var(--evp-primary); color: #fff;
	text-transform: uppercase; font-size: 13px; padding: 10px 22px; cursor: pointer;
}

/* Post / archive ---------------------------------------------------------- */
.evp-content-wrap { max-width: var(--evp-container); margin: 40px auto; padding: 0 15px; }
.evp-page-title { text-align: center; margin-bottom: 30px; }

/* Dark page-title banner, matching the live News / archive header. */
.evp-page-banner {
	background: #212121;
	color: #fff;
	text-align: center;
	padding: 15px 0;
}
.evp-page-banner-title { color: #fff; margin: 0; font-size: 36px; font-weight: 400; text-transform: uppercase; line-height: 1.4; }

/* News layout (single column + Recent Posts sidebar) --------------------- */
.evp-news-layout { display: flex; flex-wrap: wrap; gap: 30px; align-items: flex-start; }
.evp-news-main { flex: 1 1 0; min-width: 0; }
.evp-news-sidebar { flex: 0 0 262px; max-width: 262px; }

.evp-news-post { margin-bottom: 100px; }
.evp-news-media { position: relative; margin-bottom: 20px; }
.evp-news-thumb { display: block; }
.evp-news-thumb img { display: block; width: 100%; height: auto; }
.evp-news-date {
	position: absolute; top: 20px; left: 20px; z-index: 2;
	background: #fff; color: #333; text-align: center;
	padding: 10px 12px; line-height: 1;
}
.evp-news-day { display: block; font-size: 22px; font-weight: 600; }
.evp-news-month { display: block; font-size: 12px; text-transform: uppercase; color: var(--evp-muted); margin-top: 4px; }
.evp-news-cat {
	position: absolute; bottom: 20px; left: 0; z-index: 2;
	background: var(--evp-primary); color: #fff; font-size: 12px; padding: 4px 12px;
}
.evp-news-cat:hover { color: #fff; }
.evp-news-title { font-size: 32px; margin: 0 0 10px; line-height: 1.4; }
.evp-news-title a { color: #1b1919; }
.evp-news-title a:hover { color: var(--evp-primary); }
.evp-news-meta { font-style: italic; font-size: 14px; color: var(--evp-dark); margin-bottom: 20px; }
.evp-news-meta a { color: var(--evp-primary); }
.evp-news-meta-sep { color: #bbb; margin: 0 4px; }
.evp-news-excerpt { margin-bottom: 20px; }
.evp-news-more {
	display: inline-block; font-size: 14px; color: #4e4e4e;
	border-bottom: 1px solid rgba(78, 78, 78, .4); padding-bottom: 1px;
}
.evp-news-more:hover { color: var(--evp-primary); border-color: var(--evp-primary); }

.evp-widget { margin-bottom: 40px; }
.evp-widget-title {
	font-size: 16px; text-transform: uppercase; letter-spacing: 1.5px;
	font-weight: 700; margin: 0 0 25px; padding-bottom: 4px; border: 0;
}
.evp-recent-list { list-style: none; margin: 0; padding: 0; }
.evp-recent-item {
	display: flex; gap: 15px; margin-bottom: 15px; padding-bottom: 15px;
	align-items: flex-start; border-bottom: 1px solid rgba(124, 124, 124, .15);
}
.evp-recent-thumb { flex: 0 0 60px; }
.evp-recent-thumb img { display: block; width: 60px; height: 60px; object-fit: cover; }
.evp-recent-body { flex: 1 1 auto; }
.evp-recent-title {
	display: block; font-size: 22px; font-weight: 400; text-transform: uppercase;
	font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
	color: rgba(0, 0, 0, .9); line-height: 1.4;
}
.evp-recent-title:hover { color: var(--evp-primary); }
.evp-recent-date { display: block; font-size: 14px; color: #bbb; margin-top: 5px; }

/* Image carousel (vc_gallery) --------------------------------------------- */
.evp-img-carousel { position: relative; }
.evp-img-slide { display: none; }
.evp-img-slide.is-active { display: block; }
.evp-img-slide img { display: block; width: 100%; height: auto; }
.evp-img-carousel-nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
	background: none; border: 0; color: #909090; font-size: 30px; line-height: 1;
	cursor: pointer; padding: 5px;
}
.evp-img-carousel-prev { left: -30px; }
.evp-img-carousel-next { right: -30px; }
.evp-img-carousel-nav:hover { color: var(--evp-primary); }

/* Single post ------------------------------------------------------------- */
.evp-breadcrumbs { margin-top: 2px; font-size: 14px; color: rgba(255, 255, 255, .6); }
.evp-breadcrumbs a { color: rgba(255, 255, 255, .6); }
.evp-breadcrumbs a:hover { color: #fff; }
.evp-breadcrumbs-sep { margin: 0 6px; }
.evp-single-post .evp-news-media { margin-bottom: 14px; }
.evp-single-featured { display: block; width: 100%; height: auto; }
.evp-single-title { font-size: 32px; font-weight: 400; color: #1b1919; margin: 0 0 10px; line-height: 1.4; }
.evp-single-content { margin-bottom: 40px; }
.evp-share-icons { text-align: center; margin: 40px 0; }
.evp-share {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%; margin: 0 6px;
	color: #fff; font-size: 15px; font-weight: 700; line-height: 1;
	font-family: Georgia, "Times New Roman", serif;
}
.evp-share:hover { color: #fff; opacity: .85; }
.evp-share-fb { background: #3b5998; }
.evp-share-tw { background: #1da1f2; }
.evp-share-gp { background: #dd4b39; }
.evp-share-mail { background: #f39c12; }
.evp-share-pin { background: #bd081c; }

/* Previous/next post navigation band. */
.post-navigation { background: #f9f9f9; margin: 0 0 40px; }
.post-navigation .nav-links { display: flex; justify-content: space-between; }
.post-navigation a {
	display: inline-block; padding: 14px 20px;
	font-size: 14px; text-transform: uppercase; color: #7a7a7a; font-weight: 500;
	letter-spacing: .3px;
}
.post-navigation a:hover { color: var(--evp-primary); }
.post-navigation .nav-previous .nav-title::before { content: "\2039"; margin-right: 8px; }
.post-navigation .nav-next .nav-title::after { content: "\203A"; margin-left: 8px; }
.post-navigation .screen-reader-text { display: none; }

/* Responsive -------------------------------------------------------------- */
@media (max-width: 1024px) {
	.main-navigation { margin-right: 0; }
}
@media (max-width: 782px) {
	.evp-news-sidebar { flex: 0 0 100%; max-width: 100%; }
	.evp-col[class*="evp-col-md-"] { flex: 0 0 100%; max-width: 100%; }
	.evp-slide-title { font-size: 34px; }
	.site-header { height: auto; }
	.site-header.evp-header-overlap { position: relative; background: #fff; }
	.site-header.evp-header-overlap .main-navigation .menu > li > a { color: rgba(0, 0, 0, .9); }
	.evp-header-container { flex-direction: column; height: auto; padding: 10px 15px; }
	.main-navigation ul { flex-wrap: wrap; justify-content: center; }
	.main-navigation .menu > li > a { line-height: 44px; }
	.main-navigation .sub-menu { position: static; opacity: 1; visibility: visible; width: auto; box-shadow: none; padding: 0; }
}
