/*
Theme Name:   Mainalo Astra Child
Theme URI:    https://mainaloski.gr
Description:  Child theme του Astra για το Χιονοδρομικό Κέντρο Μαινάλου
Author:       Digital We
Author URI:   https://digitalwe.gr
Template:     astra
Version:      1.1.0
Text Domain:  mainalo-astra-child
*/

/* ==========================================================================
   Brand tokens (from the Mainalo logo)
   ========================================================================== */
:root {
	--m-blue: #347bb0;      /* logo blue */
	--m-blue-dark: #255e8a;
	--m-red: #ed1d23;       /* logo red (scarf) */
	--m-navy: #0f1e33;
	--m-text: #3b4a5c;
	--m-ice: #eef4fa;
	--m-line: #d6e2ee;
	--m-radius: 18px;
	--m-font-head: "Commissioner", "Inter", system-ui, sans-serif;
	--m-font-body: "Inter", system-ui, sans-serif;
}

body,
button,
input,
select,
textarea {
	font-family: var(--m-font-body);
}
h1, h2, h3, h4, h5, h6,
.entry-title,
.elementor-heading-title {
	font-family: var(--m-font-head);
	letter-spacing: -0.01em;
}

/* ==========================================================================
   Header
   ========================================================================== */
.ast-primary-header-bar {
	border-bottom: 0 !important;
	box-shadow: 0 1px 0 rgba(15, 30, 51, .06);
}
@media (min-width: 922px) {
	.site-header .main-header-menu { flex-wrap: nowrap; }
	.site-header .main-header-menu > .menu-item > .menu-link {
		padding: 0 .85em !important;
		white-space: nowrap;
	}
}
.site-header .main-header-menu > .menu-item > .menu-link {
	font-family: var(--m-font-head);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: .03em;
	text-transform: none;
}
.ast-header-button-1 .ast-custom-button { white-space: nowrap; }
.site-header .main-header-menu > .menu-item.current-menu-item > .menu-link,
.site-header .main-header-menu > .menu-item > .menu-link:hover {
	color: var(--m-red) !important;
}
.ast-header-button-1 .ast-custom-button {
	border-radius: 999px !important;
	font-weight: 600;
}
/* Polylang flag item */
.main-header-menu .lang-item img { width: 18px !important; height: auto !important; border-radius: 2px; }

/* ==========================================================================
   Generic section helpers (used as CSS classes in Elementor)
   ========================================================================== */
.m-eyebrow .elementor-heading-title {
	font-family: var(--m-font-body) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: .18em !important;
	text-transform: uppercase;
	color: var(--m-red) !important;
}
.m-title .elementor-heading-title { color: var(--m-navy); }
.m-lead { font-size: 18px; line-height: 1.7; }

.m-btn .elementor-button {
	border-radius: 999px;
	font-family: var(--m-font-head);
	font-weight: 600;
	padding: 14px 26px;
}

/* Keep Revolution Slider arrows from widening the page on phones */
html, body { overflow-x: clip; }
.m-gallery { overflow: hidden; }

/* Hero slider */
.m-hero rs-module-wrap,
.m-hero .rev_slider_wrapper { margin: 0 !important; }

/* Status bar overlapping the hero */
.m-bar-wrap { position: relative; z-index: 5; margin-top: -48px; }
@media (max-width: 767px) { .m-bar-wrap { margin-top: -24px; } }

/* Live cam */
.m-livecam .m-play .elementor-button {
	width: 84px; height: 84px; padding: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 0 0 10px rgba(237, 29, 35, .25);
	animation: m-pulse 2.2s infinite;
}
.m-livecam .m-play .elementor-button-icon svg { width: 26px; height: 26px; }
@keyframes m-pulse {
	0% { box-shadow: 0 0 0 0 rgba(237, 29, 35, .45); }
	70% { box-shadow: 0 0 0 22px rgba(237, 29, 35, 0); }
	100% { box-shadow: 0 0 0 0 rgba(237, 29, 35, 0); }
}
@media (prefers-reduced-motion: reduce) { .m-livecam .m-play .elementor-button { animation: none; } }
.m-live-dot { display: inline-flex; align-items: center; gap: 8px; }
.m-live-dot::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--m-red); }

/* Two-column text */
.m-cols p { margin-bottom: 1em; }
@media (min-width: 1025px) {
	.m-cols:not(:has(> .elementor-widget-container)),
	.m-cols > .elementor-widget-container { columns: 2; column-gap: 48px; }
}

/* Piste map */
.m-map img { border-radius: var(--m-radius); box-shadow: 0 30px 60px -30px rgba(15, 30, 51, .45); }
.m-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 24px 0; }
.m-facts div { background: #fff; border: 1px solid var(--m-line); border-radius: 14px; padding: 14px; text-align: center; }
.m-facts strong { display: block; font-family: var(--m-font-head); font-size: 28px; color: var(--m-blue); line-height: 1.1; }
.m-facts span { font-size: 13px; color: #64748b; }

/* Service cards (Elementor image box) */
.m-card { background: #fff; border-radius: var(--m-radius); overflow: hidden; box-shadow: 0 20px 45px -28px rgba(15, 30, 51, .4); transition: transform .25s, box-shadow .25s; }
.m-card:hover { transform: translateY(-4px); box-shadow: 0 28px 55px -26px rgba(15, 30, 51, .5); }
.m-card .elementor-image-box-wrapper { text-align: left; }
.m-card .elementor-image-box-img { width: 100% !important; margin: 0 !important; }
.m-card .elementor-image-box-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.m-card .elementor-image-box-content { padding: 22px 24px 26px; }
.m-card .elementor-image-box-title { font-size: 22px; margin-bottom: 8px; color: var(--m-navy); }
.m-card .elementor-image-box-title a { color: inherit; }
.m-card .elementor-image-box-description { font-size: 15px; line-height: 1.65; }

/* Daskaloi banner */
.m-daskaloi img { max-width: 280px; }

/* ==========================================================================
   Shortcode: villages carousel
   ========================================================================== */
.m-carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 60px) / 4);
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 4px;
}
.m-carousel__track::-webkit-scrollbar { display: none; }
@media (max-width: 1024px) { .m-carousel__track { grid-auto-columns: calc((100% - 20px) / 2.3); } }
@media (max-width: 600px) { .m-carousel__track { grid-auto-columns: 78%; } .m-village { height: 340px; } }
.elementor-widget-shortcode { flex-shrink: 0; }
.m-village {
	position: relative; display: block; height: 380px; border-radius: var(--m-radius);
	overflow: hidden; scroll-snap-align: start; color: #fff !important; text-decoration: none !important;
}
.m-village img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; transition: transform .5s; }
.m-village::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,30,51,0) 45%, rgba(15,30,51,.85)); }
.m-village:hover img { transform: scale(1.06); }
.m-village__title { letter-spacing: .04em; position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 1; font-family: var(--m-font-head); font-size: 22px; font-weight: 700; }
.m-carousel__nav { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.m-carousel__btn {
	width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--m-line) !important;
	background: #fff !important; color: var(--m-navy) !important; font-size: 18px; padding: 0 !important; cursor: pointer;
}
.m-carousel__btn:hover { background: var(--m-navy) !important; color: #fff !important; }

/* ==========================================================================
   Shortcode: news
   ========================================================================== */
.m-news { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1024px) { .m-news { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .m-news { grid-template-columns: 1fr; } }
.m-news__card { background: #fff; border: 1px solid var(--m-line); border-radius: var(--m-radius); overflow: hidden; display: flex; flex-direction: column; }
.m-news__img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.m-news__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.m-news__body time { font-size: 13px; color: #64748b; }
.m-news__body h3 { font-size: 19px; line-height: 1.35; margin: 6px 0 10px; }
.m-news__body h3 a { color: var(--m-navy); }
.m-news__body p { font-size: 15px; margin-bottom: 14px; }
.m-news__more { margin-top: auto; font-weight: 600; color: var(--m-blue); }

/* ==========================================================================
   Footer
   ========================================================================== */
.m-footer { background: var(--m-navy); color: #c7d3e3; position: relative; }
.m-footer__inner {
	max-width: 1240px; margin: 0 auto; padding: 72px 24px 48px;
	display: grid; grid-template-columns: 1.2fr 1fr 1.1fr; gap: 48px;
}
@media (max-width: 921px) { .m-footer__inner { grid-template-columns: 1fr; gap: 36px; padding-top: 56px; } }
.m-footer h4 { color: #fff; font-size: 17px; margin-bottom: 16px; }
.m-footer a { color: #fff; }
.m-footer a:hover { color: #8fc1ea; }
.m-footer__logo { display: inline-block; background: #fff; border-radius: 16px; padding: 12px 16px; margin-bottom: 18px; }
.m-footer__logo img { width: 180px; height: auto; display: block; }
.m-footer__about p { font-size: 15px; line-height: 1.7; }
.m-footer__social { display: flex; gap: 10px; margin-top: 18px; }
.m-footer__social a { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.08); display: inline-flex; align-items: center; justify-content: center; }
.m-footer__social a:hover { background: var(--m-red); color: #fff; }
.m-footer__social svg { width: 18px; height: 18px; }
.m-footer__contact { list-style: none; margin: 0 0 20px; padding: 0; }
.m-footer__contact li { margin-bottom: 12px; font-size: 15px; }
.m-footer__contact li span { display: block; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #7f93ad; }
.m-footer__links { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; flex-wrap: wrap; font-size: 14px; }
.m-footer__map iframe { width: 100%; height: 220px; border: 0; border-radius: 14px; filter: grayscale(.2); }
.m-footer__directions { display: inline-block; margin-top: 12px; font-weight: 600; }

/* Astra copyright bar under our footer */
.site-below-footer-wrap { background: #0a1526 !important; border-top: 1px solid rgba(255,255,255,.06) !important; }
.site-below-footer-wrap, .site-below-footer-wrap a { color: #8a9bb3 !important; font-size: 14px; }

/* Scroll to top */
#ast-scroll-top { background: var(--m-navy) !important; color: #fff !important; border: 0 !important; outline: 0; border-radius: 50%; width: 44px; height: 44px; line-height: 44px; box-shadow: 0 10px 24px -10px rgba(15,30,51,.6); }
#ast-scroll-top:hover { background: var(--m-red) !important; }

/* Second "back to top" button comes from the old theme's trx_addons plugin */
.trx_addons_scroll_to_top { display: none !important; }

/* ==========================================================================
   Villages: numbered list + preview
   ========================================================================== */
.m-villages { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.m-vlist { list-style: none; margin: 0 !important; padding: 0 !important; counter-reset: none; border-top: 1px solid var(--m-line); }
.m-vlist__item { margin: 0 !important; border-bottom: 1px solid var(--m-line); }
.m-vlist__item a { display: flex; align-items: center; gap: 18px; padding: 14px 4px; color: var(--m-navy) !important; text-decoration: none !important; transition: padding .25s, color .25s; }
.m-vlist__num { font-family: var(--m-font-body); font-size: 13px; font-weight: 600; color: #94a3b8; width: 24px; }
.m-vlist__thumb { display: none; }
.m-vlist__name { flex: 1; font-family: var(--m-font-head); font-size: clamp(20px, 2vw, 28px); font-weight: 700; letter-spacing: .02em; }
.m-vlist__arrow { opacity: 0; transform: translateX(-8px); transition: .25s; color: var(--m-red); font-size: 22px; }
.m-vlist__item.is-active a { padding-left: 14px; color: var(--m-blue) !important; }
.m-vlist__item.is-active .m-vlist__num { color: var(--m-red); }
.m-vlist__item.is-active .m-vlist__arrow { opacity: 1; transform: none; }

.m-vpreview { position: sticky; top: 110px; aspect-ratio: 4 / 5; max-height: 640px; width: 100%; border-radius: 24px; overflow: hidden; background: var(--m-ice); }
.m-vpreview__pane { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .45s, visibility .45s; color: #fff !important; text-decoration: none !important; }
.m-vpreview__pane.is-active { opacity: 1; visibility: visible; }
.m-vpreview__pane img { width: 100% !important; height: 100% !important; object-fit: cover; transform: scale(1.06); transition: transform 6s ease-out; }
.m-vpreview__pane.is-active img { transform: scale(1); }
.m-vpreview__pane::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,30,51,0) 40%, rgba(15,30,51,.88)); }
.m-vpreview__caption { position: absolute; z-index: 1; left: 32px; right: 32px; bottom: 30px; display: grid; gap: 8px; }
.m-vpreview__caption strong { font-family: var(--m-font-head); font-size: 34px; letter-spacing: .02em; }
.m-vpreview__caption span { font-size: 15px; line-height: 1.6; color: #dbe5f1; max-width: 520px; }
.m-vpreview__caption em { font-style: normal; font-weight: 600; color: #fff; }

@media (max-width: 921px) {
	.m-villages { grid-template-columns: 1fr; gap: 0; }
	.m-vpreview { display: none; }
	.m-vlist { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; border: 0; }
	.m-vlist__item { border: 0; }
	.m-vlist__item a { position: relative; flex-direction: column; align-items: flex-start; gap: 0; padding: 0 !important; border-radius: 16px; overflow: hidden; height: calc((100vw - 44px) / 2); max-height: 320px; }
	.m-vlist__thumb { display: block; position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
	.m-vlist__item a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,30,51,0) 35%, rgba(15,30,51,.85)); }
	.m-vlist__num { position: absolute; z-index: 1; top: 10px; left: 12px; color: #fff !important; }
	.m-vlist__name { position: absolute; z-index: 1; left: 12px; right: 12px; bottom: 12px; color: #fff; font-size: 16px; }
	.m-vlist__arrow { display: none; }
}

/* ==========================================================================
   Gallery: bento grid
   ========================================================================== */
.m-gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; gap: 14px; }
.m-gallery-grid__item { position: relative; display: block; border-radius: 18px; overflow: hidden; background: var(--m-ice); }
.m-gallery-grid__item img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .6s; }
.m-gallery-grid__item:hover img { transform: scale(1.05); }
.m-gallery-grid__zoom { position: absolute; right: 14px; bottom: 14px; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--m-navy); display: grid; place-items: center; font-size: 22px; opacity: 0; transform: scale(.8); transition: .25s; }
.m-gallery-grid__item:hover .m-gallery-grid__zoom, .m-gallery-grid__item:focus .m-gallery-grid__zoom { opacity: 1; transform: none; }
.m-gallery-grid__item:nth-child(8n+1) { grid-column: span 2; grid-row: span 2; }
.m-gallery-grid__item:nth-child(8n+4) { grid-column: span 2; }
.m-gallery-grid__item:nth-child(8n+5) { grid-row: span 2; }
.m-gallery-grid__item:nth-child(8n+6) { grid-column: span 2; }
.m-gallery-grid__item:nth-child(8n+7) { grid-row: span 2; }
.m-gallery-grid__item:nth-child(8n+8) { grid-column: span 2; }
@media (max-width: 767px) {
	.m-gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: 10px; }
	.m-gallery-grid__item { grid-column: auto !important; grid-row: auto !important; border-radius: 14px; }
	.m-gallery-grid__item:nth-child(3n+1) { grid-column: span 2 !important; grid-row: span 2 !important; }
}

/* ==========================================================================
   Lightbox
   ========================================================================== */
html.m-lb-open { overflow: hidden; }
.m-lb { position: fixed; inset: 0; z-index: 99999; background: rgba(8, 15, 28, .94); display: none; }
.m-lb.is-open { display: block; }
.m-lb__stage { position: absolute; inset: 64px 72px 56px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.m-lb__img { max-width: 100%; max-height: 100%; width: auto; height: auto; border-radius: 6px; box-shadow: 0 30px 80px rgba(0,0,0,.5); transition: opacity .25s; }
.m-lb.is-loading .m-lb__img { opacity: 0; }
.m-lb__spin { position: absolute; width: 40px; height: 40px; border: 3px solid rgba(255,255,255,.2); border-top-color: #fff; border-radius: 50%; animation: m-spin .8s linear infinite; display: none; }
.m-lb.is-loading .m-lb__spin { display: block; }
@keyframes m-spin { to { transform: rotate(360deg); } }
.m-lb.is-zoomable .m-lb__img { cursor: zoom-in; }
.m-lb.is-zoomed .m-lb__stage { overflow: auto; display: block; inset: 64px 16px 56px; }
.m-lb.is-zoomed .m-lb__img { max-width: none; max-height: none; cursor: zoom-out; border-radius: 0; }
.m-lb__btn { position: absolute; width: 48px; height: 48px; border-radius: 50% !important; border: 0 !important; background: rgba(255,255,255,.12) !important; color: #fff !important; font-size: 20px !important; padding: 0 !important; cursor: pointer; line-height: 48px; }
.m-lb__btn:hover { background: var(--m-red) !important; }
.m-lb__close { top: 10px; right: 14px; }
.m-lb__prev, .m-lb__next { top: 50%; margin-top: -24px; }
.m-lb__prev { left: 12px; }
.m-lb__next { right: 12px; }
.m-lb.is-single .m-lb__prev, .m-lb.is-single .m-lb__next { display: none; }
.m-lb__bar { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 16px; color: #cbd5e1; font-size: 14px; }
@media (max-width: 767px) {
	.m-lb__stage { inset: 60px 8px 50px; }
	.m-lb__prev, .m-lb__next { top: auto; bottom: 6px; margin: 0; width: 40px; height: 40px; line-height: 40px; }
}

/* Piste map: hint that it opens */
.m-map a { position: relative; display: block; cursor: zoom-in; }

/* ==========================================================================
   Sponsors
   ========================================================================== */
.m-sponsors { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px 48px; }
.m-sponsors li { margin: 0 !important; }
.m-sponsors a { display: flex; align-items: center; justify-content: center; width: 180px; height: 110px; }
.m-sponsors img { max-width: 100% !important; max-height: 100px !important; width: auto !important; height: auto !important; object-fit: contain; mix-blend-mode: multiply; filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s; }
.m-sponsors a:hover img, .m-sponsors a:focus img { filter: none; opacity: 1; }
@media (max-width: 600px) { .m-sponsors { gap: 16px 20px; } .m-sponsors a { width: 120px; height: 80px; } }

/* ==========================================================================
   Hero (replaces Revolution Slider)
   ========================================================================== */
.m-herox { position: relative; height: min(88vh, 860px); min-height: 520px; overflow: hidden; background: var(--m-navy); color: #fff; isolation: isolate; }
.m-herox__slides, .m-herox__slide { position: absolute; inset: 0; }
.m-herox__slide { opacity: 0; transition: opacity 1.4s ease; }
.m-herox__slide.is-active { opacity: 1; z-index: 1; }
.m-herox__slide img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; transform: scale(1.1); transition: transform 9s linear; }
.m-herox__slide.is-active img { transform: scale(1); }
.m-herox__shade { position: absolute; inset: 0; z-index: 2; background:
	linear-gradient(90deg, rgba(10,21,38,.72) 0%, rgba(10,21,38,.35) 45%, rgba(10,21,38,0) 75%),
	linear-gradient(180deg, rgba(10,21,38,.35) 0%, rgba(10,21,38,0) 30%, rgba(10,21,38,.55) 100%); }
.m-herox__content { position: absolute; z-index: 3; left: 0; right: 0; bottom: 0; max-width: 1240px; margin: 0 auto; padding: 0 24px 120px; }
.m-herox__eyebrow { margin: 0 0 14px !important; font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #fff; opacity: .9; }
.m-herox__title { margin: 0 0 16px !important; color: #fff !important; font-size: clamp(36px, 5.4vw, 72px) !important; line-height: 1.05 !important; font-weight: 800 !important; letter-spacing: -.02em; max-width: 14ch; text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.m-herox__lead { margin: 0 0 28px !important; max-width: 520px; font-size: clamp(16px, 1.5vw, 19px); line-height: 1.6; color: #e2eaf4; }
.m-herox__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.m-herox__btn { display: inline-flex; align-items: center; gap: 10px; padding: 15px 26px; border-radius: 999px; font-family: var(--m-font-head); font-weight: 700; font-size: 16px; text-decoration: none !important; transition: background .2s, transform .2s; }
.m-herox__btn:hover { transform: translateY(-2px); }
.m-herox__btn--primary { background: var(--m-red); color: #fff !important; }
.m-herox__btn--primary:hover { background: #c4141a; }
.m-herox__btn--glass { background: rgba(255,255,255,.14); color: #fff !important; border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.m-herox__btn--glass:hover { background: rgba(255,255,255,.24); }
.m-herox__dots { position: absolute; z-index: 3; right: max(24px, calc((100vw - 1240px) / 2 + 24px)); bottom: 128px; display: flex; gap: 8px; }
.m-herox__dot { width: 36px; height: 20px; padding: 0 !important; border: 0 !important; background: none !important; cursor: pointer; }
.m-herox__dot span { display: block; height: 3px; border-radius: 3px; background: rgba(255,255,255,.35); overflow: hidden; position: relative; }
.m-herox__dot span::after { content: ""; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
.m-herox__dot.is-active span::after { animation: m-hero-progress var(--m-hero-dur, 6s) linear forwards; }
.m-herox.is-paused .m-herox__dot.is-active span::after { animation-play-state: paused; }
@keyframes m-hero-progress { to { transform: scaleX(1); } }
@media (max-width: 767px) {
	.m-herox { height: 78svh; min-height: 480px; }
	.m-herox__shade { background: linear-gradient(180deg, rgba(10,21,38,.25) 0%, rgba(10,21,38,.1) 35%, rgba(10,21,38,.8) 100%); }
	.m-herox__content { padding: 0 20px 76px; }
	.m-herox__btn { padding: 13px 20px; font-size: 15px; }
	.m-herox__dots { left: 20px; right: auto; bottom: 46px; }
	.m-herox__dot { width: 26px; }
}
@media (prefers-reduced-motion: reduce) {
	.m-herox__slide img { transform: none !important; transition: none; }
	.m-herox__slide { transition-duration: .01s; }
}

/* ==========================================================================
   Mobile: horizontal carousels instead of long vertical stacks
   ========================================================================== */
.m-swipe-dots { display: none; }
@media (max-width: 767px) {
	.m-news,
	.m-gallery-grid {
		display: flex !important;
		gap: 14px !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		margin: 0 -16px;
		padding: 0 16px 4px;
		scroll-padding: 0 16px;
	}
	.m-news::-webkit-scrollbar, .m-gallery-grid::-webkit-scrollbar { display: none; }
	.m-news__card { flex: 0 0 84%; scroll-snap-align: start; }
	.m-news__body p { display: none; }
	.m-gallery-grid__item { flex: 0 0 84%; height: 280px; scroll-snap-align: start; }
	.m-gallery-grid__item .m-gallery-grid__zoom { opacity: 1; transform: none; }

	/* Services (Elementor row) */
	.m-services-row.e-con {
		--flex-direction: row !important; flex-direction: row !important; flex-wrap: nowrap !important;
		overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
		margin: 0 -16px !important; padding: 0 16px 24px !important; scroll-padding: 0 16px;
	}
	.m-services-row.e-con::-webkit-scrollbar { display: none; }
	.m-services-row.e-con > .e-con { --width: 84% !important; width: 84% !important; flex: 0 0 84% !important; scroll-snap-align: start; }

	.m-swipe-dots { display: flex; justify-content: center; gap: 6px; margin-top: 14px; }
	.m-swipe-dots button { width: 8px; height: 8px; padding: 0 !important; border: 0 !important; border-radius: 999px !important; background: var(--m-line) !important; transition: width .25s, background .25s; }
	.m-swipe-dots button.is-active { width: 22px; background: var(--m-blue) !important; }

	/* Sponsors: endless marquee */
	.m-sponsors-wrap { overflow: hidden; margin: 0 -16px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
	.m-sponsors { flex-wrap: nowrap !important; justify-content: flex-start !important; gap: 0 28px !important; width: max-content; animation: m-marquee 22s linear infinite; }
	.m-sponsors:hover, .m-sponsors:focus-within { animation-play-state: paused; }
	.m-sponsors__dup { display: list-item !important; }
	.m-sponsors a { width: 130px; height: 84px; }
	.m-sponsors img { filter: none; opacity: 1; }

	/* Long villages text: show the first lines, expand on tap */
	.m-cols.is-clamped { max-height: 230px; overflow: hidden; position: relative; }
	.m-cols.is-clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(180deg, rgba(255,255,255,0), #fff); }
	.m-more { display: inline-flex; margin: 4px 0 8px; padding: 0 !important; background: none !important; border: 0 !important; color: var(--m-blue) !important; font-weight: 600; font-size: 15px; }
}
@media (min-width: 768px) { .m-sponsors__dup, .m-more { display: none !important; } }
@keyframes m-marquee { to { transform: translateX(calc(-50% - 14px)); } }
@media (prefers-reduced-motion: reduce) { .m-sponsors { animation: none; } }

/* Header CTA in brand red */
.ast-header-button-1 .ast-custom-button { background: var(--m-red) !important; border-color: var(--m-red) !important; color: #fff !important; }
.ast-header-button-1 .ast-custom-button:hover { background: #c4141a !important; border-color: #c4141a !important; }

/* No status bar under the hero any more: bring the hero content down */
.m-herox__content { padding-bottom: 88px; }
.m-herox__dots { bottom: 96px; }
@media (max-width: 767px) { .m-herox__content { padding-bottom: 64px; } .m-herox__dots { bottom: 34px; } }

/* ==========================================================================
   Intro (SEO text) + facts
   ========================================================================== */
.m-intro p { font-size: 17px; line-height: 1.75; }
.m-facts2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; background: #fff; border-radius: 22px; padding: 22px; box-shadow: 0 18px 40px -18px rgba(15, 30, 51, .35); border: 1px solid #e6edf5; }
.m-facts2 div { background: var(--m-ice); border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 4px; }
.m-facts2 strong { font-family: var(--m-font-head); font-size: 34px; line-height: 1; color: var(--m-blue); }
.m-facts2 span { font-size: 14px; color: #64748b; }
.m-facts2__link { grid-column: 1 / -1; justify-self: center; font-weight: 600; color: var(--m-blue) !important; padding-top: 4px; }

/* ==========================================================================
   Slopes list (piste map section)
   ========================================================================== */
.m-diff--green { background: #1f9d55; }
.m-diff--blue { background: #1f6fb2; }
.m-diff--red { background: #e02424; }
.m-diff--black { background: #111827; }
.m-slopes__list { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; }
.m-slopes__list li { margin: 0 !important; display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--m-line); font-size: 15px; }
.m-slopes__num { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; color: #fff; font-size: 12px; font-weight: 700; display: grid; place-items: center; }
.m-slopes__name { flex: 1; color: var(--m-navy); font-weight: 500; }
.m-slopes__len { color: #64748b; font-variant-numeric: tabular-nums; white-space: nowrap; }
.m-slopes__sled .m-slopes__name { font-style: italic; }
.m-slopes__legend { list-style: none; margin: 14px 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: #64748b; }
.m-slopes__legend li { margin: 0 !important; display: flex; align-items: center; gap: 6px; }
.m-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.m-slopes__lifts { margin: 12px 0 18px !important; font-size: 14px; }
@media (max-width: 600px) { .m-slopes__list { grid-template-columns: 1fr; } }

/* ==========================================================================
   Activities: expanding panels
   ========================================================================== */
.m-acts { display: flex; gap: 12px; height: 540px; }
.m-act { position: relative; flex: 1 1 0; min-width: 0; border-radius: 22px; overflow: hidden; color: #fff !important; text-decoration: none !important; transition: flex-grow .6s cubic-bezier(.2,.7,.2,1); background: var(--m-navy); }
.m-act.is-active { flex-grow: 4; }
.m-act__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; transition: transform .8s; }
.m-act.is-active .m-act__img { transform: scale(1.03); }
.m-act::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,21,38,.1) 30%, rgba(10,21,38,.85)); transition: background .4s; }
.m-act:not(.is-active)::after { background: linear-gradient(180deg, rgba(10,21,38,.35), rgba(10,21,38,.8)); }
.m-act__body { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 26px; display: grid; gap: 8px; }
.m-act__num { font-size: 13px; font-weight: 700; letter-spacing: .12em; color: rgba(255,255,255,.75); }
.m-act__title { font-family: var(--m-font-head); font-weight: 800; font-size: 28px; line-height: 1.1; white-space: nowrap; }
.m-act__text, .m-act__more { max-width: 420px; opacity: 0; transform: translateY(10px); transition: opacity .35s, transform .35s; }
.m-act__text { font-size: 15px; line-height: 1.6; color: #e2eaf4; }
.m-act__more { font-weight: 700; color: #fff; }
.m-act.is-active .m-act__text, .m-act.is-active .m-act__more { opacity: 1; transform: none; transition-delay: .25s; }
.m-act:not(.is-active) .m-act__title { font-size: 20px; writing-mode: vertical-rl; transform: rotate(180deg); justify-self: start; }
.m-act:not(.is-active) .m-act__text, .m-act:not(.is-active) .m-act__more { display: none; }
@media (max-width: 1024px) and (min-width: 768px) { .m-acts { height: 460px; } .m-act.is-active { flex-grow: 5; } }
@media (max-width: 767px) {
	.m-acts { height: auto; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 -16px; padding: 0 16px 4px; scroll-padding: 0 16px; gap: 12px; }
	.m-acts::-webkit-scrollbar { display: none; }
	.m-act { flex: 0 0 82% !important; height: 420px; scroll-snap-align: start; }
	.m-act::after { background: linear-gradient(180deg, rgba(10,21,38,.05) 35%, rgba(10,21,38,.88)) !important; }
	.m-act .m-act__title { writing-mode: horizontal-tb !important; transform: none !important; font-size: 24px !important; }
	.m-act .m-act__text, .m-act .m-act__more { display: block !important; opacity: 1 !important; transform: none !important; }
}
@media (prefers-reduced-motion: reduce) { .m-act { transition: none; } }

.m-amen { list-style: none; margin: 28px 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; }
.m-amen li { margin: 0 !important; display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: var(--m-navy); }
.m-amen svg { width: 22px; height: 22px; color: var(--m-blue); }
@media (max-width: 767px) { .m-amen { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .m-amen li { font-size: 13px; } }

/* ==========================================================================
   Villages on phones: swipe carousel + accordion text (replaces the 2-col grid)
   ========================================================================== */
.m-vlist__text, .m-vlist__cta { display: none; }
@media (max-width: 921px) {
	.m-vlist { display: flex !important; gap: 12px !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 -16px !important; padding: 0 16px 4px !important; scroll-padding: 0 16px; }
	.m-vlist::-webkit-scrollbar { display: none; }
	.m-vlist__item { flex: 0 0 78%; scroll-snap-align: start; }
	.m-vlist__item a { height: 400px !important; max-height: none !important; justify-content: flex-end; padding: 20px !important; gap: 6px !important; }
	.m-vlist__item a::after { background: linear-gradient(180deg, rgba(15,30,51,0) 30%, rgba(15,30,51,.9)) !important; }
	.m-vlist__num { top: 16px !important; left: 18px !important; font-size: 13px; }
	.m-vlist__name { position: relative !important; left: auto !important; right: auto !important; bottom: auto !important; font-size: 24px !important; z-index: 1; }
	.m-vlist__text { display: block; position: relative; z-index: 1; color: #dbe5f1; font-size: 14px; line-height: 1.5; }
	.m-vlist__cta { display: inline-block; position: relative; z-index: 1; color: #fff; font-weight: 700; font-size: 14px; margin-top: 4px; }
}
@media (min-width: 768px) and (max-width: 921px) { .m-vlist__item { flex-basis: 46%; } }
@media (max-width: 921px) and (min-width: 768px) { .m-swipe-dots { display: flex; } }

/* Accordion for the long villages text on phones */
@media (max-width: 767px) {
	.m-acc__head { cursor: pointer; padding: 14px 44px 14px 16px; border: 1px solid var(--m-line); border-radius: 14px; position: relative; background: #fff; }
	.m-acc__head .elementor-heading-title { font-size: 17px !important; }
	.m-acc__head::after { content: "+"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; background: var(--m-ice); color: var(--m-blue); display: grid; place-items: center; font-size: 18px; font-weight: 600; transition: transform .25s; }
	.m-acc__head.is-open { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
	.m-acc__head.is-open::after { content: "–"; }
	.m-acc__body { display: none; border: 1px solid var(--m-line); border-top: 0; border-radius: 0 0 14px 14px; padding: 4px 16px 6px; margin-top: -16px !important; }
	.m-acc__body.is-open { display: block; }
	.m-cols.is-clamped { max-height: none; }
	.m-cols.is-clamped::after { display: none; }
	.m-more { display: none !important; }
}

/* ==========================================================================
   Inner pages: page hero + shared blocks
   ========================================================================== */
.m-phero { position: relative; height: clamp(360px, 52vh, 520px); overflow: hidden; background: var(--m-navy); color: #fff; }
.m-phero__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
.m-phero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,21,38,.75), rgba(10,21,38,.25) 60%, rgba(10,21,38,.1)), linear-gradient(180deg, rgba(10,21,38,0) 50%, rgba(10,21,38,.5)); }
.m-phero__content { position: absolute; left: 0; right: 0; bottom: 0; max-width: 1240px; margin: 0 auto; padding: 0 24px 56px; }
.m-phero__eyebrow { margin: 0 0 10px !important; font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #fff; opacity: .9; }
.m-phero__title { margin: 0 0 12px !important; color: #fff !important; font-size: clamp(32px, 4.6vw, 58px) !important; line-height: 1.08 !important; font-weight: 800 !important; letter-spacing: -.02em; max-width: 16ch; }
.m-phero__lead { margin: 0 !important; max-width: 560px; font-size: clamp(16px, 1.4vw, 19px); line-height: 1.6; color: #e2eaf4; }
@media (max-width: 767px) { .m-phero__content { padding: 0 20px 36px; } }

/* Rounded photos with the same soft shadow as the cards */
.m-photo img { border-radius: 22px; box-shadow: 0 30px 60px -32px rgba(15, 30, 51, .5); width: 100%; object-fit: cover; }
.m-photo--tall img { aspect-ratio: 4 / 5; }
.m-photo--wide img { aspect-ratio: 16 / 10; }
.m-photo--small img { aspect-ratio: 1 / 1; border: 6px solid #fff; }
.m-overlap { margin-top: -120px !important; margin-left: auto; width: 46% !important; position: relative; z-index: 2; }
@media (max-width: 767px) { .m-overlap { margin-top: -70px !important; width: 52% !important; } }

/* Feature cards (icon + title + text) */
.m-feats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.m-feat { background: #fff; border: 1px solid #e6edf5; border-radius: 20px; padding: 28px 26px; box-shadow: 0 18px 40px -22px rgba(15, 30, 51, .35); }
.m-feat__ico { width: 52px; height: 52px; border-radius: 14px; background: var(--m-ice); color: var(--m-blue); display: grid; place-items: center; margin-bottom: 16px; }
.m-feat__ico svg { width: 26px; height: 26px; }
.m-feat h3 { font-size: 20px !important; margin: 0 0 8px !important; color: var(--m-navy); }
.m-feat p { margin: 0 !important; font-size: 15px; line-height: 1.65; }
@media (max-width: 921px) { .m-feats { grid-template-columns: 1fr; } }

/* Simple tick list */
.m-ticks { list-style: none; margin: 16px 0 0 !important; padding: 0 !important; display: grid; gap: 10px; }
.m-ticks li { margin: 0 !important; position: relative; padding-left: 30px; }
.m-ticks li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 50%; background: var(--m-ice) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23347bb0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat; }

/* Dark call-to-action band */
.m-cta-band .elementor-heading-title { color: #fff !important; }
.m-cta-band p { color: #c7d3e3; }

/* Links inside running text (villages, E4, Menalon Trail, museums…) */
.m-intro a, .m-cols a, .m-feat a {
	color: var(--m-blue) !important;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	text-decoration-color: rgba(52, 123, 176, .4);
	transition: text-decoration-color .2s, color .2s;
}
.m-intro a:hover, .m-cols a:hover, .m-feat a:hover { color: var(--m-blue-dark) !important; text-decoration-color: currentColor; }
.m-intro a[target="_blank"]::after, .m-cols a[target="_blank"]::after { content: "↗"; font-size: .75em; margin-left: 2px; text-decoration: none; display: inline-block; }

/* In-page navigation chips (inner pages) */
.m-subnav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.m-subnav a { padding: 9px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--m-line); color: var(--m-navy) !important; font-weight: 600; font-size: 14px; text-decoration: none !important; transition: .2s; }
.m-subnav a:hover { background: var(--m-navy); color: #fff !important; border-color: var(--m-navy); }
@media (max-width: 767px) { .m-subnav { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px; } .m-subnav a { white-space: nowrap; } }
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 100px; }

/* Feature cards with photo + icon badge */
.m-feat--photo { padding: 0 !important; overflow: hidden; display: flex; flex-direction: column; color: inherit !important; text-decoration: none !important; transition: transform .25s, box-shadow .25s; }
.m-feat--photo:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -24px rgba(15, 30, 51, .45); }
.m-feat__media { position: relative; display: block; }
.m-feat__media img { width: 100% !important; aspect-ratio: 16 / 10; object-fit: cover; display: block; transition: transform .6s; }
.m-feat--photo:hover .m-feat__media img { transform: scale(1.04); }
.m-feat--photo .m-feat__ico { position: absolute; left: 22px; bottom: -26px; margin: 0; width: 56px; height: 56px; border-radius: 50%; background: #fff; color: var(--m-blue); box-shadow: 0 10px 24px -10px rgba(15, 30, 51, .45); z-index: 1; }
.m-feat__img { display: block; overflow: hidden; }
.m-feat__body { display: block; padding: 40px 24px 24px; }
.m-feat__body h3 { font-size: 20px !important; margin: 0 0 8px !important; color: var(--m-navy); }
.m-feat__body p { margin: 0 0 12px !important; font-size: 15px; line-height: 1.65; color: var(--m-text); }
.m-feat__more { font-weight: 700; color: var(--m-blue); font-size: 14px; }
@media (max-width: 921px) and (min-width: 600px) { .m-feats--photo { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } .m-feat__body { padding: 36px 16px 18px; } }

/* Villages grid (Περιήγηση στο Μαίναλο) */
.m-vgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 1024px) { .m-vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .m-vgrid { grid-template-columns: 1fr; gap: 16px; } }
.m-vcard { display: flex; flex-direction: column; background: #fff; border: 1px solid #e6edf5; border-radius: 20px; overflow: hidden; box-shadow: 0 18px 40px -24px rgba(15, 30, 51, .35); color: inherit !important; text-decoration: none !important; transition: transform .25s, box-shadow .25s; }
.m-vcard:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -24px rgba(15, 30, 51, .45); }
.m-vcard__img { position: relative; display: block; overflow: hidden; }
.m-vcard__img img { width: 100% !important; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .6s; }
.m-vcard:hover .m-vcard__img img { transform: scale(1.05); }
.m-vcard__badge { position: absolute; left: 14px; top: 14px; padding: 6px 12px; border-radius: 999px; background: var(--m-red); color: #fff; font-size: 12.5px; font-weight: 700; }
.m-vcard__body { display: flex; flex-direction: column; gap: 6px; padding: 18px 22px 22px; flex: 1; }
.m-vcard__meta { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #94a3b8; }
.m-vcard h3 { margin: 0 !important; font-size: 22px !important; letter-spacing: .03em; color: var(--m-navy); }
.m-vcard p { margin: 0 0 6px !important; font-size: 15px; line-height: 1.6; color: var(--m-text); }
.m-vcard__more { margin-top: auto; font-weight: 700; font-size: 14px; color: var(--m-blue); }
@media (max-width: 600px) {
	.m-vgrid { gap: 10px; }
	.m-vcard { flex-direction: row; border-radius: 16px; }
	.m-vcard__img { flex: 0 0 116px; }
	.m-vcard__img img { aspect-ratio: auto; height: 100% !important; min-height: 116px; }
	.m-vcard__badge { left: 6px; top: 6px; font-size: 10.5px; padding: 3px 8px; }
	.m-vcard__body { padding: 12px 14px; gap: 2px; justify-content: center; }
	.m-vcard h3 { font-size: 17px !important; }
	.m-vcard p { display: none; }
	.m-vcard__meta { font-size: 11px; }
	.m-vcard__more { margin-top: 4px; font-size: 13px; }
}

/* ==========================================================================
   Snowy mountain ridge at the top of the dark areas (footer, CTA bands)
   ========================================================================== */
.m-footer, .m-cta-band { position: relative; }
.m-cta-band { overflow: visible !important; }
.m-footer::before,
.m-cta-band::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: calc(100% - 1px);
	height: clamp(46px, 7.5vw, 120px);
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 130' preserveAspectRatio='none'%3E%3Cpath d='M0,130 L0,80 L60,50 L120,70 L200,24 L270,58 L330,40 L410,76 L490,30 L540,14 L620,60 L700,36 L780,66 L860,18 L930,54 L1000,30 L1080,70 L1160,28 L1230,10 L1300,52 L1370,34 L1440,64 L1440,130 Z' fill='%232A4566'/%3E%3Cpath d='M60.0,50.0 L108.0,66.0 L93.6,67.8 L81.6,64.2 L67.2,69.5 L53.6,64.6 L45.6,68.1 L37.6,62.5 L28.0,66.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M200.0,24.0 L232.9,40.0 L223.1,41.8 L214.8,38.2 L204.9,43.5 L194.4,38.6 L187.5,42.1 L180.5,36.5 L172.2,40.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M330.0,40.0 L365.6,56.0 L354.9,57.8 L346.0,54.2 L335.3,59.5 L319.3,54.6 L306.0,58.1 L292.7,52.5 L276.7,56.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M540.0,14.0 L567.8,30.0 L559.5,31.8 L552.5,28.2 L544.2,33.5 L530.0,28.6 L517.5,32.1 L505.0,26.5 L490.0,30.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M700.0,36.0 L742.7,52.0 L729.9,53.8 L719.2,50.2 L706.4,55.5 L689.3,50.6 L676.0,54.1 L662.7,48.5 L646.7,52.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M860.0,18.0 L891.1,34.0 L881.8,35.8 L874.0,32.2 L864.7,37.5 L854.7,32.6 L848.0,36.1 L841.3,30.5 L833.3,34.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M1000.0,30.0 L1032.0,46.0 L1022.4,47.8 L1014.4,44.2 L1004.8,49.5 L990.7,44.6 L979.0,48.1 L967.3,42.5 L953.3,46.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M1230.0,10.0 L1256.7,26.0 L1248.7,27.8 L1242.0,24.2 L1234.0,29.5 L1217.6,24.6 L1202.0,28.1 L1186.4,22.5 L1167.8,26.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M1370.0,34.0 L1407.3,50.0 L1396.1,51.8 L1386.8,48.2 L1375.6,53.5 L1357.6,48.6 L1342.0,52.1 L1326.4,46.5 L1307.8,50.0 Z' fill='%23DCE7F2'/%3E%3Cpath d='M0,130 L0,108 L80,74 L150,100 L250,46 L340,96 L410,72 L470,100 L570,36 L670,98 L735,70 L800,104 L890,44 L975,96 L1045,64 L1115,104 L1210,40 L1300,98 L1365,72 L1440,102 L1440,130 Z' fill='%230F1E33'/%3E%3Cpath d='M80.0,74.0 L129.0,92.2 L114.3,94.2 L102.0,90.2 L87.3,96.2 L71.4,90.6 L60.7,94.6 L50.0,88.2 L37.2,92.2 Z' fill='%23FFFFFF'/%3E%3Cpath d='M250.0,46.0 L296.8,72.0 L282.8,74.9 L271.1,69.1 L257.0,77.7 L240.4,69.7 L228.3,75.4 L216.3,66.3 L201.9,72.0 Z' fill='%23FFFFFF'/%3E%3Cpath d='M410.0,72.0 L449.0,90.2 L437.3,92.2 L427.6,88.2 L415.9,94.2 L399.4,88.6 L386.1,92.6 L372.8,86.2 L356.9,90.2 Z' fill='%23FFFFFF'/%3E%3Cpath d='M570.0,36.0 L611.9,62.0 L599.4,64.9 L588.9,59.1 L576.3,67.7 L561.9,59.7 L551.7,65.4 L541.6,56.3 L529.4,62.0 Z' fill='%23FFFFFF'/%3E%3Cpath d='M735.0,70.0 L769.8,88.2 L759.4,90.2 L750.7,86.2 L740.2,92.2 L726.5,86.6 L716.0,90.6 L705.4,84.2 L692.8,88.2 Z' fill='%23FFFFFF'/%3E%3Cpath d='M890.0,44.0 L932.5,70.0 L919.8,72.9 L909.1,67.1 L896.4,75.7 L882.2,67.7 L872.5,73.4 L862.7,64.3 L851.0,70.0 Z' fill='%23FFFFFF'/%3E%3Cpath d='M1045.0,64.0 L1076.8,82.2 L1067.3,84.2 L1059.3,80.2 L1049.8,86.2 L1037.0,80.6 L1027.1,84.6 L1017.1,78.2 L1005.2,82.2 Z' fill='%23FFFFFF'/%3E%3Cpath d='M1210.0,40.0 L1250.3,66.0 L1238.2,68.9 L1228.2,63.1 L1216.1,71.7 L1202.3,63.7 L1192.6,69.4 L1183.0,60.3 L1171.4,66.0 Z' fill='%23FFFFFF'/%3E%3Cpath d='M1365.0,72.0 L1410.5,90.2 L1396.8,92.2 L1385.5,88.2 L1371.8,94.2 L1355.9,88.6 L1344.5,92.6 L1333.2,86.2 L1319.5,90.2 Z' fill='%23FFFFFF'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
	pointer-events: none;
	z-index: 1;
}
/* When a dark CTA band is the last section, it already carries the ridge: no second one on the footer. */
body:has(.elementor > .e-con.m-cta-band:last-child) .m-footer::before { display: none; }

/* ==========================================================================
   Sticky header (Astra free has no sticky option)
   ========================================================================== */
#masthead.site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 999;
	background: #fff;
	transition: box-shadow .25s;
}
#masthead .ast-primary-header-bar,
#masthead .site-primary-header-wrap,
#masthead .custom-logo-link img { transition: min-height .25s, height .25s, max-width .25s, width .25s, padding .25s; }
.m-stuck #masthead.site-header { box-shadow: 0 8px 24px -12px rgba(15, 30, 51, .28); }
@media (min-width: 922px) {
	.m-stuck #masthead .ast-primary-header-bar,
	.m-stuck #masthead .site-primary-header-wrap { min-height: 68px !important; }
	.m-stuck #masthead .custom-logo-link img { max-width: 112px !important; width: 112px !important; }
}
@media (max-width: 921px) {
	.m-stuck #masthead .custom-logo-link img { max-width: 92px !important; width: 92px !important; }
}
/* On phones WordPress shows the admin bar as non-fixed below 600px */
@media (max-width: 600px) { #masthead.site-header { top: 0; } }
[id] { scroll-margin-top: 90px; }

/* ==========================================================================
   Single posts (villages + news)
   ========================================================================== */
.single .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.single #primary { margin: 0 !important; padding: 0 !important; width: 100%; }
.m-phero--post { height: clamp(320px, 46vh, 460px); }
.m-single { max-width: 1240px; margin: 0 auto; padding: 48px 24px 72px; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start; }
@media (max-width: 1024px) { .m-single { grid-template-columns: 1fr; gap: 32px; padding: 32px 16px 56px; } }
.m-crumbs { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: #94a3b8; margin-bottom: 22px; }
.m-crumbs a { color: #64748b !important; text-decoration: none !important; }
.m-crumbs a:hover { color: var(--m-blue) !important; }
.m-prose { max-width: 720px; font-size: 17px; line-height: 1.8; color: var(--m-text); }
.m-prose p { margin: 0 0 1.15em; }
.m-prose h2, .m-prose h3 { color: var(--m-navy); margin: 1.6em 0 .6em; }
.m-prose a { color: var(--m-blue) !important; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(52,123,176,.4); }
.m-prose a[target="_blank"]::after { content: "↗"; font-size: .75em; margin-left: 2px; display: inline-block; text-decoration: none; }
.m-prose > p:first-child { font-size: 19px; color: var(--m-navy); }
.m-figure { margin: 32px 0; }
.m-figure img { width: 100%; height: auto; border-radius: 18px; box-shadow: 0 30px 60px -32px rgba(15,30,51,.5); }
.m-figure figcaption { font-size: 13px; color: #64748b; margin-top: 8px; }

.m-single__aside { position: sticky; top: 100px; display: grid; gap: 18px; }
@media (max-width: 1024px) { .m-single__aside { position: static; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } }
.m-aside-card { background: #fff; border: 1px solid #e6edf5; border-radius: 18px; padding: 20px; box-shadow: 0 18px 40px -22px rgba(15,30,51,.35); }
.m-aside-card h3 { font-size: 17px !important; margin: 0 0 4px !important; color: var(--m-navy); }
.m-aside-sub { margin: 0 0 12px !important; font-size: 13px; color: #64748b; }
.m-aside-map { width: 100%; height: 200px; border: 0; border-radius: 12px; margin-bottom: 12px; display: block; }
.m-aside-btn { display: block; text-align: center; padding: 11px 16px; border-radius: 999px; background: var(--m-blue); color: #fff !important; font-weight: 700; font-size: 15px; text-decoration: none !important; }
.m-aside-btn:hover { background: var(--m-blue-dark); }
.m-aside-btn--red { background: var(--m-red); margin-top: 14px; }
.m-aside-btn--red:hover { background: #c4141a; }
.m-aside-card--dark { background: var(--m-navy); border-color: var(--m-navy); color: #c7d3e3; }
.m-aside-eyebrow { margin: 0 0 10px !important; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8fb3d6; }
.m-aside-weather { display: flex; align-items: center; gap: 10px; }
.m-aside-weather .msr-wico { width: 34px; height: 34px; color: #8fc1ea; }
.m-aside-weather strong { font-family: var(--m-font-head); font-size: 30px; color: #fff; line-height: 1; }
.m-aside-weather span { font-size: 14px; }
.m-aside-stats { list-style: none; margin: 12px 0 0 !important; padding: 0 !important; display: flex; gap: 18px; font-size: 14px; }
.m-aside-stats li { margin: 0 !important; }
.m-aside-stats strong { color: #fff; font-size: 16px; }

.m-more-posts { background: var(--m-ice); padding: 80px 24px 110px; }
.m-more-posts__inner { max-width: 1240px; margin: 0 auto; }
.m-more-posts__eyebrow { text-align: center; margin: 0 0 6px !important; font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--m-red); }
.m-more-posts h2 { text-align: center; margin: 0 0 32px !important; color: var(--m-navy); }
.m-more-posts__all { text-align: center; margin: 28px 0 0 !important; }
.m-more-posts__all a { font-weight: 700; color: var(--m-blue) !important; }
@media (max-width: 767px) { .m-more-posts { padding: 56px 16px 80px; } }

/* ==========================================================================
   «Τα νέα μας» (posts page)
   ========================================================================== */
.blog .site-content > .ast-container, .category .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.blog #primary, .category #primary { margin: 0 !important; padding: 0 !important; width: 100%; }
.m-archive__inner { max-width: 1240px; margin: 0 auto; padding: 56px 24px 96px; }
.m-archive__label { margin: 0 0 14px !important; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--m-red); }
.m-archive__label + .m-ngrid, .m-ncard--big + .m-archive__label { margin-top: 0; }
.m-ncard--big + .m-archive__label { margin-top: 56px !important; }
.m-ncard { background: #fff; border: 1px solid #e6edf5; border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 18px 40px -24px rgba(15,30,51,.35); transition: transform .25s, box-shadow .25s; }
.m-ncard:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -24px rgba(15,30,51,.45); }
.m-ncard__img { display: block; overflow: hidden; }
.m-ncard__img img { width: 100% !important; aspect-ratio: 16 / 10; object-fit: cover; display: block; transition: transform .6s; }
.m-ncard:hover .m-ncard__img img { transform: scale(1.04); }
.m-ncard__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; gap: 6px; }
.m-ncard time { font-size: 13px; color: #64748b; }
.m-ncard__title { margin: 0 !important; font-size: 19px !important; line-height: 1.35 !important; }
.m-ncard__title a { color: var(--m-navy) !important; text-decoration: none !important; }
.m-ncard__title a:hover { color: var(--m-blue) !important; }
.m-ncard p { margin: 4px 0 10px !important; font-size: 15px; line-height: 1.6; color: var(--m-text); }
.m-ncard__more { margin-top: auto; font-weight: 700; font-size: 14px; color: var(--m-blue) !important; }
.m-ncard--big { display: grid; grid-template-columns: 1.15fr 1fr; }
.m-ncard--big .m-ncard__img img { aspect-ratio: auto; height: 100%; min-height: 340px; }
.m-ncard--big .m-ncard__body { padding: 36px 40px; justify-content: center; gap: 10px; }
.m-ncard--big .m-ncard__title { font-size: clamp(24px, 2.4vw, 32px) !important; }
.m-ncard--big p { font-size: 16px; }
@media (max-width: 921px) { .m-ncard--big { grid-template-columns: 1fr; } .m-ncard--big .m-ncard__img img { min-height: 0; aspect-ratio: 16 / 10; } .m-ncard--big .m-ncard__body { padding: 22px; } }
.m-ngrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 1024px) { .m-ngrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .m-ngrid { grid-template-columns: 1fr; } }
.m-pager { margin-top: 40px; }
.m-pager ul { list-style: none; display: flex; justify-content: center; gap: 8px; margin: 0 !important; padding: 0 !important; }
.m-pager li { margin: 0 !important; }
.m-pager a, .m-pager span { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--m-line); color: var(--m-navy) !important; font-weight: 600; text-decoration: none !important; }
.m-pager .current { background: var(--m-navy); color: #fff !important; border-color: var(--m-navy); }
.m-archive__empty { text-align: center; font-size: 17px; color: #64748b; }

.m-follow { margin-top: 72px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; padding: 36px 40px; border-radius: 22px; background: var(--m-ice); }
.m-follow h2 { margin: 0 0 6px !important; color: var(--m-navy); }
.m-follow p { margin: 0 !important; max-width: 560px; }
.m-follow__eyebrow { font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--m-red); margin-bottom: 6px !important; }
.m-follow__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.m-follow__btn { display: inline-flex; align-items: center; gap: 10px; padding: 13px 22px; border-radius: 999px; color: #fff !important; font-weight: 700; text-decoration: none !important; transition: transform .2s; }
.m-follow__btn:hover { transform: translateY(-2px); }
.m-follow__btn svg { width: 20px; height: 20px; }
.m-follow__btn--fb { background: #1877f2; }
.m-follow__btn--ig { background: linear-gradient(45deg, #f58529, #dd2a7b 50%, #8134af); }
@media (max-width: 767px) { .m-follow { padding: 26px 22px; margin-top: 48px; } }

.m-archive__cta { background: var(--m-navy); color: #c7d3e3; text-align: center; padding: 96px 24px; }
.m-archive__cta h2 { color: #fff !important; margin: 0 0 10px !important; }
.m-archive__cta p { max-width: 620px; margin: 0 auto 22px !important; }
.m-archive__cta .m-aside-btn { display: inline-block; padding: 13px 26px; margin: 0; }
/* the CTA band is the last block before the footer: one ridge only */
body:has(.m-archive__cta) .m-footer::before { display: none; }

/* ===================== Contact page ===================== */
.m-ccards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.m-ccard { background: #fff; border: 1px solid #e6edf5; border-radius: 20px; padding: 26px 24px; box-shadow: 0 18px 40px -22px rgba(15, 30, 51, .35); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.m-ccard__ico { width: 50px; height: 50px; border-radius: 14px; background: var(--m-ice); color: var(--m-blue); display: grid; place-items: center; margin-bottom: 10px; }
.m-ccard__ico svg { width: 24px; height: 24px; }
.m-ccard__label { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #6b7c93; }
.m-ccard__value { font-family: Commissioner, sans-serif; font-size: 18px; color: var(--m-navy); overflow-wrap: anywhere; }
.m-ccard__value a { color: inherit !important; text-decoration: none !important; }
.m-ccard__value a:hover { color: var(--m-blue) !important; }
.m-ccard p { margin: 0 0 6px !important; font-size: 14px; line-height: 1.6; color: #4a5a70; flex: 1; }
.m-ccard__links { display: flex; gap: 16px; flex-wrap: wrap; }
.m-ccard__more { font-weight: 600; font-size: 14px; color: var(--m-blue) !important; text-decoration: none !important; }
.m-ccard__more:hover { color: var(--m-red) !important; }
@media (max-width: 1024px) { .m-ccards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .m-ccards { grid-template-columns: 1fr; } }

/* Form card */
.m-formcard { background: #fff; border: 1px solid #e6edf5; border-radius: 24px; padding: 40px; box-shadow: 0 24px 60px -30px rgba(15, 30, 51, .4); }
@media (max-width: 600px) { .m-formcard { padding: 26px 20px; } }
.m-formcard .wpcf7-form p { margin: 0 0 16px; }
.m-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.m-form__grid p { margin: 0 !important; }
@media (max-width: 600px) { .m-form__grid { grid-template-columns: 1fr; } }
.m-formcard label { display: block; font-size: 13px; font-weight: 600; color: var(--m-navy); margin-bottom: 6px; }
.m-formcard input[type="text"], .m-formcard input[type="email"], .m-formcard input[type="tel"], .m-formcard select, .m-formcard textarea {
	width: 100%; border: 1px solid var(--m-line); border-radius: 12px; background: #f8fbfe; padding: 13px 15px; font: inherit; font-size: 15px; color: var(--m-navy); transition: border-color .2s, box-shadow .2s, background .2s; margin-top: 6px;
}
.m-formcard textarea { min-height: 150px; resize: vertical; }
.m-formcard input:focus, .m-formcard select:focus, .m-formcard textarea:focus { outline: none; border-color: var(--m-blue); background: #fff; box-shadow: 0 0 0 4px rgba(52, 123, 176, .15); }
.m-formcard .wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 14px; color: #4a5a70; }
.m-formcard .wpcf7-acceptance input { margin-top: 3px; accent-color: var(--m-blue); }
.m-formcard .wpcf7-list-item { margin: 0; }
.m-formcard input[type="submit"] { background: var(--m-red); color: #fff; border: 0; border-radius: 999px; padding: 14px 30px; font-family: Commissioner, sans-serif; font-weight: 700; font-size: 15px; cursor: pointer; transition: background .2s, transform .2s; }
.m-formcard input[type="submit"]:hover { background: #C4141A; transform: translateY(-1px); }
.m-formcard .wpcf7-not-valid-tip { font-size: 13px; margin-top: 4px; }
.m-formcard .wpcf7-response-output { border-radius: 12px; margin: 16px 0 0 !important; padding: 12px 16px !important; font-size: 14px; }
.m-formcard .wpcf7-spinner { vertical-align: middle; }
.m-form__note { font-size: 13px; color: #6b7c93; margin: 0 !important; }

/* Quick-help list */
.m-help { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.m-help a { display: flex; gap: 14px; align-items: center; padding: 16px 18px; border-radius: 16px; background: #fff; border: 1px solid #e6edf5; color: var(--m-navy) !important; text-decoration: none !important; transition: border-color .2s, transform .2s; }
.m-help a:hover { border-color: var(--m-blue); transform: translateX(3px); }
.m-help strong { display: block; font-family: Commissioner, sans-serif; font-size: 16px; }
.m-help span { font-size: 14px; color: #4a5a70; }
.m-help b { margin-left: auto; color: var(--m-blue); font-weight: 600; }

/* Access routes with live road status */
.m-roads { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.m-road { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 16px; background: #fff; border: 1px solid #e6edf5; border-radius: 14px; }
.m-road__ico { width: 36px; height: 36px; border-radius: 10px; background: var(--m-ice); color: var(--m-blue); display: grid; place-items: center; flex: none; }
.m-road__ico svg { width: 20px; height: 20px; }
.m-road__name { font-weight: 600; color: var(--m-navy); flex: 1; min-width: 160px; }
.m-road a { font-weight: 600; font-size: 14px; color: var(--m-blue) !important; text-decoration: none !important; }
.m-roads__upd { font-size: 13px; color: #6b7c93; margin: 10px 0 0 !important; }
.m-mapframe { width: 100%; height: 440px; border: 0; border-radius: 22px; box-shadow: 0 24px 60px -30px rgba(15, 30, 51, .45); display: block; }
@media (max-width: 767px) { .m-mapframe { height: 320px; } }

/* Legal pages */
.m-legal { color: var(--m-text); font-size: 16px; line-height: 1.75; }
.m-legal p { margin: 0 0 14px !important; }
.m-legal ul { margin: 0 0 14px 1.2em; padding: 0; }
.m-legal li { margin-bottom: 6px; }
.m-legal a { color: var(--m-blue) !important; text-decoration: underline; text-underline-offset: 3px; }
.m-legal__intro { font-size: 18px; color: var(--m-navy); }
.m-legal__h .elementor-heading-title { font-size: 24px !important; margin-top: 26px !important; }

/* ===================== Live Cam page ===================== */
.m-cams { display: grid; grid-template-columns: 1fr; gap: 24px; }
.m-cam { margin: 0; }
.m-cam__frame { position: relative; border-radius: 22px; overflow: hidden; background: var(--m-navy); aspect-ratio: 16 / 9; box-shadow: 0 30px 70px -35px rgba(15, 30, 51, .6); }
.m-cam__video, .m-cam__frame > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.m-cam__badge { position: absolute; top: 14px; left: 14px; display: inline-flex; align-items: center; gap: 8px; background: rgba(15, 30, 51, .72); color: #fff; font-weight: 600; font-size: 13px; padding: 6px 12px; border-radius: 999px; backdrop-filter: blur(6px); pointer-events: none; }
.m-cam figcaption { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 10px; font-size: 14px; color: #6b7c93; }
.m-cam figcaption strong { color: var(--m-navy); font-family: var(--m-font-head); }
.m-cam--off .m-cam__frame > img { filter: grayscale(.6) brightness(.45); }
.m-cam--off .m-cam__offmsg { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; gap: 6px; color: #e6eef7; padding: 24px; }
.m-cam--off .m-cam__offmsg strong { font-family: var(--m-font-head); font-size: 20px; color: #fff; }
.m-cams__note { font-size: 13px; color: #6b7c93; margin: 14px 0 0 !important; }
.m-cams .m-cam--off .m-cam__frame { aspect-ratio: 21 / 6; }

.m-now { background: var(--m-navy); color: #c7d3e3; border-radius: 22px; padding: 26px; display: grid; gap: 14px; }
.m-now__eyebrow { margin: 0 !important; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #8fc1ea; }
.m-now__weather { display: flex; align-items: center; gap: 12px; }
.m-now__weather .msr-wico { width: 44px; height: 44px; color: #8fc1ea; }
.m-now__weather strong { font-family: var(--m-font-head); font-size: 40px; line-height: 1; color: #fff; }
.m-now__weather span { font-size: 14px; line-height: 1.4; }
.m-now__stats { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; gap: 22px; }
.m-now__stats li { margin: 0 !important; display: grid; font-size: 13px; }
.m-now__stats strong { font-family: var(--m-font-head); color: #fff; font-size: 22px; }
.m-now__msg, .m-now__roads { margin: 0 !important; font-size: 14px; line-height: 1.6; }
.m-now__credit { margin: 0 !important; font-size: 11px; opacity: .7; }
.m-now__credit a { color: inherit !important; }

.m-share { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.m-share__btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 999px; border: 1px solid var(--m-line); background: #fff; color: var(--m-navy) !important; font-weight: 600; font-size: 14px; text-decoration: none !important; cursor: pointer; font-family: inherit; transition: border-color .2s, background .2s, color .2s; }
.m-share__btn:hover { border-color: var(--m-blue); color: var(--m-blue) !important; }
.m-share__btn--whatsapp:hover { border-color: #25d366; color: #128c4b !important; }
.m-share__btn--viber:hover { border-color: #7360f2; color: #5a46d8 !important; }
.m-share__btn--native { background: var(--m-red); border-color: var(--m-red); color: #fff !important; }

.m-hashtag { display: inline-flex; align-items: center; gap: 4px; padding: 6px 6px 6px 20px; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .25); }
.m-hashtag__tag { font-family: var(--m-font-head); font-weight: 700; font-size: 22px; color: #fff; letter-spacing: .01em; }
.m-hashtag__copy { border: 0; border-radius: 999px; background: #fff; color: var(--m-navy); font-weight: 600; font-size: 13px; padding: 9px 16px; cursor: pointer; margin-left: 12px; font-family: inherit; }

.m-social-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.m-social-card { display: flex; gap: 16px; align-items: center; padding: 20px; border-radius: 18px; background: #fff; border: 1px solid #e6edf5; color: var(--m-navy) !important; text-decoration: none !important; box-shadow: 0 18px 40px -26px rgba(15, 30, 51, .35); transition: transform .2s, border-color .2s; }
.m-social-card:hover { transform: translateY(-2px); border-color: var(--m-blue); }
.m-social-card__ico { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; color: #fff; flex: none; }
.m-social-card__ico svg { width: 26px; height: 26px; }
.m-social-card--fb .m-social-card__ico { background: #1877f2; }
.m-social-card--ig .m-social-card__ico { background: linear-gradient(45deg, #f9ce34, #ee2a7b 50%, #6228d7); }
.m-social-card strong { display: block; font-family: var(--m-font-head); font-size: 17px; }
.m-social-card span { font-size: 14px; color: #4a5a70; }
@media (max-width: 600px) { .m-social-cards { grid-template-columns: 1fr; } }

.m-fbfeed { border-radius: 20px; overflow: hidden; background: #fff; border: 1px solid #e6edf5; min-height: 300px; display: grid; }
.m-fbfeed__ph { display: grid; place-content: center; text-align: center; gap: 10px; padding: 32px 24px; background: linear-gradient(180deg, #f4f8fc, #fff); }
.m-fbfeed__ph strong { font-family: var(--m-font-head); font-size: 18px; color: var(--m-navy); }
.m-fbfeed__ph p { margin: 0 !important; font-size: 13px; color: #6b7c93; max-width: 360px; }
.m-fbfeed__btn { justify-self: center; border: 0; border-radius: 999px; background: #1877f2; color: #fff; font-weight: 600; padding: 12px 22px; cursor: pointer; font-family: inherit; }
.m-fbfeed__ph a { font-size: 13px; color: var(--m-blue) !important; }
.m-fbfeed__frame { width: 100%; height: 620px; border: 0; display: block; }

.m-tips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.m-tip { background: #fff; border: 1px solid #e6edf5; border-radius: 20px; padding: 26px; box-shadow: 0 18px 40px -26px rgba(15, 30, 51, .35); }
.m-tip__num { font-family: var(--m-font-head); font-weight: 800; font-size: 14px; color: var(--m-red); letter-spacing: .08em; }
.m-tip h3 { font-size: 19px !important; margin: 8px 0 8px !important; color: var(--m-navy); }
.m-tip p { margin: 0 0 10px !important; font-size: 15px; line-height: 1.65; }
.m-tip a { color: var(--m-blue) !important; font-weight: 600; font-size: 14px; text-decoration: none !important; }
@media (max-width: 921px) { .m-tips { grid-template-columns: 1fr; } }

/* Elementor uses .e-con::before for its background overlay (content, top, opacity, size…):
   make sure the ridge on dark CTA containers wins over those rules. */
.elementor .e-con.m-cta-band::before,
.e-con.m-cta-band::before {
	content: "" !important;
	display: block !important;
	top: auto !important;
	bottom: calc(100% - 1px) !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	height: clamp(46px, 7.5vw, 120px) !important;
	opacity: 1 !important;
	mix-blend-mode: normal !important;
	border: 0 !important;
	border-radius: 0 !important;
	background-color: transparent !important;
	background-size: 100% 100% !important;
	background-repeat: no-repeat !important;
	z-index: 1 !important;
}

/* The ridge belongs to the footer: a dark band in the middle of a page has none.
   (A dark band that is the last section carries it instead of the footer.) */
.elementor .e-con.m-cta-band:not(:last-child)::before { display: none !important; }

/* Room for the ridge: it sits in its own space above the footer (or above the last dark band)
   instead of covering the end of the page content. */
.m-footer { margin-top: calc(clamp(46px, 7.5vw, 120px) + 24px); }
.elementor .e-con.m-cta-band:last-child { margin-top: calc(clamp(46px, 7.5vw, 120px) + 24px); }
/* …but no gap when a dark band already sits right above the footer. */
body:has(.elementor > .e-con.m-cta-band:last-child) .m-footer,
body:has(.m-archive__cta) .m-footer { margin-top: 0; }
.m-archive__cta { margin-top: calc(clamp(46px, 7.5vw, 120px) + 24px); }

/* ===================== Interactive piste map ===================== */
.m-pmap { --pm-green: #1f9d55; --pm-blue: #347bb0; --pm-red: #ed1d23; --pm-black: #0f1e33; }
.m-pmap__bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.m-pmap__filters { display: flex; flex-wrap: wrap; gap: 8px; }
.m-pmap__filter { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 12px; border: 1px solid var(--m-line); background: #fff; color: var(--m-navy) !important; font: 600 14px/1 var(--m-font-body); cursor: pointer; text-decoration: none !important; transition: background .2s, color .2s, border-color .2s; }
.m-pmap__filter svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.m-pmap__filter.is-on { background: var(--m-navy); border-color: var(--m-navy); color: #fff !important; }
.m-pmap__filter--link:hover, .m-pmap__filter:hover { border-color: var(--m-blue); }
.m-pmap__upd { font-size: 13px; color: #4a5a70; background: #fff; border: 1px solid var(--m-line); border-radius: 10px; padding: 8px 12px; }
.m-pmap__body { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
@media (max-width: 1100px) { .m-pmap__body { grid-template-columns: 1fr; } }

.m-pmap__view { position: relative; overflow: hidden; border-radius: 20px; background: #e9f1f8; aspect-ratio: 1614 / 1080; box-shadow: 0 30px 70px -40px rgba(15, 30, 51, .55); touch-action: pan-y; user-select: none; -webkit-user-select: none; outline: none; }
.m-pmap.is-zoomed .m-pmap__view { touch-action: none; cursor: grab; }
.m-pmap__view.is-dragging { cursor: grabbing; }
.m-pmap__stage { position: absolute; inset: 0; transform-origin: 0 0; will-change: transform; }
.m-pmap__stage img { width: 100%; height: 100%; display: block; pointer-events: none; }
.m-pmap__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }

.m-pm-veil { fill: #fff; opacity: 0; transition: opacity .3s; pointer-events: none; }
.m-pmap__svg.has-active .m-pm-veil { opacity: .45; }
.m-pm-item { cursor: pointer; outline: none; }
.m-pm-hit { fill: none; stroke: transparent; stroke-width: 34; stroke-linecap: round; stroke-linejoin: round; pointer-events: stroke; }
.m-pm-glow, .m-pm-line { fill: none; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transition: opacity .2s; pointer-events: none; }
.m-pm-glow { stroke: #fff; stroke-width: 18; }
.m-pm-line { stroke-width: 8; }
.m-pm-item[data-diff="green"] .m-pm-line { stroke: var(--pm-green); }
.m-pm-item[data-diff="blue"] .m-pm-line { stroke: var(--pm-blue); }
.m-pm-item[data-diff="red"] .m-pm-line { stroke: var(--pm-red); }
.m-pm-item[data-diff="black"] .m-pm-line { stroke: var(--pm-black); }
.m-pm-line--lift { stroke: #f5b301; stroke-width: 7; stroke-dasharray: 2 14; }
.m-pm-item.is-hover .m-pm-glow, .m-pm-item.is-hover .m-pm-line,
.m-pm-item.is-active .m-pm-glow, .m-pm-item.is-active .m-pm-line,
.m-pm-item:focus-visible .m-pm-glow, .m-pm-item:focus-visible .m-pm-line { opacity: 1; }
.m-pm-ring { fill: transparent; stroke: #fff; stroke-width: 0; transition: stroke-width .2s; pointer-events: all; }
.m-pm-item.is-hover .m-pm-ring, .m-pm-item.is-active .m-pm-ring { stroke-width: 6; }
.m-pm-ring--fac { stroke: var(--m-blue); }
.m-pm-dot { stroke: #fff; stroke-width: 3; pointer-events: none; }
.m-pm-dot--open { fill: var(--pm-green); }
.m-pm-dot--limited { fill: #d97706; }
.m-pm-dot--closed { fill: var(--pm-red); }
@keyframes m-pm-pulse { 0%, 100% { stroke-width: 0; } 50% { stroke-width: 5; } }
.m-pmap:not(.hide-services) .m-pm-ring--fac { animation: m-pm-pulse 2.4s ease-in-out 3; }
.m-pmap.hide-slopes .m-pm-slopes, .m-pmap.hide-lifts .m-pm-lifts, .m-pmap.hide-services .m-pm-services { display: none; }
.m-pmap.hide-slopes [data-group="slopes"], .m-pmap.hide-lifts [data-group="lifts"], .m-pmap.hide-services [data-group="services"] { opacity: .35; }

.m-pmap__zoom { position: absolute; right: 14px; bottom: 14px; display: grid; gap: 6px; z-index: 3; }
.m-pmap__zoom button { width: 40px; height: 40px; border: 0; border-radius: 10px; background: #fff; color: var(--m-navy); font: 700 20px/1 var(--m-font-body); cursor: pointer; box-shadow: 0 6px 18px -6px rgba(15, 30, 51, .45); }
.m-pmap__zoom button:hover { background: var(--m-navy); color: #fff; }
.m-pmap__mini { position: absolute; right: 66px; bottom: 14px; width: 150px; border-radius: 10px; overflow: hidden; border: 2px solid #fff; box-shadow: 0 6px 18px -6px rgba(15, 30, 51, .45); opacity: 0; transition: opacity .3s; cursor: pointer; z-index: 3; }
.m-pmap.is-zoomed .m-pmap__mini { opacity: 1; }
.m-pmap__mini img { width: 100%; display: block; }
.m-pmap__mini span { position: absolute; border: 2px solid var(--m-red); background: rgba(237, 29, 35, .12); border-radius: 3px; }
@media (max-width: 767px) { .m-pmap__mini { display: none; } }
.m-pmap__hint { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(15, 30, 51, .45); color: #fff; font-weight: 600; opacity: 0; transition: opacity .25s; pointer-events: none; z-index: 4; }
.m-pmap__hint.is-on { opacity: 1; }

.m-pmap__card { position: absolute; left: 14px; bottom: 14px; z-index: 5; width: min(300px, calc(100% - 90px)); background: #fff; border-radius: 16px; padding: 16px 18px; box-shadow: 0 20px 50px -20px rgba(15, 30, 51, .55); }
.m-pmap__card-head { display: flex; gap: 12px; align-items: center; padding-right: 24px; }
.m-pmap__card-head strong { display: block; font-family: var(--m-font-head); font-size: 18px; color: var(--m-navy); line-height: 1.2; }
.m-pmap__card-head small { font-size: 13px; color: #6b7c93; }
.m-pmap__card-status { margin: 10px 0 0 !important; }
.m-pmap__close { position: absolute; top: 8px; right: 10px; border: 0; background: none; font-size: 22px; line-height: 1; color: #6b7c93; cursor: pointer; padding: 4px; }

.m-pm-num { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: #fff; font: 700 14px/1 var(--m-font-head); background: var(--m-blue); }
.m-pm-num--green { background: var(--pm-green); } .m-pm-num--blue { background: var(--pm-blue); } .m-pm-num--red { background: var(--pm-red); } .m-pm-num--black { background: var(--pm-black); }
.m-pm-num--lifts { background: #f5b301; color: var(--m-navy); } .m-pm-num--services { background: var(--m-ice); color: var(--m-blue); font-style: italic; }

.m-pmap__list { background: #fff; border: 1px solid #e6edf5; border-radius: 20px; padding: 18px; max-height: 640px; overflow: auto; }
.m-pm-group + .m-pm-group { margin-top: 14px; padding-top: 14px; border-top: 1px solid #edf2f7; }
.m-pm-group h4 { margin: 0 0 8px !important; font-size: 12px !important; letter-spacing: .1em; text-transform: uppercase; color: #6b7c93; }
.m-pm-group ul { list-style: none; margin: 0 !important; padding: 0 !important; }
.m-pm-group li { margin: 0 !important; }
.m-pm-group button { width: 100%; display: flex; align-items: center; gap: 10px; padding: 8px; border: 0; border-radius: 12px; background: none; text-align: left; cursor: pointer; font: inherit; color: inherit; transition: background .15s; }
.m-pm-group button:hover, .m-pm-group button.is-active { background: var(--m-ice); }
.m-pm-group button > span { flex: 1; min-width: 0; }
.m-pm-group strong { display: block; font-size: 14px; color: var(--m-navy); line-height: 1.25; }
.m-pm-group small { font-size: 12px; color: #6b7c93; }
.m-pm-group .msr-pill { font-size: 11px; padding: 3px 8px; }
.m-pmap__more { display: inline-block; margin-top: 14px; font-weight: 600; font-size: 14px; color: var(--m-blue) !important; text-decoration: none !important; }
@media (max-width: 1100px) {
	.m-pmap__list { max-height: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
	.m-pm-group + .m-pm-group { margin: 0; padding: 0; border: 0; }
}

/* Full screen */
html.m-pmap-lock, html.m-pmap-lock body { overflow: hidden !important; }
.m-pmap.is-full { position: fixed; inset: 0; z-index: 99999; background: rgba(9, 18, 32, .96); padding: 16px; display: flex; flex-direction: column; }
.m-pmap.is-full .m-pmap__upd { background: rgba(255,255,255,.1); color: #fff; border-color: transparent; }
.m-pmap.is-full .m-pmap__body { display: flex; flex: 1; min-height: 0; align-items: center; justify-content: center; }
.m-pmap.is-full .m-pmap__view { width: min(100%, calc((100vh - 110px) * 1614 / 1080)); touch-action: none; }
.m-pmap.is-full .m-pmap__list { display: none; }
.m-pmap__zoom button { display: grid; place-items: center; }
@media (max-width: 600px) {
	.m-pmap__filter { padding: 8px 12px; font-size: 13px; }
	.m-pmap__zoom { right: 8px; bottom: 8px; gap: 4px; }
	.m-pmap__zoom button { width: 34px; height: 34px; font-size: 18px; }
	.m-pmap__card { left: 8px; bottom: 8px; width: calc(100% - 60px); padding: 12px 14px; }
	.m-pmap__view { border-radius: 14px; }
}
@media (max-width: 600px) {
	.m-pmap__card-head strong { font-size: 16px; }
	.m-pmap__card-status { margin-top: 6px !important; }
}

/* ==========================================================================
   Friendly touches (hare, greeting, stickers, squiggles, polaroids, bounce)
   ========================================================================== */
.m-hare { display: block; height: auto; }

/* Greeting chip in the hero */
.m-mood { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 18px !important; padding: 8px 16px 8px 8px; border-radius: 18px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .28); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; font-size: 14px; line-height: 1.4; max-width: 520px; }
.m-mood__hare { width: 52px; flex: none; background: #fff; border-radius: 14px; padding: 6px; animation: m-wiggle 4s ease-in-out infinite; }
.m-mood strong { font-family: var(--m-font-head); font-size: 15px; }
.m-mood__temp { display: inline-block; margin-left: 4px; padding: 1px 8px; border-radius: 999px; background: #fff; color: var(--m-navy); font-size: 13px; }
@keyframes m-wiggle { 0%, 86%, 100% { transform: rotate(0); } 89% { transform: rotate(-8deg); } 93% { transform: rotate(6deg); } 96% { transform: rotate(-3deg); } }

/* Stickers */
.m-stickers { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 22px; }
.m-sticker { display: inline-block; padding: 7px 14px; border-radius: 10px; font: 800 14px/1.2 var(--m-font-head); letter-spacing: .01em; box-shadow: 0 6px 0 rgba(0, 0, 0, .18); transform: rotate(-3deg); transition: transform .3s cubic-bezier(.34, 1.56, .64, 1); }
.m-sticker--red { background: var(--m-red); color: #fff; }
.m-sticker--blue { background: #fff; color: var(--m-blue); transform: rotate(2.5deg); }
.m-sticker:hover { transform: rotate(0) scale(1.06); }

/* Snow */
.m-snow { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; }

/* Hand-drawn squiggle under section titles */
.m-title .elementor-heading-title::after, h2.m-title::after {
	content: ""; display: block; width: 110px; height: 14px; margin: 10px auto 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 14'%3E%3Cpath d='M3 9c10-7 18 5 28 0s18-7 28 0 18 5 28 0 14-6 20-2' fill='none' stroke='%23ED1D23' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.m-title.m-left .elementor-heading-title::after { margin-left: 0; }
.m-legal__h .elementor-heading-title::after { display: none; }
.m-cta-band .elementor-heading-title::after { display: none; }

/* Bouncy buttons */
.m-btn .elementor-button, .m-herox__btn, .m-aside-btn, .m-404__btn { transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), background-color .2s, color .2s, box-shadow .2s !important; }
.m-btn .elementor-button:hover, .m-herox__btn:hover, .m-aside-btn:hover, .m-404__btn:hover { transform: translateY(-3px) rotate(-1deg); }
.m-btn .elementor-button:active, .m-herox__btn:active { transform: translateY(0) scale(.97); }

/* Softer cards */
.m-feat, .m-ccard, .m-tip, .m-vcard, .m-ncard, .msr-card { border-radius: 24px !important; }
.m-feat:hover, .m-ccard:hover, .m-tip:hover { transform: translateY(-4px) rotate(-.4deg); transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }

/* Off-season card in the Ski Report */
.msr-off { display: flex; align-items: center; gap: 18px; }
.m-hare--off { width: 96px; flex: none; animation: m-wiggle 5s ease-in-out infinite; }
.msr-offfun { margin: 4px 0 0 !important; font-size: 14px; color: #4a5a70; font-style: italic; }
@media (max-width: 600px) { .msr-off { gap: 12px; } .m-hare--off { width: 64px; } }

/* Polaroid gallery */
.m-polaroids { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px 22px; padding: 10px 6px; }
.m-polaroid { display: block; background: #fff; padding: 10px 10px 0; border-radius: 4px; box-shadow: 0 14px 30px -16px rgba(15, 30, 51, .45), 0 2px 6px rgba(15, 30, 51, .08); transform: rotate(var(--r, 0deg)); transition: transform .4s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s; color: var(--m-navy) !important; text-decoration: none !important; }
.m-polaroid img { width: 100% !important; aspect-ratio: 1 / 1; height: auto !important; object-fit: cover; display: block; border-radius: 2px; }
.m-polaroid__cap { display: block; padding: 12px 4px 14px; text-align: center; font: 600 15px/1.25 "Comfortaa", var(--m-font-head); }
.m-polaroid:hover { transform: rotate(0) scale(1.05); z-index: 2; position: relative; box-shadow: 0 26px 50px -20px rgba(15, 30, 51, .55); }
.m-photo-credit { text-align: center; font-size: 12px; color: #6b7c93; margin: 18px 0 0 !important; }
@media (max-width: 1100px) { .m-polaroids { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .m-polaroids { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 14px; } .m-polaroid__cap { font-size: 13px; } }

/* Hare «back to top» (replaces Astra's arrow) */
#ast-scroll-top { display: none !important; }
.m-totop { position: fixed; right: 18px; bottom: 18px; z-index: 999; width: 62px; height: 62px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 12px 28px -10px rgba(15, 30, 51, .55); cursor: pointer; padding: 8px; opacity: 0; transform: translateY(20px) scale(.8); pointer-events: none; transition: opacity .3s, transform .4s cubic-bezier(.34, 1.56, .64, 1); }
.m-totop.is-on { opacity: 1; transform: none; pointer-events: auto; }
.m-totop .m-totop__hare { width: 100%; transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }
.m-totop span { position: absolute; top: -6px; right: -4px; width: 24px; height: 24px; border-radius: 50%; background: var(--m-red); color: #fff; font: 700 14px/24px var(--m-font-body); }
.m-totop:hover .m-totop__hare { transform: translateY(-4px) rotate(-8deg); }
.m-totop.is-hop .m-totop__hare { animation: m-hop .6s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes m-hop { 0% { transform: none; } 40% { transform: translateY(-14px) rotate(-12deg); } 100% { transform: none; } }

/* 404 */
.m-404 { padding: 120px 20px 140px; text-align: center; background: linear-gradient(180deg, var(--m-ice), #fff); }
.m-404__inner { max-width: 640px; margin: 0 auto; }
.m-404__hare { width: 200px; margin: 0 auto 6px; animation: m-wiggle 3.5s ease-in-out infinite; }
.m-404__code { font: 800 18px/1 var(--m-font-head); letter-spacing: .3em; color: var(--m-red); margin: 0 0 10px !important; }
.m-404 h1 { font-size: clamp(30px, 5vw, 46px) !important; color: var(--m-navy); margin: 0 0 12px !important; }
.m-404__lead { font-size: 17px; color: #4a5a70; }
.m-404__links { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 24px; }
.m-404__btn { display: inline-block; padding: 12px 22px; border-radius: 999px; border: 1px solid var(--m-line); background: #fff; color: var(--m-navy) !important; font-weight: 700; text-decoration: none !important; }
.m-404__btn--red { background: var(--m-red); border-color: var(--m-red); color: #fff !important; }

@media (prefers-reduced-motion: reduce) {
	.m-mood__hare, .m-hare--off, .m-404__hare { animation: none; }
	.m-polaroid, .m-sticker, .m-totop, .m-btn .elementor-button { transition: none !important; }
}
.msr-off { justify-content: center; max-width: 760px; margin: 0 auto 18px; text-align: left; }
.msr-off .msr-offmsg { text-align: left !important; margin: 0 !important; }
/* 404: full width, outside Astra's content column */
.error404 .site-content > .ast-container { max-width: none; padding: 0; display: block; }
.error404 #primary { width: 100%; margin: 0 !important; padding: 0 !important; }
.error404 #secondary { display: none; }
.error404 .m-footer { margin-top: 0; }
.error404 .m-404 { padding-bottom: calc(clamp(46px, 7.5vw, 120px) + 100px); }

/* Mood chip: hare without a white tile */
.m-mood { padding-left: 12px; }
.m-mood__hare { background: none; padding: 0; border-radius: 0; width: 46px; filter: drop-shadow(0 0 6px rgba(255, 255, 255, .55)) drop-shadow(0 2px 4px rgba(0, 0, 0, .25)); }
.m-photo-credit { font-size: 15px; color: var(--m-navy); font-family: "Comfortaa", var(--m-font-head); font-weight: 600; max-width: 640px; margin: 26px auto 0 !important; line-height: 1.5; }
.m-photo-credit span { color: var(--m-red); }

/* «Did you know?» */
.m-dyk { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 28px; align-items: center; max-width: 900px; margin: 0 auto; }
.m-dyk__hare { position: relative; }
.m-dyk__img { width: 200px; transform: rotate(-6deg); transition: transform .4s cubic-bezier(.34, 1.56, .64, 1); }
.m-dyk.is-hop .m-dyk__img { animation: m-hop .6s cubic-bezier(.34, 1.56, .64, 1); }
.m-dyk__bubble { position: absolute; top: -14px; right: -18px; background: var(--m-red); color: #fff; font: 800 15px/1 var(--m-font-head); padding: 10px 14px; border-radius: 16px 16px 16px 4px; transform: rotate(5deg); box-shadow: 0 6px 0 rgba(0, 0, 0, .15); }
.m-dyk__card { position: relative; background: #fff; border: 2px dashed #c9d9ea; border-radius: 28px; padding: 30px 32px 22px; box-shadow: 0 24px 50px -30px rgba(15, 30, 51, .45); }
.m-dyk__fact { display: flex; gap: 22px; align-items: center; min-height: 104px; }
.m-dyk__fact.is-active { animation: m-pop .45s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes m-pop { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
.m-dyk__big { flex: none; min-width: 120px; text-align: center; font: 800 40px/1 var(--m-font-head); color: var(--m-blue); letter-spacing: -.02em; }
.m-dyk__fact p { margin: 0 !important; font-size: 19px; line-height: 1.5; color: var(--m-navy); font-family: "Comfortaa", var(--m-font-body); font-weight: 600; }
.m-dyk__foot { display: flex; justify-content: space-between; align-items: center; margin-top: 18px; padding-top: 14px; border-top: 1px solid #edf2f7; }
.m-dyk__count { font-size: 13px; color: #6b7c93; }
.m-dyk__next { border: 0; border-radius: 999px; background: var(--m-navy); color: #fff; font: 700 14px/1 var(--m-font-head); padding: 12px 20px; cursor: pointer; transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), background .2s; }
.m-dyk__next:hover { background: var(--m-red); transform: translateY(-3px) rotate(-2deg); }
@media (max-width: 767px) {
	.m-dyk { grid-template-columns: 1fr; gap: 10px; text-align: center; }
	.m-dyk__hare { width: 140px; margin: 0 auto; }
	.m-dyk__img { width: 130px; }
	.m-dyk__bubble { right: -50px; font-size: 13px; }
	.m-dyk__fact { flex-direction: column; gap: 10px; }
	.m-dyk__big { font-size: 34px; }
	.m-dyk__fact p { font-size: 16px; }
	.m-dyk__card { padding: 24px 20px 18px; }
}

/* The hare skiing across the top of the footer */
.m-skier { position: absolute; left: 0; top: -40px; width: 60px; z-index: 3; pointer-events: none; opacity: 0; }
.m-skier__hare { width: 60px; filter: drop-shadow(0 3px 2px rgba(0, 0, 0, .25)); }
.m-skier.is-run { animation: m-ski 8s cubic-bezier(.45, .05, .55, .95) forwards; }
@keyframes m-ski {
	0% { opacity: 1; transform: translateX(-90px) translateY(0) rotate(4deg); }
	20% { transform: translateX(18vw) translateY(-6px) rotate(-3deg); }
	40% { transform: translateX(38vw) translateY(0) rotate(5deg); }
	55% { transform: translateX(52vw) translateY(-22px) rotate(-12deg); }
	62% { transform: translateX(58vw) translateY(0) rotate(4deg); }
	80% { transform: translateX(80vw) translateY(-5px) rotate(-2deg); }
	99% { opacity: 1; transform: translateX(calc(100vw + 20px)) translateY(0) rotate(3deg); }
	100% { opacity: 0; transform: translateX(calc(100vw + 20px)); }
}
.m-footer { overflow-x: clip; }
@media (prefers-reduced-motion: reduce) { .m-skier { display: none; } .m-dyk__fact.is-active { animation: none; } }
.m-dyk__fact[hidden] { display: none !important; }
.m-skier__hare { filter: drop-shadow(0 0 3px rgba(255, 255, 255, .9)) drop-shadow(0 0 8px rgba(255, 255, 255, .45)); }
.m-acts .m-act:nth-child(2) img { object-position: 32% 82%; }

/* Villages grid on phones: the photo fills a fixed-width column instead of growing with its own height */
@media (max-width: 600px) {
	.m-vcard__img { flex: 0 0 116px; min-height: 120px; align-self: stretch; }
	.m-vcard__img img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; min-height: 0; aspect-ratio: auto; object-fit: cover; }
}

/* Instagram-style grid */
.m-ig { background: #fff; border: 1px solid #e6edf5; border-radius: 24px; padding: 18px; box-shadow: 0 24px 50px -30px rgba(15, 30, 51, .4); }
.m-ig__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.m-ig__avatar { width: 52px; height: 52px; border-radius: 50%; padding: 3px; background: linear-gradient(45deg, #f9ce34, #ee2a7b 55%, #6228d7); flex: none; }
.m-ig__avatar img { width: 100%; height: 100%; object-fit: contain; background: #fff; border-radius: 50%; padding: 6px; }
.m-ig__who { flex: 1; min-width: 0; display: grid; }
.m-ig__who strong { font-size: 15px; color: var(--m-navy); }
.m-ig__who small { font-size: 12px; color: #6b7c93; }
.m-ig__follow { padding: 8px 16px; border-radius: 10px; background: #0095f6; color: #fff !important; font-weight: 700; font-size: 13px; text-decoration: none !important; }
.m-ig__follow:hover { background: #1877f2; }
.m-ig__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; border-radius: 12px; overflow: hidden; }
.m-ig__tile { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; }
.m-ig__tile img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .5s; }
.m-ig__over { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 6px; padding: 8px; text-align: center; background: rgba(15, 30, 51, .55); color: #fff; opacity: 0; transition: opacity .25s; }
.m-ig__over svg { width: 26px; height: 26px; }
.m-ig__over em { font-style: normal; font-size: 12px; font-weight: 600; line-height: 1.3; }
.m-ig__tile:hover .m-ig__over, .m-ig__tile:focus-visible .m-ig__over { opacity: 1; }
.m-ig__tile:hover img { transform: scale(1.06); }
.m-ig__more { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; font-weight: 700; font-size: 14px; color: var(--m-navy) !important; text-decoration: none !important; }
.m-ig__more svg { width: 18px; height: 18px; }
.m-ig__more:hover { color: #ee2a7b !important; }
/* Footer: white logo straight on the navy background */
.m-footer__logo { background: none; padding: 0; border-radius: 0; }
.m-footer__logo img { width: 200px; }
